diff options
Diffstat (limited to 'Source/WebKit/gtk')
177 files changed, 0 insertions, 65655 deletions
diff --git a/Source/WebKit/gtk/ChangeLog-2012-05-22 b/Source/WebKit/gtk/ChangeLog-2012-05-22 deleted file mode 100644 index 1bde28157..000000000 --- a/Source/WebKit/gtk/ChangeLog-2012-05-22 +++ /dev/null @@ -1,23357 +0,0 @@ -2012-05-22 Martin Robinson <mrobinson@igalia.com> - - [GTK] REGRESSION(r116135): Keys that confirm composition trigger a default action - https://bugs.webkit.org/show_bug.cgi?id=86925 - - Reviewed by Gustavo Noronha Silva. - - Instead of sending composition results with a keydown event, simply send whether - or not the event had results. Activate the results after processing the event. This - allows for input methods to modify the DOM after the keydown event and to still - prevent the default action during handleInputMethodKeydown. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::respondToChangedSelection): This patch removes the m_updatingComposition - so we no longer have to check it here. - (WebKit::EditorClient::keyboardEventHadCompositionResults): Added. - (WebKit::EditorClient::handleInputMethodKeydown): Now prevent the default action when - the keyboard event had composition results. - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: Remove the m_updatingComposition member, as it's no - longer used. - * WebCoreSupport/WebViewInputMethodFilter.cpp: - (WebKit::WebViewInputMethodFilter::sendKeyEventWithCompositionResults): Now send the - composition results after the key event. - -2012-05-22 Zan Dobersek <zandobersek@gmail.com> - - [Gtk][LayoutTests] Repaint the complete WebKitWebView before dumping pixel results - https://bugs.webkit.org/show_bug.cgi?id=86284 - - Reviewed by Martin Robinson. - - Add an additional method to the ChromeClient through which it is - possible to bypass the painting timer and force an immediate repaint of - the current dirty regions. - - Add a new method to DumpRenderTreeSupportGtk class that calls that - method, making it possible to force an instant paint from - DumpRenderTree. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::paint): Only delay the painting if the paint is - not forced. - (WebKit::ChromeClient::forcePaint): - (WebKit): - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getFrameChildren): Refactor getFrameChildren - to use the kit() function on the core child frames rather than using - the FrameLoaderClient of that frame, which is what the kit() function does in the first - place. This makes it possible to remove the inclusion of the FrameLoaderClientGtk.h - header which causes symbol name conflicts when included along with ChromeClientGtk.h - that originate in the Xlib headers included through the former header. - (DumpRenderTreeSupportGtk::forceWebViewPaint): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-21 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] DRT support for layoutTestController.setSerializeHTTPLoads - https://bugs.webkit.org/show_bug.cgi?id=86653 - - Reviewed by Gustavo Noronha Silva. - - Add support for setSerializeHTTPLoads in DumpRenderTreeSupportGtk - to allow testing resource load order. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setSerializeHTTPLoads): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-18 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r117628. - http://trac.webkit.org/changeset/117628 - https://bugs.webkit.org/show_bug.cgi?id=86936 - - triggers 20+ timeouts in the editing test suite (Requested by - philn on #webkit). - - * WebCoreSupport/TextCheckerClientGtk.cpp: - (WebKit::TextCheckerClientGtk::checkSpellingOfString): - * webkit/webkitspellcheckerenchant.cpp: - (checkSpellingOfString): - -2012-05-18 Martin Robinson <mrobinson@igalia.com> - - Spell checker doesn't recognize contractions (apostrophes) - https://bugs.webkit.org/show_bug.cgi?id=86118 - - Reviewed by Gustavo Noronha Silva. - - The Enchant spell checker was breaking words on apostrophes, because - apparently they were always being detected as Pango word-end - characters. In reality, to know whether or not the apostrophe is a - word end character requires looking at a string with a larger - granularity than one character. In reality, WebCore has already - ensured that any apostrophes in the string belong to contractions by - using the WordBreakIterator. - - Simplify the way the we break strings, by just manually trimming off - all non-graphable characters from the string and then finding the end - of the first word by looking for the next non-graphable character. - This has the side effect of removing the dependency on Pango and - eliminating one copy. - - This change also cleans up some misbehavior on the part of the - WebCoreSupport layer which was not converting from Unicode character - offsets to UTF-16. These offsets can be different if any of the - characters in the UTF-16 string are surrogate pairs (non BMP - characters). - - * WebCoreSupport/TextCheckerClientGtk.cpp: - (WebKit::TextCheckerClientGtk::checkSpellingOfString): Properly - convert from Unicode offsets to UTF-16 offsets. - * webkit/webkitspellcheckerenchant.cpp: - (findByteOffsetToFirstNonGraphableCharacter): Added this helper. - (checkSpellingOfString): Don't split words on apostrophes. - -2012-05-18 Martin Robinson <mrobinson@igalia.com> - - OOM running webgl/sdk/tests/conformance/context/context-creation-and-destruction.html - https://bugs.webkit.org/show_bug.cgi?id=80509 - - Reviewed by Alejandro G. Castro. - - AcceleratedCompositingContext context now fully owns the GLContext for its - window. This simplifies this quite a bit. We also properly clean it up when - destroying the layer tree, to go more easily on resources. - - * WebCoreSupport/AcceleratedCompositingContext.h: - (AcceleratedCompositingContext): - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: - (WebKit::AcceleratedCompositingContext::glContext): - (WebKit::AcceleratedCompositingContext::attachRootGraphicsLayer): - -2012-05-18 MORITA Hajime <morrita@google.com> - - Another unreviewed attempt to fix build breakage on r117572. - - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::frameWillDetachPage): - -2012-05-18 MORITA Hajime <morrita@google.com> - - https://bugs.webkit.org/show_bug.cgi?id=85515 - Stale frame in WebCore::SpellChecker::didCheckSucceeded - - Reviewed by Ryosuke Niwa. - - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::frameWillDetachPage): - -2012-05-17 Hironori Bono <hbono@chromium.org> - - [Refactoring] Move platform-specific code in Editor::respondToChangedSelection to the WebKit layer - https://bugs.webkit.org/show_bug.cgi?id=86591 - - Reviewed by Ryosuke Niwa. - - This change adds a TextCheckerClient::shouldEraseMarkersAfterChangeSelection - function to remove platform-specific code from Editor::respondToChangedSelection - function. - - No new tests, no change in behavior. - - * WebCoreSupport/TextCheckerClientGtk.cpp: - (WebKit::TextCheckerClientGtk::shouldEraseMarkersAfterChangeSelection): - (WebKit): - * WebCoreSupport/TextCheckerClientGtk.h: - (TextCheckerClientGtk): - -2012-05-17 Dan Bernstein <mitz@apple.com> - - REGRESSION (r117428): WebKit API/SPI was removed - https://bugs.webkit.org/show_bug.cgi?id=86748 - - Reverted r117428. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setDomainRelaxationForbiddenForURLScheme): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-17 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Convert setDomainRelaxationForbiddenForURLScheme to use InternalSettings interface - https://bugs.webkit.org/show_bug.cgi?id=86704 - - Reviewed by Eric Seidel. - - Remove setDomainRelaxationForbiddenForURLScheme functions, because it is able to work in the - cross-port way through the InternalSettings interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::deliverAllMutationsIfNecessary): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-14 Thiago Marcos P. Santos <thiago.santos@intel.com> - - [GTK] Wrong documentation for Web Database - https://bugs.webkit.org/show_bug.cgi?id=86362 - - Reviewed by Martin Robinson. - - Fixed docs for webkit_set_default_web_database_quota(). - - * webkit/webkitwebdatabase.cpp: - -2012-05-11 Gustavo Noronha Silva <gns@gnome.org> - - REGRESSION(r116205): [GTK]: build no longer supports thin archives - https://bugs.webkit.org/show_bug.cgi?id=86207 - - * GNUmakefile.am: link libWebCoreModules into the webkitgtk shared - library. - -2012-05-10 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Move resumeAnimations to use Internals interface - https://bugs.webkit.org/show_bug.cgi?id=86063 - - Reviewed by Alexey Proskuryakov. - - Remove resumeAnimations functions, because it is able to work in the - cross-port way through the Internals interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-09 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Move suspendAnimations to use Internals interface. - https://bugs.webkit.org/show_bug.cgi?id=85986 - - Reviewed by Ryosuke Niwa. - - Remove suspendAnimations functions, because it is able to work in the - cross-port way through the Internals interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-09 Simon Pena <spena@igalia.com> - - [GTK] Missing WebPreferences for media playback requiring user gestures and inline playback - https://bugs.webkit.org/show_bug.cgi?id=85194 - - Reviewed by Martin Robinson. - - Expose WebPreferences for media playback requires user gesture and - media playback allows inline to GTK side. - - This adds two properties (mediaPlaybackRequiresUserGesture and - mediaPlaybackAllowsInline) to GTK WebKit WebSettings, and connects - them to the WebKit WebView, so clients can programmatically modify - them. - - * webkit/webkitwebsettings.cpp: install new properties and update - setter and getter - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: add media playback related - properties - * webkit/webkitwebview.cpp: connect newly added properties - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2012-05-09 Dan Winship <danw@gnome.org> - - [GTK] don't use soup_session_pause_message in webkitdownload - https://bugs.webkit.org/show_bug.cgi?id=85931 - - Reviewed by Martin Robinson. - - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - -2012-05-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Convert isPageBoxVisible to use Internals interface. - https://bugs.webkit.org/show_bug.cgi?id=85692 - - Reviewed by Darin Adler. - - Remove isPageBoxVisible functions, because it is able to work in the - cross-port way through the Internals interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-05 Martin Robinson <mrobinson@igalia.com> - - Fix the GTK+ TextureMapper accelerated compositing build. - - * webkit/webkitwebview.cpp: - (webkit_web_view_realize): Properly access the private data - structure of the WebKitWebView. - -2012-05-05 Martin Robinson <mrobinson@igalia.com> - - [GTK] WebKit should properly set the input method context window location - https://bugs.webkit.org/show_bug.cgi?id=84981 - - Reviewed by Gustavo Noronha Silva. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::paint): During painting, update the cursor rectangle - if possible. - -2012-05-05 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed preparation for 1.9.2. - - * NEWS: changes from 1.9.1. - -2012-05-04 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Simplify how libWebCoreModules is linked in, and fix WebKit2 build - https://bugs.webkit.org/show_bug.cgi?id=85691 - - * GNUmakefile.am: no longer link libwebkitgtk to libWebCoreModules. - -2012-05-04 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] DRT needs an implementation of LayoutTestController::setDefersLoading and ::goBack - https://bugs.webkit.org/show_bug.cgi?id=85134 - - Reviewed by Martin Robinson. - - Add support for setDefersLoading in DumpRenderTreeSupportGtk. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setDefersLoading): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-05-04 Martin Robinson <mrobinson@igalia.com> - - Fix the GTK+ debug build after the r116114. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleInputMethodKeyboardEvent): Update an - assertion to reflect a real method name in PlatformKeyboardEvent - and remove an unnecessary call to preventDefault() which triggered - an assertion failure higher in the call stack. - -2012-05-04 Nate Chapin <japhet@chromium.org> - - Don't require FrameLoaderClient to manufacture a commitData() call for empty documents. - https://bugs.webkit.org/show_bug.cgi?id=85533 - - Reviewed by Alexey Proskuryakov. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit): - (WebKit::FrameLoaderClient::finishedLoading): - * WebCoreSupport/FrameLoaderClientGtk.h: - (WebKit::FrameLoaderClient::makeRepresentation): - (WebKit::FrameLoaderClient::revertToProvisionalState): - (FrameLoaderClient): - -2012-05-03 Martin Robinson <mrobinson@igalia.com> - - [GTK] Rework IME handling to fix bugs and prepare for WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=84556 - - Reviewed by Gustavo Noronha Silva. - - Rework input method handling logic into a class called GtkInputMethodFilter. - This filter now runs before WebCore event handling, allowing the code to more - easily fake simple compositions that should be seen as keystrokes. We can also - filter keypresses that should not go to web content at all, such as key up events - related to key down events that were filtered. - - Also added is a WebViewInputMethodFilter which is a concrete implementation of - GtkInputMethodFilter. This class contains logic for actually sending events to - WebCore. In WebKit2 an implementation of GtkInputMethodFilter will send events - across the IPC channel. - - * GNUmakefile.am: Add new files to the source list. - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): Access the input method context via the filter. - * WebCoreSupport/EditorClientGtk.cpp: Remove the tricky logic of input method - events from this class, because it's now in the GtkInputMethodFilter. - (WebKit::EditorClient::setInputMethodState): Call into the filter. - (WebKit::EditorClient::shouldBeginEditing): We no longer need to update the composition here. - This is handled by the focus in and focus out logic in the filter. - (WebKit::EditorClient::shouldEndEditing): Ditto. - (WebKit::EditorClient::respondToChangedSelection): Call into the filter now. - (WebKit::EditorClient::handleInputMethodKeyboardEvent): Added this helper which executes - any pending composition confirmation or preedit update actions as the default action of - the keydown event. - (WebKit::EditorClient::handleKeyboardEvent): Call handleInputMethodKeyboardEvent to do - any pending composition action. - (WebKit::EditorClient::handleInputMethodKeydown): Remove all the logic from this method. - Keys are filtered before they are sent to WebCore now and the actual action of input method - events happens in the keydown default action to increase compatibility with other browsers. - (WebKit::EditorClient::EditorClient): Remove context signal management. - (WebKit::EditorClient::~EditorClient): Ditto. - * WebCoreSupport/EditorClientGtk.h: - (EditorClient): No longer has some members that tracked IME status. - * WebCoreSupport/WebViewInputMethodFilter.cpp: Added. - * WebCoreSupport/WebViewInputMethodFilter.h: Added. - * webkit/webkitwebview.cpp: - (webkit_web_view_get_property): Get the context from the filter now. - (webkit_web_view_key_press_event): Just send events straight to the filter. - The filter will decide whether or not to send them to WebCore. - (webkit_web_view_key_release_event): Ditto. - (webkit_web_view_button_press_event): Use the filter to handle button press - events related to IME. - (webkit_web_view_focus_in_event): Notify the filter now. - (webkit_web_view_focus_out_event): Ditto. - (webkit_web_view_realize): The filter takes care of listening for realize now. - (webkit_web_view_init): Set the WebView widget on the filter. - * webkit/webkitwebviewprivate.h: Change the GtkIMContext member to be a GtkInputMethodFilter member. - -2012-05-03 Fady Samuel <fsamuel@chromium.org> - - Removing line in computeViewportAttributes that enforces a minimum scale factor to never allow zooming out more than viewport - https://bugs.webkit.org/show_bug.cgi?id=70609 - - Reviewed by Kenneth Rohde Christiansen. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): - -2012-04-18 Jon Honeycutt <jhoneycutt@apple.com> - - FrameLoaderClient::dispatchWillSendSubmitEvent() should be given more - information about the form being submitted - https://bugs.webkit.org/show_bug.cgi?id=84297 - - Reviewed by Andy Estes. - - * WebCoreSupport/FrameLoaderClientGtk.h: - (WebKit::FrameLoaderClient::dispatchWillSendSubmitEvent): - Updated method declaration. - -2012-05-01 Ryosuke Niwa <rniwa@webkit.org> - - *Command.h files shouldn't be exported to WebKit layer - https://bugs.webkit.org/show_bug.cgi?id=74778 - - Reviewed by Eric Seidel. - - * webkit/webkitwebframe.cpp: - -2012-04-30 Emil A Eklund <eae@chromium.org> - - [gtk, qt, chromium, win] Fix usage of LayoutUnits and rounding in platform code - https://bugs.webkit.org/show_bug.cgi?id=85222 - - Reviewed by Eric Seidel. - - Update platform code to use the pixel snapped values for painting rects - to line up with device pixels and change platform specific hit testing - code to use roundedPoint as hit testing is still mostly done on integer - bounds. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * webkit/webkithittestresult.cpp: - (WebKit::kit): - * webkit/webkitwebview.cpp: - (getLocationForKeyboardGeneratedContextMenu): - (webkit_web_view_query_tooltip): - -2012-04-30 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.9.1 release - https://bugs.webkit.org/show_bug.cgi?id=85175 - - Reviewed by Philippe Normand. - - * NEWS: Added release notes for 1.9.1. - -2012-04-30 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] DRT support for layoutTestController.removeOriginAccessWhitelistEntry - https://bugs.webkit.org/show_bug.cgi?id=85156 - - Reviewed by Martin Robinson. - - Add support for removeOriginAccessWhitelistEntry which allow - layout tests to remove origins whitelisting. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::removeWhiteListAccessFromOrigin): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-04-29 Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> - - [GTK] DRT needs an implementation of layoutTestController.setDomainRelaxationForbiddenForURLScheme - https://bugs.webkit.org/show_bug.cgi?id=85131 - - Reviewed by Martin Robinson. - - Add support for setDomainRelaxationForbiddenForURLScheme which allow - disabling domain relaxation. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setDomainRelaxationForbiddenForURLScheme): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-04-22 Adrian Bunk <bunk@stusta.de> - - [GTK] Remove the obsolete Hildon UI extensions - https://bugs.webkit.org/show_bug.cgi?id=83420 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::setInputMethodState): - * webkit/webkitwebview.cpp: - (webkit_web_view_button_release_event): - -2012-04-20 Zan Dobersek <zandobersek@gmail.com> - - [Gtk][WK1] Use mock scrollbars when testing - https://bugs.webkit.org/show_bug.cgi?id=79577 - - Reviewed by Daniel Bates. - - Enable mock scrollbars if running DumpRenderTree. - - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - -2012-04-18 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r114506. - http://trac.webkit.org/changeset/114506 - https://bugs.webkit.org/show_bug.cgi?id=84254 - - Seems to be making gtk's DumpRenderTree crash occasionally - (Requested by tomz on #webkit). - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2012-04-18 Simon Pena <spena@igalia.com> - - [GTK] r114021 triggered media flakyness - https://bugs.webkit.org/show_bug.cgi?id=83874 - - Reviewed by Philippe Normand. - - When the MediaPlaybackRequiresUserGesture setting was added, no gtk - API was implemented to access it. - - This adds a property to gtk WebKit WebSettings, and connects it to - WebKit WebView, thus allowing clients to programmatically modify it. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2012-04-17 Carlos Garnacho <carlos@lanedo.com> - - [GTK] Enable back double buffering on WebKitWebView to fix flickering - https://bugs.webkit.org/show_bug.cgi?id=84149 - - Reviewed by Martin Robinson. - - Despite having WebKitWebView its own backing buffer, calling - gtk_widget_set_double_buffered(...,FALSE) may still pose side - effects, such as ensuring that all drawing operations are - flushed to the X server before rendering a non-double buffered - widget, which may translate into flickering of the parent - GdkWindow before the WebKitWebView itself is rendered. - - Enabling back double buffering solves this as all contents are - first composited together before getting to the front buffer, - but effectively acts as 3rd buffer. This is sort of unavoidable - unless GTK+ gains a "let me take ownership of the backing buffer - for this widget", which currently lacks. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): Remove call to gtk_widget_set_double_buffered(..., FALSE) - -2012-04-06 Martin Robinson <mrobinson@igalia.com> - - [GTK] Accelerated compositing is broken after recent TextureMapper reorganizations - https://bugs.webkit.org/show_bug.cgi?id=83393 - - Reviewed by Noam Rosenthal. - - Ensure that the layer tree is synced when the root layer is resized. - - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: - (WebKit::AcceleratedCompositingContext::resizeRootLayer): Ensure that the layer - tree is synced when the root layer resizes and remove a call to recomposite - the tree, as it happens anyway. - -2012-04-05 Martin Robinson <mrobinson@igalia.com> - - [GTK] Scrolling some iframes that are partially out of the viewport leads to repaint errors - https://bugs.webkit.org/show_bug.cgi?id=83309 - - Reviewed by Gustavo Noronha Silva. - - Instead of only updating scrollRect - preservedRegion, update - scrollRect - (preservedRegion - offscreenPreservedRegion). This ensures that - when part of the scroll rect is moved onscreen from offscreen that part is - queued for a redraw. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scroll): Properly calculate the area to repaint. - -2012-04-04 Mariusz Grzegorczyk <mariusz.g@samsung.com> - - Fix build break when CONTEXT_MENUS is disabled. - https://bugs.webkit.org/show_bug.cgi?id=82342 - - Reviewed by Andreas Kling. - - Fixes build break in WebKit-Gtk, and WebKit-EFL ports when CONTEXT_MENUS macro is disabled. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.h: - * webkit/webkitglobals.cpp: - (webkit_context_menu_item_get_action): - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): - (webkit_web_view_class_init): - (webkit_web_view_init): - -2012-04-03 Simon Pena <spena@igalia.com> - - [GTK] DRT missing didRunInsecureContent notification - https://bugs.webkit.org/show_bug.cgi?id=59367 - - Reviewed by Philippe Normand. - - Add a new signal "insecure-content-run" to the WebFrame to notify - when insecure HTTP content (such as CSS, an iframe or a script) is - run from a secure HTTPS WebFrame. Implement didRunInsecureContent - in gtk's FrameLoaderClient by means of emitting that signal. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: Implement - didRunInsecureContent by emitting WebFrame's - "insecure-content-run" signal - (WebKit::FrameLoaderClient::didRunInsecureContent): - * webkit/webkitwebframe.cpp: Add "insecure-content-run" signal - (webkit_web_frame_class_init): - -2012-03-30 Mark Pilgrim <pilgrim@chromium.org> - - GEOLOCATION should be implemented as Page Supplement - https://bugs.webkit.org/show_bug.cgi?id=82228 - - Reviewed by Adam Barth. - - Geolocation is now a Supplement in Page so the interface - has changed for setting up the page's geolocation client - initially and accessing the controller later. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::resetGeolocationClientMock): - (DumpRenderTreeSupportGtk::setMockGeolocationPermission): - (DumpRenderTreeSupportGtk::setMockGeolocationPosition): - (DumpRenderTreeSupportGtk::setMockGeolocationError): - (DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests): - * WebCoreSupport/GeolocationClientGtk.cpp: - (WebKit::GeolocationClient::updatePosition): - (WebKit::GeolocationClient::errorOccured): - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-29 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r112553. - http://trac.webkit.org/changeset/112553 - https://bugs.webkit.org/show_bug.cgi?id=82638 - - It made all tests crash on Qt WK2 (Requested by Ossy_away on - #webkit). - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::resetGeolocationClientMock): - (DumpRenderTreeSupportGtk::setMockGeolocationPermission): - (DumpRenderTreeSupportGtk::setMockGeolocationPosition): - (DumpRenderTreeSupportGtk::setMockGeolocationError): - (DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests): - * WebCoreSupport/GeolocationClientGtk.cpp: - (WebKit::GeolocationClient::updatePosition): - (WebKit::GeolocationClient::errorOccured): - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-29 Mark Pilgrim <pilgrim@chromium.org> - - GEOLOCATION should be implemented as Page Supplement - https://bugs.webkit.org/show_bug.cgi?id=82228 - - Reviewed by Adam Barth. - - Geolocation is now a Supplement in Page so the interface - has changed for setting up the page's geolocation client - initially and accessing the controller later. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::resetGeolocationClientMock): - (DumpRenderTreeSupportGtk::setMockGeolocationPermission): - (DumpRenderTreeSupportGtk::setMockGeolocationPosition): - (DumpRenderTreeSupportGtk::setMockGeolocationError): - (DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests): - * WebCoreSupport/GeolocationClientGtk.cpp: - (WebKit::GeolocationClient::updatePosition): - (WebKit::GeolocationClient::errorOccured): - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-28 Nate Chapin <japhet@chromium.org> - - Remove dispatchDidLoadMainResource callback, since no - port implements it. - https://bugs.webkit.org/show_bug.cgi?id=82539 - - Reviewed by Alexey Proskuryakov. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit): - * WebCoreSupport/FrameLoaderClientGtk.h: - (FrameLoaderClient): - -2012-03-28 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Implement PlatformStrategies - https://bugs.webkit.org/show_bug.cgi?id=82454 - - Reviewed by Xan Lopez. - - * GNUmakefile.am: Add new files to compilation. - * WebCoreSupport/PlatformStrategiesGtk.cpp: Added. - (PlatformStrategiesGtk::initialize): Initialize platform - strategies. - (PlatformStrategiesGtk::PlatformStrategiesGtk): - (PlatformStrategiesGtk::createCookiesStrategy): Return this. - (PlatformStrategiesGtk::createPluginStrategy): Ditto. - (PlatformStrategiesGtk::createVisitedLinkStrategy): Ditto. - (PlatformStrategiesGtk::createPasteboardStrategy): Return 0, since - PasteboardStrategy is only used by mac code for now. - (PlatformStrategiesGtk::notifyCookiesChanged): - (PlatformStrategiesGtk::refreshPlugins): Refresh the plugin - database. - (PlatformStrategiesGtk::getPluginInfo): Initialize plugins and - populate the given vector with plugins information. - (PlatformStrategiesGtk::isLinkVisited): Return whether the given - hash is a visited link of the page group. - (PlatformStrategiesGtk::addVisitedLink): Add the given hash to the - page group visited links. - * WebCoreSupport/PlatformStrategiesGtk.h: Added. - * webkit/webkitglobals.cpp: - (webkitInit): Initialize PlatformStrategiesGtk. - -2012-03-26 Joone Hur <joone.hur@collabora.co.uk> - - [GTK] Build fix for Accelerated Compositing with Clutter - https://bugs.webkit.org/show_bug.cgi?id=81785 - - Reviewed by Martin Robinson. - - AcceleratedCompositingContext was introduced to isolate different accelerated - compositing implementations(r104194), but the Clutter implementation doesn't - build with it. This fixes the build error. - - * WebCoreSupport/AcceleratedCompositingContext.h: - (AcceleratedCompositingContext): - * WebCoreSupport/AcceleratedCompositingContextClutter.cpp: - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): - (WebKit::AcceleratedCompositingContext::renderLayersToWindow): - (WebKit::AcceleratedCompositingContext::resizeRootLayer): - (WebKit::AcceleratedCompositingContext::syncLayersNow): - (WebKit::AcceleratedCompositingContext::syncLayersTimeout): - (WebKit): - -2012-03-26 Gary Kramlich <grim@reaperworld.com> - - WebKitWebView signals with GError parameters cause crashes when using GObject Introspection - https://bugs.webkit.org/show_bug.cgi?id=81977 - - Reviewed by Martin Robinson. - - Added marshalers for BOOLEAN:OBJECT,STRING,BOXED and VOID:OBJECT,OBJECT,BOXED - and changed the signal signatures for WebKitWebView::load-fail and - WebKitWebView::resource-load-failed to use the new marshalers since - GError has been a GBoxed type since Gtk 2.26. This fixes these signals - for the gobject-introspection bindings. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - * webkitmarshal.list: - -2012-03-24 Martin Robinson <mrobinson@igalia.com> - - [GTK] Replace occurrences of "uri" in the documentation with "URI" - https://bugs.webkit.org/show_bug.cgi?id=82025 - - Reviewed by Gustavo Noronha Silva. - - In documentation "uri" should really be written as "URI" so - we should fix all existing strings. - - * webkit/webkitdownload.cpp: Replace "uri" with "URI." - * webkit/webkitnetworkrequest.cpp: Ditto. - * webkit/webkitnetworkresponse.cpp: Ditto. - * webkit/webkitwebhistoryitem.cpp: Ditto. - * webkit/webkitwebresource.cpp: Ditto. - (webkit_web_resource_class_init): - -2012-03-23 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Webkit fails to build with --disable-geolocation - https://bugs.webkit.org/show_bug.cgi?id=81451 - - Reviewed by Benjamin Poulain. - - Wrap uses of WebCore::Geolocation in WebKitGeolocationPolicyDecision - and WebKitWebView in ifdefs, removing compilation errors when compiling - with geolocation support disabled. Affected public API methods are then - stubs, throwing a warning that feature was not enabled at compile-time. - - * webkit/webkitgeolocationpolicydecision.cpp: - (_WebKitGeolocationPolicyDecisionPrivate): - (webkit_geolocation_policy_decision_new): - (webkit_geolocation_policy_allow): - (webkit_geolocation_policy_deny): - * webkit/webkitgeolocationpolicydecisionprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-23 Zan Dobersek <zandobersek@gmail.com> - - [GObject bindings] Supplemental interfaces are not disabled with the "Conditional" attribute - https://bugs.webkit.org/show_bug.cgi?id=80030 - - Reviewed by Martin Robinson. - - Add a private macro that can be used when necessary to throw a warning - about a future not enabled at compile-time. - - * webkit/webkitglobalsprivate.h: - -2012-03-23 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Add a way to expose well known names for items in the default context menu - https://bugs.webkit.org/show_bug.cgi?id=67660 - - Reviewed by Martin Robinson. - - Add WebKitContextMenuAction enum containing all possible context - menu item actions. - - * GNUmakefile.am: Add new files to compilation. - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): Use WebCore context menu classes - to create the context menu and its items to make sure all items - have a GtkAction associated. - (WebKit::insertControlCharacter): - (WebKit::unicodeMenuItem): Ditto. - * tests/testcontextmenu.c: Added. - (testInfoNew): - (testInfoDestroy): - (contextMenuFixtureSetup): - (contextMenuFixtureTeardown): - (checkAction): - (checkActionWithSubmenu): - (checkSeparator): - (contextMenuCallback): - (pushEvent): - (loadStatusCallback): - (mapEventCallback): - (testContextMenu): - (contextMenuCustomItemCallback): - (testContextMenuCustomItem): - (main): - * webkit/webkitglobals.cpp: - (webkit_context_menu_item_get_action): Return the - WebKitContextMenuAction for the given context menu item. - * webkit/webkitglobals.h: - -2012-03-23 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Rename a variable name in API documentation. - - Rename keyboard_mode to triggered_with_keyboard in - WebKitWebView::context-menu signal documentation as suggested by - Martin and Gustavo. I forgot to make this change before landing - previous patch. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2012-03-23 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Add a signal to allow applications to handle its own context menu - https://bugs.webkit.org/show_bug.cgi?id=49904 - - Reviewed by Gustavo Noronha Silva. - - * tests/testhittestresult.c: - (load_status_cb): Test x, y properties of WebKitHitTestResult. - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_get_property): - (webkit_hit_test_result_set_property): - (webkit_hit_test_result_class_init): Add x and y construct only - properties to keep the coordinates of the event relative to view's - widget. - (WebKit::kit): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): Mark enable-default-context-menu - property as deprecated. - * webkit/webkitwebview.cpp: - (prepareMouseEventForFrame): - (defaultContextMenuEnabled): Helper function to check whether - default context menu setting is enabled or not. - (webkit_web_view_forward_context_menu_event): Emit the new - context-menu signal. - (webkit_web_view_popup_menu_handler): - (webkit_web_view_button_press_event): - (webkit_web_view_class_init): Add new context-menu signal and mark - populate-popup as deprecated. - * webkitmarshal.list: - -2012-03-23 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed. Fix GTK+ build after r111707. - - * WebCoreSupport/UserMediaClientGtk.h: - -2012-03-22 Mao Yujie <yujie.mao@intel.com> - - [GTK] Add MediaStream feature to avoid MediaStream test failure - https://bugs.webkit.org/show_bug.cgi?id=81727 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: - * WebCoreSupport/UserMediaClientGtk.cpp: Added. - (WebKit): - (WebKit::UserMediaClientGtk::UserMediaClientGtk): - (WebKit::UserMediaClientGtk::~UserMediaClientGtk): - (WebKit::UserMediaClientGtk::pageDestroyed): - (WebKit::UserMediaClientGtk::requestUserMedia): - (WebKit::UserMediaClientGtk::cancelUserMediaRequest): - * WebCoreSupport/UserMediaClientGtk.h: Added. - (WebKit): - (UserMediaClientGtk): - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-22 Sergio Villar Senin <svillar@igalia.com> - - [GTK] icon database requests not dispatched until new data arrives - https://bugs.webkit.org/show_bug.cgi?id=81665 - - Reviewed by Martin Robinson. - - Wait for the import to finish before reporting that the favicon - cache does not have a pixbuf for an URL. - - Changes already covered by the favicon database unit tests. - - * webkit/webkitfavicondatabase.cpp: - (webkit_favicon_database_get_favicon_pixbuf): - -2012-03-22 Carlos Garcia Campos <cgarcia@bb-webkit-rel-64.local.igalia.com> - - [GTK] Use the angle-bracket form to include wtf headers - https://bugs.webkit.org/show_bug.cgi?id=81884 - - Reviewed by Eric Seidel. - - Use #include <wtf/foo> instead of #include "foo". - - * WebCoreSupport/DocumentLoaderGtk.cpp: - * WebCoreSupport/DragClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FullscreenVideoController.h: - * WebCoreSupport/GeolocationClientGtk.h: - * WebCoreSupport/InspectorClientGtk.h: - * WebCoreSupport/TextCheckerClientGtk.cpp: - * WebCoreSupport/TextCheckerClientGtk.h: - * webkit/webkitdownload.cpp: - * webkit/webkitfavicondatabase.cpp: - * webkit/webkitglobals.cpp: - * webkit/webkithittestresult.cpp: - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitnetworkresponse.cpp: - * webkit/webkitspellcheckerenchant.cpp: - * webkit/webkitwebdatasourceprivate.h: - * webkit/webkitwebsettings.cpp: - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebviewprivate.h: - -2012-03-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - Convert hasSpellingMarker to use Internals interface. - https://bugs.webkit.org/show_bug.cgi?id=81300 - - Reviewed by Ryosuke Niwa. - - Remove DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker support, - since it can support in the cross-port way through the Internals interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-03-19 Adam Barth <abarth@webkit.org> - - Remove support for "magic" iframe - https://bugs.webkit.org/show_bug.cgi?id=81590 - - Reviewed by Eric Seidel. - - Remove FrameLoaderClient methods that no longer exist. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit): - * WebCoreSupport/FrameLoaderClientGtk.h: - (FrameLoaderClient): - -2012-03-19 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] libWebCore.la has become too big for make - https://bugs.webkit.org/show_bug.cgi?id=81582 - - Unreviewed build fix. - - * GNUmakefile.am: link-in the new libDerivedWebCore.la - -2012-03-16 Martin Robinson <mrobinson@igalia.com> - - [GTK] Allow running run-gtk-tests during 'make dist' - https://bugs.webkit.org/show_bug.cgi?id=81415 - - Reviewed by Philippe Normand. - - * GNUmakefile.am: Remove 'make check' rules from the makefile - Instead this functionality is now in the Tools makefile. - -2012-03-16 Victor Lucero <victor.lucero@ipartner.cl> - - [GTK] WebKitWebResource::load-failed uses the wrong marshaller - https://bugs.webkit.org/show_bug.cgi?id=81229 - - Reviewed by Philippe Normand. - - * webkit/webkitwebresource.cpp: - (webkit_web_resource_class_init): load-failed signal in WebkitWebResource was using the wrong marshaller - -2012-03-14 Landry Breuil <landry@openbsd.org> - - WebKit/gtk/resources/error.html font-size error - https://bugs.webkit.org/show_bug.cgi?id=39232 - - Reviewed by Martin Robinson. - - Fix font-size in the 404 error page. Apparently the % is filtered out, - so 120% becomes 120 and the error message is huge. Experienced in epiphany. - - * resources/error.html: Double the % so it doesn't get filtered - -2012-03-16 Carlos Garcia Campos <cgarcia@igalia.com> and Sergio Villar Senin <svillar@igalia.com> - - [GTK] WebKitIconDatabase doesn't keep icons cached - https://bugs.webkit.org/show_bug.cgi?id=56200 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: Added new files to compilation. - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::registerForIconNotification): instruct - the WebView to listen to IconDatabase's notifications. - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): ask both - WebView and IconDatabase to issue notifications for a new icon. - * docs/webkitgtk-docs.sgml: updated docs. - * docs/webkitgtk-sections.txt: ditto. - * docs/webkitgtk.types: ditto. - * tests/testicondatabase.c: Added. - (server_callback): - (deleteDatabaseFileIfExists): - (testWebkitIconDatabaseSetPath): - (iconDatabaseGetIconValidCallback): - (iconDatabaseGetIconInvalidCallback): - (iconDatabaseGetIconCancelledCallback): - (mainLoopQuitIfLoadCompleted): - (idleQuitLoopCallback): - (webkitWebViewIconLoaded): - (loadURI): - (faviconDatabaseGetFaviconValidIdle): - (faviconDatabaseGetFaviconInvalidIdle): - (faviconDatabaseGetFaviconCancelledIdle): - (testWebKitFaviconDatabaseGetFavicon): - (testWebKitFaviconDatabaseGetFaviconURI): - (testWebKitFaviconDatabaseRemoveAll): - (testWebKitFaviconDatabaseCloseDatabase): - (main): - * webkit/webkit.h: added new API. - * webkit/webkitdefines.h: added WebKitFaviconDatabase. - * webkit/webkitfavicondatabase.cpp: - (IconDatabaseClientGtk): IconDatabaseClient implementation. - (IconDatabaseClientGtk::performImport): - (IconDatabaseClientGtk::didRemoveAllIcons): - (IconDatabaseClientGtk::didImportIconURLForPageURL): - (IconDatabaseClientGtk::didImportIconDataForPageURL): - (IconDatabaseClientGtk::didChangeIconForPageURL): - (IconDatabaseClientGtk::didFinishURLImport): - (PendingIconRequest): machinery for asynchronous calls. - (PendingIconRequest::PendingIconRequest): - (PendingIconRequest::~PendingIconRequest): - (PendingIconRequest::pageURI): - (PendingIconRequest::asyncResult): - (PendingIconRequest::asyncResultCancel): - (PendingIconRequest::asyncResultCompleteInIdle): - (PendingIconRequest::asyncResultComplete): - (_WebKitIconDatabasePrivate): - (webkit_favicon_database_dispose): GObject stuff. - (webkit_favicon_database_set_property): ditto. - (webkit_favicon_database_get_property): ditto. - (webkit_favicon_database_class_init): ditto. - (webkit_favicon_database_init): ditto. - (webkitFaviconDatabaseNotifyAndUpdateExpiration): notify about new - icons and update expiration times. - (webkitFaviconDatabaseDispatchDidReceiveIcon): "protected" method - called by the FrameLoaderClient to inform about new icons. - (webkit_favicon_database_get_path): retrieves database path. - (selectQueryCallback): releases expired icons to let IconDatabase - prune them. - (webkitFaviconDatabasePruneExpiredIcons): selects the icons to be - pruned by the IconDatabase. - (webkitFaviconDatabaseClose): close the database. - (createExpirationTimesDatabaseTableIfNotExists): creates the - database used to control expiration times. - (webkit_favicon_database_set_path): opens the database delaying the - cleanup of icons until the import is complete. - (webkit_favicon_database_get_favicon_uri): returns the uri of the - favicon. - (getIconPixbufSynchronously): helper function to call - IconDatabase::synchronousIconURLForPageURL(). - (webkit_favicon_database_try_get_favicon_pixbuf): returns the - favicon if exists and is loaded from disk. - (webkitFaviconDatabaseGetOrCreateRequests): helper function to get - the vector of pending requests for the given uri. - (webkitfavicondatabaseDeleteRequests): helper function to remove the - vector of pending requests for the given uri. - (getIconPixbufCancelled): - (webkitFaviconDatabaseGetIconPixbufCancelled): - (webkit_favicon_database_get_favicon_pixbuf): asynchronously - retrieve icons from the database. - (webkit_favicon_database_get_favicon_pixbuf_finish): finishes an - operation started with webkit_icon_database_get_icon_pixbuf(). - (webkitFaviconDatabaseProcessPendingIconsForURI): process pending - requests once the import is finished. - (webkitFaviconDatabaseImportFinished): check pending requests and - delete those that ask for icons that do not exist in the database. - (webkit_favicon_database_clear): clears the database. - * webkit/webkitfavicondatabase.h: added. - (_WebKitFaviconDatabase): - (_WebKitFaviconDatabaseClass): - * webkit/webkitfavicondatabaseprivate.h: Added. - * webkit/webkitglobals.cpp: - (webkit_get_favicon_database): retrieves the new - WebKitFaviconDatabase. - (webkitExit): unref icon database on exit. - * webkit/webkitglobals.h: added new API. - * webkit/webkiticondatabase.cpp: added deprecation documentation. - (webkit_icon_database_class_init): - * webkit/webkitwebview.cpp: - (webkit_web_view_try_get_icon_pixbuf): new API that uses the new - WebKitFaviconDatabase API. - (webkitWebViewIconLoaded): dispatch the icon-loaded signal when - requested by the FrameLoaderClient. - (webkitWebViewRegisterForIconNotification): starts/stops listening - to icon database notifications. - * webkit/webkitwebview.h: added new API. - * webkit/webkitwebviewprivate.h: added some protected methods. - -2012-03-16 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Add computedStyleIncludingVisitedInfo to DumpRenderTreeSupport - https://bugs.webkit.org/show_bug.cgi?id=81232 - - Reviewed by Philippe Normand. - - Add computedStyleIncludingVisitedInfo helper method to - DumpRenderTreeSupportGtk. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::computedStyleIncludingVisitedInfo): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-03-16 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Properly set forms tests-specific settings - https://bugs.webkit.org/show_bug.cgi?id=81237 - - Reviewed by Philippe Normand. - - Call Settings::setInteractiveFormValidationEnabled and - Settings::setValidationMessageTimerMagnification with - proper values when in testing mode. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-15 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Implement unicode submenu items - https://bugs.webkit.org/show_bug.cgi?id=81117 - - Reviewed by Martin Robinson. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::getUnicodeMenuItemPosition): Helper function to get the - position of the unicode menu item in the default context menu. - (WebKit::ContextMenuClient::getCustomMenuFromDefaultItems): Remove - code to build the unicode menu, since it's now built by WebCore. - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldShowUnicodeMenu): Check whether - unicode menu should be shown based on gtk-show-unicode-menu GtkSetting. - * WebCoreSupport/EditorClientGtk.h: - -2012-03-13 Adam Barth <abarth@webkit.org> && Benjamin Poulain <bpoulain@apple.com> - - Always enable ENABLE(CLIENT_BASED_GEOLOCATION) - https://bugs.webkit.org/show_bug.cgi?id=78853 - - Reviewed by Adam Barth. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit): - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::scrollRectIntoView): - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::resetGeolocationClientMock): - (DumpRenderTreeSupportGtk::setMockGeolocationPermission): - (DumpRenderTreeSupportGtk::setMockGeolocationPosition): - (DumpRenderTreeSupportGtk::setMockGeolocationError): - (DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests): - * WebCoreSupport/GeolocationClientGtk.cpp: - (WebKit::GeolocationClient::requestPermission): - (WebKit::GeolocationClient::cancelPermissionRequest): - * WebCoreSupport/GeolocationClientGtk.h: - (WebKit): - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-03-12 Antonio Gomes <agomes@rim.com> - - Convert nodesFromRect tests to use Internals interface - https://bugs.webkit.org/show_bug.cgi?id=80886 - - Reviewed by Ryosuke Niwa. - - Removed DRTSupportGtk::nodesFromRect support, since - it can work in the cross-port way through the - Internals interface. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-03-07 Kangil Han <kangil.han@samsung.com> - - [DRT] Remove PlainTextController implementations. - https://bugs.webkit.org/show_bug.cgi?id=79959 - - Reviewed by Hajime Morita. - - PlainTextController usages in existing tests have been - replaced by internals API by bug 78570. - So this patch will remove PlainTextController implementations - to avoid further usage in new tests. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-03-06 Martin Robinson <mrobinson@igalia.com> - - Fix a compilation warning encountered during the GTK+ build. - - Reviewed by Gustavo Noronha Silva. - - * tests/testcopyandpaste.c: - (test_copy_and_paste): Cast the WebKitWebView to a GtkWidget. - -2012-03-06 Philippe Normand <pnormand@igalia.com> - - [GTK] FrameLoader signals: gtk-doc fixes - https://bugs.webkit.org/show_bug.cgi?id=79495 - - Reviewed by Martin Robinson. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - * webkit/webkitwebresource.cpp: - (webkit_web_resource_class_init): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2012-01-26 Philippe Normand <pnormand@igalia.com> - - [GStreamer] disable GStreamerGWorld when building against 0.11 - https://bugs.webkit.org/show_bug.cgi?id=77088 - - Disable the FullscreenVideoController if we build against - GStreamer 0.11. This code depends on GStreamerGWorld which wasn't - ported to 0.11 because it will soon be removed anyway. - - Reviewed by Martin Robinson. - - * WebCoreSupport/FullscreenVideoController.cpp: - * WebCoreSupport/FullscreenVideoController.h: - * webkit/webkitwebview.cpp: - (webViewEnterFullscreen): - (webViewExitFullscreen): - * webkit/webkitwebviewprivate.h: - (_WebKitWebViewPrivate): - -2012-03-05 Zan Dobersek <zandobersek@gmail.com> - - [GTK] plugins/netscape-plugin-page-cache-works.html fails - https://bugs.webkit.org/show_bug.cgi?id=74409 - - Reviewed by Martin Robinson. - - Add a method to override page-cache-for-plugins preference. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setPageCacheSupportsPlugins): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-03-04 Martin Robinson <mrobinson@igalia.com> - - [GTK] "Console: undefined @0: ReferenceError: Can't find variable: WebInspector" during testwebinspector - https://bugs.webkit.org/show_bug.cgi?id=80235 - - Reviewed by Philippe Normand. - - Wait to inspect the WebView until the page has finished loading. Also - clean up some minor style errors. - - * tests/testwebinspector.c: - (closeInspector): Small style fixes. - (showInspector): Ditto. - (loadFinished): Ditto. - (test_webkit_web_inspector_close_and_inspect): Wait to inspect until the page has loaded. - (test_webkit_web_inspector_destroy_inspected_web_view): Ditto. - (main): Small style fixes. - -2012-03-04 Martin Robinson <mrobinson@igalia.com> - - [GTK] REGRESSION: r108278 broke some tests that expect focus - https://bugs.webkit.org/show_bug.cgi?id=79084 - - Reviewed by Philippe Normand. - - Grab focus before running the test. This ensures that if the - WebView lost focus, it has it before sending events. - - * tests/testcopyandpaste.c: - (test_copy_and_paste): Grab focus. - -2012-02-18 Martin Robinson <mrobinson@igalia.com> - - [GTK] [AC] Generalize WindowContextGL - https://bugs.webkit.org/show_bug.cgi?id=78969 - - Reviewed by Gustavo Noronha Silva. - - Use GLContext instead of WindowContextGL. Remove a few unnecessary - namespace specifiers in the implementation of AcceleratedCompositingContext. - - * WebCoreSupport/AcceleratedCompositingContext.h: Now we find the GLContext - of our widget, which is cached in WebCore. Remove m_initialized as it isn't needed. - (AcceleratedCompositingContext): - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): No longer initialize - m_initialized. - (WebKit::AcceleratedCompositingContext::glContext): Added. - (WebKit::AcceleratedCompositingContext::renderLayersToWindow): Use glContext() now. - (WebKit::AcceleratedCompositingContext::attachRootGraphicsLayer): Ditto. - (WebKit::AcceleratedCompositingContext::notifyAnimationStarted): Remove unnecessary namespace specifier. - (WebKit::AcceleratedCompositingContext::notifySyncRequired): Ditto. - (WebKit::AcceleratedCompositingContext::paintContents): Ditto. - (WebKit::AcceleratedCompositingContext::showDebugBorders): Ditto. - (WebKit::AcceleratedCompositingContext::showRepaintCounter): Ditto. - -2012-03-02 Zan Dobersek <zandobersek@gmail.com> - - [GTK] Smooth scrolling support - https://bugs.webkit.org/show_bug.cgi?id=16123 - - Reviewed by Martin Robinson. - - Add a new settings option to enable smooth scrolling. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2012-03-01 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Simplify the code to adjust font sizes depending on screen DPI - https://bugs.webkit.org/show_bug.cgi?id=80032 - - Reviewed by Martin Robinson. - - * webkit/webkitwebview.cpp: - (screenDPI): Helper function to get the DPI of a given - GdkScreen. Added also fallback code when gdk_screen_resolution - returns -1. - (webViewGetDPI): Use screenDPI() from WebCore. - (webViewConvertFontSizeToPixels): This is the existing - pixelsFromSize(), renamed and moved to be used also in - webkit_web_view_screen_changed(). - (webkit_web_view_screen_changed): Use - webViewConvertFontSizeToPixels() instead of duplicating the code. - (webkit_web_view_settings_notify): Use - webViewConvertFontSizeToPixels() instead of pixelsFromSize(). - -2012-02-27 Vincent Untz <vuntz@gnome.org>> and Gustavo Noronha Silva <gns@gnome.org> - - Build fix for building with GTK+ 2.x. - - * tests/testwebview.c: - -2012-02-26 Hajime Morrita <morrita@chromium.org> - - Move ChromeClient::showContextMenu() to ContextMenuClient - https://bugs.webkit.org/show_bug.cgi?id=79427 - - Reviewed by Adam Barth. - - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): - -2012-02-24 Shinya Kawanaka <shinyak@chromium.org> - - SpellCheckRequest needs to know the context where the spellcheck happened. - https://bugs.webkit.org/show_bug.cgi?id=79320 - - Reviewed by Hajime Morita. - - * WebCoreSupport/TextCheckerClientGtk.h: - (WebKit::TextCheckerClientGtk::requestCheckingOfString): - -2012-02-23 ChangSeok Oh <shivamidow@gmail.com> - - [GTK] DRT doesn't support scheduleAsynchronousKeyDown. - https://bugs.webkit.org/show_bug.cgi?id=78481 - - Reviewed by Gustavo Noronha Silva. - - Added a new API to deliver all mutations explicitly. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::deliverAllMutationsIfNecessary): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-02-23 Philippe Normand <pnormand@igalia.com> - - [GTK] FullScreen signals - https://bugs.webkit.org/show_bug.cgi?id=76181 - - Reviewed by Martin Robinson. - - Added entering-fullscreen and leaving-fullscreen signals, meant to - be used by the user agent to be notified when an element requests - full screen display and when the full screen display is to be - disabled. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): - (WebKit::onFullscreenGtkKeyPressEvent): - (WebKit::ChromeClient::cancelFullScreen): - (WebKit::ChromeClient::enterFullScreenForElement): - (WebKit::ChromeClient::exitFullScreenForElement): - * WebCoreSupport/ChromeClientGtk.h: - * tests/testwebview.c: - * webkit/webkitwebview.cpp: - (webkit_web_view_real_entering_fullscreen): - (webkit_web_view_real_leaving_fullscreen): - (webkit_web_view_class_init): - * webkit/webkitwebview.h: - -2012-02-21 Ryosuke Niwa <rniwa@webkit.org> - - Remove the remaining uses of CSSStyleDeclaration in Editor - https://bugs.webkit.org/show_bug.cgi?id=78939 - - Reviewed by Enrica Casucci. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldApplyStyle): - * WebCoreSupport/EditorClientGtk.h: - (EditorClient): - -2012-02-22 Philippe Normand <pnormand@igalia.com> - - Unreviewed, rolling out r108522. - http://trac.webkit.org/changeset/108522 - https://bugs.webkit.org/show_bug.cgi?id=76181 - - Broke 4 fullscreen tests on GTK. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): - (WebKit::ChromeClient::enterFullScreenForElement): - (WebKit::ChromeClient::exitFullScreenForElement): - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): - * tests/testwebview.c: - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - * webkit/webkitwebview.h: - (_WebKitWebViewClass): - -2012-02-20 Philippe Normand <pnormand@igalia.com> - - [GTK] FullScreen signals - https://bugs.webkit.org/show_bug.cgi?id=76181 - - Reviewed by Martin Robinson. - - Added entering-fullscreen and leaving-fullscreen signals, meant to - be used by the user agent to be notified when an element requests - full screen display and when the full screen display is to be - disabled. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): - (WebKit::onFullscreenGtkKeyPressEvent): - (WebKit::ChromeClient::cancelFullScreen): - (WebKit::ChromeClient::enterFullScreenForElement): - (WebKit::ChromeClient::exitFullScreenForElement): - * WebCoreSupport/ChromeClientGtk.h: - * tests/testwebview.c: - * webkit/webkitwebview.cpp: - (webkit_web_view_real_entering_fullscreen): - (webkit_web_view_real_leaving_fullscreen): - (webkit_web_view_class_init): - * webkit/webkitwebview.h: - -2012-02-22 Ryosuke Niwa <rniwa@webkit.org> - - Remove the remaining uses of CSSStyleDeclaration in Editor - https://bugs.webkit.org/show_bug.cgi?id=78939 - - Reviewed by Enrica Casucci. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldApplyStyle): - * WebCoreSupport/EditorClientGtk.h: - (EditorClient): - -2012-02-22 Carlos Garcia Campos <cgarcia@igalia.com> - - Unreviewed, rolling out r107351. - http://trac.webkit.org/changeset/107351 - https://bugs.webkit.org/show_bug.cgi?id=53600 - - Several issues introduced in WebKitGTK+ API - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::chromeDestroyed): - (WebKit::ChromeClient::canRunModal): - (WebKit::ChromeClient::runModal): - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2012-02-21 Philippe Normand <pnormand@igalia.com> - - Fix one more GTK+ unit test after r108278. - - Reviewed by Alejandro G. Castro. - - * tests/testkeyevents.c: - (map_event_cb): No longer grab focus here. - (setup_keyevent_test): Grabbing focus here seems to be late enough in the process. - -2012-02-20 Martin Robinson <mrobinson@igalia.com> - - Fix GTK+ unit tests after r108281. - - Reviewed by Alejandro G. Castro. - - * tests/testwebplugindatabase.c: - (test_webkit_web_plugin_database_get_plugins): Update the description used - in the test. - -2012-02-20 Martin Robinson <mrobinson@igalia.com> - - Fix GTK+ unit tests after r108278. - - Reviewed by Alejandro G. Castro. - - Now that WebCore is no longer stealing focus, we need to - adjust where we grab focus to ensure that it actually succeeds. - - * tests/testcopyandpaste.c: - (map_event_cb): No longer grab focus here. - (runPasteTestCallback): Grabbing focus here seems to be late enough in the process. - -2012-02-20 Martin Robinson <mrobinson@igalia.com> - - [GTK] Web content oftens steals focus from other widgets - https://bugs.webkit.org/show_bug.cgi?id=77791 - - Reviewed by Gustavo Noronha Silva. - - * tests/testwebview.c: Added a WebKit1 test to verify this behavior. - -2012-02-20 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Needs to claim being a more up-to-date Chrome - https://bugs.webkit.org/show_bug.cgi?id=79044 - - Reviewed by Martin Robinson. - - * webkit/webkitwebsettings.cpp: - (chromeUserAgent): update the version of Chrome we claim to be - to avoid warnings from sites such as Wordpress saying that our - browser is outdated. - -2012-02-19 PaweÅ‚ Forysiuk <tuxator@o2.pl> - [GTK] Can't find webinspector and error page redirection on Windows - https://bugs.webkit.org/show_bug.cgi?id=51616 - - Use an abstraction for finding shared resources on Windows. - - Reviewed by Martin Robinson. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorFilesPath): - -2012-02-19 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed. Remove gsettings schema from EXTRA_DIST. - - * GNUmakefile.am: - -2012-02-19 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Remove unused GSettings stuff - https://bugs.webkit.org/show_bug.cgi?id=78995 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: remove GSettings-related stuff. - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit): Remove unused code. - * org.webkitgtk.gschema.xml.in: Removed. - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_execute_script): remove gsettings-related helper. - * webkit/webkitwebinspectorprivate.h: Ditto. - -2012-02-17 Gyuyoung Kim <gyuyoung.kim@samsung.com> - - [GTK] change the way of registering DeviceOrientation clients. - https://bugs.webkit.org/show_bug.cgi?id=78680 - - Reviewed by Gustavo Noronha Silva. - - Bug 78085 removed deviceOrientationClient and deviceMotionClient from PageClients. Instead, - DeviceOrientationClient and DeviceMotionClient should be registered by PageSupplement class. - Chromium, mac and qt ports are already changed by Bug 78085. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2012-02-16 Martin Robinson <mrobinson@igalia.com> - - [GTK] [AC] Events can starve accelerated compositing updates - https://bugs.webkit.org/show_bug.cgi?id=78826 - - Reviewed by Gustavo Noronha Silva. - - Instead of using a WebCore timer, which can be starved by GdkEvents, - use a raw GLib timer with GDK_PRIORITY_EVENTS to drive AC updates. - This prevents dragging from blocking rendering. - - * WebCoreSupport/AcceleratedCompositingContext.h: - (AcceleratedCompositingContext): Store a GLib source tag instead of a WebCore timer. - * WebCoreSupport/AcceleratedCompositingContextClutter.cpp: - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): - Remove the timer upon destruction. - (WebKit::syncLayersTimeoutCallback): Added this callback for the GLib timer. - (WebKit::AcceleratedCompositingContext::markForSync): Use a GLib timer. - (WebKit::AcceleratedCompositingContext::syncLayersTimeout): Ditto. - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): - (WebKit::AcceleratedCompositingContext::~AcceleratedCompositingContext): - Remove the timer upon destruction. - (WebKit::syncLayersTimeoutCallback): Added this callback for the GLib timer. - (WebKit::AcceleratedCompositingContext::markForSync): Use a GLib timer. - (WebKit::AcceleratedCompositingContext::syncLayersTimeout): Ditto. - -2012-02-16 Adam Barth <abarth@webkit.org> - - Attempt to fix the GTK build. - - * WebCoreSupport/GeolocationClientGtk.cpp: - (WebKit::GeolocationClient::requestPermission): - (WebKit::GeolocationClient::cancelPermissionRequest): - -2012-02-16 Sergio Villar Senin <svillar@igalia.com> - - [soup] Move important SoupSession feature initialization to WebCore - https://bugs.webkit.org/show_bug.cgi?id=68602 - - Reviewed by Martin Robinson. - - Moved content sniffer and decoder initialization from WebKit to - WebCore because network stuff will not work as expected without - them. - - No new tests required as we're just moving stuff from WebKit to - WebCore. - - * webkit/webkitglobals.cpp: - (webkitInit): - -2012-02-16 Philippe Normand <pnormand@igalia.com> - - Unreviewed, rolling out r107941. - http://trac.webkit.org/changeset/107941 - https://bugs.webkit.org/show_bug.cgi?id=68602 - - Broke 23 http tests on GTK - - * webkit/webkitglobals.cpp: - (webkitInit): - -2012-02-16 Sergio Villar Senin <svillar@igalia.com> - - [soup] Move important SoupSession feature initialization to WebCore - https://bugs.webkit.org/show_bug.cgi?id=68602 - - Reviewed by Martin Robinson. - - Moved content sniffer and decoder initialization from WebKit to - WebCore because network stuff will not work as expected without - them. - - No new tests required as we're just moving stuff from WebKit to - WebCore. - - * webkit/webkitglobals.cpp: - (webkitInit): - -2012-01-31 Raphael Kubo da Costa <kubo@profusion.mobi> - - [soup] Add support for multiple SoupSessions. - https://bugs.webkit.org/show_bug.cgi?id=77341 - - Reviewed by Gustavo Noronha Silva. - - Adapt to the changes to FrameNetworkingContext in WebCore. - - * GNUmakefile.am: - * WebCoreSupport/FrameNetworkingContextGtk.cpp: Copied from Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h. - (WebKit): - (WebKit::FrameNetworkingContextGtk::soupSession): Always return ResourceHandle::defaultSession(). - * WebCoreSupport/FrameNetworkingContextGtk.h: - (FrameNetworkingContextGtk): - -2012-02-15 Sadrul Habib Chowdhury <sadrul@chromium.org> - - Notify ChromeClient when touch-event handlers are installed/removed. - https://bugs.webkit.org/show_bug.cgi?id=77440 - - Reviewed by Darin Fisher and Ryosuke Niwa. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::numTouchEventHandlersChanged): - -2012-02-15 No'am Rosenthal <noam.rosenthal@nokia.com> - - [Texmap] Divide TextureMapperNode.cpp to 3 files. - https://bugs.webkit.org/show_bug.cgi?id=76660 - - Rename TextureMapperNode to TextureMapperLayer. - - Reviewed by Kenneth Rohde Christiansen. - - * WebCoreSupport/AcceleratedCompositingContext.h: - (AcceleratedCompositingContext): - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: - (WebKit::AcceleratedCompositingContext::AcceleratedCompositingContext): - (WebKit::AcceleratedCompositingContext::enabled): - (WebKit::AcceleratedCompositingContext::renderLayersToWindow): - (WebKit::AcceleratedCompositingContext::attachRootGraphicsLayer): - (WebKit::AcceleratedCompositingContext::syncLayersTimeout): - -2012-02-11 Nikolas Zimmermann <nzimmermann@rim.com> - - Convert svg/animations to use SMIL methods for driving the timeline - https://bugs.webkit.org/show_bug.cgi?id=78422 - - Reviewed by Dirk Schulze. - - Remove SVG animation sampling functionality provided for DRT, which no longer uses it. - Instead we switched the svg/animations tests to use SVGSVGElement.setCurrentTime. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-02-13 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Add GSList to the list of GObject types in GOwnPtr - https://bugs.webkit.org/show_bug.cgi?id=78487 - - Reviewed by Philippe Normand. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runOpenPanel): Use GOwnPtr<GSList> for the - list of filenames returned by gtk_file_chooser_get_filenames(). - -2012-02-09 Zan Dobersek <zandobersek@gmail.com> - - [GTK] Add DRT support for modal dialogs - https://bugs.webkit.org/show_bug.cgi?id=53600 - - Reviewed by Martin Robinson. - - Add support for running modal dialogs. - - A new signal is added to the WebKitWebView. When emitted, the web view - is requesting to be displayed as a modal dialog. If accepted, the - ChromeClient then establishes a loop that is run until the chrome is destroyed. - If denied, nothing is done. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::chromeDestroyed): - (WebKit::ChromeClient::canRunModal): - (WebKit::ChromeClient::runModal): - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2012-02-09 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] security/set-form-autocomplete-attribute.html fails - https://bugs.webkit.org/show_bug.cgi?id=78261 - - Reviewed by Martin Robinson. - - Add a helper function to DumpRenderTreeSupportGtk, returning - whether or not an element does perform autocompletion. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::elementDoesAutoCompleteForElementWithId): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - (DumpRenderTreeSupportGtk): - -2012-02-09 Martin Robinson <mrobinson@igalia.com> - - Build fix for GTK+ 2.x after my previous commit. - - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): The name of the event is expose_event and not expose. - -2012-02-08 Dan Vrátil <dvratil@redhat.com>, Milan Crha <mcrha@redhat.com> - - [GTK] Embedded GtkWidgets are not drawn - https://bugs.webkit.org/show_bug.cgi?id=63451 - - Insert plugin widgets to WebKitWebView container as it's children. - Chain up to parent in webkit_web_view_draw() to ensure the child widgets are drawn. - - Reviewed by Martin Robinson. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - * webkit/webkitwebview.cpp: - (webkit_web_view_draw): - -2012-02-08 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] atk_text_get_text_at_offset() fails to provide the correct line for list items whose text wraps - https://bugs.webkit.org/show_bug.cgi?id=73431 - - Reviewed by Chris Fleizach. - - Updated unit test to check text wrapping accross different lines - inside list items with bullet markers. - - * tests/testatk.c: - (testWebkitAtkGetTextAtOffsetWithSpecialCharacters): Updated test. - -2012-02-06 Martin Robinson <mrobinson@igalia.com> and Nayan Kumar K <nayankk@motorola.com> - - [GTK] Add TextureMapperGL implementation - https://bugs.webkit.org/show_bug.cgi?id=75308 - - Reviewed by Alejandro G. Castro. - - * GNUmakefile.am: Add AcceleratedCompositingContextGL to the list. - * WebCoreSupport/AcceleratedCompositingContext.h: - (AcceleratedCompositingContext): Added some members for AcceleratedCompositingContextGL. - * WebCoreSupport/AcceleratedCompositingContextClutter.cpp: Added empty implementations - for GraphicsLayerClient. This is only used for the GL variant. - * WebCoreSupport/AcceleratedCompositingContextGL.cpp: Added. - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::performAllPendingScrolls): Update the root layer while scrolling. - (WebKit::ChromeClient::paint): Update the root layer after painting. - * webkit/webkitwebsettings.cpp: Added an enable-accelerated-compositing setting. - * webkit/webkitwebsettingsprivate.h: Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_draw): Call into TextureMapper now. - (webkit_web_view_realize): Use gdk_window_ensure_native here. - (webkit_web_view_update_settings): Support the new enable-accelerated-compositing setting. - (webkit_web_view_settings_notify): Ditto. - -2012-02-06 Gustavo Noronha Silva <gns@gnome.org> - - Do not try to chdir to the directory where the executable is in - only if the path is absolute. This makes tests runnable from - anywhere. - - Reviewed by Martin Robinson. - - * tests/test_utils.c: - (testutils_relative_chdir): - -2012-02-06 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed fix for the new API test that is failing - - WEBKIT_INSPECTOR_PATH needs to be set, since we do not install our - builds. - - * tests/testwebinspector.c: - (main): - -2012-02-05 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Insta-crash when closing browser with inspector window opened - https://bugs.webkit.org/show_bug.cgi?id=50744 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::releaseFrontendPage): also let go of the - frontend client when releasing the frontend page; - (WebKit::InspectorFrontendClient::~InspectorFrontendClient(): Call releaseFrontendPage() - like other ports do instead of just disconnectFrontendClient(). - (WebKit::InspectorFrontendClient::destroyInspectorWindow): Use GRefPtr for the - inspector ref. - (WebKit::InspectorFrontendClient::bringToFront): Adjust for GRefPtr usage. - (WebKit::InspectorFrontendClient::attachWindow): Ditto. - (WebKit::InspectorFrontendClient::detachWindow): Ditto. - (WebKit::InspectorFrontendClient::inspectedURLChanged): Ditto. - * WebCoreSupport/InspectorClientGtk.h: - (InspectorFrontendClient): Use GRefPtr for inspector member. - * tests/testwebinspector.c: Added. Test that killing a WebView with the inspector - open does not crash, and that closing and reinspecting works. - (quitLoop): - (consoleMessageCallback): - (inspectElementCallback): - (closeInspector): - (showInspector): - (test_webkit_web_inspector_close_and_inspect): - (test_webkit_web_inspector_destroy_inspected_web_view): - (main): - -2012-02-06 Gustavo Noronha Silva <gns@gnome.org> - - Add a null check for the gdkwindow, that will happen if the window - is not mapped. - - Reviewed by Martin Robinson. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setCursor): - -2012-02-06 Martin Robinson <mrobinson@igalia.com> - - [GTK] WebKitWebView does a lot of work during size_allocate when not mapped - https://bugs.webkit.org/show_bug.cgi?id=77743 - - Reviewed by Gustavo Noronha Silva. - - Instead of resizing the guts of a WebView when it's not mapped, wait - until it's mapped and do one resize. This prevents unmapped WebViews - from adding to a container's resize cost. - - * webkit/webkitwebview.cpp: - (resizeWebViewFromAllocation): Abstracted out this helper. - (webkit_web_view_size_allocate): Wait until map to resize umapped widgets. - (webkitWebViewMap): Added this vmethod implementation. - (webkit_web_view_class_init): Added vmethod. - * webkit/webkitwebviewprivate.h: Added new needsResizeOnMap member. - -2012-02-06 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.7.5 release - https://bugs.webkit.org/show_bug.cgi?id=77859 - - Reviewed by Philippe Normand. - - * NEWS: Added release notes for 1.7.5. - -2012-02-06 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Fix several gtkdoc-fixxref warnings - https://bugs.webkit.org/show_bug.cgi?id=77613 - - Reviewed by Martin Robinson. - - * docs/webkitgtk-docs.sgml: Remove webkitspellcheckerenchant - section. - * docs/webkitgtk-sections.txt: Remove webkitspellcheckerenchant - symbols and move WebKitWebNavigationReason from the private - section to the global section. - * webkit/webkitwebnavigationaction.h: Document - WebKitWebNavigationReason enum. - -2012-02-02 Kalev Lember <kalevlember@gmail.com> - - [GTK] Don't use uint - https://bugs.webkit.org/show_bug.cgi?id=77678 - - Reviewed by Martin Robinson. - - With the MingGW cross compiler toolchain in Fedora, uint wasn't - defined, so use unsigned int instead. - - * WebCoreSupport/ChromeClientGtk.h: - (ChromeClient): Use unsigned int instead of uint - -2012-02-02 Claudio Saavedra <csaavedra@igalia.com> and Martin Robinson <mrobinson@igalia.com> - - [GTK] WebKitWebView won't work in a GtkOffscreenWindow - https://bugs.webkit.org/show_bug.cgi?id=76911 - - Reviewed by Philippe Normand. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowRect): Use the new widgetIsOnscreenToplevelWindow helper. - (WebKit::ChromeClient::setWindowRect): Ditto. - (WebKit::ChromeClient::unfocus): Ditto. - (WebKit::ChromeClient::runOpenPanel): Ditto. - * tests/testwebview.c: Added a test to ensure that loading a page in an offscreen window does not crash. - * webkit/webkitglobals.cpp: - (currentToplevelCallback): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_print_full): - (webkit_web_frame_print): - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): - (webkit_web_view_script_dialog): - -2012-02-02 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] atk_text_get_text_at_offset() sometimes fails to provide the correct line - https://bugs.webkit.org/show_bug.cgi?id=72382 - - Reviewed by Martin Robinson. - - New unit test to ensure the right line is retrieved for the first - position of each line in a multiline preformatted portion of text. - - * tests/testatk.c: - (testWebkitAtkGetTextAtOffsetWithPreformattedText): New unit test. - (main): Add the new unit test. - -2012-02-01 Philippe Normand <pnormand@igalia.com> - - [GStreamer] FFTFrame implementation - https://bugs.webkit.org/show_bug.cgi?id=73545 - - Reviewed by Chris Rogers. - - * GNUmakefile.am: Remove libfftw compilation flags. - -2012-02-01 Philippe Normand <pnormand@igalia.com> - - [GTK] unittests/testloading crashes - https://bugs.webkit.org/show_bug.cgi?id=77544 - - Reviewed by Xan Lopez. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoading): Bail out - early from dispatchDidFailLoading if the error is the result of an - interrupted load. - -2012-02-01 Philippe Normand <pnormand@igalia.com> and Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Improve FrameLoader signals. Resource loading - https://bugs.webkit.org/show_bug.cgi?id=49543 - - New signals: - WebKitWebFrame::resource-request-starting - WebKitWebFrame::resource-response-received - WebKitWebFrame::resource-load-finished - WebKitWebFrame::resource-content-length-received - WebKitWebFrame::resource-load-failed - WebKitWebResource::response-received - WebKitWebResource::load-failed - WebKitWebResource::load-finished - WebKitWebResource::content-length-received - WebKitWebView::resource-response-received - WebKitWebView::resource-load-finished - WebKitWebView::resource-content-length-received - WebKitWebView::resource-load-failed - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::dispatchDidReceiveResponse): - (WebKit::FrameLoaderClient::dispatchDidReceiveContentLength): - (WebKit::FrameLoaderClient::dispatchDidFinishLoading): - (WebKit::FrameLoaderClient::dispatchDidFailLoading): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - * webkit/webkitwebresource.cpp: - (webkit_web_resource_class_init): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - * webkitmarshal.list: - -2012-01-23 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Refactor GTK's accessibilitity code to be more modular - https://bugs.webkit.org/show_bug.cgi?id=76783 - - Reviewed by Martin Robinson. - - Update callers to WebKitAccessible's public functions. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getFocusedAccessibleElement): - (modifyAccessibilityValue): - (DumpRenderTreeSupportGtk::accessibilityHelpText): - -2012-01-22 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Refactor GTK's accessibilitity code to be more modular - https://bugs.webkit.org/show_bug.cgi?id=76783 - - Reviewed by Martin Robinson. - - Update the include for the AccessibilityObject wrapper header. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Update include. - * webkit/webkitwebframe.cpp: Ditto. - -2012-01-22 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] ATK text-caret-moved and text-selection-changed events not being emitted - https://bugs.webkit.org/show_bug.cgi?id=76069 - - Reviewed by Martin Robinson. - - Update caret browsing related unit tests to check emissions of - 'text-caret-moved' and 'text-selection-changed' signals. - - * tests/testatk.c: - (textCaretMovedCallback): New callback for 'text-caret-moved'. - (testWebkitAtkCaretOffsets): Check emissions of 'text-caret-moved'. - (textSelectionChangedCallback): New callback for 'text-selection-changed'. - (testWebkitAtkTextSelections): Check emissions of 'text-selection-changed'. - -2012-01-18 Evan Nemerson <evan@coeus-group.com> - - [GTK] WebKit-3.0.gir does not include information about C includes or exported packages - https://bugs.webkit.org/show_bug.cgi?id=49875 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: Add some information to the GIR generator to fix - Vala binding generation. - -2012-01-18 Carlos Garnacho <carlosg@gnome.org> - - [GTK] Listen to GDK_SCROLL_MASK - https://bugs.webkit.org/show_bug.cgi?id=76529 - - Set GDK_SCROLL_MASK explicitly, as WebKitWebView does handle - scroll events, scrolling currently works because GTK+ happens - to send such events to widgets listening to GDK_BUTTON_PRESS_MASK, - but this isn't the intended behavior, so it's subject to change. - - Reviewed by Martin Robinson. - - * webkit/webkitwebview.cpp: - (webkit_web_view_realize): - -2012-01-17 Martin Robinson <mrobinson@igalia.com> - - [Gtk] Input text field not repainted when value is changed - https://bugs.webkit.org/show_bug.cgi?id=76279 - - Reviewed by Gustavo Noronha Silva. - - Force pending relayouts before freezing the dirty region in a temporary. - This prevents the following code from throwing the dirty updates away - after the original paint is finished. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::paintWebView): Remove the relayout. - (WebKit::ChromeClient::paint): Move the relayout here, before the - dirty region is frozen. - -2012-01-16 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.7.4 release - https://bugs.webkit.org/show_bug.cgi?id=76375 - - Reviewed by Philippe Normand. - - * NEWS: Added release notes for 1.7.4. - -2012-01-13 Mario Sanchez Prada <msanchez@igalia.com> - - Unreviewed, rolling out r104905. - http://trac.webkit.org/changeset/104905 - https://bugs.webkit.org/show_bug.cgi?id=76267 - - This patch broke tests in the GTK 64bit Debug bot (Requested - by msanchez on #webkit). - - * tests/testatk.c: - (testWebkitAtkCaretOffsets): - (testWebkitAtkTextSelections): - -2012-01-13 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] ATK text-caret-moved and text-selection-changed events not being emitted - https://bugs.webkit.org/show_bug.cgi?id=76069 - - Reviewed by Martin Robinson. - - Update caret browsing related unit tests to check emissions of - 'text-caret-moved' and 'text-selection-changed' signals. - - * tests/testatk.c: - (textCaretMovedCallback): New callback for 'text-caret-moved'. - (testWebkitAtkCaretOffsets): Check emissions of 'text-caret-moved'. - (textSelectionChangedCallback): New callback for 'text-selection-changed'. - (testWebkitAtkTextSelections): Check emissions of 'text-selection-changed'. - -2012-01-12 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] Removed duplicated unit test. - - The unit test testWebkitAtkGetTextAtOffsetForms is exactly the - same test case than testWebkitAtkGetTextAtOffset, so it makes no - sense to have it duplicated. - - Rubber-stamped by Martin Robinson. - - * tests/testatk.c: - (main): Removed testWebkitAtkGetTextAtOffsetForms. - -2012-01-10 Mario Sanchez Prada <msanchez@igalia.com> - - AX: support helpText() in DumpRenderTree - https://bugs.webkit.org/show_bug.cgi?id=40193 - - Reviewed by Chris Fleizach. - - Add support for retrieving WebCore's AccessibilityObject's - helpText from the GTK DumpRenderTree. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::accessibilityHelpText): Returns result - of calling to helpText() over the core accessibility object's. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2012-01-09 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] Regression: text-inserted events lack text inserted and current line - https://bugs.webkit.org/show_bug.cgi?id=72830 - - Reviewed by Martin Robinson. - - Updated unit tests to check that both getting the current position - for the caret and the exposed text at, before or after a given - offset for an accessible object works as expected. - - * tests/testatk.c: - (runGetTextTests): For objects implementing AtkEditableText, try - to change the exposed text and retrieve it again as a full line. - (testWebkitAtkCaretOffsets): For a text control (a text entry), - set the caret offset to a value greater than 1 and retrieve it. - -2012-01-05 Martin Robinson <mrobinson@igalia.com> - - [GTK] [AC] Introduce AcceleratedCompositingContext to isolate different accelerated compositing implementations - https://bugs.webkit.org/show_bug.cgi?id=75519 - - Reviewed by Alejandro G. Castro. - - Add an AcceleratedCompositingContext which will isolate all the different accelerated compositing - implementations from one another. For right now this just includes the Clutter version. - - * GNUmakefile.am: Add the new files to the source list. - * WebCoreSupport/AcceleratedCompositingContext.h: Added. - * WebCoreSupport/AcceleratedCompositingContextClutter.cpp: Added. Existing - clutter AC code has moved here. - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::attachRootGraphicsLayer): Use the new AccleratedCompositingContext now - instead of calling into the WebView. - (WebKit::ChromeClient::setNeedsOneShotDrawingSynchronization):Ditto. - (WebKit::ChromeClient::scheduleCompositingLayerSync): Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_size_allocate): Call in the ACContext. - (webkit_web_view_init): Initialize the ACContext. - * webkit/webkitwebviewprivate.h: Add the ACContext as a private member. - -2012-01-03 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Use gdk_screen_get_monitor_workarea() when available for screenAvailableRect() - https://bugs.webkit.org/show_bug.cgi?id=75435 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: Make sure unit tests link to X11. - -2011-12-20 Yuta Kitamura <yutak@chromium.org> - - [GTK] Change default WebSocket protocol to the latest one - https://bugs.webkit.org/show_bug.cgi?id=74064 - - Reviewed by Martin Robinson. - - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - Use hybi WebSocket protocol by default. - -2011-12-19 Sam Weinig <sam@webkit.org> - - More PlatformEvent cleanup - https://bugs.webkit.org/show_bug.cgi?id=74831 - - Reviewed by Dan Bernstein. - - * webkit/webkitwebview.cpp: - (webkit_web_view_forward_context_menu_event): - (webkit_web_view_get_hit_test_result): - Update to use new names, access style. - -2011-12-16 Ryosuke Niwa <rniwa@webkit.org> - - Rename registerCommandFor(Undo|Redo) to register(Undo|Redo)Step - https://bugs.webkit.org/show_bug.cgi?id=74748 - - Reviewed by Eric Seidel. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::registerUndoStep): - (WebKit::EditorClient::registerRedoStep): - * WebCoreSupport/EditorClientGtk.h: - -2011-12-16 Sam Weinig <sam@webkit.org> - - Give PlatformEvents a base class - https://bugs.webkit.org/show_bug.cgi?id=74685 - - Reviewed by Anders Carlsson. - - Add a base class for PlatformMouseEvent, PlatformKeyboardEvent, PlatformWheelEvent - and PlatformGestureEvent and move Type enumeration and modifiers down to it. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): - -2011-12-16 Ryosuke Niwa <rniwa@webkit.org> - - Only EditCommandComposition should implement unapply and reapply - https://bugs.webkit.org/show_bug.cgi?id=74490 - - Reviewed by Eric Seidel. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::registerCommandForUndo): - (WebKit::EditorClient::registerCommandForRedo): - (WebKit::EditorClient::undo): - (WebKit::EditorClient::redo): - * WebCoreSupport/EditorClientGtk.h: - -2011-12-16 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.7.3 release - https://bugs.webkit.org/show_bug.cgi?id=74699 - - Reviewed by Philippe Normand. - - * NEWS: Added release notes for 1.7.3. - -2011-12-14 Jing Zhao <jingzhao@chromium.org> - - Opening two popup menus by dispatchEvent() makes problems. - https://bugs.webkit.org/show_bug.cgi?id=73304 - - Reviewed by Kent Tamura. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::hasOpenedPopup): Not implemented. - * WebCoreSupport/ChromeClientGtk.h: Overrides hasOpenedPopup(). - -2011-12-12 Ryosuke Niwa <rniwa@webkit.org> - - WebKit code shouldn't be calling applyCommand directly - https://bugs.webkit.org/show_bug.cgi?id=74337 - - Reviewed by Darin Adler. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_replace_selection): - -2011-12-12 Martin Robinson <mrobinson@igalia.com> - - [GTK] gtk_widget_size_allocate for plugin widgets should happen in the WebView size-allocate method - https://bugs.webkit.org/show_bug.cgi?id=72805 - - Reviewed by Gustavo Noronha Silva. - - Instead of immediately calling gtk_widget_size during painting, defer - this until the size-allocate method of the WebView. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::paint): If any child widgets have a pending allocation - call gtk_widget_size_allocate. - * webkit/webkitwebview.cpp: - (updateChildAllocationFromPendingAllocation): Added this helper. - (webkit_web_view_size_allocate): Call the helper on all child widgets. - -2011-12-09 Joone Hur <joone.hur@collabora.co.uk> - - [GTK] Initial implementation of Accelerated Compositing using Clutter - https://bugs.webkit.org/show_bug.cgi?id=73319 - - This patch allows to add a GtkClutterEmbed to embed Clutter Actors in WebKitWebView and - set the root GraphicsLayer to WebKitWebView when Accelerated Compositing needs to be enabled. - - Reviewed by Gustavo Noronha Silva. - - * GNUmakefile.am: - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::attachRootGraphicsLayer): Set the root GraphicsLayer to WebKitWebView. - (WebKit::ChromeClient::allowedCompositingTriggers): Allow to support CSS 3D Transforms only. - * webkit/webkitglobals.cpp: - (webkitInit): Call gtk_clutter_init(). - * webkit/webkitwebview.cpp: - (webkit_web_view_size_allocate): Set the size of GtkClutterEmbed when the view is changed. - (webkit_web_view_init) - (webViewSetRootGraphicsLayer): Add the GtkClutterEmbed to the WebKitWebView as a child. - (webViewDetachRootGraphicsLayer): Remove the GtkClutterEmbed from the WebKitWebView. - (webViewSyncLayers): Commit layer changes. - (webViewMarkForSync): Set to call webViewSyncLayers using g_timeout_add. - * webkit/webkitwebviewprivate.h: - -2011-12-07 Mary Wu <mary.wu@torchmobile.com.cn> - - Change function name InitializeLoggingChannelsIfNecessary to follow coding style guideline - https://bugs.webkit.org/show_bug.cgi?id=73986 - - Reviewed by Kenneth Rohde Christiansen. - - * webkit/webkitglobals.cpp: - (webkitInit): - -2011-12-05 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Move emissions of AtkDocument signals down to WebCore - https://bugs.webkit.org/show_bug.cgi?id=73750 - - Reviewed by Chris Fleizach. - - Removed code for emission of AtkDocument signals. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyStatus): Removed no longer used code. - -2011-12-04 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] Check for the load-complete event only in the unit tests. - - There is currently a known issue happening in debug builds when - reloading the webview if it was loaded before through the function - webkit_web_view_load_string, resulting in a ASSERT failing (see - bug 50331) so we can't check for the reload event here, since it - makes the test to fail. Fortunately, checking for load-complete - event is a good enough test, so this small patch is about that. - - Rubber-stamped by Philippe Normand. - - * tests/testatk.c: - (testWebkitAtkDocumentLoadingEvents): Don't load and then reload - to check events, just load once and check whether the - 'load-complete' event has happened. - -2011-12-03 Mario Sanchez Prada <msanchez@igalia.com> - - Removing document related events from DRT - - [GTK] Don't log document events in DRT - https://bugs.webkit.org/show_bug.cgi?id=73746 - - Reviewed by Martin Robinson. - - New unit test to check events when reloading a document. This - replaces the former document-reload-events.html layout test. - - * tests/testatk.c: - (updateLoadingEventsResult): New, updates a global variable to - allow checking later on that the right signals were emmitted. - (documentLoadingEventCallback): New, global listener for load-complete - and reload signals over the document object (the web area). - (testWebkitAtkDocumentLoadingEvents): New unit test, globally - connects to document-related signals and check they are properly - emitted when reloading the web view. - (main): Added new test. - -2011-12-03 Xan Lopez <xlopez@igalia.com> - - [GTK] Implement History API FrameLoaderClient methods - https://bugs.webkit.org/show_bug.cgi?id=59017 - - Reviewed by Gustavo Noronha Silva. - - Fake the load process when the new HTML5 History APIs are - used. Otherwise the UA does not have a chance of updating the URL - entry, back/forward buttons, etc. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidNavigateWithinPage): fake a - load process. - (WebKit::FrameLoaderClient::dispatchDidPushStateWithinPage): call - dispatchDidNavigateWithinPage. - (WebKit::FrameLoaderClient::dispatchDidReplaceStateWithinPage): - ditto. - (WebKit::FrameLoaderClient::dispatchDidPopStateWithinPage): do - nothing, because push was already called, but note this in a - comment. - * WebCoreSupport/FrameLoaderClientGtk.h: add the new method. - -2011-12-02 Philippe Normand <pnormand@igalia.com> - - [GStreamer] Fullscreen controller support for the new WebKit Fullscreen API - https://bugs.webkit.org/show_bug.cgi?id=66968 - - Reviewed by Martin Robinson. - - If the element being fullscreened is a video use the native - fullscreen controls. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::enterFullScreenForElement): - (WebKit::ChromeClient::exitFullScreenForElement): - -2011-12-01 Philippe Normand <pnormand@igalia.com> - - [GTK] scrollbars interfering with fullscreen (in-window) video rendering - https://bugs.webkit.org/show_bug.cgi?id=73577 - - Reviewed by Martin Robinson. - - Disable scrollbars when switching to fullscreen. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::contentsSizeChanged): Ignore size changes - when an element is being displayed fullscreen. - (WebKit::ChromeClient::enterFullScreenForElement): Disable - scrollbars when entering fullscreen. - * WebCoreSupport/GtkAdjustmentWatcher.cpp: Added 2 methods to - enable/disable scrollbars and one method to know whether they are - enabled or not. - (WebKit::GtkAdjustmentWatcher::GtkAdjustmentWatcher): - (WebKit::updateAdjustmentFromScrollbar): - (WebKit::GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars): - (WebKit::GtkAdjustmentWatcher::updateAdjustmentsFromScrollbarsLater): - (WebKit::GtkAdjustmentWatcher::disableAllScrollbars): - (WebKit::GtkAdjustmentWatcher::enableAllScrollbars): - * WebCoreSupport/GtkAdjustmentWatcher.h: - (WebKit::GtkAdjustmentWatcher::scrollbarsDisabled): - -2011-11-21 Philippe Normand <pnormand@igalia.com> - - [GTK] enable-webaudio websetting - https://bugs.webkit.org/show_bug.cgi?id=69836 - - Reviewed by Martin Robinson. - - * webkit/webkitwebsettings.cpp: New enable-webaudio boolean - setting, set to FALSE by default. - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: Ditto. - * webkit/webkitwebview.cpp: Update WebCore settings when - enable-webaudio value changes. - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2011-11-30 Alexey Proskuryakov <ap@apple.com> - - Remove an unneeded argument from FrameLoaderClient::download - https://bugs.webkit.org/show_bug.cgi?id=73486 - - Reviewed by Andreas Kling. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::download): - * WebCoreSupport/FrameLoaderClientGtk.h: - Updated for the change. - -2011-11-30 Alejandro G. Castro <alex@igalia.com> - - [GTK] Add TextureMapperCairo boilerplate implementation - https://bugs.webkit.org/show_bug.cgi?id=73440 - - Add texture mapper glue to the widget and chrome client. - - Reviewed by Martin Robinson. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::attachRootGraphicsLayer): - (WebKit::ChromeClient::setNeedsOneShotDrawingSynchronization): - (WebKit::ChromeClient::scheduleCompositingLayerSync): - (WebKit::ChromeClient::allowedCompositingTriggers): - * webkit/webkitwebview.cpp: - (webViewSetRootGraphicsLayer): - (webViewMarkForSync): - * webkit/webkitwebviewprivate.h: - -2011-11-30 Philippe Normand <pnormand@igalia.com> - - [GTK] HTML5 Youtube video fullscreen button doesn't work - https://bugs.webkit.org/show_bug.cgi?id=73456 - - Reviewed by Martin Robinson. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): Ignore - withKeyboard argument value, like Chrome's implementation. - -2011-11-29 Sergio Villar Senin <svillar@igalia.com> - - [GTK] SIGSEV when a WebKitDownload fails - https://bugs.webkit.org/show_bug.cgi?id=72883 - - Reviewed by Xan Lopez. - - After r100769 http status codes >= 400 trigger download - failures. We must ensure that the download is properly cancelled - before clearing the ResourceHandle client to avoid crashes. - - * webkit/webkitdownload.cpp: - (DownloadClient::didReceiveResponse): - -2011-11-29 Martin Robinson <mrobinson@igalia.com> - - [GTK] Custom fonts on surlybikes.com and boingboing.net do not load - https://bugs.webkit.org/show_bug.cgi?id=69115 - - Reviewed by Gustavo Noronha Silva. - - Instead of pretending to be Safari/Linux, pretend to be a Linux Chrome. - This fixes pages that assume that if a browser is Safari, but not OS X, it is - the iOS version of Safari. - - * tests/testwebsettings.c: - (test_webkit_web_settings_user_agent): Update the test to reflect that the - user agent does not change. - * webkit/webkitwebsettings.cpp: - (chromeUserAgent): Renamed this from webkitUserAgent to more accurately - describe what it is. - (webkit_web_settings_class_init): Just use an empty string when initializing - the user agent to reduce code duplication. - (webkit_web_settings_set_property): Updated to reflect new method name. - (userAgentForURL): We don't need to special case Google Calendar any longer. - -2011-11-29 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] Regression: text-inserted events lack text inserted and current line - https://bugs.webkit.org/show_bug.cgi?id=72830 - - Reviewed by Chris Fleizach. - - Updated unit test to handle the new 'text-insert' and - 'text-remove' signals, instead of the 'text-changed' one. - - * tests/testatk.c: - (textChangedCb): Update a global variable with the result of the - text change, so we can check its value later. - (testWebkitAtkTextChangedNotifications): Connect to the - 'text-insert' and 'text-remove' signals and check, in a way more - carefully way than it was done before, that the signals are being - properly emitted, and that the information attached to them is the - right one for each case (insert/remove, offset, count and text). - -2011-11-28 Stefan Zwanenburg <stefanhetzwaantje@gmail.com> - - WebKitGTK+-1.7.2 build error due to a reference to gdk_disable_multidevice() - https://bugs.webkit.org/show_bug.cgi?id=73206 - - Reviewed by Martin Robinson. - - * tests/testatk.c: - (initializeTestingFramework): Don't use gdk_disable_multidevice() - when using GTK2. - -2011-11-26 Pavel Feldman <pfeldman@google.com> - - Web Inspector: remove disconnectFromBackend from the protocol. - https://bugs.webkit.org/show_bug.cgi?id=73127 - - Reviewed by Yury Semikhatsky. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::closeInspectorFrontend): - * WebCoreSupport/InspectorClientGtk.h: - -2011-11-26 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r101193. - http://trac.webkit.org/changeset/101193 - https://bugs.webkit.org/show_bug.cgi?id=73158 - - Breaks Windows and Qt minimal. (Requested by pfeldman on - #webkit). - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorFrontendClient::disconnectFromBackend): - * WebCoreSupport/InspectorClientGtk.h: - -2011-11-26 Pavel Feldman <pfeldman@google.com> - - Web Inspector: remove disconnectFromBackend from the protocol. - https://bugs.webkit.org/show_bug.cgi?id=73127 - - Reviewed by Yury Semikhatsky. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::closeInspectorFrontend): - * WebCoreSupport/InspectorClientGtk.h: - -2011-11-17 Martin Robinson <mrobinson@igalia.com> - - [GTK] Integrate build-gtkdoc into build-webkit and make - https://bugs.webkit.org/show_bug.cgi?id=72626 - - Reviewed by Philippe Normand. - - * docs/GNUmakefile.am: Removed. - * docs/version.xml.in: Removed. - -2011-11-23 Kaustubh Atrawalkar <kaustubh@motorola.com> - - Documentation fix for load-committed in webkitwebframe - https://bugs.webkit.org/show_bug.cgi?id=72927 - - Reviewed by Martin Robinson. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - -2011-11-22 Pavel Feldman <pfeldman@google.com> - - Web Inspector: remove Inspector::bringToFront from the protocol. - https://bugs.webkit.org/show_bug.cgi?id=72937 - - Reviewed by Yury Semikhatsky. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::bringFrontendToFront): - * WebCoreSupport/InspectorClientGtk.h: - -2011-11-22 Pavel Feldman <pfeldman@google.com> - - Web Inspector: strip unused InspectorController methods. - https://bugs.webkit.org/show_bug.cgi?id=72886 - - Reviewed by Yury Semikhatsky. - - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_set_property): - (webkit_web_inspector_get_property): - -2011-11-21 Yuta Kitamura <yutak@chromium.org> - - [GTK] Enable WebSocket hybi tests - https://bugs.webkit.org/show_bug.cgi?id=72870 - - Reviewed by Xan Lopez. - - Change the settings value through DumpRenderTreeSupportGtk, because we do not - want to expose this as a public API. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setHixie76WebSocketProtocolEnabled): - Change the value of a flag in WebCore::Settings. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-11-21 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.7.2 release - https://bugs.webkit.org/show_bug.cgi?id=72868 - - Reviewed by Xan Lopez. - - * NEWS: Added release notes for 1.7.2. - -2011-10-17 Antonio Gomes <agomes@rim.com> - - Pass a Frame* parameter in EditorClient::respondToChangedSelection - https://bugs.webkit.org/show_bug.cgi?id=70248 - - Reviewed by Ryosuke Niwa. - - * WebCoreSupport/EditorClientGtk.cpp: Make use of the newly added Frame* parameter. - (WebKit::EditorClient::respondToChangedSelection): - * WebCoreSupport/EditorClientGtk.h: - -2011-11-18 Martin Robinson <mrobinson@igalia.com> - - REGRESSION (r99924): broke 2 pasteboard tests on GTK - https://bugs.webkit.org/show_bug.cgi?id=72131 - - Reviewed by Tony Chang. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::setSelectionPrimaryClipboardIfNeeded): Use the new clearAll method. - -2011-11-18 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Accessibility API tests not loading Gtk's accessibility implementation - https://bugs.webkit.org/show_bug.cgi?id=72732 - - Reviewed by Philippe Normand. - - Ensure that the GAIL module is being loaded by avoiding using - gtk_test_init() directly, but a modified version of it. - - * tests/testatk.c: - (testWebkitAtkParentForRootObject): Use a normal GtkWidget (a - GtkWindow) as the parent container for the webView, instead of - using a dummy webView for that, which was hackish. - (testWebkitAtkSetParentForObject): Use normal GtkWidgets instead - of dummy webViews (a GtkWindow and a GtkButton). - (initializeTestingFramework): New function, identical to - gtk_test_init(), but loading GAIL as the only GTK module. - (main): Use initializeTestingFramework(). - -2011-11-18 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Downloads not started by WebView only fail for transport errors - https://bugs.webkit.org/show_bug.cgi?id=72718 - - Reviewed by Martin Robinson. - - Abort the download with an error if the response contains an - error code. It adds a new test case to the download unit tests. - - * tests/testdownload.c: - (notifyDownloadStatusCallback): - (serverCallback): - (test_webkit_download_not_found): - (main): - * webkit/webkitdownload.cpp: - (DownloadClient::didReceiveResponse): Check whether http status of - the response is an error code and emit error signal in such case. - -2011-11-18 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Accessibility API tests failing because of using non-WebKit GtkWidgets - https://bugs.webkit.org/show_bug.cgi?id=72708 - - Reviewed by Xan Lopez. - - Do not use non-WebKit GtkWidget's in unit tests, to avoid problems - when GTK's accessibility implementation is not being loaded. - - * tests/testatk.c: - (testWebkitAtkParentForRootObject): Use a dummy WebKitWebView - widget as the parent container needed for this unit test. - (testWebkitAtkSetParentForObject): Ditto. - -2011-11-17 Martin Robinson <mrobinson@igalia.com> - - [GTK] Remove the last remaining WebKit1 gtkdoc warnings - https://bugs.webkit.org/show_bug.cgi?id=72627 - - Reviewed by Philippe Normand. - - * webkit/webkitdownload.h: Add missing enum documentation. - * webkit/webkiterror.h: Ditto. - * webkit/webkitwebview.h: Ditto. - -2011-11-17 Mario Sanchez Prada <msanchez@igalia.com> - - [Gtk] Ensure the parent for the webView's a11y object is set. - - This should fix some accessibility related GTK API tests. - - Rubber-stamped by Philippe Normand. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_accessible): Always set the parent to make - navigation across GTK and WebKit worlds work properly. - -2011-11-17 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Consider parent AtkObject in webkit_accessible_get_parent(), if already set - https://bugs.webkit.org/show_bug.cgi?id=72525 - - Reviewed by Xan Lopez. - - * tests/testatk.c: - (testWebkitAtkSetParentForObject): New unit test to check that - calls to atk_object_get_parent() over a WebKitGTK's accessibility - wrapper object returns its parent AtkObject if previously set. - (main): Added new test. - -2011-11-17 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] ATK API tests failing because of patch for bug 72390 - https://bugs.webkit.org/show_bug.cgi?id=72592 - - Reviewed by Philippe Normand. - - * tests/testatk.c: - (testWebkitAtkParentForRootObject): Remove the offending line in - the unit test, which is not actually required to test the new - functionality and causes problems in some scenarios, due to the - lazy creation mechanism of AtkObjects. - - * tests/testatkroles.c: - (finish_loading): Reflect that the document frame object is no - longer the root accessibility object (a scroll pane from now on), - but the only child of that one. Thus, skip that root object. - -2011-11-16 Mario Sanchez Prada <msanchez@igalia.com> - - [GTK] Do not hide accessibility root object from AT's - https://bugs.webkit.org/show_bug.cgi?id=72390 - - Reviewed by Martin Robinson. - - * tests/testatk.c: - (getWebAreaObject): New helper function, to bypass the new root - object in the accessibility hierarchy, since it's not usually - needed for the unit tests. - (testWebkitAtkCaretOffsets): Use getWebAreaObject(). - (testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces): Ditto. - (testWebkitAtkComboBox): Ditto. - (testWebkitAtkEmbeddedObjects): Ditto. - (testWebkitAtkGetTextAtOffsetForms): Ditto. - (testWebkitAtkGetTextAtOffset): Ditto. - (testWebkitAtkGetTextAtOffsetNewlines): Ditto. - (testWebkitAtkGetTextAtOffsetTextarea): Ditto. - (testWebkitAtkGetTextAtOffsetTextInput): Ditto. - (testWebkitAtkGetTextAtOffsetWithSpecialCharacters): Ditto. - (testWebkitAtkGetTextInParagraphAndBodySimple): Ditto. - (testWebkitAtkGetTextInParagraphAndBodyModerate): Ditto. - (testWebkitAtkGetTextInTable): Ditto. - (testWebkitAtkGetHeadersInTable): Ditto. - (testWebkitAtkTextAttributes): Ditto. - (testWebkitAtkTextSelections): Ditto. - (testWebkitAtkGetExtents): Ditto. - (testWebkitAtkLayoutAndDataTables): Ditto. - (testWebkitAtkLinksWithInlineImages): Ditto. - (testWebkitAtkHypertextAndHyperlinks): Ditto. - (testWebkitAtkListsOfItems): Ditto. - (testWebkitAtkTextChangedNotifications): Ditto. - (testWebkitAtkParentForRootObject): New test, to make sure that - both top-down and bottom-up navigation among GTK and WebKit worlds - matches accordingly. - (main): Added new test. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_accessible): Remove the hack introduced - because of bug 51932, to bypass the root object here. - -2011-11-15 Anders Carlsson <andersca@apple.com> - - HostWindow screenToWindow/windowToScreen should be screenToRootView/rootViewToScreen - https://bugs.webkit.org/show_bug.cgi?id=72397 - - Reviewed by Dan Bernstein. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::rootViewToScreen): - (WebKit::ChromeClient::screenToRootView): - * WebCoreSupport/ChromeClientGtk.h: - -2011-11-14 Anders Carlsson <andersca@apple.com> - - HostWindow invalidation functions should use root view coordinates - https://bugs.webkit.org/show_bug.cgi?id=72338 - - Reviewed by Dan Bernstein. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::invalidateRootView): - (WebKit::ChromeClient::invalidateContentsAndRootView): - (WebKit::ChromeClient::invalidateContentsForSlowScroll): - * WebCoreSupport/ChromeClientGtk.h: - -2011-11-15 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Implement download support in WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=72258 - - Reviewed by Martin Robinson. - - Use errors from WebCore to emit the error signals. - - * webkit/webkitdownload.cpp: - (webkitDownloadEmitError): Helper function that emits the error - signal for the given ResourceError. - (webkit_download_open_stream_for_uri): Use webkitDownloadEmitError(). - (webkit_download_cancel): Ditto. - (webkit_download_set_destination_uri): Ditto. - (webkit_download_received_data): Ditto. - (webkit_download_error): Ditto. - -2011-11-14 Ryuan Choi <ryuan.choi@samsung.com> - - [GTK] Possible crash when destroying after called widgetSizeChanged. - https://bugs.webkit.org/show_bug.cgi?id=72237 - - Reviewed by Martin Robinson. - - Crash can occur when ChromeclientGtk is removed before calling repaintEverythingSoonTimeout - registered by widgetSizeChanged. - This patch remove the m_repaintSoonSourceId glib source before destruction - of the ChromeClientGtk to prevent the above crash. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::chromeDestroyed): - -2011-11-09 Philippe Normand <pnormand@igalia.com> - - [GTK][DRT] window internals object is not reset after each test - https://bugs.webkit.org/show_bug.cgi?id=71890 - - Reviewed by Martin Robinson. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Remove problematic - calls to WebCoreSupport which belongs to libWebCoreInternals, not libwebkitgtk. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-11-09 Philippe Normand <pnormand@igalia.com> - - [GTK][DRT] window internals object is not reset after each test - https://bugs.webkit.org/show_bug.cgi?id=71890 - - Reviewed by Xan Lopez. - - DRTSupport infrastructure to reset the Internals object, like in Qt. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::resetInternalsObject): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-11-07 Adam Barth <abarth@webkit.org> - - Move static "policy" state from SecurityOrigin.cpp to SecurityPolicy.cpp - https://bugs.webkit.org/show_bug.cgi?id=71755 - - Reviewed by Eric Seidel. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::whiteListAccessFromOrigin): - (DumpRenderTreeSupportGtk::resetOriginAccessWhiteLists): - -2011-11-08 Zan Dobersek <zandobersek@gmail.com> - - [WK][GTK] Application cache directory is incorrectly set - https://bugs.webkit.org/show_bug.cgi?id=71769 - - Reviewed by Martin Robinson. - - Set the application cache directory to be placed in current user's - cache directory and update documentation for - webkit_application_cache_get_database_directory_path after these - changes and changes in r80715; - - * webkit/webkitapplicationcache.cpp: - * webkit/webkitglobals.cpp: - (webkitInit): Switch one string formation to use GOwnPtr<gchar>. - -2011-11-03 Darin Adler <darin@apple.com> - - Change remaining callers of releaseRef to call leakRef - https://bugs.webkit.org/show_bug.cgi?id=71422 - - Reviewed by Darin Fisher. - - * webkit/webkitwebdatasource.cpp: - (WebKit::kitNew): - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_new): - (webkit_web_history_item_new_with_data): - (webkit_web_history_item_copy): - (WebKit::kit): - * webkit/webkitwebresource.cpp: - (webkit_web_resource_new_with_core_resource): - (webkit_web_resource_init_with_core_resource): - Use leakRef. - -2011-11-02 Darin Adler <darin@apple.com> - - Change remaining callers of releaseRef to call leakRef - https://bugs.webkit.org/show_bug.cgi?id=71422 - - Reviewed by Darin Fisher. - - * webkit/webkitwebdatasource.cpp: - (WebKit::kitNew): - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_new): - (webkit_web_history_item_new_with_data): - (webkit_web_history_item_copy): - (WebKit::kit): - * webkit/webkitwebresource.cpp: - (webkit_web_resource_new_with_core_resource): - (webkit_web_resource_init_with_core_resource): - Use leakRef. - -2011-11-03 Fady Samuel <fsamuel@chromium.org> - - Removing line in computeViewportAttributes that enforces a minimum scale factor to never allow zooming out more than viewport - https://bugs.webkit.org/show_bug.cgi?id=70609 - - Reviewed by Kenneth Rohde Christiansen. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): - * webkit/webkitviewportattributes.cpp: - (webkitViewportAttributesRecompute): - -2011-11-02 Jon Lee <jonlee@apple.com> - - Expand DragController to provide more information about the dragging session - https://bugs.webkit.org/show_bug.cgi?id=71324 - <rdar://problem/10379175> - - Reviewed by Darin Adler. - - * webkit/webkitwebview.cpp: - (webkit_web_view_drag_motion): Minor refactoring. - (webkit_web_view_drag_data_received): Minor refactoring. - -2011-11-02 Tom Sepez <tsepez@chromium.org> - - XSSAuditor is silent - https://bugs.webkit.org/show_bug.cgi?id=70973 - - Reviewed by Adam Barth. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didDetectXSS): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-11-02 Zan Dobersek <zandobersek@gmail.com> - - [GTK] Visited links of a page group should be removed when clearing back/forward list - https://bugs.webkit.org/show_bug.cgi?id=71052 - - Reviewed by Martin Robinson. - - When clearing back-forward list, also remove the visited links from page's page group. - - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_clear): - -2011-10-31 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Install html and tmpl dirs in a $(DOC_MODULE) dir in tarball - https://bugs.webkit.org/show_bug.cgi?id=71224 - - Reviewed by Martin Robinson. - - * GNUmakefile.gtk-doc.am: Copy html and tmpl dirs to - $(distdir)/$(DOC_MODULE). - -2011-10-29 Martin Robinson <mrobinson@igalia.com> - - [GTK] Switch to a backing store approach for painting WebKitWebView - https://bugs.webkit.org/show_bug.cgi?id=70213 - - Reviewed by Gustavo Noronha Silva. - - Paint the WebView into a backing store. This prevents expose events from - triggering a layout, making scrolling and resizing much smoother. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): Initialize new members. - (WebKit::repaintEverythingSoonTimeout): Added this helper which repaints - the WebView more quickly during resize events. - (WebKit::clipOutOldWidgetArea): Clips out the old widget area, so that we - can clear out invalid pixels when growing the widget into a pre-existing - backing store. - (WebKit::clearEverywhereInBackingStore): Clear out the entire backing store. - (WebKit::ChromeClient::widgetSizeChanged): Handle widget size changes by - intelligently resizing or reusing the existing backing store. - (WebKit::coalesceRectsIfPossible): Moved this method from webkitwebview.cpp. - (WebKit::paintWebView): Moved this method from webkitwebview.cpp. - (WebKit::ChromeClient::performAllPendingScrolls): If there are any pending - scrolling operations, perform them by scrolling the backing store. - (WebKit::ChromeClient::paint): Added this timer callback, which paints the - WebView after a short timeout. - (WebKit::ChromeClient::invalidateWindow): No need to do anything here any longer. - (WebKit::ChromeClient::invalidateContentsAndWindow): Now unite the rect with - the existing dirty region and queue the paint timeout. - (WebKit::ChromeClient::scroll): Now just queue a scroll event in the repaint timeout. - Intelligently calculate the area to move and the dirty area using code derived - from WebKit2. - * WebCoreSupport/ChromeClientGtk.h: Added new method definitions and also use - the WebCore namespace to avoid lots of uses of "WebCore::". - * webkit/webkitwebview.cpp: - (webkit_web_view_draw): Now just blit the backing store into the widget. - (webkit_web_view_expose): Ditto. - (webkit_web_view_size_allocate): Let the ChromeClient know the widget size changed. - (webkit_web_view_init): Turn off GDK double buffering as we have our own double - buffer. - * webkit/webkitwebviewprivate.h: Add the backing store member. - -2011-10-28 Jochen Eisinger <jochen@chromium.org> - - Rename a number of methods mentioning JavaScript to just Script instead - https://bugs.webkit.org/show_bug.cgi?id=71105 - - Reviewed by Adam Barth. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidClearWindowObjectInWorld): - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2011-10-27 Martin Robinson <mrobinson@igalia.com> - - [GTK] Remove most of the documentation errors from WebKit1 - https://bugs.webkit.org/show_bug.cgi?id=70670 - - Reviewed by Gustavo Noronha Silva. - - Fix most of the documentation errors for WebKit and make many - missing symbols show up in the documentation. - - * webkit/webkitglobals.h: Doc fixes. - * webkit/webkitspellchecker.h: Ditto. - * webkit/webkitspellcheckerenchant.cpp: Ditto. - * webkit/webkitwebbackforwardlist.h: Ditto. - * webkit/webkitwebdatasource.cpp: Ditto. - * webkit/webkitwebframe.cpp: Ditto. - * webkit/webkitwebinspector.cpp: Ditto. - * webkit/webkitwebinspector.h: Ditto. - * webkit/webkitwebplugin.h: Ditto. - * webkit/webkitwebplugindatabase.cpp: Ditto. - * webkit/webkitwebplugindatabase.h: Ditto. - * webkit/webkitwebsettings.h: Ditto. - * webkit/webkitwebview.cpp: Ditto. - (webkit_web_view_class_init): Ditto. - * webkit/webkitwebview.h: Ditto. - -2011-10-27 Philippe Normand <pnormand@igalia.com> - - [GStreamer] WebAudio AudioFileReader implementation - https://bugs.webkit.org/show_bug.cgi?id=69834 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: Link against libfftw. - -2011-10-26 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.7.1 release - https://bugs.webkit.org/show_bug.cgi?id=70932 - - Reviewed by Martin Robinson. - - * NEWS: Added release notes. - -2011-10-26 Alejandro G. Castro <alex@igalia.com> - - [GTK] Fix distcheck compilation - https://bugs.webkit.org/show_bug.cgi?id=70921 - - Add new files required by doc compilation to the clean process. - - Reviewed by Martin Robinson. - - * docs/GNUmakefile.am: - -2011-10-26 Zalan Bujtas <zbujtas@gmail.com> - - Name viewport change event consistently. - https://bugs.webkit.org/show_bug.cgi?id=70901 - - Reviewed by Kenneth Rohde Christiansen. - - Use ViewportPropertiesDidChange term consistently throughout WebKit. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::dispatchViewportPropertiesDidChange): - * WebCoreSupport/ChromeClientGtk.h: - -2011-10-26 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Remove g_thread_init() calls from gtk-doc scanner too - https://bugs.webkit.org/show_bug.cgi?id=70908 - - Reviewed by Gustavo Noronha Silva. - - * docs/GNUmakefile.am: - -2011-10-25 Martin Robinson <mrobinson@igalia.com> - - [GTK] GtkAdjustment watcher updates adjustments too lazily - https://bugs.webkit.org/show_bug.cgi?id=70180 - - Reviewed by Gustavo Noronha Silva. - - Increase the priority of the GtkAdjustments update in GtkAdjustmentWatcher. This - means that adjustments will more quickly represent the state of the WebKitWebView - when it scrolls. This fixes out-of-sync scrollbars and some visual artifacts. - - * WebCoreSupport/GtkAdjustmentWatcher.cpp: - (WebKit::GtkAdjustmentWatcher::updateAdjustmentsFromScrollbarsLater): Use a timeout - with the default priority. - -2011-10-24 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Remove g_thread_init() calls - https://bugs.webkit.org/show_bug.cgi?id=70717 - - Reviewed by Xan Lopez. - - With newer glib it's not needed anymore and with previous versions - it was already called by g_type_init(). - - * tests/testapplicationcache.c: - (main): - * tests/testatk.c: - (main): - * tests/testatkroles.c: - (main): - * tests/testcopyandpaste.c: - (main): - * tests/testdomdocument.c: - (main): - * tests/testdomdomwindow.c: - (main): - * tests/testdomnode.c: - (main): - * tests/testdownload.c: - (main): - * tests/testglobals.c: - (main): - * tests/testhittestresult.c: - (main): - * tests/testhttpbackend.c: - (main): - * tests/testkeyevents.c: - (main): - * tests/testloading.c: - (main): - * tests/testmimehandling.c: - (main): - * tests/testnetworkrequest.c: - (main): - * tests/testnetworkresponse.c: - (main): - * tests/testwebbackforwardlist.c: - (main): - * tests/testwebdatasource.c: - (main): - * tests/testwebframe.c: - (main): - * tests/testwebhistoryitem.c: - (main): - * tests/testwebplugindatabase.c: - (main): - * tests/testwebresource.c: - (main): - * tests/testwebsettings.c: - (main): - * tests/testwebview.c: - * tests/testwindow.c: - (main): - -2011-10-20 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] webkitgtk's pkgconfig file needs to require javascriptcoregtk - https://bugs.webkit.org/show_bug.cgi?id=70500 - - Reviewed by Philippe Normand. - - * webkit.pc.in: add javascriptcoregtk to Requires - -2011-10-19 Gustavo Noronha Silva <gns@gnome.org> - - GTK+ build fix. Rename the INCLUDES variable so it is not picked - up by random bystanders. Also do some more cleanup on stuff we - inherited from gtk-doc.make. - - * GNUmakefile.gtk-doc.am: - * docs/GNUmakefile.am: - -2011-10-19 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Streamline wk1 documentation build - https://bugs.webkit.org/show_bug.cgi?id=70447 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: move files pertaining to the docs build to the - docs GNUmakefile.am; - * GNUmakefile.gtk-doc.make: incorporate the gtk-doc makefile, and customize it - to our non-recursive build; - * docs/GNUmakefile.am: simplification and adaption to work with the - rest of the build system. - -2011-10-19 Zan Dobersek <zandobersek@gmail.com> - - [Gtk][Geolocation] Build guards missing in geolocation clients - https://bugs.webkit.org/show_bug.cgi?id=70420 - - Reviewed by Gustavo Noronha Silva. - - Adds build guards that were forgotten when client-based - geolocation was introduced in r97746. This should make builds - without geolocation support succeed again. - - * WebCoreSupport/GeolocationClientGtk.cpp: - * WebCoreSupport/GeolocationClientGtk.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2011-10-18 Zan Dobersek <zandobersek@gmail.com> - - [Gtk] Support for client-based geolocation - https://bugs.webkit.org/show_bug.cgi?id=64970 - - Reviewed by Martin Robinson. - - Add DumpRenderTree support functions for client-based geolocation tests - and implement GeolocationClientGtk. The implementation is based on Zecke's - implementation of GeolocationService class in WebCore, which is now redundant - and subsequently removed. - - * GNUmakefile.am: Add GeolocationClientGtk.* files to compilation. - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Add support functions to operate - with GeolocationClientMock. - (DumpRenderTreeSupportGtk::resetGeolocationClientMock): - (DumpRenderTreeSupportGtk::setMockGeolocationPermission): - (DumpRenderTreeSupportGtk::setMockGeolocationPosition): - (DumpRenderTreeSupportGtk::setMockGeolocationError): - (DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * WebCoreSupport/GeolocationClientGtk.cpp: Added. - (WebKit::getPositionCallback): - (WebKit::positionChangedCallback): - (WebKit::GeolocationClient::GeolocationClient): - (WebKit::GeolocationClient::geolocationDestroyed): - (WebKit::GeolocationClient::startUpdating): - (WebKit::GeolocationClient::stopUpdating): - (WebKit::GeolocationClient::setEnableHighAccuracy): - (WebKit::GeolocationClient::lastPosition): - (WebKit::GeolocationClient::requestPermission): - (WebKit::GeolocationClient::cancelPermissionRequest): - (WebKit::GeolocationClient::positionChanged): - (WebKit::GeolocationClient::updatePosition): - (WebKit::GeolocationClient::errorOccured): - * WebCoreSupport/GeolocationClientGtk.h: Added. - * webkit/webkitwebview.cpp: - (webkit_web_view_init): Use GeolocationClientMock as geolocation client - when running in DumpRenderTree. - -2011-10-12 Ryosuke Niwa <rniwa@webkit.org> - - Make the interface of locationAndLengthFromRange and rangeFromLocationAndLength consistent - https://bugs.webkit.org/show_bug.cgi?id=69964 - - Reviewed by Enrica Casucci. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::firstRectForCharacterRange): - -2011-09-28 Martin Robinson <mrobinson@igalia.com> - - [GTK] Move drag-and-drop code which can be shared with WebKit2 to WebCore - https://bugs.webkit.org/show_bug.cgi?id=66890 - - Use the new GtkWidgetDragAndDropGlue class to hold the logic that will be - common between WebKit1 and WebKit2. Modify WebKitWebView to use this class. - - Reviewed by Philippe Normand. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Inform the drag-and-drop glue about the drag. - * webkit/webkitwebview.cpp: Use GtkWidgetDragAndDropGlue wherever this class was - maintaining drag-and-drop state itself. - * webkit/webkitwebviewprivate.h: Swap out the drag-and-drop state for an instance - of the glue class. - -2011-09-28 Kaustubh Atrawalkar <kaustubh@motorola.com> - - [Gtk] Implement textInputController.doCommand - https://bugs.webkit.org/show_bug.cgi?id=66496 - - Reviewed by Martin Robinson. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::doCommand): Function definition for doCommand - callback. Converted Incoming command to match with WebCore::Editor CommandMap. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-09-27 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Reorganize header files - https://bugs.webkit.org/show_bug.cgi?id=65616 - - Reviewed by Martin Robinson. - - Install header files under $libwebkitgtkincludedir/webkit. - - * GNUmakefile.am: Use $libwebkitgtkincludedir. - * webkit.pc.in: Use webkitgtk-<api-version> as include dir. - -2011-09-26 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - Fix documentation generation by specifying the sources - directory with $(top_srcdir). - - Reviewed by Xan Lopez. - - * docs/GNUmakefile.am: - -2011-09-26 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - REGRESSION: Empathy crashes when switching theme - https://bugs.webkit.org/show_bug.cgi?id=68600 - - Reviewed by Martin Robinson. - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_scroll_adjustments): use the existing - set{Horizontal,Vertical}Adjustment functions, so the code is not - duplicated - (webkit_web_view_dispose): unset the adjustments during dispose, - to avoid late adjustment change notifications hitting the - adjustment watcher - -2011-09-24 Adam Barth <abarth@webkit.org> - - Always enable ENABLE(OFFLINE_WEB_APPLICATIONS) - https://bugs.webkit.org/show_bug.cgi?id=68767 - - Reviewed by Eric Seidel. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::reachedApplicationCacheOriginQuota): - * WebCoreSupport/ChromeClientGtk.h: - * webkit/webkitapplicationcache.cpp: - (webkit_application_cache_get_maximum_size): - (webkit_application_cache_set_maximum_size): - (webkit_application_cache_get_database_directory_path): - * webkit/webkitglobals.cpp: - (webkitInit): - -2011-09-22 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - Remove useless empty WebKit namespace. - - Reviewed by Xan Lopez. - - * webkit/webkitglobals.cpp: - (webkitInit): - -2011-09-20 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] WebProcess shouldn't use the GTK+ API - https://bugs.webkit.org/show_bug.cgi?id=68062 - - Reviewed by Martin Robinson. - - Use WebCore API to create errors in frame loader. - - * WebCoreSupport/AssertMatchingEnums.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::cancelledError): - (WebKit::FrameLoaderClient::blockedError): - (WebKit::FrameLoaderClient::cannotShowURLError): - (WebKit::FrameLoaderClient::interruptedForPolicyChangeError): - (WebKit::FrameLoaderClient::cannotShowMIMETypeError): - (WebKit::FrameLoaderClient::fileDoesNotExistError): - (WebKit::FrameLoaderClient::pluginWillHandleLoadError): - * webkit/webkiterror.cpp: - (webkit_network_error_quark): - (webkit_policy_error_quark): - (webkit_plugin_error_quark): - -2011-09-20 Philippe Normand <pnormand@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.5.90 release - - Reviewed by Martin Robinson. - - * NEWS: - -2011-09-19 Leandro Pereira <leandro@profusion.mobi> - - GTK DRT leaks memory while comparing history items - https://bugs.webkit.org/show_bug.cgi?id=68086 - - Reviewed by Martin Robinson. - - webkit_web_history_item_get_target() function returns a g_strdup()'d - string, so it should return "gchar*" instead of "const gchar*". - - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_get_target): Change return type to "gchar*". - * webkit/webkitwebhistoryitemprivate.h: Ditto. - -2011-09-19 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Fix distcheck build - https://bugs.webkit.org/show_bug.cgi?id=68346 - - Reviewed by Philippe Normand. - - * tests/testmimehandling.c: Remove ogg tests, since the behavious - has changed in libsoup (https://bugzilla.gnome.org/show_bug.cgi?id=648846#c8) - (server_callback): - (mime_type_policy_decision_requested_cb): - (main): - * webkit/webkitwebplugin.cpp: Fix introspection annotation. - -2011-09-17 Mihai Parparita <mihaip@chromium.org> - - FrameLoaderClient BackForwardList-related methods are unsued - https://bugs.webkit.org/show_bug.cgi?id=68293 - - Reviewed by Darin Adler. - - Remove FrameLoaderClient methods that were added by r51629, since only - the old (since-deleted) Android port needed them. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-09-15 Adam Barth <abarth@webkit.org> - - Rename ENABLE(DATABASE) to ENABLE(SQL_DATABASE) - https://bugs.webkit.org/show_bug.cgi?id=68205 - - Reviewed by Eric Seidel. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - * webkit/webkitsecurityorigin.cpp: - (webkit_security_origin_get_web_database_usage): - (webkit_security_origin_get_web_database_quota): - (webkit_security_origin_set_web_database_quota): - (webkit_security_origin_get_all_web_databases): - * webkit/webkitwebdatabase.cpp: - (webkit_web_database_get_display_name): - (webkit_web_database_get_expected_size): - (webkit_web_database_get_size): - (webkit_web_database_get_filename): - (webkit_web_database_remove): - (webkit_remove_all_web_databases): - (webkit_get_web_database_directory_path): - (webkit_set_web_database_directory_path): - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2011-09-10 Adam Barth <abarth@webkit.org> - - Fix build break. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2011-09-09 Fady Samuel <fsamuel@chromium.org> - - Move pageScaleFactor code from Frame.{h|cpp} to Page.{h|cpp} - https://bugs.webkit.org/show_bug.cgi?id=67250 - - Reviewed by Simon Fraser. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::scalePageBy): - -2011-09-08 Daniel Bates <dbates@webkit.org> - - Fix the GTK build after <http://trac.webkit.org/changeset/94810> - (https://bugs.webkit.org/show_bug.cgi?id=67807). - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): Substitute DocumentWriter::deprecatedFrameEncoding() for - DocumentWriter::encoding(). - -2011-09-06 Ryosuke Niwa <rniwa@webkit.org> - - Rename confirmCompositionWithoutDisturbingSelection to cancelComposition - https://bugs.webkit.org/show_bug.cgi?id=67569 - - Reviewed by Antonio Gomes. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::respondToChangedSelection): - -2011-08-30 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r94142, r94144, r94145, and r94148. - http://trac.webkit.org/changeset/94142 - http://trac.webkit.org/changeset/94144 - http://trac.webkit.org/changeset/94145 - http://trac.webkit.org/changeset/94148 - https://bugs.webkit.org/show_bug.cgi?id=67262 - - Broke isindex element (Requested by rniwa on #webkit). - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setAutofilled): - (DumpRenderTreeSupportGtk::setValueForUser): - -2011-08-30 Ryosuke Niwa <rniwa@webkit.org> - - GTK build fix after r94142. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setAutofilled): - (DumpRenderTreeSupportGtk::setValueForUser): - -2011-08-30 Kaustubh Atrawalkar <kaustubh@motorola.com> - - The unused ScrollView* argument can and should be removed from - scrollRectIntoView. - https://bugs.webkit.org/show_bug.cgi?id=67117 - - Reviewed by Darin Adler. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::scrollRectIntoView): - -2011-08-26 Gustavo Noronha Silva <gns@gnome.org> - - Minor style fix in the sample code for WebKitWebFrame. - - * webkit/webkitwebframe.cpp: - -2011-08-17 Alejandro G. Castro <alex@igalia.com> - - [GTK] Fix compilation problems with deprecations in gtk+ - https://bugs.webkit.org/show_bug.cgi?id=66073 - - Reviewed by Martin Robinson. - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::createHud): Added gtk_box_new - conditional compilation for gtk+-3. - -2011-08-18 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org> - - [GTK] Change webview API tests to use "load-status" signal instead of "load-progress" - https://bugs.webkit.org/show_bug.cgi?id=66243 - - Reviewed by Martin Robinson. - - The idle_quit_loop_cb() already checks the "load-status" flag, so it is enough to - call it only when the "load-status" change. - - This change is important in the context of bug 28851, which aims to change the - order in which "progress finished" and "load finished" callbacks are called. In - this new scenario, at the progress callback the load will never be finished. - - * tests/testwebview.c: - (test_webkit_web_view_grab_focus): - -2011-08-17 Adam Roben <aroben@apple.com> - - Make WebCore keep track of the current device scale factor - - Fixes <http://webkit.org/b/66413> WebCore requires every WebKit port to keep track of the - device scale factor - - Reviewed by Darin Adler. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - Removed deviceScaleFactor. - -2011-08-16 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - Add javascriptcoregtk to the introspection build, to fix it. - - Reviewed by Xan Lopez. - - * GNUmakefile.am: - -2011-08-15 Dmitry Titov <dimich@chromium.org> - - FrameLoaderClient::transferLoadingResourceFromPage does not have enough parameters - https://bugs.webkit.org/show_bug.cgi?id=66165 - - Reviewed by Darin Fisher. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transferLoadingResourceFromPage): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-08-10 Adam Roben <aroben@apple.com> - - Clear up scale factor terminology - - WebKit by and large deals with two scale factors: one intrinsic to the device on which the - software is running, and one that is per-Page and can be controlled via API calls. This - patch names the former "deviceScaleFactor" and the latter "pageScaleFactor", and makes the - code use those names. It should introduce no behavior changes. - - Fixes <http://webkit.org/b/55787> WebKit uses multiple conflicting names to refer to the - device scale factor - - Reviewed by Simon Fraser. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2011-08-11 Gustavo Noronha Silva <gns@gnome.org> - - Add the javascript core dynamic library for gtk-doc's introspection helper. - - Reviewed by Xan Lopez. - - * docs/GNUmakefile.am: - -2011-08-11 Xan Lopez <xlopez@igalia.com> - - [GTK] Update NEWS and configure.ac for 1.5.2 release - - Reviewed by Gustavo Noronha. - - * NEWS: update for release. - -2011-08-10 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] wrong annotation for the return value of webkit_web_view_get_hit_test_results() - https://bugs.webkit.org/show_bug.cgi?id=65985 - - Reviewed by Xan Lopez. - - * webkit/webkitwebview.cpp: - -2011-08-03 Pavel Feldman <pfeldman@google.com> - - Web Inspector: [Timeline] Hover on paint events and see rect outline around that area. - https://bugs.webkit.org/show_bug.cgi?id=65510 - - Reviewed by Yury Semikhatsky. - - * webkit/webkitwebview.cpp: - (paintWebView): - -2011-08-03 Pavel Feldman <pfeldman@chromium.org> - - Web Inspector: remove Node parameter from the InspectorClient::highlight - https://bugs.webkit.org/show_bug.cgi?id=65549 - - Reviewed by Yury Semikhatsky. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::highlight): - * WebCoreSupport/InspectorClientGtk.h: - -2011-08-03 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Reorganize pkg-config files - https://bugs.webkit.org/show_bug.cgi?id=65548 - - Reviewed by Martin Robinson. - - * GNUmakefile.am: Remove javascriptcore pc file references. - -2011-07-30 Patrick Gansterer <paroga@webkit.org> - - Remove inclusion of MainThread.h from Threading.h - https://bugs.webkit.org/show_bug.cgi?id=65081 - - Reviewed by Darin Adler. - - Add missing include statements for MainThread. - - * webkit/webkitglobals.cpp: - -2011-07-26 Sadrul Habib Chowdhury <sadrul@chromium.org> - - Add support for download='filename' attribute in anchors. - https://bugs.webkit.org/show_bug.cgi?id=64580 - - Reviewed by Adam Barth. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::startDownload): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-07-26 Carlos Garcia Campos <cgarcia@igalia.com> - - [GTK] Remove header webkitwebviewcommon.h - https://bugs.webkit.org/show_bug.cgi?id=65177 - - Reviewed by Martin Robinson. - - Move webkitwebviewcommon.h contents back to webkitwebview.h. - - * GNUmakefile.am: Remove webkitwebviewcommon.h - * webkit/webkitwebview.h: - * webkit/webkitwebviewcommon.h: Removed. - -2011-06-07 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Use WebCore scrollbars for the DRT instead of GtkScrolledWindow - https://bugs.webkit.org/show_bug.cgi?id=62252 - - Added an undocumented self-scrolling property to WebKitWebView which - communicates to WebCore whether or not this widget is expected to draw - its own main frame scrollbars or not. - - * webkit/webkitwebview.cpp: Add the self-scrolling property. - * webkit/webkitwebviewprivate.h: Add the selfScrolling private member. - -2011-07-11 Gustavo Noronha Silva <gns@gnome.org> - - [GTK] Google Calendar thinks we're mobile - https://bugs.webkit.org/show_bug.cgi?id=63994 - - Reviewed by Xan Lopez. - - Further special-case Google Calendar, for it thinks WebKit+Linux - means mobile, so we also have to spoof the OS. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::userAgent): use the new WebKitGTK+ - private API that centralizes the logic now. - * tests/testwebsettings.c: Add tests to make sure the Google - special-cases only apply for the expected domains and when quirks - special-casing is enabled. - (test_non_quirky_user_agents): - (test_webkit_web_settings_user_agent): - * webkit/webkitwebsettings.cpp: - (webkitUserAgent): make it static. - (safariUserAgent): returns a fake Safari in Mac OS X User-Agent. - (initializeDomainsList): moved from FrameLoaderClientGtk. - (isGoogleDomain):ditto. - (isGoogleCalendar): ditto. - (userAgentForURL): ditto. - (webkitWebSettingsUserAgentForUri): centralize the whole - user agent spoofing logic in this new private API that can be used - by the browser to know what's going to happen for a specific URI - and also allows our API testing. - * webkit/webkitwebsettingsprivate.h: - -2011-07-15 Dan Bernstein <mitz@apple.com> - - REGRESSION: Mouse cursor doesn’t hide when full screen video HUD hides - https://bugs.webkit.org/show_bug.cgi?id=64615 - - Reviewed by Anders Carlsson. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setCursorHiddenUntilMouseMoves): Added this stub. - * WebCoreSupport/ChromeClientGtk.h: - -2011-07-15 Martin Robinson <mrobinson@igalia.com> - - Build fixes for WebKit2. Ensure that all generated sources are - on nodist primaries, that they are on forward declared variables - so that BUILT_SOURCES is calculated properly and that zlib is - included during linking (for WOFF support). - - * GNUmakefile.am: - -2011-07-14 Lukasz Slachciak <l.slachciak@samsung.com> - - Reviewed by Gustavo Noronha. - - [GTK] Fix GTK unit tests failures when WebKit is build outside repository directory. - https://bugs.webkit.org/show_bug.cgi?id=62935 - - WebKit can be build with WEBKITOUTPUTDIR env variable set using build-webkit script. - In this case WEBKITOUTPUDIR may be outside repository structure. This causes testmimehandling and testwebview - to fail because they use external test files in WebKit Source directory. - This bug fixes this issue introducing optional environment variable WEBKITREPODIR - Also coding style in existing functions is fixed. - - - * tests/test_utils.c: Coding style fixes. - (testutils_relative_chdir): If WEBKITREPODIR is set, change current directory to it. - * tests/test_utils.h: Coding style fixes. - -2011-07-12 Joseph Pecoraro <joepeck@webkit.org> - - ApplicationCache update should not immediately fail when reaching per-origin quota - https://bugs.webkit.org/show_bug.cgi?id=64177 - - Reviewed by Alexey Proskuryakov. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::reachedApplicationCacheOriginQuota): - * WebCoreSupport/ChromeClientGtk.h: - -2011-06-14 Mike Stegeman <mrstegeman@gmail.com> - - Add API to WebKit-GTK to allow setting localStorage database path - https://bugs.webkit.org/show_bug.cgi?id=62091 - - Reviewed by Martin Robinson and Gustavo Noronha. - - Expose the path of the localStorage databases through a setting - to allow HTML5 localStorage to be persistent. New setting is: - html5-local-storage-database-path - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2011-07-08 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - [GTK] testwebview API test fails after http://trac.webkit.org/changeset/90471 - https://bugs.webkit.org/show_bug.cgi?id=64159 - - Rework the icon-uri change test so that the condition for quitting - the mainloop is the icon-uri change itself, along with a timeout - to avoid taking too long in case of failure. Since the conditions - for considering a page loaded were changed we can't rely on that - for this test anymore. - - Reviewed by Xan Lopez. - - * tests/testwebview.c: - (timeout_cb): error out if it takes too long for the icon-uri - change to happen. - (icon_uri_changed_cb): quit the loop here instead of waiting on - the page being loaded. - (test_webkit_web_view_icon_uri): - -2011-07-01 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Add DeviceOrientation feature - https://bugs.webkit.org/show_bug.cgi?id=63720 - - Add empty implementation of DeviceMotionClient and DeviceOrientationClient callback methods. - - * GNUmakefile.am: - * WebCoreSupport/DeviceMotionClientGtk.cpp: Added. - (WebCore::DeviceMotionClientGtk::DeviceMotionClientGtk): - (WebCore::DeviceMotionClientGtk::~DeviceMotionClientGtk): - (WebCore::DeviceMotionClientGtk::deviceMotionControllerDestroyed): - (WebCore::DeviceMotionClientGtk::setController): - (WebCore::DeviceMotionClientGtk::startUpdating): - (WebCore::DeviceMotionClientGtk::stopUpdating): - (WebCore::DeviceMotionClientGtk::currentDeviceMotion): - * WebCoreSupport/DeviceMotionClientGtk.h: Added. - * WebCoreSupport/DeviceOrientationClientGtk.cpp: Added. - (WebCore::DeviceOrientationClientGtk::DeviceOrientationClientGtk): - (WebCore::DeviceOrientationClientGtk::~DeviceOrientationClientGtk): - (WebCore::DeviceOrientationClientGtk::deviceOrientationControllerDestroyed): - (WebCore::DeviceOrientationClientGtk::setController): - (WebCore::DeviceOrientationClientGtk::startUpdating): - (WebCore::DeviceOrientationClientGtk::stopUpdating): - (WebCore::DeviceOrientationClientGtk::lastOrientation): - * WebCoreSupport/DeviceOrientationClientGtk.h: Added. - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2011-06-28 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Allow to build WebKitGtk+ with accelerated compositing - https://bugs.webkit.org/show_bug.cgi?id=63404 - - WebKitGtk+ needs to implement accelerated compositing for running CSS3 3D transforms - and animation through GPU acceleration. We could implement GraphicsLayer using Clutter. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::attachRootGraphicsLayer): not implemented yet. - (WebKit::ChromeClient::setNeedsOneShotDrawingSynchronization): Ditto. - (WebKit::ChromeClient::scheduleCompositingLayerSync): Ditto. - (WebKit::ChromeClient::allowedCompositingTriggers): Ditto. - * WebCoreSupport/ChromeClientGtk.h: - -2011-06-27 ChangSeok Oh <shivamidow@gmail.com> - - Reviewed by Martin Robinson. - - [GTK] Fix build break to support webgl - https://bugs.webkit.org/show_bug.cgi?id=63425 - - A member variable enableWebGL in WebKitWebSettingsPrivate is changed to enableWebgl - - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - -2011-06-24 Dominic Cooney <dominicc@chromium.org> - - Reviewed by Dimitri Glazkov. - - Convert shadow DOM-related tests to use window.internals - https://bugs.webkit.org/show_bug.cgi?id=61671 - - Remove shadow-DOM related methods from GTK DRT API. These are not - required any more. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-06-20 Dimitri Glazkov <dglazkov@chromium.org> - - Reviewed by Kent Tamura. - - FileChooser should be only created when we need to choose files. - https://bugs.webkit.org/show_bug.cgi?id=63039 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runOpenPanel): Changed to use settings. - -2011-06-22 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Make sure libsoup password manager macro is defined before including libsoup in webkitsoupauthdialog - https://bugs.webkit.org/show_bug.cgi?id=63124 - - Fixes a crash when building with --enable-debug. - - * webkit/webkitsoupauthdialog.h: Define - LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY - before including libsoup.h. - -2011-06-10 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] webkit_web_settings_copy does not copy all settings - https://bugs.webkit.org/show_bug.cgi?id=62424 - - Instead of trying to keep webkit_web_settings_copy up to date with - property additions, create the object copy by dynamically initializing - all webkit_web_settings properties at once. - - * tests/testwebsettings.c: - (test_webkit_web_settings_copy): Create a test for webkit_web_settings copy. - (main): Run the new test. - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_copy): Dynamically initialize all properties of the copy. - -2011-06-20 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] Clean up unecessary boilerplate from WebKitWebSettings and make private members meet WebKit style guidelines - https://bugs.webkit.org/show_bug.cgi?id=61972 - - Rename all private members of WebKitWebSettings to meet WebKit style guidelines and - put the private struct definition in webkitwebsettingsprivate.h so it can be - accessed from webkitwebview.cpp. This cuts down on the boilerplate immensely. - - * webkit/webkitwebsettings.cpp: Rename private members to meet WebKit style guidelines - and allocate the private section with new/delete. This allows for using CString and removes - the need for manual string memory management. - * webkit/webkitwebsettingsprivate.h: Move the private struct definition here. - * webkit/webkitwebview.cpp: Update to reflect new struct names. Remove boilerplate - and other very small code cleanups. - -2011-06-20 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Split libWebCore into two libWebCore and libWebCoreGtk - https://bugs.webkit.org/show_bug.cgi?id=60539 - - * GNUmakefile.am: Link to libWebCoreGtk.la too. - -2011-06-18 Dimitri Glazkov <dglazkov@chromium.org> - - Reviewed by Darin Adler. - - Separate concerns of loading file icons and choosing files. - https://bugs.webkit.org/show_bug.cgi?id=62931 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::loadIconForFiles): Renamed. - * WebCoreSupport/ChromeClientGtk.h: - -2011-06-17 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Replace GdkRectangle by cairo_rectangle_int_t - https://bugs.webkit.org/show_bug.cgi?id=60687 - - Replace GdkRectangle by cairo_rectangle_int_t. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Replace GdkRectangle by cairo_rectangle_int_t. - (DumpRenderTreeSupportGtk::firstRectForCharacterRange): - (DumpRenderTreeSupportGtk::rectangleForSelection): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Ditto. - -2011-06-16 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r89026. - http://trac.webkit.org/changeset/89026 - https://bugs.webkit.org/show_bug.cgi?id=62804 - - These patches were likely correct. I'll investigate the - browser_test failures. (Requested by abarth on #webkit). - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::play): - (FullscreenVideoController::pause): - -2011-06-16 Vitaly Repeshko <vitalyr@chromium.org> - - Unreviewed. - - Revert Adam's user gesture patch series r89002, r89005, r89007, r89018 - https://bugs.webkit.org/show_bug.cgi?id=62796 - - The patches broke chromium browser tests. -2011-06-16 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Remove HTMLVideoElement::processingUserGesture - https://bugs.webkit.org/show_bug.cgi?id=62784 - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::play): - (FullscreenVideoController::pause): - -2011-06-15 Claudio Saavedra <csaavedra@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix the build with introspection enabled - https://bugs.webkit.org/show_bug.cgi?id=62705 - - * GNUmakefile.am: Remove include of *.c files, since - there are no such files anymore. - -2011-06-14 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Remove G_CONST_RETURN usage - https://bugs.webkit.org/show_bug.cgi?id=62673 - - Change G_CONST_RETURN for a simple "const" throughout the - codebase, since G_CONST_RETURN is deprecated now. This should be - totally equivalent since for all practical purposes the macro is - always expanded to const. - - * webkit/webkitapplicationcache.cpp: - (webkit_application_cache_get_database_directory_path): use const - instead of G_CONST_RETURN. - * webkit/webkitapplicationcache.h: - * webkit/webkiticondatabase.cpp: - (webkit_icon_database_get_path): ditto. - * webkit/webkiticondatabase.h: - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_get_uri): ditto. - * webkit/webkitnetworkrequest.h: - * webkit/webkitnetworkresponse.cpp: - (webkit_network_response_get_uri): ditto. - * webkit/webkitnetworkresponse.h: - * webkit/webkitsecurityorigin.cpp: - (webkit_security_origin_get_protocol): ditto. - (webkit_security_origin_get_host): ditto. - * webkit/webkitsecurityorigin.h: - * webkit/webkitwebdatabase.cpp: - (webkit_web_database_get_name): ditto. - (webkit_web_database_get_display_name): ditto. - (webkit_web_database_get_filename): ditto. - (webkit_get_web_database_directory_path): ditto. - * webkit/webkitwebdatabase.h: - * webkit/webkitwebdatasource.cpp: - (webkit_web_data_source_get_encoding): ditto. - (webkit_web_data_source_get_unreachable_uri): ditto. - * webkit/webkitwebdatasource.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_title): ditto. - (webkit_web_frame_get_uri): ditto. - (webkit_web_frame_get_name): ditto. - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_get_title): ditto. - (webkit_web_history_item_get_alternate_title): ditto. - (webkit_web_history_item_get_uri): ditto. - (webkit_web_history_item_get_original_uri): ditto. - (webkit_web_history_item_get_target): ditto. - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebhistoryitemprivate.h: - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_get_target_frame): ditto. - * webkit/webkitwebnavigationaction.h: - * webkit/webkitwebresource.cpp: - (webkit_web_resource_get_uri): ditto. - (webkit_web_resource_get_mime_type): ditto. - (webkit_web_resource_get_encoding): ditto. - (webkit_web_resource_get_frame_name): ditto. - * webkit/webkitwebresource.h: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_get_user_agent): ditto. - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_title): ditto. - (webkit_web_view_get_uri): ditto. - (webkit_web_view_get_icon_uri): ditto. - * webkit/webkitwebview.h: - * webkit/webkitwebviewcommon.h: - -2011-06-14 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Rename convertWidgetRectToScreenRect() to convertWidgetPointToScreenPoint() - https://bugs.webkit.org/show_bug.cgi?id=62626 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowToScreen): Update to use - convertWidgetPointToScreenPoint() - (WebKit::ChromeClient::screenToWindow): Ditto. - * webkit/webkitwebview.cpp: Remove globalPointForClientPoint() - since it does the same than convertWidgetPointToScreenPoint(). - (webkit_web_view_popup_menu_handler): Use - convertWidgetPointToScreenPoint() instead of globalPointForClientPoint(). - (doDragLeaveLater): Ditto. - (webkit_web_view_drag_motion): Ditto. - (webkit_web_view_drag_data_received): Ditto. - (webkit_web_view_drag_drop): Ditto. - -2011-06-14 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Support authentication dialogs in WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=62366 - - Move the common code of webkitsoupauthdialog to a common C++ class - in WebCore so that it can be used by WebKit2 too. The file has - been converted into a C++ file. - - * GNUmakefile.am: Rename webkitsoupauthdialog.c to - webkitsoupauthdialog.cpp. - * webkit/webkitsoupauthdialog.c: Removed. - * webkit/webkitsoupauthdialog.cpp: Added. - (webkit_soup_auth_dialog_class_init): - (webkit_soup_auth_dialog_init): - (webkit_soup_auth_dialog_session_feature_init): - (sessionAuthenticate): Use GtkAuthenticationDialog object from - WebCore. - (attach): - (detach): - * webkit/webkitsoupauthdialog.h: - -2011-06-13 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Add configure option to enable/disable register protocol handler - https://bugs.webkit.org/show_bug.cgi?id=62534 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::registerProtocolHandler): Added. - * WebCoreSupport/ChromeClientGtk.h: Add the registerProtocolHandler method defintion. - -2011-06-13 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - Update gtkdoc files and inline documentation to reduce gtkdoc errors - and ensure complete documentation output. - - * docs/webkitgtk-sections.txt: Add missing sections to the list and remove - unneeded sections. - * docs/webkitgtk.types: Update the types list. - * webkit/webkithittestresult.cpp: Fix inline documentation errors. - (webkit_hit_test_result_class_init): Ditto. - * webkit/webkiticondatabase.cpp: Ditto. - * webkit/webkitwebsettings.cpp: Ditto. - (webkit_web_settings_class_init): Ditto. - * webkit/webkitwebview.cpp: Ditto. - (webkit_web_view_class_init): Ditto. - -2011-06-13 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - Update the list of ignored GTK+ header files for the documentation - generation. - - * docs/GNUmakefile.am: Update ignored header list. - -2011-06-13 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Update NEWS for 1.5.1 release. - - * NEWS: update. - -2011-06-13 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Distcheck fixes. - - * GNUmakefile.am: - -2011-06-13 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Export an API similar to WebKit1 - https://bugs.webkit.org/show_bug.cgi?id=57820 - - * GNUmakefile.am: Add webkitwebviewcommon.h to public header list. - * webkit/webkitwebview.h: Move declarations common to WebKit2 to - webkitwebviewcommon.h. - * webkit/webkitwebviewcommon.h: Added. - -2011-06-12 Adam Barth <abarth@webkit.org> - - Reviewed by Alexey Proskuryakov. - - Rename FrameLoaderClient::interruptForPolicyChangeError to use the past tense - https://bugs.webkit.org/show_bug.cgi?id=62516 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::interruptedForPolicyChangeError): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-06-12 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Remove webkit_web_view_get_selected_text - https://bugs.webkit.org/show_bug.cgi?id=62512 - - It's no longer used and it's a private method, so it can be - removed. - - * webkit/webkitwebview.cpp: kill it. - * webkit/webkitwebviewprivate.h: ditto. - -2011-06-12 Adam Barth <abarth@webkit.org> - - Reviewed by Alexey Proskuryakov. - - Remove trival "forward-to-client" member functions from FrameLoader - https://bugs.webkit.org/show_bug.cgi?id=62510 - - Update to call the FrameLoaderClient directly. Also, remove cargo-cult - code that checks whether FrameLoader is null. - - * webkit/webkitwebview.cpp: - (webkit_web_view_stop_loading): - (webkit_web_view_can_show_mime_type): - -2011-06-09 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] Implement the next bit of the TextInputController (hasMarkedText and markedRange) - https://bugs.webkit.org/show_bug.cgi?id=55603 - - Added DumpRenderTreeSupport methods to support hasMarkedText and markedRange. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setComposition): Use start and length rather than start and - end. This matches other ports. Only use GLib style early returns when checking the - validity of GObjects. - (DumpRenderTreeSupportGtk::hasComposition): Added. - (DumpRenderTreeSupportGtk::compositionRange): Added. - (DumpRenderTreeSupportGtk::confirmComposition): Cleanup as described above. - (DumpRenderTreeSupportGtk::firstRectForCharacterRange): Cleanup as described above. - (DumpRenderTreeSupportGtk::selectedRange): Cleanup as described above. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Added new declarations. - -2011-06-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add WebKitSpellChecker interface and implementations - https://bugs.webkit.org/show_bug.cgi?id=61787 - - Expose the spell checking functionality to the UAs through a - generic interface, and provide a default Enchant-based - implementation. On top of allowing UAs to use this functionality - this makes it possible to change the spell checking backend at - runtime. - - * GNUmakefile.am: add new files. - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::EditorClient): set the spell checker using - the new classes. - * WebCoreSupport/TextCheckerClientEnchant.cpp: Removed. - * WebCoreSupport/TextCheckerClientGtk.cpp: Added - (WebKit::TextCheckerClientGtk::TextCheckerClientGtk): just - chain up to the WebKitSpellChecker. - (WebKit::TextCheckerClientGtk::~TextCheckerClientGtk): ditto. - (WebKit::TextCheckerClientGtk::ignoreWordInSpellDocument): ditto. - (WebKit::TextCheckerClientGtk::learnWord): ditto. - (WebKit::TextCheckerClientGtk::checkSpellingOfString): ditto. - (WebKit::TextCheckerClientGtk::getAutoCorrectSuggestionForMisspelledWord): ditto. - (WebKit::TextCheckerClientGtk::getGuessesForWord): ditto. - (WebKit::TextCheckerClientGtk::updateSpellCheckingLanguage): ditto. - * WebCoreSupport/TextCheckerClientGtk.h: store a reference to - the WebKitSpellChecker. - * webkit/webkit.h: the webkitspellchecker.h header is public. - * webkit/webkitdefines.h: defines for spell checker interface. - * webkit/webkitglobals.cpp: Add APIs to get and set the global - spell checker. - (webkit_get_spell_checker): get API. - (webkit_set_spell_checker): set API. - * webkit/webkitglobals.h: - * webkit/webkitspellchecker.cpp: Added. Spell checking interface. - * webkit/webkitspellchecker.h: Added. - * webkit/webkitspellcheckerenchant.cpp: Added. Default - implemention, uses Enchant library. - * webkit/webkitspellcheckerenchant.h: Added. - -2011-06-07 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] "webkithittestresult.h" is malformed - https://bugs.webkit.org/show_bug.cgi?id=62117 - - * webkit/webkithittestresult.h: fix typo in GET_CLASS macro. - -2011-05-31 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Ryosuke Niwa. - - [GTK] Support smart replace for the pasteboard - https://bugs.webkit.org/show_bug.cgi?id=61734 - - Add the EditorClient and DumpRenderTreeSupportGtk hooks for enabling - smart replace in the tests. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): targeListForDataObject now takes another - parameter determining whether or not to add smart paste support. Add it here. - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setSmartInsertDeleteEnabled): Added. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Add new method definition. - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::toggleSmartInsertDelete): Added implementation. - (WebKit::EditorClient::smartInsertDeleteEnabled): Added. - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: Add new method definition. - -2011-06-03 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Unref the SoupSession used by WebKitGtk+ at exit - https://bugs.webkit.org/show_bug.cgi?id=60165 - - WebKitGtk+ creates a SoupSession instance to handle network stuff - that is never freed. We should unref that object at exit time. - - * webkit/webkitglobals.cpp: - (webkitExit): - (webkitInit): - -2011-05-28 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Remove PastboardHelperGtk - https://bugs.webkit.org/show_bug.cgi?id=61690 - - Remove PasteboardHelperGtk and talk directly to WebCore for pasteboard - activity. This change moves the PasteboardHelper singleton from WebKit - to WebCore. - - * GNUmakefile.am: Remove PasteboardHelperGtk from the source list. - * WebCoreSupport/AssertMatchingEnums.cpp: Added assertions verifying that the - WebCore versions of the GtkClipboard enums match those in the WebKit API. - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Access the pasteboard helper via a static method. - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::setSelectionPrimaryClipboardIfNeeded): Ditto. Call into the helper to specify - that the current clipboard is selection primary now. - * WebCoreSupport/PasteboardHelperGtk.cpp: Removed. - * webkit/webkitglobals.cpp: Remove function to set and get the pasteboard helper. - * webkit/webkitglobalsprivate.h: Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): Access the pasteboard helper via a static method. - (webkit_web_view_drag_data_get): Ditto. - (webkit_web_view_drag_motion): Ditto. - (webkit_web_view_drag_data_received): Ditto. - (webkit_web_view_init): Ditto. - (webkit_web_view_get_copy_target_list): Ditto. - (webkit_web_view_get_paste_target_list): Ditto. - * webkit/webkitwebviewprivate.h: Ditto. - -2011-06-02 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Only load dictionaries if spell check is enabled - https://bugs.webkit.org/show_bug.cgi?id=32879 - - We don't need to call enchant if enable-spell-checking is false. - - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): Skip loading dictionaries when enable-spell-checking is false. - (webkit_web_view_settings_notify): Ditto. - -2011-06-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Explictly request the size of a pointer in malloc. Otherwise this - explodes in 64bit architectures, at least. - - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_get_mimetypes): ditto. - -2011-06-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Utility methods for UA spellchecking - https://bugs.webkit.org/show_bug.cgi?id=61788 - - Adds a couple of utility methods needed to implement some aspects - of spell checking support in a browser. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_replace_selection): method to replace the current - selection with a string of text. - (webkit_web_frame_get_range_for_word_around_caret): returns the DOM - range for the word where the caret/selection currently is. - * webkit/webkitwebframe.h: declare new methods. - -2011-05-31 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] gtkdoc run produces many warnings about missing declarations - https://bugs.webkit.org/show_bug.cgi?id=61797 - - * docs/webkitgtk-sections.txt: Remove inexistent symbols from this file - to reduce the number of gtkdoc warnings. - -2011-05-31 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Provide custom DOM bindings methods to check if input/textareas have been edited - https://bugs.webkit.org/show_bug.cgi?id=61791 - - * GNUmakefile.am: add new files. - -2011-05-27 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Data directory is webkitgtk-x.y not webkit-x.y - https://bugs.webkit.org/show_bug.cgi?id=61642 - - * GNUmakefile.am: updated data directory. - -2011-05-28 Adam Barth <abarth@webkit.org> - - Reviewed by Alexey Proskuryakov. - - Audit all uses of KURL::prettyURL - https://bugs.webkit.org/show_bug.cgi?id=61201 - - Update callers of prettyURL to just call string. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_icon_uri): - -2011-05-26 Gustavo Noronha Silva <gustavo.noronha@collabora.com> - - Reviewed by Martin Robinson. - - Cleanup postCommitFrameViewSetup parameters which are no longer - necessary after the adjustments handling refactoring. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedFrame): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2011-05-22 Adam Barth <abarth@webkit.org> - - Build fix. More public destructors needed to play nice with OwnPtr. - - * WebCoreSupport/InspectorClientGtk.cpp: - -2011-05-22 Adam Barth <abarth@webkit.org> - - Build fix. InspectorFrontendClient needs a public destructor so that - we can properly track ownership using OwnPtr. - - * WebCoreSupport/InspectorClientGtk.h: - -2011-05-22 Adam Barth <abarth@webkit.org> - - Strict PassOwnPtr build fix. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - (WebKit::InspectorFrontendClient::InspectorFrontendClient): - -2011-05-22 Adam Barth <abarth@webkit.org> - - Strict PassOwnPtr build fix. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::addUserStyleSheet): - -2011-05-20 Simon Fraser <simon.fraser@apple.com> - - Reviewed by Sam Weinig. - - numberOfActiveAnimations() can include animations from documents in the page cache - https://bugs.webkit.org/show_bug.cgi?id=53641 - - Pass the Frame's document as the one to count animations on. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::numberOfActiveAnimations): - -2011-05-16 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Scrolling in Twitter is broken after r86102 - https://bugs.webkit.org/show_bug.cgi?id=60922 - - Fix adjustment handling for pages that trigger the slow scrolling path. - The slow scrolling path is triggered by WebCore when it determines that - doing a simple invalidation is quicker than doing a normal scroll. This - typically happens when there are large elements with fixed positions. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::invalidateContentsForSlowScroll): Poke the adjustment - watcher to update its adjustments when a page triggers the slow scrolling path. - -2011-05-13 Jon Lee <jonlee@apple.com> - - Reviewed by Simon Fraser. - - Can't horizontally scroll iframes and overflow because wheel events are always accepted - https://bugs.webkit.org/show_bug.cgi?id=60779 - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::shouldRubberBandInDirection): Default impl of new ChromeClient method - (WebKit::ChromeClient::numWheelEventHandlersChanged): Default impl of new ChromeClient method - -2011-05-13 Sam Weinig <sam@webkit.org> - - Reviewed by Anders Carlsson. - - Prune #includes from FrameView.h (Part 2) - https://bugs.webkit.org/show_bug.cgi?id=60748 - - - Update files that were depending on FrameView.h #including Frame.h or - Page.h. - - * WebCoreSupport/GtkAdjustmentWatcher.cpp: - -2011-05-13 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] Share the GTK+ key binding code between WebKit1 and WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=59765 - - Use the new KeyBindingTranslator class from WebCore/platform/gtk. With this utility - class we can now share the code with WebKit2. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::executePendingEditorCommands): Updated to reflect the fact that - the command vector now contains WTF::string. - (WebKit::EditorClient::handleKeyboardEvent): Use the new helper utility class. - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: Remove unnecessary member. Add the utility class. - -2011-05-12 Martin Robinson <mrobinson@igalia.com> - - Attempt to fix the GTK+ unit test testwebview on the 32-bit Release - bot which appears to be more sensitive to timing issues than the - other bots. - - * tests/testwebview.c: Add another short pause waiting for adjustments to update. - -2011-05-09 Martin Robinson <mrobinson@igalia.com> - - Fix a test after r86102. Scrollbars update asynchronously, so we - must check the adjustments after a short delay. - - * tests/testwebview.c: - (quit_after_short_delay_cb): Add a short delay before checking adjustments. - (test_webkit_web_view_grab_focus): Ditto. - -2011-05-09 Xan Lopez <xlopez@igalia.com> - - Unreviewed build fix. - - Fix build, for real. - - * webkit/webkitwebview.cpp: - (getHorizontalAdjustment): - -2011-05-09 Xan Lopez <xlopez@igalia.com> - - Unreviewed build fix.. - - Fix GTK+3.x build. - - * webkit/webkitwebview.cpp: - (getHorizontalAdjustment): the adjustment is in - adjustmentWatcher() now. - (getVerticalAdjustment): ditto. - -2011-04-29 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Untangle GtkAdjustments from WebCore - https://bugs.webkit.org/show_bug.cgi?id=59821 - - Have ChromeClient manage the GtkAdjustments of the parent widget instead of passing - them to WebCore to manage. This simplifies the code quite a bit and should be less - crash prone in the future. - - * GNUmakefile.am: Added new GtkAdjustmentWatcher class to the sources list. - * WebCoreSupport/ChromeClientGtk.cpp: Added new GtkAdjustmentWatcher member. - (WebKit::ChromeClient::ChromeClient) Initialize the new member. - (WebKit::ChromeClient::scroll): Poke the adjustment watcher to update the adjustments. - (WebKit::ChromeClient::contentsSizeChanged): Ditto. - (WebKit::ChromeClient::scrollbarsModeDidChange): This may now be called at a time when there - is no main frame, so do an early return in that case. - * WebCoreSupport/ChromeClientGtk.h: Add the new member. - (WebKit::ChromeClient::adjustmentWatcher): Add this getter for WebKitWebView. - * WebCoreSupport/FrameLoaderClientGtk.cpp: Remove calls which pushed the adjustments into - WebCore. - (WebKit::FrameLoaderClient::savePlatformDataToCachedFrame): - (WebKit::postCommitFrameViewSetup): - * WebCoreSupport/GtkAdjustmentWatcher.cpp: Added. - (WebKit::GtkAdjustmentWatcher::GtkAdjustmentWatcher): - (WebKit::updateAdjustmentFromScrollbar): - (WebKit::GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars): - (WebKit::updateAdjustmentCallback): - (WebKit::GtkAdjustmentWatcher::updateAdjustmentsFromScrollbarsLater): - (WebKit::adjustmentValueChangedCallback): - (WebKit::setAdjustment): - (WebKit::GtkAdjustmentWatcher::setHorizontalAdjustment): - (WebKit::GtkAdjustmentWatcher::setVerticalAdjustment): - (WebKit::GtkAdjustmentWatcher::adjustmentValueChanged): - * WebCoreSupport/GtkAdjustmentWatcher.h: Added. - (WebKit::GtkAdjustmentWatcher::horizontalAdjustment): - (WebKit::GtkAdjustmentWatcher::verticalAdjustment): - * webkit/webkitwebview.cpp: - (setHorizontalAdjustment): - (setVerticalAdjustment): Remove the adjustment member. Call into the adjustment watcher. - (getHorizontalAdjustment): Ditto. - (getVerticalAdjustment): Ditto. - (webkit_web_view_size_allocate): Ditto. - (webkit_web_view_set_scroll_adjustments): Ditto. - (webkit_web_view_dispose): Ditto. - (webkit_web_view_init): Ditto. - * webkit/webkitwebviewprivate.h: Ditto. - -2011-05-06 Kent Tamura <tkent@chromium.org> - - Reviewed by Ryosuke Niwa. - - Eliminate WebCore/dom/InputElement.{cpp,h} - https://bugs.webkit.org/show_bug.cgi?id=60262 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setAutofilled): - Follow the return type change of Node::toInputElement(). - (DumpRenderTreeSupportGtk::setValueForUser): ditto. - -2011-05-06 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] [WebKit2] WebView::windowToScreen needs an implementation - https://bugs.webkit.org/show_bug.cgi?id=55960 - - Abstract the code to translate from widget space to screen space into - a helper method in WebCore. - - * WebCoreSupport/ChromeClientGtk.cpp: Use the new helper method from GtkUtilities. - (WebKit::ChromeClient::windowToScreen): - (WebKit::ChromeClient::screenToWindow): - -2011-05-04 Philippe Normand <pnormand@igalia.com> - - Reviewed by Dimitri Glazkov. - - Implement LayoutTestController::pseudoShadowId() - https://bugs.webkit.org/show_bug.cgi?id=60034 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowPseudoId): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-05-05 Bharathwaaj Srinivasan <bharathwaaj.s@gmail.com> - - Reviewed by Holger Freyther. - - Fix build-webkit --minimal. - https://bugs.webkit.org/show_bug.cgi?id=60257 - - * webkit/webkitglobals.cpp: - (webkitInit): - -2011-05-05 Ryosuke Niwa <rniwa@webkit.org> - - Reviewed by Eric Seidel. - - Rename SelectionController to FrameSelection - https://bugs.webkit.org/show_bug.cgi?id=60234 - - * webkit/webkitwebview.cpp: - (getLocationForKeyboardGeneratedContextMenu): - -2011-05-04 Ryosuke Niwa <rniwa@webkit.org> - - GTK build fix attempt after r85823 - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::webView): - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - * webkit/webkitwebview.cpp: - (WebKit::kit): - -2011-05-04 Cris Neckar <cdn@chromium.org> - - Reviewed by Adam Barth. - - Expose WebView directly through ChromeClient. - https://bugs.webkit.org/show_bug.cgi?id=49902 - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::webView): - -2011-05-04 Tao Bai <michaelbai@chromium.org> - - Reviewed by David Kilzer. - - Populate touch-icon url to FrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=59143 - - Respect the interface change in FrameLoaderClient. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidChangeIcons): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-05-03 Julien Chaffraix <jchaffraix@codeaurora.org> - - Reviewed by Dimitri Glazkov. - - Element:shadowRoot & Element::ensureShadowRoot should return ShadowRoot* - https://bugs.webkit.org/show_bug.cgi?id=58703 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Added #include for ShadowRoot.h. - -2011-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk+] Crash when navigating back - https://bugs.webkit.org/show_bug.cgi?id=59799 - - The innerNode management in WebKitHitTestResult was relying on the - old DOM bindings behavior where every DOM objects had to be - disposed by the caller. Now the objects are garbage collected by - WebKit when either the parent frame or document dies, so this is - not needed anymore. Update the code to simply take ownership of - the node, which effectively correctly balances the reference - count. - - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_dispose): call C++ dtors in private data. - (webkit_hit_test_result_get_property): adatp to GRefPtr API. - (webkit_hit_test_result_init): call C++ ctors in private data. - -2011-04-28 Xan Lopez <xlopez@igalia.com> - - Unreviewed build fix. - - * GNUmakefile.am: - -2011-04-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] Split JSC and WebCore builds - https://bugs.webkit.org/show_bug.cgi?id=19428 - - Add a pkg-config file for JavaScriptCoreGTK+. - - * GNUmakefile.am: take care of the pkg-config file. - * javascriptcoregtk.pc.in: Added. - -2011-04-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] Split JSC and WebCore builds - https://bugs.webkit.org/show_bug.cgi?id=19428 - - Build JavaScriptCore as a libtool shared library instead of a - private convenience library. - - * GNUmakefile.am: adapt to new name for javascriptcore target. - -2011-04-28 ojab <ojab@ojab.ru> - - Reviewed by Martin Robinson. - - Webkit-gtk build failure, no type/member 'Page' in namespace 'WebCore' - https://bugs.webkit.org/show_bug.cgi?id=59585 - - * webkit/webkitwebviewprivate.h: - -2011-04-28 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Click counting logic should be shared between WebKit1 and WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=59715 - - Switch WebKit1 to use the new GtkClickCounter for counting > 3 clicks in a row. - This allows the code to be shared between WebKit1 and WebKit2. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Call GtkClickCounter::reset instead of fiddling - the WebView private data directly. - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): Call into GtkClickCounter now. - (webkit_web_view_init): Remove private member intialization. - * webkit/webkitwebviewprivate.h: Remove unneeded private members. - -2011-04-27 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] Menulists do not follow text direction when rendering options with right-to-left text - https://bugs.webkit.org/show_bug.cgi?id=54038 - - Fix rendering of menulists that contain right-to-left text. Text direction - inside a menulist now follows the alignment of its contents. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::selectItemWritingDirectionIsNatural): Return false instead of true. - (WebKit::ChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Return true instead of false. - -2011-04-27 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r84987. - http://trac.webkit.org/changeset/84987 - https://bugs.webkit.org/show_bug.cgi?id=59618 - - Caused crashes on the GTK+ debug bots. (Requested by mrobinson - on #webkit). - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): - -2011-04-26 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] flaky crash storage/open-database-set-empty-version.html - https://bugs.webkit.org/show_bug.cgi?id=58988 - - Construct the security origin directly instead of getting it from the WebKitWebFrame object. - This prevents failing to create the WebKitSecurityOrigin in cases where the frame is in - some inconsistent state. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): Construct the origin directly. - -2011-04-22 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] fast/events/overflow-viewport-renderer-deleted.html crashes - https://bugs.webkit.org/show_bug.cgi?id=58976 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getInnerText): Guard against situations when the documentElement - method of the document returns null. - -2011-04-22 Sam Weinig <sam@webkit.org> - - Reviewed by Gavin Barraclough. - - Remove remaining uses of deprecated version of toJS - https://bugs.webkit.org/show_bug.cgi?id=59170 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowRoot): - (DumpRenderTreeSupportGtk::ensureShadowRoot): - Replace use of deprecated toJS overload with explicit call to deprecatedGlobalObjectForPrototype. - -2011-04-22 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] DRT: implement eventSender.scalePageBy - https://bugs.webkit.org/show_bug.cgi?id=59082 - - Added support in DRT for webview scaling. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::scale): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-21 Ryosuke Niwa <rniwa@webkit.org> - - Reviewed by Sam Weinig. - - Add Frame* to the argument lists of canCopyCut and canPaste - https://bugs.webkit.org/show_bug.cgi?id=59153 - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::canCopyCut): - (WebKit::EditorClient::canPaste): - * WebCoreSupport/EditorClientGtk.h: - -2011-04-21 Martin Robinson <mrobinson@igalia.com> - - [GTK] DRT: implement eventSender.scalePageBy - https://bugs.webkit.org/show_bug.cgi?id=59082 - - Rolling out r84507 since it broke many GTK+ tests. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-21 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] missing LayoutTestController::callShouldCloseOnWebView() - https://bugs.webkit.org/show_bug.cgi?id=59086 - - DRT::shouldClose(), used by the LayoutController. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shouldClose): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-21 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] DRT: implement eventSender.scalePageBy - https://bugs.webkit.org/show_bug.cgi?id=59082 - - Added support in DRT for webview scaling. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::scalePageBy): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-20 Dominic Cooney <dominicc@chromium.org> - - Reviewed by Dimitri Glazkov. - - layoutTestController can create and destroy shadow DOM - https://bugs.webkit.org/show_bug.cgi?id=59058 - - Support for new methods in GTK DRT. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::ensureShadowRoot): - (DumpRenderTreeSupportGtk::removeShadowRoot): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-20 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Build libWebCore with the gtk sources too - https://bugs.webkit.org/show_bug.cgi?id=58968 - - In some cases webcore files are compiled twice, so it improves the - build time. - - * GNUmakefile.am: Remove webcore gtk sources from libwebkitgtk - sources. - -2011-04-19 Vsevolod Vlasov <vsevik@chromium.org> - - Reviewed by Pavel Feldman. - - Web Inspector: Rename lengthReceived to encodedDataLength/dataLength - https://bugs.webkit.org/show_bug.cgi?id=58883 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveContentLength): - * WebCoreSupport/FrameLoaderClientGtk.h: - * webkit/webkitdownload.cpp: - (DownloadClient::didReceiveData): - -2011-04-18 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Martin Robinson. - - [GTK] Need support for dumping focus rectangles in pixel results - https://bugs.webkit.org/show_bug.cgi?id=53647 - - Add a support function that returns the rectangle of the current - selection in frame. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::rectangleForSelection): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-12 Xan Lopez <xlopez@igalia.com> - - Unreviewed build fix. - - * webkit/webkitwebhistoryitem.cpp: - -2011-04-12 Stephanie Lewis <slewis@apple.com> - - Reviewed by Oliver Hunt. - - https://bugs.webkit.org/show_bug.cgi?id=58280 - <rdar://problem/9252824> javascript in an inconsistent state due to serialization returning an un-handled exception. - - Add a header include. Fallout from untangling some header files in WebCore. - - * webkit/webkitwebhistoryitem.cpp: - -2011-02-03 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] The GTK+ DRT needs an implementation of the PlainTextController - https://bugs.webkit.org/show_bug.cgi?id=53605 - - Added jsValueToDOMRange to DumpRenderTreeSupportGtk. This static method can convert - a JSValueRef to a WebKitDOMRange. When it's possible to do this with the public - API, we can remove this method. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::jsValueToDOMRange): Added. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Added declaration. - -2011-04-11 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [Gtk] Implement support for Embedded Objects - https://bugs.webkit.org/show_bug.cgi?id=52148 - - New accessibility unit test for embedded objects. - - * tests/testatk.c: - (testWebkitAtkEmbeddedObjects): New unit test. - (main): Added the new unit test. - -2011-04-08 Dominic Cooney <dominicc@google.com> - - Reviewed by Adam Roben. - - Make layoutTestController.shadowRoot return null, not undefined, - when its argument is invalid. - https://bugs.webkit.org/show_bug.cgi?id=58121 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowRoot): - -2011-04-08 Dominic Cooney <dominicc@google.com> - - Reviewed by Kent Tamura. - - layoutTestController.shadowRoot should return undefined if its - argument is not an element. - https://bugs.webkit.org/show_bug.cgi?id=58119 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowRoot): - -2011-04-08 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Implement increment() and decrement() functions in DRT's AccessibilityUIElement - https://bugs.webkit.org/show_bug.cgi?id=58039 - - Implemented missing functions in GTK's DRT. - - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (modifyAccessibilityValue): Helper function to increment or decrement - the current value for an object through the AccessibilityObject's API. - (DumpRenderTreeSupportGtk::incrementAccessibilityValue): New function, - to be used from GTK's DRT. - (DumpRenderTreeSupportGtk::decrementAccessibilityValue): Ditto. - -2011-04-06 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Martin Robinson. - - [GTK] Need a way to get the path to a WebKitWebPlugin - https://bugs.webkit.org/show_bug.cgi?id=57968 - - Expose the path of the plugin through the WebKitWebPlugin object. - - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_get_path): - * webkit/webkitwebplugin.h: - * webkit/webkitwebpluginprivate.h: - -2011-04-07 Alice Boxhall <aboxhall@chromium.org> - - Reviewed by Ryosuke Niwa. - - Move the MouseEventWithHitTestResults::targetNode() method on to EventHandler. - https://bugs.webkit.org/show_bug.cgi?id=57921 - - * webkit/webkitwebview.cpp: - (webkit_web_view_forward_context_menu_event): - Call subframeForHitTestResult rather than subframeForTargetNode as the targetNode() - method has moved on to EventHandler. - -2011-04-05 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [Cairo] Better separate the concerns of GraphicsContextCairo - https://bugs.webkit.org/show_bug.cgi?id=55150 - - Add a PlatformContextCairo which right now stores the cairo_t* for a - GraphicsContextCairo. Later patches will move logic for tracking ContextShadow - and image masking layers into this PlatformContextCairo class. - - * webkit/webkitwebframe.cpp: - (draw_page_callback): - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): - (webkit_web_view_draw): - -2011-04-04 MORITA Hajime <morrita@google.com> - - Reviewed by Ryosuke Niwa. - - [Refactoring] SpellCheckingResult should be replaced with TextCheckingResult - https://bugs.webkit.org/show_bug.cgi?id=56085 - - * WebCoreSupport/TextCheckerClientEnchant.h: - (WebKit::TextCheckerClientEnchant::requestCheckingOfString): - -2011-04-04 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] WebGL support - https://bugs.webkit.org/show_bug.cgi?id=31517 - - Add support for toggling WebGL at runtime when it's enabled. - - * webkit/webkitwebsettings.cpp: Add the enable-webgl property. When ENABLE_WEBGL - is not enabled, it's a no-op. - (webkit_web_settings_class_init): Update to support enable-webgl. - (webkit_web_settings_set_property): Ditto. - (webkit_web_settings_get_property): Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): Ditto. - -2011-04-04 Alexey Proskuryakov <ap@apple.com> - - Reviewed by Dan Bernstein. - - REGRESSION (WebKit2): Caps-Lock indicator sometimes doesn't appear in WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=51230 - <rdar://problem/8780989> - - * webkit/webkitwebview.cpp: (webkit_web_view_key_release_event): Moved Caps Lock handling from - WebKits to WebCore, because WebKit shouldn't be smart. - -2011-04-04 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] webkit_web_view_popup_menu_handler should call SelectionController::localCaretRect - https://bugs.webkit.org/show_bug.cgi?id=54633 - - Remove use of legacy editing positions when positioning keyboard-driven context - menus. Simplify the code greatly. - - * webkit/webkitwebview.cpp: - (getLocationForKeyboardGeneratedContextMenu): Added this helper which calculates - the context menu position. - (webkit_web_view_popup_menu_handler): Simplify code preventing the menu from bumping - into the edges of the view. Remove (0,-1) hack as it no longer seems to be important. - -2011-04-02 Dominic Cooney <dominicc@google.com> - - Reviewed by Martin Robinson. - - Add layoutTestController.shadowRoot to GTK DumpRenderTree. - https://bugs.webkit.org/show_bug.cgi?id=57551 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowRoot): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-01 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r82721. - http://trac.webkit.org/changeset/82721 - https://bugs.webkit.org/show_bug.cgi?id=57687 - - This patch introduced assertion failures on the GTK+ bots. - (Requested by mrobinson on #webkit). - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-04-01 Dominic Cooney <dominicc@google.com> - - Reviewed by Martin Robinson. - - Add layoutTestController.shadowRoot to GTK DumpRenderTree. - https://bugs.webkit.org/show_bug.cgi?id=57551 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::shadowRoot): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-03-31 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Link explicitly with XRender on Linux/Unix - https://bugs.webkit.org/show_bug.cgi?id=57558 - - * GNUmakefile.am: add XRender LIBS. - -2011-03-31 Evan Martin <evan@chromium.org> - - Build fix from previous change. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - -2011-03-31 Evan Martin <evan@chromium.org> - - Reviewed by Eric Seidel. - - <title> should support dir attribute - https://bugs.webkit.org/show_bug.cgi?id=50961 - - Update to new FrameLoaderClient interface. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - (WebKit::FrameLoaderClient::setTitle): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-03-29 Philippe Normand <pnormand@igalia.com> - - Unreviewed, disable an assert in testwebview due to - https://bugs.webkit.org/show_bug.cgi?id=57315 - - * tests/testwebview.c: - -2011-03-28 Adele Peterson <adele@apple.com> - - Build fix. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker): - -2011-03-28 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Fullscreen tests failing after r82084 - https://bugs.webkit.org/show_bug.cgi?id=57219 - - Added the withKeyboard parameter to supportsFullScreenForElement - method in ChromeClient. Fullscreen will be disabled for keyboard - access by default. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): - * WebCoreSupport/ChromeClientGtk.h: - -2011-03-25 Andy Estes <aestes@apple.com> - - Reviewed by Adele Peterson. - - REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js - https://bugs.webkit.org/show_bug.cgi?id=49016 - - Update objectContentType() implementation to handle the - shouldPreferPlugInsForImages flag. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::objectContentType): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-03-25 Priit Laes <plaes@plaes.org> - - Reviewed by Martin Robinson. - - [GTK] [PATCH] Avoid critical warning when free-ing list of plugins - https://bugs.webkit.org/show_bug.cgi?id=57025 - - * webkit/webkitwebplugindatabase.cpp: - (webkit_web_plugin_database_plugins_list_free): - Use regular check and return instead of g_return_if_fail. - -2011-03-24 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r81916 and r81917. - http://trac.webkit.org/changeset/81916 - http://trac.webkit.org/changeset/81917 - https://bugs.webkit.org/show_bug.cgi?id=57071 - - broke a test on platforms that do not have QuickTime installed - (Requested by estes on #webkit). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::objectContentType): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-03-24 Andy Estes <aestes@apple.com> - - Reviewed by Darin Adler. - - REGRESSION (r70748): latest nightly builds kills AC_QuickTime.js - https://bugs.webkit.org/show_bug.cgi?id=49016 - - Update objectContentType() implementation to handle the - shouldPreferPlugInsForImages flag. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::objectContentType): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-03-23 Brady Eidson <beidson@apple.com> - - Reviewed by Sam Weinig. - - Change IconDatabase opening to allow for arbitrary filenames - https://bugs.webkit.org/show_bug.cgi?id=56977 - - * webkit/webkiticondatabase.cpp: - (webkit_icon_database_set_path): - -2011-03-22 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Applications that include WebKit headers fail to build when using strict warnings - because the signature for webkit_application_cache_get_maximum_size is missing a - 'void' to make it explicit it takes no arguments. - - * webkit/webkitapplicationcache.h: - -2011-03-21 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] 1.3.13 release bump - https://bugs.webkit.org/show_bug.cgi?id=56795 - - Version bump for 1.3.13 and updated NEWS file with release notes. - - * NEWS: - -2011-03-21 Chang Shu <cshu@webkit.org> - - Reviewed by Alexey Proskuryakov. - - REGRESSION (r79953): Can't type in MS Outlook 2011 - https://bugs.webkit.org/show_bug.cgi?id=56665 - - r79953 removed the WebView level editablity which is persistent no matter whether - underlying document itself is changed and editability gets lost. The resolution is to - set this WebView editable value to WebCore. This avoids the callback from WebCore to - WebKit which was the main goal in r79953 to improve performance. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_editable): - (webkit_web_view_set_editable): - -2011-03-21 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes - https://bugs.webkit.org/show_bug.cgi?id=56737 - - * tests/testatk.c: - (testWebkitAtkHypertextAndHyperlinks): Updated unit test to also - check offsets for hyperlinks inside <span> nodes. - -2011-03-18 David Keijser <keijser@gmail.com> and Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] On-demand event-listeners for DOM event signals - https://bugs.webkit.org/show_bug.cgi?id=49649 - - * tests/testdomdomwindow.c: update unit tests for new APIs. - (load_event_callback): ditto. - (test_dom_domview_signals): ditto. - (load_status_callback): ditto. - -2011-03-17 Brady Eidson <beidson@apple.com> - - Reviewed by Sam Weinig. - - https://bugs.webkit.org/show_bug.cgi?id=56425 - More groundwork for WebKit2 IconDatabase - - Update already-used function names: - * webkit/webkiticondatabase.cpp: - (webkit_icon_database_get_icon_uri): - (webkit_icon_database_get_icon_pixbuf): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_icon_uri): - -2011-03-16 Joseph Pecoraro <joepeck@webkit.org> - - Reviewed by Kenneth Rohde Christiansen. - - Viewport no longer allows an auto value for "user-scalable" - https://bugs.webkit.org/show_bug.cgi?id=55416 - - Make the default value for userScalable be true. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): update test output to include userScalable. - * webkit/webkitviewportattributes.cpp: - (webkitViewportAttributesRecompute): - -2011-03-15 Ilya Sherman <isherman@chromium.org> - - Reviewed by Tony Chang. - - Autofilled form elements are assigned fixed background color but not text color - https://bugs.webkit.org/show_bug.cgi?id=48382 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setAutofilled): Added. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-03-14 Ryuan Choi <ryuan.choi@samsung.com> - - Reviewed by Martin Robinson. - - [GTK] Possible leaks after splitting TextCheckerClientEnchant. - https://bugs.webkit.org/show_bug.cgi?id=55989 - - Convert gchar* to GOwnPtr<gchar> and refactor the code. - - * WebCoreSupport/TextCheckerClientEnchant.cpp: - (WebKit::TextCheckerClientEnchant::checkSpellingOfString): - -2011-03-11 Marco Peereboom <marco@peereboom.us> - - Reviewed by Gustavo Noronha Silva. - - Provide a knob to enable/disable DNS prefetching. - DNS prefetching is enabled by default. - https://bugs.webkit.org/show_bug.cgi?id=55973 - - * 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): - -2011-03-08 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] close-web-view emitted on disposed WebView - https://bugs.webkit.org/show_bug.cgi?id=55932 - - * WebCoreSupport/ChromeClientGtk.cpp: - (ChromeClient::chromeDestroyed): Remove the closeSoonTimer glib - source before destruction of the ChromeClient. - -2011-03-11 Roland Steiner <rolandsteiner@chromium.org> - - Reviewed by Ryosuke Niwa. - - Bug 55570 - Remove dependency of dom/InputElement.cpp on html/ and wml/ - https://bugs.webkit.org/show_bug.cgi?id=55570 - - Add a virtual function toInputElement() to Node that has a default - implementation of returning 0. - For HTMLInputElement and WMLInputElement (which derive from InputElement) - override this to return the object. - Change all calling sites of the old toInputElement to use the new member - function. This also allows us to save some casts. - - No new tests (refactoring). - - * src/WebInputElement.cpp: - (WebKit::toWebInputElement): - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setValueForUser): - -2011-03-10 Philippe Normand <pnormand@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] unittests/testapplicationcache crashes - https://bugs.webkit.org/show_bug.cgi?id=56083 - - Removed the webkit_application_cache_get_database_directory_path - API as the underlying ApplicationCacheStorage doesn't allow - setting the cache path multiple times. - - * tests/testapplicationcache.c: - (main): - * webkit/webkitapplicationcache.cpp: - (webkit_application_cache_get_database_directory_path): - * webkit/webkitapplicationcache.h: - * webkit/webkitglobals.cpp: - (webkitInit): - -2011-03-09 Peter Kasting <pkasting@google.com> - - Reviewed by Mihai Parparita. - - Unify Windows version checks. - https://bugs.webkit.org/show_bug.cgi?id=55979 - - * webkit/webkitwebsettings.cpp: - (webkitOSVersion): - -2011-03-08 Christian Dywan <christian@lanedo.com> - - Reviewed by Martin Robinson. - - [GTK] provide an API to control the IconDatabase - https://bugs.webkit.org/show_bug.cgi?id=32510 - - * GNUmakefile.am: - * WebCoreSupport/FrameLoaderClientGtk.cpp: Emit signals on - the icon database for new icons. - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitglobals.cpp: - * webkit/webkitglobals.h: Add a function to obtain the global - icon database. - * webkit/webkiticondatabase.cpp: - * webkit/webkiticondatabase.h: Implement public icon database - object with methods for obtaining icon URLs, pixbufs, clearing - waiting for new icons. - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: Add a method to obtain an icon pixbuf - for the web view. -2011-03-08 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add layoutTestController.setValueForUser() after r80412 - https://bugs.webkit.org/show_bug.cgi?id=55862 - - Add setValueForUser method to DumpRenderTreeSupportGTK. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setValueForUser): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-03-07 Sam Weinig <sam@webkit.org> - - Reviewed by Anders Carlsson. - - Replace WebKit2's decidePolicyForMIMEType with decidePolicyForResponse - https://bugs.webkit.org/show_bug.cgi?id=55827 - - Renamed FrameLoaderClient::dispatchDecidePolicyForMIMEType to dispatchDecidePolicyForResponse - and pass the entire response, instead of just the MIMEType. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForResponse): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-03-01 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Windowless plugins override the view cursor - https://bugs.webkit.org/show_bug.cgi?id=55531 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setCursor): Moved the implementation of setCursor here - which is more fitting since it sets the cursor for the entire window. - -2011-03-03 Brady Eidson <beidson@apple.com> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=55721 - Global IconDatabase should be returned by reference, not as a pointer - - * webkit/webkitglobals.cpp: - (closeIconDatabaseOnExit): - (WebKit::setIconDatabaseEnabled): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_icon_uri): - -2011-03-03 Alexey Proskuryakov <ap@apple.com> - - Removing an include of WebCoreKeyboardUIMode.h that Ive just added. It's already included - via ChromeClient.h - - * WebCoreSupport/ChromeClientGtk.h: - -2011-03-02 Alexey Proskuryakov <ap@apple.com> - - Reviewed by Darin Adler. - - REGRESSION (WebKit2): Tab keys no longer observe Full Keyboard Access - https://bugs.webkit.org/show_bug.cgi?id=55633 - <rdar://problem/8963023> - - * WebCoreSupport/ChromeClientGtk.cpp: (WebKit::ChromeClient::keyboardUIMode): - * WebCoreSupport/ChromeClientGtk.h: - Implement keyboardUIMode() instead of tabsToLinks(). No change in functionality, since - this platform doesn't observe or have full keyboard access state. - -2011-03-03 Lukasz Slachciak <l.slachciak@samsung.com> - - Reviewed by Xan Lopez. - - [GTK] Extended application cache database API and added unit tests file. - https://bugs.webkit.org/show_bug.cgi?id=55335 - - * GNUmakefile.am: Add testapplicationcache.c and remove webkitapplicationcacheprivate.h. - * tests/testapplicationcache.c: Added. - (test_applicationcache_maximum_size): Tests if application cache storage is set/get correctly. - (test_applicationcache_database_directory_path): Tests if application cache directory path is set/get correctly. - (main): - * webkit/webkitapplicationcache.cpp: - (webkit_application_cache_get_maximum_size): New API for getting application cache maximum storage size. - * webkit/webkitapplicationcache.h: Declaration of API for getting/setting application cache maximum storage size. - * webkit/webkitapplicationcacheprivate.h: Removed. -2011-03-03 Peter Kasting <pkasting@google.com> - - Reviewed by James Robinson. - - Drop redundant "Windows; " from the Windows-specific User Agent string. - https://bugs.webkit.org/show_bug.cgi?id=54567 - - * webkit/webkitwebsettings.cpp: - (webkitPlatform): - (webkitUserAgent): - -2011-03-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - Do a bit of cleanup in ChromeClientGtk. Instead of always fetching the - WebKitWebView from the frame, simply get it from the member variable of - the ChromeClientGtk instance itself. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scrollbarsVisible): - (WebKit::ChromeClient::exceededDatabaseQuota): - (WebKit::ChromeClient::requestGeolocationPermissionForFrame): - (WebKit::ChromeClient::cancelGeolocationPermissionRequestForFrame): - (WebKit::ChromeClient::enterFullscreenForNode): - (WebKit::ChromeClient::exitFullscreenForNode): - -2011-03-01 Joseph Pecoraro <joepeck@webkit.org> - - Unreviewed. Roll out r80068 and r80073 due to breaking WebKit2 Qt port. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): - * webkit/webkitviewportattributes.cpp: - (webkitViewportAttributesRecompute): - -2011-03-01 Joseph Pecoraro <joepeck@webkit.org> - - Reviewed by Kenneth Rohde Christiansen. - - Viewport Warning/Error Messages Are Now Inaccurate - https://bugs.webkit.org/show_bug.cgi?id=53707 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): pass a Document into computeViewportAttributes for warnings to be reported to. - * webkit/webkitviewportattributes.cpp: - (webkitViewportAttributesRecompute): pass a Document into computeViewportAttributes for warnings to be reported to. - -2011-03-01 Kamil Blank <k.blank@samsung.com> - - Reviewed by Martin Robinson. - - [GTK] Fixing headers order in webkit.h. - https://bugs.webkit.org/show_bug.cgi?id=55316 - - * webkit/webkit.h: Style fix. - -2011-03-01 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Convert use of cairo_t to RefPtr<cairo_t> in webkitwebiew.cpp - https://bugs.webkit.org/show_bug.cgi?id=55437 - - * webkit/webkitwebview.cpp: Convert use of cairo_t to RefPtr<cairo_t>. - (webkit_web_view_expose_event): - -2011-02-28 Chang Shu <cshu@webkit.org> - - Reviewed by Ryosuke Niwa. - - Remove the support of Frame::isContentEditable and its dependencies. - https://bugs.webkit.org/show_bug.cgi?id=54292 - - Remove the WebKit side implementation. Make WebKit support depend on Document::inDesignMode. - - * WebCoreSupport/EditorClientGtk.cpp: - * WebCoreSupport/EditorClientGtk.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - (webkit_web_view_get_editable): - (webkit_web_view_set_editable): - * webkit/webkitwebviewprivate.h: - -2011-02-26 Lukasz Slachciak <l.slachciak@samsung.com> - - Reviewed by Xan Lopez. - - [GTK] Implemented API to set/get web application cache directory path database. - - * GNUmakefile.am: Add webkitapplicationcache.h file. - * webkit/webkit.h: Add webkitapplicationcache.h file. - * webkit/webkitapplicationcache.cpp: definition of API setting and getting - web application cache directory path database. - (webkit_application_cache_get_database_directory_path): - (webkit_application_cache_set_database_directory_path): - * webkit/webkitapplicationcache.h: Added new API file for setting and getting - web application cache directory path database. - * webkit/webkitglobals.cpp: - (webkitInit): use webkit_application_cache_set_database_directory_path - to set default web application cache directory path database. - -2011-02-26 Vsevolod Vlasov <vsevik@chromium.org> - - Reviewed by Pavel Feldman. - - DumpRenderTree should reset frame opener between tests. - https://bugs.webkit.org/show_bug.cgi?id=54874 - - Added clearOpener method to DumpRenderTreeSupportGTK. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::clearOpener): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-26 Kenneth Rohde Christiansen <kenneth@webkit.org> - - Reviewed by Andreas Kling. - - Make it possible to test the targetdensity-dpi support - https://bugs.webkit.org/show_bug.cgi?id=55142 - - Test the viewport meta tag feature targetdensity-dpi by - adding extra arguments to dumpConfigurationForViewport - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-26 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r79764. - http://trac.webkit.org/changeset/79764 - https://bugs.webkit.org/show_bug.cgi?id=55295 - - "broke Chromium builds" (Requested by rniwa on #webkit). - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-26 Vsevolod Vlasov <vsevik@chromium.org> - - Reviewed by Pavel Feldman. - - DumpRenderTree should reset frame opener between tests. - https://bugs.webkit.org/show_bug.cgi?id=54874 - - Added clearOpener method to DumpRenderTreeSupportGTK. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::clearOpener): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-24 Peter Kasting <pkasting@google.com> - - Reviewed by Eric Seidel. - - Drop the "U; " encryption level from the User Agent string. - https://bugs.webkit.org/show_bug.cgi?id=54566 - - * webkit/webkitwebsettings.cpp: - (webkitUserAgent): - -2011-02-24 Andrew Wilson <atwilson@chromium.org> - - Unreviewed, rolling out r79570. - http://trac.webkit.org/changeset/79570 - https://bugs.webkit.org/show_bug.cgi?id=54874 - - Breaks chromium build because glue/mocks/mock_web_frame.h/cc - was not updated - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-24 Vsevolod Vlasov <vsevik@chromium.org> - - Reviewed by Alexey Proskuryakov. - - DumpRenderTree should reset frame opener between tests. - https://bugs.webkit.org/show_bug.cgi?id=54874 - - Added clearOpener method to DumpRenderTreeSupportGTK. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::clearOpener): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-22 Laszlo Gombos <laszlo.1.gombos@nokia.com> - - Reviewed by Alexey Proskuryakov. - - Drop the language tag part from the User Agent string - https://bugs.webkit.org/show_bug.cgi?id=54560 - - * webkit/webkitwebsettings.cpp: - (webkitUserAgent): - -2011-02-22 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] position:fixed elements flicker while scrolling after r74196 - https://bugs.webkit.org/show_bug.cgi?id=54981 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): Initialize the new m_pendingScrollInvalidations - boolean to false. - (WebKit::ChromeClient::invalidateWindow): If this is an immediate invalidation and we - having pending scrolling invalidations, instruct GDK to process updates now. - (WebKit::ChromeClient::scroll): Remove the call to gdk_window_process_updates. Set - m_pendingScrollInvalidations to true to force it to happen in invalidateWindow instead. - * WebCoreSupport/ChromeClientGtk.h: Add new boolean member. - -2011-02-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] DRT needs an implementation of LayoutTestController.setSelectTrailingWhitespace - https://bugs.webkit.org/show_bug.cgi?id=53603 - - Add setSelectTrailingWhitespaceEnabled and selectTrailingWhitespaceEnabled which allow - setting and querying the selectTrailingWhitespaceEnabled setting. EditorClient just - listens to this value during DRT runs. Perhaps later we can expose this to the public - API. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setSelectTrailingWhitespaceEnabled): Added - (DumpRenderTreeSupportGtk::selectTrailingWhitespaceEnabled): Added - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::isSelectTrailingWhitespaceEnabled): Ask DRTSupportGtk - for the appropriate return value. - -2011-02-21 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] [REGRESSION] After r79130, spell tests did not work - https://bugs.webkit.org/show_bug.cgi?id=54860 - - * WebCoreSupport/TextCheckerClientEnchant.cpp: - (WebKit::TextCheckerClientEnchant::checkSpellingOfString): Avoided - freeing the default PangoLanguage. - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): Initialized list of dictionaries. - -2011-02-17 Ryosuke Niwa <rniwa@webkit.org> - - Reviewed by Kent Tamura. - - Rename Position::node() to Position::deprecatedNode() - https://bugs.webkit.org/show_bug.cgi?id=54622 - - Done the rename. All calls to node() are replaced by calls to deprecatedNode(). - - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): - -2011-02-19 Ryuan Choi <ryuan.choi@samsung.com> - - Reviewed by Martin Robinson. - - [GTK] Remove mandatory Enchant dependency - https://bugs.webkit.org/show_bug.cgi?id=51587 - - Extract TextCheckerClientEnchant From EditorClientGtk and remove - enchant dependency from other files. - - * GNUmakefile.am: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::textChecker): - * WebCoreSupport/TextCheckerClientEnchant.cpp: Added. - (WebKit::TextCheckerClientEnchant::TextCheckerClientEnchant): - (WebKit::TextCheckerClientEnchant::~TextCheckerClientEnchant): - (WebKit::TextCheckerClientEnchant::ignoreWordInSpellDocument): - (WebKit::TextCheckerClientEnchant::learnWord): - (WebKit::TextCheckerClientEnchant::checkSpellingOfString): - (WebKit::TextCheckerClientEnchant::getAutoCorrectSuggestionForMisspelledWord): - (WebKit::TextCheckerClientEnchant::checkGrammarOfString): - (WebKit::TextCheckerClientEnchant::getGuessesForWord): - (WebKit::getAvailableDictionariesCallback): - (WebKit::TextCheckerClientEnchant::updateSpellCheckingLanguage): - (WebKit::TextCheckerClientEnchant::freeSpellCheckingLanguage): - * WebCoreSupport/TextCheckerClientEnchant.h: Added. - (WebKit::TextCheckerClientEnchant::requestCheckingOfString): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_finalize): - (webkit_web_settings_set_property): - * webkit/webkitwebview.cpp: - (webkit_web_view_settings_notify): - -2011-02-19 Charlie Reis <creis@chromium.org> - - Reviewed by Mihai Parparita. - - Ensure loading has stopped in HistoryController::goToItem - https://bugs.webkit.org/show_bug.cgi?id=54517 - - Add a FrameLoaderClient callback for whether to stop loading before goToItem. - - Test: http/tests/navigation/forward-to-fragment-fires-onload.html - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClientGtk::shouldStopLoadingForHistoryItem): Added. - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-02-18 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] atk_text_get_selection/atk_text_set_selection fails for list items - https://bugs.webkit.org/show_bug.cgi?id=53453 - - Update unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkTextSelections): Check that functions from AtkText - interface to set and get text selections work with list items. - -2011-02-17 Robert Ancell <rober.ancell@gmail.com> - - Reviewed by Martin Robinson. - - [PATCH] GTK documentation fails to build due to changed paths - https://bugs.webkit.org/show_bug.cgi?id=54600 - - * docs/GNUmakefile.am: Update the paths that have now moved the Source - directory. - -2011-02-16 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Match more various WebKit API enum values with WebCore enum values - https://bugs.webkit.org/show_bug.cgi?id=54352 - - AssertMatchingEnums.cpp was added to assert that various WebKit API enum values - continue matching WebCore defined enum values in the following changeset. - http://trac.webkit.org/changeset/77868 - However, there are already enum values that have been asserted in other files, - so these assert macros defined need to be moved to AssertMatchingEnum.cpp. - - * WebCoreSupport/AssertMatchingEnums.cpp: Add more enum values to be asserted. - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_class_init): Move the assert macros of - WEBKIT_WEB_NAVIGATION_REASON_* to AssertMatchingEnums.cpp. - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): Move the assert macros of WEBKIT_EDITING_BEHAVIOR_* - to AssertMatchingEnums.cpp. - -2011-02-16 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] events missing when a document is (re)loaded - https://bugs.webkit.org/show_bug.cgi?id=25831 - - Emit the right signals when reloading a document. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyAccessibilityStatus): New function, to make sure - the signals involved in reloading a document are properly emitted. - (WebKit::notifyStatus): Also notify accessibility if enabled. - -2011-02-15 Kenneth Russell <kbr@google.com> - - Reviewed by Darin Fisher. - - Allow controlling minimum DOMTimer interval on a per-page basis - https://bugs.webkit.org/show_bug.cgi?id=54312 - - Added needed methods to implement LayoutTestController's new - setMinimumTimerInterval method. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::defaultMinimumTimerInterval): - (DumpRenderTreeSupportGtk::setMinimumTimerInterval): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-15 Christian Dywan <christian@lanedo.com> - - Rubber-stamped by Gustavo Noronha Silva. - - * webkit/webkitwebsettings.cpp: Correct a typo, it is - acces*s*ibility with two s. - -2011-01-26 MORITA Hajime <morrita@google.com> - - Reviewed by Ryosuke Niwa. - - Refactoring: Extract TextCheckerClient from EditorClient - https://bugs.webkit.org/show_bug.cgi?id=53213 - - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::textChecker): - -2011-02-07 Ryosuke Niwa <rniwa@webkit.org> - - Reviewed by Adam Barth. - - Add EditorClient callbacks to override isDOMPasteAllowed and javaScriptCanAccessClipboard - https://bugs.webkit.org/show_bug.cgi?id=52417 - - Added two callback functions, canCopyCut and canPaste to EditorClient. They are currently - not implemented. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::canCopyCut): Added. - (WebKit::EditorClient::canPaste): Added. - * WebCoreSupport/EditorClientGtk.h: - -2011-02-14 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] testwebdatasource test fails in the bots - https://bugs.webkit.org/show_bug.cgi?id=54414 - - Changed the uri we check, added www to avoid the rewrite that we - get when we as the uri to the request in case it finishes. - - * tests/testwebdatasource.c: - (notify_load_status_cb): - -2011-02-11 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r78331. - http://trac.webkit.org/changeset/78331 - https://bugs.webkit.org/show_bug.cgi?id=54295 - - This patch broke 11 tests in GTK bots (Requested by svillar on - #webkit). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyStatus): - -2011-02-10 Nate Chapin <japhet@chromium.org> - - Reviewed by Adam Barth. - - Update calls to DocumentWriter. - https://bugs.webkit.org/show_bug.cgi?id=50489 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::didRunInsecureContent): - (WebKit::FrameLoaderClient::dispatchDidLoadMainResource): - (WebKit::FrameLoaderClient::finishedLoading): - * WebCoreSupport/FrameLoaderClientGtk.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2011-02-11 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] events missing when a document is (re)loaded - https://bugs.webkit.org/show_bug.cgi?id=25831 - - Emit the right signals when reloading a document. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyAccessibilityStatus): New function, to make sure - the signals involved in reloading a document are properly emitted. - (WebKit::notifyStatus): Also notify accessibility if enabled. - -2011-02-08 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] DRT needs an implementation of LayoutTestController.setIconDatabaseEnabled - https://bugs.webkit.org/show_bug.cgi?id=54033 - - Add a DumpRenderTreeSupportGtk method for turning the icon database on and off. - This is a likely candidate for a new API point. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setIconDatabaseEnabled): Added. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * webkit/webkitglobals.cpp: - (webkitInit): Call setIconDatabaseEnabled(true) on startup, instead - of initializing the database manually. - (WebKit::setIconDatabaseEnabled): Added. - * webkit/webkitglobalsprivate.h: Added declarations. - -2011-02-08 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Remove orphan code from old parser - https://bugs.webkit.org/show_bug.cgi?id=53984 - - * WebCoreSupport/ChromeClientGtk.h: - -2011-02-02 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: move InspectorController's methods from InspectorAgent to InspectorController. - - https://bugs.webkit.org/show_bug.cgi?id=53169 - - Minor change enforced by major changes in WebCore/inspector/InspectorController. - - * WebCoreSupport/InspectorClientGtk.cpp: - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_get_property): - -2011-02-08 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] DRT's TextInputController is unimplemented on GTK - https://bugs.webkit.org/show_bug.cgi?id=52997 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::setComposition): - (DumpRenderTreeSupportGtk::confirmComposition): - (DumpRenderTreeSupportGtk::firstRectForCharacterRange): - (DumpRenderTreeSupportGtk::selectedRange): New methods needed by - TextInputController. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-07 Enrica Casucci <enrica@apple.com> - - Reviewed Adam Roben and Darin Adler. - - WebKit2: drag and drop support on Windows. - https://bugs.webkit.org/show_bug.cgi?id=52775 - - Removed createDragImageForLink from DragClient. - - * WebCoreSupport/DragClientGtk.cpp: - * WebCoreSupport/DragClientGtk.h: - -2011-02-07 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [Gtk] Implement layoutTestController.findString - https://bugs.webkit.org/show_bug.cgi?id=50237 - - * GNUmakefile.am: Add AssertMatchingEnums.cpp. - * WebCoreSupport/AssertMatchingEnums.cpp: Add this file to assert that various - WebKit API enum values continue matching WebCore defined enum values. - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::findString): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-02-07 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Daniel Bates. - - [GTK] fast/history/history-subframe-with-name.html fails with GTK DRT - https://bugs.webkit.org/show_bug.cgi?id=44784 - - Call FrameLoader::loadURLIntoChildFrame on the parent frame's loader, not the child's. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): Fix the call to FrameLoader::loadURLIntoChildFrame. - -2011-02-07 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] atk_text_get_caret_offset fails for list items - https://bugs.webkit.org/show_bug.cgi?id=53436 - - Update unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkCaretOffsets): Check that the caret offset returned - match the value previously set. - -2011-02-04 Joone Hur <joone.hur@collabora.co.uk> - - Unreviewed, Fix compilation warning. - - Constructor initialization list should follow the declaration order. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): m_hasRepresentation is moved to - the last position in the initialization list. - -2011-02-04 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] WebKitWebFrame can return a stale frame name when calling webkit_web_frame_get_name - https://bugs.webkit.org/show_bug.cgi?id=53797 - - When the frame name changes between different calls to webkit_web_frame_get_name - on the same frame, return the new frame name instead of the one valid during the - previous call. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_init): Initialize the frame name to 0. - (webkit_web_frame_get_name): Check the current frame name first before - returning the cached value. - -2011-02-04 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] fast/events/pagehide-timeout.html fails - https://bugs.webkit.org/show_bug.cgi?id=53771 - - Add the document browser cache model. This model is optimized for viewing - a series of local files, while the document viewer is optimized for only - viewing one local file. Improve the documentation on the mapping of these - enum values to actual cache settings. - - * webkit/webkitglobals.cpp: - (webkit_set_cache_model): Add support for the document browser cache model and - improve comments in this section better explaining where the magic numbers come from. - * webkit/webkitglobals.h: Added an enum value for the document browser cache model. - -2011-02-03 Yury Semikhatsky <yurys@chromium.org> - - Reviewed by Pavel Feldman. - - Web Inspector: remove settings related methods from InspectorClient - https://bugs.webkit.org/show_bug.cgi?id=53686 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorFrontendClient::InspectorFrontendClient): - * WebCoreSupport/InspectorClientGtk.h: - -2011-02-03 Adam Langley <agl@chromium.org> - - Reviewed by Adam Barth. - - Plumb mixed script URL to FrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=52384 - - Regressions covered by http/tests/security/mixedContent/* - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didRunInsecureContent): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2011-02-03 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Martin Robinson. - - [Gtk] No need to set text encoding in the provisional phase - https://bugs.webkit.org/show_bug.cgi?id=53487 - - According to changeset 67253, setEncoding could be called multiple times from - committedLoad, finishedLoading, dispatchDidFailLoading, and setMainDocumentError - in FrameLoaderClient. To fix this, the relevant code was removed from - FrameLoaderClient and moved to DocumentLoader::commitData. However, that - code was not removed from FrameLoaderClient::finishedLoading in WebKitGtk+. - - Due to this reason, after loading a html document, other ports initialize the - text encoding from FrameLoaderClient::finishedLoading, but WebKitGtk+ sets - the same encoding again, even tries to set encoding in the provisional phase. - This causes unnecessary encoding setting. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): Set m_hasRepresentation to false. - (WebKit::FrameLoaderClient::makeRepresentation): Set m_hasRepresentation to true. - (WebKit::FrameLoaderClient::revertToProvisionalState): Set m_hasRepresentation to true. - (WebKit::FrameLoaderClient::finishedLoading): Skip the encoding setting when - m_hasRepresentation is false. - * WebCoreSupport/FrameLoaderClientGtk.h: Added m_hasRepresentation. - -2011-02-02 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - Update the NEWS file in preparation for the 1.3.11 release. - - * NEWS: Update the NEWS. - -2011-02-02 Dan Winship <danw@gnome.org> - - Reviewed by Martin Robinson. - - [GTK] drop soup cache stuff, which has been moved to libsoup - https://bugs.webkit.org/show_bug.cgi?id=50747 - - * GNUmakefile.am: Remove old cache files. - -2011-02-02 David Hyatt <hyatt@apple.com> - - Reviewed by Darin Adler. - - Removal of right()/bottom(), converting to maxX()/maxY(). - - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): - -2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] atk_text_set_caret_offset fails for list items - https://bugs.webkit.org/show_bug.cgi?id=53388 - - Update unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkCaretOffsets): Ensure setting the caret in a list - item through the AtkText interface is possible. - -2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] character range extents is off when the end of a wrapped line is included - https://bugs.webkit.org/show_bug.cgi?id=53323 - - Update unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkGetExtents): Check that the extent for a full line - are the same height than for a partial section of the same line. - -2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Caret Offset is one off at the end of wrapped lines - https://bugs.webkit.org/show_bug.cgi?id=53300 - - Update unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces): Set and get - the caret offset at the edge of the line. - -2011-01-31 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] atk_text_set_caret_offset returns True even when it is unsuccessful - https://bugs.webkit.org/show_bug.cgi?id=53389 - - New unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkCaretOffsets): New. - (main): Add new test. - -2011-01-29 Dan Winship <danw@gnome.org> - - Reviewed by Xan Lopez. - - [GTK] Remove HAVE_LIBSOUP_2_29_90 and HAVE_GSETTINGS conditionals; - we depend on glib 2.27.4 and libsoup 2.33.1 now. - https://bugs.webkit.org/show_bug.cgi?id=50675 - - * GNUmakefile.am: - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::storeSetting): - * webkit/webkitprivate.cpp: - (inspectorGSettings): - * webkit/webkitprivate.h: - -2011-01-28 Dan Bernstein <mitz@apple.com> - - Reviewed by Sam Weinig. - - <select> can't display right-to-left (rtl) languages - https://bugs.webkit.org/show_bug.cgi?id=19785 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added. - * WebCoreSupport/ChromeClientGtk.h: - -2011-01-28 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix compilation warning - https://bugs.webkit.org/show_bug.cgi?id=53292 - - * webkit/webkitwebframe.cpp: - (draw_page_callback): Cast the pageCount from size_t to int, it - should be safe considering page_nr is the number of pages, - 0-based. - -2011-01-27 Nate Chapin <japhet@chromium.org> - - Reviewed by Adam Barth. - - Use Document::url() instead of FrameLoader::url(). - https://bugs.webkit.org/show_bug.cgi?id=41165 - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_icon_uri): - -2011-01-27 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Space characters in source document interfere with reported caret offset - https://bugs.webkit.org/show_bug.cgi?id=53033 - - New unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces): New. - (main): Add new unit test. - -2011-01-26 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Reliable crash with getTextAtOffset() - https://bugs.webkit.org/show_bug.cgi?id=53131 - - New unit test to check the fix for this bug. - - * tests/testatk.c: - (testWebkitAtkGetTextAtOffsetWithSpecialCharacters): New. - (main): Add new unit test. - -2011-01-21 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Show caps lock indicator in password fields - https://bugs.webkit.org/show_bug.cgi?id=52878 - - Test: manual-tests/password-caps-lock.html - - * webkit/webkitwebview.cpp: - (webkit_web_view_key_release_event): Call - capsLockStateMayHaveChanged() when caps lock key is pressed. - -2011-01-19 Joone Hur <joone.hur@collabora.co.uk> - - Reviewed by Andreas Kling. - - [GTK] No need to invalidate empty areas in ChromeClient::invalidateContentsAndWindow - https://bugs.webkit.org/show_bug.cgi?id=52702 - - Don't call gdk_window_invalidate_rect if an updated rectangle is empty. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::invalidateContentsAndWindow): - -2011-01-17 Philippe Normand <pnormand@igalia.com> - - Unreviewed, build fix for 2 GTK tests html file paths. - - * tests/testmimehandling.c: - (main): - * tests/testwebview.c: - -2011-01-16 Adam Barth <abarth@webkit.org> - - Rubber-stamped by Eric Seidel. - - Move WebKit into Source - https://bugs.webkit.org/show_bug.cgi?id=52530 - - * GNUmakefile.am: - -2011-01-14 Yuzo Fujishima <yuzo@google.com> - - Reviewed by Antti Koivisto. - - Rename cache() to memoryCache() - https://bugs.webkit.org/show_bug.cgi?id=52433 - - * webkit/webkitglobals.cpp: - (webkit_set_cache_model): - -2011-01-14 Pavel Feldman <pfeldman@chromium.org> - - Not reviewed: gtk build fix (2). - - * webkit/webkitwebview.cpp: - -2011-01-14 Pavel Feldman <pfeldman@chromium.org> - - Not reviewed: gtk build fix. - - * webkit/webkitwebinspector.cpp: - -2011-01-13 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [gtk] Zero-sized font does not yet work - https://bugs.webkit.org/show_bug.cgi?id=49793 - - Allow 0 as a minimum-font-size value for the settings. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2011-01-12 Philippe Normand <pnormand@igalia.com> - - Unreviewed build fix for 32-bits Release. Include GRefPtrGtk.h so - the GdkCursor templates are found and used at runtime. - - * WebCoreSupport/FullscreenVideoController.cpp: - -2011-01-11 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] GRefPtr should not be used with Gtk widgets - https://bugs.webkit.org/show_bug.cgi?id=51241 - - GRefPtr breaks the widget life-cycle, the main problem is - that GRefPtr calls g_object_unref() when it's destroyed, - which is undesirable for widgets. In gtk+ widgets are created with - a floating reference and when added to a container, the container - takes the ownership of the widget consuming the floating - reference. So you don't usually need to call g_object_ref/unref on - widgets (only for some operations like reparent a widget) and - toplevel widgets are destroyed with gtk_widget_destroy(). - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::DragClient): - (WebKit::DragClient::~DragClient): - (WebKit::DragClient::startDrag): - * WebCoreSupport/DragClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - * webkit/webkitwebviewprivate.h: - -2011-01-10 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - Update the NEWS file in preparation for the 1.3.10 release. - - * NEWS: Update the NEWS. - -2011-01-10 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Remove use of deprecated GTK+ methods before the 1.3.10 release - https://bugs.webkit.org/show_bug.cgi?id=52173 - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::enterFullscreen): Use a GRefPtr here to avoid having to - call either g_object_unref or gdk_cursor_unref. - * webkit/webkitwebview.cpp: Guard use of deprecated methods. - (webkit_web_view_realize): Ditto. - (webkit_web_view_drag_end): Ditto. - -2011-01-10 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix gtk2 compilation for master - https://bugs.webkit.org/show_bug.cgi?id=51885 - - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): Removed the call to - gtk_dialog_set_has_separator API to remove a warning. - -2011-01-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Create intermediate libWebCore library - https://bugs.webkit.org/show_bug.cgi?id=52116 - - * GNUmakefile.am: add libWebCore.la to LIBADD and remove webcore - sources from the libwebkit library SOURCES. - -2011-01-09 Xianzhu Wang <phnixwxz@gmail.com> - - Reviewed by Darin Fisher. - - https://bugs.webkit.org/show_bug.cgi?id=41441 - createWindow method should only do window-creating without URL navigation - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::createWindow): - -2011-01-08 Martin Robinson <mrobinson@igalia.com> - - GTK+ build fix. Adding missing headers to the source list, fixing make dist. - - * GNUmakefile.am: Fix make dist. - -2011-01-07 Adam Barth <abarth@webkit.org> - - Rubber-stamped by Eric Seidel. - - Move WebCore to Source - https://bugs.webkit.org/show_bug.cgi?id=52050 - - * GNUmakefile.am: - -2011-01-07 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - GTK: AX: atk tests need to be updated after recent changes - https://bugs.webkit.org/show_bug.cgi?id=51932 - - Fix gtk_widget_get_accessible() in WebKitWebView to keep returning - the AtkObject of role ATK_ROLE_DOCUMENT_FRAME. - - With the change to support WK2 accessibility, the root object of - the AX hierarchy is different from what GTK expects as the current - hirarchy right now includes a new accessible object as the parent - of the accessible web area (AXScrollView). - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_accessible): Return the first child of the - wrapper associated to the root accessible object in the document, - to keep everything in the GTK port working as it used to be. - - Re-enable skipped ATK unit tests now they are passing again. - - * tests/testatk.c: - (main): Re-enable skipped tests. - * tests/testatkroles.c: - (main): Ditto. - -2011-01-06 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - GTK: AX: atk tests need to be updated after recent changes - https://bugs.webkit.org/show_bug.cgi?id=51932 - - Skip ATK unit tests until we can look into what is causing these failures. - - * tests/testatk.c: - (main): Skip all tests. - * tests/testatkroles.c: - (main): Ditto. - -2011-01-06 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - Include a new header in the static headers list. This is necessary - so that "make install" installs the header. - - * GNUmakefile.am: Include webkitglobals.h in the header list. - -2011-01-05 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha. - - Build fix for GTK+ 3.x. Remove the call to gtk_range_set_update_policy. - GTK+ 3.x has removed this method and the default in GTK+ 2.x is continuous, - so this call is unnecessary. - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::createHud): Remove call to gtk_range_set_update_policy(). - -2011-01-04 Chris Fleizach <cfleizach@apple.com> - - Reviewed by Martin Robinson. - - GTK: AX: DRT needs to use correct root object method. - https://bugs.webkit.org/show_bug.cgi?id=51911 - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getRootAccessibleElement): - (DumpRenderTreeSupportGtk::getFocusedAccessibleElement): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2011-01-04 Chris Fleizach <cfleizach@apple.com> - - Reviewed by Sam Weinig. - - WK2: Support Accessibility - https://bugs.webkit.org/show_bug.cgi?id=51859 - - Use rootObject() method to get top of ax tree. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getFocusedAccessibleElement): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_accessible): - -2011-01-03 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Darin Adler. - - Remove the last non-GObject usage of PlatformRefPtr and move the code to GRefPtr - https://bugs.webkit.org/show_bug.cgi?id=51846 - - Changed all references to PlatformRefPtr in GTK+ code to GRefPtr. - -2011-01-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Final patch, removing webkitprivate.{cpp,h}, and adding a - webkitglobals module to hold non-object-specific functions and - definitions that do not make sense on their own. - - * GNUmakefile.am: - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::createWindow): - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/DocumentLoaderGtk.cpp: - (WebKit::DocumentLoader::attachToFrame): - * WebCoreSupport/DragClientGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::ignoreWordInSpellDocument): - (WebKit::EditorClient::learnWord): - (WebKit::EditorClient::checkSpellingOfString): - (WebKit::EditorClient::getGuessesForWord): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createDocumentLoader): - * WebCoreSupport/InspectorClientGtk.cpp: - * webkit/webkit.h: - * webkit/webkitapplicationcache.cpp: - (webkit_application_cache_set_maximum_size): - * webkit/webkitdownload.cpp: - (webkit_download_class_init): - * webkit/webkitgeolocationpolicydecision.cpp: - * webkit/webkitglobals.cpp: Added. - (webkit_get_default_session): - (webkit_set_cache_model): - (webkit_get_cache_model): - (webkit_get_web_plugin_database): - (currentToplevelCallback): - (closeIconDatabaseOnExit): - (webkitInit): - (WebKit::pasteboardHelperInstance): - * webkit/webkitglobals.h: Added. - * webkit/webkitglobalsprivate.h: Copied from WebKit/gtk/webkit/webkitwebsettingsprivate.h. - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_class_init): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_class_init): - * webkit/webkitnetworkresponse.cpp: - (webkit_network_response_class_init): - * webkit/webkitprivate.cpp: Removed. - * webkit/webkitprivate.h: Removed. - * webkit/webkitsecurityorigin.cpp: - * webkit/webkitviewportattributes.cpp: - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_class_init): - * webkit/webkitwebdatabase.cpp: - * webkit/webkitwebdatasource.cpp: - (webkit_web_data_source_class_init): - (webkit_web_data_source_new_with_request): - (WebKit::kitNew): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - * webkit/webkitwebframeprivate.h: - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_class_init): - * webkit/webkitwebinspector.cpp: - * webkit/webkitwebnavigationaction.cpp: - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_class_init): - * webkit/webkitwebplugindatabase.cpp: - (webkit_web_plugin_database_class_init): - * webkit/webkitwebpluginprivate.h: - * webkit/webkitwebpolicydecision.cpp: - * webkit/webkitwebresource.cpp: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkitWebViewGetEnchantDicts): - (WebKit::core): - * webkit/webkitwebsettingsprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - * webkit/webkitwebview.h: - * webkit/webkitwebwindowfeatures.cpp: - (webkit_web_window_features_class_init): - (WebKit::kitNew): - -2011-01-02 Xan Lopez <xlopez@igalia.com> - - Fix GTK+ build. - - * GNUmakefile.am: tests do actually include JSC. - -2011-01-02 Xan Lopez <xlopez@igalia.com> - - Fix GTK+ build. - - * GNUmakefile.am: remove individual -I$(srcdir)/Source when we'll - already get them from javascriptcore_cppflags, and add it for the - introspection build (which is not tested in the bots). - -2011-01-02 Adam Barth <abarth@webkit.org> - - Speculative build fix for GTK. Add Source to the include paths. - - * GNUmakefile.am: - -2011-01-01 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Move JavaScriptCore to Source - https://bugs.webkit.org/show_bug.cgi?id=51604 - - * GNUmakefile.am: - * docs/GNUmakefile.am: - - Point to JavaScriptCore in its new location. - -2010-12-29 Martin Robinson <mrobinson@igalia.com> - - Build fix for GTK+. - - * webkit/webkitwebinspector.cpp: Add missing DumpRenderTreeSupportGtk include. - -2010-12-29 Martin Robinson <mrobinson@igalia.com> - - [GTK] GSettings warning is concealing real warnings on the build bots - https://bugs.webkit.org/show_bug.cgi?id=51691 - - Reviewed by Xan Lopez. - - Do not print the GSettings warning message when running in DumpRenderTree. - - * webkit/webkitwebinspector.cpp: - (inspectorGSettings): Do not print the GSettings warning if we are running - in DumpRenderTree. This should clean up the test results page a great deal. - -2010-12-28 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Closing a window during an onload event can trigger serious GLib warnings - https://bugs.webkit.org/show_bug.cgi?id=51686 - - Don't emit the close-web-view signal immediately during execution of closeWindowSoon. - The signal handler may choose to destroy the web view while handling that signal, - which may remove the last reference to the web view. FrameLoaderClient depends on the - view still existing though. Instead, let the caller finish executing and emit the signal - after a 0 length timeout. This matches the behavior on the Windows and Mac ports. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): Initialize the timer id. - (WebKit::emitCloseWebViewSignalLater): Callback for the timer. - (WebKit::ChromeClient::closeWindowSoon): Do the actual signal invocation after - the caller finishes its tasks. - * WebCoreSupport/ChromeClientGtk.h: Add a new member for the timer id. We - can use this to prevent emitting the close-web-view signal twice. - -2010-12-28 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] Clean up usage of NULL in webkitwebframe.cpp - https://bugs.webkit.org/show_bug.cgi?id=51685 - - Replace occurrences of NULL with 0, in webkitwebframe.cpp. Not all - uses of NULL have been changed, as certain GLib functions require - an explicit NULL as a sentinel. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_data_source_from_core_loader): - (webkit_web_frame_class_init): - (webkit_web_frame_new): - (webkit_web_frame_get_title): - (webkit_web_frame_get_uri): - (webkit_web_frame_get_web_view): - (webkit_web_frame_get_name): - (webkit_web_frame_get_parent): - (webkit_web_frame_load_string): - (webkit_web_frame_load_alternate_string): - (webkit_web_frame_find_frame): - (webkit_web_frame_get_global_context): - (webkit_web_frame_get_data_source): - (webkit_web_frame_get_provisional_data_source): - (webkit_web_frame_print_full): - (webkit_web_frame_get_security_origin): - (webkit_web_frame_get_network_response): - -2010-12-27 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Ryosuke Niwa. - - [GTK] EditorClient::generateEditorCommands queues up "null string" commands - https://bugs.webkit.org/show_bug.cgi?id=51569 - - Prevent adding "null string" editor commands by first checking whether or not - the command string is null in generateEditorCommands before appending it to the - list of pending editor command strings. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::generateEditorCommands): Check for the null string (no - command for this key combination) before appending a command string to the list of - pending editor commands. - (WebKit::EditorClient::executePendingEditorCommands): Add an ASSERT which detects - null command strings. - -2010-12-27 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Remove unneeded includes from our headers. - - * WebCoreSupport/PasteboardHelperGtk.h: ditto. - * webkit/webkitprivate.h: ditto. - * webkit/webkitsoupauthdialog.h: ditto. - -2010-12-21 Philippe Normand <pnormand@igalia.com> - - Reviewed by Eric Seidel. - - [GTK] minimal build with --database fails - https://bugs.webkit.org/show_bug.cgi?id=51394 - - * webkit/webkitprivate.cpp: - (webkit_init): Use cacheStorage() only if the - OFFLINE_WEB_APPLICATIONS feature is enabled. - -2010-12-22 Sam Weinig <sam@webkit.org> - - Reviewed by Darin Adler. - - WebKit2 needs to mirror the frame tree in the UIProcess - https://bugs.webkit.org/show_bug.cgi?id=51546 - - - Add client functions to notify that a frame has been added or - removed from the page cache. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didSaveToPageCache): - (WebKit::FrameLoaderClient::didRestoreFromPageCache): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-12-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - * NEWS: update for 1.3.9 release. - -2010-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Add WebPlugin, WebPluginDatabase, and ViewportAttributes to the - documentation control files, in preparation for 1.3.8. Also take - the opportunity to add descriptions to WebPlugin and - WebPluginDatabase. - - * docs/GNUmakefile.am: - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - * webkit/webkitwebplugin.cpp: - * webkit/webkitwebplugindatabase.cpp: - -2010-12-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - * GNUmakefile.am: add missing files. - * NEWS: update for 1.3.8 release. - -2010-12-18 Antonio Gomes <agomes@rim.com> - - Reviewed by Xan Lopez. - - [GTK+] Simplify spatial navigation handling in EditorClientGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=51302 - - Patch changes: - 1) The editor command for LEFT arrow key press without modifier - from MoveBackward to MoveLeft; - 2) And similarly changes the editor command for RIGHT arrow key - press without modifier from MoveForward to MoveRight. - - It has no implications since SelectionController::modifyMovingRight() - handles "MoveRight" equaly to how SelectionController::modifyMovingForward() - handles "MoveForward" when granularity is 'CharacterGranularity'. The former - falls back to the later in the case of other editor commands. - - Analogously, the same applies to how SelectionController::modifyMovingLeft() and - SelectionController::modifyMovingForward() handle "MoveLeft" and "MoveBackward" - editor commands, respectively. - - With this change we can remove the spatial navigation hack from moveCursorCallback(), - in EditorClientGtk.cpp. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::moveCursorCallback): - -2010-12-16 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] scrolling artifacts - https://bugs.webkit.org/show_bug.cgi?id=45029 - - Call gdk_window_process_updates() right after moving the window - when scrolling. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scroll): - -2010-12-15 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r74117. - http://trac.webkit.org/changeset/74117 - https://bugs.webkit.org/show_bug.cgi?id=51113 - - This broke the GTK1 build. (Requested by mrobinson on - #webkit). - - * GNUmakefile.am: - -2010-12-15 Amruth Raj <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla <ravi.kasibhatla@motorola.com> - - Reviewed by Martin Robinson. - - Changes to enable building WebKit2 for Gtk port. - (https://bugs.webkit.org/show_bug.cgi?id=37369) - - * GNUmakefile.am: Added WebCore/bindings/gobject to webkitgtk_sources & webkitgtk_cppflags. - They should get compiled only when WebKit/gtk/GNUmakefile.am is getting included but not - with WebKit2/GNUmakefile.am inclusion. - -2010-12-14 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Simplify context-menu handling code - https://bugs.webkit.org/show_bug.cgi?id=49658 - - Use gtk_container_foreach() so that we only iterate the list of - children once and we avoid creating/destroying the list. It also - connects the activate signal for submenu items. - - * webkit/webkitwebview.cpp: - (contextMenuConnectActivate): - (webkit_web_view_forward_context_menu_event): - -2010-12-14 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix several issues in r73858 - https://bugs.webkit.org/show_bug.cgi?id=51032 - - - It uses both glib private data and it allocates its own private - structure. - - It calls parent's dispose method from finalize. - - webkit_web_plugin_get_mimetypes() uses a wrong annotation for the - returned value, it should be transfer none rather than transfer - container. - - Since the mime type list is internal and we return the list and not a - copy, it should never be freed by the caller, so - webkit_web_plugin_mime_type_list_free() should be removed from the - public API. - - Mime types list is used uninitialized. - - Mention in the docs that list returned by - webkit_web_plugin_database_get_plugins() must be freed with - webkit_web_plugin_database_plugins_list_free(). - - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_finalize): - (webkit_web_plugin_class_init): - (webkit_web_plugin_init): - * webkit/webkitwebplugin.h: - * webkit/webkitwebplugindatabase.cpp: - -2010-12-14 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [gtk] misnamed gtk-doc strings for webkit_web_view_can_{c|c|p}_clipboard - https://bugs.webkit.org/show_bug.cgi?id=50571 - - * webkit/webkitwebview.cpp: - -2010-12-13 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add API to enable/disable plugins at runtime - https://bugs.webkit.org/show_bug.cgi?id=50891 - - * tests/testwebplugindatabase.c: - (test_webkit_web_plugin_database_get_plugins): test that disabling - a plugin works. - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_get_property): hook 'enabled' property. - (webkit_web_plugin_set_property): ditto. - (webkit_web_plugin_class_init): define 'enabled' property. - (webkit_web_plugin_set_enabled): setter for the property. - (webkit_web_plugin_get_enabled): getter for the property. - * webkit/webkitwebplugin.h: add the APIs to the header. - -2010-12-13 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Do not use GET_PRIVATE macros - https://bugs.webkit.org/show_bug.cgi?id=50915 - - GET_PRIVATE macros are slow and should only be used in the object - init() method. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::setTitle): - (WebKit::FrameLoaderClient::dispatchCreatePage): - (WebKit::postCommitFrameViewSetup): - * webkit/webkitdownload.cpp: - (webkit_download_init): - * webkit/webkitgeolocationpolicydecision.cpp: - (webkit_geolocation_policy_decision_init): - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_init): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_init): - * webkit/webkitsecurityorigin.cpp: - (webkit_security_origin_init): - * webkit/webkitsecurityoriginprivate.h: - * webkit/webkitviewportattributes.cpp: - (webkit_viewport_attributes_init): - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_init): - * webkit/webkitwebdatabase.cpp: - (webkit_web_database_init): - * webkit/webkitwebdatasource.cpp: - (webkit_web_data_source_init): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_init): - (webkit_web_frame_new): - * webkit/webkitwebframeprivate.h: - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_init): - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_init): - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_init): - * webkit/webkitwebplugin.cpp: - (webkit_web_plugin_init): - * webkit/webkitwebplugindatabase.cpp: - (webkit_web_plugin_database_init): - * webkit/webkitwebplugindatabaseprivate.h: - * webkit/webkitwebpluginprivate.h: - * webkit/webkitwebpolicydecision.cpp: - (webkit_web_policy_decision_init): - * webkit/webkitwebresource.cpp: - (webkit_web_resource_init): - * webkit/webkitwebresourceprivate.h: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_init): - * webkit/webkitwebview.cpp: - (PopupMenuPositionFunc): - (webkit_web_view_forward_context_menu_event): - (webkit_web_view_drag_end): - (webkit_web_view_drag_data_get): - (webkit_web_view_query_tooltip): - (webkit_web_view_init): - * webkit/webkitwebwindowfeatures.cpp: - (webkit_web_window_features_init): - -2010-10-28 MORITA Hajime <morrita@google.com> - - Reviewed by Ojan Vafai. - - spellcheck does not check pasted text - https://bugs.webkit.org/show_bug.cgi?id=40092 - - Added a stub implememntation. - - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::requestCheckingOfString): - -2010-12-12 Xan Lopez <xlopez@igalia.com> - - Rubber-stamped by Martin Robinson. - - * webkit/webkitwebplugin.h: add a note about the extension list - being a NULL-terminated array. - -2010-12-12 Xan Lopez <xlopez@igalia.com> - - Rubber-stamped by Gustavo Noronha. - - Stop checking for glib >= 2.16, we have dependend on a newer - version for a long time now. - - * tests/testatk.c: Stop checking for glib >= 2.16. - * tests/testatkroles.c: ditto. - * tests/testdomdocument.c: ditto. - * tests/testdomdomwindow.c: ditto. - * tests/testdomnode.c: ditto. - * tests/testglobals.c: ditto. - * tests/testhttpbackend.c: ditto. - * tests/testloading.c: ditto. - * tests/testmimehandling.c: ditto. - * tests/testnetworkrequest.c: ditto. - * tests/testnetworkresponse.c: ditto. - * tests/testwebbackforwardlist.c: ditto. - * tests/testwebdatasource.c: ditto. - * tests/testwebframe.c: ditto. - * tests/testwebhistoryitem.c: ditto. - * tests/testwebresource.c: ditto. - * tests/testwebsettings.c: ditto. - * tests/testwebview.c: ditto. - * tests/testwindow.c: ditto. - -2010-12-11 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add APIs for plugin management - https://bugs.webkit.org/show_bug.cgi?id=50827 - - Add WebKitWebPluginDatabase and WebKitWebPlugin classes for basic - plugin management at the client level. For now they provide - "read-only" access to the plugin list. - - * GNUmakefile.am: add new files to the build. - * tests/testwebplugindatabase.c: Test that the database contains - the test plugin, which should always be loaded. - * webkit/webkit.h: add new headers. - * webkit/webkitdefines.h: add new defines. - * webkit/webkitwebplugin.cpp: An new class representing a plugin object. - * webkit/webkitwebplugin.h: ditto. - * webkit/webkitwebplugindatabase.cpp: A new class that contains the list of active plugins. - * webkit/webkitwebplugindatabase.h: ditto. - * webkit/webkitwebplugindatabaseprivate.h: Private header. - * webkit/webkitwebpluginprivate.h: Private header. - * webkit/webkitwebview.cpp: - (webkit_get_web_plugin_database): returns the WebKitWebPluginDatabase for this session. - * webkit/webkitwebview.h: add method to header. - -2010-12-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Split private bits of several objects to their own private - headers, and to their implementation files. - - * GNUmakefile.am: - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/EditorClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - * webkit/webkitdownload.cpp: - (webkit_download_set_response): - * webkit/webkitdownloadprivate.h: Added. - * webkit/webkithittestresult.cpp: - (WebKit::kit): - * webkit/webkithittestresultprivate.h: Added. - * webkit/webkitnetworkresponse.cpp: - (WebKit::core): - (WebKit::kitNew): - * webkit/webkitnetworkresponseprivate.h: Added. - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitsecurityorigin.cpp: - (webkit_security_origin_get_web_database): - (WebKit::core): - (WebKit::kit): - * webkit/webkitsecurityoriginprivate.h: Added. - * webkit/webkitviewportattributes.cpp: - * webkit/webkitviewportattributesprivate.h: Added. - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebbackforwardlistprivate.h: Added. - * webkit/webkitwebdatabase.cpp: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_network_response): - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebhistoryitemprivate.h: Added. - * webkit/webkitwebnavigationaction.cpp: - (WebKit::kit): - (WebKit::core): - * webkit/webkitwebnavigationactionprivate.h: Added. - * webkit/webkitwebpolicydecision.cpp: - * webkit/webkitwebpolicydecisionprivate.h: Added. - * webkit/webkitwebresource.cpp: - * webkit/webkitwebresourceprivate.h: Added. - * webkit/webkitwebsettings.cpp: - * webkit/webkitwebsettingsprivate.h: Added. - * webkit/webkitwebview.cpp: - -2010-12-10 Alejandro G. Castro <alex@igalia.com> - - Unreviewed, fixed small typo in the name of a function. - - * webkit/webkitwebsettings.cpp: - (getAvailableDictionariesCallback): - (webkit_web_settings_set_property): - -2010-12-09 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add hasSpellingMarker support to the DRT - https://bugs.webkit.org/show_bug.cgi?id=50739 - - Added a new private API function to support the spelling marker - tests in the DRT. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::webkitWebFrameSelectionHasSpellingMarker): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2010-12-10 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Choose a dictionary in case there is no one defined or the - env LANG does not propose one - https://bugs.webkit.org/show_bug.cgi?id=50738 - - In case no dict is set and we can not find one using the - environment just get the first dictionary installed in the list. - - * webkit/webkitwebsettings.cpp: - (getAvilableDictionariesCallback): - (webkit_web_settings_set_property): - -2010-12-10 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - Remove unnecessary variable names from DumpRenderTreeSupportGtk - https://bugs.webkit.org/show_bug.cgi?id=50815 - - There were some unnecessary variable names in DumpRenderTreeSupportGtk, - so remove them. - - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Do it. - -2010-12-10 Joone Hur <joone@kldp.org> - - Reviewed by Xan Lopez. - - [GTK] Unskipping some test cases in /userscripts dependent on addUserStyleSheet - https://bugs.webkit.org/show_bug.cgi?id=50808 - - Unskipping the following test cases: - userscripts/mixed-case-stylesheet.html - userscripts/simple-stylesheet.html - userscripts/user-style-all-frames.html - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::addUserStyleSheet): Added "bool allFrames" parameter. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2010-12-10 Joone Hur <joone@kldp.org> - - Reviewed by Eric Seidel. - - [GTK] Add DRT support for pageProperty, isPageBoxVisible, pageSizeAndMarginsInPixels, and addUserStyleSheet - https://bugs.webkit.org/show_bug.cgi?id=50783 - - This patch allows to unskip the following test cases: - printing/page-rule-selection.html - printing/page-format-data.html - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::pageProperty): Added. - (DumpRenderTreeSupportGtk::isPageBoxVisible): Ditto. - (DumpRenderTreeSupportGtk::pageSizeAndMarginsInPixels): Ditto. - (DumpRenderTreeSupportGtk::addUserStyleSheet): Ditto. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2010-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Split private bits of WebKitWebInspector to its own private - header, and to its implementation file. - - * WebCoreSupport/InspectorClientGtk.cpp: - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebinspector.cpp: - (isSchemaAvailable): - (inspectorGSettings): - * webkit/webkitwebinspectorprivate.h: Added. - * webkit/webkitwebview.cpp: - -2010-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Split private bits of WebKitNetworkRequest to its own private - header, and to its implementation file. Also take the opportunity - to use PlatformRefPtr for NetworkRequest where it makes sense, and - make the creation less verbose by adding kitNew. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - (WebKit::FrameLoaderClient::download): - (WebKit::FrameLoaderClient::startDownload): - * webkit/webkitdownload.cpp: - * webkit/webkitnetworkrequest.cpp: - (WebKit::kitNew): - (WebKit::core): - * webkit/webkitnetworkrequestprivate.h: Added. - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebdatasource.cpp: - (webkit_web_data_source_get_initial_request): - (webkit_web_data_source_get_request): - * webkit/webkitwebframe.cpp: - -2010-12-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Split private bits of WebKitWebFrame to its own private header, and - to its implementation file. - - * GNUmakefile.am: - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/DragClientGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebdatasource.cpp: - * webkit/webkitwebframe.cpp: - (WebKit::getViewFromFrame): - (WebKit::core): - (WebKit::kit): - * webkit/webkitwebframeprivate.h: Added. - * webkit/webkitwebpolicydecision.cpp: - * webkit/webkitwebview.cpp: - -2010-12-09 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson. - - [Gtk] Populate DumpRenderTreeSupportGtk (part IV) - https://bugs.webkit.org/show_bug.cgi?id=48429 - - Moved also webkit_worker_thread_count() to DumpRenderTreeSupportGtk, - since it was only used by DRT for now. - - Since this method was the only one in webkitworker.cpp, the file was - also removed. - - * GNUmakefile.am: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::workerThreadCount): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitworkers.cpp: Removed. - -2010-12-06 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Support the Mozilla-style Fullscreen Javascript API - https://bugs.webkit.org/show_bug.cgi?id=50572 - - Fullscreen API support. It is controlled at runtime using a new - setting called enable-fullscreen, set to FALSE by default. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullScreenForElement): - (WebKit::ChromeClient::enterFullScreenForElement): - (WebKit::ChromeClient::exitFullScreenForElement): - * WebCoreSupport/ChromeClientGtk.h: - * 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): - -2010-12-09 Joone Hur <joone@kldp.org> - - Reviewed by Martin Robinson. - - [GTK] Support for viewport meta tag - https://bugs.webkit.org/show_bug.cgi?id=45443 - - This patch adds a new gobject to offer the viewport properties to user agents. - It is WebKitViewportAttributes that contains the viewport size, initial scale with limits, - and information about whether a user is able to scale the contents in the viewport. - - This feature was introduced by Safari on the iPhone. For more information on - the viewport properties, refer to the Safari reference library at - http://developer.apple.com/safari/library/documentation/appleapplications/reference/safarihtmlref/articles/metatags.html - - * GNUmakefile.am: Added webkitviewportattributes.h webkitviewportattributes.cpp. - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::dispatchViewportDataDidChange): Added this callback to know whether the viewport arguments is available. - * WebCoreSupport/ChromeClientGtk.h: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::dumpConfigurationForViewport): Added this function to compute the viewport attributes with the given availableWidth and availableHeight. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): Invalidate the viewport attributes. - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitprivate.h: Added webkitViewportAttributesRecompute as a private function. - * webkit/webkitviewportattributes.cpp: Added. - (webkit_viewport_attributes_class_init): - (webkit_viewport_attributes_init): - (webkit_viewport_attributes_get_property): - (webkit_viewport_attributes_set_property): - (webkitViewportAttributesRecompute): Recompute the optimal viewport attributes and emit the viewport-attributes-changed signal. - (webkit_viewport_attributes_recompute): a public API for calling webkitViewportAttributesRecompute. - * webkit/webkitviewportattributes.h: Added. - * webkit/webkitwebview.cpp: - (webkit_web_view_get_property): Added PROP_VIEWPORT_ATTRIBUTES. - (webkit_web_view_dispose): Deallocate the WebKitViewportAttributes instance. - (webkit_web_view_class_init): Added the viewport-attributes-recompute-requested and viewport-attributes-changed signals. - (webkit_web_view_init): Set the WebKitViewportAttributes instance. - (webkit_web_view_get_viewport_attributes): Added a getter to obtain the WebKitViewportAttributes instance held by the given WebKitWebView. - * webkit/webkitwebview.h: - * webkit/webkitwebviewprivate.h: Added WebKitViewportAttributes as a private variable. - -2010-12-09 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Fix 'make install' woes with some versions of automake. - - * GNUmakefile.am: use $(top_builddir) instead of $(builddir), - since we actually want a valid path for the file regardless of the - place from where the script is called. - -2010-12-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Build fix. Take webView{Enter,Exit}Fullscreen back out of the - WebKit namespace, and remove a function signature that got in by - mistake because of a bad merge. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (WebKit::core): - (WebKit::kit): - -2010-12-08 Brian Weinstein <bweinstein@apple.com> - - Reviewed by John Sullivan. - - Layering Violation in ContextMenu - member variable of type HitTestResult - https://bugs.webkit.org/show_bug.cgi?id=50586 - - Update users of ContextMenu and ContextMenuController to match where the new functions - are located. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::getCustomMenuFromDefaultItems): - -2010-12-08 Martin Robinson <mrobinson@igalia.com> - - Reviewed by John Sullivan. - - [GTK] Layering violation in ContextMenuGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=50676 - - ContextMenuGtk accesses the page's ContextMenuController, which is a layering - violation. This was fixed for Mac with change r73469. We make a similar fix here - by moving the "activated" signal connection to the WebKit layer. - - * webkit/webkitwebview.cpp: - (popupMenuItemActivated): Have ContextMenuController handle this signal. - (webkit_web_view_forward_context_menu_event): For all items in the untouched - context menu, connect their "activated" signal to the new popupMenuItemActivated - handler. - -2010-12-08 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson. - - [Gtk] Populate DumpRenderTreeSupportGtk (part III) - https://bugs.webkit.org/show_bug.cgi?id=48429 - - Adjusted some call sites of previously internal API declared - webkitprivate.h that have moved to DumpRenderTreeSupportGtk. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::gcCollectJavascriptObjects): - (DumpRenderTreeSupportGtk::gcCollectJavascriptObjectsOnAlternateThread): - (DumpRenderTreeSupportGtk::gcCountJavascriptObjects): - (DumpRenderTreeSupportGtk::layoutFrame): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2010-12-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Split webkitprivate.{cpp,h} in more manageable chunks - https://bugs.webkit.org/show_bug.cgi?id=50698 - - Split private bits of WebKitWebView to its own private header, and - to its implementation file. Take the opportunity to fix includes - sorting to comply with the style guide. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::enterFullscreenForNode): - (WebKit::ChromeClient::exitFullscreenForNode): - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/DragClientGtk.cpp: - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - * WebCoreSupport/EditorClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/InspectorClientGtk.cpp: - * WebCoreSupport/PasteboardHelperGtk.cpp: - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebdatasource.cpp: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - (WebKit::core): - (WebKit::kit): - (WebKit::webViewEnterFullscreen): - (WebKit::webViewExitFullscreen): - * webkit/webkitwebviewprivate.h: Added. - -2010-12-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - The storage for the subresources is a GHashTable which does not - guarantee order, so we need to make our checking more resilient. - - * tests/testwebresource.c: - (test_web_resource_sub_resource_loading): - -2010-12-08 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - Fix assertion in the API test, we are requesting the favicon and - the subresource so we have to make sure we are assigning just the - first subresource. - - * tests/testwebresource.c: - (resource_request_starting_sub_cb): - -2010-12-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] clears the subresources prematurely - https://bugs.webkit.org/show_bug.cgi?id=50634 - - Make adding the main resource explicit, and only clear - subresources when the new load is committed, avoid clearing them - prematurely. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::assignIdentifierToInitialRequest): - (WebKit::FrameLoaderClient::provisionalLoadStarted): - (WebKit::FrameLoaderClient::prepareForDataSourceReplacement): - (WebKit::postCommitFrameViewSetup): - * tests/testwebdatasource.c: - (notify_load_status_lifetime_cb): - (test_webkit_web_data_source_lifetime): - (main): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_add_main_resource): - (webkit_web_view_add_resource): - (webkit_web_view_clear_resources): - -2010-12-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] testwebdatasource - unreachable test is broken - https://bugs.webkit.org/show_bug.cgi?id=50629 - - Fix, and disable testwebdatasource's unreachable test (it is not - passing now that it actually tests what it should). This also - fixes the wait timer to actually work as expected. - - * tests/testwebdatasource.c: - (notify_load_status_unreachable_cb): - (notify_load_status_cb): - (test_webkit_web_data_source): - -2010-12-07 Martin Robinson <mrobinson@igalia.com> - - Unreviewed, rolling out r73392. - http://trac.webkit.org/changeset/73392 - https://bugs.webkit.org/show_bug.cgi?id=50489 - - This commit caused crashes on the GTK+ bots - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::finishedLoading): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2010-12-06 Nate Chapin <japhet@chromium.org> - - Reviewed by Adam Barth. - - Update calls to DocumentWriter. - https://bugs.webkit.org/show_bug.cgi?id=50489 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::finishedLoading): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2010-12-06 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Build is broken after r73353 - https://bugs.webkit.org/show_bug.cgi?id=50568 - - Fix the gtk-doc build by making all members of the cache model - enum public. gtk-doc does not support making only some enum - members private. We should also expose it so that users querying - the cache model do not get mysterious, undocumented results. - - * webkit/webkitwebview.h: Fix gtk-doc for the cache model enum. - -2010-12-06 Derek Weitzel <djw8605@gmail.com> - - Reviewed by Martin Robinson. - - [GTK] API Documentation referencing depreciated GTK_WIDGET_TOPLEVEL - https://bugs.webkit.org/show_bug.cgi?id=50512 - - Fixed reference to depreciated GTK_WIDGET_TOPLEVEL. - - * webkit/webkitwebview.cpp: - -2010-12-06 Joone Hur <joone@kldp.org> - - Reviewed by Xan Lopez. - - [GTK] The webkit cache model needs to be set when WebFrameLoaderClient::didPerformFirstNavigation() is called - https://bugs.webkit.org/show_bug.cgi?id=50430 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didPerformFirstNavigation): Set the webview cache model. - * webkit/webkitprivate.cpp: - (webkit_init): Removed the code of setting the webview cache model. - -2010-12-04 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson. - - [Gtk] Populate DumpRenderTreeSupportGtk (Part II) - https://bugs.webkit.org/show_bug.cgi?id=48429 - - Moved more private method declared with WEBKIT_API to - DumpRenderTreeSupportGtk, since they were only being used by DRT. - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::executeCoreCommandByName): - (DumpRenderTreeSupportGtk::isCommandEnabled): - (DumpRenderTreeSupportGtk::whiteListAccessFromOrigin): - (DumpRenderTreeSupportGtk::resetOriginAccessWhiteLists): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - -2010-11-08 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson. - - [Gtk] Populate DumpRenderTreeSupportGtk - https://bugs.webkit.org/show_bug.cgi?id=48429 - - Moved most of the webkit_web_frame* methods defined as private APIs in webkitprivate.h - to DumpRenderTreeSupportGtk, as static class methods. These methods had - not gone throught the formal API review process and were only being used by DRT for now. - - The essence of each original method name were kept. For example - webkit_web_frame_get_children(...) was renamed to DumpRenderTreeSupportGtk::getFrameChildren(...), - and so on. - - Also some of the method bodies were changed to return non-glib types (gchar* -> CString). - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::getFrameChildren): - (DumpRenderTreeSupportGtk::getInnerText): - (DumpRenderTreeSupportGtk::dumpRenderTree): - (DumpRenderTreeSupportGtk::counterValueForElementById): - (DumpRenderTreeSupportGtk::pageNumberForElementById): - (DumpRenderTreeSupportGtk::numberOfPagesForFrame): - (DumpRenderTreeSupportGtk::getPendingUnloadEventCount): - (DumpRenderTreeSupportGtk::pauseAnimation): - (DumpRenderTreeSupportGtk::pauseTransition): - (DumpRenderTreeSupportGtk::pauseSvgAnimation): - (DumpRenderTreeSupportGtk::markerTextForListItem): - (DumpRenderTreeSupportGtk::numberOfActiveAnimations): - (DumpRenderTreeSupportGtk::suspendAnimations): - (DumpRenderTreeSupportGtk::resumeAnimations): - (DumpRenderTreeSupportGtk::clearMainFrameName): - (DumpRenderTreeSupportGtk::getFocusedAccessibleElement): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2010-12-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] DumpRenderTree has two copies of JavaScriptCore - https://bugs.webkit.org/show_bug.cgi?id=49877 - - Keep WebKit/WebCore symbols hidden. - - * GNUmakefile.am: Move the symbol visibility rules here, because - now JSC symbols are visible, but WebCore/WebKit symbols are hidden. - -2010-12-02 Daniel Bates <dbates@rim.com> - - Ignore WebKit/gtk/docs/GNUmakefile.in and WebKit/gtk/po/*.pot so that - these files do not appear in an svn stat. This change makes SVN - consistent with the current Git ignore behavior for these files. - - * docs: Added property svn:ignore. - * po: Added property svn:ignore. - -2010-12-01 Jia Pu <jpu@apple.com> - - Reviewed by Darin Adler. - - Support multiple correction candidates panel for misspelled word on Mac OS X. - https://bugs.webkit.org/show_bug.cgi?id=50137 - <rdar://problem/8568059> - - Adopted new function signature defined in base class. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::getGuessesForWord): - * WebCoreSupport/EditorClientGtk.h: - -2010-11-30 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Fix wrong type in assert return value - https://bugs.webkit.org/show_bug.cgi?id=50208 - - Use appropriate return type in different g_return_val_if_fail(). This - removes some compiler warning. - - * webkit/webkitwebdatasource.cpp: - (webkit_web_data_source_is_loading): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_page_number_for_element_by_id): - (webkit_web_frame_number_of_pages): - -2010-11-30 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [GTK] Implement ROLE_COMBO_BOX - https://bugs.webkit.org/show_bug.cgi?id=25678 - - New test to check the implementation of the combo boxes. - - * tests/testatk.c: - (testWebkitAtkComboBox): New test, checking that the roles and the - implemented interfaces for a combo box and its descendants work. - (main): Added the new unit test. - -2010-11-30 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Test fast/events/mouseover-mouseout2.html crashes - https://bugs.webkit.org/show_bug.cgi?id=50214 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * webkit/webkitwebview.cpp: - (webkit_web_view_query_tooltip): - -2010-11-30 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r72764. - http://trac.webkit.org/changeset/72764 - https://bugs.webkit.org/show_bug.cgi?id=50215 - - This change is causing assertion failures on the debug bots. - (Requested by mrobinson on #webkit). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyStatus): - * tests/testatk.c: - (main): - -2010-11-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - * NEWS: update for 1.3.7 release. - -2010-11-29 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Tooltips should be fully keyboard accessible - https://bugs.webkit.org/show_bug.cgi?id=25525 - - Position the tooltip under the current focused element when the - tooltip has been triggered using the keyboard. - - * webkit/webkitwebview.cpp: - (webkit_web_view_query_tooltip): - (webkit_web_view_show_help): - (webkit_web_view_class_init): - -2010-11-29 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Tooltips not shown when scrolling - https://bugs.webkit.org/show_bug.cgi?id=50143 - - Convert tooltip area to window coordinates so that tooltips are - shown even after scrolling. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - -2010-11-26 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Inspector: add a way to inspect a WebKitDOMNode - https://bugs.webkit.org/show_bug.cgi?id=49903 - - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_inspect_node): - * webkit/webkitwebinspector.h: - -2010-11-26 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] events missing when a document is (re)loaded - https://bugs.webkit.org/show_bug.cgi?id=25831 - - Emit the right signals when reloading a document. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyAccessibilityStatus): New function, to make sure - the signals involved in reloading a document are properly emitted. - (WebKit::notifyStatus): Also notify accessibility if enabled. - - New unit test to check the signals are being actually emitted. - - * tests/testatk.c: - (stateChangedCb): Callback for 'state-change' signal emitted by - the accessible object associated to the webView. - (documentReloadCb): Callback for 'reload' signal. - (documentLoadCompleteCb): Callback for 'load-complete' signal. - (webviewLoadStatusChangedCb): Callback for 'notify::load-status' - signal, emitted by the WebKitWebView object (not the AtkObject). - (testWebkitAtkDocumentReloadEvents): New unit test. - (main): Added the new unit test. - -2010-11-24 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Make kit() methods return the proper type instead of gpointer - https://bugs.webkit.org/show_bug.cgi?id=50034 - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldDeleteRange): get rid of unneeded cast. - (WebKit::EditorClient::shouldShowDeleteInterface): ditto. - (WebKit::EditorClient::shouldBeginEditing): ditto. - (WebKit::EditorClient::shouldEndEditing): ditto. - (WebKit::EditorClient::shouldInsertText): ditto. - (WebKit::EditorClient::shouldChangeSelectedRange): ditto. - (WebKit::EditorClient::shouldApplyStyle): ditto. - (WebKit::EditorClient::shouldInsertNode): ditto. - * webkit/webkitprivate.cpp: - (WebKit::kit): ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_get_dom_document): ditto. - -2010-11-24 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Fix crashes in GTK+ bots. Use kit() instead of wrapFoo, otherwise - the DOM objects won't be in the cache and we'll ASSERT when - unreffing them. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldDeleteRange): use kit to get the - GObject wrapper for the DOM object. - (WebKit::EditorClient::shouldShowDeleteInterface): ditto. - (WebKit::EditorClient::shouldBeginEditing): ditto. - (WebKit::EditorClient::shouldEndEditing): ditto. - (WebKit::EditorClient::shouldInsertText): ditto. - (WebKit::EditorClient::shouldChangeSelectedRange): ditto. - (WebKit::EditorClient::shouldApplyStyle): ditto. - (WebKit::EditorClient::shouldInsertNode): ditto. - -2010-11-24 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] The WebKitWebView should expose a set of signals encapsulating the behavior of the EditorClient - https://bugs.webkit.org/show_bug.cgi?id=49143 - - Add signals that encapsulate the functionality of the Mac EditingDelegate. These signals - are private for now, but DRT consumes them to produce proper output for editing tests. - After some time, these may be part of the public API. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldDeleteRange): Fire the appropriate editing signal. - (WebKit::EditorClient::shouldShowDeleteInterface): Ditto. - (WebKit::EditorClient::shouldBeginEditing): Ditto. - (WebKit::EditorClient::shouldEndEditing): Ditto. - (WebKit::kit): Added helper function. - (WebKit::EditorClient::shouldInsertText): Fire the appropriate editing signal. - (WebKit::EditorClient::shouldChangeSelectedRange): Ditto. - (WebKit::EditorClient::shouldApplyStyle): Ditto. - (WebKit::EditorClient::didBeginEditing): Ditto. - (WebKit::EditorClient::respondToChangedContents): Ditto. - (WebKit::EditorClient::respondToChangedSelection): Ditto. - (WebKit::EditorClient::didEndEditing): Ditto. - (WebKit::EditorClient::shouldInsertNode): Ditto. - * webkit/webkitwebview.cpp: - (webkit_web_view_real_should_allow_editing_action): Added this default signal - callback which explicitly allows cancellable editing actions. - (webkit_web_view_class_init): Add new editing signal declarations to the view. - * webkit/webkitwebview.h: - * webkitmarshal.list: Added some new marshaling definitions. - -2010-11-24 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r72499. - http://trac.webkit.org/changeset/72499 - https://bugs.webkit.org/show_bug.cgi?id=50022 - - This change is causing crashes on the bots. (Requested by - mrobinson on #webkit). - - * tests/testatk.c: - (main): - -2010-11-23 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Fix IFrame DOM bindings API - https://bugs.webkit.org/show_bug.cgi?id=49980 - - * tests/testdomdocument.c: - (test_dom_document_garbage_collection): change to use the fixed - IFrame APIs. - -2010-11-23 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - focus issue with links that have tooltips - https://bugs.webkit.org/show_bug.cgi?id=49498 - - Set the area of the widget where the tooltip should be shown when - a new tooltip is set. Since the widget is the same (the view), if - the tooltip area is not set and a new tooltip is triggered while - the previous one is still visible, the text of the tooltip is - updated but its position doesn't change. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_query_tooltip): - -2010-11-21 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [GTK] Implement ROLE_COMBO_BOX - https://bugs.webkit.org/show_bug.cgi?id=25678 - - New test to check the implementation of the combo boxes. - - * tests/testatk.c: - (testWebkitAtkComboBox): New test, checking that the roles and the - implemented interfaces for a combo box and its descendants work. - (main): Added the new unit test. - -2010-11-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Remove leftover code in unit test. - - * GNUmakefile.am: remove unneeded utils file in dependency list. - * tests/testdomdocument.c: - (main): do not change to the directory of a non existing resource - list. - -2010-11-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Memory managament for DOM GObject wrappers - https://bugs.webkit.org/show_bug.cgi?id=40302 - - Initial attempt to have a kind of poor man's garbage collection - for GObject DOM objects. We tie the object's lifecycle to their - parent Frame and/or its document; that is, all objects will be - collected when their parent frame is destroyed or when that frame - transitions to a new document. Manual management (calling - g_object_unref on them) is also allowed, and is required for - objects that are not in the DOM tree (eg NodeLists). - - * GNUmakefile.am: add testutils file to testdomdocument.c - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::setMainFrameDocumentReady): collect - DOM objects on document transition. - * tests/testdomdocument.c: - (dom_document_fixture_teardown): only destroy the view if it's not - already destroyed, since the new test detroys it on its own. - (test_dom_document_get_elements_by_tag_name): manually unref node list. - (test_dom_document_get_elements_by_class_name): ditto. - (test_dom_document_get_links): ditto. - (test_dom_document_garbage_collection): test all possible - scenarios for DOM object "garbage collection". - (main): add new test. - * tests/testdomnode.c: - (test_dom_node_hierarchy_navigation): manually unref node list. - (test_dom_node_insertion): ditto. - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_dispose): unref the inner node on dispose - now that the memory management model is clarified. - (webkit_hit_test_result_class_init): hook dispose. - * webkit/webkitwebframe.cpp: - (webkit_web_frame_core_frame_gone): clear DOM objects attached to this frame. - (webkit_web_frame_finalize): ditto. - -2010-11-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Fix introspection build, we were missing a -I flag. - - * GNUmakefile.am: - -2010-11-18 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] atk_text_get_selection returns the wrong offsets after a link - https://bugs.webkit.org/show_bug.cgi?id=49514 - - Updated test case to also chech this specific subcase. - - We need to explicitly check the case of having a selection in a - paragraph after an embedded object (i.e. a link) to make sure the - right calculations are being done when the paragraph is composed - of more than just one text object, and the current selection is - made only in one of them. - - * tests/testatk.c: - (testWebkitAtkTextSelections): Make sure that a selection after a - link in a paragraph is working ok when asking for the text - selection from the point of view of the paragraph. - -2010-11-17 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Changing any GNUmakefile.am in the source tree forces a rebuld of the DOM bindings and WebKit APi - https://bugs.webkit.org/show_bug.cgi?id=49400 - - Add GNUmakefile.am and include all WebKit API build rules. Make webkitenum.* - depend on this new file, instead of the generated GNUmakefile.am. - - * GNUmakefile.am: Copied from GNUmakefile.am. - -2010-11-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - Fix a typo that leads to emitting the wrong signal if it is done - by using the signals array. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2010-11-16 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Some key-press events can't be handled by WebView - https://bugs.webkit.org/show_bug.cgi?id=48986 - - The problem is that "popup-menu" and "show-help" signals are - handled by GtkTextView, as they are added to the key bindings set - of every widget in gtk_widget_class_init(). For all other bindings - handled by GtkTextView we are stopping the signal emission in - their callbacks, so we only need to do the same for "popup-menu" - and "show-help" signals. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::toggleOverwriteCallback): - (WebKit::popupMenuCallback): - (WebKit::showHelpCallback): - (WebKit::EditorClient::EditorClient): - -2010-11-16 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Show default context menu for the currently focused element when activated with keyboard - https://bugs.webkit.org/show_bug.cgi?id=49376 - - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): - -2010-11-11 Joone Hur <joone@kldp.org> - - Reviewed by Antonio Gomes. - - [GTK][DRT] Implement LayoutTestController::nodesFromRect - https://bugs.webkit.org/show_bug.cgi?id=46598 - - Support nodesFromRect in DRT - - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: - (DumpRenderTreeSupportGtk::nodesFromRect): Added. - * WebCoreSupport/DumpRenderTreeSupportGtk.h: - -2010-11-11 Chang Shu <chang.shu@nokia.com> - - Reviewed by Antonio Gomes. - - [GTK] Replace "MoveForward"/"MoveBackward" with "MoveRight"/"MoveLeft" - to make spatial navigation work on input/textarea. - https://bugs.webkit.org/show_bug.cgi?id=49056 - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::moveCursorCallback): - -2010-11-08 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Link with target name set does not work - https://bugs.webkit.org/show_bug.cgi?id=48865 - - When a new page is created with a name (target=myFrame), the new - mainFrame could not be found because they where not stored in the - same PageGroup. As PageGroup are not exposed externally so the - simpliest solution is to use a global page group name. This also fixes - issue with visited link coloration across pages. After this change the - private function webkit_web_view_set_group_name() was no longer used - so it was removed completly. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::closeWindowSoon): - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2010-11-08 Alexey Proskuryakov <ap@apple.com> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=48685 - Notify UI process about focused frame - - Added an empty implementation of the new ChromeClient method. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::focusedFrameChanged): - * WebCoreSupport/ChromeClientGtk.h: - -2010-11-08 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Andreas Kling. - - [GTK] Error page templates are not filled properly - https://bugs.webkit.org/show_bug.cgi?id=49148 - - Replace a call to makeString with String::format. This was mistakenly - changed to makeString in an earlier commit. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - -2010-11-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - * NEWS: update for release. - -2010-11-08 Csaba Osztrogonac <ossy@webkit.org> - - Unreviewed, rolling out r71466. - http://trac.webkit.org/changeset/71466 - https://bugs.webkit.org/show_bug.cgi?id=48865 - - It broke layout tests on GTK bots. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::closeWindowSoon): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - (webkit_web_view_set_group_name): - -2010-11-07 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Rename Cache to MemoryCache - https://bugs.webkit.org/show_bug.cgi?id=49159 - - * webkit/webkitwebview.cpp: - -2010-11-05 Nicolas Dufresne <nicolas.dufresne@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Link with target name set does not work correctly - https://bugs.webkit.org/show_bug.cgi?id=48865 - - When a new page is created with a name (target=myFrame), the new - mainFrame could not be found because they where not stored in the - same PageGroup. As PageGroup are not exposed externally so the - simpliest solution is to use a global page group name. This also fixes - issue with visited link coloration across pages. After this change the - private function webkit_web_view_set_group_name() was no longer used - so it was removed completly. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::closeWindowSoon): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2010-11-05 Chris Marrin <cmarrin@apple.com> - - Reviewed by Simon Fraser. - - Move resumeAnimations/suspendAnimations from Frame to AnimationController. - https://bugs.webkit.org/show_bug.cgi?id=49073 - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_suspend_animations): - (webkit_web_frame_resume_animations): - -2010-11-05 Chris Marrin <cmarrin@apple.com> - - Unreviewed. - - Small fix to GTK build - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_suspend_animations): - (webkit_web_frame_resume_animations): - -2010-11-05 Chris Marrin <cmarrin@apple.com> - - Reviewed by Simon Fraser. - - Make suspendAnimations/resumeAnimations and setCSSAnimations traverse through subframes and remember state - https://bugs.webkit.org/show_bug.cgi?id=46945 - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_suspend_animations): - (webkit_web_frame_resume_animations): - -2010-11-03 Daniel Bates <dbates@rim.com> - - For unnamed frames, window.name returns a generated name - https://bugs.webkit.org/show_bug.cgi?id=6751 - - Part 1 of 2. - - Substitute FrameTree::uniqueName() for FrameTree::name() in the GTK port. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_name): - -2010-11-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Adam Barth. - - [Cairo] Remove PlatformRefPtrCairo - https://bugs.webkit.org/show_bug.cgi?id=48192 - - Replace instances of PlatformRefPtr smart pointers that wrap Cairo - types with RefPtrs. - - * WebCoreSupport/DragClientGtk.cpp: Use RefPtr instead of PlatformRefPtr. - (WebKit::dragIconWindowDrawEventCallback): - * WebCoreSupport/DragClientGtk.h: Ditto. - -2010-11-02 Daniel Bates <dbates@rim.com> - - Reviewed by Martin Robinson. - - Set frame name before appending it to the frame tree in the Apple Windows, - GTK, and EFL ports - https://bugs.webkit.org/show_bug.cgi?id=48806 - - Make the frame creation process in the GTK-port consistent with the - Mac, Qt, and Haiku ports. In particular, set the name of the new - frame before it's appended to the frame tree. - - At this time we cannot test this change since it is being masked by - HTMLFrameElementBase::setName() <http://trac.webkit.org/browser/trunk/WebCore/html/HTMLFrameElementBase.cpp?rev=70976#L160>. - We'll be able to test this once we fix bug #6751. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2010-11-01 Jennifer Braithwaite <jennb@google.com> - - Reviewed by Martin Robinson. - - GTK: Update resource tracking when moving a frame between documents - https://bugs.webkit.org/show_bug.cgi?id=48362 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transferLoadingResourceFromPage): - Assign resource id to current web view and remove from former web view. - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_remove_resource): - Added. - -2010-11-01 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Cleanup needed in testatk.c file - https://bugs.webkit.org/show_bug.cgi?id=48759 - - Cleanup done in testatk.c, mainly addressing the following issues: - - - Removed any trace of extra main loops in tests, so now we just - spin the original main loop in all of them to get the a11y - objects. - - - As we no longer use the extra main loops, removed the bail_out - function, used along with g_idle_add() to stop those extra loops. - - - As we now spin the loop in every test, created a new function - waitForAccessibilityObjects() to write the loop just once. - - - Fixed name in incorrectly named test testWekitAtkTextSelections. - - - Alphabetically sorted the list of includes. - - - Renamed all identifiers to camel Case notation. - - - Declare variables when needed only (instead of declaring all of - them at the beginning of the function). - - - Don't declare two variables of the same type in the same line. - - - No more short names like 'obj', 'textObj' or 'alloc'. Use names - like 'object', 'textObject' and 'allocation' instead. - - - Fixed indentation. - - - Make sure all comments finish with '.' - - - Replace NULL's with 0's. - - * tests/testatk.c: - (waitForAccessibleObjects): New, manually spins the main context - to make sure accessible objects are created before continuing. - (testGetTextFunction): Fixed this function to be compliant with - the WebKit's coding style. - (runGetTextTests): Ditto. - (testWebkitAtkGetTextAtOffsetForms): Ditto. - (testWebkitAtkGetTextAtOffset): Ditto. - (testWebkitAtkGetTextAtOffsetNewlines): Ditto. - (testWebkitAtkGetTextAtOffsetTextarea): Ditto. - (testWebkitAtkGetTextAtOffsetTextInput): Ditto. - (testWebkitAtkGetTextInParagraphAndBodySimple): Ditto. - (testWebkitAtkGetTextInParagraphAndBodyModerate): Ditto. - (testWebkitAtkGetTextInTable): Ditto. - (testWebkitAtkGetHeadersInTable): Ditto. - (compAtkAttribute): Ditto. - (atkAttributeSetAttributeNameHasValue): Ditto. - (testWebkitAtkTextAttributes): Ditto. - (testWebkitAtkTextSelections): Ditto. - (testWebkitAtkGetExtents): Ditto. - (testWebkitAtkLayoutAndDataTables): Ditto. - (testWebkitAtkLinksWithInlineImages): Ditto. - (testWebkitAtkHypertextAndHyperlinks): Ditto. - (testWebkitAtkListsOfItems): Ditto. - (testWebkitAtkTextChangedNotifications): Ditto. - (main): Ditto. - -2010-11-01 Brady Eidson <beidson@apple.com> - - Reviewed by Anders Carlsson. - - <rdar://problem/7660547> and https://bugs.webkit.org/show_bug.cgi?id=48699 - Context menu support for WebKit 2. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::showContextMenu): - -2010-11-01 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Pasting markup into Thunderbird compose window produces no text - https://bugs.webkit.org/show_bug.cgi?id=43737 - - Added a test verifying that the meta tag prefix on markup data exists. - - * tests/testcopyandpaste.c: - (load_status_cb): Add a check for the meta tag prefix. - -2010-11-01 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] AtkHyperlink needs to be implemented - https://bugs.webkit.org/show_bug.cgi?id=33785 - - New test to ensure the AtkHypertext/AtkHyperlink stuff works. - - * tests/testatk.c: - (testWebkitAtkHypertextAndHyperlinks): New test, checking both the - implementation of the AtkHypertext interface, the subclass of the - AtkHyperlink abstract class, and the implementation of the - AtkAction interface in that subclass. - (main): Added the new unit test. - -2010-10-30 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Use new width for height APIs in GTK+ 3.x - https://bugs.webkit.org/show_bug.cgi?id=48709 - - Use the new width for height APIs in GTK+ 3.x, since size-request - is deprecated. - - For now we just return the same value for preferred and minimum - width/height, which should match the 2.x behavior. Probably we - could do something smarter for the minimum values. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_preferred_width): return our preferred width. - (webkit_web_view_get_preferred_height): return our preferred height. - (webkit_web_view_class_init): hook the new default handlers. - -2010-10-29 Daniel Bates <dbates@rim.com> - - No review, rolling out 70971. - http://trac.webkit.org/changeset/70971 - https://bugs.webkit.org/show_bug.cgi?id=6751 - - Rolling out changeset 70971 <http://trac.webkit.org/changeset/70971> since - it caused layout test failures on all bots. In particular, the - child count in a generated frame name differs after this patch. We need - to look into this further. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_name): - -2010-10-28 Antonio Gomes <agomes@rim.com> - - Reviewed by Ojan Vafai. - - Needs a "LinuxEditingBehavior", perhaps with a better name - https://bugs.webkit.org/show_bug.cgi?id=36627 - - Added the corresponding GTK+ setting to WebCore's EditingUnixBehavior: WEBKIT_EDITING_BEHAVIOR_UNIX. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - * webkit/webkitwebsettings.h: - -2010-10-29 Daniel Bates <dbates@rim.com> - - Reviewed by Adam Barth. - - For unnamed frames, window.name returns a generated name - https://bugs.webkit.org/show_bug.cgi?id=6751 - - Modified GTK-port to use FrameTree::uniqueName(). - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_name): - -2010-10-29 Martin Robinson <mrobinson@igalia.com> - - Build fix for GTK+ after BackForwardListImpl introduction. - - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_new_with_web_view): - -2010-10-29 Darin Adler <darin@apple.com> - - Reviewed by Sam Weinig. - - Change BackForwardList clients to use BackForwardListImpl to prepare for further refactoring - https://bugs.webkit.org/show_bug.cgi?id=48574 - - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_dispose): - (webkit_web_back_forward_list_new_with_web_view): - (webkit_web_back_forward_list_go_forward): - (webkit_web_back_forward_list_go_back): - (webkit_web_back_forward_list_contains_item): - (webkit_web_back_forward_list_go_to_item): - (webkit_web_back_forward_list_get_forward_list_with_limit): - (webkit_web_back_forward_list_get_back_list_with_limit): - (webkit_web_back_forward_list_get_back_item): - (webkit_web_back_forward_list_get_current_item): - (webkit_web_back_forward_list_get_forward_item): - (webkit_web_back_forward_list_get_nth_item): - (webkit_web_back_forward_list_get_back_length): - (webkit_web_back_forward_list_get_forward_length): - (webkit_web_back_forward_list_get_limit): - (webkit_web_back_forward_list_set_limit): - (webkit_web_back_forward_list_add_item): - (webkit_web_back_forward_list_clear): - (WebKit::core): - * webkit/webkitwebview.cpp: - (webkit_web_view_set_maintains_back_forward_list): - (webkit_web_view_get_back_forward_list): - Use BackForwardListImpl. - -2010-10-29 Alexey Proskuryakov <ap@apple.com> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=48576 - Let WebKit2 client know when a frame is a frameset - - Added a blank implementation of the new FrameLoaderClient method. - - * WebCoreSupport/FrameLoaderClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidBecomeFrameset): - -2010-10-29 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add the GtkScrollablePolicy property to the webview - https://bugs.webkit.org/show_bug.cgi?id=48357 - - Added the GtkScrollablePolicy properties to the webview widget, it - is now required for GtkScrollable widgets in GTK+ 3.x. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (setHorizontalScrollPolicy): Added. - (setVerticalScrollPolicy): Added. - (getHorizontalScrollPolicy): Added. - (getVerticalScrollPolicy): Added. - (webkit_web_view_get_property): - (webkit_web_view_set_property): - (webkit_web_view_class_init): - -2010-10-28 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] WebKitWebFrame's load-status is not properly notified to the tests - https://bugs.webkit.org/show_bug.cgi?id=48048 - - "frame-created" signal must be issued before loading any data, - that way clients can correctly capture all the loading related - signals for that frame. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2010-10-27 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - getTextAtOffset returns incorrect results if a link includes text and an image - https://bugs.webkit.org/show_bug.cgi?id=47365 - - New test to make sure this bug is actually fixed. - - * tests/testatk.c: - (testWebkitAtkLinksWithInlineImages): New test. - (main): Added new test. - -2010-10-26 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson. - - [GTK] Implement DumpRenderTreeSupportGtk (similarly to DumpRenderTreeSupportQt idea) - https://bugs.webkit.org/show_bug.cgi?id=48199 - - Implemented an initial version of the DumpRenderTreeSupportGtk class. - The main idea is that it groups together the bodies of many LayoutTestController - methods, so they can directly access WebCore features. This way we eliminate the - need of adding APIs to WebKitGTK just to expand its test coverage through DRT. - - The DumpRenderTreeSupportGtk class so far includes a getter and setter for the WebKitTabToLinksPreferenceKey - property as a sample implementation. Also it makes it possible to unskip fast/events/tab-focus-anchor.html and - to fix stderr messages from all 22 spatial-navigation tests in fast/events/spatial-navigation. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::tabsToLinks): - * WebCoreSupport/DumpRenderTreeSupportGtk.cpp: Added. - (DumpRenderTreeSupportGtk::DumpRenderTreeSupportGtk): - (DumpRenderTreeSupportGtk::~DumpRenderTreeSupportGtk): - (DumpRenderTreeSupportGtk::setDumpRenderTreeModeEnabled): - (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled): Getter to the WebKitTabToLinksPreferenceKey property. - (DumpRenderTreeSupportGtk::setLinksIncludedInFocusChain): Setter to the WebKitTabToLinksPreferenceKey property. - (DumpRenderTreeSupportGtk::linksIncludedInFocusChain): - * WebCoreSupport/DumpRenderTreeSupportGtk.h: Added. - -2010-10-26 Jenn Braithwaite <jennb@chromium.org> - - Reviewed by Dmitry Titov. - - Resource tracking failure when trying to move a frame between documents - https://bugs.webkit.org/show_bug.cgi?id=44713 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transferLoadingResourceFromPage): - Empty method. - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-10-26 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [Gtk] Layout tables should indicate that they are not data tables via an object attribute - https://bugs.webkit.org/show_bug.cgi?id=35422 - - New unit test to check the 'layout-guess' attribute in tables. - - * tests/testatk.c: - (atkAttributeSetAttributeNameHasValue): New, looks for a attribute - with a specific value, by the name of attribute. - (atkAttributeSetContainsAttributeName): New, just checks whether - an attribute with a specified name is present in the set. - (atkAttributeSetAttributeHasValue): Modified to relay on the new - function atkAttributeSetAttributeNameHasValue(). - (testWebkitAtkLayoutAndDataTables): New test. - (main): Added the new test. - -2010-10-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Port to new GtkScrollable interface in GTK+ 3.x - https://bugs.webkit.org/show_bug.cgi?id=48202 - - Use the new GtkScrollable interface when compiling against GTK+ - 3.x. - - * webkit/webkitwebview.cpp: - (setHorizontalAdjustment): - (setVerticalAdjustment): - (getHorizontalAdjustment): - (getVerticalAdjustment): - (webkit_web_view_get_property): - (webkit_web_view_set_property): - (webkit_web_view_class_init): - -2010-10-22 Sam Weinig <sam@webkit.org> - - Reviewed by Anders Carlsson. - - WebKit2 needs to pass the current event modifier flags when requesting a new window - https://bugs.webkit.org/show_bug.cgi?id=48140 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::createWindow): - * WebCoreSupport/ChromeClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchCreatePage): - * WebCoreSupport/FrameLoaderClientGtk.h: - Add NavigationAction parameter. - -2010-10-20 Philippe Normand <pnormand@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] use gtk_widget_hide instead of gtk_widget_hide_all in the fullscreen video conroller - https://bugs.webkit.org/show_bug.cgi?id=47972 - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::hideHud): - (FullscreenVideoController::exitFullscreen): - -2010-10-19 Joone Hur <joone@kldp.org> - - Reviewed by Martin Robinson. - - [GTK] Needs fixing mistyped comments in the API documentation - https://bugs.webkit.org/show_bug.cgi?id=47656 - - Fixed mistyped comments in the API documenentation. - - * webkit/webkitwebsettings.cpp: Fixed a mistyped comment in the the section block. - * webkit/webkitwebwindowfeatures.cpp: Fixed a mistyped comment in the section block. - -2010-10-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - * NEWS: update for 1.3.5 release. - * docs/webkitgtk-sections.txt: add new APIs. - -2010-10-18 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Simon Fraser. - - Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages(). - https://bugs.webkit.org/show_bug.cgi?id=46224 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::sendMessageToFrontend): - -2010-10-14 Antonio Gomes <agomes@rim.com> - - Reviewed by Martin Robinson and Xan Lopez. - - [Gtk]: DRT does not support frame flattening testing - https://bugs.webkit.org/show_bug.cgi?id=38650 - - Implement enable-frame-flattening API for Gtk+. - - * 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): - -2010-10-15 Nikolas Zimmermann <nzimmermann@rim.com> - - Reviewed by Dirk Schulze. - - Replace some String::format() usages by StringConcatenate in WebKit - https://bugs.webkit.org/show_bug.cgi?id=47714 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * webkit/webkitwebsettings.cpp: - (webkitOSVersion): - (webkitUserAgent): - -2010-10-14 Joone Hur <joone@kldp.org> - - Reviewed by Andreas Kling. - - [GTK] google.co.kr was missed when checking Google domains - https://bugs.webkit.org/show_bug.cgi?id=47652 - - WebKitGtk+ maintains a list of Google domains for working well with Google sites. - Add google.co.kr also to the list to be checked with other Google domains. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::initializeDomainsList): Added google.co.kr. - -2010-10-13 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - WebKitGtk+ to use the new API from the imported SoupURILoader code - - [GTK] Add HTTP caching support - https://bugs.webkit.org/show_bug.cgi?id=44261 - - ResourceHandleInternal m_msg is now called m_soupMessage. - - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - -2010-10-13 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Remove more warnings from the g-i scanner run - https://bugs.webkit.org/show_bug.cgi?id=47255 - - Fixes almost all warnings coming from the g-i scanner. - - * webkit/webkitsecurityorigin.cpp: Rename parameter names in - gtk-doc blurb to the actual name of the parameter. - * webkit/webkitsoupauthdialog.c: ditto. - (webkit_soup_auth_dialog_class_init): Write missing doc for the - 'current-toplevel' signal. - * webkit/webkitsoupauthdialog.h: Rename signal parameter to its - actual name. - * webkit/webkitwebdatabase.cpp: Rename parameter names in - gtk-doc blurb to the actual name of the parameter. - * webkit/webkitwebinspector.cpp: ditto. - (webkit_web_inspector_class_init): ditto. - * webkit/webkitwebview.cpp: ditto. - (webkit_web_view_class_init): ditto. - * webkit/webkitwebview.h: Rename the parameter names to be in sync - with the ones we use in the function definition. - -2010-10-12 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r69589. - http://trac.webkit.org/changeset/69589 - https://bugs.webkit.org/show_bug.cgi?id=47547 - - Wrong patch landed from a bug with two patches (Requested by - mrobinson on #webkit). - - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - -2010-10-12 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Add HTTP caching support - https://bugs.webkit.org/show_bug.cgi?id=44261 - - ResourceHandle's m_msg renamed to m_soupMsg and it's also now a PlatformRefPtr - - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - -2010-10-09 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Removed unused callback in webkitwebview - https://bugs.webkit.org/show_bug.cgi?id=47092 - - In webkit_web_view_forward_context_menu_event() a callback is - connected for the destroy signal of the popup menu, however we - reuse the same menu always, holding a ref to it, so it's not - destroyed when withdrawn by the user. - - * webkit/webkitwebview.cpp: - (webkit_web_view_forward_context_menu_event): - -2010-10-08 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Remove duplicate code in WebKit/gtk/WebCoreSupport/DragClientGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=47367 - - Remove as much duplicate code as possible from DragClientGtk. Most of this code - is GTK2/GTK3 independent, so only the bits that aren't should be protected by - #ifdefs. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::dragIconWindowDrawEventCallback): Modified the name of this callback - so that it is shared between build types. - (WebKit::DragClient::DragClient): Updated the signal connectors to reflect the change above. - (WebKit::DragClient::~DragClient): The build types share the callback name, so remove - the #ifdef here. - (WebKit::DragClient::drawDragIconWindow): Changed the name of this method and make it - independent of the build type. - * WebCoreSupport/DragClientGtk.h: Update method declaration and remove #ifdefs. - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Use draw instead of expose_event in WebView when building with gtk3 - https://bugs.webkit.org/show_bug.cgi?id=47338 - - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): - (webkit_web_view_draw): - (webkit_web_view_class_init): - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Don't use GtkObject - https://bugs.webkit.org/show_bug.cgi?id=47090 - - GtkObject has been removed in gtk3. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::generateEditorCommands): - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::createHud): - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix the build for GTK+ 3 - https://bugs.webkit.org/show_bug.cgi?id=47249 - - Use GdkVisual instead of GdkColormap. GdkColormap has been removed - in gtk3 - - * webkit/webkitwebview.cpp: - (webkit_web_view_realize): - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix the build for GTK+ 3 - https://bugs.webkit.org/show_bug.cgi?id=47249 - - Do not use GdkDrawable deprecated API. Some methods of GdkDrawable - are deprecated in gtk2 and have been removed in gtk3. Equivalent - API has been added to GdkWindow. - - * tests/testcopyandpaste.c: - (runPasteTestCallback): - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Use draw signal instead of expose_event in DragClientGtk when building with gtk3 - https://bugs.webkit.org/show_bug.cgi?id=47326 - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::dragIconWindowDrawCallback): - (WebKit::DragClient::DragClient): - (WebKit::DragClient::~DragClient): - (WebKit::DragClient::startDrag): - (WebKit::DragClient::dragIconWindowDraw): - * WebCoreSupport/DragClientGtk.h: - -2010-10-07 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix the build for GTK+ 3 - https://bugs.webkit.org/show_bug.cgi?id=47249 - - Don't use gtk_size_request_get_size(). It has been removed, - gtk_widget_get_preferred_size() should be used instead - - * webkit/webkitwebview.cpp: - (PopupMenuPositionFunc): - -2010-10-06 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r69201. - http://trac.webkit.org/changeset/69201 - https://bugs.webkit.org/show_bug.cgi?id=47279 - - This change broke the WebKitGTK+ build for GTK+ 2.0. - (Requested by mrobinson on #webkit). - - * tests/testcopyandpaste.c: - (runPasteTestCallback): - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): - -2010-10-06 Carlos Garcia Campos <cgarcia@igalia.com> - - Reviewed by Xan Lopez. - - Port to gtk+3 (2.91.0) - https://bugs.webkit.org/show_bug.cgi?id=47249 - - Do not use GdkDrawable deprecated API - - Some methods of GdkDrawable are deprecated in gtk2 and have been - remmoved in gtk3. Equivalent API has been added to GdkWindow. - - * tests/testcopyandpaste.c: - (runPasteTestCallback): - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): - -2010-09-28 Jenn Braithwaite <jennb@chromium.org> - - Reviewed by Dmitry Titov. - - Added oldPage param to FrameLoaderClient::didTransferChildFrameToNewDocument. - https://bugs.webkit.org/show_bug.cgi?id=46663 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didTransferChildFrameToNewDocument): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-09-27 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [Gtk] Adjust atk_text_get_text_at_offset to account for bullets/numbers in list items - https://bugs.webkit.org/show_bug.cgi?id=45381 - - Updated test to match the new exposure of list item markers. - - Also, added some extra assertions in that test to make sure the - accessible objects associated to the items implement AtkText. - - * tests/testatk.c: - (testWebkitAtkListsOfItems): - (main): - -2010-09-27 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Doesn't build with gtk+ 2.14 - https://bugs.webkit.org/show_bug.cgi?id=46565 - - Fixed the build for GTK+ 2.14. Don't use gdk_window_get_cursor() - for that GTK+ version as I found no acceptable way to work-around - its absence. - - * WebCoreSupport/FullscreenVideoController.cpp: - (FullscreenVideoController::showHud): - (FullscreenVideoController::hideHud): - (FullscreenVideoController::enterFullscreen): - -2010-09-26 Jenn Braithwaite <jennb@chromium.org> - - Reviewed by Adam Barth. - - GTK client needs updating when live iframe element is moved - between pages. - https://bugs.webkit.org/show_bug.cgi?id=46300 - - Test: fast/frames/iframe-reparenting-adopt-node.html - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didTransferChildFrameToNewDocument): - Update the webView for the frame to match the parent frame's - webView. - -2010-09-24 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] opening local files on win32 - https://bugs.webkit.org/show_bug.cgi?id=31066 - - Add tests that check the mime type returned by local files loaded via file URLs. - - * tests/testmimehandling.c: - (testRemoteMimeType): Added. - (testLocalMimeType): Added. - (main): Run tests by using g_test_add_data_func with either - testRemoteMimeType or testLocalMimeType. - -2010-09-23 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Nate Chapin. - - [GTK] Some tests from r68174 fail on the GTK+ bots - https://bugs.webkit.org/show_bug.cgi?id=46396 - - Fix since version number in this new WebKitWebSettings property. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): Fix the since version number. - -2010-09-23 Nate Chapin <japhet@chromium.org> - - Unreviewed, build fix. - - Add a missing comma in webkitwebsettings.cpp. - - * webkit/webkitwebsettings.cpp: - -2010-09-23 Nate Chapin <japhet@chromium.org> - - Reviewed by Darin Fisher. - - Add hyperlink auditing settings (i.e., <a ping>). - https://bugs.webkit.org/show_bug.cgi?id=30458 - - * 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): - -2010-09-22 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Replace instances of g_timeout_add() with g_idle_add() in testatk.c - https://bugs.webkit.org/show_bug.cgi?id=46284 - - Use g_idle_add() whenever g_timeout_add() was being used. - - This is desired because it's better to rely on the main loop to - decide when it's a good moment to execute the task (when idle) - than manually setting a timeout, which also sets a minimum amount - of time needed to get the function executed. - - * tests/testatk.c: - (testWekitAtkTextSelections): - (testWebkitAtkGetExtents): - (testWebkitAtkListsOfItems): - (main): - -2010-09-22 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] object:text-changed events should be emitted for entries and password text - https://bugs.webkit.org/show_bug.cgi?id=25898 - - New unit test to make sure text-changed signals are emitted - - * tests/testatk.c: - (textChangedCb): New. Signal handler for the - text-changed::insert and text-changed::delete signals. - (checkTextChangesAndBailOut): New. Source function to check - the global result of the test and quit from the main loop. - (testWebkitAtkTextChangedNotifications): New test. - (main): - -2010-09-22 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - Added information about drop shadow improvements to the NEWS file. - - * NEWS: Added information about drop shadow improvements. - -2010-09-21 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Fix transfer annotations for WebKitGTK+ static API - https://bugs.webkit.org/show_bug.cgi?id=46244 - - Deal with all the warnings related to transfer issues. Mostly the - problem was the transfer being missing, but there were also typos - in the function name or missing ':' at the end of the function - name in the gtk-doc. - - * webkit/webkitdownload.cpp: - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitnetworkresponse.cpp: - * webkit/webkitsecurityorigin.cpp: - * webkit/webkitwebdatabase.cpp: - * webkit/webkitwebdatasource.cpp: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebinspector.cpp: - * webkit/webkitwebresource.cpp: - * webkit/webkitwebsettings.cpp: - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - (webkit_web_view_get_main_frame): - -2010-09-21 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for 1.3.4 release. - - * NEWS: - -2010-09-17 Darin Adler <darin@apple.com> - - Reviewed by Sam Weinig. - - REGRESSION (r60104): Zoom level is unexpectedly reset on page reload - https://bugs.webkit.org/show_bug.cgi?id=42863 - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_zoom_level): - (webkit_web_view_apply_zoom_level): - (webkit_web_view_set_full_content_zoom): - Call functions on Frame instead of FrameView. - -2010-09-16 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Implement dissolveDragImageToFraction - https://bugs.webkit.org/show_bug.cgi?id=45826 - - To support full alpha in the drag icon, changed the drag icon to be a - GtkWindow with an RGBA colormap. Added logic to support painting the drag - image to this window during the expose event. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::dragIconWindowExposeEventCallback): Added. - (WebKit::DragClient::DragClient): Initialize the new drag icon window. - (WebKit::DragClient::~DragClient): Disconnect the expose event signal. - (WebKit::DragClient::startDrag): Resize the drag icon window the appropriate size and - if necessary, set its colormap. - (WebKit::DragClient::dragIconWindowExposeEvent): Added. - * WebCoreSupport/DragClientGtk.h: Added new member and method declarations. - -2010-09-14 Philippe Normand <pnormand@igalia.com> - - Reviewed by Eric Carlson and Martin Robinson. - - [GTK] eventSender.contextClick() should return the contents of the context menu - https://bugs.webkit.org/show_bug.cgi?id=39102 - - New private WebView API to retrieve the context-menu widget. This - is used by DRT only. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_context_menu): - -2010-09-16 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - GTK+ 3.x. updates, gtk_widget_size_request is deprecated and - "activate-slider" style property for scrollbars is gone. - - * webkit/webkitwebview.cpp: - (PopupMenuPositionFunc): - -2010-09-15 Martin Robinson <mrobinson@igalia.com> - - Reviewed by David Levin. - - [GTK] [REGRESSION] r67591 broke the testwebbackforwardlist API test and introduced a memory leak - https://bugs.webkit.org/show_bug.cgi?id=45865 - - When initializing the backForwardList private member of the WebView, do - so with adoptPlatformRef to prevent a memory leak. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): Initialize member with adoptPlatformRef. - -2010-09-15 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Eric Seidel. - - [Gtk] Use GOwnPtr for code that needs it - https://bugs.webkit.org/show_bug.cgi?id=21594 - - Convert as reference counted private members of WebKitWebView to - smart pointers as possible. This removes a lot of unecessary manual - memory management. Also convert some pointer members away from pointer - types, now that we are sure their destructors are called. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): Updated to reflect PlatformRefPtr changes. - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Ditto. - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::setInputMethodState): Ditto. - (WebKit::EditorClient::respondToChangedSelection): Ditto. - (WebKit::EditorClient::handleInputMethodKeydown): Ditto. - (WebKit::EditorClient::handleInputMethodMousePress): Ditto. - (WebKit::EditorClient::EditorClient): Ditto. - (WebKit::EditorClient::~EditorClient): Ditto. - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): Ditto. - * webkit/webkitprivate.h: Ditto. - * webkit/webkitwebview.cpp: Ditto. - (destroy_menu_cb): Ditto. - (webkit_web_view_forward_context_menu_event): Ditto. - (webkit_web_view_key_release_event): Ditto. - (webkit_web_view_button_press_event): Ditto. - (webkit_web_view_button_release_event): Ditto. - (webkit_web_view_focus_in_event): Ditto. - (webkit_web_view_focus_out_event): Ditto. - (webkit_web_view_realize): Ditto. - (webkit_web_view_set_scroll_adjustments): Ditto. - (webkit_web_view_dispose): Changed all g_object_unref calls to - PlatformRefPtr.clear(). Although this will also be done by the manual - call to the WebKitWebViewPrivate destructor, the order that these - fields are zero'd in is still very sensitive. - (webkit_web_view_finalize): Updated to reflect PlatformRefPtr changes. - (webViewGetDPI): Ditto. - (webkit_web_view_screen_changed): Ditto. - (webkit_web_view_drag_end): Ditto. - (webkit_web_view_drag_data_get): Ditto. - (doDragLeaveLater): Ditto. - (webkit_web_view_drag_leave): Ditto. - (webkit_web_view_drag_motion): Ditto. - (webkit_web_view_drag_data_received): Ditto. - (webkit_web_view_drag_drop): Ditto. - (webkit_web_view_get_im_context): Ditto. - (webkit_web_view_update_settings): Ditto. - (webkit_web_view_init): Ditto. - (webkit_web_view_set_settings): Ditto. - (webkit_web_view_get_settings): Ditto. - (webkit_web_view_get_inspector): Ditto. - (webkit_web_view_set_window_features): Ditto. - (webkit_web_view_get_window_features): Ditto. - (webkit_web_view_get_back_forward_list): Ditto. - (webkit_web_view_zoom_in): Ditto. - (webkit_web_view_zoom_out): Ditto. - (webkit_web_view_add_resource): Ditto. - (webkit_web_view_get_resource): Ditto. - (webkit_web_view_get_main_resource): Ditto. - (webkit_web_view_clear_resources): Ditto. - (webkit_web_view_get_subresources): Ditto. - -2010-09-14 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] fast/events/keydown-numpad-keys.html produces many GLib warnings - https://bugs.webkit.org/show_bug.cgi?id=45775 - - Handle the toggle-overwrite signal on the GtkTextView used for generating editing - commands. Ignore this signals, as the default handler assumes that the GtkTextView - has a layout and this one does not. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::toggleOverwriteCallback): Added. Cancels the default handler. - (WebKit::EditorClient::EditorClient): Attach a handler for toggle-overwrite. - -2010-09-14 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: Provide network-based load timing. - Before this change, inspector used timers taken from - within WebCore notifications (that are by definition - synchronous and serialized). As a result, timing was - affected by the routines running on the main thread - (JavaScript and such). - https://bugs.webkit.org/show_bug.cgi?id=45664 - - * webkit/webkitdownload.cpp: - (DownloadClient::didFinishLoading): - -2010-09-15 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r67551. - http://trac.webkit.org/changeset/67551 - https://bugs.webkit.org/show_bug.cgi?id=45816 - - "Plugin tests fail" (Requested by yurys on #webkit). - - * webkit/webkitdownload.cpp: - (DownloadClient::didFinishLoading): - -2010-09-14 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: Provide network-based load timing. - Before this change, inspector used timers taken from - within WebCore notifications (that are by definition - synchronous and serialized). As a result, timing was - affected by the routines running on the main thread - (JavaScript and such). - https://bugs.webkit.org/show_bug.cgi?id=45664 - - * webkit/webkitdownload.cpp: - (DownloadClient::didFinishLoading): - -2010-09-13 Enrica Casucci <enrica@apple.com> - - Reviewed by Sam Weinig. - - Paste should be implemented in WebCore like Copy and Cut for Mac also. - https://bugs.webkit.org/show_bug.cgi?id=45494 - <rdar://problem/7660537> - - On the Mac platform, the implementation of the paste operation is all done - at the WebKit level. In order to support it on WebKit2 it is necessary to - refactor the code and move this functionality at the level of WebCore like - we already have on Windows. - The original code relies on some in AppKit functions that call back into - WebKit causing problems in WebKit2. All this functionality has been moved - at the level of the editor client where it can be dealt with appropriately. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::canShowMIMETypeAsHTML): Added stub. - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-09-13 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Provide unit tests for AtkText's text selection functions - https://bugs.webkit.org/show_bug.cgi?id=43919 - - New tests to check getting, setting and removing text selections - - * tests/testatk.c: - (testWekitAtkTextSelections): New unit tests to check all the text - selection related functions altogether through a single test - function. - (main): - - Make sure that code dependant on getting information from the - clipboard gets executed only when there's a GDK window associated - to the webview widget, as that's not the case when executing the - unit tests (the wedbview is not inside of any toplevel window) and - will make the tests crash if not taken into account. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::respondToChangedSelection): - -2010-09-11 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] Make introspection work with g-o-i 0.9.5 - https://bugs.webkit.org/show_bug.cgi?id=45590 - - Use new type syntax and bump version number of the gir file. - - * JSCore.gir.in: - -2010-09-10 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> - - Reviewed by Darin Adler. - - Add NetworkingContext to avoid layer violations - https://bugs.webkit.org/show_bug.cgi?id=42292 - - * webkit/webkitdownload.cpp: - (webkit_download_start): - * webkit/webkitprivate.cpp: - (currentToplevelCallback): - -2010-09-10 Sam Weinig <sam@webkit.org> - - Fix GTK build. - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_full_content_zoom): - -2010-09-10 Sam Weinig <sam@webkit.org> - - Reviewed by Darin Adler. - - Remove unnecessary constraint in WebCore of choosing either text zoom or full page zoom. - Precursor to <rdar://problem/7660657> - https://bugs.webkit.org/show_bug.cgi?id=45522 - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_zoom_level): - (webkit_web_view_apply_zoom_level): - (webkit_web_view_set_full_content_zoom): - -2010-09-10 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Fix warnings because of bad assignments in testatk.c - https://bugs.webkit.org/show_bug.cgi?id=45538 - - Use AtkObject and AtkText instances properly in the code. - - * tests/testatk.c: - (testWebkitAtkListsOfItems): - -2010-09-10 Adam Barth <abarth@webkit.org> - - Reviewed by Darin Fisher. - - Move code from WebKit-layer to DocumentLoader - https://bugs.webkit.org/show_bug.cgi?id=45569 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - -2010-09-10 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Main resource bytes shouldn't bounce through FrameLoader - https://bugs.webkit.org/show_bug.cgi?id=45496 - - Now return the bytes to the DocumentLoader. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - -2010-09-10 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Placement new / manual destructor invocation should be used on private GObject memory - https://bugs.webkit.org/show_bug.cgi?id=45550 - - GLib allocates and deallocates GObject private data structs itself. When - those structs contain C++ members, their constructors and destructors are not - called. This is not only dangerous, it makes RefPtr-type smart pointers much - less useful. We can fix this problem by calling placement new on the private - data struct during instance initialization and calling the destructor during - finalization. - - This patch takes that approach and switches plain char* members of - WebKitWebView (with manual memory allocation) to use CString. - - * webkit/webkitprivate.h: Switch char* members to CString. - * webkit/webkitwebview.cpp: - (webkit_web_view_finalize): Manually call the destructor on the private - data. Remove manual deallocation of members which are now CString. - (webkit_web_view_query_tooltip): Update to reflect CString change. - (webkit_web_view_init): Use placement new to initialize C++ members of - the private data section. - (webkit_web_view_get_encoding): Update to reflect CString change. - (webkit_web_view_get_custom_encoding): Ditto. - (webkit_web_view_add_resource): Ditto. - (webkit_web_view_get_resource): Ditto. - (webkit_web_view_clear_resources): Ditto. - (webkit_web_view_set_tooltip_text): Ditto. - (webkit_web_view_get_icon_uri): Ditto. - -2010-09-10 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Martin Robinson. - - [GTK] Google sites do not like WebKitGTK+ - https://bugs.webkit.org/show_bug.cgi?id=39617 - - Special-case Google domains, and spoof User-Agent when talking to - them, to stop being treated as a second-class citizen. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::initializeDomainsList): - (WebKit::isGoogleDomain): - (WebKit::FrameLoaderClient::userAgent): If enable-site-specific-quirks - is enabled, send the standard WebKit User-Agent string, disregarding the - custom one set by the browser for Google domains. - * webkit/webkitprivate.h: - * webkit/webkitwebsettings.cpp: - (webkitPlatform): Fix style, and simplify. - (webkitOSVersion): Ditto. - (webkitUserAgent): Add the Version/x.y string Safari has been - using since Safari 2.2. - -2010-09-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Fix compilation with GTK+ 3.x. - - GDK key macros were renamed from GDK_FOO to GDK_KEY_FOO, we need - to include the compat header provided if we want to keep using the - old names. - - * WebCoreSupport/FullscreenVideoController.cpp: include GtkVersioning.h - -2010-09-08 Darin Adler <darin@apple.com> - - Reviewed by Adam Barth. - - Move functions from Frame to Editor as planned - https://bugs.webkit.org/show_bug.cgi?id=45218 - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_highlight_text_matches): - (webkit_web_view_get_selected_text): - (webkit_web_view_set_editable): - Changed call sites to use editor(). - -2010-09-09 Philippe Normand <pnormand@igalia.com> - - Reviewed by Martin Robinson. - - [GTK] testmimehandling falsely succeeds testing Ogg mime type - https://bugs.webkit.org/show_bug.cgi?id=45349 - - Make this actually test an ogg file request instead of pdf and - changed the expected result to match libsoup content-sniffing - result in the case of ogg/vorbis file. - - * tests/testmimehandling.c: - (mime_type_policy_decision_requested_cb): - (test_mime_ogg): - -2010-09-08 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] A list item's number/bullet should not be a child of that list item - https://bugs.webkit.org/show_bug.cgi?id=45190 - - New unit test added. - - * tests/testatk.c: - (testWebkitAtkListsOfItems): New test to check ordered/unordered - list of items are properly exposed to AT technologies. - (main): - -2010-09-07 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Fix some feature guards - https://bugs.webkit.org/show_bug.cgi?id=45302 - - * webkit/webkitprivate.h: Add ENABLE(VIDEO) guards for video specific members. - -2010-09-03 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> - - Reviewed by Darin Adler. - - Add NetworkingContext to avoid layer violations - https://bugs.webkit.org/show_bug.cgi?id=42292 - - Add GTK's specific implementation of FrameNetworkingContext. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createNetworkingContext): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-09-03 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Dialog separators are gone in GTK+ 3.x. - - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - -2010-09-02 Yury Semikhatsky <yurys@chromium.org> - - Reviewed by Pavel Feldman. - - REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector - https://bugs.webkit.org/show_bug.cgi?id=44230 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::closeWindow): - (WebKit::InspectorFrontendClient::disconnectFromBackend): - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-31 Dave Hyatt <hyatt@apple.com> - - Reviewed by Sam Weinig. - - https://bugs.webkit.org/show_bug.cgi?id=44863, disentangle style recalc from layout, so that - the former can occur in more places without having to do the latter. - - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): - -2010-08-31 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Isolate all GTK+ typedefs into one file - https://bugs.webkit.org/show_bug.cgi?id=44900 - - * WebCoreSupport/EditorClientGtk.h: Remove GTK+ typedefs. - * WebCoreSupport/FullscreenVideoController.h: Ditto. - -2010-08-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - Preparations for the 1.3.4 release. - - * NEWS: - * docs/webkitgtk-docs.sgml: - -2010-08-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Minor documentation typo fix. - - * webkit/webkitwebview.cpp: - -2010-08-30 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Martin Robinson. - - [Gtk] gdk_display_get_core_pointer and gdk_device_get_core_pointer - are deprecated - https://bugs.webkit.org/show_bug.cgi?id=44787 - - We have replaced GtkVersioning.cpp with GtkVersioning.c and - created a function (getDefaultGDKPointerDevice) to get the pointer - of the window with the new APIs. We added that function to DRT and - copyandpaste unit test. - - * tests/testcopyandpaste.c: - (runPasteTestCallback): - -2010-08-30 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r66198. - http://trac.webkit.org/changeset/66198 - https://bugs.webkit.org/show_bug.cgi?id=44856 - - It made tests crash on Qt bot (Requested by Ossy_ on #webkit). - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::closeWindow): - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-27 Yury Semikhatsky <yurys@chromium.org> - - Reviewed by Pavel Feldman. - - REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector - https://bugs.webkit.org/show_bug.cgi?id=44230 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::closeWindow): - (WebKit::InspectorFrontendClient::disconnectFromBackend): - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-26 Yury Semikhatsky <yurys@chromium.org> - - Unreviewed. Revert r66103 since Qt tests are failing. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::closeWindow): - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-26 Yury Semikhatsky <yurys@chromium.org> - - Reviewed by Pavel Feldman. - - REGRESSION: Crash occurs at objc_msgSend when closing a window that is displaying the web inspector - https://bugs.webkit.org/show_bug.cgi?id=44230 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::closeWindow): - (WebKit::InspectorFrontendClient::disconnectFromBackend): - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-26 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Martin Robinson. - - [GTK] WebKitGTK+ needs proper introspection annotation for most types and methods - https://bugs.webkit.org/show_bug.cgi?id=44565 - - Add documentation and introspection specific information to a few - getter and setter methods. - - * webkit/webkitwebview.cpp: - -2010-08-25 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - confirm dialog should show OK/Cancel instead of Yes/No for consistency - https://bugs.webkit.org/show_bug.cgi?id=32877 - - Change the button labels for the fallback confirmation dialog to be - OK and Cancel. - - * webkit/webkitwebview.cpp: - (webkit_web_view_script_dialog): - -2010-08-25 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - Cairo and EFL port shouldn't depend on glib. - https://bugs.webkit.org/show_bug.cgi?id=44354 - - Replace occurrences of GRefPtr and adoptGRef with PlatformRefPtr and - adoptPlatformRef. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::requestGeolocationPermissionForFrame): - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::createPlugin): - * WebCoreSupport/FullscreenVideoController.h: - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::populateSetting): - (WebKit::InspectorClient::storeSetting): - * webkit/webkitdownload.cpp: - (webkit_download_error): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_new_with_core_request): - * webkit/webkitnetworkresponse.cpp: - (webkit_network_response_new_with_core_response): - -2010-08-24 Xan Lopez <xlopez@igalia.com> - - Reviewed by Martin Robinson. - - Set a device to the event struct when building with GTK+ 3.x, it's - mandatory. - - * tests/testcopyandpaste.c: - (runPasteTestCallback): - -2010-08-24 Martin Robinson <mrobinson@igalia.com> - - Build fix for GTK+. - - * tests/testkeyevents.c: - (key_press_event_cb): - (key_release_event_cb): - -2010-08-24 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] GTK3: EventSender and API tests should use gdk_event_new when synthesizing events - https://bugs.webkit.org/show_bug.cgi?id=44534 - - Fix an issue where a GdkEvent* is treated like a GdkEvent. - - * tests/testkeyevents.c: - (key_press_event_cb): - (key_release_event_cb): - -2010-08-24 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] GTK3: EventSender and API tests should use gdk_event_new when synthesizing events - https://bugs.webkit.org/show_bug.cgi?id=44534 - - * tests/testcopyandpaste.c: - (runPasteTestCallback): Switch to using gdk_event_new and also reference the GdkWindow. - when setting it on the event. It is dereferenced by gdk_event_free(...). - * tests/testhittestresult.c: - (load_status_cb): Switch to using gdk_event_new. - -2010-08-24 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Do not initialize the GSettings object in webkit_init - the other - call sites are always called in the main thread so this is - unnecessary. - - * webkit/webkitprivate.cpp: - (webkit_init): - -2010-08-20 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Pavel Feldman. - - Web Inspector: Inspector tests were disabled for GTK. - https://bugs.webkit.org/show_bug.cgi?id=43977 - - Allow setting the inspector resources path via an environment variables - and add a method, inspectorFilesPath, to the WebKit InspectorClient that - encapsulates this logic. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): Use the new inspectorFilesPath method to - get the path to the resource. - (WebKit::InspectorClient::inspectorFilesPath): Added. - (WebKit::InspectorFrontendClient::localizedStringsURL): Use inspectorFilesPath method. - * WebCoreSupport/InspectorClientGtk.h: Add method and member variables for caching the result. - -2010-08-19 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Kenneth Rohde Christiansen. - - [Gtk] Enable view mode media feature layout test - https://bugs.webkit.org/show_bug.cgi?id=43278 - - Add the view-mode property, to control the WebCore page's viewMode. - - * docs/webkitgtk-sections.txt: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_property): - (webkit_web_view_set_property): - (webkit_web_view_class_init): - (webkit_web_view_set_view_mode): - (webkit_web_view_get_view_mode): - * webkit/webkitwebview.h: - -2010-08-19 Philippe Normand <pnormand@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GStreamer] GTK XOverlay support in GStreamerGWorld - https://bugs.webkit.org/show_bug.cgi?id=39474 - - New FullscreenVideoController object, private in the webview. It - is created when the user presses the fullscreen button of the - video controls. Video is displayed in fullscreen, controls are - displayed when the user moves the mouse and when the video is - paused. There's also basic keyboard shortcuts support: F/f to - leave fullscreen, space to toggle play/pause and up/down to - control volume. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::supportsFullscreenForNode): - (WebKit::ChromeClient::enterFullscreenForNode): - (WebKit::ChromeClient::exitFullscreenForNode): - * WebCoreSupport/ChromeClientGtk.h: - * WebCoreSupport/FullscreenVideoController.cpp: Added. - (hideHudCallback): - (onFullscreenGtkMotionNotifyEvent): - (onFullscreenGtkActiveNotification): - (onFullscreenGtkConfigureEvent): - (onFullscreenGtkDestroy): - (togglePlayPauseActivated): - (exitFullscreenActivated): - (progressBarUpdateCallback): - (timeScaleButtonPressed): - (timeScaleButtonReleased): - (timeScaleValueChanged): - (volumeValueChanged): - (playerVolumeChangedCallback): - (playerMuteChangedCallback): - (FullscreenVideoController::FullscreenVideoController): - (FullscreenVideoController::~FullscreenVideoController): - (FullscreenVideoController::setMediaElement): - (FullscreenVideoController::gtkConfigure): - (FullscreenVideoController::showHud): - (FullscreenVideoController::hideHud): - (onFullscreenGtkKeyPressEvent): - (FullscreenVideoController::enterFullscreen): - (FullscreenVideoController::updateHudPosition): - (FullscreenVideoController::exitOnUserRequest): - (FullscreenVideoController::exitFullscreen): - (FullscreenVideoController::canPlay): - (FullscreenVideoController::play): - (FullscreenVideoController::pause): - (FullscreenVideoController::playStateChanged): - (FullscreenVideoController::togglePlay): - (FullscreenVideoController::volume): - (FullscreenVideoController::muted): - (FullscreenVideoController::setVolume): - (FullscreenVideoController::volumeChanged): - (FullscreenVideoController::muteChanged): - (FullscreenVideoController::currentTime): - (FullscreenVideoController::setCurrentTime): - (FullscreenVideoController::duration): - (FullscreenVideoController::percentLoaded): - (FullscreenVideoController::beginSeek): - (FullscreenVideoController::doSeek): - (FullscreenVideoController::endSeek): - (timeToString): - (FullscreenVideoController::updateHudProgressBar): - (FullscreenVideoController::createHud): - * WebCoreSupport/FullscreenVideoController.h: Added. - (FullscreenVideoController::mediaElement): - * webkit/webkitprivate.cpp: - (webkit_web_view_enter_fullscreen): - (webkit_web_view_exit_fullscreen): - * webkit/webkitprivate.h: - -2010-08-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] WebBackForwardList's new_with_web_view should not be public - https://bugs.webkit.org/show_bug.cgi?id=43802 - - Deprecate the constructor. The introspection annotation has been - fixed in a previous commit. - - * webkit/webkitwebbackforwardlist.cpp: - -2010-08-17 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: replace hand written InspectorBackendStub.js with generated one. - https://bugs.webkit.org/show_bug.cgi?id=43791 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-18 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r65595. - http://trac.webkit.org/changeset/65595 - https://bugs.webkit.org/show_bug.cgi?id=44161 - - qt build failed (Requested by loislo on #webkit). - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-17 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: replace hand written InspectorBackendStub.js by generated one. - https://bugs.webkit.org/show_bug.cgi?id=43791 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-17 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix the builds when HAVE_GSETTINGS is defined. - - * webkit/webkitprivate.cpp: - (isSchemaAvailable): - (inspectorGSettings): - -2010-08-17 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org> - - Reviewed by Darin Adler. - - Add NetworkingContext to avoid layer violations - https://bugs.webkit.org/show_bug.cgi?id=42292 - - Preparation: Just add the files to the build system. - - * WebCoreSupport/FrameNetworkingContextGtk.h: Added. - Placeholder with tentative code that might be changed when landing - the rest of it. - -2010-08-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - WebBackForwardList.get_{back|forward}_list_with_limit not introspectable - https://bugs.webkit.org/show_bug.cgi?id=43054 - - Annotate WebKitWebBackForwardList and the function that is used to fetch it from - the WebKitWebView. More will follow. - - * webkit/webkitwebbackforwardlist.cpp: Annotations, and small - improvements to the docs. - * webkit/webkitwebbackforwardlist.h: Couple empty lines missing. - * webkit/webkitwebview.cpp: - -2010-08-17 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Clean up WebCore/platform/graphics/gtk/ImageGtk.cpp - https://bugs.webkit.org/show_bug.cgi?id=44069 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): Switched to using the new WEBKITGTK_API_VERSION_STRING define. - * webkit/webkitprivate.cpp: - (inspectorGSettings): Ditto. - -2010-08-17 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r65500. - http://trac.webkit.org/changeset/65500 - https://bugs.webkit.org/show_bug.cgi?id=44108 - - Qt bots failed to compile. (Requested by loislo on #webkit). - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-17 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Yury Semikhatsky. - - Web Inspector: replace hand written InspectorBackendStub.js by generated one. - https://bugs.webkit.org/show_bug.cgi?id=43791 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] GSettings support adds annoying warnings on systems with older glib versions - https://bugs.webkit.org/show_bug.cgi?id=44056 - - Use #ifdef instead of #if for HAVE_GSETTINGS to avoid warnings - when it is not defined. - - * WebCoreSupport/InspectorClientGtk.cpp: - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitprivate.h: - -2010-08-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Really add a missing file. I wish I would remember running git add - on them after applying a patch =(. - - * org.webkitgtk.gschema.xml.in: Added. - -2010-08-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Use GSettings to save/restore Web Inspector settings - https://bugs.webkit.org/show_bug.cgi?id=43512 - - Use GSettings to save/restore settings used by the Web Inspector. - A few helper functions were added to have settings that use - boolean values be actual booleans, and also to conform with the - GSettings naming requirements for keys. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::toGSettingName): - (WebKit::truthStringFromVariant): - (WebKit::variantFromTruthString): - (WebKit::InspectorClient::populateSetting): - (WebKit::InspectorClient::storeSetting): - * org.webkit.gtk.gschema.xml: Added. - * webkit/webkitprivate.cpp: - (inspectorGSettings): - (webkit_init): - * webkit/webkitprivate.h: - -2010-08-11 Joone Hur <joone@kldp.org> - - Reviewed by Martin Robinson. - - [GTK] Last Hangul letter is typed again when a composition is finished with mouse press - https://bugs.webkit.org/show_bug.cgi?id=40518 - - When a mouse press fires during a IME composition, the current composition character - can be entered twice at the previous editing position and a new editing position. - Because the IME commit signal is emitted after the mouse press event. - This patch allows to prevent the commit signal during a composition when a mouse press fires. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::EditorClient::handleInputMethodKeydown): Allow to accept the next composition commit. - (WebKit::EditorClient::handleInputMethodMousePress): Added for handling IME when a mouse press fires. - (WebKit::EditorClient::EditorClient): Initialize m_preventNextCompositionCommit - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::preventNextCompositionCommit): Added for checking whether skipping a commit. - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): Call handleInputMethodMousePress() - -2010-08-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - Small improvement to the documentation of the geolocation-policy-decision-requested - signal, stating more clearly what is expected from the handler. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2010-08-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Martin Robinson. - - [GTK] Geolocation policy decision object leaking - https://bugs.webkit.org/show_bug.cgi?id=43884 - - Use GRefPtr on the policy decision object to fix the leak. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::requestGeolocationPermissionForFrame): - -2010-08-10 Chris Marrin <cmarrin@apple.com> - - Reviewed by Oliver Hunt. - - Add suspendAnimations/resumeAnimation API to DRT - https://bugs.webkit.org/show_bug.cgi?id=43733 - - Gtk specific API. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_suspend_animations): - (webkit_web_frame_resume_animations): - -2010-08-10 Gavin Barraclough <barraclough@apple.com> - - Rubber stamped by Sam Weinig. - - Bug 43786 - Move AtomicStringHash from WebCore to WTF - Also remove deprecated string headers from WebCore/platform/text. - - * gdom/ConvertToGCharPrivate.h: - -2010-08-06 Gavin Barraclough <barraclough@apple.com> - - Rubber stamped by Sam Weinig - - Bug 43594 - Add string forwards to Forward.h - This allows us to remove forward declarations for these classes from - WebCore/WebKit (a step in moving these class from WebCore:: to WTF::). - - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-09 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [gtk] gtk_im_context_focus_in() should only be called when an input-able element has focus - https://bugs.webkit.org/show_bug.cgi?id=43602 - - Only call gtk_im_context_focus_in() when we focus a frame which is currently in - an editable node. - - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): Conditionalize call to gtk_im_context_focus_in(). - -2010-08-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Use the new paths, and also fix the path for localizedStrings. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - (WebKit::InspectorFrontendClient::localizedStringsURL): - -2010-08-06 Jessie Berlin <jberlin@apple.com> - - Roll out http://trac.webkit.org/changeset/64801, which broke the Safari Windows Build. - Unreviewed. - - * WebCoreSupport/InspectorClientGtk.h: - -2010-08-05 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Use correct path for Inspector data files in GTK+3.x builds - https://bugs.webkit.org/show_bug.cgi?id=43445 - - Use the right data path for inspector files when building with - GTK+ 3.x. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::openInspectorFrontend): - -2010-08-03 Daniel Bates <dbates@rim.com> - - Fix misspelled word 'teh' in the description of the XSS Auditor setting. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2010-08-03 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Fix DOM event dispatch - https://bugs.webkit.org/show_bug.cgi?id=40847 - - Test DOM event dispatch. - - * tests/testdomdomwindow.c: - (load_event_callback): - (test_dom_domview_signals): - (clicked_cb): - (load_status_callback): - (test_dom_domview_dispatch_event): - (main): - -2010-08-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Does not paint the node highlight used by the inspector - https://bugs.webkit.org/show_bug.cgi?id=43429 - - Implement highlighting the nodes when using the inspector. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::highlight): - (WebKit::InspectorClient::hideHighlight): - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): - -2010-08-03 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update unit tests now that string parameters are 'const char*'. - - * tests/testdomdocument.c: - (test_dom_document_title): - (test_dom_document_get_elements_by_tag_name): - (test_dom_document_get_elements_by_class_name): - (test_dom_document_get_element_by_id): - * tests/testdomnode.c: - (test_dom_node_insertion): - -2010-08-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] DRT implement execCommand() - https://bugs.webkit.org/show_bug.cgi?id=35351 - - * webkit/webkitprivate.h: Add some private methods for the DRT which enable - LayoutTestController.execCommand and LayoutTestController.isCommandEnabled: - webkit_web_view_execute_core_command_by_name and webkit_web_view_is_command_enabled. - * webkit/webkitwebview.cpp: - (webkit_web_view_execute_core_command_by_name): added. - (webkit_web_view_is_command_enabled): Added. - -2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org> - - Reviewed by Darin Fisher. - - PopupMenu refactoring in preparation to WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=42592 - - As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu - instances, concrete classes that inherit from ChromeClient needed to be changed to - implement the new methods. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::selectItemWritingDirectionIsNatural): - (WebKit::ChromeClient::createPopupMenu): - (WebKit::ChromeClient::createSearchPopupMenu): - * WebCoreSupport/ChromeClientGtk.h: - -2010-08-02 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Create a frame-created signal - https://bugs.webkit.org/show_bug.cgi?id=43284 - - Add a frame-created signal, which will allow developers to track - the beginning of a frame lifecycle and attach signal handlers to - all new frames. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): Emit the frame-created signal. - * tests/testwebframe.c: Add a test which verifies that the correct number of - frame-created signals is fired when a page with iframes loads. - (createFrameSignalTestFrameCreatedCallback): Added. - (createFrameSignalTestTimeout): Added. - (test_webkit_web_frame_created_signal): Added. - (main): Add a reference to the new test. - * webkit/webkitprivate.h: De-normalize webkit_web_frame_init_with_web_view into - the one place that it is used, so that the frame-created signal may be fired there. - * webkit/webkitwebframe.cpp: Remove webkit_web_frame_init_with_web_view. - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): Add the frame-created signal declaration. - -2010-08-02 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Chris Fleizach. - - [GTK] Implement support for get_character_extents and get_range_extents - https://bugs.webkit.org/show_bug.cgi?id=25677 - - Added new unit tests to check get_character_extents and - get_range_extents functions for the ATK_TEXT interface - - Based on a previous patch by Joanmarie Diggs. - - * tests/testatk.c: - (test_webkit_atk_get_extents): - (main): - -2010-08-02 Jeremy Orlow <jorlow@chromium.org> - - Speculative revert of 64425 due to Chromium instability - https://bugs.webkit.org/show_bug.cgi?id=43347 - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org> - - Reviewed by Darin Fisher. - - PopupMenu refactoring in preparation to WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=42592 - - As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu - instances, concrete classes that inherit from ChromeClient needed to be changed to - implement the new methods. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::selectItemWritingDirectionIsNatural): - (WebKit::ChromeClient::createPopupMenu): - (WebKit::ChromeClient::createSearchPopupMenu): - * WebCoreSupport/ChromeClientGtk.h: - -2010-07-31 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r64422. - http://trac.webkit.org/changeset/64422 - https://bugs.webkit.org/show_bug.cgi?id=43304 - - Build fixes are needed for Snow Leopard and Windows. - (Requested by lca on #webkit). - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2010-07-27 Luiz Agostini <luiz.agostini@openbossa.org> - - Reviewed by Darin Fisher. - - PopupMenu refactoring in preparation to WebKit2 - https://bugs.webkit.org/show_bug.cgi?id=42592 - - As ChromeClient was made responsible for providing PopupMenu and SearchPopupMenu - instances, concrete classes that inherit from ChromeClient needed to be changed to - implement the new methods. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::selectItemWritingDirectionIsNatural): - (WebKit::ChromeClient::createPopupMenu): - (WebKit::ChromeClient::createSearchPopupMenu): - * WebCoreSupport/ChromeClientGtk.h: - -2010-07-30 Joseph Pecoraro <joepeck@webkit.org> - - Reviewed by David Kilzer. - - Limit ApplicationCache Total and Per-Origin Storage Capacity (Quotas) - https://bugs.webkit.org/show_bug.cgi?id=40627 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::reachedApplicationCacheOriginQuota): - * WebCoreSupport/ChromeClientGtk.h: -2010-07-26 Steve Block <steveblock@google.com> - - Reviewed by Jeremy Orlow. - - Page clients should be passed to Page constructor via structure of pointers - https://bugs.webkit.org/show_bug.cgi?id=42834 - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2010-07-16 Zhe Su <suzhe@chromium.org> - - Reviewed by Darin Adler. - - REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms - https://bugs.webkit.org/show_bug.cgi?id=42253 - - Dummy implementation of EditorClient::willSetInputMethodState. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::willSetInputMethodState): - * WebCoreSupport/EditorClientGtk.h: - -2010-07-16 Nate Chapin <japhet@chromium.org> - - Reviewed by Darin Fisher. - - Uncomment an assert that broke due to r63100. - - https://bugs.webkit.org/show_bug.cgi?id=42298 - - * tests/testwebview.c: - -2010-07-14 Sam Weinig <sam@webkit.org> - - Reviewed by Darin Adler. - - Patch for https://bugs.webkit.org/show_bug.cgi?id=42232 - Make changing Cursors work in WebKit2. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setCursor): - * WebCoreSupport/ChromeClientGtk.h: - Change prototype to match new one. - -2010-07-12 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] r63100 broke the testwebview test - https://bugs.webkit.org/show_bug.cgi?id=42114 - - * tests/testwebview.c: Disable a failing assertion in test_webkit_web_view_adjustments - until we can get to the bottom of the failure. - -2010-07-12 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for 1.3.3 - - * NEWS: - -2010-07-12 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix compilation with sealed GTK+. - - * webkit/webkitwebview.cpp: - (webkit_web_view_drag_motion): - (webkit_web_view_drag_data_received): - (webkit_web_view_drag_drop): - -2010-07-11 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] WebKitWebView should support drops - https://bugs.webkit.org/show_bug.cgi?id=39843 - - Add support for dropping content onto GTK+ WebViews. - - * webkit/webkitprivate.h: - Add a DroppingContext struct to keep track of drop data while the drop is - in progress. Have WebKitWebView keep a map of GdkDragContexts to DroppingContexts. - * webkit/webkitwebview.cpp: Add necessary includes and globalPointForClientPoint helper. - (webkit_web_view_popup_menu_handler): Use globalPointForClientPoint helper. - (webkit_web_view_dispose): Properly clean up droppingContexts member. - (webkit_web_view_finalize): Delete droppingContext member. - (globalPointForClientPoint): Added. - (doDragLeaveLater): Added. - (webkit_web_view_drag_leave): Added. - (webkit_web_view_drag_motion): Added. - (webkit_web_view_drag_data_received): Added. - (webkit_web_view_drag_drop): Added. - (webkit_web_view_class_init): Connect new drop signal handlers to the widget definition. - (webkit_web_view_init): Set up the widget as a drop destination and initialize droppingContexts. - -2010-07-07 Sam Weinig <sam@webkit.org> - - Reviewed by Anders Carlsson. - - Patch for https://bugs.webkit.org/show_bug.cgi?id=41772 - Add basic piping for BackForwardControllerClient. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2010-06-19 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Yury Semikhatsky. - - WebInspector: js function name was fixed. - dispatchMessageToFrontend -> dispatchMessageFromBackend. - https://bugs.webkit.org/show_bug.cgi?id=40675 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::sendMessageToFrontend): - -2010-06-23 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Separate DerivedSources per-project - https://bugs.webkit.org/show_bug.cgi?id=41109 - - Separate WebKitGTK+ DerivedSources into per-project subdirectories to prepare - for properly building WebKit2. - - * webkitmarshal.list: Touch this file to force a rebuild of the marshaling code. - -2010-07-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Stop using GdkRegion in 3.x mode - https://bugs.webkit.org/show_bug.cgi?id=41463 - - Make us compile without using GdkRegion, since it's gone from GTK+ - 3.x. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scroll): - * webkit/webkitwebview.cpp: - (webkit_web_view_expose_event): - -2010-07-01 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Convert WebKitWebView's private draggingDataObjects member to a pointer - https://bugs.webkit.org/show_bug.cgi?id=40333 - - Convert draggingDataObjects to a pointer. The constructor and destructor of the - HashMap should be called explicitly. GObject memory allocation does not do this. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - (webkit_web_view_drag_end): - (webkit_web_view_drag_data_get): - (webkit_web_view_init): - -2010-06-30 Martin Robinson <mrobinson@igalia.com> - - Unreviewed, rolling out r62226. - http://trac.webkit.org/changeset/62226 - https://bugs.webkit.org/show_bug.cgi?id=40333 - - This change caused 13 new crashers. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - (webkit_web_view_drag_end): - (webkit_web_view_drag_data_get): - (webkit_web_view_init): - -2010-06-30 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Convert WebKitWebView's private draggingDataObjects member to a pointer - https://bugs.webkit.org/show_bug.cgi?id=40333 - - Convert draggingDataObjects to a pointer. The constructor and destructor of the - HashMap should be called explicitly. GObject memory allocation does not do this. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - (webkit_web_view_drag_end): - (webkit_web_view_drag_data_get): - (webkit_web_view_init): - -2010-06-30 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Unit test for DOM insertion methods - https://bugs.webkit.org/show_bug.cgi?id=40495 - - Add unit test for webkit_dom_node_remove_child. - - * tests/testdomnode.c: - (test_dom_node_insertion): - -2010-06-30 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Unit test for DOM insertion methods - https://bugs.webkit.org/show_bug.cgi?id=40495 - - Add unit tests for node insertion and replacement methods. - - * tests/testdomnode.c: - (test_dom_node_insertion): - (main): - -2010-06-30 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Random failure on 'testdownload' unit test - https://bugs.webkit.org/show_bug.cgi?id=38256 - - Make sure the set_filename function is called after handling the - 'download-requested' signal for the asynchronous test. This change - is needed because it could happen, with the current code, that the - set_filename () function got called too early in the mainloop, - therefore screwing the tests because the 'theDownload' global - variable wouldn't be properly set yet. - - With this modification we ensure the set_filename() function gets - called always after handling the download-requested signal, - therefore avoiding potentialproblems. - - * tests/testdownload.c: - (set_filename): - (handle_download_requested_cb): - (download_requested_cb): - (download_requested_asynch_cb): - (test_webkit_download_perform): - -2010-06-30 José Millán Soto <jmillan@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Text attributes not exposed - https://bugs.webkit.org/show_bug.cgi?id=25528 - - Added new tests for accessible text attributes - - * tests/testatk.c: - (compAtkAttribute): - (compAtkAttributeName): - (atkAttributeSetAttributeHasValue): - (atkAttributeSetAreEqual): - (testWebkitAtkTextAttributes): - (main): - -2010-06-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for 1.3.2. - - * NEWS: - -2010-06-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Does not compile with -DGSEAL_ENABLE - https://bugs.webkit.org/show_bug.cgi?id=37851 - - Fix build with GSEAL enabled. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - -2010-06-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Add support for GTK+3 - https://bugs.webkit.org/show_bug.cgi?id=41253 - - Adapt build system to 3.x support, allow the JSCore gir and webkit - pc files to be configurable at build time for different API - versions. - - * JSCore-1.0.gir: Removed. - * JSCore.gir.in: Added. - * docs/GNUmakefile.am: - * webkit.pc.in: - -2010-06-25 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Implement atk_table_get_column_header - https://bugs.webkit.org/show_bug.cgi?id=30896 - - Replace g_timeout_add() with g_idle_add(). - - * tests/testatk.c: - (test_webkit_atk_get_text_at_offset_forms): - (test_webkit_atk_get_text_at_offset): - (test_webkit_atk_get_text_at_offset_newlines): - (test_webkit_atk_get_text_at_offset_textarea): - (test_webkit_atk_get_text_at_offset_text_input): - (testWebkitAtkGetTextInParagraphAndBodySimple): - (testWebkitAtkGetTextInParagraphAndBodyModerate): - (testWebkitAtkGetTextInTable): - (testWebkitAtkGetHeadersInTable): - -2010-06-25 Mario Sanchez Prada <msanchez@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Implement atk_table_get_column_header - https://bugs.webkit.org/show_bug.cgi?id=30896 - - Added new test to check whether the implementation of - get_column_headers() and get_row_headers() works ok. - - * tests/testatk.c: - (testWebkitAtkGetHeadersInTable): - (main): - -2010-06-25 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Pasteboard code does not take into account the nil character when getting and setting markup/netscape-url data - https://bugs.webkit.org/show_bug.cgi?id=41221 - - Add a test for this issue which simulates a paste keyboard event into an editable - body. The pasteboard should contain a markup portion containing a null terminator. - - * tests/testcopyandpaste.c: - (test_info_new): - (test_info_destroy): - (load_status_cb): - (runPasteTestCallback): - (window_object_cleared_callback): - (pasting_test_get_data_callback): - (pasting_test_clear_data_callback): - (test_pasting_markup): - (main): - -2010-06-24 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Cannot change the selection via the keyboard - https://bugs.webkit.org/show_bug.cgi?id=41162 - - Fix issue where the selection could not be extended via the keyboard by - adjusting the logic guarding against inserting text in non-editable nodes. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - Allow editor commands that do not insert text in non-editable nodes. This - fixes keyboard selection extension in non-editable nodes. Move the existing - check to after the execution of any editor commands. - -2010-06-15 Dumitru Daniliuc <dumi@chromium.org> - - Reviewed by Adam Barth. - - Move isAvailable()/setIsAvailable() from Database/DatabaseSync to AbstractDatabase. - https://bugs.webkit.org/show_bug.cgi?id=39041 - - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - (webkit_get_cache_model): - -2010-06-16 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Remove the abuse of GDK_CURRENT_TIME in the DRT - https://bugs.webkit.org/show_bug.cgi?id=40600 - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Reset the click count after a drag starts. - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): Reset the click count after a load is committed. - * webkit/webkitprivate.h: Move static click counting variables to be per-view. - * webkit/webkitwebview.cpp: - (getEventTime): Added. - (webkit_web_view_button_press_event): If the event time is zero, use the current time. - (webkit_web_view_finalize): Clean up click counting member. - (webkit_web_view_init): Initialize click counting member. - -2010-06-15 Xan Lopez <xlopez@igalia.com> - - Fix compilation with older GTK+. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::pageRect): - -2010-06-15 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Does not compile with -DGSEAL_ENABLE - https://bugs.webkit.org/show_bug.cgi?id=37851 - - Fix compilation with GSEAL_ENABLE. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::pageRect): - (WebKit::ChromeClient::contentsSizeChanged): - * tests/testdomnode.c: - (test_dom_node_insertion): - * webkit/webkitwebview.cpp: - (webkit_web_view_realize): - (webkit_web_view_script_dialog): - (webkit_web_view_drag_end): - (webkit_web_view_init): - -2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> - - Unreviewed build fix. - - This is a fix for flaky inspector tests at gtk-debug bots. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - -2010-06-14 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Pavel Feldman. - - WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc - data from inspected page to WebInspector as JSON string via http. The native - serialization to JSON string is supported by InspectorValue's classes. This patch - has the implementation of sendMessageToFrontend function. WebKit version of it still - uses ScriptFunctionCall and will be switched to another transport a little bit later. - https://bugs.webkit.org/show_bug.cgi?id=40134 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::releaseFrontendPage): - (WebKit::InspectorClient::sendMessageToFrontend): - * WebCoreSupport/InspectorClientGtk.h: - -2010-06-10 Eric Seidel <eric@webkit.org> - - Reviewed by Adam Barth. - - Reduce FrameView.h includes to speed up build times - https://bugs.webkit.org/show_bug.cgi?id=40408 - - * webkit/webkitwebinspector.cpp: - - Include RenderLayer.h - -2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r60889. - http://trac.webkit.org/changeset/60889 - https://bugs.webkit.org/show_bug.cgi?id=40365 - - gtk bot has some kind of memory corruption (Requested by - loislo on #webkit). - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::InspectorClient): - (WebKit::InspectorClient::openInspectorFrontend): - (WebKit::InspectorFrontendClient::InspectorFrontendClient): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - * WebCoreSupport/InspectorClientGtk.h: - -2010-06-07 Ilya Tikhonovsky <loislo@chromium.org> - - Reviewed by Pavel Feldman. - - WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc - data from inspected page to WebInspector as JSON string via http. The native - serialization to JSON string is supported by InspectorValue's classes. This patch - has the implementation of sendMessageToFrontend function. WebKit version of it still - uses ScriptFunctionCall and will be switched to another transport a little bit later. - https://bugs.webkit.org/show_bug.cgi?id=40134 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::releaseFrontendPage): - (WebKit::InspectorClient::sendMessageToFrontend): - * WebCoreSupport/InspectorClientGtk.h: - -2010-06-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Unit testing for WebKitDOMNode hierarchy walk - https://bugs.webkit.org/show_bug.cgi?id=40171 - - Add some DOM node unit testing. - - * tests/testdomnode.c: Added. - (finish_loading): - (dom_node_fixture_setup): - (dom_node_fixture_teardown): - (test_dom_node_hierarchy_navigation): - (main): - -2010-06-08 Antonio Gomes <tonikitoo@webkit.org> - - Reviewed by Ojan Vafai and Darin Adler. - - Refactor platform dependent editing behavior code out of Settings - https://bugs.webkit.org/show_bug.cgi?id=39854 - - EditingBehavior enum was renamed to EditingBehaviorTypes and moved out from Settings.h to - EditingBehaviorTypes.h . Call sites in WebKit/ adjusted accordingly. - - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2010-06-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Add inner-node property to WebKitHitTestResult - https://bugs.webkit.org/show_bug.cgi?id=40131 - - Add a 'inner-node' property to WebKitHitTestResult, carrying the - DOM node where the hit test happened. - - * tests/testhittestresult.c: - (load_status_cb): - * webkit/webkithittestresult.cpp: - (webkit_hit_test_result_get_property): - (webkit_hit_test_result_set_property): - (webkit_hit_test_result_class_init): - * webkit/webkitprivate.cpp: - (WebKit::kit): - -2010-06-07 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] gtk_widget_get_window should replace widget->window - https://bugs.webkit.org/show_bug.cgi?id=40180 - - Replace uses of widget->window with gtk_widget_get_window. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::invalidateContentsAndWindow): Replace widget->window uses. - (WebKit::ChromeClient::scroll): Ditto. - (WebKit::widgetScreenPosition): Ditto. - * WebCoreSupport/DragClientGtk.cpp: Move gtk_widget_get_window define to GtkVersioning.h. - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): Replace widget->window uses. - (webkit_web_view_button_press_event): Ditto. - -2010-06-04 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Drag gesture can take mouse grab indefinitely - https://bugs.webkit.org/show_bug.cgi?id=32840 - - Initiate drag events with the current GTK+ event instead of synthesizing - an event. Something about synthesized events is causing a drag freeze in - certain situations. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Start the drag with the current GTK+ event. - -2010-06-03 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r60632. - http://trac.webkit.org/changeset/60632 - https://bugs.webkit.org/show_bug.cgi?id=40143 - - This change broke the 64-bit bots. (Requested by mrobinson on - #webkit). - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::DragClient): - (WebKit::DragClient::startDrag): - * WebCoreSupport/DragClientGtk.h: - -2010-06-03 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Drag gesture can take mouse grab indefinitely - https://bugs.webkit.org/show_bug.cgi?id=32840 - - Start GTK+ drags with the previous mouse button down event instead of - synthesizing the event. The synthesized event was not completely valid - and froze some drags indefinitely. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::buttonPressEvent): Added. - (WebKit::DragClient::DragClient): - Connect to the 'button-press-event' signal of the WebView. - (WebKit::DragClient::startDrag): - Instead of synthesizing a button press event use the last real one. - * WebCoreSupport/DragClientGtk.h: - (WebKit::DragClient::setLastButtonPressEvent): Added. - -2010-06-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Memory Leak: The main resource of page is not free. - https://bugs.webkit.org/show_bug.cgi?id=39973 - - Fix refcount tracking of the main resource. Patch by Genhua Liu. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFinishLoading): - -2010-06-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix-up for previous leak fix, the identifier was not always duped. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_add_resource): - -2010-06-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Plug a small leak. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::assignIdentifierToInitialRequest): - -2010-06-01 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Double clicks cause three button press events - https://bugs.webkit.org/show_bug.cgi?id=38853 - - Handle click counting much like the Windows port. GTK+ only - counts triple-clicks natively, so use GTK+ double-click settings - to count clicks with even larger click counts. Also filter the - extra GDK_BUTTON_PRESS before GDK_{2,3}BUTTON_PRESS events using - gdk_event_peek(). - - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): Count clicks manually. Filter extra events. - -2010-05-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Missing links to documentation of general functions - https://bugs.webkit.org/show_bug.cgi?id=39964 - - Add global functions section, and move those functions that are - currently in WebKitWebView's source file to the bottom, along with - the description. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_dom_document): - (webkit_get_default_session): - -2010-05-31 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Text copied from a WebView cannot be pasted into gnome-terminal - https://bugs.webkit.org/show_bug.cgi?id=39827 - - Add a test to prevent regressions for this issue. - - * tests/testcopyandpaste.c: Added. - (test_info_new): - (test_info_destroy): - (copy_and_paste_fixture_setup): - (copy_and_paste_fixture_teardown): - (load_status_cb): - (map_event_cb): - (test_copy_and_paste): - (main): - -2010-05-27 Gustavo Noronha Silva <gns@gnome.org> - - Update documentation control files, and fix Since tags for 1.3.1. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebview.cpp: - -2010-05-27 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for 1.3.1 release. - - * NEWS: - -2010-05-27 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Dragging onto the desktop causes a critical GLib warning - https://bugs.webkit.org/show_bug.cgi?id=39718 - - Only increment the window reference count if it is not null during drag-end - signal processing. - - * webkit/webkitwebview.cpp: - (webkit_web_view_drag_end): Guard against null window values. - -2010-05-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Add support for DOM events in the GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=38844 - - Test DOMWindow signals. - - * tests/testdomdomwindow.c: Added. - (finish_loading): - (dom_domview_fixture_setup): - (dom_domview_fixture_teardown): - (loadedCallback): - (clickedCallback): - (map_event_cb): - (load_event_callback): - (test_dom_domview_signals): - (main): - -2010-05-24 Darin Adler <darin@apple.com> - - Reviewed by Eric Seidel. - - Move view-related functions from Frame to FrameView - https://bugs.webkit.org/show_bug.cgi?id=39366 - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_editable): Remove call to empty function - removeEditngStyleFromBodyElement. - (webkit_web_view_get_zoom_level): Call functions on FrameView. - (webkit_web_view_apply_zoom_level): Ditto. - -2010-05-22 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] webkit_web_view_drag_end should call EventHandler::dragSourceEndedAt - https://bugs.webkit.org/show_bug.cgi?id=39465 - - Properly call EventHandler::dragSourceEndedAt so that dragEnd events are processed in the DOM. - dragSourceEndedAt is responsible for calling the dragEnd DOM event as well as cleaning up assets - (such as the Clipboard) associated with the drag source. - - * webkit/webkitwebview.cpp: - (webkit_web_view_drag_end): Remember to call dragSourceEndedAt here. - -2010-05-22 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] WebKit/gtk/WebCoreSupport/DragClientGtk::startDrag should use the Clipboard::sourceOperation - https://bugs.webkit.org/show_bug.cgi?id=39459 - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): - Use Clipboard::sourceOperation instead of trying to figure out the GdkDragAction - manually. The DOM may have changed the appropriate list of actions anyhow. - -2010-05-21 Steve Block <steveblock@google.com> - - Reviewed by Jeremy Orlow. - - Add DeviceOrientation and DeviceOrientationClient - https://bugs.webkit.org/show_bug.cgi?id=39479 - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2010-05-19 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r59240. - http://trac.webkit.org/changeset/59240 - https://bugs.webkit.org/show_bug.cgi?id=39377 - - "Might cause crashes in GTK+ bots" (Requested by xan_ on - #webkit). - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::setInputMethodState): - (WebKit::EditorClient::respondToChangedSelection): - (WebKit::EditorClient::handleInputMethodKeydown): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (destroy_menu_cb): - (webkit_web_view_forward_context_menu_event): - (webkit_web_view_key_release_event): - (webkit_web_view_button_release_event): - (webkit_web_view_focus_in_event): - (webkit_web_view_focus_out_event): - (webkit_web_view_realize): - (webkit_web_view_set_scroll_adjustments): - (webkit_web_view_dispose): - (webkit_web_view_finalize): - (webViewGetDPI): - (webkit_web_view_screen_changed): - (webkit_web_view_query_tooltip): - (webkit_web_view_get_im_context): - (webkit_web_view_update_settings): - (webkit_web_view_init): - (webkit_web_view_set_settings): - (webkit_web_view_get_settings): - (webkit_web_view_get_inspector): - (webkit_web_view_set_window_features): - (webkit_web_view_get_window_features): - (webkit_web_view_get_back_forward_list): - (webkit_web_view_zoom_in): - (webkit_web_view_zoom_out): - (webkit_web_view_get_encoding): - (webkit_web_view_get_custom_encoding): - (webkit_web_view_add_resource): - (webkit_web_view_get_resource): - (webkit_web_view_get_main_resource): - (webkit_web_view_clear_resources): - (webkit_web_view_get_subresources): - (webkit_web_view_set_tooltip_text): - (webkit_web_view_get_icon_uri): - -2010-05-18 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] DragClientGtk::startDrag leaks GdkEvents - https://bugs.webkit.org/show_bug.cgi?id=39322 - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::startDrag): Properly clean up allocated GdkEvent. - -2010-05-12 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Use GOwnPtr for code that needs it - https://bugs.webkit.org/show_bug.cgi?id=21594 - - Convert many uses of raw pointers to GRefPtr and GOwnPtr in WebKitWebView. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::setInputMethodState): - (WebKit::EditorClient::respondToChangedSelection): - (WebKit::EditorClient::handleInputMethodKeydown): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (destroy_menu_cb): - (webkit_web_view_forward_context_menu_event): - (webkit_web_view_key_release_event): - (webkit_web_view_button_release_event): - (webkit_web_view_focus_in_event): - (webkit_web_view_focus_out_event): - (webkit_web_view_realize): - (webkit_web_view_set_scroll_adjustments): - (webkit_web_view_dispose): - (webkit_web_view_finalize): - (webViewGetDPI): - (webkit_web_view_screen_changed): - (webkit_web_view_query_tooltip): - (webkit_web_view_get_im_context): - (webkit_web_view_update_settings): - (webkit_web_view_init): - (webkit_web_view_set_settings): - (webkit_web_view_get_settings): - (webkit_web_view_get_inspector): - (webkit_web_view_set_window_features): - (webkit_web_view_get_window_features): - (webkit_web_view_get_back_forward_list): - (webkit_web_view_zoom_in): - (webkit_web_view_zoom_out): - (webkit_web_view_get_encoding): - (webkit_web_view_get_custom_encoding): - (webkit_web_view_add_resource): - (webkit_web_view_get_resource): - (webkit_web_view_get_main_resource): - (webkit_web_view_clear_resources): - (webkit_web_view_get_subresources): - (webkit_web_view_set_tooltip_text): - (webkit_web_view_get_icon_uri): - -2010-05-11 Martin Robinson <mrobinson@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Doesn't support gtk-key-themes - https://bugs.webkit.org/show_bug.cgi?id=28257 - - Add support for GTK+ key themes. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::backspaceCallback): Added. - (WebKit::cutClipboardCallback): Added. - (WebKit::copyClipboardCallback): Added. - (WebKit::pasteClipboardCallback): Added. - (WebKit::selectAllCallback): Added. - (WebKit::deleteFromCursorCallback): Added. - (WebKit::moveCursorCallback): Added. - (WebKit::EditorClient::generateEditorCommands): Added. - (WebKit::EditorClient::executePendingEditorCommands): Added. - (WebKit::EditorClient::handleKeyboardEvent): Derive editor commands both from internal text widget and a list of fallbacks. - (WebKit::EditorClient::EditorClient): Add m_nativeWidget initializer. - * WebCoreSupport/EditorClientGtk.h: - (WebKit::EditorClient::addPendingEditorCommand): Add m_nativeWidget member. - -2010-05-06 Martin Robinson <mrobinson@webkit.org> - - Reviewed by Xan Lopez. - - Remove use of GOwnPtr to hold GObject types. - https://bugs.webkit.org/show_bug.cgi?id=38669 - - Change use of GOwnPtr to GRefPtr to types which are natively reference-counted. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): Change GOwnPtr to GRefPtr in some places. - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): Ditto. - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_new_with_core_request): Ditto. - * webkit/webkitnetworkresponse.cpp: - (webkit_network_response_new_with_core_response): Ditto. - * webkit/webkitprivate.cpp: Remove GOwnPtr reference counting template specialization. - * webkit/webkitprivate.h: Ditto. - -2010-05-06 Martin Robinson <mrobinson@webkit.org> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Enable DOM clipboard and drag-and-drop access - https://bugs.webkit.org/show_bug.cgi?id=30623 - - Convert dragging portion of drag-and-drop to use DataObjectGtk. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::willPerformDragDestinationAction): Remove the notImplemented. It is implemented, it's just a no-op. - (WebKit::DragClient::startDrag): Start the drag context via the ClipboardGtk and PasteboardHelper now. - * WebCoreSupport/DragClientGtk.h: Small style fix. - * webkit/webkitprivate.h: Add a HashMap of contexts and DataObjects here to to represent all current drag operations. - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): Clear all data objects during disposal. - (webkit_web_view_drag_end): When a drag is over, just remove it from the map. - (webkit_web_view_drag_data_get): To get the drag data, just grab it from the DataObject. - -2010-05-03 Abhishek Arya <inferno@chromium.org> - - Reviewed by Adam Barth. - - Add support for controlling clipboard access from javascript. - Clipboard access from javascript is disabled by default. - https://bugs.webkit.org/show_bug.cgi?id=27751 - - * 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): - -2010-05-03 Jens Alfke <snej@chromium.org> - - Reviewed by Darin Fisher. - - [chromium] Add "willSendSubmitEvent" hook to WebFrameClient and FrameLoaderClient - https://bugs.webkit.org/show_bug.cgi?id=38397 - - No tests (functionality is exposed only through native WebKit API.) - - * WebCoreSupport/FrameLoaderClientGtk.h: - (WebKit::FrameLoaderClient::dispatchWillSendSubmitEvent): - -2010-05-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Oliver Hunt. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Test webkit_dom_document_get_links. - - * tests/testdomdocument.c: - (test_dom_document_get_links): - (main): - -2010-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Test webkit_dom_document_get_element_by_id; - - * tests/testdomdocument.c: - (test_dom_document_get_element_by_id): - (main): - -2010-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Test webkit_dom_document_get_elements_by_class_name. - - * tests/testdomdocument.c: - (test_dom_document_get_elements_by_class_name): - (main): - -2010-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Test webkit_dom_document_get_elements_by_tag_name. - - * tests/testdomdocument.c: - (test_dom_document_get_elements_by_tag_name): - (main): - -2010-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Move WebKitDOMDocument unit tests to their own file. - - * tests/testdomdocument.c: Added. - (finish_loading): - (dom_document_fixture_setup): - (dom_document_fixture_teardown): - (test_dom_document_title): - (main): - * tests/testwebview.c: - -2010-04-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Include <webkit/webkitdom.h> in the main webkit.h header. - - * webkit/webkit.h: - -2010-04-25 Sam Weinig <sam@webkit.org> - - Reviewed by Maciej Stachowiak. - - Fix for https://bugs.webkit.org/show_bug.cgi?id=38097 - Disentangle initializing the main thread from initializing threading - - * webkit/webkitprivate.cpp: - (webkit_init): Add call to initializeMainThread. - -2010-04-22 Dave Moore <davemoore@chromium.org> - - Reviewed by Dimitri Glazkov. - - Added notification when the favicons for a page are changed - from a script. - The Document object will notify the frame loader, which will - notify the client. Implementations of FrameLoaderClient will - have to add one method; dispatchDidChangeIcons(). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidChangeIcons): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-04-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] GObject DOM bindings - https://bugs.webkit.org/show_bug.cgi?id=33590 - - Add webkit_web_view_get_document to retrieve the WebKitDOMDocument - from a WebKitWebView, and a very simple test for it. - - * tests/testwebview.c: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_document): - * webkit/webkitwebview.h: - -2010-04-22 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Evaluate and create tests for all the AtkRole's implemented by - WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=34449 - - Expand testatkroles to test ATK_ROLE_COMBO_BOX. - - * tests/testatkroles.c: - (test_webkit_atk_get_role_combobox): - (main): - -2010-04-22 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Evaluate and create tests for all the AtkRole's implemented by - WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=34449 - - Expand testatkroles to test ATK_ROLE_SEPARATOR. - - * tests/testatkroles.c: - (test_webkit_atk_get_role_separator): - (main): - -2010-04-22 Adam Barth <abarth@webkit.org> - - Unreviewed, rolling out r58069. - http://trac.webkit.org/changeset/58069 - https://bugs.webkit.org/show_bug.cgi?id=27751 - - Broke compile on Windows. - - * 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): - -2010-04-22 Abhishek Arya <inferno@chromium.org> - - Reviewed by Adam Barth. - - Add support for controlling clipboard access from javascript. - Clipboard access from javascript is disabled by default. - https://bugs.webkit.org/show_bug.cgi?id=27751 - - * 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): - -2010-04-21 Jakub Wieczorek <jwieczorek@webkit.org> - - Reviewed by Darin Adler. - - List item markers are not always updated after changes in the DOM. - https://bugs.webkit.org/show_bug.cgi?id=37060 - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_marker_text_for_list_item): Add a private API to get the marker text for a list item. - -2010-04-21 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Evaluate and create tests for all the AtkRole's implemented by - WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=34449 - - Expand testatkroles to test ATK_ROLE_FORM. - - * tests/testatkroles.c: - (test_webkit_atk_get_role_form): - (main): - -2010-04-20 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Factor DocumentWriter out of FrameLoader - https://bugs.webkit.org/show_bug.cgi?id=37175 - - Update these callsites because the method moved to DocumentWriter. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::finishedLoading): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2010-04-20 Kent Tamura <tkent@chromium.org> - - Reviewed by Darin Adler. - - Change a parameter type of chooseIconForFiles() - https://bugs.webkit.org/show_bug.cgi?id=37504 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::chooseIconForFiles): - * WebCoreSupport/ChromeClientGtk.h: - -2010-04-20 Martin Robinson <mrobinson@webkit.org> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Enable DOM clipboard and drag-and-drop access - https://bugs.webkit.org/show_bug.cgi?id=30623 - - Move most of the PasteboardHelper logic into WebCore. This helps - prepare for WebKit2 and leads to a clearer separation of concerns - between the WebKit and WebCore layers. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::collapseSelection): Converted this logic to a GClosure callback. - (WebKit::EditorClient::respondToChangedSelection): Collapse selection via GClosure now. - * WebCoreSupport/PasteboardHelperGtk.cpp: Moved most of the code to WebCore. - (WebKit::PasteboardHelperGtk::PasteboardHelperGtk): This constructor just initializes the target list. - (WebKit::PasteboardHelperGtk::~PasteboardHelperGtk): The destructor no longer needs to free the target list. - (WebKit::PasteboardHelperGtk::getIdForTargetType): Added, virtual method for getting target ids. - (WebKit::PasteboardHelperGtk::usePrimarySelectionClipboard): Added, virtual method for querying current clipboard. - * WebCoreSupport/PasteboardHelperGtk.h: Update method list to reflect reduced functionality. - -2010-04-19 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Evaluate and create tests for all the AtkRole's implemented by - WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=34449 - - Expand testatkroles to test ATK form roles. - - * tests/testatkroles.c: - (test_webkit_atk_get_role_check_box): - (test_webkit_atk_get_role_entry): - (test_webkit_atk_get_role_label): - (test_webkit_atk_get_role_listbox): - (test_webkit_atk_get_role_password_text): - (test_webkit_atk_get_role_push_button): - (test_webkit_atk_get_role_radio_button): - (main): - -2010-04-19 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Evaluate and create tests for all the AtkRole's implemented by - WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=34449 - - Add testatkroles to test ATK non form roles. - - * tests/testatkroles.c: Added. - (finish_loading): - (atk_roles_fixture_setup): - (atk_roles_fixture_teardown): - (get_child_and_test_role): - (test_webkit_atk_get_role_document_frame): - (test_webkit_atk_get_role_heading): - (test_webkit_atk_get_role_image): - (test_webkit_atk_get_role_link): - (test_webkit_atk_get_role_list_and_item): - (test_webkit_atk_get_role_paragraph): - (test_webkit_atk_get_role_section): - (test_webkit_atk_get_role_table): - (main): - -2010-04-17 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - We have to initialize the timer attribute after destroying it, not - doing it was causing crashes in some situations. - - * webkit/webkitdownload.cpp: - (webkit_download_finalize): - -2010-04-13 Timothy Hatcher <timothy@apple.com> - - Rename SecurityOrigin::whiteListAccessFromOrigin to addOriginAccessWhitelistEntry. - And SecurityOrigin::resetOriginAccessWhiteLists to resetOriginAccessWhitelists. - - SecurityOrigin needs a way to remove individual OriginAccessEntries - https://bugs.webkit.org/show_bug.cgi?id=37449 - - Reviewed by Dave Hyatt. - - * webkit/webkitprivate.cpp: - (webkit_white_list_access_from_origin): - (webkit_reset_origin_access_white_lists): - -2010-04-11 Sheriff Bot <webkit.review.bot@gmail.com> - - Unreviewed, rolling out r57468. - http://trac.webkit.org/changeset/57468 - https://bugs.webkit.org/show_bug.cgi?id=37433 - - Broke the world... Must have applied the patch wrong - (Requested by abarth on #webkit). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::finishedLoading): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2010-04-11 Adam Barth <abarth@webkit.org> - - Reviewed by Eric Seidel. - - Factor DocumentWriter out of FrameLoader - https://bugs.webkit.org/show_bug.cgi?id=37175 - - Update these callsites because the method moved to DocumentWriter. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::finishedLoading): - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - -2010-04-07 Andrey Kosyakov <caseq@chromium.org> - - Reviewed by Yury Semikhatsky. - - Removed redundant FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest() - https://bugs.webkit.org/show_bug.cgi?id=36949 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-04-01 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - [GTK] webkit_get_default_session() should make sure webkit_init() is called - https://bugs.webkit.org/show_bug.cgi?id=36754 - - Make sure global functions that do not require a WebKitWebView to - be created call webkit_init() before doing their job. Also add an - API test to check for that. - - * tests/testglobals.c: Added. - (test_globals_default_session): - (main): - * webkit/webkitwebview.cpp: - (webkit_get_default_session): - (webkit_set_cache_model): - (webkit_get_cache_model): - -2010-03-31 Marcus Bulach <bulach@chromium.org> - - Reviewed by Jeremy Orlow. - - Adds Geolocation param for cancelGeolocationPermissionRequestForFrame. - https://bugs.webkit.org/show_bug.cgi?id=35031 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::cancelGeolocationPermissionRequestForFrame): - * WebCoreSupport/ChromeClientGtk.h: - -2010-03-30 Gavin Barraclough <barraclough@apple.com> - - Rubber stamped by Sam Weinig. - - https://bugs.webkit.org/show_bug.cgi?id=36866 - Move CString to WTF - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/EditorClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/InspectorClientGtk.cpp: - * gdom/ConvertToGCharPrivate.h: - * webkit/webkitdownload.cpp: - * webkit/webkithittestresult.cpp: - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitprivate.h: - * webkit/webkitsecurityorigin.cpp: - * webkit/webkitwebdatabase.cpp: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_finalize): - (webkit_web_history_item_get_target): - * webkit/webkitwebresource.cpp: - * webkit/webkitwebsettings.cpp: - * webkit/webkitwebview.cpp: - -2010-03-28 Alexey Proskuryakov <ap@apple.com> - - Build fix. Include WindowsKeyboardCodes.h instead of KeyboardCodes.h. - - * WebCoreSupport/EditorClientGtk.cpp: - -2010-03-27 Sergio Villar Senin <svillar@igalia.com> - - Reviewed by Eric Seidel. - - FrameLoader emits onload-event when handling - dispatchDidHandleOnloadEvents - - [GTK] Improve reporting of frame loader callbacks in DRT - https://bugs.webkit.org/show_bug.cgi?id=36454 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidHandleOnloadEvents): - implemented, now it emits onload-event signal - * webkit/webkitwebview.cpp: added onload-event signal - -2010-03-25 Sergio Villar SenÃn <svillar@igalia.com> - - Reviewed by Xan Lopez. - - Added new API webkit_web_back_forward_list_clear. This function - clears the back forward list - - [GTK] http/history tests are failing - https://bugs.webkit.org/show_bug.cgi?id=36173 - - * tests/testwebbackforwardlist.c: - (test_webkit_web_back_forward_list_clear): - (main): added new unit test for the new API - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_clear): - * webkit/webkitwebbackforwardlist.h: new function that clears the - back forward list - -2010-03-24 Kent Tamura <tkent@chromium.org> - - Reviewed by Darin Adler. - - Make Icon::createIconForFiles() optional. - https://bugs.webkit.org/show_bug.cgi?id=35072 - - - Rename iconForFiles() to chooseIconForFiles(). - - Call Icon::createIconForFiles() from chooseIconForFiles(). - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2010-03-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - [GTK] Does not build with latest GTK+ development release - https://bugs.webkit.org/show_bug.cgi?id=36398 - - Fix building with newest GTK+ versions. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowRect): - (WebKit::ChromeClient::setWindowRect): - (WebKit::ChromeClient::unfocus): - (WebKit::ChromeClient::canTakeFocus): - (WebKit::ChromeClient::contentsSizeChanged): - * webkit/webkitprivate.cpp: - (currentToplevelCallback): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_print_full): - (webkit_web_frame_print): - * webkit/webkitwebview.cpp: - (webkit_web_view_grab_focus): - (webkit_web_view_focus_in_event): - (webkit_web_view_script_dialog): - -2010-03-18 Philip Chimento <philip.chimento@gmail.com> - - Reviewed by Oliver Hunt. - - Setting the GObject WebKitWebView property 'window-features' to NULL - causes a crash. - https://bugs.webkit.org/show_bug.cgi?id=36144 - - * tests/testwebview.c: Add unit test for this bug. - * webkit/webkitwebview.cpp: Don't allow the 'window-features' property - to be set to NULL. - * webkit/webkitwebwindowfeatures.cpp: - (webkit_web_window_features_equal): Don't examine the members of either - web_window_features argument if either is NULL, just return that they - are not equal. Additionally, if they are the same object, return that - they are equal. - -2010-03-16 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for 1.1.90 release. - - * NEWS: - -2010-03-16 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Fix one too many empty lines in documentation of - window-obejct-cleared signal, which caused the documentation to be - rendered funny. Thanks to Martin Robinson for noticing. - - * webkit/webkitwebview.cpp: - -2010-03-16 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Add missing symbol to GeoLocation documentation - section. - - * docs/webkitgtk-sections.txt: - -2010-03-16 Martin Robinson <mrobinson@webkit.org> - - Reviewed by Xan Lopez. - - can't input korean into lower all input box except adress input box in webkit gtk launcher - https://bugs.webkit.org/show_bug.cgi?id=32290 - - Make the GTK+ EditorClient properly handle different types of input module - behavior such as commit and preedit signals that happen outside of key event - filtering and multiple times in a row. Filter keyup events as well as keydown - events and call gtk_im_context_focus_{in/out} when the WebView focus changes. - - Added tests for this behavior to the GTK+ unit tests. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): Handle this signal properly when it happens outside of - key event filtering. - (WebKit::imContextPreeditChanged): Immediately update the preedit state and do not reject - empty preedits, so that cancellation works properly. - (WebKit::EditorClient::updatePendingComposition): Add this method, which handles the - situation where a commit signal happens when there is still a pending commit. - (WebKit::EditorClient::shouldBeginEditing): Clear pending composition state before editing - starts. - (WebKit::EditorClient::shouldEndEditing): Clear pending composition state before editing ends. - (WebKit::EditorClient::handleKeyboardEvent): No longer special case preedits which happen during - key event filtering. When confirming a pending composition use insertText instead of confirmComposition. - (WebKit::EditorClient::handleInputMethodKeydown): - * WebCoreSupport/EditorClientGtk.h: Make pendingComposition a member, so that multiple WebViews - do not share state. - (WebKit::EditorClient::webView): Added. - (WebKit::EditorClient::treatContextCommitAsKeyEvent): Added. - (WebKit::EditorClient::clearPendingComposition): Added. - * tests/testkeyevents.c: - (test_keypress_events_load_status_cb): - (map_event_cb): - (setup_keyevent_test): - (test_keypress_events): - (element_text_equal_to): - (test_ime_load_status_cb): - (test_ime): - (main): - * webkit/webkitwebview.cpp: - (webkit_web_view_key_release_event): - (webkit_web_view_focus_in_event): - -2010-03-16 Yury Semikhatsky <yurys@chromium.org> - - Reviewed by Pavel Feldman. - - Introduce InspectorFrontendClient that provides InspectorFrontend with an interface to the embedder. InspectorClient now serves as a delegate for InspectorController and does not contain methods for managing inspector frontend window. That allows to create remote InspectorFrontendHost. - - Introduce InspectorFrontendClient that would provide InspectorFrontend with an interface to the embedder - https://bugs.webkit.org/show_bug.cgi?id=35036 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorClient::InspectorClient): - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::openInspectorFrontend): - (WebKit::InspectorClient::highlight): - (WebKit::InspectorClient::hideHighlight): - (WebKit::InspectorClient::populateSetting): - (WebKit::InspectorClient::storeSetting): - (WebKit::InspectorFrontendClient::InspectorFrontendClient): - (WebKit::InspectorFrontendClient::~InspectorFrontendClient): - (WebKit::InspectorFrontendClient::destroyInspectorWindow): - (WebKit::InspectorFrontendClient::localizedStringsURL): - (WebKit::InspectorFrontendClient::hiddenPanels): - (WebKit::InspectorFrontendClient::bringToFront): - (WebKit::InspectorFrontendClient::closeWindow): - (WebKit::InspectorFrontendClient::attachWindow): - (WebKit::InspectorFrontendClient::detachWindow): - (WebKit::InspectorFrontendClient::setAttachedWindowHeight): - (WebKit::InspectorFrontendClient::inspectedURLChanged): - * WebCoreSupport/InspectorClientGtk.h: - -2010-03-15 Joanmarie Diggs <joanmarie.diggs@gmail.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=35502 - [Gtk] Objects of ATK_ROLE_TABLE should not implement AtkText - - New test to be sure we do not accidentally implement AtkText for tables - - * tests/testatk.c - (testWebkitAtkGetTextInTable): - (main): - -2010-03-09 Philippe Normand <pnormand@igalia.com> - - Reviewed by Holger Freyther. - - [GTK] GTK_WIDGET_IS_SENSITIVE is deprecated in GTK+ 2.20 - https://bugs.webkit.org/show_bug.cgi?id=35909 - - * webkit/webkitwebview.cpp: GTK_WIDGET_IS_SENSITIVE has been - deprecated in gtk 2.20. Use gtk_widget_is_sensitive when available. - -2010-03-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Kenneth Rohde Christiansen. - - Misc documentation fixes. Fixes (almost) all warnings emitted by - the documentation build process. Only the broken references to JSC - objects remain. - - * webkit/webkitsecurityorigin.cpp: - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebdatasource.cpp: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_class_init): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_class_init): - -2010-03-11 Anders Carlsson <andersca@apple.com> - - Reviewed by David Hyatt. - - Remove invalidateContents, it isn't used and it never makes sense to only invalidate the contents. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2010-03-09 Philippe Normand <pnormand@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] testkeyevents doesn't stop if input event injection fails - https://bugs.webkit.org/show_bug.cgi?id=35922 - - * tests/testkeyevents.c: - (load_status_cb): Added a safeguard to exit from the test if the - input event injection failed. - -2010-03-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Documentation control files update for 1.1.23. - - * docs/webkitgtk-docs.sgml: - -2010-03-08 Csaba Osztrogonác <ossy@webkit.org> - - [GTK] Unreviewed buildfix after r55688. - - * webkit/webkitdownload.cpp: - (webkit_download_start): - -2010-03-02 Adam Treat <atreat@rim.com> - - Reviewed by Dave Hyatt. - - Adapt the gtk port to the refactoring of repaint methods. - - https://bugs.webkit.org/show_bug.cgi?id=34214 - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - -2010-03-08 Eric Uhrhane <ericu@chromium.org> - - Reviewed by David Levin. - - Remove the now-redundant Settings fields for the Database - https://bugs.webkit.org/show_bug.cgi?id=35763 - - No new tests; this code isn't called. - - * webkit/webkitwebview.cpp: Remove the calls into Settings. - (DNDContentsRequest::webkit_web_view_update_settings): - (DNDContentsRequest::webkit_web_view_settings_notify): - -2010-03-06 Arno Renevier <arno@renevier.net> - - Reviewed by Eric Seidel. - - [Gtk] GEOLOCATION_POLICY_DECISION_CANCELLED unused - https://bugs.webkit.org/show_bug.cgi?id=35803 - - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_class_init): - -2010-03-03 Antonio Gomes <tonikitoo@webkit.org> - - Reviewed by Gustavo Noronha. - Patch by Antonio Gomes <tonikitoo@webkit.org> - - [Gtk] Add 'enable-spatial-navigation' setting for toggle Spatial Navigation on/off - https://bugs.webkit.org/show_bug.cgi?id=35701 - - * 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: - (DNDContentsRequest::webkit_web_view_update_settings): - (DNDContentsRequest::webkit_web_view_settings_notify): - -2010-03-03 Fridrich Strba <fridrich.strba@bluewin.ch> - - Reviewed by Xan Lopez. - - Miscellaneous little fixes for the windows build of webkit-gtk - https://bugs.webkit.org/show_bug.cgi?id=35640 - - * webkit/webkitdownload.cpp: Windows headers define ERROR - which breaks the build. Undef ERROR if it is defined. - -2010-03-03 Philippe Normand <pnormand@igalia.com> - - Unreviewed, build fix after r55452. - - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_settings_notify): added missing braces. - -2010-03-02 Eric Uhrhane <ericu@chromium.org> - - Reviewed by David Levin. - - Move database enable bit fully out of settings - This is stage one of a three-stage commit [webkit, then chromium, then - webkit again]. In this change I'm adding calls to - Database::setIsAvailable inside Settings::setDatabaseEnabled and - anywhere else that called it, and switching webkit fully over to using - that flag [added in a previous checkin]. Phase two will remove - Chromium's use of Settings for the Database, and phase three will remove - the Setting for the Database enable entirely, leaving only - Database::isAvailable/setIsAvailable. - - No new tests; tested by existing storage tests. - - https://bugs.webkit.org/show_bug.cgi?id=35310 - - * webkit/webkitwebview.cpp: Add calls to Database::setIsAvailable - (DNDContentsRequest::webkit_web_view_update_settings): - (DNDContentsRequest::webkit_web_view_settings_notify): - -2010-03-02 Arno Renevier <arno@renevier.net> - - Reviewed by Gustavo Noronha Silva. - - [Gtk] implements ChromeClient::requestGeolocationPermissionForFrame - https://bugs.webkit.org/show_bug.cgi?id=35210 - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ChromeClientGtk.h: - * docs/webkitgtk-sections.txt: - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitgeolocationpolicydecision.cpp: Added. - (webkit_geolocation_policy_decision_class_init): - (webkit_geolocation_policy_decision_init): - (webkit_geolocation_policy_decision_new): - (webkit_geolocation_policy_allow): - (webkit_geolocation_policy_deny): - * webkit/webkitgeolocationpolicydecision.h: Added. - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_class_init): - * webkitmarshal.list: - -2010-03-01 José Millán Soto <jmillan@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Right click does not activate text entry - https://bugs.webkit.org/show_bug.cgi?id=29177 - - Makes the frame handle the mouse click event before sending the - context menu event. - - * webkit/webkitwebview.cpp: - (PopupMenuPositionFunc): - Function created to make the popup menu appear in the correct position, especially - when invoked from the keyboard. - (webkit_web_view_forward_context_menu_event): - Mouse click event is sent to frame before creating context menu, - PopupMenuPositionFunc used to determine the position where the menu should appear. - (webkit_web_view_popup_menu_handler): - Improved focused node position detection. Event button set to right button. - -2010-03-01 Jakob Petsovits <jpetsovits@rim.com> - - Reviewed by Adam Barth. - - Adapt to the new ZoomMode enum. - https://bugs.webkit.org/show_bug.cgi?id=35347 - - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_apply_zoom_level): - -2010-03-01 Kalle Vahlman <zuh@iki.fi> - - Reviewed by Gustavo Noronha Silva. - - Queue a resize when either of the content dimensions change - https://bugs.webkit.org/show_bug.cgi?id=35489 - - The check for size changes only queued a resize if both of the content - dimensions change, leaving the widget size out-of-sync if eg. only the - width changes. - - * WebCoreSupport/ChromeClientGtk.cpp: - -2009-12-04 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Needs proper reporting of frame loader callbacks, in DRT - https://bugs.webkit.org/show_bug.cgi?id=32170 - - Add new signal to report when the document load is finished for a - frame. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFinishDocumentLoad): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2010-02-26 Antonio Gomes <tonikitoo@webkit.org> - - Complementary commit of r55300. Missing "notify::" to signal name. - - * tests/testwebview.c: - (test_webkit_web_view_grab_focus): - -2010-02-26 Antonio Gomes <tonikitoo@webkit.org> - - Reviewed by Xan Lopez. - Patch by Antonio Gomes <tonikitoo@webkit.org> - - [GTK] Make webkit_web_view_grab_focus to active focus controller. - https://bugs.webkit.org/show_bug.cgi?id=35402 - - When programatically setting focus to an element in an inner document, - calling "hasFocus()" from this document returns FALSE, because - document's FocusController is not activated. It does not happen - if |document| is the main document. - - Making webkit_web_view_grab_focus to actually activate the FocusController, - fixes the issue. - - * tests/testwebview.c: - (server_callback): - (test_webkit_web_view_grab_focus): - * webkit/webkitwebview.cpp: - (webkit_web_view_grab_focus): - -2010-02-26 Alejandro G. Castro <alex@igalia.com> - - Unreviewed. - - Reverted last patch (r55295), it causes problems with the frames. - - * WebCoreSupport/ChromeClientGtk.cpp: - -2010-02-19 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Some region checks in scroll are not required - https://bugs.webkit.org/show_bug.cgi?id=35142 - - Removes some of the operations checking the moved and invalidated - regions when scrolling, it is done already in - gdk_window_move_region. - - * WebCoreSupport/ChromeClientGtk.cpp: - -2010-02-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [Gtk] crashed when destroying - https://bugs.webkit.org/show_bug.cgi?id=31271 - - NULL-check the page before relaying the focus out event, since - this might happen when destroying the widget without destroying - its parent, and we currently crash. - - * tests/testwebview.c: - (delayed_destroy): - (test_webkit_web_view_destroy): - (main): - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): - -2010-02-24 Krzysztof Kotlenga <pocek@users.sf.net> - - Reviewed by Gustavo Noronha Silva. - - [Gtk] Creation of a WebkitWebView widget is very slow - https://bugs.webkit.org/show_bug.cgi?id=30032 - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::ignoreWordInSpellDocument): Change 'langs' to 'dicts' - to reflect the fact that the list just holds Enchant dictionaries now. - (WebKit::EditorClient::learnWord): Ditto. - (WebKit::EditorClient::checkSpellingOfString): Ditto. - (WebKit::EditorClient::getGuessesForWord): Ditto. - * webkit/webkitprivate.h: Remove the now unused SpellLanguage struct. - * webkit/webkitwebsettings.cpp: Change function call to reflect new - webkit_web_settings_get_enchant_dicts name. - (get_enchant_broker): Add this method which returns the enchant broker singleton. - (free_spell_checking_language): The list contents have changed, so change - the way each element is freed. - (webkit_web_settings_finalize): Change to reflect 'spell_checking_languages_list' - to 'enchant_dicts' member name change. - (webkit_web_settings_set_property): Use the broker singleton here instead of making - a new one for each language. The Enchant dictionary is now the list payload. - (webkit_web_settings_copy): More name-change updates. - (webkit_web_settings_get_enchant_dicts): Ditto. - -2010-02-23 Leandro Pereira <leandro@profusion.mobi> - - Reviewed by Gustavo Noronha Silva. - - Fixes references to GOwnPtr and GRefPtr so the GTK+ port builds - again. - http://webkit.org/b/35084 - - * WebKit/gtk/webkit/webkitwebview.cpp: - -2010-02-23 Shinichiro Hamaji <hamaji@chromium.org> - - Reviewed by Eric Seidel. - - [Gtk] Implement layoutTestController.numberOfPages - https://bugs.webkit.org/show_bug.cgi?id=35228 - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_number_of_pages): - -2010-02-23 José Millán Soto <jmillan@igalia.com> - - Reviewed by Xan Lopez. - - [Gtk] Server message not shown on http authentication - https://bugs.webkit.org/show_bug.cgi?id=34219 - - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - Server message is displayed, messageLabel and message variables were - renamed to avoid confusion. - -2010-02-23 Steve Block <steveblock@google.com> - - Reviewed by Darin Adler. - - Adds ChromeClient::cancelGeolocationPermissionRequestForFrame - https://bugs.webkit.org/show_bug.cgi?id=34962 - - This method is required so that a Geolocation object can cancel an - asynchronous permission request. This allows the chrome client to cancel - any UI it is showing for the permission request. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::cancelGeolocationPermissionRequestForFrame): - -2010-02-23 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Do not do unnecessary work during size_allocate. - - FrameView::resize will already queue a layout, so there's no need - to force one ourselves. On top of that, the layout function - already adjusts the view size when needed, so there's no need to - do that manually either. No change in the layout tests or unit - tests after this. - - * webkit/webkitwebview.cpp: - (webkit_web_view_size_allocate): - -2010-02-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for release. - - * NEWS: - -2010-02-22 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [Soup] loses information related to message flags when converting from/to Resource{Request,Response} - https://bugs.webkit.org/show_bug.cgi?id=35093 - - Update the flags that are stored in the request, when the response - is received. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveResponse): - -2010-02-20 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed. Trivial fix - unnecessary variable got added by - mistake. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveResponse): - -2010-02-18 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] WebKitDownload documentation is incomplete - https://bugs.webkit.org/show_bug.cgi?id=35018 - - Concretely the error signal was undocumented. Also two relevant enums - were not included. - - * docs/webkitgtk-sections.txt: - * docs/webkitgtk.types: - * webkit/webkitdownload.cpp: - (webkit_download_class_init): - -2010-02-17 Dmitry Titov <dimich@chromium.org> - - Reviewed by David Levin, Darin Fisher, Simon Hausmann. - - When a live iframe element is moved between pages, it still depends on the old page. - https://bugs.webkit.org/show_bug.cgi?id=34382 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didTransferChildFrameToNewDocument): - Added empty implementation of a new virtual method. - - * WebCoreSupport/FrameLoaderClientGtk.h: - -2010-02-17 Kent Tamura <tkent@chromium.org> - - Reviewed by Eric Seidel. - - Introduces new Icon loading interface in order to support - asynchronous loading. - https://bugs.webkit.org/show_bug.cgi?id=32054 - - Add an empty implementation of ChromeClient::iconForFiles(). - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::iconForFiles): - * WebCoreSupport/ChromeClientGtk.h: - -2010-02-17 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Rename 'enable-java' setting to 'enable-java-applet', since it - only controls whether <applet> is supported or not instead of - whether all Java content is supported or not. - - * 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: - (DNDContentsRequest::webkit_web_view_update_settings): - (DNDContentsRequest::webkit_web_view_settings_notify): - -2010-02-17 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [Linux] Webkit incompatible with Java plugins - https://bugs.webkit.org/show_bug.cgi?id=24912 - - Implement FrameLoaderClient::createJavaAppletWidget. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createJavaAppletWidget): - -2010-02-17 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [Linux] Webkit incompatible with Java plugins - https://bugs.webkit.org/show_bug.cgi?id=24912 - - Add a WebKitWebSetting to enable/disable the Java plugin support. - - * 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): - -2010-02-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Test that data URIs that cause downloads to be started do not crash. - - * tests/testdownload.c: - (mime_type_policy_decision_requested_cb): - (idle_quit_loop_cb): - (test_webkit_download_data): - (main): - -2010-02-17 Philippe Normand <pnormand@igalia.com> - - Reviewed by Xan Lopez. - - Missing property warning after r54873 - https://bugs.webkit.org/show_bug.cgi?id=35023 - - Add a new WebKitWebSettings setting, 'enable-file-access-from-file-uris', set to - FALSE by default, that when enabled will assign each file:// URI - their own security domain. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - (webkit_web_settings_copy): - -2010-02-16 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Check if the handle has a SoupMessage before trying to use - it. This will be the case in non-HTTP(S) URLs. - - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - -2010-02-16 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Add a new WebKitWebSettings setting, 'auto-resize-window', set to - FALSE by default, that when enabled will apply any resizes or - moves done by a page through various DOM methods (moveTo, - resizeTo, moveBy, resizeBy). - - * WebCoreSupport/ChromeClientGtk.cpp: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - (webkit_web_settings_copy): - -2010-02-15 Emilio Pozuelo Monfort <pochu27@gmail.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Fails to build on GNU/Hurd because of PATH_MAX usage - https://bugs.webkit.org/show_bug.cgi?id=34920 - - Use dynamic allocation instead of fixed PATH_MAX size buffers to - fix the build on GNU/Hurd, where PATH_MAX is undefined. - - * tests/testmimehandling.c: - (main): - * tests/testwebview.c: - (main): - -2010-02-14 Diego Escalante Urrelo <descalante@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [gtk] WebKitDownload's currentSize property is guint, should be guint64 - https://bugs.webkit.org/show_bug.cgi?id=34829 - - Actually use a guint64 for current-size property in WebKitDownload, we - were using a guint which is likely the cause for wrong sizes for files - over 4 Gb. - - * webkit/webkitdownload.cpp: - -2010-02-09 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - [GTK] Hits assertion on history back, with page cache enabled, in specific conditions - https://bugs.webkit.org/show_bug.cgi?id=34773 - - Make sure cached frames have their scrollbars disconnected from - the WebView's adjustments. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::savePlatformDataToCachedFrame): - -2010-02-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Set GtkAdjustments on our FrameView when loading a page in the PageCache - https://bugs.webkit.org/show_bug.cgi?id=34754 - - Test that lower, and upper bounds are kept when goibg back with - page cache enabled, and disabled. Page cache behaviour is still a - bit broken (see FIXME). - - * tests/testwebview.c: - (server_callback): - (map_event_cb): - (do_test_webkit_web_view_adjustments): - (test_webkit_web_view_adjustments): - (main): - -2010-02-09 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Set GtkAdjustments on our FrameView when loading a page in the PageCache - https://bugs.webkit.org/show_bug.cgi?id=34754 - - Set the Gtk Adjustments of the FrameViews when they are restored - from the PageCache too. Right we only do it for the newly created - FrameViews in transitionToCommittedForNewPage, but we it also - needs to be done in the equilavent transition method for cached - pages. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::postCommitFrameViewSetup): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedFrame): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2010-02-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] Implement FrameLoaderClient::hasWebView - https://bugs.webkit.org/show_bug.cgi?id=34682 - - Used for sanity-check ASSERTS in the FrameLoader code. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::hasWebView): - -2010-02-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - News about 1.1.21. - - * NEWS: - -2010-02-05 Shinichiro Hamaji <hamaji@chromium.org> - - Reviewed by Gustavo Noronha Silva. - - [Gtk] Implement layoutTestController.pageNumberForElementById - https://bugs.webkit.org/show_bug.cgi?id=34572 - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_page_number_for_element_by_id): - -2010-02-04 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Add and cleanup return values of signals in view and frame - https://bugs.webkit.org/show_bug.cgi?id=33484 - - Add missing and cleanup return values of web frame and web view signals. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - * webkit/webkitwebview.cpp: - (DNDContentsRequest::webkit_web_view_class_init): - -2010-02-02 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - Changes in 1.1.20, and documentation control files update. - - * NEWS: - * docs/webkitgtk-docs.sgml: - -2010-02-02 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] When selection changes selections in other WebView are not collapsed - https://bugs.webkit.org/show_bug.cgi?id=34043 - - Collapse the selection of a WebView even when the new selection owner is - a new WebView. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::clearClipboardContentsCallback): Only clear the DataObject we are setting - is not the same as the one referenced in this callback. Use the same behavior for - collapsing the selection. - (WebKit::PasteboardHelperGtk::writeClipboardContents): Instead of recording a boolean - record the actual data used while writing to the clipboard. - -2010-01-27 Martin Robinson <mrobinson@webkit.org> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Expose the IM context via the API - https://bugs.webkit.org/show_bug.cgi?id=33327 - - Expose the GtkIMMultiContext as a property of WebKitWebView. This will - allow embedders to generate the input method context menu entries and - make testing certain IM context behavior possible. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_property): - (DNDContentsRequest::webkit_web_view_get_im_context): - (DNDContentsRequest::webkit_web_view_class_init): - -2010-01-19 Joanmarie Diggs <joanmarie.diggs@gmail.com> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=30883 - [Gtk] Implement AtkText for HTML elements which contain text - - Adds two news tests. - - * tests/testatk.c - (testWebkitAtkGetTextInParagraphAndBodySimple): - (testWebkitAtkGetTextInParagraphAndBodyModerate): - (main): - -2010-01-19 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed. Changes to the test I forgot to make after a last - minute change before landing 53294 - this causes make distcheck to - fail. - - * tests/testloading.c: - (load_error_status_changed_cb): - (test_loading_error): - -2010-01-19 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - News items for 1.1.19. - - * NEWS: - -2010-01-19 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - [GTK] More crashes related to the clipboard management - https://bugs.webkit.org/show_bug.cgi?id=33746 - - Pass the WebKitWebView object (which is a GObject, thus - ref-counted) to the clipboard functions instead of passing the - Page - this allows us to explicitely protect the object inbetween - the clipboard call and its callbacks, which fixes the crash. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::respondToChangedSelection): - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::getClipboardContentsCallback): - (WebKit::clearClipboardContentsCallback): - (WebKit::PasteboardHelperGtk::writeClipboardContents): - -2010-01-15 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - Original patch by David Ronis <david.ronis@mcgill.ca> - - Upgrade 1.1.17->1.1.18 fails: GTK_WIDGET_TOPLEVEL' was not declared in this scope - https://bugs.webkit.org/show_bug.cgi?id=33486 - - Deprecated symbols replaced for gtk+ versions over 2.18. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowRect): - * webkit/webkitprivate.cpp: - (currentToplevelCallback): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_print_full): - (webkit_web_frame_print): - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): - -2010-01-14 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Eric Seidel. - - [GTK] Crashes cleaning clipboard contents, with page cache enabled - https://bugs.webkit.org/show_bug.cgi?id=32900 - - Null-check the focus controller to avoid crashing. Could not find - a way to reproduce this consistently, thus no test. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::clearClipboardContentsCallback): - -2010-01-14 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Oliver Hunter. - - [GTK] couple fixes for signal emissions, and property notifications - https://bugs.webkit.org/show_bug.cgi?id=33428 - - Do not emit signals and property notifications for error - pages. The notifications are not really useful for anything, you - can get them back by overriding the error pages, and it avoids a - number of hacks. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::dispatchDidFinishLoad): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - (WebKit::FrameLoaderClient::dispatchDidStartProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - (WebKit::FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout): - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * WebCoreSupport/FrameLoaderClientGtk.h: - * tests/testloading.c: - (load_error_status_changed_cb): - (test_loading_error): - -2010-01-14 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Xan Lopez. - - [GTK] Enable DOM clipboard and drag-and-drop access - https://bugs.webkit.org/show_bug.cgi?id=30623 - - Use DataObjectGtk when setting and clearing pasteboard data on - the GDK_SELECTION_PRIMARY clipboard. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::respondToChangedSelection): - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::fillSelectionData): - (WebKit::targetListForDataObject): - (WebKit::getClipboardContentsCallback): - (WebKit::clearClipboardContentsCallback): - (WebKit::PasteboardHelperGtk::writeClipboardContents): - * WebCoreSupport/PasteboardHelperGtk.h: - -2010-01-14 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - Review the tooltip implementation - https://bugs.webkit.org/show_bug.cgi?id=32819 - - Change the GTK tooltip implementation to avoid the workaround that - we are currently using. Now we use a new private API to set the - text and all the tooltip handling is done in the webview widget. - - * WebCoreSupport/ChromeClientGtk.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_set_tooltip_text): Added, new private API. - (webkit_web_view_query_tooltip): Added - -2010-01-09 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - [GTK] couple fixes for signal emissions, and property notifications - https://bugs.webkit.org/show_bug.cgi?id=33428 - - Fix commitedLoad being called where it should not, causing it to - be called one time too many in some cases. We now match Qt's and - Mac's behavior here. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::finishedLoading): - * tests/testloading.c: - (load_error_status_changed_cb): - -2010-01-08 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - [GTK] loading test should use SoupServer instead of actual sites - https://bugs.webkit.org/show_bug.cgi?id=33353 - - Make all the loading tests use SoupServer, instead of fetching - stuff from the Internet. - - * tests/testloading.c: - (server_callback): - (get_uri_for_path): - (test_loading_status): - (test_loading_error): - (test_loading_cancelled): - (load_wentback_status_changed_cb): - (load_error_test): - (test_loading_goback): - (main): - -2010-01-06 Joanmarie Diggs <joanmarie.diggs@gmail.com> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=30883 - [Gtk] Implement AtkText for HTML elements which contain text - - * tests/testatk.c - (test_webkit_atk_get_text_at_offset): - (test_webkit_atk_get_text_at_offset_forms): - (test_webkit_atk_get_text_at_offset_newlines): - -2010-01-05 Gustavo Noronha Silva <gns@gnome.org> - - Updated docs for 1.1.18 release. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2010-01-05 Xan Lopez <xlopez@igalia.com> - - Update for 1.1.18 release. - - * NEWS: - -2010-01-04 Maciej Stachowiak <mjs@apple.com> - - Reviewed by Darin Fisher. - - Reorganize, document and rename OS() platform macros. - https://bugs.webkit.org/show_bug.cgi?id=33198 - - Adapt to name changes. - - * webkit/webkitwebsettings.cpp: - (webkit_get_user_agent): - -2010-01-04 Maciej Stachowiak <mjs@apple.com> - - Reviewed by Adam Barth. - - Reorganize, document and rename CPU() platform macros. - https://bugs.webkit.org/show_bug.cgi?id=33145 - - * webkit/webkitwebsettings.cpp: - (webkit_get_user_agent): - -2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Remove emission of signal that does not exist. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::webViewDestroyed): - -2009-12-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Unset the adjustments in our FrameView when detaching from - parent. Fixes some crashers when transitioning to a new page from - a scrolled page. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::detachedFromParent2): - -2009-12-20 Xan Lopez <xlopez@igalia.com> - - Rubber-stamped by Gustavo Noronha. - - Disable the page cache by default since: - - - It was previously off by default. - - There are still some issues when enabling it. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Provides a new API to copy WebKitWebHistoryItem objects. - - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_copy): - * webkit/webkitwebhistoryitem.h: - -2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Make sure we get the URI that is being loaded when updating - WebKitWebFrame's knowledge of it. This was causing problems now - that page cache is enabled. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - * tests/testloading.c: - (load_goback_status_changed_cb): - (load_wentback_status_changed_cb): - (test_loading_goback): - (main): - -2009-12-20 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - [GTK] Cache control APIs - https://bugs.webkit.org/show_bug.cgi?id=24001 - - Original patch by Bobby Powers <bobby@laptop.org> - - Added new API to specify cache models for GTK port. - - * webkit/webkitprivate.cpp: - (webkit_init): set a default cache model. - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - (webkit_set_cache_model): Added function. - (webkit_get_cache_model): Added function. - -2009-12-20 Xan Lopez <xlopez@igalia.com> - - Revert the previous patch, it introduces some failures in the - bots. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2009-12-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - [GTK] crash when loading new page - https://bugs.webkit.org/show_bug.cgi?id=32752 - - Wait until the document is attached to adjust our alignments, - since we need to make sure the FrameView in the document content - render object matches the newly created FrameView for the new - page, otherwise we'll try to relayout the wrong view. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Create a new WebKitDataSource object when attaching to a frame, if - one does not exist. This may happen when we are fetching data from - the page cache. - - * WebCoreSupport/DocumentLoaderGtk.cpp: - (WebKit::DocumentLoader::attachToFrame): - (WebKit::DocumentLoader::unrefDataSource): - -2009-12-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Make sure the text encoding machinery is initialized from the main - frame, before opening the icon database. - - * webkit/webkitprivate.cpp: - (webkit_init): - -2009-12-19 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - Fixed the problem when pasting in the same window with the - middle-button, now we store a reference to the range instead of - requesting it every time, and we do not release it until the - clipboard is requested. - https://bugs.webkit.org/show_bug.cgi?id=28153 - - * WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp: - * WebKit/gtk/WebCoreSupport/EditorClientGtk.h: - -2009-12-19 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Protect download objects when reporting errors, to make sure the - download stays alive between the status change notification, and - the error signal emission. - - * webkit/webkitdownload.cpp: - (webkit_download_error): - -2009-12-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix gtk-doc of webkit_web_resource_new. - - * webkit/webkitwebresource.cpp: - -2009-12-18 Adam Roben <aroben@apple.com> - - GTK build fix - - * webkit/webkitprivate.cpp: Added #include. - -2009-12-18 Kalle Vahlman <kalle.vahlman@movial.com> and Alejandro G. Castro <alex@igalia.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Add enable-page-cache property to WebSettings for disabling the Page Cache - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - * webkit/webkitwebview.cpp: - -2009-12-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - More make distcheck fixes. Use a more robust solution to making - sure we are in the correct directory for running these tests. - - * tests/testmimehandling.c: - (main): - * tests/testwebview.c: - (main): - -2009-12-17 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha Silva. - - [GTK] Don't assume downloads are always synchronous - http://bugs.webkit.org/show_bug.cgi?id=32359 - - * tests/testdownload.c: - (download_requested_cb): - (set_filename): - (test_webkit_download_perform): - (test_webkit_download_synch): - (test_webkit_download_asynch): - (main): Test downloads synchronously and asynchronously. - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - (webkit_web_view_request_download): Only try to start a requested - download if the destination URI is set and clarify the documentation. - -2009-12-17 Christian Dywan <christian@twotoasts.de> - - Reviewed by Xan Lopez. - - Deprecate the title-changed signal of WebKitWebFrame. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - -2009-12-17 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] WebKit GTK needs a wrapper for ref counted glib/gobject structs - https://bugs.webkit.org/show_bug.cgi?id=21599 - - Convert a use of GOwnPtr for a reference counted type to GRefPtr. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - -2009-12-17 Evan Martin <evan@chromium.org> - - Reviewed by Xan Lopez. - - Expose the page workarounds ("quirks") setting to the GTK+ WebKit API. - - * 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): - -2009-12-16 Dan Winship <danw@gnome.org> - - Reviewed by Gustavo Noronha Silva. - - Content-Encoding support - - https://bugs.webkit.org/show_bug.cgi?id=522772 - - * webkit/webkitprivate.cpp: - (webkit_init): add a SoupContentDecoder feature to the session - -2009-12-16 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha Silva. - - Deprecate the old loading signals load-started, load-committed, - load-finished, load-progress-changed and change unit tests to use - load-status instead. - - * tests/testmimehandling.c: - (idle_quit_loop_cb): - (test_mime_type): use notify::load-status - * tests/testwebdatasource.c: - (notify_load_status_unreachable_cb): - (notify_load_status_cb): - (test_webkit_web_data_source): - (test_webkit_web_data_source_unreachable_uri): Remove uses of - g_main_loop_is_running. It's an error if the loop is wrongly terminated. - * tests/testwebresource.c: - (notify_load_status_cb): - (test_web_resource_loading): - (notify_load_status_sub_cb): - (test_web_resource_sub_resource_loading): use notify::load-status - * tests/testwebview.c: - (idle_quit_loop_cb): - (test_webkit_web_view_icon_uri): - * tests/testwindow.c: - (notify_load_status_cb): - (test_webkit_window_scrollbar_policy): use notify::load-status - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): Deprecate old load signals. - -2009-12-16 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha Silva. - - Take into account favicon.ico in the webresource test. - - * tests/testwebresource.c: - (test_web_resource_sub_resource_loading): - -2009-12-16 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Add tab_key_cycles_through_elements to copies of - WebKitWebSettings. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_copy): - -2009-12-16 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha Silva. - - [GTK] webkit_web_navigation_action_get_button() documentation - https://bugs.webkit.org/show_bug.cgi?id=25555 - - Small documentation improvement for webkit_web_navigation_action_get_button. - - * webkit/webkitwebnavigationaction.cpp: - -2009-12-13 Sam Weinig <sam@webkit.org> - - Reviewed by Dan Bernstein. - - Fix for https://bugs.webkit.org/show_bug.cgi?id=32499 - Add client based Geolocation provider - - Add first cut of a client based Geolocation provider. This is guarded by - ENABLE(CLIENT_BASED_GEOLOCATION) and is off by default for now. This adds a - GeolocationControllerClient interface that no-one currently implements, - but will in a subsequent patch. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - -2009-12-14 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - New setting to allow applications to completely suppress the - default context menu that is generated by WebKit. This allows them - to still pass the event to the default handler without needing to - use ugly hacks such as handling populate-popup, and removing all - the items from the default context menu. - - * 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_forward_context_menu_event): - -2009-12-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Also give the right click event to the frame's event handler, if - there WebCore decides to not generate the default context - menu. This fixes some pages that handle right-button clicks for - things other than context menu creation. - - * webkit/webkitwebview.cpp: - (webkit_web_view_forward_context_menu_event): - -2009-12-13 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=31014 - [Gtk] Build fails with gtk+-2.10 (no tested with older releases) - - Guard GTK+ 2.12 specific tooltip code with #ifdef. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - -2009-12-11 Christian Dywan <christian@twotoasts.de> - - Reviewed by Eric Seidel. - - [GTK] Build with --disable-svg is broken - http://bugs.webkit.org/show_bug.cgi?id=32361 - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_pause_svg_animation): Fix ENABLE(SVG) guards. - -2009-12-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Add a missing null-check, that is causing some crash reports. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - -2009-12-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Should provide an API to control the IconDatabase - https://bugs.webkit.org/show_bug.cgi?id=32334 - - First step towards a full IconDatabase API. This provides - notification for pages with favicons, and lets clients handle - them. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::registerForIconNotification): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - * tests/resources/blank.ico: Added. - * tests/testwebview.c: Added. - (server_callback): - (idle_quit_loop_cb): - (icon_uri_changed_cb): - (icon_loaded_cb): - (test_webkit_web_view_icon_uri): - (main): - * webkit/webkitprivate.cpp: - (closeIconDatabaseOnExit): - (webkit_init): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_property): - (webkit_web_view_finalize): - (webkit_web_view_class_init): - (webkit_web_view_get_icon_uri): - * webkit/webkitwebview.h: - -2009-12-08 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha Silva. - - Point out the meaning of "Content-Disposition" when implementing the - mime-type-policy-decision-requested signal. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-12-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Doesn't respect Content-Disposition for downloads, and provides no way for apps to do that - https://bugs.webkit.org/show_bug.cgi?id=32247 - - Provide a way for applications to respect Content-Disposition, by - fetching the WebKitNetworkResponse from the frame during - mime-type-policy-decision-requested. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): Download - content when Content-Disposition is attachment. - * tests/testmimehandling.c: - (server_callback): - (mime_type_policy_decision_requested_cb): - * tests/testwebframe.c: - (test_webkit_web_frame_response): - (main): - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_network_response): - * webkit/webkitwebframe.h: - -2009-12-07 Gyuyoung Kim <gyuyoung@gmail.com> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=32024 - [GTK] WebKit does not compile without JAVASCRIPT_DEBUGGER - - Fix build errors when javascript-debugger is disabled on GTK - - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_set_property): - (webkit_web_inspector_get_property): - -2009-12-07 Joanmarie Diggs <joanmarie.diggs@gmail.com> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25415 - [GTK][ATK] Please implement support for get_text_at_offset - - Eliminate the segfaults which occur when accessing the text interface now - implemented by text controls. - - * tests/testatk.c - (test_webkit_atk_get_text_at_offset_textarea): - (test_webkit_atk_get_text_at_offset_text_input): - (main): - -2009-12-06 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - New test to make sure we do not regress this feature anymore. All - test files were created by me. - - [GTK] REGRESSION: webkit thinks it can render PDFs - https://bugs.webkit.org/show_bug.cgi?id=32183 - - * tests/resources/test.html: Added. - * tests/resources/test.ogg: Added. - * tests/resources/test.pdf: Added. - * tests/resources/test.txt: Added. - * tests/testmimehandling.c: Added. - (server_callback): - (idle_quit_loop_cb): - (mime_type_policy_decision_requested_cb): - (test_mime_type): - (test_mime_pdf): - (test_mime_html): - (test_mime_text): - (test_mime_ogg): - (main): - -2009-12-05 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Use a better URI for the unreachable test. localhost:80 is very - likely to be open. - - * tests/testwebdatasource.c: - (load_finished_unreachable_cb): - (test_webkit_web_data_source_unreachable_uri): - -2009-12-03 Brady Eidson <beidson@apple.com> - - Reviewed by Sam Weinig. - - <rdar://problem/7214236> and http://webkit.org/b/32052 - Implement HTML5 state object history API - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidPushStateWithinPage): - (WebKit::FrameLoaderClient::dispatchDidReplaceStateWithinPage): - (WebKit::FrameLoaderClient::dispatchDidPopStateWithinPage): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-12-03 Pavel Feldman <pfeldman@dhcp-172-28-174-220.spb.corp.google.com> - - Reviewed by Timothy Hatcher. - - Web Inspector: Simplify the settings support in inspector controller. - - https://bugs.webkit.org/show_bug.cgi?id=32076 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::populateSetting): - (WebKit::InspectorClient::storeSetting): - * WebCoreSupport/InspectorClientGtk.h: - -2009-12-03 Ben Murdoch <benm@google.com> - - Reviewed by Brady Eidson. - - [Android] The FrameLoaderClient is unaware of BackForwardList changes. - https://bugs.webkit.org/show_bug.cgi?id=31914 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidAddBackForwardItem): Add an empty implementation. Method added to FrameLoaderClient by Android (see bug). - (WebKit::FrameLoaderClient::dispatchDidRemoveBackForwardItem): ditto. - (WebKit::FrameLoaderClient::dispatchDidChangeBackForwardIndex): ditto. - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-12-01 Nikolas Zimmermann <nzimmermann@rim.com> - - Reviewed by Simon Fraser. - - Add SVG animation test framework with 'snapshot' functionality - https://bugs.webkit.org/show_bug.cgi?id=31897 - - Add API used by the new 'sampleSVGAnimationForElementAtTime' DRT method, - forwarding the call to SVGDocumentExtensions, if SVG is enabled. - - Implemented just like the existing pauseAnimation* methods for CSS animations. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_pause_svg_animation): - -2009-11-30 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Prepare for 1.1.17 release. - - * NEWS: - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-11-26 Laszlo Gombos <laszlo.1.gombos@nokia.com> - - Reviewed by Oliver Hunt. - - Move GOwnPtr* from wtf to wtf/gtk - https://bugs.webkit.org/show_bug.cgi?id=31793 - - * webkit/webkitwebview.cpp: Change the path for GOwnPtr.h. - -2009-11-24 Joanmarie Diggs <joanmarie.diggs@gmail.com> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25415 - [GTK][ATK] Please implement support for get_text_at_offset - - When building up the pango layout from text boxes, only append a - newline char after verifying there are no more boxes on this line. - - * tests/testatk.c - (test_webkit_atk_get_text_at_offset_newlines): - (main): - -2009-11-19 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Gustavo Noronha Silva. - - Web Inspector: Implement "show inspector" in WebKit GTK - API and enable console tests. - - https://bugs.webkit.org/show_bug.cgi?id=31669 - - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_show): - * webkit/webkitwebinspector.h: - -2009-11-18 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha. - - [GTK] Tab key does not cycle through elements by default - https://bugs.webkit.org/show_bug.cgi?id=31505 - - Properly localize documentation strings for the - tab-key-cycles-through-elements property. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-11-17 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha. - - [GTK] Tab key does not cycle through elements by default - https://bugs.webkit.org/show_bug.cgi?id=31505 - - Ensure that WebKitWebSettings tab-key-cycles-through-elements - property is true by default with the G_PARAM_CONSTRUCT_FLAG. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-11-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] Failing test media/video-document-types.html - https://bugs.webkit.org/show_bug.cgi?id=31352 - - Match what Mac has been doing since r36001: cancel the main load, - and handle failures caused by 'will be handled by plugin' errors. - - Covered by test media/video-document-types.html - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::shouldFallBack): - -2009-11-17 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Timothy Hatcher. - - Web Inspector: Make DRT show web inspector for tests in inspector/ folder. - - Updated DRT to show/close inspector for all tests under /inspector - - Introduced LayoutTestController::setTimelineProfilingEnabled and - WebInspector::setTimelineProfilingEnabled beside setJavaScriptProfilingEnabled - - Removed reload on each inspector test - - Renamed fast/inspector to fast/inspector-support in order not to trigger - inspector for those. - - Reimplemented timeline tests in order to get rid of reload there. - - Moved tests that don't require harness into the fast group. - - https://bugs.webkit.org/show_bug.cgi?id=31472 - - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_class_init): - (webkit_web_inspector_set_property): - (webkit_web_inspector_get_property): - -2009-11-13 Adam Roben <aroben@apple.com> - - Update for changes to FrameLoaderClient - - Fixes <http://webkit.org/b/31124> Tell the WebFrameLoadDelegate when - window objects in isolated worlds are cleared - - Reviewed by Dave Hyatt. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidClearWindowObjectInWorld): - * WebCoreSupport/FrameLoaderClientGtk.h: - Replaced windowObjectCleared with this function. Does nothing if the - passed-in world is not the mainThreadNormalWorld(). - -2009-11-12 Shinichiro Hamaji <hamaji@chromium.org> - - Reviewed by Darin Adler. - - externalRepresentation should take Frame as the argument - https://bugs.webkit.org/show_bug.cgi?id=31393 - - No new tests as this is just a refactoring. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_dump_render_tree): - -2009-11-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - Should not print javascript console messages to stdout - https://bugs.webkit.org/show_bug.cgi?id=31346 - - * webkit/webkitwebview.cpp: - (webkit_web_view_real_console_message): Print console messages to - stderr instead, using the recommended method (a g_log variant). - -2009-11-11 Philippe Normand <pnormand@igalia.com> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=30221 - [GTK] fails to load media embedded in iframe element - - The FrameLoader can show Media if the audio/video support is - enabled at compile time. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::canShowMIMEType): - -2009-11-10 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Jan Alonzo. - - [GTK] Remove WebSocket configuration from WebKitWebSettings - https://bugs.webkit.org/show_bug.cgi?id=31244 - - Remove non-functional enable-web-sockets property from WebKitWebSettings. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - (webkit_web_settings_copy): - -2009-11-09 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Jan Alonzo. - - [GTK] Expose Page::tabKeyCyclesThroughElements in the API - https://bugs.webkit.org/show_bug.cgi?id=30482 - - Expose Page::tabKeyCyclesThroughElements as a property of - WebKitWebSettings. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - -2009-11-04 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Jan Alonzo. - - [GTK] Enable DOM clipboard and drag-and-drop access - https://bugs.webkit.org/show_bug.cgi?id=30623 - - Move handling of target list to PasteboardHelperGtk. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::PasteboardHelperGtk::PasteboardHelperGtk): - (WebKit::PasteboardHelperGtk::~PasteboardHelperGtk): - (WebKit::PasteboardHelperGtk::fullTargetList): - * WebCoreSupport/PasteboardHelperGtk.h: - * webkit/webkitprivate.cpp: - (WebKit::pasteboardHelperInstance): - (webkit_init): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - (webkit_web_view_init): - (webkit_web_view_get_copy_target_list): - (webkit_web_view_get_paste_target_list): - -2009-10-30 Evan Stade <estade@chromium.org> - - Reviewed by David Levin. - - Notify the chrome when the focused node has changed. - https://bugs.webkit.org/show_bug.cgi?id=30832 - - Added stub implementation for new ChromeClient function. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::focusedNodeChanged): - * WebCoreSupport/ChromeClientGtk.h: - -2009-10-29 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Trivial fix - move public API declaration into the - public subsection of the doc. - - * docs/webkitgtk-sections.txt: - -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. - - * webkit/webkitwebpolicydecision.cpp: - (webkit_web_policy_decision_use): - (webkit_web_policy_decision_ignore): - (webkit_web_policy_decision_download): - -2009-10-07 Adam Barth <abarth@webkit.org> - - Reviewed by Darin Adler. - - Factor PolicyChecker out of FrameLoader - https://bugs.webkit.org/show_bug.cgi?id=30155 - - Move the policy callback to the policy object. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSubmitForm): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - -2009-10-07 Martin Robinson <martin.james.robinson@gmail.com> - - [GTK] Segfault while testing fast/events/keydown-keypress-preventDefault.html - https://bugs.webkit.org/show_bug.cgi?id=30121 - - Clear previous preedit or pending composition before storing new ones. - This can happen when a WebView receives a native keydown event without - a matching keyup event or when preventDefault() is called on DOM keydown - events. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::setPendingComposition): - (WebKit::setPendingPreedit): - (WebKit::clearPendingIMData): - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - -2009-10-06 Xan Lopez <xlopez@igalia.com> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=25526 - [Gtk] Additional support is needed for caret browsing - - Remove special cases for caret browsing, they are now handled in - cross-platform code. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - -2009-10-06 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Timothy Hatcher. - - Web Inspector: close inspector client view on - InspectorController::close API call. - - In order to run batch web inspector layout tests (and not affect - subsequent tests) we should close inspector client's view upon - InspectorController::close API call. - - https://bugs.webkit.org/show_bug.cgi?id=30009 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::createPage): - -2009-10-06 Alejandro G. Castro <alex@igalia.com> - - Reviewed by Xan Lopez. - - ASSERT executing the webhistory unittest in a debug build - https://bugs.webkit.org/show_bug.cgi?id=28947 - - We have to call g_object_new first to initialize webkit threading - before creating the KURL. - - * WebKit/gtk/webkit/webkitwebhistoryitem.cpp: - -2009-10-06 José Millán Soto <fid@gpul.org> - - Reviewed by Xan Lopez. - - Header files of WebKitGTK do not comply with WebKit coding style (Patch attached) - https://bugs.webkit.org/show_bug.cgi?id=30076 - - Solves various issues in header files. - - * WebCoreSupport/DocumentLoaderGtk.h: Added "headed guards" - * webkit/webkitdefines.h: - * webkit/webkitdownload.h: - * webkit/webkiterror.h: - * webkit/webkithittestresult.h: - * webkit/webkitnetworkrequest.h: - * webkit/webkitnetworkresponse.h: - * webkit/webkitprivate.h: - * webkit/webkitsecurityorigin.h: - * webkit/webkitsoupauthdialog.h: - * webkit/webkitversion.h.in: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebdatabase.h: - * webkit/webkitwebdatasource.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebinspector.h: - * webkit/webkitwebnavigationaction.h: - * webkit/webkitwebpolicydecision.h: - * webkit/webkitwebresource.h: - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.h: - * webkit/webkitwebwindowfeatures.h: - -2009-10-03 Adam Barth <abarth@webkit.org> - - More build fixing. - - * webkit/webkitwebview.cpp: - (webkit_web_view_go_back_or_forward): - (webkit_web_view_can_go_back_or_forward): - -2009-10-03 Adam Barth <abarth@webkit.org> - - Unreviewed build fix. - - * webkit/webkitwebview.cpp: - (webkit_web_view_go_back_or_forward): - -2009-10-03 Adam Barth <abarth@webkit.org> - - Reviewed by Sam Weinig. - - Factor PageController out of FrameLoader and Page - https://bugs.webkit.org/show_bug.cgi?id=30037 - - * webkit/webkitwebview.cpp: - (webkit_web_view_can_go_back_or_forward): - -2009-10-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Set the type for the fake event, otherwise the test ASSERTs in - debug builds. - - * tests/testhittestresult.c: - (load_status_cb): - -2009-10-01 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Xan Lopez. - - [GTK] GtkIMContext filtering interferes with DOM key events - https://bugs.webkit.org/show_bug.cgi?id=28733 - - Ensure that keyboard events filtered by the GtkIMContext still create - the proper DOM events. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::clearPendingIMData): - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - (WebKit::EditorClient::shouldBeginEditing): - (WebKit::EditorClient::shouldEndEditing): - (WebKit::interpretEditorCommandKeyEvent): - (WebKit::handleCaretBrowsingKeyboardEvent): - (WebKit::EditorClient::handleKeyboardEvent): - (WebKit::EditorClient::handleInputMethodKeydown): - * tests/testkeyevents.c: Added. - (test_info_new): - (test_info_destroy): - (key_event_fixture_setup): - (key_event_fixture_teardown): - (key_press_event_cb): - (key_release_event_cb): - (load_status_cb): - (map_event_cb): - (test_keypress): - (main): - -2009-09-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Do not set a non-default parent window for child widgets. We are - just doing the same than the default path does, and on top of that - if the widget's window changes (for example, during DnD widgets - are usually unrealized/realized) the child widget will we left - pointing to a dead window. - - For examples of crashers caused by this see - https://bugzilla.gnome.org/show_bug.cgi?id=596397 and - https://bugzilla.gnome.org/show_bug.cgi?id=596398 - - * webkit/webkitwebview.cpp: - (webkit_web_view_container_add): - -2009-09-29 Xan Lopez <xlopez@igalia.com> - - Rubber-stamped by Eric Seidel. - - [Gtk] Crash when saving a password - https://bugs.webkit.org/show_bug.cgi?id=28070 - - Disconnect the 'got-headers' callback when we are done with - it. The signal can be emitted more than once if the message is - retransmitted, but each time that happens authData is created - again and a new callback connected, so we have to get rid of the - old one (which will crash because we free authData). - - * webkit/webkitsoupauthdialog.c: - (save_password_callback): - -2009-09-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Pop down the context menu when the page transitions to committed, - to avoid keeping a context menu out of context. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (destroy_menu_cb): - (webkit_web_view_forward_context_menu_event): - -2009-09-24 Jon Honeycutt <jhoneycutt@apple.com> - - Reviewed by Alice Liu. - - * webkit/webkitwebview.cpp: - (webkit_web_view_init): - Pass 0 for new Page constructor argument. - -2009-09-24 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha and Jan Alonzo. - [GTK] Add WEBKIT_LOAD_ERROR status - https://bugs.webkit.org/show_bug.cgi?id=29644 - - Add a new load-status enum value, WEBKIT_LOAD_FAILED, emitted when - there's an error during the load process. This is needed if we - want notify::load-status to be able to handle all situations, - since WEBKIT_LOAD_FINISHED is not emitted when there's an error - and we are lacking a notification of the load being stopped. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * tests/testloading.c: - (web_loading_fixture_setup): - (load_error_status_changed_cb): - (load_error_cb): - (test_loading_error): - (load_cancelled_cb): - (stop_load): - (load_cancelled_status_changed_cb): - (test_loading_cancelled): - (main): - * webkit/webkitwebframe.h: - -2009-09-24 Xan Lopez <xlopez@igalia.com> - - Revert r48697, since it broke key handling notification to GTK+. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - (WebKit::EditorClient::shouldBeginEditing): - (WebKit::EditorClient::shouldEndEditing): - (WebKit::interpretKeyEvent): - (WebKit::handleEditingKeyboardEvent): - (WebKit::EditorClient::handleKeyboardEvent): - (WebKit::EditorClient::handleInputMethodKeydown): - -2009-09-23 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Xan Lopez. - - [GTK] REGRESSION: BitmapImage::getGdkPixbuf fails for non-square images - https://bugs.webkit.org/show_bug.cgi?id=29654 - - Ensure that even when GTKSimpleIMContext filters non-IME keystrokes, - keyboard events are fired properly. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::clearPendingIMData): - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - (WebKit::EditorClient::shouldBeginEditing): - (WebKit::EditorClient::shouldEndEditing): - (WebKit::interpretEditorCommandKeyEvent): - (WebKit::handleCaretBrowsingKeyboardEvent): - (WebKit::EditorClient::handleKeyboardEvent): - (WebKit::EditorClient::handleInputMethodKeydown): - -2009-09-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - [GTK] need to dump number of pending unload handlers - https://bugs.webkit.org/show_bug.cgi?id=29685 - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_pending_unload_event_count): New function to - satisfy DRT needs. - -2009-09-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - Minor reorganization to the patch landed in - http://trac.webkit.org/changeset/48670. Also move JSCore-1.0.gir - in the gtk directory as that's only useful to the Gtk port at the - moment. - - * JSCore-1.0.gir: Renamed from JSCore-1.0.gir. - -2009-09-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - Hardcode element positions at 0,0 so that we know where to - generate events to test WebKitHitTestResult. - - * tests/testhittestresult.c: - (load_status_cb): - (test_webkit_hit_test_result): - (main): - -2009-09-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - [GTK] WebKitHitTestResult is completely broken in gmail - https://bugs.webkit.org/show_bug.cgi?id=29527 - - We need to use the main or focused frame when doing the coordinate - transformation instead of always using the main frame. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_hit_test_result): - -2009-09-21 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Update documentation control files to 1.1.15. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-09-21 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed docs build fix. Current CFLAGS and LIBS variables no - longer bring gthread in. - - * docs/GNUmakefile.am: - -2009-09-21 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update for release. - - * NEWS: - -2009-09-20 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Small documentation fix. - - * webkit/webkithittestresult.cpp: - -2009-09-18 Xan Lopez <xlopez@igalia.com> - - Build fix. - - Add missing file to the repository. - - * tests/testhittestresult.c: Added. - (test_info_new): - (test_info_destroy): - (hit_test_result_fixture_setup): - (hit_test_result_fixture_teardown): - (load_status_cb): - (test_webkit_hit_test_result): - (main): - -2009-09-18 Kenneth Rohde Christiansen <kenneth@webkit.org> - - [Gtk] Unreviewed build fix. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::platformPageClient): - -2009-09-17 Kenneth Rohde Christiansen <kenneth@webkit.org> - - Reviewed by Simon Hausmann. - - Make PlatformWindow return something else than PlatformWidget - https://bugs.webkit.org/show_bug.cgi?id=29085 - - Reflect the rename of platformWindow and it's return type. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::platformPageClient): - (WebKit::ChromeClient::runOpenPanel): - * WebCoreSupport/ChromeClientGtk.h: - * webkit/webkitprivate.cpp: - (currentToplevelCallback): - * webkit/webkitwebview.cpp: - (webkit_web_view_popup_menu_handler): - -2009-09-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - Document webkit_web_view_stop_loading. - - * webkit/webkitwebview.cpp: - -2009-09-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha and Jan Alonzo. - - [GTK] context menu overriding API is very limited - https://bugs.webkit.org/show_bug.cgi?id=27546 - - Add webkit_web_view_get_hit_test_result, a function to get a hit - test result from a GdkEventButton. Useful to let applications - decide between several actions on button press depending on what - is being pressed. - - * webkit/webkitwebview.cpp: - (webkit_web_view_stop_loading): - (documentPointForWindowPoint): - (webkit_web_view_get_hit_test_result): - * webkit/webkitwebview.h: - -2009-09-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha and Jan Alonzo. - - [GTK] context menu overriding API is very limited - https://bugs.webkit.org/show_bug.cgi?id=27546 - - Add WebKitHitTestResult, a wrapper over HitTestResult. It contains - context information about a point in the web page. - - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkithittestresult.cpp: Added. - (webkit_hit_test_result_finalize): - (webkit_hit_test_result_get_property): - (webkit_hit_test_result_set_property): - (webkit_hit_test_result_class_init): - (webkit_hit_test_result_init): - * webkit/webkithittestresult.h: Added. - * webkit/webkitprivate.cpp: - (WebKit::kit): - * webkit/webkitprivate.h: - -2009-09-14 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez and Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=29134 - [GTK] Add API to access sub resources - - Implement getting subresources, and improve testing of - main, and sub resources loading. - -2009-09-11 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - [GTK] Use gtk_style_set_background instead of gdk_window_set_background - https://bugs.webkit.org/show_bug.cgi?id=29173 - - Use gtk_style_set_background instead of gdk_window_set_background, - as suggested by the documentation. Also, use GTK_STATE_NORMAL - directly, since that's the default state of a GtkWidget. - - * webkit/webkitwebview.cpp: - (webkit_web_view_realize): - -2009-09-09 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Gustavo Noronha. - - [GTK] DumpRenderTree needs eventSender object and implementation - https://bugs.webkit.org/show_bug.cgi?id=25990 - - Creates a function that is accessible from the DumpRenderTree tool - and calls the layout method on the frame view. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_layout): - -2009-09-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=29044 - [GTK] Should update suggested-filename when the response is received - - Set suggested filename also when the response only comes after the - download has started. - - * webkit/webkitdownload.cpp: - (webkit_download_set_response): - (webkit_download_set_suggested_filename): - * webkit/webkitwebview.cpp: - (webkit_web_view_request_download): - -2009-09-08 Priit Laes <plaes@plaes.org> - - Reviewed by Gustavo Noronha. - - Fix up erroneus 'Since: @version@' tags in documentation. - - * webkit/webkitwebdatasource.cpp: - * webkit/webkitwebresource.cpp: - (webkit_web_resource_class_init): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - * webkit/webkitwebwindowfeatures.cpp: - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Link new objects documents in the main document. - - * docs/webkitgtk-docs.sgml: - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Documentation control files updated for 1.1.14. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - What's new for 1.1.14. - - * NEWS: - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Use g_return_if_fail to check for the SoupURI creation, instead of - printing a custom warning. - - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_set_uri): - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=26854 - [GTK] Needs API to allow more control over outgoing requests - - Map the willSendRequest delegate to the 'resource-request-starting' - signal, allowing more control of the resources that are fetched. - - Mapping willSendRequest properly requires an appropriate Response - object, so we are introducing WebKitNetworkResponse, which works in a - way similar to WebKitNetworkRequest. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::assignIdentifierToInitialRequest): - (WebKit::FrameLoaderClient::dispatchDidFinishLoading): - (WebKit::FrameLoaderClient::dispatchDidFailLoading): - * tests/testnetworkresponse.c: Added. - (test_network_response_create_destroy): - (test_network_response_properties): - (main): - * tests/testwebresource.c: - (resource_request_starting_cb): - (load_finished_cb): - (test_web_resource_loading): - (main): - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitnetworkresponse.cpp: Added. - (webkit_network_response_dispose): - (webkit_network_response_finalize): - (webkit_network_response_get_property): - (webkit_network_response_set_property): - (webkit_network_response_class_init): - (webkit_network_response_init): - (webkit_network_response_new_with_core_response): - (webkit_network_response_new): - (webkit_network_response_set_uri): - (webkit_network_response_get_uri): - (webkit_network_response_get_message): - * webkit/webkitnetworkresponse.h: Added. - * webkit/webkitprivate.cpp: - (WTF::SoupMessage): - (WTF::WebKitNetworkRequest): - (WTF::WebKitNetworkResponse): - (WTF::WebKitWebResource): - * webkit/webkitprivate.h: - * webkit/webkitwebresource.cpp: - (webkit_web_resource_cleanup): - (webkit_web_resource_finalize): - (webkit_web_resource_class_init): - (webkit_web_resource_set_property): - (webkit_web_resource_get_uri): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - * webkitmarshal.list: - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=28979 - [GTK] Misc improvments to NetworkRequest - - Unref message in dispose, as it should be, not in finalize. - - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_dispose): - (webkit_network_request_finalize): - (webkit_network_request_class_init): - -2009-09-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=28979 - [GTK] Misc improvments to NetworkRequest - - Bring documentation up-to-date with reality regarding NetworkRequest. - - * webkit/webkitnetworkrequest.cpp: - -2009-09-07 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Make the auth dialog usable when libsoup does not have a - SoupPasswordManager, since it might go away in the next - development cycle. - - * webkit/webkitsoupauthdialog.c: - (response_callback): - (session_can_save_passwords): - (session_authenticate): -2009-09-06 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update the unitests to latest changes wrt scrollbar policy. - - * tests/testwindow.c: - (test_webkit_window_scrollbar_policy): - -2009-09-06 Martin Robinson <martin.james.robinson@gmail.com> - - Reviewed by Gustavo Noronha, Jan Alonzo and Xan Lopez. - - [Gtk] Expose a database API - https://bugs.webkit.org/show_bug.cgi?id=27899 - - Expose an HTML5 database API for GTK+. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::print): - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitprivate.h: - * webkit/webkitsecurityorigin.cpp: Added. - (webkit_security_origin_finalize): - (webkit_security_origin_dispose): - (webkit_security_origin_set_property): - (webkit_security_origin_get_property): - (webkit_security_origins): - (webkit_security_origin_class_init): - (webkit_security_origin_init): - (webkit_security_origin_get_protocol): - (webkit_security_origin_get_host): - (webkit_security_origin_get_port): - (webkit_security_origin_get_web_database_usage): - (webkit_security_origin_get_web_database_quota): - (webkit_security_origin_set_web_database_quota): - (webkit_security_origin_get_all_web_databases): - (WebKit::kit): - (WebKit::core): - (webkit_security_origin_get_web_database): - * webkit/webkitsecurityorigin.h: Added. - * webkit/webkitwebdatabase.cpp: Added. - (webkit_web_database_finalize): - (webkit_web_database_dispose): - (webkit_web_database_set_property): - (webkit_web_database_get_property): - (webkit_web_database_class_init): - (webkit_web_database_init): - (webkit_web_database_set_security_origin): - (webkit_web_database_set_name): - (webkit_web_database_get_security_origin): - (webkit_web_database_get_name): - (webkit_web_database_get_display_name): - (webkit_web_database_get_expected_size): - (webkit_web_database_get_size): - (webkit_web_database_get_filename): - (webkit_web_database_remove): - (webkit_remove_all_web_databases): - (webkit_get_web_database_directory_path): - (webkit_set_web_database_directory_path): - (webkit_get_default_web_database_quota): - * webkit/webkitwebdatabase.h: Added. - * webkit/webkitwebframe.cpp: - (webkit_web_frame_new): - (webkit_web_frame_get_focused_accessible_element): - (webkit_web_frame_get_horizontal_scrollbar_policy): - * webkit/webkitwebframe.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-09-03 Adam Barth <abarth@webkit.org> - - Reviewed by eric@webkit.org. - - https://bugs.webkit.org/show_bug.cgi?id=24696 - - Stub implementations of mixed content methods of FrameLoaderClient. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didDisplayInsecureContent): - (WebKit::FrameLoaderClient::didRunInsecureContent): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-09-03 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Access private member variables directly instead of using the - accessor. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::windowObjectCleared): - -2009-09-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Remove bogus asserts that break Debug builds at runtime. - - * WebCoreSupport/DocumentLoaderGtk.cpp: - (WebKit::DocumentLoader::detachFromFrame): - (WebKit::DocumentLoader::decreaseLoadCount): - -2009-09-02 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez and Gustavo Noronha. - - [Gtk] Implement a WebDataSource for the gtk port - https://bugs.webkit.org/show_bug.cgi?id=24758 - - Add data source API getters to WebKitWebFrame. - Also add WebKitWebDataSource unit test. - - * tests/testwebdatasource.c: Added. - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - -2009-09-02 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez and Gustavo Noronha. - - [Gtk] Implement a WebDataSource for the gtk port - https://bugs.webkit.org/show_bug.cgi?id=24758 - - Subclass DocumentLoader for Gtk and implement it under the WebKit - namespace. Add WebKitWebDataSource implementation that closely - follows the mac implementation of the API. - - * WebCoreSupport/DocumentLoaderGtk.cpp: Added. - * WebCoreSupport/DocumentLoaderGtk.h: Added. - * webkit/webkitwebdatasource.cpp: Added. - * webkit/webkitwebdatasource.h: Added. - -2009-09-01 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Avoid causing unexpected issues with window sizing when sites - disable scrollbars completely. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scrollbarsModeDidChange): - * tests/testwindow.c: - (test_webkit_window_scrollbar_policy): - * webkit/webkitwebframe.cpp: - (webkit_web_frame_class_init): - -2009-09-01 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez and Gustavo Noronha. - - [Gtk] Implement a WebDataSource for the gtk port - https://bugs.webkit.org/show_bug.cgi?id=24758 - - Implement WebKitWebResource for the resource-related API for - WebKitWebDataSource. - - * GNUmakefile.am: - -2009-09-01 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=28842 - [GTK] Do not emit extra FINISHED load-status signals - - Do not emit FINISHED load-status signals on our own, just rely on - WebCore for that. Avoids emitting FINISHED several times when we - fail to load a URI. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * tests/testloading.c: - (web_loading_fixture_setup): - (web_loading_fixture_teardown): - (load_finished_cb): - (status_changed_cb): - (test_loading_status): - (load_error_status_changed_cb): - (load_error_cb): - (test_loading_error): - (main): - * webkit/webkitwebframe.h: - -2009-08-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=28466 - When downloading a file, two GET requests are sent to the HTTP server - - Support reusing a connection that is already ongoing, instead of - cancelling the connection and creating another. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::download): - * webkit/webkitdownload.cpp: - (webkit_download_new_with_handle): - (webkit_download_start): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_request_download): - -2009-08-31 Alexey Proskuryakov <ap@apple.com> - - Gtk build fix. - - This is also a behavior fix, at least on debug builds - a caller of - webkit_web_history_item_new_with_data() could pass an URL that could cause an assertion - failure in KURL. - - * webkit/webkitwebhistoryitem.cpp: (webkit_web_history_item_new_with_data): Pass a null - KURL as base to parse properly. - -2009-08-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=25889 - [GTK] scrollbar policy for main frame is not implementable - - Add properties and a signal to report scrollbar policy changes to - client code, and a default handler that does the right thing when - using GtkScrolledWindow. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scrollbarsModeDidChange): - * WebCoreSupport/ChromeClientGtk.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_property): - (webkit_web_frame_class_init): - (webkit_web_frame_get_horizontal_scrollbar_policy): - (webkit_web_frame_get_vertical_scrollbar_policy): - * webkit/webkitwebframe.h: - * tests/testwindow.c: Added. - (load_finished_cb): - (test_webkit_window_scrollbar_policy): - (main): - -2009-08-28 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha and Xan Lopez. - - [Gtk] Add view source mode API - https://bugs.webkit.org/show_bug.cgi?id=28805 - - Implement setter and getter for "view source" mode. - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_view_source_mode): - (webkit_web_frame_get_view_source_mode): - * webkit/webkitwebview.h: - -2009-08-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=28738 - Expose undo/redo functionality in WebKitWebView - - Expose undo/redo functionality in WebKitWebView, keeping the - default bindings as they were. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::): - * webkit/webkitwebview.cpp: - (webkit_web_view_real_undo): - (webkit_web_view_real_redo): - (webkit_web_view_class_init): - (webkit_web_view_can_undo): - (webkit_web_view_undo): - (webkit_web_view_can_redo): - (webkit_web_view_redo): - * webkit/webkitwebview.h: - -2009-08-24 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - News about the 1.1.13 release. - - * NEWS: - -2009-08-24 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Add new symbols, and an index of new symbols for the 1.1.13 - release. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-08-23 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix a couple of typos. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-08-23 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update editing-behavior property here too. - - * webkit/webkitwebview.cpp: - (webkit_web_view_settings_notify): - -2009-08-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Rubberstamped by Gustavo Noronha. - - Fix regressions introduced by http://trac.webkit.org/changeset/47690. - - Update the setting whenever the property gets set. - - * webkit/webkitwebview.cpp: - (webkit_web_view_settings_notify): - -2009-08-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - [Gtk] API for disabling local file access to web URLs - https://bugs.webkit.org/show_bug.cgi?id=28663 - - Add a setting to enable or disable file access to web URLs. It's - disabled by default for security reasons. - - * 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): - -2009-08-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=28154 - clicking below end of text in a textarea moves cursor to wrong position - - Expose the EditingBehavior setting and set it by default to Mac, - since that what matches the GTK+ default behavior. - - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - (webkit_web_settings_copy): - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_update_settings): - -2009-08-20 Aaron Boodman <aa@chromium.org> - - Hopefully the last speculative build for gtk. - - * webkit/webkitprivate.cpp: - (webkit_white_list_access_from_origin): - * webkit/webkitprivate.h: - -2009-08-20 David Levin <levin@chromium.org> - - Another speculative build for gtk. - - * webkit/webkitprivate.cpp: - (webkit_white_list_access_to_origin): - -2009-08-20 David Levin <levin@chromium.org> - - Speculative build for gtk. - - * webkit/webkitprivate.cpp: - (webkit_white_list_access_to_origin): - -2009-08-19 Aaron Boodman <aa@chromium.org> - - Fix build break. - - * webkit/webkitprivate.h: "WEBKIT API" -> "WEBKIT_API" - -2009-08-19 Aaron Boodman <aa@chromium.org> - - Reviewed by David Levin. - - https://bugs.webkit.org/show_bug.cgi?id=24853: Provide a way for WebKit clients to - specify a more granular policy for cross-origin XHR access. - - * webkit/webkitprivate.cpp: - (webkit_white_list_access_to_origin): Add API to manipulate origin access whitelists. - (webkit_reset_origin_access_white_lists): Ditto. - * webkit/webkitprivate.h: Ditto. - -2009-08-18 Xan Lopez <xlopez@igalia.com> - - Rubber-stamped by Holger Freyther. - - Remove an unneeded include. - - * WebCoreSupport/DragClientGtk.cpp: - -2009-08-18 Fumitoshi Ukai <ukai@chromium.org> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=28443 - Fix build break with gtk older than 2.14. - - WebKit gtk port requires gtk 2.10 or later, but DragClientGtk.cpp - uses gtk_widget_get_window that is introduced in 2.14. - - * WebCoreSupport/DragClientGtk.cpp: - define gtk_widget_get_window for gtk older than 2.14. - -2009-08-18 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Oliver Hunt. - - [Gtk] crash when closing page from javascript - https://bugs.webkit.org/show_bug.cgi?id=27439 - - Do not unref the WebView in ChromeClientGtk::closeWindowSoon - because (1) a create-web-view handler can return a NULL WebView, - (2) the created WebView is owned by its containing widget, and (3) - clients may not handle the close-web-view signal so this avoids - unreffing a WebView more than once. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::closeWindowSoon): - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-08-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=19360 - Frags on current page don't generate "navigation-requested" events - - Fix order of parameters for the creation of SubstituteData object, - so that normal data loads do not have an unreachable URL. Also - remove a confusion about the purpose of the last parameter. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_load_data): - -2009-08-18 Drew Wilson <atwilson@google.com> - - Reviewed by Eric Seidel. - - Need to extend DumpRenderTree to expose number of worker threads - https://bugs.webkit.org/show_bug.cgi?id=28292 - - * webkit/webkitprivate.h: - * webkit/webkitworkers.cpp: Added. - (webkit_worker_thread_count): - Exposed WebCore::WorkerThread::workerThreadCount() for the gtk version of DumpRenderTree. - -2009-08-18 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Fix the ATK unit test. - - We now support line boundaries in the get_text functions, so we - need to make sure the test has the layout we expect by giving it - enough space to fit in one line. - - * tests/testatk.c: - (test_webkit_atk_get_text_at_offset): - -2009-08-15 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Xan Lopez. - - Fix compiler warnings. - - * webkit/webkitwebview.cpp: - (clipboard_contents_received): - (webkit_web_view_drag_data_get): - -2009-08-14 Jiahua Huang <jhuangjiahua@gmail.com> - - Reviewed by Jan Alonzo. - - [gtk] Pasteboard/GtkClipboard can't handle the "text/html" target. - https://bugs.webkit.org/show_bug.cgi?id=27028 - - Add a function in WebKit::PasteboardHelperGtk that will return the - value of WEBKIT_WEB_VIEW_TARGET_INFO_HTML, - and WebCore::clipboard_get_contents_cb will use that. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::PasteboardHelperGtk::getWebViewTargetInfoHtml): - * WebCoreSupport/PasteboardHelperGtk.h: - -2009-08-14 Benjamin Otte <otte@gnome.org> - - Reviewed by Gustavo Noronha. - - Fix webkit_web_view_set_highlight_text_matches() so that highlighting - works properly in documents with frames. - - * webkit/webkitwebview.cpp: - (webkit_web_view_set_highlight_text_matches): - -2009-08-13 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Gustavo Noronha. - - [GTK] Drag and drop support - https://bugs.webkit.org/show_bug.cgi?id=23642 - - Adds support for drag actions in WebKitWebView and DragClient. - - Defines a support structure that can hold additional drag and drop data, - such as selection data or target IDs (infos) and can be passed through - clipboard requests. - - Implements DragClient functions that gather start position of the drag - and start the GTK drag. - - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::DragClient): - (WebKit::DragClient::willPerformDragSourceAction): - (WebKit::DragClient::startDrag): - (WebKit::DragClient::createDragImageForLink): A small style fix. - * WebCoreSupport/DragClientGtk.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_drag_end): - (clipboard_contents_received): GtkClipboard callback. - (webkit_web_view_drag_data_get): - (webkit_web_view_class_init): - (webkit_web_view_init): - * webkit/webkitwebview.h: Add GTK selection targets. - -2009-08-12 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed build fix. - - Last-minute change on the new soup API to use the keyring was not - reflected in our usage - the documentation says we should use - g_slist_free, and soup_auth_free_saved_users doesn't exist. - - * webkit/webkitsoupauthdialog.c: - (session_authenticate): - -2009-08-12 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - [GTK] Remove keyring optional features - https://bugs.webkit.org/show_bug.cgi?id=28173 - - Remove keyring support from our code and rely on libsoup to store - the authentication data if the user requests that support in their - application/library. - - * webkit/webkitsoupauthdialog.c: - (response_callback): - (show_auth_dialog): - (session_authenticate): - -2009-08-11 Benjamin Otte <otte@gnome.org> - - Reviewed by Xan Lopez. - - When instructed to print an out-of-range page, print an empty page - instead of crashing. - - * webkit/webkitwebframe.cpp: - (draw_page_callback): - -2009-08-10 Brady Eidson <beidson@apple.com> - - GTK build fix. - - * webkit/webkitdownload.cpp: - (webkit_download_get_suggested_filename): - -2009-08-08 Xan Lopez <xlopez@igalia.com> - - Roll out r46928, since it wasn't done in accordance with the - agreed naming. - - * ChangeLog: - - Remove the ChangeLog entry, since it was added at the bottom of - the file. - - * gdom/GdomDOMObject.h: Removed. - * gdom/GdomDOMObjectPrivate.h: Removed. - -2009-08-08 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - [Gtk] Enable accessibility in Gtk DRT - https://bugs.webkit.org/show_bug.cgi?id=25989 - - Add SPI to get the focused accessible element to be used by DRT. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_focused_accessible_element): - -2009-07-30 Martin Robinson <mrobinson@appcelerator.com> - - Reviewed by Xan Lopez, Gustavo Noronha and Jan Alonzo. - - [GTK] new-window-policy-decision-requested provides no information about the target frame - https://bugs.webkit.org/show_bug.cgi?id=27792 - - Add frameName property to the WebKitWebNavigation object. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::getNavigationAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_get_property): - (webkit_web_navigation_action_set_property): - (webkit_web_navigation_action_class_init): - (webkit_web_navigation_action_get_target_frame): - (webkit_web_navigation_action_set_target_frame): - * webkit/webkitwebnavigationaction.h: - -2009-07-29 Kevin McCullough <kmccullough@apple.com> - - Reviewed by Darin Adler. - - Added foundation work to allow a testing infrastructure for the Web - Inspector. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorWindowObjectCleared): - * WebCoreSupport/InspectorClientGtk.h: - -2009-07-29 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Eric Seidel and Xan Lopez. - - [Gtk] Enable http/tests/appcache tests - https://bugs.webkit.org/show_bug.cgi?id=27674 - - Add 'enable-offline-web-application-cache' WebSetting to enable - or disable the appcache. Also, Add appcache SPI for DRT to use. - - * webkit/webkitapplicationcache.cpp: Added. - (webkit_application_cache_set_maximum_size): - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitprivate.h: - * 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-07-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Add information about the regression fix for WEBKIT_DEBUG. - - * NEWS: - -2009-07-28 Priit Laes <plaes@plaes.org> - - Reviewed by Xan Lopez. - - Fix mnemonics in the soup authentication dialog. - - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - -2009-07-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - * NEWS: update for 1.1.12 release. - -2009-07-27 Alexey Proskuryakov <ap@webkit.org> - - Build fix. - - * webkit/webkitwebframe.cpp: (webkit_gc_count_javascript_objects): Added a namespace to - SilenceAssertionsOnly. - -2009-07-27 Alexey Proskuryakov <ap@webkit.org> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=27735 - Give a helpful name to JSLock constructor argument - - * webkit/webkitwebframe.cpp: - (webkit_gc_count_javascript_objects): - -2009-07-24 Priit Laes <plaes@plaes.org> - - Reviewed by Xan Lopez. - - [Gtk] Password is saved into gnome-keyring even if auth. fails - https://bugs.webkit.org/show_bug.cgi?id=27560 - - Check authentication result and save password only when authentication - succeeds. - - * webkit/webkitsoupauthdialog.c: - (free_authData): - (response_callback): - (save_password_callback): - -2009-07-24 Andrei Popescu <andreip@google.com> - - Reviewed by Anders Carlsson. - - ApplicationCache should have size limit - https://bugs.webkit.org/show_bug.cgi?id=22700 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::reachedMaxAppCacheSize): - Adds empty implementation of reachedMaxAppCacheSize. - * WebCoreSupport/ChromeClientGtk.h: - -2009-07-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Eric Seidel. - - [Gtk] Add implementation of GCController for DRT - https://bugs.webkit.org/show_bug.cgi?id=27636 - - Add SPI for GCController to use. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_gc_collect_javascript_objects): - (webkit_gc_collect_javascript_objects_on_alternate_thread): - (webkit_gc_count_javascript_objects): - -2009-07-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Mark Rowe. - - Fix compiler warning. - - * tests/testwebsettings.c: - (test_webkit_web_settings_user_agent): - -2009-07-22 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Remove unused variables. - - * webkit/webkitwebview.cpp: - (webkit_web_view_grab_focus): - (webkit_web_view_focus_in_event): - -2009-07-21 Priit Laes <plaes@plaes.org> - - Reviewed by Holger Freyther. - - [GTK+] Missing accelerator in authentication dialog - https://bugs.webkit.org/show_bug.cgi?id=25509 - - Add accelerator to checkbox text. - - * WebKit/gtk/webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - -2009-07-21 Priit Laes <plaes@plaes.org> - - Reviewed by Holger Freyther. - - [GTK] http auth dialog pops up twice after a cancelled atempt - https://bugs.webkit.org/show_bug.cgi?id=24818 - - Remove workaround required for libsoup versions <=2.26.2 as we depend - on 2.27.4 now. - - * webkit/webkitsoupauthdialog.c: - (session_authenticate): - -2009-07-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - [GTK] Widget size negotiation - https://bugs.webkit.org/show_bug.cgi?id=17154 - - Implement proper size request for the WebView widget. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::contentsSizeChanged): - * webkit/webkitwebview.cpp: - (webkit_web_view_size_request): - (webkit_web_view_class_init): - -2009-07-16 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Jan Alonzo. - - [GTK+] Update the focus handling code. - - Change focus-in to always call setActive(true), call - FocusController::setFocusedFrame when no focused frame exists - other SelectionController::setActive. This is matching Windows - and Qt. - - On focus-out call FocusController::setActive(false) and - SelectionController::setFocued(false). This is matching Windows - and Qt as well. - - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): - (webkit_web_view_focus_out_event): - -2009-07-16 Xiaomei Ji <xji@chromium.org> - - Reviewed by Dan Bernstein. - - This is the 2nd part of fixing "RTL: tooltip does not get its directionlity from its element's." - https://bugs.webkit.org/show_bug.cgi?id=24187 - - Add one extra parameter to the callee of HitTestResult::title() due to the signature change. - - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): Add direction as a parameter to the callee of HitTestResult::title(). - -2009-07-16 Xiaomei Ji <xji@chromium.org> - - Reviewed by Darin Adler. - - Fix tooltip does not get its directionality from its element's directionality. - https://bugs.webkit.org/show_bug.cgi?id=24187 - - Per mitz's suggestion in comment #6, while getting the plain-text - title, we also get the directionality of the title. How to handle - the directionality is up to clients. Clients could ignore it, - or use attribute or unicode control characters to display the title - as what they want. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setToolTip): Add directionality as 2nd parameter to setToopTip() (without handling it yet). - * WebCoreSupport/ChromeClientGtk.h: Add directionality as 2nd parameter to setToolTip(). - -2009-07-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Jan Alonzo. - - Fix enable-xss-auditor property documentation, and default value - to match the fact that it is now enabled by default. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - -2009-07-14 Zoltan Horvath <hzoltan@inf.u-szeged.hu> - - Reviewed by Darin Adler. - - Change all Noncopyable inheriting visibility to public. - https://bugs.webkit.org/show_bug.cgi?id=27225 - - Change all Noncopyable inheriting visibility to public because - it is needed to the custom allocation framework (bug #20422). - - * webkit/webkitdownload.cpp: - -2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Late NEWS file for 1.1.11. - - * NEWS: - -2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Changes to the doc control files for 1.1.11. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-07-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Holger Freyther. - - Fix unit test to use the correct assumption that the SoupMessage - will be NULL when WebKitNetworkRequest is created from an URI. - - * tests/testnetworkrequest.c: - (test_network_request_create_destroy): - -2009-07-13 Jan Michael Alonzo <jmalonzo@webkit.org> - - <https://bugs.webkit.org/show_bug.cgi?id=27171> [Gtk] - REGRESSION (r45440): fails at fast/events/frame-programmatic-focus.html - - Reviewed by Gustavo Noronha. - - focus-in and focus-out events only get triggered when there's user - interaction, hence setFocused(bool) never gets called when - focusEvent is triggered when running the layout tests. The - solution seems to be to implement grab-focus too so we can call - setFocused(bool) when a widget has focus. - - * webkit/webkitwebview.cpp: - (webkit_web_view_grab_focus): - (webkit_web_view_focus_in_event): - (webkit_web_view_class_init): - -2009-07-13 Jan Michael Alonzo <jmalonzo@webkit.org> - - https://bugs.webkit.org/show_bug.cgi?id=26718 [Gtk] Add support for javascript windows for DRT - - Reviewed by Gustavo Noronha and Xan Lopez. - - Add API to support opening and closing of JavaScript windows automatically. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::closeWindowSoon): - * webkit/webkitprivate.h: - * 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_real_close_web_view): - (webkit_web_view_class_init): - (webkit_web_view_update_settings): - (webkit_web_view_settings_notify): - (webkit_web_view_set_group_name): - * webkit/webkitwebview.h: - -2009-07-12 Brent Fulgham <bfulgham@gmail.com> - - Speculative build fix after http://trac.webkit.org/changeset/45786. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::addMessageToConsole): - * WebCoreSupport/ChromeClientGtk.h: - -2009-07-09 Beth Dakin and Jon Honeycutt <bdakin@apple.com> - - Reviewed by Dave Hyatt. - - Make Widget RefCounted to fix: - - <rdar://problem/7038831> REGRESSION (TOT): In Mail, a crash occurs - at WebCore::Widget::afterMouseDown() after clicking To Do's close - box - <rdar://problem/6978804> WER #16: Repro Access Violation in - WebCore::PluginView::bindingInstance (1310178023) - -and- - <rdar://problem/6991251> WER #13: Crash in WebKit! - WebCore::PluginView::performRequest+203 (1311461169) - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - (WebKit::FrameLoaderClient::createJavaAppletWidget): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Jan Alonzo. - - Use soup's content sniffing - https://bugs.webkit.org/show_bug.cgi?id=26982 - - Add the new Content Sniffing feature provided by libsoup. - - * webkit/webkitprivate.cpp: - (webkit_init): - -2009-07-05 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Xan Lopez. - - Always initialize WebCore. - - It is possible that WebKitWebSettings and other classes get - constructed before the WebKitWebView. In this case WebCore is - not yet properly initialized. Add webkit_init to every class - that can be constructed by API users. - - * webkit/webkitdownload.cpp: - (webkit_download_class_init): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_class_init): - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_class_init): - * webkit/webkitwebhistoryitem.cpp: - (webkit_web_history_item_class_init): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_class_init): - * webkit/webkitwebwindowfeatures.cpp: - (webkit_web_window_features_class_init): - -2009-07-03 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez and Gustavo Noronha. - - Set user-agent from application - https://bugs.webkit.org/show_bug.cgi?id=17375 - - Add 'user-agent' setter/getter API to WebSettings. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::userAgent): - * WebCoreSupport/FrameLoaderClientGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitversion.h.in: - * webkit/webkitwebsettings.cpp: - (webkit_get_user_agent): - (webkit_web_settings_class_init): - (webkit_web_settings_finalize): - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - (webkit_web_settings_copy): - (webkit_web_settings_get_user_agent): - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - -2009-07-02 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - Update the new boolean property in FocusController that keeps - track of whether or not the Page is focused. - - * webkit/webkitwebview.cpp: - (webkit_web_view_focus_in_event): - (webkit_web_view_focus_out_event): - -2009-06-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - Fix a couple of compiler warnings. - - * webkit/webkitwebnavigationaction.cpp: - * webkit/webkitwebview.cpp: - (webkit_web_view_real_move_cursor): - -2009-06-28 Xan Lopez <xlopez@igalia.com> - - Fix the GTK+ build. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::isSpeaking): - * WebCoreSupport/ContextMenuClientGtk.h: - -2009-06-24 Jiahua Huang <jhuangjiahua@gmail.com> - - Reviewed by Holger Freyther. - - [Gtk] Add Undo/Redo support to WebKitGtk - https://bugs.webkit.org/show_bug.cgi?id=26573 - - Implement EditorClient::undo and other interested funcs. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::registerCommandForUndo): - (WebKit::EditorClient::registerCommandForRedo): - (WebKit::EditorClient::clearUndoRedoOperations): - (WebKit::EditorClient::canUndo): - (WebKit::EditorClient::canRedo): - (WebKit::EditorClient::undo): - (WebKit::EditorClient::redo): - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: - -2009-06-20 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha and Xan Lopez. - - [Gtk] Implement DRT XSS auditor support - https://bugs.webkit.org/show_bug.cgi?id=26571 - - Add a setting "enable-xss-auditor" to enable this feature. - - * 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-06-20 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha and Xan Lopez. - - webkit_web_back_forward_list_add_item() should add a ref for the history item - https://bugs.webkit.org/show_bug.cgi?id=26517 - - Add a ref to the WebHistoryItem when it's added to the back - forward list through webkit_web_back_forward_list_add_item. - This keeps the history item alive and prevents pywebkitgtk from - crashing - - * tests/testwebbackforwardlist.c: - (test_webkit_web_history_item_lifetime): - (test_webkit_web_back_forward_list_order): - (test_webkit_web_back_forward_list_add_item): - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_add_item): - -2009-06-20 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Jan Alonzo. - - Initial test case for loading statuses. - - * tests/testloading.c: Added. - (load_finished_cb): - (status_changed_cb): - (test_loading_status): - (main): - -2009-06-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Jan Alonzo. - - Fix the ordering in which the new load status goes into the enum - to avoid ABI breakage. - - * webkit/webkitwebframe.h: - -2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez and Christian Dywan. - - Add a new load status to report that the first visually non-empty - layout has been done. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout): - * webkit/webkitwebframe.h: - -2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Fix parameters of navigation-policy-decision-requested callback, - to be correct in number and type - - * tests/testhttpbackend.c: - (navigation_policy_decision_requested_cb): - -2009-06-18 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::loadDone): - (WebKit::FrameLoaderClient::dispatchDidFinishLoad): - (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidFailLoad): Introduce the static - function loadDone to emit "load-done" and update the status and update - the relevent places. We missed some status notifications before. - -2009-06-18 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Be consistent in always using the term URI instead of URL in the - documentation of WebKitWebView signals. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-06-16 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Do not use g_assert_cmpint to test for NULL pointer, just - g_assert. - - * tests/testnetworkrequest.c: - (test_network_request_create_destroy): - -2009-06-15 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=26377 - [GTK] Confusion about range of 'progress' property - - Range for the progress property is 0.0 .. 1.0, don't multiply it - by 100 to make it a percentage. - - * webkit/webkitwebview.cpp: - (webkit_web_view_get_progress): - -2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Add new symbols list for 1.1.10 release. - - * docs/webkitgtk-docs.sgml: - -2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Xan Lopez. - - Fix Since tags for the new uri and message properties. - - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_class_init): - -2009-06-15 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Adding new documented API to the generated - documentation. - - * docs/webkitgtk-sections.txt: - -2009-06-15 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Update NEWS for 1.1.10 release. - - * NEWS: - -2009-06-11 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - Add a test to perform an actual download. - - * tests/testdownload.c: - (navigation_policy_decision_requested_cb): - (notify_status_cb): - (download_requested_cb): - (test_webkit_download_perform): - (main): - -2009-06-11 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - Fix crash when downloading, caused by assuming SoupMessage would - be there. This change factors the logic required to create a - ResourceRequest from a WebKitNetworkRequest into a core() - function, like we have for some other classes. - - * webkit/webkitdownload.cpp: - (webkit_download_start): - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_load_request): - -2009-06-10 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - Make WebKitNetworkRequest a proper GObject, making URI and - SoupMessage properties. Also adding unit tests for creation and - destruction. - - * tests/testnetworkrequest.c: Added. - (test_network_request_create_destroy): - (test_network_request_properties): - (main): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_get_property): - (webkit_network_request_set_property): - (webkit_network_request_class_init): - (webkit_network_request_init): - (webkit_network_request_constructor): - (webkit_network_request_new_with_core_request): - (webkit_network_request_new): - (webkit_network_request_set_uri): - (webkit_network_request_get_uri): - * webkit/webkitnetworkrequest.h: - -2009-06-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - News for 1.1.9. - - * NEWS: - -2009-06-09 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha. - - Clear the frame name before we run each tests so we don't get - "someFloaString" or "3" in the target frame name. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_clear_main_frame_name): - - -2009-06-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=25415 - [GTK][ATK] Please implement support for get_text_at_offset - - Update test for new implementation (it fixes two bugs and adds - actual implementations for LINE boundaries). - - * tests/testatk.c: - (test_webkit_atk_get_text_at_offset): - -2009-06-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=26104 - [GTK] Make NetworkRequest a proper GObject and expose SoupMessage - - Refactor how SoupMessage is handled, so that our ResourceRequest - object doesn't have to store it as a member, which complicates - managing ResourceRequest's lifetvime. - - * tests/testhttpbackend.c: - (navigation_policy_decision_requested_cb): - (test_soup_message_lifetime): - * webkit/webkitnetworkrequest.cpp: - (WTF::SoupMessage): - (webkit_network_request_new_with_core_request): - -2009-06-08 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=26240 - [GTK] Try again button loses query strings - - Only trigger reload, when try again is clicked, this way we do not - lose the query strings, like we did when also triggering a form - submission. - - * resources/error.html: - -2009-06-06 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=26175 - [GTK] Download progress notification should be throttled, for the benefit of download managers - - Throttle notifications for the 'progress' property of the Download - object, and update documentation to note the fact that this is - being done, and how to get all notifications if you really care - about them. - - * webkit/webkitdownload.cpp: - (webkit_download_class_init): - (webkit_download_received_data): - -2009-05-29 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha. - - Fixed compile warning when comparing the different navigation types - - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_class_init): - -2009-05-29 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=26075 - [GTK] Refactor key scrolling code - - After the scrolling changes in r44177 we can now use the - FrameView::scroll method like the other ports, keeping the magic - constants for the scrolling amounts inside WebCore proper. - - * webkit/webkitwebview.cpp: - (webkit_web_view_real_move_cursor): - -2009-05-29 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Jan Alonzo. - - Make NetworkRequest carry a reference of the SoupMessage used by - ResourceRequest, and use that to create new ResourceRequests where - needed, so that no information is lost while passing around - NetworkRequest objects. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - (WebKit::FrameLoaderClient::startDownload): - * webkit/webkitdownload.cpp: - (webkit_download_start): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_finalize): - (webkit_network_request_new_with_core_request): - (webkit_network_request_new): - (webkit_network_request_get_message): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_load_request): - -2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=26048 - navigation-policy-decision-requested documentation incomplete - - Fix documentation for all policy decision request signals, to - mention that an actual decision is expected when you return TRUE, - meaning that you handled the signal. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-05-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Mention the implementation of the new AtkText methods. - - * NEWS: - -2009-05-19 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo and Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=25415 - [GTK][ATK] Please implement support for get_text_at_offset - - New test file for ATK functionality. - - * tests/testatk.c: Added. - (bail_out): - (test_get_text_function): - (test_webkit_atk_get_text_at_offset): - (main): - -2009-05-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Document changes worth noting for 1.1.8. - - * NEWS: - -2009-05-27 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=26039 - [GTK] WebKitWebHistoryItem lifetime fixes - - Modify the management of history items by the BackForward list. - - Having the objects add themselves to a hash table with an extra - reference made impossible for the cleanup code in the dispose - method to be ever called in normal conditions, since dispose is - called before getting rid of the last reference, which the objects - were making to themselves. Get rid of this extra reference and - move the responsibility of the cleanup to the BackForward list - itself, which effectively owns the WebKitWebHistoryItems now. - - Also, update the tests to reflect this change. - - * tests/testwebbackforwardlist.c: - (test_webkit_web_history_item_lifetime): - (test_webkit_web_back_forward_list_order): - (test_webkit_web_back_forward_list_add_item): - * tests/testwebhistoryitem.c: - (web_history_item_fixture_setup): - (web_history_item_fixture_teardown): - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - (webkit_web_back_forward_list_dispose): - (webkit_web_back_forward_list_class_init): - * webkit/webkitwebhistoryitem.cpp: - (webkit_history_items): - (webkit_history_item_add): - (webkit_web_history_item_dispose): - (WebKit::kit): - -2009-05-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=26039 - [GTK] WebKitWebHistoryItem lifetime fixes - - Delete the BackForwardList before the Page, otherwise the references - to the WebKitWebHistoryItems will be gone. - - * webkit/webkitwebview.cpp: - (webkit_web_view_dispose): - -2009-05-27 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - Add comment to clarify why scrolling is done as it is and not with - gdk_window_scroll. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::scroll): - -2009-05-27 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Adding new symbols index for 1.1.8. - - * docs/webkitgtk-docs.sgml: - -2009-05-26 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Xan Lopez. - - Add a new signal called "create-plugin-widget" and emit it from - within the FrameLoaderClientGtk::createPlugin method. If a - GtkWidget gets returned it will be embedded as a WebCore::Widget - using the new GtkPluginWidget. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - * webkit/webkitwebview.cpp: - (webkit_signal_accumulator_object_handled): - (webkit_web_view_class_init): - * webkitmarshal.list: - -2009-05-24 Xan Lopez <xlopez@igalia.com> - - Reviewed by Mark Rowe. - - https://bugs.webkit.org/show_bug.cgi?id=25987 - [GTK] Clarify WebKitWebView::download-requested documentation - - Explain a bit why this signal is not emitted by default and offer - a common solution/setup for that issue. - - * webkit/webkitwebview.cpp: - (webkit_web_view_class_init): - -2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Rubber-stamped by Gustavo Noronha. - - Break the switch once private browsing is selected. - - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_set_property): - (webkit_web_settings_get_property): - -2009-05-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Gustavo Noronha and Xan Lopez. - - [Gtk] Enable database and localStorage support - https://bugs.webkit.org/show_bug.cgi?id=25629 - - Add settings to enable or disable database and localStorage - support and enable them by default. This allows databases to be - shown in the WebInspector as well as allow us to run the storage - 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-05-23 David Kilzer <ddkilzer@apple.com> - - Part 2 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr - - <https://bugs.webkit.org/show_bug.cgi?id=25495> - - Reviewed by Oliver Hunt. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::createHTMLParserQuirks): Return a - PassOwnPtr<> instead of a raw HTMLParserQuirks pointer. - -2009-05-22 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Jan Alonzo. - - Improve NetworkRequest documentation. - - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_class_init): - (webkit_network_request_init): - -2009-05-21 Xan Lopez <xlopez@igalia.com> - - Reviewed by Maciej Stachowiak. - - https://bugs.webkit.org/show_bug.cgi?id=24818 - [GTK] http auth dialog pops up twice after a cancelled atempt - - Workaround libsoup bug - http://bugzilla.gnome.org/show_bug.cgi?id=583462, which made - libsoup emit the 'authenticate' signal more often than it was - expected. - - We'll be able to remove this when we depend on libsoup > 2.26.2. - - * webkit/webkitsoupauthdialog.c: - (session_authenticate): - -2009-05-21 Darin Fisher <darin@chromium.org> - - Fix build bustage. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::getAutoCorrectSuggestionForMisspelledWord): Add stub for method. - * WebCoreSupport/EditorClientGtk.h: - -2009-05-20 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=25834 - - Make ChromeClient a interface again - - With recent additions to ChromeClient.h empty defaults were - added. This is bad for porters as these changes go unnoticed - and at runtime no notImplemented warning is logged and grepping - for notImplemented will not show anything. Change this Client - to be like the other Clients again and always have pure virtuals - (but for stuff inside #ifdef PLATFORM(MAC)). - - Update the various WebKit/* implementations to compile again. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setCursor): - (WebKit::ChromeClient::requestGeolocationPermissionForFrame): - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::scrollRectIntoView): - -2009-05-19 Xan Lopez <xlopez@igalia.com> - - Reviewed by Jan Alonzo. - - Do not try to free enchant broker and dictionary if they do not - exist, those functions aren't NULL-safe. - - * webkit/webkitwebsettings.cpp: - (free_spell_checking_language): - -2009-05-15 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Jan Alonzo. - - Plug memory leak. - - * webkit/webkitwebsettings.cpp: - (free_spell_checking_language): - (webkit_web_settings_finalize): - (webkit_web_settings_set_property): - -2009-05-15 Fridrich Strba <fridrich.strba@bluewin.ch> - - Reviewed by Jan Alonzo. - - Converting filename to uri by concatenating strings is broken - on Windows. Use proper glib conversion functions. - - * webkit/webkitwebview.cpp: - (webkit_web_view_open): - * tests/testdownload.c: - (test_webkit_download_create): - -2009-05-13 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Do not handle KeyEvents with Ctrl or Alt modifiers that we - otherwise know nothing about. Otherwise shortcuts defined in the - WebView will never be executed. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::handleEditingKeyboardEvent): - -2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Add information about the SVG index bounds check committed in - r43590. - - * NEWS: - -2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Note changes since 1.1.6. - - * NEWS: - -2009-05-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Updated control file, and main file for the 1.1.7 - release. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-05-11 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25685 - [GTK] Middle click paste form the pasteboard - - For paste from middle button (button==2) we want to use - the GDK_PRIMARY_SELECTION. Implement the new getCurrentTarget - method in PasteboardHelperGtk by asking the WebView which - clipboard to use. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::PasteboardHelperGtk::getCurrentTarget): - * WebCoreSupport/PasteboardHelperGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_button_press_event): - (webkit_web_view_use_primary_for_paste): - -2009-05-12 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [Gtk] Various autotools build refactoring and fixes - https://bugs.webkit.org/show_bug.cgi?id=25286 - - Add glib-2.0 to the list of required package. - - * webkit.pc.in: - -2009-05-11 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=25697 - [GTK] Warnings building WebKit/gtk/tests/testwebframe.c - - * tests/testwebframe.c: - (test_webkit_web_frame_create_destroy): Declare webView as a GtkWidget* - to fix pointer type incompatibility warnings. - -2009-05-08 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Make the scan program call g_thread_init(NULL) in addition to - g_type_init(), so that it actually works. - - * docs/GNUmakefile.am: - -2009-05-08 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Unify scrolling code via adjustments and keys. Use the WebCore - defined constants, since that's what people are most used to at - this point. - - * ChangeLog: - * webkit/webkitwebview.cpp: - (webkit_web_view_real_move_cursor): - -2009-05-07 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): Add missing - call to notifyStatus in the committed case and a missing property notify. - -2009-05-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=24786 - WebKitDownload sometimes suggests peculiar filenames - - When a download is requested by an ongoing request, use the already - provided response to set the suggested filename for the WebKitDownload - object, if available. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::download): - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_set_property): - (_WebKitDownloadPrivate::webkit_download_get_suggested_filename): - (_WebKitDownloadPrivate::webkit_download_set_suggested_filename): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - -2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - GTK+ API implementation files have bogus extern "C" entries - https://bugs.webkit.org/show_bug.cgi?id=24322 - - Remove bogus extern "C" from the source files. - - * webkit/webkitdownload.cpp: - (DownloadClient::cannotShowURL): - * webkit/webkiterror.cpp: - (webkit_plugin_error_quark): - * webkit/webkitnetworkrequest.cpp: - (webkit_network_request_get_uri): - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitversion.cpp: - (webkit_micro_version): - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebframe.cpp: - (webkit_web_frame_get_load_status): - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebinspector.cpp: - (webkit_web_inspector_set_inspector_client): - * webkit/webkitwebnavigationaction.cpp: - (webkit_web_navigation_action_get_modifier_state): - * webkit/webkitwebpolicydecision.cpp: - (webkit_web_policy_decision_cancel): - * webkit/webkitwebsettings.cpp: - (webkit_web_settings_get_spell_languages): - * webkit/webkitwebview.cpp: - * webkit/webkitwebwindowfeatures.cpp: - (webkit_web_window_features_equal): - -2009-05-06 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - Misc fixes to InspectorClientGtk. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::createPage): use g_filename_to_uri to - get the URI and use web_view_load_uri instead of the deprecated - web_view_open method for loading the URI. - (WebKit::InspectorClient::localizedStringsURL): implement. - -2009-05-05 Ben Murdoch <benm@google.com> - - Reviewed by Eric Seidel. - - Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds. - https://bugs.webkit.org/show_bug.cgi?id=24776 - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): - * WebCoreSupport/ChromeClientGtk.h: - -2009-05-06 Christian Dywan <christian@twotoasts.de> - - Reviewed by Gustavo Noronha. - - http://bugs.webkit.org/show_bug.cgi?id=17066 - [GTK] Improve frameloader signals - - Implement load-status and progress properties on the view, as well as - load-status on the frame. This supersedes the different load signals - load-progress-changed, load-committed, load-done, load-started and - load-finished which are not only misnamed but broken by design. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::notifyStatus): - (WebKit::FrameLoaderClient::postProgressStartedNotification): - (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): - (WebKit::FrameLoaderClient::dispatchDidFinishLoad): - (WebKit::FrameLoaderClient::dispatchDidStartProvisionalLoad): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2009-05-05 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - Fix memory leaks. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::checkSpellingOfString): - -2009-05-02 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=25466 - WebKitGtk+ 1.1.6 prints weird error messages in Liferea - - Use strlen instead of g_utf8_strlen when calculating the size of - the data that is being given to webkit_web_frame_load_string to be - loaded, so that we don't miss any of the content. - - * webkit/webkitwebframe.cpp: - -2009-05-01 Dimitri Glazkov <dglazkov@chromium.org> - - Unreviewed, bulid fix. - - Fix mis-applied patch. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): - -2009-05-01 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Timothy Hatcher. - - Add a FrameLoaderClient callback for the ResourceRetrievedByXMLHttpRequest. - - https://bugs.webkit.org/show_bug.cgi?id=25347 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-04-30 David Kilzer <ddkilzer@apple.com> - - Provide a mechanism to create a quirks delegate for HTMLParser - - Reviewed by David Hyatt. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::createHTMLParserQuirks): Added. The - default implementation of this factory method returns 0. - -2009-04-30 Pavel Feldman <pfeldman@chromium.org> - - Reviewed by Dimitri Glazkov. - - https://bugs.webkit.org/show_bug.cgi?id=25342 - Add MessageSource and MessageLevel parameters to the ChromeClient::addMessageToConsole. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::addMessageToConsole): - * WebCoreSupport/ChromeClientGtk.h: - -2009-04-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Update gtk-doc control and base sgml files for 1.1.6. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-04-28 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Updated with news for the 1.1.6 release. - - * NEWS: - -2009-04-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Leave a bit of space from the previous page when advacing a whole - page. This matches the behavior of our scrollbar scrolling code - and is just nicer in general. - - * webkit/webkitwebview.cpp: - -2009-04-28 Xan Lopez <xlopez@igalia.com> - - Unreviewed: committed a few bits by mistake, remove them. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::handleEditingKeyboardEvent): - -2009-04-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=16135 - [GTK] Support caret browsing - - Refactor keyboard event handling to work properly under caret - browsing mode. Most of the code comes from the Windows port. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::): - (WebKit::interpretKeyEvent): - (WebKit::handleEditingKeyboardEvent): - (WebKit::EditorClient::handleKeyboardEvent): - -2009-04-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=16135 - [GTK] Support caret browsing - - Based on a patch by Alp Toker. - - Add enable-caret-browsing setting to WebKitWebView. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - * webkit/webkitwebview.cpp: - -2009-04-27 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25409 - [GTK] incorrectly fallsback on cancellation - - Check whether we should fallback also on didFailLoad, so that we - don't get error pages showing up in parts of the content of some - sites because of, for instance, location changes. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - -2009-04-27 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25409 - [GTK] incorrectly fallsback on cancellation - - Correctly handle cancellation and frame loading interruption - caused by policy change. This also fixes - fast/frames/location-change.html. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::shouldFallBack): - -2009-04-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Mark Rowe. - - Plug memory leak. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - -2009-04-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=25391 - G_SIGNAL_ACTION flag in WebKitWebView signals - - Most of the signals in WebKitGTK+ have the G_SIGNAL_ACTION flag, - but I don't think this makes sense. The flag is meant for those - signals that can be emitted by the user to trigger some action in - the view, as if it were a normal API, which is not the case for - most of them. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_class_init): - * webkit/webkitwebframe.cpp: - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - * webkit/webkitwebview.cpp: - -2009-04-26 Xan Lopez <xlopez@igalia.com> - - Unreviewed, actually apply the right patch. - - * webkit/webkitwebview.cpp: - (webkit_web_view_move_cursor): - -2009-04-26 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - Pass a variable to hold the return value of the 'move-cursor' - signal, otherwise a crash can happen. - - * webkit/webkitwebview.cpp: - (webkit_web_view_move_cursor): - -2009-04-25 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=24786 - WebKitDownload sometimes suggests peculiar filenames - - Refactor the emission of the download-requested signal so that we - have less code duplication. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::downloadURL): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::startDownload): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - -2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - [GTK] Error reporting - https://bugs.webkit.org/show_bug.cgi?id=18344 - - Update FrameLoad errors to use WebKitErrors. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::cancelledError): - (WebKit::FrameLoaderClient::blockedError): - (WebKit::FrameLoaderClient::cannotShowURLError): - (WebKit::FrameLoaderClient::interruptForPolicyChangeError): - (WebKit::FrameLoaderClient::cannotShowMIMETypeError): - (WebKit::FrameLoaderClient::fileDoesNotExistError): - (WebKit::FrameLoaderClient::pluginWillHandleLoadError): - (WebKit::FrameLoaderClient::shouldFallBack): - * webkit/webkiterror.h: Added. - * webkit/webkiterror.cpp: Added. - -2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - [GTK] Error reporting - https://bugs.webkit.org/show_bug.cgi?id=18344 - - Display a default error page for load errors. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * resources/error.html: Added. - -2009-04-25 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Xan Lopez. - - [GTK] Error reporting - https://bugs.webkit.org/show_bug.cgi?id=18344 - - Add a WebKitWebFrame API to load alternate content for unreachable URLs. - Also add a new signal "load-error" for handling load errors. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::dispatchDidFailLoading): - (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebview.cpp: - -2009-04-24 Jan Michael Alonzo <jmalonzo@webkit.org> - - Rubber-stamped by Gustavo Noronha. - - Fix braces to comply with style guidelines. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::PasteboardHelperGtk::getClipboard): - (WebKit::PasteboardHelperGtk::getCopyTargetList): - (WebKit::PasteboardHelperGtk::getPasteTargetList): - -2009-04-24 Sergio GarcÃa-Cuevas <sergio_gcg@telefonica.net> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=17267 - [GTK] Primary selection/clipboard support - - Add a method for getting the primary selection. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - (WebKit::PasteboardHelperGtk::getPrimary): - * WebCoreSupport/PasteboardHelperGtk.h: - -2009-04-24 Johan Bilien <jobi@via.ecp.fr> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=25373 - Popup menu has the wrong size when popped up near the edge - of the screen - - * webkit/webkitwebview.cpp: - (webkit_web_view_forward_context_menu_event): Let GTK place - the popup menu instead of trying to do better and failing - -2009-04-24 Christian Dywan <christian@twotoasts.de> - - Rubber-stamped by Gustavo Noronha. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): Reword the - description of the enable-spell-checking property and correct the - mentioning of the default language used. - -2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=15616 - [GTK] Add spell checking - - Implement EditorClient::ignoreWordInSpellDocument, - EditorClient::learnWord and EditorClient::getGuessesForWord. This - enables the corresponding user actions. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::ignoreWordInSpellDocument): - (WebKit::EditorClient::learnWord): - (WebKit::EditorClient::getGuessesForWord): - -2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=15616 - [GTK] Add spell checking - - Implement EditorClient::checkSpellingOfString; enabling spell checking - to actually happen, this is the basis for other spelling functions. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::checkSpellingOfString): - -2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=15616 - [GTK] Add spell checking - - Add spell-checking-languages property to WebKitWebSettings. - - * webkit/webkitprivate.h: - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_finalize): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_spell_languages): - -2009-04-24 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=15616 - [GTK] Add spell checking - - Add enable-spell-checking property to WebKitWebSettings and implement - EditorClient::isContinuousSpellCheckingEnabled and - EditorClient::toggleContinuousSpellChecking to allow the UI to - enable check as you type spell checking. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::isContinuousSpellCheckingEnabled): - (WebKit::EditorClient::toggleContinuousSpellChecking): - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - -2009-04-21 Xan Lopez <xlopez@igalia.com> - - Reviewed by Gustavo Noronha. - - https://bugs.webkit.org/show_bug.cgi?id=21546 - [GTK] ATK accessibility enhancements - - Implement window<->screen coordinate transformation functions. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::widgetScreenPosition): - (WebKit::ChromeClient::windowToScreen): - (WebKit::ChromeClient::screenToWindow): - -2009-04-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - https://bugs.webkit.org/show_bug.cgi?id=24786 - WebKitDownload sometimes suggests peculiar filenames - - Remove query and ref from the URI that is to be downloaded when - using it to provide a file name suggestion. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_set_property): - -2009-04-20 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Xan Lopez. - - Handle the case when the plugin view is destroyed during - didReceiveResponse, to avoid crashing. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::committedLoad): - -2009-04-17 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=25251 - Crash when frame creation removes it from the parent - - This brings us up-to-date with the expectations of sub-frame - creation, following what Mac has done. It fixes crashes when - calling init on the child frame removes it from the page. - - This makes the following test pass instead of crash: - - fast/loader/frame-creation-removal.html - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2009-04-16 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=25042 - destroying webview widget directly causes crash. - - * tests/testwebframe.c: - (test_webkit_web_frame_create_destroy): Add a test case for destroying - a web view shortly after packing it in a window. - -2009-04-16 Xan Lopez <xlopez@igalia.com> - - Reviewed by Sam Weinig. - - https://bugs.webkit.org/show_bug.cgi?id=25241 - Remove superfluous NotImplemented.h includes. - - * webkit/webkitprivate.cpp: - -2009-04-14 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Update gtk-doc control and base sgml files for 1.1.5. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-04-14 Xan Lopez <xlopez@igalia.com> - - * NEWS: updated for 1.1.5 release. - -2009-04-13 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22898 - [GTK] need proper API for printing - - Added simple printing unit tests. - - * tests/testwebframe.c: - (print_requested_cb): - (print_timeout): - (test_webkit_web_frame_printing): - (main): - -2009-04-13 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22898 - [GTK] need proper API for printing - - Implement proper printing API, using the GTK+ printing API. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::print): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebview.cpp: - -2009-04-10 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=25124 - [GTK] many strings still missing translation calls - - Mark the missing strings for translation. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_cancel): - * webkit/webkitsoupauthdialog.c: - (show_auth_dialog): - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - * webkit/webkitwebnavigationaction.cpp: - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_class_init): - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - -2009-04-08 Alejandro Piñeiro <apinheiro@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=21546 - [GTK] ATK accessibility enhancements - - Use getOrCreate instead of just get, as we need to actually create - the wrapper object the first time this function is called. - - * webkit/webkitwebview.cpp: - -2009-04-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Rubber-stamped by Sam Weinig. - - https://bugs.webkit.org/show_bug.cgi?id=20575 - No localization in WebKitGtk - - Implemented localization support for WebKitGTK+. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.cpp: - * po/POTFILES: Added. - * po/README: Added. - * po/webkit.pot: Added. - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_class_init): - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitwebframe.cpp: - -2009-04-05 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=25042 - destroying webview widget directly causes crash. - - Do not connect the WebView to its own screen-changed signal, set a - default handler instead. - - * webkit/webkitwebview.cpp: - -2009-04-05 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=25042 - destroying webview widget directly causes crash. - - GtkWidget::screen-changed can be emitted when a widget is being - destroyed, protect against it. - - * webkit/webkitwebview.cpp: - -2009-04-05 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [Gtk] Implement LayoutTestControllerGtk::setPrivateBrowsingEnabled - https://bugs.webkit.org/show_bug.cgi?id=24487 - - Updated documentation and put more information about the - private-browsing setting for WebKitGtk. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - -2009-04-03 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - Remove pre-processor checks for GTK+ >= 2.10, since we now require - at least that version. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::clipboard_clear_contents_cb): - (WebKit::EditorClient::respondToChangedSelection): - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2009-04-02 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24844 - Unit test WebKitDownload - - Extra checks to avoid crashing and a critical message when - property accessor functions are called before the download is - started. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_get_progress): - (_WebKitDownloadPrivate::webkit_download_get_elapsed_time): - -2009-04-01 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - * tests/testdownload.c: Added. - (test_webkit_download_create): - (main): Add an initial unit test for downloading. - -2009-04-01 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed typo fixes, and naming normalization in the - documentation. - - * docs/webkitenvironment.xml: - * webkit/webkitwebview.cpp: - -2009-03-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - Updated gtk-doc configuration files for the 1.1.1, 1.1.2, 1.1.3, - and 1.1.4 versions of WebKitGTK+. - - * docs/webkitgtk-docs.sgml: - * docs/webkitgtk-sections.txt: - -2009-03-31 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=17045 - [GTK] Documentation - - Added header documentation for WebKitWebNavigationAction and - WebKitWebPolicyDecision. - - Added missing documentation pieces for WebKitSoupAuthDialog, - WebKitDownload and WebKitWebPolicyDecision. - - Wrote a section about using the WEBKIT_DEBUG environment variable. - - * docs/GNUmakefile.am: - * docs/webkitenvironment.xml: Added. - * docs/webkitgtk-docs.sgml: - * webkit/webkitdownload.cpp: - * webkit/webkitsoupauthdialog.c: - * webkit/webkitwebnavigationaction.cpp: - * webkit/webkitwebpolicydecision.cpp: - -2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Reviewed by Holger Freyther. - - Integrate gtk-doc into the Gtk+ buildsystem. - - Based on original work by Holger Freyther. - - Integrate gtk-doc into our buildsystem. We are forced to - use recursive make for gtk-doc itself as the to be installed - gtk-doc.make (done by gtkdocize) is not working in a non - recursive environment. - - The documentation can only be generated when srcdir == builddir. - In all other cases the generated files will not be found. This - limitation can be found in pango and gtk+ as well. There is no - easy way around. The resulting html documentation will be saved - in the srcdir as well. - - * docs/GNUmakefile.am: Added. - * docs/version.xml.in: Added. - * docs/webkitgtk-docs.sgml: - -2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Documenting what changed since the 1.1.3 release, in - the GTK+ port. - - * NEWS: - -2009-03-30 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> - - Unreviewed. Add information on the bug-fix-only 1.1.3 release. - - * NEWS: - -2009-03-30 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=24878 - [GTK] Use GtkBinding system to handle key events in WebView - - Use GtkBinding system for key events in WebKitWebView. Allows the - user to reconfigure the bindings and fixes a bunch of bugs along - the way (we were not checking modifier keys in most actions). - - * webkit/webkitwebview.cpp: - (webkit_web_view_move_cursor): - * webkit/webkitwebview.h: - * webkitmarshal.list: - -2009-03-28 Xan Lopez <xlopez@igalia.com> - - Reviewed by Mark Rowe. - - https://bugs.webkit.org/show_bug.cgi?id=24790 - [GTK] webkitsoupauthdialog.h lacks WEBKIT_API before function - - Set the right visibility to the WebKitSoupAuthDialog get_type - function. - - * webkit/webkitsoupauthdialog.h: - -2009-03-28 Jan Michael Alonzo <jmalonzo@webkit.org> - - Gtk build fix. Not reviewed. - - FrameLoader::loadURL and FrameLoader::detachChildren went private - per changes in http://trac.webkit.org/changeset/42055. Follow - Mac's behaviour and use FrameLoader::loadURLIntoChildFrame for - loadURL and FrameLoader::detachParent for detachChildrem. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - * webkit/webkitwebview.cpp: - -2009-03-25 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=15793 - [GTK] tooltip position doesn't update when hovering consecutive links - - Work-around tooltips not updating their location when the elements - are consecutive, by clearing the tooltip when handling - mouseDidMoveOverElement. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - -2009-03-23 Alejandro Garcia Castro <alex@igalia.com> - - Reviewed by Holger Freyther. - - [Gtk] Current API does not allow us to open target="_blank" links - in new tabs instead of windows - https://bugs.webkit.org/show_bug.cgi?id=23932 - - Added a signal to the API (new-window-policy-decision-requested) - that allows the browser to decide the policy for the new window - request, if the signal is not handled we open the new window as - usual. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::getNavigationAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - * webkit/webkitwebview.cpp: - -2009-03-20 Jan Michael Alonzo <jmalonzo@gmail.com> - - Not reviewed. Fix style issues with my previous commit (r41866) as - suggested by Holger in https://bugs.webkit.org/show_bug.cgi?id=24493 - - * tests/testwebhistoryitem.c: - (test_webkit_web_history_item_get_data): - (test_webkit_web_history_item_alternate_title): - -2009-03-20 Jan Michael Alonzo <jmalonzo@gmail.com> - - Reviewed by Holger Freyther. - - [GTK] Misc patches for WebKitWebHistoryItem - https://bugs.webkit.org/show_bug.cgi?id=24493 - - Add unit test for WebKitWebHistoryItem - - * tests/testwebhistoryitem.c: Added. - (web_history_item_fixture_setup): - (web_history_item_fixture_teardown): - (test_webkit_web_history_item_get_data): - (test_webkit_web_history_item_alternate_title): - (main): - -2009-03-20 Jan Michael Alonzo <jmalonzo@gmail.com> - - Reviewed by Holger Freyther. - - Separate gtk unit tests - https://bugs.webkit.org/show_bug.cgi?id=24039 - - Split the current single-file unit test to make it more - modularized and manageable in the future as more unit tests are - written. - - * tests/main.c: Removed. - * tests/testwebbackforwardlist.c: Copied from WebKit/gtk/tests/main.c. - (main): - * tests/testwebframe.c: Copied from WebKit/gtk/tests/main.c. - (main): - -2009-03-16 Christian Dywan <christian@twotoasts.de> - - Reviewed by Adam Roben. - - [gtk] API implementation: url and title - http://bugs.webkit.org/show_bug.cgi?id=14807 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: Implement "title" and "uri" properties as well - as according functions. "uri" always reflects the current location - including navigation inside the same page. title-changed is deprecated. - -2009-03-15 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Anders Carlsson. - - Fix default policy decision to be ignore, on MIME checks, if - WebKit doesn't know how to handle the MIME type. The documentation - is already correct, and this was an oversight when the policy - decision code was first committed. Since 1.1.2 will be the first - release to support download, there is no practical change in - behavior. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - -2009-03-15 Xan Lopez <xlopez@igalia.com> - - * NEWS: update for 1.1.2. - -2009-03-14 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [GTK] use of confirm dialog (yes/no) causes segfault - https://bugs.webkit.org/show_bug.cgi?id=20940 - - Change the script-confirm marshaller from OBJECT,STRING,BOOLEAN to - OBJECT,STRING,POINTER - - * webkit/webkitwebview.cpp: - * webkitmarshal.list: - -2009-03-12 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24553 - [GTK] Improvements to WebKitDownload - - Rename 'state' to 'status' to match the naming in the frame - loader rework that we plan to land soonish, and make it a - property, for the same reason. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::): - (_WebKitDownloadPrivate::webkit_download_finalize): - (_WebKitDownloadPrivate::webkit_download_get_property): - (_WebKitDownloadPrivate::webkit_download_set_property): - (_WebKitDownloadPrivate::webkit_download_class_init): - (_WebKitDownloadPrivate::webkit_download_init): - (_WebKitDownloadPrivate::webkit_download_start): - (_WebKitDownloadPrivate::webkit_download_cancel): - (_WebKitDownloadPrivate::webkit_download_set_destination_uri): - (_WebKitDownloadPrivate::webkit_download_get_status): - (_WebKitDownloadPrivate::webkit_download_set_status): - (_WebKitDownloadPrivate::webkit_download_received_data): - (_WebKitDownloadPrivate::webkit_download_finished_loading): - (_WebKitDownloadPrivate::webkit_download_error): - * webkit/webkitdownload.h: - -2009-03-12 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24553 - [GTK] Improvements to WebKitDownload - - Improved documentation for the download-requested signal, to make - its usage clear. - - * webkit/webkitwebview.cpp: - -2009-03-12 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=24541 - Scrolling with home and end keys not always works - - Also make page up and page down keys be handled by the webview key - event code, so that they also work in cases where the GTK+ - scrollbars don't handle them directly, like in the bugzill's patch - review page. - - * webkit/webkitwebview.cpp: - -2009-03-12 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=24541 - Scrolling with home and end keys not always works - - Make home and end keys behave more consistently for scrolling the - view. - - * webkit/webkitwebview.cpp: - -2009-03-12 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=24254 - [GTK] spacebar doesn't scroll down - - Make spacebar and shift+spacebar scroll like page up and down - respectively would. - - * webkit/webkitwebview.cpp: - -2009-03-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=24493 - [GTK] Misc patches for WebKitWebHistoryItem - - Only run code in dispose once per instance. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - -2009-03-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=24493 - [GTK] Misc patches for WebKitWebHistoryItem - - Call deref() on our internal HistoryItem on dispose, as we always - acquire it with a releaseRef() call to a PassRefPtr, which passes - ownership. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - -2009-03-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=24493 - [GTK] Misc patches for WebKitWebHistoryItem - - return foo? foo : NULL == return foo - - * webkit/webkitwebhistoryitem.cpp: - (WebKit::core): - -2009-03-11 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - Gtk] Implement LayoutTestControllerGtk::setPrivateBrowsingEnabled - https://bugs.webkit.org/show_bug.cgi?id=24487 - - Add private browsing option "enable-private-browsing" to WebKitWebSettings. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - * webkit/webkitwebview.cpp: - -2009-03-11 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [GTK] BackForward history leak? - https://bugs.webkit.org/show_bug.cgi?id=19528 - - Don't ref the history items when returning the back/forward list - Added test_webkit_web_history_item_lifetime test case for this. - - * tests/main.c: - (test_webkit_web_history_item_lifetime): - (test_webkit_web_back_forward_list_order): Style fix. - (test_webkit_web_back_forward_list_add_item): Style fix. - (main): - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): - -2009-03-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24493 - [GTK] Misc patches for WebKitWebHistoryItem - - Use g_hash_table_new_full so we can save the manual unref on the - values when removing them from the table. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - -2009-03-10 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24493 - [GTK] Misc patches for WebKitWebHistoryItem - - Use 'if (foo)' instead of 'if (foo != NULL)', per coding style - guidelines. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_history_item_remove): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_last_visited_time): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_target): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_is_target_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_children): - -2009-03-10 Xan Lopez <xlopez@igalia.com> - - Reviewed by Alexey Proskuryakov. - - Correct return value to false instead of NULL. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_is_target_item): - -2009-03-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Mark Rowe. - - Add javascript-profiling-enabled property and implement it. This - will enable/disable the profiler on the InstpectorController. - - * webkit/webkitprivate.h: - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - (_WebKitWebInspectorPrivate::webkit_web_inspector_set_property): - (_WebKitWebInspectorPrivate::webkit_web_inspector_get_property): - (_WebKitWebInspectorPrivate::webkit_web_inspector_set_inspector_client): - * webkit/webkitwebview.cpp: - -2009-03-05 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Olliej. - - https://bugs.webkit.org/show_bug.cgi?id=24295 - webkit_web_back_forward_list_add_item needs a Since tag - - Add missing Since tag to webkit_web_back_forward_list_add_item - documentation. - - * webkit/webkitwebbackforwardlist.cpp: - -2009-03-05 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Mark Rowe. - - https://bugs.webkit.org/show_bug.cgi?id=24417 - [GTK] WebKitDownload's _cancel and _dispose methods may emit warnings - - NULL-check for timer on _cancel and _dispose, to avoid bad - warnings. - - * webkit/webkitdownload.cpp: - (_WebKitDownloadPrivate::webkit_download_finalize): - (_WebKitDownloadPrivate::webkit_download_cancel): - -2009-03-02 Xan Lopez <xan@gnome.org> - - Reviewed by Mark Rowe. - - https://bugs.webkit.org/show_bug.cgi?id=24287 - [GTK] Move auth dialog feature to WebKit/ - - Add WebKitSoupAuthDialog and add it to the session in webkit_init. - - * webkit/webkitprivate.cpp: - (currentToplevelCallback): - (webkit_init): - * webkit/webkitsoupauthdialog.c: Added. - (webkit_soup_auth_dialog_class_init): - (webkit_soup_auth_dialog_init): - (webkit_soup_auth_dialog_session_feature_init): - (free_authData): - (set_password_callback): - (response_callback): - (table_add_entry): - (show_auth_dialog): - (find_password_callback): - (session_authenticate): - (attach): - * webkit/webkitsoupauthdialog.h: Added. - -2009-03-03 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=16826 - [Gtk] Implement WebKitDownload - - Implement download, and provide a nice object wrapping the - download process. Initial work done by Marco Barisione and - Pierre-Luc Beaudoin for Collabora. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::downloadURL): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::download): - (WebKit::FrameLoaderClient::startDownload): - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitdownload.cpp: Added. - (_WebKitDownloadPrivate::): - (_WebKitDownloadPrivate::webkit_download_dispose): - (_WebKitDownloadPrivate::webkit_download_finalize): - (_WebKitDownloadPrivate::webkit_download_get_property): - (_WebKitDownloadPrivate::webkit_download_set_property): - (_WebKitDownloadPrivate::webkit_download_class_init): - (_WebKitDownloadPrivate::webkit_download_init): - (_WebKitDownloadPrivate::webkit_download_new): - (_WebKitDownloadPrivate::webkit_download_open_stream_for_uri): - (_WebKitDownloadPrivate::webkit_download_close_stream): - (_WebKitDownloadPrivate::webkit_download_start): - (_WebKitDownloadPrivate::webkit_download_cancel): - (_WebKitDownloadPrivate::webkit_download_get_uri): - (_WebKitDownloadPrivate::webkit_download_get_network_request): - (_WebKitDownloadPrivate::webkit_download_set_response): - (_WebKitDownloadPrivate::webkit_download_get_suggested_filename): - (_WebKitDownloadPrivate::webkit_download_get_destination_uri): - (_WebKitDownloadPrivate::webkit_download_set_destination_uri): - (_WebKitDownloadPrivate::webkit_download_get_state): - (_WebKitDownloadPrivate::webkit_download_get_total_size): - (_WebKitDownloadPrivate::webkit_download_get_current_size): - (_WebKitDownloadPrivate::webkit_download_get_progress): - (_WebKitDownloadPrivate::webkit_download_get_elapsed_time): - (_WebKitDownloadPrivate::webkit_download_received_data): - (_WebKitDownloadPrivate::webkit_download_finished_loading): - (_WebKitDownloadPrivate::webkit_download_error): - (_WebKitDownloadPrivate::DownloadClient::DownloadClient): - (_WebKitDownloadPrivate::DownloadClient::didReceiveResponse): - (_WebKitDownloadPrivate::DownloadClient::didReceiveData): - (_WebKitDownloadPrivate::DownloadClient::didFinishLoading): - (_WebKitDownloadPrivate::DownloadClient::didFail): - (_WebKitDownloadPrivate::DownloadClient::wasBlocked): - (_WebKitDownloadPrivate::DownloadClient::cannotShowURL): - * webkit/webkitdownload.h: Added. - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkitmarshal.list: - -2009-03-01 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [Gtk] get the HTTP layout tests going - https://bugs.webkit.org/show_bug.cgi?id=24259 - - Added API to get the response mime type from a frame. We need this - so we can decide if we need to dump the frame as text or its - render tree - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2009-03-01 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Holger Freyther. - - [Gtk] get the HTTP layout tests going - https://bugs.webkit.org/show_bug.cgi?id=24259 - - Create a WebKitWebHistoryItem for each WebCore::HistoryItem when - necessary. - Add necessary API additions for us to be able to dump a WebKitWebHistoryItem - - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_target): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_is_target_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_children): - (WebKit::core): - (WebKit::kit): - -2009-03-01 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_get_encoding): - * webkit/webkitwebview.h: Implement 'encoding' and 'custom-encoding' - properties as well as webkit_web_view_get_encoding. - -2009-03-01 Gustavo Noronha Silva <gns@gnome.org> - - Unreviewed simple wording fix for the NEWS file. - - * NEWS: - -2009-03-01 Xan Lopez <xan@gnome.org> - - Add NEWS file to track progress between releases. - - * NEWS: Added. - -2009-02-28 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - * webkit/webkitwebview.cpp: Let webkit_web_view_open add file:// if a - locale path is passed for compatibility, since we used to support that. - -2009-02-27 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by David Hyatt. - - Automatically ignore empty requests to avoid crashing. This fixes - the crash in fast/loader/empty-embed-src-attribute.html. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - -2009-02-27 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24221 - [GTK] Do not emit load-finished when being disposed - - webkit_web_view_stop_load() is called from dispose() on - WebKitWebView. This eventually calls postProgressFinishedNotification - in FrameLoaderClientGtk, which emits load-finished. Add - a 'disposing' flag to WebView that we can check here, so - we avoid emitting signals on objects on their way to be - destroyed. This fixes a bunch of critical warnings when - closing a loading WebView. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - -2009-02-27 Xan Lopez <xan@gnome.org> - - Rubber-stamped by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24222 - [GTK] Remove checks for old glib versions - - libsoup, which is a hard dependency, needs at least glib 2.15.3, - so remove all glib checks for versions older than that. - - * webkit/webkitwebview.cpp: - -2009-02-26 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=16947 - [GTK] Missing HTTP Auth challenge - - Add new marshalers list. - - * webkitmarshal.list: Added. - -2009-02-26 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24193 - [GTK] Checkbuttons not activated with space - - Do not swallow key events with GtkIMContext for non-editable - content. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleInputMethodKeydown): - -2009-02-26 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=24103 - [GTK] Use correct return value for WebView button-release handler - - We are returning whatever the core code tells us it did, but this - does not play well with the GTK+ model. GTK+ in general expects it - will see a button-release if it saw a button-press and no - motion/leave/etc events in between. EventHandler.cpp will, in some - cases, not handle press but handle release, confusing the parent - container of the WebView. - - As a workaround return always FALSE for button-release (this is - the same than the Windows port does). - - * webkit/webkitwebview.cpp: - -2009-02-26 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=17585 - [gtk] get|set encoding api - - Add functions to get and set a custom encoding an a view. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - (webkit_web_view_set_custom_encoding): - (webkit_web_view_get_custom_encoding): - * webkit/webkitwebview.h: - -2009-02-23 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=22624 - [SOUP][GTK] Need API to get SoupSession from WebKit. - - Add API to get the default soup session. - - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2009-02-23 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=22624 - [SOUP][GTK] Need API to get SoupSession from WebKit. - - Add soup dependency to pc file. - - * webkit.pc.in: - -2009-02-23 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Mark Rowe. - - [GTK] Back / Forward history menus are flipped - https://bugs.webkit.org/show_bug.cgi?id=22694 - - Don't call g_list_reverse when returning the back or forward list. - - * tests/main.c: - (test_webkit_web_back_forward_list_order): - (main): - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): - -2009-02-17 Xan Lopez <xan@gnome.org> - - Rubber-stamped by Alexey Proskuryakov. - - Restoring change landed in r40715, which was accidentally undone - by r40918. - - * webkit/webkitwebframe.cpp: - -2009-02-12 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=17176 - [GTK] API: hovering-over-link and webkit_web_view_open /_load_foo - - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: Introduce webkit_web_frame_load_uri, - webkit_web_frame_load_string, webkit_web_view_load_uri and - webkit_web_view_load_request and unify implementations. - -2009-02-11 Dimitri Dupuis-latour <dupuislatour@apple.com> - - Stub out InspectorClient::hiddenPanels. - - Reviewed by Timothy Hatcher. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::hiddenPanels): - * WebCoreSupport/InspectorClientGtk.h: - -2009-02-07 Holger Hans Peter Freyther <zecke@selfish.org> - - Unreviewed build fix Use toNormalizedRange(). - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::clipboard_get_contents_cb): - -2009-02-06 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::updateGlobalHistoryRedirectLinks): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-02-06 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - Reported by Daniel Macks. - - https://bugs.webkit.org/show_bug.cgi?id=20412 - - Use positive numbers for the target info IDs, gtk_target_list_add - casts them to 'guint'. Also just start them from 0, since the - values are not relevant or magic in any way, they are just used as - tokens for the user of the API. - - * webkit/webkitwebview.h: - -2009-02-06 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=23769 - - Do not use empty ResourceError errors. - - Rather create bogus but non-null errors, since some codepaths - expect these. For example, see DocumentLoader::mainReceivedError. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::cancelledError): - (WebKit::FrameLoaderClient::blockedError): - (WebKit::FrameLoaderClient::cannotShowURLError): - (WebKit::FrameLoaderClient::interruptForPolicyChangeError): - (WebKit::FrameLoaderClient::cannotShowMIMETypeError): - (WebKit::FrameLoaderClient::fileDoesNotExistError): - (WebKit::FrameLoaderClient::pluginWillHandleLoadError): - -2009-02-06 Xan Lopez <xan@gnome.org> - - Reviewed by Alexey Proskuryakov. - - https://bugs.webkit.org/show_bug.cgi?id=23761 - - Use two-arg KURL ctor. - - We are using the one-arg ctor currently, but: - - - It assumes the strings are already encoded, which is not - necesarily the case for us. - - - The single-argument KURL ctors expect their input to already be - the output of a previous KURL::parse call, so for the general - case (ie, random user input) we need to use the two-arg ctor - anyway. - - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2009-02-05 Aaron Boodman <aa@chromium.org> - - Reviewed by Dave Hyatt. - - https://bugs.webkit.org/show_bug.cgi?id=23708 - Adds documentElementAvailable() callback to FrameLoaderClient. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::documentElementAvailable): - Stub out documentElementAvailable() - * WebCoreSupport/FrameLoaderClientGtk.h: - Ditto. - -2009-02-03 Hiroyuki Ikezoe <poincare@ikezoe.net> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22988 - [GTK] Need a public method to add a WebKitWebHistoryItem to - WebKitWebBackForwardList. - - Wrap WebCore::BackForwardList::addItem. - - * tests/main.c: - (test_webkit_web_back_forward_list_add_item): - (main): - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_add_item): - * webkit/webkitwebbackforwardlist.h: - -2009-02-02 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * webkit/webkitwebview.cpp: - -2009-02-02 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * webkit/webkitwebframe.cpp: - -2009-02-02 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2009-02-02 Geoffrey Garen <ggaren@apple.com> - - Reviewed by Sam Weinig. - - Track redirects in global history. - - Keep GTK building. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::updateGlobalHistoryForRedirectWithoutHistoryItem): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-02-02 Anders Carlsson <andersca@apple.com> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-02-02 Anders Carlsson <andersca@apple.com> - - Reviewed by Dan Bernstein. - - Update for changes to WebCore. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - (WebKit::FrameLoaderClient::createJavaAppletWidget): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-02-02 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Darin Adler. - - Move Frame::forceLayout, Frame::adjustPageHeight and Frame::forceLayoutWithPageWidthRange to FrameView - - https://bugs.webkit.org/show_bug.cgi?id=23428 - - FrameView::forceLayout could be killed but the comment might - contain a value over the the plain FrameView::layout... - - Adjust the WebCore/WebKit consumers of these methods. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::forceLayout): - * webkit/webkitwebview.cpp: - -2009-01-30 Geoffrey Garen <ggaren@apple.com> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2009-01-30 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Simon Hausmann. - - https://bugs.webkit.org/show_bug.cgi?id=22056 - - Kill FrameLoaderClient.cpp, move the code over to Frame::createView - - FrameLoaderClient is supposed to be an interface, move the - to be shared code to Frame which is a controller and is - allowed to create a FrameView. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2009-01-27 Brady Eidson <beidson@apple.com> - - Reviewed by Dan Bernstein - - Rework FrameLoaderClient to work on a CachedFrame basis instead of CachedPage - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::savePlatformDataToCachedFrame): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedFrame): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2009-01-25 Darin Adler <darin@apple.com> - - Try to fix GTK build. - - * webkit/webkitwebview.cpp: Added include of FloatQuad.h. - -2009-01-13 Alexander V. Butenko <alex@digiqube.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=23279 - - Fix crash on WebView dispose stage. - - Add null checks to webkit_web_view_set_scroll_adjustments and - webkit_web_view_get_accessible as they get called from within - the dispose. - - * webkit/webkitwebview.cpp: - -2009-01-11 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - Use NULL instead of 0 when dealing with pointers, as agreed for - the coding style of the WebKit GTK port for its GTK+ specific - files. - - * webkit/webkitwebview.cpp: - -2009-01-11 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - Add padding to the class structs to avoid breaking ABI each time - we add stuff there. - - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebnavigationaction.h: - * webkit/webkitwebpolicydecision.h: - * webkit/webkitwebview.h: - -2009-01-09 Benjamin Otte <otte@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=23194 - - make the finalize function the dispose function. Not releasing held - objects in dispose can cause crashers later. - - * webkit/webkitwebview.cpp: - -2009-01-09 Benjamin Otte <otte@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=23194 - - Remove broken code that uses a fallback. The previous code did 2 - policy decisions which caused crashes. - Download is still notImplemented(); - - * webkit/webkitwebpolicydecision.cpp: - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_download): - -2009-01-03 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - [GTK] Need a public method to reload view bypassing cache - https://bugs.webkit.org/show_bug.cgi?id=19815 - - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - - Add webkit_web_view_reload_bypass_cache. - -2009-01-07 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Maciej Stachowiak. - - Add private API to get the number of active animations of - a frame. This is required by the DumpRenderTree utility. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2009-01-05 Adam Treat <adam.treat@torchmobile.com> - - Fix build - - * WebCoreSupport/ChromeClientGtk.h: - -2009-01-05 Adam Treat <adam.treat@torchmobile.com> - - Reviewed by George Staikos. - - Build fix for contentsSizeChanged - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::contentsSizeChanged): - * WebCoreSupport/ChromeClientGtk.h: - -2009-01-04 Adam Treat <adam.treat@torchmobile.com> - - Reviewed by George Staikos. - - Make the gtk port build with the new fixedLayoutSize feature - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2009-01-03 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Darin Adler. - - [GTK] Fix the reference counting of WebKitWebFrames - - The ownership is the following: WebKitWebView owns a WebCore::Page. - WebKitWebView is creating one WebKitWebFrame which will be the - mainFrame of the WebCore::Page (having the reference on the Frame). - - The FrameLoaderClient has the reference of the WebKitWebFrame for - the main frame and also any other frame. This means when the - WebCore::Frame goes away the FrameLoaderClient will go away which - will normally remove the last reference of the WebKitWebFrame. Because - an API user might have g_object_ref'ed the WebKitWebFrame null - checks had to be added to WebKitWebFrame. - - For WebCore::Frames created by the FrameLoaderClient the ownership - will be passed down to the FrameTree, the WebKitWebFrame is not holding - a reference to the WebCore::Frame. - - Do not g_object_unref the mainFrame in the destructor of the - WebKitWebFrame as this will happen from within the WebCore::Page - destruction. Do not hold a reference to the WebCore::Frame (circle) in - WebKitWebFrame, add null checks as the WebCore::Frame might have gone - away. Do not keep track of the FrameLoaderClient in the private - structures as it was mostly unusued. - - https://bugs.webkit.org/show_bug.cgi?id=21837 - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::frameLoaderDestroyed): - (WebKit::FrameLoaderClient::createFrame): - * tests/main.c: Add test case. - (test_webkit_web_frame_create_destroy): - (test_webkit_web_frame_lifetime): - (main): - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2009-01-02 Holger Hans Peter Freyther <zecke@selfish.org> - - Unreviewed build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - -2008-12-31 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Nikolas Zimmermann. - - https://bugs.webkit.org/show_bug.cgi?id=17045 - - Add section information for View, Frame, Settings, HistoryItem, BackForwardList, WindowFeatures and Inspector - - Add section information and informal examples for WebKitWebView, - WebKitWebFrame, WebKitWebSettings, WebKitWebNetworkRequest, - WebKitWebWindowFeatures, WebKitWebHistoryItem, - WebKitWebBackForwardList and WebKitWebInspector. - - * docs/webkitgtk-sections.txt: Decide to not document some bits - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebinspector.cpp: - * webkit/webkitwebsettings.cpp: - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebwindowfeatures.cpp: - -2008-12-21 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=16092 - [GTK] Middle-mouse click should allow opening a URL in a new tab - - Add mouse button and keyboard state modifiers info to navigation action. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - * webkit/webkitwebnavigationaction.cpp: - (_WebKitWebNavigationActionPrivate::): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_property): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_set_property): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_class_init): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_button): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_modifier_state): - * webkit/webkitwebnavigationaction.h: - -2008-12-19 Marco Barisione <marco.barisione@collabora.co.uk> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=16562 - [gtk] Implement WebPolicyDelegate methods - - Original work by Pierre-Luc Beaudoin. Final touches by Gustavo - Noronha. - - This implements the delegates methods of WebPolicyDelegate. - Since Gtk+/C doesn't have delegate methods, they are replaced with - signals. - - A new object WebKitWebPolicyDecision allows the browser to delay its - response in certain cases. WebKitWebNavigationAction contains the - information about what caused a navigation request. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::~FrameLoaderClient): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForMIMEType): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - (WebKit::FrameLoaderClient::cancelPolicyCheck): - (WebKit::FrameLoaderClient::canShowMIMEType): - * WebCoreSupport/FrameLoaderClientGtk.h: - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitprivate.cpp: - (WebKit::kit): - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebnavigationaction.cpp: Added. - (_WebKitWebNavigationActionPrivate::): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_property): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_set_property): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_init): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_finalize): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_class_init): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_reason): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_set_reason): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_get_original_uri): - (_WebKitWebNavigationActionPrivate::webkit_web_navigation_action_set_original_uri): - * webkit/webkitwebnavigationaction.h: Added. - * webkit/webkitwebpolicydecision.cpp: Added. - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_class_init): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_init): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_new): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_use): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_ignore): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_download): - (_WebKitWebPolicyDecisionPrivate::webkit_web_policy_decision_cancel): - * webkit/webkitwebpolicydecision.h: Added. - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-12-18 Dan Bernstein <mitz@apple.com> - - Reviewed by Sam Weinig. - - - stub out FrameLoaderClient::shouldUseCredentialStorage(). - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::shouldUseCredentialStorage): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-12-18 Sam Weinig <sam@webkit.org> - - Reviewed by John Sullivan. - - Stub out FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout() - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidFirstVisuallyNonEmptyLayout): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-12-13 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Cameron Zwarich. - - [GTK] Fix crash with LayoutTests/fast/loader/frame-creation-removal.html - - Call WebCore::Frame::init after the frame has been given - a name and been added to the FrameTree of the parent. - - Removing the call to init is fine as FrameLoaderClientGtk::createFrame - is the only user of webkit_web_frame_init_with_web_view and is already - calling WebCore::Frame::init. - - * webkit/webkitwebframe.cpp: - -2008-12-13 Adam Bergkvist <adam.bergkvist@ericsson.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22779 - - Check for GTK version >= 2.14.0 before using gtk_test_init. - - * tests/main.c: - (main): - -2008-12-13 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=22039 - - Implement animation and transition pausing as needed by DumpRenderTree. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2008-11-29 Holger Hans Peter Freyther <zecke@selfish.org> - - Rubber-stamped by Simon Hausmann. - - https://bugs.webkit.org/show_bug.cgi?id=22574 - - Make webkit_web_view_set_window_features internal - - Calling this method will not result in a notify::window-features - signal being emitted. This would allow replacing a - WebKitWebWindowFeature on a WebKitWebView without anyone noticing - and the client code would monitor the wrong object. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::createWindow): - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-12-09 Brett Wilson <brettw@chromium.org> - - Reviewed by Dave Hyatt. - - https://bugs.webkit.org/show_bug.cgi?id=22177 - - Add a callback on ChromeClient that the state of form elements on - the page has changed. This is to allow clients implementing session - saving to know when the current state is dirty. - - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::formStateDidChange): - -2008-12-07 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Eric Seidel. - - [Gtk+] Use glib's unit test facilities to test the WebKit/Gtk+ API - - https://bugs.webkit.org/show_bug.cgi?id=22491 - - Add the skeleton to WebKit/gtk/tests and integrate that into the - buildsystem. Testing support was added in glib 2.16. For versions - using glib < 2.16 we compile an empty application. - - * tests/main.c: Added. https://bugs.webkit.org/show_bug.cgi?id=21837 - will be the first consumer. - (main): - -2008-12-06 Simon Fraser <simon.fraser@apple.com> - - Reviewed by Dave Hyatt - - https://bugs.webkit.org/show_bug.cgi?id=15671 - - Renderer::caretRect() is now localCaretRect(), which needs - converting to absolute coordinates (taking transforms into account). - - * webkit/webkitwebview.cpp: - -2008-12-01 Xan Lopez <xan@gnome.org> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=22553 - Remove unneeded GObject casts. - - Remove unneeded casts to GObject in functions that take a gpointer - argument. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setWindowRect): - (WebKit::ChromeClient::createWindow): - (WebKit::ChromeClient::setToolbarsVisible): - (WebKit::ChromeClient::toolbarsVisible): - (WebKit::ChromeClient::setStatusbarVisible): - (WebKit::ChromeClient::statusbarVisible): - (WebKit::ChromeClient::setScrollbarsVisible): - (WebKit::ChromeClient::scrollbarsVisible): - (WebKit::ChromeClient::setMenubarVisible): - (WebKit::ChromeClient::menubarVisible): - (WebKit::ChromeClient::setToolTip): - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::createPage): - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - * webkit/webkitwebwindowfeatures.cpp: - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_new_from_core_features): - -2008-11-29 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=17122 - [GTK] Bad font default settings - - Implement a property "enforce-96-dpi" in WebKitWebSettings - that can be enabled to force the view to assume 96 DPI. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - * webkit/webkitwebview.cpp: - -2008-11-28 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Nikolas Zimmermann. - - Simplify the code. There is no reason to have code like - if (true) return false; which is using temporary variables. - - * webkit/webkitwebview.cpp: - -2008-11-28 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Nikolas Zimmermann. - - Remove bogus null checks. The WebKitWebView own's a WebCore::Page - which is owning a WebCore::ChromeClient. There is no way that a - WebCore::ChromeClient is still around when the WebKitWebView is gone. - - m_webView can only be null when a ChromeClient gets constructed with - a null WebKitWebView which is not allowed. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::windowRect): - (WebKit::ChromeClient::setWindowRect): - (WebKit::ChromeClient::pageRect): - (WebKit::ChromeClient::focus): - (WebKit::ChromeClient::unfocus): - (WebKit::ChromeClient::show): - (WebKit::ChromeClient::setToolbarsVisible): - (WebKit::ChromeClient::toolbarsVisible): - (WebKit::ChromeClient::setStatusbarVisible): - (WebKit::ChromeClient::statusbarVisible): - (WebKit::ChromeClient::setScrollbarsVisible): - (WebKit::ChromeClient::setMenubarVisible): - (WebKit::ChromeClient::menubarVisible): - (WebKit::ChromeClient::canTakeFocus): - (WebKit::ChromeClient::repaint): - (WebKit::ChromeClient::scroll): - (WebKit::ChromeClient::platformWindow): - -2008-11-28 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed and slightly modified by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=19130 - - ChromeClient::createWindow and friends need to be implemented - - Code from Gustavo Noronha and Marco Barisione - <marco.barisione@collabora.co.uk> in this change set. - - Implemented all the ChromeClient interfaces needed to have new - window creation functioning and exposed to client code. We - implemented a mirror GObject to the WindowFeatures object provided - by WebCore. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowRect): - (WebKit::ChromeClient::setWindowRect): - (WebKit::ChromeClient::unfocus): - (WebKit::ChromeClient::createWindow): - (WebKit::ChromeClient::show): - (WebKit::ChromeClient::setToolbarsVisible): - (WebKit::ChromeClient::toolbarsVisible): - (WebKit::ChromeClient::setStatusbarVisible): - (WebKit::ChromeClient::statusbarVisible): - (WebKit::ChromeClient::setScrollbarsVisible): - (WebKit::ChromeClient::scrollbarsVisible): - (WebKit::ChromeClient::setMenubarVisible): - (WebKit::ChromeClient::menubarVisible): - (WebKit::ChromeClient::setResizable): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchShow): - (WebKit::FrameLoaderClient::dispatchCreatePage): - * webkit/webkit.h: - * webkit/webkitdefines.h: - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - * webkit/webkitwebwindowfeatures.cpp: Added. - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_class_init): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_init): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_finalize): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_set_property): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_get_property): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_new): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_new_from_core_features): - (_WebKitWebWindowFeaturesPrivate::webkit_web_window_features_equal): - * webkit/webkitwebwindowfeatures.h: Added. - -2008-11-24 Darin Fisher <darin@chromium.org> - - Fix bustage. - - http://bugs.webkit.org/show_bug.cgi?id=15643 - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::isSelectTrailingWhitespaceEnabled): - * WebCoreSupport/EditorClientGtk.h: - -2008-11-24 Darin Adler <darin@apple.com> - - Reviewed by Dan Bernstein. - - - https://bugs.webkit.org/show_bug.cgi?id=22470 - remove unneeded URL argument from FrameLoaderClient::updateGlobalHistory - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::updateGlobalHistory): Remove argument. - * WebCoreSupport/FrameLoaderClientGtk.h: Ditto. - -2008-11-24 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=17122 - [GTK] Bad font default settings - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - Use default font size 12 instead of 10 - -2008-11-24 Zan Dobersek <zandobersek@gmail.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22039 - - Implement a semi-private function for adding a directory to - PluginDatabase's paths. - - * webkit/webkitprivate.h: - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_add_extra_plugin_directory): - -2008-11-23 Holger Hans Peter Freyther <zecke@selfish.org> - - Rubber-stamped by Sam Weinig. - - Add gtk-doc configuration/source for the WebKit/Gtk+ Reference Manual - - These files will be used by gtk-doc to generate the documentation. They - contain information how to group the symbols of our API, which objects - to inspect during the generation of the manual and how to display the - manual. - - * docs/webkitgtk-docs.sgml: Added. - * docs/webkitgtk-overrides.txt: Added. - * docs/webkitgtk-sections.txt: Added. - * docs/webkitgtk.types: Added. - -2008-11-23 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Sam Weinig. - - Make gtk-doc happy with the existing API documentation - - - Mark the *Private pointers in the struct private - - Use Returns: where gtk-doc wants us to - - Fix the parameters to make gtk-doc happy - - Fix signal references - - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebbackforwardlist.cpp: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-11-19 Darin Fisher <darin@chromium.org> - - Bustage fix. - - https://bugs.webkit.org/show_bug.cgi?id=22373 - Ports busted by addition of ScriptValue.{h,cpp} - - * webkit/webkitwebview.cpp: - -2008-11-18 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Simon Hausmann. - - Attempt to share transitionToCommittedForNewPage of FrameLoaderClient with the different ports - - After Hyatt's work on Widget and ScrollView there is little difference - between the implementation of Qt, Gtk+ and Win. In fact any kind of - difference is mostly a bug. Alp has fixed two of such errors for the Gtk+ - port and the Qt port has at least one of them left. - - The only difference between the implementations is in getting the the - IntSize for the new FrameView, the background color to be applied and - eventually some post processing. - - Unify the implementations by providing a static helper function that - takes a Frame, IntSize, color and transparency bit and calling it from - the Gtk+, the Qt and the Windows port. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2008-11-16 Christian Dywan <christian@twoasts.de> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=22207 - [Gtk] Font sizes are not handled properly when updated at runtime - - * webkit/webkitwebview.cpp: Move the DPI/ conversion into a - helper function and apply the logic in the notification callback. - -2008-11-06 Alp Toker <alp@nuanti.com> - - Reviewed by Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=22047 - GTK: Add support for multiple file selection in the file upload control - - Implemented with GtkFileChooser. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runOpenPanel): - -2008-11-03 Cameron Zwarich <zwarich@apple.com> - - Rubber-stamped by Maciej Stachowiak. - - Move more files into the runtime subdirectory of JavaScriptCore. - - * webkit/webkitprivate.cpp: - -2008-11-03 Alp Toker <alp@nuanti.com> - - Reviewed by Holger Freyther. - - Deprecate flawed webkit_web_frame_new() function. This would never - have worked properly when used outside WebCore since Frame::create() - can only be called without an owner element once in the lifetime of a - Page and would result in assertions, leaks and an unusable WebView - instance. - - Frame creation may be exposed in API some time later via the DOM - binding but probably not in the WebKit GTK+ core API. - - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - -2008-11-03 Alp Toker <alp@nuanti.com> - - Reviewed by Holger Freyther. - - Redundant scrollbars appear in frames where they shouldn't be visible - eg. embedded Google adverts. - - Call setCanHaveScrollbars() when necessary. The Mac and Win ports - already have this but it was missing in FrameLoaderClientGtk. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2008-11-03 Alp Toker <alp@nuanti.com> - - Rubber-stamped by Holger Freyther. - - Sync WebKit GTK+ default UA version string to 528.5+. (We're still - doing this manually!) - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::composeUserAgent): - -2008-10-31 Christian Dywan <christian@twotoasts.de> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=22018 - enable-developer-extras doesn't toggle WebInspector - - * webkit/webkitwebview.cpp: - Add missing 'if' in notification for 'enable-developer-extras'. - -2008-10-30 Alp Toker <alp@nuanti.com> - - Reviewed by Dave Hyatt. - - Fix GIF animations. WebCore will not update animated GIFs if - the WebView is marked offscreen so we need to call - frameView->setParentVisible() when necessary like the Mac and Win - ports do. Regression was introduced around r37155 during the - HostWindow refactor. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2008-10-30 Alp Toker <alp@nuanti.com> - - Rubber-stamped by Holger Freyther. - - Fix typo in recently added web inspector signal. dettach -> detach. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::detachWindow): - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - -2008-10-30 Alp Toker <alp@nuanti.com> - - Fix version comments for the web inspector added in r37982. Available - since 1.0.3, not 1.0.2. - - * webkit/webkitwebinspector.cpp: - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - -2008-10-29 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed and slightly changed by Holger Freyther. - - Implemented a new WebKitWebInspector class to provide a GObject - API for the Web Inspector. Also implemented InspectorClient. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::notifyWebViewDestroyed): - (WebKit::InspectorClient::InspectorClient): - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::webViewDestroyed): - (WebKit::InspectorClient::createPage): - (WebKit::InspectorClient::showWindow): - (WebKit::InspectorClient::closeWindow): - (WebKit::InspectorClient::attachWindow): - (WebKit::InspectorClient::detachWindow): - (WebKit::InspectorClient::inspectedURLChanged): - * WebCoreSupport/InspectorClientGtk.h: - * webkit/webkit.h: - * webkit/webkit-marshal.list: - * webkit/webkitdefines.h: - * webkit/webkitprivate.h: - * webkit/webkitwebinspector.cpp: Added. - (_WebKitWebInspectorPrivate::webkit_inspect_web_view_request_handled): - (_WebKitWebInspectorPrivate::webkit_web_inspector_class_init): - (_WebKitWebInspectorPrivate::webkit_web_inspector_init): - (_WebKitWebInspectorPrivate::webkit_web_inspector_finalize): - (_WebKitWebInspectorPrivate::webkit_web_inspector_set_property): - (_WebKitWebInspectorPrivate::webkit_web_inspector_get_property): - (_WebKitWebInspectorPrivate::webkit_web_inspector_set_web_view): - * webkit/webkitwebinspector.h: Added. - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_copy): - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-10-27 Michael Tross <michael@tross.org> - - Reviewed by Alp Toker. Landed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=21827 - [GTK] Fix memory leak in webkit_web_view_load_string - - * webkit/webkitwebview.cpp: - -2008-10-24 Sam Weinig <sam@webkit.org> - - Fix the Gtk build. - - * WebCoreSupport/ChromeClientGtk.cpp: - -2008-10-24 Sam Weinig <sam@webkit.org> - - Reviewed by Dan Bernstein. - - Fix https://bugs.webkit.org/show_bug.cgi?id=21759 - Layering violation: FileChooser should not depend on Document/Frame/Page - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runOpenPanel): - * WebCoreSupport/ChromeClientGtk.h: - -2008-10-24 Timothy Hatcher <timothy@apple.com> - - Stub out new InspectorClient methods. - - https://bugs.webkit.org/show_bug.cgi?id=21856 - - Reviewed by Darin Adler. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::populateSetting): Not implemented. - (WebKit::InspectorClient::storeSetting): Ditto. - (WebKit::InspectorClient::removeSetting): Ditto. - * WebCoreSupport/InspectorClientGtk.h: - -2008-10-22 Alp Toker <alp@nuanti.com> - - Build fix for older GTK+ versions where GTK_TYPE_TARGET_LIST isn't - defined. - - * webkit/webkitwebview.cpp: - -2008-10-22 Alp Toker <alp@nuanti.com> - - Reviewed by Adam Roben. - - Avoid critical warnings on older GTK+ versions (2.8) by not checking - for GTK+ setting properties when we know they don't exist. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::inputMethodsMenuItem): - (WebKit::unicodeMenuItem): - -2008-10-20 Sam Weinig <sam@webkit.org> - - Reviewed by Anders Carlsson. - - Remove FrameLoaderClient::detachedFromParent4. It is no longer used by any port. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-10-20 Alp Toker <alp@nuanti.com> - - Reviewed by Dave Hyatt. - - https://bugs.webkit.org/show_bug.cgi?id=21303 - [GTK] Scrolling glitches - - Implement a buffering scheme to avoid full repaints when scrolling - views or subframes significantly improving scrolling performance. - - Improve rendering performance by coalescing large numbers of small - repaints. - - Also fixes long-running issues with scrollbar positioning and frame - invalidation. - - Rendering in the GTK+ port should be more similar to other ports after - these changes. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::repaint): - (WebKit::ChromeClient::scroll): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::forceLayout): - * webkit/webkitwebview.cpp: - -2008-10-17 Luke Kenneth Casson Leighton <lkcl@lkcl.net> - - Reviewed by Mark Rowe. Landed by Jan Alonzo. - - https://bugs.webkit.org/show_bug.cgi?id=20403 - [Gtk] Segfault after a table with an iframe is attempted to be added twice to DOM model with javascript - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::frameLoaderDestroyed): - (WebKit::FrameLoaderClient::detachedFromParent4): - -2008-10-06 David Hyatt <hyatt@apple.com> - - Enable viewless Mac WebKit to paint some basic pages. - - Reviewed by Sam Weinig - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-10-03 David Hyatt <hyatt@apple.com> - - Fix Gtk bustage from use of containingWindow() over on the WebKit side. Replace with HostWindow use. - - * webkit/webkitwebview.cpp: - -2008-10-03 David Hyatt <hyatt@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=21340 - - Remove "containingWindow()/setContainingWindow()" from Widget. HostWindow covers this now. - - Reviewed by Dan Bernstein & Darin Adler - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - -2008-10-03 Alp Toker <alp@nuanti.com> - - Remove some left-over GTK+ includes. No change in functionality. - - * webkit/webkitwebhistoryitem.h: - -2008-10-03 Alp Toker <alp@nuanti.com> - - Build fix following r37234. Remove addToDirtyRegion from the header - too. - - * WebCoreSupport/ChromeClientGtk.h: - -2008-10-03 David Hyatt <hyatt@apple.com> - - Remove addToDirtyRegion. - - Reviewed by Oliver Hunt - - * WebCoreSupport/ChromeClientGtk.cpp: - -2008-10-02 David Hyatt <hyatt@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=21314 - - Make scrollBackingStore cross-platform. - - Reviewed by Sam Weinig - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::repaint): - (WebKit::ChromeClient::scroll): - * WebCoreSupport/ChromeClientGtk.h: - -2008-10-01 David Hyatt <hyatt@apple.com> - - https://bugs.webkit.org/show_bug.cgi?id=21282 - - Make contentsToScreen/screenToContents cross-platform. Only implemented by Mac/Win right now. - - Reviewed by Adam Roben - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowToScreen): - (WebKit::ChromeClient::screenToWindow): - * WebCoreSupport/ChromeClientGtk.h: - -2008-09-30 Dave Hyatt <hyatt@apple.com> - - http://bugs.webkit.org/show_bug.cgi?id=21250 - - Rename updateContents to repaintContentRectangle and make it cross-platform by always sending - repaints up through the ChromeClient. - - Reviewed by Darin Adler - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::repaint): - * WebCoreSupport/ChromeClientGtk.h: - -2008-09-16 Alp Toker <alp@nuanti.com> - - Suggested by Dave Hyatt. - - Build fix and cleanup. Rename ScrollBar to Scrollbar. - - * webkit/webkitwebview.cpp: - -2008-09-13 Adrien Nader <camaradetux@gmail.com> - - Gtk build fix, not reviewed. - - * webkit/webkitwebview.cpp: - -2008-09-10 Alp Toker <alp@nuanti.com> - - Reviewed by Mark Rowe. - - https://bugs.webkit.org/show_bug.cgi?id=17267 - [GTK] Primary selection/clipboard support - - Implement primary selection support (copying only, no paste yet). - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::clipboard_get_contents_cb): - (WebKit::clipboard_clear_contents_cb): - (WebKit::EditorClient::respondToChangedSelection): - -2008-09-07 Cameron Zwarich <cwzwarich@uwaterloo.ca> - - Reviewed by Maciej Stachowiak. - - Bug 20704: Replace the KJS namespace - <https://bugs.webkit.org/show_bug.cgi?id=20704> - - Rename the KJS namespace to JSC. - - * webkit/webkitprivate.cpp: - (webkit_init): - -2008-09-05 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=18346 - [GTK] Remove build warnings - - Removed/commented code that is not (yet) used, and reordered - member variables initialization for FrameLoaderClient, so that the - compiler is happy and prints less warnings when building. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - -2008-09-03 Alp Toker <alp@nuanti.com> - - Build fix following r36073. Include config.h where necessary. - - * WebCoreSupport/PasteboardHelperGtk.cpp: - * webkit/webkitversion.cpp: - -2008-09-01 Alp Toker <alp@nuanti.com> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=19939 - [GTK] webkit_web_history_item_get_title() fails with assertion - - Make sure newly constructed WebHistoryItem objects wrap a WebCore - history item when necessary. Avoid G_PARAM_CONSTRUCT since it destroys - history data -- use WEBKIT_PARAM flags instead as they do the right - thing. This restores history functionality. - - Also use CString to simplify UTF-8 string management. - - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): - No need to initialize the vector with a size since it's cleared by the - callee. - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri): - -2008-08-27 Adrien Nader <camaradetux@gmail.com> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=20099 - [GTK] SHIFT+PAGE_UP/DOWN doesn't extend selection - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - -2008-08-27 Brady Eidson <beidson@apple.com> - - Reviewed by Anders - - <rdar://problem/6134133> - Crash when loading large movie as a standalone document - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::pluginWillHandleLoadError): Stubbed for now - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-08-18 Alp Toker <alp@nuanti.com> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=20350 - [GTK] Get DumpRenderTree working - - Add a private function to WebFrame to dump the render tree as required - for the DumpRenderTree testing tool. - - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2008-08-12 Timothy Hatcher <timothy@apple.com> - - Add a stub for InspectorClient::setAttachedWindowHeight. - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::setAttachedWindowHeight): - Call notImplemented(). - * WebCoreSupport/InspectorClientGtk.h: - -2008-08-10 Alp Toker <alp@nuanti.com> - - Remove leftover qmake/GTK+ build files. - - * webkit/headers.pri: Removed. - -2008-08-02 Christian Dywan <christian@twotoasts.de> - - Reviewed by Eric Seidel. - - Remove webkit-marshal.list, which was made obsolete in #19742 - - * webkit/webkit-marshal.list: Removed. - -2008-08-01 Wouter Bolsterlee <uws@xs4all.nl> - - Reviewed by Eric Seidel. - - https://bugs.webkit.org/show_bug.cgi?id=20035 - [GTK] Fix return value for webkit_web_view_go_to_back_forward_item() - - * webkit/webkitwebview.cpp: - -2008-07-30 Marco Barisione <marco.barisione@collabora.co.uk> - - Reviewed by Holger. - - http://bugs.webkit.org/show_bug.cgi?id=19742 - [GTK] Auto generate webkitmarshal.list - - Auto generate webkitmarshal.list from source files to reduce the - number of conflicts when merging git branches or when applying - patches. - Also rename webkit-marshal.* to webkitmarshal.* for consistency. - - * webkit/webkitwebframe.cpp: Include webkitmarshal.h instead of - webkit-marshal.h. - * webkit/webkitwebview.cpp: Ditto. - -2008-07-30 Gustavo Noronha Silva <gns@gnome.org> - - Reviewed by Sam. - - https://bugs.webkit.org/show_bug.cgi?id=20205 - Typo in comment for bracer ending block - - * webkit/webkitprivate.cpp: Typo fix in comment for the brace - that ends the WebKit namespace; WebCore -> WebKit - -2008-07-26 Mark Rowe <mrowe@apple.com> - - Build fix. Changes to accommodate newly named/signatured loading methods in WebCore. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - -2008-07-17 Christian Dywan <christian@twotoasts.de> - - Reviewed by Holger Freyther. - - https://bugs.webkit.org/show_bug.cgi?id=19813 - [GTK] WebKit crashes on invalid settings notify callback - - * webkit/webkitwebview.cpp: Disconnect in webkit_web_view_finalize - -2008-07-08 Jan Michael Alonzo <jmalonzo@webkit.org> - - Reviewed by Christian Dywan. - - Replace 'const' with G_CONST_RETURN macro to make it flexible to - disable constness - - * webkit/webkitnetworkrequest.cpp: - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebhistoryitem.h: - -2008-06-18 Marco Barisione <marco.barisione@collabora.co.uk> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=19171 - [GTK] GTypes for enumerations - - Generate GTypes for public enumerations so they can be used as - properties. - - * GNUmakefile.am: Generate webkit-enum-types.cpp and - webkit-enum-types.h. - -2008-06-17 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp. - - [GTK] WebKitWebHistoryItem needs properties - https://bugs.webkit.org/show_bug.cgi?id=19558 - - Implement properties matching the existing accessors. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_property): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_property): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): - -2008-06-15 Darin Adler <darin@apple.com> - - - give Frame object functions shorter names: scriptProxy() -> script(), - selectionController() -> selection(), animationController() -> animation() - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::windowObjectCleared): - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2008-06-15 Darin Adler <darin@apple.com> - - - undo bogus renaming done by the script - - * WebCoreSupport/ContextMenuClientGtk.cpp: - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebsettings.h: - -2008-06-15 Darin Adler <darin@apple.com> - - - new names for a few key JavaScriptCore files - - * WebCoreSupport/ContextMenuClientGtk.cpp: - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebsettings.h: - -2008-06-15 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - [GTK] Property setters do not call g_object_notify() - https://bugs.webkit.org/show_bug.cgi?id=18405 - - * webkit/webkitwebview.cpp: - -2008-06-15 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - Tiny documentation fix, s/capacity/limit - - * webkit/webkitwebbackforwardlist.cpp: - -2008-06-14 Darin Adler <darin@apple.com> - - Rubber stamped by Sam. - - - new names for kjs_binding.h and kjs_proxy.h - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * webkit/webkitwebframe.cpp: - -2008-06-14 Darin Adler <darin@apple.com> - - - fix build - - * webkit/webkitwebframe.cpp: Remove a bogus release() call. - -2008-06-14 Darin Adler <darin@apple.com> - - Reviewed by Sam. - - - more https://bugs.webkit.org/show_bug.cgi?id=17257 - start ref counts at 1 instead of 0 for speed - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createDocumentLoader): Use create instead of new. - * webkit/webkitwebframe.cpp: - (webkit_web_frame_new): Ditto. - (webkit_web_frame_init_with_web_view): Ditto. - -2008-06-13 Darin Adler <darin@apple.com> - - - try to fix build - - * WebCoreSupport/FrameLoaderClientGtk.h: Add missing argument. - -2008-06-13 Darin Adler <darin@apple.com> - - Reviewed by John Sullivan. - - - updated for addition of FormState argument to action policy functions - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNewWindowAction): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - -2008-06-10 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker and Darin Adler. - - https://bugs.webkit.org/show_bug.cgi?id=16676 - Apply GTK coding style to WebKit Gtk public headers - - * webkit/webkitnetworkrequest.h: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.h: - -2008-06-07 Jan Michael Alonzo <jmalonzo@webkit.org> - - Confirmed by Christian Dywan. - - Gtk build fix for r34432 - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_history_item_add): - (_WebKitWebHistoryItemPrivate::webkit_history_item_remove): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (WebKit::core): - -2008-06-07 Darin Adler <darin@apple.com> - - - try to fix build after HistoryItem changes - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): Use HistoryItem::create. - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): Ditto. I also - believe this fixes a memory leak in the old version. - -2008-06-07 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=17324 - Remove PLATFORM ifdefs from ContextMenu.cpp - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::ContextMenuClient): - (WebKit::ContextMenuClient::contextMenuDestroyed): - (WebKit::inputMethodsMenuItem): - (WebKit::): - (WebKit::insertControlCharacter): - (WebKit::unicodeMenuItem): - (WebKit::ContextMenuClient::getCustomMenuFromDefaultItems): - * WebCoreSupport/ContextMenuClientGtk.h: - * webkit/webkitwebview.cpp: - -2008-06-05 Alp Toker <alp@nuanti.com> - - Add 'Since' documentation for API versioning functions. - - * webkit/webkitversion.cpp: - -2008-06-05 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=14141 - Please add a version to the Gtk port - - * webkit/webkit.h: - * webkit/webkitversion.cpp: Added. - * webkit/webkitversion.h.in: Added. - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - -2008-06-01 Alp Toker <alp@nuanti.com> - - Suggested by Christian Dywan. - - Use float literals for zoom values and improve documentation wording. - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - * webkit/webkitwebview.cpp: - -2008-06-01 Alp Toker <alp@nuanti.com> - - Reviewed by Oliver. - - Remove webkit_web_view_go_backward(), - webkit_web_view_can_go_backward(). These have been obsoleted by - the back() versions for quite a while. - - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-05-31 Alp Toker <alp@nuanti.com> - - Fix inconsistent zoom docs and enum name landed in r34249. Issue - noticed by Marco Barisione. - - * webkit/webkitwebview.cpp: - -2008-05-30 Carlos MartÃn Nieto <carlos@cmartin.tk> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=18383 - [GTK] The "hovering-over-link" signal arguments aren't documented. - - * webkit/webkitwebview.cpp: - -2008-05-29 Marco Barisione <marco@collabora.co.uk> - - Reviewed (and tweaked) by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=18281 - [GTK] add functions to set/get the zoom level - - * webkit/webkitwebsettings.cpp: - (_WebKitWebSettingsPrivate::): - (_WebKitWebSettingsPrivate::webkit_web_settings_class_init): - (_WebKitWebSettingsPrivate::webkit_web_settings_set_property): - (_WebKitWebSettingsPrivate::webkit_web_settings_get_property): - * webkit/webkitwebview.cpp: Add functions to get and set the zoom - level. - * webkit/webkitwebview.h: Ditto. - * webkit/webkitprivate.h: - -2008-05-28 Alp Toker <alp@nuanti.com> - - Reviewed by Alexey Proskuryakov. - - http://bugs.webkit.org/show_bug.cgi?id=18704 - [gtk] cannot type letters with dead keys in textarea - - http://bugs.webkit.org/show_bug.cgi?id=14120 - [GDK] Support input methods - - Add support for input method composition. - - Remove some old hacks so we handle input method events more - consistently. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::imContextPreeditChanged): - (WebKit::EditorClient::setInputMethodState): - (WebKit::EditorClient::respondToChangedSelection): - (WebKit::EditorClient::handleInputMethodKeydown): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - (WebKit::EditorClient::textFieldDidBeginEditing): - (WebKit::EditorClient::textFieldDidEndEditing): - (WebKit::EditorClient::textDidChangeInTextField): - (WebKit::EditorClient::doTextFieldCommandFromEvent): - * webkit/webkitwebview.cpp: - -2008-05-25 Alp Toker <alp@nuanti.com> - - Reviewed by Niko. - - Drop WebView focus when the widget is focused out. - - * webkit/webkitwebview.cpp: - -2008-05-25 Sriram Neelakandan <sriram.neelakandan@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=18935 - [Gtk] Plugin Load crashes with NP_FULL mode - - Fix crash due to uninitialized variable. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - -2008-05-24 Alp Toker <alp@nuanti.com> - - https://bugs.webkit.org/show_bug.cgi?id=18825 - webkitgtk fails to build from source: "Database Tracker" has not been declared - - GTK+ fix for building without database support. - exceededDatabaseQuota() still needs to be present, just a no-op. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): - -2008-05-23 Alp Toker <alp@nuanti.com> - - GTK+ fixes for building without database support. - - * WebCoreSupport/ChromeClientGtk.cpp: - -2008-05-19 Alp Toker <alp@nuanti.com> - - Reviewed by Anders and Beth. - - http://bugs.webkit.org/show_bug.cgi?id=16495 - [GTK] Accessibility support with ATK/AT-SPI - - Initial ATK/AT-SPI accessibility support for the GTK+ port. - - * webkit/webkitwebview.cpp: - -2008-05-06 Christian Dywan <christian@twotoasts.de> - - Rubber stamped by Alp. - - Back out 17626. It wasn't ready for commit. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-05-01 Marc Ordinas i Llopis <marc.ordinasillopis@collabora.co.uk> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=14750 - Added support for NPAPI plugins on Gtk and Qt-x11 ports. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::createPlugin): - (WebKit::FrameLoaderClient::redirectDataToPlugin): - (WebKit::FrameLoaderClient::finishedLoading): - (WebKit::FrameLoaderClient::setMainDocumentError): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-04-30 Sean Egan <seanegan@gmail.com> - - Reviewed and modified by Holger. - - https://bugs.webkit.org/show_bug.cgi?id=17626 - Support setting background color and a 16-bit alpha channel. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-04-24 Dan Bernstein <mitz@apple.com> - - - build fix - - * webkit/webkitwebview.cpp: - -2008-04-24 Anders Carlsson <andersca@apple.com> - - Reviewed by Sam. - - Change some String arguments to be const references instead. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldInsertText): - * WebCoreSupport/EditorClientGtk.h: - -2008-04-23 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - Emit a warning about an unknown setting only if it is - not a valid property. Otherwise applications can't - subclass WebKitWebSettings to add new properties. - - * webkit/webkitwebview.cpp: - -2008-04-20 Simon Hausmann <hausmann@webkit.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=18578 - Share the printing code between the Gtk and the Qt port - - Share the printing code between the Gtk and the Qt port - and added printing to the Qt WebKit API. - - * webkit/webkitwebframe.cpp: Removed PrintContext in favour of - page/Printcontext.cpp/h - -2008-04-19 Alp Toker <alp@nuanti.com> - - Reviewed by Maciej. - - Enable visited link tracking by default at startup. - - With this patch, the GTK+ port rendering of Acid3 now matches the - reference page. - - * webkit/webkitprivate.cpp: - (WebKit::core): - (webkit_init): - -2008-04-11 Mark Rowe <mrowe@apple.com> - - Gtk build fix after r32231. - - * webkit/webkitwebview.cpp: Update to use contentRenderer. - -2008-04-18 Alp Toker <alp@atoker.com> - - Rubber-stamped by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=18218 - [Gtk] segfault when clicking on a disabled button - - Always use the main frame for mouse events (not the focused frame) - since it knows best how to get the event through to the right target. - - This also fixes a null crasher. - - * webkit/webkitwebview.cpp: - -2008-04-17 Alp Toker <alp@atoker.com> - - Rubber-stamped by Holger Freyther. - - Reduce hard-coded page-cache count to 3 based on research done for the - Mac port on value / page. - - We will need to make this more dynamic or configurable at some point - but for now it's best to keep closer to the behaviour before page - caching was enabled. - - Issue spotted by Mark Rowe. - - * webkit/webkitprivate.cpp: - (webkit_init): - -2008-04-17 Daniele Metilli <daniele.metilli@gmail.com> - - Reviewed by Eric. - - Fixed a typo in the copyright header. - - * webkit/webkitprivate.h: - -2008-04-14 Holger Freyther <zecke@selfish.org> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=18411 - Enable Page caching and create FrameViews on the fly - - Create the FrameView on the fly and cache pages - - - Keep a copy of the GtkAdjustment to be able to reuse it for the - FrameViews - - Do not initially create a FrameView and update the WebKit code to - cope with not having a view. - - Cache seven pages by default. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::canCachePage): - (WebKit::FrameLoaderClient::savePlatformDataToCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * webkit/webkitprivate.cpp: - (webkit_init): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2008-04-10 Mario Bensi <mbensi@pleyo.com> - - Reviewed by Alp Toker. - - https://bugs.webkit.org/show_bug.cgi?id=18400 - Database example doesn't work on Gtk port - - Fix quota in ChromeClient - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): - -2008-04-08 Adam Roben <aroben@apple.com> - - Move callOnMainThread to WTF - - Reviewed by Alexey Proskuryakov. - - * webkit/webkitprivate.cpp: Updated #include. - (webkit_init): Changed to call KJS::initializeThreading. - -2008-04-06 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - Fix webkit_web_view_get_transparent() return value. - - * webkit/webkitwebview.cpp: - -2008-03-31 Jasper Bryant-Greene <jasper@unix.geek.nz> - - Reviewed by Darin Adler. - - Resolves http://bugs.webkit.org/show_bug.cgi?id=18010 - "WebKitNetworkRequestPrivate is defined in two places unnecessarily" - - Removed unnecessary definition of WebKitNetworkRequestPrivate in - webkitprivate.h - - * webkit/webkitprivate.h: - -2008-03-25 Brady Eidson <beidson@apple.com> - - Reviewed by Darin - - Remove newly obsolete FrameLoaderClient methods - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-03-20 Alp Toker <alp@atoker.com> - - GTK+ build fix. Back out r31183. This patch also introduced API style - issues. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - * webkit/headers.pri: - * webkit/webkit-marshal.list: - * webkit/webkitdefines.h: - * webkit/webkitnavigationaction.cpp: Removed. - * webkit/webkitnavigationaction.h: Removed. - * webkit/webkitprivate.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-03-20 Jasper Bryant-Greene <jasper@unix.geek.nz> - - Reviewed and tweaked by Anders. - - Resolves http://bugs.webkit.org/show_bug.cgi?id=16092 - "[GTK] Middle-mouse click should allow opening a URL in a new tab" - - Created WebKitNavigationAction object exported through the API. The - navigation-requested signal provides this object as context for the - requested navigation, allowing the application to decide what to do - with the navigation based on which mouse button was used, which - modifier keys were held down, etc. This allows, for example, the - application to open links in a new tab when either middle-click or - control-click are used to initiate the navigation. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - * webkit/headers.pri: - * webkit/webkit-marshal.list: - * webkit/webkitdefines.h: - * webkit/webkitnavigationaction.cpp: Added. - (webkit_navigation_action_finalize): - (webkit_navigation_action_class_init): - (webkit_navigation_action_init): - (webkit_navigation_action_get_button): - (webkit_navigation_action_get_modifier_flags): - (webkit_navigation_action_get_navigation_type): - (webkit_navigation_action_get_original_url): - * webkit/webkitnavigationaction.h: Added. - * webkit/webkitprivate.cpp: - (WebKit::kit): - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com> - - Reviewed and landed by jhoneycutt. - - Update to check if the MIME type is supported by a plugin. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (FrameLoaderClient::objectContentType): - -2008-03-18 Rodney Dawes <dobey@wayofthemonkey.com> - - Reviewed by Jon Honeycutt. - - Update setContainingWindow() calls to pass a GtkWidget. - - * webkit/webkitwebframe.cpp: - (webkit_web_frame_new): - (webkit_web_frame_init_with_web_view): - -2008-03-13 Rodney Dawes <dobey@wayofthemonkey.com> - - Fix GTK+ build for SharedBuffer changes. - - * webkit/webkitwebview.cpp: - (webkit_web_view_load_string): - -2008-03-12 Tommi Komulainen <tommi.komulainen@iki.fi> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=17799 - WebView signals should use more specific types - - * webkit/webkitwebview.cpp: Use WEBKIT_TYPE_WEB_FRAME argument - type in "script-alert", "script-confirm", "script-script-prompt" - signals so that it gets more clearly documented rather than just - plain GObject. - -2008-03-10 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - Fix "missing braces" compiler warning. - - * webkit/webkitwebview.cpp: - -2008-03-04 Sam Weinig <sam@webkit.org> - - Reviewed by Mark Rowe. - - - Remove all unnecessary includes of JSDOMWindowBase.h, we prefer including - JSDOMWindow.h - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * webkit/webkitwebframe.cpp: - -2008-03-03 Sam Weinig <sam@webkit.org> - - GTK+ build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::windowObjectCleared): - -2008-03-03 Alp Toker <alp@atoker.com> - - Fix the GTK+ build following breakage introduced in r30712. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - -2008-03-02 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Split the WebKit GTK+ build out of the WebCore build and change the - shared object name to match the package name. - - * webkit.pc.in: - -2008-02-27 Adam Roben <aroben@apple.com> - - Attempt to fix the GTK+ build - - * webkit/webkitwebframe.cpp: - -2008-02-24 Darin Adler <darin@apple.com> - - Reviewed by Sam. - - - remove separate client calls for "standard" and "reload' history - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::updateGlobalHistory): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2008-02-23 Alexey Proskuryakov <ap@webkit.org> - - Build fix. - - * webkit/webkitprivate.cpp: - (webkit_init): Renamed initializeThreading to initializeThreadingAndMainThread. - -2008-02-18 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=17312 - [GTK] Webview Transparent Background - - Add support for WebView background transparency. - - * webkit/webkitprivate.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-02-18 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Implement webkit_web_view_get_focused_frame() - - Equivalent to selectedFrame in the Mac API. - - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-02-17 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Reviewed by Mark Rowe. - - Fix a crash introduced in changeset #29985 by moving the dereference to after - the null check. - - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - -2008-02-15 Alp Toker <alp@atoker.com> - - Fix the GTK+ build following breakage introduced in r30243. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::objectContentType): - -2008-02-15 Darin Adler <darin@apple.com> - - - another try at fixing the build - - * webkit/webkitwebview.cpp: Added some explicit conversions to KURL. - -2008-02-14 Darin Adler <darin@apple.com> - - * webkit/webkitwebframe.cpp: Removed DeprecatedString use to try to keep it building. - * webkit/webkitwebview.cpp: Ditto. - -2008-02-14 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Alp. - - * Make the handling of the coreFrame consistent. We construct the coreFrame - at the beginning and it will live until the end. Change the g_return_(val_)if - to ASSERTs as having a 0 coreFrame can never happen. - - * webkit/webkitwebframe.cpp: - (PrintContext::webkit_web_frame_print): - -2008-02-14 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Alp. - - * Make sure that the WebCore::Frame is living as long as the WebKitWebFrame - wrapped around it. All current calls to WebCore::Frame from within the - WebKitWebFrame are safe, even in the case where the WebCore::Frame is already - detached from the WebCore::Page. - * For the mainFrame the WebKitWebView is holding the initial reference and - will unref on destruction. - * For sub-frames the FramerLoaderClientGtk.cpp will do the unrefing when the - frame gets detached from the parent. - * Make sure FrameLoader::detachFromParent gets called by calling FrameLoader::detachChildren - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::detachedFromParent4): - * webkit/webkitprivate.cpp: - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebview.cpp: - -2008-02-14 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Alp. - - WebCore::Frame is RefCounted, do not manually delete it! - - * webkit/webkitwebframe.cpp: - -2008-02-14 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Alp. - - * Plug a leak - - * webkit/webkitwebframe.cpp: - -2008-02-14 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Alp. - - * Update the Copyright Information - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * webkit/webkitprivate.h: - * webkit/webkitwebframe.cpp: - -2008-02-13 Alp Toker <alp@atoker.com> - - Reviewed by Adam Roben. - - Fix very small, upside down, inside out text on GTK+/DirectFB. - - Based on an initial patch by Sriram Neelakandan <sriram.neelakandan@gmail.com> - - Test the result of gdk_screen_get_resolution() and use a default - fallback in case of failure. - - Also remove an unhelpful runtime warning. - - * webkit/webkitwebview.cpp: - -2008-02-08 Pierre-Luc Beaudoin <pierre-luc.beaudoin@collabora.co.uk> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=17009 - [Gtk] Webkit strips accents from some dead-key combinations - - KeyEvents have to go through the gtk input method. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::EditorClient::doTextFieldCommandFromEvent): - -2008-02-05 Mark Rowe <mrowe@apple.com> - - Reviewed by Alp Toker. - - Fix warnings seen on the Gtk port by declaring variables and using constants of the correct types. - - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_contains_item): - * webkit/webkitwebhistoryitem.cpp: - * webkit/webkitwebview.cpp: - -2008-02-04 Christian Dywan <christian@imendio.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=17065 - [GTK] Use a consistent coding style - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - (WebKit::EditorClient::textFieldDidEndEditing): - * webkit/webkitdefines.h: - * webkit/webkitnetworkrequest.cpp: - (_WebKitNetworkRequestPrivate::webkit_network_request_finalize): - (_WebKitNetworkRequestPrivate::webkit_network_request_class_init): - (_WebKitNetworkRequestPrivate::webkit_network_request_init): - (_WebKitNetworkRequestPrivate::webkit_network_request_new): - (_WebKitNetworkRequestPrivate::webkit_network_request_set_uri): - (_WebKitNetworkRequestPrivate::webkit_network_request_get_uri): - * webkit/webkitnetworkrequest.h: - * webkit/webkitprivate.cpp: - (WebKit::getViewFromFrame): - (WebKit::core): - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_new_with_web_view): - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.cpp: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri): - (WebKit::core): - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-02-04 Alp Toker <alp@atoker.com> - - Rubber-stamped by Mark Rowe. - - Remove all trailing whitespace in the GTK+ port and related - components. - - * WebCoreSupport/DragClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.h: - * WebCoreSupport/InspectorClientGtk.h: - * WebCoreSupport/PasteboardHelperGtk.h: - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.cpp: - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_contains_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_length): - * webkit/webkitwebhistoryitem.cpp: - (_WebKitWebHistoryItemPrivate::webkit_history_items): - (_WebKitWebHistoryItemPrivate::webkit_history_item_add): - (_WebKitWebHistoryItemPrivate::webkit_history_item_remove): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_last_visited_time): - (WebKit::kit): - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebview.cpp: - * webkit/webkitwebview.h: - -2008-02-03 Christian Dywan <christian@imendio.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=17046 - [GTK] Context menu fixes and customisation suport - - * webkit/webkitwebview.cpp: - -2008-01-31 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Fix the pkg-config file to follow GTK+ package naming and versioning - conventions. - - Remove unneeded dependency listings. - - * WebKitGtk.pc.in: Removed. - * webkit.pc.in: Copied from WebKit/gtk/WebKitGtk.pc.in. - -2008-01-31 Alp Toker <alp@atoker.com> - - Rubber-stamped by Adam Roben. - - http://bugs.webkit.org/show_bug.cgi?id=17006 - [GTK] Header path should be webkit/webkit.h - - Move the GTK+ API sources as needed and update the build systems. - - * WebView: Removed. - * WebView/headers.pri: Removed. - * WebView/webkit-marshal.list: Removed. - * WebView/webkit.h: Removed. - * WebView/webkitdefines.h: Removed. - * WebView/webkitnetworkrequest.cpp: Removed. - * WebView/webkitnetworkrequest.h: Removed. - * WebView/webkitprivate.cpp: Removed. - * WebView/webkitprivate.h: Removed. - * WebView/webkitwebbackforwardlist.cpp: Removed. - * WebView/webkitwebbackforwardlist.h: Removed. - * WebView/webkitwebframe.cpp: Removed. - * WebView/webkitwebframe.h: Removed. - * WebView/webkitwebhistoryitem.cpp: Removed. - * WebView/webkitwebhistoryitem.h: Removed. - * WebView/webkitwebsettings.cpp: Removed. - * WebView/webkitwebsettings.h: Removed. - * WebView/webkitwebview.cpp: Removed. - * WebView/webkitwebview.h: Removed. - * webkit: Copied from WebKit/gtk/WebView. - * webkit/webkit.h: - * webkit/webkitnetworkrequest.h: - * webkit/webkitprivate.h: - * webkit/webkitwebbackforwardlist.h: - * webkit/webkitwebframe.h: - * webkit/webkitwebhistoryitem.h: - * webkit/webkitwebsettings.h: - * webkit/webkitwebview.h: - -2008-01-27 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=14811 - [gtk] [request] add a webkit_gtk_page_go_to_history_item function - - implement back/forward list and history item - - * WebView/headers.pri: - * WebView/webkit.h: - * WebView/webkitprivate.cpp: - * WebView/webkitprivate.h: - * WebView/webkitwebbackforwardlist.cpp: Added. - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_dispose): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_class_init): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_init): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_new_with_web_view): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_go_forward): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_go_back): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_contains_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_go_to_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_list_with_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_current_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_nth_item): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_back_length): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_forward_length): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_get_limit): - (_WebKitWebBackForwardListPrivate::webkit_web_back_forward_list_set_limit): - * WebView/webkitwebbackforwardlist.h: Added. - * WebView/webkitwebhistoryitem.cpp: Added. - (_WebKitWebHistoryItemPrivate::webkit_history_items): - (_WebKitWebHistoryItemPrivate::webkit_history_item_add): - (_WebKitWebHistoryItemPrivate::webkit_history_item_remove): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_dispose): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_finalize): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_class_init): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_init): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_core_item): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_new_with_data): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_set_alternate_title): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_original_uri): - (_WebKitWebHistoryItemPrivate::webkit_web_history_item_get_last_visited_time): - (WebKit::core): - (WebKit::kit): - * WebView/webkitwebhistoryitem.h: Added. - * WebView/webkitwebview.cpp: - * WebView/webkitwebview.h: - -2008-01-25 Ori Bernstein <ori@eigenstate.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16795 - WebKitGtk crashes when there is no focused Frame - - Add a null check. focusedFrame() isn't used directly anywhere else so - this is the only case that needs to be fixed. - - * WebView/webkitwebview.cpp: - -2008-01-22 Christian Dywan <christian@imendio.com> - - Reviewed by Alp Toker. - - [GTK] API: WebKitWebSettings is not usable - http://bugs.webkit.org/show_bug.cgi?id=16219 - - Implement WebKitWebSettings. - - * WebView/headers.pri: - * WebView/webkit.h: - * WebView/webkitprivate.cpp: - * WebView/webkitprivate.h: - * WebView/webkitsettings.cpp: Removed. - * WebView/webkitsettings.h: Removed. - * WebView/webkitwebsettings.cpp: Added. - * WebView/webkitwebsettings.h: Added. - * WebView/webkitwebview.cpp: - * WebView/webkitwebview.h: - -2008-01-21 Alp Toker <alp@atoker.com> - - GTK+ build fix for breakage introduced in r29698. - - * WebCoreSupport/ChromeClientGtk.h: - -2008-01-21 Darin Adler <darin@apple.com> - - Reviewed by John Sullivan. - - - updated for changes to database functions - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::exceededDatabaseQuota): - * WebCoreSupport/ChromeClientGtk.h: - * WebView/webkitprivate.cpp: - (webkit_init): - -2008-01-20 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Attach the widget's style to its window and set the background to the - base background to avoid black flicker when repainting. This is - similar to what GtkTextView does. - - * WebView/webkitwebview.cpp: - -2008-01-19 Christian Dywan <christian@imendio.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16882 - [GTK] ChromeClientGtk is incompete - - Implement these functions. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::windowRect): - (WebKit::ChromeClient::pageRect): - (WebKit::ChromeClient::scaleFactor): - (WebKit::ChromeClient::focus): - (WebKit::ChromeClient::unfocus): - (WebKit::ChromeClient::canTakeFocus): - (WebKit::ChromeClient::takeFocus): - (WebKit::ChromeClient::canRunBeforeUnloadConfirmPanel): - -2008-01-18 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16910 - [GTK] REGRESSION: keyboard cursor doesn't blink - - http://bugs.webkit.org/show_bug.cgi?id=16863 - [GTK] REGRESSION: tab focusing doesn't work - - * WebView/webkitwebview.cpp: - (webkit_web_view_focus_in_event): Added. Set the active frame. - (webkit_web_view_class_init): - -2008-01-16 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=16218 - [GTK] API: Should this entry point be called go_back rather than go_backward? - - Obsolete 'backward' terminology in API in favour of 'back'. Introduce - step-based back/forward functions. - - Document more functions. - - * WebView/webkitdefines.h: - * WebView/webkitwebview.cpp: - * WebView/webkitwebview.h: - -2008-01-10 Maciej Stachowiak <mjs@apple.com> - - Reviewed by Sam. - - - remove SecurityOriginData and fold its functionality into SecurityOrigin - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::requestQuotaIncreaseForNewDatabase): - (WebKit::ChromeClient::requestQuotaIncreaseForDatabaseOperation): - * WebCoreSupport/ChromeClientGtk.h: - -2008-01-09 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16802 - [GTK] Missing gtk properties - - Add missing properties to WebKitViewFrame and WebKitWebView. - - * WebView/webkitprivate.h: add some useful defines for param specs - * WebView/webkitwebframe.cpp: - (webkit_web_frame_get_property): added - (webkit_web_frame_class_init): add name, title and uri read-only properties - * WebView/webkitwebview.cpp: - (webkit_web_view_get_property): add editable property read - (webkit_web_view_set_property): added for editable property write - (webkit_web_view_class_init): add read-write editable property - -2008-01-03 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16654 - [GTK] Signal "navigation-requested" does not react correctly on - return TRUE from callbacks - - * WebView/webkitwebview.cpp: use our own accumulator for signals - returning WebKitNavigationResponse. The emission will be stopped - when any callback returns anything but - WEBKIT_NAVIGATION_RESPONSE_ACCEPT. - -2008-01-02 Holger Hans Peter Freyther <zecke@selfish.org> - - Rubber stamped by Darin Adler. - - Coding Style fix. Do not use an else because we use a return in the - if branch. - - * WebView/webkitwebview.cpp: - -2008-01-02 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16115 - [GTK] ContextMenu and ContextMenuItem lacks an implementation - - Add context menu support. - - Based on a patch by Holger Freyther. - - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::getCustomMenuFromDefaultItems): - * WebView/webkitprivate.h: - * WebView/webkitwebview.cpp: - -2007-12-29 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16669 - autotools update and fixes - - pkgconfig file and icon database inclusion fix - - * WebKitGtk.pc.in: Remove ICU_FLAGS from Cflags - * WebView/webkitprivate.cpp: Guard ICONDATABASE inclusions - -2007-12-28 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16642 - [GTK] webkit_web_view_has_selection returns the opposite result - - Invert the return value. - - * WebView/webkitwebview.cpp: - -2007-12-26 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16390 - Use autotools or GNU make as the build system for the GTK port - - * WebKitGtk.pc.in: Added. - -2007-12-24 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/attachment.cgi?id=18099 - There are no NULL checks for strings in public api - - Add missing NULL checks for string parameters. - - Provide sensible defaults when NULL is passed for the optional - parameters in webkit_web_view_load_string(). UTF-8 is the default - encoding used by GLib and text/html is a reasonable default content - type. - - * WebView/webkitnetworkrequest.cpp: - * WebView/webkitwebview.cpp: - -2007-12-22 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - Use webView, web_view, etc for variable names instead of page, which - was left over from the old API. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - (WebKit::EditorClient::textFieldDidBeginEditing): - (WebKit::EditorClient::textFieldDidEndEditing): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::postProgressStartedNotification): - (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - (WebKit::FrameLoaderClient::windowObjectCleared): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - -2007-12-22 Alp Toker <alp@atoker.com> - - GTK+ build fix - - GTK_TARGET_OTHER_APP is not available in older GTK+ versions. Pass - empty target flags for now. - - Check GTK+, not GLib versions, since they are different. - - * WebView/webkitwebview.cpp: - -2007-12-22 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16311 - [Gtk] Copy rich text to clipboard as text/plain and text/html. - - Add copy and paste targets for WebView and implement - WebCore::PasteboardHelper. - - * WebCoreSupport/PasteboardHelperGtk.cpp: Added. - (WebKit::PasteboardHelperGtk::getClipboard): - (WebKit::PasteboardHelperGtk::getCopyTargetList): - (WebKit::PasteboardHelperGtk::getPasteTargetList): - * WebCoreSupport/PasteboardHelperGtk.h: Added. - * WebView/webkitprivate.cpp: - (webkit_init): set the PasteboardHelperGtk as WebCore::Pasteboard helper - * WebView/webkitprivate.h: - (_WebKitWebViewPrivate::copy_target_list): added - (_WebKitWebViewPrivate::paste_target_list): added - * WebView/webkitwebview.cpp: - (webkit_web_view_get_property): added - (webkit_web_view_finalize): - (webkit_web_view_class_init): create properties for COPY_TARGET and PASTE_TARGET and create the copy and paste target lists - (webkit_web_view_get_copy_target_list): added - (webkit_web_view_get_paste_target_list): added - * WebView/webkitwebview.h: - (webkit_web_view_get_copy_target_list): added - (webkit_web_view_get_paste_target_list): added - -2007-12-22 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - Follow up to http://bugs.webkit.org/show_bug.cgi?id=16144 - - * WebView/webkitwebview.cpp: - Fix signal id arguments for g_signal_emit in - clipboard functions. - -2007-12-21 Alp Toker <alp@atoker.com> - - Documentation typo fix: s/wether/whether - - * WebView/webkitwebview.cpp: - -2007-12-21 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16144 - [GTK] Clipboard/ selection handling functions - - * WebView/webkitprivate.h: - * WebView/webkitwebview.cpp: - * WebView/webkitwebview.h: - -2007-12-19 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16222 - [GTK] Implement inline search and highlighting of matching strings. - - * WebView/webkitwebview.cpp: - * WebView/webkitwebview.h: - -2007-12-19 Alp Toker <alp@atoker.com> - - Reviewed by Holger Freyther. - - Delete when Destroy functions are called to avoid leaks - - This matches the Mac port. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/InspectorClientGtk.cpp: - -2007-12-14 Juan A. Suarez Romero <jasuarez@igalia.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16042 - [GTK] Eliminate webkit_init() - - Move webkit initialization to WebView class init. - - * WebView/headers.pri: - * WebView/webkit.h: - * WebView/webkitglobal.cpp: Removed. - * WebView/webkitglobal.h: Removed. - * WebView/webkitprivate.cpp: - (WebKit::webkit_init): - * WebView/webkitprivate.h: - * WebView/webkitwebframe.cpp: - * WebView/webkitwebview.cpp: - -2007-12-17 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=13542 - gdklauncher doesnt change URL in adress GTKEntry. - - Let DOMDocument observers do their work before emitting title-changed. - The load-committed signal has been added for both the view and the frame. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): emit title-changed - (WebKit::FrameLoaderClient::setTitle): set private title - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): update the frame uri and emit load-committed - * WebView/webkit-marshal.list: - * WebView/webkitprivate.h: - (_WebKitWebFramePrivate): rename location to uri - * WebView/webkitwebframe.cpp: - (webkit_web_frame_get_location): renamed to *_get_uri - (webkit_web_frame_get_uri): - (webkit_web_frame_real_title_changed): removed (see FrameLoaderClient::setTitle) - (webkit_web_frame_class_init): pass the frame and the title in title-changed, not the uri - (webkit_web_frame_finalize): - * WebView/webkitwebframe.h: - (_WebKitWebFrameClass): removed title_changed - * WebView/webkitwebview.cpp: - (webkit_web_view_class_init): pass only the title in title-changed - -2007-12-14 Alp Toker <alp@atoker.com> - - Fix inconsistent indentation in the license header. Maciej was right! - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - -2007-12-14 Alp Toker <alp@atoker.com> - - Reviewed by Maciej. - - http://bugs.webkit.org/show_bug.cgi?id=16432 - [GTK] Update license headers - - Consent has been given by the authors of these files to change license - to the LGPL as outlined in the bug report. - - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/DragClientGtk.cpp: - * WebCoreSupport/EditorClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::makeRepresentation): - (WebKit::FrameLoaderClient::forceLayout): - (WebKit::FrameLoaderClient::forceLayoutForNonHTML): - (WebKit::FrameLoaderClient::setCopiesOnScroll): - (WebKit::FrameLoaderClient::detachedFromParent1): - (WebKit::FrameLoaderClient::detachedFromParent2): - (WebKit::FrameLoaderClient::detachedFromParent3): - (WebKit::FrameLoaderClient::detachedFromParent4): - (WebKit::FrameLoaderClient::loadedFromCachedPage): - (WebKit::FrameLoaderClient::dispatchDidHandleOnloadEvents): - (WebKit::FrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidCancelClientRedirect): - (WebKit::FrameLoaderClient::dispatchWillPerformClientRedirect): - (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): - (WebKit::FrameLoaderClient::dispatchWillClose): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - (WebKit::FrameLoaderClient::dispatchDidFinishDocumentLoad): - (WebKit::FrameLoaderClient::dispatchDidFirstLayout): - (WebKit::FrameLoaderClient::dispatchShow): - (WebKit::FrameLoaderClient::cancelPolicyCheck): - (WebKit::FrameLoaderClient::dispatchDidLoadMainResource): - (WebKit::FrameLoaderClient::revertToProvisionalState): - (WebKit::FrameLoaderClient::clearUnarchivingState): - (WebKit::FrameLoaderClient::willChangeTitle): - (WebKit::FrameLoaderClient::didChangeTitle): - (WebKit::FrameLoaderClient::finalSetupForReplace): - (WebKit::FrameLoaderClient::setDefersLoading): - (WebKit::FrameLoaderClient::isArchiveLoadPending): - (WebKit::FrameLoaderClient::cancelPendingArchiveLoad): - (WebKit::FrameLoaderClient::clearArchivedResources): - (WebKit::FrameLoaderClient::canHandleRequest): - (WebKit::FrameLoaderClient::canShowMIMEType): - (WebKit::FrameLoaderClient::representationExistsForURLScheme): - (WebKit::FrameLoaderClient::generatedMIMETypeForURLScheme): - (WebKit::FrameLoaderClient::dispatchDidReceiveContentLength): - (WebKit::FrameLoaderClient::dispatchDidFinishLoading): - (WebKit::FrameLoaderClient::dispatchDidFailLoading): - (WebKit::FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): - (WebKit::FrameLoaderClient::download): - (WebKit::FrameLoaderClient::cancelledError): - (WebKit::FrameLoaderClient::blockedError): - (WebKit::FrameLoaderClient::cannotShowURLError): - (WebKit::FrameLoaderClient::interruptForPolicyChangeError): - (WebKit::FrameLoaderClient::cannotShowMIMETypeError): - (WebKit::FrameLoaderClient::fileDoesNotExistError): - (WebKit::FrameLoaderClient::shouldFallBack): - (WebKit::FrameLoaderClient::willUseArchive): - (WebKit::FrameLoaderClient::canCachePage): - (WebKit::FrameLoaderClient::dispatchCreatePage): - (WebKit::FrameLoaderClient::dispatchUnableToImplementPolicy): - (WebKit::FrameLoaderClient::setMainDocumentError): - (WebKit::FrameLoaderClient::startDownload): - (WebKit::FrameLoaderClient::updateGlobalHistoryForStandardLoad): - (WebKit::FrameLoaderClient::updateGlobalHistoryForReload): - (WebKit::FrameLoaderClient::savePlatformDataToCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * WebCoreSupport/InspectorClientGtk.cpp: - * WebView/webkitwebview.cpp: - -2007-12-14 Darin Adler <darin@apple.com> - - Reviewed by Alexey. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): Changed to use Editor::command - instead of Editor::execCommand. - * WebView/webkitwebview.cpp: Ditto. - -2007-12-12 Brady Eidson <beidson@apple.com> - - Reviewed by Sam Weinig - - As part of doing some CachedPage and client cleanup, keep GTK building - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::savePlatformDataToCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedFromCachedPage): - (WebKit::FrameLoaderClient::transitionToCommittedForNewPage): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-12-12 Alp Toker <alp@atoker.com> - - Reviewed by Holger Freyther. - - http://bugs.webkit.org/show_bug.cgi?id=15576 - [GTK] Printing support - - Add printing support. - - The API will be kept internal for the time being, but printing can now - be triggered by Web pages or the JSC API using JavaScript. - - The print spooler and pagination code is fairly abstract and could be - shared by other ports including Win and Qt once complete. It doesn't - have header/footer support yet. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::print): - * WebView/webkitprivate.h: - * WebView/webkitwebframe.cpp: - (PrintContext::begin_print): - (PrintContext::draw_page): - (PrintContext::end_print): - (PrintContext::webkit_web_frame_print): - -2007-12-12 Sam Weinig <sam@webkit.org> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didChangeTitle): - -2007-12-12 Sam Weinig <sam@webkit.org> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - -2007-12-11 George Wright <george.wright@collabora.co.uk> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=14120 - [GDK] Support input methods - - This patch adds infrastructure for input method support. - - It also adds Hildon features for the Maemo mobile platform sufficient - to support the virtual keyboard. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::imContextCommitted): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::~EditorClient): - (WebKit::EditorClient::textFieldDidBeginEditing): - (WebKit::EditorClient::textFieldDidEndEditing): - * WebCoreSupport/EditorClientGtk.h: - * WebView/webkitprivate.h: - * WebView/webkitwebview.cpp: - -2007-12-07 Alexey Proskuryakov <ap@webkit.org> - - Reviewed by Darin Adler. - - <rdar://problem/5535636> - Have to press 4 times instead of 2 times to get the expected result of ^^ with german keyboard. - - http://bugs.webkit.org/show_bug.cgi?id=13916 - JavaScript detects Tab as a character input on a textfield validation - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeyboardEvent): - (WebKit::EditorClient::handleInputMethodKeydown): - * WebCoreSupport/EditorClientGtk.h: - Updated for cross-platform changes as much as it was possible without a gtk build environment. - -2007-12-08 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16346 - [GTK] Some webview parts must use the focused frame. - - Also update some old code. - - * WebView/webkitprivate.cpp: - (getFrameFromView): removed - - * WebView/webkitprivate.h: - (getFrameFromView): removed - - * WebView/webkitwebview.cpp: - (webkit_web_view_expose_event): - (webkit_web_view_key_press_event): use focused frame - (webkit_web_view_key_release_event): use focused frame - (webkit_web_view_button_press_event): - (webkit_web_view_button_release_event): - (webkit_web_view_motion_event): - (webkit_web_view_scroll_event): - (webkit_web_view_size_allocate): - (webkit_web_view_set_scroll_adjustments): - (webkit_web_view_execute_script): - (webkit_web_view_stop_loading): - (webkit_web_view_load_string): - (webkit_web_view_reload): - (webkit_web_view_open): - (webkit_web_view_can_go_forward): - (webkit_web_view_can_go_backward): - (webkit_web_view_go_forward): - (webkit_web_view_go_backward): - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeypress): fix for page up and page down keys for editable contents - -2007-12-07 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16333 - [GTK] Key bindings must work with focused frames. - - There are still more cases where getFrameFromView() is mis-used that - need to be fixed, but this is a good start. - - * WebView/webkitwebview.cpp: - (webkit_web_view_real_select_all): - (webkit_web_view_real_cut_clipboard): - (webkit_web_view_real_copy_clipboard): - (webkit_web_view_real_paste_clipboard): - -2007-12-06 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16329 - [GTK] Two small cleanups - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::createWindow): - (WebKit::ChromeClient::addMessageToConsole): - (WebKit::ChromeClient::runJavaScriptAlert): - (WebKit::ChromeClient::runJavaScriptConfirm): - (WebKit::ChromeClient::runJavaScriptPrompt): - (WebKit::ChromeClient::setStatusbarText): - (WebKit::ChromeClient::mouseDidMoveOverElement): - (WebKit::ChromeClient::setToolTip): - * WebCoreSupport/ChromeClientGtk.h: - * WebView/webkitprivate.cpp: - (WebKit::kit): - s/m_webPage/m_webView/ - * WebView/webkitwebview.cpp: - Chain up to the parent class to activate bindings instead - of doing it explicitely. - -2007-12-06 Holger Hans Peter Freyther <holger.freyther@trolltech.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=16173 - Licensing change - - Change license from BSD to LGPL. - - * WebCoreSupport/ChromeClientGtk.h: - * WebView/webkitdefines.h: - * WebView/webkitglobal.cpp: - * WebView/webkitglobal.h: - * WebView/webkitnetworkrequest.cpp: - * WebView/webkitnetworkrequest.h: - * WebView/webkitprivate.cpp: - * WebView/webkitprivate.h: - * WebView/webkitsettings.cpp: - * WebView/webkitsettings.h: - * WebView/webkitwebframe.cpp: - * WebView/webkitwebframe.h: - * WebView/webkitwebview.h: - -2007-12-05 Michael Natterer <mitch@imendio.com> - - Reviewed by Alp Toker. - - * WebView/webkitwebview.cpp: split key and button event handlers - into separate press and release functions. - -2007-12-05 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - Handle events for Home and End keys. - - * WebView/webkitwebview.cpp: - (webkit_web_view_key_event): - * WebCoreSupport/EditorClientGtk.cpp: - (EditorClient::handleKeypress): - -2007-12-05 Michael Natterer <mitch@imendio.com> - - Reviewed by Alp Toker. - - * WebView/webkitwebview.cpp - * WebCoreSupport/ChromeClientGtk.cpp - * WebCoreSupport/FrameLoaderClientGtk.cpp: canonicalize signal names. - -2007-12-04 Darin Adler <darin@apple.com> - - Reviewed by Kevin Decker. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: Removed obsolete privateBrowsingEnabled. - * WebCoreSupport/FrameLoaderClientGtk.h: Ditto. - -2007-12-04 Michael Natterer <mitch@imendio.com> - - Reviewed by Alp Toker. - - * WebView/webkitwebframe.cpp: don't redeclare the marshaller - prototype but simply include "webkit-marshal.h" now that its build - is fixed. - -2007-12-04 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - Fix a regression in key press propagation in r28386. - - Fix indentation (was off by two spaces). - - * WebView/webkitwebview.cpp: - -2007-12-04 Luca Bruno <lethalman88@gmail.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15911 - [GTK] Use GtkBindingSet to make key bindings user-configurable - - This patch doesn't cover the full range of bindings, only the ones - that seem obviously correct and have clear public API. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeypress): do not handle clipboard operations and select-all - * WebView/webkitwebview.cpp: add cut, copy, paste and select-all signals and allow binding sets (issue #15911 and #16144) - * WebView/webkitwebview.h: - -2007-12-04 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15561 - GTK port needs DumpRenderTree implementation - - Start work on the GTK+ DRT. - - Add a couple of proposed new API entry points. They are currently for - internal use only by DRT and not in the public headers. - - * WebView/webkitprivate.h: - * WebView/webkitwebframe.cpp: - -2007-12-03 Dan Bernstein <mitz@apple.com> - - Reviewed by Dave Hyatt. - - - fix <rdar://problem/5346452> Resize event doesn't fire on body element inside a frame - - * WebView/webkitwebview.cpp: Remove the call to sendResizeEvent() since - FrameView sends it now. - -2007-12-03 Alp Toker <alp@atoker.com> - - globalObject() GTK+ build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::windowObjectCleared): - -2007-12-03 Geoffrey Garen <ggaren@apple.com> - - GTK Build fix: get globalExec from the right place. - - * WebView/webkitwebframe.cpp: - -2007-12-01 Alp Toker <alp@atoker.com> - - Reviewed by Adam Roben. - - Wrap type definitions in webkitdefines.h with G_BEGIN_DECLS, which - takes care of extern "C". - - Introduce a webkit.h convenience header. - - Remove another left-over from the old API. - - * WebView/headers.pri: - * WebView/webkit.h: Added. - * WebView/webkitdefines.h: - -2007-12-01 Alp Toker <alp@atoker.com> - - Reviewed by Adam Roben. - - http://bugs.webkit.org/show_bug.cgi?id=15687 - [Gtk] Allow API clients to interact with JavaScript in web pages - - Include the necessary JavaScriptCore headers directly in the public - API headers. - - This is the last of a series of changes needed to allow GTK+ - applications to access the JS API. - - Until http://bugs.webkit.org/show_bug.cgi?id=16029 is resolved, - developers will still have to include the individual JS API headers - individually if they want to use it in their applications. - - Patch also removes some old legacy use of GDK that was in - WebKitWebFrame. No ABI change. - - * WebView/webkitdefines.h: - * WebView/webkitwebframe.h: - * WebView/webkitwebview.h: - -2007-11-30 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Fix for GTK+ Debug build breakage introduced in r28273. - - * WebView/webkitprivate.cpp: - (WebKit::kit): - -2007-11-30 Alp Toker <alp@atoker.com> - - Reviewed by Adam Roben. - - http://bugs.webkit.org/show_bug.cgi?id=15691 - [GTK] Public API does not follow GTK+ conventions - - Refactor the WebKit/GTK+ public API. Changes: - WebKitPage -> WebKitWebView - WebKitFrame -> WebKitWebFrame - - Public API source and header names have been updated to mirror the API - changes. - - The API is now kept in WebKit/gtk/WebView to match other ports in the - same class such as Mac and Win. - - API/ABI-breaking change. - - * Api: Removed. - * Api/headers.pri: Removed. - * Api/webkitgtk-marshal.list: Removed. - * Api/webkitgtkdefines.h: Removed. - * Api/webkitgtkframe.cpp: Removed. - * Api/webkitgtkframe.h: Removed. - * Api/webkitgtkglobal.cpp: Removed. - * Api/webkitgtkglobal.h: Removed. - * Api/webkitgtknetworkrequest.cpp: Removed. - * Api/webkitgtknetworkrequest.h: Removed. - * Api/webkitgtkpage.cpp: Removed. - * Api/webkitgtkpage.h: Removed. - * Api/webkitgtkprivate.cpp: Removed. - * Api/webkitgtkprivate.h: Removed. - * Api/webkitgtksettings.cpp: Removed. - * Api/webkitgtksettings.h: Removed. - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::createWindow): - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::webPage): - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::isEditable): - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::postProgressStartedNotification): - (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::dispatchDecidePolicyForNavigationAction): - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::windowObjectCleared): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - (WebKit::FrameLoaderClient::setTitle): - * WebCoreSupport/FrameLoaderClientGtk.h: - (WebKit::FrameLoaderClient::webFrame): - * WebView: Added. - * WebView/headers.pri: Added. - * WebView/webkit-marshal.list: Added. - * WebView/webkitdefines.h: Added. - * WebView/webkitglobal.cpp: Added. - * WebView/webkitglobal.h: Added. - * WebView/webkitnetworkrequest.cpp: Added. - * WebView/webkitnetworkrequest.h: Added. - * WebView/webkitprivate.cpp: Added. - (WebKit::apply): - (WebKit::create): - (WebKit::getFrameFromView): - (WebKit::getViewFromFrame): - (WebKit::core): - (WebKit::kit): - * WebView/webkitprivate.h: Added. - * WebView/webkitsettings.cpp: Added. - * WebView/webkitsettings.h: Added. - * WebView/webkitwebframe.cpp: Added. - * WebView/webkitwebframe.h: Added. - * WebView/webkitwebview.cpp: Added. - * WebView/webkitwebview.h: Added. - -2007-11-28 Alp Toker <alp@atoker.com> - - Reviewed by Timothy Hatcher. - - http://bugs.webkit.org/show_bug.cgi?id=16174 - [GTK] Use "URI" not "URL" in public API - - Replace use of the term "URL" with "URI" in public headers, - documentation and some internal code to match GLib/GTK+ convention. - - This is now mentioned in the API guidelines: - http://trac.webkit.org/projects/webkit/wiki/HackingGtk - - API/ABI-breaking change. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtknetworkrequest.cpp: - * Api/webkitgtknetworkrequest.h: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.h: - * Api/webkitgtksettings.h: - -2007-11-29 Brady Eidson <beidson@apple.com> - - Better build fix for Gtk - - * WebCoreSupport/ChromeClientGtk.h: - -2007-11-29 Brady Eidson <beidson@apple.com> - - Keep it building with new client method - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::requestQuotaIncreaseForNewDatabase): - (WebKit::ChromeClient::requestQuotaIncreaseForDatabaseOperation): - * WebCoreSupport/ChromeClientGtk.h: - -2007-11-26 Alp Toker <alp@atoker.com> - - Reviewed by Adam Roben. - - http://bugs.webkit.org/show_bug.cgi?id=16149 - Implement the window-object-cleared signal - - This implementation provides the JSGlobalContextRef and JSObjectRef - directly rather than using an intermediate JS wrapper object, similar - to the approach taken by the Win port. - - * Api/webkitgtk-marshal.list: - * Api/webkitgtkframe.h: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::windowObjectCleared): - -2007-11-24 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=15691 - [GTK] Public API does not follow GTK+ conventions - - Public API enhancements: - - Implement webkit_page_get_editable() and webkit_page_set_editable(). - - Implement webkit_frame_get_name(). - - Remove definitions for functions that are unusable or not implemented. - This has caused much confusion for application developers. - - Improve documentation. - - Correct/constify some return types. - - Add parameter checks. - - Make the default fixed font "Courier New" to match the other Web - font names. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframe.h: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.h: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::isEditable): - -2007-11-24 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=16125 - [GTK] Up key doesn't work properly when content is editable - - Add a missing 'break' to avoid falling through to the next case when - handling VK_UP keystrokes. This was noticed when working on editing - support in the GTK+ port. - - I've checked the other cases for similar typos and they seem fine. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeypress): - -2007-11-24 Xan Lopez <xan@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15745 - [GTK] Arrow keys do not Scroll - - * Api/webkitgtkpage.cpp: - - Support Up/Down/Right/Left keys to scroll. Slight hack, see FIXME for - details. - -2007-11-24 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15891 - [GTK] Javascript console and dialogs are not implemented - - Fix call to gtk_message_dialog_new() which expects a format string. - - * Api/webkitgtkpage.cpp: - -2007-11-24 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15793 - [GTK] Webkit doesn't show title attribute tooltip when hovering over an image - - Implement tooltip support using the new Tooltip API. - - Support for older versions of GTK+ is still lacking. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::setToolTip): - -2007-11-22 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Implement and document several WebKitFrame functions, some of which - are necessary to support DRT. - - Correct NULL handling and improve run-time checks. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframe.h: - * Api/webkitgtkprivate.cpp: - -2007-11-22 Alp Toker <alp@atoker.com> - - Whitespace fixes only. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.h: - * WebCoreSupport/ChromeClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.cpp: - * WebCoreSupport/ContextMenuClientGtk.h: - * WebCoreSupport/DragClientGtk.h: - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::assignIdentifierToInitialRequest): - (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::createJavaAppletWidget): - (WebKit::FrameLoaderClient::registerForIconNotification): - (WebKit::FrameLoaderClient::setMainFrameDocumentReady): - (WebKit::FrameLoaderClient::dispatchDidFinishLoad): - (WebKit::FrameLoaderClient::frameLoadCompleted): - (WebKit::FrameLoaderClient::saveViewStateToItem): - (WebKit::FrameLoaderClient::restoreViewState): - (WebKit::FrameLoaderClient::shouldGoToHistoryItem): - (WebKit::FrameLoaderClient::setTitle): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-11-22 Michael Natterer <mitch@imendio.com> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=15984 - Implement "navigation-requested" signal for WebKit Gtk - - * Api/webkitgtknetworkrequest.h: fix parent class member. - - * Api/webkitgtknetworkrequest.cpp - * Api/webkitgtkprivate.h: basic implementation featuring an - "url" member and API. - - * Api/webkitgtkdefines.h: added network request typedefs. - - * Api/webkitgtkpage.h: fix enum name: - s/WEBKIT_NAVIGATION_REQUEST_RESPONSE/WebKitNavigationRequestResponse/ - and sanitized enum values. - - * Api/webkitgtkpage.cpp: made "navigation-requested" a signal. - - * Api/webkitgtk-marshal.list: added INT:OBJECT,OBJECT - - * WebCoreSupport/FrameLoaderClientGtk.cpp: emit the new signal in - dispatchDecidePolicyForNavigationAction(). - -2007-11-18 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp. - - http://bugs.webkit.org/show_bug.cgi?id=15891 - [GTK] Javascript console and dialogs are not implemented - - Correct script-prompt to return NULL when cancelled. - - Small changes to avoid compiler warnings. - - * Api/webkitgtkpage.cpp: - -2007-11-17 Timothy Hatcher <timothy@apple.com> - - Reviewed by Mark Rowe. - - Bug 13470: i18n: The Web Inspector is not localizable - http://bugs.webkit.org/show_bug.cgi?id=13470 - - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::localizedStringsURL): Empty stub. - * WebCoreSupport/InspectorClientGtk.h: Add localizedStringsURL. - -2007-11-13 Mark Rowe <mrowe@apple.com> - - Gtk build fix. Replace incorrect use of the LOG macro with g_print. - - * Api/webkitgtkpage.cpp: - -2007-11-13 Christian Dywan <christian@twotoasts.de> - - Reviewed by Alp. - - http://bugs.webkit.org/show_bug.cgi?id=15891 - [GTK] Javascript console and dialogs are not implemented - - Implement signals for script dialogs and console messages. - - * Api/webkitgtk-marshal.list: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::addMessageToConsole): - (WebKit::ChromeClient::runJavaScriptAlert): - (WebKit::ChromeClient::runJavaScriptConfirm): - (WebKit::ChromeClient::runJavaScriptPrompt): - -2007-11-11 Alp Toker <alp@atoker.com> - - Reviewed by Anders. - - Initialize m_userAgent. - - Fix typos in GDK_WINDOWING conditionals. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::agentPlatform): - -2007-11-11 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Mention Safari in the UserAgent string to improve site compatibility. - - Also bump the hard-coded AppleWebKit version number. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::composeUserAgent): - -2007-11-09 Xan Lopez <xan@gnome.org> - - Reviewed by Alp. - - Fix http://bugs.webkit.org/show_bug.cgi?id=15926 - [GTK] WebKitPage map handler is redundant. - - * Api/webkitgtkpage.cpp: - The map handler for WebKitPage is redundant, GtkContainer does - the same (and more correctly). - -2007-11-08 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=15653 - [GTK] Text editor does not handle common keystrokes - - Handle more keystrokes in EditorClientGtk. Note that this is a - temporary measure pending a proper solution using GtkBindingSet (see - http://bugs.webkit.org/show_bug.cgi?id=15911). - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeypress): - -2007-11-08 Kevin McCullough <kmccullough@apple.com> - - Reviewed by Sam. - - - windowObjectCleared() is no longer const. It needs to setup the - script debugger and cannot be const to do so. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::windowObjectCleared): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-11-06 Rodney Dawes <dobey@wayofthemonkey.com> - - Fix http://bugs.webkit.org/attachment.cgi?id=17043&action=view - Bug 15766: [GTK] WebKit sometimes spews binary data as text/plain into iframes - - FrameLoaderClient::objectContentType needs to check with the MIMETypeRegistry - to determine whether the given MIME type is displayable as an image or non-image. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (FrameLoaderClient::objectContentType): Change logic to match that in - the Windows and Mac ports. - -2007-11-05 Christian Dywan <christian@twotoasts.de> - - Reviewed by Maciej. - - http://bugs.webkit.org/show_bug.cgi?id=15409 - FrameLoaderClientGtk hardcodes data, including platform to Linux i686 - - Compute a proper user agent string. - - Patch includes fixes by Alp. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::agentPlatform): - (WebKit::agentOS): - (WebKit::composeUserAgent): - (WebKit::FrameLoaderClient::userAgent): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-11-05 Mark Rowe <mrowe@apple.com> - - Rubber-stamped by Alp Toker. - - Remove unused m_firstData member from FrameLoaderClientGtk. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-11-05 Mark Rowe <mrowe@apple.com> - - Reviewed by Alp Toker. - - Fix http://bugs.webkit.org/show_bug.cgi?id=15842 - Bug 15842: [Gtk] about:blank doesn't work - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::finishedLoading): Set the encoding on the frame loader to - get work done that is normally done when the first bit of data is received, even in the - case of a document with no data (like about:blank). - -2007-11-03 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Restore correct double and triple click behaviour - - We ended up ignoring GDK_2BUTTON_PRESS and GDK_3BUTTON_PRESS after - recent refactoring. - - * Api/webkitgtkpage.cpp: - -2007-11-03 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - Frame scrolling and invalidation fixes - - Make upward scroll events have a positive delta to match other ports. - - Fix the invalidation rect offset for frames so that scrolling works properly. - - Avoid allocating negative sizes to widgets to avoid GTK+ warnings. - - Allow tabbing to all widgets and links. - - Fix event returns, improving the focus situation and correcting scroll wheel - behavior. - - * Api/webkitgtkpage.cpp: - * WebCoreSupport/ChromeClientGtk.cpp: - -2007-10-29 Alp Toker <alp@atoker.com> - - Reviewed by Maciej. - - Do not allow control to reach end of non-void functions - - * Api/webkitgtksettings.cpp: - -2007-10-28 Lars Lindner <lars.lindner@gmail.com> - - Reviewed by Alp. - - http://bugs.webkit.org/show_bug.cgi?id=15466 - [gtk] widget does not take focus on mouse click - - Grab widget focus in mouse press callback. - - * Api/webkitgtkpage.cpp: - -2007-10-25 Alp Toker <alp@atoker.com> - - Reviewed by Brady. - - http://bugs.webkit.org/show_bug.cgi?id=15686 - GtkLauncher aborts on launch due to uninitialized threading subsystem - - Re-enable database support in the GTK+ port, with a fix. - - Initialize GLib threading as early as possible. - - * Api/webkitgtkglobal.cpp: - -2007-10-25 Alp Toker <alp@atoker.com> - - Unreviewed fix to make the GTK+ port run. - - http://bugs.webkit.org/show_bug.cgi?id=15686 - GtkLauncher aborts on launch due to uninitialized threading subsystem - - http://bugs.webkit.org/show_bug.cgi?id=15688 - [GTK] Make it possible to disable database support - - Make database path initialization conditional on database support - being enabled. - - * Api/webkitgtkglobal.cpp: - -2007-10-24 Mark Rowe <mrowe@apple.com> - - Gtk build fix. Track WebCore changes in r27004. - - * Api/webkitgtkglobal.cpp: - -2007-10-22 Alp Toker <alp@atoker.com> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=15611 - [GTK] Text selection behaviour different in Debug and Release builds - - http://bugs.webkit.org/show_bug.cgi?id=15578 - [GTK] Text editor caret does not blink - - Never allow control to reach the end of non-void functions. - - Return more sensible values, or in some cases, nulls. - - * Api/webkitgtksettings.cpp: - * Api/webkitgtksettings.h: - * WebCoreSupport/DragClientGtk.cpp: - (WebKit::DragClient::actionMaskForDrag): - (WebKit::DragClient::dragSourceActionMaskForPoint): - (WebKit::DragClient::createDragImageForLink): - -2007-10-20 Mark Rowe <mrowe@apple.com> - - Reviewed by Alp. - - Gtk changes needed to enable HTML 5 client-side database storage. - - * Api/webkitgtkglobal.cpp: Set a default database path based on the user data directory. - This should become configurable by client applications in the future. - -2007-10-20 Mark Rowe <mrowe@apple.com> - - Reviewed by Eric. - - Don't allow control characters to be inserted into editable regions. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::handleKeypress): - -2007-10-19 Alp Toker <alp@atoker.com> - - Reviewed by Oliver. - - GTK+ build fix enabling the new local database storage feature. - There is also a prospective Qt build fix. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runDatabaseSizeLimitPrompt): - * WebCoreSupport/ChromeClientGtk.h: - -2007-10-14 Jan Michael Alonzo <jmalonzo@unpluggable.com> - - Reviewed by Adam. - - http://bugs.webkit.org/show_bug.cgi?id=15299 - Fix "hovering_over_link" signal not emitted when consecutive links - are hovered. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - * WebCoreSupport/ChromeClientGtk.h: - - Remove m_didSendLinkSignal as it is superseded by m_hoveredLinkURL - -2007-10-10 Alice Liu <alice.liu@apple.com> - - Reviewed by Geoff Garen. - - changes to keep the build from breaking - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createFrame): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-10-03 Alp Toker <alp@atoker.com> - - Reviewed by Adam. - - http://bugs.webkit.org/show_bug.cgi?id=14726 - [gtk] API design. Mapping the WebView delegates to signals. - - Change the API namespace of the Gtk+ port from 'WebKitGtk' to 'WebKit'. - - * Api/webkitgtkdefines.h: - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframe.h: - * Api/webkitgtkglobal.cpp: - * Api/webkitgtkglobal.h: - * Api/webkitgtknetworkrequest.h: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.cpp: - (WebKit::apply): - (WebKit::create): - (WebKit::getFrameFromPage): - (WebKit::getPageFromFrame): - (WebKit::core): - (WebKit::kit): - * Api/webkitgtkprivate.h: - * Api/webkitgtksettings.cpp: - * Api/webkitgtksettings.h: - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::createWindow): - (WebKit::ChromeClient::addMessageToConsole): - (WebKit::ChromeClient::runJavaScriptAlert): - (WebKit::ChromeClient::runJavaScriptConfirm): - (WebKit::ChromeClient::runJavaScriptPrompt): - * WebCoreSupport/ChromeClientGtk.h: - (WebKit::ChromeClient::webPage): - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::EditorClient): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::postProgressStartedNotification): - (WebKit::FrameLoaderClient::postProgressEstimateChangedNotification): - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::createFrame): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - (WebKit::FrameLoaderClient::setTitle): - * WebCoreSupport/FrameLoaderClientGtk.h: - (WebKit::FrameLoaderClient::webFrame): - -2007-10-02 Cosimo Cecchi <cosimoc@svn.gnome.org> - - Reviewed by Mark. - - http://bugs.webkit.org/show_bug.cgi?id=15299 - Fix "hovering_over_link" signal being fired every time mouse moves. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::mouseDidMoveOverElement): - * WebCoreSupport/ChromeClientGtk.h: - -2007-09-21 Sean Egan <seanegan@gmail.com> - - Reviewed by Alp. - - Add an "execute_script" method to programmatically call Javascript - http://bugs.webkit.org/show_bug.cgi?id=15255 - - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - -2007-09-29 Lars Lindner <lars.lindner@gmail.com> - - Reviewed by Adam. - - ChromeClientGtk.cpp does not implement mouseDidMoveOverElement() - http://bugs.webkit.org/show_bug.cgi?id=15299 - - Implementing "hovering_over_link" signal. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::mouseDidMoveOverElement): - -2007-09-26 Mark Rowe <mrowe@apple.com> - - Gtk build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: Check for empty URL instead of invalid URL. - -2007-09-17 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - WebKitGtkPage and WebKitGtkFrame have a dependency on each other. To - allow client code to include both headers the typedef's for - WebKitGtkFrame, WebKitGtkPage, WebKitGtkFrameData and WebKitGtkNetworkRequest - are moved into webkitgtkdefines.h and included by both webkitgtkpage.h and - webkitgtkframe.h - - * Api/webkitgtkdefines.h: - * Api/webkitgtkframe.h: - * Api/webkitgtkpage.h: - -2007-09-17 Cyril Brulebois <cyril.brulebois@enst-bretagne.fr> - - Reviewed by Mark, some Coding Style changes by Holger. - - This is from http://bugs.webkit.org/show_bug.cgi?id=14812. - - Add title and location to WebKitGtkFramePrivate, add - webkit_gtk_frame_get_location to the WebKitGtkFrame API as well - as a title_changed callback, implement - webkit_gtk_frame_get_title and webkit_gtk_frame_get_location. - - Initial patch by Diego Escalante Urrelo. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframe.h: - * Api/webkitgtkprivate.h: - -2007-09-15 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Mark. - - Use the new WebCore::String::fromUTF8 function to convert - from the Gtk+ representation of a string to WebCore::String. - - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::runJavaScriptPrompt): - -2007-09-10 Nigel Tao <nigeltao@gnome.org> - - Reviewed by Mark Rowe. - - Fix a typo where webkit_gtk_page_can_copy was declared twice, - rather than webkit_gtk_page_can_paste. - - * Api/webkitgtkpage.h: - -2007-09-08 Brady Eidson <beidson@apple.com> - - Better build fix - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::registerForIconNotification): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-09-08 Brady Eidson <beidson@apple.com> - - Build fix - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::registerForIconNotification): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-09-05 Geoffrey Garen <ggaren@apple.com> - - Reviewed by Darin Adler, Maciej Stachowiak, Mark Rowe, Tim Hatcher. - - Fixed <rdar://problem/5326009> Make non-browser WebKit clients have no - memory cache, or a very tiny one - - Keep the GTK build working with an empty stub. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::didPerformFirstNavigation): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-09-01 Oliver Hunt <oliver@apple.com> - - Reviewed by Sam. - - <rdar://problem/5344848> IME is incorrectly used for key events when on non-editable regions - - EditorClient::setInputMethodState stub - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::setInputMethodState): - * WebCoreSupport/EditorClientGtk.h: - -2007-08-18 Holger Hans Peter Freyther <zecke@selfish.org> - - Build fix. Add const to the first parameter of createPlugin - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - -2007-08-17 Anders Carlsson <andersca@apple.com> - - Build fix. - - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::createPlugin): - * WebCoreSupport/FrameLoaderClientGtk.h: - -2007-08-11 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - To not hit the needsLayout() assert of Frame::paint for subframes we need to - make sure they are layed out. Use the newly created FrameView::layoutIfNeededRecursive - method to do this. - - * Api/webkitgtkpage.cpp: - -2007-08-11 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Fix text selection by setting a DragClient when creating the Page. Now - that we have a DragClient we can free the Page when WebKitGtkPage gets - destructed. - - * Api/webkitgtkpage.cpp: - * WebCoreSupport/DragClientGtk.cpp: Added. - (WebKit::DragClient::willPerformDragDestinationAction): - (WebKit::DragClient::willPerformDragSourceAction): - (WebKit::DragClient::actionMaskForDrag): - (WebKit::DragClient::dragSourceActionMaskForPoint): - (WebKit::DragClient::startDrag): - (WebKit::DragClient::createDragImageForLink): - * WebCoreSupport/DragClientGtk.h: Added. - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Anders. - - Make WebKitGtkPage a GtkContainer to avoid a size_allocate - race of GtkScrollBar and GtkLayout. - - * Api/webkitgtk-marshal.list: - * Api/webkitgtkframe.cpp: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.h: - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Niko. - - Minor changes to the WebKit::EditorClient to allow removing - of text from TextFields. Remove the selectWordBeforeMenuEvent method - which is not used and not within WebCore::EditorClient. - - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldDeleteRange): - (WebKit::EditorClient::shouldBeginEditing): - (WebKit::EditorClient::shouldEndEditing): - (WebKit::EditorClient::shouldApplyStyle): - (WebKit::EditorClient::shouldInsertNode): - * WebCoreSupport/EditorClientGtk.h: - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Mark. - - Rename the namespace from WebKitGtk to WebKit. Move the various *Client - classes into the WebKit namespace. Change the class names to not contain Gtk. - The file names have to contain the Gtk suffix to not clash with files in WebCore (e.g. - bridge/EditorClient.h). - - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkprivate.cpp: - * Api/webkitgtkprivate.h: - * ChangeLog: - * WebCoreSupport/ChromeClientGtk.cpp: - (WebKit::ChromeClient::ChromeClient): - (WebKit::ChromeClient::chromeDestroyed): - (WebKit::ChromeClient::windowRect): - (WebKit::ChromeClient::setWindowRect): - (WebKit::ChromeClient::pageRect): - (WebKit::ChromeClient::scaleFactor): - (WebKit::ChromeClient::focus): - (WebKit::ChromeClient::unfocus): - (WebKit::ChromeClient::createWindow): - (WebKit::ChromeClient::createModalDialog): - (WebKit::ChromeClient::show): - (WebKit::ChromeClient::canRunModal): - (WebKit::ChromeClient::runModal): - (WebKit::ChromeClient::setToolbarsVisible): - (WebKit::ChromeClient::toolbarsVisible): - (WebKit::ChromeClient::setStatusbarVisible): - (WebKit::ChromeClient::statusbarVisible): - (WebKit::ChromeClient::setScrollbarsVisible): - (WebKit::ChromeClient::scrollbarsVisible): - (WebKit::ChromeClient::setMenubarVisible): - (WebKit::ChromeClient::menubarVisible): - (WebKit::ChromeClient::setResizable): - (WebKit::ChromeClient::closeWindowSoon): - (WebKit::ChromeClient::canTakeFocus): - (WebKit::ChromeClient::takeFocus): - (WebKit::ChromeClient::canRunBeforeUnloadConfirmPanel): - (WebKit::ChromeClient::runBeforeUnloadConfirmPanel): - (WebKit::ChromeClient::runJavaScriptAlert): - (WebKit::ChromeClient::runJavaScriptConfirm): - (WebKit::ChromeClient::setStatusbarText): - (WebKit::ChromeClient::shouldInterruptJavaScript): - (WebKit::ChromeClient::tabsToLinks): - (WebKit::ChromeClient::windowResizerRect): - (WebKit::ChromeClient::addToDirtyRegion): - (WebKit::ChromeClient::scrollBackingStore): - (WebKit::ChromeClient::updateBackingStore): - (WebKit::ChromeClient::mouseDidMoveOverElement): - (WebKit::ChromeClient::setToolTip): - * WebCoreSupport/ChromeClientGtk.h: - * WebCoreSupport/ContextMenuClientGtk.cpp: - (WebKit::ContextMenuClient::contextMenuDestroyed): - (WebKit::ContextMenuClient::getCustomMenuFromDefaultItems): - (WebKit::ContextMenuClient::contextMenuItemSelected): - (WebKit::ContextMenuClient::downloadURL): - (WebKit::ContextMenuClient::copyImageToClipboard): - (WebKit::ContextMenuClient::searchWithGoogle): - (WebKit::ContextMenuClient::lookUpInDictionary): - (WebKit::ContextMenuClient::speak): - * WebCoreSupport/ContextMenuClientGtk.h: - * WebCoreSupport/EditorClientGtk.cpp: - (WebKit::EditorClient::shouldDeleteRange): - (WebKit::EditorClient::shouldShowDeleteInterface): - (WebKit::EditorClient::isContinuousSpellCheckingEnabled): - (WebKit::EditorClient::isGrammarCheckingEnabled): - (WebKit::EditorClient::spellCheckerDocumentTag): - (WebKit::EditorClient::shouldBeginEditing): - (WebKit::EditorClient::shouldEndEditing): - (WebKit::EditorClient::shouldInsertText): - (WebKit::EditorClient::shouldChangeSelectedRange): - (WebKit::EditorClient::shouldApplyStyle): - (WebKit::EditorClient::shouldMoveRangeAfterDelete): - (WebKit::EditorClient::didBeginEditing): - (WebKit::EditorClient::respondToChangedContents): - (WebKit::EditorClient::respondToChangedSelection): - (WebKit::EditorClient::didEndEditing): - (WebKit::EditorClient::didWriteSelectionToPasteboard): - (WebKit::EditorClient::didSetSelectionTypesForPasteboard): - (WebKit::EditorClient::selectWordBeforeMenuEvent): - (WebKit::EditorClient::isEditable): - (WebKit::EditorClient::registerCommandForUndo): - (WebKit::EditorClient::registerCommandForRedo): - (WebKit::EditorClient::clearUndoRedoOperations): - (WebKit::EditorClient::canUndo): - (WebKit::EditorClient::canRedo): - (WebKit::EditorClient::undo): - (WebKit::EditorClient::redo): - (WebKit::EditorClient::shouldInsertNode): - (WebKit::EditorClient::pageDestroyed): - (WebKit::EditorClient::smartInsertDeleteEnabled): - (WebKit::EditorClient::toggleContinuousSpellChecking): - (WebKit::EditorClient::toggleGrammarChecking): - (WebKit::EditorClient::handleInputMethodKeypress): - (WebKit::EditorClient::EditorClient): - (WebKit::EditorClient::textFieldDidBeginEditing): - (WebKit::EditorClient::textFieldDidEndEditing): - (WebKit::EditorClient::textDidChangeInTextField): - (WebKit::EditorClient::doTextFieldCommandFromEvent): - (WebKit::EditorClient::textWillBeDeletedInTextField): - (WebKit::EditorClient::textDidChangeInTextArea): - (WebKit::EditorClient::ignoreWordInSpellDocument): - (WebKit::EditorClient::learnWord): - (WebKit::EditorClient::checkSpellingOfString): - (WebKit::EditorClient::checkGrammarOfString): - (WebKit::EditorClient::updateSpellingUIWithGrammarString): - (WebKit::EditorClient::updateSpellingUIWithMisspelledWord): - (WebKit::EditorClient::showSpellingUI): - (WebKit::EditorClient::spellingUIIsShowing): - * WebCoreSupport/EditorClientGtk.h: - * WebCoreSupport/FrameLoaderClientGtk.cpp: - (WebKit::FrameLoaderClient::FrameLoaderClient): - (WebKit::FrameLoaderClient::userAgent): - (WebKit::FrameLoaderClient::createDocumentLoader): - (WebKit::FrameLoaderClient::committedLoad): - (WebKit::FrameLoaderClient::dispatchDidReceiveAuthenticationChallenge): - (WebKit::FrameLoaderClient::dispatchDidCancelAuthenticationChallenge): - (WebKit::FrameLoaderClient::dispatchWillSendRequest): - (WebKit::FrameLoaderClient::assignIdentifierToInitialRequest): - (WebKit::FrameLoaderClient::postProgressStartedNotification): - (WebKit::FrameLoaderClient::postProgressFinishedNotification): - (WebKit::FrameLoaderClient::frameLoaderDestroyed): - (WebKit::FrameLoaderClient::dispatchDidReceiveResponse): - (WebKit::FrameLoaderClient::createPlugin): - (WebKit::FrameLoaderClient::redirectDataToPlugin): - (WebKit::FrameLoaderClient::createJavaAppletWidget): - (WebKit::FrameLoaderClient::overrideMediaType): - (WebKit::FrameLoaderClient::windowObjectCleared): - (WebKit::FrameLoaderClient::setMainFrameDocumentReady): - (WebKit::FrameLoaderClient::hasWebView): - (WebKit::FrameLoaderClient::hasFrameView): - (WebKit::FrameLoaderClient::dispatchDidFinishLoad): - (WebKit::FrameLoaderClient::frameLoadCompleted): - (WebKit::FrameLoaderClient::saveViewStateToItem): - (WebKit::FrameLoaderClient::restoreViewState): - (WebKit::FrameLoaderClient::privateBrowsingEnabled): - (WebKit::FrameLoaderClient::makeDocumentView): - (WebKit::FrameLoaderClient::makeRepresentation): - (WebKit::FrameLoaderClient::forceLayout): - (WebKit::FrameLoaderClient::forceLayoutForNonHTML): - (WebKit::FrameLoaderClient::setCopiesOnScroll): - (WebKit::FrameLoaderClient::detachedFromParent1): - (WebKit::FrameLoaderClient::detachedFromParent2): - (WebKit::FrameLoaderClient::detachedFromParent3): - (WebKit::FrameLoaderClient::detachedFromParent4): - (WebKit::FrameLoaderClient::loadedFromCachedPage): - (WebKit::FrameLoaderClient::dispatchDidHandleOnloadEvents): - (WebKit::FrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidCancelClientRedirect): - (WebKit::FrameLoaderClient::dispatchWillPerformClientRedirect): - (WebKit::FrameLoaderClient::dispatchDidChangeLocationWithinPage): - (WebKit::FrameLoaderClient::dispatchWillClose): - (WebKit::FrameLoaderClient::dispatchDidReceiveIcon): - (WebKit::FrameLoaderClient::dispatchDidStartProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidReceiveTitle): - (WebKit::FrameLoaderClient::dispatchDidCommitLoad): - (WebKit::FrameLoaderClient::dispatchDidFinishDocumentLoad): - (WebKit::FrameLoaderClient::dispatchDidFirstLayout): - (WebKit::FrameLoaderClient::dispatchShow): - (WebKit::FrameLoaderClient::cancelPolicyCheck): - (WebKit::FrameLoaderClient::dispatchDidLoadMainResource): - (WebKit::FrameLoaderClient::revertToProvisionalState): - (WebKit::FrameLoaderClient::clearUnarchivingState): - (WebKit::FrameLoaderClient::willChangeTitle): - (WebKit::FrameLoaderClient::didChangeTitle): - (WebKit::FrameLoaderClient::finishedLoading): - (WebKit::FrameLoaderClient::finalSetupForReplace): - (WebKit::FrameLoaderClient::setDefersLoading): - (WebKit::FrameLoaderClient::isArchiveLoadPending): - (WebKit::FrameLoaderClient::cancelPendingArchiveLoad): - (WebKit::FrameLoaderClient::clearArchivedResources): - (WebKit::FrameLoaderClient::canHandleRequest): - (WebKit::FrameLoaderClient::canShowMIMEType): - (WebKit::FrameLoaderClient::representationExistsForURLScheme): - (WebKit::FrameLoaderClient::generatedMIMETypeForURLScheme): - (WebKit::FrameLoaderClient::provisionalLoadStarted): - (WebKit::FrameLoaderClient::didFinishLoad): - (WebKit::FrameLoaderClient::setDocumentViewFromCachedPage): - (WebKit::FrameLoaderClient::dispatchDidReceiveContentLength): - (WebKit::FrameLoaderClient::dispatchDidFinishLoading): - (WebKit::FrameLoaderClient::dispatchDidFailLoading): - (WebKit::FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache): - (WebKit::FrameLoaderClient::dispatchDidFailProvisionalLoad): - (WebKit::FrameLoaderClient::dispatchDidFailLoad): - (WebKit::FrameLoaderClient::download): - (WebKit::FrameLoaderClient::cancelledError): - (WebKit::FrameLoaderClient::blockedError): - (WebKit::FrameLoaderClient::cannotShowURLError): - (WebKit::FrameLoaderClient::interruptForPolicyChangeError): - (WebKit::FrameLoaderClient::cannotShowMIMETypeError): - (WebKit::FrameLoaderClient::fileDoesNotExistError): - (WebKit::FrameLoaderClient::shouldFallBack): - (WebKit::FrameLoaderClient::willUseArchive): - (WebKit::FrameLoaderClient::saveDocumentViewToCachedPage): - (WebKit::FrameLoaderClient::canCachePage): - (WebKit::FrameLoaderClient::dispatchCreatePage): - (WebKit::FrameLoaderClient::dispatchUnableToImplementPolicy): - * WebCoreSupport/FrameLoaderClientGtk.h: - * WebCoreSupport/InspectorClientGtk.cpp: - (WebKit::InspectorClient::inspectorDestroyed): - (WebKit::InspectorClient::createPage): - (WebKit::InspectorClient::showWindow): - (WebKit::InspectorClient::closeWindow): - (WebKit::InspectorClient::attachWindow): - (WebKit::InspectorClient::detachWindow): - (WebKit::InspectorClient::highlight): - (WebKit::InspectorClient::hideHighlight): - * WebCoreSupport/InspectorClientGtk.h: - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - As of http://bugs.webkit.org/show_bug.cgi?id=14727 move the - various *ClientGdk.{cpp,h} files from WebCore to WebKit/gtk/WebCoreSupport and - rename it from Gdk to Gtk. - - * Api/webkitgtkdefines.h: - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframe.h: - * Api/webkitgtkglobal.cpp: - * Api/webkitgtkglobal.h: - * Api/webkitgtknetworkrequest.cpp: - * Api/webkitgtknetworkrequest.h: - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.cpp: - * Api/webkitgtkprivate.h: - * Api/webkitgtksettings.cpp: - * Api/webkitgtksettings.h: - * WebCoreSupport/ChromeClientGtk.cpp: Renamed from WebKit/gtk/WebCoreSupport/ChromeClientGdk.cpp. - (WebKitGtk::ChromeClientGtk::ChromeClientGtk): - (WebKitGtk::ChromeClientGtk::chromeDestroyed): - (WebKitGtk::ChromeClientGtk::windowRect): - (WebKitGtk::ChromeClientGtk::setWindowRect): - (WebKitGtk::ChromeClientGtk::pageRect): - (WebKitGtk::ChromeClientGtk::scaleFactor): - (WebKitGtk::ChromeClientGtk::focus): - (WebKitGtk::ChromeClientGtk::unfocus): - (WebKitGtk::ChromeClientGtk::createWindow): - (WebKitGtk::ChromeClientGtk::createModalDialog): - (WebKitGtk::ChromeClientGtk::show): - (WebKitGtk::ChromeClientGtk::canRunModal): - (WebKitGtk::ChromeClientGtk::runModal): - (WebKitGtk::ChromeClientGtk::setToolbarsVisible): - (WebKitGtk::ChromeClientGtk::toolbarsVisible): - (WebKitGtk::ChromeClientGtk::setStatusbarVisible): - (WebKitGtk::ChromeClientGtk::statusbarVisible): - (WebKitGtk::ChromeClientGtk::setScrollbarsVisible): - (WebKitGtk::ChromeClientGtk::scrollbarsVisible): - (WebKitGtk::ChromeClientGtk::setMenubarVisible): - (WebKitGtk::ChromeClientGtk::menubarVisible): - (WebKitGtk::ChromeClientGtk::setResizable): - (WebKitGtk::ChromeClientGtk::closeWindowSoon): - (WebKitGtk::ChromeClientGtk::canTakeFocus): - (WebKitGtk::ChromeClientGtk::takeFocus): - (WebKitGtk::ChromeClientGtk::canRunBeforeUnloadConfirmPanel): - (WebKitGtk::ChromeClientGtk::runBeforeUnloadConfirmPanel): - (WebKitGtk::ChromeClientGtk::addMessageToConsole): - (WebKitGtk::ChromeClientGtk::runJavaScriptAlert): - (WebKitGtk::ChromeClientGtk::runJavaScriptConfirm): - (WebKitGtk::ChromeClientGtk::runJavaScriptPrompt): - (WebKitGtk::ChromeClientGtk::setStatusbarText): - (WebKitGtk::ChromeClientGtk::shouldInterruptJavaScript): - (WebKitGtk::ChromeClientGtk::tabsToLinks): - (WebKitGtk::ChromeClientGtk::windowResizerRect): - (WebKitGtk::ChromeClientGtk::addToDirtyRegion): - (WebKitGtk::ChromeClientGtk::scrollBackingStore): - (WebKitGtk::ChromeClientGtk::updateBackingStore): - (WebKitGtk::ChromeClientGtk::mouseDidMoveOverElement): - (WebKitGtk::ChromeClientGtk::setToolTip): - * WebCoreSupport/ChromeClientGtk.h: Renamed from WebKit/gtk/WebCoreSupport/ChromeClientGdk.h. - (WebKitGtk::ChromeClientGtk::webPage): - * WebCoreSupport/ContextMenuClientGtk.cpp: Renamed from WebCore/page/gdk/ContextMenuClientGdk.cpp. - (WebCore::ContextMenuClientGtk::contextMenuDestroyed): - (WebCore::ContextMenuClientGtk::getCustomMenuFromDefaultItems): - (WebCore::ContextMenuClientGtk::contextMenuItemSelected): - (WebCore::ContextMenuClientGtk::downloadURL): - (WebCore::ContextMenuClientGtk::copyImageToClipboard): - (WebCore::ContextMenuClientGtk::searchWithGoogle): - (WebCore::ContextMenuClientGtk::lookUpInDictionary): - (WebCore::ContextMenuClientGtk::speak): - (WebCore::ContextMenuClientGtk::stopSpeaking): - * WebCoreSupport/ContextMenuClientGtk.h: Renamed from WebCore/page/gdk/ContextMenuClientGdk.h. - * WebCoreSupport/EditorClientGtk.cpp: Renamed from WebCore/platform/gdk/EditorClientGdk.cpp. - (WebCore::EditorClientGtk::shouldDeleteRange): - (WebCore::EditorClientGtk::shouldShowDeleteInterface): - (WebCore::EditorClientGtk::isContinuousSpellCheckingEnabled): - (WebCore::EditorClientGtk::isGrammarCheckingEnabled): - (WebCore::EditorClientGtk::spellCheckerDocumentTag): - (WebCore::EditorClientGtk::shouldBeginEditing): - (WebCore::EditorClientGtk::shouldEndEditing): - (WebCore::EditorClientGtk::shouldInsertText): - (WebCore::EditorClientGtk::shouldChangeSelectedRange): - (WebCore::EditorClientGtk::shouldApplyStyle): - (WebCore::EditorClientGtk::shouldMoveRangeAfterDelete): - (WebCore::EditorClientGtk::didBeginEditing): - (WebCore::EditorClientGtk::respondToChangedContents): - (WebCore::EditorClientGtk::respondToChangedSelection): - (WebCore::EditorClientGtk::didEndEditing): - (WebCore::EditorClientGtk::didWriteSelectionToPasteboard): - (WebCore::EditorClientGtk::didSetSelectionTypesForPasteboard): - (WebCore::EditorClientGtk::selectWordBeforeMenuEvent): - (WebCore::EditorClientGtk::isEditable): - (WebCore::EditorClientGtk::registerCommandForUndo): - (WebCore::EditorClientGtk::registerCommandForRedo): - (WebCore::EditorClientGtk::clearUndoRedoOperations): - (WebCore::EditorClientGtk::canUndo): - (WebCore::EditorClientGtk::canRedo): - (WebCore::EditorClientGtk::undo): - (WebCore::EditorClientGtk::redo): - (WebCore::EditorClientGtk::shouldInsertNode): - (WebCore::EditorClientGtk::pageDestroyed): - (WebCore::EditorClientGtk::smartInsertDeleteEnabled): - (WebCore::EditorClientGtk::toggleContinuousSpellChecking): - (WebCore::EditorClientGtk::toggleGrammarChecking): - (WebCore::EditorClientGtk::handleKeypress): - (WebCore::EditorClientGtk::handleInputMethodKeypress): - (WebCore::EditorClientGtk::EditorClientGtk): - (WebCore::EditorClientGtk::textFieldDidBeginEditing): - (WebCore::EditorClientGtk::textFieldDidEndEditing): - (WebCore::EditorClientGtk::textDidChangeInTextField): - (WebCore::EditorClientGtk::doTextFieldCommandFromEvent): - (WebCore::EditorClientGtk::textWillBeDeletedInTextField): - (WebCore::EditorClientGtk::textDidChangeInTextArea): - (WebCore::EditorClientGtk::ignoreWordInSpellDocument): - (WebCore::EditorClientGtk::learnWord): - (WebCore::EditorClientGtk::checkSpellingOfString): - (WebCore::EditorClientGtk::checkGrammarOfString): - (WebCore::EditorClientGtk::updateSpellingUIWithGrammarString): - (WebCore::EditorClientGtk::updateSpellingUIWithMisspelledWord): - (WebCore::EditorClientGtk::showSpellingUI): - (WebCore::EditorClientGtk::spellingUIIsShowing): - (WebCore::EditorClientGtk::getGuessesForWord): - * WebCoreSupport/EditorClientGtk.h: Renamed from WebCore/platform/gdk/EditorClientGdk.h. - * WebCoreSupport/FrameLoaderClientGtk.cpp: Renamed from WebCore/loader/gdk/FrameLoaderClientGdk.cpp. - (WebCore::FrameLoaderClientGtk::FrameLoaderClientGtk): - (WebCore::FrameLoaderClientGtk::userAgent): - (WebCore::FrameLoaderClientGtk::createDocumentLoader): - (WebCore::FrameLoaderClientGtk::dispatchWillSubmitForm): - (WebCore::FrameLoaderClientGtk::committedLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveAuthenticationChallenge): - (WebCore::FrameLoaderClientGtk::dispatchDidCancelAuthenticationChallenge): - (WebCore::FrameLoaderClientGtk::dispatchWillSendRequest): - (WebCore::FrameLoaderClientGtk::assignIdentifierToInitialRequest): - (WebCore::FrameLoaderClientGtk::postProgressStartedNotification): - (WebCore::FrameLoaderClientGtk::postProgressEstimateChangedNotification): - (WebCore::FrameLoaderClientGtk::postProgressFinishedNotification): - (WebCore::FrameLoaderClientGtk::frameLoaderDestroyed): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveResponse): - (WebCore::FrameLoaderClientGtk::dispatchDecidePolicyForMIMEType): - (WebCore::FrameLoaderClientGtk::dispatchDecidePolicyForNewWindowAction): - (WebCore::FrameLoaderClientGtk::dispatchDecidePolicyForNavigationAction): - (WebCore::FrameLoaderClientGtk::createPlugin): - (WebCore::FrameLoaderClientGtk::createFrame): - (WebCore::FrameLoaderClientGtk::redirectDataToPlugin): - (WebCore::FrameLoaderClientGtk::createJavaAppletWidget): - (WebCore::FrameLoaderClientGtk::objectContentType): - (WebCore::FrameLoaderClientGtk::overrideMediaType): - (WebCore::FrameLoaderClientGtk::windowObjectCleared): - (WebCore::FrameLoaderClientGtk::setMainFrameDocumentReady): - (WebCore::FrameLoaderClientGtk::hasWebView): - (WebCore::FrameLoaderClientGtk::hasFrameView): - (WebCore::FrameLoaderClientGtk::dispatchDidFinishLoad): - (WebCore::FrameLoaderClientGtk::frameLoadCompleted): - (WebCore::FrameLoaderClientGtk::saveViewStateToItem): - (WebCore::FrameLoaderClientGtk::restoreViewState): - (WebCore::FrameLoaderClientGtk::shouldGoToHistoryItem): - (WebCore::FrameLoaderClientGtk::privateBrowsingEnabled): - (WebCore::FrameLoaderClientGtk::makeDocumentView): - (WebCore::FrameLoaderClientGtk::makeRepresentation): - (WebCore::FrameLoaderClientGtk::forceLayout): - (WebCore::FrameLoaderClientGtk::forceLayoutForNonHTML): - (WebCore::FrameLoaderClientGtk::setCopiesOnScroll): - (WebCore::FrameLoaderClientGtk::detachedFromParent1): - (WebCore::FrameLoaderClientGtk::detachedFromParent2): - (WebCore::FrameLoaderClientGtk::detachedFromParent3): - (WebCore::FrameLoaderClientGtk::detachedFromParent4): - (WebCore::FrameLoaderClientGtk::loadedFromCachedPage): - (WebCore::FrameLoaderClientGtk::dispatchDidHandleOnloadEvents): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveServerRedirectForProvisionalLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidCancelClientRedirect): - (WebCore::FrameLoaderClientGtk::dispatchWillPerformClientRedirect): - (WebCore::FrameLoaderClientGtk::dispatchDidChangeLocationWithinPage): - (WebCore::FrameLoaderClientGtk::dispatchWillClose): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveIcon): - (WebCore::FrameLoaderClientGtk::dispatchDidStartProvisionalLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveTitle): - (WebCore::FrameLoaderClientGtk::dispatchDidCommitLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidFinishDocumentLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidFirstLayout): - (WebCore::FrameLoaderClientGtk::dispatchShow): - (WebCore::FrameLoaderClientGtk::cancelPolicyCheck): - (WebCore::FrameLoaderClientGtk::dispatchDidLoadMainResource): - (WebCore::FrameLoaderClientGtk::revertToProvisionalState): - (WebCore::FrameLoaderClientGtk::clearUnarchivingState): - (WebCore::FrameLoaderClientGtk::willChangeTitle): - (WebCore::FrameLoaderClientGtk::didChangeTitle): - (WebCore::FrameLoaderClientGtk::finishedLoading): - (WebCore::FrameLoaderClientGtk::finalSetupForReplace): - (WebCore::FrameLoaderClientGtk::setDefersLoading): - (WebCore::FrameLoaderClientGtk::isArchiveLoadPending): - (WebCore::FrameLoaderClientGtk::cancelPendingArchiveLoad): - (WebCore::FrameLoaderClientGtk::clearArchivedResources): - (WebCore::FrameLoaderClientGtk::canHandleRequest): - (WebCore::FrameLoaderClientGtk::canShowMIMEType): - (WebCore::FrameLoaderClientGtk::representationExistsForURLScheme): - (WebCore::FrameLoaderClientGtk::generatedMIMETypeForURLScheme): - (WebCore::FrameLoaderClientGtk::provisionalLoadStarted): - (WebCore::FrameLoaderClientGtk::didFinishLoad): - (WebCore::FrameLoaderClientGtk::prepareForDataSourceReplacement): - (WebCore::FrameLoaderClientGtk::setTitle): - (WebCore::FrameLoaderClientGtk::setDocumentViewFromCachedPage): - (WebCore::FrameLoaderClientGtk::dispatchDidReceiveContentLength): - (WebCore::FrameLoaderClientGtk::dispatchDidFinishLoading): - (WebCore::FrameLoaderClientGtk::dispatchDidFailLoading): - (WebCore::FrameLoaderClientGtk::dispatchDidLoadResourceFromMemoryCache): - (WebCore::FrameLoaderClientGtk::dispatchDidFailProvisionalLoad): - (WebCore::FrameLoaderClientGtk::dispatchDidFailLoad): - (WebCore::FrameLoaderClientGtk::download): - (WebCore::FrameLoaderClientGtk::cancelledError): - (WebCore::FrameLoaderClientGtk::blockedError): - (WebCore::FrameLoaderClientGtk::cannotShowURLError): - (WebCore::FrameLoaderClientGtk::interruptForPolicyChangeError): - (WebCore::FrameLoaderClientGtk::cannotShowMIMETypeError): - (WebCore::FrameLoaderClientGtk::fileDoesNotExistError): - (WebCore::FrameLoaderClientGtk::shouldFallBack): - (WebCore::FrameLoaderClientGtk::willUseArchive): - (WebCore::FrameLoaderClientGtk::saveDocumentViewToCachedPage): - (WebCore::FrameLoaderClientGtk::canCachePage): - (WebCore::FrameLoaderClientGtk::dispatchCreatePage): - (WebCore::FrameLoaderClientGtk::dispatchUnableToImplementPolicy): - * WebCoreSupport/FrameLoaderClientGtk.h: Renamed from WebCore/loader/gdk/FrameLoaderClientGdk.h. - (WebCore::FrameLoaderClientGtk::~FrameLoaderClientGtk): - (WebCore::FrameLoaderClientGtk::webFrame): - * WebCoreSupport/InspectorClientGtk.cpp: Renamed from WebCore/page/gdk/InspectorClientGdk.cpp. - (WebCore::InspectorClientGtk::inspectorDestroyed): - (WebCore::InspectorClientGtk::createPage): - (WebCore::InspectorClientGtk::showWindow): - (WebCore::InspectorClientGtk::closeWindow): - (WebCore::InspectorClientGtk::attachWindow): - (WebCore::InspectorClientGtk::detachWindow): - (WebCore::InspectorClientGtk::highlight): - (WebCore::InspectorClientGtk::hideHighlight): - (WebCore::InspectorClientGtk::inspectedURLChanged): - * WebCoreSupport/InspectorClientGtk.h: Renamed from WebCore/page/gdk/InspectorClientGdk.h. - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Build fix. - - * Api/webkitgtkframe.cpp: - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Remove the create_frame virtual method of WebKitGtkPage. This method was inspired - by the Qt port but to be useful for reimplementations WebKitGtkFrameData would need - to export/expose WebCore types. WebView doesn't offer such a method so I decided to - remove it. - Add a internal constructor to WebKitGtkFrame to be used for constructing Sub-Frames. This - is currently used by FrameLoaderClientGdk::createFrame. - - * Api/webkitgtkframe.cpp: - * Api/webkitgtkframedata.cpp: Removed. - * Api/webkitgtkframedata.h: Removed. - * Api/webkitgtkpage.cpp: - * Api/webkitgtkpage.h: - * Api/webkitgtkprivate.h: - -2007-08-10 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Follow the changes of ScrollView in WebCore and call setContainingWindow, set the - GtkAdjustment of the GtkLayout and reimplement the set_scroll_adjustments method and pass - the GtkAdjustments to ScrollView. - This makes having one GdkWindow for the complete FrameTree possible. - - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkpage.cpp: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Niko. - - We only need to set the Settings of the Page once so do it in - WebKitGtkPage instead of WebKitGtkFrame. - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkpage.cpp: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Niko. - - Instead of reimplementing the general event method, reimplement - the specific mouse, expose, keyboard event methods. - - Call the finalize implementation of the base class from WebKitGtkPage - and WebKitGtkFrame. - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkpage.cpp: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Niko. - - Remove the custom painting in favor of the Widget::paint - implementation. - - * gtk/Api/webkitgtkpage.cpp: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Moved code from class FrameGdk into WebKitGtkFrame. Update the - webkitgrkprivate.h header file to not include FrameGdk.h. - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkprivate.h: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Change variable names to follow the Coding-Style. Replace occurences - of a_b with aB and place the '*' correctly. - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkpage.cpp: - * gtk/Api/webkitgtkprivate.h: - -2007-08-08 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Reimplement GtkWidget::event and handle the keyboard and mouse - events inside WebKitGtkPage. - - * gtk/Api/webkitgtkpage.cpp: - (FrameGdkExposeData::frame_gdk_expose_child): - (FrameGdkExposeData::webkit_gtk_page_rendering_area_handle_gdk_event): - (FrameGdkExposeData::webkit_gtk_page_register_rendering_area_events): - (FrameGdkExposeData::webkit_gtk_page_class_init): - -2007-08-07 Xan Lopez <xan@gnome.org> - - Reviewed by Mark Rowe. - - http://bugs.webkit.org/show_bug.cgi?id=14815 - [gtk] API implementation: reload - - * gtk/Api/webkitgtkpage.cpp: Implement the webkit_gtk_page_reload() - function. - -2007-07-30 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Adam. - - http://bugs.webkit.org/show_bug.cgi?id=14806 - Implement can_go_backward and can_go_forward in webkitgtkpage.cpp - - * gtk/Api/webkitgtkpage.cpp: Implement webkit_gtk_page_can_go_backward() and - webkit_gtk_page_can_go_forward() functions. - -2007-07-30 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=14810 - Bad n_params on load_finished's g_signal_new in webkitgtkpage.cpp - - This is the proper fix for #14810. - - * gtk/Api/webkitgtkframe.cpp: - * gtk/Api/webkitgtkpage.cpp: Fix the marshaller type of the "load_finished" signal and - correct the class_offset parameters. - -2007-07-29 Diego Escalante Urrelo <diegoe@gnome.org> - - Reviewed by Alp Toker. - - http://bugs.webkit.org/show_bug.cgi?id=14810 - Bad n_params on load_finished's g_signal_new in webkitgtkpage.cpp - - * gtk/Api/webkitgtkpage.cpp: Use a correct n_params value and the corresponding types for - them in the "load_finished" signal. - -2007-07-22 Holger Hans Peter Freyther <zecke@selfish.org> - - Reviewed by Adam. - - Add the first API and partial implementation of the WebKit/Gtk port as - of http://bugs.webkit.org/show_bug.cgi?id=14678. - - The delegates of WebView will be modeled as signals. Delegates like the - WebPolicyDelegate will be implemented as signals with default handlers. - - Start moving files to WebKit/gtk/WebCoreSupport. - - * gtk: Added. - * gtk/Api: Added. - * gtk/Api/headers.pri: Added. - * gtk/Api/webkitgtk-marshal.list: Added. - * gtk/Api/webkitgtkdefines.h: Added. - * gtk/Api/webkitgtkframe.cpp: Added. - * gtk/Api/webkitgtkframe.h: Added. - * gtk/Api/webkitgtkframedata.cpp: Added. - * gtk/Api/webkitgtkframedata.h: Added. - * gtk/Api/webkitgtkglobal.cpp: Added. - * gtk/Api/webkitgtkglobal.h: Added. - * gtk/Api/webkitgtknetworkrequest.cpp: Added. - * gtk/Api/webkitgtknetworkrequest.h: Added. - * gtk/Api/webkitgtkpage.cpp: Added. - * gtk/Api/webkitgtkpage.h: Added. - * gtk/Api/webkitgtkprivate.cpp: Added. - * gtk/Api/webkitgtkprivate.h: Added. - * gtk/Api/webkitgtksettings.cpp: Added. - * gtk/Api/webkitgtksettings.h: Added. - * gtk/WebCoreSupport: Added. - * gtk/WebCoreSupport/ChromeClientGdk.cpp: Added. - (WebCore::ChromeClientGdk::ChromeClientGdk): - (WebCore::ChromeClientGdk::chromeDestroyed): - (WebCore::ChromeClientGdk::windowRect): - (WebCore::ChromeClientGdk::setWindowRect): - (WebCore::ChromeClientGdk::pageRect): - (WebCore::ChromeClientGdk::scaleFactor): - (WebCore::ChromeClientGdk::focus): - (WebCore::ChromeClientGdk::unfocus): - (WebCore::ChromeClientGdk::createWindow): - (WebCore::ChromeClientGdk::createModalDialog): - (WebCore::ChromeClientGdk::show): - (WebCore::ChromeClientGdk::canRunModal): - (WebCore::ChromeClientGdk::runModal): - (WebCore::ChromeClientGdk::setToolbarsVisible): - (WebCore::ChromeClientGdk::toolbarsVisible): - (WebCore::ChromeClientGdk::setStatusbarVisible): - (WebCore::ChromeClientGdk::statusbarVisible): - (WebCore::ChromeClientGdk::setScrollbarsVisible): - (WebCore::ChromeClientGdk::scrollbarsVisible): - (WebCore::ChromeClientGdk::setMenubarVisible): - (WebCore::ChromeClientGdk::menubarVisible): - (WebCore::ChromeClientGdk::setResizable): - (WebCore::ChromeClientGdk::closeWindowSoon): - (WebCore::ChromeClientGdk::canTakeFocus): - (WebCore::ChromeClientGdk::takeFocus): - (WebCore::ChromeClientGdk::canRunBeforeUnloadConfirmPanel): - (WebCore::ChromeClientGdk::runBeforeUnloadConfirmPanel): - (WebCore::ChromeClientGdk::addMessageToConsole): - (WebCore::ChromeClientGdk::runJavaScriptAlert): - (WebCore::ChromeClientGdk::runJavaScriptConfirm): - (WebCore::ChromeClientGdk::runJavaScriptPrompt): - (WebCore::ChromeClientGdk::setStatusbarText): - (WebCore::ChromeClientGdk::shouldInterruptJavaScript): - (WebCore::ChromeClientGdk::tabsToLinks): - (WebCore::ChromeClientGdk::windowResizerRect): - (WebCore::ChromeClientGdk::addToDirtyRegion): - (WebCore::ChromeClientGdk::scrollBackingStore): - (WebCore::ChromeClientGdk::updateBackingStore): - (WebCore::ChromeClientGdk::mouseDidMoveOverElement): - (WebCore::ChromeClientGdk::setToolTip): - (WebCore::ChromeClientGdk::print): - * gtk/WebCoreSupport/ChromeClientGdk.h: Added. - diff --git a/Source/WebKit/gtk/GNUmakefile.am b/Source/WebKit/gtk/GNUmakefile.am deleted file mode 100644 index 520c84cd3..000000000 --- a/Source/WebKit/gtk/GNUmakefile.am +++ /dev/null @@ -1,637 +0,0 @@ -if ENABLE_WEBKIT1 -lib_LTLIBRARIES += \ - libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la -endif - -nodist_libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \ - $(webkitgtk_built_sources) - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_ladir = $(libwebkitgtkincludedir)/webkit -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = \ - $(webkitgtk_static_h_api) - -nodist_libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_HEADERS = \ - $(webkitgtk_built_h_api) \ - $(GENSOURCES_WEBKIT)/webkitenumtypes.h - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_SOURCES = \ - $(webkitgtk_sources) - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CXXFLAGS = \ - -fvisibility-inlines-hidden \ - $(global_cxxflags) - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CFLAGS = \ - -fvisibility=hidden \ - $(global_cflags) - -if ENABLE_SPELLCHECK -webkitgtk_sources += \ - Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.h -endif - -# When building WebCore/WebKit, we want WebCore/config.h and NOT JavaScriptCore/config.h, -# hence, it's important that WebCore/ should come first before JavaScriptCore in the -# include path. -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_CPPFLAGS = \ - -DBUILDING_WEBKIT \ - -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \ - -DDATA_DIR=\"${datadir}\" \ - -I$(WebCore)/bindings \ - -I$(WebCore)/bindings/gobject \ - -I$(WebKit) \ - -I$(WebKit)/WebCoreSupport \ - -I$(WebKit)/webkit \ - -I$(GENSOURCES_WEBKIT) \ - -I$(GENSOURCES_WEBKITDOM) \ - -ISource/WebKit/gtk/webkit \ - $(global_cppflags) \ - $(platform_cppflags) \ - $(platformgtk_cppflags) \ - $(platform_webcore_cppflags) \ - $(webcore_cppflags) \ - $(webcoregtk_cppflags) \ - $(javascriptcore_cppflags) \ - $(webkitgtk_cppflags) \ - -fno-strict-aliasing \ - $(COVERAGE_CFLAGS) \ - $(ENCHANT_CFLAGS) \ - $(FREETYPE_CFLAGS) \ - $(GAIL_CFLAGS) \ - $(GEOCLUE_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(GSTREAMER_CFLAGS) \ - $(GTK_CFLAGS) \ - $(LIBSOUP_CFLAGS) \ - $(LIBXML_CFLAGS) \ - $(LIBXSLT_CFLAGS) \ - $(SQLITE3_CFLAGS) \ - $(UNICODE_CFLAGS) \ - $(XCOMPOSITE_CFLAGS) \ - $(XDAMAGE_CFLAGS) \ - $(XT_CFLAGS) \ - $(ZLIB_CFLAGS) - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LDFLAGS = \ - -version-info @LIBWEBKITGTK_VERSION@ \ - $(version_script) \ - $(no_undefined) - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD := \ - -lpthread \ - libPlatform.la \ - libPlatformGtk.la \ - libWebCore.la \ - libWebCorePlatform.la \ - libWebCoreModules.la \ - libWebCoreDOM.la \ - libWebCoreGtk.la - -if ENABLE_INDEXED_DATABASE -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD += \ - libLevelDB.la -endif - -if USE_OPENGL -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD += \ - libANGLE.la -endif - -if ENABLE_SVG -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD += \ - libWebCoreSVG.la -endif - -libwebkitgtk_@WEBKITGTK_API_MAJOR_VERSION@_@WEBKITGTK_API_MINOR_VERSION@_la_LIBADD += \ - libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ - $(CAIRO_LIBS) \ - $(COVERAGE_LDFLAGS) \ - $(ENCHANT_LIBS) \ - $(FREETYPE_LIBS) \ - $(GAIL_LIBS) \ - $(GAMEPAD_LIBS) \ - $(GEOCLUE_LIBS) \ - $(GLIB_LIBS) \ - $(GSTREAMER_LIBS) \ - $(GTK_LIBS) \ - $(JPEG_LIBS) \ - $(LIBSECRET_LIBS) \ - $(LIBSOUP_LIBS) \ - $(LIBXML_LIBS) \ - $(LIBXSLT_LIBS) \ - $(OPENGL_LIBS) \ - $(PANGO_LIBS) \ - $(PNG_LIBS) \ - $(SQLITE3_LIBS) \ - $(UNICODE_LIBS) \ - $(WEBP_LIBS) \ - $(XCOMPOSITE_LIBS) \ - $(XDAMAGE_LIBS) \ - $(XRENDER_LIBS) \ - $(XT_LIBS) \ - $(WINMM_LIBS) \ - $(SHLWAPI_LIBS) \ - $(OLE32_LIBS) \ - $(ZLIB_LIBS) - -webkitgtk_static_h_api += \ - $(srcdir)/Source/WebKit/gtk/webkit/webkit.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitapplicationcache.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitdefines.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitdom.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitdownload.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkiterror.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitfavicondatabase.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitfilechooserrequest.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitglobals.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkithittestresult.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkiticondatabase.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkrequest.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitnetworkresponse.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitsecurityorigin.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitsoupauthdialog.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitspellchecker.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitviewportattributes.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebdatabase.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebdatasource.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebframe.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebhistoryitem.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebinspector.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebnavigationaction.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebplugin.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebplugindatabase.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebpolicydecision.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebresource.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebsettings.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.h \ - $(srcdir)/Source/WebKit/gtk/webkit/webkitwebview.h - -webkitgtk_built_h_api += \ - Source/WebKit/gtk/webkit/webkitversion.h - -webkitgtk_h_api += \ - $(webkitgtk_built_h_api) \ - $(webkitgtk_static_h_api) - -# webkitenumtypes.{h,cpp} cannot be in webkitgtk_built_h_api, because -# the rule that builds it depends on webkitgtk_built_h_api (circular dependency). -webkitgtk_built_sources += \ - DerivedSources/webkit/webkitenumtypes.cpp \ - DerivedSources/webkit/webkitenumtypes.h \ - DerivedSources/webkit/webkitmarshal.cpp \ - DerivedSources/webkit/webkitmarshal.h \ - $(webkitgtk_built_h_api) - -BUILT_SOURCES += $(webkitgtk_built_sources) - -webkitgtk_sources += \ - Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h \ - Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp \ - Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp \ - Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.h \ - Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/DragClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h \ - Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h \ - Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.cpp \ - Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.h \ - Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h \ - Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.h \ - Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.cpp \ - Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.h \ - Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp \ - Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.h \ - Source/WebKit/gtk/webkit/webkitapplicationcache.cpp \ - Source/WebKit/gtk/webkit/webkitauthenticationdialog.cpp \ - Source/WebKit/gtk/webkit/webkitauthenticationdialog.h \ - Source/WebKit/gtk/webkit/webkitdownload.cpp \ - Source/WebKit/gtk/webkit/webkitdownloadprivate.h \ - Source/WebKit/gtk/webkit/webkiterror.cpp \ - Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp \ - Source/WebKit/gtk/webkit/webkitfavicondatabaseprivate.h \ - Source/WebKit/gtk/webkit/webkitfilechooserrequest.cpp \ - Source/WebKit/gtk/webkit/webkitfilechooserrequest.h \ - Source/WebKit/gtk/webkit/webkitfilechooserrequestprivate.h \ - Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.cpp \ - Source/WebKit/gtk/webkit/webkitgeolocationpolicydecisionprivate.h \ - Source/WebKit/gtk/webkit/webkitglobals.cpp \ - Source/WebKit/gtk/webkit/webkitglobals.h \ - Source/WebKit/gtk/webkit/webkitglobalsprivate.h \ - Source/WebKit/gtk/webkit/webkithittestresult.cpp \ - Source/WebKit/gtk/webkit/webkithittestresultprivate.h \ - Source/WebKit/gtk/webkit/webkiticondatabase.cpp \ - Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp \ - Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h \ - Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp \ - Source/WebKit/gtk/webkit/webkitnetworkresponseprivate.h \ - Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp \ - Source/WebKit/gtk/webkit/webkitsecurityoriginprivate.h \ - Source/WebKit/gtk/webkit/webkitsoupauthdialog.cpp \ - Source/WebKit/gtk/webkit/webkitspellchecker.cpp \ - Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp \ - Source/WebKit/gtk/webkit/webkitspellcheckerenchant.h \ - Source/WebKit/gtk/webkit/webkitversion.cpp \ - Source/WebKit/gtk/webkit/webkitviewportattributes.cpp \ - Source/WebKit/gtk/webkit/webkitviewportattributesprivate.h \ - Source/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp \ - Source/WebKit/gtk/webkit/webkitwebbackforwardlistprivate.h \ - Source/WebKit/gtk/webkit/webkitwebdatabase.cpp \ - Source/WebKit/gtk/webkit/webkitwebdatasource.cpp \ - Source/WebKit/gtk/webkit/webkitwebdatasourceprivate.h \ - Source/WebKit/gtk/webkit/webkitwebframe.cpp \ - Source/WebKit/gtk/webkit/webkitwebframeprivate.h \ - Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp \ - Source/WebKit/gtk/webkit/webkitwebhistoryitemprivate.h \ - Source/WebKit/gtk/webkit/webkitwebinspector.cpp \ - Source/WebKit/gtk/webkit/webkitwebinspectorprivate.h \ - Source/WebKit/gtk/webkit/webkitwebnavigationaction.cpp \ - Source/WebKit/gtk/webkit/webkitwebnavigationactionprivate.h \ - Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp \ - Source/WebKit/gtk/webkit/webkitwebpolicydecisionprivate.h \ - Source/WebKit/gtk/webkit/webkitwebresource.cpp \ - Source/WebKit/gtk/webkit/webkitwebresourceprivate.h \ - Source/WebKit/gtk/webkit/webkitwebplugin.cpp \ - Source/WebKit/gtk/webkit/webkitwebpluginprivate.h \ - Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp \ - Source/WebKit/gtk/webkit/webkitwebplugindatabaseprivate.h \ - Source/WebKit/gtk/webkit/webkitwebsettings.cpp \ - Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h \ - Source/WebKit/gtk/webkit/webkitwebview.cpp \ - Source/WebKit/gtk/webkit/webkitwebviewprivate.h \ - Source/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp \ - Source/WebKit/gtk/webkit/webkitwebwindowfeaturesprivate.h - -if ENABLE_WEBKIT1 -pkgconfig_DATA += Source/WebKit/gtk/@WEBKITGTK_PC_NAME@-@WEBKITGTK_API_VERSION@.pc - -if ENABLE_INTROSPECTION -WebKit-@WEBKITGTK_API_VERSION@.gir: $(G_IR_SCANNER) JavaScriptCore-@WEBKITGTK_API_VERSION@.gir libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la - $(AM_V_GEN) \ - CFLAGS="$(CFLAGS) -Wno-deprecated-declarations" \ - $(G_IR_SCANNER) \ - --quiet \ - --warn-all \ - --symbol-prefix=webkit \ - --identifier-prefix=WebKit \ - --namespace=WebKit \ - --nsversion=@WEBKITGTK_API_VERSION@ \ - --include=GObject-2.0 \ - --include=Gtk-@GTK_API_VERSION@ \ - --include=JavaScriptCore-@WEBKITGTK_API_VERSION@ \ - --include=Soup-2.4 \ - --library=webkitgtk-@WEBKITGTK_API_VERSION@ \ - --library=javascriptcoregtk-@WEBKITGTK_API_VERSION@ \ - --libtool="$(LIBTOOL)" \ - --pkg=gobject-2.0 \ - --pkg=gtk+-@GTK_API_VERSION@ \ - --pkg=libsoup-2.4 \ - --pkg-export=webkitgtk-@WEBKITGTK_API_VERSION@ \ - --output=$@ \ - --add-include-path=$(WebKit) \ - --add-include-path=$(top_builddir) \ - --c-include="webkit/webkit.h" \ - -DBUILDING_WEBKIT \ - -I$(srcdir)/Source \ - -I$(WebKit) \ - -I$(GENSOURCES) \ - -I$(GENSOURCES_WEBKITDOM) \ - -I$(GENSOURCES_WEBKIT) \ - -I$(top_builddir)/Source/WebKit/gtk \ - -I$(top_srcdir)/Source/JavaScriptCore/ForwardingHeaders \ - -I$(top_srcdir) \ - $(GENSOURCES_WEBKIT)/webkitenumtypes.h \ - $(webkitgtk_h_api) \ - $(webkitgtk_gdom_built_h_api) \ - $(WebKit)/webkit/*.cpp - -WebKit-@WEBKITGTK_API_VERSION@.typelib: WebKit-@WEBKITGTK_API_VERSION@.gir $(G_IR_COMPILER) - $(AM_V_GEN)$(G_IR_COMPILER) --includedir $(WebKit) --includedir $(top_builddir) $< -o $@ - -gir_DATA += WebKit-@WEBKITGTK_API_VERSION@.gir -typelibs_DATA += WebKit-@WEBKITGTK_API_VERSION@.typelib -CLEANFILES += WebKit-@WEBKITGTK_API_VERSION@.gir WebKit-@WEBKITGTK_API_VERSION@.typelib -endif -endif - -WEBKIT_MARSHAL_LIST = $(WebKit)/webkitmarshal.list -$(GENSOURCES_WEBKIT)/webkitmarshal.cpp: stamp-webkitmarshal.cpp - @true -$(GENSOURCES_WEBKIT)/webkitmarshal.h: stamp-webkitmarshal.h - @true - -stamp-webkitmarshal.cpp: $(WEBKIT_MARSHAL_LIST) - $(AM_V_GEN) echo "extern \"C\" {" > $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ - $(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --body >> $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ - echo '}' >> $(GENSOURCES_WEBKIT)/webkitmarshal.cpp && \ - echo timestamp > $(@F) - -stamp-webkitmarshal.h: $(WEBKIT_MARSHAL_LIST) - $(AM_V_GEN)$(GLIB_GENMARSHAL) --prefix=webkit_marshal $(WEBKIT_MARSHAL_LIST) --header > $(GENSOURCES_WEBKIT)/webkitmarshal.h && \ - echo timestamp > $(@F) - -$(GENSOURCES_WEBKIT)/webkitenumtypes.h: stamp-webkitenumtypes.h - @true -stamp-webkitenumtypes.h: $(webkitgtk_h_api) $(WebKit)/GNUmakefile.am - $(AM_V_GEN)glib-mkenums \ - --fhead "#ifndef WEBKIT_ENUM_TYPES_H\n" \ - --fhead "#define WEBKIT_ENUM_TYPES_H\n\n" \ - --fhead "#include <glib-object.h>\n\n" \ - --fhead "#include <webkit/webkitdefines.h>\n\n" \ - --fhead "G_BEGIN_DECLS\n\n" \ - --ftail "G_END_DECLS\n\n" \ - --ftail "#endif\n" \ - --fprod "#include <webkit/@basename@>\n\n" \ - --eprod "#define WEBKIT_TYPE_@ENUMSHORT@ @enum_name@_get_type()\n\n" \ - --eprod "WEBKIT_API GType\n@enum_name@_get_type(void);\n\n" \ - $(webkitgtk_h_api) | \ - sed 's,web_kit,webkit,' | \ - sed 's,WEBKIT_TYPE_KIT,WEBKIT_TYPE,' \ - > xgen-gth \ - && (cmp -s xgen-gth $(GENSOURCES_WEBKIT)/webkitenumtypes.h || cp xgen-gth $(GENSOURCES_WEBKIT)/webkitenumtypes.h) \ - && rm -f xgen-gth \ - && echo timestamp > $(@F) - -$(GENSOURCES_WEBKIT)/webkitenumtypes.cpp: $(webkitgtk_h_api) $(WebKit)/GNUmakefile.am - $(AM_V_GEN)glib-mkenums \ - --fhead "#include <config.h>\n" \ - --fhead "#include <glib-object.h>\n" \ - --fhead "#include \"$(GENSOURCES_WEBKIT)/webkitenumtypes.h\"\n\n" \ - --fhead "extern \"C\" {\n\n" \ - --fprod "\n/* enumerations from \"@filename@\" */" \ - --vhead "static const G@Type@Value _@enum_name@_values[] = {" \ - --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ - --vtail " { 0, NULL, NULL }\n};\n\n" \ - --vtail "GType @enum_name@_get_type(void)\n{\n" \ - --vtail " static GType type = 0;\n\n" \ - --vtail " if (!type)\n" \ - --vtail " type = g_@type@_register_static(\"@EnumName@\", _@enum_name@_values);\n\n" \ - --vtail " return type;\n}\n\n" \ - --ftail "}\n" \ - $(webkitgtk_h_api) | \ - sed 's,web_kit,webkit,' \ - > xgen-gtc \ - && cp xgen-gtc $@ \ - && rm -f xgen-gtc - -EXTRA_DIST += \ - $(WebKit)/ChangeLog \ - $(WebKit)/NEWS \ - $(WebKit)/docs/webkitgtk-docs.sgml \ - $(WebKit)/docs/webkitgtk-sections.txt \ - $(WebKit)/docs/webkitgtk.types \ - $(WebKit)/docs/webkitenvironment.xml \ - $(WebKit)/docs/webkitgtk-overrides.txt \ - $(WebKit)/webkitmarshal.list \ - $(WebKit)/resources/* \ - $(WebKit)/tests/resources/* \ - $(WebKit)/tests/test_utils.h - -# extra resource files -resourcesdir = ${datadir}/webkitgtk-@WEBKITGTK_API_VERSION@/resources -dist_resources_DATA = \ - $(shell ls $(srcdir)/Source/WebKit/gtk/resources/*.html) - -# Build unit tests -webkit_tests_cflags = \ - -fno-strict-aliasing \ - -I$(srcdir)/Source/JavaScriptCore/ForwardingHeaders \ - -I$(WebKit) \ - -I$(GENSOURCES) \ - -I$(top_builddir)/Source/WebKit/gtk \ - -I$(top_srcdir)/Source/WebCore/bindings \ - -I$(top_srcdir)/Source/WebCore/bindings/gobject \ - $(global_cppflags) \ - $(global_cflags) \ - $(javascriptcore_cppflags) \ - $(FREETYPE_CFLAGS) \ - $(GLIB_CFLAGS) \ - $(GTK_CFLAGS) \ - $(LIBSOUP_CFLAGS) \ - $(XRENDER_CFLAGS) \ - $(XT_CFLAGS) - -webkit_tests_ldadd = \ - libjavascriptcoregtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ - libwebkitgtk-@WEBKITGTK_API_MAJOR_VERSION@.@WEBKITGTK_API_MINOR_VERSION@.la \ - $(FREETYPE_LIBS) \ - $(GTK_LIBS) \ - $(GLIB_LIBS) \ - $(LIBSOUP_LIBS) \ - $(XRENDER_LIBS) - -webkit_tests_ldflags = \ - -no-install \ - -no-fast-install - -if ENABLE_WEBKIT1 -noinst_PROGRAMS += \ - Programs/unittests/testapplicationcache \ - Programs/unittests/testcontextmenu \ - Programs/unittests/testdomdocument \ - Programs/unittests/testdomdomwindow \ - Programs/unittests/testdomnode \ - Programs/unittests/testhttpbackend \ - Programs/unittests/testfavicondatabase \ - Programs/unittests/testloading \ - Programs/unittests/testglobals \ - Programs/unittests/testmimehandling \ - Programs/unittests/testnetworkrequest \ - Programs/unittests/testnetworkresponse \ - Programs/unittests/testwebframe \ - Programs/unittests/testwebbackforwardlist \ - Programs/unittests/testwebhistoryitem \ - Programs/unittests/testwindow \ - Programs/unittests/testdownload \ - Programs/unittests/testatk \ - Programs/unittests/testatkroles \ - Programs/unittests/testhittestresult \ - Programs/unittests/testwebinspector \ - Programs/unittests/testwebsettings \ - Programs/unittests/testwebresource \ - Programs/unittests/testwebdatasource \ - Programs/unittests/testwebplugindatabase \ - Programs/unittests/testwebview \ - Programs/unittests/testkeyevents \ - Programs/unittests/testcopyandpaste -endif - -# Add additional tests here -Programs_unittests_testapplicationcache_SOURCES = Source/WebKit/gtk/tests/testapplicationcache.c -Programs_unittests_testapplicationcache_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testapplicationcache_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testapplicationcache_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testcontextmenu_SOURCES = Source/WebKit/gtk/tests/testcontextmenu.c -Programs_unittests_testcontextmenu_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testcontextmenu_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testcontextmenu_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testdomdocument_SOURCES = Source/WebKit/gtk/tests/testdomdocument.c -Programs_unittests_testdomdocument_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testdomdocument_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testdomdocument_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testdomdomwindow_SOURCES = Source/WebKit/gtk/tests/testdomdomwindow.c -Programs_unittests_testdomdomwindow_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testdomdomwindow_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testdomdomwindow_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testdomnode_SOURCES = Source/WebKit/gtk/tests/testdomnode.c -Programs_unittests_testdomnode_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testdomnode_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testdomnode_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testhttpbackend_SOURCES = Source/WebKit/gtk/tests/testhttpbackend.c -Programs_unittests_testhttpbackend_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testhttpbackend_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testhttpbackend_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testfavicondatabase_SOURCES = Source/WebKit/gtk/tests/testfavicondatabase.c Source/WebKit/gtk/tests/test_utils.c -Programs_unittests_testfavicondatabase_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testfavicondatabase_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testfavicondatabase_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testglobals_SOURCES = Source/WebKit/gtk/tests/testglobals.c -Programs_unittests_testglobals_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testglobals_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testglobals_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testloading_SOURCES = Source/WebKit/gtk/tests/testloading.c -Programs_unittests_testloading_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testloading_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testloading_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testmimehandling_SOURCES = Source/WebKit/gtk/tests/testmimehandling.c Source/WebKit/gtk/tests/test_utils.c -Programs_unittests_testmimehandling_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testmimehandling_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testmimehandling_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testnetworkrequest_SOURCES = Source/WebKit/gtk/tests/testnetworkrequest.c -Programs_unittests_testnetworkrequest_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testnetworkrequest_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testnetworkrequest_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testnetworkresponse_SOURCES = Source/WebKit/gtk/tests/testnetworkresponse.c -Programs_unittests_testnetworkresponse_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testnetworkresponse_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testnetworkresponse_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebframe_SOURCES = Source/WebKit/gtk/tests/testwebframe.c -Programs_unittests_testwebframe_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebframe_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebframe_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebplugindatabase_SOURCES = Source/WebKit/gtk/tests/testwebplugindatabase.c -Programs_unittests_testwebplugindatabase_CFLAGS = -DTEST_PLUGIN_DIR=\"${shell pwd}/${top_builddir}/TestNetscapePlugin/.libs\" $(webkit_tests_cflags) -Programs_unittests_testwebplugindatabase_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebplugindatabase_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebbackforwardlist_SOURCES = Source/WebKit/gtk/tests/testwebbackforwardlist.c -Programs_unittests_testwebbackforwardlist_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebbackforwardlist_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebbackforwardlist_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebhistoryitem_SOURCES = Source/WebKit/gtk/tests/testwebhistoryitem.c -Programs_unittests_testwebhistoryitem_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebhistoryitem_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebhistoryitem_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwindow_SOURCES = Source/WebKit/gtk/tests/testwindow.c -Programs_unittests_testwindow_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwindow_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwindow_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testdownload_SOURCES = Source/WebKit/gtk/tests/testdownload.c -Programs_unittests_testdownload_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testdownload_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testdownload_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testatk_SOURCES = Source/WebKit/gtk/tests/testatk.c -Programs_unittests_testatk_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testatk_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testatk_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testatkroles_SOURCES = Source/WebKit/gtk/tests/testatkroles.c -Programs_unittests_testatkroles_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testatkroles_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testatkroles_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebinspector_SOURCES = Source/WebKit/gtk/tests/testwebinspector.c Source/WebKit/gtk/tests/test_utils.c -Programs_unittests_testwebinspector_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebinspector_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebinspector_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebsettings_SOURCES = Source/WebKit/gtk/tests/testwebsettings.c -Programs_unittests_testwebsettings_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebsettings_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebsettings_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testwebresource_SOURCES = Source/WebKit/gtk/tests/testwebresource.c -Programs_unittests_testwebresource_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebresource_LDADD = $(webkit_tests_ldadd) - -Programs_unittests_testwebdatasource_SOURCES = Source/WebKit/gtk/tests/testwebdatasource.c -Programs_unittests_testwebdatasource_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebdatasource_LDADD = $(webkit_tests_ldadd) - -Programs_unittests_testwebview_SOURCES = Source/WebKit/gtk/tests/testwebview.c Source/WebKit/gtk/tests/test_utils.c -Programs_unittests_testwebview_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testwebview_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testwebview_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testhittestresult_SOURCES = Source/WebKit/gtk/tests/testhittestresult.c -Programs_unittests_testhittestresult_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testhittestresult_LDADD = $(webkit_tests_ldadd) - -Programs_unittests_testkeyevents_SOURCES = Source/WebKit/gtk/tests/testkeyevents.c -Programs_unittests_testkeyevents_CFLAGS = $(webkit_tests_cflags) -Programs_unittests_testkeyevents_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testkeyevents_LDFLAGS = $(webkit_tests_ldflags) - -Programs_unittests_testcopyandpaste_SOURCES = Source/WebKit/gtk/tests/testcopyandpaste.c \ - Source/WebCore/platform/gtk/GtkVersioning.c -Programs_unittests_testcopyandpaste_CFLAGS = $(webkit_tests_cflags) \ - -I$(srcdir)/Source/WebCore/platform/gtk \ - -I$(srcdir)/Source/WebCore -Programs_unittests_testcopyandpaste_LDADD = $(webkit_tests_ldadd) -Programs_unittests_testcopyandpaste_LDFLAGS = $(webkit_tests_ldflags) - -# Project-wide clean rules -# Files that will be cleaned -CLEANFILES += \ - $(BUILT_SOURCES) \ - $(top_builddir)/stamp-webkitmarshal.cpp \ - $(top_builddir)/stamp-webkitmarshal.h \ - $(top_builddir)/stamp-webkitenumtypes.cpp \ - $(top_builddir)/stamp-webkitenumtypes.h \ - $(top_builddir)/Programs/GtkLauncher - -DISTCLEANFILES += \ - $(top_builddir)/Source/WebKit/gtk/@WEBKITGTK_PC_NAME@-@WEBKITGTK_API_VERSION@.pc \ - $(top_builddir)/Source/WebKit/gtk/org.webkitgtk-@WEBKITGTK_API_VERSION@.gschema.xml \ - $(top_builddir)/Source/WebKit/gtk/webkit/webkitversion.h diff --git a/Source/WebKit/gtk/NEWS b/Source/WebKit/gtk/NEWS deleted file mode 100644 index bc2ea8b64..000000000 --- a/Source/WebKit/gtk/NEWS +++ /dev/null @@ -1,1435 +0,0 @@ -================= -WebKitGTK+ 2.1.3 -================= - -What's new in WebKitGTK+ 2.1.3? - - - Add support for preload="metadata" to GStreamer media backend. - - Do not expose '\n' for wrapped lines with ATK_TEXT_BOUNDARY_CHAR. - - Fix potential race condition in GStreamer media backend when - getting the video sink caps. - - Fix performance issues rendering a page with animations. - - Several fixes and improvements in GStreamer video accelerated - compositing support. - - Adjust internal size on GStreamer HTTP source element when - receiving data if necessary. - - Actually disable the memory cache when DOCUMENT_VIEWER cache model - is used in WebKit1. - - Fix runtime critical warning in WebKit2 when unloading a module - that failed to load. - - Fix several memory leaks. - -================= -WebKitGTK+ 2.1.2 -================= - -What's new in WebKitGTK+ 2.1.2? - - - Set the subresources load priority using new libsoup API available - in 2.43. - - Do not use X11 WidgetBackingStore implementation in Wayland. - - Support using GLContext from multiple threads. - - Make sure gstreamer source element is thread-safe. - - Prevent race condition when pad caps is set on gstreamer player. - - Invalidate the ProcessLauncher when the process is terminated - before it has finished launching - - Use custom cairo code instead of Pango API for highlighting - misspelled words. - - Respect PKG_CONFIG env variable when generating gtk-doc. - - Fix a crash due to an assert in gstreamer backend when seeking. - - Fix memory leak when web process is terminated. - - Translation updates: Telugu, Hindi, Kannada, Odia. - -================= -WebKitGTK+ 2.1.1 -================= - -What's new in WebKitGTK+ 2.1.1? - - - Add webkit_uri_scheme_request_finish_error to WebKit2 GTK+ API. - - Add a setting to control whether or not accelerated 2D canvas is - enabled in WebKit2. - - Add a setting to WebKit2 to allow sending console log messages to - stdout. - - Always use EGL to create the GL context when running on Wayland. - - Fix rendering of WebKitWebView child widgets with recent GTK+. - - Notify the web process in WebKitURISchemeRequest when we fail to read - from the user InputStream. - - Fixed race conditions closing the socket descriptor when the web - process crashes. - - Add video accelerated compositing support to the GStreamer backend. - - Add support for audio/speex MIME type to the GStreamer backend. - - Fix seek after video finished in GStreamer backend. - - Initialize WebKitWebPlugin path to prevent double-free in WebKit1. - - Fix several GObject instrospection warnings. - - Fixed several memory leaks. - -================= -WebKitGTK+ 1.11.5 -================= - -What's new in WebKitGTK+ 1.11.5? - - - Fix crashes related to libsoup, gstreamer, and accessibility. - - Implement the WebKit2 resources API using the injected bundle. - - Add API to prefetch DNS of a given hostname to the WebKit2 API. - - Move Authentication and Downloads from WebProcess to Shared in - WebKit2. - - Many improvements to the GStreamer backend including the resurrection of - the native fullscreen mode for increased performance, support for - setPreservesPitch, bug fixes, support for Opus files, and - some other performance improvements. - - New features enabled: CSS Image Resolution, CSS Image Orientation, - and the performance timeline in the Web Inspector via resource timing - and navigation timing. - - Add support for blend modes to the Cairo backend. - - Fix for checkSpellingOfString erroneously treating multiple words - as spelled correctly. - - Characters outside the BMP are now properly rendered. - - Synthetic bold is now applied to fallback fonts properly. - - Better drag and drop icons during drags on non-composited desktops. - - The page title is now preserved in WebKit when disappearing when clicking on - an anchor link. - - The web database path setting in WebKit1 now also controls where IndexedDB - databases are stored. - - Fix various issues in the build tools, testing tools, Web Inspector, and - MiniBrowser. - - -================= -WebKitGTK+ 1.11.4 -================= - -What's new in WebKitGTK+ 1.11.4? - - - Add support for loading web process extensions to WebKit2 GTK+. - - Embed the HTTP authentication dialog into the WebView in WebKit2. - - Add support for IME Composition to WebKit2. - - Add API to notify about display/execution of insecure content to - WebKit2 GTK+ API. - - Add GTK+ API to set a WebKitWebView in view source mode to WebKit2. - - Add API to set a TLS errors policy to WebKit2 GTK+ API. - - Add WEBKIT_HIT_TEST_RESULT_CONTEXT_SCROLLBAR to WebKit2 GTK+ API. - - Add support for remote Web Inspector to WebKit2. - - Complete the documentation od sections in WebKit2 GTK+ API. - - Fix cookies and custom URI requests when the web process is - re-launched after a crash. - - Fix a crash in WebKit2 when running inside Xvfb. - - Fix a crash in WebKit2 when the WebView is resized with the - inspector attached. - - Use Harfbuzz instead of Pango in GTK+ port. - - Add support for WebP image. - - Port WebAudio backend to GStreamer 1.0 API. - - Fix the buffering ranges reported with GStreamer 1.0. - - Implement multipart/x-mixed-replace in the soup network backend. - - Fix invalid entries for plugins in navigator.plugins. - - Add implementation for AccessibilityUIElementGtk::isSelectable() - and AccessibilityUIElementGtk::isMultiSelectable(). - - Expose ARIA roles for tab, tabpanel and tablist. - - Fixed several memory leaks. - -================= -WebKitGTK+ 1.11.2 -================= - -What's new in WebKitGTK+ 1.11.2? - - - Implement inspector server on Linux for remote debugging. - - Add support for password remembering to HTTP authentication - dialog in WebKit2 using libsecret. - - Add API to get favicons to WebKit2 GTK+ API. - - Add API to get the WebKitWebView associated to a WebKitDownload to - WebKit2 GTK+. - - Add GObject introspection support to WebKit2 GTK+ API. - -================= -WebKitGTK+ 1.11.1 -================= - -What's new in WebKitGTK+ 1.11.1? - - - Make WebKitWebView work again inside a GtkOverlay by not using a - native window for Accelerated Compositing implementation. - - Use XDamage to improve accelerated compositing performance. - - Enable the edge distance anti-aliasing for accelerated compositing - layers. - - Add support to build with EGL OpenGL backend. - - Add support for WebAudio. - - Fix several API breaks in DOM bindings introduced in 1.9.6. - - Save the original URI for downloaded files as GIO metadata of the - destination file. - - Add API for controlling the user agent to WebKit2. - - Add API to WebKit2 to allow running JavaScripts from a - WebKitWebView using a GResource containing the script. - - Add Undo/Redo and SelectAll predefined editing commands to WebKit2 - GTK+ API. - - Add a setting to enable/disable smooth scrolling to WebKit2 GTK+ - API. - - Add API to get the web view that initiated a custom URI request to - WebKit2 GTK+. - - Implement ViewState methods of WebKitWebView in WebKit2. - - Add API to get/set the security policy of a given URI scheme to - WebKit2 GTK+. - - Add WebKitWebView:is-loading property to WebKit2 GTK+ API. - - Change spellchecker languages API in WebKit2 to use a GStrv for - the list of languages to make the API more consistent and - convenient to use. - - Add destroy notify parameter to - webkit_web_context_register_uri_scheme in WebKit2 GTK+ API. - - Replace webkit_web_view_replace_content with - webkit_web_view_load_alternate_html in WebKit2 GTK+ API. - - Rename WebKitWebView "print-requested" signal to "print" in - WebKit2 GTK+ API for consistenty. - - Add API to set preferred languages to WebKit2 GTK+. - - Add webkit_uri_response_get_suggested_filename to WebKit2 GTK+ - API. - - Add API to save a web page in MHTML format to WebKit2 GTK+. - - Implement smart separators for context menu in WebKit2 GTK+. - - Sanitize the suggested filename when building the download - destination URI in WebKit2. - - Fix disk cache in WebKit2 to actually dump the contents to disk. - - Fix a crash in WebKit2 when navigating between pages in the - history cache. - - Fix a crash in WebKit2 when a download initiated by the policy - checker fails. - - Fix a crash in network backend with non-UTF8 HTTP header names. - - Properly close audio device after playing sound. - - Purge unused favicons from IconDatabase after 30 days. - - Properly expose <legend> elements to ATs. - - The new accessibility CanvasRole is now mapped to ATK_ROLE_CANVAS. - - Fix an infinite loop in accessibility code. - - Fix a crash in - AccessibilityObject::accessibilityPlatformIncludesObject(). - - Fix a crash in WebCore::HTMLSelectElement::selectedIndex(). - - Fix caret-moved events not emitted for certain content. - - Fix incorrect/unexpected characters in the text of certain - accessibles. - - Implement AccessibilityUIElement::titleUIElement() and - AccessibilityUIElement::stringValue(). - - Expose ROLE_TOGGLE_BUTTON instead of ROLE_PUSH_BUTTON when - aria-pressed is present. - - Fix LLint build with -g -02. - - Properly process GDK_SMOOTH_SCROLL events. - - Fix several memory leaks. - -================= -WebKitGTK+ 1.9.6 -================= - -What's new in WebKitGTK+ 1.9.6? - - - Add spell checker API to WebKit2 GTK+ API. - - Add WebKitWebView::submit-form signal to WebKit2 GTK+ API. - - Add API to get the suggested filename from a - WebKitNetworkResponse. - - Add webkit_web_view_get_snapshot() to WebKit1 API. - - Paste primary selection when middle clicking in X11 WebKit2. - - Make sure WebKitWebView always has a main resource and it has - already been set when the load has been committed, even for pages - loaded from the history cache in WebKit2. - - Fix a run time critical warning when gdk_window_get_cursor() is - called before WebKitWebView has been realized in WebKit2. - - Fix continuous insertion of newlines in Etherpad. - - Fix several memory leaks. - -================= -WebKitGTK+ 1.9.5 -================= - -What's new in WebKitGTK+ 1.9.5? - - - Add API to get HTTPS status to WebKit2 GTK+. - - Add API to clear the cache to WebKit2 GTK+. - - Add webkit_cookie_manager_set_persistent_storage() to WebKit2 GTK+ - API. - - Improve performance of searching in WebKit2. - - Implement disk cache in WebKit2. - - Add site specific quirks setting to WebKit2 GTK+ API. - - Add a setting to enable/disable page cache to WebKit2 GTK+ API. - - Add WebKitWebView::context-menu-dismissed signal to WebKit2 GTK+ - API. - - Add webkit_web_frame_get_dom_document() to WebKit GTK+ API. - - Use soup_cookie_jar_is_persistent() to set whether cookie is a - session one or not. - - Fix recognition of contractions (apostrophes) in spell checker. - - Fix a crash when showing the context menu in the Web Inspector. - - WebKitWebView::mouse-target-changed is not emitted when moved - to/from editable content. - - Fix inspector detach when inspector was attached by the client in - WebKit2. - - Don't show accel labels in WebKit2 context menu items. - - Cache the video dimensions to not query the video-sink sink-pad - caps every time. - - Fix several memory leaks. - -================= -WebKitGTK+ 1.9.4 -================= - -What's new in WebKitGTK+ 1.9.4? - - - Add an accelerated compositing implementation for WebKit2. - - Add API to register custom URI schemes to WebKit2 GTK+ API. - - Add support for window.showModalDialog in WebKit2 GTK+ API. - - Add webkit_download_get_received_data_length to WebKit2 GTK+ API. - - Add ContextMenu API to WebKit2 GTK+. - - Add Geolocation permission requests API to WebKit2 GTK. - - Add API to get the library version to WebKit2 GTK+. - - Add WebKitWebView::run-file-chooser signal to WebKit1 API. - - Port the video sink to GStreamer 0.11 API. - - Add TextureMapper ImageBuffer support as a fallback from the - hardware accelerated path - - Add input methods submenu item to the default context menu for - editable content. - - Unmark highlighted text matches when find operation finishes. - - Honor the device scale factor property when drawing. - - Prevent setting or editing httpOnly cookies from JavaScript. - - Fix several memory leaks. - -================= -WebKitGTK+ 1.9.3 -================= - -What's new in WebKitGTK+ 1.9.3? - - - Add webkit_download_get_request to WebKit2 GTK+ API. - - Add API to get the list of plugins to WebKit2 GTK+. - - Add webkit_web_view_can_show_mime_type() to WebKit2 GTK+ API. - - Add GCancellable parameter to all methods using gio async pattern - in WebKit2 GTK+ API. - - Add settings to enable and disable composited layer indicators to - WebKit2 GTK+ API. - - Add generic permission requests API to WebKit2 GTK+ API. - - Add initial inspector API to WebKit2 GTK+. - - Allow to attach/detach the inspector in WebKit2. - - Add media-playback-requires-user-gesture and - media-playback-allows-inline settings to WebKit1 and WebKit2 GTK+. - - Use defers loading instead of pausing the soup message in - WebKitDownload. - - Properly set the input method context window location. - - Fix a crash in the WebProcess when a download is started from - an existing ResourceHandle. - - Fix cursor used for ne-resize. - - Fix contractions recognition by the spell checker. - - Fix a crash rendering scrollbars on GTK wxWebkit. - - Fix KURL::fileSystemPath() implementation to strip the query part - of the uri. - - Check for GTK2/GTK3 symbol mismatch earlier to fix plugins run - with nspluginwrapper. - - Fix thin archives support while building GTK+ port. - - Fix several memory leaks. - - Fix several compilation warnings. - -================= -WebKitGTK+ 1.9.2 -================= - -What's new in WebKitGTK+ 1.9.2? - - - Fix exceeding arguments list build problem, by splitting more - files off libWebCore into the new libWebCoreModules convenience - library. - - Remove left over soup_session_pause_message() and properly handle - that case for defersLoading. - - Fix response being the new one instead of the one that caused the - redirect when emitting WebKitWebView::resource-request-starting. - - Refactor of IME handling to fix bugs and prepare for sharing with - WebKit2. - - Add file chooser API to WebKit2. - -================= -WebKitGTK+ 1.9.1 -================= - -What's new in WebKitGTK+ 1.9.1? - - - Geolocation support is built by default now. Use - --disable-geolocation during build to disable it. - - LINGUAS environment variable is honored now. - - Throttle DNS prefetching to avoid overloading the resolver. - - Remove defunct WebInspector GSettings mapping. - - Fix a crash when emitting signals with a GError parameter when - using GObject Introspection. - - Fix flickering during scrolling and resizing in newer versions of - GTK+. - - Fix a bug where the Content-Length header was not sent for certain - XMLHttpRequests. - - Fix a WebProcess segmentation fault related to clipboard handling. - - Fix a repainting error that occurred during interior frame - scrolling. - - Fix a crash when WebKitWebView is created without a WebContext. - - Fix a crash that could occur during synchronous XMLHttpRequests. - - Fix rendering of combobox / menulist buttons that do not have - separators. - - Fix the rendering of toggle buttons with larger-than-default - widths and heights with the Adwaita theme. - - Fix misrendering of text shadow extents in some situations. - - Fix a crash when closing browser with inspector window opened. - - Now interpret plugin metadata as UTF-8. - - Fix rendering of GtkWidgets embedded on WebKitWebView. - - Web content (except plugins) should no longer steal focus from - other GTK+ widgets. - - WebKit will try to use the default libsoup proxy resolver - automatically. - - Performance improvements in WebKitWebView by avoiding doing a lot - of work in size_allocate when the view is not mapped. - - Web Timing is now enabled. - - Add support for smooth scrolling. - - Implement unicode submenu items. - - FFTFrame implementation in GStreamer backend. - - More work on GStreamer 0.11 support. - - Add support for windowed plugins in WebKit2. - - Add full printing support to WebKit2. - - Add a new favicon database API that corrects the problems of the - old one. - - Add WebKitWebView::context-menu signal to allow applications to - handle its own context menu. WebKitWebView::populate-popup signal - and default-context setting are now deprecated. - - Well known names for menu items in the default context menu are - now exposed in an enumeration. - - Add entering/leaving fullscreen signals to WebKit API. - - Add enable-webaudio setting to WebKit2 GTK+ API. - - Add support for registering custom uri schemes in WebKit2. - - Add WebKitWebView::mouse-target-changed signal to WebKit2 GTK+ - API. - - Add enter/leave fullscreen signals to WebKit2 GTK+ API. - - Add find API to WebKit2 GTK+ API. - - Use a single signal for script dialogs in WebKit2 GTK+ API. - - Add cookies API to WebKit2 GTK+ API. - - Add webkit_print_operation_print() to WebKit2 GTK+ API. - - Add resources API to WebKit2 GTK+ API. - - Add support for Response policy decisions to WebKit2 GTK+ API. - - Add javascript clipboard functionality settings to WebKit2 GTK+ - API. - - Add cut, copy and paste methods to WebKit2 GTK+ API. - - Add zoom-text-only setting to WebKit2 GTK+ API. - - Add webkit_web_view_run_javascript() to WebKit2 GTK+ API. - -================= -WebKitGTK+ 1.7.5 -================= - -What's new in WebKitGTK+ 1.7.5? - - - Add new signals to track resources loading. - - Add --no-timeout command line option to DumpRenderTree. - - Expose accessibility hierarchy in WebKit2 to ATK/AT-SPI based ATs. - - Allow to build using extra jhbuild modulesets. - - Fix emission of ATK text-caret-moved and text-selection-changed - events. - - Update primary clipboard with the current selection in X11 - platforms in WebKit2. - - Implement the policy client in WebKit2 GTK+ API. - - Add basic printing support to WebKit2. - - Do not add unnecessary blanks at the end of a line of text to fix. - the line returned by atk_text_get_text_at_offset(). - - Make sure input text field is repainted when value is changed. - - Add print-backgrounds setting to WebKit2 GTK+ API. - - Respect the has-backward-stepper and has-forward-stepper - properties when drawing scrollbars. - - WebKit-3.0.gir now includes information about C includes or - exported packages. - - WebKit1 API documentation was not generated when building with - gtk-2.0. - - Make WebKitWebView work inside a GtkOffscreenWindow. - - Implement DownloadClient and add downloads API to WebKit2 GTK+ - API. - -================= -WebKitGTK+ 1.7.4 -================= - -What's new in WebKitGTK+ 1.7.4? - - - Fix a11y regression: text-inserted events lack text inserted and - current line. - - Fix scrollbars in WebKit2 that were drawn behind the window resize - grip. - - Fix a memory leak in WebKitWebSourceGStreamer. - - Slider thumb is not centered on the track with the unico theme. - - Fix context menu in WebKit2 to not dissapear right after it's shown. - - Use GtkOrientable style class in GTK+ 3 theming code. - - Change default WebSocket protocol to the latest one (hybi-17). - - Fix scrollbars size with GTK+ 3.x to follow the current theme. - - Use gdk_screen_get_monitor_workarea() when available for - screenAvailableRect(). - - Rename webkit_web_view_load_alternate_html as - webkit_web_view_replace_content in WebKit2 GTK+. - - Fix emission of ATK text-caret-moved and text-selection-changed events. - - Add methods to get/set the WebView zoom level to WebKit2 GTK+ API. - - Make WebProcess and PluginProcess use the same locale as the UI process. - - Simplify WebKit2 loader client API. - -================= -WebKitGTK+ 1.7.3 -================= - -What's new in WebKitGTK+ 1.7.3? - - - WebGL is now enabled by default. - - Initial support for accelerated compositing has been added. - - Add fullscreen setting to WebKit2 GTK+ API. - - Fix regression of Push buttons that didn't expose their displayed - text/name to accessibility toolkit. - - Initial UI client implementation for WebKit2 GTK+ API. - - Implement HTML5 History APIs. - - Implement cookies management in WebKit2. - - Fix a crash when a download fails. - - Add support for javascript dialogs in WebKit2 GTK+ API. - - Add 'enable-dns-prefetching' setting to WebKit2 GTK+ API. - - Initial support for WebAudio data playback. - - Add enable-webaudio setting. - - Links are now focused with Tab by default in WebKit2. - - Fix HTML5 Youtube video fullscreen button. - - Improve description of WebSocket errors. - - Add WebKitWindowProperties to WebKit2 GTK+ API. - - Fullscreen controller support for the new WebKit Fullscreen API. - - Add WebKitURIResponse to WebKit2 GTK+ API. - - Fix random crash in pages containing plugins. - - Fix loading of custom fonts in some web sites like surlybikes.com - or boingboing.net. - -================= -WebKitGTK+ 1.7.2 -================= - -What's new in WebKitGTK+ 1.7.2? - - - Fix process freeze when right-clicking on windowless Flash. - - Performance improvements by avoiding unnecessary clips while - painting. - - Notify errors happening on downloads not started by a web view. - - Allow building with GLib >= 2.31. - - Significant JavaScript performance improvements on x86 and x86-64. - - Fix application cache directory in WebKit2. - - Add initial support for cookies in WebKit2. - - Implement support for downloads in WebKit2. - - Add methods to load HTML and plain text to WebKit2 GTK+ API. - - Add webkit_web_view_get_uri() to WebKit2 GTK+ API. - - Don't show items in option elements with display:none. - - Add webkit_web_view_load_request() to WebKit2 GTK+ API. - - Add support for WebAudio AudioFileReader. - - Port MiniBrowser to use WebKit2 GTK+ API instead of the C API. - - Add more settings to WebKitSettings in WebKit2 GTK+ API: Private - browsing, developer extras, resizable text areas, tabs to links, - caret mode, font settings, default charset. - - Fix windowless plugins drawing in WebKit2. - - Fix memory leak when fullscreening a video. - - Remove visited links from page's page group when clearing back - forward list. - - Switch to a backing store approach for painting WebKitWebView. It - improves scrolling performance. - - Add methods to get/set the settings of a web view to WebKit2 GTK+ - API. - - Add webkit_settings_new_with_settings() to WebKit2 GTK+ API. - - Add title property to WebKitWebView in WebKit2 GTK+ API. - -================= -WebKitGTK+ 1.7.1 -================= - -What's new in WebKitGTK+ 1.7.1? - - - Fix a problem with scroll adjustments tha made scrollbars become - out of sync with the page contents. - - Show title of option control items in a tooltip. - - Improve scrolling performance for pages containing windowed - plugins. - - Use GtkGrid instead of GtkTable in authentication dialogs. - - Fix compatibility issues with DOM bindings. - - Fix video pause/play in fullscreen. - - Add support for pseudo-italics on freetype fonts when italic font - is requested but Fontconfig gives one that is neither oblique - nor italic. - - Fix test rendering issues due to custom fonts which use synthetic - oblique rendering. - - Support for client-based geolocation. - - Add support for sending encoded blob data during network requests. - - Use SOCK_SEQPACKET when available for sockets used to communicate - processes in WebKit2. - - Add gtk-doc support to generate WebKit2 GTK+ API documentation. - - Implement default error pages in WebKit2. - - Initial implementation of WebInspector for WebKit2. - - Implement drag and drop support in WebKit2. - - TextChecker implementation for WebKit2. - - Initial implementation of back forward list for WebKit2 GTK+ API. - - Initial implementation of view settings for WebKit2 GTK+ API. - - Initial implementation of loader client for WebKit2 GTK+ API. - - Implement cache model for WebKit2 - - Initial implementation of web context for WebKit2 GTK+ API. - - Add methods to get/set a custom text enconding to WebKit2 GTK+ - API. - - Add WebKitError to WebKit2 GTK+ API. - -This is the first release providing a minimal working WebKit2 GTK+ -API. This API is still under design and development, so use it -carefully and take into account that it might change. - -================= -WebKitGTK+ 1.5.90 -================= - -What's new in WebKitGTK+ 1.5.90? - - - Bumped GStreamer requirement to 0.10.30. - - Switch to GTK+3 by default. GTK+2 is still required for the - WebKit2 plugin process though. - - Create pot files in builddir. - - Improvements in the WebKit2GTK+ port. - - Lots of bugfixes. - -================ -WebKitGTK+ 1.5.2 -================ - -What's new in WebKitGTK+ 1.5.2? - - - Remove G_CONST_RETURN usage througout WebKit, it's deprecated in - glib. - - Add plugin process support in WebKit2. Now (GTK+2) plugins can - work again with a GTK+3 build. - - Add API to set local storage database path. - - Further UA spoofing for Google Calendar, since it assumes - Linux+WebKit means mobile (ugh). - - Lots of bugfixes. - -================ -WebKitGTK+ 1.5.1 -================ - -What's new in WebKitGTK+ 1.5.1? - - - The JSC library is now available independently. It's called - "libjavascriptcoregtk", and it comes with its own pkg-config file. - - New spellchecking APIs, useful to implement spellchecking features - in the UAs. - - New DOM methods to check if editable areas have been modified by - the user (webkit_dom_html_{input,text_area}_is_edited). - - Lots of improvements in the WebKit2GTK+ port. - - Lots of bugfixes. - -================= -WebKitGTK+ 1.3.13 -================= - -What's new in WebKitGTK+ 1.3.13? - -In this release the GObject DOM Bindings contain a major change. Explicit -invocation of DOM objects' addEventListener methods has replaced the GObject -signal method of DOM event handling. For intance, where before a developer -would connect to the "click-event" signal, a developer must now call: -webkit_dom_event_target_add_event_listener. For a more illustrative example see: -http://trac.webkit.org/changeset/81486/trunk/Source/WebKit/gtk/tests/testdomdomwindow.c - -Added API to control the IconDatabase and the cache database APIs. - -WebKit bugs mostly relevant with the GTK+ port fixed since 1.3.12: - -Bug 23526 - [CAIRO] Support ImageBuffers clip operation on all Cairo ports (Martin Robinson) -Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Martin Robinson) -Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Geoffrey Garen) -Bug 49649 - [GTK] On-demand event-listeners for DOM event signals (David Keijser) -Bug 56333 - [GTK] [WebKit2] The UIProcess never changes the mouse cursor (Martin Robinson) -Bug 55989 - [GTK] Possible leaks after splitting TextCheckerClientEnchant. (Ryuan Choi) -Bug 50497 - Add all web audio auto-generated files to GTK make system (Chris Rogers) -Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Sergio Villar Senin) -Bug 55932 - [GTK] close-web-view emitted on disposed WebView (Philippe Normand) -Bug 53098 - [GTK] Implement spin buttons for GTK+ 2.x (Martin Robinson) -Bug 56125 - [GTK] [Webkit2] There are no scrollbars visible in the MiniBrowser (Martin Robinson) -Bug 41903 - [GTK] plugins/return-negative-one-from-write.html crashes (Martin Robinson) -Bug 32510 - [GTK] provide an API to control the IconDatabase (Christian Dywan) -Bug 55868 - [GTK] Do not set juntion sides on scrollbar stepper buttons (Carlos Garcia Campos) -Bug 55866 - [GTK] Use doubles instead of integers for coordinates when rendering arrows (Carlos Garcia Campos) -Bug 55878 - [Gtk] toDataURL uses incorrect quality value when saving GdkPixbuf to buffer (Zan Dobersek) -Bug 55531 - [GTK] Windowless plugins override the view cursor (Martin Robinson) -Bug 55136 - Enable Copy Image Address context menu item in the Gtk port (Christian Dywan) -Bug 53960 - [GTK] DRT needs implementation of EventSender.scheduleAsynchronousClick (Carlos Garcia Campos) -Bug 55335 - [GTK] Extended application cache database API and added unit tests file. (Lukasz Slachciak) -Bug 53146 - [GTK] Combo boxes should emit object:selection-changed even when collapsed (Mario Sanchez Prada) -Bug 55473 - [GTK] Add support for external protocol handlers (Sergio Villar Senin) -Bug 53228 - [Gtk] Resource size is incorrectly reported to WebCore (Sergio Villar Senin) -Bug 48510 - [GTK] Implement WebContext and NativeKeyboardEvent classes for WebKit2 (Amruth Raj) -Bug 48509 - [GTK] Implement WebView and WebKitWebView classes for WebKit2 (Amruth Raj) -Bug 48510 - [GTK] Implement WebEventFactory, WebErrors classes for WebKit2 ( Amruth Raj) -Bug 54658 - [gtk] Failing collinear arcTo canvas tests (Zan Dobersek) -Bug 37769 - [Gtk] Flash item placed on wrong location right after load (Martin Robinson) -Bug 54981 - [GTK] position:fixed elements flicker while scrolling after r74196 (Martin Robinson) -Bug 56180 - [GTK] JSC crashes in 32bit Release bots after r80743 (Oliver Hunt) -Bug 56737 - [GTK] [Stable] AtkHypertext exposes wrong offsets for links placed inside <span> nodes (Mario Sanchez Prada) -Bug 56201 - WebKitIconDatabase may trigger crash in cairoImageSurfaceToGdkPixbuf (Christian Dywan) -Bug 56690 - Stop inserting when the parent is removed (Justin Schuh) - -================= -WebKitGTK+ 1.3.12 -================= - -What's new in WebKitGTK+ 1.3.12? - - - Removed mandatory Enchant dependency. - - Libsoup required version bumped to 2.33.6. - - HTML5 media volume managment improvements. - - Updated translations. - - A11y bugfixes. - - Many other bugfixes. - - -WebKit bugs mostly relevant with the GTK+ port fixed since 1.3.11: - -Bug 42496 - Update Simplified Chinese (zh_CN) translation of WebKitGtk (Christian Dywan) -Bug 53771 - [GTK] fast/events/pagehide-timeout.html fails (Martin Robinson) -Bug 13343 - getComputedStyle returns wrong value for margin-right (Jarred Nicholls) -Bug 53797 - [GTK] WebKitWebFrame can return a stale frame name when calling webkit_web_frame_get_name (Martin Robinson) -Bug 52775 - WebKit2: add support for drag and drop on Windows (Enrica Casucci) -Bug 54312 - Allow controlling minimum DOMTimer interval on a per-page basis (Kenneth Russell) -Bug 54323 - [Freetype] Better map CSS font weight to Fontconfig font weight (Martin Robinson) -Bug 50237 - [Gtk] Implement layoutTestController.findString (Joone Hur) -Bug 53686 - Web Inspector: remove settings related methods from InspectorClient (Yury Semikhatsky) -Bug 53833 - [GTK] plugins/plugin-document-back-forward.html fails (Martin Robinson, Adam Barth) -Bug 54860 - [GTK] [REGRESSION] After r79130, spell tests did not work (Alejandro G. Castro) -Bug 54352 - [GTK] Match more various WebKit API enum values with WebCore enum values (Joone Hur) -Bug 54116 - [GTK] Add support in DRT to log "accessibility events" (Mario Sanchez Prada) -Bug 52836 - [GTK] Move scrollbar rendering out of gtk2drawing.c (Martin Robinson) -Bug 39022 - [GTK] Some test results are one pixel different between the x86_64 and i386 bots (Alejandro G. Castro) -Bug 54895 - [GTK] editing/pasteboard/dataTransfer-setData-getData.html fails (Martin Robinson, Alejandro G. Castro) -Bug 54389 - [GTK] http/tests/misc/generated-content-inside-table.html does not work in the bots (Alejandro G. Castro) -Bug 54410 - SVG animation doesn't support attribute value 'inherit' (Dirk Schulze) -Bug 54414 - [GTK] testwebdatasource test fails in the bots (Alejandro G. Castro) -Bug 52880 - [GTK] Implement PlatformKeyboardEvent::getCurrentModifierState() (Carlos Garcia Campos) -Bug 54418 - r78499 causes assertion failure in http/tests/xmlhttprequest/cache-override.html (Mario Sanchez Prada) -Bug 54427 - [Chromium] Rendering error of spin buttons on layers (Kent Tamura) -Bug 52384 - Plumb mixed script URL to FrameLoaderClient (Adam Langley) -Bug 53104 - Intermittent crash in fast/files/read-blob-async.html on the GTK+ debug bots (Jian Li) -Bug 54437 - Web Inspector: move rest of the tests off old harness. (Pavel Feldman) -Bug 54449 - notImplemented() should behave identical in WebCore and WebKit2 (Balazs Kelemen) -Bug 34482 - Please add Greek translation of WebkitGTK+ (Christian Dywan) -Bug 51379 - Convert <keygen> option elements to a shadow DOM (Dominic Cooney) -Bug 52919 - Stop instantiating legacy editing Positions in VisiblePosition (Levi Weintraub) -Bug 54458 - [Gtk] Cleanup in the canvas tests (Zan Dobersek) -Bug 53436 - [Gtk] atk_text_get_caret_offset fails for list items (Mario Sanchez Prada) -Bug 53962 - [GTK] EventSender.keyDown does not support non-array modifier arguments (Martin Robinson) -Bug 52417 - Add EditorClient callbacks to override isDOMPasteAllowed and javaScriptCanAccessClipboard (Ryosuke Niwa) -Bug 53954 - Move the sputnik test suite out of fast/js/ (James Robinson) -Bug 54470 - [GTK] svg/text/select-textLength-spacing-squeeze-1.svg crashes due to ASSERT failing (Mario Sanchez Prada) -Bug 54474 - Pixel tests differences on 10.6.6 32bit vs. 64bit (Nikolas Zimmermann) -Bug 53453 - [Gtk] atk_text_get_selection/atk_text_set_selection fails for list items (Mario Sanchez Prada) -Bug 54491 - [cairo][canvas] Drawing from/into float rectangles with width or height in range 0 to 1 fails (Zan Dobersek) -Bug 54495 - Crash in EventHandler::sendContextMenuEventForKey (Emil A Eklund) -Bug 53984 - Remove orphan code from old parser (Adam Barth) -Bug 3812 - XMLHttpRequest: PUT, DELETE, HEAD and all other methods but POST actually do a GET (Sergio Villar Senin) -Bug 53989 - svg/custom/use-multiple-on-nested-disallowed-font.html sometimes fails an assertion in StyleSelectorParentPusher (Mario Sanchez Prada) -Bug 50918 - [GStreamer] media/video-zoom-controls.html fails (Philippe Normand) -Bug 25831 - [GTK] events missing when a document is (re)loaded (Mario Sanchez Prada) -Bug 53992 - fast/loader/onload-willSendRequest-null-for-frame.html times out in GTK 32-bit debug bot (Mario Sanchez Prada) -Bug 53995 - editing/selection/end-of-document.html is failing in the GTK 64-bit debug bot (Mario Sanchez Prada) -Bug 34543 - [Gtk] Please add Hungarian translation (Christian Dywan) -Bug 44784 - [GTK] fast/history/history-subframe-with-name.html fails with GTK DRT (Martin Robinson) -Bug 54517 - Ensure loading has stopped in HistoryController::goToItem (Charlie Reis) -Bug 54011 - [GTK] Fix after r77874, m_isConnected is initialized before the socket is opened (Alejandro G. Castro) -Bug 54014 - [GTK] Incorrect assertion in WorkQueueGtk, we need to register more than one handle (Alejandro G. Castro) -Bug 54015 - [GTK] Avoid WebProcessMain compilation, we are used a gtk specific main (Alejandro G. Castro) -Bug 39168 - Canvas: 2d.fillStyle.parse.system.html fails (Andreas Kling) -Bug 52997 - [GTK] DRT's TextInputController is unimplemented on GTK (Carlos Garcia Campos) -Bug 49414 - Implement ECMAScript I18N APIs (proposed) (Nebojsa Ciric) -Bug 54537 - [Gtk] Add support for layoutTestController.setWillSendRequestClearHeader (Sergio Villar Senin) -Bug 54033 - [GTK] DRT needs an implementation of LayoutTestController.setIconDatabaseEnabled (Martin Robinson) -Bug 54035 - [GTK] Remove the last remnants of the Mozilla theme drawing code (Martin Robinson) -Bug 53529 - [fileapi] Add support for filesystem: URI handling (Adam Klein) -Bug 54557 - [GTK] libsoup critical warnings (Philippe Normand) -Bug 54057 - [GTK] Build break with 2.18.3 (Ryuan Choi) -Bug 50489 - Move DocumentWriter to DocumentLoader (Nate Chapin) -Bug 53898 - Add built-in decoder for UTF-8 for improved performance (Darin Adler) -Bug 54078 - [GTK] Add WebGraphicsContext stub to the compilation (Alejandro G. Castro) -Bug 54080 - [GTK] Implement UpdateChunk, ChunkedUpdateDrawingArea/Proxy classes for WebKit2 (Chandra Vallala <chandra.vallala@motorola.com> and Alejandro G. Castro) -Bug 54081 - [GTK] Implement WKBaseGtk API for Webkit2 (Chandra Vallala <chandra.vallala@motorola.com> and Alejandro G. Castro) -Bug 54600 - [PATCH] GTK documentation fails to build due to changed paths (Robert Ancell) -Bug 42833 - Brazilian Portuguese Translation Update (Christian Dywan) -Bug 50518 - [GTK] media/controls-without-preload.html is flacky on 32-bits Debug (Philippe Normand) -Bug 54106 - frames/flattening/iframe-flattening-crash.html fails on GTK. (Yael Aharon) -Bug 54622 - Rename Position::node() to Position::deprecatedNode() (Ryosuke Niwa) -Bug 54626 - [GTK] accessibility/canvas-fallback-content.html is failing on GTK bots (Mario Sanchez Prada) -Bug 54627 - [GStreamer] URI queries support in webkitwebsrc (Andoni Morales Alastruey) -Bug 54628 - [GStreamer] Add 'location' property in webkitwebsrc (Andoni Morales Alastruey) -Bug 54117 - Replace static_cast<HTMLElement*> with toHTMLElement (Yael Aharon) -Bug 54631 - [GTK] media/video-controls-in-media-document.html potentially flaky (Philippe Normand) -Bug 53991 - fast/frames/sandboxed-iframe-storage.html is flaky (Mario Sanchez Prada) -Bug 54637 - [GTK] media/video-display-toggle.html is flaky on debug bots (Philippe Normand) -Bug 44400 - Attached is the Bulgarian translation of WebKit Gtk (Christian Dywan) -Bug 30580 - [GTK] Failing canvas security tests (Sergio Villar Senin) -Bug 46455 - [l10n] Indonesian translation (Christian Dywan) -Bug 52090 - [Soup] ResourceHandleSoup does not ever call didSendData for file uploads (Martin Robinson) -Bug 54140 - [GStreamer] Video player sets system volume to 100% (Philippe Normand) -Bug 48510 - [GTK] Implement WebEventFactory, WebErrors classes for WebKit2 (Amruth Raj <amruthraj@motorola.com> and Ravi Phaneendra Kasibhatla) -Bug 54592 - [GTK] r78718 introduced some assertion failures in some HTTP tests (Martin Robinson) -Bug 51587 - [GTK] Remove mandatory Enchant dependency (Ryuan Choi) -Bug 53125 - [GTK] LayoutTests/media/audio-mpeg4-supported.html fails (Philippe Normand) -Bug 54157 - [GTK] Default error page is interfering with tests which require failed loads (Martin Robinson) -Bug 51602 - [GStreamer] wrong media duration report in media/controls-after-reload.html (Philippe Normand) -Bug 53146 - [GTK] Combo boxes should emit object:selection-changed even when collapsed (Philippe Normand, Mario Sanchez Prada) -Bug 53487 - [Gtk] No need to set text encoding in the provisional phase (Joone Hur) -Bug 53667 - [GTK] fast/history/timed-refresh-in-cached-frame.html fails after r77355 (Philippe Normand) -Bug 54185 - [GTK] Reset GTK' DRT's AccessibilityController to consistent value before every test (Mario Sanchez Prada) -Bug 53680 - [GTK] fast/frames/sandboxed-iframe-scripting.html is flaky (Philippe Normand) -Bug 53169 - Web Inspector: move InspectorController's methods from InspectorAgent to InspectorController (Ilya Tikhonovsky) -Bug 53683 - [GTK] Flaky websocket tests on 32-bits Release (Philippe Normand) -Bug 54198 - [GTK] Log signals from AtkDocument interface also in AccessibilityController (Mario Sanchez Prada) -Bug 36340 - Arabic translation (Christian Dywan) -Bug 54210 - [GTK] fast/text/atsui* tests failing on 32-bit Debug (Philippe Normand) -Bug 54212 - [GTK] fast/text/international/hindi-whitespace.html fails (Philippe Normand) -Bug 50126 - Fallback content in canvas element not focusable (Dominic Mazzoni) -Bug 53716 - JSC::Bindings m_rootObject->isValid() assert fails when running layout tests (Michael Saboff, Martin Robinson) -Bug 54231 - [GDOM] Video element needs proper wrapping (Gustavo Noronha Silva) -Bug 53213 - Refactoring: Extract TextCheckerClient from EditorClient (MORITA Hajime) -Bug 54244 - Convert the line box tree to floating point and eliminate font rounding hacks (David Hyatt) -Bug 53733 - Timers can fire after a frame has been put into the page cache (Sergio Villar Senin) -Bug 46567 - [l10n] Polish translation of WebKitGTK+ (Christian Dywan) -Bug 54260 - HTML5 <details> and <summary>: localized text (Luiz Agostini) -Bug 53673 - [GTK] fast/files/workers/worker-read-blob-async.html is flaky (Philippe Normand) -Bug 26108 - French translation for Webkit/GTK (Christian Dywan) -Bug 53247 - [GTK] media/audio-delete-while-slider-thumb-clicked.html is flaky (Philippe Normand) - - - -================= -WebKitGTK+ 1.3.11 -================= - -What's new in WebKitGTK+ 1.3.11? - - - Add a beginDragWithFiles implementation for the GTK+ event sender. - - ResourceHandleSoup do not wait for streams to close to issue - didFinishLoading. - - Move the request/cache code to libsoup. - - A11y bugfixes. - - Many other bugfixes. - -================= -WebKitGTK+ 1.3.10 -================= - -What's new in WebKitGTK+ 1.3.10? - - - Port form control theming code to GtkStyleContext. - - Add a new 'make jsc' target to build only JavaScriptCore and the jsc binary. - - Initial support for drag-and-drop file uploads. - - WOFF font face support. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.9 -================ - -What's new in WebKitGTK+ 1.3.9? - - - Compilation fixes for the final GTK+ 2.91.7 release. - -================ -WebKitGTK+ 1.3.8 -================ - -What's new in WebKitGTK+ 1.3.8? - - - New WebKitWebPluginDatabase and WebKitWebPlugin classes for plugin - management. - - The usual fixes for GTK+ 3.x API changes. We are still using the - old GtkStyle APIs, that should be gone by the next release. - - Add support for Mozilla-style JS fullscreen API. - - Add support for the viewport metatag. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.7 -================ - -What's new in WebKitGTK+ 1.3.7? - - - Fix error pages template's not being filled properly. - - Fix context menu activation through keyboard. - - Add automatic garbage collection for most GObject DOM objects (all - those that are actually in the DOM tree). This gets rid of most of - the leaks when using the bindings. - - Add an Inspector API to inspect a DOM node. - - Tons of a11y bugfixes. - - Tons of fixes for the in-tree SoupCache, should work much better - now. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.6 -================ - -What's new in WebKitGTK+ 1.3.6? - - - Update to compile with GTK+ 3.x 2.91.4. - - Many, many other bugfixes. - -================ -WebKitGTK+ 1.3.5 -================ - -What's new in WebKitGTK+ 1.3.5? - - - Add a HTTP cache implementation. This will be eventually - integrated in libsoup itself, but for now it can be accessed from - WebKit through the WebKitSoupCache APIs. - - Updated to work with GTK+ 3.x 2.91.1. - - Add frame-flattening support, used by some mobile browser sto - merge all frames in a page into a continuous view. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.4 -================ - -What's new in WebKitGTK+ 1.3.4? - - - File reader/writer APIs are now enabled. - - The javascript JIT is now enabled by default on ARM. - - Clipboard data is no longer lost when the process exists. - - Image DnD support. - - GSettings support to save/restore Web Inspector settings. - - Add WebSocket support, now enabled by default. - - Added WebKitWebView::frame-created signal, emitted when a frame - other than the main frame is created in a view. - - Added WebKitWebView::view-mode, holding information about how the - view is being presented. See the property documentation and - http://www.w3.org/TR/view-mode/ for details. - - Fullscreen support for HTML5 media player. - - Identify as WebKit/Safari in Google domains when - enable-site-specific-quirks is activated. Otherwise we'll get a - degraded user experience due to their poor UA detection - algorihtms. - - Added simple media playback options in the context menu for the - media elements. - - Update (and require) to work with gobjet-introspection 0.9.5. - - Updated to work with GTK+ 3.x 2.90.7 when in GTK+ 3.x mode. - - Make --disable-jit actually work. - - Add --enable-opcode-stats configure flag. When enabled, statistics - about opcode generation will be printed by JSC. - - Many a11y fixes, particularly in the AtkText interface. - - CSS box shadows render much faster in many cases. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.3 -================ - -What's new in WebKitGTK+ 1.3.3? - - - Fixes to compile with latest GTK+ 2.90.x. - - Add support for dropping content in WebKitWebViews. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.2 -================ - -What's new in WebKitGTK+ 1.3.2? - -*** This release is an ABI break *** - -The library has been renamed to libwebkitgtk, so you'll need to -recompile your applications when upgrading to 1.3.2. - - - Add support for GTK+ 3.x. A new configure flag, --with-gtk, has - been added, which allows to control which GTK+ version you want to - build against. The default value is '2.0', for GTK+ 2.x - support. With '3.0' the library will be compiled against GTK+ 3.x - (2.90.4 or newer required). In the 3.x mode the .pc file has been - renamed from webkit-X.X.pc to webkitgtk-X.X.pc, so you'll need to - update your autotools setup accordingly. - - Many fixes for the DOM bindings, including support to dispatch - events to any Node through webkit_event_target_dispatch_event. - - Added a 'inner-node' property to WebKitHitTestResult, carrying the - DOM node where the hit test happened. - - Many DnD fixes, including a fix for the infamous hang-of-death - while dragging the mouse. - - Support for <input type="range">. - - Many other bugfixes. - -================ -WebKitGTK+ 1.3.1 -================ - -What's new in WebKitGTK+ 1.3.1? - - - Initial support for GObject DOM bindings. Present in this release - is a substantial subset of the basic DOM APIs (Document, HTML - elements, Node, etc) including access to the DOM events through - GObject signals. Keep in mind that all the APIs are still - unstable, and will probably be subject to changes before the next - stable release. - - Add webkit_web_back_forward_list_clear, to completely clear the - BackForward list. - - Lots of improvements in DOM clipboard and drag-drop access. - - Add support for GTK+ key themes. - - Significant improvements in a11y, including improved role support - and many bugfixes. - -================= -WebKitGTK+ 1.1.90 -================= - -What's new in WebKitGTK+ 1.1.90? - - - Display server side messages during HTTP auth, since they - sometimes contain important information for the authentication - process. - - Reduce creation time for WebKitWebView widgets by reusing - dictionary structs used for spell-checking instead of creating a - new one for each instance. - - Implement WebKitWebView::geolocation-policy-decision-requested, - emitted when a frame inside the WebView wants to get its position - through geolocation. - - Add WebKitWebSettings::enable-spatial-navigation to control - whether Spatial Navigation is enabled or not. Spatial Navigation - allows the user to move through the elements in a page using only - the keyboard; this is similar to caret browsing, but with less - focus on accessibility since instead of presenting the exact - layout of the page to the user a more "logical" way of browsing - through its contents is allowed. A specification of this feature - can be seen at - http://www.w3.org/TR/WICD/#current-focus-point-algorithm - - Add a new build option, --enable-fast-mobile-scrolling. At the - moment this only disables fixed backgrounds when there are no - other fixed elements in a page, since they generally make - scrolling very slow and thus are a big burden in some mobile - environments. - - GTK+ Input Method support has received a big overhaul, and most of - them should work pretty well now. - - All known redraw issues in the plugin support (especially with the - Java plugin) have been fixed. - - Various fixes to the MediaPlayer code to improve responsiveness - and avoid lagging on position reporting. - - Lots of bugfixes and other improvements. - -================= -WebKitGTK+ 1.1.22 -================= - -What's new in WebKitGTK+ 1.1.22? - - - Preliminary support for Java plugins. Basic functionality is - there, but there are still a few rough edges. Also newly - introduced is a new WebKitWebSetting, 'enable-java-applet', which - controls whether WebKit will recognize the non-standard <applet> - tag. - - Add WebKitWebSettings::auto-resize-window; when enabled, WebKit - will act upon the DOM methods that change the size and/or position - of the window containing a WebView (window.{moveTo, resizeTo, - moveBy, resizeBy}). - - Add WebKitWebSettings::enable-file-access-from-file-uris; when - enabled, each file:// URI will be assigned its own security - domain. - - Lots of bugfixes, especially in the PageCache support. - -================= -WebKitGTK+ 1.1.21 -================= - -What's new in WebKitGTK+ 1.1.21? - - - New custom-made GStreamer source element that uses the WebCore - network layer to download media data; this makes sure any headers - and cookies will automatically get added when making requests. - - WebKit will now let libsoup know who the first party for a given - message is, making it possible to implement accept/deny policies in - Soup. - - The usual stream of fixes, and improvements - -================= -WebKitGTK+ 1.1.20 -================= - -What's new in WebKitGTK+ 1.1.20? - - - Fixes to the HTML5 Media Player infrastructure to satisfy sites - that require cookies, and Referer to be sent; this makes - WebKitGTK+ able to support the new HTML5 support added to Youtube, - and Vimeo, for instance. - - Windowless plugin support is finally here, making it possible to - get plugins to behave on various web pages. - - The usual stream of fixes, and improvements - -================= -WebKitGTK+ 1.1.19 -================= - -What's new in WebKitGTK+ 1.1.19? - - - Improvements to AtkText implementation - - RGBA colormap support has been added - - Improvements to the HTML5 media player - - Crashes related to clipboard handling, which were hitting many - users and seemed to be random have been fixed - -================= -WebKitGTK+ 1.1.18 -================= - -What's new in WebKitGTK+ 1.1.18? - - - Add methods to set and get a cache model in WebKitGTK+. We offer - two possibilites: document viewer (no caches are used) and browser - (similar to the previous defaults). - - Add WebKitWebSettings::enable-page-cache. Controls whether the - Page Cache is enabled or not. For details about what the page - cache is and does see - http://webkit.org/blog/427/webkit-page-cache-i-the-basics/ - The page cache is disabled by default, since the gtk+ port still - presents some small bugs when it's enabled. - - Add WebKitWebSettings::enable-site-specific-quirks. Controls - whether a series of page-specific workarounds are used by WebKit. - - Use Content-Encoding support available in libsoup 2.28.2 and - newer. - - Add WebKitWebSettings::enable-default-context-menu. Controls - whether webkitgtk+ will show a default context menu on right click - in the view. Note that even with the property set to FALSE right - clicks can be handled by the page, either by actions or by - ad-hoc in-page context menus. - - Make the WebKitWebView::icon-loaded signal carry a string with the - favicon's URI. This is an API break, but the signal already had a - broken signature and was useless anyway, so it's extremely - unlikely that anybody was using it. Also, add the 'icon-uri' - property to the view, holding the URI for its current favicon. - - Respect Content-Disposition header in downloads (fixes downloads - in gmail). - - Various accessibility improvements. - - Many bugfixes. - -================= -WebKitGTK+ 1.1.17 -================= - -What's new in WebKitGTK+ 1.1.17? - - - New APIs to show and close the web inspector and to inspect an - element at the given coordinates. - - New property, WebKitWebSettings::tab-key-cycles-through-elements, - controls whether TAB is simply interpreted as another keystroke or - is used to cycle through the elements in a page. - - Many a11y improvements. - - The usual amount of random bugfixes. - -================= -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 -================= - -What's new in WebKitGTK+ 1.1.15? - - - New API to get the subresources from a WebKitWebDataSource. This - provides a way of accessing all the resources that compose the - view to which the data source is attached. - - A new function, webkit_web_view_get_hit_test_result, which allows - to do a 'hit test' on the coordinates specified by a mouse - event. A hit test provides context information about that point in - the document, like whether it's an image, a link, an input box, - etc. - - Our DumpRenderTree implementation now supports eventSender, which - allows us to run many more LayoutTests and make WebKitGTK+ more - stable and feature-complete. - - JSNES runs 6x faster: http://trac.webkit.org/changeset/48573 - - The usual small improvements and bugfixes. - -================= -WebKitGTK+ 1.1.14 -================= - -What's new in WebKitGTK+ 1.1.14? - - - New API has been added to WebKitWebFrame to allow applying - scrollbars policy as requested by web applications to the main - frame; if the parent of the WebKitWebView widget is a - GtkScrolledWindow, policy is applied by the default handler. - - A new API has been added to help dealing with the various - resources that are downloaded to compose the final rendering; you - can now obtain the source code for a page that is loaded, for - instance. - - A new property has been added to WebKitWebView to allow setting it - to "View Source" mode. - - HTML5 database has gained API to manage the individual databases, - including usage and quota. - - A new signal `resource-request-starting' has been added to the - WebKitWebView to allow modification of outgoing requests for every - resource. - - Connection limit has been increased to 60 total connections, 6 - per-host, matching other browsers more closely; this seems to have - improved loading time of some sites. - - Undo/redo support has been added to editable texts. - - The usual stream of small improvements and bug fixes. - -================= -WebKitGTK+ 1.1.13 -================= - -What's new in WebKitGTK+ 1.1.13? - - - GNOME Keyring support was removed in favor of the new Password - Manager soup feature; to get exactly the same behavior, - applications should use SoupPasswordManagerGNOME. This requires - libsoup 2.27.91 or newer. - - Several accessibility improvements, including support for testing - the a11y infrastructure in our layout tests. - - You can now enable/disable HTML5 offline application cache using a - new setting added to WebKitWebSettings. - - Drag support has landed, meaning you can start playing with HTML5 - drag and drop support; drop support is still missing. - - A crash with scripts closing windows has been fixed. - - Image cursors support has been added. - - The usual stream of small improvements and bug fixes. - -================= -WebKitGTK+ 1.1.12 -================= - -What's new in WebKitGTK+ 1.1.12? - - - Fix WebKitSoupAuthDialog to only save passwords in gnome-keyring - (if enabled) when authentication succeeds. - - Implement a proper size_request method for WebKitWebView. The - widget will request the size of the whole page as its size - requisition. - - Many a11y improvements. - - The usual amount of other misc fixes. - - WEBKIT_DEBUG variable now accepts channel names in any case - again. - -================= -WebKitGTK+ 1.1.11 -================= - -What's new in WebKitGTK+ 1.1.11? - - - WebKit has got a new feature - a XSS auditor, that should improve - security; this feature is still experimental, and disabled by - default, but applications can enable it using the setting. - - The hackish content sniffing code that was beig used to avoid - pages requesting downloads instead of displaying content has been - replaced by usage of a new Soup feature, which implements proper - content sniffing. - - More accessibility work, including fixes for problems which were - critical for a possible GNOME 2.28 release. - - Pasting rich text from other browsers should now work as expected. - - The usual amount of misc fixes. - -================= -WebKitGTK+ 1.1.10 -================= - -What's new in WebKitGTK+ 1.1.10? - - - WebKitNetworkRequest has now GObject properties for its URI and - the SoupMessage that backs it up. - - Fix AtkText methods get_selection and get_n_selections to not use - the global selection but only the selection that belongs to the - object being used. - - Fix a crasher when emitting the a11y signal 'text-caret-moved' in - some situations with debug builds. - -================ -WebKitGTK+ 1.1.9 -================ - -What's new in WebKitGTK+ 1.1.9? - - - Scrolling once again received a lot of love, and many subtle - problems and bugs were killed, and we now get correct behavior in - acid2; a number of smaller improvements are in the queue. - - Accessibility keeps gaining better support. On this release a lot - of work was done on the AtkText interface implementation. - - WebKitNetworkRequest now carries with it all the information - regarding the request, not only the URI. This means you will no - longer miss headers such as Referer when passing NetworkRequest - objects from a callback to webkit_web_frame_load_request. - -================ -WebKitGTK+ 1.1.8 -================ - -What's new in WebKitGTK+ 1.1.8? - - - We found out that WebKitWebHistoryItems were being kept with a - reference count of 2 instead of 1 as they should; nobody should be - relying on that, but if you hit reference counting problems with - items you were creating yourself, this is for you. - - You can now copy images from the web page to the clipboard. - - Improvements were made to the Plugin handling code. - - Scroll events will now be correctly reported to web applications. - - You can now embed arbitrary widgets as if it was a plugin, with - the new "create-plugin-widget" signal. - - The atk_text_get_text_{at,after,before}_offset methods are now - implemented for all boundary types except LINE_AFTER and - LINE_BEFORE. - - The usual stream of minor fixes and improvements, as always. - -================ -WebKitGTK+ 1.1.7 -================ - -What's new in WebKitGTK+ 1.1.7? - - - This release includes a security fix: - SVGList::insertItemBefore would not perform a bounds check on the - index it was provided, potentially leading to a buffer overflow. - - New frame loading properties supersede various load-* signals, and - are also accessible in the WebView, for convenience, making this - API saner. - - JIT is now supported for X86-64 on Linux, and enabled by default! - - A regression on webkit_web_view_load_string has been fixed, making - it work correctly again when the document uses encodings which may - use more than 1 byte per character. - - Yet more work has been done to the ATK support, caret browsing - support improvements in particular. - - Filenames suggested by the Download functionality now correctly - use the filename given by the host, if available. - - Build fixes for IA64, and AMD64 - - gtk-doc support has also improved, and you should now be able to - cd WebKit/gtk/docs and type make docs, if you --enable-gtk-doc on - configure, as long as you build with srcdir == builddir. - - More crashes and other bugs fixed, and small improvements made - under the hood. - -================ -WebKitGTK+ 1.1.6 -================ - -What's new in WebKitGTK+ 1.1.6? - - - Several ATK support additions and fixes got landed, with many - roles being now implemented, providing better accessibility. - - Caret browsing is now available. - - Spelling check has been implemented using Enchant; the API is - still lacking, and some of the functionality still needs to be - improved, though. - - Error reporting is now available, with default error pages, and - API that allows the application to override the default behavior; - localization of those pages is still not supported, but planned. - - More crashes and other bugs fixed. - -================ -WebKitGTK+ 1.1.5 -================ - -What's new in WebKitGTK+ 1.1.5? - - - Added gtk-doc support to the build system. It is not fully - integrated yet, so some manual tweaking is still needed. - - Minimum required GTK+ version is now 2.10. - - Added l10n support with gettext. Translations are stored in - WebKit/gtk/po/. - - Many improvements to the ATK support. It's good enough to provide - a basic user experience with Accerciser now, but we'll keep - improving it in further releases. - - New printing API that allows applications to control and monitor - the printing process, when requested by javascript or started by - the user. - - Many bugfixes. - -================ -WebKitGTK+ 1.1.4 -================ - -What's new in WebKitGTK+ 1.1.4? - - - WebKitWebView gained uri and title properties, deprecating the - usage of the title-changed signal. - - Basic functionality for HTML5 media tags has been achieved; there - are many unimplented methods, and rough edges still, though. - - Font rendering received quite some love, with layouting, and - memory handling fixes, and at least one less crash. - - A new signal, new-window-policy-decision-requested, has been added - to WebKitWebView, that makes it possible for the application to - correctly decide what to do when new windows are requested. - - A bug that made tooltips for consecutive links not update their - location was fixed. - - Several improvements were made to the HTTP backend, including - making it more robust when talking to servers which send bad - Content-Type headers. - - WebKitWebView now uses the GtkBinding system to handle key events, - which means that the user is now able to customize the keys used - for various operations, and that many subtle bugs have been fixed. - -================ -WebKitGTK+ 1.1.3 -================ - -The 1.1.3 release was just a quick bug fix release, because we made a -mistake in library versioning. - -================ -WebKitGTK+ 1.1.2 -================ - -What's new in WebKitGTK+ 1.1.2? - - - Added support for downloads: a new signal, 'download-requested', - will be emitted by WebKit when a dowload is requested. On top of - that, the download process has been encapsulated in a new object, - WebKitDownload, which allows the user to control it or to start - new downloads from the client side. - - Added webkit_web_view_get_encoding to get the automatic encoding - of the current page. - - Added GObject properties for 'encoding' and 'custom-encoding'. - - Added 'javascript-profiling-enabled' property to the WebInspector, - which allows to enable and disable the profiling functionality. - - Added API to create and add history items to WebKit's history. - - Improved debugging support with WEBKIT_DEBUG environment - variable. Most of the settings will only give useful output for - debug builds, but WEBKIT_DEBUG=Network will log all HTTP traffic - form libsoup to console. See WebCore/platform/gtk/LoggingGtk.cpp - for all the options available. - - Lots of bugfixes. - -================ -WebKitGTK+ 1.1.1 -================ - -What's new in WebKitGTK+ 1.1.1? - - - ABI compatibility with 1.0.3 was broken, so you will need to - recompile your application against 1.1.1 - - Support for the CURL backend was dropped, libsoup is the only HTTP - backend now. - - webkit_get_default_session, to get the SoupSession used internally - by WebKit. - - 'create-web-view' signal, emitted when the creation of a new - window is requested. - - 'navigation-policy-decision-requested' signal, emitted when a - navigation to another page is requested. - - 'mime-type-policy-decision-requested' signal, emitted each time - WebKit is about to show a URI with a given MIME type. - - Support for the Web Inspector - (see http://webkit.org/blog/197/web-inspector-redesign/) - - HTTP authentication support, with optional gnome-keyring storage. - - New load functions: webkit_web_view_open, webkit_web_view_load_uri - and webkit_web_view_load_request. The old - webkit_web_view_load_string and webkit_web_view_load_html_string - are now deprecated. - - webkit_web_view_reload_bypass_cache - - webkit_web_view_{get,set}_custom_encoding, to override the - encoding of the current page. - - Improved stability and lots of bugfixes. - diff --git a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h deleted file mode 100644 index bd673554b..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (C) 2011 Igalia, S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef AcceleratedCompositingContext_h -#define AcceleratedCompositingContext_h - -#include "GraphicsLayer.h" -#include "GraphicsLayerClient.h" -#include "IntRect.h" -#include "IntSize.h" -#include "Timer.h" -#include "webkitwebview.h" -#include <wtf/PassOwnPtr.h> - -#if USE(TEXTURE_MAPPER) -#include "TextureMapperLayer.h" -#endif - -#if USE(TEXTURE_MAPPER_GL) -#include "GLContext.h" -#include "RedirectedXCompositeWindow.h" -#include "TextureMapperFPSCounter.h" -#endif - -#if USE(ACCELERATED_COMPOSITING) - -namespace WebKit { - -class AcceleratedCompositingContext : public WebCore::GraphicsLayerClient { - WTF_MAKE_NONCOPYABLE(AcceleratedCompositingContext); -public: - static PassOwnPtr<AcceleratedCompositingContext> create(WebKitWebView* webView) - { - return adoptPtr(new AcceleratedCompositingContext(webView)); - } - - virtual ~AcceleratedCompositingContext(); - void setRootCompositingLayer(WebCore::GraphicsLayer*); - void setNonCompositedContentsNeedDisplay(const WebCore::IntRect&); - void scheduleLayerFlush(); - void resizeRootLayer(const WebCore::IntSize&); - bool renderLayersToWindow(cairo_t*, const WebCore::IntRect& clipRect); - bool enabled(); - - // GraphicsLayerClient - virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time); - virtual void notifyFlushRequired(const WebCore::GraphicsLayer*); - virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& rectToPaint); - - void initialize(); - - enum CompositePurpose { ForResize, NotForResize }; - void compositeLayersToContext(CompositePurpose = NotForResize); - - void flushAndRenderLayers(); - bool flushPendingLayerChanges(); - void scrollNonCompositedContents(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset); - -private: - WebKitWebView* m_webView; - unsigned int m_layerFlushTimerCallbackId; - -#if USE(TEXTURE_MAPPER_GL) - OwnPtr<WebCore::RedirectedXCompositeWindow> m_redirectedWindow; - OwnPtr<WebCore::GraphicsLayer> m_rootLayer; - OwnPtr<WebCore::GraphicsLayer> m_nonCompositedContentLayer; - OwnPtr<WebCore::TextureMapper> m_textureMapper; - double m_lastFlushTime; - double m_redrawPendingTime; - bool m_needsExtraFlush; - WebCore::TextureMapperFPSCounter m_fpsCounter; - - void layerFlushTimerFired(); - void stopAnyPendingLayerFlush(); - static gboolean layerFlushTimerFiredCallback(AcceleratedCompositingContext*); - WebCore::GLContext* prepareForRendering(); - void clearEverywhere(); -#elif USE(TEXTURE_MAPPER) - WebCore::TextureMapperLayer* m_rootTextureMapperLayer; - OwnPtr<WebCore::GraphicsLayer> m_rootGraphicsLayer; - OwnPtr<WebCore::TextureMapper> m_textureMapper; -#endif - - AcceleratedCompositingContext(WebKitWebView*); -}; - -} // namespace WebKit - -#endif // USE(ACCELERATED_COMPOSITING) -#endif // AcceleratedCompositingContext_h diff --git a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp b/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp deleted file mode 100644 index 1ac385615..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp +++ /dev/null @@ -1,397 +0,0 @@ -/* - * Copyright (C) 2012 Igalia, S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "AcceleratedCompositingContext.h" - -#if USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) - -#include "CairoUtilities.h" -#include "Chrome.h" -#include "ChromeClientGtk.h" -#include "Frame.h" -#include "FrameView.h" -#include "GraphicsLayerTextureMapper.h" -#include "PlatformContextCairo.h" -#include "Settings.h" -#include "TextureMapperGL.h" -#include "TextureMapperLayer.h" -#include "webkitwebviewprivate.h" -#include <wtf/CurrentTime.h> - -#if USE(OPENGL_ES_2) -#include <GLES2/gl2.h> -#else -#include <GL/gl.h> -#endif - -#include <cairo.h> -#include <gdk/gdk.h> -#include <gtk/gtk.h> - -const double gFramesPerSecond = 60; - -// There seems to be a delicate balance between the main loop being flooded -// with motion events (that force flushes) and starving the main loop of events -// with flush callbacks. This delay is entirely empirical. -const double gScheduleDelay = (1.0 / (gFramesPerSecond / 3.0)); - -using namespace WebCore; - -namespace WebKit { - -AcceleratedCompositingContext::AcceleratedCompositingContext(WebKitWebView* webView) - : m_webView(webView) - , m_layerFlushTimerCallbackId(0) - , m_lastFlushTime(0) - , m_redrawPendingTime(0) - , m_needsExtraFlush(false) -{ -} - -static IntSize getWebViewSize(WebKitWebView* webView) -{ - GtkAllocation allocation; - gtk_widget_get_allocation(GTK_WIDGET(webView), &allocation); - return IntSize(allocation.width, allocation.height); -} - -void redirectedWindowDamagedCallback(void* data) -{ - gtk_widget_queue_draw(GTK_WIDGET(data)); -} - -void AcceleratedCompositingContext::initialize() -{ - if (m_rootLayer) - return; - - IntSize pageSize = getWebViewSize(m_webView); - if (!m_redirectedWindow) { - if (m_redirectedWindow = RedirectedXCompositeWindow::create(pageSize)) - m_redirectedWindow->setDamageNotifyCallback(redirectedWindowDamagedCallback, m_webView); - } else - m_redirectedWindow->resize(pageSize); - - if (!m_redirectedWindow) - return; - - m_rootLayer = GraphicsLayer::create(0, this); - m_rootLayer->setDrawsContent(false); - m_rootLayer->setSize(pageSize); - - // The non-composited contents are a child of the root layer. - m_nonCompositedContentLayer = GraphicsLayer::create(0, this); - m_nonCompositedContentLayer->setDrawsContent(true); - m_nonCompositedContentLayer->setContentsOpaque(!m_webView->priv->transparent); - m_nonCompositedContentLayer->setSize(pageSize); - if (core(m_webView)->settings()->acceleratedDrawingEnabled()) - m_nonCompositedContentLayer->setAcceleratesDrawing(true); - -#ifndef NDEBUG - m_rootLayer->setName("Root layer"); - m_nonCompositedContentLayer->setName("Non-composited content"); -#endif - - m_rootLayer->addChild(m_nonCompositedContentLayer.get()); - m_nonCompositedContentLayer->setNeedsDisplay(); - - // The creation of the TextureMapper needs an active OpenGL context. - GLContext* context = m_redirectedWindow->context(); - context->makeContextCurrent(); - - m_textureMapper = TextureMapperGL::create(); - static_cast<TextureMapperGL*>(m_textureMapper.get())->setEnableEdgeDistanceAntialiasing(true); - toTextureMapperLayer(m_rootLayer.get())->setTextureMapper(m_textureMapper.get()); - - scheduleLayerFlush(); -} - -AcceleratedCompositingContext::~AcceleratedCompositingContext() -{ - stopAnyPendingLayerFlush(); -} - -void AcceleratedCompositingContext::stopAnyPendingLayerFlush() -{ - if (!m_layerFlushTimerCallbackId) - return; - g_source_remove(m_layerFlushTimerCallbackId); - m_layerFlushTimerCallbackId = 0; -} - -bool AcceleratedCompositingContext::enabled() -{ - return m_redirectedWindow && m_rootLayer && m_textureMapper; -} - -bool AcceleratedCompositingContext::renderLayersToWindow(cairo_t* cr, const IntRect& clipRect) -{ - m_redrawPendingTime = 0; - - if (!enabled()) - return false; - - cairo_surface_t* windowSurface = m_redirectedWindow->cairoSurfaceForWidget(GTK_WIDGET(m_webView)); - if (!windowSurface) - return true; - - cairo_rectangle(cr, clipRect.x(), clipRect.y(), clipRect.width(), clipRect.height()); - cairo_set_source_surface(cr, windowSurface, 0, 0); - cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); - cairo_fill(cr); - - if (!m_layerFlushTimerCallbackId && (toTextureMapperLayer(m_rootLayer.get())->descendantsOrSelfHaveRunningAnimations() || m_needsExtraFlush)) { - m_needsExtraFlush = false; - double nextFlush = max((1 / gFramesPerSecond) - (currentTime() - m_lastFlushTime), 0.0); - m_layerFlushTimerCallbackId = g_timeout_add_full(GDK_PRIORITY_EVENTS, 1000 * nextFlush, reinterpret_cast<GSourceFunc>(layerFlushTimerFiredCallback), this, 0); - } - - return true; -} - -GLContext* AcceleratedCompositingContext::prepareForRendering() -{ - if (!enabled()) - return 0; - - GLContext* context = m_redirectedWindow->context(); - if (!context) - return 0; - - if (!context->makeContextCurrent()) - return 0; - - return context; -} - -void AcceleratedCompositingContext::compositeLayersToContext(CompositePurpose purpose) -{ - GLContext* context = prepareForRendering(); - if (!context) - return; - - const IntSize& windowSize = m_redirectedWindow->size(); - glViewport(0, 0, windowSize.width(), windowSize.height()); - - if (purpose == ForResize) { - glClearColor(1, 1, 1, 0); - glClear(GL_COLOR_BUFFER_BIT); - } - - m_textureMapper->beginPainting(); - toTextureMapperLayer(m_rootLayer.get())->paint(); - m_fpsCounter.updateFPSAndDisplay(m_textureMapper.get()); - m_textureMapper->endPainting(); - - context->swapBuffers(); -} - -void AcceleratedCompositingContext::clearEverywhere() -{ - GLContext* context = prepareForRendering(); - if (!context) - return; - - const IntSize& windowSize = m_redirectedWindow->size(); - glViewport(0, 0, windowSize.width(), windowSize.height()); - glClearColor(1, 1, 1, 1); - glClear(GL_COLOR_BUFFER_BIT); - - context->swapBuffers(); - - // FIXME: It seems that when using double-buffering (and on some drivers single-buffering) - // and XComposite window redirection, two swap buffers are required to force the pixmap - // to update. This isn't a problem during animations, because swapBuffer is continuously - // called. For non-animation situations we use this terrible hack until we can get to the - // bottom of the issue. - if (!toTextureMapperLayer(m_rootLayer.get())->descendantsOrSelfHaveRunningAnimations()) { - context->swapBuffers(); - context->swapBuffers(); - } -} - -void AcceleratedCompositingContext::setRootCompositingLayer(GraphicsLayer* graphicsLayer) -{ - // Clearing everywhere when turning on or off the layer tree prevents us from flashing - // old content before the first flush. - clearEverywhere(); - - if (!graphicsLayer) { - stopAnyPendingLayerFlush(); - - // Shrink the offscreen window to save memory while accelerated compositing is turned off. - if (m_redirectedWindow) - m_redirectedWindow->resize(IntSize(1, 1)); - m_rootLayer = nullptr; - m_nonCompositedContentLayer = nullptr; - m_textureMapper = nullptr; - return; - } - - // Add the accelerated layer tree hierarchy. - initialize(); - if (!m_redirectedWindow) - return; - - m_nonCompositedContentLayer->removeAllChildren(); - m_nonCompositedContentLayer->addChild(graphicsLayer); - - stopAnyPendingLayerFlush(); - - // FIXME: Two flushes seem necessary to get the proper rendering in some cases. It's unclear - // if this is a bug with the RedirectedXComposite window or with this class. - m_needsExtraFlush = true; - scheduleLayerFlush(); - - m_layerFlushTimerCallbackId = g_timeout_add_full(GDK_PRIORITY_EVENTS, 500, reinterpret_cast<GSourceFunc>(layerFlushTimerFiredCallback), this, 0); -} - -void AcceleratedCompositingContext::setNonCompositedContentsNeedDisplay(const IntRect& rect) -{ - if (!m_rootLayer) - return; - if (rect.isEmpty()) { - m_rootLayer->setNeedsDisplay(); - return; - } - m_nonCompositedContentLayer->setNeedsDisplayInRect(rect); - scheduleLayerFlush(); -} - -void AcceleratedCompositingContext::resizeRootLayer(const IntSize& newSize) -{ - if (!enabled()) - return; - - if (m_rootLayer->size() == newSize) - return; - - m_redirectedWindow->resize(newSize); - m_rootLayer->setSize(newSize); - - // If the newSize exposes new areas of the non-composited content a setNeedsDisplay is needed - // for those newly exposed areas. - FloatSize oldSize = m_nonCompositedContentLayer->size(); - m_nonCompositedContentLayer->setSize(newSize); - - if (newSize.width() > oldSize.width()) { - float height = std::min(static_cast<float>(newSize.height()), oldSize.height()); - m_nonCompositedContentLayer->setNeedsDisplayInRect(FloatRect(oldSize.width(), 0, newSize.width() - oldSize.width(), height)); - } - - if (newSize.height() > oldSize.height()) - m_nonCompositedContentLayer->setNeedsDisplayInRect(FloatRect(0, oldSize.height(), newSize.width(), newSize.height() - oldSize.height())); - - m_nonCompositedContentLayer->setNeedsDisplayInRect(IntRect(IntPoint(), newSize)); - compositeLayersToContext(ForResize); - scheduleLayerFlush(); -} - -void AcceleratedCompositingContext::scrollNonCompositedContents(const IntRect& scrollRect, const IntSize& scrollOffset) -{ - m_nonCompositedContentLayer->setNeedsDisplayInRect(scrollRect); - scheduleLayerFlush(); -} - -gboolean AcceleratedCompositingContext::layerFlushTimerFiredCallback(AcceleratedCompositingContext* context) -{ - context->layerFlushTimerFired(); - return FALSE; -} - -void AcceleratedCompositingContext::scheduleLayerFlush() -{ - if (!enabled()) - return; - - if (m_layerFlushTimerCallbackId) - return; - - // We use a GLib timer because otherwise GTK+ event handling during dragging can - // starve WebCore timers, which have a lower priority. - double nextFlush = max(gScheduleDelay - (currentTime() - m_lastFlushTime), 0.0); - m_layerFlushTimerCallbackId = g_timeout_add_full(GDK_PRIORITY_EVENTS, nextFlush * 1000, reinterpret_cast<GSourceFunc>(layerFlushTimerFiredCallback), this, 0); -} - -bool AcceleratedCompositingContext::flushPendingLayerChanges() -{ - m_rootLayer->flushCompositingStateForThisLayerOnly(); - m_nonCompositedContentLayer->flushCompositingStateForThisLayerOnly(); - return core(m_webView)->mainFrame()->view()->flushCompositingStateIncludingSubframes(); -} - -void AcceleratedCompositingContext::flushAndRenderLayers() -{ - if (!enabled()) - return; - - Frame* frame = core(m_webView)->mainFrame(); - if (!frame || !frame->contentRenderer() || !frame->view()) - return; - frame->view()->updateLayoutAndStyleIfNeededRecursive(); - - if (!enabled()) - return; - - GLContext* context = m_redirectedWindow->context(); - if (context && !context->makeContextCurrent()) - return; - - if (!flushPendingLayerChanges()) - return; - - m_lastFlushTime = currentTime(); - compositeLayersToContext(); - - // If it's been a long time since we've actually painted, which means that events might - // be starving the main loop, we should force a draw now. This seems to prevent display - // lag on http://2012.beercamp.com. - if (m_redrawPendingTime && currentTime() - m_redrawPendingTime > gScheduleDelay) { - gtk_widget_queue_draw(GTK_WIDGET(m_webView)); - gdk_window_process_updates(gtk_widget_get_window(GTK_WIDGET(m_webView)), FALSE); - } else if (!m_redrawPendingTime) - m_redrawPendingTime = currentTime(); -} - -void AcceleratedCompositingContext::layerFlushTimerFired() -{ - m_layerFlushTimerCallbackId = 0; - flushAndRenderLayers(); -} - -void AcceleratedCompositingContext::notifyAnimationStarted(const GraphicsLayer*, double time) -{ - -} -void AcceleratedCompositingContext::notifyFlushRequired(const GraphicsLayer*) -{ - -} - -void AcceleratedCompositingContext::paintContents(const GraphicsLayer*, GraphicsContext& context, GraphicsLayerPaintingPhase, const IntRect& rectToPaint) -{ - context.save(); - context.clip(rectToPaint); - core(m_webView)->mainFrame()->view()->paint(&context, rectToPaint); - context.restore(); -} - -} // namespace WebKit - -#endif // USE(ACCELERATED_COMPOSITING) && USE(TEXTURE_MAPPER_GL) diff --git a/Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp b/Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp deleted file mode 100644 index c2fe809ed..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2011 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -// Use this file to assert that various WebKit API enum values continue -// matching WebCore defined enum values. - -#include "config.h" - -#include "DumpRenderTreeSupportGtk.h" -#include "EditingBehaviorTypes.h" -#include "ErrorsGtk.h" -#include "FindOptions.h" -#include "FrameLoaderTypes.h" -#include "PasteboardHelper.h" -#include "webkiterror.h" -#include "webkitwebnavigationaction.h" -#include "webkitwebsettings.h" -#include "webkitwebview.h" -#include <wtf/Assertions.h> - -#define COMPILE_ASSERT_MATCHING_ENUM(webkit_name, webcore_name) \ - COMPILE_ASSERT(int(webkit_name) == int(WebCore::webcore_name), mismatching_enums) - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_EDITING_BEHAVIOR_MAC, EditingMacBehavior); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_EDITING_BEHAVIOR_WINDOWS, EditingWindowsBehavior); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_EDITING_BEHAVIOR_UNIX, EditingUnixBehavior); - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED, NavigationTypeLinkClicked); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED, NavigationTypeFormSubmitted); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_BACK_FORWARD, NavigationTypeBackForward); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_RELOAD, NavigationTypeReload); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED, NavigationTypeFormResubmitted); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_NAVIGATION_REASON_OTHER, NavigationTypeOther); - -COMPILE_ASSERT_MATCHING_ENUM(WebKit::WebFindOptionsAtWordStarts, AtWordStarts); -COMPILE_ASSERT_MATCHING_ENUM(WebKit::WebFindOptionsTreatMedialCapitalAsWordStart, TreatMedialCapitalAsWordStart); -COMPILE_ASSERT_MATCHING_ENUM(WebKit::WebFindOptionsBackwards, Backwards); -COMPILE_ASSERT_MATCHING_ENUM(WebKit::WebFindOptionsWrapAround, WrapAround); -COMPILE_ASSERT_MATCHING_ENUM(WebKit::WebFindOptionsStartInSelection, StartInSelection); - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_VIEW_TARGET_INFO_HTML, PasteboardHelper::TargetTypeMarkup); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_VIEW_TARGET_INFO_TEXT, PasteboardHelper::TargetTypeText); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_VIEW_TARGET_INFO_IMAGE, PasteboardHelper::TargetTypeImage); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_VIEW_TARGET_INFO_URI_LIST, PasteboardHelper::TargetTypeURIList); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_WEB_VIEW_TARGET_INFO_NETSCAPE_URL, PasteboardHelper::TargetTypeNetscapeURL); - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_FAILED, NetworkErrorFailed); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_TRANSPORT, NetworkErrorTransport); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL, NetworkErrorUnknownProtocol); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_CANCELLED, NetworkErrorCancelled); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST, NetworkErrorFileDoesNotExist); - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_FAILED, PolicyErrorFailed); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE, PolicyErrorCannotShowMimeType); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL, PolicyErrorCannotShowURL); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE, PolicyErrorFrameLoadInterruptedByPolicyChange); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT, PolicyErrorCannotUseRestrictedPort); - -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_FAILED, PluginErrorFailed); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN, PluginErrorCannotFindPlugin); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN, PluginErrorCannotLoadPlugin); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE, PluginErrorJavaUnavailable); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED, PluginErrorConnectionCancelled); -COMPILE_ASSERT_MATCHING_ENUM(WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD, PluginErrorWillHandleLoad); diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp deleted file mode 100644 index 90e76363a..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp +++ /dev/null @@ -1,1105 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther - * Copyright (C) 2007, 2008 Christian Dywan <christian@imendio.com> - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2008 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Gustavo Noronha Silva <gns@gnome.org> - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). - * Copyright (C) 2012 Igalia S. L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "ChromeClientGtk.h" - -#include "Chrome.h" -#include "Console.h" -#include "DumpRenderTreeSupportGtk.h" -#include "Editor.h" -#include "Element.h" -#include "FileChooser.h" -#include "FileIconLoader.h" -#include "FileSystem.h" -#include "FloatRect.h" -#include "FocusController.h" -#include "FrameLoadRequest.h" -#include "FrameSelection.h" -#include "FrameView.h" -#include "GtkUtilities.h" -#include "GtkVersioning.h" -#include "HTMLNames.h" -#include "HitTestResult.h" -#include "Icon.h" -#include "InspectorController.h" -#include "IntRect.h" -#include "KURL.h" -#include "NavigationAction.h" -#include "NotImplemented.h" -#include "PopupMenuClient.h" -#include "PopupMenuGtk.h" -#include "RefPtrCairo.h" -#include "SearchPopupMenuGtk.h" -#include "SecurityOrigin.h" -#include "WebKitDOMHTMLElementPrivate.h" -#include "WindowFeatures.h" -#include "webkitfilechooserrequestprivate.h" -#include "webkitgeolocationpolicydecision.h" -#include "webkitgeolocationpolicydecisionprivate.h" -#include "webkitnetworkrequest.h" -#include "webkitsecurityoriginprivate.h" -#include "webkitviewportattributesprivate.h" -#include "webkitwebframeprivate.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include "webkitwebwindowfeaturesprivate.h" -#include <gdk/gdk.h> -#include <gdk/gdkkeysyms.h> -#include <glib.h> -#include <glib/gi18n-lib.h> -#include <gtk/gtk.h> -#include <wtf/CurrentTime.h> -#include <wtf/MathExtras.h> -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> - -#ifdef GDK_WINDOWING_X11 -#define Font XFont -#define Cursor XCursor -#define Region XRegion -#include <gdk/gdkx.h> -#undef Font -#undef Cursor -#undef Region -#undef None -#undef Status -#endif - -#if ENABLE(SQL_DATABASE) -#include "DatabaseManager.h" -#endif - -#if ENABLE(VIDEO) && USE(NATIVE_FULLSCREEN_VIDEO) -#include "HTMLMediaElement.h" -#endif - -#ifdef GDK_WINDOWING_X11 -#include "WidgetBackingStoreGtkX11.h" -#endif -#include "WidgetBackingStoreCairo.h" - -using namespace WebCore; - -namespace WebKit { - -static PassOwnPtr<WidgetBackingStore> createBackingStore(GtkWidget* widget, const IntSize& size) -{ -#ifdef GDK_WINDOWING_X11 - GdkDisplay* display = gdk_display_manager_get_default_display(gdk_display_manager_get()); - if (GDK_IS_X11_DISPLAY(display)) - return WebCore::WidgetBackingStoreGtkX11::create(widget, size); -#endif - return WebCore::WidgetBackingStoreCairo::create(widget, size); -} - -ChromeClient::ChromeClient(WebKitWebView* webView) - : m_webView(webView) - , m_adjustmentWatcher(webView) - , m_closeSoonTimer(0) - , m_displayTimer(this, &ChromeClient::paint) - , m_forcePaint(false) - , m_lastDisplayTime(0) - , m_repaintSoonSourceId(0) -{ - ASSERT(m_webView); -} - -void ChromeClient::chromeDestroyed() -{ - if (m_closeSoonTimer) - g_source_remove(m_closeSoonTimer); - - if (m_repaintSoonSourceId) - g_source_remove(m_repaintSoonSourceId); - - delete this; -} - -FloatRect ChromeClient::windowRect() -{ - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView)); - if (widgetIsOnscreenToplevelWindow(window)) { - gint left, top, width, height; - gtk_window_get_position(GTK_WINDOW(window), &left, &top); - gtk_window_get_size(GTK_WINDOW(window), &width, &height); - return IntRect(left, top, width, height); - } - return FloatRect(); -} - -void ChromeClient::setWindowRect(const FloatRect& rect) -{ - IntRect intrect = IntRect(rect); - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - - g_object_set(webWindowFeatures, - "x", intrect.x(), - "y", intrect.y(), - "width", intrect.width(), - "height", intrect.height(), - NULL); - - gboolean autoResizeWindow; - WebKitWebSettings* settings = webkit_web_view_get_settings(m_webView); - g_object_get(settings, "auto-resize-window", &autoResizeWindow, NULL); - - if (!autoResizeWindow) - return; - - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView)); - if (widgetIsOnscreenToplevelWindow(window)) { - gtk_window_move(GTK_WINDOW(window), intrect.x(), intrect.y()); - if (!intrect.isEmpty()) - gtk_window_resize(GTK_WINDOW(window), intrect.width(), intrect.height()); - } -} - -static IntRect getWebViewRect(WebKitWebView* webView) -{ - GtkAllocation allocation; - gtk_widget_get_allocation(GTK_WIDGET(webView), &allocation); - return IntRect(allocation.x, allocation.y, allocation.width, allocation.height); -} - -FloatRect ChromeClient::pageRect() -{ - return getWebViewRect(m_webView); -} - -void ChromeClient::focus() -{ - gtk_widget_grab_focus(GTK_WIDGET(m_webView)); -} - -void ChromeClient::unfocus() -{ - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView)); - if (widgetIsOnscreenToplevelWindow(window)) - gtk_window_set_focus(GTK_WINDOW(window), NULL); -} - -Page* ChromeClient::createWindow(Frame* frame, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& coreFeatures, const NavigationAction&) -{ - WebKitWebView* webView = 0; - - g_signal_emit_by_name(m_webView, "create-web-view", kit(frame), &webView); - - if (!webView) - return 0; - - GRefPtr<WebKitWebWindowFeatures> webWindowFeatures(adoptGRef(kitNew(coreFeatures))); - g_object_set(webView, "window-features", webWindowFeatures.get(), NULL); - - return core(webView); -} - -void ChromeClient::show() -{ - webkit_web_view_notify_ready(m_webView); -} - -bool ChromeClient::canRunModal() -{ - notImplemented(); - return false; -} - -void ChromeClient::runModal() -{ - notImplemented(); -} - -void ChromeClient::setToolbarsVisible(bool visible) -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - - g_object_set(webWindowFeatures, "toolbar-visible", visible, NULL); -} - -bool ChromeClient::toolbarsVisible() -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - gboolean visible; - - g_object_get(webWindowFeatures, "toolbar-visible", &visible, NULL); - return visible; -} - -void ChromeClient::setStatusbarVisible(bool visible) -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - - g_object_set(webWindowFeatures, "statusbar-visible", visible, NULL); -} - -bool ChromeClient::statusbarVisible() -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - gboolean visible; - - g_object_get(webWindowFeatures, "statusbar-visible", &visible, NULL); - return visible; -} - -void ChromeClient::setScrollbarsVisible(bool visible) -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - - g_object_set(webWindowFeatures, "scrollbar-visible", visible, NULL); -} - -bool ChromeClient::scrollbarsVisible() -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - gboolean visible; - - g_object_get(webWindowFeatures, "scrollbar-visible", &visible, NULL); - return visible; -} - -void ChromeClient::setMenubarVisible(bool visible) -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - - g_object_set(webWindowFeatures, "menubar-visible", visible, NULL); -} - -bool ChromeClient::menubarVisible() -{ - WebKitWebWindowFeatures* webWindowFeatures = webkit_web_view_get_window_features(m_webView); - gboolean visible; - - g_object_get(webWindowFeatures, "menubar-visible", &visible, NULL); - return visible; -} - -void ChromeClient::setResizable(bool) -{ - // Ignored for now -} - -static gboolean emitCloseWebViewSignalLater(WebKitWebView* view) -{ - gboolean isHandled; - g_signal_emit_by_name(view, "close-web-view", &isHandled); - return FALSE; -} - -void ChromeClient::closeWindowSoon() -{ - // We may not have a WebView as create-web-view can return NULL. - if (!m_webView) - return; - if (m_closeSoonTimer) // Don't call close-web-view more than once. - return; - - // We need to remove the parent WebView from WebViewSets here, before it actually - // closes, to make sure that JavaScript code that executes before it closes - // can't find it. Otherwise, window.open will select a closed WebView instead of - // opening a new one <rdar://problem/3572585>. - m_webView->priv->corePage->setGroupName(""); - - // We also need to stop the load to prevent further parsing or JavaScript execution - // after the window has torn down <rdar://problem/4161660>. - webkit_web_view_stop_loading(m_webView); - - // Clients commonly destroy the web view during the close-web-view signal, but our caller - // may need to send more signals to the web view. For instance, if this happened in the - // onload handler, it will need to call FrameLoaderClient::dispatchDidHandleOnloadEvents. - // Instead of firing the close-web-view signal now, fire it after the caller finishes. - // This seems to match the Mac/Windows port behavior. - m_closeSoonTimer = g_timeout_add(0, reinterpret_cast<GSourceFunc>(emitCloseWebViewSignalLater), m_webView); -} - -bool ChromeClient::canTakeFocus(FocusDirection) -{ - return gtk_widget_get_can_focus(GTK_WIDGET(m_webView)); -} - -void ChromeClient::takeFocus(FocusDirection) -{ - unfocus(); -} - -void ChromeClient::focusedNodeChanged(Node*) -{ -} - -void ChromeClient::focusedFrameChanged(Frame*) -{ -} - -bool ChromeClient::canRunBeforeUnloadConfirmPanel() -{ - return true; -} - -bool ChromeClient::runBeforeUnloadConfirmPanel(const WTF::String& message, WebCore::Frame* frame) -{ - return runJavaScriptConfirm(frame, message); -} - -void ChromeClient::addMessageToConsole(WebCore::MessageSource source, WebCore::MessageLevel level, const WTF::String& message, unsigned lineNumber, unsigned columnNumber, const WTF::String& sourceId) -{ - gboolean retval; - g_signal_emit_by_name(m_webView, "console-message", message.utf8().data(), lineNumber, sourceId.utf8().data(), &retval); -} - -void ChromeClient::runJavaScriptAlert(Frame* frame, const String& message) -{ - gboolean retval; - g_signal_emit_by_name(m_webView, "script-alert", kit(frame), message.utf8().data(), &retval); -} - -bool ChromeClient::runJavaScriptConfirm(Frame* frame, const String& message) -{ - gboolean retval; - gboolean didConfirm; - g_signal_emit_by_name(m_webView, "script-confirm", kit(frame), message.utf8().data(), &didConfirm, &retval); - return didConfirm == TRUE; -} - -bool ChromeClient::runJavaScriptPrompt(Frame* frame, const String& message, const String& defaultValue, String& result) -{ - gboolean retval; - gchar* value = 0; - g_signal_emit_by_name(m_webView, "script-prompt", kit(frame), message.utf8().data(), defaultValue.utf8().data(), &value, &retval); - if (value) { - result = String::fromUTF8(value); - g_free(value); - return true; - } - return false; -} - -void ChromeClient::setStatusbarText(const String& string) -{ - CString stringMessage = string.utf8(); - g_signal_emit_by_name(m_webView, "status-bar-text-changed", stringMessage.data()); -} - -bool ChromeClient::shouldInterruptJavaScript() -{ - notImplemented(); - return false; -} - -KeyboardUIMode ChromeClient::keyboardUIMode() -{ - bool tabsToLinks = true; - if (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()) - tabsToLinks = DumpRenderTreeSupportGtk::linksIncludedInFocusChain(); - - return tabsToLinks ? KeyboardAccessTabsToLinks : KeyboardAccessDefault; -} - -IntRect ChromeClient::windowResizerRect() const -{ - notImplemented(); - return IntRect(); -} - -static gboolean repaintEverythingSoonTimeout(ChromeClient* client) -{ - client->paint(0); - return FALSE; -} - -static void clipOutOldWidgetArea(cairo_t* cr, const IntSize& oldSize, const IntSize& newSize) -{ - cairo_move_to(cr, oldSize.width(), 0); - cairo_line_to(cr, newSize.width(), 0); - cairo_line_to(cr, newSize.width(), newSize.height()); - cairo_line_to(cr, 0, newSize.height()); - cairo_line_to(cr, 0, oldSize.height()); - cairo_line_to(cr, oldSize.width(), oldSize.height()); - cairo_close_path(cr); - cairo_clip(cr); -} - -static void clearEverywhereInBackingStore(WebKitWebView* webView, cairo_t* cr) -{ - // The strategy here is to quickly draw white into this new canvas, so that - // when a user quickly resizes the WebView in an environment that has opaque - // resizing (like Gnome Shell), there are no drawing artifacts. - if (!webView->priv->transparent) { - cairo_set_source_rgb(cr, 1, 1, 1); - cairo_set_operator(cr, CAIRO_OPERATOR_SOURCE); - } else - cairo_set_operator(cr, CAIRO_OPERATOR_CLEAR); - cairo_paint(cr); -} - -void ChromeClient::widgetSizeChanged(const IntSize& oldWidgetSize, IntSize newSize) -{ -#if USE(ACCELERATED_COMPOSITING) - AcceleratedCompositingContext* compositingContext = m_webView->priv->acceleratedCompositingContext.get(); - if (compositingContext->enabled()) { - m_webView->priv->acceleratedCompositingContext->resizeRootLayer(newSize); - return; - } -#endif - - // Grow the backing store by at least 1.5 times the current size. This prevents - // lots of unnecessary allocations during an opaque resize. - WidgetBackingStore* backingStore = m_webView->priv->backingStore.get(); - if (backingStore && oldWidgetSize == newSize) - return; - - if (backingStore) { - const IntSize& oldSize = backingStore->size(); - if (newSize.width() > oldSize.width()) - newSize.setWidth(std::max(newSize.width(), static_cast<int>(oldSize.width() * 1.5))); - if (newSize.height() > oldSize.height()) - newSize.setHeight(std::max(newSize.height(), static_cast<int>(oldSize.height() * 1.5))); - } - - // If we did not have a backing store before or if the backing store is growing, we need - // to reallocate a new one and set it up so that we don't see artifacts while resizing. - if (!backingStore - || newSize.width() > backingStore->size().width() - || newSize.height() > backingStore->size().height()) { - - OwnPtr<WidgetBackingStore> newBackingStore = createBackingStore(GTK_WIDGET(m_webView), newSize); - RefPtr<cairo_t> cr = adoptRef(cairo_create(newBackingStore->cairoSurface())); - - clearEverywhereInBackingStore(m_webView, cr.get()); - - // Now we copy the old backing store image over the new cleared surface to prevent - // annoying flashing as the widget grows. We do the "real" paint in a timeout - // since we don't want to block resizing too long. - if (backingStore) { - cairo_set_source_surface(cr.get(), backingStore->cairoSurface(), 0, 0); - cairo_rectangle(cr.get(), 0, 0, backingStore->size().width(), backingStore->size().height()); - cairo_fill(cr.get()); - } - - m_webView->priv->backingStore = newBackingStore.release(); - backingStore = m_webView->priv->backingStore.get(); - - } else if (oldWidgetSize.width() < newSize.width() || oldWidgetSize.height() < newSize.height()) { - // The widget is growing, but we did not need to create a new backing store. - // We should clear any old data outside of the old widget region. - RefPtr<cairo_t> cr = adoptRef(cairo_create(backingStore->cairoSurface())); - clipOutOldWidgetArea(cr.get(), oldWidgetSize, newSize); - clearEverywhereInBackingStore(m_webView, cr.get()); - } - - // We need to force a redraw and ignore the framerate cap. - m_lastDisplayTime = 0; - m_dirtyRegion.unite(IntRect(IntPoint(), backingStore->size())); - - // WebCore timers by default have a lower priority which leads to more artifacts when opaque - // resize is on, thus we use g_timeout_add here to force a higher timeout priority. - if (!m_repaintSoonSourceId) - m_repaintSoonSourceId = g_timeout_add(0, reinterpret_cast<GSourceFunc>(repaintEverythingSoonTimeout), this); -} - -static void coalesceRectsIfPossible(const IntRect& clipRect, Vector<IntRect>& rects) -{ - const unsigned int cRectThreshold = 10; - const float cWastedSpaceThreshold = 0.75f; - bool useUnionedRect = (rects.size() <= 1) || (rects.size() > cRectThreshold); - if (!useUnionedRect) { - // Attempt to guess whether or not we should use the unioned rect or the individual rects. - // We do this by computing the percentage of "wasted space" in the union. If that wasted space - // is too large, then we will do individual rect painting instead. - float unionPixels = (clipRect.width() * clipRect.height()); - float singlePixels = 0; - for (size_t i = 0; i < rects.size(); ++i) - singlePixels += rects[i].width() * rects[i].height(); - float wastedSpace = 1 - (singlePixels / unionPixels); - if (wastedSpace <= cWastedSpaceThreshold) - useUnionedRect = true; - } - - if (!useUnionedRect) - return; - - rects.clear(); - rects.append(clipRect); -} - -static void paintWebView(WebKitWebView* webView, Frame* frame, const Region& dirtyRegion) -{ - if (!webView->priv->backingStore) - return; - - Vector<IntRect> rects = dirtyRegion.rects(); - coalesceRectsIfPossible(dirtyRegion.bounds(), rects); - - RefPtr<cairo_t> backingStoreContext = adoptRef(cairo_create(webView->priv->backingStore->cairoSurface())); - GraphicsContext gc(backingStoreContext.get()); - gc.applyDeviceScaleFactor(frame->page()->deviceScaleFactor()); - for (size_t i = 0; i < rects.size(); i++) { - const IntRect& rect = rects[i]; - - gc.save(); - gc.clip(rect); - if (webView->priv->transparent) - gc.clearRect(rect); - frame->view()->paint(&gc, rect); - gc.restore(); - } - - gc.save(); - gc.clip(dirtyRegion.bounds()); - frame->page()->inspectorController()->drawHighlight(gc); - gc.restore(); -} - -void ChromeClient::performAllPendingScrolls() -{ - if (!m_webView->priv->backingStore) - return; - - // Scroll all pending scroll rects and invalidate those parts of the widget. - for (size_t i = 0; i < m_rectsToScroll.size(); i++) { - IntRect& scrollRect = m_rectsToScroll[i]; - m_webView->priv->backingStore->scroll(scrollRect, m_scrollOffsets[i]); - gtk_widget_queue_draw_area(GTK_WIDGET(m_webView), scrollRect.x(), scrollRect.y(), scrollRect.width(), scrollRect.height()); - } - - m_rectsToScroll.clear(); - m_scrollOffsets.clear(); -} - -void ChromeClient::paint(WebCore::Timer<ChromeClient>*) -{ - static const double minimumFrameInterval = 1.0 / 60.0; // No more than 60 frames a second. - double timeSinceLastDisplay = currentTime() - m_lastDisplayTime; - double timeUntilNextDisplay = minimumFrameInterval - timeSinceLastDisplay; - - if (timeUntilNextDisplay > 0 && !m_forcePaint) { - m_displayTimer.startOneShot(timeUntilNextDisplay); - return; - } - - Frame* frame = core(m_webView)->mainFrame(); - if (!frame || !frame->contentRenderer() || !frame->view()) - return; - - frame->view()->updateLayoutAndStyleIfNeededRecursive(); - performAllPendingScrolls(); - paintWebView(m_webView, frame, m_dirtyRegion); - - HashSet<GtkWidget*> children = m_webView->priv->children; - HashSet<GtkWidget*>::const_iterator end = children.end(); - for (HashSet<GtkWidget*>::const_iterator current = children.begin(); current != end; ++current) { - if (static_cast<GtkAllocation*>(g_object_get_data(G_OBJECT(*current), "delayed-allocation"))) { - gtk_widget_queue_resize_no_redraw(GTK_WIDGET(m_webView)); - break; - } - } - - const IntRect& rect = m_dirtyRegion.bounds(); - gtk_widget_queue_draw_area(GTK_WIDGET(m_webView), rect.x(), rect.y(), rect.width(), rect.height()); - - m_dirtyRegion = Region(); - m_lastDisplayTime = currentTime(); - m_repaintSoonSourceId = 0; - - // We update the IM context window location here, because we want it to be - // synced with cursor movement. For instance, a text field can move without - // the selection changing. - Frame* focusedFrame = core(m_webView)->focusController()->focusedOrMainFrame(); - if (focusedFrame && focusedFrame->editor().canEdit()) - m_webView->priv->imFilter.setCursorRect(frame->selection()->absoluteCaretBounds()); -} - -void ChromeClient::forcePaint() -{ -#if USE(ACCELERATED_COMPOSITING) - if (m_webView->priv->acceleratedCompositingContext->enabled()) - return; -#endif - - m_forcePaint = true; - paint(0); - m_forcePaint = false; -} - -void ChromeClient::invalidateRootView(const IntRect&, bool immediate) -{ -} - -void ChromeClient::invalidateContentsAndRootView(const IntRect& updateRect, bool immediate) -{ -#if USE(ACCELERATED_COMPOSITING) - AcceleratedCompositingContext* acContext = m_webView->priv->acceleratedCompositingContext.get(); - if (acContext->enabled()) { - acContext->setNonCompositedContentsNeedDisplay(updateRect); - return; - } -#endif - - if (updateRect.isEmpty()) - return; - m_dirtyRegion.unite(updateRect); - m_displayTimer.startOneShot(0); -} - -void ChromeClient::invalidateContentsForSlowScroll(const IntRect& updateRect, bool immediate) -{ - m_adjustmentWatcher.updateAdjustmentsFromScrollbarsLater(); - -#if USE(ACCELERATED_COMPOSITING) - AcceleratedCompositingContext* acContext = m_webView->priv->acceleratedCompositingContext.get(); - if (acContext->enabled()) { - acContext->setNonCompositedContentsNeedDisplay(updateRect); - return; - } -#endif - - invalidateContentsAndRootView(updateRect, immediate); -} - -void ChromeClient::scroll(const IntSize& delta, const IntRect& rectToScroll, const IntRect& clipRect) -{ - m_adjustmentWatcher.updateAdjustmentsFromScrollbarsLater(); - -#if USE(ACCELERATED_COMPOSITING) - AcceleratedCompositingContext* compositingContext = m_webView->priv->acceleratedCompositingContext.get(); - if (compositingContext->enabled()) { - ASSERT(!rectToScroll.isEmpty()); - ASSERT(delta.width() || delta.height()); - - compositingContext->scrollNonCompositedContents(rectToScroll, delta); - return; - } -#endif - - m_rectsToScroll.append(rectToScroll); - m_scrollOffsets.append(delta); - - // The code to calculate the scroll repaint region is originally from WebKit2. - // Get the part of the dirty region that is in the scroll rect. - Region dirtyRegionInScrollRect = intersect(rectToScroll, m_dirtyRegion); - if (!dirtyRegionInScrollRect.isEmpty()) { - // There are parts of the dirty region that are inside the scroll rect. - // We need to subtract them from the region, move them and re-add them. - m_dirtyRegion.subtract(rectToScroll); - - // Move the dirty parts. - Region movedDirtyRegionInScrollRect = intersect(translate(dirtyRegionInScrollRect, delta), rectToScroll); - - // And add them back. - m_dirtyRegion.unite(movedDirtyRegionInScrollRect); - } - - // Compute the scroll repaint region. We ensure that we are not subtracting areas - // that we've scrolled from outside the viewport from the repaint region. - IntRect onScreenScrollRect = rectToScroll; - onScreenScrollRect.intersect(IntRect(IntPoint(), enclosingIntRect(pageRect()).size())); - Region scrollRepaintRegion = subtract(rectToScroll, translate(onScreenScrollRect, delta)); - - m_dirtyRegion.unite(scrollRepaintRegion); - m_displayTimer.startOneShot(0); -} - -IntRect ChromeClient::rootViewToScreen(const IntRect& rect) const -{ - return IntRect(convertWidgetPointToScreenPoint(GTK_WIDGET(m_webView), rect.location()), rect.size()); -} - -IntPoint ChromeClient::screenToRootView(const IntPoint& point) const -{ - IntPoint widgetPositionOnScreen = convertWidgetPointToScreenPoint(GTK_WIDGET(m_webView), IntPoint()); - IntPoint result(point); - result.move(-widgetPositionOnScreen.x(), -widgetPositionOnScreen.y()); - return result; -} - -PlatformPageClient ChromeClient::platformPageClient() const -{ - return GTK_WIDGET(m_webView); -} - -void ChromeClient::contentsSizeChanged(Frame* frame, const IntSize& size) const -{ - if (m_adjustmentWatcher.scrollbarsDisabled()) - return; - - // We need to queue a resize request only if the size changed, - // otherwise we get into an infinite loop! - GtkWidget* widget = GTK_WIDGET(m_webView); - GtkRequisition requisition; - gtk_widget_get_preferred_size(widget, &requisition, 0); - if (gtk_widget_get_realized(widget) - && (requisition.height != size.height() - || requisition.width != size.width())) - gtk_widget_queue_resize_no_redraw(widget); - - // If this was a main frame size change, update the scrollbars. - if (frame != frame->page()->mainFrame()) - return; - m_adjustmentWatcher.updateAdjustmentsFromScrollbarsLater(); -} - -void ChromeClient::scrollbarsModeDidChange() const -{ - WebKitWebFrame* webFrame = webkit_web_view_get_main_frame(m_webView); - if (!webFrame) - return; - - g_object_notify(G_OBJECT(webFrame), "horizontal-scrollbar-policy"); - g_object_notify(G_OBJECT(webFrame), "vertical-scrollbar-policy"); - - gboolean isHandled; - g_signal_emit_by_name(webFrame, "scrollbars-policy-changed", &isHandled); - - if (isHandled) - return; - - GtkWidget* parent = gtk_widget_get_parent(GTK_WIDGET(m_webView)); - if (!parent || !GTK_IS_SCROLLED_WINDOW(parent)) - return; - - GtkPolicyType horizontalPolicy = webkit_web_frame_get_horizontal_scrollbar_policy(webFrame); - GtkPolicyType verticalPolicy = webkit_web_frame_get_vertical_scrollbar_policy(webFrame); - - // ScrolledWindow doesn't like to display only part of a widget if - // the scrollbars are completely disabled; We have a disparity - // here on what the policy requested by the web app is and what we - // can represent; the idea is not to show scrollbars, only. - if (horizontalPolicy == GTK_POLICY_NEVER) - horizontalPolicy = GTK_POLICY_AUTOMATIC; - - if (verticalPolicy == GTK_POLICY_NEVER) - verticalPolicy = GTK_POLICY_AUTOMATIC; - - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(parent), - horizontalPolicy, verticalPolicy); -} - -void ChromeClient::mouseDidMoveOverElement(const HitTestResult& hit, unsigned modifierFlags) -{ - // check if the element is a link... - bool isLink = hit.isLiveLink(); - if (isLink) { - KURL url = hit.absoluteLinkURL(); - if (!url.isEmpty() && url != m_hoveredLinkURL) { - TextDirection dir; - CString titleString = hit.title(dir).utf8(); - CString urlString = url.string().utf8(); - g_signal_emit_by_name(m_webView, "hovering-over-link", titleString.data(), urlString.data()); - m_hoveredLinkURL = url; - } - } else if (!isLink && !m_hoveredLinkURL.isEmpty()) { - g_signal_emit_by_name(m_webView, "hovering-over-link", 0, 0); - m_hoveredLinkURL = KURL(); - } - - if (Node* node = hit.innerNonSharedNode()) { - Frame* frame = node->document()->frame(); - FrameView* view = frame ? frame->view() : 0; - m_webView->priv->tooltipArea = view ? view->contentsToWindow(node->pixelSnappedBoundingBox()) : IntRect(); - } else - m_webView->priv->tooltipArea = IntRect(); -} - -void ChromeClient::setToolTip(const String& toolTip, TextDirection) -{ - webkit_web_view_set_tooltip_text(m_webView, toolTip.utf8().data()); -} - -void ChromeClient::print(Frame* frame) -{ - WebKitWebFrame* webFrame = kit(frame); - gboolean isHandled = false; - g_signal_emit_by_name(m_webView, "print-requested", webFrame, &isHandled); - - if (isHandled) - return; - - webkit_web_frame_print(webFrame); -} - -#if ENABLE(SQL_DATABASE) -void ChromeClient::exceededDatabaseQuota(Frame* frame, const String& databaseName, DatabaseDetails) -{ - guint64 defaultQuota = webkit_get_default_web_database_quota(); - DatabaseManager::manager().setQuota(frame->document()->securityOrigin(), defaultQuota); - - WebKitWebFrame* webFrame = kit(frame); - WebKitSecurityOrigin* origin = webkit_web_frame_get_security_origin(webFrame); - WebKitWebDatabase* webDatabase = webkit_security_origin_get_web_database(origin, databaseName.utf8().data()); - g_signal_emit_by_name(m_webView, "database-quota-exceeded", webFrame, webDatabase); -} -#endif - -void ChromeClient::reachedMaxAppCacheSize(int64_t spaceNeeded) -{ - // FIXME: Free some space. - notImplemented(); -} - -void ChromeClient::reachedApplicationCacheOriginQuota(SecurityOrigin*, int64_t) -{ - notImplemented(); -} - -void ChromeClient::runOpenPanel(Frame*, PassRefPtr<FileChooser> prpFileChooser) -{ - GRefPtr<WebKitFileChooserRequest> request = adoptGRef(webkit_file_chooser_request_create(prpFileChooser)); - webkitWebViewRunFileChooserRequest(m_webView, request.get()); -} - -void ChromeClient::loadIconForFiles(const Vector<WTF::String>& filenames, WebCore::FileIconLoader* loader) -{ - loader->notifyFinished(Icon::createIconForFiles(filenames)); -} - -void ChromeClient::dispatchViewportPropertiesDidChange(const ViewportArguments& arguments) const -{ - // Recompute the viewport attributes making it valid. - webkitViewportAttributesRecompute(webkit_web_view_get_viewport_attributes(m_webView)); -} - -void ChromeClient::setCursor(const Cursor& cursor) -{ - // [GTK] Widget::setCursor() gets called frequently - // http://bugs.webkit.org/show_bug.cgi?id=16388 - // Setting the cursor may be an expensive operation in some backends, - // so don't re-set the cursor if it's already set to the target value. - GdkWindow* window = gtk_widget_get_window(platformPageClient()); - if (!window) - return; - - GdkCursor* currentCursor = gdk_window_get_cursor(window); - GdkCursor* newCursor = cursor.platformCursor().get(); - if (currentCursor != newCursor) - gdk_window_set_cursor(window, newCursor); -} - -void ChromeClient::setCursorHiddenUntilMouseMoves(bool) -{ - notImplemented(); -} - -bool ChromeClient::selectItemWritingDirectionIsNatural() -{ - return false; -} - -bool ChromeClient::selectItemAlignmentFollowsMenuWritingDirection() -{ - return true; -} - -bool ChromeClient::hasOpenedPopup() const -{ - notImplemented(); - return false; -} - -PassRefPtr<WebCore::PopupMenu> ChromeClient::createPopupMenu(WebCore::PopupMenuClient* client) const -{ - return adoptRef(new PopupMenuGtk(client)); -} - -PassRefPtr<WebCore::SearchPopupMenu> ChromeClient::createSearchPopupMenu(WebCore::PopupMenuClient* client) const -{ - return adoptRef(new SearchPopupMenuGtk(client)); -} - -#if ENABLE(VIDEO) && USE(NATIVE_FULLSCREEN_VIDEO) -bool ChromeClient::supportsFullscreenForNode(const Node* node) -{ - return node->hasTagName(HTMLNames::videoTag); -} - -void ChromeClient::enterFullscreenForNode(Node* node) -{ - if (!node) - return; - - HTMLElement* element = static_cast<HTMLElement*>(node); - if (element && element->isMediaElement()) { - HTMLMediaElement* mediaElement = toHTMLMediaElement(element); - if (mediaElement->player() && mediaElement->player()->canEnterFullscreen()) - mediaElement->player()->enterFullscreen(); - } -} - -void ChromeClient::exitFullscreenForNode(Node* node) -{ - if (!node) - return; - - HTMLElement* element = static_cast<HTMLElement*>(node); - if (element && element->isMediaElement()) { - HTMLMediaElement* mediaElement = toHTMLMediaElement(element); - if (mediaElement->player()) - mediaElement->player()->exitFullscreen(); - } -} -#endif - -#if ENABLE(FULLSCREEN_API) -bool ChromeClient::supportsFullScreenForElement(const WebCore::Element* element, bool withKeyboard) -{ - return !withKeyboard; -} - -static gboolean onFullscreenGtkKeyPressEvent(GtkWidget* widget, GdkEventKey* event, ChromeClient* chromeClient) -{ - switch (event->keyval) { - case GDK_KEY_Escape: - case GDK_KEY_f: - case GDK_KEY_F: - chromeClient->cancelFullScreen(); - return TRUE; - default: - break; - } - - return FALSE; -} - -void ChromeClient::cancelFullScreen() -{ - ASSERT(m_fullScreenElement); - m_fullScreenElement->document()->webkitCancelFullScreen(); -} - -void ChromeClient::enterFullScreenForElement(WebCore::Element* element) -{ - gboolean returnValue; - GRefPtr<WebKitDOMHTMLElement> kitElement(adoptGRef(kit(reinterpret_cast<HTMLElement*>(element)))); - g_signal_emit_by_name(m_webView, "entering-fullscreen", kitElement.get(), &returnValue); - if (returnValue) - return; - -#if ENABLE(VIDEO) && USE(NATIVE_FULLSCREEN_VIDEO) - if (element && element->isMediaElement()) { - HTMLMediaElement* mediaElement = toHTMLMediaElement(element); - if (mediaElement->player() && mediaElement->player()->canEnterFullscreen()) { - element->document()->webkitWillEnterFullScreenForElement(element); - mediaElement->player()->enterFullscreen(); - m_fullScreenElement = element; - element->document()->webkitDidEnterFullScreenForElement(element); - } - return; - } -#endif - - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView)); - if (!widgetIsOnscreenToplevelWindow(window)) - return; - - g_signal_connect(window, "key-press-event", G_CALLBACK(onFullscreenGtkKeyPressEvent), this); - - m_fullScreenElement = element; - - element->document()->webkitWillEnterFullScreenForElement(element); - m_adjustmentWatcher.disableAllScrollbars(); - gtk_window_fullscreen(GTK_WINDOW(window)); - element->document()->webkitDidEnterFullScreenForElement(element); -} - -void ChromeClient::exitFullScreenForElement(WebCore::Element*) -{ - // The element passed into this function is not reliable, i.e. it could - // be null. In addition the parameter may be disappearing in the future. - // So we use the reference to the element we saved above. - ASSERT(m_fullScreenElement); - - gboolean returnValue; - GRefPtr<WebKitDOMHTMLElement> kitElement(adoptGRef(kit(reinterpret_cast<HTMLElement*>(m_fullScreenElement.get())))); - g_signal_emit_by_name(m_webView, "leaving-fullscreen", kitElement.get(), &returnValue); - if (returnValue) - return; - -#if ENABLE(VIDEO) && USE(NATIVE_FULLSCREEN_VIDEO) - if (m_fullScreenElement && m_fullScreenElement->isMediaElement()) { - m_fullScreenElement->document()->webkitWillExitFullScreenForElement(m_fullScreenElement.get()); - HTMLMediaElement* mediaElement = toHTMLMediaElement(m_fullScreenElement.get()); - if (mediaElement->player()) { - mediaElement->player()->exitFullscreen(); - m_fullScreenElement->document()->webkitDidExitFullScreenForElement(m_fullScreenElement.get()); - m_fullScreenElement.clear(); - } - return; - } -#endif - - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView)); - ASSERT(widgetIsOnscreenToplevelWindow(window)); - g_signal_handlers_disconnect_by_func(window, reinterpret_cast<void*>(onFullscreenGtkKeyPressEvent), this); - - m_fullScreenElement->document()->webkitWillExitFullScreenForElement(m_fullScreenElement.get()); - gtk_window_unfullscreen(GTK_WINDOW(window)); - m_adjustmentWatcher.enableAllScrollbars(); - m_fullScreenElement->document()->webkitDidExitFullScreenForElement(m_fullScreenElement.get()); - m_fullScreenElement.clear(); -} -#endif - -#if USE(ACCELERATED_COMPOSITING) -void ChromeClient::attachRootGraphicsLayer(Frame* frame, GraphicsLayer* rootLayer) -{ - AcceleratedCompositingContext* context = m_webView->priv->acceleratedCompositingContext.get(); - bool turningOffCompositing = !rootLayer && context->enabled(); - bool turningOnCompositing = rootLayer && !context->enabled(); - - context->setRootCompositingLayer(rootLayer); - - if (turningOnCompositing) { - m_displayTimer.stop(); - m_webView->priv->backingStore = createBackingStore(GTK_WIDGET(m_webView), IntSize(1, 1)); - } - - if (turningOffCompositing) { - m_webView->priv->backingStore = createBackingStore(GTK_WIDGET(m_webView), getWebViewRect(m_webView).size()); - RefPtr<cairo_t> cr = adoptRef(cairo_create(m_webView->priv->backingStore->cairoSurface())); - clearEverywhereInBackingStore(m_webView, cr.get()); - } -} - -void ChromeClient::setNeedsOneShotDrawingSynchronization() -{ - m_webView->priv->acceleratedCompositingContext->scheduleLayerFlush(); -} - -void ChromeClient::scheduleCompositingLayerFlush() -{ - m_webView->priv->acceleratedCompositingContext->scheduleLayerFlush(); -} - -ChromeClient::CompositingTriggerFlags ChromeClient::allowedCompositingTriggers() const -{ - if (!platformPageClient()) - return false; -#if USE(CLUTTER) - // Currently, we only support CSS 3D Transforms. - return ThreeDTransformTrigger | AnimationTrigger; -#else - return AllTriggers; -#endif -} -#endif - -} diff --git a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h deleted file mode 100644 index 38fc1466f..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.h +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ChromeClientGtk_h -#define ChromeClientGtk_h - -#include "ChromeClient.h" -#include "GtkAdjustmentWatcher.h" -#include "IntRect.h" -#include "IntSize.h" -#include "KURL.h" -#include "PopupMenu.h" -#include "Region.h" -#include "SearchPopupMenu.h" -#include "Timer.h" - -using namespace WebCore; -typedef struct _WebKitWebView WebKitWebView; - -namespace WebCore { -class PopupMenuClient; -} - -namespace WebKit { - - class ChromeClient : public WebCore::ChromeClient { - public: - ChromeClient(WebKitWebView*); - GtkAdjustmentWatcher* adjustmentWatcher() { return &m_adjustmentWatcher; } - - virtual void chromeDestroyed(); - - virtual void setWindowRect(const FloatRect&); - virtual FloatRect windowRect(); - - virtual FloatRect pageRect(); - - virtual void focus(); - virtual void unfocus(); - - virtual bool canTakeFocus(FocusDirection); - virtual void takeFocus(FocusDirection); - - virtual void focusedNodeChanged(Node*); - virtual void focusedFrameChanged(Frame*); - - virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&, const NavigationAction&); - virtual void show(); - - virtual bool canRunModal(); - virtual void runModal(); - - virtual void setToolbarsVisible(bool); - virtual bool toolbarsVisible(); - - virtual void setStatusbarVisible(bool); - virtual bool statusbarVisible(); - - virtual void setScrollbarsVisible(bool); - virtual bool scrollbarsVisible(); - - virtual void setMenubarVisible(bool); - virtual bool menubarVisible(); - - virtual void setResizable(bool); - - virtual void addMessageToConsole(MessageSource, MessageLevel, const WTF::String& message, unsigned lineNumber, unsigned columnNumber, const WTF::String& sourceID); - - virtual bool canRunBeforeUnloadConfirmPanel(); - virtual bool runBeforeUnloadConfirmPanel(const WTF::String& message, Frame* frame); - - virtual void closeWindowSoon(); - - virtual void runJavaScriptAlert(Frame*, const WTF::String&); - virtual bool runJavaScriptConfirm(Frame*, const WTF::String&); - virtual bool runJavaScriptPrompt(Frame*, const WTF::String& message, const WTF::String& defaultValue, WTF::String& result); - virtual void setStatusbarText(const WTF::String&); - virtual bool shouldInterruptJavaScript(); - virtual KeyboardUIMode keyboardUIMode(); - - virtual IntRect windowResizerRect() const; - virtual void invalidateRootView(const IntRect&, bool); - virtual void invalidateContentsAndRootView(const IntRect&, bool); - virtual void invalidateContentsForSlowScroll(const IntRect&, bool); - virtual void scroll(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect); - - virtual IntPoint screenToRootView(const IntPoint&) const; - virtual IntRect rootViewToScreen(const IntRect&) const; - virtual PlatformPageClient platformPageClient() const; - virtual void contentsSizeChanged(Frame*, const IntSize&) const; - - virtual void scrollbarsModeDidChange() const; - virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags); - - virtual void setToolTip(const WTF::String&, TextDirection); - - virtual void dispatchViewportPropertiesDidChange(const ViewportArguments&) const; - - virtual void print(Frame*); -#if ENABLE(SQL_DATABASE) - virtual void exceededDatabaseQuota(Frame*, const WTF::String&, DatabaseDetails); -#endif - virtual void reachedMaxAppCacheSize(int64_t spaceNeeded); - virtual void reachedApplicationCacheOriginQuota(SecurityOrigin*, int64_t totalSpaceNeeded); - virtual void runOpenPanel(Frame*, PassRefPtr<FileChooser>); - virtual void loadIconForFiles(const Vector<WTF::String>&, FileIconLoader*); - - virtual void formStateDidChange(const Node*) { } - - virtual void setCursor(const Cursor&); - virtual void setCursorHiddenUntilMouseMoves(bool); - - virtual void scrollRectIntoView(const IntRect&) const { } - - virtual bool selectItemWritingDirectionIsNatural(); - virtual bool selectItemAlignmentFollowsMenuWritingDirection(); - virtual bool hasOpenedPopup() const; - virtual PassRefPtr<PopupMenu> createPopupMenu(PopupMenuClient*) const; - virtual PassRefPtr<SearchPopupMenu> createSearchPopupMenu(PopupMenuClient*) const; -#if ENABLE(VIDEO) && USE(NATIVE_FULLSCREEN_VIDEO) - virtual bool supportsFullscreenForNode(const Node*); - virtual void enterFullscreenForNode(Node*); - virtual void exitFullscreenForNode(Node*); -#endif - -#if ENABLE(FULLSCREEN_API) - virtual bool supportsFullScreenForElement(const Element*, bool withKeyboard); - virtual void enterFullScreenForElement(Element*); - virtual void exitFullScreenForElement(Element*); - void cancelFullScreen(); -#endif - - virtual bool shouldRubberBandInDirection(ScrollDirection) const { return true; } - virtual void numWheelEventHandlersChanged(unsigned) { } - -#if USE(ACCELERATED_COMPOSITING) - virtual void attachRootGraphicsLayer(Frame*, GraphicsLayer*); - virtual void setNeedsOneShotDrawingSynchronization(); - virtual void scheduleCompositingLayerFlush(); - virtual CompositingTriggerFlags allowedCompositingTriggers() const; -#endif - - void performAllPendingScrolls(); - void paint(Timer<ChromeClient>*); - void forcePaint(); - void widgetSizeChanged(const IntSize& oldWidgetSize, IntSize newSize); - - WebKitWebView* webView() { return m_webView; } - - private: - WebKitWebView* m_webView; - GtkAdjustmentWatcher m_adjustmentWatcher; - KURL m_hoveredLinkURL; - unsigned int m_closeSoonTimer; - - Timer <ChromeClient> m_displayTimer; - bool m_forcePaint; - Region m_dirtyRegion; - Vector<IntRect> m_rectsToScroll; - Vector<IntSize> m_scrollOffsets; - double m_lastDisplayTime; - unsigned int m_repaintSoonSourceId; - -#if ENABLE(FULLSCREEN_API) - RefPtr<Element> m_fullScreenElement; -#endif - }; -} - -#endif // ChromeClient_h diff --git a/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp deleted file mode 100644 index e0c3ed9d1..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" - -#if ENABLE(CONTEXT_MENUS) - -#include "ContextMenuClientGtk.h" - -#include "ContextMenu.h" -#include "ContextMenuController.h" -#include "HitTestResult.h" -#include "KURL.h" -#include "LocalizedStrings.h" -#include "NotImplemented.h" -#include "Page.h" -#include "webkitwebviewprivate.h" -#include <glib-object.h> -#include <glib/gi18n-lib.h> -#include <gtk/gtk.h> -#include <wtf/text/CString.h> - -using namespace WebCore; - -namespace WebKit { - -ContextMenuClient::ContextMenuClient(WebKitWebView *webView) - : m_webView(webView) -{ -} - -void ContextMenuClient::contextMenuDestroyed() -{ - delete this; -} - -static GtkWidget* inputMethodsMenuItem (WebKitWebView* webView) -{ - if (gtk_major_version > 2 || (gtk_major_version == 2 && gtk_minor_version >= 10)) { - GtkSettings* settings = webView ? gtk_widget_get_settings(GTK_WIDGET(webView)) : gtk_settings_get_default(); - - gboolean showMenu = TRUE; - if (settings) - g_object_get(settings, "gtk-show-input-method-menu", &showMenu, NULL); - if (!showMenu) - return 0; - } - - WebKitWebViewPrivate* priv = webView->priv; - ContextMenu imContextMenu; - gtk_im_multicontext_append_menuitems(GTK_IM_MULTICONTEXT(priv->imFilter.context()), GTK_MENU_SHELL(imContextMenu.platformDescription())); - - ContextMenuItem menuItem(ActionType, ContextMenuItemTagInputMethods, contextMenuItemTagInputMethods(), &imContextMenu); - imContextMenu.releasePlatformDescription(); - - return GTK_WIDGET(menuItem.releasePlatformDescription()); -} - -static int getUnicodeMenuItemPosition(GtkMenu* menu) -{ - GOwnPtr<GList> items(gtk_container_get_children(GTK_CONTAINER(menu))); - int unicodeMenuItemPosition = -1; - GList* iter; - int i = 0; - for (iter = items.get(), i = 0; iter; iter = g_list_next(iter), ++i) { - GtkMenuItem* item = GTK_MENU_ITEM(iter->data); - if (GTK_IS_SEPARATOR_MENU_ITEM(item)) - continue; - if (String::fromUTF8(gtk_menu_item_get_label(item)) == contextMenuItemTagUnicode()) { - unicodeMenuItemPosition = i; - break; - } - } - return unicodeMenuItemPosition; -} - -PlatformMenuDescription ContextMenuClient::getCustomMenuFromDefaultItems(ContextMenu* menu) -{ - GtkMenu* gtkmenu = menu->releasePlatformDescription(); - - WebKitWebView* webView = m_webView; - HitTestResult result = core(webView)->contextMenuController()->hitTestResult(); - - if (result.isContentEditable()) { - GtkWidget* imContextMenu = inputMethodsMenuItem(webView); - if (!imContextMenu) - return gtkmenu; - - // Place the im context menu item right before the unicode menu item - // if it's present. - int unicodeMenuItemPosition = getUnicodeMenuItemPosition(gtkmenu); - if (unicodeMenuItemPosition == -1) { - GtkWidget* separator = gtk_separator_menu_item_new(); - gtk_menu_shell_append(GTK_MENU_SHELL(gtkmenu), separator); - gtk_widget_show(separator); - } - - gtk_menu_shell_insert(GTK_MENU_SHELL(gtkmenu), imContextMenu, unicodeMenuItemPosition); - gtk_widget_show(imContextMenu); - } - - return gtkmenu; -} - -void ContextMenuClient::contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) -{ - notImplemented(); -} - -void ContextMenuClient::downloadURL(const KURL& url) -{ - WebKitNetworkRequest* networkRequest = webkit_network_request_new(url.string().utf8().data()); - - webkit_web_view_request_download(m_webView, networkRequest); - g_object_unref(networkRequest); -} - -void ContextMenuClient::copyImageToClipboard(const HitTestResult&) -{ - notImplemented(); -} - -void ContextMenuClient::searchWithGoogle(const Frame*) -{ - notImplemented(); -} - -void ContextMenuClient::lookUpInDictionary(Frame*) -{ - notImplemented(); -} - -void ContextMenuClient::speak(const String&) -{ - notImplemented(); -} - -void ContextMenuClient::stopSpeaking() -{ - notImplemented(); -} - -bool ContextMenuClient::isSpeaking() -{ - notImplemented(); - return false; -} - -} - -#endif // ENABLE(CONTEXT_MENUS) - diff --git a/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h deleted file mode 100644 index d6774b583..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef ContextMenuClientGtk_h -#define ContextMenuClientGtk_h - -#if ENABLE(CONTEXT_MENUS) - -#include "ContextMenuClient.h" - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebCore { - class ContextMenu; -} - -namespace WebKit { - - class ContextMenuClient : public WebCore::ContextMenuClient - { - public: - ContextMenuClient(WebKitWebView*); - - virtual void contextMenuDestroyed(); - - virtual WebCore::PlatformMenuDescription getCustomMenuFromDefaultItems(WebCore::ContextMenu*); - virtual void contextMenuItemSelected(WebCore::ContextMenuItem*, const WebCore::ContextMenu*); - - virtual void downloadURL(const WebCore::KURL& url); - virtual void copyImageToClipboard(const WebCore::HitTestResult&); - virtual void searchWithGoogle(const WebCore::Frame*); - virtual void lookUpInDictionary(WebCore::Frame*); - virtual void speak(const WTF::String&); - virtual void stopSpeaking(); - virtual bool isSpeaking(); - - private: - WebKitWebView* m_webView; - }; -} - -#endif // ENABLE(CONTEXT_MENUS) -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.cpp deleted file mode 100644 index 4ad927eff..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2011 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" - -#if ENABLE(DEVICE_ORIENTATION) -#include "DeviceMotionClientGtk.h" - -#include "NotImplemented.h" - -using namespace WebCore; - -namespace WebKit { - -DeviceMotionClientGtk::DeviceMotionClientGtk() -{ -} - -DeviceMotionClientGtk::~DeviceMotionClientGtk() -{ -} - -void DeviceMotionClientGtk::deviceMotionControllerDestroyed() -{ - delete this; -} - -void DeviceMotionClientGtk::setController(DeviceMotionController* controller) -{ - m_controller = controller; -} - -void DeviceMotionClientGtk::startUpdating() -{ - notImplemented(); -} - -void DeviceMotionClientGtk::stopUpdating() -{ - notImplemented(); -} - -DeviceMotionData* DeviceMotionClientGtk::lastMotion() const -{ - notImplemented(); - return 0; -} - -} // namespece WebKit - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.h deleted file mode 100644 index 3c5f45bbb..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DeviceMotionClientGtk.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2011 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ -#ifndef DeviceMotionClientGtk_h -#define DeviceMotionClientGtk_h - -#include "DeviceMotionClient.h" -#include "DeviceMotionData.h" - -namespace WebKit { - -class DeviceMotionClientGtk : public WebCore::DeviceMotionClient { -public: - DeviceMotionClientGtk(); - virtual ~DeviceMotionClientGtk(); - - virtual void setController(WebCore::DeviceMotionController*); - virtual void startUpdating(); - virtual void stopUpdating(); - virtual WebCore::DeviceMotionData* lastMotion() const; - virtual void deviceMotionControllerDestroyed(); - -private: - WebCore::DeviceMotionController* m_controller; -}; - -} // namespece WebKit - -#endif // DeviceMotionClientGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.cpp deleted file mode 100644 index 36d303b27..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.cpp +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2011 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" - -#if ENABLE(DEVICE_ORIENTATION) -#include "DeviceOrientationClientGtk.h" - -#include "NotImplemented.h" - -using namespace WebCore; - -namespace WebKit { - -DeviceOrientationClientGtk::DeviceOrientationClientGtk() -{ -} - -DeviceOrientationClientGtk::~DeviceOrientationClientGtk() -{ -} - -void DeviceOrientationClientGtk::deviceOrientationControllerDestroyed() -{ - delete this; -} - -void DeviceOrientationClientGtk::setController(DeviceOrientationController* controller) -{ - m_controller = controller; -} - -void DeviceOrientationClientGtk::startUpdating() -{ - notImplemented(); -} - -void DeviceOrientationClientGtk::stopUpdating() -{ - notImplemented(); -} - -WebCore::DeviceOrientationData* DeviceOrientationClientGtk::lastOrientation() const -{ - notImplemented(); - return 0; -} - -} // namespace WebKit -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.h deleted file mode 100644 index fcaa2d2e8..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DeviceOrientationClientGtk.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - * Copyright (C) 2011 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ -#ifndef DeviceOrientationClientGtk_h -#define DeviceOrientationClientGtk_h - -#include "DeviceOrientationClient.h" -#include "DeviceOrientationData.h" - -namespace WebKit { - -class DeviceOrientationClientGtk : public WebCore::DeviceOrientationClient { -public: - DeviceOrientationClientGtk(); - virtual ~DeviceOrientationClientGtk(); - - virtual void setController(WebCore::DeviceOrientationController*); - virtual void startUpdating(); - virtual void stopUpdating(); - virtual WebCore::DeviceOrientationData* lastOrientation() const; - virtual void deviceOrientationControllerDestroyed(); - -private: - WebCore::DeviceOrientationController* m_controller; -}; - -} // namespace WebKit - -#endif // DeviceOrientationClientGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.cpp deleted file mode 100644 index 1edc71260..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2009 Jan Michael Alonzo - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "DocumentLoaderGtk.h" - -#include "webkitwebdatasource.h" -#include "webkitwebdatasourceprivate.h" -#include <wtf/gobject/GRefPtr.h> - -using namespace WebCore; - -namespace WebKit { - -DocumentLoader::DocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) - : WebCore::DocumentLoader(request, substituteData) - , m_isDataSourceReffed(false) - , m_dataSource(0) -{ -} - -void DocumentLoader::setDataSource(WebKitWebDataSource* dataSource) -{ - ASSERT(!m_dataSource); - - m_dataSource = dataSource; - refDataSource(); -} - -void DocumentLoader::detachDataSource() -{ - unrefDataSource(); -} - -void DocumentLoader::attachToFrame() -{ - WebCore::DocumentLoader::attachToFrame(); - - if (m_dataSource) { - refDataSource(); - return; - } - - // We may get to here without having a datasource, when the data - // is coming from the page cache. - GRefPtr<WebKitWebDataSource> dataSource(adoptGRef(kitNew(this))); - setDataSource(dataSource.get()); -} - -void DocumentLoader::detachFromFrame() -{ - WebCore::DocumentLoader::detachFromFrame(); - - if (m_loadingResources.isEmpty()) - unrefDataSource(); -} - -void DocumentLoader::increaseLoadCount(unsigned long identifier) -{ - ASSERT(m_dataSource); - - if (m_loadingResources.contains(identifier)) - return; - m_loadingResources.add(identifier); - refDataSource(); -} - -void DocumentLoader::decreaseLoadCount(unsigned long identifier) -{ - HashSet<unsigned long>::iterator it = m_loadingResources.find(identifier); - - // It is valid for a load to be cancelled before it's started. - if (it == m_loadingResources.end()) - return; - - m_loadingResources.remove(it); - - if (m_loadingResources.isEmpty() && !frame()) - unrefDataSource(); -} - -// helper methos to avoid ref count churn -void DocumentLoader::refDataSource() -{ - if (!m_dataSource || m_isDataSourceReffed) - return; - m_isDataSourceReffed = true; - g_object_ref(m_dataSource); -} -void DocumentLoader::unrefDataSource() -{ - if (!m_isDataSourceReffed) - return; - ASSERT(m_dataSource); - m_isDataSourceReffed = false; - g_object_unref(m_dataSource); - m_dataSource = 0; -} - -} // end namespace WebKit diff --git a/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.h b/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.h deleted file mode 100644 index c601bc50a..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DocumentLoaderGtk.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2009 Jan Michael Alonzo - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef DocumentLoaderGtk_h -#define DocumentLoaderGtk_h - -#include "DocumentLoader.h" -#include "webkitdefines.h" -#include "wtf/HashSet.h" - -namespace WebCore { - class ResourceRequest; - class SubstituteData; -} - -namespace WebKit { - -class DocumentLoader : public WebCore::DocumentLoader { -public: - static PassRefPtr<WebKit::DocumentLoader> create(const WebCore::ResourceRequest& request, const WebCore::SubstituteData& data) - { - return adoptRef(new DocumentLoader(request, data)); - } - - void setDataSource(WebKitWebDataSource*); - void detachDataSource(); - WebKitWebDataSource* dataSource() const { return m_dataSource; } - - void increaseLoadCount(unsigned long identifier); - void decreaseLoadCount(unsigned long identifier); - -private: - DocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); - - virtual void attachToFrame(); - virtual void detachFromFrame(); - - void refDataSource(); - void unrefDataSource(); - - bool m_isDataSourceReffed; - WebKitWebDataSource* m_dataSource; - HashSet<unsigned long> m_loadingResources; -}; - -} // end namespace WebKit - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp deleted file mode 100644 index e39b470e2..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2009, 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "DragClientGtk.h" - -#include "Clipboard.h" -#include "ClipboardUtilitiesGtk.h" -#include "DataObjectGtk.h" -#include "Document.h" -#include "DragController.h" -#include "Element.h" -#include "Frame.h" -#include "GOwnPtrGtk.h" -#include "GRefPtrGtk.h" -#include "GtkVersioning.h" -#include "NotImplemented.h" -#include "Pasteboard.h" -#include "PasteboardHelper.h" -#include "RenderObject.h" -#include "webkitwebframeprivate.h" -#include "webkitwebviewprivate.h" -#include "webkitwebview.h" -#include <gdk/gdk.h> -#include <gtk/gtk.h> - -using namespace WebCore; - -namespace WebKit { - -DragClient::DragClient(WebKitWebView* webView) - : m_webView(webView) - , m_startPos(0, 0) -{ -} - -DragClient::~DragClient() -{ -} - -void DragClient::willPerformDragDestinationAction(DragDestinationAction, DragData*) -{ -} - -void DragClient::willPerformDragSourceAction(DragSourceAction, const IntPoint& startPos, Clipboard*) -{ - m_startPos = startPos; -} - -DragDestinationAction DragClient::actionMaskForDrag(DragData*) -{ - notImplemented(); - return DragDestinationActionAny; -} - -DragSourceAction DragClient::dragSourceActionMaskForPoint(const IntPoint&) -{ - notImplemented(); - return DragSourceActionAny; -} - -void DragClient::startDrag(DragImageRef image, const IntPoint& dragImageOrigin, const IntPoint& eventPos, Clipboard* clipboard, Frame* frame, bool linkDrag) -{ - WebKitWebView* webView = webkit_web_frame_get_web_view(kit(frame)); - RefPtr<DataObjectGtk> dataObject = clipboard->pasteboard().dataObject(); - GRefPtr<GtkTargetList> targetList = adoptGRef(PasteboardHelper::defaultPasteboardHelper()->targetListForDataObject(dataObject.get())); - GOwnPtr<GdkEvent> currentEvent(gtk_get_current_event()); - - GdkDragContext* context = gtk_drag_begin(GTK_WIDGET(m_webView), targetList.get(), dragOperationToGdkDragActions(clipboard->sourceOperation()), 1, currentEvent.get()); - webView->priv->dragAndDropHelper.startedDrag(context, dataObject.get()); - - // A drag starting should prevent a double-click from happening. This might - // happen if a drag is followed very quickly by another click (like in the DRT). - webView->priv->clickCounter.reset(); - - if (image) { - m_dragIcon.setImage(image); - m_dragIcon.useForDrag(context, IntPoint(eventPos - dragImageOrigin)); - } else - gtk_drag_set_icon_default(context); -} - -void DragClient::dragControllerDestroyed() -{ - delete this; -} -} diff --git a/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.h deleted file mode 100644 index 76c759601..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DragClientGtk.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * Copyright (C) 2007 Holger Hans Peter Freyther - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef DragClientGtk_h -#define DragClientGtk_h - -#include "DragClient.h" -#include "DragIcon.h" -#include <wtf/gobject/GRefPtr.h> - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebKit { - - class DragClient : public WebCore::DragClient { - public: - DragClient(WebKitWebView*); - ~DragClient(); - - virtual void willPerformDragDestinationAction(WebCore::DragDestinationAction, WebCore::DragData*); - virtual void willPerformDragSourceAction(WebCore::DragSourceAction, const WebCore::IntPoint&, WebCore::Clipboard*); - virtual WebCore::DragDestinationAction actionMaskForDrag(WebCore::DragData*); - - virtual WebCore::DragSourceAction dragSourceActionMaskForPoint(const WebCore::IntPoint& windowPoint); - - virtual void startDrag(WebCore::DragImageRef dragImage, const WebCore::IntPoint& dragImageOrigin, const WebCore::IntPoint& eventPos, WebCore::Clipboard*, WebCore::Frame*, bool linkDrag = false); - - virtual void dragControllerDestroyed(); - - private: - WebKitWebView* m_webView; - WebCore::IntPoint m_startPos; - WebCore::DragIcon m_dragIcon; - }; -} - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp deleted file mode 100644 index 4174a1eb1..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.cpp +++ /dev/null @@ -1,744 +0,0 @@ -/* - * Copyright (C) Research In Motion Limited 2010. All rights reserved. - * Copyright (C) 2010 Joone Hur <joone@kldp.org> - * Copyright (C) 2009 Google Inc. All rights reserved. - * Copyright (C) 2011 Igalia S.L. - * Copyright (C) 2012 Apple Inc. 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "DumpRenderTreeSupportGtk.h" - -#include "APICast.h" -#include "AXObjectCache.h" -#include "AccessibilityObject.h" -#include "AnimationController.h" -#include "ApplicationCacheStorage.h" -#include "Chrome.h" -#include "ChromeClientGtk.h" -#include "DOMWrapperWorld.h" -#include "Document.h" -#include "Editor.h" -#include "EditorClientGtk.h" -#include "Element.h" -#include "FocusController.h" -#include "FrameTree.h" -#include "FrameView.h" -#include "GCController.h" -#include "GeolocationClientMock.h" -#include "GeolocationController.h" -#include "GeolocationError.h" -#include "GeolocationPosition.h" -#include "GraphicsContext.h" -#include "HTMLInputElement.h" -#include "JSCJSValue.h" -#include "JSCSSStyleDeclaration.h" -#include "JSDOMWindow.h" -#include "JSDocument.h" -#include "JSElement.h" -#include "JSLock.h" -#include "JSNodeList.h" -#include "MemoryCache.h" -#include "MutationObserver.h" -#include "NodeList.h" -#include "PageGroup.h" -#include "PrintContext.h" -#include "RenderListItem.h" -#include "RenderTreeAsText.h" -#include "RenderView.h" -#include "ResourceLoadScheduler.h" -#include "RuntimeEnabledFeatures.h" -#include "SchemeRegistry.h" -#include "SecurityOrigin.h" -#include "SecurityPolicy.h" -#include "Settings.h" -#include "TextIterator.h" -#include "WebKitAccessibleWrapperAtk.h" -#include "webkitglobalsprivate.h" -#include "webkitwebframe.h" -#include "webkitwebframeprivate.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include <JavaScriptCore/APICast.h> -#include <wtf/text/WTFString.h> - -using namespace JSC; -using namespace WebCore; -using namespace WebKit; - -bool DumpRenderTreeSupportGtk::s_drtRun = false; -bool DumpRenderTreeSupportGtk::s_linksIncludedInTabChain = true; -DumpRenderTreeSupportGtk::FrameLoadEventCallback DumpRenderTreeSupportGtk::s_frameLoadEventCallback = 0; -DumpRenderTreeSupportGtk::AuthenticationCallback DumpRenderTreeSupportGtk::s_authenticationCallback = 0; - -DumpRenderTreeSupportGtk::DumpRenderTreeSupportGtk() -{ -} - -DumpRenderTreeSupportGtk::~DumpRenderTreeSupportGtk() -{ -} - -void DumpRenderTreeSupportGtk::setDumpRenderTreeModeEnabled(bool enabled) -{ - s_drtRun = enabled; -} - -bool DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() -{ - return s_drtRun; -} -void DumpRenderTreeSupportGtk::setLinksIncludedInFocusChain(bool enabled) -{ - s_linksIncludedInTabChain = enabled; -} - -bool DumpRenderTreeSupportGtk::linksIncludedInFocusChain() -{ - return s_linksIncludedInTabChain; -} - -/** - * getFrameChildren: - * @frame: a #WebKitWebFrame - * - * Return value: child frames of @frame - */ -GSList* DumpRenderTreeSupportGtk::getFrameChildren(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - GSList* children = 0; - for (Frame* child = coreFrame->tree()->firstChild(); child; child = child->tree()->nextSibling()) { - WebKitWebFrame* kitFrame = kit(child); - if (kitFrame) - children = g_slist_append(children, kitFrame); - } - - return children; -} - -/** - * getInnerText: - * @frame: a #WebKitWebFrame - * - * Return value: inner text of @frame - */ -CString DumpRenderTreeSupportGtk::getInnerText(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), CString("")); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return CString(""); - - FrameView* view = coreFrame->view(); - if (view && view->layoutPending()) - view->layout(); - - Element* documentElement = coreFrame->document()->documentElement(); - if (!documentElement) - return CString(""); - return documentElement->innerText().utf8(); -} - -/** - * dumpRenderTree: - * @frame: a #WebKitWebFrame - * - * Return value: Non-recursive render tree dump of @frame - */ -CString DumpRenderTreeSupportGtk::dumpRenderTree(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), CString("")); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return CString(""); - - FrameView* view = coreFrame->view(); - - if (view && view->layoutPending()) - view->layout(); - - return externalRepresentation(coreFrame).utf8(); -} - -void DumpRenderTreeSupportGtk::addUserScript(WebKitWebFrame* frame, const char* sourceCode, bool runAtStart, bool allFrames) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - WebKitWebView* webView = getViewFromFrame(frame); - Page* page = core(webView); - page->group().addUserScriptToWorld(mainThreadNormalWorld(), sourceCode, KURL(), Vector<String>(), Vector<String>(), - runAtStart ? InjectAtDocumentStart : InjectAtDocumentEnd, allFrames ? InjectInAllFrames : InjectInTopFrameOnly); -} - -/** - * addUserStyleSheet - * @frame: a #WebKitWebFrame - * @sourceCode: code of a user stylesheet - * - */ -void DumpRenderTreeSupportGtk::addUserStyleSheet(WebKitWebFrame* frame, const char* sourceCode, bool allFrames) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - WebKitWebView* webView = getViewFromFrame(frame); - Page* page = core(webView); - page->group().addUserStyleSheetToWorld(mainThreadNormalWorld(), sourceCode, KURL(), Vector<String>(), Vector<String>(), allFrames ? InjectInAllFrames : InjectInTopFrameOnly); -} - -/** - * getPendingUnloadEventCount: - * @frame: a #WebKitWebFrame - * - * Return value: number of pending unload events - */ -guint DumpRenderTreeSupportGtk::getPendingUnloadEventCount(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - return core(frame)->document()->domWindow()->pendingUnloadEventListeners(); -} - -void DumpRenderTreeSupportGtk::clearMainFrameName(WebKitWebFrame* frame) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - core(frame)->tree()->clearName(); -} - -AtkObject* DumpRenderTreeSupportGtk::getRootAccessibleElement(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - -#if HAVE(ACCESSIBILITY) - if (!AXObjectCache::accessibilityEnabled()) - AXObjectCache::enableAccessibility(); - - WebKitWebFramePrivate* priv = frame->priv; - if (!priv->coreFrame || !priv->coreFrame->document()) - return 0; - - AtkObject* wrapper = priv->coreFrame->document()->axObjectCache()->rootObject()->wrapper(); - if (!wrapper) - return 0; - - return wrapper; -#else - return 0; -#endif -} - -AtkObject* DumpRenderTreeSupportGtk::getFocusedAccessibleElement(WebKitWebFrame* frame) -{ -#if HAVE(ACCESSIBILITY) - AtkObject* wrapper = getRootAccessibleElement(frame); - if (!wrapper) - return 0; - - return webkitAccessibleGetFocusedElement(WEBKIT_ACCESSIBLE(wrapper)); -#else - return 0; -#endif -} - -void DumpRenderTreeSupportGtk::executeCoreCommandByName(WebKitWebView* webView, const gchar* name, const gchar* value) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(name); - g_return_if_fail(value); - - core(webView)->focusController()->focusedOrMainFrame()->editor().command(name).execute(value); -} - -bool DumpRenderTreeSupportGtk::isCommandEnabled(WebKitWebView* webView, const gchar* name) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - g_return_val_if_fail(name, FALSE); - - return core(webView)->focusController()->focusedOrMainFrame()->editor().command(name).isEnabled(); -} - -void DumpRenderTreeSupportGtk::setComposition(WebKitWebView* webView, const char* text, int start, int length) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(text); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return; - - Editor& editor = frame->editor(); - if (!editor.canEdit() && !editor.hasComposition()) - return; - - String compositionString = String::fromUTF8(text); - Vector<CompositionUnderline> underlines; - underlines.append(CompositionUnderline(0, compositionString.length(), Color(0, 0, 0), false)); - editor.setComposition(compositionString, underlines, start, start + length); -} - -bool DumpRenderTreeSupportGtk::hasComposition(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), false); - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return false; - - return frame->editor().hasComposition(); -} - -bool DumpRenderTreeSupportGtk::compositionRange(WebKitWebView* webView, int* start, int* length) -{ - g_return_val_if_fail(start && length, false); - *start = *length = 0; - - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), false); - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return false; - - Editor& editor = frame->editor(); - if (!editor.hasComposition()) - return false; - - *start = editor.compositionStart(); - *length = editor.compositionEnd() - *start; - return true; -} - -void DumpRenderTreeSupportGtk::confirmComposition(WebKitWebView* webView, const char* text) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return; - - Editor& editor = frame->editor(); - - if (!editor.hasComposition()) { - editor.insertText(String::fromUTF8(text), 0); - return; - } - if (text) { - editor.confirmComposition(String::fromUTF8(text)); - return; - } - editor.confirmComposition(); -} - -void DumpRenderTreeSupportGtk::doCommand(WebKitWebView* webView, const char* command) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return; - - Editor& editor = frame->editor(); - - String commandString(command); - // Remove ending : here. - if (commandString.endsWith(":", true)) - commandString = commandString.left(commandString.length() - 1); - - // Make the first char in upper case. - String firstChar = commandString.left(1); - commandString = commandString.right(commandString.length() - 1); - firstChar.makeUpper(); - commandString.insert(firstChar, 0); - - editor.command(commandString).execute(); -} - -bool DumpRenderTreeSupportGtk::firstRectForCharacterRange(WebKitWebView* webView, int location, int length, cairo_rectangle_int_t* rect) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), false); - g_return_val_if_fail(rect, false); - - if ((location + length < location) && (location + length)) - length = 0; - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return false; - - Editor& editor = frame->editor(); - - RefPtr<Range> range = TextIterator::rangeFromLocationAndLength(frame->selection()->rootEditableElementOrDocumentElement(), location, length); - if (!range) - return false; - - *rect = editor.firstRectForRange(range.get()); - return true; -} - -bool DumpRenderTreeSupportGtk::selectedRange(WebKitWebView* webView, int* start, int* length) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), false); - g_return_val_if_fail(start && length, false); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return false; - - RefPtr<Range> range = frame->selection()->toNormalizedRange().get(); - if (!range) - return false; - - Element* selectionRoot = frame->selection()->rootEditableElement(); - Element* scope = selectionRoot ? selectionRoot : frame->document()->documentElement(); - - RefPtr<Range> testRange = Range::create(scope->document(), scope, 0, range->startContainer(), range->startOffset()); - ASSERT(testRange->startContainer() == scope); - *start = TextIterator::rangeLength(testRange.get()); - - ExceptionCode ec; - testRange->setEnd(range->endContainer(), range->endOffset(), ec); - ASSERT(testRange->startContainer() == scope); - *length = TextIterator::rangeLength(testRange.get()); - - return true; -} - -void DumpRenderTreeSupportGtk::setDefersLoading(WebKitWebView* webView, bool defers) -{ - core(webView)->setDefersLoading(defers); -} - -void DumpRenderTreeSupportGtk::forceWebViewPaint(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - static_cast<WebKit::ChromeClient*>(core(webView)->chrome().client())->forcePaint(); -} - -void DumpRenderTreeSupportGtk::whiteListAccessFromOrigin(const gchar* sourceOrigin, const gchar* destinationProtocol, const gchar* destinationHost, bool allowDestinationSubdomains) -{ - SecurityPolicy::addOriginAccessWhitelistEntry(*SecurityOrigin::createFromString(sourceOrigin), destinationProtocol, destinationHost, allowDestinationSubdomains); -} - -void DumpRenderTreeSupportGtk::removeWhiteListAccessFromOrigin(const char* sourceOrigin, const char* destinationProtocol, const char* destinationHost, bool allowDestinationSubdomains) -{ - SecurityPolicy::removeOriginAccessWhitelistEntry(*SecurityOrigin::createFromString(sourceOrigin), destinationProtocol, destinationHost, allowDestinationSubdomains); -} - -void DumpRenderTreeSupportGtk::resetOriginAccessWhiteLists() -{ - SecurityPolicy::resetOriginAccessWhitelists(); -} - -void DumpRenderTreeSupportGtk::gcCollectJavascriptObjects() -{ - gcController().garbageCollectNow(); -} - -void DumpRenderTreeSupportGtk::gcCollectJavascriptObjectsOnAlternateThread(bool waitUntilDone) -{ - gcController().garbageCollectOnAlternateThreadForDebugging(waitUntilDone); -} - -unsigned long DumpRenderTreeSupportGtk::gcCountJavascriptObjects() -{ - JSC::JSLockHolder lock(JSDOMWindow::commonVM()); - return JSDOMWindow::commonVM()->heap.objectCount(); -} - -void DumpRenderTreeSupportGtk::layoutFrame(WebKitWebFrame* frame) -{ - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - FrameView* view = coreFrame->view(); - if (!view) - return; - - view->layout(); -} - -void DumpRenderTreeSupportGtk::clearOpener(WebKitWebFrame* frame) -{ - Frame* coreFrame = core(frame); - if (coreFrame) - coreFrame->loader()->setOpener(0); -} - -bool DumpRenderTreeSupportGtk::findString(WebKitWebView* webView, const gchar* targetString, WebKitFindOptions findOptions) -{ - return core(webView)->findString(String::fromUTF8(targetString), findOptions); -} - -CString DumpRenderTreeSupportGtk::accessibilityHelpText(AtkObject* axObject) -{ - if (!axObject || !WEBKIT_IS_ACCESSIBLE(axObject)) - return CString(); - - AccessibilityObject* coreObject = webkitAccessibleGetAccessibilityObject(WEBKIT_ACCESSIBLE(axObject)); - if (!coreObject) - return CString(); - - return coreObject->helpText().utf8(); -} - -void DumpRenderTreeSupportGtk::setValueForUser(JSContextRef context, JSValueRef nodeObject, JSStringRef value) -{ - JSC::ExecState* exec = toJS(context); - Element* element = toElement(toJS(exec, nodeObject)); - if (!element) - return; - HTMLInputElement* inputElement = element->toInputElement(); - if (!inputElement) - return; - - size_t bufferSize = JSStringGetMaximumUTF8CStringSize(value); - GOwnPtr<gchar> valueBuffer(static_cast<gchar*>(g_malloc(bufferSize))); - JSStringGetUTF8CString(value, valueBuffer.get(), bufferSize); - inputElement->setValueForUser(String::fromUTF8(valueBuffer.get())); -} - -void DumpRenderTreeSupportGtk::rectangleForSelection(WebKitWebFrame* frame, cairo_rectangle_int_t* rectangle) -{ - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - IntRect bounds = enclosingIntRect(coreFrame->selection()->bounds()); - rectangle->x = bounds.x(); - rectangle->y = bounds.y(); - rectangle->width = bounds.width(); - rectangle->height = bounds.height(); -} - -bool DumpRenderTreeSupportGtk::shouldClose(WebKitWebFrame* frame) -{ - Frame* coreFrame = core(frame); - if (!coreFrame) - return true; - return coreFrame->loader()->shouldClose(); -} - -void DumpRenderTreeSupportGtk::scalePageBy(WebKitWebView* webView, float scaleFactor, float x, float y) -{ - core(webView)->setPageScaleFactor(scaleFactor, IntPoint(x, y)); -} - -void DumpRenderTreeSupportGtk::resetGeolocationClientMock(WebKitWebView* webView) -{ -#if ENABLE(GEOLOCATION) - GeolocationClientMock* mock = static_cast<GeolocationClientMock*>(GeolocationController::from(core(webView))->client()); - mock->reset(); -#endif -} - -void DumpRenderTreeSupportGtk::setMockGeolocationPermission(WebKitWebView* webView, bool allowed) -{ -#if ENABLE(GEOLOCATION) - GeolocationClientMock* mock = static_cast<GeolocationClientMock*>(GeolocationController::from(core(webView))->client()); - mock->setPermission(allowed); -#endif -} - -void DumpRenderTreeSupportGtk::setMockGeolocationPosition(WebKitWebView* webView, double latitude, double longitude, double accuracy) -{ -#if ENABLE(GEOLOCATION) - GeolocationClientMock* mock = static_cast<GeolocationClientMock*>(GeolocationController::from(core(webView))->client()); - - double timestamp = g_get_real_time() / 1000000.0; - mock->setPosition(GeolocationPosition::create(timestamp, latitude, longitude, accuracy)); -#endif -} - -void DumpRenderTreeSupportGtk::setMockGeolocationPositionUnavailableError(WebKitWebView* webView, const gchar* errorMessage) -{ -#if ENABLE(GEOLOCATION) - GeolocationClientMock* mock = static_cast<GeolocationClientMock*>(GeolocationController::from(core(webView))->client()); - mock->setPositionUnavailableError(errorMessage); -#endif -} - -int DumpRenderTreeSupportGtk::numberOfPendingGeolocationPermissionRequests(WebKitWebView* webView) -{ -#if ENABLE(GEOLOCATION) - GeolocationClientMock* mock = static_cast<GeolocationClientMock*>(GeolocationController::from(core(webView))->client()); - return mock->numberOfPendingPermissionRequests(); -#else - return 0; -#endif -} - -void DumpRenderTreeSupportGtk::setPageCacheSupportsPlugins(WebKitWebView* webView, bool enabled) -{ - core(webView)->settings()->setPageCacheSupportsPlugins(enabled); -} - -void DumpRenderTreeSupportGtk::setCSSGridLayoutEnabled(WebKitWebView* webView, bool enabled) -{ - core(webView)->settings()->setCSSGridLayoutEnabled(enabled); -} - -void DumpRenderTreeSupportGtk::setCSSRegionsEnabled(WebKitWebView* webView, bool enabled) -{ - RuntimeEnabledFeatures::setCSSRegionsEnabled(enabled); -} - -void DumpRenderTreeSupportGtk::setCSSCustomFilterEnabled(WebKitWebView* webView, bool enabled) -{ -#if ENABLE(CSS_SHADERS) - core(webView)->settings()->setCSSCustomFilterEnabled(enabled); -#endif -} - -void DumpRenderTreeSupportGtk::setExperimentalContentSecurityPolicyFeaturesEnabled(bool enabled) -{ -#if ENABLE(CSP_NEXT) - RuntimeEnabledFeatures::setExperimentalContentSecurityPolicyFeaturesEnabled(enabled); -#endif -} - -void DumpRenderTreeSupportGtk::setSeamlessIFramesEnabled(bool enabled) -{ -#if ENABLE(IFRAME_SEAMLESS) - RuntimeEnabledFeatures::setSeamlessIFramesEnabled(enabled); -#endif -} - -void DumpRenderTreeSupportGtk::setShadowDOMEnabled(bool enabled) -{ -#if ENABLE(SHADOW_DOM) - RuntimeEnabledFeatures::setShadowDOMEnabled(enabled); -#endif -} - -void DumpRenderTreeSupportGtk::setStyleScopedEnabled(bool enabled) -{ -#if ENABLE(STYLE_SCOPED) - RuntimeEnabledFeatures::setStyleScopedEnabled(enabled); -#endif -} - -void DumpRenderTreeSupportGtk::deliverAllMutationsIfNecessary() -{ - MutationObserver::deliverAllMutations(); -} - -void DumpRenderTreeSupportGtk::setDomainRelaxationForbiddenForURLScheme(bool forbidden, const char* urlScheme) -{ - SchemeRegistry::setDomainRelaxationForbiddenForURLScheme(forbidden, String::fromUTF8(urlScheme)); -} - -void DumpRenderTreeSupportGtk::setSerializeHTTPLoads(bool enabled) -{ - resourceLoadScheduler()->setSerialLoadingEnabled(enabled); -} - -void DumpRenderTreeSupportGtk::setTracksRepaints(WebKitWebFrame* frame, bool tracks) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (coreFrame && coreFrame->view()) - coreFrame->view()->setTracksRepaints(tracks); -} - -bool DumpRenderTreeSupportGtk::isTrackingRepaints(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), false); - - Frame* coreFrame = core(frame); - if (coreFrame && coreFrame->view()) - return coreFrame->view()->isTrackingRepaints(); - - return false; -} - -GSList* DumpRenderTreeSupportGtk::trackedRepaintRects(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame || !coreFrame->view()) - return 0; - - GSList* rects = 0; - const Vector<IntRect>& repaintRects = coreFrame->view()->trackedRepaintRects(); - for (unsigned i = 0; i < repaintRects.size(); i++) { - GdkRectangle* rect = g_new0(GdkRectangle, 1); - rect->x = repaintRects[i].x(); - rect->y = repaintRects[i].y(); - rect->width = repaintRects[i].width(); - rect->height = repaintRects[i].height(); - rects = g_slist_append(rects, rect); - } - - return rects; -} - -void DumpRenderTreeSupportGtk::resetTrackedRepaints(WebKitWebFrame* frame) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (coreFrame && coreFrame->view()) - coreFrame->view()->resetTrackedRepaints(); -} - -void DumpRenderTreeSupportGtk::clearMemoryCache() -{ - memoryCache()->evictResources(); -} - -void DumpRenderTreeSupportGtk::clearApplicationCache() -{ - cacheStorage().empty(); - cacheStorage().vacuumDatabaseFile(); -} - -void DumpRenderTreeSupportGtk::setFrameLoadEventCallback(FrameLoadEventCallback frameLoadEventCallback) -{ - s_frameLoadEventCallback = frameLoadEventCallback; -} - -void DumpRenderTreeSupportGtk::setAuthenticationCallback(AuthenticationCallback authenticationCallback) -{ - s_authenticationCallback = authenticationCallback; -} - -void DumpRenderTreeSupportGtk::setPageVisibility(WebKitWebView* webView, WebCore::PageVisibilityState visibilityState, bool isInitialState) -{ -#if ENABLE(PAGE_VISIBILITY_API) - Page* page = core(webView); - if (!page) - return; - - page->setVisibilityState(visibilityState, isInitialState); -#endif -} diff --git a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h b/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h deleted file mode 100644 index 649e6a799..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/DumpRenderTreeSupportGtk.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) Research In Motion Limited 2010. All rights reserved. - * Copyright (C) 2012 Apple Inc. 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef DumpRenderTreeSupportGtk_h -#define DumpRenderTreeSupportGtk_h - -#include "JSStringRef.h" -#include "PageVisibilityState.h" -#include <atk/atk.h> -#include <glib.h> -#include <webkit/webkitdefines.h> -#include <wtf/text/CString.h> - -namespace WebKit { - -enum { - WebFindOptionsCaseInsensitive = 1 << 0, - WebFindOptionsAtWordStarts = 1 << 1, - WebFindOptionsTreatMedialCapitalAsWordStart = 1 << 2, - WebFindOptionsBackwards = 1 << 3, - WebFindOptionsWrapAround = 1 << 4, - WebFindOptionsStartInSelection = 1 << 5 -}; - -} -typedef unsigned WebKitFindOptions; - -class DumpRenderTreeSupportGtk { - -public: - DumpRenderTreeSupportGtk(); - ~DumpRenderTreeSupportGtk(); - - static void setDumpRenderTreeModeEnabled(bool); - static bool dumpRenderTreeModeEnabled(); - - static void setLinksIncludedInFocusChain(bool); - static bool linksIncludedInFocusChain(); - - static void clearOpener(WebKitWebFrame*); - - // FIXME: Move these to webkitwebframe.h once their API has been discussed. - static GSList* getFrameChildren(WebKitWebFrame*); - static WTF::CString getInnerText(WebKitWebFrame*); - static WTF::CString dumpRenderTree(WebKitWebFrame*); - static void addUserScript(WebKitWebFrame*, const char*, bool, bool); - static void addUserStyleSheet(WebKitWebFrame*, const char* sourceCode, bool allFrames); - static guint getPendingUnloadEventCount(WebKitWebFrame*); - static void clearMainFrameName(WebKitWebFrame*); - static AtkObject* getFocusedAccessibleElement(WebKitWebFrame*); - static AtkObject* getRootAccessibleElement(WebKitWebFrame*); - static void layoutFrame(WebKitWebFrame*); - static void setValueForUser(JSContextRef, JSValueRef, JSStringRef); - static bool shouldClose(WebKitWebFrame*); - - // WebKitWebView - static void executeCoreCommandByName(WebKitWebView*, const gchar* name, const gchar* value); - static bool isCommandEnabled(WebKitWebView*, const gchar* name); - static bool findString(WebKitWebView*, const gchar*, WebKitFindOptions); - static void rectangleForSelection(WebKitWebFrame*, cairo_rectangle_int_t*); - static void scalePageBy(WebKitWebView*, float, float, float); - static void setDefersLoading(WebKitWebView*, bool); - static void forceWebViewPaint(WebKitWebView*); - - // Accessibility - static WTF::CString accessibilityHelpText(AtkObject*); - - // TextInputController - static void setComposition(WebKitWebView*, const char*, int start, int length); - static bool hasComposition(WebKitWebView*); - static bool compositionRange(WebKitWebView*, int* start, int* length); - static void confirmComposition(WebKitWebView*, const char*); - static bool firstRectForCharacterRange(WebKitWebView*, int location, int length, cairo_rectangle_int_t*); - static bool selectedRange(WebKitWebView*, int* start, int* length); - static void doCommand(WebKitWebView*, const char*); - // GC - static void gcCollectJavascriptObjects(); - static void gcCollectJavascriptObjectsOnAlternateThread(bool waitUntilDone); - static unsigned long gcCountJavascriptObjects(); - - static void whiteListAccessFromOrigin(const gchar* sourceOrigin, const gchar* destinationProtocol, const gchar* destinationHost, bool allowDestinationSubdomains); - static void removeWhiteListAccessFromOrigin(const char* sourceOrigin, const char* destinationProtocol, const char* destinationHost, bool allowDestinationSubdomains); - static void resetOriginAccessWhiteLists(); - - static void resetGeolocationClientMock(WebKitWebView*); - static void setMockGeolocationPermission(WebKitWebView*, bool allowed); - static void setMockGeolocationPosition(WebKitWebView*, double latitude, double longitude, double accuracy); - static void setMockGeolocationPositionUnavailableError(WebKitWebView*, const gchar* errorMessage); - static int numberOfPendingGeolocationPermissionRequests(WebKitWebView*); - - static void setPageCacheSupportsPlugins(WebKitWebView*, bool enabled); - static void setCSSGridLayoutEnabled(WebKitWebView*, bool enabled); - static void setCSSRegionsEnabled(WebKitWebView*, bool enabled); - static void setCSSCustomFilterEnabled(WebKitWebView*, bool enabled); - static void setExperimentalContentSecurityPolicyFeaturesEnabled(bool); - static void setSeamlessIFramesEnabled(bool); - static void setShadowDOMEnabled(bool); - static void setStyleScopedEnabled(bool); - - static void deliverAllMutationsIfNecessary(); - static void setDomainRelaxationForbiddenForURLScheme(bool forbidden, const char* urlScheme); - static void setSerializeHTTPLoads(bool enabled); - - static void setTracksRepaints(WebKitWebFrame*, bool tracks); - static bool isTrackingRepaints(WebKitWebFrame*); - static GSList* trackedRepaintRects(WebKitWebFrame*); - static void resetTrackedRepaints(WebKitWebFrame*); - - static void clearMemoryCache(); - static void clearApplicationCache(); - - enum FrameLoadEvent { - WillPerformClientRedirectToURL, - DidCancelClientRedirect, - DidReceiveServerRedirectForProvisionalLoad, - DidDisplayInsecureContent, - DidDetectXSS, - }; - typedef void (*FrameLoadEventCallback)(WebKitWebFrame*, FrameLoadEvent, const char* url); - static void setFrameLoadEventCallback(FrameLoadEventCallback); - static FrameLoadEventCallback s_frameLoadEventCallback; - - typedef bool (*AuthenticationCallback) (CString& username, CString& password); - static void setAuthenticationCallback(AuthenticationCallback); - static AuthenticationCallback s_authenticationCallback; - static void setPageVisibility(WebKitWebView*, WebCore::PageVisibilityState, bool); - -private: - static bool s_drtRun; - static bool s_linksIncludedInTabChain; -}; - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp deleted file mode 100644 index 509090473..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp +++ /dev/null @@ -1,567 +0,0 @@ -/* - * Copyright (C) 2007 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2009 Diego Escalante Urrelo <diegoe@gnome.org> - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2009, 2010 Igalia S.L. - * Copyright (C) 2010, Martin Robinson <mrobinson@webkit.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "EditorClientGtk.h" - -#include "DataObjectGtk.h" -#include "DumpRenderTreeSupportGtk.h" -#include "Editor.h" -#include "EventNames.h" -#include "FocusController.h" -#include "Frame.h" -#include <glib.h> -#include "KeyboardEvent.h" -#include "markup.h" -#include "NotImplemented.h" -#include "Page.h" -#include "PasteboardHelper.h" -#include "PlatformKeyboardEvent.h" -#include "Settings.h" -#include "StylePropertySet.h" -#include "UndoStep.h" -#include "WebKitDOMCSSStyleDeclarationPrivate.h" -#include "WebKitDOMHTMLElementPrivate.h" -#include "WebKitDOMNodePrivate.h" -#include "WebKitDOMRangePrivate.h" -#include "WindowsKeyboardCodes.h" -#include "webkitglobals.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitspellchecker.h" -#include "webkitwebsettingsprivate.h" -#include "webkitwebviewprivate.h" -#include <wtf/text/CString.h> - -// Arbitrary depth limit for the undo stack, to keep it from using -// unbounded memory. This is the maximum number of distinct undoable -// actions -- unbroken stretches of typed characters are coalesced -// into a single action. -#define maximumUndoStackDepth 1000 - -using namespace WebCore; - -namespace WebKit { - -void EditorClient::willSetInputMethodState() -{ -} - -void EditorClient::setInputMethodState(bool active) -{ - m_webView->priv->imFilter.setEnabled(active); -} - -bool EditorClient::shouldShowUnicodeMenu() -{ - if (gtk_major_version > 2 || (gtk_major_version == 2 && gtk_minor_version >= 10)) { - GtkSettings* settings = gtk_widget_get_settings(GTK_WIDGET(m_webView)); - if (!settings) - return true; - - gboolean enabled; - g_object_get(settings, "gtk-show-unicode-menu", &enabled, NULL); - return enabled; - } - - return true; -} - -bool EditorClient::shouldDeleteRange(Range* range) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - g_signal_emit_by_name(m_webView, "should-delete-range", kitRange.get(), &accept); - return accept; -} - -bool EditorClient::isContinuousSpellCheckingEnabled() -{ - WebKitWebSettings* settings = webkit_web_view_get_settings(m_webView); - - gboolean enabled; - g_object_get(settings, "enable-spell-checking", &enabled, NULL); - - return enabled; -} - -bool EditorClient::isGrammarCheckingEnabled() -{ - notImplemented(); - return false; -} - -int EditorClient::spellCheckerDocumentTag() -{ - notImplemented(); - return 0; -} - -bool EditorClient::shouldBeginEditing(WebCore::Range* range) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - g_signal_emit_by_name(m_webView, "should-begin-editing", kitRange.get(), &accept); - return accept; -} - -bool EditorClient::shouldEndEditing(WebCore::Range* range) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - g_signal_emit_by_name(m_webView, "should-end-editing", kitRange.get(), &accept); - return accept; -} - -static WebKitInsertAction kit(EditorInsertAction action) -{ - switch (action) { - case EditorInsertActionTyped: - return WEBKIT_INSERT_ACTION_TYPED; - case EditorInsertActionPasted: - return WEBKIT_INSERT_ACTION_PASTED; - case EditorInsertActionDropped: - return WEBKIT_INSERT_ACTION_DROPPED; - } - ASSERT_NOT_REACHED(); - return WEBKIT_INSERT_ACTION_TYPED; -} - -bool EditorClient::shouldInsertText(const String& string, Range* range, EditorInsertAction action) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - g_signal_emit_by_name(m_webView, "should-insert-text", string.utf8().data(), kitRange.get(), kit(action), &accept); - return accept; -} - -static WebKitSelectionAffinity kit(EAffinity affinity) -{ - switch (affinity) { - case UPSTREAM: - return WEBKIT_SELECTION_AFFINITY_UPSTREAM; - case DOWNSTREAM: - return WEBKIT_SELECTION_AFFINITY_DOWNSTREAM; - } - ASSERT_NOT_REACHED(); - return WEBKIT_SELECTION_AFFINITY_UPSTREAM; -} - -bool EditorClient::shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity affinity, bool stillSelecting) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitFromRange(fromRange ? adoptGRef(kit(fromRange)) : 0); - GRefPtr<WebKitDOMRange> kitToRange(toRange ? adoptGRef(kit(toRange)) : 0); - g_signal_emit_by_name(m_webView, "should-change-selected-range", kitFromRange.get(), kitToRange.get(), - kit(affinity), stillSelecting, &accept); - return accept; -} - -bool EditorClient::shouldApplyStyle(WebCore::StylePropertySet* set, WebCore::Range* range) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMCSSStyleDeclaration> kitDeclaration(kit(set->mutableCopy()->ensureCSSStyleDeclaration())); - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - g_signal_emit_by_name(m_webView, "should-apply-style", kitDeclaration.get(), kitRange.get(), &accept); - return accept; -} - -bool EditorClient::shouldMoveRangeAfterDelete(WebCore::Range*, WebCore::Range*) -{ - notImplemented(); - return true; -} - -void EditorClient::didBeginEditing() -{ - g_signal_emit_by_name(m_webView, "editing-began"); -} - -void EditorClient::respondToChangedContents() -{ - g_signal_emit_by_name(m_webView, "user-changed-contents"); -} - -static WebKitWebView* viewSettingClipboard = 0; -static void collapseSelection(GtkClipboard* clipboard, WebKitWebView* webView) -{ - if (viewSettingClipboard && viewSettingClipboard == webView) - return; - - WebCore::Page* corePage = core(webView); - if (!corePage || !corePage->focusController()) - return; - - Frame* frame = corePage->focusController()->focusedOrMainFrame(); - - // Collapse the selection without clearing it - ASSERT(frame); - frame->selection()->setBase(frame->selection()->extent(), frame->selection()->affinity()); -} - -#if PLATFORM(X11) -static void setSelectionPrimaryClipboardIfNeeded(WebKitWebView* webView) -{ - if (!gtk_widget_has_screen(GTK_WIDGET(webView))) - return; - - GtkClipboard* clipboard = gtk_widget_get_clipboard(GTK_WIDGET(webView), GDK_SELECTION_PRIMARY); - DataObjectGtk* dataObject = DataObjectGtk::forClipboard(clipboard); - WebCore::Page* corePage = core(webView); - Frame* targetFrame = corePage->focusController()->focusedOrMainFrame(); - - if (!targetFrame->selection()->isRange()) - return; - - dataObject->clearAll(); - dataObject->setRange(targetFrame->selection()->toNormalizedRange()); - - viewSettingClipboard = webView; - GClosure* callback = g_cclosure_new_object(G_CALLBACK(collapseSelection), G_OBJECT(webView)); - g_closure_set_marshal(callback, g_cclosure_marshal_VOID__VOID); - PasteboardHelper::defaultPasteboardHelper()->writeClipboardContents(clipboard, PasteboardHelper::DoNotIncludeSmartPaste, callback); - viewSettingClipboard = 0; -} -#endif - -void EditorClient::respondToChangedSelection(Frame* frame) -{ - g_signal_emit_by_name(m_webView, "selection-changed"); - - if (!frame) - return; - -#if PLATFORM(X11) - setSelectionPrimaryClipboardIfNeeded(m_webView); -#endif - - if (frame->editor().cancelCompositionIfSelectionIsInvalid()) - m_webView->priv->imFilter.resetContext(); -} - -void EditorClient::didEndEditing() -{ - g_signal_emit_by_name(m_webView, "editing-ended"); -} - -void EditorClient::didWriteSelectionToPasteboard() -{ - notImplemented(); -} - -void EditorClient::willWriteSelectionToPasteboard(WebCore::Range*) -{ -} - -void EditorClient::getClientPasteboardDataForRange(WebCore::Range*, Vector<String>&, Vector<RefPtr<WebCore::SharedBuffer> >&) -{ -} - -void EditorClient::didSetSelectionTypesForPasteboard() -{ - notImplemented(); -} - -void EditorClient::registerUndoStep(WTF::PassRefPtr<WebCore::UndoStep> step) -{ - if (undoStack.size() == maximumUndoStackDepth) - undoStack.removeFirst(); - if (!m_isInRedo) - redoStack.clear(); - undoStack.append(step); -} - -void EditorClient::registerRedoStep(WTF::PassRefPtr<WebCore::UndoStep> step) -{ - redoStack.append(step); -} - -void EditorClient::clearUndoRedoOperations() -{ - undoStack.clear(); - redoStack.clear(); -} - -bool EditorClient::canCopyCut(WebCore::Frame*, bool defaultValue) const -{ - return defaultValue; -} - -bool EditorClient::canPaste(WebCore::Frame*, bool defaultValue) const -{ - return defaultValue; -} - -bool EditorClient::canUndo() const -{ - return !undoStack.isEmpty(); -} - -bool EditorClient::canRedo() const -{ - return !redoStack.isEmpty(); -} - -void EditorClient::undo() -{ - if (canUndo()) { - RefPtr<WebCore::UndoStep> step(*(--undoStack.end())); - undoStack.remove(--undoStack.end()); - // unapply will call us back to push this command onto the redo stack. - step->unapply(); - } -} - -void EditorClient::redo() -{ - if (canRedo()) { - RefPtr<WebCore::UndoStep> step(*(--redoStack.end())); - redoStack.remove(--redoStack.end()); - - ASSERT(!m_isInRedo); - m_isInRedo = true; - // reapply will call us back to push this command onto the undo stack. - step->reapply(); - m_isInRedo = false; - } -} - -bool EditorClient::shouldInsertNode(Node* node, Range* range, EditorInsertAction action) -{ - gboolean accept = TRUE; - GRefPtr<WebKitDOMRange> kitRange(adoptGRef(kit(range))); - GRefPtr<WebKitDOMNode> kitNode(adoptGRef(kit(node))); - g_signal_emit_by_name(m_webView, "should-insert-node", kitNode.get(), kitRange.get(), kit(action), &accept); - return accept; -} - -void EditorClient::pageDestroyed() -{ - delete this; -} - -bool EditorClient::smartInsertDeleteEnabled() -{ - WebCore::Page* corePage = core(m_webView); - if (!corePage) - return false; - return corePage->settings()->smartInsertDeleteEnabled(); -} - -bool EditorClient::isSelectTrailingWhitespaceEnabled() -{ - WebCore::Page* corePage = core(m_webView); - if (!corePage) - return false; - return corePage->settings()->selectTrailingWhitespaceEnabled(); -} - -void EditorClient::toggleContinuousSpellChecking() -{ - WebKitWebSettings* settings = webkit_web_view_get_settings(m_webView); - - gboolean enabled; - g_object_get(settings, "enable-spell-checking", &enabled, NULL); - - g_object_set(settings, "enable-spell-checking", !enabled, NULL); -} - -void EditorClient::toggleGrammarChecking() -{ -} - -bool EditorClient::executePendingEditorCommands(Frame* frame, bool allowTextInsertion) -{ - Vector<Editor::Command> commands; - for (size_t i = 0; i < m_pendingEditorCommands.size(); i++) { - Editor::Command command = frame->editor().command(m_pendingEditorCommands.at(i).utf8().data()); - if (command.isTextInsertion() && !allowTextInsertion) - return false; - - commands.append(command); - } - - bool success = true; - for (size_t i = 0; i < commands.size(); i++) { - if (!commands.at(i).execute()) { - success = false; - break; - } - } - - m_pendingEditorCommands.clear(); - return success; -} - -static bool keyboardEventHadCompositionResults(KeyboardEvent* event) -{ - if (event->type() != eventNames().keydownEvent) - return false; - - const PlatformKeyboardEvent* platformEvent = event->keyEvent(); - if (!platformEvent) - return false; - - return platformEvent->compositionResults().compositionUpdated(); -} - -void EditorClient::handleKeyboardEvent(KeyboardEvent* event) -{ - Node* node = event->target()->toNode(); - ASSERT(node); - Frame* frame = node->document()->frame(); - ASSERT(frame); - - const PlatformKeyboardEvent* platformEvent = event->keyEvent(); - if (!platformEvent) - return; - - if (keyboardEventHadCompositionResults(event)) - return; - - KeyBindingTranslator::EventType type = event->type() == eventNames().keydownEvent ? - KeyBindingTranslator::KeyDown : KeyBindingTranslator::KeyPress; - m_keyBindingTranslator.getEditorCommandsForKeyEvent(platformEvent->gdkEventKey(), type, m_pendingEditorCommands); - if (m_pendingEditorCommands.size() > 0) { - - // During RawKeyDown events if an editor command will insert text, defer - // the insertion until the keypress event. We want keydown to bubble up - // through the DOM first. - if (platformEvent->type() == PlatformEvent::RawKeyDown) { - if (executePendingEditorCommands(frame, false)) - event->setDefaultHandled(); - - return; - } - - // Only allow text insertion commands if the current node is editable. - if (executePendingEditorCommands(frame, frame->editor().canEdit())) { - event->setDefaultHandled(); - return; - } - m_pendingEditorCommands.clear(); - } - - // Don't allow text insertion for nodes that cannot edit. - if (!frame->editor().canEdit()) - return; - - // This is just a normal text insertion, so wait to execute the insertion - // until a keypress event happens. This will ensure that the insertion will not - // be reflected in the contents of the field until the keyup DOM event. - if (event->type() != eventNames().keypressEvent) - return; - - // Don't insert null or control characters as they can result in unexpected behaviour - if (event->charCode() < ' ') - return; - - // Don't insert anything if a modifier is pressed - if (platformEvent->ctrlKey() || platformEvent->altKey()) - return; - - if (frame->editor().insertText(platformEvent->text(), event)) - event->setDefaultHandled(); -} - -void EditorClient::handleInputMethodKeydown(KeyboardEvent* event) -{ - // Input method results are handled in handleKeyboardEvent, so that we can wait - // to trigger composition updates until after the keydown event handler. This better - // matches other browsers. - const PlatformKeyboardEvent* platformEvent = event->keyEvent(); - if (platformEvent && platformEvent->compositionResults().compositionUpdated()) - event->preventDefault(); -} - -EditorClient::EditorClient(WebKitWebView* webView) - : m_isInRedo(false) -#if ENABLE(SPELLCHECK) - , m_textCheckerClient(WEBKIT_SPELL_CHECKER(webkit_get_text_checker())) -#endif - , m_webView(webView) -{ -} - -EditorClient::~EditorClient() -{ -} - -void EditorClient::textFieldDidBeginEditing(Element*) -{ -} - -void EditorClient::textFieldDidEndEditing(Element*) -{ -} - -void EditorClient::textDidChangeInTextField(Element*) -{ -} - -bool EditorClient::doTextFieldCommandFromEvent(Element*, KeyboardEvent*) -{ - return false; -} - -void EditorClient::textWillBeDeletedInTextField(Element*) -{ - notImplemented(); -} - -void EditorClient::textDidChangeInTextArea(Element*) -{ - notImplemented(); -} - -void EditorClient::updateSpellingUIWithGrammarString(const String&, const GrammarDetail&) -{ - notImplemented(); -} - -void EditorClient::updateSpellingUIWithMisspelledWord(const String&) -{ - notImplemented(); -} - -void EditorClient::showSpellingUI(bool) -{ - notImplemented(); -} - -bool EditorClient::spellingUIIsShowing() -{ - notImplemented(); - return false; -} - -bool EditorClient::supportsGlobalSelection() -{ -#if PLATFORM(X11) - return true; -#else - return false; -#endif -} - -} diff --git a/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h deleted file mode 100644 index c99f71eb6..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/EditorClientGtk.h +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> - * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. - * Copyright (C) 2010 Martin Robinson <mrobinson@webkit.org> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef EditorClientGtk_h -#define EditorClientGtk_h - -#include "EditorClient.h" -#include "KeyBindingTranslator.h" -#include "TextCheckerClient.h" -#include <wtf/Deque.h> -#include <wtf/Forward.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> - -#if ENABLE(SPELLCHECK) -#include "TextCheckerClientGtk.h" -#else -#include "EmptyClients.h" -#endif - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebCore { -class Frame; -class KeyboardEvent; -} - -namespace WebKit { - -class EditorClient : public WebCore::EditorClient { - protected: - bool m_isInRedo; - - WTF::Deque<WTF::RefPtr<WebCore::UndoStep> > undoStack; - WTF::Deque<WTF::RefPtr<WebCore::UndoStep> > redoStack; - - public: - EditorClient(WebKitWebView*); - ~EditorClient(); - WebKitWebView* webView() { return m_webView; } - void addPendingEditorCommand(const char* command) { m_pendingEditorCommands.append(command); } - void generateEditorCommands(const WebCore::KeyboardEvent*); - bool executePendingEditorCommands(WebCore::Frame*, bool); - - // from EditorClient - virtual void pageDestroyed(); - virtual void frameWillDetachPage(WebCore::Frame*) { } - - virtual bool shouldDeleteRange(WebCore::Range*); - virtual bool smartInsertDeleteEnabled(); - virtual bool isSelectTrailingWhitespaceEnabled(); - virtual bool isContinuousSpellCheckingEnabled(); - virtual void toggleContinuousSpellChecking(); - virtual bool isGrammarCheckingEnabled(); - virtual void toggleGrammarChecking(); - virtual int spellCheckerDocumentTag(); - - virtual bool shouldBeginEditing(WebCore::Range*); - virtual bool shouldEndEditing(WebCore::Range*); - virtual bool shouldInsertNode(WebCore::Node*, WebCore::Range*, WebCore::EditorInsertAction); - virtual bool shouldInsertText(const WTF::String&, WebCore::Range*, WebCore::EditorInsertAction); - virtual bool shouldChangeSelectedRange(WebCore::Range* fromRange, WebCore::Range* toRange, WebCore::EAffinity, bool stillSelecting); - - virtual bool shouldApplyStyle(WebCore::StylePropertySet*, WebCore::Range*); - - virtual bool shouldMoveRangeAfterDelete(WebCore::Range*, WebCore::Range*); - - virtual void didBeginEditing(); - virtual void respondToChangedContents(); - virtual void respondToChangedSelection(WebCore::Frame*); - virtual void didEndEditing(); - virtual void willWriteSelectionToPasteboard(WebCore::Range*); - virtual void didWriteSelectionToPasteboard(); - virtual void getClientPasteboardDataForRange(WebCore::Range*, Vector<String>& pasteboardTypes, Vector<RefPtr<WebCore::SharedBuffer> >& pasteboardData); - virtual void didSetSelectionTypesForPasteboard(); - - virtual void registerUndoStep(WTF::PassRefPtr<WebCore::UndoStep>); - virtual void registerRedoStep(WTF::PassRefPtr<WebCore::UndoStep>); - virtual void clearUndoRedoOperations(); - - virtual bool canCopyCut(WebCore::Frame*, bool defaultValue) const; - virtual bool canPaste(WebCore::Frame*, bool defaultValue) const; - virtual bool canUndo() const; - virtual bool canRedo() const; - - virtual void undo(); - virtual void redo(); - - virtual void handleKeyboardEvent(WebCore::KeyboardEvent*); - virtual void handleInputMethodKeydown(WebCore::KeyboardEvent*); - - virtual void textFieldDidBeginEditing(WebCore::Element*); - virtual void textFieldDidEndEditing(WebCore::Element*); - virtual void textDidChangeInTextField(WebCore::Element*); - virtual bool doTextFieldCommandFromEvent(WebCore::Element*, WebCore::KeyboardEvent*); - virtual void textWillBeDeletedInTextField(WebCore::Element*); - virtual void textDidChangeInTextArea(WebCore::Element*); - - virtual WebCore::TextCheckerClient* textChecker() { return &m_textCheckerClient; } - - virtual void updateSpellingUIWithGrammarString(const WTF::String&, const WebCore::GrammarDetail&); - virtual void updateSpellingUIWithMisspelledWord(const WTF::String&); - virtual void showSpellingUI(bool show); - virtual bool spellingUIIsShowing(); - virtual void willSetInputMethodState(); - virtual void setInputMethodState(bool enabled); - - virtual bool shouldShowUnicodeMenu(); - - virtual bool supportsGlobalSelection() OVERRIDE; - - private: -#if ENABLE(SPELLCHECK) - TextCheckerClientGtk m_textCheckerClient; -#else - WebCore::EmptyTextCheckerClient m_textCheckerClient; -#endif - WebKitWebView* m_webView; - WebCore::KeyBindingTranslator m_keyBindingTranslator; - Vector<WTF::String> m_pendingEditorCommands; - }; -} - -#endif - -// vim: ts=4 sw=4 et diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp deleted file mode 100644 index 4cac20606..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp +++ /dev/null @@ -1,1269 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com> - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2007 Christian Dywan <christian@twotoasts.de> - * Copyright (C) 2008, 2009 Collabora Ltd. All rights reserved. - * Copyright (C) 2009, 2010 Gustavo Noronha Silva <gns@gnome.org> - * Copyright (C) Research In Motion Limited 2009. All rights reserved. - * Copyright (C) 2010 Igalia S.L. - * Copyright (C) 2011 Apple Inc. 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "FrameLoaderClientGtk.h" - -#include "ArchiveResource.h" -#include "CachedFrame.h" -#include "Color.h" -#include "DOMObjectCache.h" -#include "DocumentLoader.h" -#include "DocumentLoaderGtk.h" -#include "DumpRenderTreeSupportGtk.h" -#include "ErrorsGtk.h" -#include "FileSystem.h" -#include "FormState.h" -#include "FrameLoader.h" -#include "FrameNetworkingContextGtk.h" -#include "FrameTree.h" -#include "FrameView.h" -#include "GtkPluginWidget.h" -#include "GtkUtilities.h" -#include "HTMLAppletElement.h" -#include "HTMLFormElement.h" -#include "HTMLFrameElement.h" -#include "HTMLFrameOwnerElement.h" -#include "HTMLNames.h" -#include "HTMLPlugInElement.h" -#include "JSDOMBinding.h" -#include "JSDOMWindow.h" -#include "Language.h" -#include "MIMETypeRegistry.h" -#include "MouseEvent.h" -#include "NotImplemented.h" -#include "Page.h" -#include "PluginDatabase.h" -#include "ProgressTracker.h" -#include "RenderPart.h" -#include "RenderView.h" -#include "ResourceHandle.h" -#include "ResourceLoader.h" -#include "ResourceRequest.h" -#include "ScriptController.h" -#include "Settings.h" -#include "webkitauthenticationdialog.h" -#include "webkiterror.h" -#include "webkitfavicondatabase.h" -#include "webkitfavicondatabaseprivate.h" -#include "webkitglobals.h" -#include "webkitglobalsprivate.h" -#include "webkitnetworkrequest.h" -#include "webkitnetworkrequestprivate.h" -#include "webkitnetworkresponse.h" -#include "webkitnetworkresponseprivate.h" -#include "webkitsecurityoriginprivate.h" -#include "webkitviewportattributes.h" -#include "webkitviewportattributesprivate.h" -#include "webkitwebdatasourceprivate.h" -#include "webkitwebframe.h" -#include "webkitwebframeprivate.h" -#include "webkitwebnavigationaction.h" -#include "webkitwebnavigationactionprivate.h" -#include "webkitwebpolicydecision.h" -#include "webkitwebpolicydecisionprivate.h" -#include "webkitwebresource.h" -#include "webkitwebresourceprivate.h" -#include "webkitwebsettingsprivate.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include <JavaScriptCore/APICast.h> -#include <gio/gio.h> -#include <glib.h> -#include <glib/gi18n-lib.h> -#include <stdio.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> -#include <wtf/text/StringConcatenate.h> - -using namespace WebCore; - -namespace WebKit { - -FrameLoaderClient::FrameLoaderClient(WebKitWebFrame* frame) - : m_frame(frame) - , m_policyDecision(0) - , m_loadingErrorPage(false) - , m_pluginView(0) - , m_hasSentResponseToPlugin(false) -{ - ASSERT(m_frame); -} - -FrameLoaderClient::~FrameLoaderClient() -{ - if (m_policyDecision) - g_object_unref(m_policyDecision); -} - - -String FrameLoaderClient::userAgent(const KURL& url) -{ - WebKitWebSettings* settings = webkit_web_view_get_settings(getViewFromFrame(m_frame)); - GOwnPtr<gchar> userAgentString(webkitWebSettingsUserAgentForURI(settings, url.string().utf8().data())); - return String::fromUTF8(userAgentString.get()); -} - -static void notifyStatus(WebKitWebFrame* frame, WebKitLoadStatus loadStatus) -{ - frame->priv->loadStatus = loadStatus; - g_object_notify(G_OBJECT(frame), "load-status"); - - WebKitWebView* webView = getViewFromFrame(frame); - if (frame == webkit_web_view_get_main_frame(webView)) { - webView->priv->loadStatus = loadStatus; - g_object_notify(G_OBJECT(webView), "load-status"); - } -} - -WTF::PassRefPtr<WebCore::DocumentLoader> FrameLoaderClient::createDocumentLoader(const WebCore::ResourceRequest& request, const SubstituteData& substituteData) -{ - RefPtr<WebKit::DocumentLoader> loader = WebKit::DocumentLoader::create(request, substituteData); - - GRefPtr<WebKitWebDataSource> webDataSource(adoptGRef(kitNew(loader.get()))); - loader->setDataSource(webDataSource.get()); - - return loader.release(); -} - -void FrameLoaderClient::dispatchWillSubmitForm(FramePolicyFunction policyFunction, PassRefPtr<FormState>) -{ - // FIXME: This is surely too simple - ASSERT(policyFunction); - if (!policyFunction) - return; - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyUse); -} - -void FrameLoaderClient::committedLoad(WebCore::DocumentLoader* loader, const char* data, int length) -{ - if (!m_pluginView) { - ASSERT(loader->frame()); - loader->commitData(data, length); - - Frame* coreFrame = loader->frame(); - if (coreFrame && coreFrame->document()->isMediaDocument()) - loader->cancelMainResourceLoad(coreFrame->loader()->client()->pluginWillHandleLoadError(loader->response())); - } - - if (m_pluginView) { - if (!m_hasSentResponseToPlugin) { - m_pluginView->didReceiveResponse(loader->response()); - m_hasSentResponseToPlugin = true; - } - - // FIXME: We may want to investigate refactoring our plugin loading - // code to be similar to mac's. - // Also, see http://trac.webkit.org/changeset/24118. - if (!m_pluginView) - return; - - m_pluginView->didReceiveData(data, length); - } -} - -bool FrameLoaderClient::shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier) -{ - return true; -} - -void FrameLoaderClient::dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const AuthenticationChallenge& challenge) -{ - if (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()) { - CString username; - CString password; - if (!DumpRenderTreeSupportGtk::s_authenticationCallback || !DumpRenderTreeSupportGtk::s_authenticationCallback(username, password)) { - challenge.authenticationClient()->receivedRequestToContinueWithoutCredential(challenge); - return; - } - - challenge.authenticationClient()->receivedCredential(challenge, Credential(String::fromUTF8(username.data()), String::fromUTF8(password.data()), CredentialPersistenceForSession)); - return; - } - - WebKitWebView* view = webkit_web_frame_get_web_view(m_frame); - - CredentialStorageMode credentialStorageMode; - if (core(view)->settings()->privateBrowsingEnabled()) - credentialStorageMode = DisallowPersistentStorage; - else - credentialStorageMode = AllowPersistentStorage; - - GtkWidget* toplevel = gtk_widget_get_toplevel(GTK_WIDGET(view)); - GtkWidget* authDialog = createAuthenticationDialog(widgetIsOnscreenToplevelWindow(toplevel) ? GTK_WINDOW(toplevel) : 0, challenge, credentialStorageMode); - gtk_widget_show(authDialog); -} - -void FrameLoaderClient::dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&) -{ - notImplemented(); -} - -// We convert this to string because it's easier to use strings as -// keys in a GHashTable. -static char* toString(unsigned long identifier) -{ - return g_strdup_printf("%ld", identifier); -} - -void FrameLoaderClient::dispatchWillSendRequest(WebCore::DocumentLoader* loader, unsigned long identifier, ResourceRequest& request, const ResourceResponse& redirectResponse) -{ - GRefPtr<WebKitNetworkResponse> networkResponse(0); - - // We are adding one more resource to the load, or maybe we are - // just redirecting a load. - if (redirectResponse.isNull()) - static_cast<WebKit::DocumentLoader*>(loader)->increaseLoadCount(identifier); - else - networkResponse = adoptGRef(kitNew(redirectResponse)); - - WebKitWebView* webView = getViewFromFrame(m_frame); - GOwnPtr<gchar> identifierString(toString(identifier)); - WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get()); - GRefPtr<WebKitNetworkRequest> networkRequest(adoptGRef(kitNew(request))); - - if (!redirectResponse.isNull()) { - // This is a redirect, so we need to update the WebResource's knowledge - // of the URI. - g_free(webResource->priv->uri); - webResource->priv->uri = g_strdup(request.url().string().utf8().data()); - } - - g_signal_emit_by_name(webView, "resource-request-starting", m_frame, webResource, networkRequest.get(), networkResponse.get()); - g_signal_emit_by_name(m_frame, "resource-request-starting", webResource, networkRequest.get(), networkResponse.get()); - - // Feed any changes back into the ResourceRequest object. - SoupMessage* message = webkit_network_request_get_message(networkRequest.get()); - if (!message) { - request.setURL(KURL(KURL(), String::fromUTF8(webkit_network_request_get_uri(networkRequest.get())))); - return; - } - - request.updateFromSoupMessage(message); -} - -void FrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader* loader, const ResourceRequest& request) -{ - GOwnPtr<gchar> identifierString(toString(identifier)); - - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, "uri", request.url().string().utf8().data(), 0)); - - if (loader == loader->frameLoader()->provisionalDocumentLoader() - && loader->frameLoader()->isLoadingMainFrame()) { - webkit_web_view_add_main_resource(getViewFromFrame(m_frame), identifierString.get(), webResource); - return; - } - - webkit_web_view_add_resource(getViewFromFrame(m_frame), identifierString.get(), webResource); -} - -void FrameLoaderClient::postProgressStartedNotification() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - g_signal_emit_by_name(webView, "load-started", m_frame); - - g_object_notify(G_OBJECT(webView), "progress"); -} - -void FrameLoaderClient::postProgressEstimateChangedNotification() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - Page* corePage = core(webView); - - g_signal_emit_by_name(webView, "load-progress-changed", lround(corePage->progress()->estimatedProgress()*100)); - - g_object_notify(G_OBJECT(webView), "progress"); -} - -void FrameLoaderClient::postProgressFinishedNotification() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - WebKitWebViewPrivate* privateData = webView->priv; - - // We can get a stopLoad() from dispose when the object is being - // destroyed, don't emit the signal in that case. - if (!privateData->disposing) - g_signal_emit_by_name(webView, "load-finished", m_frame); -} - -void FrameLoaderClient::frameLoaderDestroyed() -{ - webkit_web_frame_core_frame_gone(m_frame); - g_object_unref(m_frame); - m_frame = 0; - delete this; -} - -void FrameLoaderClient::dispatchDidReceiveResponse(WebCore::DocumentLoader* loader, unsigned long identifier, const ResourceResponse& response) -{ - // Update our knowledge of request soup flags - some are only set - // after the request is done. - loader->request().setSoupMessageFlags(response.soupMessageFlags()); - - m_response = response; - - WebKitWebView* webView = getViewFromFrame(m_frame); - GOwnPtr<gchar> identifierString(toString(identifier)); - WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get()); - GRefPtr<WebKitNetworkResponse> networkResponse(adoptGRef(kitNew(response))); - - g_signal_emit_by_name(webResource, "response-received", networkResponse.get()); - g_signal_emit_by_name(m_frame, "resource-response-received", webResource, networkResponse.get()); - g_signal_emit_by_name(webView, "resource-response-received", m_frame, webResource, networkResponse.get()); -} - -void FrameLoaderClient::dispatchDecidePolicyForResponse(FramePolicyFunction policyFunction, const ResourceResponse& response, const ResourceRequest& resourceRequest) -{ - ASSERT(policyFunction); - if (!policyFunction) - return; - - if (resourceRequest.isNull()) { - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyIgnore); - return; - } - - WebKitWebView* page = getViewFromFrame(m_frame); - GRefPtr<WebKitNetworkRequest> request(adoptGRef(kitNew(resourceRequest))); - - WebKitWebPolicyDecision* policyDecision = webkit_web_policy_decision_new(m_frame, policyFunction); - if (m_policyDecision) - g_object_unref(m_policyDecision); - m_policyDecision = policyDecision; - - String mimeType = response.mimeType(); - - gboolean isHandled = false; - g_signal_emit_by_name(page, "mime-type-policy-decision-requested", m_frame, request.get(), mimeType.utf8().data(), policyDecision, &isHandled); - - if (isHandled) - return; - - GRefPtr<WebKitNetworkResponse> networkResponse(adoptGRef(webkit_web_frame_get_network_response(m_frame))); - if (networkResponse) { - ResourceResponse response = core(networkResponse.get()); - if (response.isAttachment()) { - webkit_web_policy_decision_download(policyDecision); - return; - } - } - - if (canShowMIMEType(mimeType)) - webkit_web_policy_decision_use(policyDecision); - else - webkit_web_policy_decision_ignore(policyDecision); -} - -static WebKitWebNavigationAction* getNavigationAction(const NavigationAction& action, const char* targetFrame) -{ - gint button = -1; - - const Event* event = action.event(); - if (event && event->isMouseEvent()) { - const MouseEvent* mouseEvent = static_cast<const MouseEvent*>(event); - // DOM button values are 0, 1 and 2 for left, middle and right buttons. - // GTK+ uses 1, 2 and 3, so let's add 1 to remain consistent. - button = mouseEvent->button() + 1; - } - - gint modifierFlags = 0; - UIEventWithKeyState* keyStateEvent = findEventWithKeyState(const_cast<Event*>(event)); - if (keyStateEvent) { - if (keyStateEvent->shiftKey()) - modifierFlags |= GDK_SHIFT_MASK; - if (keyStateEvent->ctrlKey()) - modifierFlags |= GDK_CONTROL_MASK; - if (keyStateEvent->altKey()) - modifierFlags |= GDK_MOD1_MASK; - if (keyStateEvent->metaKey()) - modifierFlags |= GDK_MOD2_MASK; - } - - return WEBKIT_WEB_NAVIGATION_ACTION(g_object_new(WEBKIT_TYPE_WEB_NAVIGATION_ACTION, - "reason", kit(action.type()), - "original-uri", action.url().string().utf8().data(), - "button", button, - "modifier-state", modifierFlags, - "target-frame", targetFrame, - NULL)); -} - -void FrameLoaderClient::dispatchDecidePolicyForNewWindowAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>, const String& frameName) -{ - ASSERT(policyFunction); - if (!policyFunction) - return; - - if (resourceRequest.isNull()) { - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyIgnore); - return; - } - - WebKitWebPolicyDecision* policyDecision = webkit_web_policy_decision_new(m_frame, policyFunction); - - if (m_policyDecision) - g_object_unref(m_policyDecision); - m_policyDecision = policyDecision; - - WebKitWebView* webView = getViewFromFrame(m_frame); - GRefPtr<WebKitNetworkRequest> request(adoptGRef(webkit_network_request_new(resourceRequest.url().string().utf8().data()))); - GRefPtr<WebKitWebNavigationAction> navigationAction(adoptGRef(getNavigationAction(action, frameName.utf8().data()))); - gboolean isHandled = false; - - g_signal_emit_by_name(webView, "new-window-policy-decision-requested", m_frame, request.get(), navigationAction.get(), policyDecision, &isHandled); - - // FIXME: I think Qt version marshals this to another thread so when we - // have multi-threaded download, we might need to do the same - if (!isHandled) - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyUse); -} - -void FrameLoaderClient::dispatchDecidePolicyForNavigationAction(FramePolicyFunction policyFunction, const NavigationAction& action, const ResourceRequest& resourceRequest, PassRefPtr<FormState>) -{ - ASSERT(policyFunction); - if (!policyFunction) - return; - - if (resourceRequest.isNull()) { - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyIgnore); - return; - } - - WebKitWebView* webView = getViewFromFrame(m_frame); - GRefPtr<WebKitNetworkRequest> request(adoptGRef(kitNew(resourceRequest))); - WebKitNavigationResponse response; - /* - * We still support the deprecated navigation-requested signal, if the - * application doesn't ignore the navigation then the new signal is - * emitted. - * navigation-policy-decision-requested must be emitted after - * navigation-requested as the policy decision can be async. - */ - g_signal_emit_by_name(webView, "navigation-requested", m_frame, request.get(), &response); - - if (response == WEBKIT_NAVIGATION_RESPONSE_IGNORE) { - (core(m_frame)->loader()->policyChecker()->*policyFunction)(PolicyIgnore); - return; - } - - WebKitWebPolicyDecision* policyDecision = webkit_web_policy_decision_new(m_frame, policyFunction); - if (m_policyDecision) - g_object_unref(m_policyDecision); - m_policyDecision = policyDecision; - - GRefPtr<WebKitWebNavigationAction> navigationAction(adoptGRef(getNavigationAction(action, 0))); - gboolean isHandled = false; - g_signal_emit_by_name(webView, "navigation-policy-decision-requested", m_frame, request.get(), navigationAction.get(), policyDecision, &isHandled); - - // FIXME Implement default behavior when we can query the backend what protocols it supports - if (!isHandled) - webkit_web_policy_decision_use(m_policyDecision); -} - -PassRefPtr<Widget> FrameLoaderClient::createPlugin(const IntSize& pluginSize, HTMLPlugInElement* element, const KURL& url, const Vector<String>& paramNames, const Vector<String>& paramValues, const String& mimeType, bool loadManually) -{ - /* Check if we want to embed a GtkWidget, fallback to plugins later */ - CString urlString = url.string().utf8(); - CString mimeTypeString = mimeType.utf8(); - - ASSERT(paramNames.size() == paramValues.size()); - GRefPtr<GHashTable> hash = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free)); - for (unsigned i = 0; i < paramNames.size(); ++i) { - g_hash_table_insert(hash.get(), - g_strdup(paramNames[i].utf8().data()), - g_strdup(paramValues[i].utf8().data())); - } - - GtkWidget* gtkWidget = 0; - g_signal_emit_by_name(getViewFromFrame(m_frame), "create-plugin-widget", - mimeTypeString.data(), urlString.data(), hash.get(), >kWidget); - if (gtkWidget) { - gtk_container_add(GTK_CONTAINER(getViewFromFrame(m_frame)), gtkWidget); - return adoptRef(new GtkPluginWidget(gtkWidget)); - } - - RefPtr<PluginView> pluginView = PluginView::create(core(m_frame), pluginSize, element, url, paramNames, paramValues, mimeType, loadManually); - - if (pluginView->status() == PluginStatusLoadedSuccessfully) - return pluginView; - - return 0; -} - -PassRefPtr<Frame> FrameLoaderClient::createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement, - const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) -{ - ASSERT(m_frame); - Frame* parentFrame = core(m_frame); - WebKitWebView* webView = getViewFromFrame(m_frame); - WebCore::Page* page = core(webView); - ASSERT(page == parentFrame->page()); - - WebKitWebFrame* kitFrame = WEBKIT_WEB_FRAME(g_object_new(WEBKIT_TYPE_WEB_FRAME, NULL)); - WebKitWebFramePrivate* framePrivate = kitFrame->priv; - framePrivate->webView = webView; - - RefPtr<Frame> childFrame = Frame::create(page, ownerElement, new FrameLoaderClient(kitFrame)); - framePrivate->coreFrame = childFrame.get(); - - childFrame->tree()->setName(name); - parentFrame->tree()->appendChild(childFrame); - childFrame->init(); - - // The creation of the frame may have run arbitrary JavaScript that removed it from the page already. - if (!childFrame->page()) - return 0; - - g_signal_emit_by_name(webView, "frame-created", kitFrame); - - parentFrame->loader()->loadURLIntoChildFrame(url, referrer, childFrame.get()); - - // The frame's onload handler may have removed it from the document. - if (!childFrame->tree()->parent()) - return 0; - - return childFrame.release(); -} - -void FrameLoaderClient::redirectDataToPlugin(Widget* pluginWidget) -{ - m_pluginView = toPluginView(pluginWidget); - if (pluginWidget) - m_hasSentResponseToPlugin = false; -} - -PassRefPtr<Widget> FrameLoaderClient::createJavaAppletWidget(const IntSize& pluginSize, HTMLAppletElement* element, const KURL& baseURL, const Vector<String>& paramNames, const Vector<String>& paramValues) -{ - return FrameLoaderClient::createPlugin(pluginSize, element, baseURL, paramNames, paramValues, "application/x-java-applet", false); -} - -ObjectContentType FrameLoaderClient::objectContentType(const KURL& url, const String& mimeType, bool shouldPreferPlugInsForImages) -{ - return FrameLoader::defaultObjectContentType(url, mimeType, shouldPreferPlugInsForImages); -} - -String FrameLoaderClient::overrideMediaType() const -{ - notImplemented(); - return String(); -} - -void FrameLoaderClient::dispatchDidClearWindowObjectInWorld(DOMWrapperWorld* world) -{ - if (world != mainThreadNormalWorld()) - return; - - // Is this obsolete now? - g_signal_emit_by_name(m_frame, "cleared"); - - Frame* coreFrame = core(m_frame); - ASSERT(coreFrame); - - Settings* settings = coreFrame->settings(); - if (!settings || !settings->isScriptEnabled()) - return; - - // TODO: Consider using g_signal_has_handler_pending() to avoid the overhead - // when there are no handlers. - JSGlobalContextRef context = toGlobalRef(coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec()); - JSObjectRef windowObject = toRef(coreFrame->script()->globalObject(mainThreadNormalWorld())); - ASSERT(windowObject); - - WebKitWebView* webView = getViewFromFrame(m_frame); - g_signal_emit_by_name(webView, "window-object-cleared", m_frame, context, windowObject); - - // TODO: Re-attach debug clients if present. - // The Win port has an example of how we might do this. -} - -void FrameLoaderClient::documentElementAvailable() -{ -} - -void FrameLoaderClient::didPerformFirstNavigation() const -{ - WebKitCacheModel cacheModel = webkit_get_cache_model(); - // If user agents do not determine the cache model, we use WEBKIT_CACHE_MODEL_WEB_BROWSER by default. - if (cacheModel == WEBKIT_CACHE_MODEL_DEFAULT) - webkit_set_cache_model(WEBKIT_CACHE_MODEL_WEB_BROWSER); -} - -void FrameLoaderClient::registerForIconNotification(bool shouldRegister) -{ - webkitWebViewRegisterForIconNotification(getViewFromFrame(m_frame), shouldRegister); -} - -void FrameLoaderClient::setMainFrameDocumentReady(bool ready) -{ - if (!ready) - DOMObjectCache::clearByFrame(core(m_frame)); -} - -bool FrameLoaderClient::hasWebView() const -{ - return getViewFromFrame(m_frame); -} - -void FrameLoaderClient::dispatchDidFinishLoad() -{ - if (m_loadingErrorPage) { - m_loadingErrorPage = false; - return; - } - notifyStatus(m_frame, WEBKIT_LOAD_FINISHED); -} - -void FrameLoaderClient::frameLoadCompleted() -{ - notImplemented(); -} - -void FrameLoaderClient::saveViewStateToItem(HistoryItem*) -{ - notImplemented(); -} - -void FrameLoaderClient::restoreViewState() -{ - notImplemented(); -} - -bool FrameLoaderClient::shouldGoToHistoryItem(HistoryItem* item) const -{ - // FIXME: This is a very simple implementation. More sophisticated - // implementation would delegate the decision to a PolicyDelegate. - // See mac implementation for example. - return item != 0; -} - -bool FrameLoaderClient::shouldStopLoadingForHistoryItem(HistoryItem* item) const -{ - return true; -} - -void FrameLoaderClient::didDisplayInsecureContent() -{ - if (!DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() || !DumpRenderTreeSupportGtk::s_frameLoadEventCallback) - return; - DumpRenderTreeSupportGtk::s_frameLoadEventCallback(m_frame, DumpRenderTreeSupportGtk::DidDisplayInsecureContent, 0); -} - -void FrameLoaderClient::didRunInsecureContent(SecurityOrigin* coreOrigin, const KURL& url) -{ - g_signal_emit_by_name(m_frame, "insecure-content-run", kit(coreOrigin), url.string().utf8().data()); -} - -void FrameLoaderClient::didDetectXSS(const KURL&, bool) -{ - if (!DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() || !DumpRenderTreeSupportGtk::s_frameLoadEventCallback) - return; - DumpRenderTreeSupportGtk::s_frameLoadEventCallback(m_frame, DumpRenderTreeSupportGtk::DidDetectXSS, 0); -} - -void FrameLoaderClient::forceLayout() -{ - FrameView* view = core(m_frame)->view(); - if (view) - view->forceLayout(true); -} - -void FrameLoaderClient::forceLayoutForNonHTML() -{ - notImplemented(); -} - -void FrameLoaderClient::setCopiesOnScroll() -{ - notImplemented(); -} - -void FrameLoaderClient::detachedFromParent2() -{ - notImplemented(); -} - -void FrameLoaderClient::detachedFromParent3() -{ - notImplemented(); -} - -void FrameLoaderClient::dispatchDidHandleOnloadEvents() -{ - g_signal_emit_by_name(getViewFromFrame(m_frame), "onload-event", m_frame); -} - -void FrameLoaderClient::dispatchDidReceiveServerRedirectForProvisionalLoad() -{ - if (!DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() || !DumpRenderTreeSupportGtk::s_frameLoadEventCallback) - return; - DumpRenderTreeSupportGtk::s_frameLoadEventCallback(m_frame, DumpRenderTreeSupportGtk::DidReceiveServerRedirectForProvisionalLoad, 0); -} - -void FrameLoaderClient::dispatchDidCancelClientRedirect() -{ - if (!DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() || !DumpRenderTreeSupportGtk::s_frameLoadEventCallback) - return; - DumpRenderTreeSupportGtk::s_frameLoadEventCallback(m_frame, DumpRenderTreeSupportGtk::DidCancelClientRedirect, 0); -} - -void FrameLoaderClient::dispatchWillPerformClientRedirect(const KURL& url, double, double) -{ - if (!DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled() || !DumpRenderTreeSupportGtk::s_frameLoadEventCallback) - return; - DumpRenderTreeSupportGtk::s_frameLoadEventCallback(m_frame, DumpRenderTreeSupportGtk::WillPerformClientRedirectToURL, url.string().utf8().data()); -} - -void FrameLoaderClient::dispatchDidChangeLocationWithinPage() -{ - WebKitWebFramePrivate* priv = m_frame->priv; - g_free(priv->uri); - priv->uri = g_strdup(core(m_frame)->document()->url().string().utf8().data()); - g_object_notify(G_OBJECT(m_frame), "uri"); - WebKitWebView* webView = getViewFromFrame(m_frame); - if (m_frame == webkit_web_view_get_main_frame(webView)) - g_object_notify(G_OBJECT(webView), "uri"); -} - -void FrameLoaderClient::dispatchDidNavigateWithinPage() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - WebKitWebFrame* mainFrame = webView->priv->mainFrame; - WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(mainFrame); - bool loaderCompleted = !webkit_web_data_source_is_loading(dataSource); - - if (!loaderCompleted) - return; - - // No provisional load started, because: - // - It will break (no provisional data source at this point). - // - There's no provisional load going on anyway, the URI is being - // programatically changed. - // FIXME: this is not ideal, but it seems safer than changing our - // current contract with the clients about provisional data - // sources not being '0' during the provisional load stage. - dispatchDidCommitLoad(true); - dispatchDidFinishLoad(); -} - -void FrameLoaderClient::dispatchDidPushStateWithinPage() -{ - dispatchDidNavigateWithinPage(); -} - -void FrameLoaderClient::dispatchDidReplaceStateWithinPage() -{ - dispatchDidNavigateWithinPage(); -} - -void FrameLoaderClient::dispatchDidPopStateWithinPage() -{ - // No need to do anything, we already called - // dispatchDidNavigateWithinPage() in PushStateWithinPage(). -} - -void FrameLoaderClient::dispatchWillClose() -{ - notImplemented(); -} - -void FrameLoaderClient::dispatchDidReceiveIcon() -{ - if (m_loadingErrorPage) - return; - - // IconController loads icons only for the main frame. - WebKitWebView* webView = getViewFromFrame(m_frame); - ASSERT(m_frame == webkit_web_view_get_main_frame(webView)); - - const char* frameURI = webkit_web_frame_get_uri(m_frame); - WebKitFaviconDatabase* database = webkit_get_favicon_database(); - webkitFaviconDatabaseDispatchDidReceiveIcon(database, frameURI); - webkitWebViewIconLoaded(database, frameURI, webView); -} - -void FrameLoaderClient::dispatchDidStartProvisionalLoad() -{ - if (m_loadingErrorPage) - return; - - notifyStatus(m_frame, WEBKIT_LOAD_PROVISIONAL); -} - -void FrameLoaderClient::dispatchDidReceiveTitle(const StringWithDirection& title) -{ - if (m_loadingErrorPage) - return; - - WebKitWebFramePrivate* priv = m_frame->priv; - g_free(priv->title); - // FIXME: use direction of title. - priv->title = g_strdup(title.string().utf8().data()); - - g_signal_emit_by_name(m_frame, "title-changed", priv->title); - g_object_notify(G_OBJECT(m_frame), "title"); - - WebKitWebView* webView = getViewFromFrame(m_frame); - if (m_frame == webkit_web_view_get_main_frame(webView)) { - g_signal_emit_by_name(webView, "title-changed", m_frame, title.string().utf8().data()); - g_object_notify(G_OBJECT(webView), "title"); - } -} - -void FrameLoaderClient::dispatchDidChangeIcons(WebCore::IconType) -{ - notImplemented(); -} - -void FrameLoaderClient::dispatchDidCommitLoad() -{ - FrameLoaderClient::dispatchDidCommitLoad(false); -} - -void FrameLoaderClient::dispatchDidCommitLoad(bool isNavigatingWithinPage) -{ - if (m_loadingErrorPage) - return; - - /* Update the URI once first data has been received. - * This means the URI is valid and successfully identify the page that's going to be loaded. - */ - g_object_freeze_notify(G_OBJECT(m_frame)); - - WebKitWebFramePrivate* priv = m_frame->priv; - g_free(priv->uri); - priv->uri = g_strdup(core(m_frame)->loader()->activeDocumentLoader()->url().string().utf8().data()); - g_object_notify(G_OBJECT(m_frame), "uri"); - if (!isNavigatingWithinPage) { - g_free(priv->title); - priv->title = 0; - g_object_notify(G_OBJECT(m_frame), "title"); - } - - g_signal_emit_by_name(m_frame, "load-committed"); - notifyStatus(m_frame, WEBKIT_LOAD_COMMITTED); - - WebKitWebView* webView = getViewFromFrame(m_frame); - if (m_frame == webkit_web_view_get_main_frame(webView)) { - g_object_freeze_notify(G_OBJECT(webView)); - g_object_notify(G_OBJECT(webView), "uri"); - g_object_thaw_notify(G_OBJECT(webView)); - if (!isNavigatingWithinPage) - g_object_notify(G_OBJECT(webView), "title"); - g_signal_emit_by_name(webView, "load-committed", m_frame); - } - - g_object_thaw_notify(G_OBJECT(m_frame)); -} - -void FrameLoaderClient::dispatchDidFinishDocumentLoad() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - g_signal_emit_by_name(webView, "document-load-finished", m_frame); -} - -void FrameLoaderClient::dispatchDidLayout(LayoutMilestones milestones) -{ - if (m_loadingErrorPage) - return; - - if (milestones & DidFirstVisuallyNonEmptyLayout) - notifyStatus(m_frame, WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT); -} - -void FrameLoaderClient::dispatchShow() -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - webkit_web_view_notify_ready(webView); -} - -void FrameLoaderClient::cancelPolicyCheck() -{ - //FIXME Add support for more than one policy decision at once - if (m_policyDecision) - webkit_web_policy_decision_cancel(m_policyDecision); -} - -void FrameLoaderClient::willChangeTitle(WebCore::DocumentLoader*) -{ - notImplemented(); -} - -void FrameLoaderClient::didChangeTitle(WebCore::DocumentLoader *l) -{ - setTitle(l->title(), l->url()); -} - -bool FrameLoaderClient::canHandleRequest(const ResourceRequest&) const -{ - notImplemented(); - return true; -} - -bool FrameLoaderClient::canShowMIMETypeAsHTML(const String& MIMEType) const -{ - notImplemented(); - return false; -} - -bool FrameLoaderClient::canShowMIMEType(const String& type) const -{ - return (MIMETypeRegistry::canShowMIMEType(type) - || PluginDatabase::installedPlugins()->isMIMETypeRegistered(type)); -} - -bool FrameLoaderClient::representationExistsForURLScheme(const String&) const -{ - notImplemented(); - return false; -} - -String FrameLoaderClient::generatedMIMETypeForURLScheme(const String&) const -{ - notImplemented(); - return String(); -} - -void FrameLoaderClient::finishedLoading(WebCore::DocumentLoader*) -{ - if (m_pluginView) { - m_pluginView->didFinishLoading(); - m_pluginView = 0; - m_hasSentResponseToPlugin = false; - } -} - - -void FrameLoaderClient::provisionalLoadStarted() -{ - notImplemented(); -} - -void FrameLoaderClient::didFinishLoad() { - notImplemented(); -} - -void FrameLoaderClient::prepareForDataSourceReplacement() -{ - notImplemented(); -} - -void FrameLoaderClient::setTitle(const StringWithDirection& title, const KURL& url) -{ - WebKitWebFramePrivate* frameData = m_frame->priv; - g_free(frameData->title); - // FIXME: use direction of title. - frameData->title = g_strdup(title.string().utf8().data()); -} - -void FrameLoaderClient::dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength) -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - GOwnPtr<gchar> identifierString(toString(identifier)); - WebKitWebResource* webResource = webkit_web_view_get_resource(webView, identifierString.get()); - - g_signal_emit_by_name(webResource, "content-length-received", dataLength); - g_signal_emit_by_name(m_frame, "resource-content-length-received", webResource, dataLength); - g_signal_emit_by_name(webView, "resource-content-length-received", m_frame, webResource, dataLength); -} - -void FrameLoaderClient::dispatchDidFinishLoading(WebCore::DocumentLoader* loader, unsigned long identifier) -{ - static_cast<WebKit::DocumentLoader*>(loader)->decreaseLoadCount(identifier); - - WebKitWebView* webView = getViewFromFrame(m_frame); - 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))); - - // If coreResource is NULL here, the resource failed to load, - // unless it's the main resource. - if (!coreResource && webResource != webkit_web_view_get_main_resource(webView)) - return; - - if (!coreResource) - coreResource = loader->mainResource(); - - webkit_web_resource_init_with_core_resource(webResource, coreResource.get()); - - g_signal_emit_by_name(webResource, "load-finished"); - g_signal_emit_by_name(m_frame, "resource-load-finished", webResource); - g_signal_emit_by_name(webView, "resource-load-finished", m_frame, webResource); - - webkitWebViewRemoveSubresource(webView, identifierString.get()); -} - -void FrameLoaderClient::dispatchDidFailLoading(WebCore::DocumentLoader* loader, unsigned long identifier, const ResourceError& error) -{ - static_cast<WebKit::DocumentLoader*>(loader)->decreaseLoadCount(identifier); - - WebKitWebView* webView = getViewFromFrame(m_frame); - 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; - - GOwnPtr<GError> webError(g_error_new_literal(g_quark_from_string(error.domain().utf8().data()), - error.errorCode(), - error.localizedDescription().utf8().data())); - - g_signal_emit_by_name(webResource, "load-failed", webError.get()); - g_signal_emit_by_name(m_frame, "resource-load-failed", webResource, webError.get()); - g_signal_emit_by_name(webView, "resource-load-failed", m_frame, webResource, webError.get()); - - webkitWebViewRemoveSubresource(webView, identifierString.get()); -} - -bool FrameLoaderClient::dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length) -{ - notImplemented(); - return false; -} - -void FrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error) -{ - dispatchDidFailLoad(error); -} - -void FrameLoaderClient::dispatchDidFailLoad(const ResourceError& error) -{ - if (m_loadingErrorPage) - return; - - notifyStatus(m_frame, WEBKIT_LOAD_FAILED); - - WebKitWebView* webView = getViewFromFrame(m_frame); - GOwnPtr<GError> webError(g_error_new_literal( - g_quark_from_string(error.domain().utf8().data()), - error.errorCode(), - error.localizedDescription().utf8().data())); - gboolean isHandled = false; - g_signal_emit_by_name(webView, "load-error", m_frame, error.failingURL().utf8().data(), webError.get(), &isHandled); - - if (isHandled || !shouldFallBack(error)) - return; - - m_loadingErrorPage = true; - - String content; - GOwnPtr<gchar> errorPath(g_build_filename(sharedResourcesPath().data(), "resources", "error.html", NULL)); - GRefPtr<GFile> errorFile = adoptGRef(g_file_new_for_path(errorPath.get())); - - if (!errorFile) - content = makeString("<html><body>", webError->message, "</body></html>"); - else { - GOwnPtr<gchar> fileContent; - if (!g_file_load_contents(errorFile.get(), 0, &fileContent.outPtr(), 0, 0, 0)) - content = makeString("<html><body>", webError->message, "</body></html>"); - else - content = String::format(fileContent.get(), error.failingURL().utf8().data(), webError->message); - } - - webkit_web_frame_load_alternate_string(m_frame, content.utf8().data(), 0, error.failingURL().utf8().data()); -} - -void FrameLoaderClient::convertMainResourceLoadToDownload(WebCore::DocumentLoader* documentLoader, const ResourceRequest& request, const ResourceResponse& response) -{ - GRefPtr<WebKitNetworkRequest> networkRequest(adoptGRef(kitNew(request))); - WebKitWebView* view = getViewFromFrame(m_frame); - - webkit_web_view_request_download(view, networkRequest.get(), response, documentLoader->mainResourceLoader()->handle()); -} - -ResourceError FrameLoaderClient::cancelledError(const ResourceRequest& request) -{ - return WebCore::cancelledError(request); -} - -ResourceError FrameLoaderClient::blockedError(const ResourceRequest& request) -{ - return WebCore::blockedError(request); -} - -ResourceError FrameLoaderClient::cannotShowURLError(const ResourceRequest& request) -{ - return WebCore::cannotShowURLError(request); -} - -ResourceError FrameLoaderClient::interruptedForPolicyChangeError(const ResourceRequest& request) -{ - return WebCore::interruptedForPolicyChangeError(request); -} - -ResourceError FrameLoaderClient::cannotShowMIMETypeError(const ResourceResponse& response) -{ - return WebCore::cannotShowMIMETypeError(response); -} - -ResourceError FrameLoaderClient::fileDoesNotExistError(const ResourceResponse& response) -{ - return WebCore::fileDoesNotExistError(response); -} - -ResourceError FrameLoaderClient::pluginWillHandleLoadError(const ResourceResponse& response) -{ - return WebCore::pluginWillHandleLoadError(response); -} - -bool FrameLoaderClient::shouldFallBack(const ResourceError& error) -{ - return !(error.isCancellation() || error.errorCode() == WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE || error.errorCode() == WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD); -} - -bool FrameLoaderClient::canCachePage() const -{ - return true; -} - -Frame* FrameLoaderClient::dispatchCreatePage(const NavigationAction&) -{ - WebKitWebView* webView = getViewFromFrame(m_frame); - WebKitWebView* newWebView = 0; - - g_signal_emit_by_name(webView, "create-web-view", m_frame, &newWebView); - - if (!newWebView) - return 0; - - WebKitWebViewPrivate* privateData = newWebView->priv; - return core(privateData->mainFrame); -} - -void FrameLoaderClient::dispatchUnableToImplementPolicy(const ResourceError&) -{ - notImplemented(); -} - -void FrameLoaderClient::setMainDocumentError(WebCore::DocumentLoader*, const ResourceError& error) -{ - if (m_pluginView) { - m_pluginView->didFail(error); - m_pluginView = 0; - m_hasSentResponseToPlugin = false; - } -} - -void FrameLoaderClient::startDownload(const ResourceRequest& request, const String& /* suggestedName */) -{ - GRefPtr<WebKitNetworkRequest> networkRequest(adoptGRef(kitNew(request))); - WebKitWebView* view = getViewFromFrame(m_frame); - - webkit_web_view_request_download(view, networkRequest.get()); -} - -void FrameLoaderClient::updateGlobalHistory() -{ - notImplemented(); -} - -void FrameLoaderClient::updateGlobalHistoryRedirectLinks() -{ - notImplemented(); -} - -void FrameLoaderClient::savePlatformDataToCachedFrame(CachedFrame* cachedFrame) -{ -} - -static void postCommitFrameViewSetup(WebKitWebFrame *frame) -{ - WebKitWebView* containingWindow = getViewFromFrame(frame); - webkit_web_view_clear_resources(containingWindow); - - // Invalidate the viewport attributes - they will only be valid - // again if the page we're beginning to load now has an - // appropriate viewport meta tag. - WebKitWebViewPrivate* priv = containingWindow->priv; - priv->viewportAttributes->priv->isValid = FALSE; - g_object_notify(G_OBJECT(priv->viewportAttributes.get()), "valid"); - - if (priv->currentMenu) { - gtk_widget_destroy(GTK_WIDGET(priv->currentMenu)); - priv->currentMenu = 0; - } - - // Do not allow click counting between main frame loads. - priv->clickCounter.reset(); -} - -void FrameLoaderClient::transitionToCommittedFromCachedFrame(CachedFrame* cachedFrame) -{ - ASSERT(cachedFrame->view()); - - Frame* frame = core(m_frame); - if (frame != frame->page()->mainFrame()) - return; - - postCommitFrameViewSetup(m_frame); -} - -void FrameLoaderClient::transitionToCommittedForNewPage() -{ - WebKitWebView* containingWindow = getViewFromFrame(m_frame); - GtkAllocation allocation; - gtk_widget_get_allocation(GTK_WIDGET(containingWindow), &allocation); - IntSize size = IntSize(allocation.width, allocation.height); - bool transparent = webkit_web_view_get_transparent(containingWindow); - Color backgroundColor = transparent ? WebCore::Color::transparent : WebCore::Color::white; - Frame* frame = core(m_frame); - ASSERT(frame); - - frame->createView(size, backgroundColor, transparent); - - // We need to do further manipulation on the FrameView if it was the mainFrame - if (frame != frame->page()->mainFrame()) - return; - - postCommitFrameViewSetup(m_frame); -} - -void FrameLoaderClient::didSaveToPageCache() -{ -} - -void FrameLoaderClient::didRestoreFromPageCache() -{ -} - -void FrameLoaderClient::dispatchDidBecomeFrameset(bool) -{ -} - -PassRefPtr<FrameNetworkingContext> FrameLoaderClient::createNetworkingContext() -{ - return FrameNetworkingContextGtk::create(core(m_frame)); -} - -} diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h deleted file mode 100644 index 655511deb..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006, 2011 Apple Inc. All rights reserved. - * Copyright (C) 2008 Collabora Ltd. All rights reserved. - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef FrameLoaderClientGtk_h -#define FrameLoaderClientGtk_h - -#include "FrameLoaderClient.h" -#include "ResourceResponse.h" -#include "PluginView.h" -#include "webkitwebpolicydecision.h" - -typedef struct _WebKitWebFrame WebKitWebFrame; - -namespace WebKit { - - class FrameLoaderClient : public WebCore::FrameLoaderClient { - public: - FrameLoaderClient(WebKitWebFrame*); - virtual ~FrameLoaderClient(); - virtual void frameLoaderDestroyed(); - - WebKitWebFrame* webFrame() const { return m_frame; } - - virtual bool hasWebView() const; - - virtual void makeRepresentation(WebCore::DocumentLoader*) { } - virtual void forceLayout(); - virtual void forceLayoutForNonHTML(); - - virtual void setCopiesOnScroll(); - - virtual void detachedFromParent2(); - virtual void detachedFromParent3(); - - virtual void assignIdentifierToInitialRequest(unsigned long identifier, WebCore::DocumentLoader*, const WebCore::ResourceRequest&); - - virtual void dispatchWillSendRequest(WebCore::DocumentLoader*, unsigned long identifier, WebCore::ResourceRequest&, const WebCore::ResourceResponse& redirectResponse); - virtual bool shouldUseCredentialStorage(WebCore::DocumentLoader*, unsigned long identifier); - virtual void dispatchDidReceiveAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&); - virtual void dispatchDidCancelAuthenticationChallenge(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::AuthenticationChallenge&); - virtual void dispatchDidReceiveResponse(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceResponse&); - virtual void dispatchDidReceiveContentLength(WebCore::DocumentLoader*, unsigned long identifier, int dataLength); - virtual void dispatchDidFinishLoading(WebCore::DocumentLoader*, unsigned long identifier); - virtual void dispatchDidFailLoading(WebCore::DocumentLoader*, unsigned long identifier, const WebCore::ResourceError&); - virtual bool dispatchDidLoadResourceFromMemoryCache(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&, int length); - - virtual void dispatchDidHandleOnloadEvents(); - virtual void dispatchDidReceiveServerRedirectForProvisionalLoad(); - virtual void dispatchDidCancelClientRedirect(); - virtual void dispatchWillPerformClientRedirect(const WebCore::KURL&, double, double); - virtual void dispatchDidChangeLocationWithinPage(); - virtual void dispatchDidNavigateWithinPage(); - virtual void dispatchDidPushStateWithinPage(); - virtual void dispatchDidReplaceStateWithinPage(); - virtual void dispatchDidPopStateWithinPage(); - virtual void dispatchWillClose(); - virtual void dispatchDidReceiveIcon(); - virtual void dispatchDidStartProvisionalLoad(); - virtual void dispatchDidReceiveTitle(const WebCore::StringWithDirection&); - virtual void dispatchDidChangeIcons(WebCore::IconType); - virtual void dispatchDidCommitLoad(); - virtual void dispatchDidFailProvisionalLoad(const WebCore::ResourceError&); - virtual void dispatchDidFailLoad(const WebCore::ResourceError&); - virtual void dispatchDidFinishDocumentLoad(); - virtual void dispatchDidFinishLoad(); - virtual void dispatchDidLayout(WebCore::LayoutMilestones); - - virtual WebCore::Frame* dispatchCreatePage(const WebCore::NavigationAction&); - virtual void dispatchShow(); - - virtual void dispatchDecidePolicyForResponse(WebCore::FramePolicyFunction, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&); - virtual void dispatchDecidePolicyForNewWindowAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>, const WTF::String& frameName); - virtual void dispatchDecidePolicyForNavigationAction(WebCore::FramePolicyFunction, const WebCore::NavigationAction&, const WebCore::ResourceRequest&, WTF::PassRefPtr<WebCore::FormState>); - virtual void cancelPolicyCheck(); - - virtual void dispatchUnableToImplementPolicy(const WebCore::ResourceError&); - - virtual void dispatchWillSendSubmitEvent(WTF::PassRefPtr<WebCore::FormState>) { } - virtual void dispatchWillSubmitForm(WebCore::FramePolicyFunction, WTF::PassRefPtr<WebCore::FormState>); - - virtual void revertToProvisionalState(WebCore::DocumentLoader*) { } - virtual void setMainDocumentError(WebCore::DocumentLoader*, const WebCore::ResourceError&); - - virtual void postProgressStartedNotification(); - virtual void postProgressEstimateChangedNotification(); - virtual void postProgressFinishedNotification(); - - virtual PassRefPtr<WebCore::Frame> createFrame(const WebCore::KURL& url, const WTF::String& name, WebCore::HTMLFrameOwnerElement* ownerElement, - const WTF::String& referrer, bool allowsScrolling, int marginWidth, int marginHeight); - virtual PassRefPtr<WebCore::Widget> createPlugin(const WebCore::IntSize&, WebCore::HTMLPlugInElement*, const WebCore::KURL&, const WTF::Vector<WTF::String>&, const WTF::Vector<WTF::String>&, const WTF::String&, bool); - virtual void recreatePlugin(WebCore::Widget*) { } - virtual void redirectDataToPlugin(WebCore::Widget* pluginWidget); - virtual PassRefPtr<WebCore::Widget> createJavaAppletWidget(const WebCore::IntSize&, WebCore::HTMLAppletElement*, const WebCore::KURL& baseURL, const WTF::Vector<WTF::String>& paramNames, const WTF::Vector<WTF::String>& paramValues); - virtual WTF::String overrideMediaType() const; - virtual void dispatchDidClearWindowObjectInWorld(WebCore::DOMWrapperWorld*); - virtual void documentElementAvailable(); - virtual void didPerformFirstNavigation() const; - - virtual void registerForIconNotification(bool); - - virtual WebCore::ObjectContentType objectContentType(const WebCore::KURL&, const WTF::String& mimeType, bool shouldPreferPlugInsForImages); - - virtual void setMainFrameDocumentReady(bool); - - virtual void startDownload(const WebCore::ResourceRequest&, const String& suggestedName = String()); - - virtual void willChangeTitle(WebCore::DocumentLoader*); - virtual void didChangeTitle(WebCore::DocumentLoader*); - - virtual void committedLoad(WebCore::DocumentLoader*, const char*, int); - virtual void finishedLoading(WebCore::DocumentLoader*); - - virtual void updateGlobalHistory(); - virtual void updateGlobalHistoryRedirectLinks(); - virtual bool shouldGoToHistoryItem(WebCore::HistoryItem*) const; - virtual bool shouldStopLoadingForHistoryItem(WebCore::HistoryItem*) const; - - virtual void didDisplayInsecureContent(); - virtual void didRunInsecureContent(WebCore::SecurityOrigin*, const WebCore::KURL&); - virtual void didDetectXSS(const WebCore::KURL&, bool didBlockEntirePage); - - virtual WebCore::ResourceError cancelledError(const WebCore::ResourceRequest&); - virtual WebCore::ResourceError blockedError(const WebCore::ResourceRequest&); - virtual WebCore::ResourceError cannotShowURLError(const WebCore::ResourceRequest&); - virtual WebCore::ResourceError interruptedForPolicyChangeError(const WebCore::ResourceRequest&); - - virtual WebCore::ResourceError cannotShowMIMETypeError(const WebCore::ResourceResponse&); - virtual WebCore::ResourceError fileDoesNotExistError(const WebCore::ResourceResponse&); - virtual WebCore::ResourceError pluginWillHandleLoadError(const WebCore::ResourceResponse&); - - virtual bool shouldFallBack(const WebCore::ResourceError&); - - virtual bool canHandleRequest(const WebCore::ResourceRequest&) const; - virtual bool canShowMIMEType(const WTF::String&) const; - virtual bool canShowMIMETypeAsHTML(const String& MIMEType) const; - virtual bool representationExistsForURLScheme(const WTF::String&) const; - virtual WTF::String generatedMIMETypeForURLScheme(const WTF::String&) const; - - virtual void frameLoadCompleted(); - virtual void saveViewStateToItem(WebCore::HistoryItem*); - virtual void restoreViewState(); - virtual void provisionalLoadStarted(); - virtual void didFinishLoad(); - virtual void prepareForDataSourceReplacement(); - - virtual WTF::PassRefPtr<WebCore::DocumentLoader> createDocumentLoader(const WebCore::ResourceRequest&, const WebCore::SubstituteData&); - virtual void setTitle(const WebCore::StringWithDirection& title, const WebCore::KURL&); - - virtual WTF::String userAgent(const WebCore::KURL&); - - virtual void savePlatformDataToCachedFrame(WebCore::CachedFrame*); - virtual void transitionToCommittedFromCachedFrame(WebCore::CachedFrame*); - virtual void transitionToCommittedForNewPage(); - - virtual void didSaveToPageCache(); - virtual void didRestoreFromPageCache(); - - virtual void dispatchDidBecomeFrameset(bool); - - virtual bool canCachePage() const; - virtual void convertMainResourceLoadToDownload(WebCore::DocumentLoader*, const WebCore::ResourceRequest&, const WebCore::ResourceResponse&); - - virtual PassRefPtr<WebCore::FrameNetworkingContext> createNetworkingContext(); - - private: - WebKitWebFrame* m_frame; - WebCore::ResourceResponse m_response; - WebKitWebPolicyDecision* m_policyDecision; - - bool m_loadingErrorPage; - - // Plugin view to redirect data to - WebCore::PluginView* m_pluginView; - bool m_hasSentResponseToPlugin; - - virtual void dispatchDidCommitLoad(bool isNavigatingWithinPage); - }; - -} - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.cpp deleted file mode 100644 index fae137eac..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - Copyright (C) 2012 ProFUSION embedded systems - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#include "config.h" -#include "FrameNetworkingContextGtk.h" - -#include "NetworkStorageSession.h" -#include "NotImplemented.h" - -using namespace WebCore; - -namespace WebKit { - -NetworkStorageSession& FrameNetworkingContextGtk::storageSession() const -{ - return NetworkStorageSession::defaultStorageSession(); -} - -uint64_t FrameNetworkingContextGtk::initiatingPageID() const -{ - notImplemented(); - return 0; -} - -} diff --git a/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h b/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h deleted file mode 100644 index 642dfb1b4..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/FrameNetworkingContextGtk.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Library General Public - License as published by the Free Software Foundation; either - version 2 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Library General Public License for more details. - - You should have received a copy of the GNU Library General Public License - along with this library; see the file COPYING.LIB. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - Boston, MA 02110-1301, USA. -*/ - -#ifndef FrameNetworkingContextGtk_h -#define FrameNetworkingContextGtk_h - -#include "FrameNetworkingContext.h" - -namespace WebKit { - -class FrameNetworkingContextGtk : public WebCore::FrameNetworkingContext { -public: - static PassRefPtr<FrameNetworkingContextGtk> create(WebCore::Frame* frame) - { - return adoptRef(new FrameNetworkingContextGtk(frame)); - } - - WebCore::Frame* coreFrame() const { return frame(); } - virtual uint64_t initiatingPageID() const; - -private: - virtual WebCore::NetworkStorageSession& storageSession() const; - - FrameNetworkingContextGtk(WebCore::Frame* frame) - : WebCore::FrameNetworkingContext(frame) - { - } -}; - -} - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.cpp deleted file mode 100644 index faf4ea91d..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2008 Holger Hans Peter Freyther <zecke@selfish.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" -#include "GeolocationClientGtk.h" - -#if ENABLE(GEOLOCATION) - -#include "Chrome.h" -#include "ChromeClient.h" -#include "Geolocation.h" -#include "GeolocationController.h" -#include "GeolocationError.h" -#include "GeolocationPosition.h" -#include "webkitgeolocationpolicydecisionprivate.h" -#include "webkitwebframeprivate.h" -#include "webkitwebviewprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GRefPtr.h> - -namespace WebKit { - -GeolocationClient::GeolocationClient(WebKitWebView* webView) - : m_webView(webView) - , m_provider(this) -{ -} - -void GeolocationClient::geolocationDestroyed() -{ - delete this; -} - -void GeolocationClient::startUpdating() -{ - m_provider.startUpdating(); -} - -void GeolocationClient::stopUpdating() -{ - m_provider.stopUpdating(); -} - -void GeolocationClient::setEnableHighAccuracy(bool enable) -{ - m_provider.setEnableHighAccuracy(enable); -} - -WebCore::GeolocationPosition* GeolocationClient::lastPosition() -{ - return m_lastPosition.get(); -} - -void GeolocationClient::requestPermission(WebCore::Geolocation* geolocation) -{ - WebKitWebFrame* webFrame = kit(geolocation->frame()); - GRefPtr<WebKitGeolocationPolicyDecision> policyDecision(adoptGRef(webkit_geolocation_policy_decision_new(webFrame, geolocation))); - - gboolean isHandled = FALSE; - g_signal_emit_by_name(m_webView, "geolocation-policy-decision-requested", webFrame, policyDecision.get(), &isHandled); - if (!isHandled) - webkit_geolocation_policy_deny(policyDecision.get()); -} - -void GeolocationClient::cancelPermissionRequest(WebCore::Geolocation* geolocation) -{ - g_signal_emit_by_name(m_webView, "geolocation-policy-decision-cancelled", kit(geolocation->frame())); -} - -void GeolocationClient::notifyPositionChanged(int timestamp, double latitude, double longitude, double altitude, double accuracy, double altitudeAccuracy) -{ - m_lastPosition = WebCore::GeolocationPosition::create(static_cast<double>(timestamp), latitude, longitude, accuracy, - true, altitude, true, altitudeAccuracy, false, 0, false, 0); - WebCore::GeolocationController::from(core(m_webView))->positionChanged(m_lastPosition.get()); -} - -void GeolocationClient::notifyErrorOccurred(const char* message) -{ - RefPtr<WebCore::GeolocationError> error = WebCore::GeolocationError::create(WebCore::GeolocationError::PositionUnavailable, message); - WebCore::GeolocationController::from(core(m_webView))->errorOccurred(error.get()); -} - -} - -#endif // ENABLE(GEOLOCATION) diff --git a/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.h deleted file mode 100644 index 937e69761..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/GeolocationClientGtk.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2008 Holger Hans Peter Freyther <zecke@selfish.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef GeolocationClientGtk_h -#define GeolocationClientGtk_h - -#if ENABLE(GEOLOCATION) - -#include "GeolocationClient.h" -#include "GeolocationPosition.h" -#include "GeolocationProviderGeoclue.h" -#include "GeolocationProviderGeoclueClient.h" -#include <wtf/RefPtr.h> - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebCore { -class Geolocation; -} - -namespace WebKit { - -class GeolocationClient : public WebCore::GeolocationClient, public WebCore::GeolocationProviderGeoclueClient { -public: - GeolocationClient(WebKitWebView*); - - void geolocationDestroyed(); - - void startUpdating(); - void stopUpdating(); - - void setEnableHighAccuracy(bool); - WebCore::GeolocationPosition* lastPosition(); - - void requestPermission(WebCore::Geolocation*); - void cancelPermissionRequest(WebCore::Geolocation*); - -private: - // GeolocationProviderGeoclueClient interface. - virtual void notifyPositionChanged(int timestamp, double latitude, double longitude, double altitude, double accuracy, double altitudeAccuracy); - virtual void notifyErrorOccurred(const char* message); - - WebKitWebView* m_webView; - - WebCore::GeolocationProviderGeoclue m_provider; - RefPtr<WebCore::GeolocationPosition> m_lastPosition; -}; - -} // namespace WebKit - -#endif // ENABLE(GEOLOCATION) - -#endif // GeolocationClientGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.cpp b/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.cpp deleted file mode 100644 index 24b040386..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.cpp +++ /dev/null @@ -1,154 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "GtkAdjustmentWatcher.h" - -#include "Frame.h" -#include "FrameView.h" -#include "Page.h" -#include "Scrollbar.h" -#include "webkitwebviewprivate.h" -#include <gtk/gtk.h> - -using namespace WebCore; - -namespace WebKit { - -GtkAdjustmentWatcher::GtkAdjustmentWatcher(WebKitWebView* webView) - : m_webView(webView) - , m_scrollbarsDisabled(false) - , m_handlingGtkAdjustmentChange(false) - , m_updateAdjustmentCallbackId(0) -{ -} - -GtkAdjustmentWatcher::~GtkAdjustmentWatcher() -{ - if (m_updateAdjustmentCallbackId) - g_source_remove(m_updateAdjustmentCallbackId); -} - -static void updateAdjustmentFromScrollbar(GtkAdjustment* adjustment, Scrollbar* scrollbar) -{ - if (!adjustment) - return; - if (!scrollbar) { - gtk_adjustment_configure(adjustment, 0, 0, 0, 0, 0, 0); // These are the settings which remove the scrollbar. - return; - } - gtk_adjustment_configure(adjustment, scrollbar->value(), 0, scrollbar->totalSize(), - scrollbar->lineStep(), scrollbar->pageStep(), scrollbar->visibleSize()); -} - -void GtkAdjustmentWatcher::updateAdjustmentsFromScrollbars() -{ - if (m_scrollbarsDisabled) - return; - if (m_handlingGtkAdjustmentChange) - return; - if (!core(m_webView) || !core(m_webView)->mainFrame()) - return; - - FrameView* frameView = core(m_webView)->mainFrame()->view(); - updateAdjustmentFromScrollbar(m_horizontalAdjustment.get(), frameView->horizontalScrollbar()); - updateAdjustmentFromScrollbar(m_verticalAdjustment.get(), frameView->verticalScrollbar()); - if (m_updateAdjustmentCallbackId) { - g_source_remove(m_updateAdjustmentCallbackId); - m_updateAdjustmentCallbackId = 0; - } -} - -gboolean GtkAdjustmentWatcher::updateAdjustmentCallback(GtkAdjustmentWatcher* watcher) -{ - watcher->m_updateAdjustmentCallbackId = 0; - watcher->updateAdjustmentsFromScrollbars(); - return FALSE; -} - -void GtkAdjustmentWatcher::updateAdjustmentsFromScrollbarsLater() const -{ - // We've already scheduled an update. No need to schedule another. - if (m_updateAdjustmentCallbackId || m_scrollbarsDisabled) - return; - - // The fact that this method was called means that we need to update the scrollbars, but at the - // time of invocation they are not updated to reflect the scroll yet. We set a short timeout - // here, which means that they will be updated as soon as WebKit returns to the main loop. - m_updateAdjustmentCallbackId = g_timeout_add(0, reinterpret_cast<GSourceFunc>(updateAdjustmentCallback), - const_cast<void*>(static_cast<const void*>(this))); -} - -static void adjustmentValueChangedCallback(GtkAdjustment* adjustment, GtkAdjustmentWatcher* watcher) -{ - watcher->adjustmentValueChanged(adjustment); -} - -static void setAdjustment(GtkAdjustmentWatcher* watcher, GRefPtr<GtkAdjustment>& adjustmentMember, GtkAdjustment* newAdjustment) -{ - if (adjustmentMember) { - g_signal_handlers_disconnect_by_func(adjustmentMember.get(), - reinterpret_cast<void*>(adjustmentValueChangedCallback), watcher); - } - - adjustmentMember = newAdjustment; - if (newAdjustment) - g_signal_connect(newAdjustment, "value-changed", G_CALLBACK(adjustmentValueChangedCallback), watcher); -} - -void GtkAdjustmentWatcher::setHorizontalAdjustment(GtkAdjustment* newAdjustment) -{ - setAdjustment(this, m_horizontalAdjustment, newAdjustment); -} - -void GtkAdjustmentWatcher::setVerticalAdjustment(GtkAdjustment* newAdjustment) -{ - setAdjustment(this, m_verticalAdjustment, newAdjustment); -} - -void GtkAdjustmentWatcher::adjustmentValueChanged(GtkAdjustment* adjustment) -{ - FrameView* frameView = core(m_webView)->mainFrame()->view(); - Scrollbar* scrollbar = (adjustment == m_horizontalAdjustment.get()) ? - frameView->horizontalScrollbar() : frameView->verticalScrollbar(); - if (!scrollbar) - return; - - int newValue = static_cast<int>(gtk_adjustment_get_value(adjustment)); - if (newValue != scrollbar->value()) { - m_handlingGtkAdjustmentChange = true; - frameView->scrollToOffsetWithoutAnimation(scrollbar->orientation(), newValue); - m_handlingGtkAdjustmentChange = false; - } -} - -void GtkAdjustmentWatcher::disableAllScrollbars() -{ - updateAdjustmentFromScrollbar(m_horizontalAdjustment.get(), 0); - updateAdjustmentFromScrollbar(m_verticalAdjustment.get(), 0); - m_scrollbarsDisabled = true; -} - -void GtkAdjustmentWatcher::enableAllScrollbars() -{ - m_scrollbarsDisabled = false; - updateAdjustmentsFromScrollbars(); -} - -} // namespace WebKit - diff --git a/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.h b/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.h deleted file mode 100644 index e569cdc24..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/GtkAdjustmentWatcher.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef GtkAdjustmentWatcher_h -#define GtkAdjustmentWatcher_h - -#include "GRefPtrGtk.h" - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebKit { - -class GtkAdjustmentWatcher { -public: - GtkAdjustmentWatcher(WebKitWebView*); - ~GtkAdjustmentWatcher(); - - void setHorizontalAdjustment(GtkAdjustment*); - void setVerticalAdjustment(GtkAdjustment*); - GtkAdjustment* horizontalAdjustment() { return m_horizontalAdjustment.get(); }; - GtkAdjustment* verticalAdjustment() { return m_verticalAdjustment.get(); }; - void adjustmentValueChanged(GtkAdjustment*); - void updateAdjustmentsFromScrollbars(); - void updateAdjustmentsFromScrollbarsLater() const; - void disableAllScrollbars(); - void enableAllScrollbars(); - bool scrollbarsDisabled() const { return m_scrollbarsDisabled; }; - -private: - static gboolean updateAdjustmentCallback(GtkAdjustmentWatcher*); - - WebKitWebView* m_webView; - GRefPtr<GtkAdjustment> m_horizontalAdjustment; - GRefPtr<GtkAdjustment> m_verticalAdjustment; - bool m_scrollbarsDisabled; - bool m_handlingGtkAdjustmentChange; - mutable unsigned m_updateAdjustmentCallbackId; -}; - -} - -#endif // GtkAdjustmentWatcher_h - diff --git a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp deleted file mode 100644 index fb60f035b..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (C) 2008, 2012 Gustavo Noronha Silva - * Copyright (C) 2010 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "InspectorClientGtk.h" - -#include "FileSystem.h" -#include "Frame.h" -#include "InspectorController.h" -#include "NotImplemented.h" -#include "Page.h" -#include "webkitversion.h" -#include "webkitwebinspector.h" -#include "webkitwebinspectorprivate.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> - -using namespace WebCore; - -namespace WebKit { - -static void notifyWebViewDestroyed(WebKitWebView* webView, InspectorFrontendClient* inspectorFrontendClient) -{ - inspectorFrontendClient->destroyInspectorWindow(true); -} - -namespace { - -class InspectorFrontendSettingsGtk : public InspectorFrontendClientLocal::Settings { -public: - virtual ~InspectorFrontendSettingsGtk() { } - -private: - virtual String getProperty(const String& name) - { - notImplemented(); - return String(); - } - - virtual void setProperty(const String& name, const String& value) - { - notImplemented(); - } -}; - -} // namespace - -InspectorClient::InspectorClient(WebKitWebView* webView) - : m_inspectedWebView(webView) - , m_frontendPage(0) - , m_frontendClient(0) -{} - -InspectorClient::~InspectorClient() -{ - if (m_frontendClient) { - m_frontendClient->disconnectInspectorClient(); - m_frontendClient = 0; - } -} - -void InspectorClient::inspectorDestroyed() -{ - closeInspectorFrontend(); - delete this; -} - -InspectorFrontendChannel* InspectorClient::openInspectorFrontend(InspectorController* controller) -{ - // This g_object_get will ref the inspector. We're not doing an - // unref if this method succeeds because the inspector object must - // be alive even after the inspected WebView is destroyed - the - // close-window and destroy signals still need to be - // emitted. - WebKitWebInspector* webInspector = 0; - g_object_get(m_inspectedWebView, "web-inspector", &webInspector, NULL); - ASSERT(webInspector); - - WebKitWebView* inspectorWebView = 0; - g_signal_emit_by_name(webInspector, "inspect-web-view", m_inspectedWebView, &inspectorWebView); - - if (!inspectorWebView) { - g_object_unref(webInspector); - return 0; - } - - webkit_web_inspector_set_web_view(webInspector, inspectorWebView); - - GOwnPtr<gchar> inspectorPath(g_build_filename(inspectorFilesPath(), "inspector.html", NULL)); - GOwnPtr<gchar> inspectorURI(g_filename_to_uri(inspectorPath.get(), 0, 0)); - webkit_web_view_load_uri(inspectorWebView, inspectorURI.get()); - - gtk_widget_show(GTK_WIDGET(inspectorWebView)); - - m_frontendPage = core(inspectorWebView); - OwnPtr<InspectorFrontendClient> frontendClient = adoptPtr(new InspectorFrontendClient(m_inspectedWebView, inspectorWebView, webInspector, m_frontendPage, this)); - m_frontendClient = frontendClient.get(); - m_frontendPage->inspectorController()->setInspectorFrontendClient(frontendClient.release()); - - // The inspector must be in it's own PageGroup to avoid deadlock while debugging. - m_frontendPage->setGroupName(""); - - return this; -} - -void InspectorClient::closeInspectorFrontend() -{ - if (m_frontendClient) - m_frontendClient->destroyInspectorWindow(false); -} - -void InspectorClient::bringFrontendToFront() -{ - m_frontendClient->bringToFront(); -} - -void InspectorClient::releaseFrontendPage() -{ - m_frontendPage = 0; - m_frontendClient = 0; -} - -void InspectorClient::highlight() -{ - hideHighlight(); -} - -void InspectorClient::hideHighlight() -{ - // FIXME: we should be able to only invalidate the actual rects of - // the new and old nodes. We need to track the nodes, and take the - // actual highlight size into account when calculating the damage - // rect. - gtk_widget_queue_draw(GTK_WIDGET(m_inspectedWebView)); -} - -bool InspectorClient::sendMessageToFrontend(const String& message) -{ - return doDispatchMessageOnFrontendPage(m_frontendPage, message); -} - -const char* InspectorClient::inspectorFilesPath() -{ - if (m_inspectorFilesPath) - return m_inspectorFilesPath.get(); - - const char* environmentPath = getenv("WEBKIT_INSPECTOR_PATH"); - if (environmentPath && g_file_test(environmentPath, G_FILE_TEST_IS_DIR)) - m_inspectorFilesPath.set(g_strdup(environmentPath)); - else - m_inspectorFilesPath.set(g_build_filename(sharedResourcesPath().data(), "webinspector", NULL)); - - return m_inspectorFilesPath.get(); -} - -InspectorFrontendClient::InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector* webInspector, Page* inspectorPage, InspectorClient* inspectorClient) - : InspectorFrontendClientLocal(core(inspectedWebView)->inspectorController(), inspectorPage, adoptPtr(new InspectorFrontendSettingsGtk())) - , m_inspectorWebView(inspectorWebView) - , m_inspectedWebView(inspectedWebView) - , m_webInspector(webInspector) - , m_inspectorClient(inspectorClient) -{ - g_signal_connect(m_inspectorWebView, "destroy", - G_CALLBACK(notifyWebViewDestroyed), (gpointer)this); -} - -InspectorFrontendClient::~InspectorFrontendClient() -{ - if (m_inspectorClient) { - m_inspectorClient->releaseFrontendPage(); - m_inspectorClient = 0; - } - - ASSERT(!m_webInspector); -} - -void InspectorFrontendClient::destroyInspectorWindow(bool notifyInspectorController) -{ - if (!m_webInspector) - return; - - GRefPtr<WebKitWebInspector> webInspector = adoptGRef(m_webInspector.leakRef()); - - if (m_inspectorWebView) { - g_signal_handlers_disconnect_by_func(m_inspectorWebView, reinterpret_cast<gpointer>(notifyWebViewDestroyed), this); - m_inspectorWebView = 0; - } - - if (notifyInspectorController) - core(m_inspectedWebView)->inspectorController()->disconnectFrontend(); - - if (m_inspectorClient) - m_inspectorClient->releaseFrontendPage(); - - gboolean handled = FALSE; - g_signal_emit_by_name(webInspector.get(), "close-window", &handled); - ASSERT(handled); - - // Please do not use member variables here because InspectorFrontendClient object pointed by 'this' - // has been implicitly deleted by "close-window" function. -} - -String InspectorFrontendClient::localizedStringsURL() -{ - GOwnPtr<gchar> stringsPath(g_build_filename(m_inspectorClient->inspectorFilesPath(), "localizedStrings.js", NULL)); - GOwnPtr<gchar> stringsURI(g_filename_to_uri(stringsPath.get(), 0, 0)); - - // FIXME: support l10n of localizedStrings.js - return String::fromUTF8(stringsURI.get()); -} - -void InspectorFrontendClient::bringToFront() -{ - if (!m_inspectorWebView) - return; - - gboolean handled = FALSE; - g_signal_emit_by_name(m_webInspector.get(), "show-window", &handled); -} - -void InspectorFrontendClient::closeWindow() -{ - destroyInspectorWindow(true); -} - -void InspectorFrontendClient::attachWindow(DockSide) -{ - if (!m_inspectorWebView) - return; - - gboolean handled = FALSE; - g_signal_emit_by_name(m_webInspector.get(), "attach-window", &handled); -} - -void InspectorFrontendClient::detachWindow() -{ - if (!m_inspectorWebView) - return; - - gboolean handled = FALSE; - g_signal_emit_by_name(m_webInspector.get(), "detach-window", &handled); -} - -void InspectorFrontendClient::setAttachedWindowHeight(unsigned height) -{ - notImplemented(); -} - -void InspectorFrontendClient::setAttachedWindowWidth(unsigned width) -{ - notImplemented(); -} - -void InspectorFrontendClient::setToolbarHeight(unsigned height) -{ - notImplemented(); -} - -void InspectorFrontendClient::inspectedURLChanged(const String& newURL) -{ - if (!m_inspectorWebView) - return; - - webkit_web_inspector_set_inspected_uri(m_webInspector.get(), newURL.utf8().data()); -} - -} - diff --git a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h deleted file mode 100644 index 31fde8059..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/InspectorClientGtk.h +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of - * its contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY - * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef InspectorClientGtk_h -#define InspectorClientGtk_h - -#include "InspectorClient.h" -#include "InspectorFrontendChannel.h" -#include "InspectorFrontendClientLocal.h" -#include "webkitwebinspector.h" -#include "webkitwebview.h" -#include <wtf/Forward.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> - -namespace WebCore { -class Page; -} - -namespace WebKit { - -class InspectorFrontendClient; - -class InspectorClient : public WebCore::InspectorClient, public WebCore::InspectorFrontendChannel { -public: - explicit InspectorClient(WebKitWebView*); - ~InspectorClient(); - - void disconnectFrontendClient() { m_frontendClient = 0; } - - virtual void inspectorDestroyed(); - - virtual WebCore::InspectorFrontendChannel* openInspectorFrontend(WebCore::InspectorController*); - virtual void closeInspectorFrontend(); - virtual void bringFrontendToFront(); - - virtual void highlight(); - virtual void hideHighlight(); - - virtual bool sendMessageToFrontend(const WTF::String&); - - void releaseFrontendPage(); - const char* inspectorFilesPath(); - -private: - WebKitWebView* m_inspectedWebView; - WebCore::Page* m_frontendPage; - InspectorFrontendClient* m_frontendClient; - GOwnPtr<gchar> m_inspectorFilesPath; -}; - -class InspectorFrontendClient : public WebCore::InspectorFrontendClientLocal { -public: - InspectorFrontendClient(WebKitWebView* inspectedWebView, WebKitWebView* inspectorWebView, WebKitWebInspector*, WebCore::Page* inspectorPage, InspectorClient*); - virtual ~InspectorFrontendClient(); - - void disconnectInspectorClient() { m_inspectorClient = 0; } - - void destroyInspectorWindow(bool notifyInspectorController); - - virtual WTF::String localizedStringsURL(); - - virtual void bringToFront(); - virtual void closeWindow(); - - virtual void attachWindow(DockSide); - virtual void detachWindow(); - - virtual void setAttachedWindowHeight(unsigned); - virtual void setAttachedWindowWidth(unsigned); - virtual void setToolbarHeight(unsigned) OVERRIDE; - - virtual void inspectedURLChanged(const WTF::String& newURL); - -private: - WebKitWebView* m_inspectorWebView; - WebKitWebView* m_inspectedWebView; - GRefPtr<WebKitWebInspector> m_webInspector; - InspectorClient* m_inspectorClient; -}; -} - -#endif diff --git a/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp deleted file mode 100644 index 905769c35..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2012 Samsung Electronics - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "NavigatorContentUtilsClientGtk.h" - -#if ENABLE(NAVIGATOR_CONTENT_UTILS) - -#include "NotImplemented.h" -#include <wtf/text/CString.h> - -namespace WebKit { - -PassOwnPtr<NavigatorContentUtilsClient> NavigatorContentUtilsClient::create() -{ - return adoptPtr(new NavigatorContentUtilsClient); -} - -NavigatorContentUtilsClient::NavigatorContentUtilsClient() -{ -} - -void NavigatorContentUtilsClient::registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title) -{ - notImplemented(); -} - -} -#endif // ENABLE(NAVIGATOR_CONTENT_UTILS) diff --git a/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h deleted file mode 100644 index a6f3e2361..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/NavigatorContentUtilsClientGtk.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2012 Samsung Electronics - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef NavigatorContentUtilsClientGtk_h -#define NavigatorContentUtilsClientGtk_h - -#if ENABLE(NAVIGATOR_CONTENT_UTILS) -#include "NavigatorContentUtilsClient.h" - -#include <wtf/PassOwnPtr.h> - -namespace WebKit { - -class NavigatorContentUtilsClient : public WebCore::NavigatorContentUtilsClient { -public: - static PassOwnPtr<NavigatorContentUtilsClient> create(); - - ~NavigatorContentUtilsClient() { } - - virtual void registerProtocolHandler(const String& scheme, const String& baseURL, const String& url, const String& title); - -private: - NavigatorContentUtilsClient(); -}; - -} - -#endif -#endif // NavigatorContentUtilsClientGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h b/Source/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h deleted file mode 100644 index d00333ce6..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/PasteboardHelperGtk.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2007 Luca Bruno <lethalman88@gmail.com> - * Copyright (C) 2009 Holger Hans Peter Freyther - * Copyright (C) 2010 Martin Robinson <mrobinson@webkit.org> - * All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#ifndef PasteboardHelperGtk_h -#define PasteboardHelperGtk_h - -/* - * FIXME: this is for WebCore support and must be removed once - * a better solution is found - */ - -#include "Frame.h" -#include "PasteboardHelper.h" - -using namespace WebCore; - -namespace WebKit { - -class PasteboardHelperGtk : public PasteboardHelper { -public: - PasteboardHelperGtk(); - ~PasteboardHelperGtk(); - virtual guint getIdForTargetType(PasteboardTargetType); - -protected: - virtual bool usePrimarySelectionClipboard(GtkWidget*); -}; - -} - -#endif // PasteboardHelperGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.cpp deleted file mode 100644 index f9ed5ad0d..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.cpp +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "PlatformStrategiesGtk.h" - -#include "NotImplemented.h" -#include "Page.h" -#include "PageGroup.h" -#include "PlatformCookieJar.h" -#include "PluginDatabase.h" -#include "PluginPackage.h" - -using namespace WebCore; - -void PlatformStrategiesGtk::initialize() -{ - DEFINE_STATIC_LOCAL(PlatformStrategiesGtk, platformStrategies, ()); - setPlatformStrategies(&platformStrategies); -} - -PlatformStrategiesGtk::PlatformStrategiesGtk() -{ -} - -CookiesStrategy* PlatformStrategiesGtk::createCookiesStrategy() -{ - return this; -} - -DatabaseStrategy* PlatformStrategiesGtk::createDatabaseStrategy() -{ - return this; -} - -LoaderStrategy* PlatformStrategiesGtk::createLoaderStrategy() -{ - return this; -} - -PasteboardStrategy* PlatformStrategiesGtk::createPasteboardStrategy() -{ - // This is currently used only by Mac code. - notImplemented(); - return 0; -} - -PluginStrategy* PlatformStrategiesGtk::createPluginStrategy() -{ - return this; -} - -SharedWorkerStrategy* PlatformStrategiesGtk::createSharedWorkerStrategy() -{ - return this; -} - -StorageStrategy* PlatformStrategiesGtk::createStorageStrategy() -{ - return this; -} - -VisitedLinkStrategy* PlatformStrategiesGtk::createVisitedLinkStrategy() -{ - return this; -} - -// CookiesStrategy -String PlatformStrategiesGtk::cookiesForDOM(const NetworkStorageSession& session, const KURL& firstParty, const KURL& url) -{ - return WebCore::cookiesForDOM(session, firstParty, url); -} - -void PlatformStrategiesGtk::setCookiesFromDOM(const NetworkStorageSession& session, const KURL& firstParty, const KURL& url, const String& cookieString) -{ - WebCore::setCookiesFromDOM(session, firstParty, url, cookieString); -} - -bool PlatformStrategiesGtk::cookiesEnabled(const NetworkStorageSession& session, const KURL& firstParty, const KURL& url) -{ - return WebCore::cookiesEnabled(session, firstParty, url); -} - -String PlatformStrategiesGtk::cookieRequestHeaderFieldValue(const NetworkStorageSession& session, const KURL& firstParty, const KURL& url) -{ - return WebCore::cookieRequestHeaderFieldValue(session, firstParty, url); -} - -bool PlatformStrategiesGtk::getRawCookies(const NetworkStorageSession& session, const KURL& firstParty, const KURL& url, Vector<Cookie>& rawCookies) -{ - return WebCore::getRawCookies(session, firstParty, url, rawCookies); -} - -void PlatformStrategiesGtk::deleteCookie(const NetworkStorageSession& session, const KURL& url, const String& cookieName) -{ - WebCore::deleteCookie(session, url, cookieName); -} - -// PluginStrategy -void PlatformStrategiesGtk::refreshPlugins() -{ - PluginDatabase::installedPlugins()->refresh(); -} - -void PlatformStrategiesGtk::getPluginInfo(const Page* page, Vector<PluginInfo>& outPlugins) -{ - PluginDatabase* database = PluginDatabase::installedPlugins(); - const Vector<PluginPackage*> &plugins = database->plugins(); - - for (size_t i = 0; i < plugins.size(); ++i) { - PluginPackage* package = plugins[i]; - - PluginInfo pluginInfo; - pluginInfo.name = package->name(); - pluginInfo.file = package->fileName(); - pluginInfo.desc = package->description(); - - const MIMEToDescriptionsMap& mimeToDescriptions = package->mimeToDescriptions(); - MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end(); - for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) { - MimeClassInfo mime; - mime.type = it->key; - mime.desc = it->value; - mime.extensions = package->mimeToExtensions().get(mime.type); - pluginInfo.mimes.append(mime); - } - - outPlugins.append(pluginInfo); - } -} - -// VisitedLinkStrategy -bool PlatformStrategiesGtk::isLinkVisited(Page* page, LinkHash hash, const KURL&, const AtomicString&) -{ - return page->group().isLinkVisited(hash); -} - -void PlatformStrategiesGtk::addVisitedLink(Page* page, LinkHash hash) -{ - page->group().addVisitedLinkHash(hash); -} diff --git a/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.h b/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.h deleted file mode 100644 index b5f0762e5..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/PlatformStrategiesGtk.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef PlatformStrategiesGtk_h -#define PlatformStrategiesGtk_h - -#include "CookiesStrategy.h" -#include "DatabaseStrategy.h" -#include "LoaderStrategy.h" -#include "PasteboardStrategy.h" -#include "PlatformStrategies.h" -#include "PluginStrategy.h" -#include "SharedWorkerStrategy.h" -#include "StorageStrategy.h" -#include "VisitedLinkStrategy.h" - -class PlatformStrategiesGtk : public WebCore::PlatformStrategies, private WebCore::CookiesStrategy, private WebCore::DatabaseStrategy, private WebCore::LoaderStrategy, private WebCore::PluginStrategy, private WebCore::SharedWorkerStrategy, private WebCore::StorageStrategy, private WebCore::VisitedLinkStrategy { -public: - static void initialize(); - -private: - PlatformStrategiesGtk(); - - // WebCore::PlatformStrategies - virtual WebCore::CookiesStrategy* createCookiesStrategy(); - virtual WebCore::DatabaseStrategy* createDatabaseStrategy(); - virtual WebCore::LoaderStrategy* createLoaderStrategy(); - virtual WebCore::PasteboardStrategy* createPasteboardStrategy(); - virtual WebCore::PluginStrategy* createPluginStrategy(); - virtual WebCore::SharedWorkerStrategy* createSharedWorkerStrategy(); - virtual WebCore::StorageStrategy* createStorageStrategy(); - virtual WebCore::VisitedLinkStrategy* createVisitedLinkStrategy(); - - // WebCore::CookiesStrategy - virtual String cookiesForDOM(const WebCore::NetworkStorageSession&, const WebCore::KURL& firstParty, const WebCore::KURL&); - virtual void setCookiesFromDOM(const WebCore::NetworkStorageSession&, const WebCore::KURL& firstParty, const WebCore::KURL&, const String&); - virtual bool cookiesEnabled(const WebCore::NetworkStorageSession&, const WebCore::KURL& firstParty, const WebCore::KURL&); - virtual String cookieRequestHeaderFieldValue(const WebCore::NetworkStorageSession&, const WebCore::KURL& firstParty, const WebCore::KURL&); - virtual bool getRawCookies(const WebCore::NetworkStorageSession&, const WebCore::KURL& firstParty, const WebCore::KURL&, Vector<WebCore::Cookie>&); - virtual void deleteCookie(const WebCore::NetworkStorageSession&, const WebCore::KURL&, const String&); - - // WebCore::DatabaseStrategy - // - Using default implementation. - - // WebCore::PluginStrategy - virtual void refreshPlugins(); - virtual void getPluginInfo(const WebCore::Page*, Vector<WebCore::PluginInfo>&); - - // WebCore::VisitedLinkStrategy - virtual bool isLinkVisited(WebCore::Page*, WebCore::LinkHash, const WebCore::KURL& baseURL, const WTF::AtomicString& attributeURL); - virtual void addVisitedLink(WebCore::Page*, WebCore::LinkHash); -}; - -#endif // PlatformStrategiesGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp deleted file mode 100644 index 23238f485..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2007 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2009 Diego Escalante Urrelo <diegoe@gnome.org> - * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. - * Copyright (C) 2009, 2010, 2011 Igalia S.L. - * Copyright (C) 2010, Martin Robinson <mrobinson@webkit.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "TextCheckerClientGtk.h" - -#include "NotImplemented.h" -#include "webkitspellchecker.h" -#include "webkitwebsettingsprivate.h" -#include <glib.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> - -using namespace WebCore; - -namespace WebKit { - -TextCheckerClientGtk::TextCheckerClientGtk(WebKitSpellChecker* spellChecker) - : m_spellChecker(spellChecker) -{ -} - -TextCheckerClientGtk::~TextCheckerClientGtk() -{ -} - -bool TextCheckerClientGtk::shouldEraseMarkersAfterChangeSelection(TextCheckingType) const -{ - return true; -} - -void TextCheckerClientGtk::ignoreWordInSpellDocument(const String& text) -{ - webkit_spell_checker_ignore_word(m_spellChecker.get(), text.utf8().data()); -} - -void TextCheckerClientGtk::learnWord(const String& text) -{ - webkit_spell_checker_learn_word(m_spellChecker.get(), text.utf8().data()); -} - -void TextCheckerClientGtk::checkSpellingOfString(const UChar* text, int length, int* misspellingLocation, int* misspellingLength) -{ - String textAsString(text, length); - webkit_spell_checker_check_spelling_of_string(m_spellChecker.get(), textAsString.utf8().data(), misspellingLocation, misspellingLength); -} - -String TextCheckerClientGtk::getAutoCorrectSuggestionForMisspelledWord(const String& inputWord) -{ - return webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word(m_spellChecker.get(), inputWord.utf8().data()); -} - -void TextCheckerClientGtk::checkGrammarOfString(const UChar*, int, Vector<GrammarDetail>&, int*, int*) -{ - notImplemented(); -} - -void TextCheckerClientGtk::getGuessesForWord(const String& word, const String& context, WTF::Vector<String>& guesses) -{ - char** suggestions = webkit_spell_checker_get_guesses_for_word(m_spellChecker.get(), word.utf8().data(), context.utf8().data()); - if (!suggestions) - return; - - guesses.clear(); - - for (int i = 0; suggestions[i]; i++) - guesses.append(String::fromUTF8(suggestions[i])); - - g_strfreev(suggestions); -} - -void TextCheckerClientGtk::updateSpellCheckingLanguage(const char* spellCheckingLanguages) -{ - webkit_spell_checker_update_spell_checking_languages(m_spellChecker.get(), spellCheckingLanguages); -} -} diff --git a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.h deleted file mode 100644 index b4861df36..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> - * Copyright (C) 2006 Zack Rusin <zack@kde.org> - * Copyright (C) 2006 Apple Computer, Inc. - * Copyright (C) 2010 Martin Robinson <mrobinson@webkit.org> - * - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef TextCheckerClientGtk_h -#define TextCheckerClientGtk_h - -#include "TextCheckerClient.h" -#include <wtf/gobject/GRefPtr.h> - -typedef struct _WebKitSpellChecker WebKitSpellChecker; - -namespace WebKit { - -class TextCheckerClientGtk : public WebCore::TextCheckerClient { - public: - TextCheckerClientGtk(WebKitSpellChecker*); - ~TextCheckerClientGtk(); - virtual bool shouldEraseMarkersAfterChangeSelection(WebCore::TextCheckingType) const; - virtual void ignoreWordInSpellDocument(const WTF::String&); - virtual void learnWord(const WTF::String&); - virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength); - virtual WTF::String getAutoCorrectSuggestionForMisspelledWord(const WTF::String&); - virtual void checkGrammarOfString(const UChar*, int length, WTF::Vector<WebCore::GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength); - virtual void getGuessesForWord(const WTF::String& word, const WTF::String& context, WTF::Vector<WTF::String>& guesses); - virtual void requestCheckingOfString(WTF::PassRefPtr<WebCore::TextCheckingRequest>) { } - - void updateSpellCheckingLanguage(const char*); - private: - GRefPtr<WebKitSpellChecker> m_spellChecker; - }; -} -#endif - diff --git a/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.cpp b/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.cpp deleted file mode 100644 index 391676afb..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2012 Intel Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ - -#include "config.h" -#include "UserMediaClientGtk.h" - -#if ENABLE(MEDIA_STREAM) -#include "MediaStreamSource.h" -#include "NotImplemented.h" -#include "UserMediaRequest.h" - -using namespace WebCore; - -namespace WebKit { - -UserMediaClientGtk::UserMediaClientGtk() -{ -} - -UserMediaClientGtk::~UserMediaClientGtk() -{ -} - -void UserMediaClientGtk::pageDestroyed() -{ - notImplemented(); -} - -void UserMediaClientGtk::requestUserMedia(WTF::PassRefPtr<UserMediaRequest> prpRequest, const MediaStreamSourceVector& audioSource, const MediaStreamSourceVector& videoSource) -{ - notImplemented(); -} - -void UserMediaClientGtk::cancelUserMediaRequest(UserMediaRequest* request) -{ - notImplemented(); -} - -} // namespace WebKit; - -#endif // MEDIA_STREAM diff --git a/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.h b/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.h deleted file mode 100644 index 0362a4a3d..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/UserMediaClientGtk.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (C) 2012 Intel Inc. All rights reserved. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - * - */ -#ifndef UserMediaClientGtk_h -#define UserMediaClientGtk_h - -#if ENABLE(MEDIA_STREAM) - -#include "UserMediaClient.h" - -namespace WebKit { - -class UserMediaClientGtk : public WebCore::UserMediaClient { -public: - UserMediaClientGtk(); - virtual ~UserMediaClientGtk(); - - virtual void pageDestroyed(); - virtual void requestUserMedia(WTF::PassRefPtr<WebCore::UserMediaRequest>, const WebCore::MediaStreamSourceVector&, const WebCore::MediaStreamSourceVector&); - virtual void cancelUserMediaRequest(WebCore::UserMediaRequest*); -}; - -} // namespace WebKit - -#endif // ENABLE(MEDIA_STREAM) - -#endif // UserMediaClientGtk_h diff --git a/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp b/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp deleted file mode 100644 index 9877fca19..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.cpp +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "WebViewInputMethodFilter.h" - -#include "Editor.h" -#include "EventHandler.h" -#include "FocusController.h" -#include "Frame.h" -#include "PlatformKeyboardEvent.h" -#include "webkitwebviewprivate.h" -#include <wtf/text/CString.h> - -using namespace WebCore; - -namespace WebKit { - -Frame* WebViewInputMethodFilter::focusedOrMainFrame() -{ - ASSERT(m_webView); - Page* page = core(m_webView); - if (!page) - return 0; - - return page->focusController()->focusedOrMainFrame(); -} - -void WebViewInputMethodFilter::setWebView(WebKitWebView* webView) -{ - m_webView = webView; - GtkInputMethodFilter::setWidget(GTK_WIDGET(webView)); -} - -bool WebViewInputMethodFilter::canEdit() -{ - Frame* frame = focusedOrMainFrame(); - return frame && frame->editor().canEdit(); -} - -bool WebViewInputMethodFilter::sendSimpleKeyEvent(GdkEventKey* event, WTF::String simpleString, EventFakedForComposition) -{ - PlatformKeyboardEvent platformEvent(event, CompositionResults(simpleString)); - return focusedOrMainFrame()->eventHandler()->keyEvent(platformEvent); -} - -bool WebViewInputMethodFilter::sendKeyEventWithCompositionResults(GdkEventKey* event, ResultsToSend resultsToSend, EventFakedForComposition) -{ - PlatformKeyboardEvent platformEvent(event, CompositionResults(CompositionResults::WillSendCompositionResultsSoon)); - if (!focusedOrMainFrame()->eventHandler()->keyEvent(platformEvent)) - return false; - - if (resultsToSend & Composition && !m_confirmedComposition.isNull()) - confirmCompositionText(m_confirmedComposition); - if (resultsToSend & Preedit && !m_preedit.isNull()) - setPreedit(m_preedit, m_cursorOffset); - return true; -} - -void WebViewInputMethodFilter::confirmCompositionText(String text) -{ - Frame* frame = focusedOrMainFrame(); - if (!frame || !frame->editor().canEdit()) - return; - - if (text.isNull()) { - confirmCurrentComposition(); - return; - } - frame->editor().confirmComposition(m_confirmedComposition); -} - -void WebViewInputMethodFilter::confirmCurrentComposition() -{ - Frame* frame = focusedOrMainFrame(); - if (!frame || !frame->editor().canEdit()) - return; - frame->editor().confirmComposition(); -} - -void WebViewInputMethodFilter::cancelCurrentComposition() -{ - Frame* frame = focusedOrMainFrame(); - if (!frame || !frame->editor().canEdit()) - return; - frame->editor().cancelComposition(); -} - -void WebViewInputMethodFilter::setPreedit(String newPreedit, int cursorOffset) -{ - Frame* frame = focusedOrMainFrame(); - if (!frame || !frame->editor().canEdit()) - return; - - // TODO: We should parse the PangoAttrList that we get from the IM context here. - Vector<CompositionUnderline> underlines; - underlines.append(CompositionUnderline(0, newPreedit.length(), Color(1, 1, 1), false)); - frame->editor().setComposition(newPreedit, underlines, m_cursorOffset, m_cursorOffset); -} - -} // namespace WebKit diff --git a/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.h b/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.h deleted file mode 100644 index b077ae005..000000000 --- a/Source/WebKit/gtk/WebCoreSupport/WebViewInputMethodFilter.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef WebViewInputMethodFilter_h -#define WebViewInputMethodFilter_h - -#include "GtkInputMethodFilter.h" - -namespace WebCore { -class Frame; -} - -typedef struct _WebKitWebView WebKitWebView; - -namespace WebKit { - -class WebViewInputMethodFilter : public WebCore::GtkInputMethodFilter { -public: - void setWebView(WebKitWebView*); - -protected: - virtual bool sendSimpleKeyEvent(GdkEventKey*, WTF::String eventString, EventFakedForComposition); - virtual bool sendKeyEventWithCompositionResults(GdkEventKey*, ResultsToSend, EventFakedForComposition); - virtual bool canEdit(); - virtual void confirmCompositionText(String); - virtual void confirmCurrentComposition(); - virtual void cancelCurrentComposition(); - virtual void setPreedit(String, int cursorOffset); - -private: - WebCore::Frame* focusedOrMainFrame(); - - WebKitWebView* m_webView; -}; - -} // namespace WebKit - -#endif // WebViewInputMethodFilter_h diff --git a/Source/WebKit/gtk/docs/webkitenvironment.xml b/Source/WebKit/gtk/docs/webkitenvironment.xml deleted file mode 100644 index 68e2a8ce4..000000000 --- a/Source/WebKit/gtk/docs/webkitenvironment.xml +++ /dev/null @@ -1,64 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> -<refentry id="webkit-environment"> -<refmeta> -<refentrytitle>Environment</refentrytitle> -<manvolnum>7</manvolnum> -<refmiscinfo>WEBKITGTK Library</refmiscinfo> -</refmeta> - -<refnamediv> -<refname>Environment</refname> -<refpurpose>How does the environment affect applications that use WebKitGTK+</refpurpose> -</refnamediv> - -<refsect2> -<title>Logging</title> - -<para> -You can make WebKitGTK+ log some of what it is doing internally by -using the <literal>WEBKIT_DEBUG</literal> environment variable. It -takes a space-separated list of names, representing the various -aspects of the work the library performs. Notice that most of the -logging is only done in debug builds (that you get when you pass -<literal>--enable-debug</literal> to the <literal>configure</literal> -script). -</para> - -<para> -A list of possible values for the environment variable follows: -</para> - -<variablelist> - <varlistentry><term>BackForward</term></varlistentry> - <varlistentry><term>Editing</term></varlistentry> - <varlistentry><term>Events</term></varlistentry> - <varlistentry><term>Frames</term></varlistentry> - <varlistentry><term>FTP</term></varlistentry> - <varlistentry><term>History</term></varlistentry> - <varlistentry><term>IconDatabase</term></varlistentry> - <varlistentry><term>Loading</term></varlistentry> - <varlistentry><term>Media</term></varlistentry> - <varlistentry><term>Network</term></varlistentry> - <varlistentry><term>NotYetImplemented</term></varlistentry> - <varlistentry><term>PageCache</term></varlistentry> - <varlistentry><term>PlatformLeaks</term></varlistentry> - <varlistentry><term>ResourceLoading</term></varlistentry> - <varlistentry><term>Animations</term></varlistentry> - <varlistentry><term>Plugins</term></varlistentry> - <varlistentry><term>PopupBlocking</term></varlistentry> - <varlistentry><term>Progress</term></varlistentry> - <varlistentry><term>SpellingAndGrammar</term></varlistentry> - <varlistentry><term>SQLDatabase</term></varlistentry> - <varlistentry><term>StorageAPI</term></varlistentry> - <varlistentry><term>Threading</term></varlistentry> - <varlistentry><term>FileAPI</term></varlistentry> - <varlistentry><term>WebAudio</term></varlistentry> - <varlistentry><term>Compositing</term></varlistentry> - <varlistentry><term>Gamepad</term></varlistentry> -</variablelist> - -</refsect2> - -</refentry> diff --git a/Source/WebKit/gtk/docs/webkitgtk-docs.sgml b/Source/WebKit/gtk/docs/webkitgtk-docs.sgml deleted file mode 100644 index 72106522f..000000000 --- a/Source/WebKit/gtk/docs/webkitgtk-docs.sgml +++ /dev/null @@ -1,137 +0,0 @@ -<?xml version="1.0"?> -<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" - "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [ -<!ENTITY version SYSTEM "version.xml"> -]> -<book id="index" xmlns:xi="http://www.w3.org/2003/XInclude"> - <bookinfo> - <title>WebKitGTK+ Reference Manual</title> - <releaseinfo>for WebKitGTK+ &version;</releaseinfo> - </bookinfo> - - <chapter> - <title>Global functions</title> - <xi:include href="xml/webkit.xml"/> - </chapter> - - <chapter> - <title>Class Overview</title> - <xi:include href="xml/webkitwebview.xml"/> - <xi:include href="xml/webkitwebframe.xml"/> - <xi:include href="xml/webkitwebsettings.xml"/> - <xi:include href="xml/webkitwebbackforwardlist.xml"/> - <xi:include href="xml/webkitwebhistoryitem.xml"/> - <xi:include href="xml/webkitwebnavigationaction.xml"/> - <xi:include href="xml/webkitwebpolicydecision.xml"/> - <xi:include href="xml/webkitgeolocationpolicydecision.xml"/> - <xi:include href="xml/webkitnetworkrequest.xml"/> - <xi:include href="xml/webkitnetworkresponse.xml"/> - <xi:include href="xml/webkitwebinspector.xml"/> - <xi:include href="xml/webkitwebdatabase.xml"/> - <xi:include href="xml/webkitwebdatasource.xml"/> - <xi:include href="xml/webkitwebresource.xml"/> - <xi:include href="xml/webkitdownload.xml"/> - <xi:include href="xml/webkitviewportattributes.xml"/> - <xi:include href="xml/webkithittestresult.xml"/> - <xi:include href="xml/webkitwebplugin.xml"/> - <xi:include href="xml/webkitwebplugindatabase.xml"/> - <xi:include href="xml/webkitsoupauthdialog.xml"/> - <xi:include href="xml/webkitsecurityorigin.xml"/> - <xi:include href="xml/webkitwebwindowfeatures.xml"/> - <xi:include href="xml/webkiticondatabase.xml"/> - <xi:include href="xml/webkitspellchecker.xml"/> - <xi:include href="xml/webkitfavicondatabase.xml"/> - <xi:include href="xml/webkitfilechooserrequest.xml"/> - </chapter> - - <chapter> - <title>Running WebKitGTK+-based programs</title> - <xi:include href="webkitenvironment.xml"/> - </chapter> - - <index id="index-all"> - <title>Index</title> - </index> - <index id="index-deprecated" role="deprecated"> - <title>Index of deprecated symbols</title> - </index> - <index id="index-1.0.1" role="1.0.1"> - <title>Index of new symbols in 1.0.1</title> - </index> - <index id="index-1.0.2" role="1.0.2"> - <title>Index of new symbols in 1.0.2</title> - </index> - <index id="index-1.0.3" role="1.0.3"> - <title>Index of new symbols in 1.0.3</title> - </index> - <index id="index-1.1.1" role="1.1.1"> - <title>Index of new symbols in 1.1.1</title> - </index> - <index id="index-1.1.2" role="1.1.2"> - <title>Index of new symbols in 1.1.2</title> - </index> - <index id="index-1.1.3" role="1.1.3"> - <title>Index of new symbols in 1.1.3</title> - </index> - <index id="index-1.1.4" role="1.1.4"> - <title>Index of new symbols in 1.1.4</title> - </index> - <index id="index-1.1.5" role="1.1.5"> - <title>Index of new symbols in 1.1.5</title> - </index> - <index id="index-1.1.6" role="1.1.6"> - <title>Index of new symbols in 1.1.6</title> - </index> - <index id="index-1.1.7" role="1.1.7"> - <title>Index of new symbols in 1.1.7</title> - </index> - <index id="index-1.1.8" role="1.1.8"> - <title>Index of new symbols in 1.1.8</title> - </index> - <index id="index-1.1.10" role="1.1.10"> - <title>Index of new symbols in 1.1.10</title> - </index> - <index id="index-1.1.11" role="1.1.11"> - <title>Index of new symbols in 1.1.11</title> - </index> - <index id="index-1.1.13" role="1.1.13"> - <title>Index of new symbols in 1.1.13</title> - </index> - <index id="index-1.1.14" role="1.1.14"> - <title>Index of new symbols in 1.1.14</title> - </index> - <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> - <index id="index-1.1.17" role="1.1.17"> - <title>Index of new symbols in 1.1.17</title> - </index> - <index id="index-1.1.18" role="1.1.18"> - <title>Index of new symbols in 1.1.18</title> - </index> - <index id="index-1.1.20" role="1.1.20"> - <title>Index of new symbols in 1.1.20</title> - </index> - <index id="index-1.1.23" role="1.1.23"> - <title>Index of new symbols in 1.1.23</title> - </index> - <index id="index-1.3.1" role="1.3.1"> - <title>Index of new symbols in 1.3.1</title> - </index> - <index id="index-1.3.2" role="1.3.2"> - <title>Index of new symbols in 1.3.2</title> - </index> - <index id="index-1.3.3" role="1.3.3"> - <title>Index of new symbols in 1.3.3</title> - </index> - <index id="index-1.3.4" role="1.3.4"> - <title>Index of new symbols in 1.3.4</title> - </index> - <index id="index-1.3.8" role="1.3.8"> - <title>Index of new symbols in 1.3.8</title> - </index> - <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include> -</book> diff --git a/Source/WebKit/gtk/docs/webkitgtk-overrides.txt b/Source/WebKit/gtk/docs/webkitgtk-overrides.txt deleted file mode 100644 index e69de29bb..000000000 --- a/Source/WebKit/gtk/docs/webkitgtk-overrides.txt +++ /dev/null diff --git a/Source/WebKit/gtk/docs/webkitgtk-sections.txt b/Source/WebKit/gtk/docs/webkitgtk-sections.txt deleted file mode 100644 index b707bf83d..000000000 --- a/Source/WebKit/gtk/docs/webkitgtk-sections.txt +++ /dev/null @@ -1,753 +0,0 @@ -<SECTION> -<FILE>webkitwebsettings</FILE> -<TITLE>WebKitWebSettings</TITLE> -WebKitWebSettings -WebKitEditingBehavior -webkit_web_settings_copy -webkit_web_settings_new -webkit_web_settings_get_user_agent -<SUBSECTION Standard> -WEBKIT_WEB_SETTINGS -WEBKIT_IS_WEB_SETTINGS -WEBKIT_TYPE_WEB_SETTINGS -WEBKIT_WEB_SETTINGS_CLASS -WEBKIT_IS_WEB_SETTINGS_CLASS -WEBKIT_WEB_SETTINGS_GET_CLASS -<SUBSECTION Private> -WebKitWebSettingsClass -WebKitWebSettingsPrivate -webkit_web_settings_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebbackforwardlist</FILE> -<TITLE>WebKitWebBackForwardList</TITLE> -WebKitWebBackForwardList -webkit_web_back_forward_list_add_item -webkit_web_back_forward_list_clear -webkit_web_back_forward_list_contains_item -webkit_web_back_forward_list_get_back_item -webkit_web_back_forward_list_get_back_length -webkit_web_back_forward_list_get_back_list_with_limit -webkit_web_back_forward_list_get_current_item -webkit_web_back_forward_list_get_forward_item -webkit_web_back_forward_list_get_forward_length -webkit_web_back_forward_list_get_forward_list_with_limit -webkit_web_back_forward_list_get_limit -webkit_web_back_forward_list_get_nth_item -webkit_web_back_forward_list_go_back -webkit_web_back_forward_list_go_forward -webkit_web_back_forward_list_go_to_item -webkit_web_back_forward_list_new_with_web_view -webkit_web_back_forward_list_set_limit -<SUBSECTION Standard> -WEBKIT_WEB_BACK_FORWARD_LIST -WEBKIT_IS_WEB_BACK_FORWARD_LIST -WEBKIT_TYPE_WEB_BACK_FORWARD_LIST -WEBKIT_WEB_BACK_FORWARD_LIST_CLASS -WEBKIT_IS_WEB_BACK_FORWARD_LIST_CLASS -WEBKIT_WEB_BACK_FORWARD_LIST_GET_CLASS -<SUBSECTION Private> -WebKitWebBackForwardListPrivate -webkit_web_back_forward_list_get_type -WebKitWebBackForwardListClass -</SECTION> - -<SECTION> -<FILE>webkitwebhistoryitem</FILE> -<TITLE>WebKitWebHistoryItem</TITLE> -WebKitWebHistoryItem -webkit_web_history_item_copy -webkit_web_history_item_get_alternate_title -webkit_web_history_item_get_last_visited_time -webkit_web_history_item_get_original_uri -webkit_web_history_item_get_title -webkit_web_history_item_get_uri -webkit_web_history_item_new -webkit_web_history_item_new_with_data -webkit_web_history_item_set_alternate_title -<SUBSECTION Standard> -WEBKIT_WEB_HISTORY_ITEM -WEBKIT_IS_WEB_HISTORY_ITEM -WEBKIT_TYPE_WEB_HISTORY_ITEM -WEBKIT_WEB_HISTORY_ITEM_CLASS -WEBKIT_IS_WEB_HISTORY_ITEM_CLASS -WEBKIT_WEB_HISTORY_ITEM_GET_CLASS -<SUBSECTION Private> -webkit_web_history_item_get_type -WebKitWebHistoryItemPrivate -WebKitWebHistoryItemClass -</SECTION> - -<SECTION> -<FILE>webkitwebframe</FILE> -<TITLE>WebKitWebFrame</TITLE> -WebKitLoadStatus -WebKitWebFrame -webkit_web_frame_find_frame -webkit_web_frame_get_data_source -webkit_web_frame_get_dom_document -webkit_web_frame_get_global_context -webkit_web_frame_get_horizontal_scrollbar_policy -webkit_web_frame_get_load_status -webkit_web_frame_get_name -webkit_web_frame_get_network_response -webkit_web_frame_get_parent -webkit_web_frame_get_provisional_data_source -webkit_web_frame_get_security_origin -webkit_web_frame_get_title -webkit_web_frame_get_uri -webkit_web_frame_get_vertical_scrollbar_policy -webkit_web_frame_get_web_view -webkit_web_frame_load_alternate_string -webkit_web_frame_load_request -webkit_web_frame_load_string -webkit_web_frame_load_uri -webkit_web_frame_new -webkit_web_frame_print -webkit_web_frame_print_full -webkit_web_frame_reload -webkit_web_frame_stop_loading -<SUBSECTION Standard> -WEBKIT_WEB_FRAME -WEBKIT_IS_WEB_FRAME -WEBKIT_TYPE_WEB_FRAME -WEBKIT_WEB_FRAME_CLASS -WEBKIT_IS_WEB_FRAME_CLASS -WEBKIT_WEB_FRAME_GET_CLASS -<SUBSECTION Private> -WebKitWebFramePrivate -WebKitWebFrameClass -webkit_web_frame_get_type -webkit_web_frame_get_range_for_word_around_caret -webkit_web_frame_replace_selection -</SECTION> - -<SECTION> -<FILE>webkitdownload</FILE> -WebKitDownloadError -WebKitDownloadStatus -<TITLE>WebKitDownload</TITLE> -WebKitDownload -webkit_download_cancel -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 -webkit_download_get_total_size -webkit_download_get_uri -webkit_download_new -webkit_download_set_destination_uri -webkit_download_start -<SUBSECTION Standard> -WEBKIT_DOWNLOAD -WEBKIT_DOWNLOAD_CLASS -WEBKIT_DOWNLOAD_GET_CLASS -WEBKIT_IS_DOWNLOAD -WEBKIT_IS_DOWNLOAD_CLASS -WEBKIT_TYPE_DOWNLOAD -<SUBSECTION Private> -webkit_download_get_type -WebKitDownloadClass -WebKitDownloadPrivate -</SECTION> - -<SECTION> -<FILE>webkitsecurityorigin</FILE> -<TITLE>WebKitSecurityOrigin</TITLE> -WebKitSecurityOrigin -webkit_security_origin_get_all_web_databases -webkit_security_origin_get_host -webkit_security_origin_get_port -webkit_security_origin_get_protocol -webkit_security_origin_get_type -webkit_security_origin_get_web_database_quota -webkit_security_origin_get_web_database_usage -webkit_security_origin_set_web_database_quota -<SUBSECTION Standard> -WEBKIT_SECURITY_ORIGIN -WEBKIT_SECURITY_ORIGIN_CLASS -WEBKIT_SECURITY_ORIGIN_GET_CLASS -WEBKIT_IS_SECURITY_ORIGIN -WEBKIT_IS_SECURITY_ORIGIN_CLASS -WEBKIT_TYPE_SECURITY_ORIGIN -<SUBSECTION Private> -WebKitSecurityOriginClass -WebKitSecurityOriginPrivate -</SECTION> - -<SECTION> -<FILE>webkithittestresult</FILE> -<TITLE>WebKitHitTestResult</TITLE> -WebKitHitTestResult -WebKitHitTestResultContext -<SUBSECTION Standard> -WEBKIT_HIT_TEST_RESULT -WEBKIT_HIT_TEST_RESULT_CLASS -WEBKIT_HIT_TEST_RESULT_GET_CLASS -WEBKIT_IS_HIT_TEST_RESULT -WEBKIT_IS_HIT_TEST_RESULT_CLASS -WEBKIT_TYPE_HIT_TEST_RESULT -<SUBSECTION Private> -WebKitHitTestResultClass -WebKitHitTestResultPrivate -webkit_hit_test_result_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebdatasource</FILE> -<TITLE>WebKitWebDataSource</TITLE> -WebKitWebDataSource -webkit_web_data_source_get_data -webkit_web_data_source_get_encoding -webkit_web_data_source_get_initial_request -webkit_web_data_source_get_main_resource -webkit_web_data_source_get_request -webkit_web_data_source_get_subresources -webkit_web_data_source_get_unreachable_uri -webkit_web_data_source_get_web_frame -webkit_web_data_source_is_loading -webkit_web_data_source_new -<SUBSECTION Standard> -WEBKIT_IS_WEB_DATA_SOURCE -WEBKIT_IS_WEB_DATA_SOURCE_CLASS -WEBKIT_TYPE_WEB_DATA_SOURCE -WEBKIT_WEB_DATA_SOURCE -WEBKIT_WEB_DATA_SOURCE_CLASS -WEBKIT_WEB_DATA_SOURCE_GET_CLASS -<SUBSECTION Private> -WebKitWebDataSourceClass -WebKitWebDataSourcePrivate -webkit_web_data_source_new_with_request -webkit_web_data_source_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebdatabase</FILE> -<TITLE>WebKitWebDatabase</TITLE> -WebKitWebDatabase -webkit_web_database_get_display_name -webkit_web_database_get_expected_size -webkit_web_database_get_filename -webkit_web_database_get_name -webkit_web_database_get_security_origin -webkit_web_database_get_size -webkit_web_database_remove -<SUBSECTION Standard> -WEBKIT_IS_WEB_DATABASE -WEBKIT_IS_WEB_DATABASE_CLASS -WEBKIT_TYPE_WEB_DATABASE -WEBKIT_WEB_DATABASE -WEBKIT_WEB_DATABASE_CLASS -WEBKIT_WEB_DATABASE_GET_CLASS -<SUBSECTION Private> -WebKitWebDatabaseClass -WebKitWebDatabasePrivate -webkit_web_database_get_type -</SECTION> - -<SECTION> -<FILE>webkitsoupauthdialog</FILE> -<TITLE>WebKitSoupAuthDialog</TITLE> -WebKitSoupAuthDialog -<SUBSECTION Standard> -WEBKIT_IS_SOUP_AUTH_DIALOG -WEBKIT_IS_SOUP_AUTH_DIALOG_CLASS -WEBKIT_SOUP_AUTH_DIALOG -WEBKIT_SOUP_AUTH_DIALOG_CLASS -WEBKIT_SOUP_AUTH_DIALOG_GET_CLASS -WEBKIT_TYPE_SOUP_AUTH_DIALOG -<SUBSECTION Private> -webkit_soup_auth_dialog_get_type -WebKitSoupAuthDialogClass -</SECTION> - -<SECTION> -<FILE>webkitwebinspector</FILE> -<TITLE>WebKitWebInspector</TITLE> -WebKitWebInspector -webkit_web_inspector_get_inspected_uri -webkit_web_inspector_get_web_view -webkit_web_inspector_inspect_coordinates -webkit_web_inspector_show -webkit_web_inspector_close -webkit_web_inspector_inspect_node -<SUBSECTION Standard> -WEBKIT_WEB_INSPECTOR -WEBKIT_IS_WEB_INSPECTOR -WEBKIT_TYPE_WEB_INSPECTOR -WEBKIT_WEB_INSPECTOR_CLASS -WEBKIT_IS_WEB_INSPECTOR_CLASS -WEBKIT_WEB_INSPECTOR_GET_CLASS -<SUBSECTION Private> -webkit_web_inspector_get_type -WebKitWebInspectorPrivate -WebKitWebInspectorClass -</SECTION> - -<SECTION> -<FILE>webkitwebnavigationaction</FILE> -<TITLE>WebKitWebNavigationAction</TITLE> -WebKitWebNavigationAction -WebKitWebNavigationReason -webkit_web_navigation_action_get_button -webkit_web_navigation_action_get_modifier_state -webkit_web_navigation_action_get_original_uri -webkit_web_navigation_action_get_reason -webkit_web_navigation_action_get_target_frame -webkit_web_navigation_action_set_original_uri -webkit_web_navigation_action_set_reason -<SUBSECTION Standard> -WEBKIT_IS_WEB_NAVIGATION_ACTION -WEBKIT_IS_WEB_NAVIGATION_ACTION_CLASS -WEBKIT_TYPE_WEB_NAVIGATION_ACTION -WEBKIT_WEB_NAVIGATION_ACTION -WEBKIT_WEB_NAVIGATION_ACTION_CLASS -WEBKIT_WEB_NAVIGATION_ACTION_GET_CLASS -<SUBSECTION Private> -WebKitWebNavigationActionClass -WebKitWebNavigationActionPrivate -webkit_web_navigation_action_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebpolicydecision</FILE> -<TITLE>WebKitWebPolicyDecision</TITLE> -WebKitWebPolicyDecision -webkit_web_policy_decision_download -webkit_web_policy_decision_ignore -webkit_web_policy_decision_use -<SUBSECTION Standard> -WEBKIT_IS_WEB_POLICY_DECISION -WEBKIT_IS_WEB_POLICY_DECISION_CLASS -WEBKIT_TYPE_WEB_POLICY_DECISION -WEBKIT_WEB_POLICY_DECISION -WEBKIT_WEB_POLICY_DECISION_CLASS -WEBKIT_WEB_POLICY_DECISION_GET_CLASS -<SUBSECTION Private> -WebKitWebPolicyDecisionClass -WebKitWebPolicyDecisionPrivate -webkit_web_policy_decision_get_type -</SECTION> - -<SECTION> -<FILE>webkitgeolocationpolicydecision</FILE> -<TITLE>WebKitGeolocationPolicyDecision</TITLE> -WebKitGeolocationPolicyDecision -webkit_geolocation_policy_allow -webkit_geolocation_policy_deny -<SUBSECTION Standard> -WEBKIT_IS_GEOLOCATION_POLICY_DECISION -WEBKIT_IS_GEOLOCATION_POLICY_DECISION_CLASS -WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION -WEBKIT_GEOLOCATION_POLICY_DECISION -WEBKIT_GEOLOCATION_POLICY_DECISION_CLASS -WEBKIT_GEOLOCATION_POLICY_DECISION_GET_CLASS -<SUBSECTION Private> -WebKitGeolocationPolicyDecisionClass -WebKitGeolocationPolicyDecisionPrivate -webkit_geolocation_policy_decision_get_type -</SECTION> - -<SECTION> -<FILE>webkitnetworkrequest</FILE> -<TITLE>WebKitNetworkRequest</TITLE> -WebKitNetworkRequest -webkit_network_request_new -webkit_network_request_get_uri -webkit_network_request_get_message -webkit_network_request_set_uri -<SUBSECTION Standard> -WEBKIT_NETWORK_REQUEST -WEBKIT_IS_NETWORK_REQUEST -WEBKIT_TYPE_NETWORK_REQUEST -WEBKIT_NETWORK_REQUEST_CLASS -WEBKIT_IS_NETWORK_REQUEST_CLASS -WEBKIT_NETWORK_REQUEST_GET_CLASS -<SUBSECTION Private> -WebKitNetworkRequestPrivate -WebKitNetworkRequestClass -webkit_network_request_get_type -</SECTION> - -<SECTION> -<FILE>webkitnetworkresponse</FILE> -<TITLE>WebKitNetworkResponse</TITLE> -WebKitNetworkResponse -webkit_network_response_get_uri -webkit_network_response_get_message -webkit_network_response_get_suggested_filename -webkit_network_response_set_uri -<SUBSECTION Standard> -WEBKIT_NETWORK_RESPONSE -WEBKIT_IS_NETWORK_RESPONSE -WEBKIT_TYPE_NETWORK_RESPONSE -WEBKIT_NETWORK_RESPONSE_CLASS -WEBKIT_IS_NETWORK_RESPONSE_CLASS -WEBKIT_NETWORK_RESPONSE_GET_CLASS -<SUBSECTION Private> -WebKitNetworkResponsePrivate -WebKitNetworkResponseClass -webkit_network_response_new -webkit_network_response_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebview</FILE> -WebKitNavigationResponse -WebKitWebViewTargetInfo -WebKitWebViewViewMode -<TITLE>WebKitWebView</TITLE> -WebKitWebView -webkit_web_view_can_copy_clipboard -webkit_web_view_can_cut_clipboard -webkit_web_view_can_go_back -webkit_web_view_can_go_back_or_forward -webkit_web_view_can_go_forward -webkit_web_view_can_paste_clipboard -webkit_web_view_can_redo -webkit_web_view_can_show_mime_type -webkit_web_view_can_undo -webkit_web_view_copy_clipboard -webkit_web_view_cut_clipboard -webkit_web_view_delete_selection -webkit_web_view_execute_script -webkit_web_view_get_back_forward_list -webkit_web_view_get_copy_target_list -webkit_web_view_get_custom_encoding -webkit_web_view_get_dom_document -webkit_web_view_get_editable -webkit_web_view_get_encoding -webkit_web_view_get_focused_frame -webkit_web_view_get_full_content_zoom -webkit_web_view_get_hit_test_result -webkit_web_view_get_icon_pixbuf -webkit_web_view_get_icon_uri -webkit_web_view_get_inspector -webkit_web_view_get_load_status -webkit_web_view_get_main_frame -webkit_web_view_get_paste_target_list -webkit_web_view_get_progress -webkit_web_view_get_settings -webkit_web_view_get_title -webkit_web_view_get_transparent -webkit_web_view_get_uri -webkit_web_view_get_view_mode -webkit_web_view_get_view_source_mode -webkit_web_view_get_viewport_attributes -webkit_web_view_get_zoom_level -webkit_web_view_go_back -webkit_web_view_go_back_or_forward -webkit_web_view_go_forward -webkit_web_view_go_to_back_forward_item -webkit_web_view_has_selection -webkit_web_view_load_html_string -webkit_web_view_load_request -webkit_web_view_load_string -webkit_web_view_load_uri -webkit_web_view_mark_text_matches -webkit_web_view_move_cursor -webkit_web_view_new -webkit_web_view_open -webkit_web_view_paste_clipboard -webkit_web_view_redo -webkit_web_view_reload -webkit_web_view_reload_bypass_cache -webkit_web_view_search_text -webkit_web_view_select_all -webkit_web_view_set_custom_encoding -webkit_web_view_set_editable -webkit_web_view_set_full_content_zoom -webkit_web_view_set_highlight_text_matches -webkit_web_view_set_maintains_back_forward_list -webkit_web_view_set_settings -webkit_web_view_set_transparent -webkit_web_view_set_view_mode -webkit_web_view_set_view_source_mode -webkit_web_view_set_zoom_level -webkit_web_view_stop_loading -webkit_web_view_try_get_favicon_pixbuf -webkit_web_view_undo -webkit_web_view_unmark_text_matches -webkit_web_view_zoom_in -webkit_web_view_zoom_out -webkit_web_view_get_window_features -webkit_web_view_get_snapshot -<SUBSECTION Standard> -WEBKIT_WEB_VIEW -WEBKIT_IS_WEB_VIEW -WEBKIT_TYPE_WEB_VIEW -WEBKIT_WEB_VIEW_CLASS -WEBKIT_IS_WEB_VIEW_CLASS -WEBKIT_WEB_VIEW_GET_CLASS -<SUBSECTION Private> -webkit_web_view_get_type -WebKitWebViewPrivate -WebKitWebViewClass -WebKitInsertAction -WebKitSelectionAffinity -</SECTION> - -<SECTION> -<FILE>webkitwebwindowfeatures</FILE> -<TITLE>WebKitWebWindowFeatures</TITLE> -WebKitWebWindowFeatures -webkit_web_window_features_equal -webkit_web_window_features_new -<SUBSECTION Standard> -WEBKIT_IS_WEB_WINDOW_FEATURES -WEBKIT_IS_WEB_WINDOW_FEATURES_CLASS -WEBKIT_TYPE_WEB_WINDOW_FEATURES -WEBKIT_WEB_WINDOW_FEATURES -WEBKIT_WEB_WINDOW_FEATURES_CLASS -WEBKIT_WEB_WINDOW_FEATURES_GET_CLASS -<SUBSECTION Private> -webkit_web_window_features_get_type -WebKitWebWindowFeaturesClass -WebKitWebWindowFeaturesPrivate -</SECTION> - -<SECTION> -<FILE>webkit</FILE> -<TITLE>Global functions</TITLE> -webkit_get_default_session -webkit_get_default_web_database_quota -webkit_get_web_database_directory_path -webkit_get_web_plugin_database -webkit_remove_all_web_databases -webkit_set_default_web_database_quota -webkit_set_web_database_directory_path -webkit_get_favicon_database -webkit_get_icon_database -webkit_get_text_checker -webkit_set_text_checker -<SUBSECTION ApplicationCache> -webkit_application_cache_get_database_directory_path -webkit_application_cache_get_maximum_size -webkit_application_cache_set_maximum_size -<SUBSECTION CacheModel> -WebKitCacheModel -webkit_get_cache_model -webkit_set_cache_model -<SUBSECTION ContextMenuItem> -WebKitContextMenuAction -webkit_context_menu_item_get_action -<SUBSECTION SecurityPolicy> -WebKitSecurityPolicy -webkit_set_security_policy_for_uri_scheme -webkit_get_security_policy_for_uri_scheme -<SUBSECTION Private> -WEBKITGTK_API_VERSION -</SECTION> - -<SECTION> -<FILE>webkitwebresource</FILE> -<TITLE>WebKitWebResource</TITLE> -WebKitWebResource -webkit_web_resource_get_data -webkit_web_resource_get_encoding -webkit_web_resource_get_frame_name -webkit_web_resource_get_mime_type -webkit_web_resource_get_uri -webkit_web_resource_new -<SUBSECTION Standard> -WEBKIT_WEB_RESOURCE -WEBKIT_IS_WEB_RESOURCE -WEBKIT_TYPE_WEB_RESOURCE -WEBKIT_WEB_RESOURCE_CLASS -WEBKIT_IS_WEB_RESOURCE_CLASS -WEBKIT_WEB_RESOURCE_GET_CLASS -<SUBSECTION Private> -webkit_web_resource_get_type -WebKitWebResourcePrivate -WebKitWebResourceClass -</SECTION> - -<SECTION> -<FILE>webkitviewportattributes</FILE> -<TITLE>WebKitViewportAttributes</TITLE> -WebKitViewportAttributes -webkit_viewport_attributes_recompute -<SUBSECTION Standard> -WEBKIT_IS_VIEWPORT_ATTRIBUTES -WEBKIT_IS_VIEWPORT_ATTRIBUTES_CLASS -WEBKIT_TYPE_VIEWPORT_ATTRIBUTES -WEBKIT_VIEWPORT_ATTRIBUTES -WEBKIT_VIEWPORT_ATTRIBUTES_CLASS -WEBKIT_VIEWPORT_ATTRIBUTES_GET_CLASS -<SUBSECTION Private> -webkit_viewport_attributes_get_type -WebKitViewportAttributesClass -WebKitViewportAttributesPrivate -</SECTION> - -<SECTION> -<FILE>webkitwebplugin</FILE> -<TITLE>WebKitWebPlugin</TITLE> -WebKitWebPlugin -WebKitWebPluginMIMEType -webkit_web_plugin_get_description -webkit_web_plugin_get_enabled -webkit_web_plugin_get_mimetypes -webkit_web_plugin_get_name -webkit_web_plugin_set_enabled -webkit_web_plugin_get_path -<SUBSECTION Standard> -WEBKIT_IS_WEB_PLUGIN -WEBKIT_IS_WEB_PLUGIN_CLASS -WEBKIT_TYPE_WEB_PLUGIN -WEBKIT_WEB_PLUGIN -WEBKIT_WEB_PLUGIN_CLASS -WEBKIT_WEB_PLUGIN_GET_CLASS -<SUBSECTION Private> -WebKitWebPluginClass -WebKitWebPluginPrivate -webkit_web_plugin_get_type -</SECTION> - -<SECTION> -<FILE>webkitwebplugindatabase</FILE> -<TITLE>WebKitWebPluginDatabase</TITLE> -WebKitWebPluginDatabase -webkit_web_plugin_database_get_plugin_for_mimetype -webkit_web_plugin_database_get_plugins -webkit_web_plugin_database_plugins_list_free -webkit_web_plugin_database_refresh -<SUBSECTION Standard> -WEBKIT_IS_WEB_PLUGIN_DATABASE -WEBKIT_IS_WEB_PLUGIN_DATABASE_CLASS -WEBKIT_TYPE_WEB_PLUGIN_DATABASE -WEBKIT_WEB_PLUGIN_DATABASE -WEBKIT_WEB_PLUGIN_DATABASE_CLASS -WEBKIT_WEB_PLUGIN_DATABASE_GET_CLASS -<SUBSECTION Private> -WebKitWebPluginDatabaseClass -WebKitWebPluginDatabasePrivate -webkit_web_plugin_database_get_type -</SECTION> - -<SECTION> -<FILE>webkitspellchecker</FILE> -<TITLE>WebKitSpellChecker</TITLE> -WebKitSpellChecker -webkit_spell_checker_check_spelling_of_string -webkit_spell_checker_get_guesses_for_word -webkit_spell_checker_update_spell_checking_languages -webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word -webkit_spell_checker_learn_word -webkit_spell_checker_ignore_word -<SUBSECTION Standard> -WEBKIT_TYPE_SPELL_CHECKER -WEBKIT_SPELL_CHECKER -WEBKIT_IS_SPELL_CHECKER -WEBKIT_SPELL_CHECKER_GET_IFACE -<SUBSECTION Private> -WebKitSpellCheckerInterface -webkit_spell_checker_get_type -</SECTION> - -<SECTION> -<FILE>webkiterror</FILE> -WEBKIT_NETWORK_ERROR -WEBKIT_PLUGIN_ERROR -WEBKIT_POLICY_ERROR -WebKitNetworkError -WebKitPluginError -WebKitPolicyError -webkit_network_error_quark -webkit_plugin_error_quark -webkit_policy_error_quark -</SECTION> - -<SECTION> -<FILE>webkiticondatabase</FILE> -<TITLE>WebKitIconDatabase</TITLE> -WebKitIconDatabase -webkit_icon_database_clear -webkit_icon_database_get_icon_pixbuf -webkit_icon_database_get_icon_uri -webkit_icon_database_get_path -webkit_icon_database_get_type -webkit_icon_database_set_path -<SUBSECTION Standard> -WEBKIT_TYPE_ICON_DATABASE -WEBKIT_ICON_DATABASE -WEBKIT_ICON_DATABASE_CLASS -WEBKIT_ICON_DATABASE_GET_CLASS -WEBKIT_IS_ICON_DATABASE -WEBKIT_IS_ICON_DATABASE_CLASS -<SUBSECTION Private> -WebKitIconDatabaseClass -WebKitIconDatabasePrivate -</SECTION> - -<SECTION> -<FILE>webkitfavicondatabase</FILE> -<TITLE>WebKitFaviconDatabase</TITLE> -WebKitFaviconDatabase -webkit_favicon_database_clear -webkit_favicon_database_get_favicon_pixbuf -webkit_favicon_database_get_favicon_pixbuf_finish -webkit_favicon_database_get_favicon_uri -webkit_favicon_database_get_path -webkit_favicon_database_get_type -webkit_favicon_database_set_path -webkit_favicon_database_try_get_favicon_pixbuf -<SUBSECTION Standard> -WEBKIT_TYPE_FAVICON_DATABASE -WEBKIT_FAVICON_DATABASE -WEBKIT_FAVICON_DATABASE_CLASS -WEBKIT_FAVICON_DATABASE_GET_CLASS -WEBKIT_IS_FAVICON_DATABASE -WEBKIT_IS_FAVICON_DATABASE_CLASS -<SUBSECTION Private> -WebKitFaviconDatabaseClass -WebKitFaviconDatabasePrivate -</SECTION> - -<SECTION> -<FILE>webkitfilechooserrequest</FILE> -<TITLE>WebKitFileChooserRequest</TITLE> -WebKitFileChooserRequest -webkit_file_chooser_request_get_select_multiple -webkit_file_chooser_request_get_mime_types -webkit_file_chooser_request_get_mime_types_filter -webkit_file_chooser_request_get_selected_files -webkit_file_chooser_request_select_files - -<SUBSECTION Standard> -WEBKIT_TYPE_FILE_CHOOSER_REQUEST -WEBKIT_FILE_CHOOSER_REQUEST -WEBKIT_IS_FILE_CHOOSER_REQUEST -WEBKIT_FILE_CHOOSER_REQUEST_CLASS -WEBKIT_IS_FILE_CHOOSER_REQUEST_CLASS -WEBKIT_FILE_CHOOSER_REQUEST_GET_CLASS - -<SUBSECTION Private> -WebKitFileChooserRequestClass -WebKitFileChooserRequestPrivate -webkit_file_chooser_request_get_type -</SECTION> - -<SECTION> -<FILE>webkitdefines</FILE> -WEBKIT_API -WEBKITGTK_API_VERSION -WEBKIT_OBSOLETE_API -WEBKIT_CHECK_VERSION -WEBKIT_MAJOR_VERSION -WEBKIT_MICRO_VERSION -WEBKIT_MINOR_VERSION -webkit_check_version -webkit_major_version -webkit_micro_version -webkit_minor_version -<SUBSECTION Private> -LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY -WEBKIT_USER_AGENT_MAJOR_VERSION -WEBKIT_USER_AGENT_MINOR_VERSION -</SECTION> diff --git a/Source/WebKit/gtk/docs/webkitgtk.types b/Source/WebKit/gtk/docs/webkitgtk.types deleted file mode 100644 index 8049b5c04..000000000 --- a/Source/WebKit/gtk/docs/webkitgtk.types +++ /dev/null @@ -1,26 +0,0 @@ -#include <webkit/webkit.h> -webkit_download_get_type -webkit_favicon_database_get_type -webkit_file_chooser_request_get_type -webkit_geolocation_policy_decision_get_type -webkit_hit_test_result_get_type -webkit_icon_database_get_type -webkit_network_request_get_type -webkit_network_response_get_type -webkit_security_origin_get_type -webkit_soup_auth_dialog_get_type -webkit_viewport_attributes_get_type -webkit_web_back_forward_list_get_type -webkit_web_database_get_type -webkit_web_data_source_get_type -webkit_web_frame_get_type -webkit_web_history_item_get_type -webkit_web_inspector_get_type -webkit_web_navigation_action_get_type -webkit_web_plugin_database_get_type -webkit_web_plugin_get_type -webkit_web_policy_decision_get_type -webkit_web_resource_get_type -webkit_web_settings_get_type -webkit_web_view_get_type -webkit_web_window_features_get_type diff --git a/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h b/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h deleted file mode 100644 index 2c32f2c9a..000000000 --- a/Source/WebKit/gtk/gdom/ConvertToGCharPrivate.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2008, 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef ConvertToGCharPrivate_h -#define ConvertToGCharPrivate_h - -#include "KURL.h" -#include <wtf/text/CString.h> -#include <wtf/text/AtomicString.h> -#include <wtf/text/WTFString.h> - -inline gchar* copyAsGchar(WTF::String const& s) -{ - return g_strdup(s.utf8().data()); -} - -inline gchar* copyAsGchar(WebCore::KURL const& s) -{ - return copyAsGchar(s.string()); -} - -inline gchar* copyAsGchar(const String& s) -{ - return g_strdup(s.UTF8String().c_str()); -} - -inline gchar* copyAsGchar(WTF::AtomicString const& s) -{ - return g_strdup(s.string().utf8().data()); -} - -#endif /* ConvertToGCharPrivate_h*/ diff --git a/Source/WebKit/gtk/resources/error.html b/Source/WebKit/gtk/resources/error.html deleted file mode 100644 index 229be2c42..000000000 --- a/Source/WebKit/gtk/resources/error.html +++ /dev/null @@ -1,60 +0,0 @@ -<html> -<head> -<title>Error</title> -<style type="text/css"> -body { - background-color: #fff; - margin: 0; - padding: 0; -} - -#errorContainer { - background: #fff; - min-width: 35em; - max-width: 35em; - position: absolute; - top: 2em; - left: 1em; - padding: 10px; - border: 2px solid #eee; - -webkit-border-radius: 5px; -} - -#errorTitleText { - font-size: 120%%; - font-weight: bold; -} - -#errorMessageText { - font-size: 80%%; -} - -</style> -<script type="text/javascript"> - -function tryagain() -{ - location.reload(); -} -</script> -</head> -<body> -<div id="errorContainer"> - -<div id="errorTitle"> - <p id="errorTitleText">Unable to load page</p> -</div> -<div id="errorMessage"> - <p>Problem occurred while loading the URL %s</p> - <p id="errorMessageText">%s</a> -</p> -</div> - -<form name="bl"> -<input type="button" value="Try again" onclick="javascript:tryagain()" /> -</form> - -</div> - -</body> -</html> diff --git a/Source/WebKit/gtk/tests/resources/blank.ico b/Source/WebKit/gtk/tests/resources/blank.ico Binary files differdeleted file mode 100644 index ea848b991..000000000 --- a/Source/WebKit/gtk/tests/resources/blank.ico +++ /dev/null diff --git a/Source/WebKit/gtk/tests/resources/test.html b/Source/WebKit/gtk/tests/resources/test.html deleted file mode 100644 index 98f7d4fd9..000000000 --- a/Source/WebKit/gtk/tests/resources/test.html +++ /dev/null @@ -1,6 +0,0 @@ -<html> -<head><title>test</title></head> -<body>test</body> -</html>></head> -<body>test</body> -</html> diff --git a/Source/WebKit/gtk/tests/resources/test.ogg b/Source/WebKit/gtk/tests/resources/test.ogg Binary files differdeleted file mode 100644 index 7f3a3b9c5..000000000 --- a/Source/WebKit/gtk/tests/resources/test.ogg +++ /dev/null diff --git a/Source/WebKit/gtk/tests/resources/test.pdf b/Source/WebKit/gtk/tests/resources/test.pdf Binary files differdeleted file mode 100644 index 2424c19d9..000000000 --- a/Source/WebKit/gtk/tests/resources/test.pdf +++ /dev/null diff --git a/Source/WebKit/gtk/tests/resources/test.txt b/Source/WebKit/gtk/tests/resources/test.txt deleted file mode 100644 index 9daeafb98..000000000 --- a/Source/WebKit/gtk/tests/resources/test.txt +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Source/WebKit/gtk/tests/test_utils.c b/Source/WebKit/gtk/tests/test_utils.c deleted file mode 100644 index 6bb645d0d..000000000 --- a/Source/WebKit/gtk/tests/test_utils.c +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2010 Arno Renevier - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "test_utils.h" - -#include <glib.h> -#include <glib/gstdio.h> - -int testutils_relative_chdir(const gchar *targetFilename, const gchar *executablePath) -{ - /* user can set location of the webkit repository directory if it differs from build directory */ - const gchar *repoPath = g_getenv("WEBKITREPODIR"); - if (repoPath) { - if (g_chdir(repoPath)) - return -1; - } else if (g_chdir(g_path_get_dirname(executablePath))) - return -1; - - while (!g_file_test(targetFilename, G_FILE_TEST_EXISTS)) { - gchar *pathName; - if (g_chdir("..")) - return -1; - g_assert(!g_str_equal((pathName = g_get_current_dir()), "/")); - g_free(pathName); - } - - gchar *dirName = g_path_get_dirname(targetFilename); - if (g_chdir(dirName)) { - g_free(dirName); - return -1; - } - - g_free(dirName); - return 0; -} diff --git a/Source/WebKit/gtk/tests/test_utils.h b/Source/WebKit/gtk/tests/test_utils.h deleted file mode 100644 index ec60da3f0..000000000 --- a/Source/WebKit/gtk/tests/test_utils.h +++ /dev/null @@ -1,3 +0,0 @@ -#include <glib.h> - -int testutils_relative_chdir(const gchar *targetFilename, const gchar *executablePath); diff --git a/Source/WebKit/gtk/tests/testapplicationcache.c b/Source/WebKit/gtk/tests/testapplicationcache.c deleted file mode 100644 index 3a2909e26..000000000 --- a/Source/WebKit/gtk/tests/testapplicationcache.c +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2011 Lukasz Slachciak - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <glib/gprintf.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -static void test_application_cache_maximum_size() -{ - unsigned long long maxSize = 8192; - webkit_application_cache_set_maximum_size(maxSize); - - // Creating a WebView - make sure that it didn't change anything - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - g_object_unref(webView); - - g_assert(maxSize == webkit_application_cache_get_maximum_size()); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/application_cache/maximum_size", - test_application_cache_maximum_size); - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testatk.c b/Source/WebKit/gtk/tests/testatk.c deleted file mode 100644 index 242f1d78a..000000000 --- a/Source/WebKit/gtk/tests/testatk.c +++ /dev/null @@ -1,2117 +0,0 @@ -/* - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <locale.h> -#include <unistd.h> -#include <webkit/webkit.h> - -static const char* centeredContents = "<html><body><p style='text-align: center;'>Short line</p><p style='text-align: center;'>Long-size line with some foo bar baz content</p><p style='text-align: center;'>Short line</p><p style='text-align: center;'>This is a multi-line paragraph<br />where the first line<br />is the biggest one</p></body></html>"; - -static const char* contents = "<html><body><p>This is a test. This is the second sentence. And this the third.</p></body></html>"; - -static const char* contentsWithNewlines = "<html><body><p>This is a test. \n\nThis\n is the second sentence. And this the third.</p></body></html>"; - -static const char* contentsWithPreformattedText = "<html><body><pre>\n\t\n\tfirst line\n\tsecond line\n</pre></body></html>"; - -static const char* contentsWithSpecialChars = "<html><body><p>« This is a paragraph with “special” characters inside. »</p><ul><li style='max-width:100px;'>List item with some text that wraps across different lines.</li><li style='max-width:100px;'><p>List item with some text that wraps across different lines.</p></li></ul></body></html>"; - -static const char* contentsInTextarea = "<html><body><textarea cols='80'>This is a test. This is the second sentence. And this the third.</textarea></body></html>"; - -static const char* contentsInTextInput = "<html><body><input type='text' size='80' value='This is a test. This is the second sentence. And this the third.'/></body></html>"; - -static const char* contentsInParagraphAndBodySimple = "<html><body><p>This is a test.</p>Hello world.</body></html>"; - -static const char* contentsInParagraphAndBodyModerate = "<html><body><p>This is a test.</p>Hello world.<br /><font color='#00cc00'>This sentence is green.</font><br />This one is not.</body></html>"; - -static const char* contentsInTable = "<html><body><table><tr><td>foo</td><td>bar</td></tr></table></body></html>"; - -static const char* contentsInTableWithHeaders = "<html><body><table><tr><th>foo</th><th>bar</th><th colspan='2'>baz</th></tr><tr><th>qux</th><td>1</td><td>2</td><td>3</td></tr><tr><th rowspan='2'>quux</th><td>4</td><td>5</td><td>6</td></tr><tr><td>6</td><td>7</td><td>8</td></tr><tr><th>corge</th><td>9</td><td>10</td><td>11</td></tr></table><table><tr><td>1</td><td>2</td></tr><tr><td>3</td><td>4</td></tr></table></body></html>"; - -static const char* contentsWithExtraneousWhiteSpaces = "<html><head><body><p>This\n paragraph\n is\n borked!</p></body></html>"; - -static const char* contentsWithWrappedLines = "<html><body><p style='max-width:150px;'>This is one line wrapped because of the maximum width of its container.</p><p>This is another line wrapped<br>because of one forced<br>line break in the middle.</body></html>"; - -static const char* comboBoxSelector = "<html><body><select><option selected value='foo'>foo</option><option value='bar'>bar</option></select></body></html>"; - -static const char* embeddedObjects = "<html><body><p>Choose: <input value='foo' type='checkbox'/>foo <input value='bar' type='checkbox'/>bar (pick one)</p><p>Choose: <select name='foo'><option>bar</option><option>baz</option></select> (pick one)</p><p><input name='foobarbutton' value='foobar' type='button'/></p></body></html>"; - -static const char* formWithTextInputs = "<html><body><form><input type='text' name='entry' /><input type='password' name='passwordEntry' /></form></body></html>"; - -static const char* hypertextAndHyperlinks = "<html><body><p>A paragraph with no links at all</p><p><a href='http://foo.bar.baz/'>A line</a> with <a href='http://bar.baz.foo/'>a link in the middle</a> as well as at the beginning and <a href='http://baz.foo.bar/'>at the end</a></p><ol><li>List item with a <span><a href='http://foo.bar.baz/'>link inside a span node</a></span></li></ol></body></html>"; - -static const char* layoutAndDataTables = "<html><body><table><tr><th>Odd</th><th>Even</th></tr><tr><td>1</td><td>2</td></tr></table><table><tr><td>foo</td><td>bar</td></tr></table></body></html>"; - -static const char* linksWithInlineImages = "<html><head><style>a.http:before {content: url(no-image.png);}</style><body><p><a class='http' href='foo'>foo</a> bar baz</p><p>foo <a class='http' href='bar'>bar</a> baz</p><p>foo bar <a class='http' href='baz'>baz</a></p></body></html>"; - -static const char* listsOfItems = "<html><body><ul><li>text only</li><li><a href='foo'>link only</a></li><li>text and a <a href='bar'>link</a></li></ul><ol><li>text only</li><li><a href='foo'>link only</a></li><li>text and a <a href='bar'>link</a></li></ol></body></html>"; - -static const char* textForCaretBrowsing = "<html><body><h1>A text header</h1><p>A paragraph <a href='http://foo.bar.baz/'>with a link</a> in the middle</p><ol><li>A list item</li><li><span style='display:block;'>Block span in a list item</span><span>Inline span in a list item</span></li><li><a href='foo'><span style='display:block;'>Block span in a link in a list item</span><span>Inline span in a link in a list item</span></a></li></ol><select><option selected value='foo'>An option in a combo box</option></select><input type='text' name='foo' value='foo bar baz' /><table><tr><td>a table cell</td><td></td><td><a href='foo'><span style='display:block;'>Block span in a link in a table cell</span><span>Inline span in a link in a table cell</span></a></td><td><span style='display:block;'>Block span in a table cell</span><span>Inline span in a table cell</span></td></tr></table><h4><a href='foo'><span style='display:block;'>Block span in a link in a heading</span><span>Inline span in a link in a heading</span></h4><h4><span style='display:block;'>Block span in a heading</span><span>Inline span in a heading</span></h4></body></html>"; - -static const char* textForSelections = "<html><body><p>A paragraph with plain text</p><p>A paragraph with <a href='http://webkit.org'>a link</a> in the middle</p><ol><li>A list item</li></ol><select></body></html>"; - -static const char* textWithAttributes = "<html><head><style>.st1 {font-family: monospace; color:rgb(120,121,122);} .st2 {text-decoration:underline; background-color:rgb(80,81,82);}</style></head><body><p style=\"font-size:14; text-align:right;\">This is the <i>first</i><b> sentence of this text.</b></p><p class=\"st1\">This sentence should have an style applied <span class=\"st2\">and this part should have another one</span>.</p><p>x<sub>1</sub><sup>2</sup>=x<sub>2</sub><sup>3</sup></p><p style=\"text-align:center;\">This sentence is the <strike>last</strike> one.</p></body></html>"; - -static AtkObject* getWebAreaObject(WebKitWebView* webView) -{ - /* Manually spin the main context to make sure the accessible - objects are properly created before continuing. */ - while (g_main_context_pending(0)) - g_main_context_iteration(0, TRUE); - - AtkObject* rootObject = gtk_widget_get_accessible(GTK_WIDGET(webView)); - if (!rootObject) - return NULL; - - AtkObject* webAreaObject = atk_object_ref_accessible_child(rootObject, 0); - if (!webAreaObject) - return NULL; - - /* We don't need the extra ref here. */ - g_object_unref(webAreaObject); - - return webAreaObject; -} - -typedef gchar* (*AtkGetTextFunction) (AtkText*, gint, AtkTextBoundary, gint*, gint*); - -static void testGetTextFunction(AtkText* textObject, AtkGetTextFunction fn, AtkTextBoundary boundary, gint offset, const char* textResult, gint startOffsetResult, gint endOffsetResult) -{ - gint startOffset; - gint endOffset; - char* text = fn(textObject, offset, boundary, &startOffset, &endOffset); - g_assert_cmpstr(text, ==, textResult); - g_assert_cmpint(startOffset, ==, startOffsetResult); - g_assert_cmpint(endOffset, ==, endOffsetResult); - g_free(text); -} - -static void runGetTextTests(AtkText* textObject) -{ - char* text = atk_text_get_text(textObject, 0, -1); - g_assert_cmpstr(text, ==, "This is a test. This is the second sentence. And this the third."); - g_free(text); - - /* ATK_TEXT_BOUNDARY_CHAR */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_CHAR, - 0, "T", 0, 1); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_CHAR, - 0, "h", 1, 2); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, - 0, "", 0, 0); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, - 1, "T", 0, 1); - - /* ATK_TEXT_BOUNDARY_WORD_START */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, - 0, "This ", 0, 5); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, - 4, "This ", 0, 5); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, - 10, "test. ", 10, 16); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, - 58, "third.", 58, 64); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, - 5, "This ", 0, 5); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, - 7, "This ", 0, 5); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, - 0, "is ", 5, 8); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, - 4, "is ", 5, 8); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, - 3, "is ", 5, 8); - - /* ATK_TEXT_BOUNDARY_WORD_END */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, - 0, "This", 0, 4); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, - 4, " is", 4, 7); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, - 5, " is", 4, 7); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, - 9, " test", 9, 14); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, - 5, "This", 0, 4); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, - 4, "This", 0, 4); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, - 7, " is", 4, 7); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, - 5, " a", 7, 9); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, - 4, " a", 7, 9); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, - 58, " third", 57, 63); - - /* ATK_TEXT_BOUNDARY_SENTENCE_START */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 0, "This is a test. ", 0, 16); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 15, "This is a test. ", 0, 16); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 0, "This is the second sentence. ", 16, 45); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 15, "This is the second sentence. ", 16, 45); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 16, "This is a test. ", 0, 16); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 44, "This is a test. ", 0, 16); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_START, - 15, "", 0, 0); - - /* ATK_TEXT_BOUNDARY_SENTENCE_END */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 0, "This is a test.", 0, 15); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 15, " This is the second sentence.", 15, 44); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 16, " This is the second sentence.", 15, 44); - - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 17, " This is the second sentence.", 15, 44); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 0, " This is the second sentence.", 15, 44); - - testGetTextFunction(textObject, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 15, " And this the third.", 44, 64); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 16, "This is a test.", 0, 15); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 15, "This is a test.", 0, 15); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 14, "", 0, 0); - - testGetTextFunction(textObject, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_SENTENCE_END, - 44, " This is the second sentence.", 15, 44); - - /* It's tricky to test these properly right now, since our a11y - implementation splits different lines in different a11y items. */ - /* ATK_TEXT_BOUNDARY_LINE_START */ - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, - 0, "This is a test. This is the second sentence. And this the third.", 0, 64); - - /* ATK_TEXT_BOUNDARY_LINE_END */ - testGetTextFunction(textObject, 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); - - /* For objects implementing AtkEditableText, try to change the - exposed text and retrieve it again as a full line. - (see https://bugs.webkit.org/show_bug.cgi?id=72830) */ - if (ATK_IS_EDITABLE_TEXT(textObject)) { - atk_editable_text_set_text_contents(ATK_EDITABLE_TEXT(textObject), "foo bar baz"); - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 0, "foo bar baz", 0, 11); - testGetTextFunction(textObject, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 0, "foo bar baz", 0, 11); - } -} - -static gchar* textCaretMovedResult = 0; - -static void textCaretMovedCallback(AtkText* text, gint pos, gpointer data) -{ - g_assert(ATK_IS_TEXT(text)); - - g_free(textCaretMovedResult); - AtkRole role = atk_object_get_role(ATK_OBJECT(text)); - textCaretMovedResult = g_strdup_printf("|%s|%d|", atk_role_get_name(role), pos); -} - -static void testWebkitAtkCaretOffsets() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, textForCaretBrowsing, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* header = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_TEXT(header)); - g_signal_connect(header, "text-caret-moved", G_CALLBACK(textCaretMovedCallback), 0); - - gchar* text = atk_text_get_text(ATK_TEXT(header), 0, -1); - g_assert_cmpstr(text, ==, "A text header"); - g_free (text); - - /* It should be possible to place the caret inside a header. */ - gboolean result = atk_text_set_caret_offset(ATK_TEXT(header), 5); - g_assert_cmpint(result, ==, TRUE); - gint offset = atk_text_get_caret_offset(ATK_TEXT(header)); - g_assert_cmpint(offset, ==, 5); - g_assert_cmpstr(textCaretMovedResult, ==, "|heading|5|"); - - AtkObject* paragraph = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_IS_TEXT(paragraph)); - g_signal_connect(paragraph, "text-caret-moved", G_CALLBACK(textCaretMovedCallback), 0); - - text = atk_text_get_text(ATK_TEXT(paragraph), 0, -1); - g_assert_cmpstr(text, ==, "A paragraph with a link in the middle"); - g_free (text); - - /* It should be possible to place the caret inside a paragraph and a link. */ - result = atk_text_set_caret_offset(ATK_TEXT(paragraph), 5); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(paragraph)); - g_assert_cmpint(offset, ==, 5); - g_assert_cmpstr(textCaretMovedResult, ==, "|paragraph|5|"); - - result = atk_text_set_caret_offset(ATK_TEXT(paragraph), 20); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(paragraph)); - g_assert_cmpint(offset, ==, 20); - g_assert_cmpstr(textCaretMovedResult, ==, "|paragraph|20|"); - - result = atk_text_set_caret_offset(ATK_TEXT(paragraph), 30); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(paragraph)); - g_assert_cmpint(offset, ==, 30); - g_assert_cmpstr(textCaretMovedResult, ==, "|paragraph|30|"); - - AtkObject* link = atk_object_ref_accessible_child(paragraph, 0); - g_assert(ATK_IS_TEXT(link)); - text = atk_text_get_text(ATK_TEXT(link), 0, -1); - g_assert_cmpstr(text, ==, "with a link"); - g_free (text); - - result = atk_text_set_caret_offset(ATK_TEXT(link), 5); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(link)); - g_assert_cmpint(offset, ==, 5); - /* Positions inside links are reported relative to the paragraph. */ - g_assert_cmpstr(textCaretMovedResult, ==, "|paragraph|17|"); - - AtkObject* list = atk_object_ref_accessible_child(object, 2); - g_assert(ATK_OBJECT(list)); - g_assert(atk_object_get_role(list) == ATK_ROLE_LIST); - g_assert_cmpint(atk_object_get_n_accessible_children(list), ==, 3); - - AtkObject* listItem = atk_object_ref_accessible_child(list, 0); - g_assert(ATK_IS_TEXT(listItem)); - text = atk_text_get_text(ATK_TEXT(listItem), 0, -1); - g_assert_cmpstr(text, ==, "1. A list item"); - g_free (text); - - listItem = atk_object_ref_accessible_child(list, 1); - g_assert(ATK_IS_TEXT(listItem)); - text = atk_text_get_text(ATK_TEXT(listItem), 0, -1); - g_assert_cmpstr(text, ==, "2. Block span in a list item\nInline span in a list item"); - g_free (text); - - listItem = atk_object_ref_accessible_child(list, 2); - g_assert(ATK_IS_TEXT(listItem)); - text = atk_text_get_text(ATK_TEXT(listItem), 0, -1); - g_assert_cmpstr(text, ==, "3. Block span in a link in a list item\nInline span in a link in a list item"); - g_free (text); - - /* It's not possible to place the caret inside an item's marker. */ - result = atk_text_set_caret_offset(ATK_TEXT(listItem), 1); - g_assert_cmpint(result, ==, FALSE); - - /* It should be possible to place the caret inside an item's text. */ - result = atk_text_set_caret_offset(ATK_TEXT(listItem), 5); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(listItem)); - g_assert_cmpint(offset, ==, 5); - - AtkObject* panel = atk_object_ref_accessible_child(object, 3); - g_assert(ATK_IS_OBJECT(panel)); - g_assert(atk_object_get_role(panel) == ATK_ROLE_PANEL); - - AtkObject* comboBox = atk_object_ref_accessible_child(panel, 0); - g_assert(ATK_IS_OBJECT(comboBox)); - g_assert(!ATK_IS_TEXT(comboBox)); - g_assert(atk_object_get_role(comboBox) == ATK_ROLE_COMBO_BOX); - - AtkObject* menuPopup = atk_object_ref_accessible_child(comboBox, 0); - g_assert(ATK_IS_OBJECT(menuPopup)); - g_assert(!ATK_IS_TEXT(menuPopup)); - g_assert(atk_object_get_role(menuPopup) == ATK_ROLE_MENU); - - AtkObject* comboBoxOption = atk_object_ref_accessible_child(menuPopup, 0); - g_assert(ATK_IS_OBJECT(comboBoxOption)); - g_assert(atk_object_get_role(comboBoxOption) == ATK_ROLE_MENU_ITEM); - g_assert(ATK_IS_TEXT(comboBoxOption)); - text = atk_text_get_text(ATK_TEXT(comboBoxOption), 0, -1); - g_assert_cmpstr(text, ==, "An option in a combo box"); - g_free(text); - - /* It's not possible to place the caret inside an option for a combobox. */ - result = atk_text_set_caret_offset(ATK_TEXT(comboBoxOption), 1); - g_assert_cmpint(result, ==, FALSE); - - AtkObject* textEntry = atk_object_ref_accessible_child(panel, 1); - g_assert(ATK_IS_OBJECT(textEntry)); - g_assert(atk_object_get_role(textEntry) == ATK_ROLE_ENTRY); - g_assert(ATK_IS_TEXT(textEntry)); - text = atk_text_get_text(ATK_TEXT(textEntry), 0, -1); - g_assert_cmpstr(text, ==, "foo bar baz"); - g_free(text); - - result = atk_text_set_caret_offset(ATK_TEXT(textEntry), 5); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(textEntry)); - g_assert_cmpint(offset, ==, 5); - - AtkObject* table = atk_object_ref_accessible_child(object, 4); - g_assert(ATK_IS_OBJECT(table)); - g_assert(!ATK_IS_TEXT(table)); - g_assert(atk_object_get_role(table) == ATK_ROLE_TABLE); - g_assert_cmpint(atk_object_get_n_accessible_children(table), ==, 4); - - AtkObject* tableCell = atk_object_ref_accessible_child(table, 0); - g_assert(ATK_IS_TEXT(tableCell)); - g_assert(atk_object_get_role(tableCell) == ATK_ROLE_TABLE_CELL); - text = atk_text_get_text(ATK_TEXT(tableCell), 0, -1); - g_assert_cmpstr(text, ==, "a table cell"); - g_free(text); - - result = atk_text_set_caret_offset(ATK_TEXT(tableCell), 2); - g_assert_cmpint(result, ==, TRUE); - offset = atk_text_get_caret_offset(ATK_TEXT(tableCell)); - g_assert_cmpint(offset, ==, 2); - - /* Even empty table cells should implement AtkText, but report an empty string */ - tableCell = atk_object_ref_accessible_child(table, 1); - g_assert(ATK_IS_TEXT(tableCell)); - g_assert(atk_object_get_role(tableCell) == ATK_ROLE_TABLE_CELL); - text = atk_text_get_text(ATK_TEXT(tableCell), 0, -1); - g_assert_cmpstr(text, ==, ""); - g_free(text); - - tableCell = atk_object_ref_accessible_child(table, 2); - g_assert(ATK_IS_TEXT(tableCell)); - g_assert(atk_object_get_role(tableCell) == ATK_ROLE_TABLE_CELL); - text = atk_text_get_text(ATK_TEXT(tableCell), 0, -1); - g_assert_cmpstr(text, ==, "Block span in a link in a table cell\nInline span in a link in a table cell"); - g_free(text); - - tableCell = atk_object_ref_accessible_child(table, 3); - g_assert(ATK_IS_TEXT(tableCell)); - g_assert(atk_object_get_role(tableCell) == ATK_ROLE_TABLE_CELL); - text = atk_text_get_text(ATK_TEXT(tableCell), 0, -1); - g_assert_cmpstr(text, ==, "Block span in a table cell\nInline span in a table cell"); - g_free(text); - - header = atk_object_ref_accessible_child(object, 5); - g_assert(ATK_IS_TEXT(header)); - g_assert(atk_object_get_role(header) == ATK_ROLE_HEADING); - text = atk_text_get_text(ATK_TEXT(header), 0, -1); - g_assert_cmpstr(text, ==, "Block span in a link in a heading\nInline span in a link in a heading"); - g_free(text); - - header = atk_object_ref_accessible_child(object, 6); - g_assert(ATK_IS_TEXT(header)); - g_assert(atk_object_get_role(header) == ATK_ROLE_HEADING); - text = atk_text_get_text(ATK_TEXT(header), 0, -1); - g_assert_cmpstr(text, ==, "Block span in a heading\nInline span in a heading"); - g_free(text); - - g_free(textCaretMovedResult); - - g_object_unref(header); - g_object_unref(paragraph); - g_object_unref(link); - g_object_unref(list); - g_object_unref(listItem); - g_object_unref(panel); - g_object_unref(comboBox); - g_object_unref(menuPopup); - g_object_unref(comboBoxOption); - g_object_unref(textEntry); - g_object_unref(table); - g_object_unref(tableCell); - g_object_unref(webView); -} - -static void testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsWithExtraneousWhiteSpaces, 0, 0, 0); - - /* Enable caret browsing. */ - WebKitWebSettings* settings = webkit_web_view_get_settings(webView); - g_object_set(G_OBJECT(settings), "enable-caret-browsing", TRUE, NULL); - webkit_web_view_set_settings(webView, settings); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - AtkText* textObject = ATK_TEXT(object); - g_assert(ATK_IS_TEXT(textObject)); - - gchar* text = atk_text_get_text(textObject, 0, -1); - g_assert_cmpstr(text, ==, "This paragraph is borked!"); - g_free(text); - - gint characterCount = atk_text_get_character_count(textObject); - g_assert_cmpint(characterCount, ==, 25); - - gboolean result = atk_text_set_caret_offset(textObject, characterCount - 1); - g_assert_cmpint(result, ==, TRUE); - - gint caretOffset = atk_text_get_caret_offset(textObject); - g_assert_cmpint(caretOffset, ==, characterCount - 1); - - result = atk_text_set_caret_offset(textObject, characterCount); - g_assert_cmpint(result, ==, TRUE); - - caretOffset = atk_text_get_caret_offset(textObject); - g_assert_cmpint(caretOffset, ==, characterCount); - - g_object_unref(webView); -} - -static void testWebkitAtkComboBox() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, comboBoxSelector, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* formObject = atk_object_ref_accessible_child(object, 0); - g_assert(formObject); - - AtkObject* comboBox = atk_object_ref_accessible_child(formObject, 0); - g_assert(ATK_IS_OBJECT(comboBox)); - - AtkObject* menuPopup = atk_object_ref_accessible_child(comboBox, 0); - g_assert(ATK_IS_OBJECT(menuPopup)); - - AtkObject* item1 = atk_object_ref_accessible_child(menuPopup, 0); - g_assert(ATK_IS_OBJECT(item1)); - - AtkObject* item2 = atk_object_ref_accessible_child(menuPopup, 1); - g_assert(ATK_IS_OBJECT(item2)); - - /* Check roles. */ - g_assert(atk_object_get_role(comboBox) == ATK_ROLE_COMBO_BOX); - g_assert(atk_object_get_role(menuPopup) == ATK_ROLE_MENU); - g_assert(atk_object_get_role(item1) == ATK_ROLE_MENU_ITEM); - g_assert(atk_object_get_role(item2) == ATK_ROLE_MENU_ITEM); - - /* Check the implementation of the AtkSelection interface. */ - g_assert(ATK_IS_SELECTION(comboBox)); - AtkSelection* atkSelection = ATK_SELECTION(comboBox); - g_assert_cmpint(atk_selection_get_selection_count(atkSelection), ==, 1); - g_assert(atk_selection_is_child_selected(atkSelection, 0)); - g_assert(!atk_selection_is_child_selected(atkSelection, 1)); - AtkObject* selectedItem = atk_selection_ref_selection(atkSelection, 0); - g_assert(selectedItem == item1); - g_object_unref(selectedItem); - - /* Check that the menu popup has 0 links and doesn't crash from checking. */ - gint nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(menuPopup)); - g_assert_cmpint(nLinks, ==, 0); - - /* Check the implementations of the AtkAction interface. */ - g_assert(ATK_IS_ACTION(comboBox)); - AtkAction* atkAction = ATK_ACTION(comboBox); - g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); - g_assert(atk_action_do_action(atkAction, 0)); - - g_assert(ATK_IS_ACTION(menuPopup)); - atkAction = ATK_ACTION(menuPopup); - g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); - g_assert(atk_action_do_action(atkAction, 0)); - - g_assert(ATK_IS_ACTION(item1)); - atkAction = ATK_ACTION(item1); - g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); - g_assert(atk_action_do_action(atkAction, 0)); - - g_assert(ATK_IS_ACTION(item2)); - atkAction = ATK_ACTION(item2); - g_assert_cmpint(atk_action_get_n_actions(atkAction), ==, 1); - g_assert(atk_action_do_action(atkAction, 0)); - - /* After selecting the second item, selection should have changed. */ - g_assert_cmpint(atk_selection_get_selection_count(atkSelection), ==, 1); - g_assert(!atk_selection_is_child_selected(atkSelection, 0)); - g_assert(atk_selection_is_child_selected(atkSelection, 1)); - selectedItem = atk_selection_ref_selection(atkSelection, 0); - g_assert(selectedItem == item2); - g_object_unref(selectedItem); - - /* Check the implementation of the AtkText interface. */ - g_assert(ATK_IS_TEXT(item1)); - AtkText* atkText = ATK_TEXT(item1); - char *text = atk_text_get_text(atkText, 0, -1); - g_assert_cmpstr(text, ==, "foo"); - g_free(text); - text = atk_text_get_text(atkText, 0, 2); - g_assert_cmpstr(text, ==, "fo"); - g_free(text); - - g_assert(ATK_IS_TEXT(item2)); - atkText = ATK_TEXT(item2); - text = atk_text_get_text(atkText, 0, -1); - g_assert_cmpstr(text, ==, "bar"); - g_free(text); - text = atk_text_get_text(atkText, 1, 3); - g_assert_cmpstr(text, ==, "ar"); - g_free(text); - - g_object_unref(formObject); - g_object_unref(comboBox); - g_object_unref(menuPopup); - g_object_unref(item1); - g_object_unref(item2); - g_object_unref(webView); -} - -static gchar* loadingEventsResult = 0; - -static void updateLoadingEventsResult(const gchar* signalName) -{ - g_assert(signalName); - - gchar* previousResult = loadingEventsResult; - loadingEventsResult = g_strdup_printf("%s|%s", previousResult, signalName); - g_free(previousResult); -} - -static gboolean documentLoadingEventCallback(GSignalInvocationHint *signalHint, guint numParamValues, const GValue *paramValues, gpointer data) -{ - // At least we should receive the instance emitting the signal. - if (numParamValues < 1) - return TRUE; - - GSignalQuery signal_query; - g_signal_query(signalHint->signal_id, &signal_query); - - updateLoadingEventsResult(signal_query.signal_name); - return TRUE; -} - -static void testWebkitAtkDocumentLoadingEvents() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - - /* Connect globally to see those events during a future load. */ - guint loadCompleteListenerId = atk_add_global_event_listener(documentLoadingEventCallback, "ATK:AtkDocument:load-complete"); - - /* Do the load, so we can see those events happening. */ - loadingEventsResult = g_strdup(""); - webkit_web_view_load_string(webView, contents, 0, 0, 0); - - /* Trigger the creation of the full accessibility hierarchy by - asking for the webArea object, so we can listen to events. */ - getWebAreaObject(webView); - - atk_remove_global_event_listener(loadCompleteListenerId); - - g_assert_cmpstr(loadingEventsResult, ==, "|load-complete"); - - g_free(loadingEventsResult); - g_object_unref(webView); -} - -static void testWebkitAtkEmbeddedObjects() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, embeddedObjects, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkText* paragraph1 = ATK_TEXT(atk_object_ref_accessible_child(object, 0)); - g_assert(ATK_IS_TEXT(paragraph1)); - g_assert(ATK_IS_HYPERTEXT(paragraph1)); - - const gchar* expectedText = "Choose: \357\277\274foo \357\277\274bar (pick one)"; - char* text = atk_text_get_text(paragraph1, 0, -1); - g_assert_cmpstr(text, ==, expectedText); - g_free(text); - - gint nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(paragraph1)); - g_assert_cmpint(nLinks, ==, 2); - - AtkHyperlink* hLink = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph1), 0); - g_assert(ATK_HYPERLINK(hLink)); - AtkObject* hLinkObject = atk_hyperlink_get_object(hLink, 0); - g_assert(ATK_OBJECT(hLinkObject)); - g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_CHECK_BOX); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink), ==, 8); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink), ==, 9); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink, 0), ==, 0); - - AtkText* paragraph2 = ATK_TEXT(atk_object_ref_accessible_child(object, 1)); - g_assert(ATK_IS_TEXT(paragraph2)); - g_assert(ATK_IS_HYPERTEXT(paragraph2)); - - expectedText = "Choose: \357\277\274 (pick one)"; - text = atk_text_get_text(paragraph2, 0, -1); - g_assert_cmpstr(text, ==, expectedText); - g_free(text); - - nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(paragraph2)); - g_assert_cmpint(nLinks, ==, 1); - - hLink = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph2), 0); - g_assert(ATK_HYPERLINK(hLink)); - hLinkObject = atk_hyperlink_get_object(hLink, 0); - g_assert(ATK_OBJECT(hLinkObject)); - g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_COMBO_BOX); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink), ==, 8); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink), ==, 9); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink, 0), ==, 0); - - AtkText* paragraph3 = ATK_TEXT(atk_object_ref_accessible_child(object, 2)); - g_assert(ATK_IS_TEXT(paragraph3)); - g_assert(ATK_IS_HYPERTEXT(paragraph3)); - - expectedText = "\357\277\274"; - text = atk_text_get_text(paragraph3, 0, -1); - g_assert_cmpstr(text, ==, expectedText); - g_free(text); - - nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(paragraph3)); - g_assert_cmpint(nLinks, ==, 1); - - hLink = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph3), 0); - g_assert(ATK_HYPERLINK(hLink)); - hLinkObject = atk_hyperlink_get_object(hLink, 0); - g_assert(ATK_OBJECT(hLinkObject)); - g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_PUSH_BUTTON); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink), ==, 0); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink), ==, 1); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink, 0), ==, 0); - - g_object_unref(paragraph1); - g_object_unref(paragraph2); - g_object_unref(paragraph3); - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffset() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contents, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - AtkText* textObject = ATK_TEXT(object); - g_assert(ATK_IS_TEXT(textObject)); - - runGetTextTests(textObject); - - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetNewlines() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsWithNewlines, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - AtkText* textObject = ATK_TEXT(object); - g_assert(ATK_IS_TEXT(textObject)); - - runGetTextTests(textObject); - - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetTextarea() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInTextarea, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - AtkText* textObject = ATK_TEXT(object); - g_assert(ATK_IS_TEXT(textObject)); - - runGetTextTests(textObject); - - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetTextInput() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInTextInput, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - AtkText* textObject = ATK_TEXT(object); - g_assert(ATK_IS_TEXT(textObject)); - - runGetTextTests(textObject); - - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetWithPreformattedText() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsWithPreformattedText, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* preformattedText = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_OBJECT(preformattedText)); - g_assert(atk_object_get_role(preformattedText) == ATK_ROLE_PANEL); - g_assert(ATK_IS_TEXT(preformattedText)); - char* text = atk_text_get_text(ATK_TEXT(preformattedText), 0, -1); - g_assert_cmpstr(text, ==, "\t\n\tfirst line\n\tsecond line\n"); - g_free(text); - - /* Try retrieving all the lines indicating the position of the offsets at the beginning of each of them. */ - testGetTextFunction(ATK_TEXT(preformattedText), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 0, "\t\n", 0, 2); - testGetTextFunction(ATK_TEXT(preformattedText), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 2, "\tfirst line\n", 2, 14); - testGetTextFunction(ATK_TEXT(preformattedText), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 14, "\tsecond line\n", 14, 27); - - g_object_unref(preformattedText); - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetWithSpecialCharacters() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsWithSpecialChars, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* paragraph = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_TEXT(paragraph)); - - gchar* expectedText = g_strdup("\302\253\302\240This is a paragraph with \342\200\234special\342\200\235 characters inside.\302\240\302\273"); - char* text = atk_text_get_text(ATK_TEXT(paragraph), 0, -1); - g_assert_cmpstr(text, ==, expectedText); - g_free(text); - - /* Check that getting the text with ATK_TEXT_BOUNDARY_LINE_START - and ATK_TEXT_BOUNDARY_LINE_END does not crash because of not - properly handling characters inside the UTF-8 string. */ - testGetTextFunction(ATK_TEXT(paragraph), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 0, expectedText, 0, 57); - testGetTextFunction(ATK_TEXT(paragraph), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 0, expectedText, 0, 57); - g_free(expectedText); - - AtkObject* list = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_OBJECT(list)); - - AtkText* listItem = ATK_TEXT(atk_object_ref_accessible_child(list, 0)); - g_assert(ATK_IS_TEXT(listItem)); - - text = atk_text_get_text(ATK_TEXT(listItem), 0, -1); - g_assert_cmpstr(text, ==, "\342\200\242 List item with some text that wraps across different lines."); - g_free(text); - - /* Check that getting the text with ATK_TEXT_BOUNDARY_LINE_START - and ATK_TEXT_BOUNDARY_LINE_END for line items with bullets - (special character) and wrapped text always return the right - piece of text for each line. */ - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 3, "\342\200\242 List item ", 0, 12); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 13, "with some ", 12, 22); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 0, "\342\200\242 List item", 0, 11); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 12, " with some", 11, 21); - - g_object_unref(listItem); - - listItem = ATK_TEXT(atk_object_ref_accessible_child(list, 1)); - g_assert(ATK_IS_TEXT(listItem)); - - /* Check that placing the same text in a paragraph doesn't break things. */ - text = atk_text_get_text(ATK_TEXT(listItem), 0, -1); - g_assert_cmpstr(text, ==, "\342\200\242 List item with some text that wraps across different lines."); - g_free(text); - - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 3, "\342\200\242 List item ", 0, 12); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 13, "with some ", 12, 22); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 0, "\342\200\242 List item", 0, 11); - testGetTextFunction(ATK_TEXT(listItem), atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 12, " with some", 11, 21); - - g_object_unref(list); - g_object_unref(listItem); - g_object_unref(paragraph); - g_object_unref(webView); -} - -static void testWebkitAtkGetTextAtOffsetWithWrappedLines() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsWithWrappedLines, 0, 0, 0); - - /* Enable caret browsing. */ - WebKitWebSettings* settings = webkit_web_view_get_settings(webView); - g_object_set(settings, "enable-caret-browsing", TRUE, NULL); - webkit_web_view_set_settings(webView, settings); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - /* Check the paragraph with the text wrapped because of max-width. */ - AtkText* paragraph1 = ATK_TEXT(atk_object_ref_accessible_child(object, 0)); - g_assert(ATK_IS_TEXT(paragraph1)); - - gchar* text = atk_text_get_text(paragraph1, 0, -1); - g_assert_cmpstr(text, ==, "This is one line wrapped because of the maximum width of its container."); - g_free(text); - - testGetTextFunction(paragraph1, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, 16, "e", 15, 16); - testGetTextFunction(paragraph1, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_CHAR, 16, " ", 16, 17); - testGetTextFunction(paragraph1, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_CHAR, 16, "w", 17, 18); - - testGetTextFunction(paragraph1, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, 16, "one ", 8, 12); - testGetTextFunction(paragraph1, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, 16, "line ", 12, 17); - testGetTextFunction(paragraph1, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, 16, "wrapped ", 17, 25); - - testGetTextFunction(paragraph1, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, 16, " line", 11, 16); - testGetTextFunction(paragraph1, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, 16, " wrapped", 16, 24); - testGetTextFunction(paragraph1, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, 16, " because", 24, 32); - - testGetTextFunction(paragraph1, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_LINE_START, 17, "This is one line ", 0, 17); - testGetTextFunction(paragraph1, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 17, "wrapped because ", 17, 33); - testGetTextFunction(paragraph1, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_LINE_START, 17, "of the maximum ", 33, 48); - - /* The following line won't work at the moment because of a bug in GailTextUtil. - see https://bugzilla.gnome.org/show_bug.cgi?id=703554 - testGetTextFunction(paragraph1, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_LINE_END, 17, "This is one line", 0, 16); */ - testGetTextFunction(paragraph1, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 17, " wrapped because", 16, 32); - testGetTextFunction(paragraph1, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_LINE_END, 17, " of the maximum", 32, 47); - - g_object_unref(paragraph1); - - /* Check the paragraph with the text wrapped because of <br> elements. */ - AtkText* paragraph2 = ATK_TEXT(atk_object_ref_accessible_child(object, 1)); - g_assert(ATK_IS_TEXT(paragraph2)); - - text = atk_text_get_text(paragraph2, 0, -1); - g_assert_cmpstr(text, ==, "This is another line wrapped\nbecause of one forced\nline break in the middle."); - g_free(text); - - testGetTextFunction(paragraph2, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_CHAR, 28, "d", 27, 28); - testGetTextFunction(paragraph2, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_CHAR, 28, "\n", 28, 29); - testGetTextFunction(paragraph2, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_CHAR, 28, "b", 29, 30); - - testGetTextFunction(paragraph2, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_START, 28, "line ", 16, 21); - testGetTextFunction(paragraph2, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_START, 28, "wrapped\n", 21, 29); - testGetTextFunction(paragraph2, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_START, 28, "because ", 29, 37); - - testGetTextFunction(paragraph2, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_WORD_END, 28, " wrapped", 20, 28); - testGetTextFunction(paragraph2, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_WORD_END, 28, "\nbecause", 28, 36); - testGetTextFunction(paragraph2, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_WORD_END, 28, " of", 36, 39); - - testGetTextFunction(paragraph2, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_LINE_START, 30, "This is another line wrapped\n", 0, 29); - testGetTextFunction(paragraph2, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_START, 30, "because of one forced\n", 29, 51); - testGetTextFunction(paragraph2, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_LINE_START, 30, "line break in the middle.", 51, 76); - - /* The following line won't work at the moment because of a bug in GailTextUtil. - see https://bugzilla.gnome.org/show_bug.cgi?id=703554 - testGetTextFunction(paragraph2, atk_text_get_text_before_offset, ATK_TEXT_BOUNDARY_LINE_END, 30, "This is another line wrapped", 0, 28); */ - testGetTextFunction(paragraph2, atk_text_get_text_at_offset, ATK_TEXT_BOUNDARY_LINE_END, 30, "\nbecause of one forced", 28, 50); - testGetTextFunction(paragraph2, atk_text_get_text_after_offset, ATK_TEXT_BOUNDARY_LINE_END, 30, "\nline break in the middle.", 50, 76); - - g_object_unref(paragraph2); - - g_object_unref(webView); -} - -static void testWebkitAtkGetTextInParagraphAndBodySimple() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInParagraphAndBodySimple, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - AtkObject* object1 = atk_object_ref_accessible_child(object, 0); - g_assert(object1); - AtkObject* object2 = atk_object_ref_accessible_child(object, 1); - g_assert(object2); - - AtkText* textObject1 = ATK_TEXT(object1); - g_assert(ATK_IS_TEXT(textObject1)); - AtkText* textObject2 = ATK_TEXT(object2); - g_assert(ATK_IS_TEXT(textObject2)); - - char *text = atk_text_get_text(textObject1, 0, -1); - g_assert_cmpstr(text, ==, "This is a test."); - - text = atk_text_get_text(textObject2, 0, 12); - g_assert_cmpstr(text, ==, "Hello world."); - - g_object_unref(object1); - g_object_unref(object2); - g_object_unref(webView); -} - -static void testWebkitAtkGetTextInParagraphAndBodyModerate() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInParagraphAndBodyModerate, 0, 0, 0); - - /* Get to the inner AtkText object. */ - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - AtkObject* object1 = atk_object_ref_accessible_child(object, 0); - g_assert(object1); - AtkObject* object2 = atk_object_ref_accessible_child(object, 1); - g_assert(object2); - - AtkText* textObject1 = ATK_TEXT(object1); - g_assert(ATK_IS_TEXT(textObject1)); - AtkText* textObject2 = ATK_TEXT(object2); - g_assert(ATK_IS_TEXT(textObject2)); - - char *text = atk_text_get_text(textObject1, 0, -1); - g_assert_cmpstr(text, ==, "This is a test."); - - text = atk_text_get_text(textObject2, 0, 53); - g_assert_cmpstr(text, ==, "Hello world.\nThis sentence is green.\nThis one is not."); - - g_object_unref(object1); - g_object_unref(object2); - g_object_unref(webView); -} - -static void testWebkitAtkGetTextInTable() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInTable, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - object = atk_object_ref_accessible_child(object, 0); - g_assert(object); - - /* Tables should not implement AtkText. */ - g_assert(!G_TYPE_INSTANCE_GET_INTERFACE(object, ATK_TYPE_TEXT, AtkTextIface)); - - g_object_unref(object); - g_object_unref(webView); -} - -static void testWebkitAtkGetHeadersInTable() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contentsInTableWithHeaders, 0, 0, 0); - - AtkObject* axWebView = getWebAreaObject(webView); - g_assert(axWebView); - - /* Check table with both column and row headers. */ - AtkObject* table = atk_object_ref_accessible_child(axWebView, 0); - g_assert(table); - g_assert(atk_object_get_role(table) == ATK_ROLE_TABLE); - - AtkObject* colHeader = atk_table_get_column_header(ATK_TABLE(table), 0); - g_assert(colHeader); - g_assert(atk_object_get_role(colHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(colHeader) == 0); - - colHeader = atk_table_get_column_header(ATK_TABLE(table), 1); - g_assert(colHeader); - g_assert(atk_object_get_role(colHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(colHeader) == 1); - - colHeader = atk_table_get_column_header(ATK_TABLE(table), 2); - g_assert(colHeader); - g_assert(atk_object_get_role(colHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(colHeader) == 2); - - colHeader = atk_table_get_column_header(ATK_TABLE(table), 3); - g_assert(colHeader); - g_assert(atk_object_get_role(colHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(colHeader) == 2); - - AtkObject* rowHeader = atk_table_get_row_header(ATK_TABLE(table), 0); - g_assert(rowHeader); - g_assert(atk_object_get_role(rowHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(rowHeader) == 0); - - rowHeader = atk_table_get_row_header(ATK_TABLE(table), 1); - g_assert(rowHeader); - g_assert(atk_object_get_role(rowHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(rowHeader) == 3); - - rowHeader = atk_table_get_row_header(ATK_TABLE(table), 2); - g_assert(rowHeader); - g_assert(atk_object_get_role(rowHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(rowHeader) == 7); - - rowHeader = atk_table_get_row_header(ATK_TABLE(table), 3); - g_assert(rowHeader); - g_assert(atk_object_get_role(rowHeader) == ATK_ROLE_TABLE_CELL); - g_assert(atk_object_get_index_in_parent(rowHeader) == 7); - - g_object_unref(table); - - /* Check table with no headers at all. */ - table = atk_object_ref_accessible_child(axWebView, 1); - g_assert(table); - g_assert(atk_object_get_role(table) == ATK_ROLE_TABLE); - - colHeader = atk_table_get_column_header(ATK_TABLE(table), 0); - g_assert(colHeader == 0); - - colHeader = atk_table_get_column_header(ATK_TABLE(table), 1); - g_assert(colHeader == 0); - - rowHeader = atk_table_get_row_header(ATK_TABLE(table), 0); - g_assert(rowHeader == 0); - - rowHeader = atk_table_get_row_header(ATK_TABLE(table), 1); - g_assert(rowHeader == 0); - - g_object_unref(table); - g_object_unref(webView); -} - -static gint compAtkAttribute(AtkAttribute* a1, AtkAttribute* a2) -{ - gint strcmpVal = g_strcmp0(a1->name, a2->name); - if (strcmpVal) - return strcmpVal; - return g_strcmp0(a1->value, a2->value); -} - -static gint compAtkAttributeName(AtkAttribute* a1, AtkAttribute* a2) -{ - return g_strcmp0(a1->name, a2->name); -} - -static gboolean atkAttributeSetAttributeNameHasValue(AtkAttributeSet* set, const gchar* attributeName, const gchar* value) -{ - AtkAttribute at; - at.name = (gchar*)attributeName; - GSList* element = g_slist_find_custom(set, &at, (GCompareFunc)compAtkAttributeName); - return element && !g_strcmp0(((AtkAttribute*)(element->data))->value, value); -} - -static gboolean atkAttributeSetContainsAttributeName(AtkAttributeSet* set, const gchar* attributeName) -{ - AtkAttribute at; - at.name = (gchar*)attributeName; - return g_slist_find_custom(set, &at, (GCompareFunc)compAtkAttributeName) ? true : false; -} - -static gboolean atkAttributeSetAttributeHasValue(AtkAttributeSet* set, AtkTextAttribute attribute, const gchar* value) -{ - return atkAttributeSetAttributeNameHasValue(set, atk_text_attribute_get_name(attribute), value); -} - -static gboolean atkAttributeSetAreEqual(AtkAttributeSet* set1, AtkAttributeSet* set2) -{ - if (!set1) - return !set2; - - set1 = g_slist_sort(set1, (GCompareFunc)compAtkAttribute); - set2 = g_slist_sort(set2, (GCompareFunc)compAtkAttribute); - - while (set1) { - if (!set2 || compAtkAttribute(set1->data, set2->data)) - return FALSE; - - set1 = set1->next; - set2 = set2->next; - } - - return (!set2); -} - -static void testWebkitAtkTextAttributes() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, textWithAttributes, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* child = atk_object_ref_accessible_child(object, 0); - g_assert(child && ATK_IS_TEXT(child)); - AtkText* childText = ATK_TEXT(child); - - gint startOffset; - gint endOffset; - AtkAttributeSet* set1 = atk_text_get_run_attributes(childText, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 12); - g_assert(atkAttributeSetAreEqual(set1, 0)); - - AtkAttributeSet* set2 = atk_text_get_run_attributes(childText, 15, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 12); - g_assert_cmpint(endOffset, ==, 17); - g_assert(atkAttributeSetAttributeHasValue(set2, ATK_TEXT_ATTR_STYLE, "italic")); - - AtkAttributeSet* set3 = atk_text_get_run_attributes(childText, 17, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 17); - g_assert_cmpint(endOffset, ==, 40); - g_assert(atkAttributeSetAttributeHasValue(set3, ATK_TEXT_ATTR_WEIGHT, "700")); - - AtkAttributeSet* set4 = atk_text_get_default_attributes(childText); - g_assert(atkAttributeSetAttributeHasValue(set4, ATK_TEXT_ATTR_STYLE, "normal")); - g_assert(atkAttributeSetAttributeHasValue(set4, ATK_TEXT_ATTR_JUSTIFICATION, "right")); - g_assert(atkAttributeSetAttributeHasValue(set4, ATK_TEXT_ATTR_SIZE, "14")); - atk_attribute_set_free(set1); - atk_attribute_set_free(set2); - atk_attribute_set_free(set3); - atk_attribute_set_free(set4); - - child = atk_object_ref_accessible_child(object, 1); - g_assert(child && ATK_IS_TEXT(child)); - childText = ATK_TEXT(child); - - set1 = atk_text_get_default_attributes(childText); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_FAMILY_NAME, "monospace")); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_STYLE, "normal")); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_STRIKETHROUGH, "false")); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_WEIGHT, "400")); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_FG_COLOR, "120,121,122")); - - set2 = atk_text_get_run_attributes(childText, 43, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 43); - g_assert_cmpint(endOffset, ==, 80); - /* Checks that default attributes of text are not returned when called to atk_text_get_run_attributes. */ - g_assert(!atkAttributeSetAttributeHasValue(set2, ATK_TEXT_ATTR_FG_COLOR, "120,121,122")); - g_assert(atkAttributeSetAttributeHasValue(set2, ATK_TEXT_ATTR_UNDERLINE, "single")); - g_assert(atkAttributeSetAttributeHasValue(set2, ATK_TEXT_ATTR_BG_COLOR, "80,81,82")); - atk_attribute_set_free(set1); - atk_attribute_set_free(set2); - - child = atk_object_ref_accessible_child(object, 2); - g_assert(child && ATK_IS_TEXT(child)); - childText = ATK_TEXT(child); - - set1 = atk_text_get_run_attributes(childText, 0, &startOffset, &endOffset); - set2 = atk_text_get_run_attributes(childText, 3, &startOffset, &endOffset); - g_assert(atkAttributeSetAreEqual(set1, set2)); - atk_attribute_set_free(set2); - - set2 = atk_text_get_run_attributes(childText, 1, &startOffset, &endOffset); - set3 = atk_text_get_run_attributes(childText, 5, &startOffset, &endOffset); - g_assert(atkAttributeSetAreEqual(set2, set3)); - g_assert(!atkAttributeSetAreEqual(set1, set2)); - atk_attribute_set_free(set3); - - set3 = atk_text_get_run_attributes(childText, 2, &startOffset, &endOffset); - set4 = atk_text_get_run_attributes(childText, 6, &startOffset, &endOffset); - g_assert(atkAttributeSetAreEqual(set3, set4)); - g_assert(!atkAttributeSetAreEqual(set1, set3)); - g_assert(!atkAttributeSetAreEqual(set2, set3)); - atk_attribute_set_free(set1); - atk_attribute_set_free(set2); - atk_attribute_set_free(set3); - atk_attribute_set_free(set4); - - child = atk_object_ref_accessible_child(object, 3); - g_assert(child && ATK_IS_TEXT(child)); - childText = ATK_TEXT(child); - set1 = atk_text_get_run_attributes(childText, 24, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 21); - g_assert_cmpint(endOffset, ==, 25); - g_assert(atkAttributeSetAttributeHasValue(set1, ATK_TEXT_ATTR_STRIKETHROUGH, "true")); - - set2 = atk_text_get_run_attributes(childText, 25, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 25); - g_assert_cmpint(endOffset, ==, 30); - g_assert(atkAttributeSetAreEqual(set2, 0)); - - set3 = atk_text_get_default_attributes(childText); - g_assert(atkAttributeSetAttributeHasValue(set3, ATK_TEXT_ATTR_JUSTIFICATION, "center")); - atk_attribute_set_free(set1); - atk_attribute_set_free(set2); - atk_attribute_set_free(set3); -} - -static gchar* textSelectionChangedResult = 0; - -static void textSelectionChangedCallback(AtkText* text, gpointer data) -{ - g_assert(ATK_IS_TEXT(text)); - - g_free(textSelectionChangedResult); - AtkRole role = atk_object_get_role(ATK_OBJECT(text)); - int startOffset = 0; - int endOffset = 0; - atk_text_get_selection(ATK_TEXT(text), 0, &startOffset, &endOffset); - textSelectionChangedResult = g_strdup_printf("|%s|%d|%d|", atk_role_get_name(role), startOffset, endOffset); -} - -static void testWebkitAtkTextSelections() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, textForSelections, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkText* paragraph1 = ATK_TEXT(atk_object_ref_accessible_child(object, 0)); - g_assert(ATK_IS_TEXT(paragraph1)); - g_signal_connect(paragraph1, "text-selection-changed", G_CALLBACK(textSelectionChangedCallback), 0); - - AtkText* paragraph2 = ATK_TEXT(atk_object_ref_accessible_child(object, 1)); - g_assert(ATK_IS_TEXT(paragraph2)); - g_signal_connect(paragraph2, "text-selection-changed", G_CALLBACK(textSelectionChangedCallback), 0); - - AtkText* link = ATK_TEXT(atk_object_ref_accessible_child(ATK_OBJECT(paragraph2), 0)); - g_assert(ATK_IS_TEXT(link)); - - AtkObject* list = atk_object_ref_accessible_child(object, 2); - g_assert(ATK_OBJECT(list)); - - AtkText* listItem = ATK_TEXT(atk_object_ref_accessible_child(list, 0)); - g_assert(ATK_IS_TEXT(listItem)); - - /* First paragraph (simple text). */ - - /* Basic initial checks. */ - g_assert_cmpint(atk_text_get_n_selections(paragraph1), ==, 0); - - gint startOffset; - gint endOffset; - gchar* selectedText = atk_text_get_selection(paragraph1, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 0); - g_assert_cmpstr(selectedText, ==, 0); - g_free (selectedText); - - /* Try removing a non existing (yet) selection. */ - gboolean result = atk_text_remove_selection(paragraph1, 0); - g_assert(!result); - - /* Try setting a 0-char selection. */ - result = atk_text_set_selection(paragraph1, 0, 5, 5); - g_assert(result); - - /* Make a selection and test it. */ - result = atk_text_set_selection(paragraph1, 0, 5, 25); - g_assert(result); - g_assert_cmpint(atk_text_get_n_selections(paragraph1), ==, 1); - g_assert_cmpstr(textSelectionChangedResult, ==, "|paragraph|5|25|"); - selectedText = atk_text_get_selection(paragraph1, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 5); - g_assert_cmpint(endOffset, ==, 25); - g_assert_cmpstr(selectedText, ==, "agraph with plain te"); - g_free (selectedText); - - /* Try removing the selection from other AtkText object (should fail). */ - result = atk_text_remove_selection(paragraph2, 0); - g_assert(!result); - - /* Remove the selection and test everything again. */ - result = atk_text_remove_selection(paragraph1, 0); - g_assert(result); - g_assert_cmpint(atk_text_get_n_selections(paragraph1), ==, 0); - selectedText = atk_text_get_selection(paragraph1, 0, &startOffset, &endOffset); - /* Now offsets should be the same, set to the last position of the caret. */ - g_assert_cmpint(startOffset, ==, endOffset); - g_assert_cmpint(startOffset, ==, 25); - g_assert_cmpint(endOffset, ==, 25); - g_assert_cmpstr(selectedText, ==, 0); - g_free (selectedText); - - /* Second paragraph (text + link + text). */ - - /* Set a selection partially covering the link and test it. */ - result = atk_text_set_selection(paragraph2, 0, 7, 21); - g_assert(result); - - /* Test the paragraph first. */ - g_assert_cmpint(atk_text_get_n_selections(paragraph2), ==, 1); - selectedText = atk_text_get_selection(paragraph2, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 7); - g_assert_cmpint(endOffset, ==, 21); - g_assert_cmpstr(selectedText, ==, "raph with a li"); - g_free (selectedText); - - /* Now test just the link. */ - g_assert_cmpint(atk_text_get_n_selections(link), ==, 1); - selectedText = atk_text_get_selection(link, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 4); - g_assert_cmpstr(selectedText, ==, "a li"); - g_free (selectedText); - - /* Make a selection after the link and check selection for the whole paragraph. */ - result = atk_text_set_selection(paragraph2, 0, 27, 37); - g_assert(result); - g_assert_cmpint(atk_text_get_n_selections(paragraph2), ==, 1); - g_assert_cmpstr(textSelectionChangedResult, ==, "|paragraph|27|37|"); - selectedText = atk_text_get_selection(paragraph2, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 27); - g_assert_cmpint(endOffset, ==, 37); - g_assert_cmpstr(selectedText, ==, "the middle"); - g_free (selectedText); - - /* Remove selections and text everything again. */ - result = atk_text_remove_selection(paragraph2, 0); - g_assert(result); - g_assert_cmpint(atk_text_get_n_selections(paragraph2), ==, 0); - selectedText = atk_text_get_selection(paragraph2, 0, &startOffset, &endOffset); - /* Now offsets should be the same (no selection). */ - g_assert_cmpint(startOffset, ==, endOffset); - g_assert_cmpstr(selectedText, ==, 0); - g_free (selectedText); - - g_assert_cmpint(atk_text_get_n_selections(link), ==, 0); - selectedText = atk_text_get_selection(link, 0, &startOffset, &endOffset); - /* Now offsets should be the same (no selection). */ - g_assert_cmpint(startOffset, ==, endOffset); - g_assert_cmpstr(selectedText, ==, 0); - g_free (selectedText); - - /* List item */ - - g_assert(atk_object_get_role(list) == ATK_ROLE_LIST); - g_assert_cmpint(atk_object_get_n_accessible_children(list), ==, 1); - - gchar* text = atk_text_get_text(listItem, 0, -1); - g_assert_cmpstr(text, ==, "1. A list item"); - g_free (text); - - /* It's not possible to select text inside an item's marker. */ - result = atk_text_set_selection (listItem, 0, 0, 9); - g_assert(!result); - result = atk_text_set_selection (listItem, 0, 9, 1); - g_assert(!result); - - /* It should be possible to select text inside an item's text. */ - result = atk_text_set_selection (listItem, 0, 3, 9); - g_assert(result); - - g_assert_cmpint(atk_text_get_n_selections(listItem), ==, 1); - selectedText = atk_text_get_selection(listItem, 0, &startOffset, &endOffset); - g_assert_cmpint(startOffset, ==, 3); - g_assert_cmpint(endOffset, ==, 9); - g_assert_cmpstr(selectedText, ==, "A list"); - g_free (selectedText); - - g_free(textSelectionChangedResult); - - g_object_unref(paragraph1); - g_object_unref(paragraph2); - g_object_unref(list); - g_object_unref(listItem); - g_object_unref(webView); -} - -static void testWebkitAtkGetExtents() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, centeredContents, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkText* shortText1 = ATK_TEXT(atk_object_ref_accessible_child(object, 0)); - g_assert(ATK_IS_TEXT(shortText1)); - AtkText* longText = ATK_TEXT(atk_object_ref_accessible_child(object, 1)); - g_assert(ATK_IS_TEXT(longText)); - AtkText* shortText2 = ATK_TEXT(atk_object_ref_accessible_child(object, 2)); - g_assert(ATK_IS_TEXT(shortText2)); - AtkText* multilineText = ATK_TEXT(atk_object_ref_accessible_child(object, 3)); - g_assert(ATK_IS_TEXT(multilineText)); - - /* Start with window extents. */ - AtkTextRectangle sline_window1, sline_window2, lline_window, mline_window; - atk_text_get_range_extents(shortText1, 0, 10, ATK_XY_WINDOW, &sline_window1); - atk_text_get_range_extents(longText, 0, 44, ATK_XY_WINDOW, &lline_window); - atk_text_get_range_extents(shortText2, 0, 10, ATK_XY_WINDOW, &sline_window2); - atk_text_get_range_extents(multilineText, 0, 60, ATK_XY_WINDOW, &mline_window); - - /* Check vertical line position. */ - g_assert_cmpint(sline_window1.y + sline_window1.height, <=, lline_window.y); - g_assert_cmpint(lline_window.y + lline_window.height + sline_window2.height, <=, mline_window.y); - - /* Paragraphs 1 and 3 have identical text and alignment. */ - g_assert_cmpint(sline_window1.x, ==, sline_window2.x); - g_assert_cmpint(sline_window1.width, ==, sline_window2.width); - g_assert_cmpint(sline_window1.height, ==, sline_window2.height); - - /* All lines should be the same height; line 2 is the widest line. */ - g_assert_cmpint(sline_window1.height, ==, lline_window.height); - g_assert_cmpint(sline_window1.width, <, lline_window.width); - - /* Make sure the character extents jive with the range extents. */ - gint x; - gint y; - gint width; - gint height; - - /* First paragraph (short text). */ - atk_text_get_character_extents(shortText1, 0, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, sline_window1.x); - g_assert_cmpint(y, ==, sline_window1.y); - g_assert_cmpint(height, ==, sline_window1.height); - - atk_text_get_character_extents(shortText1, 9, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, sline_window1.x + sline_window1.width - width); - g_assert_cmpint(y, ==, sline_window1.y); - g_assert_cmpint(height, ==, sline_window1.height); - - /* Second paragraph (long text). */ - atk_text_get_character_extents(longText, 0, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, lline_window.x); - g_assert_cmpint(y, ==, lline_window.y); - g_assert_cmpint(height, ==, lline_window.height); - - atk_text_get_character_extents(longText, 43, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, lline_window.x + lline_window.width - width); - g_assert_cmpint(y, ==, lline_window.y); - g_assert_cmpint(height, ==, lline_window.height); - - /* Third paragraph (short text). */ - atk_text_get_character_extents(shortText2, 0, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, sline_window2.x); - g_assert_cmpint(y, ==, sline_window2.y); - g_assert_cmpint(height, ==, sline_window2.height); - - atk_text_get_character_extents(shortText2, 9, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, sline_window2.x + sline_window2.width - width); - g_assert_cmpint(y, ==, sline_window2.y); - g_assert_cmpint(height, ==, sline_window2.height); - - /* Four paragraph (3 lines multi-line text). */ - atk_text_get_character_extents(multilineText, 0, &x, &y, &width, &height, ATK_XY_WINDOW); - g_assert_cmpint(x, ==, mline_window.x); - g_assert_cmpint(y, ==, mline_window.y); - g_assert_cmpint(3 * height, ==, mline_window.height); - - atk_text_get_character_extents(multilineText, 59, &x, &y, &width, &height, ATK_XY_WINDOW); - /* Last line won't fill the whole width of the rectangle. */ - g_assert_cmpint(x, <=, mline_window.x + mline_window.width - width); - g_assert_cmpint(y, ==, mline_window.y + mline_window.height - height); - g_assert_cmpint(height, <=, mline_window.height); - - /* Check that extent for a full line are the same height than for - a partial section of the same line */ - gint startOffset; - gint endOffset; - gchar* text = atk_text_get_text_at_offset(multilineText, 0, ATK_TEXT_BOUNDARY_LINE_START, &startOffset, &endOffset); - g_free(text); - - AtkTextRectangle fline_window; - AtkTextRectangle afline_window; - atk_text_get_range_extents(multilineText, startOffset, endOffset, ATK_XY_WINDOW, &fline_window); - atk_text_get_range_extents(multilineText, startOffset, endOffset - 1, ATK_XY_WINDOW, &afline_window); - g_assert_cmpint(fline_window.x, ==, afline_window.x); - g_assert_cmpint(fline_window.y, ==, afline_window.y); - g_assert_cmpint(fline_window.height, ==, afline_window.height); - - g_object_unref(shortText1); - g_object_unref(shortText2); - g_object_unref(longText); - g_object_unref(multilineText); - g_object_unref(webView); -} - -static void testWebkitAtkLayoutAndDataTables() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, layoutAndDataTables, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - /* Check the non-layout table (data table). */ - - AtkObject* table1 = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_TABLE(table1)); - AtkAttributeSet* set1 = atk_object_get_attributes(table1); - g_assert(set1); - g_assert(!atkAttributeSetContainsAttributeName(set1, "layout-guess")); - atk_attribute_set_free(set1); - - /* Check the layout table. */ - - AtkObject* table2 = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_IS_TABLE(table2)); - AtkAttributeSet* set2 = atk_object_get_attributes(table2); - g_assert(set2); - g_assert(atkAttributeSetContainsAttributeName(set2, "layout-guess")); - g_assert(atkAttributeSetAttributeNameHasValue(set2, "layout-guess", "true")); - atk_attribute_set_free(set2); - - g_object_unref(table1); - g_object_unref(table2); - g_object_unref(webView); -} - -static void testWebkitAtkLinksWithInlineImages() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, linksWithInlineImages, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - /* First paragraph (link at the beginning). */ - AtkObject* paragraph = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_TEXT(paragraph)); - gint startOffset; - gint endOffset; - gchar* text = atk_text_get_text_at_offset(ATK_TEXT(paragraph), 0, ATK_TEXT_BOUNDARY_LINE_START, &startOffset, &endOffset); - g_assert(text); - g_assert_cmpstr(text, ==, "foo bar baz"); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 11); - g_free(text); - g_object_unref(paragraph); - - /* Second paragraph (link in the middle). */ - paragraph = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_IS_TEXT(paragraph)); - text = atk_text_get_text_at_offset(ATK_TEXT(paragraph), 0, ATK_TEXT_BOUNDARY_LINE_START, &startOffset, &endOffset); - g_assert(text); - g_assert_cmpstr(text, ==, "foo bar baz"); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 11); - g_free(text); - g_object_unref(paragraph); - - /* Third paragraph (link at the end). */ - paragraph = atk_object_ref_accessible_child(object, 2); - g_assert(ATK_IS_TEXT(paragraph)); - text = atk_text_get_text_at_offset(ATK_TEXT(paragraph), 0, ATK_TEXT_BOUNDARY_LINE_START, &startOffset, &endOffset); - g_assert(text); - g_assert_cmpstr(text, ==, "foo bar baz"); - g_assert_cmpint(startOffset, ==, 0); - g_assert_cmpint(endOffset, ==, 11); - g_free(text); - g_object_unref(paragraph); - - g_object_unref(webView); -} - -static void testWebkitAtkHypertextAndHyperlinks() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, hypertextAndHyperlinks, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* paragraph1 = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_OBJECT(paragraph1)); - g_assert(atk_object_get_role(paragraph1) == ATK_ROLE_PARAGRAPH); - g_assert(ATK_IS_HYPERTEXT(paragraph1)); - - /* No links in the first paragraph. */ - gint nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(paragraph1)); - g_assert_cmpint(nLinks, ==, 0); - - AtkObject* paragraph2 = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_OBJECT(paragraph2)); - g_assert(atk_object_get_role(paragraph2) == ATK_ROLE_PARAGRAPH); - g_assert(ATK_IS_HYPERTEXT(paragraph2)); - - /* Check links in the second paragraph. - nLinks = atk_hypertext_get_n_links(ATK_HYPERTEXT(paragraph2)); - g_assert_cmpint(nLinks, ==, 3); */ - - AtkHyperlink* hLink1 = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph2), 0); - g_assert(ATK_HYPERLINK(hLink1)); - AtkObject* hLinkObject1 = atk_hyperlink_get_object(hLink1, 0); - g_assert(ATK_OBJECT(hLinkObject1)); - g_assert(atk_object_get_role(hLinkObject1) == ATK_ROLE_LINK); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink1), ==, 0); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink1), ==, 6); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink1), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink1, 0), ==, "http://foo.bar.baz/"); - - AtkHyperlink* hLink2 = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph2), 1); - g_assert(ATK_HYPERLINK(hLink2)); - AtkObject* hLinkObject2 = atk_hyperlink_get_object(hLink2, 0); - g_assert(ATK_OBJECT(hLinkObject2)); - g_assert(atk_object_get_role(hLinkObject2) == ATK_ROLE_LINK); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink2), ==, 12); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink2), ==, 32); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink2), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink2, 0), ==, "http://bar.baz.foo/"); - - AtkHyperlink* hLink3 = atk_hypertext_get_link(ATK_HYPERTEXT(paragraph2), 2); - g_assert(ATK_HYPERLINK(hLink3)); - AtkObject* hLinkObject3 = atk_hyperlink_get_object(hLink3, 0); - g_assert(ATK_OBJECT(hLinkObject3)); - g_assert(atk_object_get_role(hLinkObject3) == ATK_ROLE_LINK); - g_assert_cmpint(atk_hyperlink_get_start_index(hLink3), ==, 65); - g_assert_cmpint(atk_hyperlink_get_end_index(hLink3), ==, 75); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLink3), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLink3, 0), ==, "http://baz.foo.bar/"); - - AtkObject* list = atk_object_ref_accessible_child(object, 2); - g_assert(ATK_OBJECT(list)); - g_assert(atk_object_get_role(list) == ATK_ROLE_LIST); - g_assert_cmpint(atk_object_get_n_accessible_children(list), ==, 1); - - AtkObject* listItem = atk_object_ref_accessible_child(list, 0); - g_assert(ATK_IS_TEXT(listItem)); - g_assert(ATK_IS_HYPERTEXT(listItem)); - - AtkHyperlink* hLinkInListItem = atk_hypertext_get_link(ATK_HYPERTEXT(listItem), 0); - g_assert(ATK_HYPERLINK(hLinkInListItem)); - AtkObject* hLinkObject = atk_hyperlink_get_object(hLinkInListItem, 0); - g_assert(ATK_OBJECT(hLinkObject)); - g_assert(atk_object_get_role(hLinkObject) == ATK_ROLE_LINK); - g_assert_cmpint(atk_hyperlink_get_start_index(hLinkInListItem), ==, 20); - g_assert_cmpint(atk_hyperlink_get_end_index(hLinkInListItem), ==, 43); - g_assert_cmpint(atk_hyperlink_get_n_anchors(hLinkInListItem), ==, 1); - g_assert_cmpstr(atk_hyperlink_get_uri(hLinkInListItem, 0), ==, "http://foo.bar.baz/"); - - /* Finally check the AtkAction interface for a given AtkHyperlink. */ - g_assert(ATK_IS_ACTION(hLink1)); - g_assert_cmpint(atk_action_get_n_actions(ATK_ACTION(hLink1)), ==, 1); - g_assert_cmpstr(atk_action_get_keybinding(ATK_ACTION(hLink1), 0), ==, ""); - g_assert_cmpstr(atk_action_get_name(ATK_ACTION(hLink1), 0), ==, "jump"); - g_assert(atk_action_do_action(ATK_ACTION(hLink1), 0)); - - g_object_unref(paragraph1); - g_object_unref(paragraph2); - g_object_unref(list); - g_object_unref(listItem); - g_object_unref(webView); -} - -static void testWebkitAtkListsOfItems() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, listsOfItems, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - /* Unordered list. */ - - AtkObject* uList = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_OBJECT(uList)); - g_assert(atk_object_get_role(uList) == ATK_ROLE_LIST); - g_assert_cmpint(atk_object_get_n_accessible_children(uList), ==, 3); - - AtkObject* item1 = atk_object_ref_accessible_child(uList, 0); - g_assert(ATK_IS_TEXT(item1)); - AtkObject* item2 = atk_object_ref_accessible_child(uList, 1); - g_assert(ATK_IS_TEXT(item2)); - AtkObject* item3 = atk_object_ref_accessible_child(uList, 2); - g_assert(ATK_IS_TEXT(item3)); - - g_assert_cmpint(atk_object_get_n_accessible_children(item1), ==, 0); - g_assert_cmpint(atk_object_get_n_accessible_children(item2), ==, 1); - g_assert_cmpint(atk_object_get_n_accessible_children(item3), ==, 1); - - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item1), 0, -1), ==, "\342\200\242 text only"); - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item2), 0, -1), ==, "\342\200\242 link only"); - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item3), 0, -1), ==, "\342\200\242 text and a link"); - - g_object_unref(item1); - g_object_unref(item2); - g_object_unref(item3); - - /* Ordered list. */ - - AtkObject* oList = atk_object_ref_accessible_child(object, 1); - g_assert(ATK_OBJECT(oList)); - g_assert(atk_object_get_role(oList) == ATK_ROLE_LIST); - g_assert_cmpint(atk_object_get_n_accessible_children(oList), ==, 3); - - item1 = atk_object_ref_accessible_child(oList, 0); - g_assert(ATK_IS_TEXT(item1)); - item2 = atk_object_ref_accessible_child(oList, 1); - g_assert(ATK_IS_TEXT(item2)); - item3 = atk_object_ref_accessible_child(oList, 2); - g_assert(ATK_IS_TEXT(item3)); - - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item1), 0, -1), ==, "1. text only"); - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item2), 0, -1), ==, "2. link only"); - g_assert_cmpstr(atk_text_get_text(ATK_TEXT(item3), 0, -1), ==, "3. text and a link"); - - g_assert_cmpint(atk_object_get_n_accessible_children(item1), ==, 0); - g_assert_cmpint(atk_object_get_n_accessible_children(item2), ==, 1); - g_assert_cmpint(atk_object_get_n_accessible_children(item3), ==, 1); - - g_object_unref(item1); - g_object_unref(item2); - g_object_unref(item3); - - g_object_unref(uList); - g_object_unref(oList); - g_object_unref(webView); -} - -typedef enum { - TEXT_CHANGE_INSERT = 1, - TEXT_CHANGE_REMOVE = 2 -} TextChangeType; - -static gchar* textChangedResult = 0; - -static void textChangedCb(AtkText* text, gint pos, gint len, gchar* modifiedText, gpointer data) -{ - g_assert(text && ATK_IS_OBJECT(text)); - - TextChangeType type = GPOINTER_TO_INT(data); - g_free(textChangedResult); - textChangedResult = g_strdup_printf("|%d|%d|%d|'%s'|", type, pos, len, modifiedText); -} - -static void testWebkitAtkTextChangedNotifications() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, formWithTextInputs, 0, 0, 0); - - AtkObject* object = getWebAreaObject(webView); - g_assert(object); - - AtkObject* form = atk_object_ref_accessible_child(object, 0); - g_assert(ATK_IS_OBJECT(form)); - - /* First check normal text entries. */ - AtkObject* textEntry = atk_object_ref_accessible_child(form, 0); - g_assert(ATK_IS_EDITABLE_TEXT(textEntry)); - g_assert(atk_object_get_role(ATK_OBJECT(textEntry)) == ATK_ROLE_ENTRY); - - g_signal_connect(textEntry, "text-insert", - G_CALLBACK(textChangedCb), - GINT_TO_POINTER(TEXT_CHANGE_INSERT)); - g_signal_connect(textEntry, "text-remove", - G_CALLBACK(textChangedCb), - GINT_TO_POINTER(TEXT_CHANGE_REMOVE)); - - gint pos = 0; - atk_editable_text_insert_text(ATK_EDITABLE_TEXT(textEntry), "foo bar baz", 11, &pos); - char* text = atk_text_get_text(ATK_TEXT(textEntry), 0, -1); - g_assert_cmpstr(text, ==, "foo bar baz"); - g_assert_cmpstr(textChangedResult, ==, "|1|0|11|'foo bar baz'|"); - g_free(text); - - atk_editable_text_delete_text(ATK_EDITABLE_TEXT(textEntry), 4, 7); - text = atk_text_get_text(ATK_TEXT(textEntry), 0, -1); - g_assert_cmpstr(text, ==, "foo baz"); - g_assert_cmpstr(textChangedResult, ==, "|2|4|3|'bar'|"); - g_free(text); - - pos = 4; - atk_editable_text_insert_text(ATK_EDITABLE_TEXT(textEntry), "qux quux tobeignored", 8, &pos); - text = atk_text_get_text(ATK_TEXT(textEntry), 0, -1); - g_assert_cmpstr(text, ==, "foo qux quux baz"); - g_assert_cmpstr(textChangedResult, ==, "|1|4|8|'qux quux'|"); - g_free(text); - - /* Now check for password entries. */ - AtkObject* passwordEntry = atk_object_ref_accessible_child(form, 1); - g_assert(ATK_IS_EDITABLE_TEXT(passwordEntry)); - g_assert(atk_object_get_role(ATK_OBJECT(passwordEntry)) == ATK_ROLE_PASSWORD_TEXT); - - g_signal_connect(passwordEntry, "text-insert", - G_CALLBACK(textChangedCb), - GINT_TO_POINTER(TEXT_CHANGE_INSERT)); - g_signal_connect(passwordEntry, "text-remove", - G_CALLBACK(textChangedCb), - GINT_TO_POINTER(TEXT_CHANGE_REMOVE)); - - pos = 0; - /* A single bullet character is '\342\200\242' */ - atk_editable_text_insert_text(ATK_EDITABLE_TEXT(passwordEntry), "foobar", 6, &pos); - g_assert_cmpstr(textChangedResult, ==, "|1|0|6|'\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242'|"); - text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242"); - g_free(text); - - atk_editable_text_delete_text(ATK_EDITABLE_TEXT(passwordEntry), 2, 4); - g_assert_cmpstr(textChangedResult, ==, "|2|2|2|'\342\200\242\342\200\242'|"); - - text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242"); - g_free(text); - - pos = 3; - atk_editable_text_insert_text(ATK_EDITABLE_TEXT(passwordEntry), "qux tobeignored", 3, &pos); - g_assert_cmpstr(textChangedResult, ==, "|1|3|3|'\342\200\242\342\200\242\342\200\242'|"); - - text = atk_text_get_text(ATK_TEXT(passwordEntry), 0, -1); - g_assert_cmpstr(text, ==, "\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242\342\200\242"); - g_free(text); - - g_free(textChangedResult); - - g_object_unref(form); - g_object_unref(textEntry); - g_object_unref(passwordEntry); - g_object_unref(webView); -} - -static void testWebkitAtkParentForRootObject() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contents, 0, 0, 0); - - /* We need a parent container widget for the webview. */ - GtkWidget* parentContainer = gtk_window_new(GTK_WINDOW_TOPLEVEL); - g_object_ref_sink(parentContainer); - gtk_container_add(GTK_CONTAINER(parentContainer), GTK_WIDGET(webView)); - - AtkObject* axParent = gtk_widget_get_accessible(parentContainer); - g_assert(ATK_IS_OBJECT(axParent)); - - AtkObject* axRoot = gtk_widget_get_accessible(GTK_WIDGET(webView)); - g_assert(ATK_IS_OBJECT(axRoot)); - - /* The child for the parent container's accessibility object - should be the accessibility object for the WebView's root. */ - AtkObject* axParentChild = atk_object_ref_accessible_child(axParent, 0); - g_assert(axParentChild == axRoot); - - /* Bottom-up navigation should match top-down one. */ - g_assert(atk_object_get_parent(axParentChild) == axParent); - - g_object_unref(axParentChild); - g_object_unref(parentContainer); -} - -static void testWebkitAtkSetParentForObject() -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - GtkAllocation allocation = { 0, 0, 800, 600 }; - gtk_widget_size_allocate(GTK_WIDGET(webView), &allocation); - webkit_web_view_load_string(webView, contents, 0, 0, 0); - - /* Put the webview in a parent container widget to check that the - normal behaviour keeps working as expected by default. */ - GtkWidget* parentContainer = gtk_window_new(GTK_WINDOW_TOPLEVEL); - g_object_ref_sink(parentContainer); - gtk_container_add(GTK_CONTAINER(parentContainer), GTK_WIDGET(webView)); - - AtkObject* axRoot = gtk_widget_get_accessible(GTK_WIDGET(webView)); - g_assert(ATK_IS_OBJECT(axRoot)); - - AtkObject* axParent = gtk_widget_get_accessible(parentContainer); - g_assert(ATK_IS_OBJECT(axParent)); - - /* The parent of the root object is the parent container's a11y object. */ - g_assert(atk_object_get_parent(axRoot) == axParent); - - /* We now need to use something as a an alternative parent for - the a11y object associated with the root of the DOM tree. */ - GtkWidget* alternativeParent = gtk_button_new(); - g_object_ref_sink(alternativeParent); - - AtkObject* axAlternativeParent = gtk_widget_get_accessible(alternativeParent); - g_assert(ATK_IS_OBJECT(axAlternativeParent)); - - /* Manually set the alternative parent's accessibility object as - the parent for the WebKit accessibility root object and check. */ - atk_object_set_parent(axRoot, axAlternativeParent); - g_assert(atk_object_get_parent(axRoot) == axAlternativeParent); - - g_object_unref(alternativeParent); - g_object_unref(parentContainer); -} - -/* FIXME: Please remove this function and replace its usage by - gtk_test_init() when upgrading to GTK 3.2 or greater. */ -static void initializeTestingFramework(int argc, char** argv) -{ - /* Ensure GAIL is the only module loaded. */ - g_setenv("GTK_MODULES", "gail", TRUE); - - /* Following lines were taken from gtk_test_init(). */ - g_test_init(&argc, &argv, 0); - gtk_disable_setlocale(); - setlocale(LC_ALL, "C"); - -#ifndef GTK_API_VERSION_2 - /* gdk_disable_multidevice() available since GTK+ 3.0 only. */ - gdk_disable_multidevice(); -#endif - - gtk_init(&argc, &argv); -} - -int main(int argc, char** argv) -{ - /* We can't just call to gtk_test_init() in this case because its - implementation makes sure that no GTK+ module will be loaded, and - we will need to load GAIL for tests that need to use AtkObjects - from non-WebKit GtkWidgets (e.g parentForRootObject). However, it - shouldn't be needed to do this in the future, as GAIL won't longer - be a separate module (but part of GTK+) since GTK+ 3.2 on. */ - initializeTestingFramework(argc, argv); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/atk/caretOffsets", testWebkitAtkCaretOffsets); - g_test_add_func("/webkit/atk/caretOffsetsAndExtranousWhiteSpaces", testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces); - g_test_add_func("/webkit/atk/comboBox", testWebkitAtkComboBox); - g_test_add_func("/webkit/atk/documentLoadingEvents", testWebkitAtkDocumentLoadingEvents); - g_test_add_func("/webkit/atk/embeddedObjects", testWebkitAtkEmbeddedObjects); - g_test_add_func("/webkit/atk/getTextAtOffset", testWebkitAtkGetTextAtOffset); - g_test_add_func("/webkit/atk/getTextAtOffsetNewlines", testWebkitAtkGetTextAtOffsetNewlines); - g_test_add_func("/webkit/atk/getTextAtOffsetTextarea", testWebkitAtkGetTextAtOffsetTextarea); - g_test_add_func("/webkit/atk/getTextAtOffsetTextInput", testWebkitAtkGetTextAtOffsetTextInput); - g_test_add_func("/webkit/atk/getTextAtOffsetWithPreformattedText", testWebkitAtkGetTextAtOffsetWithPreformattedText); - g_test_add_func("/webkit/atk/getTextAtOffsetWithSpecialCharacters", testWebkitAtkGetTextAtOffsetWithSpecialCharacters); - g_test_add_func("/webkit/atk/getTextAtOffsetWithWrappedLines", testWebkitAtkGetTextAtOffsetWithWrappedLines); - g_test_add_func("/webkit/atk/getTextInParagraphAndBodySimple", testWebkitAtkGetTextInParagraphAndBodySimple); - g_test_add_func("/webkit/atk/getTextInParagraphAndBodyModerate", testWebkitAtkGetTextInParagraphAndBodyModerate); - g_test_add_func("/webkit/atk/getTextInTable", testWebkitAtkGetTextInTable); - g_test_add_func("/webkit/atk/getHeadersInTable", testWebkitAtkGetHeadersInTable); - g_test_add_func("/webkit/atk/textAttributes", testWebkitAtkTextAttributes); - g_test_add_func("/webkit/atk/textSelections", testWebkitAtkTextSelections); - g_test_add_func("/webkit/atk/getExtents", testWebkitAtkGetExtents); - g_test_add_func("/webkit/atk/hypertextAndHyperlinks", testWebkitAtkHypertextAndHyperlinks); - g_test_add_func("/webkit/atk/layoutAndDataTables", testWebkitAtkLayoutAndDataTables); - g_test_add_func("/webkit/atk/linksWithInlineImages", testWebkitAtkLinksWithInlineImages); - g_test_add_func("/webkit/atk/listsOfItems", testWebkitAtkListsOfItems); - g_test_add_func("/webkit/atk/textChangedNotifications", testWebkitAtkTextChangedNotifications); - g_test_add_func("/webkit/atk/parentForRootObject", testWebkitAtkParentForRootObject); - g_test_add_func("/webkit/atk/setParentForObject", testWebkitAtkSetParentForObject); - return g_test_run (); -} - diff --git a/Source/WebKit/gtk/tests/testatkroles.c b/Source/WebKit/gtk/tests/testatkroles.c deleted file mode 100644 index da7833ea9..000000000 --- a/Source/WebKit/gtk/tests/testatkroles.c +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright © 2010 Joanmarie Diggs - * Copyright © 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -/* Non form roles */ -#define HTML_DOCUMENT_FRAME "<html><body>This is a test.</body></html>" -#define HTML_HEADING "<html><body><h1>1</h1><h2>2</h2><h3>3</h3><h4>4</h4><h5>5</h5><h6>6</h6></body></html>" -#define HTML_IMAGE "<html><body><img src='foobar.png' alt='This is a test.'/></body></html>" -#define HTML_LINK_TEXT "<html><body><a href='foobar.html'>This is a test.</a></body></html>" -#define HTML_LIST "<html><body><ul><li>1</li><li>2</li></ul><ol><li>1</li><li>2</li></ol></body></html>" -#define HTML_PARAGRAPH "<html><body><p>This is a test.</p></body></html>" -#define HTML_SECTION "<html><body><div>This is a test.</div></body></html>" -#define HTML_TABLE "<html><body><table border='1'><tr><td>This is</td><td>a test.</td></tr></table></body></html>" -#define HTML_SEPARATOR "<html><body><hr/></body></html>" -#define HTML_COMBOBOX "<html><body><select size='1'><option>one</option><option>two</option><option>three</option></select></body></html>" -/* Form roles */ -#define HTML_FORM "<html><body><form>This is a test.</form></body></html>" -#define HTML_CHECK_BOX "<html><body><input type='checkbox' />This is a test.</body></html>" -#define HTML_LABELED_ENTRY "<html><body><label for='foo'>Name:</label><input type='text' id='foo' /></body></html>" -#define HTML_LISTBOX "<html><body><select size='3'><option>one</option><option>two</option><option>three</option></select></body></html>" -#define HTML_PASSWORD_TEXT "<html><body><input type='password' /></body></html>" -#define HTML_PUSH_BUTTON "<html><body><input type='submit' value='ok' />This is a test.</body></html>" -#define HTML_RADIO_BUTTON "<html><body><input type='radio' />This is a test.</body></html>" - -typedef struct { - AtkObject* documentFrame; - AtkObject* obj; - AtkRole role; - GtkWidget* webView; - GtkAllocation alloc; - GMainLoop* loop; -} AtkRolesFixture; - -static gboolean finish_loading(AtkRolesFixture* fixture) -{ - if (g_main_loop_is_running(fixture->loop)) - g_main_loop_quit(fixture->loop); - - // With the change to support WK2 accessibility, the root object - // has changed and it's no longer the document frame, but a scroll - // pane containing the document frame as its only child. See the - // bug 72390 for more details on this change. - // https://bugs.webkit.org/show_bug.cgi?id=72390 - AtkObject* rootObject = gtk_widget_get_accessible(fixture->webView); - fixture->documentFrame = atk_object_ref_accessible_child(rootObject, 0); - g_assert(fixture->documentFrame); - - // Remove the reference added by ref_accessible_child() and - // return, since we don't need to keep that extra ref at all. - g_object_unref(fixture->documentFrame); - return FALSE; -} - -static void atk_roles_fixture_setup(AtkRolesFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - fixture->alloc = (GtkAllocation) { 0, 0, 800, 600 }; - fixture->webView = webkit_web_view_new(); - g_object_ref_sink(fixture->webView); - - gtk_widget_size_allocate(fixture->webView, &fixture->alloc); - - if (data != NULL) - webkit_web_view_load_string(WEBKIT_WEB_VIEW (fixture->webView), (const char*) data, NULL, NULL, NULL); - - g_idle_add((GSourceFunc) finish_loading, fixture); - g_main_loop_run(fixture->loop); -} - -static void atk_roles_fixture_teardown(AtkRolesFixture* fixture, gconstpointer data) -{ - g_object_unref(fixture->webView); - g_main_loop_unref(fixture->loop); -} - -static void get_child_and_test_role(AtkObject* obj, gint pos, AtkRole role) -{ - AtkObject* child; - AtkRole child_role; - - child = atk_object_ref_accessible_child(obj, pos); - g_assert(child); - child_role = atk_object_get_role(child); - g_assert(child_role == role); - - g_object_unref(child); -} - -static void test_webkit_atk_get_role_document_frame(AtkRolesFixture* fixture, gconstpointer data) -{ - fixture->role = atk_object_get_role(fixture->documentFrame); - g_assert(fixture->role == ATK_ROLE_DOCUMENT_FRAME); -} - -static void test_webkit_atk_get_role_heading(AtkRolesFixture* fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_HEADING); - get_child_and_test_role(fixture->documentFrame, 1, ATK_ROLE_HEADING); - get_child_and_test_role(fixture->documentFrame, 2, ATK_ROLE_HEADING); - get_child_and_test_role(fixture->documentFrame, 3, ATK_ROLE_HEADING); - get_child_and_test_role(fixture->documentFrame, 4, ATK_ROLE_HEADING); - get_child_and_test_role(fixture->documentFrame, 5, ATK_ROLE_HEADING); -} - -static void test_webkit_atk_get_role_image(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_IMAGE); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_link(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_LINK); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_list_and_item(AtkRolesFixture* fixture, gconstpointer data) -{ - AtkObject* listObj; - - listObj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(listObj); - fixture->role = atk_object_get_role(listObj); - g_assert(fixture->role == ATK_ROLE_LIST); - - get_child_and_test_role(listObj, 0, ATK_ROLE_LIST_ITEM); - get_child_and_test_role(listObj, 1, ATK_ROLE_LIST_ITEM); - g_object_unref(listObj); - - listObj = atk_object_ref_accessible_child(fixture->documentFrame, 1); - g_assert(listObj); - fixture->role = atk_object_get_role(listObj); - g_assert(fixture->role == ATK_ROLE_LIST); - - get_child_and_test_role(listObj, 0, ATK_ROLE_LIST_ITEM); - get_child_and_test_role(listObj, 1, ATK_ROLE_LIST_ITEM); - g_object_unref(listObj); -} - -static void test_webkit_atk_get_role_paragraph(AtkRolesFixture* fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_PARAGRAPH); -} - -static void test_webkit_atk_get_role_section(AtkRolesFixture* fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_SECTION); -} - -// Does not yet test table cells because of bug 30895. -static void test_webkit_atk_get_role_table(AtkRolesFixture* fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_TABLE); -} - -static void test_webkit_atk_get_role_separator(AtkRolesFixture *fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_SEPARATOR); -} - -static void test_webkit_atk_get_role_combobox(AtkRolesFixture *fixture, gconstpointer data) -{ - AtkObject* comboboxMenu; - - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - fixture->obj = atk_object_ref_accessible_child(fixture->obj, 0); - g_assert(fixture->obj); - fixture->role = atk_object_get_role(fixture->obj); - g_assert(fixture->role == ATK_ROLE_COMBO_BOX); - - comboboxMenu = atk_object_ref_accessible_child(fixture->obj, 0); - g_assert(comboboxMenu); - fixture->role = atk_object_get_role(comboboxMenu); - g_assert(fixture->role == ATK_ROLE_MENU); - - get_child_and_test_role(comboboxMenu, 0, ATK_ROLE_MENU_ITEM); - get_child_and_test_role(comboboxMenu, 1, ATK_ROLE_MENU_ITEM); - get_child_and_test_role(comboboxMenu, 2, ATK_ROLE_MENU_ITEM); - - g_object_unref(fixture->obj); - g_object_unref(comboboxMenu); -} - -/* Form roles */ -static void test_webkit_atk_get_role_form(AtkRolesFixture *fixture, gconstpointer data) -{ - get_child_and_test_role(fixture->documentFrame, 0, ATK_ROLE_FORM); -} - -static void test_webkit_atk_get_role_check_box(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_CHECK_BOX); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_entry(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 1, ATK_ROLE_ENTRY); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_label(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_LABEL); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_listbox(AtkRolesFixture* fixture, gconstpointer data) -{ - AtkObject* listboxObj; - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - listboxObj = atk_object_ref_accessible_child(fixture->obj, 0); - g_assert(listboxObj); - fixture->role = atk_object_get_role(listboxObj); - g_assert(fixture->role == ATK_ROLE_LIST); - - get_child_and_test_role(listboxObj, 0, ATK_ROLE_LIST_ITEM); - get_child_and_test_role(listboxObj, 1, ATK_ROLE_LIST_ITEM); - get_child_and_test_role(listboxObj, 2, ATK_ROLE_LIST_ITEM); - - g_object_unref(fixture->obj); - g_object_unref(listboxObj); -} - -static void test_webkit_atk_get_role_password_text(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_PASSWORD_TEXT); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_push_button(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_PUSH_BUTTON); - - g_object_unref(fixture->obj); -} - -static void test_webkit_atk_get_role_radio_button(AtkRolesFixture* fixture, gconstpointer data) -{ - // This is an extraneous object of ATK_ROLE_PANEL which we should get rid of. - fixture->obj = atk_object_ref_accessible_child(fixture->documentFrame, 0); - g_assert(fixture->obj); - - get_child_and_test_role(fixture->obj, 0, ATK_ROLE_RADIO_BUTTON); - - g_object_unref(fixture->obj); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_document_frame", - AtkRolesFixture, HTML_DOCUMENT_FRAME, - atk_roles_fixture_setup, - test_webkit_atk_get_role_document_frame, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_heading", - AtkRolesFixture, HTML_HEADING, - atk_roles_fixture_setup, - test_webkit_atk_get_role_heading, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_image", - AtkRolesFixture, HTML_IMAGE, - atk_roles_fixture_setup, - test_webkit_atk_get_role_image, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_link", - AtkRolesFixture, HTML_LINK_TEXT, - atk_roles_fixture_setup, - test_webkit_atk_get_role_link, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_list_and_item", - AtkRolesFixture, HTML_LIST, - atk_roles_fixture_setup, - test_webkit_atk_get_role_list_and_item, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_paragraph", - AtkRolesFixture, HTML_PARAGRAPH, - atk_roles_fixture_setup, - test_webkit_atk_get_role_paragraph, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_section", - AtkRolesFixture, HTML_SECTION, - atk_roles_fixture_setup, - test_webkit_atk_get_role_section, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_table", - AtkRolesFixture, HTML_TABLE, - atk_roles_fixture_setup, - test_webkit_atk_get_role_table, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_separator", - AtkRolesFixture, HTML_SEPARATOR, - atk_roles_fixture_setup, - test_webkit_atk_get_role_separator, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_combobox", - AtkRolesFixture, HTML_COMBOBOX, - atk_roles_fixture_setup, - test_webkit_atk_get_role_combobox, - atk_roles_fixture_teardown); - - /* Form roles */ - g_test_add("/webkit/atk/test_webkit_atk_get_role_form", - AtkRolesFixture, HTML_FORM, - atk_roles_fixture_setup, - test_webkit_atk_get_role_form, - atk_roles_fixture_teardown); - g_test_add("/webkit/atk/test_webkit_atk_get_role_check_box", - AtkRolesFixture, HTML_CHECK_BOX, - atk_roles_fixture_setup, - test_webkit_atk_get_role_check_box, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_entry", - AtkRolesFixture, HTML_LABELED_ENTRY, - atk_roles_fixture_setup, - test_webkit_atk_get_role_entry, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_label", - AtkRolesFixture, HTML_LABELED_ENTRY, - atk_roles_fixture_setup, - test_webkit_atk_get_role_label, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_listbox", - AtkRolesFixture, HTML_LISTBOX, - atk_roles_fixture_setup, - test_webkit_atk_get_role_listbox, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_password_text", - AtkRolesFixture, HTML_PASSWORD_TEXT, - atk_roles_fixture_setup, - test_webkit_atk_get_role_password_text, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_push_button", - AtkRolesFixture, HTML_PUSH_BUTTON, - atk_roles_fixture_setup, - test_webkit_atk_get_role_push_button, - atk_roles_fixture_teardown); - - g_test_add("/webkit/atk/test_webkit_atk_get_role_radio_button", - AtkRolesFixture, HTML_RADIO_BUTTON, - atk_roles_fixture_setup, - test_webkit_atk_get_role_radio_button, - atk_roles_fixture_teardown); - - return g_test_run(); -} diff --git a/Source/WebKit/gtk/tests/testcontextmenu.c b/Source/WebKit/gtk/tests/testcontextmenu.c deleted file mode 100644 index fbf4ede5d..000000000 --- a/Source/WebKit/gtk/tests/testcontextmenu.c +++ /dev/null @@ -1,314 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <webkit/webkit.h> - -typedef struct { - char *data; - guint flag; -} TestInfo; - -static GMainLoop *loop; - -typedef struct { - WebKitWebView *webView; - TestInfo *info; -} ContextMenuFixture; - -static TestInfo *testInfoNew(const char *data, guint flag) -{ - TestInfo *info = g_slice_new(TestInfo); - info->data = g_strdup(data); - info->flag = flag; - - return info; -} - -static void testInfoDestroy(TestInfo *info) -{ - g_free(info->data); - g_slice_free(TestInfo, info); -} - -static void contextMenuFixtureSetup(ContextMenuFixture *fixture, gconstpointer data) -{ - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - loop = g_main_loop_new(NULL, TRUE); - fixture->info = (TestInfo *)data; -} - -static void contextMenuFixtureTeardown(ContextMenuFixture *fixture, gconstpointer data) -{ - g_object_unref(fixture->webView); - g_main_loop_unref(loop); - testInfoDestroy(fixture->info); -} - -static GList *checkAction(GList *iter, WebKitContextMenuAction action) -{ - GtkMenuItem *item = (GtkMenuItem *)iter->data; - - g_assert(GTK_IS_MENU_ITEM(item)); - g_assert(webkit_context_menu_item_get_action(item) == action); - - return iter->next; -} - -static GList *checkActionWithSubmenu(GList *iter, WebKitContextMenuAction action) -{ - GtkMenuItem *item = (GtkMenuItem *)iter->data; - - g_assert(GTK_IS_MENU_ITEM(item)); - g_assert(webkit_context_menu_item_get_action(item) == action); - g_assert(GTK_IS_MENU(gtk_menu_item_get_submenu(item))); - - return iter->next; -} - -static GList *checkSeparator(GList *iter) -{ - GtkMenuItem *item = (GtkMenuItem *)iter->data; - - g_assert(GTK_IS_SEPARATOR_MENU_ITEM(item)); - - return iter->next; -} - -static gboolean contextMenuCallback(WebKitWebView *webView, GtkWidget *defaultMenu, WebKitHitTestResult *hitTestResult, gboolean keyboardMode, gpointer userData) -{ - TestInfo *info = (TestInfo *)userData; - guint context; - GList *items; - GList *iter; - - /* Check signal parameters */ - g_assert(WEBKIT_IS_WEB_VIEW(webView)); - g_assert(GTK_IS_MENU(defaultMenu)); - g_assert(WEBKIT_IS_HIT_TEST_RESULT(hitTestResult)); - g_assert(!keyboardMode); - - g_object_get(hitTestResult, "context", &context, NULL); - g_assert(context & info->flag); - - items = gtk_container_get_children(GTK_CONTAINER(defaultMenu)); - switch (info->flag) { - case WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT: - iter = items; - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_GO_BACK); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_STOP); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_RELOAD); - g_assert(!iter); - - break; - case WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE: - iter = items; - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD); - g_assert(!iter); - - break; - case WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE: - iter = items; - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_CUT); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_COPY); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_PASTE); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_DELETE); - iter = checkSeparator(iter); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL); - iter = checkSeparator(iter); - iter = checkActionWithSubmenu(iter, WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS); - iter = checkActionWithSubmenu(iter, WEBKIT_CONTEXT_MENU_ACTION_UNICODE); - g_assert(!iter); - - break; - case WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK: - iter = items; - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD); - g_assert(!iter); - - break; - default: - g_assert_not_reached(); - } - - g_list_free(items); - g_main_loop_quit(loop); - - return TRUE; -} - -static void pushEvent(WebKitWebView *webView) -{ - GdkEvent *event = gdk_event_new(GDK_BUTTON_PRESS); -#if GTK_CHECK_VERSION(3, 0, 0) - GdkDeviceManager *deviceManager; -#endif - - event->any.window = g_object_ref(gtk_widget_get_window(GTK_WIDGET(webView))); - event->any.send_event = FALSE; - event->button.time = GDK_CURRENT_TIME; - event->button.button = 3; - event->button.x = event->button.y = 5; - event->button.x_root = event->button.x; - event->button.y_root = event->button.y; -#if GTK_CHECK_VERSION(3, 0, 0) - deviceManager = gdk_display_get_device_manager(gdk_display_get_default()); - event->button.device = gdk_device_manager_get_client_pointer(deviceManager); -#endif - - gdk_event_put(event); - gdk_event_free(event); -} - -static void loadStatusCallback(WebKitWebView *webView, GParamSpec *spec, gpointer data) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - TestInfo *info = (TestInfo *)data; - - g_assert(status != WEBKIT_LOAD_FAILED); - - if (status != WEBKIT_LOAD_FINISHED) - return; - - g_signal_connect(webView, "context-menu", G_CALLBACK(contextMenuCallback), info); - pushEvent(webView); -} - -static gboolean mapEventCallback(GtkWidget *widget, GdkEvent *event, gpointer data) -{ - gtk_widget_grab_focus(widget); - ContextMenuFixture *fixture = (ContextMenuFixture *)data; - webkit_web_view_load_string(fixture->webView, - fixture->info->data, - "text/html", - "utf-8", - "file://"); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(loadStatusCallback), fixture->info); - return FALSE; -} - -static void testContextMenu(ContextMenuFixture *fixture, gconstpointer data) -{ - GtkAllocation allocation = { 0, 0, 50, 50 }; - GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); - - gtk_window_resize(GTK_WINDOW(window), 50, 50); - gtk_window_move(GTK_WINDOW(window), 0, 0); - gtk_widget_size_allocate(GTK_WIDGET(fixture->webView), &allocation); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(fixture->webView)); - g_signal_connect(window, "map-event", G_CALLBACK(mapEventCallback), fixture); - gtk_widget_show_all(window); - - g_main_loop_run(loop); -} - -static gboolean contextMenuCustomItemCallback(WebKitWebView *webView, GtkWidget *defaultMenu, WebKitHitTestResult *hitTestResult, gboolean keyboardMode, gpointer userData) -{ - TestInfo *info = (TestInfo *)userData; - guint context; - GList *items; - GList *iter; - GtkWidget *menuItem; - GtkAction *action; - - /* Check signal parameters */ - g_assert(WEBKIT_IS_WEB_VIEW(webView)); - g_assert(GTK_IS_MENU(defaultMenu)); - g_assert(WEBKIT_IS_HIT_TEST_RESULT(hitTestResult)); - g_assert(!keyboardMode); - - g_object_get(hitTestResult, "context", &context, NULL); - g_assert(context & info->flag); - - action = gtk_action_new("TestAction", "Custom Action", "Custom Action Tooltip", NULL); - menuItem = gtk_action_create_menu_item(action); - g_object_unref(action); - - gtk_menu_shell_append(GTK_MENU_SHELL(defaultMenu), menuItem); - gtk_widget_show(menuItem); - - items = gtk_container_get_children(GTK_CONTAINER(defaultMenu)); - iter = items; - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_GO_BACK); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_STOP); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_RELOAD); - iter = checkAction(iter, WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION); - g_assert(!iter); - - g_list_free(items); - g_main_loop_quit(loop); - - return TRUE; -} - -static void testContextMenuCustomItem(ContextMenuFixture *fixture, gconstpointer data) -{ - GtkWidget *window = gtk_window_new(GTK_WINDOW_POPUP); - gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(fixture->webView)); - gtk_widget_show_all(window); - gtk_widget_grab_focus(GTK_WIDGET(fixture->webView)); - - webkit_web_view_load_string(fixture->webView, - fixture->info->data, - "text/html", - "utf-8", - "file://"); - g_signal_connect(fixture->webView, "context-menu", G_CALLBACK(contextMenuCustomItemCallback), fixture->info); - pushEvent(fixture->webView); -} - -int main(int argc, char **argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/testcontextmenu/document", ContextMenuFixture, - testInfoNew("<html><body><h1>WebKitGTK+!</h1></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT), - contextMenuFixtureSetup, testContextMenu, contextMenuFixtureTeardown); - /* We hardcode all elements to be at 0,0 so that we know where to generate the button events */ - g_test_add("/webkit/testcontextmenu/image", ContextMenuFixture, - testInfoNew("<html><body><img style='position:absolute; left:0; top:0' src='0xdeadbeef' width=50 height=50></img></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE), - contextMenuFixtureSetup, testContextMenu, contextMenuFixtureTeardown); - g_test_add("/webkit/testcontextmenu/editable", ContextMenuFixture, - testInfoNew("<html><body><input style='position:absolute; left:0; top:0' size='35'></input>></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE), - contextMenuFixtureSetup, testContextMenu, contextMenuFixtureTeardown); - g_test_add("/webkit/testcontextmenu/link", ContextMenuFixture, - testInfoNew("<html><body><a style='position:absolute; left:0; top:0' href='http://www.example.com'>HELLO WORLD</a></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK), - contextMenuFixtureSetup, testContextMenu, contextMenuFixtureTeardown); - g_test_add("/webkit/testcontextmenu/customitem", ContextMenuFixture, - testInfoNew("<html><body><h1>WebKitGTK+!</h1></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT), - contextMenuFixtureSetup, testContextMenuCustomItem, contextMenuFixtureTeardown); - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testcopyandpaste.c b/Source/WebKit/gtk/tests/testcopyandpaste.c deleted file mode 100644 index 5557ff875..000000000 --- a/Source/WebKit/gtk/tests/testcopyandpaste.c +++ /dev/null @@ -1,266 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <string.h> -#include <glib/gstdio.h> -#include <webkit/webkit.h> -#include <JavaScriptCore/JSStringRef.h> -#include <JavaScriptCore/JSContextRef.h> - -typedef struct { - char* page; - char* expectedContent; -} TestInfo; - -typedef struct { - GtkWidget* window; - WebKitWebView* webView; - GMainLoop* loop; - TestInfo* info; -} CopyAndPasteFixture; - -TestInfo* -test_info_new(const char* page, const char* expectedContent) -{ - TestInfo* info; - info = g_slice_new0(TestInfo); - info->page = g_strdup(page); - if (expectedContent) - info->expectedContent = g_strdup(expectedContent); - return info; -} - -void -test_info_destroy(TestInfo* info) -{ - g_free(info->page); - g_free(info->expectedContent); - g_slice_free(TestInfo, info); -} - -static void copy_and_paste_fixture_setup(CopyAndPasteFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - - fixture->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - - gtk_container_add(GTK_CONTAINER(fixture->window), GTK_WIDGET(fixture->webView)); -} - -static void copy_and_paste_fixture_teardown(CopyAndPasteFixture* fixture, gconstpointer data) -{ - gtk_widget_destroy(fixture->window); - g_main_loop_unref(fixture->loop); - test_info_destroy(fixture->info); -} - -static void load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data) -{ - CopyAndPasteFixture* fixture = (CopyAndPasteFixture*)data; - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status != WEBKIT_LOAD_FINISHED) - return; - - GtkClipboard* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); - gtk_clipboard_clear(clipboard); - - webkit_web_view_copy_clipboard(webView); - - gchar* text = gtk_clipboard_wait_for_text(clipboard); - g_assert(text || !fixture->info->expectedContent); - g_assert(!text || !strcmp(text, fixture->info->expectedContent)); - g_free(text); - - // Verify that the markup starts with the proper content-type meta tag prefix. - GtkSelectionData* selectionData = gtk_clipboard_wait_for_contents(clipboard, gdk_atom_intern("text/html", FALSE)); - if (selectionData) { - static const char* markupPrefix = "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">"; - char* markup = g_strndup((const char*) gtk_selection_data_get_data(selectionData), - gtk_selection_data_get_length(selectionData)); - g_assert(strlen(markupPrefix) <= strlen(markup)); - g_assert(!strncmp(markupPrefix, markup, strlen(markupPrefix))); - g_free(markup); - } - - g_assert(!gtk_clipboard_wait_is_uris_available(clipboard)); - g_assert(!gtk_clipboard_wait_is_image_available(clipboard)); - - g_main_loop_quit(fixture->loop); -} - -gboolean map_event_cb(GtkWidget *widget, GdkEvent* event, gpointer data) -{ - CopyAndPasteFixture* fixture = (CopyAndPasteFixture*)data; - webkit_web_view_load_string(fixture->webView, fixture->info->page, - "text/html", "utf-8", "file://"); - return FALSE; -} - -static void test_copy_and_paste(CopyAndPasteFixture* fixture, gconstpointer data) -{ - fixture->info = (TestInfo*)data; - g_signal_connect(fixture->window, "map-event", - G_CALLBACK(map_event_cb), fixture); - - gtk_widget_show(fixture->window); - gtk_widget_show(GTK_WIDGET(fixture->webView)); - gtk_window_present(GTK_WINDOW(fixture->window)); - gtk_widget_grab_focus(GTK_WIDGET(fixture->webView)); - - g_signal_connect(fixture->webView, "notify::load-status", - G_CALLBACK(load_status_cb), fixture); - - g_main_loop_run(fixture->loop); -} - -static CopyAndPasteFixture* currentFixture; -static JSValueRef runPasteTestCallback(JSContextRef context, JSObjectRef function, JSObjectRef thisObject, size_t argumentCount, const JSValueRef arguments[], JSValueRef* exception) -{ - gtk_widget_grab_focus(GTK_WIDGET(currentFixture->webView)); - - // Simulate a paste keyboard sequence. - GdkEvent* event = gdk_event_new(GDK_KEY_PRESS); - event->key.keyval = gdk_unicode_to_keyval('v'); - event->key.state = GDK_CONTROL_MASK; - event->key.window = gtk_widget_get_window(GTK_WIDGET(currentFixture->webView)); - g_object_ref(event->key.window); -#ifndef GTK_API_VERSION_2 - GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_window_get_display(event->key.window)); - gdk_event_set_device(event, gdk_device_manager_get_client_pointer(manager)); -#endif - - GdkKeymapKey* keys; - gint n_keys; - if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), event->key.keyval, &keys, &n_keys)) { - event->key.hardware_keycode = keys[0].keycode; - g_free(keys); - } - - gtk_main_do_event(event); - event->key.type = GDK_KEY_RELEASE; - gtk_main_do_event(event); - gdk_event_free(event); - - JSStringRef scriptString = JSStringCreateWithUTF8CString("document.body.innerHTML;"); - JSValueRef value = JSEvaluateScript(context, scriptString, 0, 0, 0, 0); - JSStringRelease(scriptString); - - g_assert(JSValueIsString(context, value)); - JSStringRef actual = JSValueToStringCopy(context, value, exception); - g_assert(!exception || !*exception); - g_assert(currentFixture->info->expectedContent); - JSStringRef expected = JSStringCreateWithUTF8CString(currentFixture->info->expectedContent); - g_assert(JSStringIsEqual(expected, actual)); - - JSStringRelease(expected); - JSStringRelease(actual); - g_main_loop_quit(currentFixture->loop); - return JSValueMakeUndefined(context); -} - -static void window_object_cleared_callback(WebKitWebView* web_view, WebKitWebFrame* web_frame, JSGlobalContextRef context, JSObjectRef window_object, gpointer data) -{ - JSStringRef name = JSStringCreateWithUTF8CString("runTest"); - JSObjectRef testComplete = JSObjectMakeFunctionWithCallback(context, name, runPasteTestCallback); - JSObjectSetProperty(context, window_object, name, testComplete, kJSPropertyAttributeNone, 0); - JSStringRelease(name); -} - -static void pasting_test_get_data_callback(GtkClipboard* clipboard, GtkSelectionData* selection_data, guint info, gpointer data) -{ - gtk_selection_data_set(selection_data, gdk_atom_intern("text/html", FALSE), 8, (const guchar*) data, strlen((char*)data) + 1); -} - -static void pasting_test_clear_data_callback(GtkClipboard* clipboard, gpointer data) -{ - g_free(data); -} - -static void test_pasting_markup(CopyAndPasteFixture* fixture, gconstpointer data) -{ - fixture->info = (TestInfo*)data; - currentFixture = fixture; - - GtkTargetList* targetList = gtk_target_list_new(0, 0); - gtk_target_list_add(targetList, gdk_atom_intern("text/html", FALSE), 0, 0); - - int numberOfTargets = 1; - GtkTargetEntry* targetTable = gtk_target_table_new_from_list(targetList, &numberOfTargets); - gtk_clipboard_set_with_data(gtk_clipboard_get(GDK_SELECTION_CLIPBOARD), - targetTable, numberOfTargets, - pasting_test_get_data_callback, - pasting_test_clear_data_callback, - g_strdup(fixture->info->expectedContent)); - gtk_target_list_unref(targetList); - gtk_target_table_free(targetTable, numberOfTargets); - - g_signal_connect(fixture->window, "map-event", - G_CALLBACK(map_event_cb), fixture); - g_signal_connect(fixture->webView, "window-object-cleared", - G_CALLBACK(window_object_cleared_callback), fixture); - - gtk_widget_show(fixture->window); - gtk_widget_show(GTK_WIDGET(fixture->webView)); - gtk_window_present(GTK_WINDOW(fixture->window)); - - g_main_loop_run(fixture->loop); -} - - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - const char* selected_span_html = "<html><body>" - "<span id=\"mainspan\">All work and no play <span>make Jack a dull</span> boy.</span>" - "<script>document.getSelection().collapse();\n" - "document.getSelection().selectAllChildren(document.getElementById('mainspan'));\n" - "</script></body></html>"; - const char* no_selection_html = "<html><body>" - "<span id=\"mainspan\">All work and no play <span>make Jack a dull</span> boy</span>" - "<script>document.getSelection().collapse();\n" - "</script></body></html>"; - - g_test_add("/webkit/copyandpaste/selection", CopyAndPasteFixture, - test_info_new(selected_span_html, "All work and no play make Jack a dull boy."), - copy_and_paste_fixture_setup, - test_copy_and_paste, - copy_and_paste_fixture_teardown); - g_test_add("/webkit/copyandpaste/no-selection", CopyAndPasteFixture, - test_info_new(no_selection_html, 0), - copy_and_paste_fixture_setup, - test_copy_and_paste, - copy_and_paste_fixture_teardown); - - const char* paste_test_html = "<html>" - "<body onLoad=\"document.body.focus(); runTest();\" contentEditable=\"true\">" - "</body></html>"; - g_test_add("/webkit/copyandpaste/paste-markup", CopyAndPasteFixture, - test_info_new(paste_test_html, "bobby"), - copy_and_paste_fixture_setup, - test_pasting_markup, - copy_and_paste_fixture_teardown); - - return g_test_run(); -} diff --git a/Source/WebKit/gtk/tests/testdomdocument.c b/Source/WebKit/gtk/tests/testdomdocument.c deleted file mode 100644 index 573159316..000000000 --- a/Source/WebKit/gtk/tests/testdomdocument.c +++ /dev/null @@ -1,428 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -#define HTML_DOCUMENT_TITLE "<html><head><title>This is the title</title></head><body></body></html>" -#define HTML_DOCUMENT_ELEMENTS "<html><body><ul><li>1</li><li>2</li><li>3</li></ul></body></html>" -#define HTML_DOCUMENT_ELEMENTS_CLASS "<html><body><div class=\"test\"></div><div class=\"strange\"></div><div class=\"test\"></div></body></html>" -#define HTML_DOCUMENT_ELEMENTS_ID "<html><body><div id=\"testok\"></div><div id=\"testbad\">first</div><div id=\"testbad\">second</div></body></html>" -#define HTML_DOCUMENT_LINKS "<html><head><title>Title</title></head><body><a href=\"about:blank\">blank</a><a href=\"http://www.google.com\">google</a><a href=\"http://www.webkit.org\">webkit</a></body></html>" -#define HTML_DOCUMENT_IFRAME "<html><head><title>IFrame</title></head><body><iframe id='iframe'></iframe><div id='test'></div></body></html>" -#define HTML_DOCUMENT_TABLE "<html><body><table id=\"table\"></table></body></html>" -#define HTML_DOCUMENT_EVALUATE "<html><head><title></title></head><body><div>First div</div><div>Second div</div></body></html>" - -typedef struct { - GtkWidget* webView; - GMainLoop* loop; -} DomDocumentFixture; - -static gboolean finish_loading(DomDocumentFixture* fixture) -{ - if (g_main_loop_is_running(fixture->loop)) - g_main_loop_quit(fixture->loop); - - return FALSE; -} - -static void dom_document_fixture_setup(DomDocumentFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - fixture->webView = webkit_web_view_new(); - g_object_ref_sink(fixture->webView); - - if (data != NULL) - webkit_web_view_load_string(WEBKIT_WEB_VIEW (fixture->webView), (const char*) data, NULL, NULL, NULL); - - g_idle_add((GSourceFunc)finish_loading, fixture); - g_main_loop_run(fixture->loop); -} - -static void dom_document_fixture_teardown(DomDocumentFixture* fixture, gconstpointer data) -{ - if (fixture->webView) - g_object_unref(fixture->webView); - g_main_loop_unref(fixture->loop); -} - -static void test_dom_document_title(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - gchar* title = webkit_dom_document_get_title(document); - g_assert(title); - g_assert_cmpstr(title, ==, "This is the title"); - g_free(title); - webkit_dom_document_set_title(document, "This is the second title"); - title = webkit_dom_document_get_title(document); - g_assert(title); - g_assert_cmpstr(title, ==, "This is the second title"); - g_free(title); -} - -static void test_dom_document_get_elements_by_tag_name(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_tag_name(document, "li"); - g_assert(list); - gulong length = webkit_dom_node_list_get_length(list); - g_assert_cmpint(length, ==, 3); - - guint i; - - for (i = 0; i < length; i++) { - WebKitDOMNode* item = webkit_dom_node_list_item(list, i); - g_assert(item); - WebKitDOMElement* element = (WebKitDOMElement*)item; - g_assert(element); - g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "LI"); - WebKitDOMHTMLElement* htmlElement = (WebKitDOMHTMLElement*)element; - char* n = g_strdup_printf("%d", i+1); - g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, n); - g_free(n); - } - - g_object_unref(list); -} - -static void test_dom_document_get_elements_by_class_name(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_class_name(document, "test"); - g_assert(list); - gulong length = webkit_dom_node_list_get_length(list); - g_assert_cmpint(length, ==, 2); - - guint i; - - for (i = 0; i < length; i++) { - WebKitDOMNode* item = webkit_dom_node_list_item(list, i); - g_assert(item); - WebKitDOMElement* element = (WebKitDOMElement*)item; - g_assert(element); - g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "DIV"); - } - - g_object_unref(list); -} - -static void test_dom_document_get_element_by_id(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - WebKitDOMElement* element = webkit_dom_document_get_element_by_id(document, "testok"); - g_assert(element); - element = webkit_dom_document_get_element_by_id(document, "this-id-does-not-exist"); - g_assert(element == 0); - /* The DOM spec says the return value is undefined when there's - * more than one element with the same id; in our case the first - * one will be returned */ - element = webkit_dom_document_get_element_by_id(document, "testbad"); - g_assert(element); - WebKitDOMHTMLElement* htmlElement = (WebKitDOMHTMLElement*)element; - g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, "first"); -} - -static void test_dom_document_get_links(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - WebKitDOMHTMLCollection *collection = webkit_dom_document_get_links(document); - g_assert(collection); - gulong length = webkit_dom_html_collection_get_length(collection); - g_assert_cmpint(length, ==, 3); - - guint i; - - for (i = 0; i < length; i++) { - static const char* names[] = { "blank", "google", "webkit" }; - static const char* uris[] = { "about:blank", "http://www.google.com/", "http://www.webkit.org/" }; - WebKitDOMNode *node = webkit_dom_html_collection_item(collection, i); - g_assert(node); - WebKitDOMElement* element = (WebKitDOMElement*)node; - g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "A"); - WebKitDOMHTMLElement *htmlElement = (WebKitDOMHTMLElement*)element; - g_assert_cmpstr(webkit_dom_html_element_get_inner_text(htmlElement), ==, names[i]); - WebKitDOMHTMLAnchorElement *anchor = (WebKitDOMHTMLAnchorElement*)element; - g_assert_cmpstr(webkit_dom_html_anchor_element_get_href(anchor), ==, uris[i]); - } - g_object_unref(collection); -} - -static void test_dom_document_insert_row(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(WEBKIT_DOM_IS_DOCUMENT(document)); - WebKitDOMElement* table = webkit_dom_document_get_element_by_id(document, "table"); - g_assert(WEBKIT_DOM_IS_HTML_ELEMENT(table)); - WebKitDOMHTMLCollection* rows = webkit_dom_html_table_element_get_rows(WEBKIT_DOM_HTML_TABLE_ELEMENT(table)); - g_assert(WEBKIT_DOM_IS_HTML_COLLECTION(rows)); - - // Table is initially empty. - g_assert_cmpint(webkit_dom_html_collection_get_length(rows), ==, 0); - WebKitDOMHTMLElement* row = webkit_dom_html_table_element_insert_row(WEBKIT_DOM_HTML_TABLE_ELEMENT(table), -1, NULL); - g_assert(WEBKIT_DOM_IS_HTML_TABLE_ROW_ELEMENT(row)); - rows = webkit_dom_html_table_element_get_rows(WEBKIT_DOM_HTML_TABLE_ELEMENT(table)); - g_assert(WEBKIT_DOM_IS_HTML_COLLECTION(rows)); - g_assert_cmpint(webkit_dom_html_collection_get_length(rows), ==, 1); -} - -static void test_dom_document_evaluate(DomDocumentFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(WEBKIT_DOM_IS_DOCUMENT(document)); - WebKitDOMNodeList* list = webkit_dom_document_get_elements_by_tag_name(document, "html"); - g_assert(list); - gulong length = webkit_dom_node_list_get_length(list); - g_assert_cmpint(length, ==, 1); - WebKitDOMNode* html = webkit_dom_node_list_item(list, 0); - g_assert(WEBKIT_DOM_IS_NODE(html)); - - WebKitDOMXPathResult* result = webkit_dom_document_evaluate(document, "//div", html, NULL, 0, NULL, NULL); - g_assert(WEBKIT_DOM_IS_XPATH_RESULT(result)); - - int i = 0; - WebKitDOMNode* node; - while ( (node = webkit_dom_xpath_result_iterate_next(result, NULL)) != NULL) { - g_assert(node); - WebKitDOMElement* element = (WebKitDOMElement*)node; - g_assert_cmpstr(webkit_dom_element_get_tag_name(element), ==, "DIV"); - i++; - } - g_assert_cmpint(i, ==, 2); - - g_object_unref(list); -} - -static void weak_notify(gpointer data, GObject* zombie) -{ - guint* count = (guint*)data; - (*count)++; -} - -static void test_dom_document_garbage_collection(DomDocumentFixture* fixture, gconstpointer data) -{ - guint count = 0; - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); - WebKitDOMHTMLHeadElement* head = webkit_dom_document_get_head(document); - g_assert(head); - g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); - WebKitDOMHTMLElement* body = webkit_dom_document_get_body(document); - g_assert(body); - g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); - WebKitDOMHTMLCollection *collection = webkit_dom_document_get_links(document); - g_assert(collection); - g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); - - webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_LINKS, NULL, NULL, NULL); - - while (g_main_context_pending(NULL)) - g_main_context_iteration(NULL, FALSE); - - g_assert_cmpuint(count, ==, 3); - - g_object_unref(collection); - g_assert_cmpuint(count, ==, 4); - - count = 0; - - document = webkit_web_view_get_dom_document(view); - g_assert(document); - g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); - head = webkit_dom_document_get_head(document); - g_assert(head); - g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); - body = webkit_dom_document_get_body(document); - g_assert(body); - g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); - collection = webkit_dom_document_get_links(document); - g_assert(collection); - g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); - /* Ask twice for the same object */ - WebKitDOMHTMLCollection* collection2 = webkit_dom_document_get_links(document); - g_assert(collection2); - g_object_weak_ref(G_OBJECT(collection2), (GWeakNotify)weak_notify, &count); - - g_object_unref(document); - g_object_unref(head); - g_object_unref(body); - g_object_unref(collection); - g_object_unref(collection2); - - g_assert_cmpuint(count, ==, 5); - - webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_IFRAME, NULL, NULL, NULL); - - while (g_main_context_pending(NULL)) - g_main_context_iteration(NULL, FALSE); - - count = 0; - - document = webkit_web_view_get_dom_document(view); - WebKitDOMElement* div = webkit_dom_document_get_element_by_id(document, "test"); - g_assert(div); - g_object_weak_ref(G_OBJECT(div), (GWeakNotify)weak_notify, &count); - WebKitDOMElement* iframe = webkit_dom_document_get_element_by_id(document, "iframe"); - g_assert(iframe); - - webkit_dom_element_set_attribute(iframe, "src", "data:<html><head></head></html>", NULL); - - while (g_main_context_pending(NULL)) - g_main_context_iteration(NULL, FALSE); - - WebKitDOMDocument* iframeDocument = webkit_dom_html_iframe_element_get_content_document(WEBKIT_DOM_HTML_IFRAME_ELEMENT(iframe)); - g_assert(iframeDocument); - head = webkit_dom_document_get_head(iframeDocument); - g_assert(head); - g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); - - webkit_dom_element_set_attribute(iframe, "src", "about:blank", NULL); - - while (g_main_context_pending(NULL)) - g_main_context_iteration(NULL, FALSE); - - g_assert_cmpuint(count, ==, 1); - - webkit_web_view_load_string(WEBKIT_WEB_VIEW(view), HTML_DOCUMENT_LINKS, NULL, NULL, NULL); - - while (g_main_context_pending(NULL)) - g_main_context_iteration(NULL, FALSE); - - g_assert_cmpuint(count, ==, 2); - - count = 0; - - document = webkit_web_view_get_dom_document(view); - g_assert(document); - g_object_weak_ref(G_OBJECT(document), (GWeakNotify)weak_notify, &count); - /* Ask twice for the Document */ - WebKitDOMDocument* document2 = webkit_web_view_get_dom_document(view); - g_assert(document2); - g_object_weak_ref(G_OBJECT(document2), (GWeakNotify)weak_notify, &count); - head = webkit_dom_document_get_head(document); - g_assert(head); - g_object_weak_ref(G_OBJECT(head), (GWeakNotify)weak_notify, &count); - body = webkit_dom_document_get_body(document); - g_assert(body); - g_object_weak_ref(G_OBJECT(body), (GWeakNotify)weak_notify, &count); - collection = webkit_dom_document_get_links(document); - g_assert(collection); - g_object_weak_ref(G_OBJECT(collection), (GWeakNotify)weak_notify, &count); - - gtk_widget_destroy(fixture->webView); - fixture->webView = NULL; - - g_assert_cmpuint(count, ==, 4); - - g_object_unref(collection); - - g_assert_cmpuint(count, ==, 5); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/domdocument/test_title", - DomDocumentFixture, HTML_DOCUMENT_TITLE, - dom_document_fixture_setup, - test_dom_document_title, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_get_elements_by_tag_name", - DomDocumentFixture, HTML_DOCUMENT_ELEMENTS, - dom_document_fixture_setup, - test_dom_document_get_elements_by_tag_name, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_get_elements_by_class_name", - DomDocumentFixture, HTML_DOCUMENT_ELEMENTS_CLASS, - dom_document_fixture_setup, - test_dom_document_get_elements_by_class_name, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_get_element_by_id", - DomDocumentFixture, HTML_DOCUMENT_ELEMENTS_ID, - dom_document_fixture_setup, - test_dom_document_get_element_by_id, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_get_links", - DomDocumentFixture, HTML_DOCUMENT_LINKS, - dom_document_fixture_setup, - test_dom_document_get_links, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_table_insert_row", - DomDocumentFixture, HTML_DOCUMENT_TABLE, - dom_document_fixture_setup, - test_dom_document_insert_row, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_document_evaluate", - DomDocumentFixture, HTML_DOCUMENT_EVALUATE, - dom_document_fixture_setup, - test_dom_document_evaluate, - dom_document_fixture_teardown); - - g_test_add("/webkit/domdocument/test_garbage_collection", - DomDocumentFixture, HTML_DOCUMENT_LINKS, - dom_document_fixture_setup, - test_dom_document_garbage_collection, - dom_document_fixture_teardown); - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testdomdomwindow.c b/Source/WebKit/gtk/tests/testdomdomwindow.c deleted file mode 100644 index 701df4f17..000000000 --- a/Source/WebKit/gtk/tests/testdomdomwindow.c +++ /dev/null @@ -1,258 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -#define HTML_DOCUMENT "<html><head><title></title></head><style type='text/css'>#test { font-size: 16px; }</style><body><p id='test'>test</p></body></html>" - -typedef struct { - GtkWidget* webView; - GtkWidget* window; - WebKitDOMDOMWindow* domWindow; - GMainLoop* loop; - - gboolean loaded; - gboolean clicked; - gconstpointer data; -} DomDomviewFixture; - -static gboolean finish_loading(DomDomviewFixture* fixture) -{ - if (g_main_loop_is_running(fixture->loop)) - g_main_loop_quit(fixture->loop); - - return FALSE; -} - -static void dom_domview_fixture_setup(DomDomviewFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - fixture->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - fixture->webView = webkit_web_view_new(); - fixture->data = data; - - gtk_container_add(GTK_CONTAINER(fixture->window), GTK_WIDGET(fixture->webView)); -} - -static void dom_domview_fixture_teardown(DomDomviewFixture* fixture, gconstpointer data) -{ - gtk_widget_destroy(fixture->window); - g_main_loop_unref(fixture->loop); -} - -static void dom_dom_window_fixture_setup(DomDomviewFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - fixture->webView = webkit_web_view_new(); - g_object_ref_sink(fixture->webView); - - if (data != NULL) - webkit_web_view_load_string(WEBKIT_WEB_VIEW (fixture->webView), (const char*) data, NULL, NULL, NULL); - - g_idle_add((GSourceFunc)finish_loading, fixture); - g_main_loop_run(fixture->loop); -} - -static void dom_dom_window_fixture_teardown(DomDomviewFixture* fixture, gconstpointer data) -{ - if (fixture->webView) - g_object_unref(fixture->webView); - g_main_loop_unref(fixture->loop); -} - -static gboolean loadedCallback(WebKitDOMDOMWindow* view, WebKitDOMEvent* event, DomDomviewFixture* fixture) -{ - g_assert(fixture->loaded == FALSE); - fixture->loaded = TRUE; - - return FALSE; -} - -static gboolean clickedCallback(WebKitDOMDOMWindow* view, WebKitDOMEvent* event, DomDomviewFixture* fixture) -{ - WebKitDOMEventTarget* target; - gushort phase; - - g_assert(event); - g_assert(WEBKIT_DOM_IS_EVENT(event)); - - // We should catch this in the bubbling up phase, since we are connecting to the toplevel object - phase = webkit_dom_event_get_event_phase(event); - g_assert_cmpint(phase, ==, 3); - - target = webkit_dom_event_get_current_target(event); - g_assert(target == WEBKIT_DOM_EVENT_TARGET(view)); - - g_assert(fixture->clicked == FALSE); - fixture->clicked = TRUE; - - finish_loading(fixture); - - return FALSE; -} - -gboolean map_event_cb(GtkWidget *widget, GdkEvent* event, DomDomviewFixture* fixture) -{ - webkit_web_view_load_string(WEBKIT_WEB_VIEW (fixture->webView), (const char*)fixture->data, NULL, NULL, NULL); - - return FALSE; -} - -static void load_event_callback(WebKitWebView* webView, GParamSpec* spec, DomDomviewFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status == WEBKIT_LOAD_FINISHED) { - webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "click", G_CALLBACK(clickedCallback), false, fixture); - - g_assert(fixture->clicked == FALSE); - gtk_test_widget_click(GTK_WIDGET(fixture->webView), 1, 0); - } - -} - -static void test_dom_domview_signals(DomDomviewFixture* fixture, gconstpointer data) -{ - g_assert(fixture); - WebKitWebView* view = (WebKitWebView*)fixture->webView; - g_assert(view); - WebKitDOMDocument* document = webkit_web_view_get_dom_document(view); - g_assert(document); - WebKitDOMDOMWindow* domWindow = webkit_dom_document_get_default_view(document); - g_assert(domWindow); - - fixture->domWindow = domWindow; - - webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(fixture->domWindow), "load", G_CALLBACK(loadedCallback), false, fixture); - g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_event_callback), fixture); - - gtk_widget_show_all(fixture->window); - gtk_window_present(GTK_WINDOW(fixture->window)); - - g_main_loop_run(fixture->loop); - - g_assert(fixture->loaded); - g_assert(fixture->clicked); -} - -static gboolean -clicked_cb(WebKitDOMEventTarget* target, WebKitDOMEvent* event, DomDomviewFixture* fixture) -{ - g_assert(fixture->clicked == FALSE); - fixture->clicked = TRUE; - finish_loading(fixture); - return FALSE; -} - -static void load_status_callback(WebKitWebView* webView, GParamSpec* spec, DomDomviewFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status == WEBKIT_LOAD_FINISHED) { - WebKitDOMDocument* document; - WebKitDOMDOMWindow* domWindow; - WebKitDOMElement* element; - WebKitDOMEvent* event; - glong clientX, clientY; - - document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); - g_assert(document); - domWindow = webkit_dom_document_get_default_view(document); - g_assert(domWindow); - fixture->domWindow = domWindow; - - element = webkit_dom_document_get_element_by_id(document, "test"); - g_assert(element); - event = webkit_dom_document_create_event(document, "MouseEvent", NULL); - g_assert(event); - g_assert(WEBKIT_DOM_IS_EVENT(event)); - g_assert(WEBKIT_DOM_IS_MOUSE_EVENT(event)); - clientX = webkit_dom_element_get_client_left(element); - clientY = webkit_dom_element_get_client_top(element); - webkit_dom_mouse_event_init_mouse_event(WEBKIT_DOM_MOUSE_EVENT(event), - "click", TRUE, TRUE, - fixture->domWindow, 0, 0, 0, clientX, clientY, - FALSE, FALSE, FALSE, FALSE, - 1, WEBKIT_DOM_EVENT_TARGET(element)); - webkit_dom_event_target_add_event_listener(WEBKIT_DOM_EVENT_TARGET(element), "click", G_CALLBACK(clicked_cb), false, fixture); - g_assert(fixture->clicked == FALSE); - webkit_dom_event_target_dispatch_event(WEBKIT_DOM_EVENT_TARGET(element), event, NULL); - } - -} - -static void test_dom_domview_dispatch_event(DomDomviewFixture* fixture, gconstpointer data) -{ - g_signal_connect(fixture->window, "map-event", G_CALLBACK(map_event_cb), fixture); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_status_callback), fixture); - - gtk_widget_show_all(fixture->window); - gtk_window_present(GTK_WINDOW(fixture->window)); - - g_main_loop_run (fixture->loop); - g_assert(fixture->clicked); -} - -static void test_dom_dom_window_get_computed_style(DomDomviewFixture* fixture, gconstpointer data) -{ - WebKitDOMDocument* document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); - g_assert(document); - WebKitDOMDOMWindow* domWindow = webkit_dom_document_get_default_view(document); - g_assert(domWindow); - - WebKitDOMElement* element = webkit_dom_document_get_element_by_id(document, "test"); - g_assert(element); - g_assert(WEBKIT_DOM_IS_ELEMENT(element)); - WebKitDOMCSSStyleDeclaration* cssStyle = webkit_dom_dom_window_get_computed_style(domWindow, element, NULL); - gchar* fontSize = webkit_dom_css_style_declaration_get_property_value(cssStyle, "font-size"); - g_assert_cmpstr(fontSize, ==, "16px"); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/domdomview/signals", - DomDomviewFixture, HTML_DOCUMENT, - dom_domview_fixture_setup, - test_dom_domview_signals, - dom_domview_fixture_teardown); - - g_test_add("/webkit/domdomview/dispatch_event", - DomDomviewFixture, HTML_DOCUMENT, - dom_domview_fixture_setup, - test_dom_domview_dispatch_event, - dom_domview_fixture_teardown); - - g_test_add("/webkit/domdomwindow/get_computed_style", - DomDomviewFixture, HTML_DOCUMENT, - dom_dom_window_fixture_setup, - test_dom_dom_window_get_computed_style, - dom_dom_window_fixture_teardown); - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testdomnode.c b/Source/WebKit/gtk/tests/testdomnode.c deleted file mode 100644 index 0521d1715..000000000 --- a/Source/WebKit/gtk/tests/testdomnode.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -#define HTML_DOCUMENT_HIERARCHY_NAVIGATION "<html><head><title>This is the title</title></head><body><p>1</p><p>2</p><p>3</p></body></html>" -#define HTML_DOCUMENT_NODE_INSERTION "<html><body></body></html>" - -typedef struct { - GtkWidget* webView; - GMainLoop* loop; -} DomNodeFixture; - -static gboolean finish_loading(DomNodeFixture* fixture) -{ - if (g_main_loop_is_running(fixture->loop)) - g_main_loop_quit(fixture->loop); - - return FALSE; -} - -static void dom_node_fixture_setup(DomNodeFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - fixture->webView = webkit_web_view_new(); - g_object_ref_sink(fixture->webView); - - if (data != NULL) - webkit_web_view_load_string(WEBKIT_WEB_VIEW(fixture->webView), (const char*)data, NULL, NULL, NULL); - - g_idle_add((GSourceFunc)finish_loading, fixture); - g_main_loop_run(fixture->loop); -} - -static void dom_node_fixture_teardown(DomNodeFixture* fixture, gconstpointer data) -{ - g_object_unref(fixture->webView); - g_main_loop_unref(fixture->loop); -} - -static void test_dom_node_hierarchy_navigation(DomNodeFixture* fixture, gconstpointer data) -{ - WebKitDOMDocument* document; - WebKitDOMHTMLHeadElement* head; - WebKitDOMHTMLBodyElement* body; - WebKitDOMNodeList* list; - WebKitDOMNode* ptr; - gulong i, length; - - document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); - g_assert(document); - g_assert(WEBKIT_DOM_IS_DOCUMENT(document)); - head = webkit_dom_document_get_head(document); - g_assert(head); - g_assert(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(head)); - - /* Title, head's child */ - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(head))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(head)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); - ptr = webkit_dom_node_list_item(list, 0); - g_assert(ptr); - g_assert(WEBKIT_DOM_IS_HTML_TITLE_ELEMENT(ptr)); - g_object_unref(list); - - /* Body, Head sibling */ - ptr = webkit_dom_node_get_next_sibling(WEBKIT_DOM_NODE(head)); - g_assert(ptr); - body = WEBKIT_DOM_HTML_BODY_ELEMENT(ptr); - g_assert(WEBKIT_DOM_IS_HTML_BODY_ELEMENT(body)); - - /* There is no third sibling */ - ptr = webkit_dom_node_get_next_sibling(ptr); - g_assert(ptr == NULL); - - /* Body's previous sibling is Head */ - ptr = webkit_dom_node_get_previous_sibling(WEBKIT_DOM_NODE(body)); - g_assert(ptr); - g_assert(WEBKIT_DOM_IS_HTML_HEAD_ELEMENT(ptr)); - - /* Body has 3 children */ - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - length = webkit_dom_node_list_get_length(list); - g_assert_cmpint(length, ==, 3); - - /* The three of them are P tags */ - for (i = 0; i < length; i++) { - ptr = webkit_dom_node_list_item(list, i); - g_assert(ptr); - g_assert(WEBKIT_DOM_IS_HTML_PARAGRAPH_ELEMENT(ptr)); - } - - /* Go backwards */ - for (i = 0; ptr; ptr = webkit_dom_node_get_previous_sibling(ptr), i++) - /* Nothing */; - - g_assert_cmpint(i, ==, 3); - g_object_unref(list); -} - -static void test_dom_node_insertion(DomNodeFixture* fixture, gconstpointer data) -{ - WebKitDOMDocument* document; - WebKitDOMHTMLElement* body; - WebKitDOMElement* p, *div; - WebKitDOMNodeList* list; - WebKitDOMNode* node; - - document = webkit_web_view_get_dom_document(WEBKIT_WEB_VIEW(fixture->webView)); - g_assert(document); - body = webkit_dom_document_get_body(document); - g_assert(body); - g_assert(WEBKIT_DOM_IS_HTML_ELEMENT(body)); - - /* Body shouldn't have any children at this point */ - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body)) == FALSE); - - /* Insert one P element */ - p = webkit_dom_document_create_element(document, "P", NULL); - webkit_dom_node_append_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(p), NULL); - - /* Now it should have one, the same that we inserted */ - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); - node = webkit_dom_node_list_item(list, 0); - g_assert(node); - g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(p), node)); - g_object_unref(list); - - /* Replace the P tag with a DIV tag */ - div = webkit_dom_document_create_element(document, "DIV", NULL); - webkit_dom_node_replace_child(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(div), WEBKIT_DOM_NODE(p), NULL); - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); - node = webkit_dom_node_list_item(list, 0); - g_assert(node); - g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(div), node)); - g_object_unref(list); - - /* Now remove the tag */ - webkit_dom_node_remove_child(WEBKIT_DOM_NODE(body), node, NULL); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 0); - g_object_unref(list); - - /* Test insert_before */ - - /* If refChild is null, insert newChild as last element of parent */ - div = webkit_dom_document_create_element(document, "DIV", NULL); - webkit_dom_node_insert_before(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(div), NULL, NULL); - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 1); - node = webkit_dom_node_list_item(list, 0); - g_assert(node); - g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(div), node)); - g_object_unref(list); - - /* Now insert a 'p' before 'div' */ - p = webkit_dom_document_create_element(document, "P", NULL); - webkit_dom_node_insert_before(WEBKIT_DOM_NODE(body), WEBKIT_DOM_NODE(p), WEBKIT_DOM_NODE(div), NULL); - g_assert(webkit_dom_node_has_child_nodes(WEBKIT_DOM_NODE(body))); - list = webkit_dom_node_get_child_nodes(WEBKIT_DOM_NODE(body)); - g_assert_cmpint(webkit_dom_node_list_get_length(list), ==, 2); - node = webkit_dom_node_list_item(list, 0); - g_assert(node); - g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(p), node)); - node = webkit_dom_node_list_item(list, 1); - g_assert(node); - g_assert(webkit_dom_node_is_same_node(WEBKIT_DOM_NODE(div), node)); - g_object_unref(list); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/domnode/test_hierarchy_navigation", - DomNodeFixture, HTML_DOCUMENT_HIERARCHY_NAVIGATION, - dom_node_fixture_setup, - test_dom_node_hierarchy_navigation, - dom_node_fixture_teardown); - - g_test_add("/webkit/domnode/test_insertion", - DomNodeFixture, HTML_DOCUMENT_NODE_INSERTION, - dom_node_fixture_setup, - test_dom_node_insertion, - dom_node_fixture_teardown); - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testdownload.c b/Source/WebKit/gtk/tests/testdownload.c deleted file mode 100644 index 106c346ce..000000000 --- a/Source/WebKit/gtk/tests/testdownload.c +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Copyright (C) 2009 Christian Dywan <christian@twotoasts.de> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib/gstdio.h> -#include <webkit/webkit.h> - -GMainLoop* loop; -char* temporaryFilename = NULL; -WebKitDownload* theDownload = NULL; - -static void -test_webkit_download_create(void) -{ - WebKitNetworkRequest* request; - WebKitDownload* download; - const gchar* uri = "http://example.com"; - gchar* tmpDir; - - request = webkit_network_request_new(uri); - download = webkit_download_new(request); - g_object_unref(request); - g_assert_cmpstr(webkit_download_get_uri(download), ==, uri); - g_assert(webkit_download_get_network_request(download) == request); - g_assert(g_strrstr(uri, webkit_download_get_suggested_filename(download))); - g_assert(webkit_download_get_status(download) == WEBKIT_DOWNLOAD_STATUS_CREATED); - g_assert(!webkit_download_get_total_size(download)); - g_assert(!webkit_download_get_current_size(download)); - g_assert(!webkit_download_get_progress(download)); - g_assert(!webkit_download_get_elapsed_time(download)); - tmpDir = g_filename_to_uri(g_get_tmp_dir(), NULL, NULL); - webkit_download_set_destination_uri(download, tmpDir); - g_assert_cmpstr(tmpDir, ==, webkit_download_get_destination_uri(download));; - g_free(tmpDir); - g_object_unref(download); -} - -static gboolean -navigation_policy_decision_requested_cb(WebKitWebView* web_view, - WebKitWebFrame* web_frame, - WebKitNetworkRequest* request, - WebKitWebNavigationAction* action, - WebKitWebPolicyDecision* decision, - gpointer data) -{ - webkit_web_policy_decision_download(decision); - return TRUE; -} - -static void -notify_status_cb(GObject* object, GParamSpec* pspec, gpointer data) -{ - WebKitDownload* download = WEBKIT_DOWNLOAD(object); - switch (webkit_download_get_status(download)) { - case WEBKIT_DOWNLOAD_STATUS_FINISHED: - case WEBKIT_DOWNLOAD_STATUS_ERROR: - g_main_loop_quit(loop); - break; - case WEBKIT_DOWNLOAD_STATUS_CANCELLED: - g_assert_not_reached(); - break; - default: - break; - } -} - -static gboolean -set_filename(gchar* filename) -{ - gchar *uri = g_filename_to_uri(filename, NULL, NULL); - - webkit_download_set_destination_uri(theDownload, uri); - g_free(uri); - - webkit_download_start(theDownload); - return FALSE; -} - -static void -handle_download_requested_cb(WebKitDownload* download, - gboolean* beenThere, - gboolean asynch) -{ - theDownload = download; - *beenThere = TRUE; - - if (temporaryFilename) { - if (asynch) { - g_idle_add((GSourceFunc)set_filename, temporaryFilename); - } else { - gchar *uri = g_filename_to_uri(temporaryFilename, NULL, NULL); - if (uri) - webkit_download_set_destination_uri(download, uri); - g_free(uri); - } - } - - g_signal_connect(download, "notify::status", - G_CALLBACK(notify_status_cb), NULL); -} - -static gboolean -download_requested_cb(WebKitWebView* web_view, - WebKitDownload* download, - gboolean* beenThere) -{ - handle_download_requested_cb(download, beenThere, FALSE); - return TRUE; -} - -static gboolean -download_requested_asynch_cb(WebKitWebView* web_view, - WebKitDownload* download, - gboolean* beenThere) -{ - handle_download_requested_cb(download, beenThere, TRUE); - return TRUE; -} - -static void -test_webkit_download_perform(gboolean asynch) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - GCallback downloadRequestCallback = NULL; - - g_object_ref_sink(G_OBJECT(webView)); - - g_signal_connect(webView, "navigation-policy-decision-requested", - G_CALLBACK(navigation_policy_decision_requested_cb), - NULL); - - if (asynch) - downloadRequestCallback = G_CALLBACK(download_requested_asynch_cb); - else - downloadRequestCallback = G_CALLBACK(download_requested_cb); - - gboolean beenThere = FALSE; - g_signal_connect(webView, "download-requested", - downloadRequestCallback, &beenThere); - - /* Preparation; FIXME: we should move this code to a test - * utilities file, because we have a very similar one in - * testwebframe.c */ - GError *error = NULL; - gchar* filename; - int fd = g_file_open_tmp("webkit-testwebdownload-XXXXXX", &filename, &error); - close(fd); - - if (error) - g_critical("Failed to open a temporary file for writing: %s.", error->message); - - if (g_unlink(filename) == -1) - g_critical("Failed to delete the temporary file: %s.", g_strerror(errno)); - - theDownload = NULL; - temporaryFilename = filename; - - loop = g_main_loop_new(NULL, TRUE); - webkit_web_view_load_uri(webView, "http://gnome.org/"); - g_main_loop_run(loop); - - g_assert_cmpint(beenThere, ==, TRUE); - - g_assert_cmpint(g_file_test(temporaryFilename, G_FILE_TEST_IS_REGULAR), ==, TRUE); - - g_unlink(temporaryFilename); - g_free(temporaryFilename); - temporaryFilename = NULL; - - g_main_loop_unref(loop); - g_object_unref(webView); -} - -static void -test_webkit_download_synch(void) -{ - test_webkit_download_perform(FALSE); -} - -static void -test_webkit_download_asynch(void) -{ - test_webkit_download_perform(TRUE); -} - -static gboolean mime_type_policy_decision_requested_cb(WebKitWebView* view, WebKitWebFrame* frame, - WebKitNetworkRequest* request, const char* mime_type, - WebKitWebPolicyDecision* decision, gpointer data) -{ - webkit_web_policy_decision_download(decision); - return TRUE; -} - -static void idle_quit_loop_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED || - webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FAILED) - g_main_loop_quit(loop); -} - -static void -test_webkit_download_data(void) -{ - gboolean beenThere = FALSE; - WebKitWebView* webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - - g_signal_connect(webView, "download-requested", - G_CALLBACK(download_requested_cb), - &beenThere); - - g_signal_connect(webView, "notify::load-status", - G_CALLBACK(idle_quit_loop_cb), - NULL); - - g_signal_connect(webView, "mime-type-policy-decision-requested", - G_CALLBACK(mime_type_policy_decision_requested_cb), - NULL); - - loop = g_main_loop_new(NULL, TRUE); - - /* We're testing for a crash, so just not crashing is a pass */ - webkit_web_view_load_uri(webView, "data:application/octect-stream,"); - g_main_loop_run(loop); - - g_assert_cmpint(beenThere, ==, TRUE); - - g_main_loop_unref(loop); - g_object_unref(webView); -} - -static void notifyDownloadStatusCallback(GObject *object, GParamSpec *pspec, gpointer data) -{ - WebKitDownload *download = WEBKIT_DOWNLOAD(object); - WebKitNetworkResponse *response = webkit_download_get_network_response(download); - SoupMessage *message = webkit_network_response_get_message(response); - - switch (webkit_download_get_status(download)) { - case WEBKIT_DOWNLOAD_STATUS_ERROR: - g_assert_cmpint(message->status_code, ==, 404); - g_main_loop_quit(loop); - break; - case WEBKIT_DOWNLOAD_STATUS_FINISHED: - case WEBKIT_DOWNLOAD_STATUS_CANCELLED: - g_assert_not_reached(); - break; - default: - break; - } -} - -static void serverCallback(SoupServer *server, SoupMessage *message, const char *path, GHashTable *query, SoupClientContext *context, gpointer userData) -{ - if (message->method != SOUP_METHOD_GET) { - soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status(message, SOUP_STATUS_NOT_FOUND); - soup_message_body_complete(message->response_body); -} - -static void test_webkit_download_not_found(void) -{ - SoupServer *server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - soup_server_add_handler(server, NULL, serverCallback, NULL, NULL); - SoupURI *baseURI = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(baseURI, soup_server_get_port(server)); - - SoupURI *uri = soup_uri_new_with_base(baseURI, "/foo"); - char *uriString = soup_uri_to_string(uri, FALSE); - soup_uri_free(uri); - - loop = g_main_loop_new(NULL, TRUE); - WebKitNetworkRequest *request = webkit_network_request_new(uriString); - g_free (uriString); - WebKitDownload *download = webkit_download_new(request); - g_object_unref(request); - - webkit_download_set_destination_uri(download, "file:///tmp/foo"); - g_signal_connect(download, "notify::status", G_CALLBACK(notifyDownloadStatusCallback), NULL); - - webkit_download_start(download); - g_main_loop_run(loop); - - g_object_unref(download); - g_main_loop_unref(loop); - soup_uri_free(baseURI); - g_object_unref(server); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/download/create", test_webkit_download_create); - g_test_add_func("/webkit/download/synch", test_webkit_download_synch); - g_test_add_func("/webkit/download/asynch", test_webkit_download_asynch); - g_test_add_func("/webkit/download/data", test_webkit_download_data); - g_test_add_func("/webkit/download/not-found", test_webkit_download_not_found); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testfavicondatabase.c b/Source/WebKit/gtk/tests/testfavicondatabase.c deleted file mode 100644 index 971a7e734..000000000 --- a/Source/WebKit/gtk/tests/testfavicondatabase.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <string.h> -#include <webkit/webkit.h> - -const int gIconSize = 16; - -GMainLoop *loop; -char *baseURI; - -static void -serverCallback(SoupServer *server, SoupMessage *message, const char *path, GHashTable *query, SoupClientContext *context, void *data) -{ - if (message->method != SOUP_METHOD_GET) { - soup_message_set_status(message, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status(message, SOUP_STATUS_OK); - - char *contents; - gsize length; - if (g_str_equal(path, "/favicon.ico")) { - GError *error = NULL; - - g_file_get_contents("blank.ico", &contents, &length, &error); - g_assert(!error); - } else { - contents = g_strdup("<html><body>test</body></html>"); - length = strlen(contents); - } - - soup_message_body_append(message->response_body, SOUP_MEMORY_TAKE, contents, length); - soup_message_body_complete(message->response_body); -} - -static void deleteDatabaseFileIfExists(const char *databasePath) -{ - if (!g_file_test(databasePath, G_FILE_TEST_IS_DIR)) - return; - - char *databaseFilename = g_build_filename(databasePath, "WebpageIcons.db", NULL); - if (g_unlink(databaseFilename) == -1) { - g_free(databaseFilename); - return; - } - - g_free(databaseFilename); - g_rmdir(databasePath); -} - -static void testWebKitFaviconDatabaseSetPath() -{ - char *databasePath = g_build_filename(g_get_tmp_dir(), "webkit-testfavicondatabase", NULL); - deleteDatabaseFileIfExists(databasePath); - - WebKitFaviconDatabase *database = webkit_get_favicon_database(); - webkit_favicon_database_set_path(database, databasePath); - - g_assert_cmpstr(databasePath, ==, webkit_favicon_database_get_path(database)); - - g_free(databasePath); -} - -// See the comment in main() function that goes with this same guard. -#ifdef NDEBUG - -static void faviconDatabaseGetValidFaviconCallback(GObject *sourceObject, GAsyncResult *result, void *userData) -{ - gboolean *beenHere = (gboolean*)userData; - GError *error = NULL; - GdkPixbuf *icon = webkit_favicon_database_get_favicon_pixbuf_finish(WEBKIT_FAVICON_DATABASE(sourceObject), result, &error); - g_assert(icon); - g_object_unref(icon); - - *beenHere = TRUE; - - g_main_loop_quit(loop); -} - -static void faviconDatabaseGetInvalidFaviconCallback(GObject *sourceObject, GAsyncResult *result, void *userData) -{ - gboolean *beenHere = (gboolean*)userData; - GError *error = NULL; - GdkPixbuf *icon = webkit_favicon_database_get_favicon_pixbuf_finish(WEBKIT_FAVICON_DATABASE(sourceObject), result, &error); - g_assert(!icon); - - *beenHere = TRUE; - - g_main_loop_quit(loop); -} - -static void faviconDatabaseGetFaviconCancelledCallback(GObject *sourceObject, GAsyncResult *result, void *userData) -{ - gboolean *beenHere = (gboolean*)userData; - GError *error = NULL; - GdkPixbuf *icon = webkit_favicon_database_get_favicon_pixbuf_finish(WEBKIT_FAVICON_DATABASE(sourceObject), result, &error); - g_assert(!icon); - g_assert(error && g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)); - - *beenHere = TRUE; - - g_main_loop_quit(loop); -} - -static inline void quitMainLoopIfLoadCompleted(gboolean *iconOrPageLoaded) -{ - if (*iconOrPageLoaded) - g_main_loop_quit(loop); - else - *iconOrPageLoaded = TRUE; -} - -static void idleQuitLoopCallback(WebKitWebView *webView, GParamSpec *paramSpec, gboolean *iconOrPageLoaded) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - - if (status == WEBKIT_LOAD_FINISHED || status == WEBKIT_LOAD_FAILED) - quitMainLoopIfLoadCompleted(iconOrPageLoaded); -} - -static void webkitWebViewIconLoaded(WebKitFaviconDatabase *database, const char *frameURI, gboolean *iconOrPageLoaded) -{ - quitMainLoopIfLoadCompleted(iconOrPageLoaded); -} - -static void loadURI(const char *uri) -{ - WebKitWebView *view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - gboolean iconOrPageLoaded = FALSE; - - webkit_web_view_load_uri(view, uri); - - g_signal_connect(view, "notify::load-status", G_CALLBACK(idleQuitLoopCallback), &iconOrPageLoaded); - g_signal_connect(view, "icon-loaded", G_CALLBACK(webkitWebViewIconLoaded), &iconOrPageLoaded); - - g_main_loop_run(loop); - - g_signal_handlers_disconnect_matched(view, G_SIGNAL_MATCH_DATA, 0, 0, 0, 0, &iconOrPageLoaded); -} - -static gboolean faviconDatabaseGetValidFaviconIdle(void *userData) -{ - webkit_favicon_database_get_favicon_pixbuf(webkit_get_favicon_database(), baseURI, - gIconSize, gIconSize, NULL, - faviconDatabaseGetValidFaviconCallback, userData); - return FALSE; -} - -static gboolean faviconDatabaseGetInvalidFaviconIdle(void *userData) -{ - webkit_favicon_database_get_favicon_pixbuf(webkit_get_favicon_database(), "http://www.webkitgtk.org/", - gIconSize, gIconSize, NULL, - faviconDatabaseGetInvalidFaviconCallback, userData); - return FALSE; -} - -static gboolean faviconDatabaseGetFaviconCancelledIdle(void *userData) -{ - GCancellable *cancellable = g_cancellable_new(); - webkit_favicon_database_get_favicon_pixbuf(webkit_get_favicon_database(), baseURI, - gIconSize, gIconSize, cancellable, - faviconDatabaseGetFaviconCancelledCallback, userData); - g_cancellable_cancel(cancellable); - g_object_unref(cancellable); - return FALSE; -} - -static void testWebKitFaviconDatabaseGetFavicon() -{ - gboolean beenToIconCallback; - - loop = g_main_loop_new(NULL, TRUE); - - /* Load uri to make sure favicon is added to database. */ - loadURI(baseURI); - - beenToIconCallback = FALSE; - g_idle_add((GSourceFunc)faviconDatabaseGetValidFaviconIdle, &beenToIconCallback); - g_main_loop_run(loop); - g_assert(beenToIconCallback); - - beenToIconCallback = FALSE; - g_idle_add((GSourceFunc)faviconDatabaseGetInvalidFaviconIdle, &beenToIconCallback); - g_main_loop_run(loop); - g_assert(beenToIconCallback); - - beenToIconCallback = FALSE; - g_idle_add((GSourceFunc)faviconDatabaseGetFaviconCancelledIdle, &beenToIconCallback); - g_main_loop_run(loop); - g_assert(beenToIconCallback); -} - -static void testWebKitFaviconDatabaseGetFaviconURI() -{ - char *iconURI = webkit_favicon_database_get_favicon_uri(webkit_get_favicon_database(), baseURI); - char *expectedURI = g_strdup_printf("%sfavicon.ico", baseURI); - g_assert_cmpstr(iconURI, ==, expectedURI); - g_free(expectedURI); - g_free(iconURI); -} - -#endif - -static void testWebKitFaviconDatabaseRemoveAll(void) -{ - WebKitFaviconDatabase *database = webkit_get_favicon_database(); - webkit_favicon_database_clear(database); - char *iconURI = webkit_favicon_database_get_favicon_uri(database, baseURI); - g_assert(!iconURI); - g_free(iconURI); -} - -static void testWebKitFaviconDatabaseCloseDatabase(void) -{ - WebKitFaviconDatabase *database = webkit_get_favicon_database(); - char *databasePath = g_strdup(webkit_favicon_database_get_path(database)); - webkit_favicon_database_set_path(database, 0); - deleteDatabaseFileIfExists(databasePath); - g_free(databasePath); -} - -int main(int argc, char **argv) -{ - gtk_test_init(&argc, &argv, NULL); - - /* This hopefully makes the test independent of the path it's called from. */ - testutils_relative_chdir("Source/WebKit/gtk/tests/resources/test.html", argv[0]); - - SoupServer *server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - - soup_server_add_handler(server, NULL, serverCallback, NULL, NULL); - - SoupURI *soupURI = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(soupURI, soup_server_get_port(server)); - - baseURI = soup_uri_to_string(soupURI, FALSE); - soup_uri_free(soupURI); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/favicondatabase/set-path", testWebKitFaviconDatabaseSetPath); - - // These two tests will trigger an ASSERTION on debug builds due - // to http://webkit.org/b/67582. Remove the guards once the bug is fixed. -#ifdef NDEBUG - g_test_add_func("/webkit/favicondatabase/get-favicon", testWebKitFaviconDatabaseGetFavicon); - g_test_add_func("/webkit/favicondatabase/get-favicon-uri", testWebKitFaviconDatabaseGetFaviconURI); -#endif - - g_test_add_func("/webkit/favicondatabase/remove-all", testWebKitFaviconDatabaseRemoveAll); - g_test_add_func("/webkit/favicondatabase/close-db", testWebKitFaviconDatabaseCloseDatabase); - - return g_test_run(); -} diff --git a/Source/WebKit/gtk/tests/testglobals.c b/Source/WebKit/gtk/tests/testglobals.c deleted file mode 100644 index d7f316ccd..000000000 --- a/Source/WebKit/gtk/tests/testglobals.c +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (C) 2010 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <gtk/gtk.h> -#include <libsoup/soup.h> -#include <webkit/webkit.h> - -// Make sure the session is initialized properly when webkit_get_default_session() is called. -static void test_globals_default_session() -{ - g_test_bug("36754"); - - SoupSession* session = webkit_get_default_session(); - soup_session_remove_feature_by_type(session, WEBKIT_TYPE_SOUP_AUTH_DIALOG); - - // This makes sure our initialization ran. - g_assert(soup_session_get_feature(session, SOUP_TYPE_CONTENT_DECODER) != NULL); - - // Creating a WebView should make sure the session is - // initialized, and not mess with our changes. - WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(web_view); - g_object_unref(web_view); - - // These makes sure our modification was kept. - g_assert(soup_session_get_feature(session, SOUP_TYPE_CONTENT_DECODER) != NULL); - g_assert(soup_session_get_feature(session, WEBKIT_TYPE_SOUP_AUTH_DIALOG) == NULL); -} - -static void test_globals_security_policy() -{ - // Check default policy for well known schemes. - WebKitSecurityPolicy policy = webkit_get_security_policy_for_uri_scheme("http"); - guint mask = WEBKIT_SECURITY_POLICY_CORS_ENABLED; - g_assert_cmpuint(policy & mask, ==, mask); - - policy = webkit_get_security_policy_for_uri_scheme("https"); - mask = WEBKIT_SECURITY_POLICY_SECURE | WEBKIT_SECURITY_POLICY_CORS_ENABLED; - g_assert_cmpuint(policy & mask, ==, mask); - - policy = webkit_get_security_policy_for_uri_scheme("file"); - mask = WEBKIT_SECURITY_POLICY_LOCAL; - g_assert_cmpuint(policy & mask, ==, mask); - - policy = webkit_get_security_policy_for_uri_scheme("data"); - mask = WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME | WEBKIT_SECURITY_POLICY_SECURE; - g_assert_cmpuint(policy & mask, ==, mask); - - policy = webkit_get_security_policy_for_uri_scheme("about"); - mask = WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME | WEBKIT_SECURITY_POLICY_SECURE | WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; - g_assert_cmpuint(policy & mask, ==, mask); - - // Custom scheme. - policy = webkit_get_security_policy_for_uri_scheme("foo"); - g_assert(!policy); - - policy |= WEBKIT_SECURITY_POLICY_LOCAL; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); - - policy |= WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); - - policy |= WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); - - policy |= WEBKIT_SECURITY_POLICY_SECURE; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); - - policy |= WEBKIT_SECURITY_POLICY_CORS_ENABLED; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); - - policy |= WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; - webkit_set_security_policy_for_uri_scheme("foo", policy); - g_assert_cmpuint(webkit_get_security_policy_for_uri_scheme("foo"), ==, policy); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/globals/default_session", - test_globals_default_session); - g_test_add_func("/webkit/globals/security-policy", - test_globals_security_policy); - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testhittestresult.c b/Source/WebKit/gtk/tests/testhittestresult.c deleted file mode 100644 index adbf98a8e..000000000 --- a/Source/WebKit/gtk/tests/testhittestresult.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib/gstdio.h> -#include <webkit/webkit.h> - -typedef struct { - char* data; - guint flag; -} TestInfo; - -static GMainLoop* loop; - -typedef struct { - WebKitWebView* webView; - TestInfo* info; -} HitTestResultFixture; - -TestInfo* -test_info_new(const char* data, guint flag) -{ - TestInfo* info; - - info = g_slice_new(TestInfo); - info->data = g_strdup(data); - info->flag = flag; - - return info; -} - -void -test_info_destroy(TestInfo* info) -{ - g_free(info->data); - g_slice_free(TestInfo, info); -} - -static void hit_test_result_fixture_setup(HitTestResultFixture* fixture, gconstpointer data) -{ - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(fixture->webView); - loop = g_main_loop_new(NULL, TRUE); - fixture->info = (TestInfo*)data; -} - -static void hit_test_result_fixture_teardown(HitTestResultFixture* fixture, gconstpointer data) -{ - g_object_unref(fixture->webView); - g_main_loop_unref(loop); - test_info_destroy(fixture->info); -} - -static void -load_status_cb(WebKitWebView* webView, - GParamSpec* spec, - gpointer data) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - TestInfo* info = (TestInfo*)data; - - if (status == WEBKIT_LOAD_FINISHED) { - WebKitHitTestResult* result; - guint context; - GdkEvent* event = gdk_event_new(GDK_BUTTON_PRESS); - WebKitDOMNode* node; - gint x, y; - - /* Close enough to 0,0 */ - event->button.x = 5; - event->button.y = 5; - - result = webkit_web_view_get_hit_test_result(webView, (GdkEventButton*) event); - gdk_event_free(event); - g_assert(result); - - g_object_get(result, "context", &context, NULL); - g_assert(context & info->flag); - - g_object_get(result, "inner-node", &node, NULL); - g_assert(node); - g_assert(WEBKIT_DOM_IS_NODE(node)); - - g_object_get(result, "x", &x, "y", &y, NULL); - g_assert_cmpint(x, ==, 5); - g_assert_cmpint(y, ==, 5); - - /* We can only test these node types at the moment. In the - * input case there seems to be an extra layer with a DIV on - * top of the input, which gets assigned to the inner-node. - * tag */ - if (info->flag == WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT) - g_assert(WEBKIT_DOM_IS_HTML_HTML_ELEMENT(node)); - else if (info->flag == WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE) - g_assert(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(node)); - else if (info->flag == WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK) { - /* The hit test will give us the inner text node, we want - * the A tag */ - WebKitDOMNode* parent = webkit_dom_node_get_parent_node(node); - g_assert(WEBKIT_DOM_IS_HTML_ANCHOR_ELEMENT(parent)); - } - - g_object_unref(result); - g_main_loop_quit(loop); - } -} - -static void -test_webkit_hit_test_result(HitTestResultFixture* fixture, gconstpointer data) -{ - TestInfo* info = (TestInfo*)data; - GtkAllocation allocation = { 0, 0, 50, 50 }; - - webkit_web_view_load_string(fixture->webView, - info->data, - "text/html", - "utf-8", - "file://"); - gtk_widget_size_allocate(GTK_WIDGET(fixture->webView), &allocation); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_status_cb), info); - g_main_loop_run(loop); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - g_test_add("/webkit/hittestresult/document", HitTestResultFixture, - test_info_new("<html><body><h1>WebKitGTK+!</h1></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT), - hit_test_result_fixture_setup, test_webkit_hit_test_result, hit_test_result_fixture_teardown); - /* We hardcode all elements to be at 0,0 so that we know where to - * generate the button events */ - g_test_add("/webkit/hittestresult/image", HitTestResultFixture, - test_info_new("<html><body><img style='position:absolute; left:0; top:0'src='0xdeadbeef' width=50 height=50></img></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE), - hit_test_result_fixture_setup, test_webkit_hit_test_result, hit_test_result_fixture_teardown); - g_test_add("/webkit/hittestresult/editable", HitTestResultFixture, - test_info_new("<html><body><input style='position:absolute; left:0; top:0' size='35'></input>></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE), - hit_test_result_fixture_setup, test_webkit_hit_test_result, hit_test_result_fixture_teardown); - g_test_add("/webkit/hittestresult/link", HitTestResultFixture, - test_info_new("<html><body><a style='position:absolute; left:0; top:0' href='http://www.example.com'>HELLO WORLD</a></body></html>", - WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK), - hit_test_result_fixture_setup, test_webkit_hit_test_result, hit_test_result_fixture_teardown); - - return g_test_run (); -} - diff --git a/Source/WebKit/gtk/tests/testhttpbackend.c b/Source/WebKit/gtk/tests/testhttpbackend.c deleted file mode 100644 index d50be96c2..000000000 --- a/Source/WebKit/gtk/tests/testhttpbackend.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (C) 2009 Gustavo Noronha Silva - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -// Not yet public API -SoupMessage* webkit_network_request_get_message(WebKitNetworkRequest* request); - -static gboolean navigation_policy_decision_requested_cb(WebKitWebView* web_view, - WebKitWebFrame* web_frame, - WebKitNetworkRequest* request, - WebKitWebNavigationAction* action, - WebKitWebPolicyDecision* decision, - gpointer data) -{ - SoupMessage* message = webkit_network_request_get_message(request); - - /* 1 -> webkit_network_request_with_core_request - * - * The SoupMessage is created exclusively for the emission of this - * signal. - */ - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); - - return FALSE; -} - -static void test_soup_message_lifetime() -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - - g_object_ref_sink(web_view); - - g_signal_connect(web_view, "navigation-policy-decision-requested", - G_CALLBACK(navigation_policy_decision_requested_cb), - NULL); - - /* load_uri will trigger the navigation-policy-decision-requested - * signal emission; - */ - webkit_web_view_load_uri(web_view, "http://127.0.0.1/"); - - g_object_unref(web_view); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/soupmessage/lifetime", test_soup_message_lifetime); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testkeyevents.c b/Source/WebKit/gtk/tests/testkeyevents.c deleted file mode 100644 index ad8e398cb..000000000 --- a/Source/WebKit/gtk/tests/testkeyevents.c +++ /dev/null @@ -1,390 +0,0 @@ -/* - * Copyright (C) 2009, 2010 Martin Robinson <mrobinson@webkit.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <string.h> -#include <glib/gstdio.h> -#include <webkit/webkit.h> -#include <JavaScriptCore/JSStringRef.h> -#include <JavaScriptCore/JSContextRef.h> - -typedef struct { - char* page; - char* text; - gboolean shouldBeHandled; -} TestInfo; - -typedef struct { - GtkWidget* window; - WebKitWebView* webView; - GMainLoop* loop; - TestInfo* info; -} KeyEventFixture; - -TestInfo* -test_info_new(const char* page, gboolean shouldBeHandled) -{ - TestInfo* info; - - info = g_slice_new(TestInfo); - info->page = g_strdup(page); - info->shouldBeHandled = shouldBeHandled; - info->text = 0; - - return info; -} - -void -test_info_destroy(TestInfo* info) -{ - g_free(info->page); - g_free(info->text); - g_slice_free(TestInfo, info); -} - -static void key_event_fixture_setup(KeyEventFixture* fixture, gconstpointer data) -{ - fixture->loop = g_main_loop_new(NULL, TRUE); - - fixture->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - - gtk_container_add(GTK_CONTAINER(fixture->window), GTK_WIDGET(fixture->webView)); -} - -static void key_event_fixture_teardown(KeyEventFixture* fixture, gconstpointer data) -{ - gtk_widget_destroy(fixture->window); - g_main_loop_unref(fixture->loop); - test_info_destroy(fixture->info); -} - -static gboolean key_press_event_cb(WebKitWebView* webView, GdkEvent* event, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - gboolean handled = GTK_WIDGET_GET_CLASS(fixture->webView)->key_press_event(GTK_WIDGET(fixture->webView), &event->key); - g_assert_cmpint(handled, ==, fixture->info->shouldBeHandled); - - return FALSE; -} - -static gboolean key_release_event_cb(WebKitWebView* webView, GdkEvent* event, gpointer data) -{ - // WebCore never seems to mark keyup events as handled. - KeyEventFixture* fixture = (KeyEventFixture*)data; - gboolean handled = GTK_WIDGET_GET_CLASS(fixture->webView)->key_press_event(GTK_WIDGET(fixture->webView), &event->key); - g_assert(!handled); - - g_main_loop_quit(fixture->loop); - - return FALSE; -} - -static void test_keypress_events_load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status == WEBKIT_LOAD_FINISHED) { - g_signal_connect(fixture->webView, "key-press-event", - G_CALLBACK(key_press_event_cb), fixture); - g_signal_connect(fixture->webView, "key-release-event", - G_CALLBACK(key_release_event_cb), fixture); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('a'), 0)) - g_assert_not_reached(); - } - -} - -gboolean map_event_cb(GtkWidget *widget, GdkEvent* event, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - webkit_web_view_load_string(fixture->webView, fixture->info->page, - "text/html", "utf-8", "file://"); - return FALSE; -} - -static void setup_keyevent_test(KeyEventFixture* fixture, gconstpointer data, GCallback load_event_callback) -{ - fixture->info = (TestInfo*)data; - g_signal_connect(fixture->window, "map-event", - G_CALLBACK(map_event_cb), fixture); - - gtk_widget_grab_focus(GTK_WIDGET(fixture->webView)); - gtk_widget_show(fixture->window); - gtk_widget_show(GTK_WIDGET(fixture->webView)); - gtk_window_present(GTK_WINDOW(fixture->window)); - - g_signal_connect(fixture->webView, "notify::load-status", - load_event_callback, fixture); - - g_main_loop_run(fixture->loop); -} - -static void test_keypress_events(KeyEventFixture* fixture, gconstpointer data) -{ - setup_keyevent_test(fixture, data, G_CALLBACK(test_keypress_events_load_status_cb)); -} - -static gboolean element_text_equal_to(JSContextRef context, const gchar* text) -{ - JSStringRef scriptString = JSStringCreateWithUTF8CString( - "window.document.getElementById(\"in\").value;"); - JSValueRef value = JSEvaluateScript(context, scriptString, 0, 0, 0, 0); - JSStringRelease(scriptString); - - // If the value isn't a string, the element is probably a div - // so grab the innerText instead. - if (!JSValueIsString(context, value)) { - JSStringRef scriptString = JSStringCreateWithUTF8CString( - "window.document.getElementById(\"in\").innerText;"); - value = JSEvaluateScript(context, scriptString, 0, 0, 0, 0); - JSStringRelease(scriptString); - } - - g_assert(JSValueIsString(context, value)); - JSStringRef inputString = JSValueToStringCopy(context, value, 0); - g_assert(inputString); - - gint size = JSStringGetMaximumUTF8CStringSize(inputString); - gchar* cString = g_malloc(size); - JSStringGetUTF8CString(inputString, cString, size); - JSStringRelease(inputString); - - gboolean result = g_utf8_collate(cString, text) == 0; - g_free(cString); - return result; -} - -static void test_ime_load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status != WEBKIT_LOAD_FINISHED) - return; - - JSGlobalContextRef context = webkit_web_frame_get_global_context( - webkit_web_view_get_main_frame(webView)); - g_assert(context); - - GtkIMContext* imContext = 0; - g_object_get(webView, "im-context", &imContext, NULL); - g_assert(imContext); - - // Test that commits that happen outside of key events - // change the text field immediately. This closely replicates - // the behavior of SCIM. - g_assert(element_text_equal_to(context, "")); - g_signal_emit_by_name(imContext, "commit", "a"); - g_assert(element_text_equal_to(context, "a")); - g_signal_emit_by_name(imContext, "commit", "b"); - g_assert(element_text_equal_to(context, "ab")); - g_signal_emit_by_name(imContext, "commit", "c"); - g_assert(element_text_equal_to(context, "abc")); - - g_object_unref(imContext); - g_main_loop_quit(fixture->loop); -} - -static void test_ime(KeyEventFixture* fixture, gconstpointer data) -{ - setup_keyevent_test(fixture, data, G_CALLBACK(test_ime_load_status_cb)); -} - -static gboolean verify_contents(gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - JSGlobalContextRef context = webkit_web_frame_get_global_context( - webkit_web_view_get_main_frame(fixture->webView)); - g_assert(context); - - g_assert(element_text_equal_to(context, fixture->info->text)); - g_main_loop_quit(fixture->loop); - return FALSE; -} - -static void test_blocking_load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status != WEBKIT_LOAD_FINISHED) - return; - - // The first keypress event should not modify the field. - fixture->info->text = g_strdup("bc"); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('a'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('b'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('c'), 0)) - g_assert_not_reached(); - - g_idle_add(verify_contents, fixture); -} - -static void test_blocking(KeyEventFixture* fixture, gconstpointer data) -{ - setup_keyevent_test(fixture, data, G_CALLBACK(test_blocking_load_status_cb)); -} - -#if defined(GDK_WINDOWING_X11) -static void test_xim_load_status_cb(WebKitWebView* webView, GParamSpec* spec, gpointer data) -{ - KeyEventFixture* fixture = (KeyEventFixture*)data; - WebKitLoadStatus status = webkit_web_view_get_load_status(webView); - if (status != WEBKIT_LOAD_FINISHED) - return; - - GtkIMContext* imContext = 0; - g_object_get(webView, "im-context", &imContext, NULL); - g_assert(imContext); - - gchar* originalId = g_strdup(gtk_im_multicontext_get_context_id(GTK_IM_MULTICONTEXT(imContext))); - gtk_im_multicontext_set_context_id(GTK_IM_MULTICONTEXT(imContext), "xim"); - - // Test that commits that happen outside of key events - // change the text field immediately. This closely replicates - // the behavior of SCIM. - fixture->info->text = g_strdup("debian"); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('d'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('e'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('b'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('i'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('a'), 0)) - g_assert_not_reached(); - if (!gtk_test_widget_send_key(GTK_WIDGET(fixture->webView), - gdk_unicode_to_keyval('n'), 0)) - g_assert_not_reached(); - - gtk_im_multicontext_set_context_id(GTK_IM_MULTICONTEXT(imContext), originalId); - g_free(originalId); - g_object_unref(imContext); - - g_idle_add(verify_contents, fixture); -} - -static void test_xim(KeyEventFixture* fixture, gconstpointer data) -{ - setup_keyevent_test(fixture, data, G_CALLBACK(test_xim_load_status_cb)); -} -#endif - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - - - // We'll test input on a slew of different node types. Key events to - // text inputs and editable divs should be marked as handled. Key events - // to buttons and links should not. - const char* textinput_html = "<html><body><input id=\"in\" type=\"text\">" - "<script>document.getElementById('in').focus();</script></body></html>"; - const char* button_html = "<html><body><input id=\"in\" type=\"button\">" - "<script>document.getElementById('in').focus();</script></body></html>"; - const char* link_html = "<html><body><a href=\"http://www.gnome.org\" id=\"in\">" - "LINKY MCLINKERSON</a><script>document.getElementById('in').focus();</script>" - "</body></html>"; - const char* div_html = "<html><body><div id=\"in\" contenteditable=\"true\">" - "<script>document.getElementById('in').focus();</script></body></html>"; - - // These are similar to the blocks above, but they should block the first - // keypress modifying the editable node. - const char* textinput_html_blocking = "<html><body>" - "<input id=\"in\" type=\"text\" " - "onkeypress=\"if (first) {event.preventDefault();first=false;}\">" - "<script>first = true;\ndocument.getElementById('in').focus();</script>\n" - "</script></body></html>"; - const char* div_html_blocking = "<html><body>" - "<div id=\"in\" contenteditable=\"true\" " - "onkeypress=\"if (first) {event.preventDefault();first=false;}\">" - "<script>first = true; document.getElementById('in').focus();</script>\n" - "</script></body></html>"; - - g_test_add("/webkit/keyevents/event-textinput", KeyEventFixture, - test_info_new(textinput_html, TRUE), - key_event_fixture_setup, - test_keypress_events, - key_event_fixture_teardown); - g_test_add("/webkit/keyevents/event-buttons", KeyEventFixture, - test_info_new(button_html, FALSE), - key_event_fixture_setup, - test_keypress_events, - key_event_fixture_teardown); - g_test_add("/webkit/keyevents/event-link", KeyEventFixture, - test_info_new(link_html, FALSE), - key_event_fixture_setup, - test_keypress_events, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/event-div", KeyEventFixture, - test_info_new(div_html, TRUE), - key_event_fixture_setup, - test_keypress_events, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/ime-textinput", KeyEventFixture, - test_info_new(textinput_html, TRUE), - key_event_fixture_setup, - test_ime, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/ime-div", KeyEventFixture, - test_info_new(div_html, TRUE), - key_event_fixture_setup, - test_ime, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/block-textinput", KeyEventFixture, - test_info_new(textinput_html_blocking, TRUE), - key_event_fixture_setup, - test_blocking, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/block-div", KeyEventFixture, - test_info_new(div_html_blocking, TRUE), - key_event_fixture_setup, - test_blocking, - key_event_fixture_teardown); -#if defined(GDK_WINDOWING_X11) - g_test_add("/webkit/keyevent/xim-textinput", KeyEventFixture, - test_info_new(textinput_html, TRUE), - key_event_fixture_setup, - test_xim, - key_event_fixture_teardown); - g_test_add("/webkit/keyevent/xim-div", KeyEventFixture, - test_info_new(div_html, TRUE), - key_event_fixture_setup, - test_xim, - key_event_fixture_teardown); -#endif - - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testloading.c b/Source/WebKit/gtk/tests/testloading.c deleted file mode 100644 index 7949951f7..000000000 --- a/Source/WebKit/gtk/tests/testloading.c +++ /dev/null @@ -1,435 +0,0 @@ -/* - * Copyright (C) 2009, 2010 Gustavo Noronha Silva - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <gtk/gtk.h> -#include <libsoup/soup.h> -#include <string.h> -#include <webkit/webkit.h> - -/* This string has to be rather big because of the cancelled test - it - * looks like soup refuses to send or receive a too small chunk */ -#define HTML_STRING "<html><body>Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!Testing!</body></html>" - -SoupURI* base_uri; - -/* For real request testing */ -static void -server_callback(SoupServer* server, SoupMessage* msg, - const char* path, GHashTable* query, - SoupClientContext* context, gpointer data) -{ - if (msg->method != SOUP_METHOD_GET) { - soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status(msg, SOUP_STATUS_OK); - - if (g_str_equal(path, "/test_loading_status") || g_str_equal(path, "/test_loading_status2")) - soup_message_body_append(msg->response_body, SOUP_MEMORY_STATIC, HTML_STRING, strlen(HTML_STRING)); - else if (g_str_equal(path, "/test_load_error")) { - soup_message_set_status(msg, SOUP_STATUS_CANT_CONNECT); - } else if (g_str_equal(path, "/test_loading_cancelled")) { - soup_message_headers_set_encoding(msg->response_headers, SOUP_ENCODING_CHUNKED); - soup_message_body_append(msg->response_body, SOUP_MEMORY_STATIC, HTML_STRING, strlen(HTML_STRING)); - soup_server_unpause_message(server, msg); - return; - } - - soup_message_body_complete(msg->response_body); -} - -typedef struct { - WebKitWebView* webView; - GMainLoop *loop; - gboolean has_been_provisional; - gboolean has_been_committed; - gboolean has_been_first_visually_non_empty_layout; - gboolean has_been_finished; - gboolean has_been_failed; - gboolean has_been_load_error; -} WebLoadingFixture; - -static void web_loading_fixture_setup(WebLoadingFixture* fixture, gconstpointer data) -{ - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - fixture->loop = g_main_loop_new(NULL, TRUE); - g_object_ref_sink(fixture->webView); - fixture->has_been_provisional = FALSE; - fixture->has_been_committed = FALSE; - fixture->has_been_first_visually_non_empty_layout = FALSE; - fixture->has_been_finished = FALSE; - fixture->has_been_failed = FALSE; - fixture->has_been_load_error = FALSE; -} - -static void web_loading_fixture_teardown(WebLoadingFixture* fixture, gconstpointer data) -{ - g_object_unref(fixture->webView); - g_main_loop_unref(fixture->loop); -} - -static char* get_uri_for_path(const char* path) -{ - SoupURI* uri; - char* uri_string; - - uri = soup_uri_new_with_base(base_uri, path); - uri_string = soup_uri_to_string(uri, FALSE); - soup_uri_free (uri); - - return uri_string; -} - -static void load_finished_cb(WebKitWebView* web_view, WebKitWebFrame* web_frame, WebLoadingFixture* fixture) -{ - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_committed); - g_assert(fixture->has_been_first_visually_non_empty_layout); - - g_main_loop_quit(fixture->loop); -} - - -static void status_changed_cb(GObject* object, GParamSpec* pspec, WebLoadingFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); - - switch (status) { - case WEBKIT_LOAD_PROVISIONAL: - g_assert(!fixture->has_been_provisional); - g_assert(!fixture->has_been_committed); - g_assert(!fixture->has_been_first_visually_non_empty_layout); - fixture->has_been_provisional = TRUE; - break; - case WEBKIT_LOAD_COMMITTED: - g_assert(fixture->has_been_provisional); - g_assert(!fixture->has_been_committed); - g_assert(!fixture->has_been_first_visually_non_empty_layout); - fixture->has_been_committed = TRUE; - break; - case WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_committed); - g_assert(!fixture->has_been_first_visually_non_empty_layout); - fixture->has_been_first_visually_non_empty_layout = TRUE; - break; - case WEBKIT_LOAD_FINISHED: - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_committed); - g_assert(fixture->has_been_first_visually_non_empty_layout); - break; - default: - g_assert_not_reached(); - } -} - -static void test_loading_status(WebLoadingFixture* fixture, gconstpointer data) -{ - char* uri_string; - - g_assert_cmpint(webkit_web_view_get_load_status(fixture->webView), ==, WEBKIT_LOAD_PROVISIONAL); - - g_object_connect(G_OBJECT(fixture->webView), - "signal::notify::load-status", G_CALLBACK(status_changed_cb), fixture, - "signal::load-finished", G_CALLBACK(load_finished_cb), fixture, - NULL); - - uri_string = get_uri_for_path("/test_loading_status"); - - /* load_uri will trigger the navigation-policy-decision-requested - * signal emission; - */ - webkit_web_view_load_uri(fixture->webView, uri_string); - g_free(uri_string); - - g_main_loop_run(fixture->loop); -} - -static void load_error_status_changed_cb(GObject* object, GParamSpec* pspec, WebLoadingFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); - - switch(status) { - case WEBKIT_LOAD_PROVISIONAL: - g_assert(!fixture->has_been_provisional); - fixture->has_been_provisional = TRUE; - break; - case WEBKIT_LOAD_COMMITTED: - g_assert(!fixture->has_been_committed); - fixture->has_been_committed = TRUE; - break; - case WEBKIT_LOAD_FINISHED: - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_load_error); - g_assert(fixture->has_been_failed); - g_assert(!fixture->has_been_finished); - fixture->has_been_finished = TRUE; - break; - case WEBKIT_LOAD_FAILED: - g_assert(!fixture->has_been_failed); - fixture->has_been_failed = TRUE; - g_main_loop_quit(fixture->loop); - break; - default: - break; - } -} - -static gboolean load_error_cb(WebKitWebView* webView, WebKitWebFrame* frame, const char* uri, GError *error, WebLoadingFixture* fixture) -{ - g_assert(fixture->has_been_provisional); - g_assert(!fixture->has_been_load_error); - fixture->has_been_load_error = TRUE; - - return FALSE; -} - -static void test_loading_error(WebLoadingFixture* fixture, gconstpointer data) -{ - char* uri_string; - - g_test_bug("28842"); - - g_signal_connect(fixture->webView, "load-error", G_CALLBACK(load_error_cb), fixture); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_error_status_changed_cb), fixture); - - uri_string = get_uri_for_path("/test_load_error"); - webkit_web_view_load_uri(fixture->webView, uri_string); - g_free(uri_string); - - g_main_loop_run(fixture->loop); - - g_assert(fixture->has_been_provisional); - g_assert(!fixture->has_been_committed); - g_assert(fixture->has_been_load_error); - g_assert(fixture->has_been_failed); - g_assert(!fixture->has_been_finished); -} - -/* Cancelled load */ - -static gboolean load_cancelled_cb(WebKitWebView* webView, WebKitWebFrame* frame, const char* uri, GError *error, WebLoadingFixture* fixture) -{ - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_failed); - g_assert(!fixture->has_been_load_error); - g_assert(error->code == WEBKIT_NETWORK_ERROR_CANCELLED); - fixture->has_been_load_error = TRUE; - - return TRUE; -} - -static gboolean stop_load (gpointer data) -{ - webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(data)); - return FALSE; -} - -static void load_cancelled_status_changed_cb(GObject* object, GParamSpec* pspec, WebLoadingFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); - - switch(status) { - case WEBKIT_LOAD_PROVISIONAL: - g_assert(!fixture->has_been_provisional); - g_assert(!fixture->has_been_failed); - fixture->has_been_provisional = TRUE; - break; - case WEBKIT_LOAD_COMMITTED: - g_idle_add (stop_load, object); - break; - case WEBKIT_LOAD_FAILED: - g_assert(fixture->has_been_provisional); - g_assert(!fixture->has_been_failed); - g_assert(!fixture->has_been_load_error); - fixture->has_been_failed = TRUE; - g_main_loop_quit(fixture->loop); - break; - case WEBKIT_LOAD_FINISHED: - g_assert_not_reached(); - break; - default: - break; - } -} - -static void test_loading_cancelled(WebLoadingFixture* fixture, gconstpointer data) -{ - char* uri_string; - - g_test_bug("29644"); - - g_signal_connect(fixture->webView, "load-error", G_CALLBACK(load_cancelled_cb), fixture); - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_cancelled_status_changed_cb), fixture); - - uri_string = get_uri_for_path("/test_loading_cancelled"); - webkit_web_view_load_uri(fixture->webView, uri_string); - g_free(uri_string); - - g_main_loop_run(fixture->loop); -} - -static void load_goback_status_changed_cb(GObject* object, GParamSpec* pspec, WebLoadingFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); - - switch(status) { - case WEBKIT_LOAD_PROVISIONAL: - g_assert(!fixture->has_been_provisional); - fixture->has_been_provisional = TRUE; - break; - case WEBKIT_LOAD_COMMITTED: - g_assert(fixture->has_been_provisional); - fixture->has_been_committed = TRUE; - break; - case WEBKIT_LOAD_FAILED: - g_assert_not_reached(); - break; - case WEBKIT_LOAD_FINISHED: - g_assert(fixture->has_been_provisional); - g_assert(fixture->has_been_committed); - fixture->has_been_finished = TRUE; - g_main_loop_quit(fixture->loop); - break; - default: - break; - } -} - -static void load_wentback_status_changed_cb(GObject* object, GParamSpec* pspec, WebLoadingFixture* fixture) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status(WEBKIT_WEB_VIEW(object)); - char* uri_string; - char* uri_string2; - - uri_string = get_uri_for_path("/test_loading_status"); - uri_string2 = get_uri_for_path("/test_loading_status2"); - - switch(status) { - case WEBKIT_LOAD_PROVISIONAL: - g_assert_cmpstr(webkit_web_view_get_uri(fixture->webView), ==, uri_string2); - break; - case WEBKIT_LOAD_COMMITTED: - g_assert_cmpstr(webkit_web_view_get_uri(fixture->webView), ==, uri_string); - break; - case WEBKIT_LOAD_FAILED: - g_assert_not_reached(); - break; - case WEBKIT_LOAD_FINISHED: - g_assert_cmpstr(webkit_web_view_get_uri(fixture->webView), ==, uri_string); - g_main_loop_quit(fixture->loop); - break; - default: - break; - } - - g_free(uri_string); - g_free(uri_string2); -} - -static void load_error_test(WebKitWebView* webview, WebKitWebFrame* frame, const char* uri, GError* error) -{ - g_debug("Error: %s", error->message); -} - -static void test_loading_goback(WebLoadingFixture* fixture, gconstpointer data) -{ - char* uri_string; - - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_goback_status_changed_cb), fixture); - - g_signal_connect(fixture->webView, "load-error", G_CALLBACK(load_error_test), fixture); - - uri_string = get_uri_for_path("/test_loading_status"); - webkit_web_view_load_uri(fixture->webView, uri_string); - g_free(uri_string); - - g_main_loop_run(fixture->loop); - - fixture->has_been_provisional = FALSE; - fixture->has_been_committed = FALSE; - fixture->has_been_first_visually_non_empty_layout = FALSE; - fixture->has_been_finished = FALSE; - fixture->has_been_failed = FALSE; - fixture->has_been_load_error = FALSE; - - uri_string = get_uri_for_path("/test_loading_status2"); - webkit_web_view_load_uri(fixture->webView, uri_string); - g_free(uri_string); - - g_main_loop_run(fixture->loop); - - g_signal_handlers_disconnect_by_func(fixture->webView, load_goback_status_changed_cb, fixture); - - fixture->has_been_provisional = FALSE; - fixture->has_been_committed = FALSE; - fixture->has_been_first_visually_non_empty_layout = FALSE; - fixture->has_been_finished = FALSE; - fixture->has_been_failed = FALSE; - fixture->has_been_load_error = FALSE; - - g_signal_connect(fixture->webView, "notify::load-status", G_CALLBACK(load_wentback_status_changed_cb), fixture); - webkit_web_view_go_back(fixture->webView); - - g_main_loop_run(fixture->loop); - - g_signal_handlers_disconnect_by_func(fixture->webView, load_wentback_status_changed_cb, fixture); -} - -int main(int argc, char** argv) -{ - SoupServer* server; - - gtk_test_init(&argc, &argv, NULL); - - server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - - soup_server_add_handler(server, NULL, server_callback, NULL, NULL); - - base_uri = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(base_uri, soup_server_get_port(server)); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add("/webkit/loading/status", - WebLoadingFixture, NULL, - web_loading_fixture_setup, - test_loading_status, - web_loading_fixture_teardown); - g_test_add("/webkit/loading/error", - WebLoadingFixture, NULL, - web_loading_fixture_setup, - test_loading_error, - web_loading_fixture_teardown); - g_test_add("/webkit/loading/cancelled", - WebLoadingFixture, NULL, - web_loading_fixture_setup, - test_loading_cancelled, - web_loading_fixture_teardown); - g_test_add("/webkit/loading/goback", - WebLoadingFixture, NULL, - web_loading_fixture_setup, - test_loading_goback, - web_loading_fixture_teardown); - return g_test_run(); -} - diff --git a/Source/WebKit/gtk/tests/testmimehandling.c b/Source/WebKit/gtk/tests/testmimehandling.c deleted file mode 100644 index ffaa7032d..000000000 --- a/Source/WebKit/gtk/tests/testmimehandling.c +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo - * Copyright (C) 2009 Gustavo Noronha Silva - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <glib.h> -#include <glib/gstdio.h> -#include <libsoup/soup.h> -#include <string.h> -#include <webkit/webkit.h> -#include <unistd.h> - -GMainLoop* loop; -SoupSession *session; -char* base_uri; - -/* For real request testing */ -static void -server_callback(SoupServer *server, SoupMessage *msg, - const char *path, GHashTable *query, - SoupClientContext *context, gpointer data) -{ - if (msg->method != SOUP_METHOD_GET) { - soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status(msg, SOUP_STATUS_OK); - - /* PDF */ - if (g_str_equal(path, "/pdf")) { - char* contents; - gsize length; - GError* error = NULL; - - g_file_get_contents("test.pdf", &contents, &length, &error); - g_assert(!error); - - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, length); - } else if (g_str_equal(path, "/html")) { - char* contents; - gsize length; - GError* error = NULL; - - g_file_get_contents("test.html", &contents, &length, &error); - g_assert(!error); - - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, length); - } else if (g_str_equal(path, "/text")) { - char* contents; - gsize length; - GError* error = NULL; - - soup_message_headers_append(msg->response_headers, "Content-Disposition", "attachment; filename=test.txt"); - - g_file_get_contents("test.txt", &contents, &length, &error); - g_assert(!error); - - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, length); - } - - soup_message_body_complete(msg->response_body); -} - -static void idle_quit_loop_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED || - webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FAILED) - g_main_loop_quit(loop); -} - -static gboolean mime_type_policy_decision_requested_cb(WebKitWebView* view, WebKitWebFrame* frame, - WebKitNetworkRequest* request, const char* mime_type, - WebKitWebPolicyDecision* decision, gpointer data) -{ - char* type = (char*)data; - - if (g_str_equal(type, "pdf")) { - g_assert_cmpstr(mime_type, ==, "application/pdf"); - g_assert(!webkit_web_view_can_show_mime_type(view, mime_type)); - } else if (g_str_equal(type, "html")) { - g_assert_cmpstr(mime_type, ==, "text/html"); - g_assert(webkit_web_view_can_show_mime_type(view, mime_type)); - } else if (g_str_equal(type, "text")) { - WebKitNetworkResponse* response = webkit_web_frame_get_network_response(frame); - SoupMessage* message = webkit_network_response_get_message(response); - char* disposition; - - g_assert(message); - soup_message_headers_get_content_disposition(message->response_headers, - &disposition, NULL); - g_object_unref(response); - - g_assert_cmpstr(disposition, ==, "attachment"); - g_free(disposition); - - g_assert_cmpstr(mime_type, ==, "text/plain"); - g_assert(webkit_web_view_can_show_mime_type(view, mime_type)); - } - - g_free(type); - - return FALSE; -} - -static void testRemoteMimeType(const void* data) -{ - const char* name = (const char*) data; - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(G_OBJECT(view)); - - loop = g_main_loop_new(NULL, TRUE); - - g_object_connect(G_OBJECT(view), - "signal::notify::load-status", idle_quit_loop_cb, NULL, - "signal::mime-type-policy-decision-requested", mime_type_policy_decision_requested_cb, g_strdup(name), - NULL); - - char* effective_uri = g_strdup_printf("%s%s", base_uri, name); - webkit_web_view_load_uri(view, effective_uri); - g_free(effective_uri); - - g_main_loop_run(loop); - - g_object_unref(view); -} - -static void testLocalMimeType(const void* data) -{ - const char* typeName = (const char*) data; - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(G_OBJECT(view)); - - loop = g_main_loop_new(NULL, TRUE); - - g_object_connect(G_OBJECT(view), - "signal::notify::load-status", idle_quit_loop_cb, NULL, - "signal::mime-type-policy-decision-requested", mime_type_policy_decision_requested_cb, g_strdup(typeName), - NULL); - - gchar* filename = g_strdup_printf("test.%s", typeName); - GFile* file = g_file_new_for_path(filename); - g_free(filename); - - gchar* fileURI = g_file_get_uri(file); - g_object_unref(file); - - webkit_web_view_load_uri(view, fileURI); - g_free(fileURI); - - g_main_loop_run(loop); - g_object_unref(view); -} - -int main(int argc, char** argv) -{ - SoupServer* server; - SoupURI* soup_uri; - - gtk_test_init(&argc, &argv, NULL); - - /* Hopefully make test independent of the path it's called from. */ - testutils_relative_chdir("Source/WebKit/gtk/tests/resources/test.html", argv[0]); - - server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - - soup_server_add_handler(server, NULL, server_callback, NULL, NULL); - - soup_uri = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(soup_uri, soup_server_get_port(server)); - - base_uri = soup_uri_to_string(soup_uri, FALSE); - soup_uri_free(soup_uri); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_data_func("/webkit/mime/remote-PDF", "pdf", testRemoteMimeType); - g_test_add_data_func("/webkit/mime/remote-HTML", "html", testRemoteMimeType); - g_test_add_data_func("/webkit/mime/remote-TEXT", "text", testRemoteMimeType); - g_test_add_data_func("/webkit/mime/local-PDF", "pdf", testLocalMimeType); - g_test_add_data_func("/webkit/mime/local-HTML", "html", testLocalMimeType); - g_test_add_data_func("/webkit/mime/local-TEXT", "text", testLocalMimeType); - - return g_test_run(); -} diff --git a/Source/WebKit/gtk/tests/testnetworkrequest.c b/Source/WebKit/gtk/tests/testnetworkrequest.c deleted file mode 100644 index 2af471af9..000000000 --- a/Source/WebKit/gtk/tests/testnetworkrequest.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2009 Gustavo Noronha Silva - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <webkit/webkit.h> - -static void test_network_request_create_destroy() -{ - WebKitNetworkRequest* request; - SoupMessage* message; - - /* Test creation with URI */ - request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", "http://debian.org/", NULL)); - g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); - message = webkit_network_request_get_message(request); - g_assert(!message); - g_object_unref(request); - - /* Test creation with SoupMessage */ - message = soup_message_new("GET", "http://debian.org/"); - request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, NULL)); - g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); - g_object_unref(request); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); - g_object_unref(message); - - /* Test creation with both SoupMessage and URI */ - message = soup_message_new("GET", "http://debian.org/"); - request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, "uri", "http://gnome.org/", NULL)); - g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); - g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://gnome.org/"); - g_object_unref(request); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); - g_object_unref(message); -} - -static void test_network_request_properties() -{ - WebKitNetworkRequest* request; - SoupMessage* message; - gchar* soupURI; - - /* Test URI is set correctly when creating with URI */ - request = webkit_network_request_new("http://debian.org/"); - g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); - g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://debian.org/"); - g_object_unref(request); - - /* Test URI is set correctly when creating with Message */ - message = soup_message_new("GET", "http://debian.org/"); - request = WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", message, NULL)); - g_assert(WEBKIT_IS_NETWORK_REQUEST(request)); - g_object_unref(message); - - message = webkit_network_request_get_message(request); - soupURI = soup_uri_to_string(soup_message_get_uri(message), FALSE); - g_assert_cmpstr(soupURI, ==, "http://debian.org/"); - g_free(soupURI); - - g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://debian.org/"); - g_object_unref(request); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/networkrequest/createdestroy", test_network_request_create_destroy); - g_test_add_func("/webkit/networkrequest/properties", test_network_request_properties); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testnetworkresponse.c b/Source/WebKit/gtk/tests/testnetworkresponse.c deleted file mode 100644 index 8b12f8208..000000000 --- a/Source/WebKit/gtk/tests/testnetworkresponse.c +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2009 Gustavo Noronha Silva - * 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <stdlib.h> -#include <webkit/webkit.h> - -static void test_network_response_create_destroy() -{ - WebKitNetworkResponse* response; - SoupMessage* message; - - /* Test creation with URI */ - response = WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "uri", "http://debian.org/", NULL)); - g_assert(WEBKIT_IS_NETWORK_RESPONSE(response)); - message = webkit_network_response_get_message(response); - g_assert(!message); - g_object_unref(response); - - /* Test creation with SoupMessage */ - message = soup_message_new("GET", "http://debian.org/"); - response = WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "message", message, NULL)); - g_assert(WEBKIT_IS_NETWORK_RESPONSE(response)); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); - g_object_unref(response); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); - g_object_unref(message); - - /* Test creation with both SoupMessage and URI */ - message = soup_message_new("GET", "http://debian.org/"); - response = WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "message", message, "uri", "http://gnome.org/", NULL)); - g_assert(WEBKIT_IS_NETWORK_RESPONSE(response)); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 2); - g_assert_cmpstr(webkit_network_response_get_uri(response), ==, "http://gnome.org/"); - g_object_unref(response); - g_assert_cmpint(G_OBJECT(message)->ref_count, ==, 1); - g_object_unref(message); -} - -static void test_network_response_properties() -{ - WebKitNetworkResponse* response; - SoupMessage* message; - gchar* soupURI; - - /* Test URI is set correctly when creating with URI */ - response = webkit_network_response_new("http://debian.org/"); - g_assert(WEBKIT_IS_NETWORK_RESPONSE(response)); - g_assert_cmpstr(webkit_network_response_get_uri(response), ==, "http://debian.org/"); - g_object_unref(response); - - /* Test URI is set correctly when creating with Message */ - message = soup_message_new("GET", "http://debian.org/"); - response = WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "message", message, NULL)); - g_assert(WEBKIT_IS_NETWORK_RESPONSE(response)); - g_object_unref(message); - - message = webkit_network_response_get_message(response); - soupURI = soup_uri_to_string(soup_message_get_uri(message), FALSE); - g_assert_cmpstr(soupURI, ==, "http://debian.org/"); - g_free(soupURI); - - g_assert_cmpstr(webkit_network_response_get_uri(response), ==, "http://debian.org/"); - g_object_unref(response); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/networkresponse/createdestroy", test_network_response_create_destroy); - g_test_add_func("/webkit/networkresponse/properties", test_network_response_properties); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebbackforwardlist.c b/Source/WebKit/gtk/tests/testwebbackforwardlist.c deleted file mode 100644 index 22acb45cb..000000000 --- a/Source/WebKit/gtk/tests/testwebbackforwardlist.c +++ /dev/null @@ -1,326 +0,0 @@ -/* - * Copyright (C) 2008 Holger Hans Peter Freyther - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -static void test_webkit_web_history_item_lifetime(void) -{ - WebKitWebView* webView; - WebKitWebBackForwardList* backForwardList; - WebKitWebHistoryItem* currentItem; - WebKitWebHistoryItem* forwardItem; - WebKitWebHistoryItem* backItem; - WebKitWebHistoryItem* nthItem; - WebKitWebHistoryItem* item1; - WebKitWebHistoryItem* item2; - WebKitWebHistoryItem* item3; - WebKitWebHistoryItem* item4; - GList* backList = NULL; - GList* forwardList = NULL; - g_test_bug("19898"); - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - backForwardList = webkit_web_view_get_back_forward_list(webView); - g_assert_cmpint(G_OBJECT(backForwardList)->ref_count, ==, 1); - - /* add test items */ - item1 = webkit_web_history_item_new_with_data("http://example.com/1/", "Site 1"); - webkit_web_back_forward_list_add_item(backForwardList, item1); - g_object_unref(item1); - - item2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Site 2"); - webkit_web_back_forward_list_add_item(backForwardList, item2); - g_object_unref(item2); - - item3 = webkit_web_history_item_new_with_data("http://example.com/3/", "Site 3"); - webkit_web_back_forward_list_add_item(backForwardList, item3); - g_object_unref(item3); - - item4 = webkit_web_history_item_new_with_data("http://example.com/4/", "Site 4"); - webkit_web_back_forward_list_add_item(backForwardList, item4); - g_object_unref(item4); - - /* make sure these functions don't add unnecessary ref to the history item */ - backItem = webkit_web_back_forward_list_get_back_item(backForwardList); - g_object_ref(backItem); - g_assert_cmpint(G_OBJECT(backItem)->ref_count, ==, 2); - g_object_unref(backItem); - g_assert_cmpint(G_OBJECT(backItem)->ref_count, ==, 1); - - currentItem = webkit_web_back_forward_list_get_current_item(backForwardList); - g_object_ref(currentItem); - g_assert_cmpint(G_OBJECT(currentItem)->ref_count, ==, 2); - g_object_unref(currentItem); - g_assert_cmpint(G_OBJECT(currentItem)->ref_count, ==, 1); - - webkit_web_back_forward_list_go_to_item(backForwardList, item2); - forwardItem = webkit_web_back_forward_list_get_forward_item(backForwardList); - g_object_ref(forwardItem); - g_assert_cmpint(G_OBJECT(forwardItem)->ref_count, ==, 2); - g_object_unref(forwardItem); - g_assert_cmpint(G_OBJECT(forwardItem)->ref_count, ==, 1); - - nthItem = webkit_web_back_forward_list_get_nth_item(backForwardList, 1); - g_object_ref(nthItem); - g_assert_cmpint(G_OBJECT(nthItem)->ref_count, ==, 2); - g_object_unref(nthItem); - g_assert_cmpint(G_OBJECT(nthItem)->ref_count, ==, 1); - - backList = webkit_web_back_forward_list_get_back_list_with_limit(backForwardList, 5); - for (; backList; backList = backList->next) - g_assert_cmpint(G_OBJECT(backList->data)->ref_count, ==, 1); - - forwardList = webkit_web_back_forward_list_get_forward_list_with_limit(backForwardList, 5); - for (; forwardList; forwardList = forwardList->next) - g_assert_cmpint(G_OBJECT(forwardList->data)->ref_count, ==, 1); - - g_list_free(forwardList); - g_list_free(backList); - g_assert_cmpint(G_OBJECT(item1)->ref_count, ==, 1); - g_assert_cmpint(G_OBJECT(item2)->ref_count, ==, 1); - g_assert_cmpint(G_OBJECT(item3)->ref_count, ==, 1); - g_assert_cmpint(G_OBJECT(item4)->ref_count, ==, 1); - g_assert_cmpint(G_OBJECT(backForwardList)->ref_count, ==, 1); - g_object_unref(webView); -} - -static void test_webkit_web_back_forward_list_order(void) -{ - WebKitWebView* webView; - WebKitWebBackForwardList* webBackForwardList; - WebKitWebHistoryItem* item1; - WebKitWebHistoryItem* item2; - WebKitWebHistoryItem* item3; - WebKitWebHistoryItem* item4; - WebKitWebHistoryItem* currentItem; - GList* backList = NULL; - GList* forwardList = NULL; - g_test_bug("22694"); - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - - webkit_web_view_set_maintains_back_forward_list(webView, TRUE); - webBackForwardList = webkit_web_view_get_back_forward_list(webView); - g_assert(webBackForwardList); - - // Check that there is no item. - g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - // Add a new items - item1 = webkit_web_history_item_new_with_data("http://example.com/1/", "Site 1"); - webkit_web_back_forward_list_add_item(webBackForwardList, item1); - g_object_unref(item1); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item1)); - - item2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Site 2"); - webkit_web_back_forward_list_add_item(webBackForwardList, item2); - g_object_unref(item2); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item2)); - - item3 = webkit_web_history_item_new_with_data("http://example.com/3/", "Site 3"); - webkit_web_back_forward_list_add_item(webBackForwardList, item3); - g_object_unref(item3); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item3)); - - item4 = webkit_web_history_item_new_with_data("http://example.com/4/", "Site 4"); - webkit_web_back_forward_list_add_item(webBackForwardList, item4); - g_object_unref(item4); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, item4)); - - // check the back list order - backList = webkit_web_back_forward_list_get_back_list_with_limit(webBackForwardList, 5); - g_assert(backList); - - currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/3/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 3"); - backList = backList->next; - - currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 2"); - backList = backList->next; - - currentItem = WEBKIT_WEB_HISTORY_ITEM(backList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/1/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 1"); - g_list_free(backList); - - // check the forward list order - g_assert(webkit_web_view_go_to_back_forward_item(webView, item1)); - forwardList = webkit_web_back_forward_list_get_forward_list_with_limit(webBackForwardList,5); - g_assert(forwardList); - - currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/4/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 4"); - forwardList = forwardList->next; - - currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/3/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 3"); - forwardList = forwardList->next; - - currentItem = WEBKIT_WEB_HISTORY_ITEM(forwardList->data); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Site 2"); - - g_list_free(forwardList); - g_object_unref(webView); -} - -static void test_webkit_web_back_forward_list_add_item(void) -{ - WebKitWebView* webView; - WebKitWebBackForwardList* webBackForwardList; - WebKitWebHistoryItem* addItem1; - WebKitWebHistoryItem* addItem2; - WebKitWebHistoryItem* backItem; - WebKitWebHistoryItem* currentItem; - g_test_bug("22988"); - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - - webkit_web_view_set_maintains_back_forward_list(webView, TRUE); - webBackForwardList = webkit_web_view_get_back_forward_list(webView); - g_assert(webBackForwardList); - - // Check that there is no item. - g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - // Add a new item - addItem1 = webkit_web_history_item_new_with_data("http://example.com/", "Added site"); - webkit_web_back_forward_list_add_item(webBackForwardList, addItem1); - g_object_unref(addItem1); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem1)); - - // Check that the added item is the current item. - currentItem = webkit_web_back_forward_list_get_current_item(webBackForwardList); - g_assert(currentItem); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Added site"); - - // Add another item. - addItem2 = webkit_web_history_item_new_with_data("http://example.com/2/", "Added site 2"); - webkit_web_back_forward_list_add_item(webBackForwardList, addItem2); - g_object_unref(addItem2); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem2)); - - // Check that the added item is new current item. - currentItem = webkit_web_back_forward_list_get_current_item(webBackForwardList); - g_assert(currentItem); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 1); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(webkit_web_view_can_go_back(webView)); - g_assert_cmpstr(webkit_web_history_item_get_uri(currentItem), ==, "http://example.com/2/"); - g_assert_cmpstr(webkit_web_history_item_get_title(currentItem), ==, "Added site 2"); - - backItem = webkit_web_back_forward_list_get_back_item(webBackForwardList); - g_assert(backItem); - g_assert_cmpstr(webkit_web_history_item_get_uri(backItem), ==, "http://example.com/"); - g_assert_cmpstr(webkit_web_history_item_get_title(backItem), ==, "Added site"); - - // Go to the first added item. - g_assert(webkit_web_view_go_to_back_forward_item(webView, addItem1)); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 1); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - g_object_unref(webView); -} - -static void test_webkit_web_back_forward_list_clear(void) -{ - WebKitWebView* webView; - WebKitWebBackForwardList* webBackForwardList; - WebKitWebHistoryItem* addItem; - g_test_bug("36173"); - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - - webBackForwardList = webkit_web_view_get_back_forward_list(webView); - g_assert(webBackForwardList); - - // Check that there is no item. - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - // Check that clearing the empty list does not modify counters - webkit_web_back_forward_list_clear(webBackForwardList); - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - // Add a new item - addItem = webkit_web_history_item_new_with_data("http://example.com/", "Added site"); - webkit_web_back_forward_list_add_item(webBackForwardList, addItem); - g_object_unref(addItem); - g_assert(webkit_web_back_forward_list_contains_item(webBackForwardList, addItem)); - - // Check that after clearing the list the added item is no longer in the list - webkit_web_back_forward_list_clear(webBackForwardList); - g_assert(!webkit_web_back_forward_list_contains_item(webBackForwardList, addItem)); - - // Check that after clearing it, the list is empty - g_assert_cmpint(webkit_web_back_forward_list_get_forward_length(webBackForwardList), ==, 0); - g_assert_cmpint(webkit_web_back_forward_list_get_back_length(webBackForwardList), ==, 0); - g_assert(!webkit_web_back_forward_list_get_current_item(webBackForwardList)); - g_assert(!webkit_web_view_can_go_forward(webView)); - g_assert(!webkit_web_view_can_go_back(webView)); - - g_object_unref(webView); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/webbackforwardlist/add_item", test_webkit_web_back_forward_list_add_item); - g_test_add_func("/webkit/webbackforwardlist/list_order", test_webkit_web_back_forward_list_order); - g_test_add_func("/webkit/webhistoryitem/lifetime", test_webkit_web_history_item_lifetime); - g_test_add_func("/webkit/webbackforwardlist/clear", test_webkit_web_back_forward_list_clear); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebdatasource.c b/Source/WebKit/gtk/tests/testwebdatasource.c deleted file mode 100644 index ed73bdb09..000000000 --- a/Source/WebKit/gtk/tests/testwebdatasource.c +++ /dev/null @@ -1,242 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -static const gshort defaultTimeout = 10; -guint waitTimer; -gboolean shouldWait; - -typedef struct { - WebKitWebView* webView; - WebKitWebFrame* mainFrame; -} WebDataSourceFixture; - -static void test_webkit_web_data_source_get_initial_request() -{ - WebKitWebView* view; - WebKitWebFrame* frame; - WebKitWebDataSource* dataSource; - WebKitNetworkRequest* initialRequest; - - view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(view); - frame = webkit_web_view_get_main_frame(view); - - WebKitNetworkRequest* request = webkit_network_request_new("http://www.google.com"); - webkit_web_frame_load_request(frame, request); - g_object_unref(request); - - dataSource = webkit_web_frame_get_provisional_data_source(frame); - g_assert(dataSource); - initialRequest = webkit_web_data_source_get_initial_request(dataSource); - g_assert_cmpstr(webkit_network_request_get_uri(initialRequest), ==, "http://www.google.com/"); - - g_object_unref(view); -} - -static void notify_load_status_unreachable_cb(WebKitWebView* view, GParamSpec* pspec, GMainLoop* loop) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status (view); - WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); - - g_assert(status != WEBKIT_LOAD_FINISHED); - - if (status != WEBKIT_LOAD_FAILED) - return; - - WebKitWebDataSource* datasource = webkit_web_frame_get_data_source(frame); - - g_assert_cmpstr("http://this.host.does.not.exist/doireallyexist.html", ==, - webkit_web_data_source_get_unreachable_uri(datasource)); - - g_main_loop_quit(loop); -} - -static void notify_load_status_cb(WebKitWebView* view, GParamSpec* pspec, GMainLoop* loop) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status (view); - WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); - WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(frame); - - if (status == WEBKIT_LOAD_COMMITTED) { - g_assert(webkit_web_data_source_is_loading(dataSource)); - return; - } - else if (status != WEBKIT_LOAD_FINISHED) - return; - - /* Test get_request */ - g_test_message("Testing webkit_web_data_source_get_request"); - WebKitNetworkRequest* request = webkit_web_data_source_get_request(dataSource); - g_assert_cmpstr(webkit_network_request_get_uri(request), ==, "http://www.webkit.org/"); - - /* Test get_main_resource */ - g_test_message("Testing webkit_web_data_source_get_main_resource"); - WebKitWebResource* resource = webkit_web_data_source_get_main_resource(dataSource); - g_assert_cmpstr("text/html", ==, webkit_web_resource_get_mime_type(resource)); - g_assert_cmpstr("http://www.webkit.org/", ==, webkit_web_resource_get_uri(resource)); - - /* Test get_data. We just test if data has certain size for the mean time */ - g_test_message("Testing webkit_web_data_source_get_data has certain size"); - GString* data = webkit_web_data_source_get_data(dataSource); - g_assert(data->len > 100); - - /* FIXME: Add test for get_encoding */ - - g_main_loop_quit(loop); -} - -static gboolean wait_timer_fired(GMainLoop* loop) -{ - waitTimer = 0; - g_main_loop_quit(loop); - - return FALSE; -} - -static void test_webkit_web_data_source() -{ - WebKitWebView* view; - GMainLoop* loop; - - view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(view); - loop = g_main_loop_new(NULL, TRUE); - g_signal_connect(view, "notify::load-status", G_CALLBACK(notify_load_status_cb), loop); - webkit_web_view_load_uri(view, "http://www.webkit.org"); - - waitTimer = g_timeout_add_seconds(defaultTimeout, (GSourceFunc)wait_timer_fired, loop); - - g_main_loop_run(loop); - - if (waitTimer) - g_source_remove(waitTimer); - - waitTimer = 0; - - g_main_loop_unref(loop); - g_object_unref(view); -} - -static void notify_load_status_lifetime_cb(WebKitWebView* view, GParamSpec* pspec, GMainLoop* loop) -{ - WebKitLoadStatus status = webkit_web_view_get_load_status (view); - WebKitWebFrame* frame = webkit_web_view_get_main_frame(view); - WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(frame); - - if (status == WEBKIT_LOAD_COMMITTED) { - g_assert(webkit_web_data_source_is_loading(dataSource)); - return; - } else if (status != WEBKIT_LOAD_FINISHED) - return; - - g_main_loop_quit(loop); -} - -static void test_webkit_web_data_source_lifetime() -{ - WebKitWebView* view; - GMainLoop* loop; - - view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(view); - loop = g_main_loop_new(NULL, TRUE); - g_signal_connect(view, "notify::load-status", G_CALLBACK(notify_load_status_lifetime_cb), loop); - webkit_web_view_load_uri(view, "http://www.webkit.org"); - - waitTimer = g_timeout_add_seconds(defaultTimeout, (GSourceFunc)wait_timer_fired, loop); - - g_main_loop_run(loop); - - WebKitWebDataSource* dataSource = webkit_web_frame_get_data_source(webkit_web_view_get_main_frame(view)); - GList* subResources = webkit_web_data_source_get_subresources(dataSource); - gint numberOfResources = g_list_length(subResources); - g_list_free(subResources); - - g_assert_cmpint(webkit_web_view_get_load_status(view), ==, WEBKIT_LOAD_FINISHED); - - webkit_web_view_load_uri(view, "http://gnome.org"); - - g_assert_cmpint(webkit_web_view_get_load_status(view), ==, WEBKIT_LOAD_PROVISIONAL); - - webkit_web_view_stop_loading(view); - - g_assert_cmpint(webkit_web_view_get_load_status(view), ==, WEBKIT_LOAD_FAILED); - - subResources = webkit_web_data_source_get_subresources(dataSource); - g_assert_cmpint(numberOfResources, ==, g_list_length(subResources)); - g_list_free(subResources); - - if (waitTimer) - g_source_remove(waitTimer); - - waitTimer = 0; - - g_main_loop_unref(loop); - g_object_unref(view); -} - -static void test_webkit_web_data_source_unreachable_uri() -{ - /* FIXME: this test fails currently. */ - return; - - WebKitWebView* view; - GMainLoop* loop; - - view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(view); - loop = g_main_loop_new(NULL, TRUE); - g_signal_connect(view, "notify::load-status", G_CALLBACK(notify_load_status_unreachable_cb), loop); - webkit_web_view_load_uri(view, "http://this.host.does.not.exist/doireallyexist.html"); - - waitTimer = g_timeout_add_seconds(defaultTimeout, (GSourceFunc)wait_timer_fired, loop); - - g_main_loop_run(loop); - - if (waitTimer) - g_source_remove(waitTimer); - - waitTimer = 0; - - g_main_loop_unref(loop); - g_object_unref(view); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_bug("24758"); - g_test_add_func("/webkit/webdatasource/get_initial_request", - test_webkit_web_data_source_get_initial_request); - g_test_add_func("/webkit/webdatasource/api", - test_webkit_web_data_source); - g_test_add_func("/webkit/webdatasource/unreachable_uri", - test_webkit_web_data_source_unreachable_uri); - g_test_add_func("/webkit/webdatasource/lifetime", - test_webkit_web_data_source_lifetime); - - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebframe.c b/Source/WebKit/gtk/tests/testwebframe.c deleted file mode 100644 index 531fae281..000000000 --- a/Source/WebKit/gtk/tests/testwebframe.c +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Copyright (C) 2008 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <unistd.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -static int numberOfFramesCreated = 0; - -static void createFrameSignalTestFrameCreatedCallback(WebKitWebView* webView, WebKitWebFrame* frame, gpointer data) -{ - numberOfFramesCreated++; -} - -static gboolean createFrameSignalTestTimeout(gpointer data) -{ - g_assert_cmpint(numberOfFramesCreated, ==, 2); - g_main_loop_quit((GMainLoop*) data); - return FALSE; -} - -static void test_webkit_web_frame_created_signal(void) -{ - GtkWidget* webView; - GtkWidget* window; - GMainLoop* loop = g_main_loop_new(NULL, TRUE); - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - webView = webkit_web_view_new(); - g_signal_connect(webView, "frame-created", G_CALLBACK(createFrameSignalTestFrameCreatedCallback), loop); - - // We want to ensure that exactly two create-frame signals are - // fired and no more, so we set a timeout here. There does not appear - // to be a simple way via the API to figure out when all frames have - // loaded. - g_timeout_add(500, createFrameSignalTestTimeout, loop); - - gtk_container_add(GTK_CONTAINER(window), webView); - gtk_widget_show(window); - gtk_widget_show(webView); - - webkit_web_view_load_string(WEBKIT_WEB_VIEW(webView), - "<html><body>Frames!" - "<iframe></iframe>" - "<iframe></iframe>" - "</body></html>", - "text/html", "utf-8", "file://"); - g_main_loop_run(loop); -} - -static void test_webkit_web_frame_create_destroy(void) -{ - GtkWidget *webView; - GtkWidget *window; - - g_test_bug("21837"); - webView = webkit_web_view_new(); - g_object_ref_sink(webView); - g_assert_cmpint(G_OBJECT(webView)->ref_count, ==, 1); - // This crashed with the original version - g_object_unref(webView); - - g_test_bug("25042"); - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - webView = webkit_web_view_new(); - gtk_container_add(GTK_CONTAINER(window), webView); - gtk_widget_show(window); - gtk_widget_show(webView); - gtk_widget_destroy(webView); -} - -static void test_webkit_web_frame_lifetime(void) -{ - WebKitWebView* webView; - WebKitWebFrame* webFrame; - g_test_bug("21837"); - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - g_assert_cmpint(G_OBJECT(webView)->ref_count, ==, 1); - webFrame = webkit_web_view_get_main_frame(webView); - g_assert_cmpint(G_OBJECT(webFrame)->ref_count, ==, 1); - - // Add dummy reference on the WebKitWebFrame to keep it alive - g_object_ref(webFrame); - g_assert_cmpint(G_OBJECT(webFrame)->ref_count, ==, 2); - - // This crashed with the original version - g_object_unref(webView); - - // Make sure that the frame got deleted as well. We did this - // by adding an extra ref on the WebKitWebFrame and we should - // be the one holding the last reference. - g_assert_cmpint(G_OBJECT(webFrame)->ref_count, ==, 1); - g_object_unref(webFrame); -} - -static gboolean print_requested_cb(WebKitWebView* webView, WebKitWebFrame* webFrame, GMainLoop* loop) -{ - g_object_set_data(G_OBJECT(webView), "signal-handled", GINT_TO_POINTER(TRUE)); - g_main_loop_quit(loop); - return TRUE; -} - -static void print_timeout(GMainLoop* loop) -{ - if (g_main_loop_is_running(loop)) - g_main_loop_quit(loop); -} - -static void test_webkit_web_frame_printing(void) -{ - WebKitWebView* webView; - - webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(webView); - g_assert_cmpint(G_OBJECT(webView)->ref_count, ==, 1); - - webkit_web_view_load_string(webView, - "<html><body><h1>WebKitGTK+!</h1></body></html>", - "text/html", - "utf-8", - "file://"); - - GMainLoop* loop = g_main_loop_new(NULL, TRUE); - - // Does javascript print() work correctly? - g_signal_connect(webView, "print-requested", - G_CALLBACK(print_requested_cb), - loop); - - g_object_set_data(G_OBJECT(webView), "signal-handled", GINT_TO_POINTER(FALSE)); - webkit_web_view_execute_script (webView, "print();"); - - // Give javascriptcore some time to process the print request, but - // prepare a timeout to avoid it running forever in case the signal is - // never emitted. - g_timeout_add(1000, (GSourceFunc)print_timeout, loop); - g_main_loop_run(loop); - - g_assert_cmpint(GPOINTER_TO_INT(g_object_get_data(G_OBJECT(webView), "signal-handled")), ==, TRUE); - - // Does printing directly to a file? - GError *error = NULL; - gchar* temporaryFilename = NULL; - gint fd = g_file_open_tmp ("webkit-testwebframe-XXXXXX", &temporaryFilename, &error); - close(fd); - - if (error) { - g_critical("Failed to open a temporary file for writing: %s.", error->message); - g_error_free(error); - goto cleanup; - } - - // We delete the file, so that we can easily figure out that the - // file got printed; - if (g_unlink(temporaryFilename) == -1) { - g_warning("Failed to delete the temporary file: %s.\nThis may cause the test to be bogus.", g_strerror(errno)); - } - - WebKitWebFrame* webFrame = webkit_web_view_get_main_frame(webView); - GtkPrintOperation* operation = gtk_print_operation_new(); - GtkPrintOperationAction action = GTK_PRINT_OPERATION_ACTION_EXPORT; - GtkPrintOperationResult result; - - gtk_print_operation_set_export_filename(operation, temporaryFilename); - result = webkit_web_frame_print_full (webFrame, operation, action, NULL); - - g_assert_cmpint(result, ==, GTK_PRINT_OPERATION_RESULT_APPLY); - g_assert_cmpint(g_file_test(temporaryFilename, G_FILE_TEST_IS_REGULAR), ==, TRUE); - - g_unlink(temporaryFilename); - g_object_unref(operation); -cleanup: - g_object_unref(webView); - g_free(temporaryFilename); -} - -static void test_webkit_web_frame_response() -{ - WebKitWebFrame* frame = g_object_new(WEBKIT_TYPE_WEB_FRAME, NULL); - WebKitNetworkResponse* response = webkit_web_frame_get_network_response(frame); - g_assert(!response); - g_object_unref(frame); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/webview/create_destroy", test_webkit_web_frame_create_destroy); - g_test_add_func("/webkit/webview/frame-created_signal", test_webkit_web_frame_created_signal); - g_test_add_func("/webkit/webframe/lifetime", test_webkit_web_frame_lifetime); - g_test_add_func("/webkit/webview/printing", test_webkit_web_frame_printing); - g_test_add_func("/webkit/webview/response", test_webkit_web_frame_response); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebhistoryitem.c b/Source/WebKit/gtk/tests/testwebhistoryitem.c deleted file mode 100644 index 40ced4c71..000000000 --- a/Source/WebKit/gtk/tests/testwebhistoryitem.c +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -typedef struct { - WebKitWebHistoryItem* item; -} WebHistoryItemFixture; - -static void web_history_item_fixture_setup(WebHistoryItemFixture* fixture, - gconstpointer data) -{ - fixture->item = webkit_web_history_item_new_with_data("http://example.com/", "Example1"); - g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, == , 1); - g_assert(fixture->item != NULL); -} - -static void web_history_item_fixture_teardown(WebHistoryItemFixture* fixture, - gconstpointer data) -{ - g_assert(fixture->item != NULL); - g_assert_cmpint(G_OBJECT(fixture->item)->ref_count, ==, 1); -} - -static void test_webkit_web_history_item_get_data(WebHistoryItemFixture* fixture, - gconstpointer data) -{ - g_assert_cmpstr(webkit_web_history_item_get_title(fixture->item), ==, "Example1"); - g_assert_cmpstr(webkit_web_history_item_get_uri(fixture->item), ==, "http://example.com/"); -} - -static void test_webkit_web_history_item_alternate_title(WebHistoryItemFixture* fixture, - gconstpointer data) -{ - webkit_web_history_item_set_alternate_title(fixture->item, "Alternate title"); - g_assert_cmpstr(webkit_web_history_item_get_alternate_title(fixture->item), ==, "Alternate title"); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add("/webkit/webhistoryitem/get_data", - WebHistoryItemFixture, 0, web_history_item_fixture_setup, - test_webkit_web_history_item_get_data, web_history_item_fixture_teardown); - g_test_add("/webkit/webhistoryitem/alternate_title", - WebHistoryItemFixture, 0, web_history_item_fixture_setup, - test_webkit_web_history_item_alternate_title, web_history_item_fixture_teardown); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebinspector.c b/Source/WebKit/gtk/tests/testwebinspector.c deleted file mode 100644 index 8de6904fd..000000000 --- a/Source/WebKit/gtk/tests/testwebinspector.c +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (C) 2012 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <string.h> -#include <glib.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -GMainLoop *loop; -GtkWidget *window; - -static gboolean quitLoop(gpointer data) -{ - g_main_loop_quit(loop); - return TRUE; -} - -/* Ignore simple translation-related messages and upgrade other - * messages to warnings. - */ -static gboolean consoleMessageCallback(WebKitWebView* webView, const char* message, unsigned int line, const char* sourceId) -{ - if (strstr(message, "Localized string") || strstr(message, "Protocol Error: the message is for non-existing domain 'Profiler'")) - return TRUE; - - g_warning("Console: %s @%d: %s\n", sourceId, line, message); - return TRUE; -} - -static WebKitWebView* inspectElementCallback(WebKitWebInspector *inspector, WebKitWebView *inspectedWebView, int *timesElementInspected) -{ - *timesElementInspected = *timesElementInspected + 1; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - GtkWidget *newWebView = webkit_web_view_new(); - gtk_container_add(GTK_CONTAINER(window), newWebView); - - g_signal_connect(newWebView, "console-message", - G_CALLBACK(consoleMessageCallback), NULL); - - return WEBKIT_WEB_VIEW(newWebView); -} - -static gboolean closeInspector(WebKitWebInspector *inspector, int *timesClosed) -{ - *timesClosed = *timesClosed + 1; - - gtk_widget_destroy(window); - return TRUE; -} - -static gboolean showInspector(WebKitWebInspector *inspector, gpointer data) -{ - g_idle_add(quitLoop, NULL); - return TRUE; -} - -static void loadFinished(WebKitWebView *webView, WebKitWebFrame *frame, gboolean *isLoadFinished) -{ - *isLoadFinished = TRUE; - if (g_main_loop_is_running(loop)) - g_main_loop_quit(loop); -} - -static void test_webkit_web_inspector_close_and_inspect() -{ - WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - loop = g_main_loop_new(NULL, TRUE); - - gboolean isLoadFinished = FALSE; - g_signal_connect(webView, "load-finished", G_CALLBACK(loadFinished), &isLoadFinished); - webkit_web_view_load_string(webView, - "<html><body><p>woohoo</p></body></html>", - "text/html", "UTF-8", "file://"); - if (!isLoadFinished) - g_main_loop_run(loop); - - g_object_set(webkit_web_view_get_settings(webView), "enable-developer-extras", TRUE, NULL); - WebKitWebInspector *inspector = webkit_web_view_get_inspector(webView); - - int timesElementInspected = 0; - int timesClosed = 0; - g_object_connect(inspector, - "signal::inspect-web-view", G_CALLBACK(inspectElementCallback), ×ElementInspected, - "signal::show-window", G_CALLBACK(showInspector), NULL, - "signal::close-window", G_CALLBACK(closeInspector), ×Closed, - NULL); - - webkit_web_inspector_inspect_coordinates(inspector, 0.0, 0.0); - g_assert_cmpint(timesElementInspected, ==, 1); - - g_main_loop_run(loop); - - webkit_web_inspector_close(inspector); - g_assert_cmpint(timesClosed, ==, 1); - - webkit_web_inspector_inspect_coordinates(inspector, 0.0, 0.0); - g_assert_cmpint(timesElementInspected, ==, 2); - - g_main_loop_run(loop); - - gtk_widget_destroy(GTK_WIDGET(webView)); - g_assert_cmpint(timesClosed, ==, 2); - - g_main_loop_unref(loop); -} - -static void test_webkit_web_inspector_destroy_inspected_web_view() -{ - WebKitWebView *webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - loop = g_main_loop_new(NULL, TRUE); - - gboolean isLoadFinished = FALSE; - g_signal_connect(webView, "load-finished", G_CALLBACK(loadFinished), &isLoadFinished); - webkit_web_view_load_string(webView, - "<html><body><p>woohoo</p></body></html>", - "text/html", "UTF-8", "file://"); - if (!isLoadFinished) - g_main_loop_run(loop); - - g_object_set(webkit_web_view_get_settings(webView), "enable-developer-extras", TRUE, NULL); - WebKitWebInspector *inspector = webkit_web_view_get_inspector(webView); - - int timesElementInspected = 0; - int timesClosed = 0; - g_object_connect(inspector, - "signal::inspect-web-view", G_CALLBACK(inspectElementCallback), ×ElementInspected, - "signal::show-window", G_CALLBACK(showInspector), NULL, - "signal::close-window", G_CALLBACK(closeInspector), ×Closed, - NULL); - - webkit_web_inspector_inspect_coordinates(inspector, 0.0, 0.0); - g_assert_cmpint(timesElementInspected, ==, 1); - - g_main_loop_run(loop); - - gtk_widget_destroy(GTK_WIDGET(webView)); - g_assert_cmpint(timesClosed, ==, 1); - - g_main_loop_unref(loop); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/webinspector/destroy-inspected-web-view", test_webkit_web_inspector_destroy_inspected_web_view); - g_test_add_func("/webkit/webinspector/close-and-inspect", test_webkit_web_inspector_close_and_inspect); - - return g_test_run(); -} diff --git a/Source/WebKit/gtk/tests/testwebplugindatabase.c b/Source/WebKit/gtk/tests/testwebplugindatabase.c deleted file mode 100644 index 7a1f7ec0e..000000000 --- a/Source/WebKit/gtk/tests/testwebplugindatabase.c +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <errno.h> -#include <glib.h> -#include <glib/gstdio.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -/* This function is not public, so we need an extern declaration */ -extern void webkit_web_settings_add_extra_plugin_directory(WebKitWebView* view, const gchar* directory); - -static void test_webkit_web_plugin_database_get_plugins() -{ - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - WebKitWebPluginDatabase* database; - GSList* pluginList, *p; - gboolean found = FALSE; - gboolean enabled = FALSE; - - webkit_web_settings_add_extra_plugin_directory(view, TEST_PLUGIN_DIR); - g_object_ref_sink(G_OBJECT(view)); - - database = webkit_get_web_plugin_database(); - pluginList = webkit_web_plugin_database_get_plugins(database); - for (p = pluginList; p; p = p->next) { - WebKitWebPlugin* plugin = (WebKitWebPlugin*)p->data; - if (!g_strcmp0(webkit_web_plugin_get_name(plugin), "WebKit Test PlugIn") && - !g_strcmp0(webkit_web_plugin_get_description(plugin), "Simple Netscape® plug-in that handles test content for WebKit")) { - found = TRUE; - enabled = webkit_web_plugin_get_enabled(plugin); - webkit_web_plugin_set_enabled(plugin, FALSE); - } - } - webkit_web_plugin_database_plugins_list_free(pluginList); - g_assert(found); - g_assert(enabled); - - webkit_web_plugin_database_refresh(database); - pluginList = webkit_web_plugin_database_get_plugins(database); - - for (p = pluginList; p; p = p->next) { - WebKitWebPlugin* plugin = (WebKitWebPlugin*)p->data; - if (!g_strcmp0(webkit_web_plugin_get_name(plugin), "WebKit Test PlugIn") && - !g_strcmp0(webkit_web_plugin_get_description(plugin), "Simple Netscape® plug-in that handles test content for WebKit")) - enabled = webkit_web_plugin_get_enabled(plugin); - } - webkit_web_plugin_database_plugins_list_free(pluginList); - g_assert(!enabled); - - g_object_unref(view); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/webplugindatabase/getplugins", test_webkit_web_plugin_database_get_plugins); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebresource.c b/Source/WebKit/gtk/tests/testwebresource.c deleted file mode 100644 index b91eb2c10..000000000 --- a/Source/WebKit/gtk/tests/testwebresource.c +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <libsoup/soup.h> -#include <string.h> -#include <webkit/webkit.h> - -#define INDEX_HTML "<html></html>" -#define MAIN_HTML "<html><head><script language=\"javascript\" src=\"/javascript.js\"></script></head><body><h1>hah</h1></html>" -#define JAVASCRIPT "function blah () { var a = 1; }" - -GMainLoop* loop; -SoupSession *session; -char *base_uri; -WebKitWebResource* main_resource; -WebKitWebResource* sub_resource; - -typedef struct { - WebKitWebResource* webResource; - WebKitWebView* webView; -} WebResourceFixture; - -/* For real request testing */ -static void -server_callback (SoupServer *server, SoupMessage *msg, - const char *path, GHashTable *query, - SoupClientContext *context, gpointer data) -{ - if (msg->method != SOUP_METHOD_GET) { - soup_message_set_status (msg, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status (msg, SOUP_STATUS_OK); - - /* Redirect */ - if (g_str_equal (path, "/")) { - soup_message_set_status (msg, SOUP_STATUS_MOVED_PERMANENTLY); - - soup_message_headers_append (msg->response_headers, - "Location", "/index.html"); - } else if (g_str_equal (path, "/index.html")) { - soup_message_body_append (msg->response_body, - SOUP_MEMORY_COPY, - INDEX_HTML, - strlen (INDEX_HTML)); - } else if (g_str_equal (path, "/main.html")) { - soup_message_body_append (msg->response_body, - SOUP_MEMORY_COPY, - MAIN_HTML, - strlen (MAIN_HTML)); - } else if (g_str_equal (path, "/javascript.js")) { - soup_message_body_append (msg->response_body, - SOUP_MEMORY_COPY, - JAVASCRIPT, - strlen (JAVASCRIPT)); - } - - - soup_message_body_complete (msg->response_body); -} - -static void web_resource_fixture_setup(WebResourceFixture* fixture, gconstpointer data) -{ - fixture->webView = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(fixture->webView); - const gchar* webData = "<html></html>"; - fixture->webResource = webkit_web_resource_new(webData, strlen(webData), "http://example.com/", "text/html", "utf8", "Example.com"); - g_assert(fixture->webResource); -} - -static void web_resource_fixture_teardown(WebResourceFixture* fixture, gconstpointer data) -{ - g_assert(fixture->webResource); - g_object_unref(fixture->webResource); - g_object_unref(fixture->webView); -} - -static void test_webkit_web_resource_get_url(WebResourceFixture* fixture, gconstpointer data) -{ - gchar* url; - g_object_get(G_OBJECT(fixture->webResource), "uri", &url, NULL); - g_assert_cmpstr(url, ==, "http://example.com/"); - g_assert_cmpstr(webkit_web_resource_get_uri(fixture->webResource) ,==,"http://example.com/"); - g_free(url); -} - -static void test_webkit_web_resource_get_data(WebResourceFixture* fixture, gconstpointer data) -{ - GString* charData = webkit_web_resource_get_data(fixture->webResource); - g_assert_cmpstr(charData->str, ==, "<html></html>"); -} - -static void test_webkit_web_resource_get_mime_type(WebResourceFixture* fixture, gconstpointer data) -{ - gchar* mime_type; - g_object_get(G_OBJECT(fixture->webResource), "mime-type", &mime_type, NULL); - g_assert_cmpstr(mime_type, ==, "text/html"); - g_assert_cmpstr(webkit_web_resource_get_mime_type(fixture->webResource),==,"text/html"); - g_free(mime_type); -} - -static void test_webkit_web_resource_get_encoding(WebResourceFixture* fixture, gconstpointer data) -{ - gchar* text_encoding; - g_object_get(G_OBJECT(fixture->webResource), "encoding", &text_encoding, NULL); - g_assert_cmpstr(text_encoding, ==, "utf8"); - g_assert_cmpstr(webkit_web_resource_get_encoding(fixture->webResource),==,"utf8"); - g_free(text_encoding); -} - -static void test_webkit_web_resource_get_frame_name(WebResourceFixture* fixture, gconstpointer data) -{ - gchar* frame_name; - g_object_get(G_OBJECT(fixture->webResource), "frame-name", &frame_name, NULL); - g_assert_cmpstr(frame_name, ==, "Example.com"); - g_assert_cmpstr(webkit_web_resource_get_frame_name(fixture->webResource),==,"Example.com"); - g_free(frame_name); -} - -static void resource_request_starting_cb(WebKitWebView* web_view, WebKitWebFrame* web_frame, WebKitWebResource* web_resource, WebKitNetworkRequest* request, WebKitNetworkResponse* response, gpointer data) -{ - gint* been_there = data; - *been_there = *been_there + 1; - - if (*been_there == 1) { - g_assert(!main_resource); - main_resource = g_object_ref(web_resource); - - g_assert_cmpstr(webkit_web_resource_get_uri(web_resource), ==, base_uri); - - /* This should be a redirect, so the response must be NULL */ - g_assert(!response); - } else if (*been_there == 2) { - char* uri = g_strdup_printf("%sindex.html", base_uri); - - g_assert_cmpstr(webkit_web_resource_get_uri(web_resource), ==, uri); - - /* Cancel the request. */ - webkit_network_request_set_uri(request, "about:blank"); - - g_free(uri); - } -} - -static void notify_load_status_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED) { - gboolean* been_there = data; - *been_there = TRUE; - - g_assert_cmpstr(webkit_web_view_get_uri(web_view), ==, "about:blank"); - - g_main_loop_quit(loop); - } -} - -static void test_web_resource_loading() -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - gint been_to_resource_request_starting = 0; - gboolean been_to_load_finished = FALSE; - WebKitWebFrame* web_frame; - WebKitWebDataSource* data_source; - - loop = g_main_loop_new(NULL, TRUE); - - g_object_ref_sink(web_view); - - g_signal_connect(web_view, "resource-request-starting", - G_CALLBACK(resource_request_starting_cb), - &been_to_resource_request_starting); - - g_signal_connect(web_view, "notify::load-status", - G_CALLBACK(notify_load_status_cb), - &been_to_load_finished); - - webkit_web_view_load_uri(web_view, base_uri); - - /* We won't get finished immediately, because of the redirect */ - g_main_loop_run(loop); - - web_frame = webkit_web_view_get_main_frame(web_view); - data_source = webkit_web_frame_get_data_source(web_frame); - - g_assert(main_resource); - g_assert(webkit_web_data_source_get_main_resource(data_source) == main_resource); - g_object_unref(main_resource); - - g_assert_cmpint(been_to_resource_request_starting, ==, 2); - g_assert_cmpint(been_to_load_finished, ==, TRUE); - - g_object_unref(web_view); - g_main_loop_unref(loop); -} - -static void resource_request_starting_sub_cb(WebKitWebView* web_view, WebKitWebFrame* web_frame, WebKitWebResource* web_resource, WebKitNetworkRequest* request, WebKitNetworkResponse* response, gpointer data) -{ - if (!main_resource) - main_resource = g_object_ref(web_resource); - else if (!sub_resource) - sub_resource = g_object_ref(web_resource); -} - -static void notify_load_status_sub_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED) - g_main_loop_quit(loop); -} - -static gboolean idle_quit_loop_cb(gpointer data) -{ - g_main_loop_quit(loop); - return FALSE; -} - -static void test_web_resource_sub_resource_loading() -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - WebKitWebFrame* web_frame; - WebKitWebDataSource* data_source; - GList* sub_resources; - char* uri = g_strdup_printf("%smain.html", base_uri); - - main_resource = NULL; - - loop = g_main_loop_new(NULL, TRUE); - - g_object_ref_sink(web_view); - - g_signal_connect(web_view, "resource-request-starting", - G_CALLBACK(resource_request_starting_sub_cb), - NULL); - - g_signal_connect(web_view, "notify::load-status", - G_CALLBACK(notify_load_status_sub_cb), - NULL); - - webkit_web_view_load_uri(web_view, uri); - - g_main_loop_run(loop); - - /* The main resource should be loaded; now let's wait for the sub-resource to load */ - g_idle_add(idle_quit_loop_cb, NULL); - g_main_loop_run(loop); - - g_assert(main_resource && sub_resource); - g_assert(main_resource != sub_resource); - - web_frame = webkit_web_view_get_main_frame(web_view); - data_source = webkit_web_frame_get_data_source(web_frame); - - g_assert(webkit_web_data_source_get_main_resource(data_source) == main_resource); - g_object_unref(main_resource); - - sub_resources = webkit_web_data_source_get_subresources(data_source); - // Expected resources: javascripts.js, favicon.ico - g_assert(sub_resources); - g_assert(sub_resources->next); - g_assert(!sub_resources->next->next); - - // Test that the object we got from the data source is the same - // that went through resource-request-starting. Note that the order is - // not important (and not guaranteed since the resources are stored in a - // hashtable). - g_assert(WEBKIT_WEB_RESOURCE(sub_resources->data) == sub_resource - || WEBKIT_WEB_RESOURCE(sub_resources->next->data) == sub_resource); - - g_object_unref(web_view); - g_main_loop_unref(loop); -} - -int main(int argc, char** argv) -{ - SoupServer* server; - SoupURI* soup_uri; - - gtk_test_init(&argc, &argv, NULL); - - server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - - soup_server_add_handler(server, NULL, server_callback, NULL, NULL); - - soup_uri = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(soup_uri, soup_server_get_port(server)); - - base_uri = soup_uri_to_string(soup_uri, FALSE); - soup_uri_free(soup_uri); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add("/webkit/webresource/get_url", - WebResourceFixture, 0, web_resource_fixture_setup, - test_webkit_web_resource_get_url, web_resource_fixture_teardown); - g_test_add("/webkit/webresource/get_mime_type", - WebResourceFixture, 0, web_resource_fixture_setup, - test_webkit_web_resource_get_mime_type, web_resource_fixture_teardown); - g_test_add("/webkit/webresource/get_text_encoding_name", - WebResourceFixture, 0, web_resource_fixture_setup, - test_webkit_web_resource_get_encoding, web_resource_fixture_teardown); - g_test_add("/webkit/webresource/get_frame_name", - WebResourceFixture, 0, web_resource_fixture_setup, - test_webkit_web_resource_get_frame_name, web_resource_fixture_teardown); - g_test_add("/webkit/webresource/get_data", - WebResourceFixture, 0, web_resource_fixture_setup, - test_webkit_web_resource_get_data, web_resource_fixture_teardown); - - g_test_add_func("/webkit/webresource/loading", test_web_resource_loading); - g_test_add_func("/webkit/webresource/sub_resource_loading", test_web_resource_sub_resource_loading); - - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebsettings.c b/Source/WebKit/gtk/tests/testwebsettings.c deleted file mode 100644 index 5ed5b185a..000000000 --- a/Source/WebKit/gtk/tests/testwebsettings.c +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -/* Private API */ -char* webkitWebSettingsUserAgentForURI(WebKitWebSettings *settings, const char *uri); - -static void test_webkit_web_settings_copy(void) -{ - WebKitWebSettings *settings = webkit_web_settings_new(); - - // Set some non-default settings to verify that settings are properly copied. - g_object_set(settings, - "enable-webgl", TRUE, - "enable-fullscreen", TRUE, - "auto-load-images", FALSE, - "default-encoding", "utf-8", NULL); - - WebKitWebSettings *copy = webkit_web_settings_copy(settings); - - gboolean enableWebGL = FALSE; - gboolean enableFullscreen = FALSE; - gboolean autoLoadImages = FALSE; - char *defaultEncoding = 0; - g_object_get(copy, - "enable-fullscreen", &enableFullscreen, - "enable-webgl", &enableWebGL, - "auto-load-images", &autoLoadImages, - "default-encoding", &defaultEncoding, NULL); - - g_assert(enableWebGL); - g_assert(enableFullscreen); - g_assert(!autoLoadImages); - g_assert_cmpstr(defaultEncoding, ==, "utf-8"); - g_free(defaultEncoding); -} - -static void test_non_quirky_user_agents(WebKitWebSettings *settings, const char *defaultUserAgent) -{ - char *userAgent = 0; - - // test a custom UA string - userAgent = 0; - g_object_set(settings, "user-agent", "testwebsettings/0.1", NULL); - g_object_get(settings,"user-agent", &userAgent, NULL); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - // setting it to NULL or an empty value should give us the default UA string - userAgent = 0; - g_object_set(settings, "user-agent", 0, NULL); - g_object_get(settings,"user-agent", &userAgent, NULL); - g_assert_cmpstr(userAgent, ==, defaultUserAgent); - g_free(userAgent); - - userAgent = 0; - g_object_set(settings, "user-agent", "", NULL); - g_object_get(settings,"user-agent", &userAgent, NULL); - g_assert_cmpstr(userAgent, ==, defaultUserAgent); - g_free(userAgent); -} - -static void test_webkit_web_settings_user_agent(void) -{ - WebKitWebSettings *settings; - GtkWidget *webView; - char *defaultUserAgent; - char *userAgent = 0; - g_test_bug("17375"); - - webView = webkit_web_view_new(); - g_object_ref_sink(webView); - - settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(webView)); - defaultUserAgent = g_strdup(webkit_web_settings_get_user_agent(settings)); - - test_non_quirky_user_agents(settings, defaultUserAgent); - - /* Test quirky google domains */ - g_object_set(settings, "user-agent", "testwebsettings/0.1", NULL); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com/"); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://gmail.com/"); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com.br/"); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://calendar.google.com/"); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - /* Now enable quirks handling */ - g_object_set(settings, "enable-site-specific-quirks", TRUE, NULL); - - test_non_quirky_user_agents(settings, defaultUserAgent); - - g_object_set(settings, "user-agent", "testwebsettings/0.1", NULL); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com/"); - g_assert_cmpstr(userAgent, ==, defaultUserAgent); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://gmail.com/"); - g_assert_cmpstr(userAgent, ==, defaultUserAgent); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.com.br/"); - g_assert_cmpstr(userAgent, ==, defaultUserAgent); - g_free(userAgent); - - userAgent = webkitWebSettingsUserAgentForURI(settings, "http://www.google.uk.not.com.br/"); - g_assert_cmpstr(userAgent, ==, "testwebsettings/0.1"); - g_free(userAgent); - - g_free(defaultUserAgent); - g_object_unref(webView); -} - -int main(int argc, char **argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/websettings/user_agent", test_webkit_web_settings_user_agent); - g_test_add_func("/webkit/websettings/copy", test_webkit_web_settings_copy); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwebview.c b/Source/WebKit/gtk/tests/testwebview.c deleted file mode 100644 index 90e6cc36a..000000000 --- a/Source/WebKit/gtk/tests/testwebview.c +++ /dev/null @@ -1,724 +0,0 @@ -/* - * Copyright (C) 2008 Holger Hans Peter Freyther - * Copyright (C) 2009, 2010 Collabora Ltd. - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include "test_utils.h" - -#include <errno.h> -#include <unistd.h> -#include <string.h> - -#include <glib.h> -#include <glib/gstdio.h> -#include <gdk/gdk.h> -#include <gdk/gdkkeysyms.h> -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -GMainLoop* loop; -SoupSession *session; -char* base_uri; - -/* For real request testing */ -static void -server_callback(SoupServer* server, SoupMessage* msg, - const char* path, GHashTable* query, - SoupClientContext* context, gpointer data) -{ - if (msg->method != SOUP_METHOD_GET) { - soup_message_set_status(msg, SOUP_STATUS_NOT_IMPLEMENTED); - return; - } - - soup_message_set_status(msg, SOUP_STATUS_OK); - - if (g_str_equal(path, "/favicon.ico")) { - char* contents; - gsize length; - GError* error = NULL; - - g_file_get_contents("blank.ico", &contents, &length, &error); - g_assert(!error); - - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, length); - } else if (g_str_equal(path, "/bigdiv.html")) { - char* contents = g_strdup("<html><body><a id=\"link\" href=\"http://abc.def\">test</a><div style=\"background-color: green; height: 1200px;\"></div></body></html>"); - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, strlen(contents)); - } else if (g_str_equal(path, "/iframe.html")) { - char* contents = g_strdup("<html><body id=\"some-content\"><div style=\"background-color: green; height: 50px;\"></div><iframe src=\"bigdiv.html\"></iframe></body></html>"); - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, strlen(contents)); - } else { - char* contents = g_strdup("<html><body>test</body></html>"); - soup_message_body_append(msg->response_body, SOUP_MEMORY_TAKE, contents, strlen(contents)); - } - - soup_message_body_complete(msg->response_body); -} - -static void idle_quit_loop_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED || - webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FAILED) - g_main_loop_quit(loop); -} - -static gboolean timeout_cb(gpointer data) -{ - g_error("Didn't get icon-uri before timing out."); - return FALSE; -} - -static void icon_uri_changed_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - char* expected_uri; - - g_assert_cmpstr(g_param_spec_get_name(pspec), ==, "icon-uri"); - - expected_uri = g_strdup_printf("%sfavicon.ico", base_uri); - g_assert_cmpstr(webkit_web_view_get_icon_uri(web_view), ==, expected_uri); - g_free(expected_uri); - - g_main_loop_quit(loop); -} - -static void icon_loaded_cb(WebKitWebView* web_view, char* icon_uri, gpointer data) -{ - gboolean* been_here = (gboolean*)data; - char* expected_uri = g_strdup_printf("%sfavicon.ico", base_uri); - g_assert_cmpstr(icon_uri, ==, expected_uri); - g_free(expected_uri); - - g_assert_cmpstr(icon_uri, ==, webkit_web_view_get_icon_uri(web_view)); - - *been_here = TRUE; -} - -static void test_webkit_web_view_icon_uri() -{ - gboolean been_to_icon_loaded = FALSE; - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - g_object_ref_sink(G_OBJECT(view)); - - loop = g_main_loop_new(NULL, TRUE); - - g_object_connect(G_OBJECT(view), - "signal::notify::icon-uri", icon_uri_changed_cb, NULL, - "signal::icon-loaded", icon_loaded_cb, &been_to_icon_loaded, - NULL); - - webkit_web_view_load_uri(view, base_uri); - - guint timeout_id = g_timeout_add(500, timeout_cb, 0); - - g_main_loop_run(loop); - - g_source_remove(timeout_id); - - g_assert(been_to_icon_loaded); - - g_object_unref(view); -} - -static gboolean map_event_cb(GtkWidget *widget, GdkEvent* event, gpointer data) -{ - GMainLoop* loop = (GMainLoop*)data; - g_main_loop_quit(loop); - - return FALSE; -} - -static gboolean quit_after_short_delay_cb(gpointer data) -{ - g_main_loop_quit((GMainLoop*)data); - return FALSE; -} - -static void test_webkit_web_view_grab_focus() -{ - char* uri = g_strconcat(base_uri, "iframe.html", NULL); - GtkWidget* window = gtk_window_new(GTK_WINDOW_POPUP); - GtkWidget* scrolled_window = gtk_scrolled_window_new(NULL, NULL); - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - GtkAdjustment* adjustment; - - gtk_window_set_default_size(GTK_WINDOW(window), 400, 200); - - gtk_container_add(GTK_CONTAINER(window), scrolled_window); - gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(view)); - - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - loop = g_main_loop_new(NULL, TRUE); - - g_signal_connect(view, "notify::load-status", G_CALLBACK(idle_quit_loop_cb), NULL); - - /* Wait for window to show up */ - gtk_widget_show_all(window); - g_signal_connect(window, "map-event", - G_CALLBACK(map_event_cb), loop); - g_main_loop_run(loop); - - /* Load a page with a big div that will cause scrollbars to appear */ - webkit_web_view_load_uri(view, uri); - g_main_loop_run(loop); - - adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(scrolled_window)); - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 0.0); - - /* Since webkit_web_view_execute_script does not return a value, - it is impossible to know if an inner document has focus after - a node of it was focused via .focus() method. - The code below is an workaround: if the node has focus, a scroll - action is performed and afterward it is checked if the adjustment - has to be different from 0. - */ - char script[] = "var innerDoc = document.defaultView.frames[0].document; \ - innerDoc.getElementById(\"link\").focus(); \ - if (innerDoc.hasFocus()) \ - window.scrollBy(0, 100);"; - - /* Focus an element using JavaScript */ - webkit_web_view_execute_script(view, script); - - /* Adjustments update asynchronously, so we must wait a bit. */ - g_timeout_add(100, quit_after_short_delay_cb, loop); - g_main_loop_run(loop); - - /* Make sure the ScrolledWindow noticed the scroll */ - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), !=, 0.0); - - g_free(uri); - gtk_widget_destroy(window); -} - -static void do_test_webkit_web_view_adjustments(gboolean with_page_cache) -{ - char* effective_uri = g_strconcat(base_uri, "bigdiv.html", NULL); - char* second_uri = g_strconcat(base_uri, "iframe.html", NULL); - GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - GtkWidget* scrolled_window = gtk_scrolled_window_new(NULL, NULL); - WebKitWebView* view = WEBKIT_WEB_VIEW(webkit_web_view_new()); - GtkAdjustment* adjustment; - double lower; - double upper; - - if (with_page_cache) { - WebKitWebSettings* settings = webkit_web_view_get_settings(view); - g_object_set(settings, "enable-page-cache", TRUE, NULL); - } - - gtk_window_set_default_size(GTK_WINDOW(window), 400, 200); - - gtk_container_add(GTK_CONTAINER(window), scrolled_window); - gtk_container_add(GTK_CONTAINER(scrolled_window), GTK_WIDGET(view)); - - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - loop = g_main_loop_new(NULL, TRUE); - - g_object_connect(G_OBJECT(view), - "signal::notify::load-status", idle_quit_loop_cb, NULL, - NULL); - - /* Wait for window to show up */ - gtk_widget_show_all(window); - g_signal_connect(window, "map-event", - G_CALLBACK(map_event_cb), loop); - g_main_loop_run(loop); - - /* Load a page with a big div that will cause scrollbars to appear */ - webkit_web_view_load_uri(view, effective_uri); - g_main_loop_run(loop); - - /* Adjustments update asynchronously, so we must wait a bit. */ - g_timeout_add(100, quit_after_short_delay_cb, loop); - g_main_loop_run(loop); - - adjustment = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(scrolled_window)); - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 0.0); - - lower = gtk_adjustment_get_lower(adjustment); - upper = gtk_adjustment_get_upper(adjustment); - - /* Scroll the view using JavaScript */ - webkit_web_view_execute_script(view, "window.scrollBy(0, 100)"); - - /* Adjustments update asynchronously, so we must wait a bit. */ - g_timeout_add(100, quit_after_short_delay_cb, loop); - g_main_loop_run(loop); - - /* Make sure the ScrolledWindow noticed the scroll */ - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); - - /* Load a second URI */ - webkit_web_view_load_uri(view, second_uri); - g_main_loop_run(loop); - - /* The page loaded but the adjustments may not be updated yet. Wait a bit. */ - g_timeout_add(100, quit_after_short_delay_cb, loop); - g_main_loop_run(loop); - - /* Make sure the scrollbar has been reset */ - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 0.0); - - /* Go back */ - webkit_web_view_go_back(view); - - /* When using page cache, go_back will return syncronously */ - if (!with_page_cache) - g_main_loop_run(loop); - - /* Make sure GTK+ has time to process the changes in size, for the adjusments */ - while (gtk_events_pending()) - gtk_main_iteration(); - - /* Make sure upper and lower bounds have been restored correctly */ - g_assert_cmpfloat(lower, ==, gtk_adjustment_get_lower(adjustment)); - g_assert_cmpfloat(upper, ==, gtk_adjustment_get_upper(adjustment)); - g_assert_cmpfloat(gtk_adjustment_get_value(adjustment), ==, 100.0); - - g_free(effective_uri); - g_free(second_uri); - - gtk_widget_destroy(window); -} - -static void test_webkit_web_view_adjustments() -{ - /* Test this with page cache disabled, and enabled. */ - do_test_webkit_web_view_adjustments(FALSE); - do_test_webkit_web_view_adjustments(TRUE); -} - -gboolean delayed_destroy(gpointer data) -{ - gtk_widget_destroy(GTK_WIDGET(data)); - g_main_loop_quit(loop); - return FALSE; -} - -static void test_webkit_web_view_destroy() -{ - GtkWidget* window; - GtkWidget* web_view; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - web_view = webkit_web_view_new(); - - gtk_container_add(GTK_CONTAINER(window), web_view); - - gtk_widget_show_all(window); - - loop = g_main_loop_new(NULL, TRUE); - - g_signal_connect(window, "map-event", - G_CALLBACK(map_event_cb), loop); - g_main_loop_run(loop); - - g_idle_add(delayed_destroy, web_view); - g_main_loop_run(loop); - - gtk_widget_destroy(window); -} - -static void test_webkit_web_view_window_features() -{ - GtkWidget* window; - GtkWidget* web_view; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - web_view = webkit_web_view_new(); - - gtk_container_add(GTK_CONTAINER(window), web_view); - - gtk_widget_show_all(window); - - loop = g_main_loop_new(NULL, TRUE); - - g_signal_connect(window, "map-event", - G_CALLBACK(map_event_cb), loop); - g_main_loop_run(loop); - - /* Bug #36144 */ - g_object_set(G_OBJECT(web_view), "window-features", NULL, NULL); - - gtk_widget_destroy(window); -} - -static void test_webkit_web_view_in_offscreen_window_does_not_crash() -{ - loop = g_main_loop_new(NULL, TRUE); - - GtkWidget *window = gtk_offscreen_window_new(); - GtkWidget *web_view = webkit_web_view_new(); - - gtk_container_add(GTK_CONTAINER(window), web_view); - gtk_widget_show_all(window); - g_signal_connect(web_view, "notify::load-status", G_CALLBACK(idle_quit_loop_cb), NULL); - webkit_web_view_load_uri(WEBKIT_WEB_VIEW(web_view), base_uri); - - g_main_loop_run(loop); - - gtk_widget_destroy(window); - g_main_loop_unref(loop); -} - -static void test_webkit_web_view_does_not_steal_focus() -{ - loop = g_main_loop_new(NULL, TRUE); - - GtkWidget *window = gtk_offscreen_window_new(); - GtkWidget *webView = webkit_web_view_new(); - GtkWidget *entry = gtk_entry_new(); - -#ifdef GTK_API_VERSION_2 - GtkWidget *box = gtk_hbox_new(FALSE, 0); -#else - GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); -#endif - - gtk_container_add(GTK_CONTAINER(box), webView); - gtk_container_add(GTK_CONTAINER(box), entry); - gtk_container_add(GTK_CONTAINER(window), box); - gtk_widget_show_all(window); - - gtk_widget_grab_focus(entry); - g_assert(gtk_widget_is_focus(entry)); - - g_signal_connect(webView, "notify::load-status", G_CALLBACK(idle_quit_loop_cb), NULL); - webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(webView), - "<html><body>" - " <input id=\"entry\" type=\"text\"/>" - " <script>" - " document.getElementById(\"entry\").focus();" - " </script>" - "</body></html>", "file://"); - - g_main_loop_run(loop); - - g_assert(gtk_widget_is_focus(entry)); - - gtk_widget_destroy(window); - g_main_loop_unref(loop); -} - -static gboolean emitKeyStroke(WebKitWebView* webView) -{ - GdkEvent* pressEvent = gdk_event_new(GDK_KEY_PRESS); - pressEvent->key.keyval = GDK_KEY_f; - GdkWindow* window = gtk_widget_get_window(GTK_WIDGET(webView)); - pressEvent->key.window = window; - g_object_ref(pressEvent->key.window); - -#ifndef GTK_API_VERSION_2 - GdkDeviceManager* manager = gdk_display_get_device_manager(gdk_window_get_display(window)); - gdk_event_set_device(pressEvent, gdk_device_manager_get_client_pointer(manager)); -#endif - - // When synthesizing an event, an invalid hardware_keycode value - // can cause it to be badly processed by Gtk+. - GdkKeymapKey* keys; - gint n_keys; - if (gdk_keymap_get_entries_for_keyval(gdk_keymap_get_default(), GDK_KEY_f, &keys, &n_keys)) { - pressEvent->key.hardware_keycode = keys[0].keycode; - g_free(keys); - } - - GdkEvent* releaseEvent = gdk_event_copy(pressEvent); - gtk_main_do_event(pressEvent); - gdk_event_free(pressEvent); - releaseEvent->key.type = GDK_KEY_RELEASE; - gtk_main_do_event(releaseEvent); - gdk_event_free(releaseEvent); - - return FALSE; -} - -static gboolean entering_fullscreen_cb(WebKitWebView* webView, GObject* element, gboolean blocked) -{ - if (blocked) - g_main_loop_quit(loop); - else - g_timeout_add(200, (GSourceFunc) emitKeyStroke, webView); - return blocked; -} - -static gboolean leaving_fullscreen_cb(WebKitWebView* webView, GObject* element, gpointer data) -{ - g_main_loop_quit(loop); - return FALSE; -} - -static void test_webkit_web_view_fullscreen(gconstpointer blocked) -{ - GtkWidget* window; - GtkWidget* web_view; - WebKitWebSettings *settings; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - web_view = webkit_web_view_new(); - - settings = webkit_web_view_get_settings(WEBKIT_WEB_VIEW(web_view)); - g_object_set(settings, "enable-fullscreen", TRUE, NULL); - webkit_web_view_set_settings(WEBKIT_WEB_VIEW(web_view), settings); - - gtk_container_add(GTK_CONTAINER(window), web_view); - - gtk_widget_show_all(window); - - loop = g_main_loop_new(NULL, TRUE); - - g_signal_connect(web_view, "entering-fullscreen", G_CALLBACK(entering_fullscreen_cb), (gpointer) blocked); - g_signal_connect(web_view, "leaving-fullscreen", G_CALLBACK(leaving_fullscreen_cb), NULL); - - webkit_web_view_load_string(WEBKIT_WEB_VIEW(web_view), "<html><body>" - "<script>" - "var eventName = 'keypress';" - "document.addEventListener(eventName, function () {" - " document.documentElement.webkitRequestFullScreen();" - "}, false);" - "</script></body></html>", NULL, NULL, NULL); - - g_timeout_add(100, (GSourceFunc) emitKeyStroke, WEBKIT_WEB_VIEW(web_view)); - g_main_loop_run(loop); - - gtk_widget_destroy(window); -} - -static gboolean checkMimeTypeForFilter(GtkFileFilter* filter, const gchar* mimeType) -{ - GtkFileFilterInfo filter_info; - filter_info.contains = GTK_FILE_FILTER_MIME_TYPE; - filter_info.mime_type = mimeType; - return gtk_file_filter_filter(filter, &filter_info); -} - -static gboolean runFileChooserCbNoMultiselNoMime(WebKitWebView* webview, WebKitFileChooserRequest* request, gpointer data) -{ - g_assert(!webkit_file_chooser_request_get_select_multiple(request)); - - const gchar* const* mimeTypes = webkit_file_chooser_request_get_mime_types(request); - g_assert(!mimeTypes); - GtkFileFilter* filter = webkit_file_chooser_request_get_mime_types_filter(request); - g_assert(!filter); - - const gchar* const* selectedFiles = webkit_file_chooser_request_get_selected_files(request); - g_assert(!selectedFiles); - - g_main_loop_quit(loop); - return TRUE; -} - -static gboolean runFileChooserCbMultiselNoMime(WebKitWebView* webview, WebKitFileChooserRequest* request, gpointer data) -{ - g_assert(webkit_file_chooser_request_get_select_multiple(request)); - - const gchar* const* mimeTypes = webkit_file_chooser_request_get_mime_types(request); - g_assert(!mimeTypes); - GtkFileFilter* filter = webkit_file_chooser_request_get_mime_types_filter(request); - g_assert(!filter); - const gchar* const* selectedFiles = webkit_file_chooser_request_get_selected_files(request); - g_assert(!selectedFiles); - - // Select some files. - const gchar* filesToSelect[4] = { "/foo", "/foo/bar", "/foo/bar/baz", 0 }; - webkit_file_chooser_request_select_files(request, filesToSelect); - - // Check the files that have been just selected. - selectedFiles = webkit_file_chooser_request_get_selected_files(request); - g_assert(selectedFiles); - g_assert_cmpstr(selectedFiles[0], ==, "/foo"); - g_assert_cmpstr(selectedFiles[1], ==, "/foo/bar"); - g_assert_cmpstr(selectedFiles[2], ==, "/foo/bar/baz"); - g_assert(!selectedFiles[3]); - - g_main_loop_quit(loop); - return TRUE; -} - -static gboolean runFileChooserCbSelectionRetained(WebKitWebView* webview, WebKitFileChooserRequest* request, gpointer data) -{ - const gchar* const* selectedFiles = webkit_file_chooser_request_get_selected_files(request); - g_assert(selectedFiles); - g_assert_cmpstr(selectedFiles[0], ==, "/foo"); - g_assert_cmpstr(selectedFiles[1], ==, "/foo/bar"); - g_assert_cmpstr(selectedFiles[2], ==, "/foo/bar/baz"); - g_assert(!selectedFiles[3]); - - g_main_loop_quit(loop); - return TRUE; -} - -static gboolean runFileChooserCbNoMultiselAcceptTypes(WebKitWebView* webview, WebKitFileChooserRequest* request, gpointer data) -{ - g_assert(!webkit_file_chooser_request_get_select_multiple(request)); - - const gchar* const* mimeTypes = webkit_file_chooser_request_get_mime_types(request); - g_assert(mimeTypes); - g_assert_cmpstr(mimeTypes[0], ==, "audio/*"); - g_assert_cmpstr(mimeTypes[1], ==, "video/*"); - g_assert_cmpstr(mimeTypes[2], ==, "image/*"); - g_assert(!mimeTypes[3]); - - GtkFileFilter* filter = webkit_file_chooser_request_get_mime_types_filter(request); - g_assert(GTK_IS_FILE_FILTER(filter)); - g_assert(checkMimeTypeForFilter(filter, "audio/*")); - g_assert(checkMimeTypeForFilter(filter, "video/*")); - g_assert(checkMimeTypeForFilter(filter, "image/*")); - - const gchar* const* selectedFiles = webkit_file_chooser_request_get_selected_files(request); - g_assert(!selectedFiles); - - g_main_loop_quit(loop); - return TRUE; -} - -void doMouseButtonEvent(GtkWidget* widget, GdkEventType eventType, int x, int y, unsigned int button, unsigned int modifiers) -{ - g_assert(gtk_widget_get_realized(widget)); - - GdkEvent* event = gdk_event_new(eventType); - event->button.window = gtk_widget_get_window(widget); - g_object_ref(event->button.window); - - event->button.time = GDK_CURRENT_TIME; - event->button.x = x; - event->button.y = y; - event->button.axes = 0; - event->button.state = modifiers; - event->button.button = button; - -#ifndef GTK_API_VERSION_2 - event->button.device = gdk_device_manager_get_client_pointer(gdk_display_get_device_manager(gtk_widget_get_display(widget))); -#endif - - int xRoot, yRoot; - gdk_window_get_root_coords(gtk_widget_get_window(widget), x, y, &xRoot, &yRoot); - event->button.x_root = xRoot; - event->button.y_root = yRoot; - gtk_main_do_event(event); -} - -static void clickMouseButton(GtkWidget* widget, int x, int y, unsigned int button, unsigned int modifiers) -{ - doMouseButtonEvent(widget, GDK_BUTTON_PRESS, x, y, button, modifiers); - doMouseButtonEvent(widget, GDK_BUTTON_RELEASE, x, y, button, modifiers); -} - -static gboolean clickMouseButtonAndWaitForFileChooserRequest(WebKitWebView* webView) -{ - clickMouseButton(GTK_WIDGET(webView), 5, 5, 1, 0); - return TRUE; -} - -static void test_webkit_web_view_file_chooser() -{ - const gchar* htmlFormatBase = "<html><body>" - "<input style='position:absolute;left:0;top:0;margin:0;padding:0' type='file' %s/>" - "</body></html>"; - - GtkWidget* window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - GtkWidget* webView = webkit_web_view_new(); - gtk_container_add(GTK_CONTAINER(window), webView); - gtk_widget_show_all(window); - - loop = g_main_loop_new(NULL, TRUE); - - // Multiple selections not allowed, no MIME filtering. - gulong handler = g_signal_connect(webView, "run-file-chooser", G_CALLBACK(runFileChooserCbNoMultiselNoMime), NULL); - gchar* htmlFormat = g_strdup_printf(htmlFormatBase, ""); - webkit_web_view_load_string(WEBKIT_WEB_VIEW(webView), htmlFormat, NULL, NULL, NULL); - g_free(htmlFormat); - - g_timeout_add(100, (GSourceFunc) clickMouseButtonAndWaitForFileChooserRequest, WEBKIT_WEB_VIEW(webView)); - g_main_loop_run(loop); - - g_signal_handler_disconnect(webView, handler); - - // Multiple selections allowed, no MIME filtering, some pre-selected files. - handler = g_signal_connect(webView, "run-file-chooser", G_CALLBACK(runFileChooserCbMultiselNoMime), NULL); - htmlFormat = g_strdup_printf(htmlFormatBase, "multiple"); - webkit_web_view_load_string(WEBKIT_WEB_VIEW(webView), htmlFormat, NULL, NULL, NULL); - g_free(htmlFormat); - - g_timeout_add(100, (GSourceFunc) clickMouseButtonAndWaitForFileChooserRequest, WEBKIT_WEB_VIEW(webView)); - g_main_loop_run(loop); - - g_signal_handler_disconnect(webView, handler); - - // Perform another request to check if the list of files selected - // in the previous step appears now as part of the new request. - handler = g_signal_connect(webView, "run-file-chooser", G_CALLBACK(runFileChooserCbSelectionRetained), NULL); - g_timeout_add(100, (GSourceFunc) clickMouseButtonAndWaitForFileChooserRequest, WEBKIT_WEB_VIEW(webView)); - g_main_loop_run(loop); - - g_signal_handler_disconnect(webView, handler); - - // Multiple selections not allowed, only accept images, audio and video files. - handler = g_signal_connect(webView, "run-file-chooser", G_CALLBACK(runFileChooserCbNoMultiselAcceptTypes), NULL); - htmlFormat = g_strdup_printf(htmlFormatBase, "accept='audio/*,video/*,image/*'"); - webkit_web_view_load_string(WEBKIT_WEB_VIEW(webView), htmlFormat, NULL, NULL, NULL); - g_free(htmlFormat); - - g_timeout_add(100, (GSourceFunc) clickMouseButtonAndWaitForFileChooserRequest, WEBKIT_WEB_VIEW(webView)); - g_main_loop_run(loop); - - g_signal_handler_disconnect(webView, handler); - gtk_widget_destroy(window); -} - -int main(int argc, char** argv) -{ - SoupServer* server; - SoupURI* soup_uri; - - gtk_test_init(&argc, &argv, NULL); - - /* Hopefully make test independent of the path it's called from. */ - testutils_relative_chdir("Source/WebKit/gtk/tests/resources/test.html", argv[0]); - - server = soup_server_new(SOUP_SERVER_PORT, 0, NULL); - soup_server_run_async(server); - - soup_server_add_handler(server, NULL, server_callback, NULL, NULL); - - soup_uri = soup_uri_new("http://127.0.0.1/"); - soup_uri_set_port(soup_uri, soup_server_get_port(server)); - - base_uri = soup_uri_to_string(soup_uri, FALSE); - soup_uri_free(soup_uri); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/webview/icon-uri", test_webkit_web_view_icon_uri); - g_test_add_func("/webkit/webview/adjustments", test_webkit_web_view_adjustments); - g_test_add_func("/webkit/webview/destroy", test_webkit_web_view_destroy); - g_test_add_func("/webkit/webview/grab_focus", test_webkit_web_view_grab_focus); - g_test_add_func("/webkit/webview/window-features", test_webkit_web_view_window_features); - g_test_add_func("/webkit/webview/webview-in-offscreen-window-does-not-crash", test_webkit_web_view_in_offscreen_window_does_not_crash); - g_test_add_func("/webkit/webview/webview-does-not-steal-focus", test_webkit_web_view_does_not_steal_focus); - g_test_add_data_func("/webkit/webview/fullscreen", GINT_TO_POINTER(FALSE), test_webkit_web_view_fullscreen); - g_test_add_data_func("/webkit/webview/fullscreen-blocked", GINT_TO_POINTER(TRUE), test_webkit_web_view_fullscreen); - g_test_add_func("/webkit/webview/file-chooser", test_webkit_web_view_file_chooser); - - return g_test_run (); -} diff --git a/Source/WebKit/gtk/tests/testwindow.c b/Source/WebKit/gtk/tests/testwindow.c deleted file mode 100644 index ce66d4661..000000000 --- a/Source/WebKit/gtk/tests/testwindow.c +++ /dev/null @@ -1,119 +0,0 @@ -/* - * 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "autotoolsconfig.h" -#include <gtk/gtk.h> -#include <webkit/webkit.h> - -static void notify_load_status_cb(WebKitWebView* web_view, GParamSpec* pspec, gpointer data) -{ - if (webkit_web_view_get_load_status(web_view) == WEBKIT_LOAD_FINISHED) { - GMainLoop* loop = (GMainLoop*)data; - - g_main_loop_quit(loop); - } -} - -static void test_webkit_window_scrollbar_policy(void) -{ - GMainLoop* loop; - GtkWidget* scrolledWindow; - GtkWidget* webView; - WebKitWebFrame* mainFrame; - GtkPolicyType horizontalPolicy; - GtkPolicyType verticalPolicy; - - loop = g_main_loop_new(NULL, TRUE); - - scrolledWindow = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledWindow), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - webView = webkit_web_view_new(); - g_object_ref_sink(webView); - - g_signal_connect(webView, "notify::load-status", - G_CALLBACK(notify_load_status_cb), loop); - - gtk_container_add(GTK_CONTAINER(scrolledWindow), webView); - - mainFrame = webkit_web_view_get_main_frame(WEBKIT_WEB_VIEW(webView)); - - /* Test we correctly apply policy for not having scrollbars; This - * case is special, because we turn the policy from NEVER to - * AUTOMATIC, since we cannot easily represent the same thing - * using GtkScrolledWindow */ - webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(webView), - "<html><body>WebKit!</body><script>document.getElementsByTagName('body')[0].style.overflow = 'hidden';</script></html>", - "file://"); - - g_main_loop_run(loop); - - gtk_scrolled_window_get_policy(GTK_SCROLLED_WINDOW(scrolledWindow), - &horizontalPolicy, &verticalPolicy); - - g_assert(horizontalPolicy == GTK_POLICY_AUTOMATIC); - g_assert(verticalPolicy == GTK_POLICY_AUTOMATIC); - - g_assert(GTK_POLICY_NEVER == webkit_web_frame_get_horizontal_scrollbar_policy(mainFrame)); - g_assert(GTK_POLICY_NEVER == webkit_web_frame_get_vertical_scrollbar_policy(mainFrame)); - - /* Test we correctly apply policy for always having scrollbars */ - webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(webView), - "<html><body>WebKit!</body><script>document.getElementsByTagName('body')[0].style.overflow = 'scroll';</script></html>", - "file://"); - - g_main_loop_run(loop); - - gtk_scrolled_window_get_policy(GTK_SCROLLED_WINDOW(scrolledWindow), - &horizontalPolicy, &verticalPolicy); - - g_assert(horizontalPolicy == GTK_POLICY_ALWAYS); - g_assert(verticalPolicy == GTK_POLICY_ALWAYS); - - g_assert(horizontalPolicy == webkit_web_frame_get_horizontal_scrollbar_policy(mainFrame)); - g_assert(verticalPolicy == webkit_web_frame_get_vertical_scrollbar_policy(mainFrame)); - - /* Test we correctly apply policy for having scrollbars when needed */ - webkit_web_view_load_html_string(WEBKIT_WEB_VIEW(webView), - "<html><body>WebKit!</body><script>document.getElementsByTagName('body')[0].style.overflow = 'auto';</script></html>", - "file://"); - - g_main_loop_run(loop); - - gtk_scrolled_window_get_policy(GTK_SCROLLED_WINDOW(scrolledWindow), - &horizontalPolicy, &verticalPolicy); - - g_assert(horizontalPolicy == GTK_POLICY_AUTOMATIC); - g_assert(verticalPolicy == GTK_POLICY_AUTOMATIC); - - g_assert(horizontalPolicy == webkit_web_frame_get_horizontal_scrollbar_policy(mainFrame)); - g_assert(verticalPolicy == webkit_web_frame_get_vertical_scrollbar_policy(mainFrame)); - - g_object_unref(webView); -} - -int main(int argc, char** argv) -{ - gtk_test_init(&argc, &argv, NULL); - - g_test_bug_base("https://bugs.webkit.org/"); - g_test_add_func("/webkit/window/scrollbar_policy", test_webkit_window_scrollbar_policy); - return g_test_run (); -} diff --git a/Source/WebKit/gtk/webkit.pc.in b/Source/WebKit/gtk/webkit.pc.in deleted file mode 100644 index 1d0c4e9bb..000000000 --- a/Source/WebKit/gtk/webkit.pc.in +++ /dev/null @@ -1,11 +0,0 @@ -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ -includedir=@includedir@ - -Name: WebKit -Description: Web content engine for GTK+ -Version: @VERSION@ -Requires: glib-2.0 gtk+-@GTK_API_VERSION@ libsoup-2.4 javascriptcoregtk-@WEBKITGTK_API_VERSION@ -Libs: -L${libdir} -lwebkitgtk-@WEBKITGTK_API_VERSION@ -Cflags: -I${includedir}/webkitgtk-@WEBKITGTK_API_VERSION@ diff --git a/Source/WebKit/gtk/webkit/webkit.h b/Source/WebKit/gtk/webkit/webkit.h deleted file mode 100644 index aa7b93dbd..000000000 --- a/Source/WebKit/gtk/webkit/webkit.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2007 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef __WEBKIT_H__ -#define __WEBKIT_H__ - -#include <webkit/webkitversion.h> -#include <webkit/webkitapplicationcache.h> -#include <webkit/webkitdefines.h> -#include <webkit/webkitdom.h> -#include <webkit/webkitdownload.h> -#include <webkit/webkitenumtypes.h> -#include <webkit/webkitfavicondatabase.h> -#include <webkit/webkitfilechooserrequest.h> -#include <webkit/webkitgeolocationpolicydecision.h> -#include <webkit/webkitglobals.h> -#include <webkit/webkithittestresult.h> -#include <webkit/webkiticondatabase.h> -#include <webkit/webkitnetworkrequest.h> -#include <webkit/webkitnetworkresponse.h> -#include <webkit/webkitsecurityorigin.h> -#include <webkit/webkitsoupauthdialog.h> -#include <webkit/webkitspellchecker.h> -#include <webkit/webkitviewportattributes.h> -#include <webkit/webkitwebbackforwardlist.h> -#include <webkit/webkitwebdatabase.h> -#include <webkit/webkitwebdatasource.h> -#include <webkit/webkitwebframe.h> -#include <webkit/webkitwebhistoryitem.h> -#include <webkit/webkitwebinspector.h> -#include <webkit/webkitwebnavigationaction.h> -#include <webkit/webkitwebplugin.h> -#include <webkit/webkitwebplugindatabase.h> -#include <webkit/webkitwebpolicydecision.h> -#include <webkit/webkitwebresource.h> -#include <webkit/webkitwebsettings.h> -#include <webkit/webkitwebview.h> -#include <webkit/webkitwebwindowfeatures.h> - -#endif /* __WEBKIT_H__ */ diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp b/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp deleted file mode 100644 index df3635b5d..000000000 --- a/Source/WebKit/gtk/webkit/webkitapplicationcache.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael Alonzo <jmalonzo@gmail.com> - * Copyright (C) 2011 Lukasz Slachciak - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitapplicationcache.h" - -#include "ApplicationCacheStorage.h" -#include "FileSystem.h" -#include <wtf/text/CString.h> - -// web application cache maximum storage size -static unsigned long long cacheMaxSize = UINT_MAX; - -/** - * webkit_application_cache_get_maximum_size: - * - * Returns the maximum size of the cache storage. - * By default it is set to UINT_MAX i.e. no quota. - * - * Returns: the current application cache maximum storage size - * - * Since: 1.3.13 - **/ -unsigned long long webkit_application_cache_get_maximum_size() -{ - return (cacheMaxSize = WebCore::cacheStorage().maximumSize()); -} - -/** - * webkit_application_cache_set_maximum_size: - * @size: the new web application cache maximum storage size - * - * Sets new application cache maximum storage size. - * Changing the application cache storage size will clear the cache - * and rebuild cache storage. - * - * Since: 1.3.13 - **/ -void webkit_application_cache_set_maximum_size(unsigned long long size) -{ - if (size != cacheMaxSize) { - WebCore::cacheStorage().empty(); - WebCore::cacheStorage().vacuumDatabaseFile(); - WebCore::cacheStorage().setMaximumSize(size); - cacheMaxSize = size; - } -} - -/** - * webkit_application_cache_get_database_directory_path: - * - * Returns the path to the directory WebKit will write web application - * cache databases to. By default this path is set to - * $XDG_CACHE_HOME/webkitgtk/applications and cannot be modified. - * - * Returns: the application cache database directory path - * - * Since: 1.3.13 - **/ -const gchar* webkit_application_cache_get_database_directory_path() -{ - CString path = WebCore::fileSystemRepresentation(WebCore::cacheStorage().cacheDirectory()); - return path.data(); -} - diff --git a/Source/WebKit/gtk/webkit/webkitapplicationcache.h b/Source/WebKit/gtk/webkit/webkitapplicationcache.h deleted file mode 100644 index 4fec1692b..000000000 --- a/Source/WebKit/gtk/webkit/webkitapplicationcache.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2011 Lukasz Slachciak - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2,1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitapplicationcache_h -#define webkitapplicationcache_h - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -WEBKIT_API unsigned long long -webkit_application_cache_get_maximum_size(void); - -WEBKIT_API void -webkit_application_cache_set_maximum_size(unsigned long long size); - -WEBKIT_API const gchar* -webkit_application_cache_get_database_directory_path(void); - -G_END_DECLS - -#endif /* webkitapplicationcache_h */ diff --git a/Source/WebKit/gtk/webkit/webkitauthenticationdialog.cpp b/Source/WebKit/gtk/webkit/webkitauthenticationdialog.cpp deleted file mode 100644 index e26defa70..000000000 --- a/Source/WebKit/gtk/webkit/webkitauthenticationdialog.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2013 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitauthenticationdialog.h" - -static void authenticationDialogResponseCallback(GtkWidget* authDialog, gint responseID, WebKitAuthenticationWidget* authWidget) -{ - WebCore::AuthenticationChallenge challenge = webkitAuthenticationWidgetGetChallenge(authWidget); - if (responseID == GTK_RESPONSE_OK) { - WebCore::Credential credential = webkitAuthenticationWidgetCreateCredential(authWidget); - challenge.authenticationClient()->receivedCredential(challenge, credential); - } else - challenge.authenticationClient()->receivedRequestToContinueWithoutCredential(challenge); - - gtk_widget_destroy(authDialog); -} - -GtkWidget* createAuthenticationDialog(GtkWindow* parentWindow, const WebCore::AuthenticationChallenge& challenge, CredentialStorageMode mode) -{ - GtkDialog* dialog = GTK_DIALOG(gtk_dialog_new()); - gtk_dialog_add_buttons(dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); - gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK); - - GtkWidget* contentArea = gtk_dialog_get_content_area(dialog); - gtk_container_set_border_width(GTK_CONTAINER(dialog), 5); - gtk_box_set_spacing(GTK_BOX(contentArea), 2); /* 2 * 5 + 2 = 12 */ - - GtkWidget* authWidget = webkitAuthenticationWidgetNew(challenge, mode); - gtk_box_pack_start(GTK_BOX(contentArea), authWidget, TRUE, TRUE, 0); - gtk_widget_show(authWidget); - - GtkWidget* actionArea = gtk_dialog_get_action_area(dialog); - gtk_container_set_border_width(GTK_CONTAINER(actionArea), 5); - gtk_box_set_spacing(GTK_BOX(actionArea), 6); - - GtkWindow* window = GTK_WINDOW(dialog); - gtk_window_set_resizable(window, FALSE); - gtk_window_set_title(window, ""); - gtk_window_set_icon_name(window, GTK_STOCK_DIALOG_AUTHENTICATION); - gtk_window_set_destroy_with_parent (window, TRUE); - if (parentWindow) - gtk_window_set_transient_for(window, parentWindow); - - g_signal_connect(dialog, "response", G_CALLBACK(authenticationDialogResponseCallback), authWidget); - - return GTK_WIDGET(dialog); -} diff --git a/Source/WebKit/gtk/webkit/webkitauthenticationdialog.h b/Source/WebKit/gtk/webkit/webkitauthenticationdialog.h deleted file mode 100644 index 393ac8411..000000000 --- a/Source/WebKit/gtk/webkit/webkitauthenticationdialog.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2013 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef webkitauthenticationdialog_h -#define webkitauthenticationdialog_h - -#include "WebKitAuthenticationWidget.h" - -GtkWidget* createAuthenticationDialog(GtkWindow* parentWindow, const WebCore::AuthenticationChallenge&, CredentialStorageMode); - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitdefines.h b/Source/WebKit/gtk/webkit/webkitdefines.h deleted file mode 100644 index 89099b9b9..000000000 --- a/Source/WebKit/gtk/webkit/webkitdefines.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitdefines_h -#define webkitdefines_h - -#include <glib.h> - -#ifdef G_OS_WIN32 - #ifdef BUILDING_WEBKIT - #define WEBKIT_API __declspec(dllexport) - #else - #define WEBKIT_API __declspec(dllimport) - #endif - #define WEBKIT_OBSOLETE_API WEBKIT_API -#else - #define WEBKIT_API __attribute__((visibility("default"))) - #define WEBKIT_OBSOLETE_API WEBKIT_API __attribute__((deprecated)) -#endif - -#ifndef WEBKIT_API - #define WEBKIT_API -#endif - -G_BEGIN_DECLS - -typedef struct _WebKitIconDatabase WebKitIconDatabase; -typedef struct _WebKitIconDatabaseClass WebKitIconDatabaseClass; - -typedef struct _WebKitNetworkRequest WebKitNetworkRequest; -typedef struct _WebKitNetworkRequestClass WebKitNetworkRequestClass; - -typedef struct _WebKitNetworkResponse WebKitNetworkResponse; -typedef struct _WebKitNetworkResponseClass WebKitNetworkResponseClass; - -typedef struct _WebKitWebBackForwardList WebKitWebBackForwardList; -typedef struct _WebKitWebBackForwardListClass WebKitWebBackForwardListClass; - -typedef struct _WebKitWebHistoryItem WebKitWebHistoryItem; -typedef struct _WebKitWebHistoryItemClass WebKitWebHistoryItemClass; - -typedef struct _WebKitWebFrame WebKitWebFrame; -typedef struct _WebKitWebFrameClass WebKitWebFrameClass; - -typedef struct _WebKitWebPolicyDecision WebKitWebPolicyDecision; -typedef struct _WebKitWebPolicyDecisionClass WebKitWebPolicyDecisionClass; - -typedef struct _WebKitWebSettings WebKitWebSettings; -typedef struct _WebKitWebSettingsClass WebKitWebSettingsClass; - -typedef struct _WebKitWebInspector WebKitWebInspector; -typedef struct _WebKitWebInspectorClass WebKitWebInspectorClass; - -typedef struct _WebKitWebWindowFeatures WebKitWebWindowFeatures; -typedef struct _WebKitWebWindowFeaturesClass WebKitWebWindowFeaturesClass; - -typedef struct _WebKitWebView WebKitWebView; -typedef struct _WebKitWebViewClass WebKitWebViewClass; - -typedef struct _WebKitDownload WebKitDownload; -typedef struct _WebKitDownloadClass WebKitDownloadClass; - -typedef struct _WebKitWebResource WebKitWebResource; -typedef struct _WebKitWebResourceClass WebKitWebResourceClass; - -typedef struct _WebKitWebDataSource WebKitWebDataSource; -typedef struct _WebKitWebDataSourceClass WebKitWebDataSourceClass; - -typedef struct _WebKitWebDatabase WebKitWebDatabase; -typedef struct _WebKitWebDatabaseClass WebKitWebDatabaseClass; - -typedef struct _WebKitSecurityOrigin WebKitSecurityOrigin; -typedef struct _WebKitSecurityOriginClass WebKitSecurityOriginClass; - -typedef struct _WebKitHitTestResult WebKitHitTestResult; -typedef struct _WebKitHitTestResultClass WebKitHitTestResultClass; - -typedef struct _WebKitGeolocationPolicyDecision WebKitGeolocationPolicyDecision; -typedef struct _WebKitGeolocationPolicyDecisionClass WebKitGeolocationPolicyDecisionClass; - -typedef struct _WebKitViewportAttributes WebKitViewportAttributes; -typedef struct _WebKitViewportAttributesClass WebKitViewportAttributesClass; - -typedef struct _WebKitWebPluginDatabase WebKitWebPluginDatabase; -typedef struct _WebKitWebPluginDatabaseClass WebKitWebPluginDatabaseClass; - -typedef struct _WebKitWebPlugin WebKitWebPlugin; -typedef struct _WebKitWebPluginClass WebKitWebPluginClass; - -typedef struct _WebKitSpellChecker WebKitSpellChecker; /* dummy typedef */ -typedef struct _WebKitSpellCheckerInterface WebKitSpellCheckerInterface; - -typedef struct _WebKitFaviconDatabase WebKitFaviconDatabase; -typedef struct _WebKitFaviconDatabaseClass WebKitFaviconDatabaseClass; - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitdom.h b/Source/WebKit/gtk/webkit/webkitdom.h deleted file mode 100644 index 84b9ccde4..000000000 --- a/Source/WebKit/gtk/webkit/webkitdom.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef __webkitdom_h__ -#define __webkitdom_h__ - -#include <webkitdom/webkitdom.h> - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitdownload.cpp b/Source/WebKit/gtk/webkit/webkitdownload.cpp deleted file mode 100644 index d2d5597a5..000000000 --- a/Source/WebKit/gtk/webkit/webkitdownload.cpp +++ /dev/null @@ -1,968 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitdownload.h" - -#include "ErrorsGtk.h" -#include "NotImplemented.h" -#include "ResourceHandleClient.h" -#include "ResourceHandleInternal.h" -#include "ResourceRequest.h" -#include "ResourceResponse.h" -#include "webkitdownloadprivate.h" -#include "webkitenumtypes.h" -#include "webkitglobals.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitnetworkrequestprivate.h" -#include "webkitnetworkresponse.h" -#include "webkitnetworkresponseprivate.h" -#include <glib/gi18n-lib.h> -#include <glib/gstdio.h> -#include <wtf/Noncopyable.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -#ifdef ERROR -#undef ERROR -#endif - -using namespace WebKit; -using namespace WebCore; - -/** - * SECTION:webkitdownload - * @short_description: Object used to communicate with the application when downloading. - * - * #WebKitDownload carries information about a download request, - * including a #WebKitNetworkRequest object. The application may use - * this object to control the download process, or to simply figure - * out what is to be downloaded, and do it itself. - */ - -class DownloadClient : public ResourceHandleClient { - WTF_MAKE_NONCOPYABLE(DownloadClient); - public: - DownloadClient(WebKitDownload*); - - virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&); - virtual void didReceiveData(ResourceHandle*, const char*, int, int); - virtual void didFinishLoading(ResourceHandle*, double); - virtual void didFail(ResourceHandle*, const ResourceError&); - virtual void wasBlocked(ResourceHandle*); - virtual void cannotShowURL(ResourceHandle*); - - private: - WebKitDownload* m_download; -}; - -struct _WebKitDownloadPrivate { - gchar* destinationURI; - gchar* suggestedFilename; - guint64 currentSize; - GTimer* timer; - WebKitDownloadStatus status; - GFileOutputStream* outputStream; - DownloadClient* downloadClient; - WebKitNetworkRequest* networkRequest; - WebKitNetworkResponse* networkResponse; - RefPtr<ResourceHandle> resourceHandle; -}; - -enum { - // Normal signals. - ERROR, - LAST_SIGNAL -}; - -static guint webkit_download_signals[LAST_SIGNAL] = { 0 }; - -enum { - PROP_0, - - PROP_NETWORK_REQUEST, - PROP_DESTINATION_URI, - PROP_SUGGESTED_FILENAME, - PROP_PROGRESS, - PROP_STATUS, - PROP_CURRENT_SIZE, - PROP_TOTAL_SIZE, - PROP_NETWORK_RESPONSE -}; - -G_DEFINE_TYPE(WebKitDownload, webkit_download, G_TYPE_OBJECT); - - -static void webkit_download_set_response(WebKitDownload* download, const ResourceResponse& response); -static void webkit_download_set_status(WebKitDownload* download, WebKitDownloadStatus status); - -static void webkit_download_dispose(GObject* object) -{ - WebKitDownload* download = WEBKIT_DOWNLOAD(object); - WebKitDownloadPrivate* priv = download->priv; - - if (priv->outputStream) { - g_object_unref(priv->outputStream); - priv->outputStream = NULL; - } - - if (priv->networkRequest) { - g_object_unref(priv->networkRequest); - priv->networkRequest = NULL; - } - - if (priv->networkResponse) { - g_object_unref(priv->networkResponse); - priv->networkResponse = NULL; - } - - G_OBJECT_CLASS(webkit_download_parent_class)->dispose(object); -} - -static void webkit_download_finalize(GObject* object) -{ - WebKitDownload* download = WEBKIT_DOWNLOAD(object); - WebKitDownloadPrivate* priv = download->priv; - - // We don't call webkit_download_cancel() because we don't want to emit - // signals when finalizing an object. - if (priv->resourceHandle) { - if (priv->status == WEBKIT_DOWNLOAD_STATUS_STARTED) { - priv->resourceHandle->setClient(0); - priv->resourceHandle->cancel(); - } - priv->resourceHandle.release(); - } - - delete priv->downloadClient; - - // The download object may never have _start called on it, so we - // need to make sure timer is non-NULL. - if (priv->timer) { - g_timer_destroy(priv->timer); - priv->timer = NULL; - } - - g_free(priv->destinationURI); - g_free(priv->suggestedFilename); - - G_OBJECT_CLASS(webkit_download_parent_class)->finalize(object); -} - -static void webkit_download_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitDownload* download = WEBKIT_DOWNLOAD(object); - - switch(prop_id) { - 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; - case PROP_SUGGESTED_FILENAME: - g_value_set_string(value, webkit_download_get_suggested_filename(download)); - break; - case PROP_PROGRESS: - g_value_set_double(value, webkit_download_get_progress(download)); - break; - case PROP_STATUS: - g_value_set_enum(value, webkit_download_get_status(download)); - break; - case PROP_CURRENT_SIZE: - g_value_set_uint64(value, webkit_download_get_current_size(download)); - break; - case PROP_TOTAL_SIZE: - g_value_set_uint64(value, webkit_download_get_total_size(download)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - } -} - -static void webkit_download_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec *pspec) -{ - WebKitDownload* download = WEBKIT_DOWNLOAD(object); - WebKitDownloadPrivate* priv = download->priv; - - switch(prop_id) { - 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; - case PROP_STATUS: - webkit_download_set_status(download, static_cast<WebKitDownloadStatus>(g_value_get_enum(value))); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - } -} - -static void webkit_download_class_init(WebKitDownloadClass* downloadClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(downloadClass); - objectClass->dispose = webkit_download_dispose; - objectClass->finalize = webkit_download_finalize; - objectClass->get_property = webkit_download_get_property; - objectClass->set_property = webkit_download_set_property; - - webkitInit(); - - /** - * WebKitDownload::error: - * @download: the object on which the signal is emitted - * @error_code: the corresponding error code - * @error_detail: detailed error code for the error, see - * #WebKitDownloadError - * @reason: a string describing the error - * - * Emitted when @download is interrupted either by user action or by - * network errors, @error_detail will take any value of - * #WebKitDownloadError. - * - * Since: 1.1.2 - */ - webkit_download_signals[ERROR] = g_signal_new("error", - G_TYPE_FROM_CLASS(downloadClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__INT_INT_STRING, - G_TYPE_BOOLEAN, 3, - G_TYPE_INT, - G_TYPE_INT, - G_TYPE_STRING); - - // Properties. - - /** - * WebKitDownload:network-request: - * - * The #WebKitNetworkRequest instance associated with the download. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, - PROP_NETWORK_REQUEST, - g_param_spec_object("network-request", - _("Network Request"), - _("The network request for the URI that should be downloaded"), - WEBKIT_TYPE_NETWORK_REQUEST, - (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. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, - PROP_DESTINATION_URI, - g_param_spec_string("destination-uri", - _("Destination URI"), - _("The destination URI where to save the file"), - "", - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitDownload:suggested-filename: - * - * The file name suggested as default when saving - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, - PROP_SUGGESTED_FILENAME, - g_param_spec_string("suggested-filename", - _("Suggested Filename"), - _("The filename suggested as default when saving"), - "", - WEBKIT_PARAM_READABLE)); - - /** - * WebKitDownload:progress: - * - * Determines the current progress of the download. Notice that, - * although the progress changes are reported as soon as possible, - * the emission of the notify signal for this property is - * throttled, for the benefit of download managers. If you care - * about every update, use WebKitDownload:current-size. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, PROP_PROGRESS, - g_param_spec_double("progress", - _("Progress"), - _("Determines the current progress of the download"), - 0.0, 1.0, 1.0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitDownload:status: - * - * Determines the current status of the download. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, PROP_STATUS, - g_param_spec_enum("status", - _("Status"), - _("Determines the current status of the download"), - WEBKIT_TYPE_DOWNLOAD_STATUS, - WEBKIT_DOWNLOAD_STATUS_CREATED, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitDownload:current-size: - * - * The length of the data already downloaded - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, - PROP_CURRENT_SIZE, - g_param_spec_uint64("current-size", - _("Current Size"), - _("The length of the data already downloaded"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitDownload:total-size: - * - * The total size of the file - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, - PROP_CURRENT_SIZE, - g_param_spec_uint64("total-size", - _("Total Size"), - _("The total size of the file"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(downloadClass, sizeof(WebKitDownloadPrivate)); -} - -static void webkit_download_init(WebKitDownload* download) -{ - WebKitDownloadPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(download, WEBKIT_TYPE_DOWNLOAD, WebKitDownloadPrivate); - download->priv = priv; - - priv->downloadClient = new DownloadClient(download); - priv->currentSize = 0; - priv->status = WEBKIT_DOWNLOAD_STATUS_CREATED; -} - -/** - * webkit_download_new: - * @request: a #WebKitNetworkRequest - * - * Creates a new #WebKitDownload object for the given - * #WebKitNetworkRequest object. - * - * Returns: the new #WebKitDownload - * - * Since: 1.1.2 - */ -WebKitDownload* webkit_download_new(WebKitNetworkRequest* request) -{ - g_return_val_if_fail(request, NULL); - - return WEBKIT_DOWNLOAD(g_object_new(WEBKIT_TYPE_DOWNLOAD, "network-request", request, NULL)); -} - -// Internal usage only -WebKitDownload* webkit_download_new_with_handle(WebKitNetworkRequest* request, WebCore::ResourceHandle* handle, const WebCore::ResourceResponse& response) -{ - g_return_val_if_fail(request, NULL); - - WebKitDownload* download = WEBKIT_DOWNLOAD(g_object_new(WEBKIT_TYPE_DOWNLOAD, "network-request", request, NULL)); - WebKitDownloadPrivate* priv = download->priv; - - handle->ref(); - handle->setDefersLoading(true); - priv->resourceHandle = handle; - - webkit_download_set_response(download, response); - - return download; -} - -static void webkitDownloadEmitError(WebKitDownload* download, const ResourceError& error) -{ - WebKitDownloadError errorCode; - switch (error.errorCode()) { - case DownloadErrorNetwork: - errorCode = WEBKIT_DOWNLOAD_ERROR_NETWORK; - break; - case DownloadErrorCancelledByUser: - errorCode = WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER; - break; - case DownloadErrorDestination: - errorCode = WEBKIT_DOWNLOAD_ERROR_DESTINATION; - break; - default: - g_assert_not_reached(); - } - - gboolean handled; - g_signal_emit_by_name(download, "error", 0, errorCode, error.localizedDescription().utf8().data(), &handled); -} - -static gboolean webkit_download_open_stream_for_uri(WebKitDownload* download, const gchar* uri, gboolean append=FALSE) -{ - g_return_val_if_fail(uri, FALSE); - - WebKitDownloadPrivate* priv = download->priv; - GRefPtr<GFile> file = adoptGRef(g_file_new_for_uri(uri)); - GOwnPtr<GError> error; - - if (append) - priv->outputStream = g_file_append_to(file.get(), G_FILE_CREATE_NONE, NULL, &error.outPtr()); - else - priv->outputStream = g_file_replace(file.get(), NULL, TRUE, G_FILE_CREATE_NONE, NULL, &error.outPtr()); - - if (error) { - webkitDownloadEmitError(download, downloadDestinationError(core(priv->networkResponse), error->message)); - return FALSE; - } - - GRefPtr<GFileInfo> info = adoptGRef(g_file_info_new()); - g_file_info_set_attribute_string(info.get(), "metadata::download-uri", webkit_download_get_uri(download)); - g_file_set_attributes_async(file.get(), info.get(), G_FILE_QUERY_INFO_NONE, G_PRIORITY_DEFAULT, 0, 0, 0); - - return TRUE; -} - -static void webkit_download_close_stream(WebKitDownload* download) -{ - WebKitDownloadPrivate* priv = download->priv; - if (priv->outputStream) { - g_object_unref(priv->outputStream); - priv->outputStream = NULL; - } -} - -/** - * webkit_download_start: - * @download: the #WebKitDownload - * - * Initiates the download. Notice that you must have set the - * destination-uri property before calling this method. - * - * Since: 1.1.2 - */ -void webkit_download_start(WebKitDownload* download) -{ - g_return_if_fail(WEBKIT_IS_DOWNLOAD(download)); - - WebKitDownloadPrivate* priv = download->priv; - g_return_if_fail(priv->destinationURI); - g_return_if_fail(priv->status == WEBKIT_DOWNLOAD_STATUS_CREATED); - g_return_if_fail(priv->timer == NULL); - - // For GTK, when downloading a file NetworkingContext is null - if (!priv->resourceHandle) - priv->resourceHandle = ResourceHandle::create(/* Null NetworkingContext */ NULL, core(priv->networkRequest), priv->downloadClient, false, false); - else { - priv->resourceHandle->setClient(priv->downloadClient); - priv->resourceHandle->setDefersLoading(false); - } - - priv->timer = g_timer_new(); - webkit_download_open_stream_for_uri(download, priv->destinationURI); -} - -/** - * webkit_download_cancel: - * @download: the #WebKitDownload - * - * Cancels the download. Calling this will not free the - * #WebKitDownload object, so you still need to call - * g_object_unref() on it, if you are the owner of a reference. Notice - * that cancelling the download provokes the emission of the - * WebKitDownload::error signal, reporting that the download was - * cancelled. - * - * Since: 1.1.2 - */ -void webkit_download_cancel(WebKitDownload* download) -{ - g_return_if_fail(WEBKIT_IS_DOWNLOAD(download)); - - WebKitDownloadPrivate* priv = download->priv; - - // Cancel may be called even if start was not called, so we need - // to make sure timer is non-NULL. - if (priv->timer) - g_timer_stop(priv->timer); - - if (priv->resourceHandle) - priv->resourceHandle->cancel(); - - webkit_download_set_status(download, WEBKIT_DOWNLOAD_STATUS_CANCELLED); - webkitDownloadEmitError(download, downloadCancelledByUserError(core(priv->networkResponse))); -} - -/** - * webkit_download_get_uri: - * @download: the #WebKitDownload - * - * Convenience method to retrieve the URI from the - * #WebKitNetworkRequest which is being downloaded. - * - * Returns: the URI - * - * Since: 1.1.2 - */ -const gchar* webkit_download_get_uri(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); - - WebKitDownloadPrivate* priv = download->priv; - return webkit_network_request_get_uri(priv->networkRequest); -} - -/** - * webkit_download_get_network_request: - * @download: the #WebKitDownload - * - * Retrieves the #WebKitNetworkRequest object that backs the download - * process. - * - * Returns: (transfer none): the #WebKitNetworkRequest instance - * - * Since: 1.1.2 - */ -WebKitNetworkRequest* webkit_download_get_network_request(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); - - WebKitDownloadPrivate* priv = download->priv; - return priv->networkRequest; -} - -/** - * webkit_download_get_network_response: - * @download: the #WebKitDownload - * - * Retrieves the #WebKitNetworkResponse object that backs the download - * process. - * - * Returns: (transfer none): 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) -{ - WebKitDownloadPrivate* priv = download->priv; - priv->networkResponse = kitNew(response); - - if (!response.isNull() && !response.suggestedFilename().isEmpty()) - webkit_download_set_suggested_filename(download, response.suggestedFilename().utf8().data()); -} - -/** - * webkit_download_get_suggested_filename: - * @download: the #WebKitDownload - * - * Retrieves the filename that was suggested by the server, or the one - * derived by WebKit from the URI. - * - * Returns: the suggested filename - * - * Since: 1.1.2 - */ -const gchar* webkit_download_get_suggested_filename(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); - - WebKitDownloadPrivate* priv = download->priv; - if (priv->suggestedFilename) - return priv->suggestedFilename; - - KURL url = KURL(KURL(), webkit_network_request_get_uri(priv->networkRequest)); - url.setQuery(String()); - url.removeFragmentIdentifier(); - priv->suggestedFilename = g_strdup(decodeURLEscapeSequences(url.lastPathComponent()).utf8().data()); - return priv->suggestedFilename; -} - -// for internal use only -void webkit_download_set_suggested_filename(WebKitDownload* download, const gchar* suggestedFilename) -{ - WebKitDownloadPrivate* priv = download->priv; - g_free(priv->suggestedFilename); - priv->suggestedFilename = g_strdup(suggestedFilename); - - g_object_notify(G_OBJECT(download), "suggested-filename"); -} - - -/** - * webkit_download_get_destination_uri: - * @download: the #WebKitDownload - * - * Obtains the URI to which the downloaded file will be written. This - * must have been set by the application before calling - * webkit_download_start(), and may be %NULL. - * - * Returns: the destination URI or %NULL - * - * Since: 1.1.2 - */ -const gchar* webkit_download_get_destination_uri(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), NULL); - - WebKitDownloadPrivate* priv = download->priv; - return priv->destinationURI; -} - -/** - * webkit_download_set_destination_uri: - * @download: the #WebKitDownload - * @destination_uri: the destination URI - * - * Defines the URI that should be used to save the downloaded file to. - * - * Since: 1.1.2 - */ -void webkit_download_set_destination_uri(WebKitDownload* download, const gchar* destination_uri) -{ - g_return_if_fail(WEBKIT_IS_DOWNLOAD(download)); - g_return_if_fail(destination_uri); - - WebKitDownloadPrivate* priv = download->priv; - if (priv->destinationURI && !strcmp(priv->destinationURI, destination_uri)) - return; - - if (priv->status != WEBKIT_DOWNLOAD_STATUS_CREATED && priv->status != WEBKIT_DOWNLOAD_STATUS_CANCELLED) { - ASSERT(priv->destinationURI); - - gboolean downloading = priv->outputStream != NULL; - if (downloading) - webkit_download_close_stream(download); - - GRefPtr<GFile> src = adoptGRef(g_file_new_for_uri(priv->destinationURI)); - GRefPtr<GFile> dest = adoptGRef(g_file_new_for_uri(destination_uri)); - GOwnPtr<GError> error; - - g_file_move(src.get(), dest.get(), G_FILE_COPY_BACKUP, 0, 0, 0, &error.outPtr()); - - g_free(priv->destinationURI); - priv->destinationURI = g_strdup(destination_uri); - - if (error) { - webkitDownloadEmitError(download, downloadDestinationError(core(priv->networkResponse), error->message)); - return; - } - - if (downloading) { - if (!webkit_download_open_stream_for_uri(download, destination_uri, TRUE)) { - webkit_download_cancel(download); - return; - } - } - } else { - g_free(priv->destinationURI); - priv->destinationURI = g_strdup(destination_uri); - } - - // Only notify change if everything went fine. - g_object_notify(G_OBJECT(download), "destination-uri"); -} - -/** - * webkit_download_get_status: - * @download: the #WebKitDownload - * - * Obtains the current status of the download, as a - * #WebKitDownloadStatus. - * - * Returns: the current #WebKitDownloadStatus - * - * Since: 1.1.2 - */ -WebKitDownloadStatus webkit_download_get_status(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), WEBKIT_DOWNLOAD_STATUS_ERROR); - - WebKitDownloadPrivate* priv = download->priv; - return priv->status; -} - -static void webkit_download_set_status(WebKitDownload* download, WebKitDownloadStatus status) -{ - g_return_if_fail(WEBKIT_IS_DOWNLOAD(download)); - - WebKitDownloadPrivate* priv = download->priv; - priv->status = status; - - g_object_notify(G_OBJECT(download), "status"); -} - -/** - * webkit_download_get_total_size: - * @download: the #WebKitDownload - * - * Returns the expected total size of the download. This is expected - * because the server may provide incorrect or missing - * Content-Length. Notice that this may grow over time, as it will be - * always the same as current_size in the cases where current size - * surpasses it. - * - * Returns: the expected total size of the downloaded file - * - * Since: 1.1.2 - */ -guint64 webkit_download_get_total_size(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0); - - WebKitDownloadPrivate* priv = download->priv; - SoupMessage* message = priv->networkResponse ? webkit_network_response_get_message(priv->networkResponse) : NULL; - - if (!message) - return 0; - - return MAX(priv->currentSize, static_cast<guint64>(soup_message_headers_get_content_length(message->response_headers))); -} - -/** - * webkit_download_get_current_size: - * @download: the #WebKitDownload - * - * Current already downloaded size. - * - * Returns: the already downloaded size - * - * Since: 1.1.2 - */ -guint64 webkit_download_get_current_size(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0); - - WebKitDownloadPrivate* priv = download->priv; - return priv->currentSize; -} - -/** - * webkit_download_get_progress: - * @download: a #WebKitDownload - * - * Determines the current progress of the download. - * - * Returns: a #gdouble ranging from 0.0 to 1.0. - * - * Since: 1.1.2 - */ -gdouble webkit_download_get_progress(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 1.0); - - WebKitDownloadPrivate* priv = download->priv; - if (!priv->networkResponse) - return 0.0; - - gdouble total_size = static_cast<gdouble>(webkit_download_get_total_size(download)); - - if (total_size == 0) - return 1.0; - - return ((gdouble)priv->currentSize) / total_size; -} - -/** - * webkit_download_get_elapsed_time: - * @download: a #WebKitDownload - * - * Elapsed time for the download in seconds, including any fractional - * part. If the download is finished, had an error or was cancelled - * this is the time between its start and the event. - * - * Returns: seconds since the download was started, as a #gdouble - * - * Since: 1.1.2 - */ -gdouble webkit_download_get_elapsed_time(WebKitDownload* download) -{ - g_return_val_if_fail(WEBKIT_IS_DOWNLOAD(download), 0.0); - - WebKitDownloadPrivate* priv = download->priv; - if (!priv->timer) - return 0; - - return g_timer_elapsed(priv->timer, NULL); -} - -static void webkit_download_received_data(WebKitDownload* download, const gchar* data, int length) -{ - WebKitDownloadPrivate* priv = download->priv; - - if (priv->currentSize == 0) - webkit_download_set_status(download, WEBKIT_DOWNLOAD_STATUS_STARTED); - - ASSERT(priv->outputStream); - - gsize bytes_written; - GOwnPtr<GError> error; - - g_output_stream_write_all(G_OUTPUT_STREAM(priv->outputStream), - data, length, &bytes_written, NULL, &error.outPtr()); - - if (error) { - webkitDownloadEmitError(download, downloadDestinationError(core(priv->networkResponse), error->message)); - return; - } - - priv->currentSize += length; - g_object_notify(G_OBJECT(download), "current-size"); - - ASSERT(priv->networkResponse); - if (priv->currentSize > webkit_download_get_total_size(download)) - g_object_notify(G_OBJECT(download), "total-size"); - - // Throttle progress notification to not consume high amounts of - // CPU on fast links, except when the last notification occured - // in more then 0.7 secs from now, or the last notified progress - // is passed in 1% or we reached the end. - static gdouble lastProgress = 0; - static gdouble lastElapsed = 0; - gdouble currentElapsed = g_timer_elapsed(priv->timer, NULL); - gdouble currentProgress = webkit_download_get_progress(download); - - if (lastElapsed - && lastProgress - && (currentElapsed - lastElapsed) < 0.7 - && (currentProgress - lastProgress) < 0.01 - && currentProgress < 1.0) { - return; - } - lastElapsed = currentElapsed; - lastProgress = currentProgress; - - g_object_notify(G_OBJECT(download), "progress"); -} - -static void webkit_download_finished_loading(WebKitDownload* download) -{ - webkit_download_close_stream(download); - - WebKitDownloadPrivate* priv = download->priv; - - g_timer_stop(priv->timer); - - g_object_notify(G_OBJECT(download), "progress"); - webkit_download_set_status(download, WEBKIT_DOWNLOAD_STATUS_FINISHED); -} - -static void webkit_download_error(WebKitDownload* download, const ResourceError& error) -{ - webkit_download_close_stream(download); - - WebKitDownloadPrivate* priv = download->priv; - GRefPtr<WebKitDownload> protect(download); - - g_timer_stop(priv->timer); - webkit_download_set_status(download, WEBKIT_DOWNLOAD_STATUS_ERROR); - webkitDownloadEmitError(download, downloadNetworkError(error)); -} - -DownloadClient::DownloadClient(WebKitDownload* download) - : m_download(download) -{ -} - -void DownloadClient::didReceiveResponse(ResourceHandle*, const ResourceResponse& response) -{ - webkit_download_set_response(m_download, response); - if (response.httpStatusCode() >= 400) { - m_download->priv->resourceHandle->cancel(); - webkit_download_error(m_download, ResourceError(errorDomainDownload, response.httpStatusCode(), - response.url().string(), response.httpStatusText())); - } -} - -void DownloadClient::didReceiveData(ResourceHandle*, const char* data, int length, int encodedDataLength) -{ - webkit_download_received_data(m_download, data, length); -} - -void DownloadClient::didFinishLoading(ResourceHandle*, double) -{ - webkit_download_finished_loading(m_download); -} - -void DownloadClient::didFail(ResourceHandle*, const ResourceError& error) -{ - webkit_download_error(m_download, error); -} - -void DownloadClient::wasBlocked(ResourceHandle*) -{ - // FIXME: Implement this when we have the new frame loader signals - // and error handling. - notImplemented(); -} - -void DownloadClient::cannotShowURL(ResourceHandle*) -{ - // FIXME: Implement this when we have the new frame loader signals - // and error handling. - notImplemented(); -} diff --git a/Source/WebKit/gtk/webkit/webkitdownload.h b/Source/WebKit/gtk/webkit/webkitdownload.h deleted file mode 100644 index 820e08335..000000000 --- a/Source/WebKit/gtk/webkit/webkitdownload.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitdownload_h -#define webkitdownload_h - -#include <webkit/webkitdefines.h> - -#include <glib-object.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_DOWNLOAD (webkit_download_get_type()) -#define WEBKIT_DOWNLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_DOWNLOAD, WebKitDownload)) -#define WEBKIT_DOWNLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_DOWNLOAD, WebKitDownloadClass)) -#define WEBKIT_IS_DOWNLOAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_DOWNLOAD)) -#define WEBKIT_IS_DOWNLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_DOWNLOAD)) -#define WEBKIT_DOWNLOAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_DOWNLOAD, WebKitDownloadClass)) - -/** - * WebKitDownloadStatus: - * @WEBKIT_DOWNLOAD_STATUS_ERROR: The download failed because of an error other than user cancellation. - * @WEBKIT_DOWNLOAD_STATUS_CREATED: The download has not started yet. - * @WEBKIT_DOWNLOAD_STATUS_STARTED: The download has started, but has not completed yet. - * @WEBKIT_DOWNLOAD_STATUS_CANCELLED: The user canceled the download. - * @WEBKIT_DOWNLOAD_STATUS_FINISHED: The download completed successfully. - * - * Enum values used to denote the various states of a download. - **/ -typedef enum { - WEBKIT_DOWNLOAD_STATUS_ERROR = -1, - WEBKIT_DOWNLOAD_STATUS_CREATED = 0, - WEBKIT_DOWNLOAD_STATUS_STARTED, - WEBKIT_DOWNLOAD_STATUS_CANCELLED, - WEBKIT_DOWNLOAD_STATUS_FINISHED -} WebKitDownloadStatus; - -/** - * WebKitDownloadError: - * @WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER: The download failed due to user cancellation. - * @WEBKIT_DOWNLOAD_ERROR_DESTINATION: The download failed due to disk write failure. - * @WEBKIT_DOWNLOAD_ERROR_NETWORK: The download failed due to a network error. - * - * Enum values used to denote the various download errors. - **/ -typedef enum { - WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER, - WEBKIT_DOWNLOAD_ERROR_DESTINATION, - WEBKIT_DOWNLOAD_ERROR_NETWORK -} WebKitDownloadError; - -typedef struct _WebKitDownloadPrivate WebKitDownloadPrivate; - -struct _WebKitDownload { - GObject parent_instance; - - WebKitDownloadPrivate *priv; -}; - -struct _WebKitDownloadClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_download_get_type (void); - -WEBKIT_API WebKitDownload* -webkit_download_new (WebKitNetworkRequest *request); - -WEBKIT_API void -webkit_download_start (WebKitDownload *download); - -WEBKIT_API void -webkit_download_cancel (WebKitDownload *download); - -WEBKIT_API const gchar* -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); - -WEBKIT_API const gchar* -webkit_download_get_destination_uri (WebKitDownload *download); - -WEBKIT_API void -webkit_download_set_destination_uri (WebKitDownload *download, - const gchar *destination_uri); - -WEBKIT_API gdouble -webkit_download_get_progress (WebKitDownload *download); - -WEBKIT_API gdouble -webkit_download_get_elapsed_time (WebKitDownload *download); - -WEBKIT_API guint64 -webkit_download_get_total_size (WebKitDownload *download); - -WEBKIT_API guint64 -webkit_download_get_current_size (WebKitDownload *download); - -WEBKIT_API WebKitDownloadStatus -webkit_download_get_status (WebKitDownload *download); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitdownloadprivate.h b/Source/WebKit/gtk/webkit/webkitdownloadprivate.h deleted file mode 100644 index 13cc2a49e..000000000 --- a/Source/WebKit/gtk/webkit/webkitdownloadprivate.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitdownloadprivate_h -#define webkitdownloadprivate_h - -#include "webkitdownload.h" - -extern "C" { - -WebKitDownload* webkit_download_new_with_handle(WebKitNetworkRequest*, WebCore::ResourceHandle*, const WebCore::ResourceResponse&); - -void webkit_download_set_suggested_filename(WebKitDownload*, const gchar* suggestedFilename); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkiterror.cpp b/Source/WebKit/gtk/webkit/webkiterror.cpp deleted file mode 100644 index 9e2afd346..000000000 --- a/Source/WebKit/gtk/webkit/webkiterror.cpp +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2008 Luca Bruno <lethalman88@gmail.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkiterror.h" - -#include "ErrorsGtk.h" - -GQuark webkit_network_error_quark(void) -{ - return g_quark_from_static_string(WebCore::errorDomainNetwork); -} - -GQuark webkit_policy_error_quark(void) -{ - return g_quark_from_static_string(WebCore::errorDomainPolicy); -} - -GQuark webkit_plugin_error_quark(void) -{ - return g_quark_from_static_string(WebCore::errorDomainPlugin); -} diff --git a/Source/WebKit/gtk/webkit/webkiterror.h b/Source/WebKit/gtk/webkit/webkiterror.h deleted file mode 100644 index 48fc2c31c..000000000 --- a/Source/WebKit/gtk/webkit/webkiterror.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2008 Luca Bruno <lethalman88@gmail.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkiterror_h -#define webkiterror_h - -#include <glib.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_NETWORK_ERROR webkit_network_error_quark () -#define WEBKIT_POLICY_ERROR webkit_policy_error_quark () -#define WEBKIT_PLUGIN_ERROR webkit_plugin_error_quark () - -/* The enum values are synchronized with Mac's WebKit error values. */ - -/** - * WebKitNetworkError: - * @WEBKIT_NETWORK_ERROR_FAILED: Generic load failure - * @WEBKIT_NETWORK_ERROR_TRANSPORT: Load failure due to transport error - * @WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL: Load failure due to unknown protocol - * @WEBKIT_NETWORK_ERROR_CANCELLED: Load failure due to cancellation - * @WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST: Load failure due to missing file - * - * Enum values used to denote the various network errors. - **/ -typedef enum { - WEBKIT_NETWORK_ERROR_FAILED = 399, - WEBKIT_NETWORK_ERROR_TRANSPORT = 300, - WEBKIT_NETWORK_ERROR_UNKNOWN_PROTOCOL = 301, - WEBKIT_NETWORK_ERROR_CANCELLED = 302, - WEBKIT_NETWORK_ERROR_FILE_DOES_NOT_EXIST = 303, -} WebKitNetworkError; - -/** - * WebKitPolicyError: - * @WEBKIT_POLICY_ERROR_FAILED: Generic load failure due to policy error - * @WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE: Load failure due to unsupported mime type - * @WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL: Load failure due to URI that can not be shown - * @WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE: Load failure due to frame load interruption by policy change - * @WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT: Load failure due to port restriction - * - * Enum values used to denote the various policy errors. - **/ -typedef enum { - WEBKIT_POLICY_ERROR_FAILED = 199, - WEBKIT_POLICY_ERROR_CANNOT_SHOW_MIME_TYPE = 100, - WEBKIT_POLICY_ERROR_CANNOT_SHOW_URL = 101, - WEBKIT_POLICY_ERROR_FRAME_LOAD_INTERRUPTED_BY_POLICY_CHANGE = 102, - WEBKIT_POLICY_ERROR_CANNOT_USE_RESTRICTED_PORT = 103, -} WebKitPolicyError; - -/** - * WebKitPluginError: - * @WEBKIT_PLUGIN_ERROR_FAILED: Generic plugin load failure - * @WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN: Load failure due to missing plugin - * @WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN: Load failure due to inability to load plugin - * @WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE: Load failue due to missing Java support that is required to load plugin - * @WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED: Load failure due to connection cancellation - * @WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD: Load failure since plugin handles the load - * - * Enum values used to denote the various plugin errors. - **/ -typedef enum { - WEBKIT_PLUGIN_ERROR_FAILED = 299, - WEBKIT_PLUGIN_ERROR_CANNOT_FIND_PLUGIN = 200, - WEBKIT_PLUGIN_ERROR_CANNOT_LOAD_PLUGIN = 201, - WEBKIT_PLUGIN_ERROR_JAVA_UNAVAILABLE = 202, - WEBKIT_PLUGIN_ERROR_CONNECTION_CANCELLED = 203, - WEBKIT_PLUGIN_ERROR_WILL_HANDLE_LOAD = 204, -} WebKitPluginError; - - -WEBKIT_API GQuark -webkit_network_error_quark (void); - -WEBKIT_API GQuark -webkit_policy_error_quark (void); - -WEBKIT_API GQuark -webkit_plugin_error_quark (void); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp b/Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp deleted file mode 100644 index 654ef2b30..000000000 --- a/Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp +++ /dev/null @@ -1,645 +0,0 @@ -/* - * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitfavicondatabase.h" - -#include "FileSystem.h" -#include "GdkCairoUtilities.h" -#include "IconDatabase.h" -#include "IconDatabaseClient.h" -#include "Image.h" -#include "IntSize.h" -#include "webkitfavicondatabaseprivate.h" -#include "webkitglobals.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitsecurityoriginprivate.h" -#include "webkitwebframe.h" -#include <glib/gi18n-lib.h> -#include <wtf/MainThread.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -/** - * SECTION:webkitfavicondatabase - * @short_description: A WebKit favicon database - * @Title: WebKitFaviconDatabase - * - * #WebKitFaviconDatabase provides access to the icons associated with - * web sites. - * - * WebKit will automatically look for available icons in link elements - * on opened pages as well as an existing favicon.ico and load the - * images found into a memory cache if possible. That cache is frozen - * to an on-disk database for persistence. - * - * The database is disabled by default. In order for icons to be - * stored and accessed, you will need to set an icon database path - * using webkit_favicon_database_set_path(). Disable the database - * again passing %NULL to the previous call. - * - * If WebKitWebSettings::enable-private-browsing is %TRUE new icons - * won't be added to the on-disk database and no existing icons will - * be deleted from it. Nevertheless, WebKit will still store them in - * the in-memory cache during the current execution. - * - * Since: 1.8 - */ - -using namespace WebKit; -using namespace WebCore; - -class PendingIconRequest; - -static void webkitFaviconDatabaseProcessPendingIconsForURI(WebKitFaviconDatabase*, const String& pageURI); -static void webkitFaviconDatabaseImportFinished(WebKitFaviconDatabase*); -static void webkitFaviconDatabaseGetIconPixbufCancelled(GCancellable*, PendingIconRequest*); -static void webkitFaviconDatabaseClose(WebKitFaviconDatabase* database); - -class IconDatabaseClientGtk : public IconDatabaseClient { -public: - // IconDatabaseClient interface - virtual void didRemoveAllIcons() { }; - - // Called when an icon is requested while the initial import is - // going on. - virtual void didImportIconURLForPageURL(const String& URL) { }; - - // Called whenever a retained icon is read from database. - virtual void didImportIconDataForPageURL(const String& URL) - { - WebKitFaviconDatabase* database = webkit_get_favicon_database(); - // We need to emit this here because webkitFaviconDatabaseDispatchDidReceiveIcon() - // is only called for icons that have just being downloaded, and this is called - // when icon data is imported from the database. - g_signal_emit_by_name(database, "icon-loaded", URL.utf8().data()); - - webkitFaviconDatabaseProcessPendingIconsForURI(database, URL); - } - - virtual void didChangeIconForPageURL(const String& URL) - { - // Called when the the favicon for a particular URL changes. - // It does not mean that the new icon data is available yet. - } - - virtual void didFinishURLImport() - { - webkitFaviconDatabaseImportFinished(webkit_get_favicon_database()); - - // Now that everything is imported enable pruning of old - // icons. No icon will be removed during the import process - // because we disable cleanups before opening the database. - IconDatabase::allowDatabaseCleanup(); - } -}; - -class PendingIconRequest { -public: - PendingIconRequest(const String& pageURL, GSimpleAsyncResult* result, GCancellable* cancellable, IntSize iconSize) - : m_pageURL(pageURL) - , m_asyncResult(result) - , m_cancellable(cancellable) - , m_cancelledId(0) - , m_iconSize(iconSize) - { - if (cancellable) { - m_cancelledId = g_cancellable_connect(cancellable, G_CALLBACK(webkitFaviconDatabaseGetIconPixbufCancelled), this, 0); - g_object_set_data_full(G_OBJECT(result), "cancellable", g_object_ref(cancellable), static_cast<GDestroyNotify>(g_object_unref)); - } - } - - ~PendingIconRequest() - { - if (m_cancelledId > 0) - g_cancellable_disconnect(m_cancellable.get(), m_cancelledId); - } - - const String& pageURL() { return m_pageURL; } - GSimpleAsyncResult* asyncResult() { return m_asyncResult.get(); } - const IntSize& iconSize() { return m_iconSize; } - - void asyncResultCancel() - { - ASSERT(m_asyncResult); - g_simple_async_result_set_error(m_asyncResult.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED, "%s", _("Operation was cancelled")); - g_simple_async_result_complete(m_asyncResult.get()); - } - - void asyncResultCompleteInIdle(GdkPixbuf* icon) - { - ASSERT(m_asyncResult); - g_simple_async_result_set_op_res_gpointer(m_asyncResult.get(), icon, 0); - g_simple_async_result_complete_in_idle(m_asyncResult.get()); - } - - void asyncResultComplete(GdkPixbuf* icon) - { - ASSERT(m_asyncResult); - g_simple_async_result_set_op_res_gpointer(m_asyncResult.get(), icon, 0); - g_simple_async_result_complete(m_asyncResult.get()); - } - -private: - String m_pageURL; - GRefPtr<GSimpleAsyncResult> m_asyncResult; - GRefPtr<GCancellable> m_cancellable; - gulong m_cancelledId; - IntSize m_iconSize; -}; - - -enum { - PROP_0, - - PROP_PATH, -}; - -enum { - ICON_LOADED, - - LAST_SIGNAL -}; - -static guint webkit_favicon_database_signals[LAST_SIGNAL] = { 0, }; - -G_DEFINE_TYPE(WebKitFaviconDatabase, webkit_favicon_database, G_TYPE_OBJECT) - -typedef Vector<OwnPtr<PendingIconRequest> > PendingIconRequestVector; -typedef HashMap<String, PendingIconRequestVector*> PendingIconRequestMap; - -struct _WebKitFaviconDatabasePrivate { - GOwnPtr<gchar> path; - IconDatabaseClientGtk iconDatabaseClient; - PendingIconRequestMap pendingIconRequests; - bool importFinished; -}; - -static void webkit_favicon_database_finalize(GObject* object) -{ - WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object); - - webkitFaviconDatabaseClose(database); - database->priv->~WebKitFaviconDatabasePrivate(); - - G_OBJECT_CLASS(webkit_favicon_database_parent_class)->finalize(object); -} - -static void webkit_favicon_database_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec) -{ - WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object); - - switch (propId) { - case PROP_PATH: - webkit_favicon_database_set_path(database, g_value_get_string(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_favicon_database_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec) -{ - WebKitFaviconDatabase* database = WEBKIT_FAVICON_DATABASE(object); - - switch (propId) { - case PROP_PATH: - g_value_set_string(value, webkit_favicon_database_get_path(database)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_favicon_database_class_init(WebKitFaviconDatabaseClass* klass) -{ - webkitInit(); - - GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); - gobjectClass->finalize = webkit_favicon_database_finalize; - gobjectClass->set_property = webkit_favicon_database_set_property; - gobjectClass->get_property = webkit_favicon_database_get_property; - - /** - * WebKitFaviconDatabase:path: - * - * The absolute path of the icon database folder. - * - * Since: 1.8 - */ - g_object_class_install_property(gobjectClass, PROP_PATH, - g_param_spec_string("path", - _("Path"), - _("The absolute path of the icon database folder"), - NULL, - WEBKIT_PARAM_READWRITE)); - - - /** - * WebKitFaviconDatabase::icon-loaded: - * @database: the object on which the signal is emitted - * @frame_uri: the URI of the main frame of a Web page containing - * the icon - * - * This signal is fired if an icon is loaded on any - * #WebKitWebView. If you are only interested in a particular - * #WebKitWebView see #WebKitWebView::icon-loaded. - * - * Note that this signal carries the URI of the frame that loads - * the icon, while #WebKitWebView::icon-loaded provides the URI - * of the favicon. - * - * Since: 1.8 - */ - webkit_favicon_database_signals[ICON_LOADED] = g_signal_new("icon-loaded", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, 0, 0, - webkit_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - g_type_class_add_private(klass, sizeof(WebKitFaviconDatabasePrivate)); -} - -static void webkit_favicon_database_init(WebKitFaviconDatabase* database) -{ - database->priv = G_TYPE_INSTANCE_GET_PRIVATE(database, WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabasePrivate); - new (database->priv) WebKitFaviconDatabasePrivate(); -} - -// Called from FrameLoaderClient::dispatchDidReceiveIcon() -void webkitFaviconDatabaseDispatchDidReceiveIcon(WebKitFaviconDatabase* database, const char* frameURI) -{ - g_signal_emit(database, webkit_favicon_database_signals[ICON_LOADED], 0, frameURI); - - // Retain the new icon. - iconDatabase().retainIconForPageURL(String::fromUTF8(frameURI)); -} - -/** - * webkit_favicon_database_get_path: - * @database: a #WebKitFaviconDatabase - * - * Determines the absolute path to the database folder on disk. - * - * Returns: the absolute path of the database folder, or %NULL - * - * Since: 1.8 - */ -const gchar* webkit_favicon_database_get_path(WebKitFaviconDatabase* database) -{ - g_return_val_if_fail(WEBKIT_IS_FAVICON_DATABASE(database), 0); - - return database->priv->path.get(); -} - -static void webkitFaviconDatabaseClose(WebKitFaviconDatabase* database) -{ - if (iconDatabase().isEnabled()) { - iconDatabase().setEnabled(false); - iconDatabase().close(); - } -} - -/** - * webkit_favicon_database_set_path: - * @database: a #WebKitFaviconDatabase - * @path: (allow-none): an absolute path to the icon database folder - * or %NULL to disable the database - * - * Specifies the absolute path to the database folder on disk. The - * icon database will only be enabled after a call to this method. - * - * Passing %NULL or "" as path disables the icon database. - * - * Since: 1.8 - */ -void webkit_favicon_database_set_path(WebKitFaviconDatabase* database, const gchar* path) -{ - g_return_if_fail(WEBKIT_IS_FAVICON_DATABASE(database)); - - // Always try to close because the deprecated icondatabase is opened by default. - webkitFaviconDatabaseClose(database); - - database->priv->importFinished = false; - if (!path || !path[0]) { - database->priv->path.set(0); - iconDatabase().setEnabled(false); - return; - } - - iconDatabase().setClient(&database->priv->iconDatabaseClient); - IconDatabase::delayDatabaseCleanup(); - iconDatabase().setEnabled(true); - if (!iconDatabase().open(filenameToString(path), IconDatabase::defaultDatabaseFilename())) { - IconDatabase::allowDatabaseCleanup(); - return; - } - - database->priv->path.set(g_strdup(path)); -} - -/** - * webkit_favicon_database_get_favicon_uri: - * @database: a #WebKitFaviconDatabase - * @page_uri: URI of the page containing the icon - * - * Obtains the URI for the favicon for the given page URI. - * See also webkit_web_view_get_icon_uri(). - * - * Returns: a newly allocated URI for the favicon, or %NULL - * - * Since: 1.8 - */ -gchar* webkit_favicon_database_get_favicon_uri(WebKitFaviconDatabase* database, const gchar* pageURI) -{ - g_return_val_if_fail(WEBKIT_IS_FAVICON_DATABASE(database), 0); - g_return_val_if_fail(pageURI, 0); - ASSERT(isMainThread()); - - String iconURI = iconDatabase().synchronousIconURLForPageURL(String::fromUTF8(pageURI)); - if (iconURI.isEmpty()) - return 0; - - return g_strdup(iconURI.utf8().data()); -} - -static GdkPixbuf* getIconPixbufSynchronously(WebKitFaviconDatabase* database, const String& pageURL, const IntSize& iconSize) -{ - ASSERT(isMainThread()); - - // The exact size we pass is irrelevant to the iconDatabase code. - // We must pass something greater than 0x0 to get a pixbuf. - RefPtr<cairo_surface_t> surface = iconDatabase().synchronousNativeIconForPageURL(pageURL, !iconSize.isZero() ? iconSize : IntSize(1, 1)); - if (!surface) - return 0; - - GRefPtr<GdkPixbuf> pixbuf = adoptGRef(cairoImageSurfaceToGdkPixbuf(surface.get())); - if (!pixbuf) - return 0; - - // A size of (0, 0) means the maximum available size. - int pixbufWidth = gdk_pixbuf_get_width(pixbuf.get()); - int pixbufHeight = gdk_pixbuf_get_height(pixbuf.get()); - if (!iconSize.isZero() && (pixbufWidth != iconSize.width() || pixbufHeight != iconSize.height())) - pixbuf = adoptGRef(gdk_pixbuf_scale_simple(pixbuf.get(), iconSize.width(), iconSize.height(), GDK_INTERP_BILINEAR)); - return pixbuf.leakRef(); -} - -/** - * webkit_favicon_database_try_get_favicon_pixbuf: - * @database: a #WebKitFaviconDatabase - * @page_uri: URI of the page containing the icon - * @width: the desired width for the icon - * @height: the desired height for the icon - * - * Obtains a #GdkPixbuf of the favicon for the given page URI, or - * %NULL if there is no icon for the given page or it hasn't been - * loaded from disk yet. Use webkit_favicon_database_get_favicon_uri() - * if you need to distinguish these cases. To make sure this method - * will return a valid icon when the given URI has one, you should - * connect to #WebKitFaviconDatabase::icon-loaded and use this function - * in the callback. - * - * If @width and @height ar both 0 then this method will return the - * maximum available size for the icon. Note that if you specify a - * different size the icon will be scaled each time you call this - * function. - * - * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL - * if the given URI doesn't have an icon or it hasn't been loaded yet. - * - * Since: 1.8 - */ -GdkPixbuf* webkit_favicon_database_try_get_favicon_pixbuf(WebKitFaviconDatabase* database, const gchar* pageURI, guint width, guint height) -{ - g_return_val_if_fail(WEBKIT_IS_FAVICON_DATABASE(database), 0); - g_return_val_if_fail(pageURI, 0); - g_return_val_if_fail((width && height) || (!width && !height), 0); - - return getIconPixbufSynchronously(database, String::fromUTF8(pageURI), IntSize(width, height)); -} - -static PendingIconRequestVector* webkitFaviconDatabaseGetOrCreateRequests(WebKitFaviconDatabase* database, const String& pageURL) -{ - PendingIconRequestVector* icons = database->priv->pendingIconRequests.get(pageURL); - if (!icons) { - icons = new PendingIconRequestVector; - database->priv->pendingIconRequests.set(pageURL, icons); - } - - return icons; -} - -static void webkitfavicondatabaseDeleteRequests(WebKitFaviconDatabase* database, PendingIconRequestVector* requests, const String& pageURL) -{ - database->priv->pendingIconRequests.remove(pageURL); - delete requests; -} - -static void getIconPixbufCancelled(void* userData) -{ - PendingIconRequest* request = static_cast<PendingIconRequest*>(userData); - request->asyncResultCancel(); - - const String& pageURL = request->pageURL(); - WebKitFaviconDatabase* database = webkit_get_favicon_database(); - PendingIconRequestVector* icons = database->priv->pendingIconRequests.get(pageURL); - if (!icons) - return; - - size_t itemIndex = icons->find(request); - if (itemIndex != notFound) - icons->remove(itemIndex); - if (icons->isEmpty()) - webkitfavicondatabaseDeleteRequests(database, icons, pageURL); -} - -static void webkitFaviconDatabaseGetIconPixbufCancelled(GCancellable* cancellable, PendingIconRequest* request) -{ - // Handle cancelled in a in idle since it might be called from any thread. - callOnMainThread(getIconPixbufCancelled, request); -} - -/** - * webkit_favicon_database_get_favicon_pixbuf: - * @database: a #WebKitFaviconDatabase - * @page_uri: URI of the page containing the icon - * @width: the desired width for the icon - * @height: the desired height for the icon - * @cancellable: (allow-none): A #GCancellable or %NULL. - * @callback: (allow-none): A #GAsyncReadyCallback to call when the request is - * satisfied or %NULL if you don't care about the result. - * @user_data: The data to pass to @callback. - * - * Asynchronously obtains a #GdkPixbuf of the favicon for the given - * page URI. The advantage of this method over - * webkit_favicon_database_try_get_favicon_pixbuf() is that it always returns the - * cached icon if it's in the database asynchronously waiting for the - * icon to be read from the database. - * - * This is an asynchronous method. When the operation is finished, callback will - * be invoked. You can then call webkit_favicon_database_get_favicon_pixbuf_finish() - * to get the result of the operation. - * See also webkit_favicon_database_try_get_favicon_pixbuf(). - * - * If @width and @height are both 0 then this method will return the - * maximum available size for the icon. Note that if you specify a - * different size the icon will be scaled each time you call this - * function. - * - * Since: 1.8 - */ -void webkit_favicon_database_get_favicon_pixbuf(WebKitFaviconDatabase* database, const gchar* pageURI, guint width, guint height, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData) -{ - g_return_if_fail(WEBKIT_IS_FAVICON_DATABASE(database)); - g_return_if_fail(pageURI); - g_return_if_fail((width && height) || (!width && !height)); - - GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(database), callback, userData, - reinterpret_cast<gpointer>(webkit_favicon_database_get_favicon_pixbuf))); - - // If we don't have an icon for the given URI or the database is not opened then return ASAP. We have to check that - // because if the database is not opened it will skip (and not notify about) every single icon load request - if ((database->priv->importFinished && iconDatabase().synchronousIconURLForPageURL(String::fromUTF8(pageURI)).isEmpty()) - || !iconDatabase().isOpen()) { - g_simple_async_result_set_op_res_gpointer(result.get(), 0, 0); - g_simple_async_result_complete_in_idle(result.get()); - return; - } - - String pageURL = String::fromUTF8(pageURI); - PendingIconRequest* request = new PendingIconRequest(pageURL, result.get(), cancellable, IntSize(width, height)); - - // Register icon request before asking for the icon to avoid race conditions. - PendingIconRequestVector* icons = webkitFaviconDatabaseGetOrCreateRequests(database, pageURL); - ASSERT(icons); - icons->append(adoptPtr(request)); - - // We ask for the icon directly. If we don't get the icon data now, - // we'll be notified later (even if the database is still importing icons). - GdkPixbuf* pixbuf = getIconPixbufSynchronously(database, pageURL, IntSize(width, height)); - if (!pixbuf) - return; - - request->asyncResultCompleteInIdle(pixbuf); - - // Remove the request we have just created as it isn't pending - // anymore because we already have the pixbuf. - ASSERT(icons->last().get() == request); - icons->removeLast(); - if (icons->isEmpty()) - webkitfavicondatabaseDeleteRequests(database, icons, pageURL); -} - -/** - * webkit_favicon_database_get_favicon_pixbuf_finish: - * @database: a #WebKitFaviconDatabase - * @result: A #GAsyncResult obtained from the #GAsyncReadyCallback passed to webkit_favicon_database_get_favicon_pixbuf() - * @error: (allow-none): Return location for error or %NULL. - * - * Finishes an operation started with webkit_favicon_database_get_favicon_pixbuf(). - * - * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL. - * - * Since: 1.8 - */ -GdkPixbuf* webkit_favicon_database_get_favicon_pixbuf_finish(WebKitFaviconDatabase* database, GAsyncResult* result, GError** error) -{ - GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result); - g_return_val_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkit_favicon_database_get_favicon_pixbuf, 0); - - if (g_simple_async_result_propagate_error(simpleResult, error)) - return 0; - - GCancellable* cancellable = static_cast<GCancellable*>(g_object_get_data(G_OBJECT(simpleResult), "cancellable")); - if (cancellable && g_cancellable_is_cancelled(cancellable)) { - g_set_error_literal(error, G_IO_ERROR, G_IO_ERROR_CANCELLED, _("Operation was cancelled")); - return 0; - } - - GdkPixbuf* icon = static_cast<GdkPixbuf*>(g_simple_async_result_get_op_res_gpointer(simpleResult)); - if (!icon) - return 0; - - return static_cast<GdkPixbuf*>(icon); -} - -static void webkitFaviconDatabaseProcessPendingIconsForURI(WebKitFaviconDatabase* database, const String& pageURL) -{ - PendingIconRequestVector* icons = database->priv->pendingIconRequests.get(pageURL); - if (!icons) - return; - - for (size_t i = 0; i < icons->size(); ++i) { - PendingIconRequest* request = icons->at(i).get(); - if (request->asyncResult()) - request->asyncResultComplete(getIconPixbufSynchronously(database, pageURL, request->iconSize())); - } - webkitfavicondatabaseDeleteRequests(database, icons, pageURL); -} - -static void webkitFaviconDatabaseImportFinished(WebKitFaviconDatabase* database) -{ - ASSERT(isMainThread()); - database->priv->importFinished = true; - - // Import is complete, process pending requests for pages that are not in the database, - // since didImportIconDataForPageURL() will never be called for them. - Vector<String> toDeleteURLs; - PendingIconRequestMap::const_iterator end = database->priv->pendingIconRequests.end(); - for (PendingIconRequestMap::const_iterator iter = database->priv->pendingIconRequests.begin(); iter != end; ++iter) { - String iconURL = iconDatabase().synchronousIconURLForPageURL(iter->key); - if (!iconURL.isEmpty()) - continue; - - PendingIconRequestVector* icons = iter->value; - for (size_t i = 0; i < icons->size(); ++i) { - PendingIconRequest* request = icons->at(i).get(); - if (request->asyncResult()) - request->asyncResultComplete(0); - } - - toDeleteURLs.append(iter->key); - } - - for (size_t i = 0; i < toDeleteURLs.size(); ++i) - webkitfavicondatabaseDeleteRequests(database, database->priv->pendingIconRequests.get(toDeleteURLs[i]), toDeleteURLs[i]); -} - -/** - * webkit_favicon_database_clear: - * @database: a #WebKitFaviconDatabase - * - * Clears all icons from the database. - * - * Since: 1.8 - */ -void webkit_favicon_database_clear(WebKitFaviconDatabase* database) -{ - g_return_if_fail(WEBKIT_IS_FAVICON_DATABASE(database)); - - iconDatabase().removeAllIcons(); -} diff --git a/Source/WebKit/gtk/webkit/webkitfavicondatabase.h b/Source/WebKit/gtk/webkit/webkitfavicondatabase.h deleted file mode 100644 index 95d6b8442..000000000 --- a/Source/WebKit/gtk/webkit/webkitfavicondatabase.h +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitfavicondatabase_h -#define webkitfavicondatabase_h - -#include <gdk-pixbuf/gdk-pixbuf.h> -#include <glib-object.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_FAVICON_DATABASE (webkit_favicon_database_get_type()) -#define WEBKIT_FAVICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabase)) -#define WEBKIT_FAVICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabaseClass)) -#define WEBKIT_IS_FAVICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_FAVICON_DATABASE)) -#define WEBKIT_IS_FAVICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_FAVICON_DATABASE)) -#define WEBKIT_FAVICON_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_FAVICON_DATABASE, WebKitFaviconDatabaseClass)) - -typedef struct _WebKitFaviconDatabasePrivate WebKitFaviconDatabasePrivate; - -struct _WebKitFaviconDatabase { - GObject parent_instance; - - /*< private >*/ - WebKitFaviconDatabasePrivate* priv; -}; - -struct _WebKitFaviconDatabaseClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_favicon_database_get_type (void); - -WEBKIT_API const gchar* -webkit_favicon_database_get_path (WebKitFaviconDatabase* database); - -WEBKIT_API void -webkit_favicon_database_set_path (WebKitFaviconDatabase* database, - const gchar* path); - -WEBKIT_API gchar* -webkit_favicon_database_get_favicon_uri (WebKitFaviconDatabase* database, - const gchar* page_uri); - -WEBKIT_API GdkPixbuf* -webkit_favicon_database_try_get_favicon_pixbuf (WebKitFaviconDatabase* database, - const gchar* page_uri, - guint width, - guint height); - -WEBKIT_API void -webkit_favicon_database_get_favicon_pixbuf (WebKitFaviconDatabase* database, - const gchar* page_uri, - guint width, - guint height, - GCancellable* cancellable, - GAsyncReadyCallback callback, - gpointer user_data); - -WEBKIT_API GdkPixbuf* -webkit_favicon_database_get_favicon_pixbuf_finish (WebKitFaviconDatabase* database, - GAsyncResult* result, - GError** error); - -WEBKIT_API void -webkit_favicon_database_clear (WebKitFaviconDatabase* database); - -G_END_DECLS - -#endif /* webkitfavicondatabase_h */ diff --git a/Source/WebKit/gtk/webkit/webkitfavicondatabaseprivate.h b/Source/WebKit/gtk/webkit/webkitfavicondatabaseprivate.h deleted file mode 100644 index b7679a0f0..000000000 --- a/Source/WebKit/gtk/webkit/webkitfavicondatabaseprivate.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitfavicondatabaseprivate_h -#define webkitfavicondatabaseprivate_h - -void webkitFaviconDatabaseDispatchDidReceiveIcon(WebKitFaviconDatabase*, const char* frameURI); - -#endif // webkitfavicondatabaseprivate_h diff --git a/Source/WebKit/gtk/webkit/webkitfilechooserrequest.cpp b/Source/WebKit/gtk/webkit/webkitfilechooserrequest.cpp deleted file mode 100644 index c1373ed49..000000000 --- a/Source/WebKit/gtk/webkit/webkitfilechooserrequest.cpp +++ /dev/null @@ -1,367 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitfilechooserrequest.h" - -#include "FileChooser.h" -#include "FileSystem.h" -#include "webkitfilechooserrequestprivate.h" -#include "webkitglobalsprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -using namespace WebCore; - -/** - * SECTION:webkitfilechooserrequest - * @Short_description: A request to open a file chooser - * @Title: WebKitFileChooserRequest - * @See_also: #WebKitWebView - * - * Whenever the user interacts with an <input type='file' /> - * HTML element, WebKit will need to show a dialog to choose one or - * more files to be uploaded to the server along with the rest of the - * form data. For that to happen in a general way, instead of just - * opening a #GtkFileChooserDialog (which might be not desirable in - * some cases, such as when an embedding applications prefers to use - * its own file chooser dialog), WebKit will fire the - * #WebKitWebView::run-file-chooser signal with a - * #WebKitFileChooserRequest object, which will allow the client - * application to specify the files to be selected, to inspect the - * details of the request (e.g. if multiple selection should be - * allowed) and to cancel the request, in case nothing was selected. - * - * In case the client application does not wish to handle this signal, - * WebKit will provide a default handler which will asynchronously run - * a regular #GtkFileChooserDialog for the user to interact with. - */ -G_DEFINE_TYPE(WebKitFileChooserRequest, webkit_file_chooser_request, G_TYPE_OBJECT) - -struct _WebKitFileChooserRequestPrivate { - RefPtr<FileChooser> chooser; - GRefPtr<GtkFileFilter> filter; - GRefPtr<GPtrArray> mimeTypes; - GRefPtr<GPtrArray> selectedFiles; -}; - -enum { - PROP_0, - PROP_FILTER, - PROP_MIME_TYPES, - PROP_SELECT_MULTIPLE, - PROP_SELECTED_FILES, -}; - -static void webkit_file_chooser_request_init(WebKitFileChooserRequest* request) -{ - request->priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_FILE_CHOOSER_REQUEST, WebKitFileChooserRequestPrivate); - new (request->priv) WebKitFileChooserRequestPrivate(); -} - -static void webkit_file_chooser_request_finalize(GObject* object) -{ - WebKitFileChooserRequest* request = WEBKIT_FILE_CHOOSER_REQUEST(object); - - request->priv->~WebKitFileChooserRequestPrivate(); - G_OBJECT_CLASS(webkit_file_chooser_request_parent_class)->finalize(object); -} - -static void webkit_file_chooser_request_get_property(GObject* object, guint propId, GValue* value, GParamSpec* paramSpec) -{ - WebKitFileChooserRequest* request = WEBKIT_FILE_CHOOSER_REQUEST(object); - switch (propId) { - case PROP_FILTER: - g_value_set_object(value, webkit_file_chooser_request_get_mime_types_filter(request)); - break; - case PROP_MIME_TYPES: - g_value_set_boxed(value, webkit_file_chooser_request_get_mime_types(request)); - break; - case PROP_SELECT_MULTIPLE: - g_value_set_boolean(value, webkit_file_chooser_request_get_select_multiple(request)); - break; - case PROP_SELECTED_FILES: - g_value_set_boxed(value, webkit_file_chooser_request_get_selected_files(request)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, paramSpec); - break; - } -} - -static void webkit_file_chooser_request_class_init(WebKitFileChooserRequestClass* requestClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - objectClass->finalize = webkit_file_chooser_request_finalize; - objectClass->get_property = webkit_file_chooser_request_get_property; - g_type_class_add_private(requestClass, sizeof(WebKitFileChooserRequestPrivate)); - - /** - * WebKitFileChooserRequest:filter: - * - * The filter currently associated with the request. See - * webkit_file_chooser_request_get_mime_types_filter() for more - * details. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, - PROP_FILTER, - g_param_spec_object("filter", - _("MIME types filter"), - _("The filter currently associated with the request"), - GTK_TYPE_FILE_FILTER, - WEBKIT_PARAM_READABLE)); - /** - * WebKitFileChooserRequest:mime-types: - * - * A %NULL-terminated array of strings containing the list of MIME - * types the file chooser dialog should handle. See - * webkit_file_chooser_request_get_mime_types() for more details. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, - PROP_MIME_TYPES, - g_param_spec_boxed("mime-types", - _("MIME types"), - _("The list of MIME types associated with the request"), - G_TYPE_STRV, - WEBKIT_PARAM_READABLE)); /** - * WebKitFileChooserRequest:select-multiple: - * - * Whether the file chooser should allow selecting multiple - * files. See - * webkit_file_chooser_request_get_select_multiple() for - * more details. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, - PROP_SELECT_MULTIPLE, - g_param_spec_boolean("select-multiple", - _("Select multiple files"), - _("Whether the file chooser should allow selecting multiple files"), - FALSE, - WEBKIT_PARAM_READABLE)); - /** - * WebKitFileChooserRequest:selected-files: - * - * A %NULL-terminated array of strings containing the list of - * selected files associated to the current request. See - * webkit_file_chooser_request_get_selected_files() for more details. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, - PROP_SELECTED_FILES, - g_param_spec_boxed("selected-files", - _("Selected files"), - _("The list of selected files associated with the request"), - G_TYPE_STRV, - WEBKIT_PARAM_READABLE)); -} - -WebKitFileChooserRequest* webkit_file_chooser_request_create(PassRefPtr<FileChooser> chooser) -{ - WebKitFileChooserRequest* request = WEBKIT_FILE_CHOOSER_REQUEST(g_object_new(WEBKIT_TYPE_FILE_CHOOSER_REQUEST, NULL)); - request->priv->chooser = chooser; - return request; -} - -/** - * webkit_file_chooser_request_get_mime_types: - * @request: a #WebKitFileChooserRequest - * - * Get the list of MIME types the file chooser dialog should handle, - * in the format specified in RFC 2046 for "media types". Its contents - * depend on the value of the 'accept' attribute for HTML input - * elements. This function should normally be called before presenting - * the file chooser dialog to the user, to decide whether to allow the - * user to select multiple files at once or only one. - * - * Returns: (array zero-terminated=1) (transfer none): a - * %NULL-terminated array of strings if a list of accepted MIME types - * is defined or %NULL otherwise, meaning that any MIME type should be - * accepted. This array and its contents are owned by WebKitGTK+ and - * should not be modified or freed. - * - * Since: 1.10 - */ -const gchar* const* webkit_file_chooser_request_get_mime_types(WebKitFileChooserRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_FILE_CHOOSER_REQUEST(request), 0); - if (request->priv->mimeTypes) - return reinterpret_cast<gchar**>(request->priv->mimeTypes->pdata); - - FileChooserSettings settings = request->priv->chooser->settings(); - size_t numOfMimeTypes = settings.acceptMIMETypes.size(); - if (!numOfMimeTypes) - return 0; - - request->priv->mimeTypes = adoptGRef(g_ptr_array_new_with_free_func(g_free)); - for (size_t i = 0; i < numOfMimeTypes; ++i) { - String mimeTypeString = settings.acceptMIMETypes[i]; - if (mimeTypeString.isEmpty()) - continue; - g_ptr_array_add(request->priv->mimeTypes.get(), g_strdup(mimeTypeString.utf8().data())); - } - g_ptr_array_add(request->priv->mimeTypes.get(), 0); - - return reinterpret_cast<gchar**>(request->priv->mimeTypes->pdata); -} - -/** - * webkit_file_chooser_request_get_mime_types_filter: - * @request: a #WebKitFileChooserRequest - * - * Get the filter currently associated with the request, ready to be - * used by #GtkFileChooser. This function should normally be called - * before presenting the file chooser dialog to the user, to decide - * whether to apply a filter so the user would not be allowed to - * select files with other MIME types. - * - * See webkit_file_chooser_request_get_mime_types() if you are - * interested in getting the list of accepted MIME types. - * - * Returns: (transfer none): a #GtkFileFilter if a list of accepted - * MIME types is defined or %NULL otherwise. The returned object is - * owned by WebKitGTK+ should not be modified or freed. - * - * Since: 1.10 - */ -GtkFileFilter* webkit_file_chooser_request_get_mime_types_filter(WebKitFileChooserRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_FILE_CHOOSER_REQUEST(request), 0); - if (request->priv->filter) - return request->priv->filter.get(); - - FileChooserSettings settings = request->priv->chooser->settings(); - size_t numOfMimeTypes = settings.acceptMIMETypes.size(); - if (!numOfMimeTypes) - return 0; - - // Do not use adoptGRef here, since we want to sink the floating - // reference for the new instance of GtkFileFilter, so we make - // sure we keep the ownership during the lifetime of the request. - request->priv->filter = gtk_file_filter_new(); - for (size_t i = 0; i < numOfMimeTypes; ++i) { - String mimeTypeString = settings.acceptMIMETypes[i]; - if (mimeTypeString.isEmpty()) - continue; - gtk_file_filter_add_mime_type(request->priv->filter.get(), mimeTypeString.utf8().data()); - } - - return request->priv->filter.get(); -} - -/** - * webkit_file_chooser_request_get_select_multiple: - * @request: a #WebKitFileChooserRequest - * - * Determine whether the file chooser associated to this - * #WebKitFileChooserRequest should allow selecting multiple files, - * which depends on the HTML input element having a 'multiple' - * attribute defined. - * - * Returns: %TRUE if the file chooser should allow selecting multiple files or %FALSE otherwise. - * - * Since: 1.10 - */ -gboolean webkit_file_chooser_request_get_select_multiple(WebKitFileChooserRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_FILE_CHOOSER_REQUEST(request), FALSE); - return request->priv->chooser->settings().allowsMultipleFiles; -} - -/** - * webkit_file_chooser_request_select_files: - * @request: a #WebKitFileChooserRequest - * @files: (array zero-terminated=1) (transfer none): a - * %NULL-terminated array of strings, containing paths to local files. - * - * Ask WebKit to select local files for upload and complete the - * request. - * - * Since: 1.10 - */ -void webkit_file_chooser_request_select_files(WebKitFileChooserRequest* request, const gchar* const* files) -{ - g_return_if_fail(WEBKIT_IS_FILE_CHOOSER_REQUEST(request)); - g_return_if_fail(files); - - Vector<String> names; - GRefPtr<GPtrArray> selectedFiles = adoptGRef(g_ptr_array_new_with_free_func(g_free)); - - for (int i = 0; files[i]; i++) { - names.append(filenameToString(files[i])); - g_ptr_array_add(selectedFiles.get(), g_strdup(files[i])); - } - - g_ptr_array_add(selectedFiles.get(), 0); - request->priv->chooser->chooseFiles(names); - request->priv->selectedFiles = selectedFiles; -} - -/** - * webkit_file_chooser_request_get_selected_files: - * @request: a #WebKitFileChooserRequest - * - * Get the list of selected files currently associated to the - * request. Initially, the return value of this method contains any - * files selected in previous file chooser requests for this HTML - * input element. Once webkit_file_chooser_request_select_files, the - * value will reflect whatever files are given. - * - * This function should normally be called only before presenting the - * file chooser dialog to the user, to decide whether to perform some - * extra action, like pre-selecting the files from a previous request. - * - * Returns: (array zero-terminated=1) (transfer none): a - * %NULL-terminated array of strings if there are selected files - * associated with the request or %NULL otherwise. This array and its - * contents are owned by WebKitGTK+ and should not be modified or - * freed. - * - * Since: 1.10 - */ -const gchar* const* webkit_file_chooser_request_get_selected_files(WebKitFileChooserRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_FILE_CHOOSER_REQUEST(request), 0); - if (request->priv->selectedFiles) - return reinterpret_cast<gchar**>(request->priv->selectedFiles->pdata); - - FileChooserSettings settings = request->priv->chooser->settings(); - size_t numOfFiles = settings.selectedFiles.size(); - if (!numOfFiles) - return 0; - - request->priv->selectedFiles = adoptGRef(g_ptr_array_new_with_free_func(g_free)); - for (size_t i = 0; i < numOfFiles; ++i) { - if (settings.selectedFiles[i].isEmpty()) - continue; - CString filename = fileSystemRepresentation(settings.selectedFiles[i]); - g_ptr_array_add(request->priv->selectedFiles.get(), g_strdup(filename.data())); - } - g_ptr_array_add(request->priv->selectedFiles.get(), 0); - - return reinterpret_cast<gchar**>(request->priv->selectedFiles->pdata); -} diff --git a/Source/WebKit/gtk/webkit/webkitfilechooserrequest.h b/Source/WebKit/gtk/webkit/webkitfilechooserrequest.h deleted file mode 100644 index dea94c860..000000000 --- a/Source/WebKit/gtk/webkit/webkitfilechooserrequest.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitfilechooserrequest_h -#define webkitfilechooserrequest_h - -#include <gtk/gtk.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_FILE_CHOOSER_REQUEST (webkit_file_chooser_request_get_type()) -#define WEBKIT_FILE_CHOOSER_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_FILE_CHOOSER_REQUEST, WebKitFileChooserRequest)) -#define WEBKIT_FILE_CHOOSER_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_FILE_CHOOSER_REQUEST, WebKitFileChooserRequestClass)) -#define WEBKIT_IS_FILE_CHOOSER_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_FILE_CHOOSER_REQUEST)) -#define WEBKIT_IS_FILE_CHOOSER_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_FILE_CHOOSER_REQUEST)) -#define WEBKIT_FILE_CHOOSER_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_FILE_CHOOSER_REQUEST, WebKitFileChooserRequestClass)) - -typedef struct _WebKitFileChooserRequest WebKitFileChooserRequest; -typedef struct _WebKitFileChooserRequestClass WebKitFileChooserRequestClass; -typedef struct _WebKitFileChooserRequestPrivate WebKitFileChooserRequestPrivate; - -struct _WebKitFileChooserRequest { - GObject parent; - - /*< private >*/ - WebKitFileChooserRequestPrivate *priv; -}; - -struct _WebKitFileChooserRequestClass { - GObjectClass parent_class; -}; - -WEBKIT_API GType -webkit_file_chooser_request_get_type (void); - -WEBKIT_API const gchar * const * -webkit_file_chooser_request_get_mime_types (WebKitFileChooserRequest *request); - -WEBKIT_API GtkFileFilter * -webkit_file_chooser_request_get_mime_types_filter (WebKitFileChooserRequest *request); - -WEBKIT_API gboolean -webkit_file_chooser_request_get_select_multiple (WebKitFileChooserRequest *request); - -WEBKIT_API void -webkit_file_chooser_request_select_files (WebKitFileChooserRequest *request, - const gchar * const *files); - -WEBKIT_API const gchar * const * -webkit_file_chooser_request_get_selected_files (WebKitFileChooserRequest *request); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitfilechooserrequestprivate.h b/Source/WebKit/gtk/webkit/webkitfilechooserrequestprivate.h deleted file mode 100644 index a41cc79f6..000000000 --- a/Source/WebKit/gtk/webkit/webkitfilechooserrequestprivate.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitfilechooserrequestprivate_h -#define webkitfilechooserrequestprivate_h - -#include "FileChooser.h" -#include "webkitfilechooserrequest.h" - -using namespace WebCore; - -WebKitFileChooserRequest* webkit_file_chooser_request_create(PassRefPtr<FileChooser> chooser); - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.cpp b/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.cpp deleted file mode 100644 index 51465850b..000000000 --- a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.cpp +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (C) 2010 Arno Renevier - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitgeolocationpolicydecision.h" - -#include "Geolocation.h" -#include "webkitgeolocationpolicydecisionprivate.h" -#include "webkitglobalsprivate.h" - -/** - * SECTION:webkitgeolocationpolicydecision - * @short_description: Liaison between WebKit and the application regarding asynchronous geolocation policy decisions - * - * #WebKitGeolocationPolicyDecision objects are given to the application when - * geolocation-policy-decision-requested signal is emitted. The application - * uses it to tell the engine whether it wants to allow or deny geolocation for - * a given frame. - */ - -G_DEFINE_TYPE(WebKitGeolocationPolicyDecision, webkit_geolocation_policy_decision, G_TYPE_OBJECT); - -struct _WebKitGeolocationPolicyDecisionPrivate { - WebKitWebFrame* frame; -#if ENABLE(GEOLOCATION) - WebCore::Geolocation* geolocation; -#endif -}; - -static void webkit_geolocation_policy_decision_class_init(WebKitGeolocationPolicyDecisionClass* decisionClass) -{ - g_type_class_add_private(decisionClass, sizeof(WebKitGeolocationPolicyDecisionPrivate)); -} - -static void webkit_geolocation_policy_decision_init(WebKitGeolocationPolicyDecision* decision) -{ - decision->priv = G_TYPE_INSTANCE_GET_PRIVATE(decision, WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION, WebKitGeolocationPolicyDecisionPrivate); -} - -#if ENABLE(GEOLOCATION) -WebKitGeolocationPolicyDecision* webkit_geolocation_policy_decision_new(WebKitWebFrame* frame, WebCore::Geolocation* geolocation) -{ - g_return_val_if_fail(frame, NULL); - WebKitGeolocationPolicyDecision* decision = WEBKIT_GEOLOCATION_POLICY_DECISION(g_object_new(WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION, NULL)); - WebKitGeolocationPolicyDecisionPrivate* priv = decision->priv; - - priv->frame = frame; - priv->geolocation = geolocation; - return decision; -} -#endif - -/** - * webkit_geolocation_policy_allow: - * @decision: a #WebKitGeolocationPolicyDecision - * - * Will send the allow decision to the policy implementer. - * - * Since: 1.1.23 - */ -void webkit_geolocation_policy_allow(WebKitGeolocationPolicyDecision* decision) -{ -#if ENABLE(GEOLOCATION) - g_return_if_fail(WEBKIT_IS_GEOLOCATION_POLICY_DECISION(decision)); - - WebKitGeolocationPolicyDecisionPrivate* priv = decision->priv; - priv->geolocation->setIsAllowed(TRUE); -#else - WEBKIT_WARN_FEATURE_NOT_PRESENT("Geolocation") -#endif -} - -/** - * webkit_geolocation_policy_deny: - * @decision: a #WebKitGeolocationPolicyDecision - * - * Will send the deny decision to the policy implementer. - * - * Since: 1.1.23 - */ -void webkit_geolocation_policy_deny(WebKitGeolocationPolicyDecision* decision) -{ -#if ENABLE(GEOLOCATION) - g_return_if_fail(WEBKIT_IS_GEOLOCATION_POLICY_DECISION(decision)); - - WebKitGeolocationPolicyDecisionPrivate* priv = decision->priv; - priv->geolocation->setIsAllowed(FALSE); -#else - WEBKIT_WARN_FEATURE_NOT_PRESENT("Geolocation") -#endif -} - diff --git a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h b/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h deleted file mode 100644 index 27e0ef2d8..000000000 --- a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecision.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2010 Arno Renevier - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitgeolocationpolicydecision_h -#define webkitgeolocationpolicydecision_h - -#include <glib-object.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION (webkit_geolocation_policy_decision_get_type()) -#define WEBKIT_GEOLOCATION_POLICY_DECISION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION, WebKitGeolocationPolicyDecision)) -#define WEBKIT_GEOLOCATION_POLICY_DECISION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION, WebKitGeolocationPolicyDecisionClass)) -#define WEBKIT_IS_GEOLOCATION_POLICY_DECISION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION)) -#define WEBKIT_IS_GEOLOCATION_POLICY_DECISION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION)) -#define WEBKIT_GEOLOCATION_POLICY_DECISION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION, WebKitGeolocationPolicyDecisionClass)) - -typedef struct _WebKitGeolocationPolicyDecisionPrivate WebKitGeolocationPolicyDecisionPrivate; -struct _WebKitGeolocationPolicyDecision { - GObject parent_instance; - - /*< private >*/ - WebKitGeolocationPolicyDecisionPrivate* priv; -}; - -struct _WebKitGeolocationPolicyDecisionClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_geolocation_policy_decision_get_type (void); - -WEBKIT_API void -webkit_geolocation_policy_allow (WebKitGeolocationPolicyDecision* decision); - -WEBKIT_API void -webkit_geolocation_policy_deny (WebKitGeolocationPolicyDecision* decision); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecisionprivate.h b/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecisionprivate.h deleted file mode 100644 index 177154cd2..000000000 --- a/Source/WebKit/gtk/webkit/webkitgeolocationpolicydecisionprivate.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitgeolocationpolicydecisionprivate_h -#define webkitgeolocationpolicydecisionprivate_h - -#include "webkitgeolocationpolicydecision.h" - -#if ENABLE(GEOLOCATION) - -extern "C" { - -WebKitGeolocationPolicyDecision* webkit_geolocation_policy_decision_new(WebKitWebFrame*, WebCore::Geolocation*); - -} - -#endif // ENABLE(GEOLOCATION) - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitglobals.cpp b/Source/WebKit/gtk/webkit/webkitglobals.cpp deleted file mode 100644 index c9c67d1cc..000000000 --- a/Source/WebKit/gtk/webkit/webkitglobals.cpp +++ /dev/null @@ -1,571 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2008, 2010 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitglobals.h" - -#include "ApplicationCacheStorage.h" -#include "Chrome.h" -#include "ContextMenuItem.h" -#include "FrameNetworkingContextGtk.h" -#include "IconDatabase.h" -#include "InitializeLogging.h" -#include "MemoryCache.h" -#include "Page.h" -#include "PageCache.h" -#include "PageGroup.h" -#include "PlatformStrategiesGtk.h" -#include "TextEncodingRegistry.h" -#include "Pasteboard.h" -#include "PasteboardHelperGtk.h" -#include "ResourceHandle.h" -#include "ResourceHandleClient.h" -#include "ResourceHandleInternal.h" -#include "ResourceResponse.h" -#include "SchemeRegistry.h" -#include "webkitapplicationcache.h" -#include "webkitfavicondatabase.h" -#include "webkitglobalsprivate.h" -#include "webkiticondatabase.h" -#include "webkitspellchecker.h" -#include "webkitspellcheckerenchant.h" -#include "webkitwebdatabase.h" -#include "webkitwebplugindatabaseprivate.h" -#include <libintl.h> -#include <runtime/InitializeThreading.h> -#include <stdlib.h> -#include <wtf/MainThread.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> - -static WebKitCacheModel cacheModel = WEBKIT_CACHE_MODEL_DEFAULT; - -using namespace WebCore; - -/** - * SECTION:webkit - * @short_description: Global functions controlling WebKit - * - * WebKit manages many resources which are not related to specific - * views. These functions relate to cross-view limits, such as cache - * sizes, database quotas, and the HTTP session management. - */ - -/** - * webkit_get_default_session: - * - * Retrieves the default #SoupSession used by all web views. - * Note that the session features are added by WebKit on demand, - * so if you insert your own #SoupCookieJar before any network - * traffic occurs, WebKit will use it instead of the default. - * - * Return value: (transfer none): the default #SoupSession - * - * Since: 1.1.1 - */ -SoupSession* webkit_get_default_session () -{ - webkitInit(); - return ResourceHandle::defaultSession(); -} - -/** - * webkit_set_cache_model: - * @cache_model: a #WebKitCacheModel - * - * Specifies a usage model for WebViews, which WebKit will use to - * determine its caching behavior. All web views follow the cache - * model. This cache model determines the RAM and disk space to use - * for caching previously viewed content . - * - * Research indicates that users tend to browse within clusters of - * documents that hold resources in common, and to revisit previously - * visited documents. WebKit and the frameworks below it include - * built-in caches that take advantage of these patterns, - * substantially improving document load speed in browsing - * situations. The WebKit cache model controls the behaviors of all of - * these caches, including various WebCore caches. - * - * Browsers can improve document load speed substantially by - * specifying WEBKIT_CACHE_MODEL_WEB_BROWSER. Applications without a - * browsing interface can reduce memory usage substantially by - * specifying WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER. Default value is - * WEBKIT_CACHE_MODEL_WEB_BROWSER. - * - * Since: 1.1.18 - */ -void webkit_set_cache_model(WebKitCacheModel model) -{ - webkitInit(); - - if (cacheModel == model) - return; - - // FIXME: Add disk cache handling when soup has the API - guint cacheTotalCapacity; - guint cacheMinDeadCapacity; - guint cacheMaxDeadCapacity; - gdouble deadDecodedDataDeletionInterval; - guint pageCacheCapacity; - - // FIXME: The Mac port calculates these values based on the amount of physical memory that's - // installed on the system. Currently these values match the Mac port for users with more than - // 512 MB and less than 1024 MB of physical memory. - switch (model) { - case WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER: - pageCacheCapacity = 0; - cacheTotalCapacity = 0; // FIXME: The Mac port actually sets this to larger than 0. - cacheMinDeadCapacity = 0; - cacheMaxDeadCapacity = 0; - deadDecodedDataDeletionInterval = 0; - break; - case WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER: - pageCacheCapacity = 2; - cacheTotalCapacity = 16 * 1024 * 1024; - cacheMinDeadCapacity = cacheTotalCapacity / 8; - cacheMaxDeadCapacity = cacheTotalCapacity / 4; - deadDecodedDataDeletionInterval = 0; - break; - case WEBKIT_CACHE_MODEL_WEB_BROWSER: - // Page cache capacity (in pages). Comment from Mac port: - // (Research indicates that value / page drops substantially after 3 pages.) - pageCacheCapacity = 3; - cacheTotalCapacity = 32 * 1024 * 1024; - cacheMinDeadCapacity = cacheTotalCapacity / 4; - cacheMaxDeadCapacity = cacheTotalCapacity / 2; - deadDecodedDataDeletionInterval = 60; - break; - default: - g_return_if_reached(); - } - - bool disableCache = !cacheMinDeadCapacity && !cacheMaxDeadCapacity && !cacheTotalCapacity; - memoryCache()->setDisabled(disableCache); - memoryCache()->setCapacities(cacheMinDeadCapacity, cacheMaxDeadCapacity, cacheTotalCapacity); - memoryCache()->setDeadDecodedDataDeletionInterval(deadDecodedDataDeletionInterval); - pageCache()->setCapacity(pageCacheCapacity); - cacheModel = model; -} - -/** - * webkit_get_cache_model: - * - * Returns the current cache model. For more information about this - * value check the documentation of the function - * webkit_set_cache_model(). - * - * Return value: the current #WebKitCacheModel - * - * Since: 1.1.18 - */ -WebKitCacheModel webkit_get_cache_model() -{ - webkitInit(); - return cacheModel; -} - -/** - * webkit_get_web_plugin_database: - * - * Returns the current #WebKitWebPluginDatabase with information about - * all the plugins WebKit knows about in this instance. - * - * Return value: (transfer none): the current #WebKitWebPluginDatabase - * - * Since: 1.3.8 - */ -WebKitWebPluginDatabase* webkit_get_web_plugin_database() -{ - static WebKitWebPluginDatabase* database = 0; - - webkitInit(); - - if (!database) - database = webkit_web_plugin_database_new(); - - return database; -} - -/** - * webkit_get_icon_database: - * - * Returns the #WebKitIconDatabase providing access to website icons. - * - * Return value: (transfer none): the current #WebKitIconDatabase - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_get_favicon_database() instead - */ -WebKitIconDatabase* webkit_get_icon_database() -{ - webkitInit(); - - static WebKitIconDatabase* database = 0; - if (!database) - database = WEBKIT_ICON_DATABASE(g_object_new(WEBKIT_TYPE_ICON_DATABASE, NULL)); - - return database; -} - -/** - * webkit_get_favicon_database: - * - * Returns the #WebKitFaviconDatabase providing access to website - * icons. - * - * Return value: (transfer none): the current #WebKitFaviconDatabase - * - * Since: 1.8 - */ -WebKitFaviconDatabase* webkit_get_favicon_database() -{ - webkitInit(); - - static WebKitFaviconDatabase* database = 0; - if (!database) - database = WEBKIT_FAVICON_DATABASE(g_object_new(WEBKIT_TYPE_FAVICON_DATABASE, NULL)); - - return database; -} - -static GRefPtr<WebKitSpellChecker> textChecker = 0; - -static void webkitExit() -{ - g_object_unref(webkit_get_default_session()); -#if ENABLE(ICONDATABASE) - g_object_unref(webkit_get_favicon_database()); -#endif - textChecker = 0; -} - -/** - * webkit_get_text_checker: - * - * Returns: (transfer none): the #WebKitSpellChecker used by WebKit, or %NULL if spell - * checking is not enabled - * - * Since: 1.5.1 - **/ -GObject* webkit_get_text_checker() -{ - webkitInit(); - -#if ENABLE(SPELLCHECK) - if (!textChecker) - textChecker = adoptGRef(WEBKIT_SPELL_CHECKER(g_object_new(WEBKIT_TYPE_SPELL_CHECKER_ENCHANT, NULL))); -#endif - - return G_OBJECT(textChecker.get()); -} - -/** - * webkit_set_text_checker: - * @checker: a #WebKitSpellChecker or %NULL - * - * Sets @checker as the spell checker to be used by WebKit. The API - * accepts GObject since in the future we might accept objects - * implementing multiple interfaces (for example, spell checking and - * grammar checking). - * - * Since: 1.5.1 - **/ -void webkit_set_text_checker(GObject* checker) -{ - g_return_if_fail(!checker || WEBKIT_IS_SPELL_CHECKER(checker)); - - webkitInit(); - - // We need to do this because we need the cast, and casting NULL - // is not kosher. - textChecker = checker ? WEBKIT_SPELL_CHECKER(checker) : 0; -} - -/** - * webkit_context_menu_item_get_action: - * @item: a #GtkMenuItem of the default context menu - * - * Returns the #WebKitContextMenuAction of the given @item. This function - * can be used to determine the items present in the default context menu. - * In order to inspect the default context menu, you should connect to - * #WebKitWebView::context-menu signal. - * - * <example> - * <title>Inspecting the default context menu</title> - * <programlisting> - * static gboolean context_menu_cb (WebKitWebView *webView, - * GtkWidget *default_menu, - * WebKitHitTestResult *hit_test_result, - * gboolean triggered_with_keyboard, - * gpointer user_data) - * { - * GList *items = gtk_container_get_children (GTK_CONTAINER (default_menu)); - * GList *l; - * GtkAction *action; - * GtkWidget *sub_menu; - * - * for (l = items; l; l = g_list_next (l)) { - * GtkMenuItem *item = (GtkMenuItem *)l->data; - * - * if (GTK_IS_SEPARATOR_MENU_ITEM (item)) { - * /* It's separator, do nothing */ - * continue; - * } - * - * switch (webkit_context_menu_item_get_action (item)) { - * case WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION: - * /* No action for this item */ - * break; - * /* Don't allow to ope links from context menu */ - * case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK: - * case WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW: - * action = gtk_activatable_get_related_action (GTK_ACTIVATABLE (item)); - * gtk_action_set_sensitive (action, FALSE); - * break; - * default: - * break; - * } - * - * sub_menu = gtk_menu_item_get_submenu (item); - * if (sub_menu) { - * GtkWidget *menu_item; - * - * /* Add custom action to submenu */ - * action = gtk_action_new ("CustomItemName", "Custom Action", NULL, NULL); - * g_signal_connect (action, "activate", G_CALLBACK (custom_menu_item_activated), NULL); - * - * menu_item = gtk_action_create_menu_item (action); - * g_object_unref (action); - * gtk_menu_shell_append (GTK_MENU_SHELL (sub_menu), menu_item); - * gtk_widget_show (menu_item); - * } - * } - * - * g_list_free(items); - * } - * </programlisting> - * </example> - * - * Note that you can get the #GtkAction of any item in the default context menu with - * gtk_activatable_get_related_action(). - * - * Returns: the #WebKitContextMenuAction of the given @item - * - * Since: 1.10 - */ -WebKitContextMenuAction webkit_context_menu_item_get_action(GtkMenuItem* item) -{ -#if ENABLE(CONTEXT_MENUS) - g_return_val_if_fail(GTK_IS_MENU_ITEM(item), WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION); - - ContextMenuItem menuItem(item); - switch (menuItem.action()) { - case ContextMenuItemTagNoAction: - return WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION; - case ContextMenuItemTagOpenLink: - return WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK; - case ContextMenuItemTagOpenLinkInNewWindow: - return WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW; - case ContextMenuItemTagDownloadLinkToDisk: - return WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK; - case ContextMenuItemTagCopyLinkToClipboard: - return WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD; - case ContextMenuItemTagOpenImageInNewWindow: - return WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW; - case ContextMenuItemTagDownloadImageToDisk: - return WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK; - case ContextMenuItemTagCopyImageToClipboard: - return WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD; - case ContextMenuItemTagCopyImageUrlToClipboard: - return WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD; - case ContextMenuItemTagOpenFrameInNewWindow: - return WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW; - case ContextMenuItemTagGoBack: - return WEBKIT_CONTEXT_MENU_ACTION_GO_BACK; - case ContextMenuItemTagGoForward: - return WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD; - case ContextMenuItemTagStop: - return WEBKIT_CONTEXT_MENU_ACTION_STOP; - case ContextMenuItemTagReload: - return WEBKIT_CONTEXT_MENU_ACTION_RELOAD; - case ContextMenuItemTagCopy: - return WEBKIT_CONTEXT_MENU_ACTION_COPY; - case ContextMenuItemTagCut: - return WEBKIT_CONTEXT_MENU_ACTION_CUT; - case ContextMenuItemTagPaste: - return WEBKIT_CONTEXT_MENU_ACTION_PASTE; - case ContextMenuItemTagDelete: - return WEBKIT_CONTEXT_MENU_ACTION_DELETE; - case ContextMenuItemTagSelectAll: - return WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL; - case ContextMenuItemTagInputMethods: - return WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS; - case ContextMenuItemTagUnicode: - return WEBKIT_CONTEXT_MENU_ACTION_UNICODE; - case ContextMenuItemTagSpellingGuess: - return WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS; - case ContextMenuItemTagIgnoreSpelling: - return WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING; - case ContextMenuItemTagLearnSpelling: - return WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING; - case ContextMenuItemTagIgnoreGrammar: - return WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR; - case ContextMenuItemTagFontMenu: - return WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU; - case ContextMenuItemTagBold: - return WEBKIT_CONTEXT_MENU_ACTION_BOLD; - case ContextMenuItemTagItalic: - return WEBKIT_CONTEXT_MENU_ACTION_ITALIC; - case ContextMenuItemTagUnderline: - return WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE; - case ContextMenuItemTagOutline: - return WEBKIT_CONTEXT_MENU_ACTION_OUTLINE; - case ContextMenuItemTagInspectElement: - return WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT; - case ContextMenuItemTagOpenMediaInNewWindow: - return WEBKIT_CONTEXT_MENU_ACTION_OPEN_MEDIA_IN_NEW_WINDOW; - case ContextMenuItemTagCopyMediaLinkToClipboard: - return WEBKIT_CONTEXT_MENU_ACTION_COPY_MEDIA_LINK_TO_CLIPBOARD; - case ContextMenuItemTagToggleMediaControls: - return WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS; - case ContextMenuItemTagToggleMediaLoop: - return WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP; - case ContextMenuItemTagEnterVideoFullscreen: - return WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN; - case ContextMenuItemTagMediaPlayPause: - return WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY_PAUSE; - case ContextMenuItemTagMediaMute: - return WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE; - default: - g_assert_not_reached(); - } -#else - return WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION; -#endif -} - -/** - * webkit_set_security_policy_for_uri_scheme: - * @scheme: a URI scheme - * @policy: a #WebKitSecurityPolicy - * - * Set the security policy for the given URI scheme. - * - * Since: 2.0 - */ -void webkit_set_security_policy_for_uri_scheme(const char *scheme, WebKitSecurityPolicy policy) -{ - g_return_if_fail(scheme); - - if (!policy) - return; - - String urlScheme = String::fromUTF8(scheme); - - if (policy & WEBKIT_SECURITY_POLICY_LOCAL) - SchemeRegistry::registerURLSchemeAsLocal(urlScheme); - if (policy & WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME) - SchemeRegistry::registerURLSchemeAsNoAccess(urlScheme); - if (policy & WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED) - SchemeRegistry::registerURLSchemeAsDisplayIsolated(urlScheme); - if (policy & WEBKIT_SECURITY_POLICY_SECURE) - SchemeRegistry::registerURLSchemeAsSecure(urlScheme); - if (policy & WEBKIT_SECURITY_POLICY_CORS_ENABLED) - SchemeRegistry::registerURLSchemeAsCORSEnabled(urlScheme); - if (policy & WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT) - SchemeRegistry::registerURLSchemeAsEmptyDocument(urlScheme); -} - -/** - * webkit_get_security_policy_for_uri_scheme: - * @scheme: a URI scheme - * - * Get the security policy for the given URI scheme. - * - * Returns: a #WebKitSecurityPolicy - * - * Since: 2.0 - */ -WebKitSecurityPolicy webkit_get_security_policy_for_uri_scheme(const char *scheme) -{ - g_return_val_if_fail(scheme, static_cast<WebKitSecurityPolicy>(0)); - - guint policy = 0; - String urlScheme = String::fromUTF8(scheme); - - if (SchemeRegistry::shouldTreatURLSchemeAsLocal(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_LOCAL; - if (SchemeRegistry::shouldTreatURLSchemeAsNoAccess(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME; - if (SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED; - if (SchemeRegistry::shouldTreatURLSchemeAsSecure(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_SECURE; - if (SchemeRegistry::shouldTreatURLSchemeAsCORSEnabled(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_CORS_ENABLED; - if (SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument(urlScheme)) - policy |= WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT; - - return static_cast<WebKitSecurityPolicy>(policy); -} - -void webkitInit() -{ - static bool isInitialized = false; - if (isInitialized) - return; - isInitialized = true; - - bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR); - bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); - - JSC::initializeThreading(); - WTF::initializeMainThread(); - -#if !LOG_DISABLED - WebCore::initializeLoggingChannelsIfNecessary(); -#endif // !LOG_DISABLED - PlatformStrategiesGtk::initialize(); - - // We make sure the text codecs have been initialized, because - // that may only be done by the main thread. - atomicCanonicalTextEncodingName("UTF-8"); - - GOwnPtr<gchar> databaseDirectory(g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL)); - webkit_set_web_database_directory_path(databaseDirectory.get()); - - GOwnPtr<gchar> cacheDirectory(g_build_filename(g_get_user_cache_dir(), "webkitgtk", "applications", NULL)); - WebCore::cacheStorage().setCacheDirectory(cacheDirectory.get()); - - PageGroup::setShouldTrackVisitedLinks(true); - - GOwnPtr<gchar> iconDatabasePath(g_build_filename(g_get_user_data_dir(), "webkit", "icondatabase", NULL)); - webkit_icon_database_set_path(webkit_get_icon_database(), iconDatabasePath.get()); - - WebCore::ResourceHandle::setIgnoreSSLErrors(true); - - atexit(webkitExit); -} - -const char* webkitPageGroupName() -{ - return "org.webkit.gtk.WebKitGTK"; -} diff --git a/Source/WebKit/gtk/webkit/webkitglobals.h b/Source/WebKit/gtk/webkit/webkitglobals.h deleted file mode 100644 index f002d6db8..000000000 --- a/Source/WebKit/gtk/webkit/webkitglobals.h +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitglobals_h -#define webkitglobals_h - -#include "webkitdefines.h" -#include <glib.h> -#include <gtk/gtk.h> -#include <libsoup/soup.h> - -G_BEGIN_DECLS - -/** - * WebKitCacheModel: - * @WEBKIT_CACHE_MODEL_DEFAULT: The default cache model. This is - * WEBKIT_CACHE_MODEL_WEB_BROWSER. - * @WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER: Disable the cache completely, which - * substantially reduces memory usage. Useful for applications that only - * access a single local file, with no navigation to other pages. No remote - * resources will be cached. - * @WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER: A cache model optimized for viewing - * a series of local files -- for example, a documentation viewer or a website - * designer. WebKit will cache a moderate number of resources. - * @WEBKIT_CACHE_MODEL_WEB_BROWSER: Improve document load speed substantially - * by caching a very large number of resources and previously viewed content. - * - * Enum values used for determining the webview cache model. - * - **/ -typedef enum { - WEBKIT_CACHE_MODEL_DEFAULT, - WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER, - WEBKIT_CACHE_MODEL_WEB_BROWSER, - WEBKIT_CACHE_MODEL_DOCUMENT_BROWSER, -} WebKitCacheModel; - -/** - * WebKitContextMenuAction: - * @WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION: No action, used by separator menu items. - * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK: Open current link. - * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW: Open current link in a new window. - * @WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK: Download link destination. - * @WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD: Copy link location to the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW: Open current image in a new window. - * @WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK: Download current image. - * @WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD: Copy current image to the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD: Copy curent image location to the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW: Open current frame in a new window. - * @WEBKIT_CONTEXT_MENU_ACTION_GO_BACK: Load the previous history item. - * @WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD: Load the next history item. - * @WEBKIT_CONTEXT_MENU_ACTION_STOP: Stop any ongoing loading operation. - * @WEBKIT_CONTEXT_MENU_ACTION_RELOAD: Reload the conents of current view. - * @WEBKIT_CONTEXT_MENU_ACTION_COPY: Copy current selection the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_CUT: Cut current selection to the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_PASTE: Paste clipboard contents. - * @WEBKIT_CONTEXT_MENU_ACTION_DELETE: Delete current selection. - * @WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL: Select all text. - * @WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS: Input methods menu. - * @WEBKIT_CONTEXT_MENU_ACTION_UNICODE: Unicode menu. - * @WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS: Guess spelling. - * @WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND: No guesses found. - * @WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING: Ignore spelling. - * @WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING: Learn spelling. - * @WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR: Ignore grammar. - * @WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU: Font menu. - * @WEBKIT_CONTEXT_MENU_ACTION_BOLD: Bold. - * @WEBKIT_CONTEXT_MENU_ACTION_ITALIC: Italic. - * @WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE: Underline. - * @WEBKIT_CONTEXT_MENU_ACTION_OUTLINE: Outline. - * @WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT: Open current element in the inspector. - * @WEBKIT_CONTEXT_MENU_ACTION_OPEN_MEDIA_IN_NEW_WINDOW: Open current media element in a new window. - * @WEBKIT_CONTEXT_MENU_ACTION_COPY_MEDIA_LINK_TO_CLIPBOARD: Copy media link location in to the clipboard. - * @WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS: Enable or disable media controls. - * @WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP: Enable or disable media loop. - * @WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN: Show current video element in fullscreen mode. - * @WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY_PAUSE: Play or pause current media element. - * @WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE: Mute current media element. - * - * Enum values used to denote actions of items in the default context menu. - * - * Since: 1.10 - */ -typedef enum { - WEBKIT_CONTEXT_MENU_ACTION_NO_ACTION = 0, - WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK, - WEBKIT_CONTEXT_MENU_ACTION_OPEN_LINK_IN_NEW_WINDOW, - WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_LINK_TO_DISK, - WEBKIT_CONTEXT_MENU_ACTION_COPY_LINK_TO_CLIPBOARD, - WEBKIT_CONTEXT_MENU_ACTION_OPEN_IMAGE_IN_NEW_WINDOW, - WEBKIT_CONTEXT_MENU_ACTION_DOWNLOAD_IMAGE_TO_DISK, - WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_TO_CLIPBOARD, - WEBKIT_CONTEXT_MENU_ACTION_COPY_IMAGE_URL_TO_CLIPBOARD, - WEBKIT_CONTEXT_MENU_ACTION_OPEN_FRAME_IN_NEW_WINDOW, - WEBKIT_CONTEXT_MENU_ACTION_GO_BACK, - WEBKIT_CONTEXT_MENU_ACTION_GO_FORWARD, - WEBKIT_CONTEXT_MENU_ACTION_STOP, - WEBKIT_CONTEXT_MENU_ACTION_RELOAD, - WEBKIT_CONTEXT_MENU_ACTION_COPY, - WEBKIT_CONTEXT_MENU_ACTION_CUT, - WEBKIT_CONTEXT_MENU_ACTION_PASTE, - WEBKIT_CONTEXT_MENU_ACTION_DELETE, - WEBKIT_CONTEXT_MENU_ACTION_SELECT_ALL, - WEBKIT_CONTEXT_MENU_ACTION_INPUT_METHODS, - WEBKIT_CONTEXT_MENU_ACTION_UNICODE, - WEBKIT_CONTEXT_MENU_ACTION_SPELLING_GUESS, - WEBKIT_CONTEXT_MENU_ACTION_NO_GUESSES_FOUND, - WEBKIT_CONTEXT_MENU_ACTION_IGNORE_SPELLING, - WEBKIT_CONTEXT_MENU_ACTION_LEARN_SPELLING, - WEBKIT_CONTEXT_MENU_ACTION_IGNORE_GRAMMAR, - WEBKIT_CONTEXT_MENU_ACTION_FONT_MENU, - WEBKIT_CONTEXT_MENU_ACTION_BOLD, - WEBKIT_CONTEXT_MENU_ACTION_ITALIC, - WEBKIT_CONTEXT_MENU_ACTION_UNDERLINE, - WEBKIT_CONTEXT_MENU_ACTION_OUTLINE, - WEBKIT_CONTEXT_MENU_ACTION_INSPECT_ELEMENT, - WEBKIT_CONTEXT_MENU_ACTION_OPEN_MEDIA_IN_NEW_WINDOW, - WEBKIT_CONTEXT_MENU_ACTION_COPY_MEDIA_LINK_TO_CLIPBOARD, - WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_CONTROLS, - WEBKIT_CONTEXT_MENU_ACTION_TOGGLE_MEDIA_LOOP, - WEBKIT_CONTEXT_MENU_ACTION_ENTER_VIDEO_FULLSCREEN, - WEBKIT_CONTEXT_MENU_ACTION_MEDIA_PLAY_PAUSE, - WEBKIT_CONTEXT_MENU_ACTION_MEDIA_MUTE -} WebKitContextMenuAction; - -/** - * WebKitSecurityPolicy: - * @WEBKIT_SECURITY_POLICY_LOCAL: Local URI scheme, other non-local pages - * cannot link to or access URIs of this scheme. - * @WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME: Pages loaded with this URI scheme - * cannot access pages loaded with any other URI scheme. - * @WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED: Pages cannot display these URIs - * unless they are from the same scheme. - * @WEBKIT_SECURITY_POLICY_SECURE: Secure URI scheme, doesn't generate mixed - * content warnings when included by an HTTPS page. - * @WEBKIT_SECURITY_POLICY_CORS_ENABLED: URI scheme that can be sent - * CORS (Cross-origin resource sharing) requests. See W3C CORS specification - * http://www.w3.org/TR/cors/. - * @WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT: Strictly empty documents allowed - * to commit synchronously. - * - * Flags used to represent the security policy of a URI scheme. - * - * Since: 2.0 - */ -typedef enum { - WEBKIT_SECURITY_POLICY_LOCAL = 1 << 1, - WEBKIT_SECURITY_POLICY_NO_ACCESS_TO_OTHER_SCHEME = 1 << 2, - WEBKIT_SECURITY_POLICY_DISPLAY_ISOLATED = 1 << 3, - WEBKIT_SECURITY_POLICY_SECURE = 1 << 4, - WEBKIT_SECURITY_POLICY_CORS_ENABLED = 1 << 5, - WEBKIT_SECURITY_POLICY_EMPTY_DOCUMENT = 1 << 6 -} WebKitSecurityPolicy; - -WEBKIT_API SoupSession* -webkit_get_default_session (void); - -WEBKIT_API WebKitWebPluginDatabase * -webkit_get_web_plugin_database (void); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API WebKitIconDatabase * -webkit_get_icon_database (void); -#endif - -WEBKIT_API WebKitFaviconDatabase * -webkit_get_favicon_database (void); - -WEBKIT_API void -webkit_set_cache_model (WebKitCacheModel cache_model); - -WEBKIT_API WebKitCacheModel -webkit_get_cache_model (void); - -WEBKIT_API GObject* -webkit_get_text_checker (void); - -WEBKIT_API void -webkit_set_text_checker (GObject* checker); - -WEBKIT_API WebKitContextMenuAction -webkit_context_menu_item_get_action (GtkMenuItem* item); - -WEBKIT_API void -webkit_set_security_policy_for_uri_scheme (const gchar *scheme, - WebKitSecurityPolicy policy); - -WEBKIT_API WebKitSecurityPolicy -webkit_get_security_policy_for_uri_scheme (const gchar *scheme); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h b/Source/WebKit/gtk/webkit/webkitglobalsprivate.h deleted file mode 100644 index 440ba32a0..000000000 --- a/Source/WebKit/gtk/webkit/webkitglobalsprivate.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitglobalsprivate_h -#define webkitglobalsprivate_h - -#include <glib.h> - -#define WEBKIT_PARAM_READABLE ((GParamFlags)(G_PARAM_READABLE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)) -#define WEBKIT_PARAM_READWRITE ((GParamFlags)(G_PARAM_READWRITE|G_PARAM_STATIC_NAME|G_PARAM_STATIC_NICK|G_PARAM_STATIC_BLURB)) - -#define WEBKIT_WARN_FEATURE_NOT_PRESENT(Feature) g_warning("WebKitGTK+ was not compiled with support for " Feature); - -extern "C" { - -void webkitInit(); -const char* webkitPageGroupName(); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkithittestresult.cpp b/Source/WebKit/gtk/webkit/webkithittestresult.cpp deleted file mode 100644 index 794379e16..000000000 --- a/Source/WebKit/gtk/webkit/webkithittestresult.cpp +++ /dev/null @@ -1,338 +0,0 @@ -/* - * Copyright (C) 2009 Collabora Ltd. - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkithittestresult.h" - -#include "Frame.h" -#include "FrameView.h" -#include "HitTestResult.h" -#include "KURL.h" -#include "WebKitDOMNodePrivate.h" -#include "webkitenumtypes.h" -#include "webkitglobals.h" -#include "webkitglobalsprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -/** - * SECTION:webkithittestresult - * @short_description: The target of a mouse event - * - * This class holds context information about the coordinates - * specified by a GDK event. - */ - -G_DEFINE_TYPE(WebKitHitTestResult, webkit_hit_test_result, G_TYPE_OBJECT) - -struct _WebKitHitTestResultPrivate { - guint context; - char* linkURI; - char* imageURI; - char* mediaURI; - GRefPtr<WebKitDOMNode> innerNode; - WebCore::IntPoint position; -}; - -enum { - PROP_0, - - PROP_CONTEXT, - PROP_LINK_URI, - PROP_IMAGE_URI, - PROP_MEDIA_URI, - PROP_INNER_NODE, - PROP_X, - PROP_Y -}; - -static void webkit_hit_test_result_finalize(GObject* object) -{ - WebKitHitTestResult* web_hit_test_result = WEBKIT_HIT_TEST_RESULT(object); - WebKitHitTestResultPrivate* priv = web_hit_test_result->priv; - - g_free(priv->linkURI); - g_free(priv->imageURI); - g_free(priv->mediaURI); - - G_OBJECT_CLASS(webkit_hit_test_result_parent_class)->finalize(object); -} - -static void webkit_hit_test_result_dispose(GObject* object) -{ - WEBKIT_HIT_TEST_RESULT(object)->priv->~WebKitHitTestResultPrivate(); - - G_OBJECT_CLASS(webkit_hit_test_result_parent_class)->dispose(object); -} - -static void webkit_hit_test_result_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* pspec) -{ - WebKitHitTestResult* web_hit_test_result = WEBKIT_HIT_TEST_RESULT(object); - WebKitHitTestResultPrivate* priv = web_hit_test_result->priv; - - switch(propertyID) { - case PROP_CONTEXT: - g_value_set_flags(value, priv->context); - break; - case PROP_LINK_URI: - g_value_set_string(value, priv->linkURI); - break; - case PROP_IMAGE_URI: - g_value_set_string(value, priv->imageURI); - break; - case PROP_MEDIA_URI: - g_value_set_string(value, priv->mediaURI); - break; - case PROP_INNER_NODE: - g_value_set_object(value, priv->innerNode.get()); - break; - case PROP_X: - g_value_set_int(value, priv->position.x()); - break; - case PROP_Y: - g_value_set_int(value, priv->position.y()); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_hit_test_result_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* pspec) -{ - WebKitHitTestResult* web_hit_test_result = WEBKIT_HIT_TEST_RESULT(object); - WebKitHitTestResultPrivate* priv = web_hit_test_result->priv; - - switch(propertyID) { - case PROP_CONTEXT: - priv->context = g_value_get_flags(value); - break; - case PROP_LINK_URI: - g_free (priv->linkURI); - priv->linkURI = g_value_dup_string(value); - break; - case PROP_IMAGE_URI: - g_free (priv->imageURI); - priv->imageURI = g_value_dup_string(value); - break; - case PROP_MEDIA_URI: - g_free (priv->mediaURI); - priv->mediaURI = g_value_dup_string(value); - break; - case PROP_INNER_NODE: - priv->innerNode = static_cast<WebKitDOMNode*>(g_value_get_object(value)); - break; - case PROP_X: - priv->position.setX(g_value_get_int(value)); - break; - case PROP_Y: - priv->position.setY(g_value_get_int(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_hit_test_result_class_init(WebKitHitTestResultClass* webHitTestResultClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(webHitTestResultClass); - - objectClass->finalize = webkit_hit_test_result_finalize; - objectClass->dispose = webkit_hit_test_result_dispose; - objectClass->get_property = webkit_hit_test_result_get_property; - objectClass->set_property = webkit_hit_test_result_set_property; - - webkitInit(); - - /** - * WebKitHitTestResult:context: - * - * Flags indicating the kind of target that received the event. - * - * Since: 1.1.15 - */ - g_object_class_install_property(objectClass, PROP_CONTEXT, - g_param_spec_flags("context", - _("Context"), - _("Flags indicating the kind of target that received the event."), - WEBKIT_TYPE_HIT_TEST_RESULT_CONTEXT, - WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT, - static_cast<GParamFlags>((WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY)))); - - /** - * WebKitHitTestResult:link-uri: - * - * The URI to which the target that received the event points, if any. - * - * Since: 1.1.15 - */ - g_object_class_install_property(objectClass, PROP_LINK_URI, - g_param_spec_string("link-uri", - _("Link URI"), - _("The URI to which the target that received the event points, if any."), - NULL, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitHitTestResult:image-uri: - * - * The URI of the image that is part of the target that received the event, if any. - * - * Since: 1.1.15 - */ - g_object_class_install_property(objectClass, PROP_IMAGE_URI, - g_param_spec_string("image-uri", - _("Image URI"), - _("The URI of the image that is part of the target that received the event, if any."), - NULL, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitHitTestResult:media-uri: - * - * The URI of the media that is part of the target that received the event, if any. - * - * Since: 1.1.15 - */ - g_object_class_install_property(objectClass, PROP_MEDIA_URI, - g_param_spec_string("media-uri", - _("Media URI"), - _("The URI of the media that is part of the target that received the event, if any."), - NULL, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitHitTestResult:inner-node: - * - * The DOM node at the coordinates where the hit test - * happened. Keep in mind that the node might not be - * representative of the information given in the context - * property, since WebKit uses a series of heuristics to figure - * out that information. One common example is inner-node having - * the text node inside the anchor (<a>) tag; WebKit knows the - * whole context and will put WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK - * in the 'context' property, but the user might be confused by - * the lack of any link tag in 'inner-node'. - * - * Since: 1.3.2 - */ - g_object_class_install_property(objectClass, PROP_INNER_NODE, - g_param_spec_object("inner-node", - _("Inner node"), - _("The inner DOM node associated with the hit test result."), - WEBKIT_TYPE_DOM_NODE, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitHitTestResult:x: - * - * The x coordinate of the event relative to the view's window. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, PROP_X, - g_param_spec_int("x", - _("X coordinate"), - _("The x coordinate of the event relative to the view's window."), - G_MININT, G_MAXINT, 0, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitHitTestResult:y: - * - * The x coordinate of the event relative to the view's window. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, PROP_Y, - g_param_spec_int("y", - _("Y coordinate"), - _("The y coordinate of the event relative to the view's window."), - G_MININT, G_MAXINT, 0, - static_cast<GParamFlags>(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - g_type_class_add_private(webHitTestResultClass, sizeof(WebKitHitTestResultPrivate)); -} - -static void webkit_hit_test_result_init(WebKitHitTestResult* web_hit_test_result) -{ - web_hit_test_result->priv = G_TYPE_INSTANCE_GET_PRIVATE(web_hit_test_result, WEBKIT_TYPE_HIT_TEST_RESULT, WebKitHitTestResultPrivate); - new (web_hit_test_result->priv) WebKitHitTestResultPrivate(); -} - -namespace WebKit { - -WebKitHitTestResult* kit(const WebCore::HitTestResult& result) -{ - guint context = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT; - GOwnPtr<char> linkURI(0); - GOwnPtr<char> imageURI(0); - GOwnPtr<char> mediaURI(0); - WebKitDOMNode* node = 0; - WebCore::Frame* innerNodeFrame; - WebCore::IntPoint point; - - if (!result.absoluteLinkURL().isEmpty()) { - context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK; - linkURI.set(g_strdup(result.absoluteLinkURL().string().utf8().data())); - } - - if (!result.absoluteImageURL().isEmpty()) { - context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE; - imageURI.set(g_strdup(result.absoluteImageURL().string().utf8().data())); - } - - if (!result.absoluteMediaURL().isEmpty()) { - context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA; - mediaURI.set(g_strdup(result.absoluteMediaURL().string().utf8().data())); - } - - if (result.isSelected()) - context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION; - - if (result.isContentEditable()) - context |= WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE; - - if (result.innerNonSharedNode()) - node = kit(result.innerNonSharedNode()); - - innerNodeFrame = result.innerNodeFrame(); - if (innerNodeFrame && innerNodeFrame->view()) { - // Convert document coords to widget coords. - point = innerNodeFrame->view()->contentsToWindow(result.roundedPointInInnerNodeFrame()); - } else { - // FIXME: Main frame coords is not the same as window coords, - // but we do not have pointer to mainframe view here. - point = result.roundedPointInMainFrame(); - } - - return WEBKIT_HIT_TEST_RESULT(g_object_new(WEBKIT_TYPE_HIT_TEST_RESULT, - "link-uri", linkURI.get(), - "image-uri", imageURI.get(), - "media-uri", mediaURI.get(), - "context", context, - "inner-node", node, - "x", point.x(), - "y", point.y(), - NULL)); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkithittestresult.h b/Source/WebKit/gtk/webkit/webkithittestresult.h deleted file mode 100644 index 2a6a64e48..000000000 --- a/Source/WebKit/gtk/webkit/webkithittestresult.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2009 Collabora Ltd. - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkithittestresult_h -#define webkithittestresult_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_HIT_TEST_RESULT (webkit_hit_test_result_get_type()) -#define WEBKIT_HIT_TEST_RESULT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_HIT_TEST_RESULT, WebKitHitTestResult)) -#define WEBKIT_HIT_TEST_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_HIT_TEST_RESULT, WebKitHitTestResultClass)) -#define WEBKIT_IS_HIT_TEST_RESULT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_HIT_TEST_RESULT)) -#define WEBKIT_IS_HIT_TEST_RESULT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_HIT_TEST_RESULT)) -#define WEBKIT_HIT_TEST_RESULT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_HIT_TEST_RESULT, WebKitHitTestResultClass)) - -typedef struct _WebKitHitTestResultPrivate WebKitHitTestResultPrivate; - -struct _WebKitHitTestResult { - GObject parent_instance; - - /*< private >*/ - WebKitHitTestResultPrivate *priv; -}; - -struct _WebKitHitTestResultClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -/** - * WebKitHitTestResultContext: - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT: anywhere in the document. - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK: a hyperlink element. - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE: an image element. - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA: a video or audio element. - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION: the area is selected by - * the user. - * @WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE: the area is - * editable by the user. - */ -typedef enum -{ - WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT = 1 << 1, - WEBKIT_HIT_TEST_RESULT_CONTEXT_LINK = 1 << 2, - WEBKIT_HIT_TEST_RESULT_CONTEXT_IMAGE = 1 << 3, - WEBKIT_HIT_TEST_RESULT_CONTEXT_MEDIA = 1 << 4, - WEBKIT_HIT_TEST_RESULT_CONTEXT_SELECTION = 1 << 5, - WEBKIT_HIT_TEST_RESULT_CONTEXT_EDITABLE = 1 << 6, -} WebKitHitTestResultContext; - -WEBKIT_API GType -webkit_hit_test_result_get_type (void); - -G_END_DECLS - -#endif - diff --git a/Source/WebKit/gtk/webkit/webkithittestresultprivate.h b/Source/WebKit/gtk/webkit/webkithittestresultprivate.h deleted file mode 100644 index 237ac27c6..000000000 --- a/Source/WebKit/gtk/webkit/webkithittestresultprivate.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkithittestresultprivate_h -#define webkithittestresultprivate_h - -#include "HitTestResult.h" -#include "webkithittestresult.h" - -namespace WebKit { - -WebKitHitTestResult* kit(const WebCore::HitTestResult&); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.cpp b/Source/WebKit/gtk/webkit/webkiticondatabase.cpp deleted file mode 100644 index 70b5114e5..000000000 --- a/Source/WebKit/gtk/webkit/webkiticondatabase.cpp +++ /dev/null @@ -1,331 +0,0 @@ -/* - * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkiticondatabase.h" - -#include "FileSystem.h" -#include "IconDatabase.h" -#include "Image.h" -#include "IntSize.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitsecurityoriginprivate.h" -#include "webkitwebframe.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> - -/** - * SECTION:webkiticondatabase - * @short_description: A WebKit web application database - * - * #WebKitIconDatabase provides access to website icons, as shown - * in tab labels, window captions or bookmarks. All views share - * the same icon database. - * - * The icon database is enabled by default and stored in - * ~/.local/share/webkit/icondatabase, depending on XDG_DATA_HOME. - * - * WebKit will automatically look for available icons in link elements - * on opened pages as well as an existing favicon.ico and load the - * images found into the memory cache if possible. The signal "icon-loaded" - * will be emitted when any icon is found and loaded. - * Old Icons are automatically cleaned up after 4 days. - * - * webkit_icon_database_set_path() can be used to change the location - * of the database and also to disable it by passing %NULL. - * - * If WebKitWebSettings::enable-private-browsing is %TRUE new icons - * won't be added to the database on disk and no existing icons will - * be deleted from it. - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use WebKitFaviconDatabase instead. - */ - -using namespace WebKit; - -enum { - PROP_0, - - PROP_PATH, -}; - -enum { - ICON_LOADED, - - LAST_SIGNAL -}; - -static guint webkit_icon_database_signals[LAST_SIGNAL] = { 0, }; - -G_DEFINE_TYPE(WebKitIconDatabase, webkit_icon_database, G_TYPE_OBJECT); - -struct _WebKitIconDatabasePrivate { - GOwnPtr<gchar> path; -}; - -static void webkit_icon_database_finalize(GObject* object) -{ - // Call C++ destructors, the reverse of 'placement new syntax' - WEBKIT_ICON_DATABASE(object)->priv->~WebKitIconDatabasePrivate(); - - G_OBJECT_CLASS(webkit_icon_database_parent_class)->finalize(object); -} - -static void webkit_icon_database_dispose(GObject* object) -{ - G_OBJECT_CLASS(webkit_icon_database_parent_class)->dispose(object); -} - -static void webkit_icon_database_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec) -{ - WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object); - - switch (propId) { - case PROP_PATH: - webkit_icon_database_set_path(database, g_value_get_string(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_icon_database_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec) -{ - WebKitIconDatabase* database = WEBKIT_ICON_DATABASE(object); - - switch (propId) { - case PROP_PATH: - g_value_set_string(value, webkit_icon_database_get_path(database)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_icon_database_class_init(WebKitIconDatabaseClass* klass) -{ - webkitInit(); - - GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); - gobjectClass->dispose = webkit_icon_database_dispose; - gobjectClass->finalize = webkit_icon_database_finalize; - gobjectClass->set_property = webkit_icon_database_set_property; - gobjectClass->get_property = webkit_icon_database_get_property; - - /** - * WebKitIconDatabase:path: - * - * The absolute path of the icon database folder. - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use WebKitFaviconDatabase::path instead. - */ - g_object_class_install_property(gobjectClass, PROP_PATH, - g_param_spec_string("path", - _("Path"), - _("The absolute path of the icon database folder"), - NULL, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitIconDatabase::icon-loaded: - * @database: the object on which the signal is emitted - * @frame: the frame containing the icon - * @frame_uri: the URI of the frame containing the icon - * - * This signal is emitted when a favicon is available for a page, - * or a child frame. - * See WebKitWebView::icon-loaded if you only need the favicon for - * the main frame of a particular #WebKitWebView. - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use WebKitFaviconDatabase::icon-loaded instead. - */ - webkit_icon_database_signals[ICON_LOADED] = g_signal_new("icon-loaded", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - webkit_marshal_VOID__OBJECT_STRING, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_FRAME, - G_TYPE_STRING); - - g_type_class_add_private(klass, sizeof(WebKitIconDatabasePrivate)); -} - -static void webkit_icon_database_init(WebKitIconDatabase* database) -{ - database->priv = G_TYPE_INSTANCE_GET_PRIVATE(database, WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabasePrivate); - // 'placement new syntax', see webkitwebview.cpp - new (database->priv) WebKitIconDatabasePrivate(); -} - -/** - * webkit_icon_database_get_path: - * @database: a #WebKitIconDatabase - * - * Determines the absolute path to the database folder on disk. - * - * Returns: the absolute path of the database folder, or %NULL - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_favicon_database_get_path() instead. - **/ -const gchar* webkit_icon_database_get_path(WebKitIconDatabase* database) -{ - g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); - - return database->priv->path.get(); -} - -static void closeIconDatabaseOnExit() -{ - if (WebCore::iconDatabase().isEnabled()) { - WebCore::iconDatabase().setEnabled(false); - WebCore::iconDatabase().close(); - } -} - -/** - * webkit_icon_database_set_path: - * @database: a #WebKitIconDatabase - * @path: an absolute path to the icon database folder - * - * Specifies the absolute path to the database folder on disk. - * - * Passing %NULL or "" disables the icon database. - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_favicon_database_set_path() instead. - **/ -void webkit_icon_database_set_path(WebKitIconDatabase* database, const gchar* path) -{ - g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database)); - - if (database->priv->path.get()) - WebCore::iconDatabase().close(); - - if (!(path && path[0])) { - database->priv->path.set(0); - WebCore::iconDatabase().setEnabled(false); - return; - } - - database->priv->path.set(g_strdup(path)); - - WebCore::iconDatabase().setEnabled(true); - WebCore::iconDatabase().open(WebCore::filenameToString(database->priv->path.get()), WebCore::IconDatabase::defaultDatabaseFilename()); - - static bool initialized = false; - if (!initialized) { - atexit(closeIconDatabaseOnExit); - initialized = true; - } -} - -/** - * webkit_icon_database_get_icon_uri: - * @database: a #WebKitIconDatabase - * @page_uri: URI of the page containing the icon - * - * Obtains the URI for the favicon for the given page URI. - * See also webkit_web_view_get_icon_uri(). - * - * Returns: a newly allocated URI for the favicon, or %NULL - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_favicon_database_get_favicon_uri() instead. - **/ -gchar* webkit_icon_database_get_icon_uri(WebKitIconDatabase* database, const gchar* pageURI) -{ - g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); - g_return_val_if_fail(pageURI, 0); - - String pageURL = String::fromUTF8(pageURI); - return g_strdup(WebCore::iconDatabase().synchronousIconURLForPageURL(pageURL).utf8().data()); -} - -/** - * webkit_icon_database_get_icon_pixbuf: - * @database: a #WebKitIconDatabase - * @page_uri: URI of the page containing the icon - * - * Obtains a #GdkPixbuf of the favicon for the given page URI, or - * a default icon if there is no icon for the given page. Use - * webkit_icon_database_get_icon_uri() if you need to distinguish these cases. - * Usually you want to connect to WebKitIconDatabase::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_web_view_get_icon_pixbuf(). - * - * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_favicon_database_try_get_favicon_pixbuf() instead. - **/ -GdkPixbuf* webkit_icon_database_get_icon_pixbuf(WebKitIconDatabase* database, const gchar* pageURI) -{ - g_return_val_if_fail(WEBKIT_IS_ICON_DATABASE(database), 0); - g_return_val_if_fail(pageURI, 0); - - String pageURL = String::fromUTF8(pageURI); - // The exact size we pass is irrelevant to the WebCore::iconDatabase code. - // We must pass something greater than 0, 0 to get a pixbuf. - WebCore::Image* icon = WebCore::iconDatabase().synchronousIconForPageURL(pageURL, WebCore::IntSize(16, 16)); - if (!icon) - return 0; - GdkPixbuf* pixbuf = icon->getGdkPixbuf(); - if (!pixbuf) - return 0; - return static_cast<GdkPixbuf*>(g_object_ref(pixbuf)); -} - -/** - * webkit_icon_database_clear: - * @database: a #WebKitIconDatabase - * - * Clears all icons from the database. - * - * Since: 1.3.13 - * - * Deprecated: 1.8: Use webkit_favicon_database_clear() instead. - **/ -void webkit_icon_database_clear(WebKitIconDatabase* database) -{ - g_return_if_fail(WEBKIT_IS_ICON_DATABASE(database)); - - WebCore::iconDatabase().removeAllIcons(); -} - diff --git a/Source/WebKit/gtk/webkit/webkiticondatabase.h b/Source/WebKit/gtk/webkit/webkiticondatabase.h deleted file mode 100644 index f8168d549..000000000 --- a/Source/WebKit/gtk/webkit/webkiticondatabase.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2011 Christian Dywan <christian@lanedo.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkiticondatabase_h -#define webkiticondatabase_h - -#include <gdk-pixbuf/gdk-pixbuf.h> -#include <glib-object.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_ICON_DATABASE (webkit_icon_database_get_type()) -#define WEBKIT_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabase)) -#define WEBKIT_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass)) -#define WEBKIT_IS_ICON_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_ICON_DATABASE)) -#define WEBKIT_IS_ICON_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_ICON_DATABASE)) -#define WEBKIT_ICON_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_ICON_DATABASE, WebKitIconDatabaseClass)) - -typedef struct _WebKitIconDatabasePrivate WebKitIconDatabasePrivate; - -struct _WebKitIconDatabase { - GObject parent_instance; - - /*< private >*/ - WebKitIconDatabasePrivate* priv; -}; - -struct _WebKitIconDatabaseClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_icon_database_get_type (void); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API const gchar* -webkit_icon_database_get_path (WebKitIconDatabase* database); - -WEBKIT_API void -webkit_icon_database_set_path (WebKitIconDatabase* database, - const gchar* path); - -WEBKIT_API gchar* -webkit_icon_database_get_icon_uri (WebKitIconDatabase* database, - const gchar* page_uri); - -WEBKIT_API GdkPixbuf* -webkit_icon_database_get_icon_pixbuf (WebKitIconDatabase* database, - const gchar* page_uri); - -WEBKIT_API void -webkit_icon_database_clear (WebKitIconDatabase* database); -#endif - -G_END_DECLS - -#endif /* webkiticondatabase_h */ diff --git a/Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp b/Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp deleted file mode 100644 index 4996dd981..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkrequest.cpp +++ /dev/null @@ -1,273 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther - * Copyright (C) 2009 Gustavo Noronha Silva - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitnetworkrequest.h" - -#include "ResourceRequest.h" -#include "webkitglobalsprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -/** - * SECTION:webkitnetworkrequest - * @short_description: The target of a navigation request - * @see_also: #WebKitWebView::navigation-policy-decision-requested - * - * This class represents the network related aspects of a navigation - * request. It is used whenever WebKit wants to provide information - * about a request that will be sent, or has been sent. Inside it you - * can find the URI of the request, and, for valid URIs, a - * #SoupMessage object, which provides access to further information - * such as headers. - * - */ - -G_DEFINE_TYPE(WebKitNetworkRequest, webkit_network_request, G_TYPE_OBJECT); - -struct _WebKitNetworkRequestPrivate { - gchar* uri; - SoupMessage* message; -}; - -enum { - PROP_0, - - PROP_URI, - PROP_MESSAGE, -}; - -static void webkit_network_request_dispose(GObject* object) -{ - WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); - WebKitNetworkRequestPrivate* priv = request->priv; - - if (priv->message) { - g_object_unref(priv->message); - priv->message = NULL; - } - - G_OBJECT_CLASS(webkit_network_request_parent_class)->dispose(object); -} - -static void webkit_network_request_finalize(GObject* object) -{ - WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); - WebKitNetworkRequestPrivate* priv = request->priv; - - g_free(priv->uri); - - G_OBJECT_CLASS(webkit_network_request_parent_class)->finalize(object); -} - -static void webkit_network_request_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* pspec) -{ - WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); - - switch(propertyID) { - case PROP_URI: - g_value_set_string(value, webkit_network_request_get_uri(request)); - break; - case PROP_MESSAGE: - g_value_set_object(value, webkit_network_request_get_message(request)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_network_request_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* pspec) -{ - WebKitNetworkRequest* request = WEBKIT_NETWORK_REQUEST(object); - WebKitNetworkRequestPrivate* priv = request->priv; - - switch(propertyID) { - case PROP_URI: - webkit_network_request_set_uri(request, g_value_get_string(value)); - break; - case PROP_MESSAGE: - priv->message = SOUP_MESSAGE(g_value_dup_object(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_network_request_class_init(WebKitNetworkRequestClass* requestClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - - objectClass->dispose = webkit_network_request_dispose; - objectClass->finalize = webkit_network_request_finalize; - objectClass->get_property = webkit_network_request_get_property; - objectClass->set_property = webkit_network_request_set_property; - - webkitInit(); - - /** - * WebKitNetworkRequest:uri: - * - * The URI to which the request will be made. - * - * Since: 1.1.10 - */ - g_object_class_install_property(objectClass, PROP_URI, - g_param_spec_string("uri", - _("URI"), - _("The URI to which the request will be made."), - NULL, - (GParamFlags)(WEBKIT_PARAM_READWRITE))); - - /** - * WebKitNetworkRequest:message: - * - * The #SoupMessage that backs the request. - * - * Since: 1.1.10 - */ - g_object_class_install_property(objectClass, PROP_MESSAGE, - g_param_spec_object("message", - _("Message"), - _("The SoupMessage that backs the request."), - SOUP_TYPE_MESSAGE, - (GParamFlags)(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - - g_type_class_add_private(requestClass, sizeof(WebKitNetworkRequestPrivate)); -} - -static void webkit_network_request_init(WebKitNetworkRequest* request) -{ - WebKitNetworkRequestPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequestPrivate); - request->priv = priv; -} - -/** - * webkit_network_request_new: - * @uri: an URI - * - * Creates a new #WebKitNetworkRequest initialized with an URI. - * - * Returns: a new #WebKitNetworkRequest, or %NULL if the URI is - * invalid. - */ -WebKitNetworkRequest* webkit_network_request_new(const gchar* uri) -{ - g_return_val_if_fail(uri, NULL); - - return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", uri, NULL)); -} - -/** - * webkit_network_request_set_uri: - * @request: a #WebKitNetworkRequest - * @uri: an URI - * - * Sets the URI held and used by the given request. When the request - * has an associated #SoupMessage, its URI will also be set by this - * call. - * - */ -void webkit_network_request_set_uri(WebKitNetworkRequest* request, const gchar* uri) -{ - g_return_if_fail(WEBKIT_IS_NETWORK_REQUEST(request)); - g_return_if_fail(uri); - - WebKitNetworkRequestPrivate* priv = request->priv; - - if (priv->uri) - g_free(priv->uri); - priv->uri = g_strdup(uri); - - if (!priv->message) - return; - - SoupURI* soupURI = soup_uri_new(uri); - g_return_if_fail(soupURI); - - soup_message_set_uri(priv->message, soupURI); - soup_uri_free(soupURI); -} - -/** - * webkit_network_request_get_uri: - * @request: a #WebKitNetworkRequest - * - * Returns: the URI of the #WebKitNetworkRequest - * - * Since: 1.0.0 - */ -const gchar* webkit_network_request_get_uri(WebKitNetworkRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_NETWORK_REQUEST(request), NULL); - - WebKitNetworkRequestPrivate* priv = request->priv; - - if (priv->uri) - return priv->uri; - - SoupURI* soupURI = soup_message_get_uri(priv->message); - priv->uri = soup_uri_to_string(soupURI, FALSE); - return priv->uri; -} - -/** - * webkit_network_request_get_message: - * @request: a #WebKitNetworkRequest - * - * Obtains the #SoupMessage held and used by the given request. Notice - * that modification of the SoupMessage of a request by signal - * handlers is only supported (as in, will only affect what is - * actually sent to the server) where explicitly documented. - * - * Returns: (transfer none): the #SoupMessage - * Since: 1.1.9 - */ -SoupMessage* webkit_network_request_get_message(WebKitNetworkRequest* request) -{ - g_return_val_if_fail(WEBKIT_IS_NETWORK_REQUEST(request), NULL); - - WebKitNetworkRequestPrivate* priv = request->priv; - - return priv->message; -} - -namespace WebKit { - -WebKitNetworkRequest* kitNew(const WebCore::ResourceRequest& resourceRequest) -{ - GRefPtr<SoupMessage> soupMessage(adoptGRef(resourceRequest.toSoupMessage())); - if (soupMessage) - return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "message", soupMessage.get(), NULL)); - - return WEBKIT_NETWORK_REQUEST(g_object_new(WEBKIT_TYPE_NETWORK_REQUEST, "uri", resourceRequest.url().string().utf8().data(), NULL)); -} - -WebCore::ResourceRequest core(WebKitNetworkRequest* request) -{ - SoupMessage* soupMessage = webkit_network_request_get_message(request); - if (soupMessage) - return WebCore::ResourceRequest(soupMessage); - - WebCore::KURL url = WebCore::KURL(WebCore::KURL(), String::fromUTF8(webkit_network_request_get_uri(request))); - return WebCore::ResourceRequest(url); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitnetworkrequest.h b/Source/WebKit/gtk/webkit/webkitnetworkrequest.h deleted file mode 100644 index b4e796673..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkrequest.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitnetworkrequest_h -#define webkitnetworkrequest_h - -#include <glib-object.h> -#include <libsoup/soup.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_NETWORK_REQUEST (webkit_network_request_get_type()) -#define WEBKIT_NETWORK_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequest)) -#define WEBKIT_NETWORK_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequestClass)) -#define WEBKIT_IS_NETWORK_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_NETWORK_REQUEST)) -#define WEBKIT_IS_NETWORK_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_NETWORK_REQUEST)) -#define WEBKIT_NETWORK_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_NETWORK_REQUEST, WebKitNetworkRequestClass)) - -typedef struct _WebKitNetworkRequestPrivate WebKitNetworkRequestPrivate; - -struct _WebKitNetworkRequest { - GObject parent_instance; - - /*< private >*/ - WebKitNetworkRequestPrivate *priv; -}; - -struct _WebKitNetworkRequestClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_network_request_get_type (void); - -WEBKIT_API WebKitNetworkRequest * -webkit_network_request_new (const gchar *uri); - -WEBKIT_API void -webkit_network_request_set_uri (WebKitNetworkRequest *request, - const gchar* uri); - -WEBKIT_API const gchar * -webkit_network_request_get_uri (WebKitNetworkRequest *request); - -WEBKIT_API SoupMessage * -webkit_network_request_get_message(WebKitNetworkRequest* request); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h b/Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h deleted file mode 100644 index 84b45930c..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkrequestprivate.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitnetworkrequestprivate_h -#define webkitnetworkrequestprivate_h - -namespace WebKit { - -WebCore::ResourceRequest core(WebKitNetworkRequest*); -WebKitNetworkRequest* kitNew(const WebCore::ResourceRequest&); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp b/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp deleted file mode 100644 index 5eb855673..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkresponse.cpp +++ /dev/null @@ -1,322 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther - * Copyright (C) 2009 Gustavo Noronha Silva - * 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitnetworkresponse.h" - -#include "ResourceResponse.h" -#include "webkitglobalsprivate.h" -#include "webkitnetworkresponseprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/text/CString.h> - -using namespace WebKit; - -/** - * SECTION:webkitnetworkresponse - * @short_description: the response given to a network request - * @see_also: #WebKitNetworkRequest - * - * This class represents the network related aspects of a navigation - * response. - * - * Since: 1.1.14 - */ - -G_DEFINE_TYPE(WebKitNetworkResponse, webkit_network_response, G_TYPE_OBJECT); - -struct _WebKitNetworkResponsePrivate { - gchar* uri; - gchar* suggestedFilename; - SoupMessage* message; -}; - -#define WEBKIT_NETWORK_RESPONSE_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_NETWORK_RESPONSE, WebKitNetworkResponsePrivate)) - -enum { - PROP_0, - - PROP_URI, - PROP_MESSAGE, - PROP_SUGGESTED_FILENAME, -}; - -static void webkit_network_response_dispose(GObject* object) -{ - WebKitNetworkResponse* response = WEBKIT_NETWORK_RESPONSE(object); - WebKitNetworkResponsePrivate* priv = response->priv; - - if (priv->message) { - g_object_unref(priv->message); - priv->message = NULL; - } - - G_OBJECT_CLASS(webkit_network_response_parent_class)->dispose(object); -} - -static void webkit_network_response_finalize(GObject* object) -{ - WebKitNetworkResponse* response = WEBKIT_NETWORK_RESPONSE(object); - WebKitNetworkResponsePrivate* priv = response->priv; - - g_free(priv->uri); - g_free(priv->suggestedFilename); - - G_OBJECT_CLASS(webkit_network_response_parent_class)->finalize(object); -} - -static void webkit_network_response_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* pspec) -{ - WebKitNetworkResponse* response = WEBKIT_NETWORK_RESPONSE(object); - - switch(propertyID) { - case PROP_URI: - g_value_set_string(value, webkit_network_response_get_uri(response)); - break; - case PROP_MESSAGE: - g_value_set_object(value, webkit_network_response_get_message(response)); - break; - case PROP_SUGGESTED_FILENAME: - g_value_set_string(value, webkit_network_response_get_suggested_filename(response)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_network_response_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* pspec) -{ - WebKitNetworkResponse* response = WEBKIT_NETWORK_RESPONSE(object); - WebKitNetworkResponsePrivate* priv = response->priv; - - switch(propertyID) { - case PROP_URI: - webkit_network_response_set_uri(response, g_value_get_string(value)); - break; - case PROP_MESSAGE: - priv->message = SOUP_MESSAGE(g_value_dup_object(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, pspec); - } -} - -static void webkit_network_response_class_init(WebKitNetworkResponseClass* responseClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(responseClass); - - objectClass->dispose = webkit_network_response_dispose; - objectClass->finalize = webkit_network_response_finalize; - objectClass->get_property = webkit_network_response_get_property; - objectClass->set_property = webkit_network_response_set_property; - - webkitInit(); - - /** - * WebKitNetworkResponse:uri: - * - * The URI to which the response will be made. - * - * Since: 1.1.14 - */ - g_object_class_install_property(objectClass, PROP_URI, - g_param_spec_string("uri", - _("URI"), - _("The URI to which the response will be made."), - NULL, - (GParamFlags)(WEBKIT_PARAM_READWRITE))); - - /** - * WebKitNetworkResponse:message: - * - * The #SoupMessage that backs the response. - * - * Since: 1.1.14 - */ - g_object_class_install_property(objectClass, PROP_MESSAGE, - g_param_spec_object("message", - _("Message"), - _("The SoupMessage that backs the response."), - SOUP_TYPE_MESSAGE, - (GParamFlags)(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitNetworkResponse:suggested-filename: - * - * The suggested filename for the response. - * - * Since: 1.10 - */ - g_object_class_install_property(objectClass, PROP_SUGGESTED_FILENAME, - g_param_spec_string("suggested-filename", - _("Suggested filename"), - _("The suggested filename for the response."), - 0, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(responseClass, sizeof(WebKitNetworkResponsePrivate)); -} - -static void webkit_network_response_init(WebKitNetworkResponse* response) -{ - response->priv = WEBKIT_NETWORK_RESPONSE_GET_PRIVATE(response); -} - -/** - * webkit_network_response_new: - * @uri: an URI - * - * Creates a new #WebKitNetworkResponse initialized with an URI. - * - * Returns: a new #WebKitNetworkResponse, or %NULL if the URI is - * invalid. - * - * Since: 1.1.14 - */ -WebKitNetworkResponse* webkit_network_response_new(const gchar* uri) -{ - g_return_val_if_fail(uri, NULL); - - return WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "uri", uri, NULL)); -} - -/** - * webkit_network_response_set_uri: - * @response: a #WebKitNetworkResponse - * @uri: an URI - * - * Sets the URI held and used by the given response. When the response - * has an associated #SoupMessage, its URI will also be set by this - * call. - * - * Since: 1.1.14 - */ -void webkit_network_response_set_uri(WebKitNetworkResponse* response, const gchar* uri) -{ - g_return_if_fail(WEBKIT_IS_NETWORK_RESPONSE(response)); - g_return_if_fail(uri); - - WebKitNetworkResponsePrivate* priv = response->priv; - - if (priv->uri) - g_free(priv->uri); - priv->uri = g_strdup(uri); - - if (!priv->message) - return; - - SoupURI* soupURI = soup_uri_new(uri); - g_return_if_fail(soupURI); - - soup_message_set_uri(priv->message, soupURI); - soup_uri_free(soupURI); -} - -/** - * webkit_network_response_get_uri: - * @response: a #WebKitNetworkResponse - * - * Returns: the URI of the #WebKitNetworkResponse - * - * Since: 1.1.14 - */ -const gchar* webkit_network_response_get_uri(WebKitNetworkResponse* response) -{ - g_return_val_if_fail(WEBKIT_IS_NETWORK_RESPONSE(response), NULL); - - WebKitNetworkResponsePrivate* priv = response->priv; - - if (priv->uri) - return priv->uri; - - SoupURI* soupURI = soup_message_get_uri(priv->message); - priv->uri = soup_uri_to_string(soupURI, FALSE); - return priv->uri; -} - -/** - * webkit_network_response_get_message: - * @response: a #WebKitNetworkResponse - * - * Obtains the #SoupMessage that represents the given response. Notice - * that only the response side of the HTTP conversation is - * represented. - * - * Returns: (transfer none): the #SoupMessage - * Since: 1.1.14 - */ -SoupMessage* webkit_network_response_get_message(WebKitNetworkResponse* response) -{ - g_return_val_if_fail(WEBKIT_IS_NETWORK_RESPONSE(response), NULL); - - WebKitNetworkResponsePrivate* priv = response->priv; - - return priv->message; -} - -/** - * webkit_network_response_get_suggested_filename: - * @response: a #WebKitNetworkResponse - * - * Obtains the suggested filename for the given network response. The - * suggested filename is taken from the 'Content-Disposition' HTTP - * header, but this is not always present, and this method will return - * %NULL in such case. - * - * Returns: (transfer none): the suggested filename or %NULL if not present - * Since: 1.10 - **/ -const gchar* webkit_network_response_get_suggested_filename(WebKitNetworkResponse* response) -{ - g_return_val_if_fail(WEBKIT_IS_NETWORK_RESPONSE(response), 0); - - WebKitNetworkResponsePrivate* priv = response->priv; - - if (priv->suggestedFilename) - return priv->suggestedFilename; - - WebCore::ResourceResponse coreResponse = core(response); - priv->suggestedFilename = g_strdup(coreResponse.suggestedFilename().utf8().data()); - return priv->suggestedFilename; -} - -namespace WebKit { - -WebCore::ResourceResponse core(WebKitNetworkResponse* response) -{ - SoupMessage* soupMessage = webkit_network_response_get_message(response); - if (soupMessage) - return WebCore::ResourceResponse(soupMessage); - - return WebCore::ResourceResponse(); -} - -WebKitNetworkResponse* kitNew(const WebCore::ResourceResponse& resourceResponse) -{ - GRefPtr<SoupMessage> soupMessage(adoptGRef(resourceResponse.toSoupMessage())); - if (soupMessage) - return WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "message", soupMessage.get(), NULL)); - - return WEBKIT_NETWORK_RESPONSE(g_object_new(WEBKIT_TYPE_NETWORK_RESPONSE, "uri", resourceResponse.url().string().utf8().data(), NULL)); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitnetworkresponse.h b/Source/WebKit/gtk/webkit/webkitnetworkresponse.h deleted file mode 100644 index 359b3322a..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkresponse.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitnewtorkresponse_h -#define webkitnewtorkresponse_h - -#include <glib-object.h> -#include <libsoup/soup.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_NETWORK_RESPONSE (webkit_network_response_get_type()) -#define WEBKIT_NETWORK_RESPONSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_NETWORK_RESPONSE, WebKitNetworkResponse)) -#define WEBKIT_NETWORK_RESPONSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_NETWORK_RESPONSE, WebKitNetworkResponseClass)) -#define WEBKIT_IS_NETWORK_RESPONSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_NETWORK_RESPONSE)) -#define WEBKIT_IS_NETWORK_RESPONSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_NETWORK_RESPONSE)) -#define WEBKIT_NETWORK_RESPONSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_NETWORK_RESPONSE, WebKitNetworkResponseClass)) - -typedef struct _WebKitNetworkResponsePrivate WebKitNetworkResponsePrivate; - -struct _WebKitNetworkResponse { - GObject parent_instance; - - /*< private >*/ - WebKitNetworkResponsePrivate *priv; -}; - -struct _WebKitNetworkResponseClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_network_response_get_type (void); - -WEBKIT_API WebKitNetworkResponse * -webkit_network_response_new (const gchar *uri); - -WEBKIT_API void -webkit_network_response_set_uri (WebKitNetworkResponse *response, - const gchar* uri); - -WEBKIT_API const gchar * -webkit_network_response_get_uri (WebKitNetworkResponse *response); - -WEBKIT_API SoupMessage * -webkit_network_response_get_message(WebKitNetworkResponse* response); - -WEBKIT_API const char * -webkit_network_response_get_suggested_filename(WebKitNetworkResponse *response); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitnetworkresponseprivate.h b/Source/WebKit/gtk/webkit/webkitnetworkresponseprivate.h deleted file mode 100644 index ab38a5083..000000000 --- a/Source/WebKit/gtk/webkit/webkitnetworkresponseprivate.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitnetworkresponseprivate_h -#define webkitnetworkresponseprivate_h - -#include "ResourceResponse.h" - -namespace WebKit { - -WebCore::ResourceResponse core(WebKitNetworkResponse*); -WebKitNetworkResponse* kitNew(const WebCore::ResourceResponse&); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp b/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp deleted file mode 100644 index f174ba548..000000000 --- a/Source/WebKit/gtk/webkit/webkitsecurityorigin.cpp +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Copyright (C) 2009 Martin Robinson, Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitsecurityorigin.h" - -#include "DatabaseManager.h" -#include "webkitglobalsprivate.h" -#include "webkitsecurityoriginprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> - -/** - * SECTION:webkitsecurityorigin - * @short_description: A security boundary for web sites - * - * #WebKitSecurityOrigin is a representation of a security domain defined - * by web sites. An origin consists of a host name, a protocol, and a port - * number. Web sites with the same security origin can access each other's - * resources for client-side scripting or database access. - * - * Use #webkit_web_frame_get_security_origin to get the security origin of a - * #WebKitWebFrame. - * - * Database quotas and usages are also defined per security origin. The - * cumulative disk usage of an origin's databases may be retrieved with - * #webkit_security_origin_get_web_database_usage. An origin's quota can be - * adjusted with #webkit_security_origin_set_web_database_quota. - */ - -using namespace WebKit; - -enum { - PROP_0, - - PROP_PROTOCOL, - PROP_HOST, - PROP_PORT, - PROP_DATABASE_USAGE, - PROP_DATABASE_QUOTA -}; - -G_DEFINE_TYPE(WebKitSecurityOrigin, webkit_security_origin, G_TYPE_OBJECT) - -static void webkit_security_origin_finalize(GObject* object) -{ - WebKitSecurityOrigin* securityOrigin = WEBKIT_SECURITY_ORIGIN(object); - WebKitSecurityOriginPrivate* priv = securityOrigin->priv; - - g_free(priv->protocol); - g_free(priv->host); - - G_OBJECT_CLASS(webkit_security_origin_parent_class)->finalize(object); -} - -static void webkit_security_origin_dispose(GObject* object) -{ - WebKitSecurityOrigin* securityOrigin = WEBKIT_SECURITY_ORIGIN(object); - WebKitSecurityOriginPrivate* priv = securityOrigin->priv; - - if (!priv->disposed) { - priv->coreOrigin->deref(); - g_hash_table_destroy(priv->webDatabases); - priv->disposed = true; - } - - G_OBJECT_CLASS(webkit_security_origin_parent_class)->dispose(object); -} - -static void webkit_security_origin_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec) -{ - WebKitSecurityOrigin* securityOrigin = WEBKIT_SECURITY_ORIGIN(object); - - switch (propId) { - case PROP_DATABASE_QUOTA: - webkit_security_origin_set_web_database_quota(securityOrigin, g_value_get_uint64(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_security_origin_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec) -{ - WebKitSecurityOrigin* securityOrigin = WEBKIT_SECURITY_ORIGIN(object); - - switch (propId) { - case PROP_PROTOCOL: - g_value_set_string(value, webkit_security_origin_get_protocol(securityOrigin)); - break; - case PROP_HOST: - g_value_set_string(value, webkit_security_origin_get_host(securityOrigin)); - break; - case PROP_PORT: - g_value_set_uint(value, webkit_security_origin_get_port(securityOrigin)); - break; - case PROP_DATABASE_USAGE: - g_value_set_uint64(value, webkit_security_origin_get_web_database_usage(securityOrigin)); - break; - case PROP_DATABASE_QUOTA: - g_value_set_uint64(value, webkit_security_origin_get_web_database_quota(securityOrigin)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static GHashTable* webkit_security_origins() -{ - static GHashTable* securityOrigins = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_object_unref); - return securityOrigins; -} - -static void webkit_security_origin_class_init(WebKitSecurityOriginClass* klass) -{ - GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); - gobjectClass->dispose = webkit_security_origin_dispose; - gobjectClass->finalize = webkit_security_origin_finalize; - gobjectClass->set_property = webkit_security_origin_set_property; - gobjectClass->get_property = webkit_security_origin_get_property; - - /** - * WebKitSecurityOrigin:protocol: - * - * The protocol of the security origin. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_PROTOCOL, - g_param_spec_string("protocol", - _("Protocol"), - _("The protocol of the security origin"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitSecurityOrigin:host: - * - * The host of the security origin. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_HOST, - g_param_spec_string("host", - _("Host"), - _("The host of the security origin"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitSecurityOrigin:port: - * - * The port of the security origin. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_PORT, - g_param_spec_uint("port", - _("Port"), - _("The port of the security origin"), - 0, G_MAXUSHORT, 0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitSecurityOrigin:web-database-usage: - * - * The cumulative size of all web databases in the security origin in bytes. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_DATABASE_USAGE, - g_param_spec_uint64("web-database-usage", - _("Web Database Usage"), - _("The cumulative size of all web databases in the security origin"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READABLE)); - /** - * WebKitSecurityOrigin:web-database-quota: - * - * The web database qouta of the security origin in bytes. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_DATABASE_QUOTA, - g_param_spec_uint64("web-database-quota", - _("Web Database Quota"), - _("The web database quota of the security origin in bytes"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READWRITE)); - - g_type_class_add_private(klass, sizeof(WebKitSecurityOriginPrivate)); -} - -static void webkit_security_origin_init(WebKitSecurityOrigin* securityOrigin) -{ - WebKitSecurityOriginPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(securityOrigin, WEBKIT_TYPE_SECURITY_ORIGIN, WebKitSecurityOriginPrivate); - priv->webDatabases = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref); - securityOrigin->priv = priv; -} - -/** - * webkit_security_origin_get_protocol: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns the protocol for the security origin. - * - * Returns: the protocol for the security origin - * - * Since: 1.1.14 - **/ -const gchar* webkit_security_origin_get_protocol(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL); - - WebKitSecurityOriginPrivate* priv = securityOrigin->priv; - WTF::String protocol = priv->coreOrigin->protocol(); - - if (!priv->protocol) - priv->protocol = g_strdup(protocol.utf8().data()); - - return priv->protocol; -} - -/** - * webkit_security_origin_get_host: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns the hostname for the security origin. - * - * Returns: the hostname for the security origin - * - * Since: 1.1.14 - **/ -const gchar* webkit_security_origin_get_host(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL); - - WebKitSecurityOriginPrivate* priv = securityOrigin->priv; - WTF::String host = priv->coreOrigin->host(); - - if (!priv->host) - priv->host = g_strdup(host.utf8().data()); - - return priv->host; -} - -/** - * webkit_security_origin_get_port: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns the port for the security origin. - * - * Returns: the port for the security origin - * - * Since: 1.1.14 - **/ -guint webkit_security_origin_get_port(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), 0); - - WebCore::SecurityOrigin* coreOrigin = core(securityOrigin); - return coreOrigin->port(); -} - -/** - * webkit_security_origin_get_web_database_usage: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns the cumulative size of all Web Database database's in the origin - * in bytes. - * - * Returns: the cumulative size of all databases - * - * Since: 1.1.14 - **/ -guint64 webkit_security_origin_get_web_database_usage(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), 0); - -#if ENABLE(SQL_DATABASE) - WebCore::SecurityOrigin* coreOrigin = core(securityOrigin); - return WebCore::DatabaseManager::manager().usageForOrigin(coreOrigin); -#else - return 0; -#endif -} - -/** - * webkit_security_origin_get_web_database_quota: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns the quota for Web Database storage of the security origin - * in bytes. - * - * Returns: the Web Database quota - * - * Since: 1.1.14 - **/ -guint64 webkit_security_origin_get_web_database_quota(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), 0); - -#if ENABLE(SQL_DATABASE) - WebCore::SecurityOrigin* coreOrigin = core(securityOrigin); - return WebCore::DatabaseManager::manager().quotaForOrigin(coreOrigin); -#else - return 0; -#endif -} - -/** - * webkit_security_origin_set_web_database_quota: - * @securityOrigin: a #WebKitSecurityOrigin - * @quota: a new Web Database quota in bytes - * - * Adjust the quota for Web Database storage of the security origin - * - * Since: 1.1.14 - **/ -void webkit_security_origin_set_web_database_quota(WebKitSecurityOrigin* securityOrigin, guint64 quota) -{ - g_return_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin)); - -#if ENABLE(SQL_DATABASE) - WebCore::SecurityOrigin* coreOrigin = core(securityOrigin); - WebCore::DatabaseManager::manager().setQuota(coreOrigin, quota); -#endif -} - -/** - * webkit_security_origin_get_all_web_databases: - * @securityOrigin: a #WebKitSecurityOrigin - * - * Returns a list of all Web Databases in the security origin. - * - * Returns: (transfer container) (element-type WebKitWebDatabase): a - * #GList of databases in the security origin. - * - * Since: 1.1.14 - **/ -GList* webkit_security_origin_get_all_web_databases(WebKitSecurityOrigin* securityOrigin) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL); - GList* databases = NULL; - -#if ENABLE(SQL_DATABASE) - WebCore::SecurityOrigin* coreOrigin = core(securityOrigin); - Vector<WTF::String> databaseNames; - - if (!WebCore::DatabaseManager::manager().databaseNamesForOrigin(coreOrigin, databaseNames)) - return NULL; - - for (unsigned i = 0; i < databaseNames.size(); ++i) { - WebKitWebDatabase* database = webkit_security_origin_get_web_database(securityOrigin, databaseNames[i].utf8().data()); - databases = g_list_append(databases, database); - } -#endif - - return databases; -} - -WebKitWebDatabase* webkit_security_origin_get_web_database(WebKitSecurityOrigin* securityOrigin, const gchar* databaseName) -{ - g_return_val_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin), NULL); - - WebKitSecurityOriginPrivate* priv = securityOrigin->priv; - GHashTable* databaseHash = priv->webDatabases; - WebKitWebDatabase* database = (WebKitWebDatabase*) g_hash_table_lookup(databaseHash, databaseName); - - if (!database) { - database = WEBKIT_WEB_DATABASE(g_object_new(WEBKIT_TYPE_WEB_DATABASE, - "security-origin", securityOrigin, - "name", databaseName, - NULL)); - g_hash_table_insert(databaseHash, g_strdup(databaseName), database); - } - - return database; -} - -namespace WebKit { - -WebCore::SecurityOrigin* core(WebKitSecurityOrigin* securityOrigin) -{ - ASSERT(securityOrigin); - - return securityOrigin->priv->coreOrigin.get(); -} - -WebKitSecurityOrigin* kit(WebCore::SecurityOrigin* coreOrigin) -{ - ASSERT(coreOrigin); - - GHashTable* table = webkit_security_origins(); - WebKitSecurityOrigin* origin = (WebKitSecurityOrigin*) g_hash_table_lookup(table, coreOrigin); - - if (!origin) { - origin = WEBKIT_SECURITY_ORIGIN(g_object_new(WEBKIT_TYPE_SECURITY_ORIGIN, NULL)); - origin->priv->coreOrigin = coreOrigin; - g_hash_table_insert(table, coreOrigin, origin); - } - - return origin; -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitsecurityorigin.h b/Source/WebKit/gtk/webkit/webkitsecurityorigin.h deleted file mode 100644 index 032790995..000000000 --- a/Source/WebKit/gtk/webkit/webkitsecurityorigin.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2009 Martin Robinson, Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitsecurityorigin_h -#define webkitsecurityorigin_h - -#include "webkitwebdatabase.h" - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_SECURITY_ORIGIN (webkit_security_origin_get_type()) -#define WEBKIT_SECURITY_ORIGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_SECURITY_ORIGIN, WebKitSecurityOrigin)) -#define WEBKIT_SECURITY_ORIGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_SECURITY_ORIGIN, WebKitSecurityOriginClass)) -#define WEBKIT_IS_SECURITY_ORIGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_SECURITY_ORIGIN)) -#define WEBKIT_IS_SECURITY_ORIGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_SECURITY_ORIGIN)) -#define WEBKIT_SECURITY_ORIGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_SECURITY_ORIGIN, WebKitSecurityOriginClass)) - -typedef struct _WebKitSecurityOriginPrivate WebKitSecurityOriginPrivate; - -struct _WebKitSecurityOrigin { - GObject parent_instance; - - /*< private >*/ - WebKitSecurityOriginPrivate* priv; -}; - -struct _WebKitSecurityOriginClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_security_origin_get_type (void); - -WEBKIT_API const gchar* -webkit_security_origin_get_protocol (WebKitSecurityOrigin* securityOrigin); - -WEBKIT_API const gchar* -webkit_security_origin_get_host (WebKitSecurityOrigin* securityOrigin); - -WEBKIT_API guint -webkit_security_origin_get_port (WebKitSecurityOrigin* securityOrigin); - -WEBKIT_API guint64 -webkit_security_origin_get_web_database_usage (WebKitSecurityOrigin* securityOrigin); - -WEBKIT_API guint64 -webkit_security_origin_get_web_database_quota (WebKitSecurityOrigin* securityOrigin); - -WEBKIT_API void -webkit_security_origin_set_web_database_quota (WebKitSecurityOrigin* securityOrigin, guint64 quota); - -WEBKIT_API GList * -webkit_security_origin_get_all_web_databases (WebKitSecurityOrigin* securityOrigin); - -G_END_DECLS - -#endif /* __WEBKIT_SECURITY_ORIGIN_H__ */ diff --git a/Source/WebKit/gtk/webkit/webkitsecurityoriginprivate.h b/Source/WebKit/gtk/webkit/webkitsecurityoriginprivate.h deleted file mode 100644 index 5a4a87b89..000000000 --- a/Source/WebKit/gtk/webkit/webkitsecurityoriginprivate.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitsecurityoriginprivate_h -#define webkitnavigationactionprivate_h - -#include "SecurityOrigin.h" -#include "webkitsecurityorigin.h" - -namespace WebKit { - -WebKitSecurityOrigin* kit(WebCore::SecurityOrigin*); -WebCore::SecurityOrigin* core(WebKitSecurityOrigin*); - -} - -extern "C" { - -struct _WebKitSecurityOriginPrivate { - RefPtr<WebCore::SecurityOrigin> coreOrigin; - gchar* protocol; - gchar* host; - GHashTable* webDatabases; - - gboolean disposed; -}; - -WEBKIT_API WebKitWebDatabase* webkit_security_origin_get_web_database(WebKitSecurityOrigin*, const char*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitsoupauthdialog.cpp b/Source/WebKit/gtk/webkit/webkitsoupauthdialog.cpp deleted file mode 100644 index afe16bd50..000000000 --- a/Source/WebKit/gtk/webkit/webkitsoupauthdialog.cpp +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitsoupauthdialog.h" - -#include "AuthenticationClient.h" -#include "ResourceHandle.h" -#include "webkitauthenticationdialog.h" -#include "webkitmarshal.h" -#include <wtf/text/CString.h> - -using namespace WebCore; - -/** - * SECTION:webkitsoupauthdialog - * @short_description: A #SoupSessionFeature to provide a simple - * authentication dialog for HTTP basic auth support. - * - * #WebKitSoupAuthDialog is a #SoupSessionFeature that you can attach to your - * #SoupSession to provide a simple authentication dialog while - * handling HTTP basic auth. - */ - - -// This class exists only for API compatibility reasons. WebKitSoupAuthDialog was exposed -// in the public API, so we must provide this "fake" AuthenticationClient in order to -// continue using GtkAuthenticationDialog with the new authentication architecture. -class WebKitSoupAuthDialogAuthenticationClient : public WebCore::AuthenticationClient, public RefCounted<WebKitSoupAuthDialogAuthenticationClient> { -using RefCounted<WebKitSoupAuthDialogAuthenticationClient>::ref; -using RefCounted<WebKitSoupAuthDialogAuthenticationClient>::deref; -public: - virtual void didReceiveAuthenticationChallenge(const AuthenticationChallenge& challenge) - { - } - - virtual void receivedRequestToContinueWithoutCredential(const AuthenticationChallenge& challenge) - { - soup_session_unpause_message(challenge.soupSession(), challenge.soupMessage()); - } - - virtual void receivedCredential(const AuthenticationChallenge& challenge, const Credential& credential) - { - soup_auth_authenticate(challenge.soupAuth(), credential.user().utf8().data(), credential.password().utf8().data()); - soup_session_unpause_message(challenge.soupSession(), challenge.soupMessage()); - } - - virtual void receivedCancellation(const AuthenticationChallenge& challenge) - { - soup_session_unpause_message(challenge.soupSession(), challenge.soupMessage()); - } - - // This seems necessary to make the compiler happy. Both AuthenticationClient and - // RefCounted<T> expose a ref/deref method, which interferes with the use of a RefPtr. - void derefWebKitSoupAuthDialogAuthenticationClient() - { - deref(); - } - -private: - virtual void refAuthenticationClient() { ref(); } - virtual void derefAuthenticationClient() { deref(); } -}; - -static void webkit_soup_auth_dialog_session_feature_init(SoupSessionFeatureInterface*, gpointer); -static void attach(SoupSessionFeature*, SoupSession*); -static void detach(SoupSessionFeature*, SoupSession*); - -enum { - CURRENT_TOPLEVEL, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL] = { 0 }; - -G_DEFINE_TYPE_WITH_CODE(WebKitSoupAuthDialog, webkit_soup_auth_dialog, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE(SOUP_TYPE_SESSION_FEATURE, - webkit_soup_auth_dialog_session_feature_init)) - -static void webkit_soup_auth_dialog_class_init(WebKitSoupAuthDialogClass* klass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(klass); - - /** - * WebKitSoupAuthDialog::current-toplevel: - * @authDialog: the object on which the signal is emitted - * @message: the #SoupMessage being used in the authentication process - * - * This signal is emitted by the @authDialog when it needs to know - * the current toplevel widget in order to correctly set the - * transiency for the authentication dialog. - * - * Return value: (transfer none): the current toplevel #GtkWidget or %NULL if there's none - * - * Since: 1.1.1 - */ - signals[CURRENT_TOPLEVEL] = g_signal_new("current-toplevel", - G_OBJECT_CLASS_TYPE(objectClass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitSoupAuthDialogClass, current_toplevel), - 0, 0, - webkit_marshal_OBJECT__OBJECT, - GTK_TYPE_WIDGET, 1, - SOUP_TYPE_MESSAGE); -} - -static void webkit_soup_auth_dialog_init(WebKitSoupAuthDialog*) -{ -} - -static void webkit_soup_auth_dialog_session_feature_init(SoupSessionFeatureInterface *featureInterface, gpointer) -{ - featureInterface->attach = attach; - featureInterface->detach = detach; -} - -static void sessionAuthenticate(SoupSession* session, SoupMessage* message, SoupAuth* auth, gboolean retrying, SoupSessionFeature* manager) -{ - GtkWindow* toplevel = 0; - g_signal_emit(manager, signals[CURRENT_TOPLEVEL], 0, message, &toplevel); - - WebKitSoupAuthDialogAuthenticationClient* client = new WebKitSoupAuthDialogAuthenticationClient(); - AuthenticationChallenge challenge(session, message, auth, retrying, client); - soup_session_unpause_message(session, message); - - // A RefPtr would be better here, but it seems that accessing RefCounted::deref from this context is - // impossible with gcc, due to WebKitSoupAuthDialogAuthenticationClient's two superclasses. - client->derefWebKitSoupAuthDialogAuthenticationClient(); - - GtkWidget* authDialog = createAuthenticationDialog(toplevel, challenge, DisallowPersistentStorage); - gtk_widget_show(authDialog); -} - -static void attach(SoupSessionFeature* manager, SoupSession* session) -{ - g_signal_connect(session, "authenticate", G_CALLBACK(sessionAuthenticate), manager); -} - -static void detach(SoupSessionFeature* manager, SoupSession* session) -{ - g_signal_handlers_disconnect_by_func(session, reinterpret_cast<gpointer>(sessionAuthenticate), manager); -} - - diff --git a/Source/WebKit/gtk/webkit/webkitsoupauthdialog.h b/Source/WebKit/gtk/webkit/webkitsoupauthdialog.h deleted file mode 100644 index 56f972a74..000000000 --- a/Source/WebKit/gtk/webkit/webkitsoupauthdialog.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitsoupauthdialog_h -#define webkitsoupauthdialog_h - -#include <gtk/gtk.h> -#define LIBSOUP_I_HAVE_READ_BUG_594377_AND_KNOW_SOUP_PASSWORD_MANAGER_MIGHT_GO_AWAY -#include <libsoup/soup.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_SOUP_AUTH_DIALOG (webkit_soup_auth_dialog_get_type ()) -#define WEBKIT_SOUP_AUTH_DIALOG(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), WEBKIT_TYPE_SOUP_AUTH_DIALOG, WebKitSoupAuthDialog)) -#define WEBKIT_SOUP_AUTH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), WEBKIT_TYPE_SOUP_AUTH_DIALOG, WebKitSoupAuthDialog)) -#define WEBKIT_IS_SOUP_AUTH_DIALOG(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), WEBKIT_TYPE_SOUP_AUTH_DIALOG)) -#define WEBKIT_IS_SOUP_AUTH_DIALOG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), WEBKIT_TYPE_SOUP_AUTH_DIALOG)) -#define WEBKIT_SOUP_AUTH_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), WEBKIT_TYPE_SOUP_AUTH_DIALOG, WebKitSoupAuthDialog)) - -typedef struct { - GObject parent_instance; -} WebKitSoupAuthDialog; - -typedef struct { - GObjectClass parent_class; - - GtkWidget* (*current_toplevel) (WebKitSoupAuthDialog* authDialog, SoupMessage* message); -} WebKitSoupAuthDialogClass; - -WEBKIT_API GType -webkit_soup_auth_dialog_get_type (void); - -G_END_DECLS - -#endif /* webkitsoupauthdialog_h */ diff --git a/Source/WebKit/gtk/webkit/webkitspellchecker.cpp b/Source/WebKit/gtk/webkit/webkitspellchecker.cpp deleted file mode 100644 index 829fd54e7..000000000 --- a/Source/WebKit/gtk/webkit/webkitspellchecker.cpp +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitspellchecker.h" - -/** - * SECTION:webkitspellchecker - * @short_description: the spell checking API for WebKit - * - * #WebKitSpellChecker provides APIs for the spell checking - * functionality used internally by WebKit to perform spell checking - * in editable areas. This can be used, for example, by browsers to - * implement custom spell checking context menus or sophisticated - * auto-correct features. - */ - -G_DEFINE_INTERFACE(WebKitSpellChecker, webkit_spell_checker, G_TYPE_OBJECT); - -static void webkit_spell_checker_default_init(WebKitSpellCheckerInterface* interface) -{ -} - -/** - * webkit_spell_checker_check_spelling_of_string: - * @checker: a #WebKitSpellChecker - * @string: the string to check for misspellings - * @misspelling_location: (out) (allow-none) a pointer to an integer to store the location of the first misspelling - * @misspelling_length: (out) (allow-none) a pointer to an integer to store the length of the first misspelling - * - * Checks @string for misspellings using @checker, storing the - * location and length of the first misspelling in - * @misspelling_location and @misspelling_length respectively. - * - * Since: 1.5.1 - **/ -void webkit_spell_checker_check_spelling_of_string(WebKitSpellChecker* checker, const char* string, int* misspelling_location, int* misspelling_length) -{ - g_return_if_fail(WEBKIT_IS_SPELL_CHECKER(checker)); - g_return_if_fail(string); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->check_spelling_of_string) - interface->check_spelling_of_string(checker, string, misspelling_location, misspelling_length); -} - -/** - * webkit_spell_checker_get_guesses_for_word: - * @checker: a #WebKitSpellChecker - * @word: the misspelled word - * @context: (allow-none) the surrounding context of the misspelled word - * - * Returns a %NULL-terminated array of guesses for corrections of the - * misspelled word @word. - * - * Returns: (transfer full): a newly allocated %NULL-terminated array - * of suggested corrections for a misspelled word @word. Free it with - * %g_strfreev when done with it. - * - * Since: 1.5.1 - **/ -char** webkit_spell_checker_get_guesses_for_word(WebKitSpellChecker* checker, const char* word, const char* context) -{ - g_return_val_if_fail(WEBKIT_IS_SPELL_CHECKER(checker), 0); - g_return_val_if_fail(word, 0); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->get_guesses_for_word) - return interface->get_guesses_for_word(checker, word, context); - - return 0; -} - -/** - * webkit_spell_checker_update_spell_checking_languages: - * @checker: a #WebKitSpellChecker - * @languages: (allow-none) a string of languages to use for @checker - * - * Sets @languages as the list of languages to use by @checker. The - * accepted format is a list of comma (',') separated language codes - * of the form 'en_US', ie, language_VARIANT. - * - * Since: 1.5.1 - **/ -void webkit_spell_checker_update_spell_checking_languages(WebKitSpellChecker* checker, const char* languages) -{ - g_return_if_fail(WEBKIT_IS_SPELL_CHECKER(checker)); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->update_spell_checking_languages) - interface->update_spell_checking_languages(checker, languages); -} - -/** - * webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word: - * @checker: a #WebKitSpellChecker - * @word: a misspelled word - * - * Returns a suggestion for a word to use in an "autocorrect" feature. - * - * Returns: (transfer full) the suggestion for the autocorrection of - * @word - * - * Since: 1.5.1 - **/ -char* webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word(WebKitSpellChecker* checker, const char* word) -{ - g_return_val_if_fail(WEBKIT_IS_SPELL_CHECKER(checker), 0); - g_return_val_if_fail(word, 0); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->get_autocorrect_suggestions_for_misspelled_word) - return interface->get_autocorrect_suggestions_for_misspelled_word(checker, word); - - return 0; -} - -/** - * webkit_spell_checker_learn_word: - * @checker: a #WebKitSpellChecker - * @word: the word to learn - * - * Instructs the @checker to add @word to its dictionary as a properly - * spelled word. The word will be learned permanently in the user's - * personal dictionary. - * - * Since: 1.5.1 - **/ -void webkit_spell_checker_learn_word(WebKitSpellChecker* checker, const char* word) -{ - g_return_if_fail(WEBKIT_IS_SPELL_CHECKER(checker)); - g_return_if_fail(word); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->learn_word) - interface->learn_word(checker, word); -} - -/** - * webkit_spell_checker_ignore_word: - * @checker: a #WebKitSpellChecker - * @word: the word to ignore - * - * Instructs the @checker to ignore @word as a misspelling for this - * session. - * - * Since: 1.5.1 - **/ -void webkit_spell_checker_ignore_word(WebKitSpellChecker* checker, const char* word) -{ - g_return_if_fail(WEBKIT_IS_SPELL_CHECKER(checker)); - g_return_if_fail(word); - - WebKitSpellCheckerInterface* interface = WEBKIT_SPELL_CHECKER_GET_IFACE(checker); - if (interface->ignore_word) - interface->ignore_word(checker, word); -} diff --git a/Source/WebKit/gtk/webkit/webkitspellchecker.h b/Source/WebKit/gtk/webkit/webkitspellchecker.h deleted file mode 100644 index 3df9561d5..000000000 --- a/Source/WebKit/gtk/webkit/webkitspellchecker.h +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitspellchecker_h -#define webkitspellchecker_h - -#include "webkitdefines.h" -#include <glib-object.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_SPELL_CHECKER (webkit_spell_checker_get_type()) -#define WEBKIT_SPELL_CHECKER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_SPELL_CHECKER, WebKitSpellChecker)) -#define WEBKIT_IS_SPELL_CHECKER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), WEBKIT_TYPE_SPELL_CHECKER)) -#define WEBKIT_SPELL_CHECKER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), WEBKIT_TYPE_SPELL_CHECKER, WebKitSpellCheckerInterface)) - -struct _WebKitSpellCheckerInterface { - GTypeInterface g_iface; - - void (*check_spelling_of_string) (WebKitSpellChecker* checker, const char* string, int* misspelling_location, int* misspelling_length); - char** (*get_guesses_for_word) (WebKitSpellChecker* checker, const char* word, const char* context); - void (*update_spell_checking_languages) (WebKitSpellChecker* checker, const char* languages); - char* (*get_autocorrect_suggestions_for_misspelled_word) (WebKitSpellChecker* checker, const char* word); - void (*learn_word) (WebKitSpellChecker* checker, const char* word); - void (*ignore_word) (WebKitSpellChecker* checker, const char* word); -}; - -WEBKIT_API GType webkit_spell_checker_get_type (void) G_GNUC_CONST; - -WEBKIT_API void webkit_spell_checker_check_spelling_of_string (WebKitSpellChecker *checker, - const char *string, - int *misspelling_location, - int *misspelling_length); - -WEBKIT_API char** webkit_spell_checker_get_guesses_for_word (WebKitSpellChecker *checker, - const char *word, - const char *context); - -WEBKIT_API void webkit_spell_checker_update_spell_checking_languages (WebKitSpellChecker *checker, - const char *languages); - -WEBKIT_API char* webkit_spell_checker_get_autocorrect_suggestions_for_misspelled_word (WebKitSpellChecker *checker, - const char *word); - -WEBKIT_API void webkit_spell_checker_learn_word (WebKitSpellChecker *checker, - const char *word); - -WEBKIT_API void webkit_spell_checker_ignore_word (WebKitSpellChecker *checker, - const char *word); - -G_END_DECLS - -#endif - diff --git a/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp b/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp deleted file mode 100644 index e46140846..000000000 --- a/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitspellcheckerenchant.h" - -#if ENABLE(SPELLCHECK) - -#include "TextCheckerEnchant.h" -#include "webkitspellchecker.h" -#include <gtk/gtk.h> -#include <wtf/OwnPtr.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> - -using namespace WebCore; - -/** - * SECTION:webkitspellcheckerenchant - * @short_description: the default spell checking implementation for WebKitGTK+. - * - * #WebKitSpellCheckerEnchant is the default spell checking implementation for - * WebKitGTK+. It uses the Enchant dictionaries installed on the system to - * correct spelling. - */ - -struct _WebKitSpellCheckerEnchantPrivate { - OwnPtr<TextCheckerEnchant> textCheckerEnchant; -}; - -static void webkit_spell_checker_enchant_spell_checker_interface_init(WebKitSpellCheckerInterface* checkerInterface); - -G_DEFINE_TYPE_WITH_CODE(WebKitSpellCheckerEnchant, webkit_spell_checker_enchant, G_TYPE_OBJECT, - G_IMPLEMENT_INTERFACE(WEBKIT_TYPE_SPELL_CHECKER, - webkit_spell_checker_enchant_spell_checker_interface_init)) - -static void webkit_spell_checker_enchant_finalize(GObject* object) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(object)->priv; - priv->~WebKitSpellCheckerEnchantPrivate(); -} - -static void webkit_spell_checker_enchant_class_init(WebKitSpellCheckerEnchantClass* klass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(klass); - objectClass->finalize = webkit_spell_checker_enchant_finalize; - g_type_class_add_private(klass, sizeof(WebKitSpellCheckerEnchantPrivate)); -} - -static void webkit_spell_checker_enchant_init(WebKitSpellCheckerEnchant* checker) -{ - WebKitSpellCheckerEnchantPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(checker, WEBKIT_TYPE_SPELL_CHECKER_ENCHANT, WebKitSpellCheckerEnchantPrivate); - checker->priv = priv; - new (priv) WebKitSpellCheckerEnchantPrivate(); - - priv->textCheckerEnchant = TextCheckerEnchant::create(); -} - -static void checkSpellingOfString(WebKitSpellChecker* checker, const char* string, int* misspellingLocation, int* misspellingLength) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(checker)->priv; - priv->textCheckerEnchant->checkSpellingOfString(String::fromUTF8(string), *misspellingLocation, *misspellingLength); -} - -static char** getGuessesForWord(WebKitSpellChecker* checker, const char* word, const char* context) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(checker)->priv; - - Vector<String> guesses = priv->textCheckerEnchant->getGuessesForWord(String::fromUTF8(word)); - - if (guesses.isEmpty()) - return 0; - - int i = 0; - int numberOfGuesses = guesses.size(); - char** guessesArray = static_cast<char**>(g_malloc0((numberOfGuesses + 1) * sizeof(char*))); - for (Vector<String>::const_iterator iter = guesses.begin(); iter != guesses.end(); ++iter) - guessesArray[i++] = g_strdup(iter->utf8().data()); - guessesArray[i] = 0; - - return guessesArray; -} - -static void updateSpellCheckingLanguages(WebKitSpellChecker* checker, const char* languages) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(checker)->priv; - - Vector<String> languagesVector; - String::fromUTF8(languages).split(static_cast<UChar>(','), languagesVector); - priv->textCheckerEnchant->updateSpellCheckingLanguages(languagesVector); -} - -static char* getAutocorrectSuggestionsForMisspelledWord(WebKitSpellChecker* checker, const char* word) -{ - return 0; -} - -static void learnWord(WebKitSpellChecker* checker, const char* word) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(checker)->priv; - priv->textCheckerEnchant->learnWord(String::fromUTF8(word)); -} - -static void ignoreWord(WebKitSpellChecker* checker, const char* word) -{ - WebKitSpellCheckerEnchantPrivate* priv = WEBKIT_SPELL_CHECKER_ENCHANT(checker)->priv; - priv->textCheckerEnchant->ignoreWord(String::fromUTF8(word)); -} - -static void webkit_spell_checker_enchant_spell_checker_interface_init(WebKitSpellCheckerInterface* checkerInterface) -{ - checkerInterface->check_spelling_of_string = checkSpellingOfString; - checkerInterface->get_guesses_for_word = getGuessesForWord; - checkerInterface->update_spell_checking_languages = updateSpellCheckingLanguages; - checkerInterface->get_autocorrect_suggestions_for_misspelled_word = getAutocorrectSuggestionsForMisspelledWord; - checkerInterface->learn_word = learnWord; - checkerInterface->ignore_word = ignoreWord; -} - -#endif /* ENABLE(SPELLCHECK) */ - diff --git a/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.h b/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.h deleted file mode 100644 index 52e1bcac7..000000000 --- a/Source/WebKit/gtk/webkit/webkitspellcheckerenchant.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2011 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitspellcheckerenchant_h -#define webkitspellcheckerenchant_h - -#if ENABLE(SPELLCHECK) - -#include <glib-object.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_SPELL_CHECKER_ENCHANT (webkit_spell_checker_enchant_get_type()) -#define WEBKIT_SPELL_CHECKER_ENCHANT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_SPELL_CHECKER_ENCHANT, WebKitSpellCheckerEnchant)) -#define WEBKIT_SPELL_CHECKER_ENCHANT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_SPELL_CHECKER_ENCHANT, WebKitSpellCheckerEnchantClass)) -#define WEBKIT_IS_SPELL_CHECKER_ENCHANT(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_SPELL_CHECKER_ENCHANT)) -#define WEBKIT_IS_SPELL_CHECKER_ENCHANT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_SPELL_CHECKER_ENCHANT)) -#define WEBKIT_SPELL_CHECKER_ENCHANT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_SPELL_CHECKER_ENCHANT, WebKitSpellCheckerEnchantClass)) - -typedef struct _WebKitSpellCheckerEnchant WebKitSpellCheckerEnchant; -typedef struct _WebKitSpellCheckerEnchantClass WebKitSpellCheckerEnchantClass; -typedef struct _WebKitSpellCheckerEnchantPrivate WebKitSpellCheckerEnchantPrivate; - -struct _WebKitSpellCheckerEnchant { - GObject parent_instance; - - /*< private >*/ - WebKitSpellCheckerEnchantPrivate *priv; -}; - -struct _WebKitSpellCheckerEnchantClass { - GObjectClass parent_class; -}; - -WEBKIT_API GType webkit_spell_checker_enchant_get_type(void); - -G_END_DECLS - -#endif /* ENABLE(SPELLCHECK) */ - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitversion.cpp b/Source/WebKit/gtk/webkit/webkitversion.cpp deleted file mode 100644 index 62750f515..000000000 --- a/Source/WebKit/gtk/webkit/webkitversion.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (C) 2008 Christian Dywan <christian@imendio.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitversion.h" - -/** - * webkit_major_version: - * - * The major version number of the WebKit that is linked against. - * - * Return value: The major version - * - * Since: 1.0.1 - */ -guint webkit_major_version() -{ - return WEBKIT_MAJOR_VERSION; -} - -/** - * webkit_minor_version: - * - * The minor version number of the WebKit that is linked against. - * - * Return value: The minor version - * - * Since: 1.0.1 - */ -guint webkit_minor_version() -{ - return WEBKIT_MINOR_VERSION; -} - -/** - * webkit_micro_version: - * - * The micro version number of the WebKit that is linked against. - * - * Return value: The micro version - * - * Since: 1.0.1 - */ -guint webkit_micro_version() -{ - return WEBKIT_MICRO_VERSION; -} diff --git a/Source/WebKit/gtk/webkit/webkitversion.h.in b/Source/WebKit/gtk/webkit/webkitversion.h.in deleted file mode 100644 index 4d63655c3..000000000 --- a/Source/WebKit/gtk/webkit/webkitversion.h.in +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2008 Christian Dywan <christian@imendio.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitversion_h -#define webkitversion_h - -#include <glib.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_MAJOR_VERSION (@WEBKIT_MAJOR_VERSION@) -#define WEBKIT_MINOR_VERSION (@WEBKIT_MINOR_VERSION@) -#define WEBKIT_MICRO_VERSION (@WEBKIT_MICRO_VERSION@) -#define WEBKIT_USER_AGENT_MAJOR_VERSION (@WEBKIT_USER_AGENT_MAJOR_VERSION@) -#define WEBKIT_USER_AGENT_MINOR_VERSION (@WEBKIT_USER_AGENT_MINOR_VERSION@) - -/** - * WEBKITGTK_API_VERSION: (skip) - */ -#define WEBKITGTK_API_VERSION (@WEBKITGTK_API_VERSION@) - -#define WEBKIT_CHECK_VERSION(major, minor, micro) \ - (WEBKIT_MAJOR_VERSION > (major) || \ - (WEBKIT_MAJOR_VERSION == (major) && WEBKIT_MINOR_VERSION > (minor)) || \ - (WEBKIT_MAJOR_VERSION == (major) && WEBKIT_MINOR_VERSION == (minor) && \ - WEBKIT_MICRO_VERSION >= (micro))) - -WEBKIT_API guint -webkit_major_version (void); - -WEBKIT_API guint -webkit_minor_version (void); - -WEBKIT_API guint -webkit_micro_version (void); - -WEBKIT_API gboolean -webkit_check_version (guint major, guint minor, guint micro); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp b/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp deleted file mode 100644 index 97724668c..000000000 --- a/Source/WebKit/gtk/webkit/webkitviewportattributes.cpp +++ /dev/null @@ -1,574 +0,0 @@ -/* - * Copyright (C) 2010 Joone Hur <joone@kldp.org> - * Copyright (C) 2010 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitviewportattributes.h" - -#include "Chrome.h" -#include "Document.h" -#include "Frame.h" -#include "Page.h" -#include "webkitglobalsprivate.h" -#include "webkitviewportattributesprivate.h" -#include "webkitwebviewprivate.h" -#include <glib/gi18n-lib.h> - -/** - * SECTION:webkitviewportattributes - * @short_description: Represents the viewport properties of a web page - * @see_also: #WebKitWebView::viewport-attributes-recompute-requested, #WebKitWebView::viewport-attributes-changed - * - * #WebKitViewportAttributes offers the viewport properties to user agents to - * control the viewport layout. It contains the viewport size, initial scale with limits, - * and information about whether a user is able to scale the contents in the viewport. - * This makes a web page fit the device screen. - * - * The #WebKitWebView::viewport-attributes-changed signal will be emitted with #WebKitViewportAttributes - * when the viewport attributes are updated in the case of loading web pages contain - * the viewport properties and calling webkit_viewport_attributes_recompute. - * - * If the device size, available size, desktop width, or device DPI needs to be changed due to - * a consequence of an explicit browser request (caused by screen rotation, resizing, or similar reasons), - * You should call #webkit_viewport_attributes_recompute to recompute the viewport properties and - * override those values in the handler of #WebKitWebView::viewport-attributes-recompute-requested signal. - * - * For more information on the viewport properties, refer to the Safari reference library at - * http://developer.apple.com/safari/library/documentation/appleapplications/reference/safarihtmlref/articles/metatags.html - * - * <informalexample><programlisting> - * /<!-- -->* Connect to the viewport-attributes-changes signal *<!-- -->/ - * WebKitViewportAttributes* attributes = webkit_web_view_get_viewport_attributes (web_view); - * g_signal_connect (web_view, "viewport-attributes-recompute-requested", G_CALLBACK (viewport_recompute_cb), window); - * g_signal_connect (web_view, "viewport-attributes-changed", G_CALLBACK (viewport_changed_cb), window); - * g_signal_connect (attributes, "notify::valid", G_CALLBACK (viewport_valid_changed_cb), web_view); - * - * /<!-- -->* Handle the viewport-attributes-recompute-requested signal to override the device width *<!-- -->/ - * static void - * viewport_recompute_cb (WebKitWebView* web_view, WebKitViewportAttributes* attributes, GtkWidget* window) - * { - * int override_available_width = 480; - * g_object_set (G_OBJECT(attributes), "available-width", override_available_width, NULL); - * } - * - * /<!-- -->* Handle the viewport-attributes-changed signal to recompute the initial scale factor *<!-- -->/ - * static void - * viewport_changed_cb (WebKitWebView* web_view, WebKitViewportAttributes* attributes, gpointer data) - * { - * gfloat initialScale; - * g_object_get (G_OBJECT (atributes), "initial-scale-factor", &initialScale, NULL); - * webkit_web_view_set_zoom_level (web_view, initialScale); - * } - * - * /<!-- -->* Handle the notify::valid signal to initialize the zoom level *<!-- -->/ - * static void - * viewport_valid_changed_cb (WebKitViewportAttributes* attributes, GParamSpec* pspec, WebKitWebView* web_view) - * { - * gboolean is_valid; - * g_object_get (attributes, "valid", &is_valid, NULL); - * if (!is_valid) - * webkit_web_view_set_zoom_level (web_view, 1.0); - * } - * </programlisting></informalexample> - */ - -using namespace WebKit; -using namespace WebCore; - -enum { - PROP_0, - - PROP_DEVICE_WIDTH, - PROP_DEVICE_HEIGHT, - PROP_AVAILABLE_WIDTH, - PROP_AVAILABLE_HEIGHT, - PROP_DESKTOP_WIDTH, - PROP_DEVICE_DPI, - PROP_WIDTH, - PROP_HEIGHT, - PROP_INITIAL_SCALE_FACTOR, - PROP_MINIMUM_SCALE_FACTOR, - PROP_MAXIMUM_SCALE_FACTOR, - PROP_DEVICE_PIXEL_RATIO, - PROP_USER_SCALABLE, - PROP_VALID -}; - -G_DEFINE_TYPE(WebKitViewportAttributes, webkit_viewport_attributes, G_TYPE_OBJECT); - -static void webkit_viewport_attributes_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* paramSpec); -static void webkit_viewport_attributes_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* paramSpec); - -static void webkit_viewport_attributes_class_init(WebKitViewportAttributesClass* kclass) -{ - GObjectClass* gobjectClass = G_OBJECT_CLASS(kclass); - gobjectClass->get_property = webkit_viewport_attributes_get_property; - gobjectClass->set_property = webkit_viewport_attributes_set_property; - - /** - * WebKitViewportAttributs:device-width: - * - * The width of the screen. This value is always automatically - * pre-computed during a viewport attributes recomputation, and - * can be overridden by the handler of - * WebKitWebView::viewport-attributes-recompute-requested. You - * should not do that unless you have a very good reason. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_DEVICE_WIDTH, - g_param_spec_int( - "device-width", - _("Device Width"), - _("The width of the screen."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:device-height: - * - * The height of the screen. This value is always automatically - * pre-computed during a viewport attributes recomputation, and - * can be overriden by the handler of - * WebKitWebView::viewport-attributes-recompute-requested. You - * should not do that unless you have a very good reason. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_DEVICE_HEIGHT, - g_param_spec_int( - "device-height", - _("Device Height"), - _("The height of the screen."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:available-width: - * - * The width of the current visible area. This will usually be the - * same as the space allocated to the widget, but in some cases - * you may have decided to make the widget bigger than the visible - * area. This value is by default initialized to the size - * allocated by the widget, but you can override it in the handler - * of WebKitWebView::viewport-attributes-recompute-requested to - * let the engine know what the visible area is. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_AVAILABLE_WIDTH, - g_param_spec_int( - "available-width", - _("Available Width"), - _("The width of the visible area."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:available-height: - * - * The height of the current visible area. This will usually be the - * same as the space allocated to the widget, but in some cases - * you may have decided to make the widget bigger than the visible - * area. This value is by default initialized to the size - * allocated by the widget, but you can override it in the handler - * of WebKitWebView::viewport-attributes-recompute-requested to - * let the engine know what the visible area is. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_AVAILABLE_HEIGHT, - g_param_spec_int( - "available-height", - _("Available Height"), - _("The height of the visible area."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:desktop-width: - * - * The width of viewport that works well for most web pages designed for - * desktop. This value is initialized to 980 pixels by default and used - * during a viewport attributes recomputation. Also, it can be overriden by - * the handler of WebKitWebView::viewport-attributes-recompute-requested. - * You should not do that unless you have a very good reason. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_DESKTOP_WIDTH, - g_param_spec_int( - "desktop-width", - _("Desktop Width"), - _("The width of viewport that works well for most web pages designed for desktop."), - 0, - G_MAXINT, - 980, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:device-dpi: - * - * The number of dots per inch of the screen. This value is - * initialized to 160 dpi by default and used during a viewport - * attributes recomputation, because it is the dpi of the original - * iPhone and Android devices. Also, it can be overriden by the - * handler of WebKitWebView::viewport-attributes-recompute-requested. - * You should not do that unless you have a very good reason. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_DEVICE_DPI, - g_param_spec_int( - "device-dpi", - _("Device DPI"), - _("The number of dots per inch of the screen."), - 0, - G_MAXINT, - 160, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitViewportAttributs:width: - * - * The width of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_WIDTH, - g_param_spec_int( - "width", - _("Width"), - _("The width of the viewport."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:height: - * - * The height of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_HEIGHT, - g_param_spec_int( - "height", - _("Height"), - _("The height of the viewport."), - 0, - G_MAXINT, - 0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:initial-scale-factor: - * - * The initial scale of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_INITIAL_SCALE_FACTOR, - g_param_spec_float( - "initial-scale-factor", - _("Initial Scale Factor"), - _("The initial scale of the viewport."), - -1, - G_MAXFLOAT, - -1, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:minimum-scale-factor: - * - * The minimum scale of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_MINIMUM_SCALE_FACTOR, - g_param_spec_float( - "minimum-scale-factor", - _("Minimum Scale Factor"), - _("The minimum scale of the viewport."), - -1, - G_MAXFLOAT, - -1, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:maximum-scale-factor: - * - * The maximum scale of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_MAXIMUM_SCALE_FACTOR, - g_param_spec_float( - "maximum-scale-factor", - _("Maximum Scale Factor"), - _("The maximum scale of the viewport."), - -1, - G_MAXFLOAT, - -1, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:device-pixel-ratio: - * - * The device pixel ratio of the viewport. Before getting this property, - * you need to make sure that #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_DEVICE_PIXEL_RATIO, - g_param_spec_float( - "device-pixel-ratio", - _("Device Pixel Ratio"), - _("The device pixel ratio of the viewport."), - -1, - G_MAXFLOAT, - -1, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:user-scalable: - * - * Determines whether or not the user can zoom in and out. - * Before getting this property, you need to make sure that - * #WebKitViewportAttributes is valid. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_USER_SCALABLE, - g_param_spec_boolean( - "user-scalable", - _("User Scalable"), - _("Determines whether or not the user can zoom in and out."), - TRUE, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitViewportAttributs:valid: - * - * Determines whether or not the attributes are valid. - * #WebKitViewportAttributes are only valid on pages - * which have a viewport meta tag, and have already - * had the attributes calculated. - * - * Since: 1.3.8 - */ - g_object_class_install_property(gobjectClass, - PROP_VALID, - g_param_spec_boolean( - "valid", - _("Valid"), - _("Determines whether or not the attributes are valid, and can be used."), - FALSE, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(kclass, sizeof(WebKitViewportAttributesPrivate)); -} - -static void webkit_viewport_attributes_init(WebKitViewportAttributes* viewport) -{ - viewport->priv = G_TYPE_INSTANCE_GET_PRIVATE(viewport, WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, WebKitViewportAttributesPrivate); - - viewport->priv->deviceWidth = 0; - viewport->priv->deviceHeight = 0; - viewport->priv->availableWidth = 0; - viewport->priv->availableHeight = 0; - viewport->priv->desktopWidth = 980; // This value works well for most web pages designed for desktop browsers. - viewport->priv->deviceDPI = 160; // It is the dpi of the original iPhone and Android devices. - viewport->priv->width = 0; - viewport->priv->height = 0; - viewport->priv->initialScaleFactor = -1; - viewport->priv->minimumScaleFactor = -1; - viewport->priv->maximumScaleFactor = -1; - viewport->priv->devicePixelRatio = -1; - viewport->priv->userScalable = TRUE; - viewport->priv->isValid = FALSE; -} - -static void webkit_viewport_attributes_get_property(GObject* object, guint propertyID, GValue* value, GParamSpec* paramSpec) -{ - WebKitViewportAttributes* viewportAttributes = WEBKIT_VIEWPORT_ATTRIBUTES(object); - WebKitViewportAttributesPrivate* priv = viewportAttributes->priv; - - switch (propertyID) { - case PROP_DEVICE_WIDTH: - g_value_set_int(value, priv->deviceWidth); - break; - case PROP_DEVICE_HEIGHT: - g_value_set_int(value, priv->deviceHeight); - break; - case PROP_AVAILABLE_WIDTH: - g_value_set_int(value, priv->availableWidth); - break; - case PROP_AVAILABLE_HEIGHT: - g_value_set_int(value, priv->availableHeight); - break; - case PROP_DESKTOP_WIDTH: - g_value_set_int(value, priv->desktopWidth); - break; - case PROP_DEVICE_DPI: - g_value_set_int(value, priv->deviceDPI); - break; - case PROP_WIDTH: - g_value_set_int(value, priv->width); - break; - case PROP_HEIGHT: - g_value_set_int(value, priv->height); - break; - case PROP_INITIAL_SCALE_FACTOR: - g_value_set_float(value, priv->initialScaleFactor); - break; - case PROP_MINIMUM_SCALE_FACTOR: - g_value_set_float(value, priv->minimumScaleFactor); - break; - case PROP_MAXIMUM_SCALE_FACTOR: - g_value_set_float(value, priv->maximumScaleFactor); - break; - case PROP_DEVICE_PIXEL_RATIO: - g_value_set_float(value, priv->devicePixelRatio); - break; - case PROP_USER_SCALABLE: - g_value_set_boolean(value, priv->userScalable); - break; - case PROP_VALID: - g_value_set_boolean(value, priv->isValid); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, paramSpec); - break; - } -} - -static void webkit_viewport_attributes_set_property(GObject* object, guint propertyID, const GValue* value, GParamSpec* paramSpec) -{ - WebKitViewportAttributes* viewportAttributes = WEBKIT_VIEWPORT_ATTRIBUTES(object); - WebKitViewportAttributesPrivate* priv = viewportAttributes->priv; - - switch (propertyID) { - case PROP_DEVICE_WIDTH: - priv->deviceWidth = g_value_get_int(value); - break; - case PROP_DEVICE_HEIGHT: - priv->deviceHeight = g_value_get_int(value); - break; - case PROP_AVAILABLE_WIDTH: - priv->availableWidth = g_value_get_int(value); - break; - case PROP_AVAILABLE_HEIGHT: - priv->availableHeight = g_value_get_int(value); - break; - case PROP_DESKTOP_WIDTH: - priv->desktopWidth = g_value_get_int(value); - break; - case PROP_DEVICE_DPI: - priv->deviceDPI = g_value_get_int(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyID, paramSpec); - break; - } -} - -void webkitViewportAttributesRecompute(WebKitViewportAttributes* viewportAttributes) -{ - WebKitViewportAttributesPrivate* priv = viewportAttributes->priv; - WebKitWebView* webView = priv->webView; - - IntRect windowRect(webView->priv->corePage->chrome().windowRect()); - priv->deviceWidth = windowRect.width(); - priv->deviceHeight = windowRect.height(); - - IntRect rect(webView->priv->corePage->chrome().pageRect()); - priv->availableWidth = rect.width(); - priv->availableHeight = rect.height(); - - // First of all, we give the application an opportunity to override some of the values. - g_signal_emit_by_name(webView, "viewport-attributes-recompute-requested", viewportAttributes); - - ViewportArguments arguments = webView->priv->corePage->mainFrame()->document()->viewportArguments(); - - float devicePixelRatio = priv->deviceDPI / ViewportArguments::deprecatedTargetDPI; - ViewportAttributes attributes = computeViewportAttributes(arguments, priv->desktopWidth, priv->deviceWidth, priv->deviceHeight, devicePixelRatio, IntSize(priv->availableWidth, priv->availableHeight)); - restrictMinimumScaleFactorToViewportSize(attributes, IntSize(priv->availableWidth, priv->availableHeight), devicePixelRatio); - restrictScaleFactorToInitialScaleIfNotUserScalable(attributes); - - priv->width = attributes.layoutSize.width(); - priv->height = attributes.layoutSize.height(); - priv->initialScaleFactor = attributes.initialScale; - priv->minimumScaleFactor = attributes.minimumScale; - priv->maximumScaleFactor = attributes.maximumScale; - priv->devicePixelRatio = devicePixelRatio; - priv->userScalable = static_cast<bool>(arguments.userZoom); - - if (!priv->isValid) { - priv->isValid = TRUE; - g_object_notify(G_OBJECT(viewportAttributes), "valid"); - } - - // Now let the application know it is safe to use the new values. - g_signal_emit_by_name(webView, "viewport-attributes-changed", viewportAttributes); -} - -/** - * webkit_viewport_attributes_recompute: - * @viewportAttributes: a #WebKitViewportAttributes - * - * Recompute the optimal viewport attributes and emit the viewport-attribute-changed signal. - * The viewport-attributes-recompute-requested signal also will be handled to override - * the device size, available size, desktop width, or device DPI. - * - * Since: 1.3.8 - */ -void webkit_viewport_attributes_recompute(WebKitViewportAttributes* viewportAttributes) -{ - if (!viewportAttributes->priv->isValid) - return; - webkitViewportAttributesRecompute(viewportAttributes); -} diff --git a/Source/WebKit/gtk/webkit/webkitviewportattributes.h b/Source/WebKit/gtk/webkit/webkitviewportattributes.h deleted file mode 100644 index 7d90c1b6f..000000000 --- a/Source/WebKit/gtk/webkit/webkitviewportattributes.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2010 Joone Hur <joone@kldp.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitviewportattributes_h -#define webkitviewportattributes_h - -#include <glib-object.h> -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_VIEWPORT_ATTRIBUTES (webkit_viewport_attributes_get_type()) -#define WEBKIT_VIEWPORT_ATTRIBUTES(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, WebKitViewportAttributes)) -#define WEBKIT_VIEWPORT_ATTRIBUTES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, WebKitViewportAttributesClass)) -#define WEBKIT_IS_VIEWPORT_ATTRIBUTES(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_VIEWPORT_ATTRIBUTES)) -#define WEBKIT_IS_VIEWPORT_ATTRIBUTES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_VIEWPORT_ATTRIBUTES)) -#define WEBKIT_VIEWPORT_ATTRIBUTES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, WebKitViewportAttributesClass)) - -typedef struct _WebKitViewportAttributesPrivate WebKitViewportAttributesPrivate; - -struct _WebKitViewportAttributes { - GObject parent_instance; - - /*< private >*/ - WebKitViewportAttributesPrivate *priv; -}; - -struct _WebKitViewportAttributesClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_viewport_attributes_get_type (void); - -WEBKIT_API void -webkit_viewport_attributes_recompute(WebKitViewportAttributes* viewportAttributes); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitviewportattributesprivate.h b/Source/WebKit/gtk/webkit/webkitviewportattributesprivate.h deleted file mode 100644 index 11cb66885..000000000 --- a/Source/WebKit/gtk/webkit/webkitviewportattributesprivate.h +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitviewportattributesprivate_h -#define webkitnavigationactionprivate_h - -#include <webkit/webkitviewportattributes.h> - -extern "C" { - -struct _WebKitViewportAttributesPrivate { - WebKitWebView* webView; - int deviceWidth; - int deviceHeight; - int availableWidth; - int availableHeight; - int desktopWidth; - int deviceDPI; - - int width; - int height; - float initialScaleFactor; - float minimumScaleFactor; - float maximumScaleFactor; - float devicePixelRatio; - gboolean userScalable; - gboolean isValid; -}; - - -void webkitViewportAttributesRecompute(WebKitViewportAttributes*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp b/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp deleted file mode 100644 index d836f6001..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.cpp +++ /dev/null @@ -1,482 +0,0 @@ -/* - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebbackforwardlist.h" - -#include "BackForwardListImpl.h" -#include "HistoryItem.h" -#include "Page.h" -#include "PageGroup.h" -#include "webkitglobalsprivate.h" -#include "webkitwebbackforwardlistprivate.h" -#include "webkitwebhistoryitem.h" -#include "webkitwebhistoryitemprivate.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include <glib.h> - -/** - * SECTION:webkitwebbackforwardlist - * @short_description: The history of a #WebKitWebView - * @see_also: #WebKitWebView, #WebKitWebHistoryItem - * - * <informalexample><programlisting> - * /<!-- -->* Get the WebKitWebBackForwardList from the WebKitWebView *<!-- -->/ - * WebKitWebBackForwardList *back_forward_list = webkit_web_view_get_back_forward_list (my_web_view); - * WebKitWebHistoryItem *item = webkit_web_back_forward_list_get_current_item (back_forward_list); - * - * /<!-- -->* Do something with a WebKitWebHistoryItem *<!-- -->/ - * g_print("%p", item); - * - * /<!-- -->* Control some parameters *<!-- -->/ - * WebKitWebBackForwardList *back_forward_list = webkit_web_view_get_back_forward_list (my_web_view); - * webkit_web_back_forward_list_set_limit (back_forward_list, 30); - * </programlisting></informalexample> - * - */ - -using namespace WebKit; - -struct _WebKitWebBackForwardListPrivate { - WebCore::BackForwardListImpl* backForwardList; - gboolean disposed; -}; - -G_DEFINE_TYPE(WebKitWebBackForwardList, webkit_web_back_forward_list, G_TYPE_OBJECT); - -static void webkit_web_back_forward_list_dispose(GObject* object) -{ - WebKitWebBackForwardList* list = WEBKIT_WEB_BACK_FORWARD_LIST(object); - WebCore::BackForwardListImpl* backForwardList = core(list); - WebKitWebBackForwardListPrivate* priv = list->priv; - - if (!priv->disposed) { - priv->disposed = true; - - WebCore::HistoryItemVector items = backForwardList->entries(); - GHashTable* table = webkit_history_items(); - for (unsigned i = 0; i < items.size(); i++) - g_hash_table_remove(table, items[i].get()); - } - - G_OBJECT_CLASS(webkit_web_back_forward_list_parent_class)->dispose(object); -} - -static void webkit_web_back_forward_list_class_init(WebKitWebBackForwardListClass* klass) -{ - GObjectClass* object_class = G_OBJECT_CLASS(klass); - - object_class->dispose = webkit_web_back_forward_list_dispose; - - webkitInit(); - - g_type_class_add_private(klass, sizeof(WebKitWebBackForwardListPrivate)); -} - -static void webkit_web_back_forward_list_init(WebKitWebBackForwardList* webBackForwardList) -{ - webBackForwardList->priv = G_TYPE_INSTANCE_GET_PRIVATE(webBackForwardList, WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, WebKitWebBackForwardListPrivate); -} - -/** - * webkit_web_back_forward_list_new_with_web_view: (skip) - * @web_view: the back forward list's #WebKitWebView - * - * Creates an instance of the back forward list with a controlling #WebKitWebView - * - * Return value: a #WebKitWebBackForwardList - * - * Deprecated: 1.3.4: Instances of #WebKitWebBackForwardList are - * created and owned by #WebKitWebView instances only. - */ -WebKitWebBackForwardList* webkit_web_back_forward_list_new_with_web_view(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - - WebKitWebBackForwardList* webBackForwardList; - - webBackForwardList = WEBKIT_WEB_BACK_FORWARD_LIST(g_object_new(WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, NULL)); - WebKitWebBackForwardListPrivate* priv = webBackForwardList->priv; - - priv->backForwardList = static_cast<WebCore::BackForwardListImpl*>(core(webView)->backForwardList()); - priv->backForwardList->setEnabled(TRUE); - - return webBackForwardList; -} - -/** - * webkit_web_back_forward_list_go_forward: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Steps forward in the back forward list - */ -void webkit_web_back_forward_list_go_forward(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (backForwardList->enabled()) - backForwardList->goForward(); -} - -/** - * webkit_web_back_forward_list_go_back: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Steps backward in the back forward list - */ -void webkit_web_back_forward_list_go_back(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (backForwardList->enabled()) - backForwardList->goBack(); -} - -/** - * webkit_web_back_forward_list_contains_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @history_item: (type WebKit.WebHistoryItem) (transfer none): the #WebKitWebHistoryItem to check - * - * Checks if @web_history_item is in the back forward list - * - * Return value: %TRUE if @web_history_item is in the back forward list, %FALSE if it doesn't - */ -gboolean webkit_web_back_forward_list_contains_item(WebKitWebBackForwardList* webBackForwardList, WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), FALSE); - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), FALSE); - - WebCore::HistoryItem* historyItem = core(webHistoryItem); - - g_return_val_if_fail(historyItem != NULL, FALSE); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - - return (backForwardList->enabled() ? backForwardList->containsItem(historyItem) : FALSE); -} - -/** - * webkit_web_back_forward_list_go_to_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @history_item: (type WebKit.WebHistoryItem) (transfer none): the #WebKitWebHistoryItem to go to - * - * Go to the specified @web_history_item in the back forward list - */ -void webkit_web_back_forward_list_go_to_item(WebKitWebBackForwardList* webBackForwardList, WebKitWebHistoryItem* webHistoryItem) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem)); - - WebCore::HistoryItem* historyItem = core(webHistoryItem); - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - - if (backForwardList->enabled() && historyItem) - backForwardList->goToItem(historyItem); -} - -/** - * webkit_web_back_forward_list_get_forward_list_with_limit: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @limit: the number of items to retrieve - * - * Returns a list of items that succeed the current item, limited by @limit - * - * Return value: (element-type WebKit.WebHistoryItem) (transfer container): a #GList of items succeeding the current item, limited by @limit - */ -GList* webkit_web_back_forward_list_get_forward_list_with_limit(WebKitWebBackForwardList* webBackForwardList, gint limit) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return NULL; - - WebCore::HistoryItemVector items; - GList* forwardItems = { 0 }; - - backForwardList->forwardListWithLimit(limit, items); - - for (unsigned i = 0; i < items.size(); i++) { - WebKitWebHistoryItem* webHistoryItem = kit(items[i]); - forwardItems = g_list_prepend(forwardItems, webHistoryItem); - } - - return forwardItems; -} - -/** - * webkit_web_back_forward_list_get_back_list_with_limit: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @limit: the number of items to retrieve - * - * Returns a list of items that precede the current item, limited by @limit - * - * Return value: (element-type WebKit.WebHistoryItem) (transfer container): a #GList of items preceding the current item, limited by @limit - */ -GList* webkit_web_back_forward_list_get_back_list_with_limit(WebKitWebBackForwardList* webBackForwardList, gint limit) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return NULL; - - WebCore::HistoryItemVector items; - GList* backItems = { 0 }; - - backForwardList->backListWithLimit(limit, items); - - for (unsigned i = 0; i < items.size(); i++) { - WebKitWebHistoryItem* webHistoryItem = kit(items[i]); - backItems = g_list_prepend(backItems, webHistoryItem); - } - - return backItems; -} - -/** - * webkit_web_back_forward_list_get_back_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the item that precedes the current item - * - * Return value: (type WebKit.WebHistoryItem) (transfer none): the #WebKitWebHistoryItem preceding the current item - */ -WebKitWebHistoryItem* webkit_web_back_forward_list_get_back_item(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return NULL; - - WebCore::HistoryItem* historyItem = backForwardList->backItem(); - - return (historyItem ? kit(historyItem) : NULL); -} - -/** - * webkit_web_back_forward_list_get_current_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the current item. - * - * Returns a NULL value if the back forward list is empty - * - * Return value: (type WebKit.WebHistoryItem) (transfer none): a #WebKitWebHistoryItem - */ -WebKitWebHistoryItem* webkit_web_back_forward_list_get_current_item(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return NULL; - - WebCore::HistoryItem* historyItem = backForwardList->currentItem(); - - return (historyItem ? kit(historyItem) : NULL); -} - -/** - * webkit_web_back_forward_list_get_forward_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the item that succeeds the current item. - * - * Returns a NULL value if there nothing that succeeds the current item - * - * Return value: (type WebKit.WebHistoryItem) (transfer none): a #WebKitWebHistoryItem - */ -WebKitWebHistoryItem* webkit_web_back_forward_list_get_forward_item(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return NULL; - - WebCore::HistoryItem* historyItem = backForwardList->forwardItem(); - - return (historyItem ? kit(historyItem) : NULL); -} - -/** - * webkit_web_back_forward_list_get_nth_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @index: the index of the item - * - * Returns the item at a given index relative to the current item. - * - * Return value: (type WebKit.WebHistoryItem) (transfer none): the #WebKitWebHistoryItem located at the specified index relative to the current item - */ -WebKitWebHistoryItem* webkit_web_back_forward_list_get_nth_item(WebKitWebBackForwardList* webBackForwardList, gint index) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList) - return NULL; - - WebCore::HistoryItem* historyItem = backForwardList->itemAtIndex(index); - - return (historyItem ? kit(historyItem) : NULL); -} - -/** - * webkit_web_back_forward_list_get_back_length: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the number of items that preced the current item. - * - * Return value: a #gint corresponding to the number of items preceding the current item - */ -gint webkit_web_back_forward_list_get_back_length(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return 0; - - return backForwardList->backListCount(); -} - -/** - * webkit_web_back_forward_list_get_forward_length: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the number of items that succeed the current item. - * - * Return value: a #gint corresponding to the nuber of items succeeding the current item - */ -gint webkit_web_back_forward_list_get_forward_length(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return 0; - - return backForwardList->forwardListCount(); -} - -/** - * webkit_web_back_forward_list_get_limit: - * @web_back_forward_list: a #WebKitWebBackForwardList - * - * Returns the maximum limit of the back forward list. - * - * Return value: a #gint indicating the number of #WebKitWebHistoryItem the back forward list can hold - */ -gint webkit_web_back_forward_list_get_limit(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), 0); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList || !backForwardList->enabled()) - return 0; - - return backForwardList->capacity(); -} - -/** - * webkit_web_back_forward_list_set_limit: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @limit: the limit to set the back forward list to - * - * Sets the maximum limit of the back forward list. If the back forward list - * exceeds its capacity, items will be removed everytime a new item has been - * added. - */ -void webkit_web_back_forward_list_set_limit(WebKitWebBackForwardList* webBackForwardList, gint limit) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (backForwardList) - backForwardList->setCapacity(limit); -} - -/** - * webkit_web_back_forward_list_add_item: - * @web_back_forward_list: a #WebKitWebBackForwardList - * @history_item: (type WebKit.WebHistoryItem) (transfer none): the #WebKitWebHistoryItem to add - * - * Adds the item to the #WebKitWebBackForwardList. - * - * The @webBackForwardList will add a reference to the @webHistoryItem, so you - * don't need to keep a reference once you've added it to the list. - * - * Since: 1.1.1 - */ -void webkit_web_back_forward_list_add_item(WebKitWebBackForwardList *webBackForwardList, WebKitWebHistoryItem *webHistoryItem) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - - g_object_ref(webHistoryItem); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - WebCore::HistoryItem* historyItem = core(webHistoryItem); - - backForwardList->addItem(historyItem); -} - -/** - * webkit_web_back_forward_list_clear: - * @web_back_forward_list: the #WebKitWebBackForwardList to be cleared - * - * Clears the @webBackForwardList by removing all its elements. Note that not even - * the current page is kept in list when cleared so you would have to add it later. - * This method also clears the list of visited links which means that all links will - * appear unvisited. - * - * Since: 1.3.1 - **/ -void webkit_web_back_forward_list_clear(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList)); - - WebCore::BackForwardListImpl* backForwardList = core(webBackForwardList); - if (!backForwardList) - return; - - WebCore::Page* page = backForwardList->page(); - if (page && page->groupPtr()) - page->groupPtr()->removeVisitedLinks(); - - if (!backForwardList->enabled() || !backForwardList->entries().size()) - return; - - // Clear the current list by setting capacity to 0 - int capacity = backForwardList->capacity(); - backForwardList->setCapacity(0); - backForwardList->setCapacity(capacity); -} - -WebCore::BackForwardListImpl* WebKit::core(WebKitWebBackForwardList* webBackForwardList) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_BACK_FORWARD_LIST(webBackForwardList), NULL); - - return webBackForwardList->priv ? webBackForwardList->priv->backForwardList : 0; -} diff --git a/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.h b/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.h deleted file mode 100644 index c3e56c937..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebbackforwardlist.h +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (C) 2008 Jan Michael C. Alonzo <jmalonzo@unpluggable.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebbackforwardlist_h -#define webkitwebbackforwardlist_h - -#include <glib.h> -#include <glib-object.h> - -#include <webkit/webkitdefines.h> -#include <webkit/webkitwebhistoryitem.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_BACK_FORWARD_LIST (webkit_web_back_forward_list_get_type()) -#define WEBKIT_WEB_BACK_FORWARD_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, WebKitWebBackForwardList)) -#define WEBKIT_WEB_BACK_FORWARD_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, WebKitWebBackForwardListClass)) -#define WEBKIT_IS_WEB_BACK_FORWARD_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST)) -#define WEBKIT_IS_WEB_BACK_FORWARD_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST)) -#define WEBKIT_WEB_BACK_FORWARD_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_BACK_FORWARD_LIST, WebKitWebBackForwardListClass)) - -typedef struct _WebKitWebBackForwardListPrivate WebKitWebBackForwardListPrivate; - -struct _WebKitWebBackForwardList { - GObject parent_instance; - - /*< private >*/ - WebKitWebBackForwardListPrivate *priv; -}; - -struct _WebKitWebBackForwardListClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_back_forward_list_get_type (void); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API WebKitWebBackForwardList * -webkit_web_back_forward_list_new_with_web_view (WebKitWebView *web_view); -#endif - -WEBKIT_API void -webkit_web_back_forward_list_go_forward (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API void -webkit_web_back_forward_list_go_back (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API gboolean -webkit_web_back_forward_list_contains_item (WebKitWebBackForwardList *web_back_forward_list, - WebKitWebHistoryItem *history_item); - -WEBKIT_API void -webkit_web_back_forward_list_go_to_item (WebKitWebBackForwardList *web_back_forward_list, - WebKitWebHistoryItem *history_item); - -WEBKIT_API GList * -webkit_web_back_forward_list_get_forward_list_with_limit (WebKitWebBackForwardList *web_back_forward_list, - gint limit); - -WEBKIT_API GList * -webkit_web_back_forward_list_get_back_list_with_limit (WebKitWebBackForwardList *web_back_forward_list, - gint limit); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_back_forward_list_get_back_item (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_back_forward_list_get_current_item (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_back_forward_list_get_forward_item (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_back_forward_list_get_nth_item (WebKitWebBackForwardList *web_back_forward_list, - gint index); - -WEBKIT_API gint -webkit_web_back_forward_list_get_back_length (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API gint -webkit_web_back_forward_list_get_forward_length (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API gint -webkit_web_back_forward_list_get_limit (WebKitWebBackForwardList *web_back_forward_list); - -WEBKIT_API void -webkit_web_back_forward_list_set_limit (WebKitWebBackForwardList *web_back_forward_list, - gint limit); - -WEBKIT_API void -webkit_web_back_forward_list_add_item (WebKitWebBackForwardList *web_back_forward_list, - WebKitWebHistoryItem *history_item); - -WEBKIT_API void -webkit_web_back_forward_list_clear (WebKitWebBackForwardList *web_back_forward_list); - -G_END_DECLS - - -#endif /* webkitwebbackforwardlist_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebbackforwardlistprivate.h b/Source/WebKit/gtk/webkit/webkitwebbackforwardlistprivate.h deleted file mode 100644 index 79424c083..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebbackforwardlistprivate.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebbackforwardlistprivate_h -#define webkitwebbackforwardlistprivate_h - -#include "BackForwardListImpl.h" - -namespace WebKit { - -WebCore::BackForwardListImpl* core(WebKitWebBackForwardList*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebdatabase.cpp b/Source/WebKit/gtk/webkit/webkitwebdatabase.cpp deleted file mode 100644 index 8d2f17f05..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebdatabase.cpp +++ /dev/null @@ -1,525 +0,0 @@ -/* - * Copyright (C) 2009 Martin Robinson - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebdatabase.h" - -#include "DatabaseDetails.h" -#include "DatabaseManager.h" -#include "FileSystem.h" -#include "GroupSettings.h" -#include "PageGroup.h" -#include "webkitglobalsprivate.h" -#include "webkitsecurityoriginprivate.h" -#include <glib/gi18n-lib.h> -#include <wtf/text/CString.h> - -/** - * SECTION:webkitwebdatabase - * @short_description: A WebKit web application database - * - * #WebKitWebDatabase is a representation of a Web Database database. The - * proposed Web Database standard introduces support for SQL databases that web - * sites can create and access on a local computer through JavaScript. - * - * To get access to all databases defined by a security origin, use - * #webkit_security_origin_get_databases. Each database has a canonical - * name, as well as a user-friendly display name. - * - * WebKit uses SQLite to create and access the local SQL databases. The location - * of a #WebKitWebDatabase can be accessed wth #webkit_web_database_get_filename. - * You can configure the location of all databases with - * #webkit_set_database_directory_path. - * - * For each database the web site can define an estimated size which can be - * accessed with #webkit_web_database_get_expected_size. The current size of the - * database in bytes is returned by #webkit_web_database_get_size. - * - * For more information refer to the Web Database specification proposal at - * http://dev.w3.org/html5/webdatabase - */ - -using namespace WebKit; - -enum { - PROP_0, - - PROP_SECURITY_ORIGIN, - PROP_NAME, - PROP_DISPLAY_NAME, - PROP_EXPECTED_SIZE, - PROP_SIZE, - PROP_PATH -}; - -G_DEFINE_TYPE(WebKitWebDatabase, webkit_web_database, G_TYPE_OBJECT) - -struct _WebKitWebDatabasePrivate { - WebKitSecurityOrigin* origin; - gchar* name; - gchar* displayName; - gchar* filename; -}; - -static CString gWebKitWebDatabasePath; -static guint64 webkit_default_database_quota = 5 * 1024 * 1024; - -static void webkit_web_database_set_security_origin(WebKitWebDatabase* webDatabase, WebKitSecurityOrigin* security_origin); - -static void webkit_web_database_set_name(WebKitWebDatabase* webDatabase, const gchar* name); - -static void webkit_web_database_finalize(GObject* object) -{ - WebKitWebDatabase* webDatabase = WEBKIT_WEB_DATABASE(object); - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - g_free(priv->name); - g_free(priv->displayName); - g_free(priv->filename); - - G_OBJECT_CLASS(webkit_web_database_parent_class)->finalize(object); -} - -static void webkit_web_database_dispose(GObject* object) -{ - WebKitWebDatabase* webDatabase = WEBKIT_WEB_DATABASE(object); - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - if (priv->origin) { - g_object_unref(priv->origin); - priv->origin = NULL; - } - - G_OBJECT_CLASS(webkit_web_database_parent_class)->dispose(object); -} - -static void webkit_web_database_set_property(GObject* object, guint propId, const GValue* value, GParamSpec* pspec) -{ - WebKitWebDatabase* webDatabase = WEBKIT_WEB_DATABASE(object); - - switch (propId) { - case PROP_SECURITY_ORIGIN: - webkit_web_database_set_security_origin(webDatabase, WEBKIT_SECURITY_ORIGIN(g_value_get_object(value))); - break; - case PROP_NAME: - webkit_web_database_set_name(webDatabase, g_value_get_string(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_web_database_get_property(GObject* object, guint propId, GValue* value, GParamSpec* pspec) -{ - WebKitWebDatabase* webDatabase = WEBKIT_WEB_DATABASE(object); - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - switch (propId) { - case PROP_SECURITY_ORIGIN: - g_value_set_object(value, priv->origin); - break; - case PROP_NAME: - g_value_set_string(value, webkit_web_database_get_name(webDatabase)); - break; - case PROP_DISPLAY_NAME: - g_value_set_string(value, webkit_web_database_get_display_name(webDatabase)); - break; - case PROP_EXPECTED_SIZE: - g_value_set_uint64(value, webkit_web_database_get_expected_size(webDatabase)); - break; - case PROP_SIZE: - g_value_set_uint64(value, webkit_web_database_get_size(webDatabase)); - break; - case PROP_PATH: - g_value_set_string(value, webkit_web_database_get_filename(webDatabase)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propId, pspec); - break; - } -} - -static void webkit_web_database_class_init(WebKitWebDatabaseClass* klass) -{ - GObjectClass* gobjectClass = G_OBJECT_CLASS(klass); - gobjectClass->dispose = webkit_web_database_dispose; - gobjectClass->finalize = webkit_web_database_finalize; - gobjectClass->set_property = webkit_web_database_set_property; - gobjectClass->get_property = webkit_web_database_get_property; - - /** - * WebKitWebDatabase:security-origin: - * - * The security origin of the database. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_SECURITY_ORIGIN, - g_param_spec_object("security-origin", - _("Security Origin"), - _("The security origin of the database"), - WEBKIT_TYPE_SECURITY_ORIGIN, - (GParamFlags) (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitWebDatabase:name: - * - * The name of the Web Database database. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_NAME, - g_param_spec_string("name", - _("Name"), - _("The name of the Web Database database"), - NULL, - (GParamFlags) (G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitWebDatabase:display-name: - * - * The display name of the Web Database database. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_DISPLAY_NAME, - g_param_spec_string("display-name", - _("Display Name"), - _("The display name of the Web Storage database"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebDatabase:expected-size: - * - * The expected size of the database in bytes as defined by the web author. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_EXPECTED_SIZE, - g_param_spec_uint64("expected-size", - _("Expected Size"), - _("The expected size of the Web Database database"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READABLE)); - /** - * WebKitWebDatabase:size: - * - * The current size of the database in bytes. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_SIZE, - g_param_spec_uint64("size", - _("Size"), - _("The current size of the Web Database database"), - 0, G_MAXUINT64, 0, - WEBKIT_PARAM_READABLE)); - /** - * WebKitWebDatabase:filename: - * - * The absolute filename of the Web Database database. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobjectClass, PROP_PATH, - g_param_spec_string("filename", - _("Filename"), - _("The absolute filename of the Web Storage database"), - NULL, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(klass, sizeof(WebKitWebDatabasePrivate)); -} - -static void webkit_web_database_init(WebKitWebDatabase* webDatabase) -{ - webDatabase->priv = G_TYPE_INSTANCE_GET_PRIVATE(webDatabase, WEBKIT_TYPE_WEB_DATABASE, WebKitWebDatabasePrivate); -} - -// Internal use only -static void webkit_web_database_set_security_origin(WebKitWebDatabase *webDatabase, WebKitSecurityOrigin *securityOrigin) -{ - g_return_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase)); - g_return_if_fail(WEBKIT_IS_SECURITY_ORIGIN(securityOrigin)); - - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - if (priv->origin) - g_object_unref(priv->origin); - - g_object_ref(securityOrigin); - priv->origin = securityOrigin; -} - -static void webkit_web_database_set_name(WebKitWebDatabase* webDatabase, const gchar* name) -{ - g_return_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase)); - - WebKitWebDatabasePrivate* priv = webDatabase->priv; - g_free(priv->name); - priv->name = g_strdup(name); -} - -/** - * webkit_web_database_get_security_origin: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the security origin of the #WebKitWebDatabase. - * - * Returns: (transfer none): the security origin of the database - * - * Since: 1.1.14 - **/ -WebKitSecurityOrigin* webkit_web_database_get_security_origin(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), NULL); - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - return priv->origin; -} - -/** - * webkit_web_database_get_name: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the canonical name of the #WebKitWebDatabase. - * - * Returns: the name of the database - * - * Since: 1.1.14 - **/ -const gchar* webkit_web_database_get_name(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), NULL); - WebKitWebDatabasePrivate* priv = webDatabase->priv; - - return priv->name; -} - -/** - * webkit_web_database_get_display_name: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the name of the #WebKitWebDatabase as seen by the user. - * - * Returns: the name of the database as seen by the user. - * - * Since: 1.1.14 - **/ -const gchar* webkit_web_database_get_display_name(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), NULL); - -#if ENABLE(SQL_DATABASE) - WebKitWebDatabasePrivate* priv = webDatabase->priv; - WebCore::DatabaseDetails details = WebCore::DatabaseManager::manager().detailsForNameAndOrigin(priv->name, core(priv->origin)); - WTF::String displayName = details.displayName(); - - if (displayName.isEmpty()) - return ""; - - g_free(priv->displayName); - priv->displayName = g_strdup(displayName.utf8().data()); - return priv->displayName; -#else - return ""; -#endif -} - -/** - * webkit_web_database_get_expected_size: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the expected size of the #WebKitWebDatabase in bytes as defined by the - * web author. The Web Database standard allows web authors to specify an expected - * size of the database to optimize the user experience. - * - * Returns: the expected size of the database in bytes - * - * Since: 1.1.14 - **/ -guint64 webkit_web_database_get_expected_size(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), 0); - -#if ENABLE(SQL_DATABASE) - WebKitWebDatabasePrivate* priv = webDatabase->priv; - WebCore::DatabaseDetails details = WebCore::DatabaseManager::manager().detailsForNameAndOrigin(priv->name, core(priv->origin)); - return details.expectedUsage(); -#else - return 0; -#endif -} - -/** - * webkit_web_database_get_size: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the actual size of the #WebKitWebDatabase space on disk in bytes. - * - * Returns: the actual size of the database in bytes - * - * Since: 1.1.14 - **/ -guint64 webkit_web_database_get_size(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), 0); - -#if ENABLE(SQL_DATABASE) - WebKitWebDatabasePrivate* priv = webDatabase->priv; - WebCore::DatabaseDetails details = WebCore::DatabaseManager::manager().detailsForNameAndOrigin(priv->name, core(priv->origin)); - return details.currentUsage(); -#else - return 0; -#endif -} - -/** - * webkit_web_database_get_filename: - * @webDatabase: a #WebKitWebDatabase - * - * Returns the absolute filename to the #WebKitWebDatabase file on disk. - * - * Returns: the absolute filename of the database - * - * Since: 1.1.14 - **/ -const gchar* webkit_web_database_get_filename(WebKitWebDatabase* webDatabase) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase), NULL); - -#if ENABLE(SQL_DATABASE) - WebKitWebDatabasePrivate* priv = webDatabase->priv; - WTF::String coreName = WTF::String::fromUTF8(priv->name); - WTF::String corePath = WebCore::DatabaseManager::manager().fullPathForDatabase(core(priv->origin), coreName); - - if (corePath.isEmpty()) - return""; - - g_free(priv->filename); - priv->filename = g_strdup(corePath.utf8().data()); - return priv->filename; - -#else - return ""; -#endif -} - -/** - * webkit_web_database_remove: - * @webDatabase: a #WebKitWebDatabase - * - * Removes the #WebKitWebDatabase from its security origin and destroys all data - * stored in the database. - * - * Since: 1.1.14 - **/ -void webkit_web_database_remove(WebKitWebDatabase* webDatabase) -{ - g_return_if_fail(WEBKIT_IS_WEB_DATABASE(webDatabase)); - -#if ENABLE(SQL_DATABASE) - WebKitWebDatabasePrivate* priv = webDatabase->priv; - WebCore::DatabaseManager::manager().deleteDatabase(core(priv->origin), priv->name); -#endif -} - -/** - * webkit_remove_all_web_databases: - * - * Removes all web databases from the current database directory path. - * - * Since: 1.1.14 - **/ -void webkit_remove_all_web_databases() -{ -#if ENABLE(SQL_DATABASE) - WebCore::DatabaseManager::manager().deleteAllDatabases(); -#endif -} - -/** - * webkit_get_web_database_directory_path: - * - * Returns the current path to the directory WebKit will write Web - * Database and Indexed Database databases. By default this path will - * be in the user data directory. - * - * Returns: the current database directory path in the filesystem encoding - * - * Since: 1.1.14 - **/ -const gchar* webkit_get_web_database_directory_path() -{ - return gWebKitWebDatabasePath.data(); -} - -/** - * webkit_set_web_database_directory_path: - * @path: the new database directory path in the filesystem encoding - * - * Sets the current path to the directory WebKit will write Web - * Database and Indexed Database databases. - * - * Since: 1.1.14 - **/ -void webkit_set_web_database_directory_path(const gchar* path) -{ - gWebKitWebDatabasePath = path; - - String pathString = WebCore::filenameToString(path); -#if ENABLE(SQL_DATABASE) - WebCore::DatabaseManager::manager().setDatabaseDirectoryPath(pathString); -#endif - -#if ENABLE(INDEXED_DATABASE) - WebCore::PageGroup::pageGroup(webkitPageGroupName())->groupSettings()->setIndexedDBDatabasePath(pathString); -#endif - -} - -/** - * webkit_get_default_web_database_quota: - * - * Returns the default quota for Web Database databases. By default - * this value is 5MB. - * - * Returns: the current default database quota in bytes - * - * Since: 1.1.14 - **/ -guint64 webkit_get_default_web_database_quota() -{ - return webkit_default_database_quota; -} - -/** - * webkit_set_default_web_database_quota: - * @defaultQuota: the new default database quota - * - * Sets the default quota for Web Database databases. - * - * Since: 1.1.14 - **/ -void webkit_set_default_web_database_quota(guint64 defaultQuota) -{ - webkit_default_database_quota = defaultQuota; -} diff --git a/Source/WebKit/gtk/webkit/webkitwebdatabase.h b/Source/WebKit/gtk/webkit/webkitwebdatabase.h deleted file mode 100644 index 0a05d65cf..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebdatabase.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2009 Martin Robinson - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebdatabase_h -#define webkitwebdatabase_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_DATABASE (webkit_web_database_get_type()) -#define WEBKIT_WEB_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_DATABASE, WebKitWebDatabase)) -#define WEBKIT_WEB_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_DATABASE, WebKitWebDatabaseClass)) -#define WEBKIT_IS_WEB_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_DATABASE)) -#define WEBKIT_IS_WEB_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_DATABASE)) -#define WEBKIT_WEB_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_DATABASE, WebKitWebDatabaseClass)) - -typedef struct _WebKitWebDatabasePrivate WebKitWebDatabasePrivate; - -struct _WebKitWebDatabase { - GObject parent_instance; - - /*< private >*/ - WebKitWebDatabasePrivate* priv; -}; - -struct _WebKitWebDatabaseClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_web_database_get_type (void); - -WEBKIT_API WebKitSecurityOrigin * -webkit_web_database_get_security_origin (WebKitWebDatabase* webDatabase); - -WEBKIT_API const gchar* -webkit_web_database_get_name (WebKitWebDatabase* webDatabase); - -WEBKIT_API const gchar* -webkit_web_database_get_display_name (WebKitWebDatabase* webDatabase); - -WEBKIT_API guint64 -webkit_web_database_get_expected_size (WebKitWebDatabase* webDatabase); - -WEBKIT_API guint64 -webkit_web_database_get_size (WebKitWebDatabase* webDatabase); - -WEBKIT_API const gchar* -webkit_web_database_get_filename (WebKitWebDatabase* webDatabase); - -WEBKIT_API void -webkit_web_database_remove (WebKitWebDatabase* webDatabase); - -WEBKIT_API void -webkit_remove_all_web_databases (void); - -WEBKIT_API const gchar* -webkit_get_web_database_directory_path (void); - -WEBKIT_API void -webkit_set_web_database_directory_path (const gchar* path); - -WEBKIT_API guint64 -webkit_get_default_web_database_quota (void); - -WEBKIT_API void -webkit_set_default_web_database_quota (guint64 defaultQuota); - -G_END_DECLS - -#endif /* webkitwebdatabase_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp b/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp deleted file mode 100644 index b6fdc470f..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebdatasource.cpp +++ /dev/null @@ -1,443 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebdatasource.h" - -#include "ArchiveResource.h" -#include "DocumentLoaderGtk.h" -#include "FrameLoader.h" -#include "FrameLoaderClientGtk.h" -#include "KURL.h" -#include "ResourceBuffer.h" -#include "ResourceRequest.h" -#include "SharedBuffer.h" -#include "SubstituteData.h" -#include "runtime/InitializeThreading.h" -#include "webkitglobalsprivate.h" -#include "webkitnetworkrequestprivate.h" -#include "webkitwebdatasourceprivate.h" -#include "webkitwebframeprivate.h" -#include "webkitwebresource.h" -#include "webkitwebviewprivate.h" -#include <glib.h> -#include <wtf/Assertions.h> -#include <wtf/text/WTFString.h> - -/** - * SECTION:webkitwebdatasource - * @short_description: Encapsulates the content to be displayed in a #WebKitWebFrame. - * @see_also: #WebKitWebFrame - * - * Data source encapsulates the content of a #WebKitWebFrame. A - * #WebKitWebFrame has a main resource and subresources and the data source - * provides access to these resources. When a request gets loaded initially, - * it is set to a provisional state. The application can request for the - * request that initiated the load by asking for the provisional data source - * and invoking the webkit_web_data_source_get_initial_request method of - * #WebKitWebDataSource. This data source may not have enough data and some - * methods may return empty values. To get a "full" data source with the data - * and resources loaded, you need to get the non-provisional data source - * through #WebKitWebFrame's webkit_web_frame_get_data_source method. This - * data source will have the data after everything was loaded. Make sure that - * the data source was finished loading before using any of its methods. You - * can do this via webkit_web_data_source_is_loading. - */ - -using namespace WebCore; -using namespace WebKit; - -struct _WebKitWebDataSourcePrivate { - WebKit::DocumentLoader* loader; - - WebKitNetworkRequest* initialRequest; - WebKitNetworkRequest* networkRequest; - WebKitWebResource* mainresource; - - GString* data; - - gchar* textEncoding; - gchar* unreachableURL; -}; - -G_DEFINE_TYPE(WebKitWebDataSource, webkit_web_data_source, G_TYPE_OBJECT); - -static void webkit_web_data_source_dispose(GObject* object) -{ - WebKitWebDataSource* webDataSource = WEBKIT_WEB_DATA_SOURCE(object); - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - - ASSERT(priv->loader); - ASSERT(!priv->loader->isLoading()); - priv->loader->detachDataSource(); - priv->loader->deref(); - - if (priv->initialRequest) { - g_object_unref(priv->initialRequest); - priv->initialRequest = NULL; - } - - if (priv->networkRequest) { - g_object_unref(priv->networkRequest); - priv->networkRequest = NULL; - } - - if (priv->mainresource) { - g_object_unref(priv->mainresource); - priv->mainresource = NULL; - } - - G_OBJECT_CLASS(webkit_web_data_source_parent_class)->dispose(object); -} - -static void webkit_web_data_source_finalize(GObject* object) -{ - WebKitWebDataSource* dataSource = WEBKIT_WEB_DATA_SOURCE(object); - WebKitWebDataSourcePrivate* priv = dataSource->priv; - - g_free(priv->unreachableURL); - g_free(priv->textEncoding); - - if (priv->data) { - g_string_free(priv->data, TRUE); - priv->data = NULL; - } - - G_OBJECT_CLASS(webkit_web_data_source_parent_class)->finalize(object); -} - -static void webkit_web_data_source_class_init(WebKitWebDataSourceClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - gobject_class->dispose = webkit_web_data_source_dispose; - gobject_class->finalize = webkit_web_data_source_finalize; - - webkitInit(); - - g_type_class_add_private(gobject_class, sizeof(WebKitWebDataSourcePrivate)); -} - -static void webkit_web_data_source_init(WebKitWebDataSource* webDataSource) -{ - webDataSource->priv = G_TYPE_INSTANCE_GET_PRIVATE(webDataSource, WEBKIT_TYPE_WEB_DATA_SOURCE, WebKitWebDataSourcePrivate); -} - -/** - * webkit_web_data_source_new: - * - * Creates a new #WebKitWebDataSource instance. The URL of the - * #WebKitWebDataSource will be set to "about:blank". - * - * Returns: a new #WebKitWebDataSource. - * - * Since: 1.1.14 - */ -WebKitWebDataSource* webkit_web_data_source_new() -{ - WebKitNetworkRequest* request = webkit_network_request_new("about:blank"); - WebKitWebDataSource* datasource = webkit_web_data_source_new_with_request(request); - g_object_unref(request); - - return datasource; -} - -/** - * webkit_web_data_source_new_with_request: - * @request: the #WebKitNetworkRequest to use to create this data source - * - * Creates a new #WebKitWebDataSource from a #WebKitNetworkRequest. Normally, - * #WebKitWebFrame objects create their data sources so you will almost never - * want to invoke this method directly. - * - * Returns: a new #WebKitWebDataSource - * - * Since: 1.1.14 - */ -WebKitWebDataSource* webkit_web_data_source_new_with_request(WebKitNetworkRequest* request) -{ - ASSERT(request); - - const gchar* uri = webkit_network_request_get_uri(request); - - ResourceRequest resourceRequest(ResourceRequest(KURL(KURL(), String::fromUTF8(uri)))); - WebKitWebDataSource* datasource = kitNew(WebKit::DocumentLoader::create(resourceRequest, SubstituteData())); - - WebKitWebDataSourcePrivate* priv = datasource->priv; - priv->initialRequest = request; - - return datasource; -} - -/** - * webkit_web_data_source_get_web_frame: - * @data_source: a #WebKitWebDataSource - * - * Returns the #WebKitWebFrame that represents this data source - * - * Return value: (transfer none): the #WebKitWebFrame that represents - * the @data_source. The #WebKitWebFrame is owned by WebKit and should - * not be freed or destroyed. This will return %NULL if the - * @data_source is not attached to a frame. - * - * Since: 1.1.14 - */ -WebKitWebFrame* webkit_web_data_source_get_web_frame(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - FrameLoader* frameLoader = priv->loader->frameLoader(); - - if (!frameLoader) - return NULL; - - return static_cast<WebKit::FrameLoaderClient*>(frameLoader->client())->webFrame(); -} - -/** - * webkit_web_data_source_get_initial_request: - * @data_source: a #WebKitWebDataSource - * - * Returns a reference to the original request that was used to load the web - * content. The #WebKitNetworkRequest returned by this method is the request - * prior to the "committed" load state. See webkit_web_data_source_get_request - * for getting the "committed" request. - * - * Return value: (transfer none): the original #WebKitNetworkRequest - * - * Since: 1.1.14 - */ -WebKitNetworkRequest* webkit_web_data_source_get_initial_request(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - ResourceRequest request = priv->loader->originalRequest(); - - if (priv->initialRequest) - g_object_unref(priv->initialRequest); - - priv->initialRequest = kitNew(request); - return priv->initialRequest; -} - -/** - * webkit_web_data_source_get_request: - * @data_source: a #WebKitWebDataSource - * - * Returns a #WebKitNetworkRequest that was used to create this - * #WebKitWebDataSource. The #WebKitNetworkRequest returned by this method is - * the request that was "committed", and hence, different from the request you - * get from the webkit_web_data_source_get_initial_request method. - * - * Return value: (transfer none): the #WebKitNetworkRequest that - * created the @data_source or %NULL if the @data_source is not - * attached to the frame or the frame hasn't been loaded. - * - * Since: 1.1.14 - */ -WebKitNetworkRequest* webkit_web_data_source_get_request(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - FrameLoader* frameLoader = priv->loader->frameLoader(); - if (!frameLoader || !frameLoader->frameHasLoaded()) - return NULL; - - ResourceRequest request = priv->loader->request(); - - if (priv->networkRequest) - g_object_unref(priv->networkRequest); - - priv->networkRequest = kitNew(request); - return priv->networkRequest; -} - -/** - * webkit_web_data_source_get_encoding: - * @data_source: a #WebKitWebDataSource - * - * Returns the text encoding name as set in the #WebKitWebView, or if not, the - * text encoding of the response. - * - * Return value: the encoding name of the #WebKitWebView or of the response. - * - * Since: 1.1.14 - */ -const gchar* webkit_web_data_source_get_encoding(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - String textEncodingName = priv->loader->overrideEncoding(); - - if (!textEncodingName) - textEncodingName = priv->loader->response().textEncodingName(); - - CString encoding = textEncodingName.utf8(); - g_free(priv->textEncoding); - priv->textEncoding = g_strdup(encoding.data()); - return priv->textEncoding; -} - -/** - * webkit_web_data_source_is_loading: - * @data_source: a #WebKitWebDataSource - * - * Determines whether the data source is in the process of loading its content. - * - * Return value: %TRUE if the @data_source is still loading, %FALSE otherwise - * - * Since: 1.1.14 - */ -gboolean webkit_web_data_source_is_loading(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), FALSE); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - - return priv->loader->isLoadingInAPISense(); -} - -/** - * webkit_web_data_source_get_data: - * @data_source: a #WebKitWebDataSource - * - * Returns the raw data that represents the the frame's content.The data will - * be incomplete until the data has finished loading. Returns %NULL if the web - * frame hasn't loaded any data. Use webkit_web_data_source_is_loading to test - * if data source is in the process of loading. - * - * Return value: (transfer none): a #GString which contains the raw - * data that represents the @data_source or %NULL if the @data_source - * hasn't loaded any data. - * - * Since: 1.1.14 - */ -GString* webkit_web_data_source_get_data(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - - RefPtr<ResourceBuffer> mainResourceData = priv->loader->mainResourceData(); - - if (!mainResourceData) - return NULL; - - if (priv->data) { - g_string_free(priv->data, TRUE); - priv->data = NULL; - } - - priv->data = g_string_new_len(mainResourceData->data(), mainResourceData->size()); - return priv->data; -} - -/** - * webkit_web_data_source_get_main_resource: - * @data_source: a #WebKitWebDataSource - * - * Returns the main resource of the @data_source - * - * Return value: (transfer none): a new #WebKitWebResource - * representing the main resource of the @data_source. - * - * Since: 1.1.14 - */ -WebKitWebResource* webkit_web_data_source_get_main_resource(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - - if (priv->mainresource) - return priv->mainresource; - - WebKitWebFrame* webFrame = webkit_web_data_source_get_web_frame(webDataSource); - WebKitWebView* webView = getViewFromFrame(webFrame); - - priv->mainresource = WEBKIT_WEB_RESOURCE(g_object_ref(webkit_web_view_get_main_resource(webView))); - - return priv->mainresource; -} - -/** - * webkit_web_data_source_get_unreachable_uri: - * @data_source: a #WebKitWebDataSource - * - * Return the unreachable URI of @data_source. The @data_source will have an - * unreachable URL if it was created using #WebKitWebFrame's - * webkit_web_frame_load_alternate_html_string method. - * - * Return value: the unreachable URL of @data_source or %NULL if there is no unreachable URL. - * - * Since: 1.1.14 - */ -const gchar* webkit_web_data_source_get_unreachable_uri(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - const KURL& unreachableURL = priv->loader->unreachableURL(); - - if (unreachableURL.isEmpty()) - return NULL; - - g_free(priv->unreachableURL); - priv->unreachableURL = g_strdup(unreachableURL.string().utf8().data()); - return priv->unreachableURL; -} - -/** - * webkit_web_data_source_get_subresources: - * @data_source: a #WebKitWebDataSource - * - * Gives you a #GList of #WebKitWebResource objects that compose the - * #WebKitWebView to which this #WebKitWebDataSource is attached. - * - * Return value: (element-type WebKitWebResource) (transfer container): - * a #GList of #WebKitWebResource objects; the objects are owned by - * WebKit, but the GList must be freed. - * - * Since: 1.1.15 - */ -GList* webkit_web_data_source_get_subresources(WebKitWebDataSource* webDataSource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_DATA_SOURCE(webDataSource), NULL); - - WebKitWebFrame* webFrame = webkit_web_data_source_get_web_frame(webDataSource); - WebKitWebView* webView = getViewFromFrame(webFrame); - - return webkit_web_view_get_subresources(webView); -} - -namespace WebKit { - -WebKitWebDataSource* kitNew(PassRefPtr<WebKit::DocumentLoader> loader) -{ - WebKitWebDataSource* webDataSource = WEBKIT_WEB_DATA_SOURCE(g_object_new(WEBKIT_TYPE_WEB_DATA_SOURCE, NULL)); - WebKitWebDataSourcePrivate* priv = webDataSource->priv; - priv->loader = loader.leakRef(); - - return webDataSource; -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebdatasource.h b/Source/WebKit/gtk/webkit/webkitwebdatasource.h deleted file mode 100644 index d8430e084..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebdatasource.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebdatasource_h -#define webkitwebdatasource_h - -#include <glib.h> -#include <glib-object.h> - -#include <webkit/webkitdefines.h> -#include <webkit/webkitwebframe.h> -#include <webkit/webkitnetworkrequest.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_DATA_SOURCE (webkit_web_data_source_get_type()) -#define WEBKIT_WEB_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_DATA_SOURCE, WebKitWebDataSource)) -#define WEBKIT_WEB_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_DATA_SOURCE, WebKitWebDataSourceClass)) -#define WEBKIT_IS_WEB_DATA_SOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_DATA_SOURCE)) -#define WEBKIT_IS_WEB_DATA_SOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_DATA_SOURCE)) -#define WEBKIT_WEB_DATA_SOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_DATA_SOURCE, WebKitWebDataSourceClass)) - -typedef struct _WebKitWebDataSourcePrivate WebKitWebDataSourcePrivate; - -struct _WebKitWebDataSource { - GObject parent_instance; - - /*< private >*/ - WebKitWebDataSourcePrivate *priv; -}; - -struct _WebKitWebDataSourceClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_data_source_get_type (void); - -WEBKIT_API WebKitWebDataSource * -webkit_web_data_source_new (void); - -WEBKIT_API WebKitWebDataSource * -webkit_web_data_source_new_with_request (WebKitNetworkRequest *request); - -WEBKIT_API WebKitWebFrame * -webkit_web_data_source_get_web_frame (WebKitWebDataSource *data_source); - -WEBKIT_API WebKitNetworkRequest * -webkit_web_data_source_get_initial_request (WebKitWebDataSource *data_source); - -WEBKIT_API WebKitNetworkRequest * -webkit_web_data_source_get_request (WebKitWebDataSource *data_source); - -WEBKIT_API const gchar * -webkit_web_data_source_get_encoding (WebKitWebDataSource *data_source); - -WEBKIT_API gboolean -webkit_web_data_source_is_loading (WebKitWebDataSource *data_source); - -WEBKIT_API GString * -webkit_web_data_source_get_data (WebKitWebDataSource *data_source); - -WEBKIT_API WebKitWebResource * -webkit_web_data_source_get_main_resource (WebKitWebDataSource *data_source); - -WEBKIT_API const gchar * -webkit_web_data_source_get_unreachable_uri (WebKitWebDataSource *data_source); - -WEBKIT_API GList* -webkit_web_data_source_get_subresources (WebKitWebDataSource *data_source); - -G_END_DECLS - -#endif /* webkitwebdatasource_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebdatasourceprivate.h b/Source/WebKit/gtk/webkit/webkitwebdatasourceprivate.h deleted file mode 100644 index 8e253fa76..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebdatasourceprivate.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebdatasourceprivate_h -#define webkitwebdatasourceprivate_h - -#include "webkitwebdatasource.h" -#include <wtf/RefPtr.h> - -namespace WebKit { - -WebKitWebDataSource* kitNew(PassRefPtr<WebKit::DocumentLoader>); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebframe.cpp b/Source/WebKit/gtk/webkit/webkitwebframe.cpp deleted file mode 100644 index 163f6f0bc..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebframe.cpp +++ /dev/null @@ -1,1218 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther - * Copyright (C) 2007 Alp Toker <alp@atoker.com> - * Copyright (C) 2007 Apple Inc. - * Copyright (C) 2008 Christian Dywan <christian@imendio.com> - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2009 Jan Alonzo <jmalonzo@gmail.com> - * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebframe.h" - -#include "AXObjectCache.h" -#include "AnimationController.h" -#include "DOMObjectCache.h" -#include "DocumentFragment.h" -#include "DocumentLoader.h" -#include "DocumentLoaderGtk.h" -#include "Editor.h" -#include "FrameLoadRequest.h" -#include "FrameLoader.h" -#include "FrameLoaderClientGtk.h" -#include "FrameSelection.h" -#include "FrameTree.h" -#include "FrameView.h" -#include "GCController.h" -#include "GraphicsContext.h" -#include "GtkUtilities.h" -#include "GtkVersioning.h" -#include "HTMLFrameOwnerElement.h" -#include "JSDOMBinding.h" -#include "JSDOMWindow.h" -#include "JSElement.h" -#include "PlatformContextCairo.h" -#include "PrintContext.h" -#include "RenderListItem.h" -#include "RenderTreeAsText.h" -#include "RenderView.h" -#include "ScriptController.h" -#include "SubstituteData.h" -#include "TextIterator.h" -#include "WebKitAccessibleWrapperAtk.h" -#include "WebKitDOMDocumentPrivate.h" -#include "WebKitDOMRangePrivate.h" -#include "markup.h" -#include "webkitenumtypes.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitnetworkresponse.h" -#include "webkitnetworkrequestprivate.h" -#include "webkitnetworkresponseprivate.h" -#include "webkitsecurityoriginprivate.h" -#include "webkitwebframeprivate.h" -#include "webkitwebresource.h" -#include "webkitwebview.h" -#include "webkitwebviewprivate.h" -#include <JavaScriptCore/APICast.h> -#include <atk/atk.h> -#include <glib/gi18n-lib.h> -#include <wtf/text/CString.h> - -#if ENABLE(SVG) -#include "SVGSMILElement.h" -#endif - -/** - * SECTION:webkitwebframe - * @short_description: The content of a #WebKitWebView - * - * A #WebKitWebView contains a main #WebKitWebFrame. A #WebKitWebFrame - * contains the content of one URI. The URI and name of the frame can - * be retrieved, the load status and progress can be observed using the - * signals and can be controlled using the methods of the #WebKitWebFrame. - * A #WebKitWebFrame can have any number of children and one child can - * be found by using #webkit_web_frame_find_frame. - * - * <informalexample><programlisting> - * /<!-- -->* Get the frame from the #WebKitWebView *<!-- -->/ - * WebKitWebFrame *frame = webkit_web_view_get_main_frame (WEBKIT_WEB_VIEW(my_view)); - * g_print ("The URI of this frame is '%s'", webkit_web_frame_get_uri (frame)); - * </programlisting></informalexample> - */ - -using namespace WebKit; -using namespace WebCore; -using namespace std; - -enum { - CLEARED, - LOAD_COMMITTED, - LOAD_DONE, - TITLE_CHANGED, - HOVERING_OVER_LINK, - SCROLLBARS_POLICY_CHANGED, - // Resource loading signals - RESOURCE_REQUEST_STARTING, - RESOURCE_RESPONSE_RECEIVED, - RESOURCE_LOAD_FINISHED, - RESOURCE_CONTENT_LENGTH_RECEIVED, - RESOURCE_LOAD_FAILED, - INSECURE_CONTENT_RUN, - - LAST_SIGNAL -}; - -enum { - PROP_0, - - PROP_NAME, - PROP_TITLE, - PROP_URI, - PROP_LOAD_STATUS, - PROP_HORIZONTAL_SCROLLBAR_POLICY, - PROP_VERTICAL_SCROLLBAR_POLICY -}; - -static guint webkit_web_frame_signals[LAST_SIGNAL] = { 0, }; - -G_DEFINE_TYPE(WebKitWebFrame, webkit_web_frame, G_TYPE_OBJECT) - -static void webkit_web_frame_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* paramSpec) -{ - WebKitWebFrame* frame = WEBKIT_WEB_FRAME(object); - - switch (propertyId) { - case PROP_NAME: - g_value_set_string(value, webkit_web_frame_get_name(frame)); - break; - case PROP_TITLE: - g_value_set_string(value, webkit_web_frame_get_title(frame)); - break; - case PROP_URI: - g_value_set_string(value, webkit_web_frame_get_uri(frame)); - break; - case PROP_LOAD_STATUS: - g_value_set_enum(value, webkit_web_frame_get_load_status(frame)); - break; - case PROP_HORIZONTAL_SCROLLBAR_POLICY: - g_value_set_enum(value, webkit_web_frame_get_horizontal_scrollbar_policy(frame)); - break; - case PROP_VERTICAL_SCROLLBAR_POLICY: - g_value_set_enum(value, webkit_web_frame_get_vertical_scrollbar_policy(frame)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, paramSpec); - break; - } -} - -// Called from the FrameLoaderClient when it is destroyed. Normally -// the unref in the FrameLoaderClient is destroying this object as -// well but due reference counting a user might have added a reference... -void webkit_web_frame_core_frame_gone(WebKitWebFrame* frame) -{ - ASSERT(WEBKIT_IS_WEB_FRAME(frame)); - WebKitWebFramePrivate* priv = frame->priv; - if (priv->coreFrame) - DOMObjectCache::clearByFrame(priv->coreFrame); - priv->coreFrame = 0; -} - -static WebKitWebDataSource* webkit_web_frame_get_data_source_from_core_loader(WebCore::DocumentLoader* loader) -{ - return loader ? static_cast<WebKit::DocumentLoader*>(loader)->dataSource() : 0; -} - -static void webkit_web_frame_finalize(GObject* object) -{ - WebKitWebFrame* frame = WEBKIT_WEB_FRAME(object); - WebKitWebFramePrivate* priv = frame->priv; - - if (priv->coreFrame) { - DOMObjectCache::clearByFrame(priv->coreFrame); - priv->coreFrame->loader()->cancelAndClear(); - priv->coreFrame = 0; - } - - g_free(priv->name); - g_free(priv->title); - g_free(priv->uri); - - G_OBJECT_CLASS(webkit_web_frame_parent_class)->finalize(object); -} - -static void webkit_web_frame_class_init(WebKitWebFrameClass* frameClass) -{ - webkitInit(); - - /* - * signals - */ - webkit_web_frame_signals[CLEARED] = g_signal_new("cleared", - G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - 0, - 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebFrame::load-committed: - * @web_frame: the object on which the signal is emitted - * - * Emitted when frame loading is done. - * - * Deprecated: Use the "load-status" property instead. - */ - webkit_web_frame_signals[LOAD_COMMITTED] = g_signal_new("load-committed", - G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - 0, - 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebFrame::title-changed: - * @frame: the object on which the signal is emitted - * @title: the new title - * - * When a #WebKitWebFrame changes the document title this signal is emitted. - * - * Deprecated: 1.1.18: Use "notify::title" instead. - */ - webkit_web_frame_signals[TITLE_CHANGED] = g_signal_new("title-changed", - G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - 0, - 0, - webkit_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - webkit_web_frame_signals[HOVERING_OVER_LINK] = g_signal_new("hovering-over-link", - G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - 0, - 0, - webkit_marshal_VOID__STRING_STRING, - G_TYPE_NONE, 2, - G_TYPE_STRING, G_TYPE_STRING); - - /** - * WebKitWebFrame::scrollbars-policy-changed: - * @web_view: the object which received the signal - * - * Signal emitted when policy for one or both of the scrollbars of - * the view has changed. The default handler will apply the new - * policy to the container that holds the #WebKitWebFrame if it is - * a #GtkScrolledWindow and the frame is the main frame. If you do - * not want this to be handled automatically, you need to handle - * this signal. - * - * The exception to this rule is that policies to disable the - * scrollbars are applied as %GTK_POLICY_AUTOMATIC instead, since - * the size request of the widget would force browser windows to - * not be resizable. - * - * You can obtain the new policies from the - * WebKitWebFrame:horizontal-scrollbar-policy and - * WebKitWebFrame:vertical-scrollbar-policy properties. - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - * - * Since: 1.1.14 - */ - webkit_web_frame_signals[SCROLLBARS_POLICY_CHANGED] = g_signal_new("scrollbars-policy-changed", - G_TYPE_FROM_CLASS(frameClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - g_signal_accumulator_true_handled, - 0, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN, 0); - - - /** - * WebKitWebFrame::resource-request-starting: - * @web_frame: the #WebKitWebFrame whose load dispatched this request - * @web_resource: an empty #WebKitWebResource object - * @request: the #WebKitNetworkRequest that will be dispatched - * @response: the #WebKitNetworkResponse representing the redirect - * response, if any - * - * Emitted when a request is about to be sent. You can modify the - * request while handling this signal. You can set the URI in the - * #WebKitNetworkRequest object itself, and add/remove/replace - * headers using the #SoupMessage object it carries, if it is - * present. See webkit_network_request_get_message(). Setting the - * request URI to "about:blank" will effectively cause the request - * to load nothing, and can be used to disable the loading of - * specific resources. - * - * Notice that information about an eventual redirect is available - * in @response's #SoupMessage, not in the #SoupMessage carried by - * the @request. If @response is %NULL, then this is not a - * redirected request. - * - * The #WebKitWebResource object will be the same throughout all - * the lifetime of the resource, but the contents may change - * between signal emissions. - * - * Since: 1.7.5 - */ - webkit_web_frame_signals[RESOURCE_REQUEST_STARTING] = g_signal_new("resource-request-starting", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT_OBJECT, - G_TYPE_NONE, 3, - WEBKIT_TYPE_WEB_RESOURCE, - WEBKIT_TYPE_NETWORK_REQUEST, - WEBKIT_TYPE_NETWORK_RESPONSE); - - /** - * WebKitWebFrame::resource-response-received: - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource being loaded - * @response: the #WebKitNetworkResponse that was received. - * - * Emitted when the response is received from the server. - * - * Since: 1.7.5 - */ - webkit_web_frame_signals[RESOURCE_RESPONSE_RECEIVED] = g_signal_new("resource-response-received", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_RESOURCE, - WEBKIT_TYPE_NETWORK_RESPONSE); - - /** - * WebKitWebFrame::resource-load-finished: - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource being loaded - * - * Emitted when all the data for the resource was loaded. - * - * Since: 1.7.5 - */ - webkit_web_frame_signals[RESOURCE_LOAD_FINISHED] = g_signal_new("resource-load-finished", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_RESOURCE); - - /** - * WebKitWebFrame::resource-content-length-received: - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource that was loaded - * @length_received: the amount of data received since the last signal emission - * - * Emitted when new resource data has been received. The - * @length_received variable stores the amount of bytes received - * since the last time this signal was emitted. This is useful to - * provide progress information about the resource load operation. - * - * Since: 1.7.5 - */ - webkit_web_frame_signals[RESOURCE_CONTENT_LENGTH_RECEIVED] = g_signal_new("resource-content-length-received", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_INT, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_RESOURCE, - G_TYPE_INT); - - /** - * WebKitWebFrame::resource-load-failed: - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource that was loaded - * @error: the #GError that was triggered - * - * Invoked when a resource failed to load. - * - * Since: 1.7.5 - */ - webkit_web_frame_signals[RESOURCE_LOAD_FAILED] = g_signal_new("resource-load-failed", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_POINTER, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_RESOURCE, - G_TYPE_POINTER); - - /** - * WebKitWebFrame::insecure-content-run: - * @web_frame: the #WebKitWebFrame the response was received for. - * @security_origin: the #WebKitSecurityOrigin. - * @url: the url of the insecure content. - * - * Invoked when insecure content is run from a secure page. This happens - * when a page loaded via HTTPS loads a stylesheet, script, image or - * iframe from an unencrypted HTTP URL. - * - * Since: 1.10.0 - */ - webkit_web_frame_signals[INSECURE_CONTENT_RUN] = g_signal_new("insecure-content-run", - G_TYPE_FROM_CLASS(frameClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_STRING, - G_TYPE_NONE, 2, - WEBKIT_TYPE_SECURITY_ORIGIN, - G_TYPE_STRING); - - /* - * implementations of virtual methods - */ - GObjectClass* objectClass = G_OBJECT_CLASS(frameClass); - objectClass->finalize = webkit_web_frame_finalize; - objectClass->get_property = webkit_web_frame_get_property; - - /* - * properties - */ - g_object_class_install_property(objectClass, PROP_NAME, - g_param_spec_string("name", - _("Name"), - _("The name of the frame"), - 0, - WEBKIT_PARAM_READABLE)); - - g_object_class_install_property(objectClass, PROP_TITLE, - g_param_spec_string("title", - _("Title"), - _("The document title of the frame"), - 0, - WEBKIT_PARAM_READABLE)); - - g_object_class_install_property(objectClass, PROP_URI, - g_param_spec_string("uri", - _("URI"), - _("The current URI of the contents displayed by the frame"), - 0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebFrame:load-status: - * - * Determines the current status of the load. - * - * Since: 1.1.7 - */ - g_object_class_install_property(objectClass, PROP_LOAD_STATUS, - g_param_spec_enum("load-status", - "Load Status", - "Determines the current status of the load", - WEBKIT_TYPE_LOAD_STATUS, - WEBKIT_LOAD_FINISHED, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebFrame:horizontal-scrollbar-policy: - * - * Determines the current policy for the horizontal scrollbar of - * the frame. For the main frame, make sure to set the same policy - * on the scrollable widget containing the #WebKitWebView, unless - * you know what you are doing. - * - * Since: 1.1.14 - */ - g_object_class_install_property(objectClass, PROP_HORIZONTAL_SCROLLBAR_POLICY, - g_param_spec_enum("horizontal-scrollbar-policy", - _("Horizontal Scrollbar Policy"), - _("Determines the current policy for the horizontal scrollbar of the frame."), - GTK_TYPE_POLICY_TYPE, - GTK_POLICY_AUTOMATIC, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebFrame:vertical-scrollbar-policy: - * - * Determines the current policy for the vertical scrollbar of - * the frame. For the main frame, make sure to set the same policy - * on the scrollable widget containing the #WebKitWebView, unless - * you know what you are doing. - * - * Since: 1.1.14 - */ - g_object_class_install_property(objectClass, PROP_VERTICAL_SCROLLBAR_POLICY, - g_param_spec_enum("vertical-scrollbar-policy", - _("Vertical Scrollbar Policy"), - _("Determines the current policy for the vertical scrollbar of the frame."), - GTK_TYPE_POLICY_TYPE, - GTK_POLICY_AUTOMATIC, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(frameClass, sizeof(WebKitWebFramePrivate)); -} - -static void webkit_web_frame_init(WebKitWebFrame* frame) -{ - WebKitWebFramePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(frame, WEBKIT_TYPE_WEB_FRAME, WebKitWebFramePrivate); - - // TODO: Move constructor code here. - frame->priv = priv; -} - - -/** - * webkit_web_frame_new: - * @web_view: the controlling #WebKitWebView - * - * Creates a new #WebKitWebFrame initialized with a controlling #WebKitWebView. - * - * Returns: a new #WebKitWebFrame - * - * Deprecated: 1.0.2: #WebKitWebFrame can only be used to inspect existing - * frames. - **/ -WebKitWebFrame* webkit_web_frame_new(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - - WebKitWebFrame* frame = WEBKIT_WEB_FRAME(g_object_new(WEBKIT_TYPE_WEB_FRAME, NULL)); - WebKitWebFramePrivate* priv = frame->priv; - WebKitWebViewPrivate* viewPriv = webView->priv; - - priv->webView = webView; - WebKit::FrameLoaderClient* client = new WebKit::FrameLoaderClient(frame); - priv->coreFrame = Frame::create(viewPriv->corePage, 0, client).get(); - priv->coreFrame->init(); - - priv->origin = 0; - - return frame; -} - -/** - * webkit_web_frame_get_title: - * @frame: a #WebKitWebFrame - * - * Returns the @frame's document title - * - * Return value: the title of @frame - */ -const gchar* webkit_web_frame_get_title(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - WebKitWebFramePrivate* priv = frame->priv; - return priv->title; -} - -/** - * webkit_web_frame_get_uri: - * @frame: a #WebKitWebFrame - * - * Returns the current URI of the contents displayed by the @frame - * - * Return value: the URI of @frame - */ -const gchar* webkit_web_frame_get_uri(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - WebKitWebFramePrivate* priv = frame->priv; - return priv->uri; -} - -/** - * webkit_web_frame_get_web_view: - * @frame: a #WebKitWebFrame - * - * Returns the #WebKitWebView that manages this #WebKitWebFrame. - * - * The #WebKitWebView returned manages the entire hierarchy of #WebKitWebFrame - * objects that contains @frame. - * - * Return value: (transfer none): the #WebKitWebView that manages @frame - */ -WebKitWebView* webkit_web_frame_get_web_view(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - WebKitWebFramePrivate* priv = frame->priv; - return priv->webView; -} - -/** - * webkit_web_frame_get_name: - * @frame: a #WebKitWebFrame - * - * Returns the @frame's name - * - * Return value: the name of @frame. This method will return NULL if - * the #WebKitWebFrame is invalid or an empty string if it is not backed - * by a live WebCore frame. - */ -const gchar* webkit_web_frame_get_name(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - Frame* coreFrame = core(frame); - if (!coreFrame) - return ""; - - WebKitWebFramePrivate* priv = frame->priv; - CString frameName = coreFrame->tree()->uniqueName().string().utf8(); - if (!g_strcmp0(frameName.data(), priv->name)) - return priv->name; - - g_free(priv->name); - priv->name = g_strdup(frameName.data()); - return priv->name; -} - -/** - * webkit_web_frame_get_parent: - * @frame: a #WebKitWebFrame - * - * Returns the @frame's parent frame, or %NULL if it has none. - * - * Return value: (transfer none): the parent #WebKitWebFrame or %NULL in case there is none - */ -WebKitWebFrame* webkit_web_frame_get_parent(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - return kit(coreFrame->tree()->parent()); -} - -/** - * webkit_web_frame_load_uri: - * @frame: a #WebKitWebFrame - * @uri: an URI string - * - * Requests loading of the specified URI string. - * - * Since: 1.1.1 - */ -void webkit_web_frame_load_uri(WebKitWebFrame* frame, const gchar* uri) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - g_return_if_fail(uri); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - coreFrame->loader()->load(FrameLoadRequest(coreFrame, ResourceRequest(KURL(KURL(), String::fromUTF8(uri))))); -} - -static void webkit_web_frame_load_data(WebKitWebFrame* frame, const gchar* content, const gchar* mimeType, const gchar* encoding, const gchar* baseURL, const gchar* unreachableURL) -{ - Frame* coreFrame = core(frame); - ASSERT(coreFrame); - - KURL baseKURL = baseURL ? KURL(KURL(), String::fromUTF8(baseURL)) : blankURL(); - - ResourceRequest request(baseKURL); - - RefPtr<SharedBuffer> sharedBuffer = SharedBuffer::create(content, strlen(content)); - SubstituteData substituteData(sharedBuffer.release(), - mimeType ? String::fromUTF8(mimeType) : String::fromUTF8("text/html"), - encoding ? String::fromUTF8(encoding) : String::fromUTF8("UTF-8"), - KURL(KURL(), String::fromUTF8(unreachableURL)), - KURL(KURL(), String::fromUTF8(unreachableURL))); - - coreFrame->loader()->load(FrameLoadRequest(coreFrame, request, substituteData)); -} - -/** - * webkit_web_frame_load_string: - * @frame: a #WebKitWebFrame - * @content: an URI string - * @mime_type: the MIME type, or %NULL - * @encoding: the encoding, or %NULL - * @base_uri: the base URI for relative locations - * - * Requests loading of the given @content with the specified @mime_type, - * @encoding and @base_uri. - * - * If @mime_type is %NULL, "text/html" is assumed. - * - * If @encoding is %NULL, "UTF-8" is assumed. - * - * Since: 1.1.1 - */ -void webkit_web_frame_load_string(WebKitWebFrame* frame, const gchar* content, const gchar* contentMimeType, const gchar* contentEncoding, const gchar* baseUri) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - g_return_if_fail(content); - - webkit_web_frame_load_data(frame, content, contentMimeType, contentEncoding, baseUri, 0); -} - -/** - * webkit_web_frame_load_alternate_string: - * @frame: a #WebKitWebFrame - * @content: the alternate content to display as the main page of the @frame - * @base_url: the base URI for relative locations - * @unreachable_url: the URL for the alternate page content - * - * Request loading of an alternate content for a URL that is unreachable. - * Using this method will preserve the back-forward list. The URI passed in - * @base_url has to be an absolute URI. - * - * Since: 1.1.6 - */ -void webkit_web_frame_load_alternate_string(WebKitWebFrame* frame, const gchar* content, const gchar* baseURL, const gchar* unreachableURL) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - g_return_if_fail(content); - - webkit_web_frame_load_data(frame, content, 0, 0, baseURL, unreachableURL); -} - -/** - * webkit_web_frame_load_request: - * @frame: a #WebKitWebFrame - * @request: a #WebKitNetworkRequest - * - * Connects to a given URI by initiating an asynchronous client request. - * - * Creates a provisional data source that will transition to a committed data - * source once any data has been received. Use webkit_web_frame_stop_loading() to - * stop the load. This function is typically invoked on the main frame. - */ -void webkit_web_frame_load_request(WebKitWebFrame* frame, WebKitNetworkRequest* request) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - g_return_if_fail(WEBKIT_IS_NETWORK_REQUEST(request)); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - coreFrame->loader()->load(FrameLoadRequest(coreFrame->document()->securityOrigin(), core(request))); -} - -/** - * webkit_web_frame_stop_loading: - * @frame: a #WebKitWebFrame - * - * Stops any pending loads on @frame's data source, and those of its children. - */ -void webkit_web_frame_stop_loading(WebKitWebFrame* frame) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - coreFrame->loader()->stopAllLoaders(); -} - -/** - * webkit_web_frame_reload: - * @frame: a #WebKitWebFrame - * - * Reloads the initial request. - */ -void webkit_web_frame_reload(WebKitWebFrame* frame) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return; - - coreFrame->loader()->reload(); -} - -/** - * webkit_web_frame_find_frame: - * @frame: a #WebKitWebFrame - * @name: the name of the frame to be found - * - * For pre-defined names, returns @frame if @name is "_self" or "_current", - * returns @frame's parent frame if @name is "_parent", and returns the main - * frame if @name is "_top". Also returns @frame if it is the main frame and - * @name is either "_parent" or "_top". For other names, this function returns - * the first frame that matches @name. This function searches @frame and its - * descendents first, then @frame's parent and its children moving up the - * hierarchy until a match is found. If no match is found in @frame's - * hierarchy, this function will search for a matching frame in other main - * frame hierarchies. Returns %NULL if no match is found. - * - * Return value: (transfer none): the found #WebKitWebFrame or %NULL in case none is found - */ -WebKitWebFrame* webkit_web_frame_find_frame(WebKitWebFrame* frame, const gchar* name) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - g_return_val_if_fail(name, 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - String nameString = String::fromUTF8(name); - return kit(coreFrame->tree()->find(AtomicString(nameString))); -} - -/** - * webkit_web_frame_get_global_context: - * @frame: a #WebKitWebFrame - * - * Gets the global JavaScript execution context. Use this function to bridge - * between the WebKit and JavaScriptCore APIs. - * - * Return value: (transfer none): the global JavaScript context #JSGlobalContextRef - */ -JSGlobalContextRef webkit_web_frame_get_global_context(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - return toGlobalRef(coreFrame->script()->globalObject(mainThreadNormalWorld())->globalExec()); -} - -/** - * webkit_web_frame_get_data_source: - * @frame: a #WebKitWebFrame - * - * Returns the committed data source. - * - * Return value: (transfer none): the committed #WebKitWebDataSource. - * - * Since: 1.1.14 - */ -WebKitWebDataSource* webkit_web_frame_get_data_source(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - return webkit_web_frame_get_data_source_from_core_loader(coreFrame->loader()->documentLoader()); -} - -/** - * webkit_web_frame_get_provisional_data_source: - * @frame: a #WebKitWebFrame - * - * You use the webkit_web_frame_load_request method to initiate a request that - * creates a provisional data source. The provisional data source will - * transition to a committed data source once any data has been received. Use - * webkit_web_frame_get_data_source to get the committed data source. - * - * Return value: (transfer none): the provisional #WebKitWebDataSource or %NULL if a load - * request is not in progress. - * - * Since: 1.1.14 - */ -WebKitWebDataSource* webkit_web_frame_get_provisional_data_source(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - return webkit_web_frame_get_data_source_from_core_loader(coreFrame->loader()->provisionalDocumentLoader()); -} - -static void begin_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) -{ - PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); - - float width = gtk_print_context_get_width(context); - float height = gtk_print_context_get_height(context); - FloatRect printRect = FloatRect(0, 0, width, height); - - printContext->begin(width); - - // TODO: Margin adjustments and header/footer support - float headerHeight = 0; - float footerHeight = 0; - float pageHeight; // height of the page adjusted by margins - printContext->computePageRects(printRect, headerHeight, footerHeight, 1.0, pageHeight); - gtk_print_operation_set_n_pages(op, printContext->pageCount()); -} - -static void draw_page_callback(GtkPrintOperation*, GtkPrintContext* gtkPrintContext, gint pageNumber, PrintContext* corePrintContext) -{ - if (pageNumber >= static_cast<gint>(corePrintContext->pageCount())) - return; - - cairo_t* cr = gtk_print_context_get_cairo_context(gtkPrintContext); - float pageWidth = gtk_print_context_get_width(gtkPrintContext); - - PlatformContextCairo platformContext(cr); - GraphicsContext graphicsContext(&platformContext); - corePrintContext->spoolPage(graphicsContext, pageNumber, pageWidth); -} - -static void end_print_callback(GtkPrintOperation* op, GtkPrintContext* context, gpointer user_data) -{ - PrintContext* printContext = reinterpret_cast<PrintContext*>(user_data); - printContext->end(); -} - -/** - * webkit_web_frame_print_full: - * @frame: a #WebKitWebFrame to be printed - * @operation: the #GtkPrintOperation to be carried - * @action: the #GtkPrintOperationAction to be performed - * @error: #GError for error return - * - * Prints the given #WebKitWebFrame, using the given #GtkPrintOperation - * and #GtkPrintOperationAction. This function wraps a call to - * gtk_print_operation_run() for printing the contents of the - * #WebKitWebFrame. - * - * Returns: The #GtkPrintOperationResult specifying the result of this operation. - * - * Since: 1.1.5 - */ -GtkPrintOperationResult webkit_web_frame_print_full(WebKitWebFrame* frame, GtkPrintOperation* operation, GtkPrintOperationAction action, GError** error) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), GTK_PRINT_OPERATION_RESULT_ERROR); - g_return_val_if_fail(GTK_IS_PRINT_OPERATION(operation), GTK_PRINT_OPERATION_RESULT_ERROR); - - GtkWidget* topLevel = gtk_widget_get_toplevel(GTK_WIDGET(webkit_web_frame_get_web_view(frame))); - if (!widgetIsOnscreenToplevelWindow(topLevel)) - topLevel = 0; - - Frame* coreFrame = core(frame); - if (!coreFrame) - return GTK_PRINT_OPERATION_RESULT_ERROR; - - PrintContext printContext(coreFrame); - - g_signal_connect(operation, "begin-print", G_CALLBACK(begin_print_callback), &printContext); - g_signal_connect(operation, "draw-page", G_CALLBACK(draw_page_callback), &printContext); - g_signal_connect(operation, "end-print", G_CALLBACK(end_print_callback), &printContext); - - return gtk_print_operation_run(operation, action, GTK_WINDOW(topLevel), error); -} - -/** - * webkit_web_frame_print: - * @frame: a #WebKitWebFrame - * - * Prints the given #WebKitWebFrame, by presenting a print dialog to the - * user. If you need more control over the printing process, see - * webkit_web_frame_print_full(). - * - * Since: 1.1.5 - */ -void webkit_web_frame_print(WebKitWebFrame* frame) -{ - g_return_if_fail(WEBKIT_IS_WEB_FRAME(frame)); - - WebKitWebFramePrivate* priv = frame->priv; - GtkPrintOperation* operation = gtk_print_operation_new(); - GError* error = 0; - - webkit_web_frame_print_full(frame, operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, &error); - g_object_unref(operation); - - if (error) { - GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(priv->webView)); - GtkWidget* dialog = gtk_message_dialog_new(widgetIsOnscreenToplevelWindow(window) ? GTK_WINDOW(window) : 0, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "%s", error->message); - - g_error_free(error); - - g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL); - gtk_widget_show(dialog); - } -} - -gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame* frame) -{ - Frame* coreFrame = core(frame); - WebCore::DocumentLoader* docLoader = coreFrame->loader()->documentLoader(); - String mimeType = docLoader->responseMIMEType(); - return g_strdup(mimeType.utf8().data()); -} - -/** - * webkit_web_frame_get_load_status: - * @frame: a #WebKitWebView - * - * Determines the current status of the load. - * - * Returns: The #WebKitLoadStatus specifying the status of the current load. - * - * Since: 1.1.7 - */ -WebKitLoadStatus webkit_web_frame_get_load_status(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), WEBKIT_LOAD_FINISHED); - - WebKitWebFramePrivate* priv = frame->priv; - return priv->loadStatus; -} - -GtkPolicyType webkit_web_frame_get_horizontal_scrollbar_policy(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), GTK_POLICY_AUTOMATIC); - - Frame* coreFrame = core(frame); - FrameView* view = coreFrame->view(); - if (!view) - return GTK_POLICY_AUTOMATIC; - - ScrollbarMode hMode = view->horizontalScrollbarMode(); - - if (hMode == ScrollbarAlwaysOn) - return GTK_POLICY_ALWAYS; - - if (hMode == ScrollbarAlwaysOff) - return GTK_POLICY_NEVER; - - return GTK_POLICY_AUTOMATIC; -} - -GtkPolicyType webkit_web_frame_get_vertical_scrollbar_policy(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), GTK_POLICY_AUTOMATIC); - - Frame* coreFrame = core(frame); - FrameView* view = coreFrame->view(); - if (!view) - return GTK_POLICY_AUTOMATIC; - - ScrollbarMode vMode = view->verticalScrollbarMode(); - - if (vMode == ScrollbarAlwaysOn) - return GTK_POLICY_ALWAYS; - - if (vMode == ScrollbarAlwaysOff) - return GTK_POLICY_NEVER; - - return GTK_POLICY_AUTOMATIC; -} - -/** - * webkit_web_frame_get_security_origin: - * @frame: a #WebKitWebFrame - * - * Returns the @frame's security origin. - * - * Return value: (transfer none): the security origin of @frame - * - * Since: 1.1.14 - */ -WebKitSecurityOrigin* webkit_web_frame_get_security_origin(WebKitWebFrame* frame) -{ - WebKitWebFramePrivate* priv = frame->priv; - if (!priv->coreFrame || !priv->coreFrame->document() || !priv->coreFrame->document()->securityOrigin()) - return 0; - - if (priv->origin && priv->origin->priv->coreOrigin.get() == priv->coreFrame->document()->securityOrigin()) - return priv->origin; - - if (priv->origin) - g_object_unref(priv->origin); - - priv->origin = kit(priv->coreFrame->document()->securityOrigin()); - return priv->origin; -} - -/** - * webkit_web_frame_get_network_response: - * @frame: a #WebKitWebFrame - * - * Returns a #WebKitNetworkResponse object representing the response - * that was given to the request for the given frame, or NULL if the - * frame was not created by a load. You must unref the object when you - * are done with it. - * - * Return value: (transfer full): a #WebKitNetworkResponse object - * - * Since: 1.1.18 - */ -WebKitNetworkResponse* webkit_web_frame_get_network_response(WebKitWebFrame* frame) -{ - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - WebCore::DocumentLoader* loader = coreFrame->loader()->activeDocumentLoader(); - if (!loader) - return 0; - - return kitNew(loader->response()); -} - -/** - * webkit_web_frame_replace_selection: - * @frame: a #WebKitWeFrame - * @text: the text to insert in place of the current selection - * - * Replaces the current selection in @frame, if any, with @text. - * - * Since: 1.5.1 - **/ -void webkit_web_frame_replace_selection(WebKitWebFrame* frame, const char* text) -{ - Frame* coreFrame = core(frame); - bool selectReplacement = false; - bool smartReplace = true; - coreFrame->editor().replaceSelectionWithText(text, selectReplacement, smartReplace); -} - -/** - * webkit_web_frame_get_range_for_word_around_caret: - * @frame: a #WebKitWebFrame - * - * Returns a #WebKitDOMRange for the word where the caret is currently - * positioned. - * - * Returns: (transfer none): a #WebKitDOMRange spanning the word where the caret - * currently is positioned. If there is no caret %NULL will be - * returned. - * - * Since: 1.5.1. - **/ -WebKitDOMRange* webkit_web_frame_get_range_for_word_around_caret(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - FrameSelection* selection = coreFrame->selection(); - if (selection->isNone() || selection->isRange()) - return 0; - VisibleSelection visibleSelection(selection->selection().visibleStart()); - visibleSelection.expandUsingGranularity(WordGranularity); - - return kit(visibleSelection.firstRange().get()); -} - -/** - * webkit_web_frame_get_dom_document: - * @frame: a #WebKitWebFrame - * - * Returns: (transfer none): the #WebKitDOMDocument currently loaded - * in the @frame or %NULL if no document is loaded - * - * Since: 1.10 - **/ -WebKitDOMDocument* webkit_web_frame_get_dom_document(WebKitWebFrame* frame) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_FRAME(frame), 0); - - Frame* coreFrame = core(frame); - if (!coreFrame) - return 0; - - Document* doc = coreFrame->document(); - if (!doc) - return 0; - - return kit(doc); -} - -namespace WebKit { - -WebKitWebView* getViewFromFrame(WebKitWebFrame* frame) -{ - WebKitWebFramePrivate* priv = frame->priv; - return priv->webView; -} - -WebCore::Frame* core(WebKitWebFrame* frame) -{ - if (!frame) - return 0; - - WebKitWebFramePrivate* priv = frame->priv; - return priv ? priv->coreFrame : 0; -} - -WebKitWebFrame* kit(WebCore::Frame* coreFrame) -{ - if (!coreFrame) - return 0; - - ASSERT(coreFrame->loader()); - WebKit::FrameLoaderClient* client = static_cast<WebKit::FrameLoaderClient*>(coreFrame->loader()->client()); - return client ? client->webFrame() : 0; -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebframe.h b/Source/WebKit/gtk/webkit/webkitwebframe.h deleted file mode 100644 index 404b29fdb..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebframe.h +++ /dev/null @@ -1,189 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2007 Alp Toker <alp@atoker.com> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebframe_h -#define webkitwebframe_h - -#include <glib-object.h> -#include <gtk/gtk.h> -#include <JavaScriptCore/JSBase.h> -#include <webkit/webkitdefines.h> -#include <webkit/webkitnetworkrequest.h> -#include <webkit/webkitwebdatasource.h> -#include <webkitdom/webkitdom.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_FRAME (webkit_web_frame_get_type()) -#define WEBKIT_WEB_FRAME(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_FRAME, WebKitWebFrame)) -#define WEBKIT_WEB_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_FRAME, WebKitWebFrameClass)) -#define WEBKIT_IS_WEB_FRAME(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_FRAME)) -#define WEBKIT_IS_WEB_FRAME_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_FRAME)) -#define WEBKIT_WEB_FRAME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_FRAME, WebKitWebFrameClass)) - -typedef struct _WebKitWebFramePrivate WebKitWebFramePrivate; - -struct _WebKitWebFrame { - GObject parent_instance; - - /*< private >*/ - WebKitWebFramePrivate *priv; -}; - -struct _WebKitWebFrameClass { - GObjectClass parent_class; - - /*< public >*/ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); - void (*_webkit_reserved5) (void); - void (*_webkit_reserved6) (void); -}; - -/** - * WebKitLoadStatus: - * @WEBKIT_LOAD_PROVISIONAL: No data has been received yet, empty - * structures have been allocated to perform the load; the load may - * still fail for transport issues such as not being able to resolve a - * name, or connect to a port. - * @WEBKIT_LOAD_COMMITTED: The first data chunk has arrived, meaning - * that the necessary transport requirements are stabilished, and the - * load is being performed. - * @WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT: The first layout with - * actual visible content happened; one or more layouts may have - * happened before that caused nothing to be visible on the screen, - * because the data available at the time was not significant enough. - * @WEBKIT_LOAD_FINISHED: This state means that everything that was - * required to display the page has been loaded. - * @WEBKIT_LOAD_FAILED: This state means that some error occurred - * during the page load that prevented it from being completed. You - * can connect to the #WebKitWebView::load-error signal if you want to - * know precisely what kind of error occurred. - */ -typedef enum { - WEBKIT_LOAD_PROVISIONAL, - WEBKIT_LOAD_COMMITTED, - WEBKIT_LOAD_FINISHED, - WEBKIT_LOAD_FIRST_VISUALLY_NON_EMPTY_LAYOUT, - WEBKIT_LOAD_FAILED -} WebKitLoadStatus; - -WEBKIT_API GType -webkit_web_frame_get_type (void); - -#ifndef WEBKIT_DISABLE_DEPRECATED -WEBKIT_API WebKitWebFrame * -webkit_web_frame_new (WebKitWebView *web_view); -#endif - -WEBKIT_API WebKitWebView * -webkit_web_frame_get_web_view (WebKitWebFrame *frame); - -WEBKIT_API const gchar * -webkit_web_frame_get_name (WebKitWebFrame *frame); - -WEBKIT_API const gchar * -webkit_web_frame_get_title (WebKitWebFrame *frame); - -WEBKIT_API const gchar * -webkit_web_frame_get_uri (WebKitWebFrame *frame); - -WEBKIT_API WebKitWebFrame* -webkit_web_frame_get_parent (WebKitWebFrame *frame); - -WEBKIT_API void -webkit_web_frame_load_uri (WebKitWebFrame *frame, - const gchar *uri); - -WEBKIT_API void -webkit_web_frame_load_string (WebKitWebFrame *frame, - const gchar *content, - const gchar *mime_type, - const gchar *encoding, - const gchar *base_uri); - -WEBKIT_API void -webkit_web_frame_load_alternate_string (WebKitWebFrame *frame, - const gchar *content, - const gchar *base_url, - const gchar *unreachable_url); - -WEBKIT_API void -webkit_web_frame_load_request (WebKitWebFrame *frame, - WebKitNetworkRequest *request); - -WEBKIT_API void -webkit_web_frame_stop_loading (WebKitWebFrame *frame); - -WEBKIT_API void -webkit_web_frame_reload (WebKitWebFrame *frame); - -WEBKIT_API WebKitWebFrame * -webkit_web_frame_find_frame (WebKitWebFrame *frame, - const gchar *name); - -WEBKIT_API JSGlobalContextRef -webkit_web_frame_get_global_context (WebKitWebFrame *frame); - -WEBKIT_API GtkPrintOperationResult -webkit_web_frame_print_full (WebKitWebFrame *frame, - GtkPrintOperation *operation, - GtkPrintOperationAction action, - GError **error); - -WEBKIT_API void -webkit_web_frame_print (WebKitWebFrame *frame); - -WEBKIT_API WebKitLoadStatus -webkit_web_frame_get_load_status (WebKitWebFrame *frame); - -WEBKIT_API GtkPolicyType -webkit_web_frame_get_horizontal_scrollbar_policy (WebKitWebFrame *frame); - -WEBKIT_API GtkPolicyType -webkit_web_frame_get_vertical_scrollbar_policy (WebKitWebFrame *frame); - -WEBKIT_API WebKitWebDataSource * -webkit_web_frame_get_data_source (WebKitWebFrame *frame); - -WEBKIT_API WebKitWebDataSource * -webkit_web_frame_get_provisional_data_source (WebKitWebFrame *frame); - -WEBKIT_API WebKitSecurityOrigin* -webkit_web_frame_get_security_origin (WebKitWebFrame *frame); - -WEBKIT_API WebKitNetworkResponse* -webkit_web_frame_get_network_response (WebKitWebFrame *frame); - -WEBKIT_API void -webkit_web_frame_replace_selection (WebKitWebFrame *frame, - const char *text); - -WEBKIT_API WebKitDOMRange* -webkit_web_frame_get_range_for_word_around_caret (WebKitWebFrame *frame); - -WEBKIT_API WebKitDOMDocument* -webkit_web_frame_get_dom_document (WebKitWebFrame *frame); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebframeprivate.h b/Source/WebKit/gtk/webkit/webkitwebframeprivate.h deleted file mode 100644 index 80210d8ba..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebframeprivate.h +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebframeprivate_h -#define webkitwebframeprivate_h - -#include "Frame.h" -#include "webkitwebframe.h" - -namespace WebKit { - -WebKitWebView* getViewFromFrame(WebKitWebFrame*); - -WebCore::Frame* core(WebKitWebFrame*); -WebKitWebFrame* kit(WebCore::Frame*); - -} - -extern "C" { - -typedef struct _WebKitWebFramePrivate WebKitWebFramePrivate; -struct _WebKitWebFramePrivate { - WebCore::Frame* coreFrame; - WebKitWebView* webView; - - gchar* name; - gchar* title; - gchar* uri; - WebKitLoadStatus loadStatus; - WebKitSecurityOrigin* origin; -}; - -void webkit_web_frame_core_frame_gone(WebKitWebFrame*); - -// FIXME: move this functionality into 'WebKitWebDataSource'? -WEBKIT_API gchar* webkit_web_frame_get_response_mime_type(WebKitWebFrame*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp b/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp deleted file mode 100644 index 5b7db2223..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.cpp +++ /dev/null @@ -1,530 +0,0 @@ -/* - * Copyright (C) 2008, 2009 Jan Michael C. Alonzo - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebhistoryitem.h" - -#include "HistoryItem.h" -#include "KURL.h" -#include "webkitglobalsprivate.h" -#include "webkitwebhistoryitemprivate.h" -#include <glib.h> -#include <glib/gi18n-lib.h> -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> - -/** - * SECTION:webkitwebhistoryitem - * @short_description: One item of the #WebKitWebBackForwardList and or global history - * @see_also: #WebKitWebBackForwardList - * - * A history item consists out of a title and a uri. It can be part of the - * #WebKitWebBackForwardList and the global history. The global history is used - * for coloring the links of visited sites. #WebKitWebHistoryItem's constructed with - * #webkit_web_history_item_new and #webkit_web_history_item_new_with_data are - * automatically added to the global history. - * - * <informalexample><programlisting> - * /<!-- -->* Inject a visited page into the global history *<!-- -->/ - * webkit_web_history_item_new_with_data("http://www.gnome.org/", "GNOME: The Free Software Desktop Project"); - * webkit_web_history_item_new_with_data("http://www.webkit.org/", "The WebKit Open Source Project"); - * </programlisting></informalexample> - * - */ - -using namespace WebKit; - -struct _WebKitWebHistoryItemPrivate { - WebCore::HistoryItem* historyItem; - - WTF::CString title; - WTF::CString alternateTitle; - WTF::CString uri; - WTF::CString originalUri; - - gboolean disposed; -}; - -enum { - PROP_0, - - PROP_TITLE, - PROP_ALTERNATE_TITLE, - PROP_URI, - PROP_ORIGINAL_URI, - PROP_LAST_VISITED_TIME -}; - -G_DEFINE_TYPE(WebKitWebHistoryItem, webkit_web_history_item, G_TYPE_OBJECT); - -static void webkit_web_history_item_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); - -static void webkit_web_history_item_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); - -GHashTable* webkit_history_items() -{ - static GHashTable* historyItems = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, g_object_unref); - return historyItems; -} - -void webkit_history_item_add(WebKitWebHistoryItem* webHistoryItem, WebCore::HistoryItem* historyItem) -{ - g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem)); - - GHashTable* table = webkit_history_items(); - g_hash_table_insert(table, historyItem, webHistoryItem); -} - -static void webkit_web_history_item_dispose(GObject* object) -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(object); - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - - if (!priv->disposed) { - WebCore::HistoryItem* item = core(webHistoryItem); - item->deref(); - priv->disposed = true; - } - - G_OBJECT_CLASS(webkit_web_history_item_parent_class)->dispose(object); -} - -static void webkit_web_history_item_finalize(GObject* object) -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(object); - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - - priv->title = WTF::CString(); - priv->alternateTitle = WTF::CString(); - priv->uri = WTF::CString(); - priv->originalUri = WTF::CString(); - - G_OBJECT_CLASS(webkit_web_history_item_parent_class)->finalize(object); -} - -static void webkit_web_history_item_class_init(WebKitWebHistoryItemClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - - gobject_class->dispose = webkit_web_history_item_dispose; - gobject_class->finalize = webkit_web_history_item_finalize; - gobject_class->set_property = webkit_web_history_item_set_property; - gobject_class->get_property = webkit_web_history_item_get_property; - - webkitInit(); - - /** - * WebKitWebHistoryItem:title: - * - * The title of the history item. - * - * Since: 1.0.2 - */ - g_object_class_install_property(gobject_class, - PROP_TITLE, - g_param_spec_string( - "title", - _("Title"), - _("The title of the history item"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebHistoryItem:alternate-title: - * - * The alternate title of the history item. - * - * Since: 1.0.2 - */ - g_object_class_install_property(gobject_class, - PROP_ALTERNATE_TITLE, - g_param_spec_string( - "alternate-title", - _("Alternate Title"), - _("The alternate title of the history item"), - NULL, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebHistoryItem:uri: - * - * The URI of the history item. - * - * Since: 1.0.2 - */ - g_object_class_install_property(gobject_class, - PROP_URI, - g_param_spec_string( - "uri", - _("URI"), - _("The URI of the history item"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebHistoryItem:original-uri: - * - * The original URI of the history item. - * - * Since: 1.0.2 - */ - g_object_class_install_property(gobject_class, - PROP_ORIGINAL_URI, - g_param_spec_string( - "original-uri", - _("Original URI"), - _("The original URI of the history item"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebHistoryItem:last-visited-time: - * - * The time at which the history item was last visited. - * - * Since: 1.0.2 - */ - g_object_class_install_property(gobject_class, - PROP_LAST_VISITED_TIME, - g_param_spec_double( - "last-visited-time", - _("Last visited Time"), - _("The time at which the history item was last visited"), - 0, G_MAXDOUBLE, 0, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(gobject_class, sizeof(WebKitWebHistoryItemPrivate)); -} - -static void webkit_web_history_item_init(WebKitWebHistoryItem* webHistoryItem) -{ - webHistoryItem->priv = G_TYPE_INSTANCE_GET_PRIVATE(webHistoryItem, WEBKIT_TYPE_WEB_HISTORY_ITEM, WebKitWebHistoryItemPrivate); -} - -static void webkit_web_history_item_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(object); - - switch(prop_id) { - case PROP_ALTERNATE_TITLE: - webkit_web_history_item_set_alternate_title(webHistoryItem, g_value_get_string(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_history_item_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(object); - - switch (prop_id) { - case PROP_TITLE: - g_value_set_string(value, webkit_web_history_item_get_title(webHistoryItem)); - break; - case PROP_ALTERNATE_TITLE: - g_value_set_string(value, webkit_web_history_item_get_alternate_title(webHistoryItem)); - break; - case PROP_URI: - g_value_set_string(value, webkit_web_history_item_get_uri(webHistoryItem)); - break; - case PROP_ORIGINAL_URI: - g_value_set_string(value, webkit_web_history_item_get_original_uri(webHistoryItem)); - break; - case PROP_LAST_VISITED_TIME: - g_value_set_double(value, webkit_web_history_item_get_last_visited_time(webHistoryItem)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/* Helper function to create a new WebHistoryItem instance when needed */ -WebKitWebHistoryItem* webkit_web_history_item_new_with_core_item(PassRefPtr<WebCore::HistoryItem> historyItem) -{ - return kit(historyItem); -} - - -/** - * webkit_web_history_item_new: - * - * Creates a new #WebKitWebHistoryItem instance - * - * Return value: the new #WebKitWebHistoryItem - */ -WebKitWebHistoryItem* webkit_web_history_item_new() -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL)); - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - - RefPtr<WebCore::HistoryItem> item = WebCore::HistoryItem::create(); - priv->historyItem = item.release().leakRef(); - webkit_history_item_add(webHistoryItem, priv->historyItem); - - return webHistoryItem; -} - -/** - * webkit_web_history_item_new_with_data: - * @uri: the URI of the page - * @title: the title of the page - * - * Creates a new #WebKitWebHistoryItem with the given URI and title - * - * Return value: the new #WebKitWebHistoryItem - */ -WebKitWebHistoryItem* webkit_web_history_item_new_with_data(const gchar* uri, const gchar* title) -{ - WebKitWebHistoryItem* webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL)); - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - - WebCore::KURL historyUri(WebCore::KURL(), uri); - WTF::String historyTitle = WTF::String::fromUTF8(title); - RefPtr<WebCore::HistoryItem> item = WebCore::HistoryItem::create(historyUri, historyTitle, 0); - priv->historyItem = item.release().leakRef(); - webkit_history_item_add(webHistoryItem, priv->historyItem); - - return webHistoryItem; -} - -/** - * webkit_web_history_item_get_title: - * @web_history_item: a #WebKitWebHistoryItem - * - * Returns: the page title of @web_history_item - */ -const gchar* webkit_web_history_item_get_title(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(webHistoryItem); - - g_return_val_if_fail(item, NULL); - - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - priv->title = item->title().utf8(); - - return priv->title.data(); -} - -/** - * webkit_web_history_item_get_alternate_title: - * @web_history_item: a #WebKitWebHistoryItem - * - * Returns the alternate title of @web_history_item - * - * Return value: the alternate title of @web_history_item - */ -const gchar* webkit_web_history_item_get_alternate_title(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(webHistoryItem); - - g_return_val_if_fail(item, NULL); - - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - priv->alternateTitle = item->alternateTitle().utf8(); - - return priv->alternateTitle.data(); -} - -/** - * webkit_web_history_item_set_alternate_title: - * @web_history_item: a #WebKitWebHistoryItem - * @title: the alternate title for @this history item - * - * Sets an alternate title for @web_history_item - */ -void webkit_web_history_item_set_alternate_title(WebKitWebHistoryItem* webHistoryItem, const gchar* title) -{ - g_return_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem)); - g_return_if_fail(title); - - WebCore::HistoryItem* item = core(webHistoryItem); - - item->setAlternateTitle(WTF::String::fromUTF8(title)); - g_object_notify(G_OBJECT(webHistoryItem), "alternate-title"); -} - -/** - * webkit_web_history_item_get_uri: - * @web_history_item: a #WebKitWebHistoryItem - * - * Returns the URI of @this - * - * Return value: the URI of @web_history_item - */ -const gchar* webkit_web_history_item_get_uri(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(WEBKIT_WEB_HISTORY_ITEM(webHistoryItem)); - - g_return_val_if_fail(item, NULL); - - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - priv->uri = item->urlString().utf8(); - - return priv->uri.data(); -} - -/** - * webkit_web_history_item_get_original_uri: - * @web_history_item: a #WebKitWebHistoryItem - * - * Returns the original URI of @web_history_item. - * - * Return value: the original URI of @web_history_item - */ -const gchar* webkit_web_history_item_get_original_uri(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(WEBKIT_WEB_HISTORY_ITEM(webHistoryItem)); - - g_return_val_if_fail(item, NULL); - - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - priv->originalUri = item->originalURLString().utf8(); - - return webHistoryItem->priv->originalUri.data(); -} - -/** - * webkit_web_history_item_get_last_visisted_time : - * @web_history_item: a #WebKitWebHistoryItem - * - * Returns the last time @web_history_item was visited - * - * Return value: the time in seconds this @web_history_item was last visited - */ -gdouble webkit_web_history_item_get_last_visited_time(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), 0); - - WebCore::HistoryItem* item = core(WEBKIT_WEB_HISTORY_ITEM(webHistoryItem)); - - g_return_val_if_fail(item, 0); - - return item->lastVisitedTime(); -} - -/** - * webkit_web_history_item_copy: - * @web_history_item: a #WebKitWebHistoryItem - * - * Makes a copy of the item for use with other WebView objects. - * - * Since: 1.1.18 - * - * Return value: (transfer full): the new #WebKitWebHistoryItem. - */ -WebKitWebHistoryItem* webkit_web_history_item_copy(WebKitWebHistoryItem* self) -{ - WebKitWebHistoryItemPrivate* selfPrivate = self->priv; - - WebKitWebHistoryItem* item = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, 0)); - WebKitWebHistoryItemPrivate* priv = item->priv; - - priv->title = selfPrivate->title; - priv->alternateTitle = selfPrivate->alternateTitle; - priv->uri = selfPrivate->uri; - priv->originalUri = selfPrivate->originalUri; - - priv->historyItem = selfPrivate->historyItem->copy().leakRef(); - - return item; -} - -/* private methods */ - -gchar* webkit_web_history_item_get_target(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(webHistoryItem); - - g_return_val_if_fail(item, NULL); - - WTF::CString t = item->target().utf8(); - return g_strdup(t.data()); -} - -gboolean webkit_web_history_item_is_target_item(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), false); - - WebCore::HistoryItem* item = core(webHistoryItem); - - g_return_val_if_fail(item, false); - - return item->isTargetItem(); -} - -GList* webkit_web_history_item_get_children(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - WebCore::HistoryItem* item = core(webHistoryItem); - - g_return_val_if_fail(item, NULL); - - const WebCore::HistoryItemVector& children = item->children(); - if (!children.size()) - return NULL; - - unsigned size = children.size(); - GList* kids = NULL; - for (unsigned i = 0; i < size; ++i) - kids = g_list_prepend(kids, kit(children[i].get())); - - return g_list_reverse(kids); -} - -WebCore::HistoryItem* WebKit::core(WebKitWebHistoryItem* webHistoryItem) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(webHistoryItem), NULL); - - return webHistoryItem->priv->historyItem; -} - -WebKitWebHistoryItem* WebKit::kit(PassRefPtr<WebCore::HistoryItem> historyItem) -{ - g_return_val_if_fail(historyItem, NULL); - - RefPtr<WebCore::HistoryItem> item = historyItem; - GHashTable* table = webkit_history_items(); - WebKitWebHistoryItem* webHistoryItem = (WebKitWebHistoryItem*) g_hash_table_lookup(table, item.get()); - - if (!webHistoryItem) { - webHistoryItem = WEBKIT_WEB_HISTORY_ITEM(g_object_new(WEBKIT_TYPE_WEB_HISTORY_ITEM, NULL)); - WebKitWebHistoryItemPrivate* priv = webHistoryItem->priv; - - priv->historyItem = item.release().leakRef(); - webkit_history_item_add(webHistoryItem, priv->historyItem); - } - - return webHistoryItem; -} - diff --git a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.h b/Source/WebKit/gtk/webkit/webkitwebhistoryitem.h deleted file mode 100644 index 42c699e47..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebhistoryitem.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (C) 2008 Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebhistoryitem_h -#define webkitwebhistoryitem_h - -#include <glib.h> -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_HISTORY_ITEM (webkit_web_history_item_get_type()) -#define WEBKIT_WEB_HISTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_HISTORY_ITEM, WebKitWebHistoryItem)) -#define WEBKIT_WEB_HISTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_HISTORY_ITEM, WebKitWebHistoryItemClass)) -#define WEBKIT_IS_WEB_HISTORY_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_HISTORY_ITEM)) -#define WEBKIT_IS_WEB_HISTORY_ITEM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_HISTORY_ITEM)) -#define WEBKIT_WEB_HISTORY_ITEM_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_HISTORY_ITEM, WebKitWebHistoryItemClass)) - -typedef struct _WebKitWebHistoryItemPrivate WebKitWebHistoryItemPrivate; - -struct _WebKitWebHistoryItem { - GObject parent_instance; - - /*< private >*/ - WebKitWebHistoryItemPrivate *priv; -}; - -struct _WebKitWebHistoryItemClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_history_item_get_type (void); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_history_item_new (void); - -WEBKIT_API WebKitWebHistoryItem * -webkit_web_history_item_new_with_data (const gchar *uri, - const gchar *title); - -WEBKIT_API const gchar * -webkit_web_history_item_get_title (WebKitWebHistoryItem *web_history_item); - -WEBKIT_API const gchar * -webkit_web_history_item_get_alternate_title (WebKitWebHistoryItem *web_history_item); - -WEBKIT_API void -webkit_web_history_item_set_alternate_title (WebKitWebHistoryItem *web_history_item, - const gchar *title); - -WEBKIT_API const gchar * -webkit_web_history_item_get_uri (WebKitWebHistoryItem *web_history_item); - -WEBKIT_API const gchar * -webkit_web_history_item_get_original_uri (WebKitWebHistoryItem *web_history_item); - -WEBKIT_API gdouble -webkit_web_history_item_get_last_visited_time (WebKitWebHistoryItem *web_history_item); - -WEBKIT_API WebKitWebHistoryItem* -webkit_web_history_item_copy (WebKitWebHistoryItem *web_history_item); - -G_END_DECLS - -#endif /* webkitwebhistoryitem_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebhistoryitemprivate.h b/Source/WebKit/gtk/webkit/webkitwebhistoryitemprivate.h deleted file mode 100644 index 0bbe9074c..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebhistoryitemprivate.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebhistoryitemprivate_h -#define webkitwebhistoryitemprivate_h - -#include "HistoryItem.h" - -namespace WebKit { - -WebCore::HistoryItem* core(WebKitWebHistoryItem*); -WebKitWebHistoryItem* kit(PassRefPtr<WebCore::HistoryItem>); - -} - -extern "C" { - -GHashTable* webkit_history_items(); - -WebKitWebHistoryItem* webkit_web_history_item_new_with_core_item(PassRefPtr<WebCore::HistoryItem>); - -WEBKIT_API gchar* webkit_web_history_item_get_target(WebKitWebHistoryItem*); - -WEBKIT_API gboolean webkit_web_history_item_is_target_item(WebKitWebHistoryItem*); - -WEBKIT_API GList* webkit_web_history_item_get_children(WebKitWebHistoryItem*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebinspector.cpp b/Source/WebKit/gtk/webkit/webkitwebinspector.cpp deleted file mode 100644 index 400de0499..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebinspector.cpp +++ /dev/null @@ -1,575 +0,0 @@ -/* - * 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 - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebinspector.h" - -#include "DumpRenderTreeSupportGtk.h" -#include "FocusController.h" -#include "Frame.h" -#include "HitTestRequest.h" -#include "HitTestResult.h" -#include "InspectorClientGtk.h" -#include "InspectorController.h" -#include "InspectorInstrumentation.h" -#include "IntPoint.h" -#include "Page.h" -#include "RenderLayer.h" -#include "RenderView.h" -#include "WebKitDOMNodePrivate.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitwebinspectorprivate.h" -#include <glib/gi18n-lib.h> - -/** - * SECTION:webkitwebinspector - * @short_description: Access to the WebKit Inspector - * - * The WebKit Inspector is a graphical tool to inspect and change - * the content of a #WebKitWebView. It also includes an interactive - * JavaScriptDebugger. Using this class one can get a GtkWidget which - * can be embedded into an application to show the inspector. - * - * The inspector is available when the #WebKitWebSettings of the - * #WebKitWebView has set the #WebKitWebSettings:enable-developer-extras - * to true otherwise no inspector is available. - * - * <informalexample><programlisting> - * /<!-- -->* Enable the developer extras *<!-- -->/ - * WebKitWebSettings *setting = webkit_web_view_get_settings (WEBKIT_WEB_VIEW(my_webview)); - * g_object_set (G_OBJECT(settings), "enable-developer-extras", TRUE, NULL); - * - * /<!-- -->* load some data or reload to be able to inspect the page*<!-- -->/ - * webkit_web_view_open (WEBKIT_WEB_VIEW(my_webview), "http://www.gnome.org"); - * - * /<!-- -->* Embed the inspector somewhere *<!-- -->/ - * WebKitWebInspector *inspector = webkit_web_view_get_inspector (WEBKIT_WEB_VIEW(my_webview)); - * g_signal_connect (G_OBJECT (inspector), "inspect-web-view", G_CALLBACK(create_gtk_window_around_it), NULL); - * g_signal_connect (G_OBJECT (inspector), "show-window", G_CALLBACK(show_inpector_window), NULL)); - * g_signal_connect (G_OBJECT (inspector), "notify::inspected-uri", G_CALLBACK(inspected_uri_changed_do_stuff), NULL); - * </programlisting></informalexample> - */ - -using namespace WebKit; -using namespace WebCore; - -enum { - INSPECT_WEB_VIEW, - SHOW_WINDOW, - ATTACH_WINDOW, - DETACH_WINDOW, - CLOSE_WINDOW, - FINISHED, - LAST_SIGNAL -}; - -static guint webkit_web_inspector_signals[LAST_SIGNAL] = { 0, }; - -enum { - PROP_0, - - PROP_WEB_VIEW, - PROP_INSPECTED_URI, - PROP_JAVASCRIPT_PROFILING_ENABLED, - PROP_TIMELINE_PROFILING_ENABLED -}; - -G_DEFINE_TYPE(WebKitWebInspector, webkit_web_inspector, G_TYPE_OBJECT) - -struct _WebKitWebInspectorPrivate { - WebCore::Page* page; - WebKitWebView* inspector_view; - gchar* inspected_uri; -}; - -static void webkit_web_inspector_finalize(GObject* object); - -static void webkit_web_inspector_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); - -static void webkit_web_inspector_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); - -static gboolean webkit_inspect_web_view_request_handled(GSignalInvocationHint* ihint, GValue* returnAccu, const GValue* handlerReturn, gpointer dummy) -{ - gboolean continueEmission = TRUE; - gpointer newWebView = g_value_get_object(handlerReturn); - g_value_set_object(returnAccu, newWebView); - - if (newWebView) - continueEmission = FALSE; - - return continueEmission; -} - -static void webkit_web_inspector_class_init(WebKitWebInspectorClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - gobject_class->finalize = webkit_web_inspector_finalize; - gobject_class->set_property = webkit_web_inspector_set_property; - gobject_class->get_property = webkit_web_inspector_get_property; - - /** - * WebKitWebInspector::inspect-web-view: - * @web_inspector: the object on which the signal is emitted - * @web_view: the #WebKitWebView which will be inspected - * - * Emitted when the user activates the 'inspect' context menu item - * to inspect a web view. The application which is interested in - * the inspector should create a window, or otherwise add the - * #WebKitWebView it creates to an existing window. - * - * You don't need to handle the reference count of the - * #WebKitWebView instance you create; the widget to which you add - * it will do that. - * - * Return value: (transfer none): a newly allocated #WebKitWebView or %NULL - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[INSPECT_WEB_VIEW] = g_signal_new("inspect-web-view", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - webkit_inspect_web_view_request_handled, - NULL, - webkit_marshal_OBJECT__OBJECT, - WEBKIT_TYPE_WEB_VIEW , 1, - WEBKIT_TYPE_WEB_VIEW); - - /** - * WebKitWebInspector::show-window: - * @web_inspector: the object on which the signal is emitted - * @return: %TRUE if the signal has been handled - * - * Emitted when the inspector window should be displayed. Notice - * that the window must have been created already by handling - * #WebKitWebInspector::inspect-web-view. - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[SHOW_WINDOW] = g_signal_new("show-window", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN , 0); - - /** - * WebKitWebInspector::attach-window: - * @web_inspector: the object on which the signal is emitted - * @return: %TRUE if the signal has been handled - * - * Emitted when the inspector should appear at the same window as - * the #WebKitWebView being inspected. - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[ATTACH_WINDOW] = g_signal_new("attach-window", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN , 0); - - /** - * WebKitWebInspector::detach-window: - * @web_inspector: the object on which the signal is emitted - * @return: %TRUE if the signal has been handled - * - * Emitted when the inspector should appear in a separate window. - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[DETACH_WINDOW] = g_signal_new("detach-window", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN , 0); - - /** - * WebKitWebInspector::close-window: - * @web_inspector: the object on which the signal is emitted - * @return: %TRUE if the signal has been handled - * - * Emitted when the inspector window should be closed. You can - * destroy the window or hide it so that it can be displayed again - * by handling #WebKitWebInspector::show-window later on. - * - * Notice that the inspected #WebKitWebView may no longer exist - * when this signal is emitted. - * - * Notice, too, that if you decide to destroy the window, - * #WebKitWebInspector::inspect-web-view will be emmited again, when the user - * inspects an element. - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[CLOSE_WINDOW] = g_signal_new("close-window", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN , 0); - - /** - * WebKitWebInspector::finished: - * @web_inspector: the object on which the signal is emitted - * - * Emitted when the inspection is done. You should release your - * references on the inspector at this time. The inspected - * #WebKitWebView may no longer exist when this signal is emitted. - * - * Since: 1.0.3 - */ - webkit_web_inspector_signals[FINISHED] = g_signal_new("finished", - G_TYPE_FROM_CLASS(klass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE , 0); - - /* - * properties - */ - - /** - * WebKitWebInspector:web-view: - * - * The Web View that renders the Web Inspector itself. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, PROP_WEB_VIEW, - g_param_spec_object("web-view", - _("Web View"), - _("The Web View that renders the Web Inspector itself"), - WEBKIT_TYPE_WEB_VIEW, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebInspector:inspected-uri: - * - * The URI that is currently being inspected. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, PROP_INSPECTED_URI, - g_param_spec_string("inspected-uri", - _("Inspected URI"), - _("The URI that is currently being inspected"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebInspector:javascript-profiling-enabled: - * - * This is enabling JavaScript profiling in the Inspector. This means - * that Console.profiles will return the profiles. - * - * Since: 1.1.1 - */ - g_object_class_install_property(gobject_class, - PROP_JAVASCRIPT_PROFILING_ENABLED, - g_param_spec_boolean( - "javascript-profiling-enabled", - _("Enable JavaScript profiling"), - _("Profile the executed JavaScript."), - FALSE, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebInspector:timeline-profiling-enabled: - * - * This is enabling Timeline profiling in the Inspector. - * - * Since: 1.1.17 - */ - g_object_class_install_property(gobject_class, - PROP_TIMELINE_PROFILING_ENABLED, - g_param_spec_boolean( - "timeline-profiling-enabled", - _("Enable Timeline profiling"), - _("Profile the WebCore instrumentation."), - FALSE, - WEBKIT_PARAM_READWRITE)); - - g_type_class_add_private(klass, sizeof(WebKitWebInspectorPrivate)); -} - -static void webkit_web_inspector_init(WebKitWebInspector* web_inspector) -{ - web_inspector->priv = G_TYPE_INSTANCE_GET_PRIVATE(web_inspector, WEBKIT_TYPE_WEB_INSPECTOR, WebKitWebInspectorPrivate); -} - -static void webkit_web_inspector_finalize(GObject* object) -{ - WebKitWebInspector* web_inspector = WEBKIT_WEB_INSPECTOR(object); - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - if (priv->inspector_view) - g_object_unref(priv->inspector_view); - - if (priv->inspected_uri) - g_free(priv->inspected_uri); - - G_OBJECT_CLASS(webkit_web_inspector_parent_class)->finalize(object); -} - -static void webkit_web_inspector_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) -{ - WebKitWebInspector* web_inspector = WEBKIT_WEB_INSPECTOR(object); - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - switch(prop_id) { - case PROP_JAVASCRIPT_PROFILING_ENABLED: { -#if ENABLE(JAVASCRIPT_DEBUGGER) - bool enabled = g_value_get_boolean(value); - priv->page->inspectorController()->setProfilerEnabled(enabled); -#else - g_message("PROP_JAVASCRIPT_PROFILING_ENABLED is not work because of the javascript debugger is disabled\n"); -#endif - break; - } - case PROP_TIMELINE_PROFILING_ENABLED: { - g_message("PROP_TIMELINE_PROFILING_ENABLED has been deprecated\n"); - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_inspector_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebInspector* web_inspector = WEBKIT_WEB_INSPECTOR(object); - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - switch (prop_id) { - case PROP_WEB_VIEW: - g_value_set_object(value, priv->inspector_view); - break; - case PROP_INSPECTED_URI: - g_value_set_string(value, priv->inspected_uri); - break; - case PROP_JAVASCRIPT_PROFILING_ENABLED: -#if ENABLE(JAVASCRIPT_DEBUGGER) - g_value_set_boolean(value, priv->page->inspectorController()->profilerEnabled()); -#else - g_message("PROP_JAVASCRIPT_PROFILING_ENABLED is not work because of the javascript debugger is disabled\n"); -#endif - break; - case PROP_TIMELINE_PROFILING_ENABLED: - g_message("PROP_TIMELINE_PROFILING_ENABLED has been deprecated\n"); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -// internal use only -void webkit_web_inspector_set_web_view(WebKitWebInspector *web_inspector, WebKitWebView *web_view) -{ - g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(web_inspector)); - g_return_if_fail(WEBKIT_IS_WEB_VIEW(web_view)); - - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - if (priv->inspector_view) - g_object_unref(priv->inspector_view); - - g_object_ref(web_view); - priv->inspector_view = web_view; -} - -/** - * webkit_web_inspector_get_web_view: - * @web_inspector: a #WebKitWebInspector - * - * Obtains the #WebKitWebView that is used to render the - * inspector. The #WebKitWebView instance is created by the - * application, by handling the #WebKitWebInspector::inspect-web-view signal. This means - * that this method may return %NULL if the user hasn't inspected - * anything. - * - * Returns: (transfer none): the #WebKitWebView instance that is used - * to render the inspector or %NULL if it is not yet created. - * - * Since: 1.0.3 - **/ -WebKitWebView* webkit_web_inspector_get_web_view(WebKitWebInspector *web_inspector) -{ - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - return priv->inspector_view; -} - -// internal use only -void webkit_web_inspector_set_inspected_uri(WebKitWebInspector* web_inspector, const gchar* inspected_uri) -{ - g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(web_inspector)); - - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - g_free(priv->inspected_uri); - priv->inspected_uri = g_strdup(inspected_uri); -} - -/** - * webkit_web_inspector_get_inspected_uri: - * @web_inspector: a #WebKitWebInspector - * - * Obtains the URI that is currently being inspected. - * - * Returns: a pointer to the URI as an internally allocated string; it - * should not be freed, modified or stored. - * - * Since: 1.0.3 - **/ -const gchar* webkit_web_inspector_get_inspected_uri(WebKitWebInspector *web_inspector) -{ - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - return priv->inspected_uri; -} - -void -webkit_web_inspector_set_inspector_client(WebKitWebInspector* web_inspector, WebCore::Page* page) -{ - WebKitWebInspectorPrivate* priv = web_inspector->priv; - - priv->page = page; -} - -/** - * webkit_web_inspector_show: - * @web_inspector: the #WebKitWebInspector that will be shown - * - * Causes the Web Inspector to be shown. - * - * Since: 1.1.17 - */ -void webkit_web_inspector_show(WebKitWebInspector* webInspector) -{ - g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); - - WebKitWebInspectorPrivate* priv = webInspector->priv; - - Frame* frame = priv->page->focusController()->focusedOrMainFrame(); - FrameView* view = frame->view(); - - if (!view) - return; - - priv->page->inspectorController()->show(); -} - -/** - * webkit_web_inspector_inspect_node: - * @web_inspector: the #WebKitWebInspector that will do the inspection - * @node: the #WebKitDOMNode to inspect - * - * Causes the Web Inspector to inspect the given node. - * - * Since: 1.3.7 - */ -void webkit_web_inspector_inspect_node(WebKitWebInspector* webInspector, WebKitDOMNode* node) -{ - g_return_if_fail(WEBKIT_IS_WEB_INSPECTOR(webInspector)); - g_return_if_fail(WEBKIT_DOM_IS_NODE(node)); - - webInspector->priv->page->inspectorController()->inspect(core(node)); -} - -/** - * 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 | HitTestRequest::DisallowShadowContent); - 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/Source/WebKit/gtk/webkit/webkitwebinspector.h b/Source/WebKit/gtk/webkit/webkitwebinspector.h deleted file mode 100644 index 9af4aac88..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebinspector.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (C) 2008 Gustavo Noronha Silva - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebinspector_h -#define webkitwebinspector_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> -#include <webkitdom/webkitdom.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_INSPECTOR (webkit_web_inspector_get_type()) -#define WEBKIT_WEB_INSPECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_INSPECTOR, WebKitWebInspector)) -#define WEBKIT_WEB_INSPECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_INSPECTOR, WebKitWebInspectorClass)) -#define WEBKIT_IS_WEB_INSPECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_INSPECTOR)) -#define WEBKIT_IS_WEB_INSPECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_INSPECTOR)) -#define WEBKIT_WEB_INSPECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_INSPECTOR, WebKitWebInspectorClass)) - -typedef struct _WebKitWebInspectorPrivate WebKitWebInspectorPrivate; - -struct _WebKitWebInspector { - GObject parent_instance; - - WebKitWebInspectorPrivate* priv; -}; - -struct _WebKitWebInspectorClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_web_inspector_get_type (void); - -WEBKIT_API WebKitWebView* -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_node (WebKitWebInspector *web_inspector, - WebKitDOMNode *node); - -WEBKIT_API void -webkit_web_inspector_inspect_coordinates (WebKitWebInspector *web_inspector, - gdouble x, - gdouble y); - -WEBKIT_API void -webkit_web_inspector_show (WebKitWebInspector *web_inspector); - -WEBKIT_API void -webkit_web_inspector_close (WebKitWebInspector *web_inspector); -G_END_DECLS - -#endif /* webkitwebinspector_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebinspectorprivate.h b/Source/WebKit/gtk/webkit/webkitwebinspectorprivate.h deleted file mode 100644 index 64ba09a5d..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebinspectorprivate.h +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebinspectorprivate_h -#define webkitwebinspectorprivate_h - -extern "C" { - -void webkit_web_inspector_set_inspector_client(WebKitWebInspector*, WebCore::Page*); - -void webkit_web_inspector_set_web_view(WebKitWebInspector*, WebKitWebView*); - -void webkit_web_inspector_set_inspected_uri(WebKitWebInspector*, const gchar*); - -WEBKIT_API void webkit_web_inspector_execute_script(WebKitWebInspector*, long callId, const gchar* script); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebnavigationaction.cpp b/Source/WebKit/gtk/webkit/webkitwebnavigationaction.cpp deleted file mode 100644 index c78e754ae..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebnavigationaction.cpp +++ /dev/null @@ -1,375 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebnavigationaction.h" - -#include "FrameLoaderTypes.h" -#include "webkitenumtypes.h" -#include "webkitglobalsprivate.h" -#include <glib/gi18n-lib.h> -#include <string.h> -#include <wtf/Assertions.h> - -static void webkit_web_navigation_action_set_target_frame(WebKitWebNavigationAction* navigationAction, const gchar* targetFrame); - -/** - * SECTION:webkitwebnavigationaction - * @short_description: Object used to report details of navigation actions - * - * #WebKitWebNavigationAction is used in signals to provide details about - * what led the navigation to happen. This includes, for instance, if the user - * clicked a link to start that navigation, and what mouse button was used. - */ - -struct _WebKitWebNavigationActionPrivate { - WebKitWebNavigationReason reason; - gchar* originalUri; - gint button; - gint modifier_state; - gchar* targetFrame; -}; - -enum { - PROP_0, - - PROP_REASON, - PROP_ORIGINAL_URI, - PROP_BUTTON, - PROP_MODIFIER_STATE, - PROP_TARGET_FRAME -}; - -G_DEFINE_TYPE(WebKitWebNavigationAction, webkit_web_navigation_action, G_TYPE_OBJECT) - - -static void webkit_web_navigation_action_get_property(GObject* object, guint propertyId, GValue* value, GParamSpec* pspec) -{ - WebKitWebNavigationAction* navigationAction = WEBKIT_WEB_NAVIGATION_ACTION(object); - - switch(propertyId) { - case PROP_REASON: - g_value_set_enum(value, webkit_web_navigation_action_get_reason(navigationAction)); - break; - case PROP_ORIGINAL_URI: - g_value_set_string(value, webkit_web_navigation_action_get_original_uri(navigationAction)); - break; - case PROP_BUTTON: - g_value_set_int(value, webkit_web_navigation_action_get_button(navigationAction)); - break; - case PROP_MODIFIER_STATE: - g_value_set_int(value, webkit_web_navigation_action_get_modifier_state(navigationAction)); - break; - case PROP_TARGET_FRAME: - g_value_set_string(value, webkit_web_navigation_action_get_target_frame(navigationAction)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); - break; - } -} - -static void webkit_web_navigation_action_set_property(GObject* object, guint propertyId, const GValue* value, GParamSpec* pspec) -{ - WebKitWebNavigationAction* navigationAction = WEBKIT_WEB_NAVIGATION_ACTION(object); - WebKitWebNavigationActionPrivate* priv = navigationAction->priv; - - switch(propertyId) { - case PROP_REASON: - webkit_web_navigation_action_set_reason(navigationAction, (WebKitWebNavigationReason)g_value_get_enum(value)); - break; - case PROP_ORIGINAL_URI: - webkit_web_navigation_action_set_original_uri(navigationAction, g_value_get_string(value)); - break; - case PROP_BUTTON: - priv->button = g_value_get_int(value); - break; - case PROP_MODIFIER_STATE: - priv->modifier_state = g_value_get_int(value); - break; - case PROP_TARGET_FRAME: - webkit_web_navigation_action_set_target_frame(navigationAction, g_value_get_string(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, propertyId, pspec); - break; - } -} - -static void webkit_web_navigation_action_init(WebKitWebNavigationAction* navigationAction) -{ - navigationAction->priv = G_TYPE_INSTANCE_GET_PRIVATE(navigationAction, WEBKIT_TYPE_WEB_NAVIGATION_ACTION, WebKitWebNavigationActionPrivate); -} - -static void webkit_web_navigation_action_finalize(GObject* obj) -{ - WebKitWebNavigationAction* navigationAction = WEBKIT_WEB_NAVIGATION_ACTION(obj); - WebKitWebNavigationActionPrivate* priv = navigationAction->priv; - - g_free(priv->originalUri); - g_free(priv->targetFrame); - - G_OBJECT_CLASS(webkit_web_navigation_action_parent_class)->finalize(obj); -} - -static void webkit_web_navigation_action_class_init(WebKitWebNavigationActionClass* requestClass) -{ - GObjectClass* objectClass = G_OBJECT_CLASS(requestClass); - - objectClass->get_property = webkit_web_navigation_action_get_property; - objectClass->set_property = webkit_web_navigation_action_set_property; - objectClass->finalize = webkit_web_navigation_action_finalize; - - /** - * WebKitWebNavigationAction:reason: - * - * The reason why this navigation is occuring. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_REASON, - g_param_spec_enum("reason", - _("Reason"), - _("The reason why this navigation is occurring"), - WEBKIT_TYPE_WEB_NAVIGATION_REASON, - WEBKIT_WEB_NAVIGATION_REASON_OTHER, - (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT))); - - /** - * WebKitWebNavigationAction:original-uri: - * - * The URI that was requested as the target for the navigation. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_ORIGINAL_URI, - g_param_spec_string("original-uri", - _("Original URI"), - _("The URI that was requested as the target for the navigation"), - "", - (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT))); - /** - * WebKitWebNavigationAction:button: - * - * The GTK+ identifier for the mouse button used to click. Notice that GTK+ button values - * are 1, 2 and 3 for left, middle and right buttons, so they are DOM button values +1. If the action was not - * initiated by a mouse click the value will be -1. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_BUTTON, - g_param_spec_int("button", - _("Button"), - _("The button used to click"), - -1, - G_MAXINT, - -1, - (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitWebNavigationAction:modifier-state: - * - * The state of the modifier keys when the action was requested. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_MODIFIER_STATE, - g_param_spec_int("modifier-state", - _("Modifier state"), - _("A bitmask representing the state of the modifier keys"), - 0, - G_MAXINT, - 0, - (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - /** - * WebKitWebNavigationAction:target-frame: - * - * The target frame for the navigation. - * - * Since: 1.1.13 - */ - g_object_class_install_property(objectClass, PROP_TARGET_FRAME, - g_param_spec_string("target-frame", - _("Target frame"), - _("The target frame for the navigation"), - NULL, - (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY))); - - - - g_type_class_add_private(requestClass, sizeof(WebKitWebNavigationActionPrivate)); -} - -/** - * webkit_web_navigation_action_get_reason: - * @navigationAction: a #WebKitWebNavigationAction - * - * Returns the reason why WebKit is requesting a navigation. - * - * Return value: a #WebKitWebNavigationReason - * - * Since: 1.0.3 - */ -WebKitWebNavigationReason webkit_web_navigation_action_get_reason(WebKitWebNavigationAction* navigationAction) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), WEBKIT_WEB_NAVIGATION_REASON_OTHER); - - return navigationAction->priv->reason; -} - -/** - * webkit_web_navigation_action_set_reason: - * @navigationAction: a #WebKitWebNavigationAction - * @reason: a #WebKitWebNavigationReason - * - * Sets the reason why WebKit is requesting a navigation. - * - * Since: 1.0.3 - */ -void webkit_web_navigation_action_set_reason(WebKitWebNavigationAction* navigationAction, WebKitWebNavigationReason reason) -{ - g_return_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction)); - - if (navigationAction->priv->reason == reason) - return; - - navigationAction->priv->reason = reason; - g_object_notify(G_OBJECT(navigationAction), "reason"); -} - -/** - * webkit_web_navigation_action_get_original_uri: - * @navigationAction: a #WebKitWebNavigationAction - * - * Returns the URI that was originally requested. This may differ from the - * navigation target, for instance because of a redirect. - * - * Return value: the originally requested URI - * - * Since: 1.0.3 - */ -const gchar* webkit_web_navigation_action_get_original_uri(WebKitWebNavigationAction* navigationAction) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), NULL); - - return navigationAction->priv->originalUri; -} - -/** - * webkit_web_navigation_action_set_original_uri: - * @navigationAction: a #WebKitWebNavigationAction - * @originalUri: a URI - * - * Sets the URI that was originally requested. This may differ from the - * navigation target, for instance because of a redirect. - * - * Since: 1.0.3 - */ -void webkit_web_navigation_action_set_original_uri(WebKitWebNavigationAction* navigationAction, const gchar* originalUri) -{ - g_return_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction)); - g_return_if_fail(originalUri); - - if (navigationAction->priv->originalUri && - (!strcmp(navigationAction->priv->originalUri, originalUri))) - return; - - g_free(navigationAction->priv->originalUri); - navigationAction->priv->originalUri = g_strdup(originalUri); - g_object_notify(G_OBJECT(navigationAction), "original-uri"); -} - -/** - * webkit_web_navigation_action_get_button: - * @navigationAction: a #WebKitWebNavigationAction - * - * The GTK+ identifier for the mouse button used to click. Notice that GTK+ button values - * are 1, 2 and 3 for left, middle and right buttons, so they are DOM button values +1. If the action was not - * initiated by a mouse click the value will be -1. - * - * Return value: the mouse button used to click - * - * Since: 1.0.3 - */ -gint webkit_web_navigation_action_get_button(WebKitWebNavigationAction* navigationAction) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), -1); - - return navigationAction->priv->button; -} - -/** - * webkit_web_navigation_action_get_modifier_state: - * @navigationAction: a #WebKitWebNavigationAction - * - * Returns a bitmask with the the state of the modifier keys. - * - * Return value: a bitmask with the state of the modifier keys - * - * Since: 1.0.3 - */ -gint webkit_web_navigation_action_get_modifier_state(WebKitWebNavigationAction* navigationAction) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), 0); - - return navigationAction->priv->modifier_state; -} - -/** - * webkit_web_navigation_action_get_target_frame: - * @navigationAction: a #WebKitWebNavigationAction - * - * Returns the target frame of the action. - * - * Return value: the target frame of the action or NULL - * if there is no target. - * - * Since: 1.1.13 - */ -const gchar* webkit_web_navigation_action_get_target_frame(WebKitWebNavigationAction* navigationAction) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_NAVIGATION_ACTION(navigationAction), NULL); - - return navigationAction->priv->targetFrame; -} - -static void webkit_web_navigation_action_set_target_frame(WebKitWebNavigationAction* navigationAction, const gchar* targetFrame) -{ - if (!g_strcmp0(navigationAction->priv->targetFrame, targetFrame)) - return; - - g_free(navigationAction->priv->targetFrame); - navigationAction->priv->targetFrame = g_strdup(targetFrame); - g_object_notify(G_OBJECT(navigationAction), "target-frame"); -} - -namespace WebKit { - -WebKitWebNavigationReason kit(WebCore::NavigationType type) -{ - return (WebKitWebNavigationReason)type; -} - -WebCore::NavigationType core(WebKitWebNavigationReason type) -{ - return static_cast<WebCore::NavigationType>(type); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebnavigationaction.h b/Source/WebKit/gtk/webkit/webkitwebnavigationaction.h deleted file mode 100644 index b317749f2..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebnavigationaction.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebnavigationaction_h -#define webkitwebnavigationaction_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -/** - * WebKitWebNavigationReason: - * @WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED: The navigation was triggered by clicking a link. - * @WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED: The navigation was triggered by submitting a form. - * @WEBKIT_WEB_NAVIGATION_REASON_BACK_FORWARD: The navigation was triggered by navigating forward or backward. - * @WEBKIT_WEB_NAVIGATION_REASON_RELOAD: The navigation was triggered by reloading. - * @WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED: The navigation was triggered by resubmitting a form. - * @WEBKIT_WEB_NAVIGATION_REASON_OTHER: The navigation was triggered by some other action. - * - * Enum values used to denote the various navigation reasons. - */ -typedef enum { - WEBKIT_WEB_NAVIGATION_REASON_LINK_CLICKED, - WEBKIT_WEB_NAVIGATION_REASON_FORM_SUBMITTED, - WEBKIT_WEB_NAVIGATION_REASON_BACK_FORWARD, - WEBKIT_WEB_NAVIGATION_REASON_RELOAD, - WEBKIT_WEB_NAVIGATION_REASON_FORM_RESUBMITTED, - WEBKIT_WEB_NAVIGATION_REASON_OTHER, -} WebKitWebNavigationReason; - -#define WEBKIT_TYPE_WEB_NAVIGATION_ACTION (webkit_web_navigation_action_get_type()) -#define WEBKIT_WEB_NAVIGATION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_NAVIGATION_ACTION, WebKitWebNavigationAction)) -#define WEBKIT_WEB_NAVIGATION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_NAVIGATION_ACTION, WebKitWebNavigationActionClass)) -#define WEBKIT_IS_WEB_NAVIGATION_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_NAVIGATION_ACTION)) -#define WEBKIT_IS_WEB_NAVIGATION_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_NAVIGATION_ACTION)) -#define WEBKIT_WEB_NAVIGATION_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_NAVIGATION_ACTION, WebKitWebNavigationActionClass)) - -typedef struct _WebKitWebNavigationAction WebKitWebNavigationAction; -typedef struct _WebKitWebNavigationActionClass WebKitWebNavigationActionClass; -typedef struct _WebKitWebNavigationActionPrivate WebKitWebNavigationActionPrivate; - -struct _WebKitWebNavigationAction { - GObject parent_instance; - - /*< private >*/ - WebKitWebNavigationActionPrivate* priv; -}; - -struct _WebKitWebNavigationActionClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_navigation_action_get_type(void); - -WEBKIT_API WebKitWebNavigationReason -webkit_web_navigation_action_get_reason(WebKitWebNavigationAction* navigationAction); - -WEBKIT_API void -webkit_web_navigation_action_set_reason(WebKitWebNavigationAction* navigationAction, WebKitWebNavigationReason reason); - -WEBKIT_API const gchar* -webkit_web_navigation_action_get_original_uri(WebKitWebNavigationAction* navigationAction); - -WEBKIT_API void -webkit_web_navigation_action_set_original_uri(WebKitWebNavigationAction* navigationAction, const gchar* originalUri); - -WEBKIT_API gint -webkit_web_navigation_action_get_button(WebKitWebNavigationAction* navigationAction); - -WEBKIT_API gint -webkit_web_navigation_action_get_modifier_state(WebKitWebNavigationAction* navigationAction); - -WEBKIT_API const gchar * -webkit_web_navigation_action_get_target_frame(WebKitWebNavigationAction* navigationAction); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebnavigationactionprivate.h b/Source/WebKit/gtk/webkit/webkitwebnavigationactionprivate.h deleted file mode 100644 index a8bc5ca0c..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebnavigationactionprivate.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebnavigationactionprivate_h -#define webkitnavigationactionprivate_h - -#include <webkit/webkitwebnavigationaction.h> - -namespace WebKit { - -WebKitWebNavigationReason kit(WebCore::NavigationType); -WebCore::NavigationType core(WebKitWebNavigationReason); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebplugin.cpp b/Source/WebKit/gtk/webkit/webkitwebplugin.cpp deleted file mode 100644 index 73b42ee9e..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebplugin.cpp +++ /dev/null @@ -1,286 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * Copyright (C) 2011 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitwebplugin.h" - -#include "PluginPackage.h" -#include "webkitglobalsprivate.h" -#include "webkitwebpluginprivate.h" -#include <glib/gi18n-lib.h> - -/** - * SECTION:webkitwebplugin - * @short_description: Represents a plugin, enabling fine-grained control - * @see_also: #WebKitWebPluginDatabase - * - * This object represents a single plugin, found by WebKitGTK+ while - * scanning the various usual directories. This object can be used to - * get more information about a plugin, and enable/disable it, - * allowing fine-grained control of plugins. The list of available - * plugins can be obtained from the #WebKitWebPluginDatabase object. - */ - -using namespace WebCore; - -enum { - PROP_0, - - PROP_ENABLED -}; - -G_DEFINE_TYPE(WebKitWebPlugin, webkit_web_plugin, G_TYPE_OBJECT) - -static void freeMIMEType(WebKitWebPluginMIMEType* mimeType) -{ - if (mimeType->name) - g_free(mimeType->name); - if (mimeType->description) - g_free(mimeType->description); - if (mimeType->extensions) - g_strfreev(mimeType->extensions); - g_slice_free(WebKitWebPluginMIMEType, mimeType); -} - -static void webkit_web_plugin_finalize(GObject* object) -{ - WebKitWebPlugin* plugin = WEBKIT_WEB_PLUGIN(object); - WebKitWebPluginPrivate* priv = plugin->priv; - - g_slist_foreach(priv->mimeTypes, (GFunc)freeMIMEType, 0); - g_slist_free(priv->mimeTypes); - - delete plugin->priv; - - G_OBJECT_CLASS(webkit_web_plugin_parent_class)->finalize(object); -} - -static void webkit_web_plugin_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* paramSpec) -{ - WebKitWebPlugin* plugin = WEBKIT_WEB_PLUGIN(object); - - switch (prop_id) { - case PROP_ENABLED: - g_value_set_boolean(value, webkit_web_plugin_get_enabled(plugin)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, paramSpec); - } -} - -static void webkit_web_plugin_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* paramSpec) -{ - WebKitWebPlugin* plugin = WEBKIT_WEB_PLUGIN(object); - - switch (prop_id) { - case PROP_ENABLED: - webkit_web_plugin_set_enabled(plugin, g_value_get_boolean(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, paramSpec); - } -} - -static void webkit_web_plugin_class_init(WebKitWebPluginClass* klass) -{ - webkitInit(); - - GObjectClass* gobjectClass = reinterpret_cast<GObjectClass*>(klass); - - gobjectClass->finalize = webkit_web_plugin_finalize; - gobjectClass->get_property = webkit_web_plugin_get_property; - gobjectClass->set_property = webkit_web_plugin_set_property; - - g_object_class_install_property(gobjectClass, - PROP_ENABLED, - g_param_spec_boolean("enabled", - _("Enabled"), - _("Whether the plugin is enabled"), - FALSE, - WEBKIT_PARAM_READWRITE)); -} - -static void webkit_web_plugin_init(WebKitWebPlugin *plugin) -{ - plugin->priv = new WebKitWebPluginPrivate(); - plugin->priv->mimeTypes = 0; -} - -namespace WebKit { -WebKitWebPlugin* kitNew(WebCore::PluginPackage* package) -{ - WebKitWebPlugin* plugin = WEBKIT_WEB_PLUGIN(g_object_new(WEBKIT_TYPE_WEB_PLUGIN, 0)); - - plugin->priv->corePlugin = package; - - return plugin; -} -} - -/** - * webkit_web_plugin_get_name: - * @plugin: a #WebKitWebPlugin - * - * Returns: the name string for @plugin. - * - * Since: 1.3.8 - */ -const char* webkit_web_plugin_get_name(WebKitWebPlugin* plugin) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin), 0); - - WebKitWebPluginPrivate* priv = plugin->priv; - - if (!priv->name.length()) - priv->name = priv->corePlugin->name().utf8(); - - return priv->name.data(); -} - -/** - * webkit_web_plugin_get_description: - * @plugin: a #WebKitWebPlugin - * - * Returns: the description string for @plugin. - * - * Since: 1.3.8 - */ -const char* webkit_web_plugin_get_description(WebKitWebPlugin* plugin) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin), 0); - - WebKitWebPluginPrivate* priv = plugin->priv; - - if (!priv->description.length()) - priv->description = priv->corePlugin->description().utf8(); - - return priv->description.data(); -} - -/** - * webkit_web_plugin_get_path: - * @plugin: a #WebKitWebPlugin - * - * Returns: the absolute path to @plugin in system filename encoding - * or %NULL on failure to convert the filename from UTF-8. - * - * Since: 1.4.0 - */ -const char* webkit_web_plugin_get_path(WebKitWebPlugin* plugin) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin), 0); - - WebKitWebPluginPrivate* priv = plugin->priv; - - if (priv->path) - return priv->path.get(); - - GOwnPtr<GError> error; - priv->path.set(g_filename_from_utf8(priv->corePlugin->path().utf8().data(), -1, 0, 0, &error.outPtr())); - - if (!error) - return priv->path.get(); - - // In the unlikely case the convertion fails, report the error and make sure we free - // any partial convertion that ended up in the variable. - priv->path.clear(); - - g_warning("Failed to convert '%s' to system filename encoding: %s", priv->corePlugin->path().utf8().data(), error->message); - - return 0; -} - - -/** - * webkit_web_plugin_get_mimetypes: (skip) - * @plugin: a #WebKitWebPlugin - * - * Returns all the #WebKitWebPluginMIMEType that @plugin is handling - * at the moment. - * - * Returns: a #GSList of #WebKitWebPluginMIMEType - * - * Since: 1.3.8 - */ -GSList* webkit_web_plugin_get_mimetypes(WebKitWebPlugin* plugin) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin), 0); - - WebKitWebPluginPrivate* priv = plugin->priv; - - if (priv->mimeTypes) - return priv->mimeTypes; - - const MIMEToDescriptionsMap& mimeToDescriptions = priv->corePlugin->mimeToDescriptions(); - MIMEToDescriptionsMap::const_iterator end = mimeToDescriptions.end(); - - for (MIMEToDescriptionsMap::const_iterator it = mimeToDescriptions.begin(); it != end; ++it) { - WebKitWebPluginMIMEType* mimeType = g_slice_new0(WebKitWebPluginMIMEType); - mimeType->name = g_strdup(it->key.utf8().data()); - mimeType->description = g_strdup(it->value.utf8().data()); - - Vector<String> extensions = priv->corePlugin->mimeToExtensions().get(it->key); - mimeType->extensions = static_cast<gchar**>(g_malloc0(sizeof(char*) * (extensions.size() + 1))); - for (unsigned i = 0; i < extensions.size(); i++) - mimeType->extensions[i] = g_strdup(extensions[i].utf8().data()); - - priv->mimeTypes = g_slist_append(priv->mimeTypes, mimeType); - } - - return priv->mimeTypes; -} - -/** - * webkit_web_plugin_set_enabled: - * @plugin: a #WebKitWebPlugin - * @enabled: whether to enable the plugin - * - * Sets the enabled status of the @plugin. - * - * Since: 1.3.8 - */ -void webkit_web_plugin_set_enabled(WebKitWebPlugin* plugin, gboolean enabled) -{ - g_return_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin)); - WebKitWebPluginPrivate* priv = plugin->priv; - - ASSERT(priv->corePlugin); - if (priv->corePlugin->isEnabled() == enabled) - return; - - priv->corePlugin->setEnabled(enabled); - - g_object_notify(G_OBJECT(plugin), "enabled"); -} - -/** - * webkit_web_plugin_get_enabled: - * @plugin: a #WebKitWebPlugin - * - * Returns: %TRUE if the plugin is enabled, %FALSE otherwise - * - * Since: 1.3.8 - */ -gboolean webkit_web_plugin_get_enabled(WebKitWebPlugin* plugin) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN(plugin), FALSE); - - ASSERT(plugin->priv->corePlugin); - return plugin->priv->corePlugin->isEnabled(); -} diff --git a/Source/WebKit/gtk/webkit/webkitwebplugin.h b/Source/WebKit/gtk/webkit/webkitwebplugin.h deleted file mode 100644 index 1d2df4866..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebplugin.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef webkitwebplugin_h -#define webkitwebplugin_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_PLUGIN (webkit_web_plugin_get_type()) -#define WEBKIT_WEB_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_PLUGIN, WebKitWebPlugin)) -#define WEBKIT_WEB_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_PLUGIN, WebKitWebPluginClass)) -#define WEBKIT_IS_WEB_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_PLUGIN)) -#define WEBKIT_IS_WEB_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_PLUGIN)) -#define WEBKIT_WEB_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_PLUGIN, WebKitWebPluginClass)) - -typedef struct _WebKitWebPluginPrivate WebKitWebPluginPrivate; - -/** - * WebKitWebPluginMIMEType: - * @name: the name of the MIME type. - * @description: the description of the MIME type. - * @extensions: a %NULL-terminated array with the extensions - * associated with this MIME type. - * - * A structure representing one of the MIME types associated with a - * plugin. A #GSList of these objects will be returned by - * #webkit_web_plugin_get_mimetypes, use - * #webkit_web_plugin_mime_type_list_free to free it. - * - * Since: 1.3.8 - */ -typedef struct _WebKitWebPluginMIMEType { - char* name; - char* description; - char** extensions; -} WebKitWebPluginMIMEType; - -struct _WebKitWebPluginClass { - GObjectClass parentClass; -}; - -struct _WebKitWebPlugin { - GObject parentInstance; - - WebKitWebPluginPrivate* priv; -}; - -WEBKIT_API GType -webkit_web_plugin_get_type (void) G_GNUC_CONST; - -WEBKIT_API const char* -webkit_web_plugin_get_name (WebKitWebPlugin *plugin); - -WEBKIT_API const char* -webkit_web_plugin_get_description (WebKitWebPlugin *plugin); - -WEBKIT_API const char* -webkit_web_plugin_get_path (WebKitWebPlugin *plugin); - -WEBKIT_API GSList* -webkit_web_plugin_get_mimetypes (WebKitWebPlugin *plugin); - -WEBKIT_API void -webkit_web_plugin_set_enabled (WebKitWebPlugin *plugin, - gboolean enabled); - -WEBKIT_API gboolean -webkit_web_plugin_get_enabled (WebKitWebPlugin *plugin); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp deleted file mode 100644 index 5b9d063f3..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitwebplugindatabase.h" - -#include "PluginDatabase.h" -#include "webkitglobalsprivate.h" -#include "webkitwebplugindatabaseprivate.h" -#include "webkitwebpluginprivate.h" - -/** - * SECTION:webkitwebplugindatabase - * @short_description: Provides information about the plugins the engine knows about - * @see_also: #WebKitWebPlugin - * - * This object allows you to query information about the plugins found - * by the engine while scanning the usual directories. You can then - * use the #WebKitWebPlugin objects to get more information or - * enable/disable individual plugins. - */ - -using namespace WebKit; -using namespace WebCore; - -G_DEFINE_TYPE(WebKitWebPluginDatabase, webkit_web_plugin_database, G_TYPE_OBJECT) - -static void webkit_web_plugin_database_dispose(GObject* object) -{ - G_OBJECT_CLASS(webkit_web_plugin_database_parent_class)->dispose(object); -} - -static void webkit_web_plugin_database_class_init(WebKitWebPluginDatabaseClass* klass) -{ - webkitInit(); - - GObjectClass* gobjectClass = reinterpret_cast<GObjectClass*>(klass); - - gobjectClass->dispose = webkit_web_plugin_database_dispose; - - g_type_class_add_private(klass, sizeof(WebKitWebPluginDatabasePrivate)); -} - -static void webkit_web_plugin_database_init(WebKitWebPluginDatabase* database) -{ - WebKitWebPluginDatabasePrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(database, WEBKIT_TYPE_WEB_PLUGIN_DATABASE, WebKitWebPluginDatabasePrivate); - database->priv = priv; - - priv->coreDatabase = PluginDatabase::installedPlugins(); -} - -/** - * webkit_web_plugin_database_plugins_list_free: - * @list: (element-type WebKitWebPlugin): a #GSList of #WebKitWebPlugin - * - * Frees @list. - * - * Since: 1.3.8 - */ -void webkit_web_plugin_database_plugins_list_free(GSList* list) -{ - if (!list) - return; - - for (GSList* p = list; p; p = p->next) - g_object_unref(p->data); - - g_slist_free(list); -} - -/** - * webkit_web_plugin_database_get_plugins: - * @database: a #WebKitWebPluginDatabase - * - * Returns all #WebKitWebPlugin available in @database. - * The returned list must be freed with webkit_web_plugin_database_plugins_list_free() - * - * Returns: (transfer full) (element-type WebKitWebPlugin): a #GSList of #WebKitWebPlugin - * - * Since: 1.3.8 - */ -GSList* webkit_web_plugin_database_get_plugins(WebKitWebPluginDatabase* database) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN_DATABASE(database), 0); - - GSList* gPlugins = 0; - const Vector<PluginPackage*>& plugins = database->priv->coreDatabase->plugins(); - - for (unsigned int i = 0; i < plugins.size(); ++i) { - PluginPackage* plugin = plugins[i]; - gPlugins = g_slist_append(gPlugins, kitNew(plugin)); - } - - return gPlugins; -} - -/** - * webkit_web_plugin_database_get_plugin_for_mimetype: - * @database: a #WebKitWebPluginDatabase - * @mime_type: a mime type - * - * Returns the #WebKitWebPlugin that is handling @mimeType in the - * @database, or %NULL if there's none doing so. - * - * Returns: (transfer full): a #WebKitWebPlugin - * - * Since: 1.3.8 - */ -WebKitWebPlugin* webkit_web_plugin_database_get_plugin_for_mimetype(WebKitWebPluginDatabase* database, const char* mimeType) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_PLUGIN_DATABASE(database), 0); - g_return_val_if_fail(mimeType, 0); - - return kitNew(database->priv->coreDatabase->pluginForMIMEType(mimeType)); -} - -/** - * webkit_web_plugin_database_refresh: - * @database: a #WebKitWebPluginDatabase - * - * Refreshes @database adding new plugins that are now in use and - * removing those that have been disabled or are otherwise no longer - * available. - * - * Since: 1.3.8 - */ -void webkit_web_plugin_database_refresh(WebKitWebPluginDatabase* database) -{ - g_return_if_fail(WEBKIT_IS_WEB_PLUGIN_DATABASE(database)); - - database->priv->coreDatabase->refresh(); -} - -WebKitWebPluginDatabase* webkit_web_plugin_database_new(void) -{ - return WEBKIT_WEB_PLUGIN_DATABASE(g_object_new(WEBKIT_TYPE_WEB_PLUGIN_DATABASE, 0)); -} diff --git a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.h b/Source/WebKit/gtk/webkit/webkitwebplugindatabase.h deleted file mode 100644 index 75a8a157a..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebplugindatabase.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef webkitwebplugindatabase_h -#define webkitwebplugindatabase_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_PLUGIN_DATABASE (webkit_web_plugin_database_get_type()) -#define WEBKIT_WEB_PLUGIN_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_PLUGIN_DATABASE, WebKitWebPluginDatabase)) -#define WEBKIT_WEB_PLUGIN_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_PLUGIN_DATABASE, WebKitWebPluginDatabaseClass)) -#define WEBKIT_IS_WEB_PLUGIN_DATABASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_PLUGIN_DATABASE)) -#define WEBKIT_IS_WEB_PLUGIN_DATABASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_PLUGIN_DATABASE)) -#define WEBKIT_WEB_PLUGIN_DATABASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_PLUGIN_DATABASE, WebKitWebPluginDatabaseClass)) - -typedef struct _WebKitWebPluginDatabasePrivate WebKitWebPluginDatabasePrivate; - -struct _WebKitWebPluginDatabaseClass { - GObjectClass parentClass; -}; - -struct _WebKitWebPluginDatabase { - GObject parentInstance; - - WebKitWebPluginDatabasePrivate* priv; -}; - -WEBKIT_API GType -webkit_web_plugin_database_get_type (void) G_GNUC_CONST; - -WEBKIT_API void -webkit_web_plugin_database_plugins_list_free (GSList *list); - -WEBKIT_API GSList* -webkit_web_plugin_database_get_plugins (WebKitWebPluginDatabase *database); - -WEBKIT_API WebKitWebPlugin* -webkit_web_plugin_database_get_plugin_for_mimetype (WebKitWebPluginDatabase *database, - const char *mime_type); - -WEBKIT_API void -webkit_web_plugin_database_refresh (WebKitWebPluginDatabase *database); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebplugindatabaseprivate.h b/Source/WebKit/gtk/webkit/webkitwebplugindatabaseprivate.h deleted file mode 100644 index 199aedea1..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebplugindatabaseprivate.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebplugindatabaseprivate_h -#define webkitwebplugindatabaseprivate_h - -#include <glib-object.h> - -namespace WebCore { -class PluginDatabase; -} - -extern "C" { - -typedef struct _WebKitWebPluginDatabasePrivate WebKitWebPluginDatabasePrivate; -struct _WebKitWebPluginDatabasePrivate { - WebCore::PluginDatabase* coreDatabase; -}; - -WebKitWebPluginDatabase* webkit_web_plugin_database_new(); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebpluginprivate.h b/Source/WebKit/gtk/webkit/webkitwebpluginprivate.h deleted file mode 100644 index 507f72eb3..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebpluginprivate.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef webkitwebpluginprivate_h -#define webkitwebpluginprivate_h - -#include "webkitwebplugin.h" -#include <glib-object.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> - -namespace WebCore { -class PluginPackage; -} - -namespace WebKit { -WebKitWebPlugin* kitNew(WebCore::PluginPackage* package); -} - -extern "C" { - -typedef struct _WebKitWebPluginPrivate WebKitWebPluginPrivate; -struct _WebKitWebPluginPrivate { - RefPtr<WebCore::PluginPackage> corePlugin; - CString name; - CString description; - GOwnPtr<char> path; - GSList* mimeTypes; -}; - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp b/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp deleted file mode 100644 index bb29ae159..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebpolicydecision.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebpolicydecision.h" - -#include "FrameLoaderClient.h" -#include "FrameLoaderTypes.h" -#include "webkitwebframeprivate.h" -#include "webkitwebpolicydecisionprivate.h" - -using namespace WebKit; -using namespace WebCore; - -/** - * SECTION:webkitwebpolicydecision - * @short_description: Liason between WebKit and the application regarding asynchronous policy decisions - * - * #WebKitWebPolicyDecision objects are given to the application on - * signal emissions that deal with policy decisions, such as if a new - * window should be opened, or if a given navigation should be - * allowed. The application uses it to tell the engine what to do. - */ - -G_DEFINE_TYPE(WebKitWebPolicyDecision, webkit_web_policy_decision, G_TYPE_OBJECT); - -struct _WebKitWebPolicyDecisionPrivate { - WebKitWebFrame* frame; - FramePolicyFunction framePolicyFunction; - gboolean isCancelled; -}; - -static void webkit_web_policy_decision_class_init(WebKitWebPolicyDecisionClass* decisionClass) -{ - g_type_class_add_private(decisionClass, sizeof(WebKitWebPolicyDecisionPrivate)); -} - -static void webkit_web_policy_decision_init(WebKitWebPolicyDecision* decision) -{ - decision->priv = G_TYPE_INSTANCE_GET_PRIVATE(decision, WEBKIT_TYPE_WEB_POLICY_DECISION, WebKitWebPolicyDecisionPrivate); -} - -WebKitWebPolicyDecision* webkit_web_policy_decision_new(WebKitWebFrame* frame, WebCore::FramePolicyFunction function) -{ - g_return_val_if_fail(frame, NULL); - - WebKitWebPolicyDecision* decision = WEBKIT_WEB_POLICY_DECISION(g_object_new(WEBKIT_TYPE_WEB_POLICY_DECISION, NULL)); - WebKitWebPolicyDecisionPrivate* priv = decision->priv; - - priv->frame = frame; - priv->framePolicyFunction = function; - priv->isCancelled = FALSE; - - return decision; -} - -/** - * webkit_web_policy_decision_use: - * @decision: a #WebKitWebPolicyDecision - * - * Will send the USE decision to the policy implementer. - * - * Since: 1.0.3 - */ -void webkit_web_policy_decision_use(WebKitWebPolicyDecision* decision) -{ - g_return_if_fail(WEBKIT_IS_WEB_POLICY_DECISION(decision)); - - WebKitWebPolicyDecisionPrivate* priv = decision->priv; - - if (!priv->isCancelled) - (core(priv->frame)->loader()->policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyUse); -} - -/** - * webkit_web_policy_decision_ignore: - * @decision: a #WebKitWebPolicyDecision - * - * Will send the IGNORE decision to the policy implementer. - * - * Since: 1.0.3 - */ -void webkit_web_policy_decision_ignore(WebKitWebPolicyDecision* decision) -{ - g_return_if_fail(WEBKIT_IS_WEB_POLICY_DECISION(decision)); - - WebKitWebPolicyDecisionPrivate* priv = decision->priv; - - if (!priv->isCancelled) - (core(priv->frame)->loader()->policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyIgnore); -} - -/** - * webkit_web_policy_decision_download: - * @decision: a #WebKitWebPolicyDecision - * - * Will send the DOWNLOAD decision to the policy implementer. - * - * Since: 1.0.3 - */ -void webkit_web_policy_decision_download(WebKitWebPolicyDecision* decision) -{ - g_return_if_fail(WEBKIT_IS_WEB_POLICY_DECISION(decision)); - - WebKitWebPolicyDecisionPrivate* priv = decision->priv; - - if (!priv->isCancelled) - (core(priv->frame)->loader()->policyChecker()->*(priv->framePolicyFunction))(WebCore::PolicyDownload); -} - -void webkit_web_policy_decision_cancel(WebKitWebPolicyDecision* decision) -{ - g_return_if_fail(WEBKIT_IS_WEB_POLICY_DECISION(decision)); - - WebKitWebPolicyDecisionPrivate* priv = decision->priv; - - priv->isCancelled = TRUE; -} diff --git a/Source/WebKit/gtk/webkit/webkitwebpolicydecision.h b/Source/WebKit/gtk/webkit/webkitwebpolicydecision.h deleted file mode 100644 index 2b61837a3..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebpolicydecision.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebpolicydecision_h -#define webkitwebpolicydecision_h - -#include <glib-object.h> -#include <stdint.h> -#include "webkitdefines.h" - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_POLICY_DECISION (webkit_web_policy_decision_get_type()) -#define WEBKIT_WEB_POLICY_DECISION(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_POLICY_DECISION, WebKitWebPolicyDecision)) -#define WEBKIT_WEB_POLICY_DECISION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_POLICY_DECISION, WebKitWebPolicyDecisionClass)) -#define WEBKIT_IS_WEB_POLICY_DECISION(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_POLICY_DECISION)) -#define WEBKIT_IS_WEB_POLICY_DECISION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_POLICY_DECISION)) -#define WEBKIT_WEB_POLICY_DECISION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_POLICY_DECISION, WebKitWebPolicyDecisionClass)) - -typedef struct _WebKitWebPolicyDecisionPrivate WebKitWebPolicyDecisionPrivate; -struct _WebKitWebPolicyDecision { - GObject parent_instance; - - /*< private >*/ - WebKitWebPolicyDecisionPrivate* priv; -}; - -struct _WebKitWebPolicyDecisionClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_policy_decision_get_type (void); - -WEBKIT_API void -webkit_web_policy_decision_use (WebKitWebPolicyDecision* decision); - -WEBKIT_API void -webkit_web_policy_decision_ignore (WebKitWebPolicyDecision* decision); - -WEBKIT_API void -webkit_web_policy_decision_download (WebKitWebPolicyDecision* decision); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebpolicydecisionprivate.h b/Source/WebKit/gtk/webkit/webkitwebpolicydecisionprivate.h deleted file mode 100644 index 2d264ab15..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebpolicydecisionprivate.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebpolicydecisionprivate_h -#define webkitwebpolicydecisionprivate_h - -#include "webkitwebpolicydecision.h" - -extern "C" { - -WebKitWebPolicyDecision* webkit_web_policy_decision_new(WebKitWebFrame*, WebCore::FramePolicyFunction); - -void webkit_web_policy_decision_cancel(WebKitWebPolicyDecision*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebresource.cpp b/Source/WebKit/gtk/webkit/webkitwebresource.cpp deleted file mode 100644 index 6fac37bf6..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebresource.cpp +++ /dev/null @@ -1,485 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebresource.h" - -#include "ArchiveResource.h" -#include "KURL.h" -#include "SharedBuffer.h" -#include "webkitenumtypes.h" -#include "webkitglobalsprivate.h" -#include "webkitmarshal.h" -#include "webkitnetworkresponse.h" -#include "webkitwebresourceprivate.h" -#include <glib.h> -#include <glib/gi18n-lib.h> -#include <wtf/Assertions.h> -#include <wtf/text/CString.h> -#include <wtf/text/WTFString.h> - -/** - * SECTION:webkitwebresource - * @short_description: Represents a downloaded URI. - * @see_also: #WebKitWebDataSource - * - * A web resource encapsulates the data of the download as well as the URI, - * MIME type and frame name of the resource. - */ - -using namespace WebCore; - -enum { - // Resource loading - RESPONSE_RECEIVED, - LOAD_FINISHED, - CONTENT_LENGTH_RECEIVED, - LOAD_FAILED, - - LAST_SIGNAL -}; - -enum { - PROP_0, - PROP_URI, - PROP_MIME_TYPE, - PROP_ENCODING, - PROP_FRAME_NAME -}; - -static guint webkit_web_resource_signals[LAST_SIGNAL] = { 0, }; - -G_DEFINE_TYPE(WebKitWebResource, webkit_web_resource, G_TYPE_OBJECT); - -static void webkit_web_resource_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); -static void webkit_web_resource_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); - -static void webkit_web_resource_cleanup(WebKitWebResource* webResource) -{ - WebKitWebResourcePrivate* priv = webResource->priv; - - g_free(priv->uri); - priv->uri = NULL; - - g_free(priv->mimeType); - priv->mimeType = NULL; - - g_free(priv->textEncoding); - priv->textEncoding = NULL; - - g_free(priv->frameName); - priv->frameName = NULL; - - if (priv->data) - g_string_free(priv->data, TRUE); - priv->data = NULL; -} - -static void webkit_web_resource_dispose(GObject* object) -{ - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(object); - WebKitWebResourcePrivate* priv = webResource->priv; - - if (priv->resource) { - priv->resource->deref(); - priv->resource = 0; - } - - G_OBJECT_CLASS(webkit_web_resource_parent_class)->dispose(object); -} - -static void webkit_web_resource_finalize(GObject* object) -{ - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(object); - - webkit_web_resource_cleanup(webResource); - - G_OBJECT_CLASS(webkit_web_resource_parent_class)->finalize(object); -} - -static void webkit_web_resource_class_init(WebKitWebResourceClass* webResourceClass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(webResourceClass); - - gobject_class->dispose = webkit_web_resource_dispose; - gobject_class->finalize = webkit_web_resource_finalize; - gobject_class->get_property = webkit_web_resource_get_property; - gobject_class->set_property = webkit_web_resource_set_property; - - /** - * WebKitWebResource::response-received: - * @web_resource: the #WebKitWebResource being loaded - * @response: the #WebKitNetworkResponse that was received - * - * Emitted when the response is received from the server. - * - * Since: 1.7.5 - */ - webkit_web_resource_signals[RESPONSE_RECEIVED] = g_signal_new("response-received", - G_TYPE_FROM_CLASS(webResourceClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_NETWORK_RESPONSE); - - /** - * WebKitWebResource::load-failed: - * @web_resource: the #WebKitWebResource that was loaded - * @error: the #GError that was triggered - * - * Invoked when the @web_resource failed to load - * - * Since: 1.7.5 - */ - webkit_web_resource_signals[LOAD_FAILED] = g_signal_new("load-failed", - G_TYPE_FROM_CLASS(webResourceClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - g_cclosure_marshal_VOID__POINTER, - G_TYPE_NONE, 1, - G_TYPE_POINTER); - - /** - * WebKitWebResource::load-finished: - * @web_resource: the #WebKitWebResource being loaded - * - * Emitted when all the data for the resource was loaded - * - * Since: 1.7.5 - */ - webkit_web_resource_signals[LOAD_FINISHED] = g_signal_new("load-finished", - G_TYPE_FROM_CLASS(webResourceClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebResource::content-length-received: - * @web_resource: the #WebKitWebResource that was loaded - * @length_received: the amount of data received since the last signal emission - * - * Emitted when new resource data has been received. The - * @length_received variable stores the amount of bytes received - * since the last time this signal was emitted. This is useful to - * provide progress information about the resource load operation. - * - * Since: 1.7.5 - */ - webkit_web_resource_signals[CONTENT_LENGTH_RECEIVED] = g_signal_new("content-length-received", - G_TYPE_FROM_CLASS(webResourceClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - /** - * WebKitWebResource:uri: - * - * The URI of the web resource - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobject_class, - PROP_URI, - g_param_spec_string( - "uri", - _("URI"), - _("The URI of the resource"), - NULL, - (GParamFlags)(WEBKIT_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY))); - /** - * WebKitWebResource:mime-type: - * - * The MIME type of the web resource. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobject_class, - PROP_MIME_TYPE, - g_param_spec_string( - "mime-type", - _("MIME Type"), - _("The MIME type of the resource"), - NULL, - WEBKIT_PARAM_READABLE)); - /** - * WebKitWebResource:encoding: - * - * The encoding name to which the web resource was encoded in. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobject_class, - PROP_ENCODING, - g_param_spec_string( - "encoding", - _("Encoding"), - _("The text encoding name of the resource"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebResource:frame-name: - * - * The frame name for the web resource. - * - * Since: 1.1.14 - */ - g_object_class_install_property(gobject_class, - PROP_FRAME_NAME, - g_param_spec_string( - "frame-name", - _("Frame Name"), - _("The frame name of the resource"), - NULL, - WEBKIT_PARAM_READABLE)); - - g_type_class_add_private(gobject_class, sizeof(WebKitWebResourcePrivate)); -} - -static void webkit_web_resource_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(object); - - switch (prop_id) { - case PROP_URI: - g_value_set_string(value, webkit_web_resource_get_uri(webResource)); - break; - case PROP_MIME_TYPE: - g_value_set_string(value, webkit_web_resource_get_mime_type(webResource)); - break; - case PROP_ENCODING: - g_value_set_string(value, webkit_web_resource_get_encoding(webResource)); - break; - case PROP_FRAME_NAME: - g_value_set_string(value, webkit_web_resource_get_frame_name(webResource)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_resource_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) -{ - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(object); - - switch (prop_id) { - case PROP_URI: - g_free(webResource->priv->uri); - webResource->priv->uri = g_value_dup_string(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_resource_init(WebKitWebResource* webResource) -{ - webResource->priv = G_TYPE_INSTANCE_GET_PRIVATE(webResource, WEBKIT_TYPE_WEB_RESOURCE, WebKitWebResourcePrivate); -} - -// internal use only -WebKitWebResource* webkit_web_resource_new_with_core_resource(PassRefPtr<ArchiveResource> resource) -{ - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, NULL)); - WebKitWebResourcePrivate* priv = webResource->priv; - priv->resource = resource.leakRef(); - - return webResource; -} - -void webkit_web_resource_init_with_core_resource(WebKitWebResource* webResource, PassRefPtr<ArchiveResource> resource) -{ - ASSERT(resource); - - WebKitWebResourcePrivate* priv = webResource->priv; - - if (priv->resource) - priv->resource->deref(); - - priv->resource = resource.leakRef(); -} - -/** - * webkit_web_resource_new: - * @data: the data to initialize the #WebKitWebResource - * @size: the length of @data - * @uri: the URI of the #WebKitWebResource - * @mime_type: the MIME type of the #WebKitWebResource - * @encoding: the text encoding name of the #WebKitWebResource - * @frame_name: the frame name of the #WebKitWebResource - * - * Returns a new #WebKitWebResource. The @encoding can be %NULL. The - * @frame_name argument can be used if the resource represents contents of an - * entire HTML frame, otherwise pass %NULL. - * - * Return value: a new #WebKitWebResource - * - * Since: 1.1.14 - */ -WebKitWebResource* webkit_web_resource_new(const gchar* data, - gssize size, - const gchar* uri, - const gchar* mimeType, - const gchar* encoding, - const gchar* frameName) -{ - g_return_val_if_fail(data, NULL); - g_return_val_if_fail(uri, NULL); - g_return_val_if_fail(mimeType, NULL); - - if (size < 0) - size = strlen(data); - - RefPtr<SharedBuffer> buffer = SharedBuffer::create(data, size); - WebKitWebResource* webResource = webkit_web_resource_new_with_core_resource(ArchiveResource::create(buffer, KURL(KURL(), String::fromUTF8(uri)), String::fromUTF8(mimeType), String::fromUTF8(encoding), String::fromUTF8(frameName))); - - return webResource; -} - -/** - * webkit_web_resource_get_data: - * @web_resource: a #WebKitWebResource - * - * Returns the data of the @webResource. - * - * Return value: (transfer none): a #GString containing the character - * data of the @webResource. The string is owned by WebKit and should - * not be freed or destroyed. - * - * Since: 1.1.14 - */ -GString* webkit_web_resource_get_data(WebKitWebResource* webResource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(webResource), NULL); - - WebKitWebResourcePrivate* priv = webResource->priv; - - if (!priv->resource) - return NULL; - - if (!priv->data) - priv->data = g_string_new_len(priv->resource->data()->data(), priv->resource->data()->size()); - - return priv->data; -} - -/** - * webkit_web_resource_get_uri: - * @web_resource: a #WebKitWebResource - * - * Return value: the URI of the resource - * - * Since: 1.1.14 - */ -const gchar* webkit_web_resource_get_uri(WebKitWebResource* webResource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(webResource), NULL); - - WebKitWebResourcePrivate* priv = webResource->priv; - - - // We may have an URI without having a resource assigned to us (e.g., if the - // FrameLoaderClient only had a ResourceRequest when we got created - if (priv->uri) - return priv->uri; - - if (!priv->resource) - return NULL; - - priv->uri = g_strdup(priv->resource->url().string().utf8().data()); - - return priv->uri; -} - -/** - * webkit_web_resource_get_mime_type: - * @web_resource: a #WebKitWebResource - * - * Return value: the MIME type of the resource - * - * Since: 1.1.14 - */ -const gchar* webkit_web_resource_get_mime_type(WebKitWebResource* webResource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(webResource), NULL); - - WebKitWebResourcePrivate* priv = webResource->priv; - if (!priv->resource) - return NULL; - - if (!priv->mimeType) - priv->mimeType = g_strdup(priv->resource->mimeType().utf8().data()); - - return priv->mimeType; -} - -/** - * webkit_web_resource_get_encoding: - * @web_resource: a #WebKitWebResource - * - * Return value: the encoding name of the resource - * - * Since: 1.1.14 - */ -const gchar* webkit_web_resource_get_encoding(WebKitWebResource* webResource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(webResource), NULL); - - WebKitWebResourcePrivate* priv = webResource->priv; - if (!priv->resource) - return NULL; - - if (!priv->textEncoding) - priv->textEncoding = g_strdup(priv->resource->textEncoding().utf8().data()); - - return priv->textEncoding; -} - -/** - * webkit_web_resource_get_frame_name: - * @web_resource: a #WebKitWebResource - * - * Return value: the frame name of the resource. - * - * Since: 1.1.14 - */ -const gchar* webkit_web_resource_get_frame_name(WebKitWebResource* webResource) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_RESOURCE(webResource), NULL); - - WebKitWebResourcePrivate* priv = webResource->priv; - if (!priv->resource) - return NULL; - - if (!priv->frameName) - priv->frameName = g_strdup(priv->resource->frameName().utf8().data()); - - return priv->frameName; -} - diff --git a/Source/WebKit/gtk/webkit/webkitwebresource.h b/Source/WebKit/gtk/webkit/webkitwebresource.h deleted file mode 100644 index 2052cf431..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebresource.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 2009 Jan Michael C. Alonzo - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebresource_h -#define webkitwebresource_h - -#include <glib.h> -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_RESOURCE (webkit_web_resource_get_type()) -#define WEBKIT_WEB_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_RESOURCE, WebKitWebResource)) -#define WEBKIT_WEB_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_RESOURCE, WebKitWebResourceClass)) -#define WEBKIT_IS_WEB_RESOURCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_RESOURCE)) -#define WEBKIT_IS_WEB_RESOURCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_RESOURCE)) -#define WEBKIT_WEB_RESOURCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_RESOURCE, WebKitWebResourceClass)) - -typedef struct _WebKitWebResourcePrivate WebKitWebResourcePrivate; - -struct _WebKitWebResource { - GObject parent_instance; - - /*< private >*/ - WebKitWebResourcePrivate *priv; -}; - -struct _WebKitWebResourceClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved0) (void); - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); -}; - -WEBKIT_API GType -webkit_web_resource_get_type (void); - -WEBKIT_API WebKitWebResource * -webkit_web_resource_new (const gchar *data, - gssize size, - const gchar *uri, - const gchar *mime_type, - const gchar *encoding, - const gchar *frame_name); - -WEBKIT_API GString * -webkit_web_resource_get_data (WebKitWebResource *web_resource); - -WEBKIT_API const gchar * -webkit_web_resource_get_uri (WebKitWebResource *web_resource); - -WEBKIT_API const gchar * -webkit_web_resource_get_mime_type (WebKitWebResource *web_resource); - -WEBKIT_API const gchar * -webkit_web_resource_get_encoding (WebKitWebResource *web_resource); - -WEBKIT_API const gchar * -webkit_web_resource_get_frame_name (WebKitWebResource *web_resource); - -G_END_DECLS - -#endif /* webkitwebresource_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebresourceprivate.h b/Source/WebKit/gtk/webkit/webkitwebresourceprivate.h deleted file mode 100644 index 2ae3d0565..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebresourceprivate.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebresourceprivate_h -#define webkitwebresourceprivate_h - -#include "ArchiveResource.h" -#include "webkitwebresource.h" - -extern "C" { - -struct _WebKitWebResourcePrivate { - WebCore::ArchiveResource* resource; - - gchar* uri; - gchar* mimeType; - gchar* textEncoding; - gchar* frameName; - - GString* data; -}; - -WebKitWebResource* webkit_web_resource_new_with_core_resource(PassRefPtr<WebCore::ArchiveResource>); - -void webkit_web_resource_init_with_core_resource(WebKitWebResource*, PassRefPtr<WebCore::ArchiveResource>); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp b/Source/WebKit/gtk/webkit/webkitwebsettings.cpp deleted file mode 100644 index 22ce6bb36..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebsettings.cpp +++ /dev/null @@ -1,1653 +0,0 @@ -/* - * Copyright (C) 2008 Christian Dywan <christian@imendio.com> - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2008 Holger Hans Peter Freyther - * Copyright (C) 2009 Jan Michael Alonzo - * Copyright (C) 2009 Movial Creative Technologies Inc. - * Copyright (C) 2009 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebsettings.h" - -#include "EditingBehavior.h" -#include "FileSystem.h" -#include "KURL.h" -#include "PluginDatabase.h" -#include "UserAgentGtk.h" -#include "webkitenumtypes.h" -#include "webkitglobalsprivate.h" -#include "webkitversion.h" -#include "webkitwebsettingsprivate.h" -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> -#include <wtf/text/StringConcatenate.h> -#include <glib/gi18n-lib.h> - -/** - * SECTION:webkitwebsettings - * @short_description: Control the behaviour of a #WebKitWebView - * - * #WebKitWebSettings can be applied to a #WebKitWebView to control text encoding, - * color, font sizes, printing mode, script support, loading of images and various other things. - * After creation, a #WebKitWebSettings object contains default settings. - * - * <informalexample><programlisting> - * /<!-- -->* Create a new websettings and disable java script *<!-- -->/ - * WebKitWebSettings *settings = webkit_web_settings_new (); - * g_object_set (G_OBJECT(settings), "enable-scripts", FALSE, NULL); - * - * /<!-- -->* Apply the result *<!-- -->/ - * webkit_web_view_set_settings (WEBKIT_WEB_VIEW(my_webview), settings); - * </programlisting></informalexample> - */ - -using namespace WebCore; - -G_DEFINE_TYPE(WebKitWebSettings, webkit_web_settings, G_TYPE_OBJECT) - -enum { - PROP_0, - - PROP_DEFAULT_ENCODING, - PROP_CURSIVE_FONT_FAMILY, - PROP_DEFAULT_FONT_FAMILY, - PROP_FANTASY_FONT_FAMILY, - PROP_MONOSPACE_FONT_FAMILY, - PROP_SANS_SERIF_FONT_FAMILY, - PROP_SERIF_FONT_FAMILY, - PROP_DEFAULT_FONT_SIZE, - PROP_DEFAULT_MONOSPACE_FONT_SIZE, - PROP_MINIMUM_FONT_SIZE, - PROP_MINIMUM_LOGICAL_FONT_SIZE, - PROP_ENFORCE_96_DPI, - PROP_AUTO_LOAD_IMAGES, - PROP_AUTO_SHRINK_IMAGES, - PROP_RESPECT_IMAGE_ORIENTATION, - PROP_PRINT_BACKGROUNDS, - PROP_ENABLE_SCRIPTS, - PROP_ENABLE_PLUGINS, - PROP_RESIZABLE_TEXT_AREAS, - PROP_USER_STYLESHEET_URI, - PROP_ZOOM_STEP, - PROP_ENABLE_DEVELOPER_EXTRAS, - PROP_ENABLE_PRIVATE_BROWSING, - PROP_ENABLE_SPELL_CHECKING, - PROP_SPELL_CHECKING_LANGUAGES, - PROP_ENABLE_CARET_BROWSING, - PROP_ENABLE_HTML5_DATABASE, - PROP_ENABLE_HTML5_LOCAL_STORAGE, - PROP_HTML5_LOCAL_STORAGE_DATABASE_PATH, - PROP_ENABLE_XSS_AUDITOR, - PROP_ENABLE_SPATIAL_NAVIGATION, - PROP_ENABLE_FRAME_FLATTENING, - PROP_USER_AGENT, - PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, - PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD, - PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE, - PROP_EDITING_BEHAVIOR, - PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS, - PROP_ENABLE_FILE_ACCESS_FROM_FILE_URIS, - PROP_ENABLE_DOM_PASTE, - PROP_TAB_KEY_CYCLES_THROUGH_ELEMENTS, - PROP_ENABLE_DEFAULT_CONTEXT_MENU, - PROP_ENABLE_SITE_SPECIFIC_QUIRKS, - PROP_ENABLE_PAGE_CACHE, - PROP_AUTO_RESIZE_WINDOW, - PROP_ENABLE_JAVA_APPLET, - PROP_ENABLE_HYPERLINK_AUDITING, - PROP_ENABLE_FULLSCREEN, - PROP_ENABLE_DNS_PREFETCHING, - PROP_ENABLE_WEBGL, - PROP_ENABLE_MEDIA_STREAM, - PROP_ENABLE_WEB_AUDIO, - PROP_ENABLE_ACCELERATED_COMPOSITING, - PROP_ENABLE_SMOOTH_SCROLLING, - PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE, - PROP_MEDIA_PLAYBACK_ALLOWS_INLINE, - PROP_ENABLE_CSS_SHADERS, - PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT, - PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT -}; - -static void webkit_web_settings_finalize(GObject* object); - -static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); - -static void webkit_web_settings_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); - -static void webkit_web_settings_class_init(WebKitWebSettingsClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - gobject_class->finalize = webkit_web_settings_finalize; - gobject_class->set_property = webkit_web_settings_set_property; - gobject_class->get_property = webkit_web_settings_get_property; - - webkitInit(); - - GParamFlags flags = (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT); - - g_object_class_install_property(gobject_class, - PROP_DEFAULT_ENCODING, - g_param_spec_string( - "default-encoding", - _("Default Encoding"), - _("The default encoding used to display text."), - "iso-8859-1", - flags)); - - g_object_class_install_property(gobject_class, - PROP_CURSIVE_FONT_FAMILY, - g_param_spec_string( - "cursive-font-family", - _("Cursive Font Family"), - _("The default Cursive font family used to display text."), - "serif", - flags)); - - g_object_class_install_property(gobject_class, - PROP_DEFAULT_FONT_FAMILY, - g_param_spec_string( - "default-font-family", - _("Default Font Family"), - _("The default font family used to display text."), - "sans-serif", - flags)); - - g_object_class_install_property(gobject_class, - PROP_FANTASY_FONT_FAMILY, - g_param_spec_string( - "fantasy-font-family", - _("Fantasy Font Family"), - _("The default Fantasy font family used to display text."), - "serif", - flags)); - - g_object_class_install_property(gobject_class, - PROP_MONOSPACE_FONT_FAMILY, - g_param_spec_string( - "monospace-font-family", - _("Monospace Font Family"), - _("The default font family used to display monospace text."), - "monospace", - flags)); - - g_object_class_install_property(gobject_class, - PROP_SANS_SERIF_FONT_FAMILY, - g_param_spec_string( - "sans-serif-font-family", - _("Sans Serif Font Family"), - _("The default Sans Serif font family used to display text."), - "sans-serif", - flags)); - - g_object_class_install_property(gobject_class, - PROP_SERIF_FONT_FAMILY, - g_param_spec_string( - "serif-font-family", - _("Serif Font Family"), - _("The default Serif font family used to display text."), - "serif", - flags)); - - g_object_class_install_property(gobject_class, - PROP_DEFAULT_FONT_SIZE, - g_param_spec_int( - "default-font-size", - _("Default Font Size"), - _("The default font size used to display text."), - 5, G_MAXINT, 12, - flags)); - - g_object_class_install_property(gobject_class, - PROP_DEFAULT_MONOSPACE_FONT_SIZE, - g_param_spec_int( - "default-monospace-font-size", - _("Default Monospace Font Size"), - _("The default font size used to display monospace text."), - 5, G_MAXINT, 10, - flags)); - - g_object_class_install_property(gobject_class, - PROP_MINIMUM_FONT_SIZE, - g_param_spec_int( - "minimum-font-size", - _("Minimum Font Size"), - _("The minimum font size used to display text."), - 0, G_MAXINT, 5, - flags)); - - g_object_class_install_property(gobject_class, - PROP_MINIMUM_LOGICAL_FONT_SIZE, - g_param_spec_int( - "minimum-logical-font-size", - _("Minimum Logical Font Size"), - _("The minimum logical font size used to display text."), - 1, G_MAXINT, 5, - flags)); - - /** - * WebKitWebSettings:enforce-96-dpi: - * - * Enforce a resolution of 96 DPI. This is meant for compatibility - * with web pages which cope badly with different screen resolutions - * and for automated testing. - * Web browsers and applications that typically display arbitrary - * content from the web should provide a preference for this. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_ENFORCE_96_DPI, - g_param_spec_boolean( - "enforce-96-dpi", - _("Enforce 96 DPI"), - _("Enforce a resolution of 96 DPI"), - FALSE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_AUTO_LOAD_IMAGES, - g_param_spec_boolean( - "auto-load-images", - _("Auto Load Images"), - _("Load images automatically."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_AUTO_SHRINK_IMAGES, - g_param_spec_boolean( - "auto-shrink-images", - _("Auto Shrink Images"), - _("Automatically shrink standalone images to fit."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_RESPECT_IMAGE_ORIENTATION, - g_param_spec_boolean( - "respect-image-orientation", - _("Respect Image Orientation"), - _("Whether WebKit should respect image orientation."), - FALSE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_PRINT_BACKGROUNDS, - g_param_spec_boolean( - "print-backgrounds", - _("Print Backgrounds"), - _("Whether background images should be printed."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_ENABLE_SCRIPTS, - g_param_spec_boolean( - "enable-scripts", - _("Enable Scripts"), - _("Enable embedded scripting languages."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_ENABLE_PLUGINS, - g_param_spec_boolean( - "enable-plugins", - _("Enable Plugins"), - _("Enable embedded plugin objects."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_RESIZABLE_TEXT_AREAS, - g_param_spec_boolean( - "resizable-text-areas", - _("Resizable Text Areas"), - _("Whether text areas are resizable."), - TRUE, - flags)); - - g_object_class_install_property(gobject_class, - PROP_USER_STYLESHEET_URI, - g_param_spec_string("user-stylesheet-uri", - _("User Stylesheet URI"), - _("The URI of a stylesheet that is applied to every page."), - 0, - flags)); - - /** - * WebKitWebSettings:zoom-step: - * - * The value by which the zoom level is changed when zooming in or out. - * - * Since: 1.0.1 - */ - g_object_class_install_property(gobject_class, - PROP_ZOOM_STEP, - g_param_spec_float( - "zoom-step", - _("Zoom Stepping Value"), - _("The value by which the zoom level is changed when zooming in or out."), - 0.0f, G_MAXFLOAT, 0.1f, - flags)); - - /** - * WebKitWebSettings:enable-developer-extras: - * - * Whether developer extensions should be enabled. This enables, - * for now, the Web Inspector, which can be controlled using the - * #WebKitWebInspector instance held by the #WebKitWebView this - * setting is enabled for. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_DEVELOPER_EXTRAS, - g_param_spec_boolean( - "enable-developer-extras", - _("Enable Developer Extras"), - _("Enables special extensions that help developers"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-private-browsing: - * - * Whether to enable private browsing mode. Private browsing mode prevents - * WebKit from updating the global history and storing any session - * information e.g., on-disk cache, as well as suppressing any messages - * from being printed into the (javascript) console. - * - * This is currently experimental for WebKitGtk. - * - * Since: 1.1.2 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_PRIVATE_BROWSING, - g_param_spec_boolean( - "enable-private-browsing", - _("Enable Private Browsing"), - _("Enables private browsing mode"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-spell-checking: - * - * Whether to enable spell checking while typing. - * - * Since: 1.1.6 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_SPELL_CHECKING, - g_param_spec_boolean( - "enable-spell-checking", - _("Enable Spell Checking"), - _("Enables spell checking while typing"), - FALSE, - flags)); - - /** - * WebKitWebSettings:spell-checking-languages: - * - * The languages to be used for spell checking, separated by commas. - * - * The locale string typically is in the form lang_COUNTRY, where lang - * is an ISO-639 language code, and COUNTRY is an ISO-3166 country code. - * For instance, sv_FI for Swedish as written in Finland or pt_BR - * for Portuguese as written in Brazil. - * - * If no value is specified then the value returned by - * gtk_get_default_language will be used. - * - * Since: 1.1.6 - */ - g_object_class_install_property(gobject_class, - PROP_SPELL_CHECKING_LANGUAGES, - g_param_spec_string( - "spell-checking-languages", - _("Languages to use for spell checking"), - _("Comma separated list of languages to use for spell checking"), - 0, - flags)); - - /** - * WebKitWebSettings:enable-caret-browsing: - * - * Whether to enable caret browsing mode. - * - * Since: 1.1.6 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_CARET_BROWSING, - g_param_spec_boolean("enable-caret-browsing", - _("Enable Caret Browsing"), - _("Whether to enable accessibility enhanced keyboard navigation"), - FALSE, - flags)); - /** - * WebKitWebSettings:enable-html5-database: - * - * Whether to enable HTML5 client-side SQL database support. Client-side - * SQL database allows web pages to store structured data and be able to - * use SQL to manipulate that data asynchronously. - * - * Since: 1.1.8 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_HTML5_DATABASE, - g_param_spec_boolean("enable-html5-database", - _("Enable HTML5 Database"), - _("Whether to enable HTML5 database support"), - TRUE, - flags)); - - /** - * WebKitWebSettings:enable-html5-local-storage: - * - * Whether to enable HTML5 localStorage support. localStorage provides - * simple synchronous storage access. - * - * Since: 1.1.8 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_HTML5_LOCAL_STORAGE, - g_param_spec_boolean("enable-html5-local-storage", - _("Enable HTML5 Local Storage"), - _("Whether to enable HTML5 Local Storage support"), - TRUE, - flags)); - /** - * WebKitWebSettings:html5-local-storage-database-path: - * - * Path to store persistent HTML5 localStorage databases, which are enabled by - * "enable-html5-local-storage". The default path is $XDG_DATA_HOME/webkit/databases/. - * - * Since: 1.5.2 - */ - GOwnPtr<gchar> localStoragePath(g_build_filename(g_get_user_data_dir(), "webkit", "databases", NULL)); - g_object_class_install_property(gobject_class, - PROP_HTML5_LOCAL_STORAGE_DATABASE_PATH, - g_param_spec_string("html5-local-storage-database-path", - _("Local Storage Database Path"), - _("The path to where HTML5 Local Storage databases are stored."), - localStoragePath.get(), - flags)); - /** - * WebKitWebSettings:enable-xss-auditor: - * - * Whether to enable the XSS Auditor. This feature filters some kinds of - * reflective XSS attacks on vulnerable web sites. - * - * Since: 1.1.11 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_XSS_AUDITOR, - g_param_spec_boolean("enable-xss-auditor", - _("Enable XSS Auditor"), - _("Whether to enable the XSS auditor"), - TRUE, - flags)); - /** - * WebKitWebSettings:enable-spatial-navigation: - * - * Whether to enable the Spatial Navigation. This feature consists in the ability - * to navigate between focusable elements in a Web page, such as hyperlinks and - * form controls, by using Left, Right, Up and Down arrow keys. For example, if - * an user presses the Right key, heuristics determine whether there is an element - * he might be trying to reach towards the right, and if there are multiple elements, - * which element he probably wants. - * - * Since: 1.1.23 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_SPATIAL_NAVIGATION, - g_param_spec_boolean("enable-spatial-navigation", - _("Enable Spatial Navigation"), - _("Whether to enable Spatial Navigation"), - FALSE, - flags)); - /** - * WebKitWebSettings:enable-frame-flattening: - * - * Whether to enable the Frame Flattening. With this setting each subframe is expanded - * to its contents, which will flatten all the frames to become one scrollable page. - * On touch devices, it is desired to not have any scrollable sub parts of the page as - * it results in a confusing user experience, with scrolling sometimes scrolling sub parts - * and at other times scrolling the page itself. For this reason iframes and framesets are - * barely usable on touch devices. - * - * Since: 1.3.5 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_FRAME_FLATTENING, - g_param_spec_boolean("enable-frame-flattening", - _("Enable Frame Flattening"), - _("Whether to enable Frame Flattening"), - FALSE, - flags)); - /** - * WebKitWebSettings:user-agent: - * - * The User-Agent string used by WebKitGtk. - * - * This will return a default User-Agent string if a custom string wasn't - * provided by the application. Setting this property to a NULL value or - * an empty string will result in the User-Agent string being reset to the - * default value. - * - * Since: 1.1.11 - */ - g_object_class_install_property(gobject_class, PROP_USER_AGENT, - g_param_spec_string("user-agent", - _("User Agent"), - _("The User-Agent string used by WebKitGtk"), - "", // An empty string means the default user-agent. - flags)); - - /** - * WebKitWebSettings:javascript-can-open-windows-automatically: - * - * Whether JavaScript can open popup windows automatically without user - * intervention. - * - * Since: 1.1.11 - */ - g_object_class_install_property(gobject_class, - PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY, - g_param_spec_boolean("javascript-can-open-windows-automatically", - _("JavaScript can open windows automatically"), - _("Whether JavaScript can open windows automatically"), - FALSE, - flags)); - - /** - * WebKitWebSettings:javascript-can-access-clipboard: - * - * Whether JavaScript can access Clipboard. - * - * Since: 1.3.0 - */ - g_object_class_install_property(gobject_class, - PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD, - g_param_spec_boolean("javascript-can-access-clipboard", - _("JavaScript can access Clipboard"), - _("Whether JavaScript can access Clipboard"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-offline-web-application-cache: - * - * Whether to enable HTML5 offline web application cache support. Offline - * Web Application Cache ensures web applications are available even when - * the user is not connected to the network. - * - * Since: 1.1.13 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE, - g_param_spec_boolean("enable-offline-web-application-cache", - _("Enable offline web application cache"), - _("Whether to enable offline web application cache"), - TRUE, - flags)); - - - /** - * WebKitWebSettings:editing-behavior: - * - * This setting controls various editing behaviors that differ - * between platforms and that have been combined in two groups, - * 'Mac' and 'Windows'. Some examples: - * - * 1) Clicking below the last line of an editable area puts the - * caret at the end of the last line on Mac, but in the middle of - * the last line on Windows. - * - * 2) Pushing down the arrow key on the last line puts the caret - * at the end of the last line on Mac, but does nothing on - * Windows. A similar case exists on the top line. - * - * Since: 1.1.13 - */ - g_object_class_install_property(gobject_class, - PROP_EDITING_BEHAVIOR, - g_param_spec_enum("editing-behavior", - _("Editing behavior"), - _("The behavior mode to use in editing mode"), - WEBKIT_TYPE_EDITING_BEHAVIOR, - WEBKIT_EDITING_BEHAVIOR_UNIX, - flags)); - - /** - * WebKitWebSettings:enable-universal-access-from-file-uris: - * - * Whether to allow files loaded through file:// URIs universal access to - * all pages. - * - * Since: 1.1.13 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS, - g_param_spec_boolean("enable-universal-access-from-file-uris", - _("Enable universal access from file URIs"), - _("Whether to allow universal access from file URIs"), - 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)); - /** - * WebKitWebSettings:tab-key-cycles-through-elements: - * - * Whether the tab key cycles through elements on the page. - * - * If @flag is %TRUE, pressing the tab key will focus the next element in - * the @web_view. If @flag is %FALSE, the @web_view will interpret tab - * key presses as normal key presses. If the selected element is editable, the - * tab key will cause the insertion of a tab character. - * - * Since: 1.1.17 - */ - g_object_class_install_property(gobject_class, - PROP_TAB_KEY_CYCLES_THROUGH_ELEMENTS, - g_param_spec_boolean("tab-key-cycles-through-elements", - _("Tab key cycles through elements"), - _("Whether the tab key cycles through elements on the page."), - TRUE, - flags)); - - /** - * WebKitWebSettings:enable-default-context-menu: - * - * Whether right-clicks should be handled automatically to create, - * and display the context menu. Turning this off will make - * WebKitGTK+ not emit the populate-popup signal. Notice that the - * default button press event handler may still handle right - * clicks for other reasons, such as in-page context menus, or - * right-clicks that are handled by the page itself. - * - * Since: 1.1.18 - * - * Deprecated: 1.10: Use #WebKitWebView::context-menu signal instead. - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_DEFAULT_CONTEXT_MENU, - g_param_spec_boolean( - "enable-default-context-menu", - _("Enable Default Context Menu"), - _("Enables the handling of right-clicks for the creation of the default context menu"), - TRUE, - flags)); - - /** - * WebKitWebSettings::enable-site-specific-quirks: - * - * Whether to turn on site-specific hacks. Turning this on will - * tell WebKitGTK+ to use some site-specific workarounds for - * better web compatibility. For example, older versions of - * MediaWiki will incorrectly send WebKit a css file with KHTML - * workarounds. By turning on site-specific quirks, WebKit will - * special-case this and other cases to make the sites work. - * - * Since: 1.1.18 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_SITE_SPECIFIC_QUIRKS, - g_param_spec_boolean( - "enable-site-specific-quirks", - _("Enable Site Specific Quirks"), - _("Enables the site-specific compatibility workarounds"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-page-cache: - * - * Enable or disable the page cache. Disabling the page cache is - * generally only useful for special circumstances like low-memory - * scenarios or special purpose applications like static HTML - * viewers. This setting only controls the Page Cache, this cache - * is different than the disk-based or memory-based traditional - * resource caches, its point is to make going back and forth - * between pages much faster. For details about the different types - * of caches and their purposes see: - * http://webkit.org/blog/427/webkit-page-cache-i-the-basics/ - * - * Since: 1.1.18 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_PAGE_CACHE, - g_param_spec_boolean("enable-page-cache", - _("Enable page cache"), - _("Whether the page cache should be used"), - FALSE, - flags)); - - /** - * WebKitWebSettings:auto-resize-window: - * - * Web pages can request to modify the size and position of the - * window containing the #WebKitWebView through various DOM methods - * (resizeTo, moveTo, resizeBy, moveBy). By default WebKit will not - * honor this requests, but you can set this property to %TRUE if - * you'd like it to do so. If you wish to handle this manually, you - * can connect to the notify signal for the - * #WebKitWebWindowFeatures of your #WebKitWebView. - * - * Since: 1.1.22 - */ - g_object_class_install_property(gobject_class, - PROP_AUTO_RESIZE_WINDOW, - g_param_spec_boolean("auto-resize-window", - _("Auto Resize Window"), - _("Automatically resize the toplevel window when a page requests it"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-file-access-from-file-uris: - * - * Boolean property to control file access for file:// URIs. If this - * option is enabled every file:// will have its own security unique domain. - * - * Since: 1.1.22 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_FILE_ACCESS_FROM_FILE_URIS, - g_param_spec_boolean("enable-file-access-from-file-uris", - "Enable file access from file URIs", - "Controls file access for file:// URIs.", - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-java-applet: - * - * Enable or disable support for the Java <applet> tag. Keep in - * mind that Java content can be still shown in the page through - * <object> or <embed>, which are the preferred tags for this task. - * - * Since: 1.1.22 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_JAVA_APPLET, - g_param_spec_boolean("enable-java-applet", - _("Enable Java Applet"), - _("Whether Java Applet support through <applet> should be enabled"), - TRUE, - flags)); - - /** - * WebKitWebSettings:enable-hyperlink-auditing: - * - * Enable or disable support for <a ping>. - * - * Since: 1.2.5 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_HYPERLINK_AUDITING, - g_param_spec_boolean("enable-hyperlink-auditing", - _("Enable Hyperlink Auditing"), - _("Whether <a ping> should be able to send pings"), - FALSE, - flags)); - - /* Undocumented for now */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_FULLSCREEN, - g_param_spec_boolean("enable-fullscreen", - _("Enable Fullscreen"), - _("Whether the Mozilla style API should be enabled."), - FALSE, - flags)); - /** - * WebKitWebSettings:enable-webgl: - * - * Enable or disable support for WebGL on pages. WebGL is an experimental - * proposal for allowing web pages to use OpenGL ES-like calls directly. The - * standard is currently a work-in-progress by the Khronos Group. - * - * Since: 1.3.14 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_WEBGL, - g_param_spec_boolean("enable-webgl", - _("Enable WebGL"), - _("Whether WebGL content should be rendered"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-accelerated-compositing: - * - * Enable or disable support for accelerated compositing on pages. Accelerated - * compositing uses the GPU to render animations on pages smoothly and also allows - * proper rendering of 3D CSS transforms. - * - * Since: 1.7.5 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_ACCELERATED_COMPOSITING, - g_param_spec_boolean("enable-accelerated-compositing", - _("Enable accelerated compositing"), - _("Whether accelerated compositing should be enabled"), - FALSE, - flags)); - /** - * WebKitWebSettings:enable-webaudio: - * - * Enable or disable support for WebAudio on pages. WebAudio is an - * experimental proposal for allowing web pages to generate Audio - * WAVE data from JavaScript. The standard is currently a - * work-in-progress by the W3C Audio Working Group. - * - * See also https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html - * - * Since: TODO - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_WEB_AUDIO, - g_param_spec_boolean("enable-webaudio", - _("Enable WebAudio"), - _("Whether WebAudio content should be handled"), - FALSE, - flags)); - - - /** - * WebKitWebSettings:enable-dns-prefetching: - * - * Whether webkit prefetches domain names. This is a separate knob from private browsing. - * Whether private browsing should set this or not is up for debate, for now it doesn't. - * - * Since: 1.3.13. - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_DNS_PREFETCHING, - g_param_spec_boolean("enable-dns-prefetching", - _("WebKit prefetches domain names"), - _("Whether WebKit prefetches domain names"), - TRUE, - flags)); - /** - * WebKitWebSettings:enable-media-stream: - * - * Enable or disable support for Media Stream on pages. Media Stream is - * an experimental proposal for allowing web pages to access local video and - * audio input devices. The standard is currently a work-in-progress as part - * of the Web Applications 1.0 specification from WHATWG. - * - * See also http://www.w3.org/TR/mediacapture-streams/ - * - * Since: 1.10.0 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_MEDIA_STREAM, - g_param_spec_boolean("enable-media-stream", - _("Enable Media Stream"), - _("Whether Media Stream should be enabled"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-smooth-scrolling: - * - * Enable or disable support for smooth scrolling. The current implementation relies upon - * CPU work to produce a smooth scrolling experience. - * - * Since: 1.9.0 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_SMOOTH_SCROLLING, - g_param_spec_boolean("enable-smooth-scrolling", - _("Enable smooth scrolling"), - _("Whether to enable smooth scrolling"), - FALSE, - flags)); - - /** - * WebKitWebSettings:media-playback-requires-user-gesture: - * - * Whether a user gesture (such as clicking the play button) would - * be required to start media playback or load media. This is off - * by default, so media playback could start automatically. Setting - * it on requires a gesture by the user to start playback, or to load - * the media. - * - * Since: 1.10.0 - */ - g_object_class_install_property(gobject_class, - PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE, - g_param_spec_boolean("media-playback-requires-user-gesture", - _("Media playback requires user gesture"), - _("Whether media playback requires user gesture"), - FALSE, - flags)); - - /** - * WebKitWebSettings:media-playback-allows-inline: - * - * Whether media playback is full-screen only or inline playback is allowed. - * This is true by default, so media playback can be inline. Setting it to - * false allows specifying that media playback should be always fullscreen. - * - * Since: 1.10.0 - */ - g_object_class_install_property(gobject_class, - PROP_MEDIA_PLAYBACK_ALLOWS_INLINE, - g_param_spec_boolean("media-playback-allows-inline", - _("Media playback allows inline"), - _("Whether media playback allows inline"), - TRUE, - flags)); - - /** - * WebKitWebSettings:enable-css-shaders: - * - * Enable or disable support for css shaders (css custom filters). - * Accelerated compositing needs to be enabled at compile time, but needs - * not be enabled at runtime. - * - * See also https://dvcs.w3.org/hg/FXTF/raw-file/tip/custom/index.html - * - * Since: 2.0 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_CSS_SHADERS, - g_param_spec_boolean("enable-css-shaders", - _("Enable CSS shaders"), - _("Whether to enable css shaders"), - FALSE, - flags)); - - /** - * WebKitWebSettings:enable-display-of-insecure-content: - * - * Whether pages loaded via HTTPS should load subresources such as - * images and frames from non-HTTPS URLs. - * - * Since: 2.0 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT, - g_param_spec_boolean("enable-display-of-insecure-content", - _("Enable display of insecure content"), - _("Whether non-HTTPS resources can display on HTTPS pages."), - TRUE, - flags)); - - /** - * WebKitWebSettings:enable-running-of-insecure-content: - * - * Whether pages loaded via HTTPS should run subresources such as - * CSS, scripts, and plugins from non-HTTPS URLs. - * - * Since: 2.0 - */ - g_object_class_install_property(gobject_class, - PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT, - g_param_spec_boolean("enable-running-of-insecure-content", - _("Enable running of insecure content"), - _("Whether non-HTTPS resources can run on HTTPS pages."), - TRUE, - flags)); -} - -static void webkit_web_settings_init(WebKitWebSettings* web_settings) -{ - web_settings->priv = new WebKitWebSettingsPrivate; -} - -static void webkit_web_settings_finalize(GObject* object) -{ - delete WEBKIT_WEB_SETTINGS(object)->priv; - G_OBJECT_CLASS(webkit_web_settings_parent_class)->finalize(object); -} - -static void webkit_web_settings_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) -{ - WebKitWebSettings* web_settings = WEBKIT_WEB_SETTINGS(object); - WebKitWebSettingsPrivate* priv = web_settings->priv; - - switch(prop_id) { - case PROP_DEFAULT_ENCODING: - priv->defaultEncoding = g_value_get_string(value); - break; - case PROP_CURSIVE_FONT_FAMILY: - priv->cursiveFontFamily = g_value_get_string(value); - break; - case PROP_DEFAULT_FONT_FAMILY: - priv->defaultFontFamily = g_value_get_string(value); - break; - case PROP_FANTASY_FONT_FAMILY: - priv->fantasyFontFamily = g_value_get_string(value); - break; - case PROP_MONOSPACE_FONT_FAMILY: - priv->monospaceFontFamily = g_value_get_string(value); - break; - case PROP_SANS_SERIF_FONT_FAMILY: - priv->sansSerifFontFamily = g_value_get_string(value); - break; - case PROP_SERIF_FONT_FAMILY: - priv->serifFontFamily = g_value_get_string(value); - break; - case PROP_DEFAULT_FONT_SIZE: - priv->defaultFontSize = g_value_get_int(value); - break; - case PROP_DEFAULT_MONOSPACE_FONT_SIZE: - priv->defaultMonospaceFontSize = g_value_get_int(value); - break; - case PROP_MINIMUM_FONT_SIZE: - priv->minimumFontSize = g_value_get_int(value); - break; - case PROP_MINIMUM_LOGICAL_FONT_SIZE: - priv->minimumLogicalFontSize = g_value_get_int(value); - break; - case PROP_ENFORCE_96_DPI: - priv->enforce96DPI = g_value_get_boolean(value); - break; - case PROP_AUTO_LOAD_IMAGES: - priv->autoLoadImages = g_value_get_boolean(value); - break; - case PROP_AUTO_SHRINK_IMAGES: - priv->autoShrinkImages = g_value_get_boolean(value); - break; - case PROP_RESPECT_IMAGE_ORIENTATION: - priv->respectImageOrientation = g_value_get_boolean(value); - break; - case PROP_PRINT_BACKGROUNDS: - priv->printBackgrounds = g_value_get_boolean(value); - break; - case PROP_ENABLE_SCRIPTS: - priv->enableScripts = g_value_get_boolean(value); - break; - case PROP_ENABLE_PLUGINS: - priv->enablePlugins = g_value_get_boolean(value); - break; - case PROP_RESIZABLE_TEXT_AREAS: - priv->resizableTextAreas = g_value_get_boolean(value); - break; - case PROP_USER_STYLESHEET_URI: - priv->userStylesheetURI = g_value_get_string(value); - break; - case PROP_ZOOM_STEP: - priv->zoomStep = g_value_get_float(value); - break; - case PROP_ENABLE_DEVELOPER_EXTRAS: - priv->enableDeveloperExtras = g_value_get_boolean(value); - break; - case PROP_ENABLE_PRIVATE_BROWSING: - priv->enablePrivateBrowsing = g_value_get_boolean(value); - break; - case PROP_ENABLE_CARET_BROWSING: - priv->enableCaretBrowsing = g_value_get_boolean(value); - break; - case PROP_ENABLE_HTML5_DATABASE: - priv->enableHTML5Database = g_value_get_boolean(value); - break; - case PROP_ENABLE_HTML5_LOCAL_STORAGE: - priv->enableHTML5LocalStorage = g_value_get_boolean(value); - break; - case PROP_HTML5_LOCAL_STORAGE_DATABASE_PATH: - priv->html5LocalStorageDatabasePath = g_value_get_string(value); - break; - case PROP_ENABLE_SPELL_CHECKING: - priv->enableSpellChecking = g_value_get_boolean(value); - break; - case PROP_SPELL_CHECKING_LANGUAGES: - priv->spellCheckingLanguages = g_value_get_string(value); - break; - case PROP_ENABLE_XSS_AUDITOR: - priv->enableXSSAuditor = g_value_get_boolean(value); - break; - case PROP_ENABLE_SPATIAL_NAVIGATION: - priv->enableSpatialNavigation = g_value_get_boolean(value); - break; - case PROP_ENABLE_FRAME_FLATTENING: - priv->enableFrameFlattening = g_value_get_boolean(value); - break; - case PROP_USER_AGENT: - if (!g_value_get_string(value) || !strlen(g_value_get_string(value))) - priv->userAgent = standardUserAgent().utf8(); - else - priv->userAgent = g_value_get_string(value); - break; - case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: - priv->javascriptCanOpenWindowsAutomatically = g_value_get_boolean(value); - break; - case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD: - priv->javascriptCanAccessClipboard = g_value_get_boolean(value); - break; - case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: - priv->enableOfflineWebApplicationCache = g_value_get_boolean(value); - break; - case PROP_EDITING_BEHAVIOR: - priv->editingBehavior = static_cast<WebKitEditingBehavior>(g_value_get_enum(value)); - break; - case PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS: - priv->enableUniversalAccessFromFileURIs = g_value_get_boolean(value); - break; - case PROP_ENABLE_FILE_ACCESS_FROM_FILE_URIS: - priv->enableFileAccessFromFileURIs = g_value_get_boolean(value); - break; - case PROP_ENABLE_DOM_PASTE: - priv->enableDOMPaste = g_value_get_boolean(value); - break; - case PROP_TAB_KEY_CYCLES_THROUGH_ELEMENTS: - priv->tabKeyCyclesThroughElements = g_value_get_boolean(value); - break; - case PROP_ENABLE_DEFAULT_CONTEXT_MENU: - priv->enableDefaultContextMenu = g_value_get_boolean(value); - break; - case PROP_ENABLE_SITE_SPECIFIC_QUIRKS: - priv->enableSiteSpecificQuirks = g_value_get_boolean(value); - break; - case PROP_ENABLE_PAGE_CACHE: - priv->enablePageCache = g_value_get_boolean(value); - break; - case PROP_AUTO_RESIZE_WINDOW: - priv->autoResizeWindow = g_value_get_boolean(value); - break; - case PROP_ENABLE_JAVA_APPLET: - priv->enableJavaApplet = g_value_get_boolean(value); - break; - case PROP_ENABLE_HYPERLINK_AUDITING: - priv->enableHyperlinkAuditing = g_value_get_boolean(value); - break; - case PROP_ENABLE_FULLSCREEN: - priv->enableFullscreen = g_value_get_boolean(value); - break; - case PROP_ENABLE_DNS_PREFETCHING: - priv->enableDNSPrefetching = g_value_get_boolean(value); - break; - case PROP_ENABLE_WEBGL: - priv->enableWebgl = g_value_get_boolean(value); - break; - case PROP_ENABLE_MEDIA_STREAM: - priv->enableMediaStream = g_value_get_boolean(value); - break; - case PROP_ENABLE_WEB_AUDIO: - priv->enableWebAudio = g_value_get_boolean(value); - break; - case PROP_ENABLE_ACCELERATED_COMPOSITING: - priv->enableAcceleratedCompositing = g_value_get_boolean(value); - break; - case PROP_ENABLE_SMOOTH_SCROLLING: - priv->enableSmoothScrolling = g_value_get_boolean(value); - break; - case PROP_ENABLE_CSS_SHADERS: - priv->enableCSSShaders = g_value_get_boolean(value); - break; - case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE: - priv->mediaPlaybackRequiresUserGesture = g_value_get_boolean(value); - break; - case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE: - priv->mediaPlaybackAllowsInline = g_value_get_boolean(value); - break; - case PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT: - priv->enableDisplayOfInsecureContent = g_value_get_boolean(value); - break; - case PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT: - priv->enableRunningOfInsecureContent = g_value_get_boolean(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_settings_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebSettings* web_settings = WEBKIT_WEB_SETTINGS(object); - WebKitWebSettingsPrivate* priv = web_settings->priv; - - switch (prop_id) { - case PROP_DEFAULT_ENCODING: - g_value_set_string(value, priv->defaultEncoding.data()); - break; - case PROP_CURSIVE_FONT_FAMILY: - g_value_set_string(value, priv->cursiveFontFamily.data()); - break; - case PROP_DEFAULT_FONT_FAMILY: - g_value_set_string(value, priv->defaultFontFamily.data()); - break; - case PROP_FANTASY_FONT_FAMILY: - g_value_set_string(value, priv->fantasyFontFamily.data()); - break; - case PROP_MONOSPACE_FONT_FAMILY: - g_value_set_string(value, priv->monospaceFontFamily.data()); - break; - case PROP_SANS_SERIF_FONT_FAMILY: - g_value_set_string(value, priv->sansSerifFontFamily.data()); - break; - case PROP_SERIF_FONT_FAMILY: - g_value_set_string(value, priv->serifFontFamily.data()); - break; - case PROP_DEFAULT_FONT_SIZE: - g_value_set_int(value, priv->defaultFontSize); - break; - case PROP_DEFAULT_MONOSPACE_FONT_SIZE: - g_value_set_int(value, priv->defaultMonospaceFontSize); - break; - case PROP_MINIMUM_FONT_SIZE: - g_value_set_int(value, priv->minimumFontSize); - break; - case PROP_MINIMUM_LOGICAL_FONT_SIZE: - g_value_set_int(value, priv->minimumLogicalFontSize); - break; - case PROP_ENFORCE_96_DPI: - g_value_set_boolean(value, priv->enforce96DPI); - break; - case PROP_AUTO_LOAD_IMAGES: - g_value_set_boolean(value, priv->autoLoadImages); - break; - case PROP_AUTO_SHRINK_IMAGES: - g_value_set_boolean(value, priv->autoShrinkImages); - break; - case PROP_RESPECT_IMAGE_ORIENTATION: - g_value_set_boolean(value, priv->respectImageOrientation); - break; - case PROP_PRINT_BACKGROUNDS: - g_value_set_boolean(value, priv->printBackgrounds); - break; - case PROP_ENABLE_SCRIPTS: - g_value_set_boolean(value, priv->enableScripts); - break; - case PROP_ENABLE_PLUGINS: - g_value_set_boolean(value, priv->enablePlugins); - break; - case PROP_RESIZABLE_TEXT_AREAS: - g_value_set_boolean(value, priv->resizableTextAreas); - break; - case PROP_USER_STYLESHEET_URI: - g_value_set_string(value, priv->userStylesheetURI.data()); - break; - case PROP_ZOOM_STEP: - g_value_set_float(value, priv->zoomStep); - break; - case PROP_ENABLE_DEVELOPER_EXTRAS: - g_value_set_boolean(value, priv->enableDeveloperExtras); - break; - case PROP_ENABLE_PRIVATE_BROWSING: - g_value_set_boolean(value, priv->enablePrivateBrowsing); - break; - case PROP_ENABLE_CARET_BROWSING: - g_value_set_boolean(value, priv->enableCaretBrowsing); - break; - case PROP_ENABLE_HTML5_DATABASE: - g_value_set_boolean(value, priv->enableHTML5Database); - break; - case PROP_ENABLE_HTML5_LOCAL_STORAGE: - g_value_set_boolean(value, priv->enableHTML5LocalStorage); - break; - case PROP_HTML5_LOCAL_STORAGE_DATABASE_PATH: - g_value_set_string(value, priv->html5LocalStorageDatabasePath.data()); - break; - case PROP_ENABLE_SPELL_CHECKING: - g_value_set_boolean(value, priv->enableSpellChecking); - break; - case PROP_SPELL_CHECKING_LANGUAGES: - g_value_set_string(value, priv->spellCheckingLanguages.data()); - break; - case PROP_ENABLE_XSS_AUDITOR: - g_value_set_boolean(value, priv->enableXSSAuditor); - break; - case PROP_ENABLE_SPATIAL_NAVIGATION: - g_value_set_boolean(value, priv->enableSpatialNavigation); - break; - case PROP_ENABLE_FRAME_FLATTENING: - g_value_set_boolean(value, priv->enableFrameFlattening); - break; - case PROP_USER_AGENT: - g_value_set_string(value, priv->userAgent.data()); - break; - case PROP_JAVASCRIPT_CAN_OPEN_WINDOWS_AUTOMATICALLY: - g_value_set_boolean(value, priv->javascriptCanOpenWindowsAutomatically); - break; - case PROP_JAVASCRIPT_CAN_ACCESS_CLIPBOARD: - g_value_set_boolean(value, priv->javascriptCanAccessClipboard); - break; - case PROP_ENABLE_OFFLINE_WEB_APPLICATION_CACHE: - g_value_set_boolean(value, priv->enableOfflineWebApplicationCache); - break; - case PROP_EDITING_BEHAVIOR: - g_value_set_enum(value, priv->editingBehavior); - break; - case PROP_ENABLE_UNIVERSAL_ACCESS_FROM_FILE_URIS: - g_value_set_boolean(value, priv->enableUniversalAccessFromFileURIs); - break; - case PROP_ENABLE_FILE_ACCESS_FROM_FILE_URIS: - g_value_set_boolean(value, priv->enableFileAccessFromFileURIs); - break; - case PROP_ENABLE_DOM_PASTE: - g_value_set_boolean(value, priv->enableDOMPaste); - break; - case PROP_TAB_KEY_CYCLES_THROUGH_ELEMENTS: - g_value_set_boolean(value, priv->tabKeyCyclesThroughElements); - break; - case PROP_ENABLE_DEFAULT_CONTEXT_MENU: - g_value_set_boolean(value, priv->enableDefaultContextMenu); - break; - case PROP_ENABLE_SITE_SPECIFIC_QUIRKS: - g_value_set_boolean(value, priv->enableSiteSpecificQuirks); - break; - case PROP_ENABLE_PAGE_CACHE: - g_value_set_boolean(value, priv->enablePageCache); - break; - case PROP_AUTO_RESIZE_WINDOW: - g_value_set_boolean(value, priv->autoResizeWindow); - break; - case PROP_ENABLE_JAVA_APPLET: - g_value_set_boolean(value, priv->enableJavaApplet); - break; - case PROP_ENABLE_HYPERLINK_AUDITING: - g_value_set_boolean(value, priv->enableHyperlinkAuditing); - break; - case PROP_ENABLE_FULLSCREEN: - g_value_set_boolean(value, priv->enableFullscreen); - break; - case PROP_ENABLE_DNS_PREFETCHING: - g_value_set_boolean(value, priv->enableDNSPrefetching); - break; - case PROP_ENABLE_WEBGL: - g_value_set_boolean(value, priv->enableWebgl); - break; - case PROP_ENABLE_MEDIA_STREAM: - g_value_set_boolean(value, priv->enableMediaStream); - break; - case PROP_ENABLE_WEB_AUDIO: - g_value_set_boolean(value, priv->enableWebAudio); - break; - case PROP_ENABLE_ACCELERATED_COMPOSITING: - g_value_set_boolean(value, priv->enableAcceleratedCompositing); - break; - case PROP_ENABLE_SMOOTH_SCROLLING: - g_value_set_boolean(value, priv->enableSmoothScrolling); - break; - case PROP_ENABLE_CSS_SHADERS: - g_value_set_boolean(value, priv->enableCSSShaders); - break; - case PROP_MEDIA_PLAYBACK_REQUIRES_USER_GESTURE: - g_value_set_boolean(value, priv->mediaPlaybackRequiresUserGesture); - break; - case PROP_MEDIA_PLAYBACK_ALLOWS_INLINE: - g_value_set_boolean(value, priv->mediaPlaybackAllowsInline); - break; - case PROP_ENABLE_DISPLAY_OF_INSECURE_CONTENT: - g_value_set_boolean(value, priv->enableDisplayOfInsecureContent); - break; - case PROP_ENABLE_RUNNING_OF_INSECURE_CONTENT: - g_value_set_boolean(value, priv->enableRunningOfInsecureContent); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/** - * webkit_web_settings_new: - * - * Creates a new #WebKitWebSettings instance with default values. It must - * be manually attached to a WebView. - * - * Returns: a new #WebKitWebSettings instance - **/ -WebKitWebSettings* webkit_web_settings_new() -{ - return WEBKIT_WEB_SETTINGS(g_object_new(WEBKIT_TYPE_WEB_SETTINGS, NULL)); -} - -/** - * webkit_web_settings_copy: - * @web_settings: a #WebKitWebSettings to copy. - * - * Copies an existing #WebKitWebSettings instance. - * - * Returns: (transfer full): a new #WebKitWebSettings instance - **/ -WebKitWebSettings* webkit_web_settings_copy(WebKitWebSettings* original) -{ - unsigned numberOfProperties = 0; - GOwnPtr<GParamSpec*> properties(g_object_class_list_properties( - G_OBJECT_CLASS(WEBKIT_WEB_SETTINGS_GET_CLASS(original)), &numberOfProperties)); - GOwnPtr<GParameter> parameters(g_new0(GParameter, numberOfProperties)); - - for (size_t i = 0; i < numberOfProperties; i++) { - GParamSpec* property = properties.get()[i]; - GParameter* parameter = parameters.get() + i; - - if (!(property->flags & (G_PARAM_CONSTRUCT | G_PARAM_READWRITE))) - continue; - - parameter->name = property->name; - g_value_init(¶meter->value, property->value_type); - g_object_get_property(G_OBJECT(original), property->name, ¶meter->value); - } - - return WEBKIT_WEB_SETTINGS(g_object_newv(WEBKIT_TYPE_WEB_SETTINGS, numberOfProperties, parameters.get())); - -} - -/** - * webkit_web_settings_add_extra_plugin_directory: - * @web_view: a #WebKitWebView - * @directory: the directory to add - * - * Adds the @directory to paths where @web_view will search for plugins. - * - * Since: 1.0.3 - */ -void webkit_web_settings_add_extra_plugin_directory(WebKitWebView* webView, const gchar* directory) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - PluginDatabase::installedPlugins()->addExtraPluginDirectory(filenameToString(directory)); -} - -/** - * webkit_web_settings_get_user_agent: - * @web_settings: a #WebKitWebSettings - * - * Returns: the User-Agent string currently used by the web view(s) associated - * with the @web_settings. - * - * Since: 1.1.11 - */ -const gchar* webkit_web_settings_get_user_agent(WebKitWebSettings* webSettings) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_SETTINGS(webSettings), 0); - return webSettings->priv->userAgent.data(); -} - -static void initializeDomainsList(HashSet<String>& googleDomains) -{ - // Google search domains. - googleDomains.add("biz"); - googleDomains.add("com"); - googleDomains.add("net"); - googleDomains.add("org"); - googleDomains.add("ae"); - googleDomains.add("ag"); - googleDomains.add("am"); - googleDomains.add("at"); - googleDomains.add("az"); - googleDomains.add("be"); - googleDomains.add("bi"); - googleDomains.add("ca"); - googleDomains.add("cc"); - googleDomains.add("cd"); - googleDomains.add("cg"); - googleDomains.add("ch"); - googleDomains.add("cl"); - googleDomains.add("com.br"); - googleDomains.add("com.do"); - googleDomains.add("co.uk"); - googleDomains.add("co.kr"); - googleDomains.add("co.jp"); - googleDomains.add("de"); - googleDomains.add("dj"); - googleDomains.add("dk"); - googleDomains.add("ee"); - googleDomains.add("es"); - googleDomains.add("fi"); - googleDomains.add("fm"); - googleDomains.add("fr"); - googleDomains.add("gg"); - googleDomains.add("gl"); - googleDomains.add("gm"); - googleDomains.add("gs"); - googleDomains.add("hn"); - googleDomains.add("hu"); - googleDomains.add("ie"); - googleDomains.add("it"); - googleDomains.add("je"); - googleDomains.add("kz"); - googleDomains.add("li"); - googleDomains.add("lt"); - googleDomains.add("lu"); - googleDomains.add("lv"); - googleDomains.add("ma"); - googleDomains.add("ms"); - googleDomains.add("mu"); - googleDomains.add("mw"); - googleDomains.add("nl"); - googleDomains.add("no"); - googleDomains.add("nu"); - googleDomains.add("pl"); - googleDomains.add("pn"); - googleDomains.add("pt"); - googleDomains.add("ru"); - googleDomains.add("rw"); - googleDomains.add("sh"); - googleDomains.add("sk"); - googleDomains.add("sm"); - googleDomains.add("st"); - googleDomains.add("td"); - googleDomains.add("tk"); - googleDomains.add("tp"); - googleDomains.add("tv"); - googleDomains.add("us"); - googleDomains.add("uz"); - googleDomains.add("ws"); -} - -static void initializeOtherGoogleDomains(Vector<String>& otherGoogleDomains) -{ - otherGoogleDomains.append("gmail.com"); - otherGoogleDomains.append("youtube.com"); - otherGoogleDomains.append("gstatic.com"); - otherGoogleDomains.append("ytimg.com"); -} - -static bool isGoogleDomain(String host) -{ - DEFINE_STATIC_LOCAL(HashSet<String>, googleDomains, ()); - DEFINE_STATIC_LOCAL(Vector<String>, otherGoogleDomains, ()); - - if (googleDomains.isEmpty()) - initializeDomainsList(googleDomains); - - if (otherGoogleDomains.isEmpty()) - initializeOtherGoogleDomains(otherGoogleDomains); - - // First check if this is one of the various google.com international domains. - int position = host.find(".google."); - if (position > 0 && googleDomains.contains(host.substring(position + sizeof(".google.") - 1))) - return true; - - // Then we check the possibility of it being one of the other, .com-only google domains. - for (unsigned int i = 0; i < otherGoogleDomains.size(); i++) { - if (host.endsWith(otherGoogleDomains.at(i))) - return true; - } - - return false; -} - -static String userAgentForURL(const KURL& url) -{ - // For Google domains, drop the browser's custom User Agent string, and use the - // standard Chrome one, so they don't give us a broken experience. - if (isGoogleDomain(url.host())) - return standardUserAgent(); - - return String(); -} - -/* - * Private usage only. - * webkitWebSettingsUserAgentForURI: - * @web_settings: the #WebKitWebSettings object to query - * @uri: the URI we want to know the User-Agent for - * - * Some web sites have been using User-Agent parsing heavily to decide - * the kind of content that is sent to the browser. When - * WebKitWebSettings:enable-site-specific-quirks is enabled WebKitGTK+ - * will use its knowledge of sites doing bad things and lie to them by - * sending either the default User-Agent, i.e. not using the one - * specified by the browser in WebKitWebSettings:user-agent, or the - * Safari one (including lying about the underlying operating system). - * - * This function allows the browser to figure out what User-Agent is - * going to be sent to a particular URI. - * - * Please note that if WebKitWebSettings:use-site-specific-quirks is - * turned off calling this function is the same as calling - * webkit_web_settings_get_user_agent(), except you have to free the - * result. - * - * Returns: (transfer full): a newly allocated string containing the - * User-Agent that will be sent for the given URI. - */ -char* webkitWebSettingsUserAgentForURI(WebKitWebSettings* webSettings, const char* uri) -{ - if (webSettings->priv->enableSiteSpecificQuirks) { - String userAgentString = userAgentForURL(WebCore::KURL(WebCore::KURL(), String::fromUTF8(uri))); - if (!userAgentString.isEmpty()) - return g_strdup(userAgentString.utf8().data()); - } - - return g_strdup(webkit_web_settings_get_user_agent(webSettings)); -} - -namespace WebKit { - -WebCore::EditingBehaviorType core(WebKitEditingBehavior type) -{ - return static_cast<WebCore::EditingBehaviorType>(type); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebsettings.h b/Source/WebKit/gtk/webkit/webkitwebsettings.h deleted file mode 100644 index 546212b6c..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebsettings.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 2008 Christian Dywan <christian@imendio.com> - * Copyright (C) 2009 Jan Michael Alonzo <jmalonzo@gmail.com - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebsettings_h -#define webkitwebsettings_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_SETTINGS (webkit_web_settings_get_type()) -#define WEBKIT_WEB_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettings)) -#define WEBKIT_WEB_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsClass)) -#define WEBKIT_IS_WEB_SETTINGS(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_SETTINGS)) -#define WEBKIT_IS_WEB_SETTINGS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_SETTINGS)) -#define WEBKIT_WEB_SETTINGS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_SETTINGS, WebKitWebSettingsClass)) - -/** - * WebKitEditingBehavior: - * @WEBKIT_EDITING_BEHAVIOR_MAC: Editing behavior mimicking OS X user interfaces. - * @WEBKIT_EDITING_BEHAVIOR_WINDOWS: Editing behavior mimicking Windows user interfaces. - * @WEBKIT_EDITING_BEHAVIOR_UNIX: Editing behavior mimicking free desktop user interfaces. - * - * Enum values used for determining the editing behavior of editable elements. - * - **/ -typedef enum { - WEBKIT_EDITING_BEHAVIOR_MAC, - WEBKIT_EDITING_BEHAVIOR_WINDOWS, - WEBKIT_EDITING_BEHAVIOR_UNIX -} WebKitEditingBehavior; - -typedef struct _WebKitWebSettingsPrivate WebKitWebSettingsPrivate; - -struct _WebKitWebSettings { - GObject parent_instance; - - /*< private >*/ - WebKitWebSettingsPrivate *priv; -}; - -struct _WebKitWebSettingsClass { - GObjectClass parent_class; - - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_web_settings_get_type (void); - -WEBKIT_API WebKitWebSettings * -webkit_web_settings_new (void); - -WEBKIT_API WebKitWebSettings * -webkit_web_settings_copy (WebKitWebSettings *web_settings); - -WEBKIT_API const gchar * -webkit_web_settings_get_user_agent (WebKitWebSettings *web_settings); - -G_END_DECLS - -#endif /* webkitwebsettings_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h b/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h deleted file mode 100644 index 70b88657c..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebsettingsprivate.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebsettingsprivate_h -#define webkitwebsettingsprivate_h - -#include "webkitwebsettings.h" -#include <wtf/text/CString.h> - -extern "C" { - -struct _WebKitWebSettingsPrivate { - CString defaultEncoding; - CString cursiveFontFamily; - CString defaultFontFamily; - CString fantasyFontFamily; - CString monospaceFontFamily; - CString sansSerifFontFamily; - CString serifFontFamily; - guint defaultFontSize; - guint defaultMonospaceFontSize; - guint minimumFontSize; - guint minimumLogicalFontSize; - gboolean enforce96DPI; - gboolean autoLoadImages; - gboolean autoShrinkImages; - gboolean respectImageOrientation; - gboolean printBackgrounds; - gboolean enableScripts; - gboolean enablePlugins; - gboolean resizableTextAreas; - CString userStylesheetURI; - gfloat zoomStep; - gboolean enableDeveloperExtras; - gboolean enablePrivateBrowsing; - gboolean enableSpellChecking; - CString spellCheckingLanguages; - gboolean enableCaretBrowsing; - gboolean enableHTML5Database; - gboolean enableHTML5LocalStorage; - CString html5LocalStorageDatabasePath; - gboolean enableXSSAuditor; - gboolean enableSpatialNavigation; - gboolean enableFrameFlattening; - CString userAgent; - gboolean javascriptCanOpenWindowsAutomatically; - gboolean javascriptCanAccessClipboard; - gboolean enableOfflineWebApplicationCache; - WebKitEditingBehavior editingBehavior; - gboolean enableUniversalAccessFromFileURIs; - gboolean enableFileAccessFromFileURIs; - gboolean enableDOMPaste; - gboolean tabKeyCyclesThroughElements; - gboolean enableDefaultContextMenu; - gboolean enableSiteSpecificQuirks; - gboolean enablePageCache; - gboolean autoResizeWindow; - gboolean enableJavaApplet; - gboolean enableHyperlinkAuditing; - gboolean enableFullscreen; - gboolean enableDNSPrefetching; - gboolean enableWebgl; - gboolean enableMediaStream; - gboolean enableWebAudio; - gboolean enableAcceleratedCompositing; - gboolean enableSmoothScrolling; - gboolean enableCSSShaders; - gboolean mediaPlaybackRequiresUserGesture; - gboolean mediaPlaybackAllowsInline; - gboolean enableDisplayOfInsecureContent; - gboolean enableRunningOfInsecureContent; -}; - -WEBKIT_API void webkit_web_settings_add_extra_plugin_directory(WebKitWebView*, const gchar* directory); - -WEBKIT_API char* webkitWebSettingsUserAgentForURI(WebKitWebSettings*, const gchar* uri); - -GSList* webkitWebViewGetEnchantDicts(WebKitWebView*); - -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebview.cpp b/Source/WebKit/gtk/webkit/webkitwebview.cpp deleted file mode 100644 index 76bbc1e3c..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebview.cpp +++ /dev/null @@ -1,5547 +0,0 @@ -/* - * Copyright (C) 2007, 2008 Holger Hans Peter Freyther - * Copyright (C) 2007, 2008, 2009 Christian Dywan <christian@imendio.com> - * Copyright (C) 2007 Xan Lopez <xan@gnome.org> - * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Jan Alonzo <jmalonzo@unpluggable.com> - * Copyright (C) 2008 Gustavo Noronha Silva <gns@gnome.org> - * Copyright (C) 2008 Nuanti Ltd. - * Copyright (C) 2008, 2009, 2010 Collabora Ltd. - * Copyright (C) 2009, 2010, 2012 Igalia S.L. - * Copyright (C) 2009 Movial Creative Technologies Inc. - * Copyright (C) 2009 Bobby Powers - * Copyright (C) 2010 Joone Hur <joone@kldp.org> - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "config.h" -#include "webkitwebview.h" - -#include "AXObjectCache.h" -#include "ArchiveResource.h" -#include "BackForwardListImpl.h" -#include "CairoUtilities.h" -#include "Chrome.h" -#include "ChromeClientGtk.h" -#include "ClipboardUtilitiesGtk.h" -#include "ContextMenu.h" -#include "ContextMenuClientGtk.h" -#include "ContextMenuController.h" -#include "Cursor.h" -#include "DatabaseManager.h" -#include "Document.h" -#include "DocumentLoader.h" -#include "DragActions.h" -#include "DragClientGtk.h" -#include "DragController.h" -#include "DragData.h" -#include "DragSession.h" -#include "DumpRenderTreeSupportGtk.h" -#include "Editor.h" -#include "EditorClientGtk.h" -#include "EventHandler.h" -#include "FloatQuad.h" -#include "FocusController.h" -#include "FrameLoader.h" -#include "FrameLoaderClient.h" -#include "FrameLoaderTypes.h" -#include "FrameView.h" -#include "GOwnPtrGtk.h" -#include "GeolocationClientGtk.h" -#include "GeolocationController.h" -#include "GraphicsContext.h" -#include "GtkUtilities.h" -#include "GtkVersioning.h" -#include "HTMLNames.h" -#include "HitTestRequest.h" -#include "HitTestResult.h" -#include "InspectorClientGtk.h" -#include "MemoryCache.h" -#include "MouseEventWithHitTestResults.h" -#include "NotImplemented.h" -#include "PageCache.h" -#include "Pasteboard.h" -#include "PasteboardHelper.h" -#include "PlatformKeyboardEvent.h" -#include "PlatformWheelEvent.h" -#include "ProgressTracker.h" -#include "RenderView.h" -#include "ResourceHandle.h" -#include "RuntimeEnabledFeatures.h" -#include "ScriptController.h" -#include "ScriptValue.h" -#include "Settings.h" -#include "WebKitDOMDocumentPrivate.h" -#include "webkitdownload.h" -#include "webkitdownloadprivate.h" -#include "webkitenumtypes.h" -#include "webkitfavicondatabase.h" -#include "webkitgeolocationpolicydecision.h" -#include "webkitglobalsprivate.h" -#include "webkithittestresultprivate.h" -#include "webkiticondatabase.h" -#include "webkitmarshal.h" -#include "webkitnetworkrequest.h" -#include "webkitnetworkresponse.h" -#include "webkitviewportattributes.h" -#include "webkitviewportattributesprivate.h" -#include "webkitwebbackforwardlist.h" -#include "webkitwebframeprivate.h" -#include "webkitwebhistoryitem.h" -#include "webkitwebhistoryitemprivate.h" -#include "webkitwebinspector.h" -#include "webkitwebinspectorprivate.h" -#include "webkitwebpolicydecision.h" -#include "webkitwebresource.h" -#include "webkitwebresourceprivate.h" -#include "webkitwebsettingsprivate.h" -#include "webkitwebplugindatabaseprivate.h" -#include "webkitwebwindowfeatures.h" -#include "webkitwebviewprivate.h" -#include <gdk/gdkkeysyms.h> -#include <glib/gi18n-lib.h> -#include <wtf/gobject/GOwnPtr.h> -#include <wtf/text/CString.h> - -#if ENABLE(DEVICE_ORIENTATION) -#include "DeviceMotionClientGtk.h" -#include "DeviceOrientationClientGtk.h" -#endif - -/** - * SECTION:webkitwebview - * @short_description: The central class of the WebKitGTK+ API - * @see_also: #WebKitWebSettings, #WebKitWebFrame - * - * #WebKitWebView is the central class of the WebKitGTK+ API. It is a - * #GtkWidget implementing the scrolling interface which means you can - * embed in a #GtkScrolledWindow. It is responsible for managing the - * drawing of the content, forwarding of events. You can load any URI - * into the #WebKitWebView or any kind of data string. With #WebKitWebSettings - * you can control various aspects of the rendering and loading of the content. - * Each #WebKitWebView has exactly one #WebKitWebFrame as main frame. A - * #WebKitWebFrame can have n children. - * - * <programlisting> - * /<!-- -->* Create the widgets *<!-- -->/ - * GtkWidget *main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - * GtkWidget *scrolled_window = gtk_scrolled_window_new (NULL, NULL); - * GtkWidget *web_view = webkit_web_view_new (); - * - * /<!-- -->* Place the WebKitWebView in the GtkScrolledWindow *<!-- -->/ - * gtk_container_add (GTK_CONTAINER (scrolled_window), web_view); - * gtk_container_add (GTK_CONTAINER (main_window), scrolled_window); - * - * /<!-- -->* Open a webpage *<!-- -->/ - * webkit_web_view_load_uri (WEBKIT_WEB_VIEW (web_view), "http://www.gnome.org"); - * - * /<!-- -->* Show the result *<!-- -->/ - * gtk_window_set_default_size (GTK_WINDOW (main_window), 800, 600); - * gtk_widget_show_all (main_window); - * </programlisting> - */ - -using namespace WebKit; -using namespace WebCore; - -enum { - /* normal signals */ - NAVIGATION_REQUESTED, - NEW_WINDOW_POLICY_DECISION_REQUESTED, - NAVIGATION_POLICY_DECISION_REQUESTED, - MIME_TYPE_POLICY_DECISION_REQUESTED, - CREATE_WEB_VIEW, - WEB_VIEW_READY, - WINDOW_OBJECT_CLEARED, - LOAD_STARTED, - LOAD_COMMITTED, - LOAD_PROGRESS_CHANGED, - LOAD_ERROR, - LOAD_FINISHED, - TITLE_CHANGED, - HOVERING_OVER_LINK, - POPULATE_POPUP, - STATUS_BAR_TEXT_CHANGED, - ICON_LOADED, - SELECTION_CHANGED, - CONSOLE_MESSAGE, - SCRIPT_ALERT, - SCRIPT_CONFIRM, - SCRIPT_PROMPT, - SELECT_ALL, - COPY_CLIPBOARD, - PASTE_CLIPBOARD, - CUT_CLIPBOARD, - DOWNLOAD_REQUESTED, - MOVE_CURSOR, - PRINT_REQUESTED, - PLUGIN_WIDGET, - CLOSE_WEB_VIEW, - UNDO, - REDO, - DATABASE_QUOTA_EXCEEDED, - RESOURCE_REQUEST_STARTING, - DOCUMENT_LOAD_FINISHED, - GEOLOCATION_POLICY_DECISION_REQUESTED, - GEOLOCATION_POLICY_DECISION_CANCELLED, - ONLOAD_EVENT, - FRAME_CREATED, - SHOULD_BEGIN_EDITING, - SHOULD_END_EDITING, - SHOULD_INSERT_NODE, - SHOULD_INSERT_TEXT, - SHOULD_DELETE_RANGE, - SHOULD_SHOW_DELETE_INTERFACE_FOR_ELEMENT, - SHOULD_CHANGE_SELECTED_RANGE, - SHOULD_APPLY_STYLE, - EDITING_BEGAN, - USER_CHANGED_CONTENTS, - EDITING_ENDED, - VIEWPORT_ATTRIBUTES_RECOMPUTE_REQUESTED, - VIEWPORT_ATTRIBUTES_CHANGED, - RESOURCE_RESPONSE_RECEIVED, - RESOURCE_LOAD_FINISHED, - RESOURCE_CONTENT_LENGTH_RECEIVED, - RESOURCE_LOAD_FAILED, - ENTERING_FULLSCREEN, - LEAVING_FULLSCREEN, - CONTEXT_MENU, - RUN_FILE_CHOOSER, - - LAST_SIGNAL -}; - -enum { - PROP_0, - - PROP_TITLE, - PROP_URI, - PROP_COPY_TARGET_LIST, - PROP_PASTE_TARGET_LIST, - PROP_EDITABLE, - PROP_SETTINGS, - PROP_WEB_INSPECTOR, - PROP_VIEWPORT_ATTRIBUTES, - PROP_WINDOW_FEATURES, - PROP_TRANSPARENT, - PROP_ZOOM_LEVEL, - PROP_FULL_CONTENT_ZOOM, - PROP_LOAD_STATUS, - PROP_PROGRESS, - PROP_ENCODING, - PROP_CUSTOM_ENCODING, - PROP_ICON_URI, - PROP_IM_CONTEXT, -#ifdef GTK_API_VERSION_2 - PROP_VIEW_MODE, -#else - PROP_VIEW_MODE, - PROP_HADJUSTMENT, - PROP_VADJUSTMENT, - PROP_HSCROLL_POLICY, - PROP_VSCROLL_POLICY, -#endif - - // Undocumented. Leave these properties at the end of the list - // so that we can remove them without breaking ABI compatibility. - PROP_SELF_SCROLLING -}; - -static guint webkit_web_view_signals[LAST_SIGNAL] = { 0, }; - -#ifdef GTK_API_VERSION_2 -G_DEFINE_TYPE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER) -#else -G_DEFINE_TYPE_WITH_CODE(WebKitWebView, webkit_web_view, GTK_TYPE_CONTAINER, - G_IMPLEMENT_INTERFACE(GTK_TYPE_SCROLLABLE, 0)) -#endif - -static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView); -static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures); -static void webkitWebViewDirectionChanged(WebKitWebView*, GtkTextDirection previousDirection, gpointer); - -#if ENABLE(CONTEXT_MENUS) -static void PopupMenuPositionFunc(GtkMenu* menu, gint *x, gint *y, gboolean *pushIn, gpointer userData) -{ - WebKitWebView* view = WEBKIT_WEB_VIEW(userData); - WebKitWebViewPrivate* priv = view->priv; - GdkScreen* screen = gtk_widget_get_screen(GTK_WIDGET(view)); - GtkRequisition menuSize; - -#ifdef GTK_API_VERSION_2 - gtk_widget_size_request(GTK_WIDGET(menu), &menuSize); -#else - gtk_widget_get_preferred_size(GTK_WIDGET(menu), &menuSize, NULL); -#endif - - *x = priv->lastPopupXPosition; - if ((*x + menuSize.width) >= gdk_screen_get_width(screen)) - *x -= menuSize.width; - - *y = priv->lastPopupYPosition; - if ((*y + menuSize.height) >= gdk_screen_get_height(screen)) - *y -= menuSize.height; - - *pushIn = FALSE; -} -#endif - -static Node* getFocusedNode(Frame* frame) -{ - if (Document* doc = frame->document()) - return doc->focusedElement(); - return 0; -} - -#if ENABLE(CONTEXT_MENUS) -static void contextMenuItemActivated(GtkMenuItem* item, ContextMenuController* controller) -{ - ContextMenuItem contextItem(item); - controller->contextMenuItemSelected(&contextItem); -} - -static void contextMenuConnectActivate(GtkMenuItem* item, ContextMenuController* controller) -{ - if (GTK_IS_SEPARATOR_MENU_ITEM(item)) - return; - - if (GtkWidget* menu = gtk_menu_item_get_submenu(item)) { - gtk_container_foreach(GTK_CONTAINER(menu), (GtkCallback)contextMenuConnectActivate, controller); - return; - } - - g_signal_connect(item, "activate", G_CALLBACK(contextMenuItemActivated), controller); -} - -static MouseEventWithHitTestResults prepareMouseEventForFrame(Frame* frame, const PlatformMouseEvent& event) -{ - HitTestRequest request(HitTestRequest::Active| HitTestRequest::DisallowShadowContent); - IntPoint point = frame->view()->windowToContents(event.position()); - return frame->document()->prepareMouseEvent(request, point, event); -} - -// Check enable-default-context-menu setting for compatibility. -static bool defaultContextMenuEnabled(WebKitWebView* webView) -{ - gboolean enableDefaultContextMenu; - g_object_get(webkit_web_view_get_settings(webView), "enable-default-context-menu", &enableDefaultContextMenu, NULL); - return enableDefaultContextMenu; -} - -static gboolean webkit_web_view_forward_context_menu_event(WebKitWebView* webView, const PlatformMouseEvent& event, bool triggeredWithKeyboard) -{ - Page* page = core(webView); - page->contextMenuController()->clearContextMenu(); - Frame* focusedFrame; - Frame* mainFrame = page->mainFrame(); - gboolean mousePressEventResult = FALSE; - GRefPtr<WebKitHitTestResult> hitTestResult; - - if (!mainFrame->view()) - return FALSE; - - mainFrame->view()->setCursor(pointerCursor()); - if (page->subframeCount()) { - MouseEventWithHitTestResults mev = prepareMouseEventForFrame(mainFrame, event); - Frame* targetFrame = EventHandler::subframeForHitTestResult(mev); - if (!targetFrame) - targetFrame = mainFrame; - - focusedFrame = page->focusController()->focusedOrMainFrame(); - if (targetFrame != focusedFrame) { - page->focusController()->setFocusedFrame(targetFrame); - focusedFrame = targetFrame; - } - if (focusedFrame == mainFrame) - hitTestResult = adoptGRef(kit(mev.hitTestResult())); - } else - focusedFrame = mainFrame; - - if (focusedFrame->view() && focusedFrame->eventHandler()->handleMousePressEvent(event)) - mousePressEventResult = TRUE; - - bool handledEvent = focusedFrame->eventHandler()->sendContextMenuEvent(event); - if (!handledEvent) - return FALSE; - - // If coreMenu is NULL, this means WebCore decided to not create - // the default context menu; this may happen when the page is - // handling the right-click for reasons other than the context menu. - ContextMenuController* controller = page->contextMenuController(); - ContextMenu* coreMenu = controller->contextMenu(); - if (!coreMenu) - return mousePressEventResult; - - GtkMenu* defaultMenu = coreMenu->platformDescription(); - ASSERT(defaultMenu); - - // We connect the "activate" signal here rather than in ContextMenuGtk to avoid - // a layering violation. ContextMenuGtk should not know about the ContextMenuController. - gtk_container_foreach(GTK_CONTAINER(defaultMenu), reinterpret_cast<GtkCallback>(contextMenuConnectActivate), controller); - - if (!hitTestResult) { - MouseEventWithHitTestResults mev = prepareMouseEventForFrame(focusedFrame, event); - hitTestResult = adoptGRef(kit(mev.hitTestResult())); - } - - gboolean handled; - g_signal_emit(webView, webkit_web_view_signals[CONTEXT_MENU], 0, defaultMenu, hitTestResult.get(), triggeredWithKeyboard, &handled); - if (handled) - return TRUE; - - // Return now if default context menu is disabled by enable-default-context-menu setting. - // Check enable-default-context-menu setting for compatibility. - if (!defaultContextMenuEnabled(webView)) - return FALSE; - - // Emit populate-popup signal for compatibility. - g_signal_emit(webView, webkit_web_view_signals[POPULATE_POPUP], 0, defaultMenu); - - // If the context menu is now empty, don't show it. - GOwnPtr<GList> items(gtk_container_get_children(GTK_CONTAINER(defaultMenu))); - if (!items) - return FALSE; - - WebKitWebViewPrivate* priv = webView->priv; - priv->currentMenu = defaultMenu; - priv->lastPopupXPosition = event.globalPosition().x(); - priv->lastPopupYPosition = event.globalPosition().y(); - - gtk_menu_popup(defaultMenu, 0, 0, &PopupMenuPositionFunc, webView, event.button() + 1, gtk_get_current_event_time()); - return TRUE; -} - -static const int gContextMenuMargin = 1; -static IntPoint getLocationForKeyboardGeneratedContextMenu(Frame* frame) -{ - FrameSelection* selection = frame->selection(); - if (!selection->selection().isNonOrphanedCaretOrRange() - || (selection->selection().isCaret() && !selection->selection().isContentEditable())) { - if (Node* focusedNode = getFocusedNode(frame)) - return focusedNode->pixelSnappedBoundingBox().location(); - - // There was no selection and no focused node, so just put the context - // menu into the corner of the view, offset slightly. - return IntPoint(gContextMenuMargin, gContextMenuMargin); - } - - // selection->selection().firstRange can return 0 here, but if that was the case - // selection->selection().isNonOrphanedCaretOrRange() would have returned false - // above, so we do not have to check it. - IntRect firstRect = frame->editor().firstRectForRange(selection->selection().firstRange().get()); - return IntPoint(firstRect.x(), firstRect.maxY()); -} - -static gboolean webkit_web_view_popup_menu_handler(GtkWidget* widget) -{ - Frame* frame = core(WEBKIT_WEB_VIEW(widget))->focusController()->focusedOrMainFrame(); - IntPoint location = getLocationForKeyboardGeneratedContextMenu(frame); - - FrameView* view = frame->view(); - if (!view) - return FALSE; - - // Never let the context menu touch the very edge of the view. - location = view->contentsToWindow(location); - location.expandedTo(IntPoint(gContextMenuMargin, gContextMenuMargin)); - location.shrunkTo(IntPoint(view->width() - gContextMenuMargin, view->height() - gContextMenuMargin)); - - IntPoint globalPoint(convertWidgetPointToScreenPoint(widget, location)); - PlatformMouseEvent event(location, globalPoint, RightButton, PlatformEvent::MousePressed, 0, false, false, false, false, gtk_get_current_event_time()); - return webkit_web_view_forward_context_menu_event(WEBKIT_WEB_VIEW(widget), event, true); -} -#endif // ENABLE(CONTEXT_MENUS) - -static void setHorizontalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustment) -{ - // This may be called after the page has been destroyed, in which case we do nothing. - Page* page = core(webView); - if (page) - static_cast<WebKit::ChromeClient*>(page->chrome().client())->adjustmentWatcher()->setHorizontalAdjustment(adjustment); -} - -static void setVerticalAdjustment(WebKitWebView* webView, GtkAdjustment* adjustment) -{ - // This may be called after the page has been destroyed, in which case we do nothing. - Page* page = core(webView); - if (page) - static_cast<WebKit::ChromeClient*>(page->chrome().client())->adjustmentWatcher()->setVerticalAdjustment(adjustment); -} - -#ifndef GTK_API_VERSION_2 -static GtkAdjustment* getHorizontalAdjustment(WebKitWebView* webView) -{ - Page* page = core(webView); - if (page) - return static_cast<WebKit::ChromeClient*>(page->chrome().client())->adjustmentWatcher()->horizontalAdjustment(); - return 0; -} - -static GtkAdjustment* getVerticalAdjustment(WebKitWebView* webView) -{ - Page* page = core(webView); - if (page) - return static_cast<WebKit::ChromeClient*>(page->chrome().client())->adjustmentWatcher()->verticalAdjustment(); - return 0; -} - -static void setHorizontalScrollPolicy(WebKitWebView* webView, GtkScrollablePolicy policy) -{ - webView->priv->horizontalScrollingPolicy = policy; - gtk_widget_queue_resize(GTK_WIDGET(webView)); -} - -static void setVerticalScrollPolicy(WebKitWebView* webView, GtkScrollablePolicy policy) -{ - webView->priv->verticalScrollingPolicy = policy; - gtk_widget_queue_resize(GTK_WIDGET(webView)); -} - -static GtkScrollablePolicy getHorizontalScrollPolicy(WebKitWebView* webView) -{ - return webView->priv->horizontalScrollingPolicy; -} - -static GtkScrollablePolicy getVerticalScrollPolicy(WebKitWebView* webView) -{ - return webView->priv->verticalScrollingPolicy; -} - -#endif - -static void webkit_web_view_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(object); - - switch(prop_id) { - case PROP_TITLE: - g_value_set_string(value, webkit_web_view_get_title(webView)); - break; - case PROP_URI: - g_value_set_string(value, webkit_web_view_get_uri(webView)); - break; - case PROP_COPY_TARGET_LIST: - g_value_set_boxed(value, webkit_web_view_get_copy_target_list(webView)); - break; - case PROP_PASTE_TARGET_LIST: - g_value_set_boxed(value, webkit_web_view_get_paste_target_list(webView)); - break; - case PROP_EDITABLE: - g_value_set_boolean(value, webkit_web_view_get_editable(webView)); - break; - case PROP_SETTINGS: - g_value_set_object(value, webkit_web_view_get_settings(webView)); - break; - case PROP_WEB_INSPECTOR: - g_value_set_object(value, webkit_web_view_get_inspector(webView)); - break; - case PROP_VIEWPORT_ATTRIBUTES: - g_value_set_object(value, webkit_web_view_get_viewport_attributes(webView)); - break; - case PROP_WINDOW_FEATURES: - g_value_set_object(value, webkit_web_view_get_window_features(webView)); - break; - case PROP_TRANSPARENT: - g_value_set_boolean(value, webkit_web_view_get_transparent(webView)); - break; - case PROP_ZOOM_LEVEL: - g_value_set_float(value, webkit_web_view_get_zoom_level(webView)); - break; - case PROP_FULL_CONTENT_ZOOM: - g_value_set_boolean(value, webkit_web_view_get_full_content_zoom(webView)); - break; - case PROP_ENCODING: - g_value_set_string(value, webkit_web_view_get_encoding(webView)); - break; - case PROP_CUSTOM_ENCODING: - g_value_set_string(value, webkit_web_view_get_custom_encoding(webView)); - break; - case PROP_LOAD_STATUS: - g_value_set_enum(value, webkit_web_view_get_load_status(webView)); - break; - case PROP_PROGRESS: - g_value_set_double(value, webkit_web_view_get_progress(webView)); - break; - case PROP_ICON_URI: - g_value_set_string(value, webkit_web_view_get_icon_uri(webView)); - break; - case PROP_IM_CONTEXT: - g_value_set_object(value, webView->priv->imFilter.context()); - break; - case PROP_VIEW_MODE: - g_value_set_enum(value, webkit_web_view_get_view_mode(webView)); - break; -#ifndef GTK_API_VERSION_2 - case PROP_HADJUSTMENT: - g_value_set_object(value, getHorizontalAdjustment(webView)); - break; - case PROP_VADJUSTMENT: - g_value_set_object(value, getVerticalAdjustment(webView)); - break; - case PROP_HSCROLL_POLICY: - g_value_set_enum(value, getHorizontalScrollPolicy(webView)); - break; - case PROP_VSCROLL_POLICY: - g_value_set_enum(value, getVerticalScrollPolicy(webView)); - break; -#endif - case PROP_SELF_SCROLLING: - g_value_set_boolean(value, webView->priv->selfScrolling); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - } -} - -static void webkit_web_view_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec *pspec) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(object); - - switch(prop_id) { - case PROP_EDITABLE: - webkit_web_view_set_editable(webView, g_value_get_boolean(value)); - break; - case PROP_SETTINGS: - webkit_web_view_set_settings(webView, WEBKIT_WEB_SETTINGS(g_value_get_object(value))); - break; - case PROP_WINDOW_FEATURES: - webkit_web_view_set_window_features(webView, WEBKIT_WEB_WINDOW_FEATURES(g_value_get_object(value))); - break; - case PROP_TRANSPARENT: - webkit_web_view_set_transparent(webView, g_value_get_boolean(value)); - break; - case PROP_ZOOM_LEVEL: - webkit_web_view_set_zoom_level(webView, g_value_get_float(value)); - break; - case PROP_FULL_CONTENT_ZOOM: - webkit_web_view_set_full_content_zoom(webView, g_value_get_boolean(value)); - break; - case PROP_CUSTOM_ENCODING: - webkit_web_view_set_custom_encoding(webView, g_value_get_string(value)); - break; - case PROP_VIEW_MODE: - webkit_web_view_set_view_mode(webView, static_cast<WebKitWebViewViewMode>(g_value_get_enum(value))); - break; -#ifndef GTK_API_VERSION_2 - case PROP_HADJUSTMENT: - setHorizontalAdjustment(webView, static_cast<GtkAdjustment*>(g_value_get_object(value))); - break; - case PROP_VADJUSTMENT: - setVerticalAdjustment(webView, static_cast<GtkAdjustment*>(g_value_get_object(value))); - break; - case PROP_HSCROLL_POLICY: - setHorizontalScrollPolicy(webView, static_cast<GtkScrollablePolicy>(g_value_get_enum(value))); - break; - case PROP_VSCROLL_POLICY: - setVerticalScrollPolicy(webView, static_cast<GtkScrollablePolicy>(g_value_get_enum(value))); - break; -#endif - case PROP_SELF_SCROLLING: - webView->priv->selfScrolling = g_value_get_boolean(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - } -} - -#ifdef GTK_API_VERSION_2 -static gboolean webkit_web_view_expose_event(GtkWidget* widget, GdkEventExpose* event) -{ - int rectCount; - GOwnPtr<GdkRectangle> rects; - gdk_region_get_rectangles(event->region, &rects.outPtr(), &rectCount); - - RefPtr<cairo_t> cr = adoptRef(gdk_cairo_create(event->window)); - for (int i = 0; i < rectCount; i++) { - copyRectFromCairoSurfaceToContext(WEBKIT_WEB_VIEW(widget)->priv->backingStore->cairoSurface(), - cr.get(), IntSize(), IntRect(rects.get()[i])); - } - - // Chaining up to the parent forces child widgets to be drawn. - GTK_WIDGET_CLASS(webkit_web_view_parent_class)->expose_event(widget, event); - return FALSE; -} -#else -static gboolean webkit_web_view_draw(GtkWidget* widget, cairo_t* cr) -{ - GdkRectangle clipRect; - if (!gdk_cairo_get_clip_rectangle(cr, &clipRect)) - return FALSE; - - WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW(widget)->priv; -#if USE(TEXTURE_MAPPER) - if (priv->acceleratedCompositingContext->renderLayersToWindow(cr, clipRect)) { - GTK_WIDGET_CLASS(webkit_web_view_parent_class)->draw(widget, cr); - return FALSE; - } -#endif - - cairo_rectangle_list_t* rectList = cairo_copy_clip_rectangle_list(cr); - if (rectList->status || !rectList->num_rectangles) { - cairo_rectangle_list_destroy(rectList); - return FALSE; - } - - Vector<IntRect> rects; - for (int i = 0; i < rectList->num_rectangles; i++) { - copyRectFromCairoSurfaceToContext(priv->backingStore->cairoSurface(), cr, IntSize(), - enclosingIntRect(FloatRect(rectList->rectangles[i]))); - } - cairo_rectangle_list_destroy(rectList); - - // Chaining up to the parent forces child widgets to be drawn. - GTK_WIDGET_CLASS(webkit_web_view_parent_class)->draw(widget, cr); - return FALSE; -} -#endif // GTK_API_VERSION_2 - -static gboolean webkit_web_view_key_press_event(GtkWidget* widget, GdkEventKey* event) -{ - if (WEBKIT_WEB_VIEW(widget)->priv->imFilter.filterKeyEvent(event)) - return TRUE; - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->key_press_event(widget, event); -} - -static gboolean webkit_web_view_key_release_event(GtkWidget* widget, GdkEventKey* event) -{ - if (WEBKIT_WEB_VIEW(widget)->priv->imFilter.filterKeyEvent(event)) - return TRUE; - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->key_release_event(widget, event); -} - -static gboolean webkit_web_view_button_press_event(GtkWidget* widget, GdkEventButton* event) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - WebKitWebViewPrivate* priv = webView->priv; - - // FIXME: need to keep track of subframe focus for key events - gtk_widget_grab_focus(widget); - - if (!priv->clickCounter.shouldProcessButtonEvent(event)) - return TRUE; - - PlatformMouseEvent platformEvent(event); - int count = priv->clickCounter.clickCountForGdkButtonEvent(widget, event); - platformEvent.setClickCount(count); - -#if ENABLE(CONTEXT_MENUS) - if (event->button == 3) - return webkit_web_view_forward_context_menu_event(webView, PlatformMouseEvent(event), false); -#endif - - Frame* frame = core(webView)->mainFrame(); - if (!frame->view()) - return FALSE; - - priv->imFilter.notifyMouseButtonPress(); - gboolean result = frame->eventHandler()->handleMousePressEvent(platformEvent); - - return result; -} - -static gboolean webkit_web_view_button_release_event(GtkWidget* widget, GdkEventButton* event) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - - Frame* mainFrame = core(webView)->mainFrame(); - if (mainFrame->view()) - mainFrame->eventHandler()->handleMouseReleaseEvent(PlatformMouseEvent(event)); - - /* We always return FALSE here because WebKit can, for the same click, decide - * to not handle press-event but handle release-event, which can totally confuse - * some GTK+ containers when there are no other events in between. This way we - * guarantee that this case never happens, and that if press-event goes through - * release-event also goes through. - */ - - return FALSE; -} - -static gboolean webkit_web_view_motion_event(GtkWidget* widget, GdkEventMotion* event) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - - Frame* frame = core(webView)->mainFrame(); - if (!frame->view()) - return FALSE; - - return frame->eventHandler()->mouseMoved(PlatformMouseEvent(event)); -} - -static gboolean webkit_web_view_scroll_event(GtkWidget* widget, GdkEventScroll* event) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - - Frame* frame = core(webView)->mainFrame(); - if (!frame->view()) - return FALSE; - - PlatformWheelEvent wheelEvent(event); - return frame->eventHandler()->handleWheelEvent(wheelEvent); -} - -#ifdef GTK_API_VERSION_2 -static void webkit_web_view_size_request(GtkWidget* widget, GtkRequisition* requisition) -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(widget); - Frame* coreFrame = core(webkit_web_view_get_main_frame(web_view)); - if (!coreFrame) - return; - - FrameView* view = coreFrame->view(); - if (!view) - return; - - requisition->width = view->contentsWidth(); - requisition->height = view->contentsHeight(); -} -#else -static void webkit_web_view_get_preferred_width(GtkWidget* widget, gint* minimum, gint* natural) -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(widget); - Frame* coreFrame = core(webkit_web_view_get_main_frame(web_view)); - if (!coreFrame) - return; - - FrameView* view = coreFrame->view(); - if (!view) - return; - - *minimum = *natural = view->contentsWidth(); -} - -static void webkit_web_view_get_preferred_height(GtkWidget* widget, gint* minimum, gint* natural) -{ - WebKitWebView* web_view = WEBKIT_WEB_VIEW(widget); - Frame* coreFrame = core(webkit_web_view_get_main_frame(web_view)); - if (!coreFrame) - return; - - FrameView* view = coreFrame->view(); - if (!view) - return; - - *minimum = *natural = view->contentsHeight(); -} -#endif - -static void updateChildAllocationFromPendingAllocation(GtkWidget* child, void*) -{ - if (!gtk_widget_get_visible(child)) - return; - - GtkAllocation* allocation = static_cast<GtkAllocation*>(g_object_get_data(G_OBJECT(child), "delayed-allocation")); - if (!allocation) - return; - - g_object_set_data(G_OBJECT(child), "delayed-allocation", 0); - gtk_widget_size_allocate(child, allocation); - *allocation = IntRect(); -} - -static void resizeWebViewFromAllocation(WebKitWebView* webView, GtkAllocation* allocation, bool sizeChanged) -{ - Page* page = core(webView); - IntSize oldSize; - FrameView* frameView = page->mainFrame()->view(); - if (sizeChanged && frameView) { - oldSize = frameView->size(); - frameView->resize(allocation->width, allocation->height); - } - - gtk_container_forall(GTK_CONTAINER(webView), updateChildAllocationFromPendingAllocation, 0); - - if (!sizeChanged) - return; - - WebKit::ChromeClient* chromeClient = static_cast<WebKit::ChromeClient*>(page->chrome().client()); - chromeClient->widgetSizeChanged(oldSize, IntSize(allocation->width, allocation->height)); - chromeClient->adjustmentWatcher()->updateAdjustmentsFromScrollbars(); -} - -static void webkit_web_view_size_allocate(GtkWidget* widget, GtkAllocation* allocation) -{ - GtkAllocation oldAllocation; - gtk_widget_get_allocation(widget, &oldAllocation); - bool sizeChanged = allocation->width != oldAllocation.width || allocation->height != oldAllocation.height; - - GTK_WIDGET_CLASS(webkit_web_view_parent_class)->size_allocate(widget, allocation); - - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - if (sizeChanged && !gtk_widget_get_mapped(widget)) { - webView->priv->needsResizeOnMap = true; - return; - } - resizeWebViewFromAllocation(webView, allocation, sizeChanged); -} - -static void webkitWebViewMap(GtkWidget* widget) -{ - GTK_WIDGET_CLASS(webkit_web_view_parent_class)->map(widget); - - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - if (!webView->priv->needsResizeOnMap) - return; - - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - resizeWebViewFromAllocation(webView, &allocation, true); - webView->priv->needsResizeOnMap = false; -} - -static void webkit_web_view_grab_focus(GtkWidget* widget) -{ - - if (gtk_widget_is_sensitive(widget)) { - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - FocusController* focusController = core(webView)->focusController(); - - focusController->setActive(true); - - if (focusController->focusedFrame()) - focusController->setFocused(true); - else - focusController->setFocusedFrame(core(webView)->mainFrame()); - } - - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->grab_focus(widget); -} - -static gboolean webkit_web_view_focus_in_event(GtkWidget* widget, GdkEventFocus* event) -{ - // TODO: Improve focus handling as suggested in - // http://bugs.webkit.org/show_bug.cgi?id=16910 - GtkWidget* toplevel = gtk_widget_get_toplevel(widget); - if (!widgetIsOnscreenToplevelWindow(toplevel) || !gtk_window_has_toplevel_focus(GTK_WINDOW(toplevel))) - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_in_event(widget, event); - - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - FocusController* focusController = core(webView)->focusController(); - - focusController->setActive(true); - if (focusController->focusedFrame()) - focusController->setFocused(true); - else - focusController->setFocusedFrame(core(webView)->mainFrame()); - - if (focusController->focusedFrame()->editor().canEdit()) - webView->priv->imFilter.notifyFocusedIn(); - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_in_event(widget, event); -} - -static gboolean webkit_web_view_focus_out_event(GtkWidget* widget, GdkEventFocus* event) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - - // We may hit this code while destroying the widget, and we might - // no longer have a page, then. - if (Page* page = core(webView)) { - page->focusController()->setActive(false); - page->focusController()->setFocused(false); - } - - webView->priv->imFilter.notifyFocusedOut(); - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->focus_out_event(widget, event); -} - -static void webkit_web_view_realize(GtkWidget* widget) -{ - gtk_widget_set_realized(widget, TRUE); - - GtkAllocation allocation; - gtk_widget_get_allocation(widget, &allocation); - - GdkWindowAttr attributes; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.x = allocation.x; - attributes.y = allocation.y; - attributes.width = allocation.width; - attributes.height = allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.visual = gtk_widget_get_visual(widget); -#ifdef GTK_API_VERSION_2 - attributes.colormap = gtk_widget_get_colormap(widget); -#endif - attributes.event_mask = GDK_VISIBILITY_NOTIFY_MASK - | GDK_EXPOSURE_MASK - | GDK_BUTTON_PRESS_MASK - | GDK_BUTTON_RELEASE_MASK - | GDK_SCROLL_MASK -#if GTK_CHECK_VERSION(3, 3, 18) - | GDK_SMOOTH_SCROLL_MASK -#endif - | GDK_POINTER_MOTION_MASK - | GDK_KEY_PRESS_MASK - | GDK_KEY_RELEASE_MASK - | GDK_BUTTON_MOTION_MASK - | GDK_BUTTON1_MOTION_MASK - | GDK_BUTTON2_MOTION_MASK - | GDK_BUTTON3_MOTION_MASK; - - gint attributes_mask = GDK_WA_X | GDK_WA_Y | GDK_WA_VISUAL; -#ifdef GTK_API_VERSION_2 - attributes_mask |= GDK_WA_COLORMAP; -#endif - GdkWindow* window = gdk_window_new(gtk_widget_get_parent_window(widget), &attributes, attributes_mask); - - gtk_widget_set_window(widget, window); - gdk_window_set_user_data(window, widget); - -#ifdef GTK_API_VERSION_2 - gtk_widget_style_attach(widget); - gtk_style_set_background(gtk_widget_get_style(widget), window, GTK_STATE_NORMAL); -#else - gtk_style_context_set_background(gtk_widget_get_style_context(widget), window); -#endif -} - -#ifdef GTK_API_VERSION_2 -static void webkit_web_view_set_scroll_adjustments(WebKitWebView* webView, GtkAdjustment* horizontalAdjustment, GtkAdjustment* verticalAdjustment) -{ - setHorizontalAdjustment(webView, horizontalAdjustment); - setVerticalAdjustment(webView, verticalAdjustment); -} -#endif - -static void webkit_web_view_container_add(GtkContainer* container, GtkWidget* widget) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(container); - WebKitWebViewPrivate* priv = webView->priv; - - priv->children.add(widget); - gtk_widget_set_parent(widget, GTK_WIDGET(container)); -} - -static void webkit_web_view_container_remove(GtkContainer* container, GtkWidget* widget) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(container); - WebKitWebViewPrivate* priv = webView->priv; - - if (priv->children.contains(widget)) { - gtk_widget_unparent(widget); - priv->children.remove(widget); - } -} - -static void webkit_web_view_container_forall(GtkContainer* container, gboolean, GtkCallback callback, gpointer callbackData) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(container); - WebKitWebViewPrivate* priv = webView->priv; - - HashSet<GtkWidget*> children = priv->children; - HashSet<GtkWidget*>::const_iterator end = children.end(); - for (HashSet<GtkWidget*>::const_iterator current = children.begin(); current != end; ++current) - (*callback)(*current, callbackData); -} - -static WebKitWebView* webkit_web_view_real_create_web_view(WebKitWebView*, WebKitWebFrame*) -{ - return 0; -} - -static gboolean webkit_web_view_real_web_view_ready(WebKitWebView*) -{ - return FALSE; -} - -static gboolean webkit_web_view_real_close_web_view(WebKitWebView*) -{ - return FALSE; -} - -static WebKitNavigationResponse webkit_web_view_real_navigation_requested(WebKitWebView*, WebKitWebFrame*, WebKitNetworkRequest*) -{ - return WEBKIT_NAVIGATION_RESPONSE_ACCEPT; -} - -static void webkit_web_view_real_window_object_cleared(WebKitWebView*, WebKitWebFrame*, JSGlobalContextRef context, JSObjectRef window_object) -{ - notImplemented(); -} - -static gchar* webkit_web_view_real_choose_file(WebKitWebView*, WebKitWebFrame*, const gchar* old_name) -{ - notImplemented(); - return g_strdup(old_name); -} - -typedef enum { - WEBKIT_SCRIPT_DIALOG_ALERT, - WEBKIT_SCRIPT_DIALOG_CONFIRM, - WEBKIT_SCRIPT_DIALOG_PROMPT - } WebKitScriptDialogType; - -static gboolean webkit_web_view_script_dialog(WebKitWebView* webView, WebKitWebFrame* frame, const gchar* message, WebKitScriptDialogType type, const gchar* defaultValue, gchar** value) -{ - GtkMessageType messageType; - GtkButtonsType buttons; - gint defaultResponse; - GtkWidget* window; - GtkWidget* dialog; - GtkWidget* entry = 0; - gboolean didConfirm = FALSE; - - switch (type) { - case WEBKIT_SCRIPT_DIALOG_ALERT: - messageType = GTK_MESSAGE_WARNING; - buttons = GTK_BUTTONS_CLOSE; - defaultResponse = GTK_RESPONSE_CLOSE; - break; - case WEBKIT_SCRIPT_DIALOG_CONFIRM: - messageType = GTK_MESSAGE_QUESTION; - buttons = GTK_BUTTONS_OK_CANCEL; - defaultResponse = GTK_RESPONSE_OK; - break; - case WEBKIT_SCRIPT_DIALOG_PROMPT: - messageType = GTK_MESSAGE_QUESTION; - buttons = GTK_BUTTONS_OK_CANCEL; - defaultResponse = GTK_RESPONSE_OK; - break; - default: - g_warning("Unknown value for WebKitScriptDialogType."); - return FALSE; - } - - window = gtk_widget_get_toplevel(GTK_WIDGET(webView)); - dialog = gtk_message_dialog_new(widgetIsOnscreenToplevelWindow(window) ? GTK_WINDOW(window) : 0, - GTK_DIALOG_DESTROY_WITH_PARENT, - messageType, - buttons, - "%s", - message); - gchar* title = g_strconcat("JavaScript - ", webkit_web_frame_get_uri(frame), NULL); - gtk_window_set_title(GTK_WINDOW(dialog), title); - g_free(title); - - if (type == WEBKIT_SCRIPT_DIALOG_PROMPT) { - entry = gtk_entry_new(); - gtk_entry_set_text(GTK_ENTRY(entry), defaultValue); - gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), entry); - gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); - gtk_widget_show(entry); - } - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), defaultResponse); - gint response = gtk_dialog_run(GTK_DIALOG(dialog)); - - switch (response) { - case GTK_RESPONSE_OK: - didConfirm = TRUE; - if (entry) - *value = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry))); - break; - case GTK_RESPONSE_CANCEL: - didConfirm = FALSE; - break; - - } - gtk_widget_destroy(GTK_WIDGET(dialog)); - return didConfirm; -} - -static gboolean webkit_web_view_real_script_alert(WebKitWebView* webView, WebKitWebFrame* frame, const gchar* message) -{ - webkit_web_view_script_dialog(webView, frame, message, WEBKIT_SCRIPT_DIALOG_ALERT, 0, 0); - return TRUE; -} - -static gboolean webkit_web_view_real_script_confirm(WebKitWebView* webView, WebKitWebFrame* frame, const gchar* message, gboolean* didConfirm) -{ - *didConfirm = webkit_web_view_script_dialog(webView, frame, message, WEBKIT_SCRIPT_DIALOG_CONFIRM, 0, 0); - return TRUE; -} - -static gboolean webkit_web_view_real_script_prompt(WebKitWebView* webView, WebKitWebFrame* frame, const gchar* message, const gchar* defaultValue, gchar** value) -{ - if (!webkit_web_view_script_dialog(webView, frame, message, WEBKIT_SCRIPT_DIALOG_PROMPT, defaultValue, value)) - *value = NULL; - return TRUE; -} - -static gboolean webkit_web_view_real_console_message(WebKitWebView* webView, const gchar* message, unsigned int line, const gchar* sourceId) -{ - g_message("console message: %s @%d: %s\n", sourceId, line, message); - return TRUE; -} - -static void webkit_web_view_real_select_all(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("SelectAll").execute(); -} - -static void webkit_web_view_real_cut_clipboard(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("Cut").execute(); -} - -static void webkit_web_view_real_copy_clipboard(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("Copy").execute(); -} - -static void webkit_web_view_real_undo(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("Undo").execute(); -} - -static void webkit_web_view_real_redo(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("Redo").execute(); -} - -static gboolean webkit_web_view_real_move_cursor (WebKitWebView* webView, GtkMovementStep step, gint count) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW (webView), FALSE); - g_return_val_if_fail(step == GTK_MOVEMENT_VISUAL_POSITIONS || - step == GTK_MOVEMENT_DISPLAY_LINES || - step == GTK_MOVEMENT_PAGES || - step == GTK_MOVEMENT_BUFFER_ENDS, FALSE); - g_return_val_if_fail(count == 1 || count == -1, FALSE); - - ScrollDirection direction; - ScrollGranularity granularity; - - switch (step) { - case GTK_MOVEMENT_DISPLAY_LINES: - granularity = ScrollByLine; - if (count == 1) - direction = ScrollDown; - else - direction = ScrollUp; - break; - case GTK_MOVEMENT_VISUAL_POSITIONS: - granularity = ScrollByLine; - if (count == 1) - direction = ScrollRight; - else - direction = ScrollLeft; - break; - case GTK_MOVEMENT_PAGES: - granularity = ScrollByPage; - if (count == 1) - direction = ScrollDown; - else - direction = ScrollUp; - break; - case GTK_MOVEMENT_BUFFER_ENDS: - granularity = ScrollByDocument; - if (count == 1) - direction = ScrollDown; - else - direction = ScrollUp; - break; - default: - g_assert_not_reached(); - return false; - } - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame->eventHandler()->scrollOverflow(direction, granularity)) - frame->view()->scroll(direction, granularity); - - return true; -} - -static void webkit_web_view_real_paste_clipboard(WebKitWebView* webView) -{ - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().command("Paste").execute(); -} - -static gboolean webkit_web_view_real_should_allow_editing_action(WebKitWebView*) -{ - return TRUE; -} - -static gboolean webkit_web_view_real_entering_fullscreen(WebKitWebView* webView) -{ - return FALSE; -} - -static gboolean webkit_web_view_real_leaving_fullscreen(WebKitWebView* webView) -{ - return FALSE; -} - -static void fileChooserDialogResponseCallback(GtkDialog* dialog, gint responseID, WebKitFileChooserRequest* request) -{ - GRefPtr<WebKitFileChooserRequest> adoptedRequest = adoptGRef(request); - if (responseID == GTK_RESPONSE_ACCEPT) { - GOwnPtr<GSList> filesList(gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(dialog))); - GRefPtr<GPtrArray> filesArray = adoptGRef(g_ptr_array_new()); - for (GSList* file = filesList.get(); file; file = g_slist_next(file)) - g_ptr_array_add(filesArray.get(), file->data); - g_ptr_array_add(filesArray.get(), 0); - webkit_file_chooser_request_select_files(adoptedRequest.get(), reinterpret_cast<const gchar* const*>(filesArray->pdata)); - } - - gtk_widget_destroy(GTK_WIDGET(dialog)); -} - -static gboolean webkitWebViewRealRunFileChooser(WebKitWebView* webView, WebKitFileChooserRequest* request) -{ - GtkWidget* toplevel = gtk_widget_get_toplevel(GTK_WIDGET(webView)); - if (!widgetIsOnscreenToplevelWindow(toplevel)) - toplevel = 0; - - gboolean allowsMultipleSelection = webkit_file_chooser_request_get_select_multiple(request); - GtkWidget* dialog = gtk_file_chooser_dialog_new(allowsMultipleSelection ? _("Select Files") : _("Select File"), - toplevel ? GTK_WINDOW(toplevel) : 0, - GTK_FILE_CHOOSER_ACTION_OPEN, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, - NULL); - - if (GtkFileFilter* filter = webkit_file_chooser_request_get_mime_types_filter(request)) - gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(dialog), filter); - gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(dialog), allowsMultipleSelection); - - if (const gchar* const* selectedFiles = webkit_file_chooser_request_get_selected_files(request)) - gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(dialog), selectedFiles[0]); - - g_signal_connect(dialog, "response", G_CALLBACK(fileChooserDialogResponseCallback), g_object_ref(request)); - gtk_widget_show(dialog); - - return TRUE; -} - -static void webkit_web_view_dispose(GObject* object) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(object); - WebKitWebViewPrivate* priv = webView->priv; - - priv->disposing = TRUE; - - // Make sure GtkAdjustmentWatcher won't be reacting to adjustment changes after the - // WebView is destroyed. - setHorizontalAdjustment(webView, 0); - setVerticalAdjustment(webView, 0); - - // These smart pointers are cleared manually, because some cleanup operations are - // very sensitive to their value. We may crash if these are done in the wrong order. - priv->backForwardList.clear(); - - if (priv->corePage) { - webkit_web_view_stop_loading(WEBKIT_WEB_VIEW(object)); - core(priv->mainFrame)->loader()->detachFromParent(); - delete priv->corePage; - priv->corePage = 0; - } - - if (priv->webSettings) { - g_signal_handlers_disconnect_by_func(priv->webSettings.get(), reinterpret_cast<void*>(webkit_web_view_settings_notify), webView); - priv->webSettings.clear(); - } - - if (priv->currentMenu) { - gtk_widget_destroy(GTK_WIDGET(priv->currentMenu)); - priv->currentMenu = 0; - } - - priv->webInspector.clear(); - priv->viewportAttributes.clear(); - priv->webWindowFeatures.clear(); - priv->mainResource.clear(); - priv->subResources.clear(); - - G_OBJECT_CLASS(webkit_web_view_parent_class)->dispose(object); -} - -static void webkit_web_view_finalize(GObject* object) -{ - // We need to manually call the destructor here, since this object's memory is managed - // by GLib. This calls all C++ members' destructors and prevents memory leaks. - WEBKIT_WEB_VIEW(object)->priv->~WebKitWebViewPrivate(); - G_OBJECT_CLASS(webkit_web_view_parent_class)->finalize(object); -} - -static gboolean webkit_signal_accumulator_object_handled(GSignalInvocationHint* ihint, GValue* returnAccu, const GValue* handlerReturn, gpointer dummy) -{ - gpointer newWebView = g_value_get_object(handlerReturn); - g_value_set_object(returnAccu, newWebView); - - // Continue if we don't have a newWebView - return !newWebView; -} - -static gboolean webkit_navigation_request_handled(GSignalInvocationHint* ihint, GValue* returnAccu, const GValue* handlerReturn, gpointer dummy) -{ - WebKitNavigationResponse navigationResponse = (WebKitNavigationResponse)g_value_get_enum(handlerReturn); - g_value_set_enum(returnAccu, navigationResponse); - - if (navigationResponse != WEBKIT_NAVIGATION_RESPONSE_ACCEPT) - return FALSE; - - return TRUE; -} - -static AtkObject* webkit_web_view_get_accessible(GtkWidget* widget) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - if (!core(webView)) - return 0; - - if (!AXObjectCache::accessibilityEnabled()) - AXObjectCache::enableAccessibility(); - - Frame* coreFrame = core(webView)->mainFrame(); - if (!coreFrame) - return 0; - - Document* doc = coreFrame->document(); - if (!doc) - return 0; - - AccessibilityObject* rootAccessible = doc->axObjectCache()->rootObject(); - if (!rootAccessible) - return 0; - - AtkObject* axRoot = rootAccessible->wrapper(); - if (!axRoot || !ATK_IS_OBJECT(axRoot)) - return 0; - - // Ensure the parent is set to make top-down and bottom-up navigation work. - GtkWidget* parentWidget = gtk_widget_get_parent(widget); - AtkObject* axParent = parentWidget ? gtk_widget_get_accessible(parentWidget) : 0; - if (axParent) - atk_object_set_parent(axRoot, axParent); - - return axRoot; -} - -static double screenDPI(GdkScreen* screen) -{ - // gdk_screen_get_resolution() returns -1 when no DPI is set. - double dpi = gdk_screen_get_resolution(screen); - if (dpi != -1) - return dpi; - - static const double kMillimetresPerInch = 25.4; - double diagonalSizeInPixels = hypot(gdk_screen_get_width(screen), gdk_screen_get_height(screen)); - double diagonalSizeInInches = hypot(gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm(screen)) / kMillimetresPerInch; - return diagonalSizeInPixels / diagonalSizeInInches; -} - -static gdouble webViewGetDPI(WebKitWebView* webView) -{ - if (webView->priv->webSettings->priv->enforce96DPI) - return 96; - - static const double defaultDPI = 96; - GdkScreen* screen = gtk_widget_has_screen(GTK_WIDGET(webView)) ? gtk_widget_get_screen(GTK_WIDGET(webView)) : gdk_screen_get_default(); - return screen ? screenDPI(screen) : defaultDPI; -} - -static inline gint webViewConvertFontSizeToPixels(WebKitWebView* webView, double fontSize) -{ - return fontSize / 72.0 * webViewGetDPI(webView); -} - -static void webkit_web_view_screen_changed(GtkWidget* widget, GdkScreen* previousScreen) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - WebKitWebViewPrivate* priv = webView->priv; - - if (priv->disposing) - return; - - WebKitWebSettings* webSettings = priv->webSettings.get(); - Settings* settings = core(webView)->settings(); - guint defaultFontSize, defaultMonospaceFontSize, minimumFontSize, minimumLogicalFontSize; - - g_object_get(webSettings, - "default-font-size", &defaultFontSize, - "default-monospace-font-size", &defaultMonospaceFontSize, - "minimum-font-size", &minimumFontSize, - "minimum-logical-font-size", &minimumLogicalFontSize, - NULL); - - settings->setDefaultFontSize(webViewConvertFontSizeToPixels(webView, defaultFontSize)); - settings->setDefaultFixedFontSize(webViewConvertFontSizeToPixels(webView, defaultMonospaceFontSize)); - settings->setMinimumFontSize(webViewConvertFontSizeToPixels(webView, minimumFontSize)); - settings->setMinimumLogicalFontSize(webViewConvertFontSizeToPixels(webView, minimumLogicalFontSize)); -} - -#if ENABLE(DRAG_SUPPORT) -static void webkit_web_view_drag_end(GtkWidget* widget, GdkDragContext* context) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - if (!webView->priv->dragAndDropHelper.handleDragEnd(context)) - return; - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - if (!frame) - return; - - // Synthesize a button release event to send with the drag end action. - GOwnPtr<GdkEvent> event(gdk_event_new(GDK_BUTTON_RELEASE)); - int x, y, xRoot, yRoot; - GdkModifierType modifiers = static_cast<GdkModifierType>(0); -#ifdef GTK_API_VERSION_2 - GdkDisplay* display = gdk_display_get_default(); - gdk_display_get_pointer(display, 0, &xRoot, &yRoot, &modifiers); - event->button.window = gdk_display_get_window_at_pointer(display, &x, &y); -#else - GdkDevice* device = gdk_drag_context_get_device(context); - event->button.window = gdk_device_get_window_at_position(device, &x, &y); - gdk_device_get_position(device, 0, &xRoot, &yRoot); -#endif - - if (event->button.window) - g_object_ref(event->button.window); - event->button.x = x; - event->button.y = y; - event->button.x_root = xRoot; - event->button.y_root = yRoot; - event->button.state = modifiers; - - PlatformMouseEvent platformEvent(&event->button); - frame->eventHandler()->dragSourceEndedAt(platformEvent, gdkDragActionToDragOperation(gdk_drag_context_get_selected_action(context))); -} - -static void webkit_web_view_drag_data_get(GtkWidget* widget, GdkDragContext* context, GtkSelectionData* selectionData, guint info, guint) -{ - WEBKIT_WEB_VIEW(widget)->priv->dragAndDropHelper.handleGetDragData(context, selectionData, info); -} - -static void dragExitedCallback(GtkWidget* widget, DragData* dragData, bool dropHappened) -{ - // Don't call dragExited if we have just received a drag-drop signal. This - // happens in the case of a successful drop onto the view. - if (!dropHappened) - core(WEBKIT_WEB_VIEW(widget))->dragController()->dragExited(dragData); - core(WEBKIT_WEB_VIEW(widget))->dragController()->dragEnded(); -} - -static void webkit_web_view_drag_leave(GtkWidget* widget, GdkDragContext* context, guint time) -{ - WEBKIT_WEB_VIEW(widget)->priv->dragAndDropHelper.handleDragLeave(context, dragExitedCallback); -} - -static gboolean webkit_web_view_drag_motion(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - IntPoint position(x, y); - DataObjectGtk* dataObject = webView->priv->dragAndDropHelper.handleDragMotion(context, position, time); - if (!dataObject) - return TRUE; - - DragData dragData(dataObject, position, convertWidgetPointToScreenPoint(widget, position), gdkDragActionToDragOperation(gdk_drag_context_get_actions(context))); - DragOperation operation = core(webView)->dragController()->dragUpdated(&dragData).operation; - gdk_drag_status(context, dragOperationToSingleGdkDragAction(operation), time); - return TRUE; -} - -static void webkit_web_view_drag_data_received(GtkWidget* widget, GdkDragContext* context, gint x, gint y, GtkSelectionData* selectionData, guint info, guint time) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - IntPoint position; - DataObjectGtk* dataObject = webView->priv->dragAndDropHelper.handleDragDataReceived(context, selectionData, info, position); - if (!dataObject) - return; - - DragData dragData(dataObject, position, convertWidgetPointToScreenPoint(widget, position), gdkDragActionToDragOperation(gdk_drag_context_get_actions(context))); - DragOperation operation = core(webView)->dragController()->dragEntered(&dragData).operation; - gdk_drag_status(context, dragOperationToSingleGdkDragAction(operation), time); -} - -static gboolean webkit_web_view_drag_drop(GtkWidget* widget, GdkDragContext* context, gint x, gint y, guint time) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - DataObjectGtk* dataObject = webView->priv->dragAndDropHelper.handleDragDrop(context); - if (!dataObject) - return FALSE; - - IntPoint position(x, y); - DragData dragData(dataObject, position, convertWidgetPointToScreenPoint(widget, position), gdkDragActionToDragOperation(gdk_drag_context_get_actions(context))); - core(webView)->dragController()->performDrag(&dragData); - gtk_drag_finish(context, TRUE, FALSE, time); - return TRUE; -} -#endif // ENABLE(DRAG_SUPPORT) - -static gboolean webkit_web_view_query_tooltip(GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip) -{ - WebKitWebViewPrivate* priv = WEBKIT_WEB_VIEW(widget)->priv; - - if (keyboard_mode) { - WebKitWebView* webView = WEBKIT_WEB_VIEW(widget); - - // Get the title of the current focused element. - Frame* coreFrame = core(webView)->focusController()->focusedOrMainFrame(); - if (!coreFrame) - return FALSE; - - Node* node = getFocusedNode(coreFrame); - if (!node) - return FALSE; - - for (Node* titleNode = node; titleNode; titleNode = titleNode->parentNode()) { - if (titleNode->isElementNode()) { - String title = toElement(titleNode)->title(); - if (!title.isEmpty()) { - if (FrameView* view = coreFrame->view()) { - GdkRectangle area = view->contentsToWindow(node->pixelSnappedBoundingBox()); - gtk_tooltip_set_tip_area(tooltip, &area); - } - gtk_tooltip_set_text(tooltip, title.utf8().data()); - - return TRUE; - } - } - } - - return FALSE; - } - - if (priv->tooltipText.length() > 0) { - if (!keyboard_mode) { - if (!priv->tooltipArea.isEmpty()) { - GdkRectangle area = priv->tooltipArea; - gtk_tooltip_set_tip_area(tooltip, &area); - } else - gtk_tooltip_set_tip_area(tooltip, 0); - } - gtk_tooltip_set_text(tooltip, priv->tooltipText.data()); - return TRUE; - } - - return FALSE; -} - -static gboolean webkit_web_view_show_help(GtkWidget* widget, GtkWidgetHelpType help_type) -{ - if (help_type == GTK_WIDGET_HELP_TOOLTIP) - gtk_widget_set_has_tooltip(widget, TRUE); - - return GTK_WIDGET_CLASS(webkit_web_view_parent_class)->show_help(widget, help_type); -} - -static void webkit_web_view_class_init(WebKitWebViewClass* webViewClass) -{ - GtkBindingSet* binding_set; - - webkitInit(); - - /* - * Signals - */ - - /** - * WebKitWebView::create-web-view: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame - * - * Emitted when the creation of a new window is requested. - * If this signal is handled the signal handler should return the - * newly created #WebKitWebView. - * - * The new #WebKitWebView should not be displayed to the user - * until the #WebKitWebView::web-view-ready signal is emitted. - * - * The signal handlers should not try to deal with the reference count for - * the new #WebKitWebView. The widget to which the widget is added will - * handle that. - * - * Return value: (transfer full): a newly allocated #WebKitWebView, or %NULL - * - * Since: 1.0.3 - */ - webkit_web_view_signals[CREATE_WEB_VIEW] = g_signal_new("create-web-view", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (WebKitWebViewClass, create_web_view), - webkit_signal_accumulator_object_handled, - NULL, - webkit_marshal_OBJECT__OBJECT, - WEBKIT_TYPE_WEB_VIEW , 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::web-view-ready: - * @web_view: the object on which the signal is emitted - * - * Emitted after #WebKitWebView::create-web-view when the new #WebKitWebView - * should be displayed to the user. When this signal is emitted - * all the information about how the window should look, including - * size, position, whether the location, status and scroll bars - * should be displayed, is already set on the - * #WebKitWebWindowFeatures object contained by the #WebKitWebView. - * - * Notice that some of that information may change during the life - * time of the window, so you may want to connect to the ::notify - * signal of the #WebKitWebWindowFeatures object to handle those. - * - * Return value: %TRUE to stop handlers from being invoked for the event or - * %FALSE to propagate the event furter - * - * Since: 1.0.3 - */ - webkit_web_view_signals[WEB_VIEW_READY] = g_signal_new("web-view-ready", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (WebKitWebViewClass, web_view_ready), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN, 0); - - /** - * WebKitWebView::close-web-view: - * @web_view: the object on which the signal is emitted - * - * Emitted when closing a #WebKitWebView is requested. This occurs when a - * call is made from JavaScript's window.close function. The default - * signal handler does not do anything. It is the owner's responsibility - * to hide or delete the web view, if necessary. - * - * Return value: %TRUE to stop handlers from being invoked for the event or - * %FALSE to propagate the event furter - * - * Since: 1.1.11 - */ - webkit_web_view_signals[CLOSE_WEB_VIEW] = g_signal_new("close-web-view", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (WebKitWebViewClass, close_web_view), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__VOID, - G_TYPE_BOOLEAN, 0); - - /** - * WebKitWebView::navigation-requested: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame that required the navigation - * @request: a #WebKitNetworkRequest - * - * Emitted when @frame requests a navigation to another page. - * - * Return value: a #WebKitNavigationResponse - * - * Deprecated: Use WebKitWebView::navigation-policy-decision-requested - * instead - */ - webkit_web_view_signals[NAVIGATION_REQUESTED] = g_signal_new("navigation-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (WebKitWebViewClass, navigation_requested), - webkit_navigation_request_handled, - NULL, - webkit_marshal_ENUM__OBJECT_OBJECT, - WEBKIT_TYPE_NAVIGATION_RESPONSE, 2, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_NETWORK_REQUEST); - - /** - * WebKitWebView::new-window-policy-decision-requested: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame that required the navigation - * @request: a #WebKitNetworkRequest - * @navigation_action: a #WebKitWebNavigationAction - * @policy_decision: a #WebKitWebPolicyDecision - * - * Emitted when @frame requests opening a new window. With this - * signal the browser can use the context of the request to decide - * about the new window. If the request is not handled the default - * behavior is to allow opening the new window to load the URI, - * which will cause a create-web-view signal emission where the - * browser handles the new window action but without information - * of the context that caused the navigation. The following - * navigation-policy-decision-requested emissions will load the - * page after the creation of the new window just with the - * information of this new navigation context, without any - * information about the action that made this new window to be - * opened. - * - * Notice that if you return TRUE, meaning that you handled the - * signal, you are expected to have decided what to do, by calling - * webkit_web_policy_decision_ignore(), - * webkit_web_policy_decision_use(), or - * webkit_web_policy_decision_download() on the @policy_decision - * object. - * - * Return value: %TRUE if a decision was made, %FALSE to have the - * default behavior apply - * - * Since: 1.1.4 - */ - webkit_web_view_signals[NEW_WINDOW_POLICY_DECISION_REQUESTED] = g_signal_new("new-window-policy-decision-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT_OBJECT, - G_TYPE_BOOLEAN, 4, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_NETWORK_REQUEST, - WEBKIT_TYPE_WEB_NAVIGATION_ACTION, - WEBKIT_TYPE_WEB_POLICY_DECISION); - - /** - * WebKitWebView::navigation-policy-decision-requested: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame that required the navigation - * @request: a #WebKitNetworkRequest - * @navigation_action: a #WebKitWebNavigationAction - * @policy_decision: a #WebKitWebPolicyDecision - * - * Emitted when @frame requests a navigation to another page. - * If this signal is not handled, the default behavior is to allow the - * navigation. - * - * Notice that if you return TRUE, meaning that you handled the - * signal, you are expected to have decided what to do, by calling - * webkit_web_policy_decision_ignore(), - * webkit_web_policy_decision_use(), or - * webkit_web_policy_decision_download() on the @policy_decision - * object. - * - * Return value: %TRUE if a decision was made, %FALSE to have the - * default behavior apply - * - * Since: 1.0.3 - */ - webkit_web_view_signals[NAVIGATION_POLICY_DECISION_REQUESTED] = g_signal_new("navigation-policy-decision-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_OBJECT_OBJECT, - G_TYPE_BOOLEAN, 4, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_NETWORK_REQUEST, - WEBKIT_TYPE_WEB_NAVIGATION_ACTION, - WEBKIT_TYPE_WEB_POLICY_DECISION); - - /** - * WebKitWebView::mime-type-policy-decision-requested: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame that required the policy decision - * @request: a WebKitNetworkRequest - * @mimetype: the MIME type attempted to load - * @policy_decision: a #WebKitWebPolicyDecision - * - * Decide whether or not to display the given MIME type. If this - * signal is not handled, the default behavior is to show the - * content of the requested URI if WebKit can show this MIME - * type and the content disposition is not a download; if WebKit - * is not able to show the MIME type nothing happens. - * - * Notice that if you return TRUE, meaning that you handled the - * signal, you are expected to be aware of the "Content-Disposition" - * header. A value of "attachment" usually indicates a download - * regardless of the MIME type, see also - * soup_message_headers_get_content_disposition(). And you must call - * webkit_web_policy_decision_ignore(), - * webkit_web_policy_decision_use(), or - * webkit_web_policy_decision_download() on the @policy_decision - * object. - * - * Return value: %TRUE if a decision was made, %FALSE to have the - * default behavior apply - * - * Since: 1.0.3 - */ - webkit_web_view_signals[MIME_TYPE_POLICY_DECISION_REQUESTED] = g_signal_new("mime-type-policy-decision-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_STRING_OBJECT, - G_TYPE_BOOLEAN, 4, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_NETWORK_REQUEST, - G_TYPE_STRING, - WEBKIT_TYPE_WEB_POLICY_DECISION); - - /** - * WebKitWebView::window-object-cleared: - * @web_view: the object on which the signal is emitted - * @frame: the #WebKitWebFrame to which @window_object belongs - * @context: the #JSGlobalContextRef holding the global object and other - * execution state; equivalent to the return value of - * webkit_web_frame_get_global_context(@frame) - * @window_object: the #JSObjectRef representing the frame's JavaScript - * window object - * - * Emitted when the JavaScript window object in a #WebKitWebFrame has been - * cleared in preparation for a new load. This is the preferred place to - * set custom properties on the window object using the JavaScriptCore API. - */ - webkit_web_view_signals[WINDOW_OBJECT_CLEARED] = g_signal_new("window-object-cleared", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (WebKitWebViewClass, window_object_cleared), - NULL, - NULL, - webkit_marshal_VOID__OBJECT_POINTER_POINTER, - G_TYPE_NONE, 3, - WEBKIT_TYPE_WEB_FRAME, - G_TYPE_POINTER, - G_TYPE_POINTER); - - /** - * WebKitWebView::download-requested: - * @web_view: the object on which the signal is emitted - * @download: a #WebKitDownload object that lets you control the - * download process - * - * A new Download is being requested. By default, if the signal is - * not handled, the download is cancelled. If you handle the download - * and call webkit_download_set_destination_uri(), it will be - * started for you. If you need to set the destination asynchronously - * you are responsible for starting or cancelling it yourself. - * - * If you intend to handle downloads yourself rather than using - * the #WebKitDownload helper object you must handle this signal, - * and return %FALSE. - * - * Also, keep in mind that the default policy for WebKitGTK+ is to - * ignore files with a MIME type that it does not know how to - * handle, which means this signal won't be emitted in the default - * setup. One way to trigger downloads is to connect to - * WebKitWebView::mime-type-policy-decision-requested and call - * webkit_web_policy_decision_download() on the - * #WebKitWebPolicyDecision in the parameter list for the kind of - * files you want your application to download (a common solution - * is to download anything that WebKit can't handle, which you can - * figure out by using webkit_web_view_can_show_mime_type()). - * - * Return value: TRUE if the download should be performed, %FALSE to - * cancel it - * - * Since: 1.1.2 - */ - webkit_web_view_signals[DOWNLOAD_REQUESTED] = g_signal_new("download-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - G_TYPE_OBJECT); - - /** - * WebKitWebView::load-started: - * @web_view: the object on which the signal is emitted - * @frame: the frame going to do the load - * - * When a #WebKitWebFrame begins to load this signal is emitted. - * - * Deprecated: Use the "load-status" property instead. - */ - webkit_web_view_signals[LOAD_STARTED] = g_signal_new("load-started", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::load-committed: - * @web_view: the object on which the signal is emitted - * @frame: the main frame that received the first data - * - * When a #WebKitWebFrame loaded the first data this signal is emitted. - * - * Deprecated: Use the "load-status" property instead. - */ - webkit_web_view_signals[LOAD_COMMITTED] = g_signal_new("load-committed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - - /** - * WebKitWebView::load-progress-changed: - * @web_view: the #WebKitWebView - * @progress: the global progress - * - * Deprecated: Use the "progress" property instead. - */ - webkit_web_view_signals[LOAD_PROGRESS_CHANGED] = g_signal_new("load-progress-changed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - /** - * WebKitWebView::load-error: - * @web_view: the object on which the signal is emitted - * @web_frame: the #WebKitWebFrame - * @uri: the URI that triggered the error - * @web_error: the #GError that was triggered - * - * An error occurred while loading. By default, if the signal is not - * handled, the @web_view will display a stock error page. You need to - * handle the signal if you want to provide your own error page. - * - * Since: 1.1.6 - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - */ - webkit_web_view_signals[LOAD_ERROR] = g_signal_new("load-error", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST), - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_STRING_BOXED, - G_TYPE_BOOLEAN, 3, - WEBKIT_TYPE_WEB_FRAME, - G_TYPE_STRING, - G_TYPE_ERROR); - - /** - * WebKitWebView::load-finished: - * @web_view: the #WebKitWebView - * @frame: the #WebKitWebFrame - * - * Deprecated: Use the "load-status" property instead. - */ - webkit_web_view_signals[LOAD_FINISHED] = g_signal_new("load-finished", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::onload-event: - * @web_view: the object on which the signal is emitted - * @frame: the frame - * - * When a #WebKitWebFrame receives an onload event this signal is emitted. - */ - webkit_web_view_signals[ONLOAD_EVENT] = g_signal_new("onload-event", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::title-changed: - * @web_view: the object on which the signal is emitted - * @frame: the main frame - * @title: the new title - * - * When a #WebKitWebFrame changes the document title this signal is emitted. - * - * Deprecated: 1.1.4: Use "notify::title" instead. - */ - webkit_web_view_signals[TITLE_CHANGED] = g_signal_new("title-changed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - webkit_marshal_VOID__OBJECT_STRING, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_FRAME, - G_TYPE_STRING); - - /** - * WebKitWebView::hovering-over-link: - * @web_view: the object on which the signal is emitted - * @title: the link's title - * @uri: the URI the link points to - * - * When the cursor is over a link, this signal is emitted. - */ - webkit_web_view_signals[HOVERING_OVER_LINK] = g_signal_new("hovering-over-link", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - webkit_marshal_VOID__STRING_STRING, - G_TYPE_NONE, 2, - G_TYPE_STRING, - G_TYPE_STRING); - - /** - * WebKitWebView::populate-popup: - * @web_view: the object on which the signal is emitted - * @menu: the context menu - * - * When a context menu is about to be displayed this signal is emitted. - * - * Add menu items to #menu to extend the context menu. - * - * Deprecated: 1.10: Use #WebKitWebView::context-menu signal instead. - */ - webkit_web_view_signals[POPULATE_POPUP] = g_signal_new("populate-popup", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - GTK_TYPE_MENU); - - /** - * WebKitWebView::print-requested: - * @web_view: the object in which the signal is emitted - * @web_frame: the frame that is requesting to be printed - * - * Emitted when printing is requested by the frame, usually - * because of a javascript call. When handling this signal you - * should call webkit_web_frame_print_full() or - * webkit_web_frame_print() to do the actual printing. - * - * The default handler will present a print dialog and carry a - * print operation. Notice that this means that if you intend to - * ignore a print request you must connect to this signal, and - * return %TRUE. - * - * Return value: %TRUE if the print request has been handled, %FALSE if - * the default handler should run - * - * Since: 1.1.5 - */ - webkit_web_view_signals[PRINT_REQUESTED] = g_signal_new("print-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - WEBKIT_TYPE_WEB_FRAME); - - webkit_web_view_signals[STATUS_BAR_TEXT_CHANGED] = g_signal_new("status-bar-text-changed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - /** - * WebKitWebView::icon-loaded: - * @web_view: the object on which the signal is emitted - * @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 - */ - webkit_web_view_signals[ICON_LOADED] = g_signal_new("icon-loaded", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - 0, - NULL, - NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - /** - * WebKitWebView::console-message: - * @web_view: the object on which the signal is emitted - * @message: the message text - * @line: the line where the error occured - * @source_id: the source id - * - * A JavaScript console message was created. - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - */ - webkit_web_view_signals[CONSOLE_MESSAGE] = g_signal_new("console-message", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, console_message), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__STRING_INT_STRING, - G_TYPE_BOOLEAN, 3, - G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING); - - /** - * WebKitWebView::script-alert: - * @web_view: the object on which the signal is emitted - * @frame: the relevant frame - * @message: the message text - * - * A JavaScript alert dialog was created. - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - */ - webkit_web_view_signals[SCRIPT_ALERT] = g_signal_new("script-alert", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, script_alert), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_STRING, - G_TYPE_BOOLEAN, 2, - WEBKIT_TYPE_WEB_FRAME, G_TYPE_STRING); - - /** - * WebKitWebView::script-confirm: - * @web_view: the object on which the signal is emitted - * @frame: the relevant frame - * @message: the message text - * @confirmed: a pointer to a #gboolean where the callback should store - * whether the user confirmed the dialog, when handling this signal - * - * A JavaScript confirm dialog was created, providing Yes and No buttons. - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - */ - webkit_web_view_signals[SCRIPT_CONFIRM] = g_signal_new("script-confirm", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, script_confirm), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_STRING_POINTER, - G_TYPE_BOOLEAN, 3, - WEBKIT_TYPE_WEB_FRAME, G_TYPE_STRING, G_TYPE_POINTER); - - /** - * WebKitWebView::script-prompt: - * @web_view: the object on which the signal is emitted - * @frame: the relevant frame - * @message: the message text - * @default: the default value - * @text: To be filled with the return value or NULL if the dialog was cancelled. - * - * A JavaScript prompt dialog was created, providing an entry to input text. - * - * Return value: %TRUE to stop other handlers from being invoked for the - * event. %FALSE to propagate the event further. - */ - webkit_web_view_signals[SCRIPT_PROMPT] = g_signal_new("script-prompt", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, script_prompt), - g_signal_accumulator_true_handled, - NULL, - webkit_marshal_BOOLEAN__OBJECT_STRING_STRING_STRING, - G_TYPE_BOOLEAN, 4, - WEBKIT_TYPE_WEB_FRAME, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER); - - /** - * WebKitWebView::select-all: - * @web_view: the object which received the signal - * - * The #WebKitWebView::select-all signal is a keybinding signal which gets emitted to - * select the complete contents of the text view. - * - * The default bindings for this signal is Ctrl-a. - */ - webkit_web_view_signals[::SELECT_ALL] = g_signal_new("select-all", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, select_all), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::cut-clipboard: - * @web_view: the object which received the signal - * - * The #WebKitWebView::cut-clipboard signal is a keybinding signal which gets emitted to - * cut the selection to the clipboard. - * - * The default bindings for this signal are Ctrl-x and Shift-Delete. - */ - webkit_web_view_signals[CUT_CLIPBOARD] = g_signal_new("cut-clipboard", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, cut_clipboard), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::copy-clipboard: - * @web_view: the object which received the signal - * - * The #WebKitWebView::copy-clipboard signal is a keybinding signal which gets emitted to - * copy the selection to the clipboard. - * - * The default bindings for this signal are Ctrl-c and Ctrl-Insert. - */ - webkit_web_view_signals[COPY_CLIPBOARD] = g_signal_new("copy-clipboard", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, copy_clipboard), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::paste-clipboard: - * @web_view: the object which received the signal - * - * The #WebKitWebView::paste-clipboard signal is a keybinding signal which gets emitted to - * paste the contents of the clipboard into the Web view. - * - * The default bindings for this signal are Ctrl-v and Shift-Insert. - */ - webkit_web_view_signals[PASTE_CLIPBOARD] = g_signal_new("paste-clipboard", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, paste_clipboard), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::undo: - * @web_view: the object which received the signal - * - * The #WebKitWebView::undo signal is a keybinding signal which gets emitted to - * undo the last editing command. - * - * The default binding for this signal is Ctrl-z - * - * Since: 1.1.14 - */ - webkit_web_view_signals[UNDO] = g_signal_new("undo", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, undo), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::redo: - * @web_view: the object which received the signal - * - * The #WebKitWebView::redo signal is a keybinding signal which gets emitted to - * redo the last editing command. - * - * The default binding for this signal is Ctrl-Shift-z - * - * Since: 1.1.14 - */ - webkit_web_view_signals[REDO] = g_signal_new("redo", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, redo), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::move-cursor: - * @web_view: the object which received the signal - * @step: the type of movement, one of #GtkMovementStep - * @count: an integer indicating the subtype of movement. Currently - * the permitted values are '1' = forward, '-1' = backwards. - * - * The #WebKitWebView::move-cursor will be emitted to apply the - * cursor movement described by its parameters to the @view. - * - * Return value: %TRUE or %FALSE - * - * Since: 1.1.4 - */ - webkit_web_view_signals[MOVE_CURSOR] = g_signal_new("move-cursor", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, move_cursor), - NULL, NULL, - webkit_marshal_BOOLEAN__ENUM_INT, - G_TYPE_BOOLEAN, 2, - GTK_TYPE_MOVEMENT_STEP, - G_TYPE_INT); - - /** - * WebKitWebView::create-plugin-widget: - * @web_view: the object which received the signal - * @mime_type: the mimetype of the requested object - * @uri: the URI to load - * @param: a #GHashTable with additional attributes (strings) - * - * The #WebKitWebView::create-plugin-widget signal will be emitted to - * create a plugin widget for embed or object HTML tags. This - * allows to embed a GtkWidget as a plugin into HTML content. In - * case of a textual selection of the GtkWidget WebCore will attempt - * to set the property value of "webkit-widget-is-selected". This can - * be used to draw a visual indicator of the selection. - * - * Return value: (transfer full): a new #GtkWidget, or %NULL - * - * Since: 1.1.8 - */ - webkit_web_view_signals[PLUGIN_WIDGET] = g_signal_new("create-plugin-widget", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - webkit_signal_accumulator_object_handled, - NULL, - webkit_marshal_OBJECT__STRING_STRING_POINTER, - GTK_TYPE_WIDGET, 3, - G_TYPE_STRING, G_TYPE_STRING, G_TYPE_HASH_TABLE); - - /** - * WebKitWebView::database-quota-exceeded: - * @web_view: the object which received the signal - * @frame: the relevant frame - * @database: the #WebKitWebDatabase which exceeded the quota of its #WebKitSecurityOrigin - * - * The #WebKitWebView::database-quota-exceeded signal will be emitted when - * a Web Database exceeds the quota of its security origin. This signal - * may be used to increase the size of the quota before the originating - * operation fails. - * - * Since: 1.1.14 - */ - webkit_web_view_signals[DATABASE_QUOTA_EXCEEDED] = g_signal_new("database-quota-exceeded", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags) (G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - NULL, NULL, - webkit_marshal_VOID__OBJECT_OBJECT, - G_TYPE_NONE, 2, - G_TYPE_OBJECT, G_TYPE_OBJECT); - - /** - * WebKitWebView::resource-request-starting: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame whose load dispatched this request - * @web_resource: an empty #WebKitWebResource object - * @request: the #WebKitNetworkRequest that will be dispatched - * @response: the #WebKitNetworkResponse representing the redirect - * response, if any - * - * Emitted when a request is about to be sent. You can modify the - * request while handling this signal. You can set the URI in the - * #WebKitNetworkRequest object itself, and add/remove/replace - * headers using the #SoupMessage object it carries, if it is - * present. See webkit_network_request_get_message(). Setting the - * request URI to "about:blank" will effectively cause the request - * to load nothing, and can be used to disable the loading of - * specific resources. - * - * Notice that information about an eventual redirect is available - * in @response's #SoupMessage, not in the #SoupMessage carried by - * the @request. If @response is %NULL, then this is not a - * redirected request. - * - * The #WebKitWebResource object will be the same throughout all - * the lifetime of the resource, but the contents may change from - * inbetween signal emissions. - * - * Since: 1.1.14 - */ - webkit_web_view_signals[RESOURCE_REQUEST_STARTING] = g_signal_new("resource-request-starting", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - NULL, NULL, - webkit_marshal_VOID__OBJECT_OBJECT_OBJECT_OBJECT, - G_TYPE_NONE, 4, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_WEB_RESOURCE, - WEBKIT_TYPE_NETWORK_REQUEST, - WEBKIT_TYPE_NETWORK_RESPONSE); - - /** - * WebKitWebView::geolocation-policy-decision-requested: - * @web_view: the object on which the signal is emitted - * @frame: the frame that requests permission - * @policy_decision: a WebKitGeolocationPolicyDecision - * - * This signal is emitted when a @frame wants to obtain the user's - * location. The decision can be made asynchronously, but you must - * call g_object_ref() the @policy_decision, and return %TRUE if - * you are going to handle the request. To actually make the - * decision you need to call webkit_geolocation_policy_allow() or - * webkit_geolocation_policy_deny() on @policy_decision. - * - * Since: 1.1.23 - */ - webkit_web_view_signals[GEOLOCATION_POLICY_DECISION_REQUESTED] = g_signal_new("geolocation-policy-decision-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST), - 0, - NULL, NULL, - webkit_marshal_BOOLEAN__OBJECT_OBJECT, - G_TYPE_BOOLEAN, 2, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_GEOLOCATION_POLICY_DECISION); - - /** - * WebKitWebView::geolocation-policy-decision-cancelled: - * @web_view: the object on which the signal is emitted - * @frame: the frame that cancels geolocation request. - * - * When a @frame wants to cancel geolocation permission it had requested - * before. - * - * Since: 1.1.23 - */ - webkit_web_view_signals[GEOLOCATION_POLICY_DECISION_CANCELLED] = g_signal_new("geolocation-policy-decision-cancelled", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST), - 0, - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /* - * DOM-related signals. These signals are experimental, for now, - * and may change API and ABI. Their comments lack one * on - * purpose, to make them not be catched by gtk-doc. - */ - - /** - * WebKitWebView::document-load-finished: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame whose load dispatched this request - * - * Emitted when the DOM document object load is finished for the - * given frame. - */ - webkit_web_view_signals[DOCUMENT_LOAD_FINISHED] = g_signal_new("document-load-finished", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::frame-created: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame which was just created. - * - * Emitted when a WebKitWebView has created a new frame. This signal will - * be emitted for all sub-frames created during page load. It will not be - * emitted for the main frame, which originates in the WebKitWebView constructor - * and may be accessed at any time using webkit_web_view_get_main_frame. - * - * Since: 1.3.4 - */ - webkit_web_view_signals[FRAME_CREATED] = g_signal_new("frame-created", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_WEB_FRAME); - - /** - * WebKitWebView::run-file-chooser: - * @web_view: the #WebKitWebView on which the signal is emitted - * @request: a #WebKitFileChooserRequest - * - * This signal is emitted when the user interacts with a <input - * type='file' /> HTML element, requesting from WebKit to show - * a dialog to select one or more files to be uploaded. To let the - * application know the details of the file chooser, as well as to - * allow the client application to either cancel the request or - * perform an actual selection of files, the signal will pass an - * instance of the #WebKitFileChooserRequest in the @request - * argument. - * - * The default signal handler will asynchronously run a regular - * #GtkFileChooserDialog for the user to interact with. - * - * If this signal is to be handled asynchronously, you must - * call g_object_ref() on the @request, and return %TRUE to indicate - * that the request is being handled. When you are ready to complete the - * request, call webkit_file_chooser_request_select_files(). - * - * Returns: %TRUE to stop other handlers from being invoked for the event. - * %FALSE to propagate the event further. - * - */ - webkit_web_view_signals[RUN_FILE_CHOOSER] = g_signal_new("run-file-chooser", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, run_file_chooser), - g_signal_accumulator_true_handled, 0 /* accumulator data */, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, /* number of parameters */ - WEBKIT_TYPE_FILE_CHOOSER_REQUEST); - - /** - * WebKitWebView::should-begin-editing: - * @web_view: the #WebKitWebView on which the signal is emitted - * @range: a #WebKitDOMRange - * - */ - webkit_web_view_signals[SHOULD_BEGIN_EDITING] = g_signal_new("should-begin-editing", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - WEBKIT_TYPE_DOM_RANGE); - - /** - * WebKitWebView::should-end-editing: - * @web_view: the #WebKitWebView on which the signal is emitted - * @range: a #WebKitDOMRange - * - */ - webkit_web_view_signals[SHOULD_END_EDITING] = g_signal_new("should-end-editing", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - WEBKIT_TYPE_DOM_RANGE); - - /** - * WebKitWebView::should-insert-node: - * @web_view: the #WebKitWebView on which the signal is emitted - * @node: a #WebKitDOMNode - * @range: a #WebKitDOMRange - * @action: a #WebKitInsertAction - * - */ - webkit_web_view_signals[SHOULD_INSERT_NODE] = g_signal_new("should-insert-node", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_ENUM, - G_TYPE_BOOLEAN, 3, - WEBKIT_TYPE_DOM_NODE, - WEBKIT_TYPE_DOM_RANGE, - WEBKIT_TYPE_INSERT_ACTION); - - /** - * WebKitWebView::should-insert-text: - * @web_view: the #WebKitWebView on which the signal is emitted - * @string: a string - * @range: a #WebKitDOMRange - * @action: a #WebKitInsertAction - * - */ - webkit_web_view_signals[SHOULD_INSERT_TEXT] = g_signal_new("should-insert-text", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__STRING_OBJECT_ENUM, - G_TYPE_BOOLEAN, 3, - G_TYPE_STRING, - WEBKIT_TYPE_DOM_RANGE, - WEBKIT_TYPE_INSERT_ACTION); - - // Only exists for GTK+ API compatibility. - /** - * WebKitWebView::should-delete-range: - * @web_view: the #WebKitWebView on which the signal is emitted - * @range: a #WebKitDOMRange - * - */ - webkit_web_view_signals[SHOULD_DELETE_RANGE] = g_signal_new("should-delete-range", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - WEBKIT_TYPE_DOM_RANGE); - - /** - * WebKitWebView::should-show-delete-interface-for-element: - * @web_view: the #WebKitWebView on which the signal is emitted - * @element: a #WebKitDOMHtmlElement - * - */ - webkit_web_view_signals[SHOULD_SHOW_DELETE_INTERFACE_FOR_ELEMENT] = g_signal_new("should-show-delete-interface-for-element", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, - WEBKIT_TYPE_DOM_HTML_ELEMENT); - - /** - * WebKitWebView::should-change-selected-range: - * @web_view: the #WebKitWebView on which the signal is emitted - * @fromRange: a #WebKitDOMRange - * @toRange: a #WebKitDOMRange - * @affinity: a #WebKitElectionAffinity - * @stillSelecting: bool - * - */ - webkit_web_view_signals[SHOULD_CHANGE_SELECTED_RANGE] = g_signal_new("should-change-selected-range", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_ENUM_BOOLEAN, - G_TYPE_BOOLEAN, 4, - WEBKIT_TYPE_DOM_RANGE, - WEBKIT_TYPE_DOM_RANGE, - WEBKIT_TYPE_SELECTION_AFFINITY, - G_TYPE_BOOLEAN); - - /** - * WebKitWebView::should-apply-style: - * @web_view: the #WebKitWebView on which the signal is emitted - * @set: a #WebKitDOMCSSStyleDeclaration - * @range: a #WebKitDOMRange - * - */ - webkit_web_view_signals[SHOULD_APPLY_STYLE] = g_signal_new("should-apply-style", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, should_allow_editing_action), - g_signal_accumulator_first_wins, 0, - webkit_marshal_BOOLEAN__OBJECT_OBJECT, - G_TYPE_BOOLEAN, 2, - WEBKIT_TYPE_DOM_CSS_STYLE_DECLARATION, - WEBKIT_TYPE_DOM_RANGE); - - /** - * WebKitWebView::editing-began: - * @web_view: the #WebKitWebView on which the signal is emitted - * - */ - webkit_web_view_signals[EDITING_BEGAN] = g_signal_new("editing-began", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::user-changed-contents: - * @web_view: the #WebKitWebView on which the signal is emitted - * - */ - webkit_web_view_signals[USER_CHANGED_CONTENTS] = g_signal_new("user-changed-contents", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::editing-ended: - * @web_view: the #WebKitWebView on which the signal is emitted - * - */ - webkit_web_view_signals[EDITING_ENDED] = g_signal_new("editing-ended", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /** - * WebKitWebView::selection-changed: - * @web_view: the #WebKitWebView on which the signal is emitted - * - */ - webkit_web_view_signals[SELECTION_CHANGED] = g_signal_new("selection-changed", - G_TYPE_FROM_CLASS(webViewClass), - static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - /* - * WebKitWebView::viewport-attributes-recompute-requested: - * @web_view: the object which received the signal - * @viewport_attributes: the #WebKitViewportAttributes which has the viewport attributes. - * - * The #WebKitWebView::viewport-attributes-recompute-requested - * signal will be emitted when a page with a viewport meta tag - * loads and when webkit_viewport_attributes_recompute is called. - * - * The #WebKitViewportAttributes will have device size, available size, - * desktop width, and device DPI pre-filled by values that make sense - * for the current screen and widget, but you can override those values - * if you have special requirements (for instance, if you made your - * widget bigger than the available visible area, you should override - * the available-width and available-height properties to the actual - * visible area). - * - * Since: 1.3.8 - */ - webkit_web_view_signals[VIEWPORT_ATTRIBUTES_RECOMPUTE_REQUESTED] = g_signal_new("viewport-attributes-recompute-requested", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_VIEWPORT_ATTRIBUTES); - - /* - * WebKitWebView::viewport-attributes-changed: - * @web_view: the object which received the signal - * @viewport_attributes: the #WebKitViewportAttributes which has the viewport attributes. - * - * The #WebKitWebView::viewport-attributes-changed signal will be emitted - * after the emission of #WebKitWebView::viewport-attributes-recompute-requested - * and the subsequent viewport attribute recomputation. At this point, - * if the #WebKitViewportAttributes are valid, the viewport attributes are available. - * - * Since: 1.3.8 - */ - webkit_web_view_signals[VIEWPORT_ATTRIBUTES_CHANGED] = g_signal_new("viewport-attributes-changed", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - 0, - 0, 0, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - WEBKIT_TYPE_VIEWPORT_ATTRIBUTES); - - /** - * WebKitWebView::entering-fullscreen: - * @web_view: the #WebKitWebView on which the signal is emitted. - * @element: the #WebKitDOMHTMLElement which has requested full screen display. - * - * Emitted when JavaScript code calls - * <function>element.webkitRequestFullScreen</function>. If the - * signal is not handled the WebView will proceed to full screen - * its top level window. This signal can be used by client code to - * request permission to the user prior doing the full screen - * transition and eventually prepare the top-level window - * (e.g. hide some widgets that would otherwise be part of the - * full screen window). - * - * Returns: %TRUE to stop other handlers from being invoked for the event. - * %FALSE to continue emission of the event. - * - * Since: 1.9.0 - */ - webkit_web_view_signals[ENTERING_FULLSCREEN] = g_signal_new("entering-fullscreen", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, entering_fullscreen), - g_signal_accumulator_true_handled, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_HTML_ELEMENT); - - - /** - * WebKitWebView::leaving-fullscreen: - * @web_view: the #WebKitWebView on which the signal is emitted. - * @element: the #WebKitDOMHTMLElement which is currently displayed full screen. - * - * Emitted when the WebView is about to restore its top level - * window out of its full screen state. This signal can be used by - * client code to restore widgets hidden during the - * entering-fullscreen stage for instance. - * - * Returns: %TRUE to stop other handlers from being invoked for the event. - * %FALSE to continue emission of the event. - * - * Since: 1.9.0 - */ - webkit_web_view_signals[LEAVING_FULLSCREEN] = g_signal_new("leaving-fullscreen", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(WebKitWebViewClass, leaving_fullscreen), - g_signal_accumulator_true_handled, 0, - webkit_marshal_BOOLEAN__OBJECT, - G_TYPE_BOOLEAN, 1, WEBKIT_TYPE_DOM_HTML_ELEMENT); - - /** - * WebKitWebView::resource-response-received: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource being loaded - * @response: the #WebKitNetworkResponse that was received - * - * Emitted when the first byte of data arrives - * - * Since: 1.7.5 - */ - webkit_web_view_signals[RESOURCE_RESPONSE_RECEIVED] = g_signal_new("resource-response-received", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT_OBJECT, - G_TYPE_NONE, 3, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_WEB_RESOURCE, - WEBKIT_TYPE_NETWORK_RESPONSE); - - /** - * WebKitWebView::resource-load-finished: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource that was loaded - * - * Emitted when all the data for the resource was loaded - * - * Since: 1.7.5 - */ - webkit_web_view_signals[RESOURCE_LOAD_FINISHED] = g_signal_new("resource-load-finished", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT, - G_TYPE_NONE, 2, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_WEB_RESOURCE); - - /** - * WebKitWebView::resource-content-length-received: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource that was loaded - * @length_received: the amount of data received since the last signal emission - * - * Emitted when new resource data has been received. The - * @length_received variable stores the amount of bytes received - * since the last time this signal was emitted. This is useful to - * provide progress information about the resource load operation. - * - * Since: 1.7.5 - */ - webkit_web_view_signals[RESOURCE_CONTENT_LENGTH_RECEIVED] = g_signal_new("resource-content-length-received", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT_INT, - G_TYPE_NONE, 3, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_WEB_RESOURCE, - G_TYPE_INT); - - /** - * WebKitWebView::resource-load-failed: - * @web_view: the object which received the signal - * @web_frame: the #WebKitWebFrame the response was received for - * @web_resource: the #WebKitWebResource that was loaded - * @error: the #GError that was triggered - * - * Invoked when a resource failed to load - * - * Since: 1.7.5 - */ - webkit_web_view_signals[RESOURCE_LOAD_FAILED] = g_signal_new("resource-load-failed", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - 0, - 0, 0, - webkit_marshal_VOID__OBJECT_OBJECT_BOXED, - G_TYPE_NONE, 3, - WEBKIT_TYPE_WEB_FRAME, - WEBKIT_TYPE_WEB_RESOURCE, - G_TYPE_ERROR); - - /** - * WebKitWebView::context-menu: - * @web_view: the object which received the signal - * @default_menu: the default context menu - * @hit_test_result: a #WebKitHitTestResult with the context of the current position. - * @triggered_with_keyboard: %TRUE if the context menu was triggered using the keyboard - * - * Emmited when a context menu is about to be displayed to give the application - * a chance to create and handle its own context menu. If you only want to add custom - * options to the default context menu you can simply modify the given @default_menu. - * - * When @triggered_with_keyboard is %TRUE the coordinates of the given @hit_test_result should be - * used to position the popup menu. When the context menu has been triggered by a - * mouse event you could either use the @hit_test_result coordinates or pass %NULL - * to the #GtkMenuPositionFunc parameter of gtk_menu_popup() function. - * Note that coordinates of @hit_test_result are relative to @web_view window. - * - * If your application will create and display its own popup menu, %TRUE should be returned. - * Note that when the context menu is handled by the application, the #WebKitWebSettings:enable-default-context-menu - * setting will be ignored and the #WebKitWebView::populate-popup signal won't be emitted. - * If you don't want any context menu to be shown, you can simply connect to this signal - * and return %TRUE without doing anything else. - * - * Since: 1.10 - */ - webkit_web_view_signals[CONTEXT_MENU] = g_signal_new("context-menu", - G_TYPE_FROM_CLASS(webViewClass), - G_SIGNAL_RUN_LAST, - 0, 0, 0, - webkit_marshal_BOOLEAN__OBJECT_OBJECT_BOOLEAN, - G_TYPE_BOOLEAN, 3, - GTK_TYPE_WIDGET, - WEBKIT_TYPE_HIT_TEST_RESULT, - G_TYPE_BOOLEAN); - - /* - * implementations of virtual methods - */ - webViewClass->create_web_view = webkit_web_view_real_create_web_view; - webViewClass->web_view_ready = webkit_web_view_real_web_view_ready; - webViewClass->close_web_view = webkit_web_view_real_close_web_view; - webViewClass->navigation_requested = webkit_web_view_real_navigation_requested; - webViewClass->window_object_cleared = webkit_web_view_real_window_object_cleared; - webViewClass->choose_file = webkit_web_view_real_choose_file; - webViewClass->script_alert = webkit_web_view_real_script_alert; - webViewClass->script_confirm = webkit_web_view_real_script_confirm; - webViewClass->script_prompt = webkit_web_view_real_script_prompt; - webViewClass->console_message = webkit_web_view_real_console_message; - webViewClass->select_all = webkit_web_view_real_select_all; - webViewClass->cut_clipboard = webkit_web_view_real_cut_clipboard; - webViewClass->copy_clipboard = webkit_web_view_real_copy_clipboard; - webViewClass->paste_clipboard = webkit_web_view_real_paste_clipboard; - webViewClass->undo = webkit_web_view_real_undo; - webViewClass->redo = webkit_web_view_real_redo; - webViewClass->move_cursor = webkit_web_view_real_move_cursor; - webViewClass->should_allow_editing_action = webkit_web_view_real_should_allow_editing_action; - webViewClass->entering_fullscreen = webkit_web_view_real_entering_fullscreen; - webViewClass->leaving_fullscreen = webkit_web_view_real_leaving_fullscreen; - webViewClass->run_file_chooser = webkitWebViewRealRunFileChooser; - - GObjectClass* objectClass = G_OBJECT_CLASS(webViewClass); - objectClass->dispose = webkit_web_view_dispose; - objectClass->finalize = webkit_web_view_finalize; - objectClass->get_property = webkit_web_view_get_property; - objectClass->set_property = webkit_web_view_set_property; - - GtkWidgetClass* widgetClass = GTK_WIDGET_CLASS(webViewClass); - widgetClass->realize = webkit_web_view_realize; -#ifdef GTK_API_VERSION_2 - widgetClass->expose_event = webkit_web_view_expose_event; -#else - widgetClass->draw = webkit_web_view_draw; -#endif - widgetClass->key_press_event = webkit_web_view_key_press_event; - widgetClass->key_release_event = webkit_web_view_key_release_event; - widgetClass->button_press_event = webkit_web_view_button_press_event; - widgetClass->button_release_event = webkit_web_view_button_release_event; - widgetClass->motion_notify_event = webkit_web_view_motion_event; - widgetClass->scroll_event = webkit_web_view_scroll_event; - widgetClass->size_allocate = webkit_web_view_size_allocate; -#ifdef GTK_API_VERSION_2 - widgetClass->size_request = webkit_web_view_size_request; -#else - widgetClass->get_preferred_width = webkit_web_view_get_preferred_width; - widgetClass->get_preferred_height = webkit_web_view_get_preferred_height; -#endif -#if ENABLE(CONTEXT_MENUS) - widgetClass->popup_menu = webkit_web_view_popup_menu_handler; -#else - widgetClass->popup_menu = NULL; -#endif - widgetClass->grab_focus = webkit_web_view_grab_focus; - widgetClass->focus_in_event = webkit_web_view_focus_in_event; - widgetClass->focus_out_event = webkit_web_view_focus_out_event; - widgetClass->get_accessible = webkit_web_view_get_accessible; - widgetClass->screen_changed = webkit_web_view_screen_changed; -#if ENABLE(DRAG_SUPPORT) - widgetClass->drag_end = webkit_web_view_drag_end; - widgetClass->drag_data_get = webkit_web_view_drag_data_get; - widgetClass->drag_motion = webkit_web_view_drag_motion; - widgetClass->drag_leave = webkit_web_view_drag_leave; - widgetClass->drag_drop = webkit_web_view_drag_drop; - widgetClass->drag_data_received = webkit_web_view_drag_data_received; -#else - widgetClass->drag_end = NULL; - widgetClass->drag_data_get = NULL; - widgetClass->drag_motion = NULL; - widgetClass->drag_leave = NULL; - widgetClass->drag_drop = NULL; - widgetClass->drag_data_received = NULL; -#endif - widgetClass->query_tooltip = webkit_web_view_query_tooltip; - widgetClass->show_help = webkit_web_view_show_help; - widgetClass->map = webkitWebViewMap; - - GtkContainerClass* containerClass = GTK_CONTAINER_CLASS(webViewClass); - containerClass->add = webkit_web_view_container_add; - containerClass->remove = webkit_web_view_container_remove; - containerClass->forall = webkit_web_view_container_forall; - - /* - * make us scrollable (e.g. addable to a GtkScrolledWindow) - */ -#ifdef GTK_API_VERSION_2 - webViewClass->set_scroll_adjustments = webkit_web_view_set_scroll_adjustments; - GTK_WIDGET_CLASS(webViewClass)->set_scroll_adjustments_signal = g_signal_new("set-scroll-adjustments", - G_TYPE_FROM_CLASS(webViewClass), - (GSignalFlags)(G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION), - G_STRUCT_OFFSET(WebKitWebViewClass, set_scroll_adjustments), - NULL, NULL, - webkit_marshal_VOID__OBJECT_OBJECT, - G_TYPE_NONE, 2, - GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); -#else - g_object_class_override_property(objectClass, PROP_HADJUSTMENT, "hadjustment"); - g_object_class_override_property(objectClass, PROP_VADJUSTMENT, "vadjustment"); - g_object_class_override_property(objectClass, PROP_HSCROLL_POLICY, "hscroll-policy"); - g_object_class_override_property(objectClass, PROP_VSCROLL_POLICY, "vscroll-policy"); -#endif - - /* - * Key bindings - */ - - binding_set = gtk_binding_set_by_class(webViewClass); - - gtk_binding_entry_add_signal(binding_set, GDK_a, GDK_CONTROL_MASK, - "select_all", 0); - - /* Cut/copy/paste */ - - gtk_binding_entry_add_signal(binding_set, GDK_x, GDK_CONTROL_MASK, - "cut_clipboard", 0); - gtk_binding_entry_add_signal(binding_set, GDK_c, GDK_CONTROL_MASK, - "copy_clipboard", 0); - gtk_binding_entry_add_signal(binding_set, GDK_v, GDK_CONTROL_MASK, - "paste_clipboard", 0); - gtk_binding_entry_add_signal(binding_set, GDK_z, GDK_CONTROL_MASK, - "undo", 0); - gtk_binding_entry_add_signal(binding_set, GDK_z, static_cast<GdkModifierType>(GDK_CONTROL_MASK | GDK_SHIFT_MASK), - "redo", 0); - - gtk_binding_entry_add_signal(binding_set, GDK_Delete, GDK_SHIFT_MASK, - "cut_clipboard", 0); - gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_CONTROL_MASK, - "copy_clipboard", 0); - gtk_binding_entry_add_signal(binding_set, GDK_Insert, GDK_SHIFT_MASK, - "paste_clipboard", 0); - - /* Movement */ - - gtk_binding_entry_add_signal(binding_set, GDK_Down, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_DISPLAY_LINES, - G_TYPE_INT, 1); - gtk_binding_entry_add_signal(binding_set, GDK_Up, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_DISPLAY_LINES, - G_TYPE_INT, -1); - gtk_binding_entry_add_signal(binding_set, GDK_Right, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_VISUAL_POSITIONS, - G_TYPE_INT, 1); - gtk_binding_entry_add_signal(binding_set, GDK_Left, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_VISUAL_POSITIONS, - G_TYPE_INT, -1); - gtk_binding_entry_add_signal(binding_set, GDK_space, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_PAGES, - G_TYPE_INT, 1); - gtk_binding_entry_add_signal(binding_set, GDK_space, GDK_SHIFT_MASK, - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_PAGES, - G_TYPE_INT, -1); - gtk_binding_entry_add_signal(binding_set, GDK_Page_Down, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_PAGES, - G_TYPE_INT, 1); - gtk_binding_entry_add_signal(binding_set, GDK_Page_Up, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_PAGES, - G_TYPE_INT, -1); - gtk_binding_entry_add_signal(binding_set, GDK_End, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, - G_TYPE_INT, 1); - gtk_binding_entry_add_signal(binding_set, GDK_Home, static_cast<GdkModifierType>(0), - "move-cursor", 2, - G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, - G_TYPE_INT, -1); - - /* - * properties - */ - - /** - * WebKitWebView:title: - * - * Returns: the @web_view's document title. - * - * Since: 1.1.4 - */ - g_object_class_install_property(objectClass, PROP_TITLE, - g_param_spec_string("title", - _("Title"), - _("Returns the @web_view's document title"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:uri: - * - * Returns: the current URI of the contents displayed by the @web_view. - * - * Since: 1.1.4 - */ - g_object_class_install_property(objectClass, PROP_URI, - g_param_spec_string("uri", - _("URI"), - _("Returns the current URI of the contents displayed by the @web_view"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:copy-target-list: - * - * The list of targets this web view supports for clipboard copying. - * - * Since: 1.0.2 - */ - g_object_class_install_property(objectClass, PROP_COPY_TARGET_LIST, - g_param_spec_boxed("copy-target-list", - _("Copy target list"), - _("The list of targets this web view supports for clipboard copying"), - GTK_TYPE_TARGET_LIST, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:paste-target-list: - * - * The list of targets this web view supports for clipboard pasting. - * - * Since: 1.0.2 - */ - g_object_class_install_property(objectClass, PROP_PASTE_TARGET_LIST, - g_param_spec_boxed("paste-target-list", - _("Paste target list"), - _("The list of targets this web view supports for clipboard pasting"), - GTK_TYPE_TARGET_LIST, - WEBKIT_PARAM_READABLE)); - - g_object_class_install_property(objectClass, PROP_SETTINGS, - g_param_spec_object("settings", - _("Settings"), - _("An associated WebKitWebSettings instance"), - WEBKIT_TYPE_WEB_SETTINGS, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebView:web-inspector: - * - * The associated WebKitWebInspector instance. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_WEB_INSPECTOR, - g_param_spec_object("web-inspector", - _("Web Inspector"), - _("The associated WebKitWebInspector instance"), - WEBKIT_TYPE_WEB_INSPECTOR, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:viewport-attributes: - * - * The associated #WebKitViewportAttributes instance. - * - * Since: 1.3.8 - */ - g_object_class_install_property(objectClass, PROP_VIEWPORT_ATTRIBUTES, - g_param_spec_object("viewport-attributes", - _("Viewport Attributes"), - _("The associated WebKitViewportAttributes instance"), - WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:window-features: - * - * An associated WebKitWebWindowFeatures instance. - * - * Since: 1.0.3 - */ - g_object_class_install_property(objectClass, PROP_WINDOW_FEATURES, - g_param_spec_object("window-features", - "Window Features", - "An associated WebKitWebWindowFeatures instance", - WEBKIT_TYPE_WEB_WINDOW_FEATURES, - WEBKIT_PARAM_READWRITE)); - - g_object_class_install_property(objectClass, PROP_EDITABLE, - g_param_spec_boolean("editable", - _("Editable"), - _("Whether content can be modified by the user"), - FALSE, - WEBKIT_PARAM_READWRITE)); - - g_object_class_install_property(objectClass, PROP_TRANSPARENT, - g_param_spec_boolean("transparent", - _("Transparent"), - _("Whether content has a transparent background"), - FALSE, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebView:zoom-level: - * - * The level of zoom of the content. - * - * Since: 1.0.1 - */ - g_object_class_install_property(objectClass, PROP_ZOOM_LEVEL, - g_param_spec_float("zoom-level", - _("Zoom level"), - _("The level of zoom of the content"), - G_MINFLOAT, - G_MAXFLOAT, - 1.0f, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebView:full-content-zoom: - * - * Whether the full content is scaled when zooming. - * - * Since: 1.0.1 - */ - g_object_class_install_property(objectClass, PROP_FULL_CONTENT_ZOOM, - g_param_spec_boolean("full-content-zoom", - _("Full content zoom"), - _("Whether the full content is scaled when zooming"), - FALSE, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebView:encoding: - * - * The default encoding of the web view. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, PROP_ENCODING, - g_param_spec_string("encoding", - _("Encoding"), - _("The default encoding of the web view"), - NULL, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:custom-encoding: - * - * The custom encoding of the web view. - * - * Since: 1.1.2 - */ - g_object_class_install_property(objectClass, PROP_CUSTOM_ENCODING, - g_param_spec_string("custom-encoding", - _("Custom Encoding"), - _("The custom encoding of the web view"), - NULL, - WEBKIT_PARAM_READWRITE)); - - /** - * WebKitWebView:load-status: - * - * Determines the current status of the load. - * - * Connect to "notify::load-status" to monitor loading. - * - * Some versions of WebKitGTK+ emitted this signal for the default - * error page, while loading it. This behavior was considered bad, - * because it was essentially exposing an implementation - * detail. From 1.1.19 onwards this signal is no longer emitted for - * the default error pages, but keep in mind that if you override - * the error pages by using webkit_web_frame_load_alternate_string() - * the signals will be emitted. - * - * Since: 1.1.7 - */ - g_object_class_install_property(objectClass, PROP_LOAD_STATUS, - g_param_spec_enum("load-status", - "Load Status", - "Determines the current status of the load", - WEBKIT_TYPE_LOAD_STATUS, - WEBKIT_LOAD_FINISHED, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:progress: - * - * Determines the current progress of the load. - * - * Since: 1.1.7 - */ - g_object_class_install_property(objectClass, PROP_PROGRESS, - g_param_spec_double("progress", - "Progress", - "Determines the current progress of the load", - 0.0, 1.0, 1.0, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:icon-uri: - * - * The URI for the favicon for the #WebKitWebView. - * - * Since: 1.1.18 - */ - g_object_class_install_property(objectClass, PROP_ICON_URI, - g_param_spec_string("icon-uri", - _("Icon URI"), - _("The URI for the favicon for the #WebKitWebView."), - NULL, - WEBKIT_PARAM_READABLE)); - /** - * WebKitWebView:im-context: - * - * The GtkIMMulticontext for the #WebKitWebView. - * - * This is the input method context used for all text entry widgets inside - * the #WebKitWebView. It can be used to generate context menu items for - * controlling the active input method. - * - * Since: 1.1.20 - */ - g_object_class_install_property(objectClass, PROP_IM_CONTEXT, - g_param_spec_object("im-context", - "IM Context", - "The GtkIMMultiContext for the #WebKitWebView.", - GTK_TYPE_IM_CONTEXT, - WEBKIT_PARAM_READABLE)); - - /** - * WebKitWebView:view-mode: - * - * The "view-mode" media feature for the #WebKitWebView. - * - * The "view-mode" media feature is additional information for web - * applications about how the application is running, when it comes - * to user experience. Whether the application is running inside a - * regular browser window, in a dedicated window, fullscreen, for - * instance. - * - * This property stores a %WebKitWebViewViewMode value that matches - * the "view-mode" media feature the web application will see. - * - * See http://www.w3.org/TR/view-mode/ for more information. - * - * Since: 1.3.4 - */ - g_object_class_install_property(objectClass, PROP_VIEW_MODE, - g_param_spec_enum("view-mode", - "View Mode", - "The view-mode media feature for the #WebKitWebView.", - WEBKIT_TYPE_WEB_VIEW_VIEW_MODE, - WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED, - WEBKIT_PARAM_READWRITE)); - - // This property should be undocumented for now. It's only used by DRT. - g_object_class_install_property(objectClass, PROP_SELF_SCROLLING, - g_param_spec_boolean("self-scrolling", "Self-scrolling", - "Whether or not this WebView draws its own scrollbars.", - FALSE, - static_cast<GParamFlags>(G_PARAM_CONSTRUCT_ONLY | WEBKIT_PARAM_READWRITE))); - - g_type_class_add_private(webViewClass, sizeof(WebKitWebViewPrivate)); -} - -static void webkit_web_view_update_settings(WebKitWebView* webView) -{ - WebKitWebSettingsPrivate* settingsPrivate = webView->priv->webSettings->priv; - Settings* coreSettings = core(webView)->settings(); - - coreSettings->setDefaultTextEncodingName(settingsPrivate->defaultEncoding.data()); - coreSettings->setCursiveFontFamily(settingsPrivate->cursiveFontFamily.data()); - coreSettings->setStandardFontFamily(settingsPrivate->defaultFontFamily.data()); - coreSettings->setFantasyFontFamily(settingsPrivate->fantasyFontFamily.data()); - coreSettings->setFixedFontFamily(settingsPrivate->monospaceFontFamily.data()); - coreSettings->setSansSerifFontFamily(settingsPrivate->sansSerifFontFamily.data()); - coreSettings->setSerifFontFamily(settingsPrivate->serifFontFamily.data()); - coreSettings->setLoadsImagesAutomatically(settingsPrivate->autoLoadImages); - coreSettings->setShrinksStandaloneImagesToFit(settingsPrivate->autoShrinkImages); - coreSettings->setShouldRespectImageOrientation(settingsPrivate->respectImageOrientation); - coreSettings->setShouldPrintBackgrounds(settingsPrivate->printBackgrounds); - coreSettings->setScriptEnabled(settingsPrivate->enableScripts); - coreSettings->setPluginsEnabled(settingsPrivate->enablePlugins); - coreSettings->setTextAreasAreResizable(settingsPrivate->resizableTextAreas); - coreSettings->setUserStyleSheetLocation(KURL(KURL(), settingsPrivate->userStylesheetURI.data())); - coreSettings->setDeveloperExtrasEnabled(settingsPrivate->enableDeveloperExtras); - coreSettings->setPrivateBrowsingEnabled(settingsPrivate->enablePrivateBrowsing); - coreSettings->setCaretBrowsingEnabled(settingsPrivate->enableCaretBrowsing); - coreSettings->setLocalStorageEnabled(settingsPrivate->enableHTML5LocalStorage); - coreSettings->setLocalStorageDatabasePath(settingsPrivate->html5LocalStorageDatabasePath.data()); - coreSettings->setXSSAuditorEnabled(settingsPrivate->enableXSSAuditor); - coreSettings->setSpatialNavigationEnabled(settingsPrivate->enableSpatialNavigation); - coreSettings->setFrameFlatteningEnabled(settingsPrivate->enableFrameFlattening); - coreSettings->setJavaScriptCanOpenWindowsAutomatically(settingsPrivate->javascriptCanOpenWindowsAutomatically); - coreSettings->setJavaScriptCanAccessClipboard(settingsPrivate->javascriptCanAccessClipboard); - coreSettings->setOfflineWebApplicationCacheEnabled(settingsPrivate->enableOfflineWebApplicationCache); - coreSettings->setEditingBehaviorType(static_cast<WebCore::EditingBehaviorType>(settingsPrivate->editingBehavior)); - coreSettings->setAllowUniversalAccessFromFileURLs(settingsPrivate->enableUniversalAccessFromFileURIs); - coreSettings->setAllowFileAccessFromFileURLs(settingsPrivate->enableFileAccessFromFileURIs); - coreSettings->setDOMPasteAllowed(settingsPrivate->enableDOMPaste); - coreSettings->setNeedsSiteSpecificQuirks(settingsPrivate->enableSiteSpecificQuirks); - coreSettings->setUsesPageCache(settingsPrivate->enablePageCache); - coreSettings->setJavaEnabled(settingsPrivate->enableJavaApplet); - coreSettings->setHyperlinkAuditingEnabled(settingsPrivate->enableHyperlinkAuditing); - coreSettings->setDNSPrefetchingEnabled(settingsPrivate->enableDNSPrefetching); - coreSettings->setMediaPlaybackRequiresUserGesture(settingsPrivate->mediaPlaybackRequiresUserGesture); - coreSettings->setMediaPlaybackAllowsInline(settingsPrivate->mediaPlaybackAllowsInline); - coreSettings->setAllowDisplayOfInsecureContent(settingsPrivate->enableDisplayOfInsecureContent); - coreSettings->setAllowRunningOfInsecureContent(settingsPrivate->enableRunningOfInsecureContent); - -#if ENABLE(SQL_DATABASE) - DatabaseManager::manager().setIsAvailable(settingsPrivate->enableHTML5Database); -#endif - -#if ENABLE(FULLSCREEN_API) - coreSettings->setFullScreenEnabled(settingsPrivate->enableFullscreen); -#endif - -#if ENABLE(SPELLCHECK) - if (settingsPrivate->enableSpellChecking) { - WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient()); - static_cast<WebKit::TextCheckerClientGtk*>(client->textChecker())->updateSpellCheckingLanguage(settingsPrivate->spellCheckingLanguages.data()); - } -#endif - -#if ENABLE(WEBGL) - coreSettings->setWebGLEnabled(settingsPrivate->enableWebgl); -#endif - -#if ENABLE(MEDIA_STREAM) - WebCore::RuntimeEnabledFeatures::setMediaStreamEnabled(settingsPrivate->enableMediaStream); -#endif - -#if USE(ACCELERATED_COMPOSITING) - coreSettings->setAcceleratedCompositingEnabled(settingsPrivate->enableAcceleratedCompositing); - char* debugVisualsEnvironment = getenv("WEBKIT_SHOW_COMPOSITING_DEBUG_VISUALS"); - bool showDebugVisuals = debugVisualsEnvironment && !strcmp(debugVisualsEnvironment, "1"); - coreSettings->setShowDebugBorders(showDebugVisuals); - coreSettings->setShowRepaintCounter(showDebugVisuals); -#endif - -#if ENABLE(WEB_AUDIO) - coreSettings->setWebAudioEnabled(settingsPrivate->enableWebAudio); -#endif - -#if ENABLE(SMOOTH_SCROLLING) - coreSettings->setScrollAnimatorEnabled(settingsPrivate->enableSmoothScrolling); -#endif - -#if ENABLE(CSS_SHADERS) - coreSettings->setCSSCustomFilterEnabled(settingsPrivate->enableCSSShaders); -#endif - - // Use mock scrollbars if in DumpRenderTree mode (i.e. testing layout tests). - coreSettings->setMockScrollbarsEnabled(DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()); - - if (Page* page = core(webView)) - page->setTabKeyCyclesThroughElements(settingsPrivate->tabKeyCyclesThroughElements); - - webkit_web_view_screen_changed(GTK_WIDGET(webView), NULL); -} - -static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView) -{ - Settings* settings = core(webView)->settings(); - - const gchar* name = g_intern_string(pspec->name); - GValue value = { 0, { { 0 } } }; - g_value_init(&value, pspec->value_type); - g_object_get_property(G_OBJECT(webSettings), name, &value); - - if (name == g_intern_string("default-encoding")) - settings->setDefaultTextEncodingName(g_value_get_string(&value)); - else if (name == g_intern_string("cursive-font-family")) - settings->setCursiveFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("default-font-family")) - settings->setStandardFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("fantasy-font-family")) - settings->setFantasyFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("monospace-font-family")) - settings->setFixedFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("sans-serif-font-family")) - settings->setSansSerifFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("serif-font-family")) - settings->setSerifFontFamily(g_value_get_string(&value)); - else if (name == g_intern_string("default-font-size")) - settings->setDefaultFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); - else if (name == g_intern_string("default-monospace-font-size")) - settings->setDefaultFixedFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); - else if (name == g_intern_string("minimum-font-size")) - settings->setMinimumFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); - else if (name == g_intern_string("minimum-logical-font-size")) - settings->setMinimumLogicalFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); - else if (name == g_intern_string("enforce-96-dpi")) - webkit_web_view_screen_changed(GTK_WIDGET(webView), NULL); - else if (name == g_intern_string("auto-load-images")) - settings->setLoadsImagesAutomatically(g_value_get_boolean(&value)); - else if (name == g_intern_string("auto-shrink-images")) - settings->setShrinksStandaloneImagesToFit(g_value_get_boolean(&value)); - else if (name == g_intern_string("respect-image-orientation")) - settings->setShouldRespectImageOrientation(g_value_get_boolean(&value)); - else if (name == g_intern_string("print-backgrounds")) - settings->setShouldPrintBackgrounds(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-scripts")) - settings->setScriptEnabled(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")) - settings->setUserStyleSheetLocation(KURL(KURL(), g_value_get_string(&value))); - else if (name == g_intern_string("enable-developer-extras")) - settings->setDeveloperExtrasEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-private-browsing")) - settings->setPrivateBrowsingEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-caret-browsing")) - settings->setCaretBrowsingEnabled(g_value_get_boolean(&value)); -#if ENABLE(SQL_DATABASE) - else if (name == g_intern_string("enable-html5-database")) { - DatabaseManager::manager().setIsAvailable(g_value_get_boolean(&value)); - } -#endif - else if (name == g_intern_string("enable-html5-local-storage")) - settings->setLocalStorageEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("html5-local-storage-database-path")) - settings->setLocalStorageDatabasePath(g_value_get_string(&value)); - else if (name == g_intern_string("enable-xss-auditor")) - settings->setXSSAuditorEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-spatial-navigation")) - settings->setSpatialNavigationEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-frame-flattening")) - settings->setFrameFlatteningEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("javascript-can-open-windows-automatically")) - settings->setJavaScriptCanOpenWindowsAutomatically(g_value_get_boolean(&value)); - else if (name == g_intern_string("javascript-can-access-clipboard")) - settings->setJavaScriptCanAccessClipboard(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-offline-web-application-cache")) - settings->setOfflineWebApplicationCacheEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("editing-behavior")) - settings->setEditingBehaviorType(static_cast<WebCore::EditingBehaviorType>(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-file-access-from-file-uris")) - settings->setAllowFileAccessFromFileURLs(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-dom-paste")) - settings->setDOMPasteAllowed(g_value_get_boolean(&value)); - else if (name == g_intern_string("tab-key-cycles-through-elements")) { - Page* page = core(webView); - if (page) - page->setTabKeyCyclesThroughElements(g_value_get_boolean(&value)); - } else if (name == g_intern_string("enable-site-specific-quirks")) - settings->setNeedsSiteSpecificQuirks(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-page-cache")) - settings->setUsesPageCache(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-java-applet")) - settings->setJavaEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("enable-hyperlink-auditing")) - settings->setHyperlinkAuditingEnabled(g_value_get_boolean(&value)); - else if (name == g_intern_string("media-playback-requires-user-gesture")) - settings->setMediaPlaybackRequiresUserGesture(g_value_get_boolean(&value)); - else if (name == g_intern_string("media-playback-allows-inline")) - settings->setMediaPlaybackAllowsInline(g_value_get_boolean(&value)); - -#if ENABLE(SPELLCHECK) - else if (name == g_intern_string("spell-checking-languages")) { - gboolean enableSpellChecking; - g_object_get(G_OBJECT(webSettings), "enable-spell-checking", &enableSpellChecking, NULL); - if (enableSpellChecking) { - WebKit::EditorClient* client = static_cast<WebKit::EditorClient*>(core(webView)->editorClient()); - static_cast<WebKit::TextCheckerClientGtk*>(client->textChecker())->updateSpellCheckingLanguage(g_value_get_string(&value)); - } - } -#endif - -#if ENABLE(WEBGL) - else if (name == g_intern_string("enable-webgl")) - settings->setWebGLEnabled(g_value_get_boolean(&value)); -#endif - -#if USE(ACCELERATED_COMPOSITING) - else if (name == g_intern_string("enable-accelerated-compositing")) - settings->setAcceleratedCompositingEnabled(g_value_get_boolean(&value)); -#endif - -#if ENABLE(WEB_AUDIO) - else if (name == g_intern_string("enable-webaudio")) - settings->setWebAudioEnabled(g_value_get_boolean(&value)); -#endif - -#if ENABLE(SMOOTH_SCROLLING) - else if (name == g_intern_string("enable-smooth-scrolling")) - settings->setScrollAnimatorEnabled(g_value_get_boolean(&value)); -#endif - -#if ENABLE(CSS_SHADERS) - else if (name == g_intern_string("enable-css-shaders")) - settings->setCSSCustomFilterEnabled(g_value_get_boolean(&value)); -#endif - - else if (!g_object_class_find_property(G_OBJECT_GET_CLASS(webSettings), name)) - g_warning("Unexpected setting '%s'", name); - g_value_unset(&value); -} - -static void webkit_web_view_init(WebKitWebView* webView) -{ - WebKitWebViewPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(webView, WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate); - webView->priv = priv; - // This is the placement new syntax: http://www.parashift.com/c++-faq-lite/dtors.html#faq-11.10 - // It allows us to call a constructor on manually allocated locations in memory. We must use it - // in this case, because GLib manages the memory for the private data section, but we wish it - // to contain C++ object members. The use of placement new calls the constructor on all C++ data - // members, which ensures they are initialized properly. - new (priv) WebKitWebViewPrivate(); - - priv->imFilter.setWebView(webView); - - Page::PageClients pageClients; - pageClients.chromeClient = new WebKit::ChromeClient(webView); -#if ENABLE(CONTEXT_MENUS) - pageClients.contextMenuClient = new WebKit::ContextMenuClient(webView); -#endif - pageClients.editorClient = new WebKit::EditorClient(webView); -#if ENABLE(DRAG_SUPPORT) - pageClients.dragClient = new WebKit::DragClient(webView); -#endif - pageClients.inspectorClient = new WebKit::InspectorClient(webView); - - priv->corePage = new Page(pageClients); - - priv->corePage->addLayoutMilestones(DidFirstVisuallyNonEmptyLayout); - -#if ENABLE(GEOLOCATION) - if (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()) { - priv->geolocationClientMock = adoptPtr(new GeolocationClientMock); - WebCore::provideGeolocationTo(priv->corePage, priv->geolocationClientMock.get()); - priv->geolocationClientMock.get()->setController(GeolocationController::from(priv->corePage)); - } else - WebCore::provideGeolocationTo(priv->corePage, new WebKit::GeolocationClient(webView)); -#endif -#if ENABLE(DEVICE_ORIENTATION) - WebCore::provideDeviceMotionTo(priv->corePage, new DeviceMotionClientGtk); - WebCore::provideDeviceOrientationTo(priv->corePage, new DeviceOrientationClientGtk); -#endif - -#if ENABLE(MEDIA_STREAM) - priv->userMediaClient = adoptPtr(new UserMediaClientGtk); - WebCore::provideUserMediaTo(priv->corePage, priv->userMediaClient.get()); -#endif - -#if ENABLE(NAVIGATOR_CONTENT_UTILS) - priv->navigatorContentUtilsClient = WebKit::NavigatorContentUtilsClient::create(); - WebCore::provideNavigatorContentUtilsTo(priv->corePage, priv->navigatorContentUtilsClient.get()); -#endif - - if (DumpRenderTreeSupportGtk::dumpRenderTreeModeEnabled()) { - // Set some testing-specific settings - priv->corePage->settings()->setInteractiveFormValidationEnabled(true); - priv->corePage->settings()->setValidationMessageTimerMagnification(-1); - } - - // Pages within a same session need to be linked together otherwise some functionalities such - // as visited link coloration (across pages) and changing popup window location will not work. - // To keep the default behavior simple (and because no PageGroup API exist in WebKitGTK at the - // time of writing this comment), we simply set all the pages to the same group. - priv->corePage->setGroupName(webkitPageGroupName()); - - // We also add a simple wrapper class to provide the public - // interface for the Web Inspector. - priv->webInspector = adoptGRef(WEBKIT_WEB_INSPECTOR(g_object_new(WEBKIT_TYPE_WEB_INSPECTOR, NULL))); - webkit_web_inspector_set_inspector_client(priv->webInspector.get(), priv->corePage); - - // And our ViewportAttributes friend. - priv->viewportAttributes = adoptGRef(WEBKIT_VIEWPORT_ATTRIBUTES(g_object_new(WEBKIT_TYPE_VIEWPORT_ATTRIBUTES, NULL))); - priv->viewportAttributes->priv->webView = webView; - - gtk_widget_set_can_focus(GTK_WIDGET(webView), TRUE); - - priv->mainFrame = WEBKIT_WEB_FRAME(webkit_web_frame_new(webView)); - priv->lastPopupXPosition = priv->lastPopupYPosition = -1; - - priv->backForwardList = adoptGRef(webkit_web_back_forward_list_new_with_web_view(webView)); - - priv->zoomFullContent = FALSE; - - priv->webSettings = adoptGRef(webkit_web_settings_new()); - webkit_web_view_update_settings(webView); - g_signal_connect(priv->webSettings.get(), "notify", G_CALLBACK(webkit_web_view_settings_notify), webView); - - priv->webWindowFeatures = adoptGRef(webkit_web_window_features_new()); - - priv->subResources = adoptGRef(g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_object_unref)); - -#if ENABLE(DRAG_SUPPORT) - priv->dragAndDropHelper.setWidget(GTK_WIDGET(webView)); - gtk_drag_dest_set(GTK_WIDGET(webView), static_cast<GtkDestDefaults>(0), 0, 0, static_cast<GdkDragAction>(GDK_ACTION_COPY | GDK_ACTION_COPY | GDK_ACTION_MOVE | GDK_ACTION_LINK | GDK_ACTION_PRIVATE)); - gtk_drag_dest_set_target_list(GTK_WIDGET(webView), PasteboardHelper::defaultPasteboardHelper()->targetList()); -#endif - - priv->selfScrolling = false; - -#if USE(ACCELERATED_COMPOSITING) - priv->acceleratedCompositingContext = AcceleratedCompositingContext::create(webView); -#endif - - g_signal_connect(webView, "direction-changed", G_CALLBACK(webkitWebViewDirectionChanged), 0); -} - -GtkWidget* webkit_web_view_new(void) -{ - WebKitWebView* webView = WEBKIT_WEB_VIEW(g_object_new(WEBKIT_TYPE_WEB_VIEW, NULL)); - - return GTK_WIDGET(webView); -} - -void webkitWebViewRunFileChooserRequest(WebKitWebView* webView, WebKitFileChooserRequest* request) -{ - gboolean returnValue; - g_signal_emit(webView, webkit_web_view_signals[RUN_FILE_CHOOSER], 0, request, &returnValue); -} - -// for internal use only -void webkit_web_view_notify_ready(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - gboolean isHandled = FALSE; - g_signal_emit(webView, webkit_web_view_signals[WEB_VIEW_READY], 0, &isHandled); -} - -void webkit_web_view_request_download(WebKitWebView* webView, WebKitNetworkRequest* request, const ResourceResponse& response, ResourceHandle* handle) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - WebKitDownload* download; - - if (handle) - download = webkit_download_new_with_handle(request, handle, response); - else - download = webkit_download_new(request); - - gboolean handled; - g_signal_emit(webView, webkit_web_view_signals[DOWNLOAD_REQUESTED], 0, download, &handled); - - if (!handled) { - webkit_download_cancel(download); - g_object_unref(download); - return; - } - - /* Start the download now if it has a destination URI, otherwise it - may be handled asynchronously by the application. */ - if (webkit_download_get_destination_uri(download)) - webkit_download_start(download); -} - -/** - * webkit_web_view_set_settings: - * @web_view: a #WebKitWebView - * @settings: (transfer none): the #WebKitWebSettings to be set - * - * Replaces the #WebKitWebSettings instance that is currently attached - * to @web_view with @settings. The reference held by the @web_view on - * the old #WebKitWebSettings instance is dropped, and the reference - * count of @settings is inscreased. - * - * The settings are automatically applied to @web_view. - */ -void webkit_web_view_set_settings(WebKitWebView* webView, WebKitWebSettings* webSettings) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(WEBKIT_IS_WEB_SETTINGS(webSettings)); - - WebKitWebViewPrivate* priv = webView->priv; - g_signal_handlers_disconnect_by_func(priv->webSettings.get(), reinterpret_cast<void*>(webkit_web_view_settings_notify), webView); - - priv->webSettings = webSettings; - webkit_web_view_update_settings(webView); - g_signal_connect(webSettings, "notify", G_CALLBACK(webkit_web_view_settings_notify), webView); - g_object_notify(G_OBJECT(webView), "settings"); -} - -/** - * webkit_web_view_get_settings: - * @web_view: a #WebKitWebView - * - * Obtains the #WebKitWebSettings associated with the - * #WebKitWebView. The #WebKitWebView always has an associated - * instance of #WebKitWebSettings. The reference that is returned by - * this call is owned by the #WebKitWebView. You may need to increase - * its reference count if you intend to keep it alive for longer than - * the #WebKitWebView. - * - * Return value: (transfer none): the #WebKitWebSettings instance - */ -WebKitWebSettings* webkit_web_view_get_settings(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - return webView->priv->webSettings.get(); -} - -/** - * webkit_web_view_get_inspector: - * @web_view: a #WebKitWebView - * - * Obtains the #WebKitWebInspector associated with the - * #WebKitWebView. Every #WebKitWebView object has a - * #WebKitWebInspector object attached to it as soon as it is created, - * so this function will only return NULL if the argument is not a - * valid #WebKitWebView. - * - * Return value: (transfer none): the #WebKitWebInspector instance. - * - * Since: 1.0.3 - */ -WebKitWebInspector* webkit_web_view_get_inspector(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - return webView->priv->webInspector.get(); -} - -/** - * webkit_web_view_get_viewport_attributes: - * @web_view: a #WebKitWebView - * - * Obtains the #WebKitViewportAttributes associated with the - * #WebKitWebView. Every #WebKitWebView object has a - * #WebKitViewportAttributes object attached to it as soon as it is - * created, so this function will only return NULL if the argument is - * not a valid #WebKitWebView. Do note however that the viewport - * attributes object only contains valid information when the current - * page has a viewport meta tag. You can check whether the data should - * be used by checking the #WebKitViewportAttributes:valid property. - * - * Return value: (transfer none): the #WebKitViewportAttributes instance. - * - * Since: 1.3.8 - */ -WebKitViewportAttributes* webkit_web_view_get_viewport_attributes(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - return webView->priv->viewportAttributes.get(); -} - -// internal -static void webkit_web_view_set_window_features(WebKitWebView* webView, WebKitWebWindowFeatures* webWindowFeatures) -{ - if (!webWindowFeatures) - return; - if (webkit_web_window_features_equal(webView->priv->webWindowFeatures.get(), webWindowFeatures)) - return; - webView->priv->webWindowFeatures = webWindowFeatures; -} - -/** - * webkit_web_view_get_window_features: - * @web_view: a #WebKitWebView - * - * Returns: (transfer none): the instance of #WebKitWebWindowFeatures held by the given - * #WebKitWebView. - * - * Since: 1.0.3 - */ -WebKitWebWindowFeatures* webkit_web_view_get_window_features(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - return webView->priv->webWindowFeatures.get(); -} - -/** - * webkit_web_view_get_title: - * @web_view: a #WebKitWebView - * - * Returns the @web_view's document title - * - * Since: 1.1.4 - * - * Return value: the title of @web_view - */ -const gchar* webkit_web_view_get_title(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - - WebKitWebViewPrivate* priv = webView->priv; - return priv->mainFrame->priv->title; -} - -/** - * webkit_web_view_get_uri: - * @web_view: a #WebKitWebView - * - * Returns the current URI of the contents displayed by the @web_view - * - * Since: 1.1.4 - * - * Return value: the URI of @web_view - */ -const gchar* webkit_web_view_get_uri(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - - WebKitWebViewPrivate* priv = webView->priv; - return priv->mainFrame->priv->uri; -} - -/** - * webkit_web_view_set_maintains_back_forward_list: - * @web_view: a #WebKitWebView - * @flag: to tell the view to maintain a back or forward list - * - * Set the view to maintain a back or forward list of history items. - */ -void webkit_web_view_set_maintains_back_forward_list(WebKitWebView* webView, gboolean flag) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - static_cast<BackForwardListImpl*>(core(webView)->backForwardList())->setEnabled(flag); -} - -/** - * webkit_web_view_get_back_forward_list: - * @web_view: a #WebKitWebView - * - * Obtains the #WebKitWebBackForwardList associated with the given #WebKitWebView. The - * #WebKitWebBackForwardList is owned by the #WebKitWebView. - * - * Return value: (transfer none): the #WebKitWebBackForwardList - */ -WebKitWebBackForwardList* webkit_web_view_get_back_forward_list(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - if (!core(webView) || !static_cast<BackForwardListImpl*>(core(webView)->backForwardList())->enabled()) - return 0; - return webView->priv->backForwardList.get(); -} - -/** - * webkit_web_view_go_to_back_forward_item: - * @web_view: a #WebKitWebView - * @item: a #WebKitWebHistoryItem* - * - * Go to the specified #WebKitWebHistoryItem - * - * Return value: %TRUE if loading of item is successful, %FALSE if not - */ -gboolean webkit_web_view_go_to_back_forward_item(WebKitWebView* webView, WebKitWebHistoryItem* item) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - g_return_val_if_fail(WEBKIT_IS_WEB_HISTORY_ITEM(item), FALSE); - - WebKitWebBackForwardList* backForwardList = webkit_web_view_get_back_forward_list(webView); - if (!webkit_web_back_forward_list_contains_item(backForwardList, item)) - return FALSE; - - core(webView)->goToItem(core(item), FrameLoadTypeIndexedBackForward); - return TRUE; -} - -/** - * webkit_web_view_go_back: - * @web_view: a #WebKitWebView - * - * Loads the previous history item. - */ -void webkit_web_view_go_back(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->goBack(); -} - -/** - * webkit_web_view_go_back_or_forward: - * @web_view: a #WebKitWebView - * @steps: the number of steps - * - * Loads the history item that is the number of @steps away from the current - * item. Negative values represent steps backward while positive values - * represent steps forward. - */ -void webkit_web_view_go_back_or_forward(WebKitWebView* webView, gint steps) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->goBackOrForward(steps); -} - -/** - * webkit_web_view_go_forward: - * @web_view: a #WebKitWebView - * - * Loads the next history item. - */ -void webkit_web_view_go_forward(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->goForward(); -} - -/** - * webkit_web_view_can_go_back: - * @web_view: a #WebKitWebView - * - * Determines whether #web_view has a previous history item. - * - * Return value: %TRUE if able to move back, %FALSE otherwise - */ -gboolean webkit_web_view_can_go_back(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - if (!core(webView) || !core(webView)->backForwardList()->backItem()) - return FALSE; - - return TRUE; -} - -/** - * webkit_web_view_can_go_back_or_forward: - * @web_view: a #WebKitWebView - * @steps: the number of steps - * - * Determines whether #web_view has a history item of @steps. Negative values - * represent steps backward while positive values represent steps forward. - * - * Return value: %TRUE if able to move back or forward the given number of - * steps, %FALSE otherwise - */ -gboolean webkit_web_view_can_go_back_or_forward(WebKitWebView* webView, gint steps) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - return core(webView)->canGoBackOrForward(steps); -} - -/** - * webkit_web_view_can_go_forward: - * @web_view: a #WebKitWebView - * - * Determines whether #web_view has a next history item. - * - * Return value: %TRUE if able to move forward, %FALSE otherwise - */ -gboolean webkit_web_view_can_go_forward(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Page* page = core(webView); - - if (!page) - return FALSE; - - if (!page->backForwardList()->forwardItem()) - return FALSE; - - return TRUE; -} - -/** - * webkit_web_view_open: - * @web_view: a #WebKitWebView - * @uri: an URI - * - * Requests loading of the specified URI string. - * - * Deprecated: 1.1.1: Use webkit_web_view_load_uri() instead. - */ -void webkit_web_view_open(WebKitWebView* webView, const gchar* uri) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(uri); - - // We used to support local paths, unlike the newer - // function webkit_web_view_load_uri - if (g_path_is_absolute(uri)) { - gchar* fileUri = g_filename_to_uri(uri, NULL, NULL); - webkit_web_view_load_uri(webView, fileUri); - g_free(fileUri); - } - else - webkit_web_view_load_uri(webView, uri); -} - -void webkit_web_view_reload(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->mainFrame()->loader()->reload(); -} - -/** - * webkit_web_view_reload_bypass_cache: - * @web_view: a #WebKitWebView - * - * Reloads the @web_view without using any cached data. - * - * Since: 1.0.3 - */ -void webkit_web_view_reload_bypass_cache(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->mainFrame()->loader()->reload(true); -} - -/** - * webkit_web_view_load_uri: - * @web_view: a #WebKitWebView - * @uri: an URI string - * - * Requests loading of the specified URI string. - * - * Since: 1.1.1 - */ -void webkit_web_view_load_uri(WebKitWebView* webView, const gchar* uri) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(uri); - - WebKitWebFrame* frame = webView->priv->mainFrame; - webkit_web_frame_load_uri(frame, uri); -} - -/** - * webkit_web_view_load_string: - * @web_view: a #WebKitWebView - * @content: an URI string - * @mime_type: the MIME type, or %NULL - * @encoding: the encoding, or %NULL - * @base_uri: the base URI for relative locations - * - * Requests loading of the given @content with the specified @mime_type, - * @encoding and @base_uri. - * - * If @mime_type is %NULL, "text/html" is assumed. - * - * If @encoding is %NULL, "UTF-8" is assumed. - */ -void webkit_web_view_load_string(WebKitWebView* webView, const gchar* content, const gchar* mimeType, const gchar* encoding, const gchar* baseUri) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(content); - - WebKitWebFrame* frame = webView->priv->mainFrame; - webkit_web_frame_load_string(frame, content, mimeType, encoding, baseUri); -} -/** - * webkit_web_view_load_html_string: - * @web_view: a #WebKitWebView - * @content: an URI string - * @base_uri: the base URI for relative locations - * - * Requests loading of the given @content with the specified @base_uri. - * - * Deprecated: 1.1.1: Use webkit_web_view_load_string() instead. - */ -void webkit_web_view_load_html_string(WebKitWebView* webView, const gchar* content, const gchar* baseUri) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(content); - - webkit_web_view_load_string(webView, content, NULL, NULL, baseUri); -} - -/** - * webkit_web_view_load_request: - * @web_view: a #WebKitWebView - * @request: a #WebKitNetworkRequest - * - * Requests loading of the specified asynchronous client request. - * - * Creates a provisional data source that will transition to a committed data - * source once any data has been received. Use webkit_web_view_stop_loading() to - * stop the load. - * - * Since: 1.1.1 - */ -void webkit_web_view_load_request(WebKitWebView* webView, WebKitNetworkRequest* request) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(WEBKIT_IS_NETWORK_REQUEST(request)); - - WebKitWebFrame* frame = webView->priv->mainFrame; - webkit_web_frame_load_request(frame, request); -} - -/** - * webkit_web_view_stop_loading: - * @web_view: a #WebKitWebView - * - * Stops any ongoing load in the @web_view. - **/ -void webkit_web_view_stop_loading(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->mainFrame()->loader()->stopForUserCancel(); -} - -/** - * webkit_web_view_search_text: - * @web_view: a #WebKitWebView - * @text: a string to look for - * @forward: whether to find forward or not - * @case_sensitive: whether to respect the case of text - * @wrap: whether to continue looking at the beginning after reaching the end - * - * Looks for a specified string inside #web_view. - * - * Return value: %TRUE on success or %FALSE on failure - */ -gboolean webkit_web_view_search_text(WebKitWebView* webView, const gchar* string, gboolean caseSensitive, gboolean forward, gboolean shouldWrap) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - g_return_val_if_fail(string, FALSE); - - TextCaseSensitivity caseSensitivity = caseSensitive ? TextCaseSensitive : TextCaseInsensitive; - FindDirection direction = forward ? FindDirectionForward : FindDirectionBackward; - - return core(webView)->findString(String::fromUTF8(string), caseSensitivity, direction, shouldWrap); -} - -/** - * webkit_web_view_mark_text_matches: - * @web_view: a #WebKitWebView - * @string: a string to look for - * @case_sensitive: whether to respect the case of text - * @limit: the maximum number of strings to look for or 0 for all - * - * Attempts to highlight all occurances of #string inside #web_view. - * - * Return value: the number of strings highlighted - */ -guint webkit_web_view_mark_text_matches(WebKitWebView* webView, const gchar* string, gboolean caseSensitive, guint limit) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - g_return_val_if_fail(string, 0); - - TextCaseSensitivity caseSensitivity = caseSensitive ? TextCaseSensitive : TextCaseInsensitive; - - return core(webView)->markAllMatchesForText(String::fromUTF8(string), caseSensitivity, false, limit); -} - -/** - * webkit_web_view_set_highlight_text_matches: - * @web_view: a #WebKitWebView - * @highlight: whether to highlight text matches - * - * Highlights text matches previously marked by webkit_web_view_mark_text_matches. - */ -void webkit_web_view_set_highlight_text_matches(WebKitWebView* webView, gboolean shouldHighlight) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - Frame *frame = core(webView)->mainFrame(); - do { - frame->editor().setMarkedTextMatchesAreHighlighted(shouldHighlight); - frame = frame->tree()->traverseNextWithWrap(false); - } while (frame); -} - -/** - * webkit_web_view_unmark_text_matches: - * @web_view: a #WebKitWebView - * - * Removes highlighting previously set by webkit_web_view_mark_text_matches. - */ -void webkit_web_view_unmark_text_matches(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - return core(webView)->unmarkAllTextMatches(); -} - -/** - * webkit_web_view_get_main_frame: - * @web_view: a #WebKitWebView - * - * Returns the main frame for the @web_view. - * - * Return value: (transfer none): the main #WebKitWebFrame for @web_view - */ -WebKitWebFrame* webkit_web_view_get_main_frame(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - - return webView->priv->mainFrame; -} - -/** - * webkit_web_view_get_focused_frame: - * @web_view: a #WebKitWebView - * - * Returns the frame that has focus or an active text selection. - * - * Return value: (transfer none): The focused #WebKitWebFrame or %NULL if no frame is focused - */ -WebKitWebFrame* webkit_web_view_get_focused_frame(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - - Frame* focusedFrame = core(webView)->focusController()->focusedFrame(); - return kit(focusedFrame); -} - -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); - - core(webView)->mainFrame()->script()->executeScript(String::fromUTF8(script), true); -} - -/** - * webkit_web_view_can_cut_clipboard: - * @web_view: a #WebKitWebView - * - * Determines whether or not it is currently possible to cut to the clipboard. - * - * Return value: %TRUE if a selection can be cut, %FALSE if not - */ -gboolean webkit_web_view_can_cut_clipboard(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - return frame->editor().canCut() || frame->editor().canDHTMLCut(); -} - -/** - * webkit_web_view_can_copy_clipboard: - * @web_view: a #WebKitWebView - * - * Determines whether or not it is currently possible to copy to the clipboard. - * - * Return value: %TRUE if a selection can be copied, %FALSE if not - */ -gboolean webkit_web_view_can_copy_clipboard(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - return frame->editor().canCopy() || frame->editor().canDHTMLCopy(); -} - -/** - * webkit_web_view_can_paste_clipboard: - * @web_view: a #WebKitWebView - * - * Determines whether or not it is currently possible to paste from the clipboard. - * - * Return value: %TRUE if a selection can be pasted, %FALSE if not - */ -gboolean webkit_web_view_can_paste_clipboard(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - return frame->editor().canPaste() || frame->editor().canDHTMLPaste(); -} - -/** - * webkit_web_view_cut_clipboard: - * @web_view: a #WebKitWebView - * - * Cuts the current selection inside the @web_view to the clipboard. - */ -void webkit_web_view_cut_clipboard(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (webkit_web_view_can_cut_clipboard(webView)) - g_signal_emit(webView, webkit_web_view_signals[CUT_CLIPBOARD], 0); -} - -/** - * webkit_web_view_copy_clipboard: - * @web_view: a #WebKitWebView - * - * Copies the current selection inside the @web_view to the clipboard. - */ -void webkit_web_view_copy_clipboard(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (webkit_web_view_can_copy_clipboard(webView)) - g_signal_emit(webView, webkit_web_view_signals[COPY_CLIPBOARD], 0); -} - -/** - * webkit_web_view_paste_clipboard: - * @web_view: a #WebKitWebView - * - * Pastes the current contents of the clipboard to the @web_view. - */ -void webkit_web_view_paste_clipboard(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (webkit_web_view_can_paste_clipboard(webView)) - g_signal_emit(webView, webkit_web_view_signals[PASTE_CLIPBOARD], 0); -} - -/** - * webkit_web_view_delete_selection: - * @web_view: a #WebKitWebView - * - * Deletes the current selection inside the @web_view. - */ -void webkit_web_view_delete_selection(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - frame->editor().performDelete(); -} - -/** - * webkit_web_view_has_selection: - * @web_view: a #WebKitWebView - * - * Determines whether text was selected. - * - * Return value: %TRUE if there is selected text, %FALSE if not - */ -gboolean webkit_web_view_has_selection(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - return !core(webView)->selection().isNone(); -} - -/** - * webkit_web_view_select_all: - * @web_view: a #WebKitWebView - * - * Attempts to select everything inside the @web_view. - */ -void webkit_web_view_select_all(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - g_signal_emit(webView, webkit_web_view_signals[::SELECT_ALL], 0); -} - -/** - * webkit_web_view_get_editable: - * @web_view: a #WebKitWebView - * - * Returns whether the user is allowed to edit the document. - * - * Returns %TRUE if @web_view allows the user to edit the HTML document, %FALSE if - * it doesn't. You can change @web_view's document programmatically regardless of - * this setting. - * - * Return value: a #gboolean indicating the editable state - */ -gboolean webkit_web_view_get_editable(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - return core(webView)->isEditable(); -} - -/** - * webkit_web_view_set_editable: - * @web_view: a #WebKitWebView - * @flag: a #gboolean indicating the editable state - * - * Sets whether @web_view allows the user to edit its HTML document. - * - * If @flag is %TRUE, @web_view allows the user to edit the document. If @flag is - * %FALSE, an element in @web_view's document can only be edited if the - * CONTENTEDITABLE attribute has been set on the element or one of its parent - * elements. You can change @web_view's document programmatically regardless of - * this setting. By default a #WebKitWebView is not editable. - - * Normally, an HTML document is not editable unless the elements within the - * document are editable. This function provides a low-level way to make the - * contents of a #WebKitWebView editable without altering the document or DOM - * structure. - */ -void webkit_web_view_set_editable(WebKitWebView* webView, gboolean flag) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - flag = flag != FALSE; - if (flag == webkit_web_view_get_editable(webView)) - return; - - core(webView)->setEditable(flag); - - Frame* frame = core(webView)->mainFrame(); - g_return_if_fail(frame); - - if (flag) { - frame->editor().applyEditingStyleToBodyElement(); - // TODO: If the WebKitWebView is made editable and the selection is empty, set it to something. - //if (!webkit_web_view_get_selected_dom_range(webView)) - // mainFrame->setSelectionFromNone(); - } - g_object_notify(G_OBJECT(webView), "editable"); -} - -/** - * webkit_web_view_get_copy_target_list: - * @web_view: a #WebKitWebView - * - * This function returns the list of targets this #WebKitWebView can - * provide for clipboard copying and as DND source. The targets in the list are - * added with values from the #WebKitWebViewTargetInfo enum, - * using gtk_target_list_add() and - * gtk_target_list_add_text_targets(). - * - * Return value: the #GtkTargetList - **/ -GtkTargetList* webkit_web_view_get_copy_target_list(WebKitWebView* webView) -{ - return PasteboardHelper::defaultPasteboardHelper()->targetList(); -} - -/** - * webkit_web_view_get_paste_target_list: - * @web_view: a #WebKitWebView - * - * This function returns the list of targets this #WebKitWebView can - * provide for clipboard pasting and as DND destination. The targets in the list are - * added with values from the #WebKitWebViewTargetInfo enum, - * using gtk_target_list_add() and - * gtk_target_list_add_text_targets(). - * - * Return value: the #GtkTargetList - **/ -GtkTargetList* webkit_web_view_get_paste_target_list(WebKitWebView* webView) -{ - return PasteboardHelper::defaultPasteboardHelper()->targetList(); -} - -/** - * webkit_web_view_can_show_mime_type: - * @web_view: a #WebKitWebView - * @mime_type: a MIME type - * - * This functions returns whether or not a MIME type can be displayed using this view. - * - * Return value: a #gboolean indicating if the MIME type can be displayed - * - * Since: 1.0.3 - **/ - -gboolean webkit_web_view_can_show_mime_type(WebKitWebView* webView, const gchar* mimeType) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webkit_web_view_get_main_frame(webView)); - return frame->loader()->client()->canShowMIMEType(String::fromUTF8(mimeType)); -} - -/** - * webkit_web_view_get_transparent: - * @web_view: a #WebKitWebView - * - * Returns whether the #WebKitWebView has a transparent background. - * - * Return value: %FALSE when the #WebKitWebView draws a solid background - * (the default), otherwise %TRUE. - */ -gboolean webkit_web_view_get_transparent(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - WebKitWebViewPrivate* priv = webView->priv; - return priv->transparent; -} - -/** - * webkit_web_view_set_transparent: - * @web_view: a #WebKitWebView - * @flag: whether or not @web_view should be transparent - * - * Sets whether the #WebKitWebView has a transparent background. - * - * Pass %FALSE to have the #WebKitWebView draw a solid background - * (the default), otherwise %TRUE. - */ -void webkit_web_view_set_transparent(WebKitWebView* webView, gboolean flag) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - WebKitWebViewPrivate* priv = webView->priv; - priv->transparent = flag; - - // TODO: This needs to be made persistent or it could become a problem when - // the main frame is replaced. - Frame* frame = core(webView)->mainFrame(); - g_return_if_fail(frame); - frame->view()->setTransparent(flag); - g_object_notify(G_OBJECT(webView), "transparent"); -} - -/** - * webkit_web_view_get_zoom_level: - * @web_view: a #WebKitWebView - * - * Returns the zoom level of @web_view, i.e. the factor by which elements in - * the page are scaled with respect to their original size. - * If the "full-content-zoom" property is set to %FALSE (the default) - * the zoom level changes the text size, or if %TRUE, scales all - * elements in the page. - * - * Return value: the zoom level of @web_view - * - * Since: 1.0.1 - */ -gfloat webkit_web_view_get_zoom_level(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1.0f); - - Frame* frame = core(webView)->mainFrame(); - if (!frame) - return 1.0f; - - WebKitWebViewPrivate* priv = webView->priv; - return priv->zoomFullContent ? frame->pageZoomFactor() : frame->textZoomFactor(); -} - -static void webkit_web_view_apply_zoom_level(WebKitWebView* webView, gfloat zoomLevel) -{ - Frame* frame = core(webView)->mainFrame(); - if (!frame) - return; - - WebKitWebViewPrivate* priv = webView->priv; - if (priv->zoomFullContent) - frame->setPageZoomFactor(zoomLevel); - else - frame->setTextZoomFactor(zoomLevel); -} - -/** - * webkit_web_view_set_zoom_level: - * @web_view: a #WebKitWebView - * @zoom_level: the new zoom level - * - * Sets the zoom level of @web_view, i.e. the factor by which elements in - * the page are scaled with respect to their original size. - * If the "full-content-zoom" property is set to %FALSE (the default) - * the zoom level changes the text size, or if %TRUE, scales all - * elements in the page. - * - * Since: 1.0.1 - */ -void webkit_web_view_set_zoom_level(WebKitWebView* webView, gfloat zoomLevel) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - webkit_web_view_apply_zoom_level(webView, zoomLevel); - g_object_notify(G_OBJECT(webView), "zoom-level"); -} - -/** - * webkit_web_view_zoom_in: - * @web_view: a #WebKitWebView - * - * Increases the zoom level of @web_view. The current zoom - * level is incremented by the value of the "zoom-step" - * property of the #WebKitWebSettings associated with @web_view. - * - * Since: 1.0.1 - */ -void webkit_web_view_zoom_in(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - WebKitWebViewPrivate* priv = webView->priv; - gfloat zoomMultiplierRatio; - g_object_get(priv->webSettings.get(), "zoom-step", &zoomMultiplierRatio, NULL); - - webkit_web_view_set_zoom_level(webView, webkit_web_view_get_zoom_level(webView) + zoomMultiplierRatio); -} - -/** - * webkit_web_view_zoom_out: - * @web_view: a #WebKitWebView - * - * Decreases the zoom level of @web_view. The current zoom - * level is decremented by the value of the "zoom-step" - * property of the #WebKitWebSettings associated with @web_view. - * - * Since: 1.0.1 - */ -void webkit_web_view_zoom_out(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - WebKitWebViewPrivate* priv = webView->priv; - gfloat zoomMultiplierRatio; - g_object_get(priv->webSettings.get(), "zoom-step", &zoomMultiplierRatio, NULL); - - webkit_web_view_set_zoom_level(webView, webkit_web_view_get_zoom_level(webView) - zoomMultiplierRatio); -} - -/** - * webkit_web_view_get_full_content_zoom: - * @web_view: a #WebKitWebView - * - * Returns whether the zoom level affects only text or all elements. - * - * Return value: %FALSE if only text should be scaled (the default), - * %TRUE if the full content of the view should be scaled. - * - * Since: 1.0.1 - */ -gboolean webkit_web_view_get_full_content_zoom(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - WebKitWebViewPrivate* priv = webView->priv; - return priv->zoomFullContent; -} - -/** - * webkit_web_view_set_full_content_zoom: - * @web_view: a #WebKitWebView - * @full_content_zoom: %FALSE if only text should be scaled (the default), - * %TRUE if the full content of the view should be scaled. - * - * Sets whether the zoom level affects only text or all elements. - * - * Since: 1.0.1 - */ -void webkit_web_view_set_full_content_zoom(WebKitWebView* webView, gboolean zoomFullContent) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - WebKitWebViewPrivate* priv = webView->priv; - if (priv->zoomFullContent == zoomFullContent) - return; - - Frame* frame = core(webView)->mainFrame(); - if (!frame) - return; - - gfloat zoomLevel = priv->zoomFullContent ? frame->pageZoomFactor() : frame->textZoomFactor(); - - priv->zoomFullContent = zoomFullContent; - if (priv->zoomFullContent) - frame->setPageAndTextZoomFactors(zoomLevel, 1); - else - frame->setPageAndTextZoomFactors(1, zoomLevel); - - g_object_notify(G_OBJECT(webView), "full-content-zoom"); -} - -/** - * webkit_web_view_get_load_status: - * @web_view: a #WebKitWebView - * - * Determines the current status of the load. - * - * Returns: a #WebKitLoadStatus specifying the status of the current load - * - * Since: 1.1.7 - */ -WebKitLoadStatus webkit_web_view_get_load_status(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), WEBKIT_LOAD_FINISHED); - - WebKitWebViewPrivate* priv = webView->priv; - return priv->loadStatus; -} - -/** - * webkit_web_view_get_progress: - * @web_view: a #WebKitWebView - * - * Determines the current progress of the load. - * - * Returns: a gdouble representing the status of the current load. This value - * will be in the range [0, 1]. - * - * Since: 1.1.7 - */ -gdouble webkit_web_view_get_progress(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 1.0); - - return core(webView)->progress()->estimatedProgress(); -} - -/** - * webkit_web_view_get_encoding: - * @web_view: a #WebKitWebView - * - * Returns the default encoding of the #WebKitWebView. - * - * Return value: the default encoding - * - * Since: 1.1.1 - */ -const gchar* webkit_web_view_get_encoding(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - String encoding = core(webView)->mainFrame()->document()->encoding(); - if (encoding.isEmpty()) - return 0; - webView->priv->encoding = encoding.utf8(); - return webView->priv->encoding.data(); -} - -/** - * webkit_web_view_set_custom_encoding: - * @web_view: a #WebKitWebView - * @encoding: the new encoding, or %NULL to restore the default encoding - * - * Sets the current #WebKitWebView encoding, without modifying the default one, - * and reloads the page. - * - * Since: 1.1.1 - */ -void webkit_web_view_set_custom_encoding(WebKitWebView* webView, const char* encoding) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - core(webView)->mainFrame()->loader()->reloadWithOverrideEncoding(String::fromUTF8(encoding)); -} - -/** - * webkit_web_view_get_custom_encoding: - * @web_view: a #WebKitWebView - * - * Returns the current encoding of the #WebKitWebView, not the default-encoding - * of WebKitWebSettings. - * - * Return value: a string containing the current custom encoding for @web_view, or %NULL if there's none set. - * - * Since: 1.1.1 - */ -const char* webkit_web_view_get_custom_encoding(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - String overrideEncoding = core(webView)->mainFrame()->loader()->documentLoader()->overrideEncoding(); - if (overrideEncoding.isEmpty()) - return 0; - webView->priv->customEncoding = overrideEncoding.utf8(); - return webView->priv->customEncoding.data(); -} - -/** - * webkit_web_view_set_view_mode: - * @web_view: the #WebKitWebView that will have its view mode set - * @mode: the %WebKitWebViewViewMode to be set - * - * Sets the view-mode property of the #WebKitWebView. Check the - * property's documentation for more information. - * - * Since: 1.3.4 - */ -void webkit_web_view_set_view_mode(WebKitWebView* webView, WebKitWebViewViewMode mode) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - Page* page = core(webView); - - switch (mode) { - case WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING: - page->setViewMode(Page::ViewModeFloating); - break; - case WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN: - page->setViewMode(Page::ViewModeFullscreen); - break; - case WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED: - page->setViewMode(Page::ViewModeMaximized); - break; - case WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED: - page->setViewMode(Page::ViewModeMinimized); - break; - default: - page->setViewMode(Page::ViewModeWindowed); - break; - } -} - -/** - * webkit_web_view_get_view_mode: - * @web_view: the #WebKitWebView to obtain the view mode from - * - * Gets the value of the view-mode property of the - * #WebKitWebView. Check the property's documentation for more - * information. - * - * Return value: the %WebKitWebViewViewMode currently set for the - * #WebKitWebView. - * - * Since: 1.3.4 - */ -WebKitWebViewViewMode webkit_web_view_get_view_mode(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED); - - Page* page = core(webView); - Page::ViewMode mode = page->viewMode(); - - if (mode == Page::ViewModeFloating) - return WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING; - - if (mode == Page::ViewModeFullscreen) - return WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN; - - if (mode == Page::ViewModeMaximized) - return WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED; - - if (mode == Page::ViewModeMinimized) - return WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED; - - return WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED; -} - -/** - * webkit_web_view_move_cursor: - * @web_view: a #WebKitWebView - * @step: a #GtkMovementStep - * @count: integer describing the direction of the movement. 1 for forward, -1 for backwards. - * - * Move the cursor in @view as described by @step and @count. - * - * Since: 1.1.4 - */ -void webkit_web_view_move_cursor(WebKitWebView* webView, GtkMovementStep step, gint count) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - g_return_if_fail(step == GTK_MOVEMENT_VISUAL_POSITIONS || - step == GTK_MOVEMENT_DISPLAY_LINES || - step == GTK_MOVEMENT_PAGES || - step == GTK_MOVEMENT_BUFFER_ENDS); - g_return_if_fail(count == 1 || count == -1); - - gboolean handled; - g_signal_emit(webView, webkit_web_view_signals[MOVE_CURSOR], 0, step, count, &handled); -} - -/** - * webkit_web_view_can_undo: - * @web_view: a #WebKitWebView - * - * Determines whether or not it is currently possible to undo the last - * editing command in the view. - * - * Return value: %TRUE if a undo can be done, %FALSE if not - * - * Since: 1.1.14 - */ -gboolean webkit_web_view_can_undo(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - return frame->editor().canUndo(); -} - -/** - * webkit_web_view_undo: - * @web_view: a #WebKitWebView - * - * Undoes the last editing command in the view, if possible. - * - * Since: 1.1.14 - */ -void webkit_web_view_undo(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (webkit_web_view_can_undo(webView)) - g_signal_emit(webView, webkit_web_view_signals[UNDO], 0); -} - -/** - * webkit_web_view_can_redo: - * @web_view: a #WebKitWebView - * - * Determines whether or not it is currently possible to redo the last - * editing command in the view. - * - * Return value: %TRUE if a redo can be done, %FALSE if not - * - * Since: 1.1.14 - */ -gboolean webkit_web_view_can_redo(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - return frame->editor().canRedo(); -} - -/** - * webkit_web_view_redo: - * @web_view: a #WebKitWebView - * - * Redoes the last editing command in the view, if possible. - * - * Since: 1.1.14 - */ -void webkit_web_view_redo(WebKitWebView* webView) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (webkit_web_view_can_redo(webView)) - g_signal_emit(webView, webkit_web_view_signals[REDO], 0); -} - - -/** - * webkit_web_view_set_view_source_mode: - * @web_view: a #WebKitWebView - * @view_source_mode: the mode to turn on or off view source mode - * - * Set whether the view should be in view source mode. Setting this mode to - * %TRUE before loading a URI will display the source of the web page in a - * nice and readable format. - * - * Since: 1.1.14 - */ -void webkit_web_view_set_view_source_mode (WebKitWebView* webView, gboolean mode) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - if (Frame* mainFrame = core(webView)->mainFrame()) - mainFrame->setInViewSourceMode(mode); -} - -/** - * webkit_web_view_get_view_source_mode: - * @web_view: a #WebKitWebView - * - * Return value: %TRUE if @web_view is in view source mode, %FALSE otherwise. - * - * Since: 1.1.14 - */ -gboolean webkit_web_view_get_view_source_mode (WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), FALSE); - - if (Frame* mainFrame = core(webView)->mainFrame()) - return mainFrame->inViewSourceMode(); - - return FALSE; -} - -// Internal subresource management -void webkit_web_view_add_main_resource(WebKitWebView* webView, const char* identifier, WebKitWebResource* webResource) -{ - WebKitWebViewPrivate* priv = webView->priv; - - priv->mainResource = adoptGRef(webResource); - priv->mainResourceIdentifier = identifier; -} - -void webkit_web_view_add_resource(WebKitWebView* webView, const char* identifier, WebKitWebResource* webResource) -{ - WebKitWebViewPrivate* priv = webView->priv; - g_hash_table_insert(priv->subResources.get(), g_strdup(identifier), webResource); -} - -void webkitWebViewRemoveSubresource(WebKitWebView* webView, const char* identifier) -{ - ASSERT(identifier); - - // Don't remove the main resource. - const CString& mainResource = webView->priv->mainResourceIdentifier; - if (!mainResource.isNull() && g_str_equal(identifier, mainResource.data())) - return; - g_hash_table_remove(webView->priv->subResources.get(), identifier); -} - -WebKitWebResource* webkit_web_view_get_resource(WebKitWebView* webView, char* identifier) -{ - WebKitWebViewPrivate* priv = webView->priv; - gpointer webResource = 0; - gboolean resourceFound = g_hash_table_lookup_extended(priv->subResources.get(), identifier, NULL, &webResource); - - // 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.data())) - return 0; - - if (!webResource) - return webkit_web_view_get_main_resource(webView); - - return WEBKIT_WEB_RESOURCE(webResource); -} - -WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView* webView) -{ - return webView->priv->mainResource.get(); -} - -void webkit_web_view_clear_resources(WebKitWebView* webView) -{ - WebKitWebViewPrivate* priv = webView->priv; - - if (priv->subResources) - g_hash_table_remove_all(priv->subResources.get()); -} - -static gboolean cleanupTemporarilyCachedSubresources(gpointer data) -{ - GList* subResources = static_cast<GList*>(data); - g_list_foreach(subResources, reinterpret_cast<GFunc>(g_object_unref), NULL); - g_list_free(subResources); - return FALSE; -} - -GList* webkit_web_view_get_subresources(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - GList* subResources = 0; - Vector<PassRefPtr<ArchiveResource> > coreSubResources; - - core(webView)->mainFrame()->loader()->documentLoader()->getSubresources(coreSubResources); - - for (unsigned i = 0; i < coreSubResources.size(); i++) { - WebKitWebResource* webResource = WEBKIT_WEB_RESOURCE(g_object_new(WEBKIT_TYPE_WEB_RESOURCE, NULL)); - webkit_web_resource_init_with_core_resource(webResource, coreSubResources[i]); - subResources = g_list_append(subResources, webResource); - } - - if (subResources) - g_timeout_add(1, cleanupTemporarilyCachedSubresources, g_list_copy(subResources)); - - return subResources; -} - -/* From EventHandler.cpp */ -static IntPoint documentPointForWindowPoint(Frame* frame, const IntPoint& windowPoint) -{ - FrameView* view = frame->view(); - // FIXME: Is it really OK to use the wrong coordinates here when view is 0? - // Historically the code would just crash; this is clearly no worse than that. - return view ? view->windowToContents(windowPoint) : windowPoint; -} - -void webkit_web_view_set_tooltip_text(WebKitWebView* webView, const char* tooltip) -{ - WebKitWebViewPrivate* priv = webView->priv; - if (tooltip && *tooltip != '\0') { - priv->tooltipText = tooltip; - gtk_widget_set_has_tooltip(GTK_WIDGET(webView), TRUE); - } else { - priv->tooltipText = ""; - gtk_widget_set_has_tooltip(GTK_WIDGET(webView), FALSE); - } - - gtk_widget_trigger_tooltip_query(GTK_WIDGET(webView)); -} - -/** - * webkit_web_view_get_hit_test_result: - * @web_view: a #WebKitWebView - * @event: a #GdkEventButton - * - * Does a 'hit test' in the coordinates specified by @event to figure - * out context information about that position in the @web_view. - * - * Returns: (transfer full): a newly created #WebKitHitTestResult with the context of the - * specified position. - * - * Since: 1.1.15 - **/ -WebKitHitTestResult* webkit_web_view_get_hit_test_result(WebKitWebView* webView, GdkEventButton* event) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL); - g_return_val_if_fail(event, NULL); - - PlatformMouseEvent mouseEvent = PlatformMouseEvent(event); - Frame* frame = core(webView)->focusController()->focusedOrMainFrame(); - HitTestRequest request(HitTestRequest::Active | HitTestRequest::DisallowShadowContent); - IntPoint documentPoint = documentPointForWindowPoint(frame, mouseEvent.position()); - MouseEventWithHitTestResults mev = frame->document()->prepareMouseEvent(request, documentPoint, mouseEvent); - - return kit(mev.hitTestResult()); -} - -/** - * webkit_web_view_get_icon_uri: - * @web_view: the #WebKitWebView object - * - * Obtains the URI for the favicon for the given #WebKitWebView, or - * %NULL if there is none. - * - * Return value: the URI for the favicon, or %NULL - * - * Since: 1.1.18 - */ -const gchar* webkit_web_view_get_icon_uri(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - String iconURL = iconDatabase().synchronousIconURLForPageURL(core(webView)->mainFrame()->document()->url().string()); - webView->priv->iconURI = iconURL.utf8(); - return webView->priv->iconURI.data(); -} - -/** - * webkit_web_view_get_icon_pixbuf: - * @web_view: 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 - * - * Deprecated: 1.8: Use webkit_web_view_try_get_favicon_pixbuf() instead. - */ -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_try_get_favicon_pixbuf: - * @web_view: the #WebKitWebView object - * @width: the desired width for the icon - * @height: the desired height for the icon - * - * Obtains a #GdkPixbuf of the favicon for the given - * #WebKitWebView. This will return %NULL is there is no icon for the - * current #WebKitWebView or if the icon is in the database but not - * available at the moment of this call. 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. - * - * See also webkit_favicon_database_try_get_favicon_pixbuf(). Contrary - * to this function the icon database one returns the URL of the page - * containing the icon. - * - * Returns: (transfer full): a new reference to a #GdkPixbuf, or %NULL - * - * Since: 1.8 - */ -GdkPixbuf* webkit_web_view_try_get_favicon_pixbuf(WebKitWebView* webView, guint width, guint height) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - - const gchar* pageURI = webkit_web_view_get_uri(webView); - WebKitFaviconDatabase* database = webkit_get_favicon_database(); - return webkit_favicon_database_try_get_favicon_pixbuf(database, pageURI, width, height); -} - -/** - * webkit_web_view_get_dom_document: - * @web_view: a #WebKitWebView - * - * Returns: (transfer none): the #WebKitDOMDocument currently loaded in - * the main frame of the @web_view or %NULL if no document is loaded - * - * Since: 1.3.1 - **/ -WebKitDOMDocument* -webkit_web_view_get_dom_document(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - - return webkit_web_frame_get_dom_document(webView->priv->mainFrame); -} - -GtkMenu* webkit_web_view_get_context_menu(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - -#if ENABLE(CONTEXT_MENUS) - ContextMenu* menu = core(webView)->contextMenuController()->contextMenu(); - if (!menu) - return 0; - return menu->platformDescription(); -#else - return 0; -#endif -} - -/** - * webkit_web_view_get_snapshot: - * @web_view: a #WebKitWebView - * - * Retrieves a snapshot with the visible contents of @webview. - * - * Returns: (transfer full): a @cairo_surface_t - * - * Since: 1.10 - **/ -cairo_surface_t* -webkit_web_view_get_snapshot(WebKitWebView* webView) -{ - g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), 0); - - Frame* frame = core(webView)->mainFrame(); - if (!frame || !frame->contentRenderer() || !frame->view()) - return 0; - - frame->view()->updateLayoutAndStyleIfNeededRecursive(); - GtkAllocation allocation; - gtk_widget_get_allocation(GTK_WIDGET(webView), &allocation); - cairo_surface_t* surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, allocation.width, allocation.height); - RefPtr<cairo_t> cr = adoptRef(cairo_create(surface)); - GraphicsContext gc(cr.get()); - - IntRect rect = allocation; - gc.applyDeviceScaleFactor(frame->page()->deviceScaleFactor()); - gc.save(); - gc.clip(rect); - if (webView->priv->transparent) - gc.clearRect(rect); - frame->view()->paint(&gc, rect); - gc.restore(); - - return surface; -} - -#if ENABLE(ICONDATABASE) -void webkitWebViewIconLoaded(WebKitFaviconDatabase* database, const char* frameURI, WebKitWebView* webView) -{ - // Since we definitely have an icon the WebView doesn't need to - // listen for notifications any longer. - webkitWebViewRegisterForIconNotification(webView, false); - - // webkit_web_view_get_icon_uri() properly updates the "icon-uri" property. - g_object_notify(G_OBJECT(webView), "icon-uri"); - g_signal_emit(webView, webkit_web_view_signals[ICON_LOADED], 0, webkit_web_view_get_icon_uri(webView)); -} - -void webkitWebViewRegisterForIconNotification(WebKitWebView* webView, bool shouldRegister) -{ - WebKitFaviconDatabase* database = webkit_get_favicon_database(); - if (shouldRegister) { - if (!g_signal_handler_is_connected(database, webView->priv->iconLoadedHandler)) - webView->priv->iconLoadedHandler = g_signal_connect(database, "icon-loaded", - G_CALLBACK(webkitWebViewIconLoaded), webView); - } else - if (g_signal_handler_is_connected(database, webView->priv->iconLoadedHandler)) - g_signal_handler_disconnect(database, webView->priv->iconLoadedHandler); -} -#endif - -void webkitWebViewDirectionChanged(WebKitWebView* webView, GtkTextDirection previousDirection, gpointer) -{ - g_return_if_fail(WEBKIT_IS_WEB_VIEW(webView)); - - GtkTextDirection direction = gtk_widget_get_direction(GTK_WIDGET(webView)); - - Frame* focusedFrame = core(webView)->focusController()->focusedFrame(); - if (!focusedFrame) - return; - - Editor& editor = focusedFrame->editor(); - if (!editor.canEdit()) - return; - - switch (direction) { - case GTK_TEXT_DIR_NONE: - editor.setBaseWritingDirection(NaturalWritingDirection); - break; - case GTK_TEXT_DIR_LTR: - editor.setBaseWritingDirection(LeftToRightWritingDirection); - break; - case GTK_TEXT_DIR_RTL: - editor.setBaseWritingDirection(RightToLeftWritingDirection); - break; - default: - g_assert_not_reached(); - return; - } -} - -namespace WebKit { - -WebCore::Page* core(WebKitWebView* webView) -{ - if (!webView) - return 0; - - WebKitWebViewPrivate* priv = webView->priv; - return priv ? priv->corePage : 0; -} - -WebKitWebView* kit(WebCore::Page* corePage) -{ - if (!corePage) - return 0; - - WebCore::ChromeClient* chromeClient = corePage->chrome().client(); - if (chromeClient->isEmptyChromeClient()) - return 0; - - return static_cast<WebKit::ChromeClient*>(chromeClient)->webView(); -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebview.h b/Source/WebKit/gtk/webkit/webkitwebview.h deleted file mode 100644 index 5c09db61e..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebview.h +++ /dev/null @@ -1,453 +0,0 @@ -/* - * Copyright (C) 2007 Holger Hans Peter Freyther - * Copyright (C) 2007, 2008 Alp Toker <alp@atoker.com> - * Copyright (C) 2008 Collabora Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebview_h -#define webkitwebview_h - -#include <gtk/gtk.h> -#include <libsoup/soup.h> -#include <JavaScriptCore/JSBase.h> -#include <webkit/webkitdefines.h> -#include <webkit/webkitfilechooserrequest.h> -#include <webkit/webkitwebbackforwardlist.h> -#include <webkit/webkitwebframe.h> -#include <webkit/webkitwebhistoryitem.h> -#include <webkit/webkitwebsettings.h> -#include <webkitdom/webkitdom.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_VIEW (webkit_web_view_get_type()) -#define WEBKIT_WEB_VIEW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebView)) -#define WEBKIT_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewClass)) -#define WEBKIT_IS_WEB_VIEW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_VIEW)) -#define WEBKIT_IS_WEB_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_VIEW)) -#define WEBKIT_WEB_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewClass)) - -typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate; - -/** - * WebKitNavigationResponse: - * @WEBKIT_NAVIGATION_RESPONSE_ACCEPT: Instruct WebKit to allow the navigation. - * @WEBKIT_NAVIGATION_RESPONSE_IGNORE: Instruct WebKit to ignore the navigation. - * @WEBKIT_NAVIGATION_RESPONSE_DOWNLOAD: Instruct WebKit to start a download of the destination instead. - * - * Enum values used to denote the various responses to a navigation policy decision. - **/ -typedef enum { - WEBKIT_NAVIGATION_RESPONSE_ACCEPT, - WEBKIT_NAVIGATION_RESPONSE_IGNORE, - WEBKIT_NAVIGATION_RESPONSE_DOWNLOAD -} WebKitNavigationResponse; - -/** - * WebKitWebViewTargetInfo: - * @WEBKIT_WEB_VIEW_TARGET_INFO_HTML: Rich markup data - * @WEBKIT_WEB_VIEW_TARGET_INFO_TEXT: Text data - * @WEBKIT_WEB_VIEW_TARGET_INFO_IMAGE: Image data - * @WEBKIT_WEB_VIEW_TARGET_INFO_URI_LIST: URI list data - * @WEBKIT_WEB_VIEW_TARGET_INFO_NETSCAPE_URL: A single URL in the Netscape protocol - * - * Enum values used to denote the info value of various selection types. These can be used - * to interpret the data WebKitGTK+ publishes via GtkClipboard and drag-and-drop. - **/ -typedef enum -{ - WEBKIT_WEB_VIEW_TARGET_INFO_HTML, - WEBKIT_WEB_VIEW_TARGET_INFO_TEXT, - WEBKIT_WEB_VIEW_TARGET_INFO_IMAGE, - WEBKIT_WEB_VIEW_TARGET_INFO_URI_LIST, - WEBKIT_WEB_VIEW_TARGET_INFO_NETSCAPE_URL -} WebKitWebViewTargetInfo; - -/** - * WebKitWebViewViewMode: - * @WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED: Windowed view mode - * @WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING: Floating view mode - * @WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN: Fullscreen view mode - * @WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED: Maximized view mode - * @WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED: Minimized view mode - * - * Enum values used to denote the various types of view modes. See the - * #WebKitWebView:view-mode property. - **/ -typedef enum -{ - WEBKIT_WEB_VIEW_VIEW_MODE_WINDOWED, - WEBKIT_WEB_VIEW_VIEW_MODE_FLOATING, - WEBKIT_WEB_VIEW_VIEW_MODE_FULLSCREEN, - WEBKIT_WEB_VIEW_VIEW_MODE_MAXIMIZED, - WEBKIT_WEB_VIEW_VIEW_MODE_MINIMIZED -} WebKitWebViewViewMode; - -typedef enum -{ - WEBKIT_SELECTION_AFFINITY_UPSTREAM, - WEBKIT_SELECTION_AFFINITY_DOWNSTREAM, -} WebKitSelectionAffinity; - -typedef enum -{ - WEBKIT_INSERT_ACTION_TYPED, - WEBKIT_INSERT_ACTION_PASTED, - WEBKIT_INSERT_ACTION_DROPPED, -} WebKitInsertAction; - -struct _WebKitWebView { - GtkContainer parent_instance; - - /*< private >*/ - WebKitWebViewPrivate *priv; -}; - -struct _WebKitWebViewClass { - GtkContainerClass parent_class; - - /*< public >*/ - /* - * default handler/virtual methods - */ - WebKitWebView * (* create_web_view) (WebKitWebView *web_view, - WebKitWebFrame *web_frame); - - gboolean (* web_view_ready) (WebKitWebView* web_view); - - gboolean (* close_web_view) (WebKitWebView* web_view); - - WebKitNavigationResponse (* navigation_requested) (WebKitWebView *web_view, - WebKitWebFrame *frame, - WebKitNetworkRequest *request); - void (* window_object_cleared) (WebKitWebView *web_view, - WebKitWebFrame *frame, - JSGlobalContextRef context, - JSObjectRef window_object); - gchar * (* choose_file) (WebKitWebView *web_view, - WebKitWebFrame *frame, - const gchar *old_file); - gboolean (* script_alert) (WebKitWebView *web_view, - WebKitWebFrame *frame, - const gchar *alert_message); - gboolean (* script_confirm) (WebKitWebView *web_view, - WebKitWebFrame *frame, - const gchar *confirm_message, - gboolean *did_confirm); - gboolean (* script_prompt) (WebKitWebView *web_view, - WebKitWebFrame *frame, - const gchar *message, - const gchar *default_value, - gchar* *value); - gboolean (* console_message) (WebKitWebView *web_view, - const gchar *message, - guint line_number, - const gchar* source_id); - void (* select_all) (WebKitWebView *web_view); - void (* cut_clipboard) (WebKitWebView *web_view); - void (* copy_clipboard) (WebKitWebView *web_view); - void (* paste_clipboard) (WebKitWebView *web_view); - gboolean (* move_cursor) (WebKitWebView *web_view, - GtkMovementStep step, - gint count); - - /* - * internal - */ - void (* set_scroll_adjustments) (WebKitWebView *web_view, - GtkAdjustment *hadjustment, - GtkAdjustment *vadjustment); - - void (* undo) (WebKitWebView *web_view); - void (* redo) (WebKitWebView *web_view); - gboolean (* should_allow_editing_action) (WebKitWebView *web_view); - gboolean (* entering_fullscreen) (WebKitWebView *web_view); - gboolean (* leaving_fullscreen) (WebKitWebView *web_view); - gboolean (* run_file_chooser) (WebKitWebView *web_view, - WebKitFileChooserRequest *request); -}; - -WEBKIT_API GType -webkit_web_view_get_type (void); - -WEBKIT_API GtkWidget * -webkit_web_view_new (void); - -WEBKIT_API const gchar * -webkit_web_view_get_title (WebKitWebView *web_view); - - -WEBKIT_API const gchar * -webkit_web_view_get_uri (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_maintains_back_forward_list (WebKitWebView *web_view, - gboolean flag); - -WEBKIT_API WebKitWebBackForwardList * -webkit_web_view_get_back_forward_list (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_go_to_back_forward_item (WebKitWebView *web_view, - WebKitWebHistoryItem *item); - -WEBKIT_API gboolean -webkit_web_view_can_go_back (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_go_back_or_forward (WebKitWebView *web_view, - gint steps); -WEBKIT_API gboolean -webkit_web_view_can_go_forward (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_go_back (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_go_back_or_forward (WebKitWebView *web_view, - gint steps); -WEBKIT_API void -webkit_web_view_go_forward (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_stop_loading (WebKitWebView *web_view); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API void -webkit_web_view_open (WebKitWebView *web_view, - const gchar *uri); - -#endif - -WEBKIT_API void -webkit_web_view_reload (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_reload_bypass_cache (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_load_uri (WebKitWebView *web_view, - const gchar *uri); -WEBKIT_API void -webkit_web_view_load_string (WebKitWebView *web_view, - const gchar *content, - const gchar *mime_type, - const gchar *encoding, - const gchar *base_uri); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API void -webkit_web_view_load_html_string (WebKitWebView *web_view, - const gchar *content, - const gchar *base_uri); -#endif - -WEBKIT_API void -webkit_web_view_load_request (WebKitWebView *web_view, - WebKitNetworkRequest *request); - -WEBKIT_API gboolean -webkit_web_view_search_text (WebKitWebView *web_view, - const gchar *text, - gboolean case_sensitive, - gboolean forward, - gboolean wrap); - -WEBKIT_API guint -webkit_web_view_mark_text_matches (WebKitWebView *web_view, - const gchar *string, - gboolean case_sensitive, - guint limit); - -WEBKIT_API void -webkit_web_view_set_highlight_text_matches (WebKitWebView *web_view, - gboolean highlight); - -WEBKIT_API void -webkit_web_view_unmark_text_matches (WebKitWebView *web_view); - -WEBKIT_API WebKitWebFrame * -webkit_web_view_get_main_frame (WebKitWebView *web_view); - -WEBKIT_API WebKitWebFrame * -webkit_web_view_get_focused_frame (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_execute_script (WebKitWebView *web_view, - const gchar *script); - -WEBKIT_API gboolean -webkit_web_view_can_cut_clipboard (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_copy_clipboard (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_paste_clipboard (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_cut_clipboard (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_copy_clipboard (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_paste_clipboard (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_delete_selection (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_has_selection (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_select_all (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_get_editable (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_editable (WebKitWebView *web_view, - gboolean flag); - -WEBKIT_API GtkTargetList * -webkit_web_view_get_copy_target_list (WebKitWebView *web_view); - -WEBKIT_API GtkTargetList * -webkit_web_view_get_paste_target_list (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_settings (WebKitWebView *web_view, - WebKitWebSettings *settings); - -WEBKIT_API WebKitWebSettings * -webkit_web_view_get_settings (WebKitWebView *web_view); - -WEBKIT_API WebKitWebInspector * -webkit_web_view_get_inspector (WebKitWebView *web_view); - -WEBKIT_API WebKitWebWindowFeatures* -webkit_web_view_get_window_features (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_show_mime_type (WebKitWebView *web_view, - const gchar *mime_type); - -WEBKIT_API gboolean -webkit_web_view_get_transparent (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_transparent (WebKitWebView *web_view, - gboolean flag); - -WEBKIT_API gfloat -webkit_web_view_get_zoom_level (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_zoom_level (WebKitWebView *web_view, - gfloat zoom_level); - -WEBKIT_API void -webkit_web_view_zoom_in (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_zoom_out (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_get_full_content_zoom (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_full_content_zoom (WebKitWebView *web_view, - gboolean full_content_zoom); - -WEBKIT_API const gchar* -webkit_web_view_get_encoding (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_custom_encoding (WebKitWebView *web_view, - const gchar *encoding); - -WEBKIT_API const char* -webkit_web_view_get_custom_encoding (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_view_mode (WebKitWebView *web_view, - WebKitWebViewViewMode mode); - -WEBKIT_API WebKitWebViewViewMode -webkit_web_view_get_view_mode (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_move_cursor (WebKitWebView *web_view, - GtkMovementStep step, - gint count); - -WEBKIT_API WebKitLoadStatus -webkit_web_view_get_load_status (WebKitWebView *web_view); - -WEBKIT_API gdouble -webkit_web_view_get_progress (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_undo (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_undo (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_redo (WebKitWebView *web_view); - -WEBKIT_API gboolean -webkit_web_view_can_redo (WebKitWebView *web_view); - -WEBKIT_API void -webkit_web_view_set_view_source_mode (WebKitWebView *web_view, - gboolean view_source_mode); - -WEBKIT_API gboolean -webkit_web_view_get_view_source_mode (WebKitWebView *web_view); - -WEBKIT_API WebKitHitTestResult* -webkit_web_view_get_hit_test_result (WebKitWebView *web_view, - GdkEventButton *event); - -WEBKIT_API const gchar * -webkit_web_view_get_icon_uri (WebKitWebView *web_view); - -#if !defined(WEBKIT_DISABLE_DEPRECATED) -WEBKIT_API GdkPixbuf * -webkit_web_view_get_icon_pixbuf (WebKitWebView *web_view); -#endif - -WEBKIT_API GdkPixbuf * -webkit_web_view_try_get_favicon_pixbuf (WebKitWebView *web_view, - guint width, - guint height); - -WEBKIT_API WebKitDOMDocument * -webkit_web_view_get_dom_document (WebKitWebView *web_view); - -WEBKIT_API WebKitViewportAttributes* -webkit_web_view_get_viewport_attributes (WebKitWebView *web_view); - -WEBKIT_API cairo_surface_t* -webkit_web_view_get_snapshot (WebKitWebView *web_view); - -G_END_DECLS - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebviewprivate.h b/Source/WebKit/gtk/webkit/webkitwebviewprivate.h deleted file mode 100644 index aeefbd0b9..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebviewprivate.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008, 2010 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebviewprivate_h -#define webkitwebviewprivate_h - -#include "AcceleratedCompositingContext.h" -#include "GeolocationClientMock.h" -#include "GtkClickCounter.h" -#include "GtkDragAndDropHelper.h" -#include "Page.h" -#include "ResourceHandle.h" -#include "ResourceResponse.h" -#include "WebViewInputMethodFilter.h" -#include "WidgetBackingStore.h" -#include <webkit/webkitwebview.h> -#include <wtf/gobject/GOwnPtr.h> - -#if ENABLE(MEDIA_STREAM) -#include "UserMediaClientGtk.h" -#endif - -#if ENABLE(NAVIGATOR_CONTENT_UTILS) -#include "NavigatorContentUtilsClientGtk.h" -#endif - -namespace WebKit { -WebCore::Page* core(WebKitWebView*); -WebKitWebView* kit(WebCore::Page*); -} - -extern "C" { - -#define WEBKIT_WEB_VIEW_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_VIEW, WebKitWebViewPrivate)) -typedef struct _WebKitWebViewPrivate WebKitWebViewPrivate; -struct _WebKitWebViewPrivate { - WebCore::Page* corePage; - bool hasNativeWindow; - OwnPtr<WebCore::WidgetBackingStore> backingStore; - GRefPtr<WebKitWebSettings> webSettings; - GRefPtr<WebKitWebInspector> webInspector; - GRefPtr<WebKitViewportAttributes> viewportAttributes; - GRefPtr<WebKitWebWindowFeatures> webWindowFeatures; - - WebKitWebFrame* mainFrame; - GRefPtr<WebKitWebBackForwardList> backForwardList; - - GtkMenu* currentMenu; - gint lastPopupXPosition; - gint lastPopupYPosition; - - HashSet<GtkWidget*> children; - WebKit::WebViewInputMethodFilter imFilter; - - gboolean transparent; - bool needsResizeOnMap; - -#ifndef GTK_API_VERSION_2 - // GtkScrollablePolicy needs to be checked when - // driving the scrollable adjustment values - GtkScrollablePolicy horizontalScrollingPolicy; - GtkScrollablePolicy verticalScrollingPolicy; -#endif - - gboolean zoomFullContent; - WebKitLoadStatus loadStatus; - CString encoding; - CString customEncoding; - - CString iconURI; - - gboolean disposing; - - // These are hosted here because the DataSource object is - // created too late in the frame loading process. - GRefPtr<WebKitWebResource> mainResource; - CString mainResourceIdentifier; - GRefPtr<GHashTable> subResources; - CString tooltipText; - WebCore::IntRect tooltipArea; - - WebCore::GtkClickCounter clickCounter; - WebCore::GtkDragAndDropHelper dragAndDropHelper; - bool selfScrolling; - -#if USE(ACCELERATED_COMPOSITING) - OwnPtr<WebKit::AcceleratedCompositingContext> acceleratedCompositingContext; -#endif - -#if ENABLE(ICONDATABASE) - gulong iconLoadedHandler; -#endif - -#if ENABLE(MEDIA_STREAM) - OwnPtr<WebKit::UserMediaClientGtk> userMediaClient; -#endif - -#if ENABLE(GEOLOCATION) - OwnPtr<WebCore::GeolocationClientMock> geolocationClientMock; -#endif - -#if ENABLE(NAVIGATOR_CONTENT_UTILS) - OwnPtr<WebKit::NavigatorContentUtilsClient> navigatorContentUtilsClient; -#endif -}; - -void webkit_web_view_notify_ready(WebKitWebView*); - -void webkit_web_view_request_download(WebKitWebView*, WebKitNetworkRequest*, const WebCore::ResourceResponse& = WebCore::ResourceResponse(), WebCore::ResourceHandle* = 0); - -void webkit_web_view_add_resource(WebKitWebView*, const char*, WebKitWebResource*); -void webkit_web_view_add_main_resource(WebKitWebView*, const char*, WebKitWebResource*); -void webkitWebViewRemoveSubresource(WebKitWebView*, const char*); -WebKitWebResource* webkit_web_view_get_resource(WebKitWebView*, char*); -WebKitWebResource* webkit_web_view_get_main_resource(WebKitWebView*); -void webkit_web_view_clear_resources(WebKitWebView*); -GList* webkit_web_view_get_subresources(WebKitWebView*); - -void webkit_web_view_set_tooltip_text(WebKitWebView*, const char*); -GtkMenu* webkit_web_view_get_context_menu(WebKitWebView*); - -void webkitWebViewRunFileChooserRequest(WebKitWebView*, WebKitFileChooserRequest*); - -#if ENABLE(ICONDATABASE) -void webkitWebViewRegisterForIconNotification(WebKitWebView*, bool shouldRegister); -void webkitWebViewIconLoaded(WebKitFaviconDatabase*, const char* frameURI, WebKitWebView*); -#endif -} - -#endif diff --git a/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp b/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp deleted file mode 100644 index 5d1db6f61..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.cpp +++ /dev/null @@ -1,449 +0,0 @@ -/* - * Copyright (C) 2008 Gustavo Noronha Silva <gns@gnome.org> - * Copyright (C) 2008 Holger Hans Peter Freyther - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "webkitwebwindowfeatures.h" - -#include "WindowFeatures.h" -#include "webkitglobalsprivate.h" -#include "webkitwebwindowfeaturesprivate.h" - -/** - * SECTION:webkitwebwindowfeatures - * @short_description: Window properties of a #WebKitWebView - * @see_also: #WebKitWebView::web-view-ready - * - * The content of a #WebKitWebView can request to change certain - * properties of a #WebKitWebView. This can include the x, y position - * of the window, the width and height but also if a toolbar, - * scrollbar, statusbar, locationbar should be visible to the user, - * the request to show the #WebKitWebView fullscreen. - * - * In the normal case one will use #webkit_web_view_get_window_features - * to get the #WebKitWebWindowFeatures and then monitor the property - * changes. Be aware that the #WebKitWebWindowFeatures might change - * before #WebKitWebView::web-view-ready signal is emitted. - * To be safe listen to the notify::window-features signal of the #WebKitWebView - * and reconnect the signals whenever the #WebKitWebWindowFeatures of - * a #WebKitWebView changes. - * - * <informalexample><programlisting> - * /<!-- -->* Get the current WebKitWebWindowFeatures *<!-- -->/ - * WebKitWebWindowFeatures *features = webkit_web_view_get_window_features (my_webview); - * - * /<!-- -->* Connect to the property changes *<!-- -->/ - * g_signal_connect (G_OBJECT(features), "notify::menubar-visible", G_CALLBACK(make_menu_bar_visible), NULL); - * g_signal_connect (G_OBJECT(features), "notify::statusbar-visible", G_CALLBACK(make_status_bar_visible), NULL); - * - * </programlisting></informalexample> - */ - -enum { - PROP_0, - - PROP_X, - PROP_Y, - PROP_WIDTH, - PROP_HEIGHT, - PROP_TOOLBAR_VISIBLE, - PROP_STATUSBAR_VISIBLE, - PROP_SCROLLBAR_VISIBLE, - PROP_MENUBAR_VISIBLE, - PROP_LOCATIONBAR_VISIBLE, - PROP_FULLSCREEN, -}; - -G_DEFINE_TYPE(WebKitWebWindowFeatures, webkit_web_window_features, G_TYPE_OBJECT) - -struct _WebKitWebWindowFeaturesPrivate { - gint x; - gint y; - gint width; - gint height; - - gboolean toolbar_visible; - gboolean statusbar_visible; - gboolean scrollbar_visible; - gboolean menubar_visible; - gboolean locationbar_visible; - - gboolean fullscreen; -}; - -#define WEBKIT_WEB_WINDOW_FEATURES_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE((obj), WEBKIT_TYPE_WEB_WINDOW_FEATURES, WebKitWebWindowFeaturesPrivate)) - -static void webkit_web_window_features_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec); - -static void webkit_web_window_features_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec); - -static void webkit_web_window_features_class_init(WebKitWebWindowFeaturesClass* klass) -{ - GObjectClass* gobject_class = G_OBJECT_CLASS(klass); - gobject_class->set_property = webkit_web_window_features_set_property; - gobject_class->get_property = webkit_web_window_features_get_property; - - GParamFlags flags = (GParamFlags)(WEBKIT_PARAM_READWRITE | G_PARAM_CONSTRUCT); - - webkitInit(); - - /** - * WebKitWebWindowFeatures:x: - * - * The starting x position of the window on the screen. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_X, - g_param_spec_int( - "x", - "x", - "The starting x position of the window on the screen.", - -1, - G_MAXINT, - -1, - flags)); - - /** - * WebKitWebWindowFeatures:y: - * - * The starting y position of the window on the screen. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_Y, - g_param_spec_int( - "y", - "y", - "The starting y position of the window on the screen.", - -1, - G_MAXINT, - -1, - flags)); - - /** - * WebKitWebWindowFeatures:width: - * - * The width of the window on the screen. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_WIDTH, - g_param_spec_int( - "width", - "Width", - "The width of the window on the screen.", - -1, - G_MAXINT, - -1, - flags)); - - /** - * WebKitWebWindowFeatures:height: - * - * The height of the window on the screen. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_HEIGHT, - g_param_spec_int( - "height", - "Height", - "The height of the window on the screen.", - -1, - G_MAXINT, - -1, - flags)); - - /** - * WebKitWebWindowFeatures:toolbar-visible: - * - * Controls whether the toolbar should be visible for the window. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_TOOLBAR_VISIBLE, - g_param_spec_boolean( - "toolbar-visible", - "Toolbar Visible", - "Controls whether the toolbar should be visible for the window.", - TRUE, - flags)); - - /** - * WebKitWebWindowFeatures:statusbar-visible: - * - * Controls whether the statusbar should be visible for the window. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_STATUSBAR_VISIBLE, - g_param_spec_boolean( - "statusbar-visible", - "Statusbar Visible", - "Controls whether the statusbar should be visible for the window.", - TRUE, - flags)); - - /** - * WebKitWebWindowFeatures:scrollbar-visible: - * - * Controls whether the scrollbars should be visible for the window. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_SCROLLBAR_VISIBLE, - g_param_spec_boolean( - "scrollbar-visible", - "Scrollbar Visible", - "Controls whether the scrollbars should be visible for the window.", - TRUE, - flags)); - - /** - * WebKitWebWindowFeatures:menubar-visible: - * - * Controls whether the menubar should be visible for the window. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_MENUBAR_VISIBLE, - g_param_spec_boolean( - "menubar-visible", - "Menubar Visible", - "Controls whether the menubar should be visible for the window.", - TRUE, - flags)); - - /** - * WebKitWebWindowFeatures:locationbar-visible: - * - * Controls whether the locationbar should be visible for the window. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_LOCATIONBAR_VISIBLE, - g_param_spec_boolean( - "locationbar-visible", - "Locationbar Visible", - "Controls whether the locationbar should be visible for the window.", - TRUE, - flags)); - - /** - * WebKitWebWindowFeatures:fullscreen: - * - * Controls whether window will be displayed fullscreen. - * - * Since: 1.0.3 - */ - g_object_class_install_property(gobject_class, - PROP_FULLSCREEN, - g_param_spec_boolean( - "fullscreen", - "Fullscreen", - "Controls whether window will be displayed fullscreen.", - FALSE, - flags)); - - - g_type_class_add_private(klass, sizeof(WebKitWebWindowFeaturesPrivate)); -} - -static void webkit_web_window_features_init(WebKitWebWindowFeatures* web_window_features) -{ - web_window_features->priv = G_TYPE_INSTANCE_GET_PRIVATE(web_window_features, WEBKIT_TYPE_WEB_WINDOW_FEATURES, WebKitWebWindowFeaturesPrivate); -} - -static void webkit_web_window_features_set_property(GObject* object, guint prop_id, const GValue* value, GParamSpec* pspec) -{ - WebKitWebWindowFeatures* web_window_features = WEBKIT_WEB_WINDOW_FEATURES(object); - WebKitWebWindowFeaturesPrivate* priv = web_window_features->priv; - - switch(prop_id) { - case PROP_X: - priv->x = g_value_get_int(value); - break; - case PROP_Y: - priv->y = g_value_get_int(value); - break; - case PROP_WIDTH: - priv->width = g_value_get_int(value); - break; - case PROP_HEIGHT: - priv->height = g_value_get_int(value); - break; - case PROP_TOOLBAR_VISIBLE: - priv->toolbar_visible = g_value_get_boolean(value); - break; - case PROP_STATUSBAR_VISIBLE: - priv->statusbar_visible = g_value_get_boolean(value); - break; - case PROP_SCROLLBAR_VISIBLE: - priv->scrollbar_visible = g_value_get_boolean(value); - break; - case PROP_MENUBAR_VISIBLE: - priv->menubar_visible = g_value_get_boolean(value); - break; - case PROP_LOCATIONBAR_VISIBLE: - priv->locationbar_visible = g_value_get_boolean(value); - break; - case PROP_FULLSCREEN: - priv->fullscreen = g_value_get_boolean(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -static void webkit_web_window_features_get_property(GObject* object, guint prop_id, GValue* value, GParamSpec* pspec) -{ - WebKitWebWindowFeatures* web_window_features = WEBKIT_WEB_WINDOW_FEATURES(object); - WebKitWebWindowFeaturesPrivate* priv = web_window_features->priv; - - switch (prop_id) { - case PROP_X: - g_value_set_int(value, priv->x); - break; - case PROP_Y: - g_value_set_int(value, priv->y); - break; - case PROP_WIDTH: - g_value_set_int(value, priv->width); - break; - case PROP_HEIGHT: - g_value_set_int(value, priv->height); - break; - case PROP_TOOLBAR_VISIBLE: - g_value_set_boolean(value, priv->toolbar_visible); - break; - case PROP_STATUSBAR_VISIBLE: - g_value_set_boolean(value, priv->statusbar_visible); - break; - case PROP_SCROLLBAR_VISIBLE: - g_value_set_boolean(value, priv->scrollbar_visible); - break; - case PROP_MENUBAR_VISIBLE: - g_value_set_boolean(value, priv->menubar_visible); - break; - case PROP_LOCATIONBAR_VISIBLE: - g_value_set_boolean(value, priv->locationbar_visible); - break; - case PROP_FULLSCREEN: - g_value_set_boolean(value, priv->fullscreen); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} - -/** - * webkit_web_window_features_new: - * - * Creates a new #WebKitWebWindowFeatures instance with default values. It must - * be manually attached to a WebView. - * - * Returns: a new #WebKitWebWindowFeatures instance - * - * Since: 1.0.3 - */ -WebKitWebWindowFeatures* webkit_web_window_features_new() -{ - return WEBKIT_WEB_WINDOW_FEATURES(g_object_new(WEBKIT_TYPE_WEB_WINDOW_FEATURES, NULL)); -} - -/** - * webkit_web_window_features_equal: - * @features1: a #WebKitWebWindowFeatures instance - * @features2: another #WebKitWebWindowFeatures instance - * - * Decides if a #WebKitWebWindowFeatures instance equals another, as - * in has the same values. - * - * Returns: %TRUE if the instances have the same values, %FALSE - * otherwise - * - * Since: 1.0.3 - */ -gboolean webkit_web_window_features_equal(WebKitWebWindowFeatures* features1, WebKitWebWindowFeatures* features2) -{ - if (features1 == features2) - return TRUE; - if (!features1 || !features2) - return FALSE; - - WebKitWebWindowFeaturesPrivate* priv1 = features1->priv; - WebKitWebWindowFeaturesPrivate* priv2 = features2->priv; - - if ((priv1->x == priv2->x) - && (priv1->y == priv2->y) - && (priv1->width == priv2->width) - && (priv1->height == priv2->height) - && (priv1->toolbar_visible == priv2->toolbar_visible) - && (priv1->statusbar_visible == priv2->statusbar_visible) - && (priv1->scrollbar_visible == priv2->scrollbar_visible) - && (priv1->menubar_visible == priv2->menubar_visible) - && (priv1->locationbar_visible == priv2->locationbar_visible) - && (priv1->fullscreen == priv2->fullscreen)) - return TRUE; - return FALSE; -} - -namespace WebKit { - -WebKitWebWindowFeatures* kitNew(const WebCore::WindowFeatures& features) -{ - WebKitWebWindowFeatures *webWindowFeatures = webkit_web_window_features_new(); - - if(features.xSet) - g_object_set(webWindowFeatures, "x", static_cast<int>(features.x), NULL); - - if(features.ySet) - g_object_set(webWindowFeatures, "y", static_cast<int>(features.y), NULL); - - if(features.widthSet) - g_object_set(webWindowFeatures, "width", static_cast<int>(features.width), NULL); - - if(features.heightSet) - g_object_set(webWindowFeatures, "height", static_cast<int>(features.height), NULL); - - g_object_set(webWindowFeatures, - "toolbar-visible", features.toolBarVisible, - "statusbar-visible", features.statusBarVisible, - "scrollbar-visible", features.scrollbarsVisible, - "menubar-visible", features.menuBarVisible, - "locationbar-visible", features.locationBarVisible, - "fullscreen", features.fullscreen, - NULL); - - return webWindowFeatures; -} - -} diff --git a/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.h b/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.h deleted file mode 100644 index a79119d70..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebwindowfeatures.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 2008 Gustavo Noronha Silva <gns@gnome.org> - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebwindowfeatures_h -#define webkitwebwindowfeatures_h - -#include <glib-object.h> - -#include <webkit/webkitdefines.h> - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_WEB_WINDOW_FEATURES (webkit_web_window_features_get_type()) -#define WEBKIT_WEB_WINDOW_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_WEB_WINDOW_FEATURES, WebKitWebWindowFeatures)) -#define WEBKIT_WEB_WINDOW_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_WEB_WINDOW_FEATURES, WebKitWebWindowFeaturesClass)) -#define WEBKIT_IS_WEB_WINDOW_FEATURES(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_WEB_WINDOW_FEATURES)) -#define WEBKIT_IS_WEB_WINDOW_FEATURES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_WEB_WINDOW_FEATURES)) -#define WEBKIT_WEB_WINDOW_FEATURES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_WEB_WINDOW_FEATURES, WebKitWebWindowFeaturesClass)) - -typedef struct _WebKitWebWindowFeaturesPrivate WebKitWebWindowFeaturesPrivate; - -struct _WebKitWebWindowFeatures { - GObject parent_instance; - - /*< private >*/ - WebKitWebWindowFeaturesPrivate* priv; -}; - -struct _WebKitWebWindowFeaturesClass { - GObjectClass parent_class; - - /*< private >*/ - /* Padding for future expansion */ - void (*_webkit_reserved1) (void); - void (*_webkit_reserved2) (void); - void (*_webkit_reserved3) (void); - void (*_webkit_reserved4) (void); -}; - -WEBKIT_API GType -webkit_web_window_features_get_type (void); - -WEBKIT_API WebKitWebWindowFeatures* -webkit_web_window_features_new (void); - -WEBKIT_API gboolean -webkit_web_window_features_equal (WebKitWebWindowFeatures* features1, - WebKitWebWindowFeatures* features2); - -G_END_DECLS - -#endif /* webkitwebwindowfeatures_h */ diff --git a/Source/WebKit/gtk/webkit/webkitwebwindowfeaturesprivate.h b/Source/WebKit/gtk/webkit/webkitwebwindowfeaturesprivate.h deleted file mode 100644 index 6ea919bc0..000000000 --- a/Source/WebKit/gtk/webkit/webkitwebwindowfeaturesprivate.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2007, 2008, 2009 Holger Hans Peter Freyther - * Copyright (C) 2008 Jan Michael C. Alonzo - * Copyright (C) 2008 Collabora Ltd. - * Copyright (C) 2010 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef webkitwebwindowfeaturesprivate_h -#define webkitwebwindowfeaturesprivate_h - -#include "webkitwebwindowfeatures.h" - -namespace WebKit { - -WebKitWebWindowFeatures* kitNew(const WebCore::WindowFeatures&); - -} - -#endif diff --git a/Source/WebKit/gtk/webkitmarshal.list b/Source/WebKit/gtk/webkitmarshal.list deleted file mode 100644 index b7428905c..000000000 --- a/Source/WebKit/gtk/webkitmarshal.list +++ /dev/null @@ -1,32 +0,0 @@ -BOOLEAN:ENUM,INT -BOOLEAN:INT,INT,STRING -BOOLEAN:OBJECT -BOOLEAN:OBJECT,OBJECT -BOOLEAN:OBJECT,OBJECT,BOOLEAN -BOOLEAN:OBJECT,OBJECT,ENUM -BOOLEAN:OBJECT,OBJECT,ENUM,BOOLEAN -BOOLEAN:OBJECT,OBJECT,OBJECT,OBJECT -BOOLEAN:OBJECT,OBJECT,STRING,OBJECT -BOOLEAN:OBJECT,STRING -BOOLEAN:OBJECT,STRING,BOXED -BOOLEAN:OBJECT,STRING,POINTER -BOOLEAN:OBJECT,STRING,STRING,STRING -BOOLEAN:STRING,INT,STRING -BOOLEAN:STRING,OBJECT,ENUM -BOOLEAN:VOID -ENUM:OBJECT,OBJECT -OBJECT:OBJECT -OBJECT:STRING,STRING,POINTER -OBJECT:VOID -VOID:OBJECT,OBJECT -VOID:OBJECT,OBJECT,INT -VOID:OBJECT,OBJECT,OBJECT -VOID:OBJECT,OBJECT,POINTER -VOID:OBJECT,OBJECT,BOXED -VOID:OBJECT,OBJECT,OBJECT,OBJECT -VOID:OBJECT,POINTER,POINTER -VOID:OBJECT,INT -VOID:OBJECT,POINTER -VOID:OBJECT,STRING -VOID:STRING -VOID:STRING,STRING |