summaryrefslogtreecommitdiffstats
path: root/WebCore/ChangeLog
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-08-04 11:41:34 +0100
committerSteve Block <steveblock@google.com>2010-08-09 12:04:44 +0100
commitdb14019a23d96bc8a444b6576a5da8bd1cfbc8b0 (patch)
tree9f793c5b0f5e1f2aca8247158920e2c4bf962bbf /WebCore/ChangeLog
parentbf916837aa84f1e4b00e6ed6268516c2acd27545 (diff)
downloadexternal_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.zip
external_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.tar.gz
external_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.tar.bz2
Merge WebKit at r64523 : Initial merge by git.
Change-Id: Ibb796c6802e757b1d9b40f58205cfbe4da95fcd4
Diffstat (limited to 'WebCore/ChangeLog')
-rw-r--r--WebCore/ChangeLog4037
1 files changed, 4037 insertions, 0 deletions
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 999b591..aac8d9f 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,4040 @@
+2010-08-02 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Add VisitedLinkStrategy for each platform to implement
+ https://bugs.webkit.org/show_bug.cgi?id=43393
+
+ No new tests. (No change in behavior)
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::SelectorChecker::determineLinkStateSlowCase): Use VisitedLinkStrategy if it's enabled.
+
+ * loader/HistoryController.cpp:
+ (WebCore::addVisitedLink): Choose VisitedLinkStrategy if it's enabled, else fallback to PageGroup.
+ (WebCore::HistoryController::updateForStandardLoad): Use addVisitedLink helper.
+ (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): Ditto.
+ (WebCore::HistoryController::updateForClientRedirect): Ditto.
+ (WebCore::HistoryController::updateForSameDocumentNavigation): Ditto.
+
+ * platform/PlatformStrategies.h:
+ (WebCore::PlatformStrategies::visitedLinkStrategy):
+ (WebCore::PlatformStrategies::PlatformStrategies):
+
+2010-08-02 Chris Fleizach <cfleizach@apple.com>
+
+ Unreviewed, rolling out r64471.
+ http://trac.webkit.org/changeset/64471
+ https://bugs.webkit.org/show_bug.cgi?id=43005
+
+ Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005
+ until further discussion
+
+ * Android.derived.v8bindings.mk:
+ * Android.jscbindings.mk:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AXObjectCache.h:
+ (WebCore::AXObjectCache::):
+ * accessibility/Accessibility.cpp: Removed.
+ * accessibility/Accessibility.h: Removed.
+ * accessibility/Accessibility.idl: Removed.
+ * accessibility/AccessibilityObject.h:
+ * accessibility/ScreenReader.cpp: Removed.
+ * accessibility/ScreenReader.h: Removed.
+ * accessibility/ScreenReader.idl: Removed.
+ * accessibility/mac/AXObjectCacheMac.mm:
+ (WebCore::AXObjectCache::postPlatformNotification):
+ * accessibility/mac/AccessibilityObjectMac.mm:
+ * page/Navigator.cpp:
+ (WebCore::Navigator::disconnectFrame):
+ (WebCore::Navigator::mimeTypes):
+ * page/Navigator.h:
+ * page/Navigator.idl:
+
+2010-08-02 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Eric Seidel.
+
+ Range::create should not be calling deprecatedEditingOffset and node on start and end
+ https://bugs.webkit.org/show_bug.cgi?id=43385
+
+ Replaced node() and deprecatedEditingOffset() by containerNode() and computeOffsetInContainerNode().
+
+ No new tests added since this does not change the behavior.
+
+ * dom/Range.cpp:
+ (WebCore::Range::create):
+
+2010-08-02 Chris Fleizach <cfleizach@apple.com>
+
+ Unreviewed, rolling out r64472.
+ http://trac.webkit.org/changeset/64472
+ https://bugs.webkit.org/show_bug.cgi?id=43005
+
+ Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005
+ until further discussion
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+2010-08-02 Chris Fleizach <cfleizach@apple.com>
+
+ Unreviewed, rolling out r64476.
+ http://trac.webkit.org/changeset/64476
+
+ Rolling out https://bugs.webkit.org/show_bug.cgi?id=43005
+ until further discussion
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+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
+
+ Classes PopupMenu and SearchPopupMenu have been made pure virtual.
+
+ * platform/PopupMenu.h:
+ (WebCore::PopupMenu::~PopupMenu):
+ * platform/SearchPopupMenu.h:
+ (WebCore::SearchPopupMenu::~SearchPopupMenu):
+
+ Classes RenderMenuList and RenderTexyControlSingleLine have been changed to use
+ the new pure virtual PopupMenu and SearchPopupMenu.
+
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::adjustInnerStyle):
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderMenuList.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::addSearchResult):
+ (WebCore::RenderTextControlSingleLine::showPopup):
+ (WebCore::RenderTextControlSingleLine::hidePopup):
+ (WebCore::RenderTextControlSingleLine::updateFromElement):
+ (WebCore::RenderTextControlSingleLine::valueChanged):
+ * rendering/RenderTextControlSingleLine.h:
+
+ Chrome and ChromeClient were made responsible for providing instances of classes
+ PopupMenu and SearchPopupMenu to its users.
+
+ * loader/EmptyClients.h:
+ (WebCore::EmptyPopupMenu::show):
+ (WebCore::EmptyPopupMenu::hide):
+ (WebCore::EmptyPopupMenu::updateFromElement):
+ (WebCore::EmptyPopupMenu::disconnectClient):
+ (WebCore::EmptySearchPopupMenu::popupMenu):
+ (WebCore::EmptySearchPopupMenu::saveRecentSearches):
+ (WebCore::EmptySearchPopupMenu::loadRecentSearches):
+ (WebCore::EmptySearchPopupMenu::enabled):
+ (WebCore::EmptyChromeClient::selectItemWritingDirectionIsNatural):
+ (WebCore::EmptyChromeClient::createPopupMenu):
+ (WebCore::EmptyChromeClient::createSearchPopupMenu):
+ * page/Chrome.cpp:
+ (WebCore::Chrome::selectItemWritingDirectionIsNatural):
+ (WebCore::Chrome::createPopupMenu):
+ (WebCore::Chrome::createSearchPopupMenu):
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+
+ Original contents of files PopupMenu.h and SearchPopupMenu.h have been splited
+ in several files, two for each platform (PopupMenuXXX.h and SearchPopupMenuXXX.h).
+ Each of new the files contain the concrete classes that inherit form PopupMenu or
+ SearchPopupMenu and are specific for the corresponding platform.
+
+ brew:
+
+ * platform/brew/PopupMenuBrew.cpp:
+ (WebCore::PopupMenuBrew::PopupMenuBrew):
+ (WebCore::PopupMenuBrew::~PopupMenuBrew):
+ (WebCore::PopupMenuBrew::disconnectClient):
+ (WebCore::PopupMenuBrew::show):
+ (WebCore::PopupMenuBrew::hide):
+ (WebCore::PopupMenuBrew::updateFromElement):
+ * platform/brew/PopupMenuBrew.h: Added.
+ (WebCore::PopupMenuBrew::client):
+ * platform/brew/SearchPopupMenuBrew.cpp:
+ (WebCore::SearchPopupMenuBrew::saveRecentSearches):
+ (WebCore::SearchPopupMenuBrew::loadRecentSearches):
+ (WebCore::SearchPopupMenuBrew::SearchPopupMenuBrew):
+ (WebCore::SearchPopupMenuBrew::enabled):
+ (WebCore::SearchPopupMenuBrew::popupMenu):
+ * platform/brew/SearchPopupMenuBrew.h: Added.
+
+ chromium:
+
+ * WebCore.gypi:
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupMenuChromium::PopupMenuChromium):
+ (WebCore::PopupMenuChromium::~PopupMenuChromium):
+ (WebCore::PopupMenuChromium::show):
+ (WebCore::PopupMenuChromium::hide):
+ (WebCore::PopupMenuChromium::updateFromElement):
+ (WebCore::PopupMenuChromium::disconnectClient):
+ * platform/chromium/PopupMenuChromium.h:
+ (WebCore::PopupMenuChromium::client):
+ * platform/chromium/SearchPopupMenuChromium.cpp:
+ (WebCore::SearchPopupMenuChromium::SearchPopupMenuChromium):
+ (WebCore::SearchPopupMenuChromium::popupMenu):
+ (WebCore::SearchPopupMenuChromium::enabled):
+ (WebCore::SearchPopupMenuChromium::saveRecentSearches):
+ (WebCore::SearchPopupMenuChromium::loadRecentSearches):
+ * platform/chromium/SearchPopupMenuChromium.h: Added.
+
+ efl:
+
+ * platform/efl/PopupMenuEfl.cpp:
+ (WebCore::PopupMenuEfl::PopupMenuEfl):
+ (WebCore::PopupMenuEfl::~PopupMenuEfl):
+ (WebCore::PopupMenuEfl::show):
+ (WebCore::PopupMenuEfl::hide):
+ (WebCore::PopupMenuEfl::updateFromElement):
+ (WebCore::PopupMenuEfl::disconnectClient):
+ * platform/efl/PopupMenuEfl.h: Added.
+ (WebCore::PopupMenuEfl::client):
+ * platform/efl/SearchPopupMenuEfl.cpp:
+ (WebCore::SearchPopupMenuEfl::SearchPopupMenuEfl):
+ (WebCore::SearchPopupMenuEfl::popupMenu):
+ (WebCore::SearchPopupMenuEfl::saveRecentSearches):
+ (WebCore::SearchPopupMenuEfl::loadRecentSearches):
+ (WebCore::SearchPopupMenuEfl::enabled):
+ * platform/efl/SearchPopupMenuEfl.h: Added.
+
+ gtk:
+
+ * GNUmakefile.am:
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenuGtk::PopupMenuGtk):
+ (WebCore::PopupMenuGtk::~PopupMenuGtk):
+ (WebCore::PopupMenuGtk::show):
+ (WebCore::PopupMenuGtk::hide):
+ (WebCore::PopupMenuGtk::updateFromElement):
+ (WebCore::PopupMenuGtk::disconnectClient):
+ (WebCore::PopupMenuGtk::menuItemActivated):
+ (WebCore::PopupMenuGtk::menuUnmapped):
+ (WebCore::PopupMenuGtk::menuPositionFunction):
+ (WebCore::PopupMenuGtk::menuRemoveItem):
+ * platform/gtk/PopupMenuGtk.h: Added.
+ (WebCore::PopupMenuGtk::client):
+ * platform/gtk/SearchPopupMenuGtk.cpp:
+ (WebCore::SearchPopupMenuGtk::SearchPopupMenuGtk):
+ (WebCore::SearchPopupMenuGtk::popupMenu):
+ (WebCore::SearchPopupMenuGtk::saveRecentSearches):
+ (WebCore::SearchPopupMenuGtk::loadRecentSearches):
+ (WebCore::SearchPopupMenuGtk::enabled):
+ * platform/gtk/SearchPopupMenuGtk.h: Added.
+
+ haiku:
+
+ * platform/haiku/PopupMenuHaiku.cpp:
+ (WebCore::HaikuPopup::HaikuPopup):
+ (WebCore::HaikuPopup::~HaikuPopup):
+ (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::show):
+ (WebCore::PopupMenuHaiku::hide):
+ (WebCore::PopupMenuHaiku::updateFromElement):
+ * platform/haiku/PopupMenuHaiku.h: Added.
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::client):
+ * platform/haiku/SearchPopupMenuHaiku.cpp:
+ (WebCore::SearchPopupMenuHaiku::SearchPopupMenuHaiku):
+ (WebCore::SearchPopupMenuHaiku::saveRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::loadRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::enabled):
+ (WebCore::SearchPopupMenuHaiku::popupMenu):
+ * platform/haiku/SearchPopupMenuHaiku.h: Added.
+
+ mac:
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mac/PopupMenuMac.h: Added.
+ (WebCore::PopupMenuMac::disconnectClient):
+ (WebCore::PopupMenuMac::client):
+ * platform/mac/PopupMenuMac.mm:
+ (WebCore::PopupMenuMac::PopupMenuMac):
+ (WebCore::PopupMenuMac::~PopupMenuMac):
+ (WebCore::PopupMenuMac::clear):
+ (WebCore::PopupMenuMac::populate):
+ (WebCore::PopupMenuMac::show):
+ (WebCore::PopupMenuMac::hide):
+ (WebCore::PopupMenuMac::updateFromElement):
+ (WebCore::PopupMenuMac::itemWritingDirectionIsNatural):
+ * platform/mac/SearchPopupMenuMac.h: Added.
+ * platform/mac/SearchPopupMenuMac.mm:
+ (WebCore::SearchPopupMenuMac::SearchPopupMenuMac):
+ (WebCore::SearchPopupMenuMac::popupMenu):
+ (WebCore::SearchPopupMenuMac::enabled):
+ (WebCore::SearchPopupMenuMac::saveRecentSearches):
+ (WebCore::SearchPopupMenuMac::loadRecentSearches):
+
+ qt:
+
+ * WebCore.pro:
+ * platform/qt/PopupMenuQt.cpp:
+ (WebCore::PopupMenuQt::PopupMenuQt):
+ (WebCore::PopupMenuQt::~PopupMenuQt):
+ (WebCore::PopupMenuQt::disconnectClient):
+ (WebCore::PopupMenuQt::show):
+ (WebCore::PopupMenuQt::hide):
+ (WebCore::PopupMenuQt::updateFromElement):
+ * platform/qt/PopupMenuQt.h: Added.
+ * platform/qt/QtAbstractWebPopup.h:
+ * platform/qt/SearchPopupMenuQt.cpp:
+ (WebCore::SearchPopupMenuQt::SearchPopupMenuQt):
+ (WebCore::SearchPopupMenuQt::popupMenu):
+ (WebCore::SearchPopupMenuQt::saveRecentSearches):
+ (WebCore::SearchPopupMenuQt::loadRecentSearches):
+ (WebCore::SearchPopupMenuQt::enabled):
+ * platform/qt/SearchPopupMenuQt.h: Added.
+
+ win:
+
+ * WebCore.vcproj/WebCore.vcproj:
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::PopupMenuWin):
+ (WebCore::PopupMenuWin::~PopupMenuWin):
+ (WebCore::PopupMenuWin::disconnectClient):
+ (WebCore::PopupMenuWin::popupClassName):
+ (WebCore::PopupMenuWin::show):
+ (WebCore::PopupMenuWin::hide):
+ (WebCore::PopupMenuWin::calculatePositionAndSize):
+ (WebCore::PopupMenuWin::setFocusedIndex):
+ (WebCore::PopupMenuWin::visibleItems):
+ (WebCore::PopupMenuWin::listIndexAtPoint):
+ (WebCore::PopupMenuWin::focusedIndex):
+ (WebCore::PopupMenuWin::focusFirst):
+ (WebCore::PopupMenuWin::focusLast):
+ (WebCore::PopupMenuWin::down):
+ (WebCore::PopupMenuWin::up):
+ (WebCore::PopupMenuWin::invalidateItem):
+ (WebCore::PopupMenuWin::clientRect):
+ (WebCore::PopupMenuWin::incrementWheelDelta):
+ (WebCore::PopupMenuWin::reduceWheelDelta):
+ (WebCore::PopupMenuWin::scrollToRevealSelection):
+ (WebCore::PopupMenuWin::updateFromElement):
+ (WebCore::PopupMenuWin::paint):
+ (WebCore::PopupMenuWin::valueChanged):
+ (WebCore::PopupMenuWin::invalidateScrollbarRect):
+ (WebCore::PopupMenuWin::registerClass):
+ (WebCore::PopupMenuWin::PopupMenuWndProc):
+ (WebCore::PopupMenuWin::wndProc):
+ * platform/win/PopupMenuWin.h: Added.
+ (WebCore::PopupMenuWin::client):
+ (WebCore::PopupMenuWin::scrollbar):
+ (WebCore::PopupMenuWin::itemHeight):
+ (WebCore::PopupMenuWin::windowRect):
+ (WebCore::PopupMenuWin::popupHandle):
+ (WebCore::PopupMenuWin::setWasClicked):
+ (WebCore::PopupMenuWin::wasClicked):
+ (WebCore::PopupMenuWin::setScrollOffset):
+ (WebCore::PopupMenuWin::scrollOffset):
+ (WebCore::PopupMenuWin::wheelDelta):
+ (WebCore::PopupMenuWin::scrollbarCapturingMouse):
+ (WebCore::PopupMenuWin::setScrollbarCapturingMouse):
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenuWin::SearchPopupMenuWin):
+ (WebCore::SearchPopupMenuWin::popupMenu):
+ (WebCore::SearchPopupMenuWin::enabled):
+ (WebCore::SearchPopupMenuWin::saveRecentSearches):
+ (WebCore::SearchPopupMenuWin::loadRecentSearches):
+ * platform/win/SearchPopupMenuWin.h: Added.
+
+ wx:
+
+ * platform/wx/PopupMenuWx.cpp:
+ (WebCore::PopupMenuWx::PopupMenuWx):
+ (WebCore::PopupMenuWx::~PopupMenuWx):
+ (WebCore::PopupMenuWx::disconnectClient):
+ (WebCore::PopupMenuWx::show):
+ (WebCore::PopupMenuWx::OnMenuItemSelected):
+ (WebCore::PopupMenuWx::hide):
+ (WebCore::PopupMenuWx::updateFromElement):
+ * platform/wx/PopupMenuWx.h: Added.
+ (WebCore::PopupMenuWx::client):
+ * platform/wx/SearchPopupMenuWx.cpp:
+ (WebCore::SearchPopupMenuWx::SearchPopupMenuWx):
+ (WebCore::SearchPopupMenuWx::saveRecentSearches):
+ (WebCore::SearchPopupMenuWx::loadRecentSearches):
+ (WebCore::SearchPopupMenuWx::enabled):
+ (WebCore::SearchPopupMenuWx::popupMenu):
+ * platform/wx/SearchPopupMenuWx.h: Added.
+
+
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Use GdkPixbuf for ImageBuffer::toDataURL
+ https://bugs.webkit.org/show_bug.cgi?id=43088
+
+ Implement ImageBuffer::toDataURL with GdkPixbuf instead of Cairo. This
+ allows the method to support a larger variety of image types.
+
+ * GNUmakefile.am: Add new files to the source list.
+ * platform/MIMETypeRegistry.cpp:
+ (WebCore::initializeSupportedImageMIMETypesForEncoding):
+ Add the list of image types supported by GTK.
+ * platform/graphics/cairo/ImageBufferCairo.cpp:
+ * platform/graphics/gtk/CairoUtilities.cpp: Added.
+ (getCairoSurfacePixel): Move this method from ImageGtk.cpp.
+ (getGdkPixbufPixel): Move this method from ImageGtk.cpp.
+ (cairoImageSurfaceToGdkPixbuf): Move this method from ImageGtk.cpp.
+ * platform/graphics/gtk/CairoUtilities.h: Added.
+ * platform/graphics/gtk/ImageBufferGtk.cpp: Added.
+ (WebCore::ImageBuffer::toDataURL): Use GdkPixbuf to do the conversion to a data url.
+ * platform/graphics/gtk/ImageGtk.cpp:
+ (WebCore::BitmapImage::getGdkPixbuf): Use the new helper method in CairoUtilities.h.
+
+2010-08-02 Xan Lopez <xlopez@igalia.com>
+
+ Reviewed by Gustavo Noronha.
+
+ [GTK] Add support for the Audio element in the DOM bindings
+ https://bugs.webkit.org/show_bug.cgi?id=43313
+
+ The IDL definition of some HTMLMediaElement methods does not match
+ the C++ implementation API, take this fact into account when
+ generating the bindings.
+
+ * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp:
+ (WebKit::createAudioWrapper):
+ (WebKit::createHTMLElementWrapper):
+ * bindings/scripts/CodeGeneratorGObject.pm:
+
+2010-08-02 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Fix plug-in test failures and remove tests from the Skipped list
+ https://bugs.webkit.org/show_bug.cgi?id=43389
+
+ * WebCore.exp.in:
+ Export FrameLoader::cancelledError.
+
+2010-08-02 Brady Eidson <beidson@apple.com>
+
+ Reviewed by Anders Carlsson.
+
+ Basic WK2 visited link coloring
+ https://bugs.webkit.org/show_bug.cgi?id=43377
+
+ No new tests. (No change in behavior)
+
+ * WebCore.exp.in:
+
+ * page/PageGroup.cpp:
+ (WebCore::PageGroup::addVisitedLinkHash):
+ * page/PageGroup.h:
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [GTK] Style cleanup for CairoPath.h
+ https://bugs.webkit.org/show_bug.cgi?id=43133
+
+ Turn CairoPath into a class, as it has a constructor and destructor.
+ Change raw member access to use the new accessor.
+
+ No new tests as functionality has not changed.
+
+ * platform/graphics/cairo/CairoPath.h: Cleanup and indentation fix.
+ (WebCore::CairoPath::CairoPath):
+ (WebCore::CairoPath::~CairoPath):
+ (WebCore::CairoPath::context):
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::addPath): Convert raw member access to accessor access.
+ (WebCore::GraphicsContext::clip): Ditto.
+ * platform/graphics/cairo/PathCairo.cpp:
+ (WebCore::Path::Path): Ditto.
+ (WebCore::Path::operator=): Ditto.
+ (WebCore::Path::clear): Ditto.
+ (WebCore::Path::isEmpty): Ditto.
+ (WebCore::Path::currentPoint): Ditto.
+ (WebCore::Path::translate): Ditto.
+ (WebCore::Path::moveTo): Ditto.
+ (WebCore::Path::addLineTo): Ditto.
+ (WebCore::Path::addRect): Ditto.
+ (WebCore::Path::addQuadCurveTo): Ditto.
+ (WebCore::Path::addBezierCurveTo): Ditto.
+ (WebCore::Path::addArc): Ditto.
+ (WebCore::Path::addArcTo): Ditto.
+ (WebCore::Path::addEllipse): Ditto.
+ (WebCore::Path::closeSubpath): Ditto.
+ (WebCore::Path::boundingRect): Ditto.
+ (WebCore::Path::strokeBoundingRect): Ditto.
+ (WebCore::Path::contains): Ditto.
+ (WebCore::Path::strokeContains): Ditto.
+ (WebCore::Path::apply): Ditto.
+ (WebCore::Path::transform): Ditto.
+ (WebCore::Path::debugString): Ditto.
+
+2010-07-20 Ojan Vafai <ojan@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ focusing the body of a contentEditable iframe resets the selection
+ https://bugs.webkit.org/show_bug.cgi?id=42645
+
+ The selection shouldn't be reset to the beginning of the rootEditableElement
+ if it is already inside the rootEditableElement.
+
+ Test: editing/selection/focus-contenteditable-iframe.html
+
+ * dom/Element.cpp:
+ (WebCore::Element::updateFocusAppearance):
+
+2010-07-20 Ojan Vafai <ojan@chromium.org>
+
+ Reviewed by Eric Seidel.
+
+ focusing an unfocused contentEditable element should place the cursor at the beginning
+ https://bugs.webkit.org/show_bug.cgi?id=42646
+
+ r14666 made this change for the body and html elements, but not for all contentEditable
+ elements. Doing this for all contentEditable elements matches all other browsers.
+
+ * dom/Element.cpp:
+ (WebCore::Element::updateFocusAppearance):
+
+2010-08-02 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Kent Tamura.
+
+ Group functions used in createMarkup (range version) into a class so they are easier to understand
+ https://bugs.webkit.org/show_bug.cgi?id=43227
+
+ Added MarkupAccumulatorWrapper to group getStartMarkup, getEndMarkup, joinMarkups, and addStyleMarkup.
+ MarkupAccumulatorWrapper is intended to be merged with MarkupAccumulator in the future.
+
+ No new tests added since this is a clean up.
+
+ * editing/markup.cpp:
+ (WebCore::MarkupAccumulatorWrapper::MarkupAccumulatorWrapper): Added.
+ (WebCore::MarkupAccumulatorWrapper::insertString): Added.
+ (WebCore::MarkupAccumulatorWrapper::insertOpenTag): Added.
+ (WebCore::MarkupAccumulatorWrapper::insertEndTag): Added.
+ (WebCore::MarkupAccumulatorWrapper::wrapWithNode): Added.
+ (WebCore::MarkupAccumulatorWrapper::wrapWithStyleNode): Added.
+ (WebCore::MarkupAccumulatorWrapper::takeResults): Added.
+ (WebCore::createMarkup): Uses MarkupAccumulatorWrapper.
+
+2010-08-02 Brian Weinstein <bweinstein@apple.com>
+
+ Add a missing </File> tag to WebCore.vcproj.
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+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
+
+ Implement get_range_extents() and modify get_character_extents()
+ to properly work after "The Great Flattening" occurred in the ATK
+ objects hierarchy, some months ago.
+
+ In the case of the GTK port, not just the text controls should be
+ considered when it comes to these functions but also those
+ composite objects that would also allow to work with text ranges,
+ such as headings and links. To take care of this, a new function
+ AccessibilityObject::allowsTextRanges() was defined with a default
+ implementation in the header file and an specific one for GTK in
+ AccessibilityObjectAtk.cpp.
+
+ Based on a previous patch by Joanmarie Diggs.
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::visiblePositionRangeForRange):
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::allowsTextRanges): New
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::visiblePositionForIndex):
+ (WebCore::AccessibilityRenderObject::doAXBoundsForRange):
+ * accessibility/gtk/AccessibilityObjectAtk.cpp:
+ (WebCore::AccessibilityObject::allowsTextRanges): New
+ * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
+ (textExtents):
+ (webkit_accessible_text_get_character_extents):
+ (webkit_accessible_text_get_range_extents):
+ (atk_text_interface_init):
+
+2010-08-02 Chris Fleizach <cfleizach@apple.com>
+
+ AX: Support methods for web apps to interact with the native accessibility APIs
+ https://bugs.webkit.org/show_bug.cgi?id=43005
+
+ Fix for windows build. No review.
+
+ * WebCore.vcproj/WebCore.vcproj:
+
+2010-08-02 Chris Fleizach <cfleizach@apple.com>
+
+ Reviewed by David Kilzer.
+
+ AX: Support methods for web apps to interact with the native accessibility APIs
+ https://bugs.webkit.org/show_bug.cgi?id=43005
+
+ Adds a new "accessibility" object that hangs off of "window.navigator".
+ This accessibility object will allow web apps to interact with native accessibility APIs
+ to provide a richer experience (for screen reader users primarily).
+
+ Test: platform/mac/accessibility/js-accessibility.html
+
+ * Android.derived.v8bindings.mk:
+ * Android.jscbindings.mk:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * accessibility/AXObjectCache.h:
+ (WebCore::AXObjectCache::):
+ * accessibility/Accessibility.cpp: Added.
+ (WebCore::Accessibility::Accessibility):
+ (WebCore::Accessibility::~Accessibility):
+ (WebCore::Accessibility::disconnectFrame):
+ (WebCore::Accessibility::screenChanged):
+ (WebCore::Accessibility::elementsChanged):
+ (WebCore::Accessibility::screenReader):
+ * accessibility/Accessibility.h: Added.
+ (WebCore::Accessibility::create):
+ * accessibility/Accessibility.idl: Added.
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::isScreenReaderRunning):
+ (WebCore::AccessibilityObject::screenReaderFocusedElement):
+ (WebCore::AccessibilityObject::screenReaderVersion):
+ * accessibility/ScreenReader.cpp: Added.
+ (WebCore::ScreenReader::ScreenReader):
+ (WebCore::ScreenReader::~ScreenReader):
+ (WebCore::ScreenReader::disconnectFrame):
+ (WebCore::ScreenReader::active):
+ (WebCore::ScreenReader::activeElement):
+ (WebCore::ScreenReader::version):
+ * accessibility/ScreenReader.h: Added.
+ (WebCore::ScreenReader::create):
+ * accessibility/ScreenReader.idl: Added.
+ * accessibility/mac/AXObjectCacheMac.mm:
+ (WebCore::AXObjectCache::postPlatformNotification):
+ * accessibility/mac/AccessibilityObjectMac.mm:
+ (WebCore::AccessibilityObject::isScreenReaderRunning):
+ (WebCore::AccessibilityObject::screenReaderFocusedElement):
+ (WebCore::AccessibilityObject::screenReaderVersion):
+ * page/Navigator.cpp:
+ (WebCore::Navigator::disconnectFrame):
+ (WebCore::Navigator::accessibility):
+ * page/Navigator.h:
+ * page/Navigator.idl:
+
+2010-08-02 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Xan Lopez.
+
+ [Gtk] DOM listeners get wrong keycodes for some keys
+ https://bugs.webkit.org/show_bug.cgi?id=35170
+
+ Emit the proper DOM keyCode for the print screen, keypad insert,
+ and keypad delete keys.
+
+ * platform/gtk/KeyEventGtk.cpp:
+ (WebCore::windowsKeyCodeForKeyEvent): Fix mapping between GDK key codes
+ and Windows key codes.
+
+2010-08-02 Dirk Schulze <krit@webkit.org>
+
+ Unreviewed sort of XCode project file.
+
+ * WebCore.xcodeproj/project.pbxproj:
+
+2010-08-02 Kristian Monsen <kristianm@google.com>
+
+ Reviewed by Steve Block.
+
+ Compile fix for Android, adding guards around filter specific code.
+ https://bugs.webkit.org/show_bug.cgi?id=43338
+ This CL introduced the code:
+ http://trac.webkit.org/changeset/64196
+
+ Compile fix only, no new tests.
+
+ * rendering/SVGResourcesCycleSolver.cpp:
+ (WebCore::SVGResourcesCycleSolver::breakCycle):
+
+2010-08-02 Kristian Monsen <kristianm@google.com>
+
+ Reviewed by Steve Block.
+
+ Compile fix for Android, guard inspector code with ENABLE(INSPECTOR).
+ https://bugs.webkit.org/show_bug.cgi?id=43345
+ Code introduced in this CL:
+ http://trac.webkit.org/changeset/63891
+
+ No new tests, just a compile fix.
+
+ * bindings/v8/ScriptValue.cpp:
+
+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
+
+ * GNUmakefile.am:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * loader/EmptyClients.h:
+ * page/Chrome.cpp:
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * platform/PopupMenu.h:
+ (WebCore::PopupMenu::create):
+ (WebCore::PopupMenu::disconnectClient):
+ (WebCore::PopupMenu::client):
+ (WebCore::PopupMenu::scrollbar):
+ (WebCore::PopupMenu::itemHeight):
+ (WebCore::PopupMenu::windowRect):
+ (WebCore::PopupMenu::popupHandle):
+ (WebCore::PopupMenu::setWasClicked):
+ (WebCore::PopupMenu::wasClicked):
+ (WebCore::PopupMenu::setScrollOffset):
+ (WebCore::PopupMenu::scrollOffset):
+ (WebCore::PopupMenu::wheelDelta):
+ (WebCore::PopupMenu::scrollbarCapturingMouse):
+ (WebCore::PopupMenu::setScrollbarCapturingMouse):
+ (WebCore::PopupMenu::isActive):
+ (WebCore::PopupMenu::scrollbarCornerPresent):
+ * platform/SearchPopupMenu.h:
+ (WebCore::SearchPopupMenu::create):
+ * platform/brew/PopupMenuBrew.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/brew/PopupMenuBrew.h: Removed.
+ * platform/brew/SearchPopupMenuBrew.cpp:
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/brew/SearchPopupMenuBrew.h: Removed.
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/chromium/PopupMenuChromium.h:
+ * platform/chromium/SearchPopupMenuChromium.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/chromium/SearchPopupMenuChromium.h: Removed.
+ * platform/efl/PopupMenuEfl.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/efl/PopupMenuEfl.h: Removed.
+ * platform/efl/SearchPopupMenuEfl.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/efl/SearchPopupMenuEfl.h: Removed.
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ (WebCore::PopupMenu::menuItemActivated):
+ (WebCore::PopupMenu::menuUnmapped):
+ (WebCore::PopupMenu::menuPositionFunction):
+ (WebCore::PopupMenu::menuRemoveItem):
+ * platform/gtk/PopupMenuGtk.h: Removed.
+ * platform/gtk/SearchPopupMenuGtk.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/gtk/SearchPopupMenuGtk.h: Removed.
+ * platform/haiku/PopupMenuHaiku.cpp:
+ (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/haiku/PopupMenuHaiku.h: Removed.
+ * platform/haiku/SearchPopupMenuHaiku.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/haiku/SearchPopupMenuHaiku.h: Removed.
+ * platform/mac/PopupMenuMac.h: Removed.
+ * platform/mac/PopupMenuMac.mm:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::clear):
+ (WebCore::PopupMenu::populate):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/mac/SearchPopupMenuMac.h: Removed.
+ * platform/mac/SearchPopupMenuMac.mm:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/qt/PopupMenuQt.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/qt/PopupMenuQt.h: Removed.
+ * platform/qt/QtAbstractWebPopup.h:
+ * platform/qt/SearchPopupMenuQt.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/qt/SearchPopupMenuQt.h: Removed.
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::popupClassName):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::calculatePositionAndSize):
+ (WebCore::PopupMenu::setFocusedIndex):
+ (WebCore::PopupMenu::visibleItems):
+ (WebCore::PopupMenu::listIndexAtPoint):
+ (WebCore::PopupMenu::focusedIndex):
+ (WebCore::PopupMenu::focusFirst):
+ (WebCore::PopupMenu::focusLast):
+ (WebCore::PopupMenu::down):
+ (WebCore::PopupMenu::up):
+ (WebCore::PopupMenu::invalidateItem):
+ (WebCore::PopupMenu::clientRect):
+ (WebCore::PopupMenu::incrementWheelDelta):
+ (WebCore::PopupMenu::reduceWheelDelta):
+ (WebCore::PopupMenu::scrollToRevealSelection):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ (WebCore::PopupMenu::paint):
+ (WebCore::PopupMenu::valueChanged):
+ (WebCore::PopupMenu::invalidateScrollbarRect):
+ (WebCore::PopupMenu::registerClass):
+ (WebCore::PopupMenu::PopupMenuWndProc):
+ (WebCore::PopupMenu::wndProc):
+ * platform/win/PopupMenuWin.h: Removed.
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/win/SearchPopupMenuWin.h: Removed.
+ * platform/wx/PopupMenuWx.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::OnMenuItemSelected):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/wx/PopupMenuWx.h: Removed.
+ * platform/wx/SearchPopupMenuWx.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/wx/SearchPopupMenuWx.h: Removed.
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::adjustInnerStyle):
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderMenuList.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::addSearchResult):
+ (WebCore::RenderTextControlSingleLine::showPopup):
+ (WebCore::RenderTextControlSingleLine::hidePopup):
+ (WebCore::RenderTextControlSingleLine::updateFromElement):
+ (WebCore::RenderTextControlSingleLine::valueChanged):
+ * rendering/RenderTextControlSingleLine.h:
+
+2010-08-02 Markus Goetz <Markus.Goetz@nokia.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [Qt] Do not link to SharedBufferCF.cpp
+ The Qt port does not need this file.
+ We plan to implement the platformData()
+ for SharedBuffer at some point soon.
+ https://bugs.webkit.org/show_bug.cgi?id=43242
+
+ * WebCore.pro:
+ * platform/SharedBuffer.cpp:
+
+2010-08-02 Balazs Kelemen <kb@inf.u-szeged.hu>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Generate forwarding headers for WebKit2
+
+ https://bugs.webkit.org/show_bug.cgi?id=43336
+
+ * WebCore.pri: Removed header copying logic.
+ * WebCore.pro: Add include paths for WebKit2.
+
+2010-08-02 Andrey Kosyakov <caseq@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: adding experimental support for WebInspector extensions API.
+ https://bugs.webkit.org/show_bug.cgi?id=40425
+
+ Tests: inspector/extensions-api.html
+ inspector/extensions.html
+
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * inspector/InspectorController.cpp:
+ (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
+ (WebCore::InspectorController::didCommitLoad):
+ * inspector/InspectorFrontendHost.cpp:
+ (WebCore::InspectorFrontendHost::setExtensionAPI):
+ * inspector/InspectorFrontendHost.h:
+ * inspector/InspectorFrontendHost.idl:
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
+ (WebInspector.ElementsPanel):
+ * inspector/front-end/ExtensionAPI.js: Added. An API implementation that gets injected into the extension context.
+ (injectedExtensionAPI):
+ (injectedExtensionAPI.EventSinkImpl.prototype.addListener):
+ (injectedExtensionAPI.EventSinkImpl.prototype.removeListener):
+ (injectedExtensionAPI.EventSinkImpl.prototype._fire):
+ (injectedExtensionAPI.EventSink):
+ (injectedExtensionAPI.InspectorExtensionAPI):
+ (injectedExtensionAPI.InspectorExtensionAPI.prototype.log):
+ (injectedExtensionAPI.Resources.prototype.getAll):
+ (injectedExtensionAPI.Resources.prototype.get return):
+ (injectedExtensionAPI.Resources.prototype):
+ (injectedExtensionAPI.Panels):
+ (injectedExtensionAPI.Panels.prototype.create.callbackWrapper):
+ (injectedExtensionAPI.Panels.prototype.create):
+ (injectedExtensionAPI.PanelImpl):
+ (injectedExtensionAPI.PanelImpl.prototype.createSidebarPane.callbackWrapper):
+ (injectedExtensionAPI.PanelImpl.prototype.createSidebarPane):
+ (injectedExtensionAPI.ExtensionPanel):
+ (injectedExtensionAPI.ExtensionSidebarPaneImpl):
+ (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setHeight):
+ (injectedExtensionAPI.ExtensionSidebarPaneImpl.prototype.setExpanded):
+ (injectedExtensionAPI.InspectedWindow):
+ (injectedExtensionAPI.InspectedWindow.prototype.reload):
+ (injectedExtensionAPI.InspectedWindow.prototype.evaluate):
+ (injectedExtensionAPI.ExtensionServerClient.prototype.sendRequest):
+ (injectedExtensionAPI.ExtensionServerClient.prototype.registerHandler):
+ (injectedExtensionAPI.ExtensionServerClient.prototype.nextObjectId):
+ (injectedExtensionAPI.ExtensionServerClient.prototype._registerCallback):
+ (injectedExtensionAPI.ExtensionServerClient.prototype._onCallback):
+ (injectedExtensionAPI.ExtensionServerClient.prototype._onMessage):
+ (injectedExtensionAPI.expandURL):
+ (injectedExtensionAPI.):
+ * inspector/front-end/ExtensionPanel.js: Added. A class that provides WebInspector's Panel interface to the inspector, hosts extension panel within an IFrame and proxies Panel callbacks to the extension.
+ (WebInspector.ExtensionPanel):
+ (WebInspector.ExtensionPanel.prototype.get defaultFocusedElement):
+ (WebInspector.ExtensionPanel.prototype.updateMainViewWidth):
+ (WebInspector.ExtensionPanel.prototype.searchCanceled):
+ (WebInspector.ExtensionPanel.prototype.performSearch):
+ (WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
+ (WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):
+ (WebInspector.ExtensionPanel.prototype._addStyleRule):
+ * inspector/front-end/ExtensionRegistryStub.js: Added. A stub for ExtensionRegistry class that is meant to provide a list of extensions. Actual implementations may be browser-specfic.
+ (.WebInspector.InspectorExtensionRegistryStub):
+ (.WebInspector.InspectorExtensionRegistryStub.prototype.getExtensionsAsync):
+ * inspector/front-end/ExtensionServer.js: Added. Communicates with ExtensionAPI via DOM messaging and proxies requests to WebInspector classes.
+ (WebInspector.ExtensionServer):
+ (WebInspector.ExtensionServer.prototype.notifyPanelShown):
+ (WebInspector.ExtensionServer.prototype.notifyObjectSelected):
+ (WebInspector.ExtensionServer.prototype.notifyResourceFinished):
+ (WebInspector.ExtensionServer.prototype.notifySearchAction):
+ (WebInspector.ExtensionServer.prototype.notifyInspectedPageLoaded):
+ (WebInspector.ExtensionServer.prototype.notifyInspectedURLChanged):
+ (WebInspector.ExtensionServer.prototype.notifyInspectorReset):
+ (WebInspector.ExtensionServer.prototype._convertResource):
+ (WebInspector.ExtensionServer.prototype._postNotification):
+ (WebInspector.ExtensionServer.prototype._onSubscribe):
+ (WebInspector.ExtensionServer.prototype._onUnsubscribe):
+ (WebInspector.ExtensionServer.prototype._onCreatePanel):
+ (WebInspector.ExtensionServer.prototype._onCreateSidebar):
+ (WebInspector.ExtensionServer.prototype._createClientIframe):
+ (WebInspector.ExtensionServer.prototype._onSetSidebarHeight):
+ (WebInspector.ExtensionServer.prototype._onSetSidebarExpansion):
+ (WebInspector.ExtensionServer.prototype._onLog):
+ (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage):
+ (WebInspector.ExtensionServer.prototype._onRevealAndSelect):
+ (WebInspector.ExtensionServer.prototype._onRevealAndSelectResource):
+ (WebInspector.ExtensionServer.prototype._dispatchCallback):
+ (WebInspector.ExtensionServer.prototype._onGetResources):
+ (WebInspector.ExtensionServer.prototype.initExtensions):
+ (WebInspector.ExtensionServer.prototype._addExtensions):
+ (WebInspector.ExtensionServer.prototype._onWindowMessage):
+ (WebInspector.ExtensionServer.prototype._onmessage):
+ (WebInspector.ExtensionServer.prototype._registerHandler):
+ (WebInspector.ExtensionStatus):
+ (WebInspector.addExtensions):
+ * inspector/front-end/InjectedScript.js:
+ (injectedScriptConstructor):
+ * inspector/front-end/InjectedScriptAccess.js:
+ * inspector/front-end/InspectorFrontendHostStub.js:
+ (.WebInspector.InspectorFrontendHostStub.prototype.setExtensionAPI):
+ (.WebInspector.InspectorFrontendHostStub.prototype.canAttachWindow):
+ * inspector/front-end/WebKit.qrc:
+ * inspector/front-end/inspector.html:
+ * inspector/front-end/inspector.js:
+ (WebInspector.loaded):
+ (WebInspector.updateResource):
+ (WebInspector.reset):
+ (WebInspector.inspectedURLChanged):
+ (WebInspector.didCommitLoad):
+
+2010-08-02 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Reviewed by Yury Semikhatsky.
+
+ WebInspector: Inspector is not working when it is loaded as html page.
+ https://bugs.webkit.org/show_bug.cgi?id=43334
+
+ * inspector/front-end/InspectorFrontendHostStub.js:
+ (.WebInspector.InspectorFrontendHostStub.prototype.canAttachWindow):
+ (.WebInspector.InspectorFrontendHostStub.prototype.sendMessageToBackend):
+
+2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ SVG gradients do not update when scripted via xlink
+ https://bugs.webkit.org/show_bug.cgi?id=42953
+
+ Unify cycle detection logic for chainable (through xlink:href) and ordinary resources.
+ All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries.
+
+ When linking resources, register as regular client, so the regular update mechanisms work as expected.
+ <linearGradient id="foo"><stop../> </linearGradient>
+ <linearGradient id="bar" xlink:href="#foo"/>
+ <rect fill="url(#bar)"/>
+
+ Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection.
+ Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources,
+ as no SVG DOM queries have to be executed anymore.
+
+ Test: svg/custom/js-update-stop-linked-gradient.svg
+
+ * rendering/RenderSVGResourceContainer.cpp:
+ (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
+ (WebCore::linkedResourceForContainer):
+ * rendering/SVGResources.cpp:
+ (WebCore::SVGResources::SVGResources):
+ (WebCore::chainableResourceTags):
+ (WebCore::targetReferenceFromResource):
+ (WebCore::registerPendingResource):
+ (WebCore::SVGResources::buildCachedResources):
+ (WebCore::SVGResources::invalidateClient):
+ (WebCore::SVGResources::resourceDestroyed):
+ (WebCore::SVGResources::buildSetOfResources):
+ (WebCore::SVGResources::setLinkedResource):
+ (WebCore::SVGResources::resetLinkedResource):
+ (WebCore::SVGResources::dump):
+ * rendering/SVGResources.h:
+ (WebCore::SVGResources::linkedResource):
+ * rendering/SVGResourcesCycleSolver.cpp:
+ (WebCore::SVGResourcesCycleSolver::resolveCycles):
+ (WebCore::SVGResourcesCycleSolver::breakCycle):
+ * rendering/SVGResourcesCycleSolver.h:
+ * svg/SVGFilterElement.cpp:
+ (WebCore::SVGFilterElement::SVGFilterElement):
+ * svg/SVGFilterElement.h:
+ * svg/SVGGradientElement.cpp:
+ (WebCore::SVGGradientElement::SVGGradientElement):
+ * svg/SVGGradientElement.h:
+ * svg/SVGLinearGradientElement.cpp:
+ (WebCore::SVGLinearGradientElement::collectGradientProperties):
+ * svg/SVGPatternElement.cpp:
+ (WebCore::SVGPatternElement::SVGPatternElement):
+ (WebCore::SVGPatternElement::collectPatternProperties):
+ * svg/SVGPatternElement.h:
+ * svg/SVGRadialGradientElement.cpp:
+ (WebCore::SVGRadialGradientElement::collectGradientProperties):
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Try to fix the Windows build when zlib is not available.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Try to fix the Windows build when zlib is not available.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Try to fix the Windows build when zlib is not available.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Fix typo in attempted build fix.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Try to fix the Windows build when zlib is not available.
+
+ * platform/graphics/WOFFFileFormat.cpp:
+
+2010-07-31 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ <rdar://problem/8234766> Add WOFF support for @font-face
+ https://bugs.webkit.org/show_bug.cgi?id=31302
+
+ * WebCore.vcproj/WebCore.vcproj: Added WOFFFileFormat.{cpp,h}.
+ * WebCore.vcproj/WebCoreCommon.vsprops: Added $(WebKitLibraries)\include\zlib to the header search path.
+ * WebCore.xcodeproj/project.pbxproj: Added WOFFFileFormat.{cpp,h} and linking against libz.
+ * css/CSSFontFaceSrcValue.cpp:
+ (WebCore::CSSFontFaceSrcValue::isSupportedFormat): Replaced hard-coded list of supported formats with
+ call to FontCustomPlatformData::supportsFormat().
+ * platform/graphics/WOFFFileFormat.cpp: Added.
+ (WebCore::isWOFF): Checks if the buffer has the WOFF signature.
+ (WebCore::convertWOFFToSfnt): Extracts the sfnt payload of a WOFF package.
+ * platform/graphics/WOFFFileFormat.h: Added.
+ * platform/graphics/cairo/FontCustomPlatformData.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype and opentype.
+ * platform/graphics/cairo/FontCustomPlatformData.h:
+ * platform/graphics/chromium/FontCustomPlatformData.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype and opentype,
+ and also for woff if the OpenType sanitizer is enabled.
+ * platform/graphics/chromium/FontCustomPlatformData.h:
+ * platform/graphics/gtk/FontCustomPlatformDataPango.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns false.
+ * platform/graphics/haiku/FontCustomPlatformData.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Ditto.
+ * platform/graphics/haiku/FontCustomPlatformData.h:
+ * platform/graphics/mac/FontCustomPlatformData.cpp:
+ (WebCore::freeSfntData):
+ (WebCore::createFontCustomPlatformData): If the OpenType font sanitizer is not enabled, use convertWOFFToSfnt().
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype, opentype and woff.
+ * platform/graphics/mac/FontCustomPlatformData.h:
+ * platform/graphics/qt/FontCustomPlatformData.h:
+ * platform/graphics/qt/FontCustomPlatformDataQt.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype and opentype.
+ * platform/graphics/win/FontCustomPlatformData.cpp:
+ (WebCore::createFontCustomPlatformData): If the OpenType font sanitizer is not enabled, use convertWOFFToSfnt().
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype, opentype and woff.
+ * platform/graphics/win/FontCustomPlatformData.h:
+ * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Added. Returns true for truetype and opentype.
+ * platform/graphics/win/FontCustomPlatformDataCairo.h:
+ * platform/graphics/wince/FontCustomPlatformData.cpp:
+ (WebCore::FontCustomPlatformData::supportsFormat): Ditto.
+ * platform/graphics/wince/FontCustomPlatformData.h:
+
+2010-07-31 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Ojan Vafai.
+
+ SplitElementCommand shouldn't be duplicating id attribute
+ https://bugs.webkit.org/show_bug.cgi?id=27156
+
+ Modified SplitElementCommand to delete the id attribute from the second element when splitting an element.
+ Since this causes WebKit not to merge split elements, added shouldSplitElement to ApplyStyleCommand which
+ determines the necessity of splitting the element.
+
+ To share code between shouldSplitElement and removeInlineStyleFromElement (extracted from applyInlineStyle)
+ dontRemove was added as the 3rd argument to removeHTMLFontStyle, removeHTMLBidiEmbeddingStyle, and removeCSSStyle.
+
+ Test: editing/style/split-element-id-duplication.html
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::applyBlockStyle): Added 3rd argument for removeCSSStyle.
+ (WebCore::ApplyStyleCommand::applyInlineStyle): Calls shouldSplitElement.
+ (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Extracted from removeInlineStyle.
+ (WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement): Inline helper for removeInlineStyleFromElement.
+ (WebCore::ApplyStyleCommand::removeHTMLFontStyle): Added dontRemove.
+ (WebCore::ApplyStyleCommand::removeHTMLBidiEmbeddingStyle): Added dontRemove.
+ (WebCore::ApplyStyleCommand::removeCSSStyle): Added dontRemove.
+ (WebCore::ApplyStyleCommand::removeInlineStyle): Calls removeInlineStyleFromElement.
+ (WebCore::ApplyStyleCommand::splitTextElementAtStart): Removed the call to splitTextAtStart.
+ Branching is now done in applyInlineStyle.
+ (WebCore::ApplyStyleCommand::splitTextElementAtEnd): Ditto for splitTextAtEnd.
+ (WebCore::ApplyStyleCommand::shouldSplitElement): Added.
+ * editing/ApplyStyleCommand.h:
+ * editing/SplitElementCommand.cpp:
+ (WebCore::SplitElementCommand::executeApply): Deletes the id attribute from the second element.
+ (WebCore::SplitElementCommand::doUnapply): Recovers the id attribute of the second element.
+
+2010-07-31 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Build fix: Windows.
+
+ * platform/win/PopupMenuWin.h:
+
+2010-07-31 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Windows build fix.
+
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::PopupMenuWndProc):
+
+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
+
+ Classes PopupMenu and SearchPopupMenu have been made pure virtual.
+
+ * platform/PopupMenu.h:
+ (WebCore::PopupMenu::~PopupMenu):
+ * platform/SearchPopupMenu.h:
+ (WebCore::SearchPopupMenu::~SearchPopupMenu):
+
+ Classes RenderMenuList and RenderTexyControlSingleLine have been changed to use
+ the new pure virtual PopupMenu and SearchPopupMenu.
+
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::adjustInnerStyle):
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderMenuList.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::addSearchResult):
+ (WebCore::RenderTextControlSingleLine::showPopup):
+ (WebCore::RenderTextControlSingleLine::hidePopup):
+ (WebCore::RenderTextControlSingleLine::updateFromElement):
+ (WebCore::RenderTextControlSingleLine::valueChanged):
+ * rendering/RenderTextControlSingleLine.h:
+
+ Chrome and ChromeClient were made responsible for providing instances of classes
+ PopupMenu and SearchPopupMenu to its users.
+
+ * loader/EmptyClients.h:
+ (WebCore::EmptyPopupMenu::show):
+ (WebCore::EmptyPopupMenu::hide):
+ (WebCore::EmptyPopupMenu::updateFromElement):
+ (WebCore::EmptyPopupMenu::disconnectClient):
+ (WebCore::EmptySearchPopupMenu::popupMenu):
+ (WebCore::EmptySearchPopupMenu::saveRecentSearches):
+ (WebCore::EmptySearchPopupMenu::loadRecentSearches):
+ (WebCore::EmptySearchPopupMenu::enabled):
+ (WebCore::EmptyChromeClient::selectItemWritingDirectionIsNatural):
+ (WebCore::EmptyChromeClient::createPopupMenu):
+ (WebCore::EmptyChromeClient::createSearchPopupMenu):
+ * page/Chrome.cpp:
+ (WebCore::Chrome::selectItemWritingDirectionIsNatural):
+ (WebCore::Chrome::createPopupMenu):
+ (WebCore::Chrome::createSearchPopupMenu):
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+
+ Original contents of files PopupMenu.h and SearchPopupMenu.h have been splited
+ in several files, two for each platform (PopupMenuXXX.h and SearchPopupMenuXXX.h).
+ Each of new the files contain the concrete classes that inherit form PopupMenu or
+ SearchPopupMenu and are specific for the corresponding platform.
+
+ brew:
+
+ * platform/brew/PopupMenuBrew.cpp:
+ (WebCore::PopupMenuBrew::PopupMenuBrew):
+ (WebCore::PopupMenuBrew::~PopupMenuBrew):
+ (WebCore::PopupMenuBrew::disconnectClient):
+ (WebCore::PopupMenuBrew::show):
+ (WebCore::PopupMenuBrew::hide):
+ (WebCore::PopupMenuBrew::updateFromElement):
+ * platform/brew/PopupMenuBrew.h: Added.
+ (WebCore::PopupMenuBrew::client):
+ * platform/brew/SearchPopupMenuBrew.cpp:
+ (WebCore::SearchPopupMenuBrew::saveRecentSearches):
+ (WebCore::SearchPopupMenuBrew::loadRecentSearches):
+ (WebCore::SearchPopupMenuBrew::SearchPopupMenuBrew):
+ (WebCore::SearchPopupMenuBrew::enabled):
+ (WebCore::SearchPopupMenuBrew::popupMenu):
+ * platform/brew/SearchPopupMenuBrew.h: Added.
+
+ chromium:
+
+ * WebCore.gypi:
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupMenuChromium::PopupMenuChromium):
+ (WebCore::PopupMenuChromium::~PopupMenuChromium):
+ (WebCore::PopupMenuChromium::show):
+ (WebCore::PopupMenuChromium::hide):
+ (WebCore::PopupMenuChromium::updateFromElement):
+ (WebCore::PopupMenuChromium::disconnectClient):
+ * platform/chromium/PopupMenuChromium.h:
+ (WebCore::PopupMenuChromium::client):
+ * platform/chromium/SearchPopupMenuChromium.cpp:
+ (WebCore::SearchPopupMenuChromium::SearchPopupMenuChromium):
+ (WebCore::SearchPopupMenuChromium::popupMenu):
+ (WebCore::SearchPopupMenuChromium::enabled):
+ (WebCore::SearchPopupMenuChromium::saveRecentSearches):
+ (WebCore::SearchPopupMenuChromium::loadRecentSearches):
+ * platform/chromium/SearchPopupMenuChromium.h: Added.
+
+ efl:
+
+ * platform/efl/PopupMenuEfl.cpp:
+ (WebCore::PopupMenuEfl::PopupMenuEfl):
+ (WebCore::PopupMenuEfl::~PopupMenuEfl):
+ (WebCore::PopupMenuEfl::show):
+ (WebCore::PopupMenuEfl::hide):
+ (WebCore::PopupMenuEfl::updateFromElement):
+ (WebCore::PopupMenuEfl::disconnectClient):
+ * platform/efl/PopupMenuEfl.h: Added.
+ (WebCore::PopupMenuEfl::client):
+ * platform/efl/SearchPopupMenuEfl.cpp:
+ (WebCore::SearchPopupMenuEfl::SearchPopupMenuEfl):
+ (WebCore::SearchPopupMenuEfl::popupMenu):
+ (WebCore::SearchPopupMenuEfl::saveRecentSearches):
+ (WebCore::SearchPopupMenuEfl::loadRecentSearches):
+ (WebCore::SearchPopupMenuEfl::enabled):
+ * platform/efl/SearchPopupMenuEfl.h: Added.
+
+ gtk:
+
+ * GNUmakefile.am:
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenuGtk::PopupMenuGtk):
+ (WebCore::PopupMenuGtk::~PopupMenuGtk):
+ (WebCore::PopupMenuGtk::show):
+ (WebCore::PopupMenuGtk::hide):
+ (WebCore::PopupMenuGtk::updateFromElement):
+ (WebCore::PopupMenuGtk::disconnectClient):
+ (WebCore::PopupMenuGtk::menuItemActivated):
+ (WebCore::PopupMenuGtk::menuUnmapped):
+ (WebCore::PopupMenuGtk::menuPositionFunction):
+ (WebCore::PopupMenuGtk::menuRemoveItem):
+ * platform/gtk/PopupMenuGtk.h: Added.
+ (WebCore::PopupMenuGtk::client):
+ * platform/gtk/SearchPopupMenuGtk.cpp:
+ (WebCore::SearchPopupMenuGtk::SearchPopupMenuGtk):
+ (WebCore::SearchPopupMenuGtk::popupMenu):
+ (WebCore::SearchPopupMenuGtk::saveRecentSearches):
+ (WebCore::SearchPopupMenuGtk::loadRecentSearches):
+ (WebCore::SearchPopupMenuGtk::enabled):
+ * platform/gtk/SearchPopupMenuGtk.h: Added.
+
+ haiku:
+
+ * platform/haiku/PopupMenuHaiku.cpp:
+ (WebCore::HaikuPopup::HaikuPopup):
+ (WebCore::HaikuPopup::~HaikuPopup):
+ (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::show):
+ (WebCore::PopupMenuHaiku::hide):
+ (WebCore::PopupMenuHaiku::updateFromElement):
+ * platform/haiku/PopupMenuHaiku.h: Added.
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::client):
+ * platform/haiku/SearchPopupMenuHaiku.cpp:
+ (WebCore::SearchPopupMenuHaiku::SearchPopupMenuHaiku):
+ (WebCore::SearchPopupMenuHaiku::saveRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::loadRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::enabled):
+ (WebCore::SearchPopupMenuHaiku::popupMenu):
+ * platform/haiku/SearchPopupMenuHaiku.h: Added.
+
+ mac:
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mac/PopupMenuMac.h: Added.
+ (WebCore::PopupMenuMac::disconnectClient):
+ (WebCore::PopupMenuMac::client):
+ * platform/mac/PopupMenuMac.mm:
+ (WebCore::PopupMenuMac::PopupMenuMac):
+ (WebCore::PopupMenuMac::~PopupMenuMac):
+ (WebCore::PopupMenuMac::clear):
+ (WebCore::PopupMenuMac::populate):
+ (WebCore::PopupMenuMac::show):
+ (WebCore::PopupMenuMac::hide):
+ (WebCore::PopupMenuMac::updateFromElement):
+ (WebCore::PopupMenuMac::itemWritingDirectionIsNatural):
+ * platform/mac/SearchPopupMenuMac.h: Added.
+ * platform/mac/SearchPopupMenuMac.mm:
+ (WebCore::SearchPopupMenuMac::SearchPopupMenuMac):
+ (WebCore::SearchPopupMenuMac::popupMenu):
+ (WebCore::SearchPopupMenuMac::enabled):
+ (WebCore::SearchPopupMenuMac::saveRecentSearches):
+ (WebCore::SearchPopupMenuMac::loadRecentSearches):
+
+ qt:
+
+ * WebCore.pro:
+ * platform/qt/PopupMenuQt.cpp:
+ (WebCore::PopupMenuQt::PopupMenuQt):
+ (WebCore::PopupMenuQt::~PopupMenuQt):
+ (WebCore::PopupMenuQt::disconnectClient):
+ (WebCore::PopupMenuQt::show):
+ (WebCore::PopupMenuQt::hide):
+ (WebCore::PopupMenuQt::updateFromElement):
+ * platform/qt/PopupMenuQt.h: Added.
+ * platform/qt/QtAbstractWebPopup.h:
+ * platform/qt/SearchPopupMenuQt.cpp:
+ (WebCore::SearchPopupMenuQt::SearchPopupMenuQt):
+ (WebCore::SearchPopupMenuQt::popupMenu):
+ (WebCore::SearchPopupMenuQt::saveRecentSearches):
+ (WebCore::SearchPopupMenuQt::loadRecentSearches):
+ (WebCore::SearchPopupMenuQt::enabled):
+ * platform/qt/SearchPopupMenuQt.h: Added.
+
+ win:
+
+ * WebCore.vcproj/WebCore.vcproj:
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::PopupMenuWin):
+ (WebCore::PopupMenuWin::~PopupMenuWin):
+ (WebCore::PopupMenuWin::disconnectClient):
+ (WebCore::PopupMenuWin::popupClassName):
+ (WebCore::PopupMenuWin::show):
+ (WebCore::PopupMenuWin::hide):
+ (WebCore::PopupMenuWin::calculatePositionAndSize):
+ (WebCore::PopupMenuWin::setFocusedIndex):
+ (WebCore::PopupMenuWin::visibleItems):
+ (WebCore::PopupMenuWin::listIndexAtPoint):
+ (WebCore::PopupMenuWin::focusedIndex):
+ (WebCore::PopupMenuWin::focusFirst):
+ (WebCore::PopupMenuWin::focusLast):
+ (WebCore::PopupMenuWin::down):
+ (WebCore::PopupMenuWin::up):
+ (WebCore::PopupMenuWin::invalidateItem):
+ (WebCore::PopupMenuWin::clientRect):
+ (WebCore::PopupMenuWin::incrementWheelDelta):
+ (WebCore::PopupMenuWin::reduceWheelDelta):
+ (WebCore::PopupMenuWin::scrollToRevealSelection):
+ (WebCore::PopupMenuWin::updateFromElement):
+ (WebCore::PopupMenuWin::paint):
+ (WebCore::PopupMenuWin::valueChanged):
+ (WebCore::PopupMenuWin::invalidateScrollbarRect):
+ (WebCore::PopupMenuWin::registerClass):
+ (WebCore::PopupMenuWin::PopupMenuWndProc):
+ (WebCore::PopupMenuWin::wndProc):
+ * platform/win/PopupMenuWin.h: Added.
+ (WebCore::PopupMenuWin::client):
+ (WebCore::PopupMenuWin::scrollbar):
+ (WebCore::PopupMenuWin::itemHeight):
+ (WebCore::PopupMenuWin::windowRect):
+ (WebCore::PopupMenuWin::popupHandle):
+ (WebCore::PopupMenuWin::setWasClicked):
+ (WebCore::PopupMenuWin::wasClicked):
+ (WebCore::PopupMenuWin::setScrollOffset):
+ (WebCore::PopupMenuWin::scrollOffset):
+ (WebCore::PopupMenuWin::wheelDelta):
+ (WebCore::PopupMenuWin::scrollbarCapturingMouse):
+ (WebCore::PopupMenuWin::setScrollbarCapturingMouse):
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenuWin::SearchPopupMenuWin):
+ (WebCore::SearchPopupMenuWin::popupMenu):
+ (WebCore::SearchPopupMenuWin::enabled):
+ (WebCore::SearchPopupMenuWin::saveRecentSearches):
+ (WebCore::SearchPopupMenuWin::loadRecentSearches):
+ * platform/win/SearchPopupMenuWin.h: Added.
+
+ wx:
+
+ * platform/wx/PopupMenuWx.cpp:
+ (WebCore::PopupMenuWx::PopupMenuWx):
+ (WebCore::PopupMenuWx::~PopupMenuWx):
+ (WebCore::PopupMenuWx::disconnectClient):
+ (WebCore::PopupMenuWx::show):
+ (WebCore::PopupMenuWx::OnMenuItemSelected):
+ (WebCore::PopupMenuWx::hide):
+ (WebCore::PopupMenuWx::updateFromElement):
+ * platform/wx/PopupMenuWx.h: Added.
+ (WebCore::PopupMenuWx::client):
+ * platform/wx/SearchPopupMenuWx.cpp:
+ (WebCore::SearchPopupMenuWx::SearchPopupMenuWx):
+ (WebCore::SearchPopupMenuWx::saveRecentSearches):
+ (WebCore::SearchPopupMenuWx::loadRecentSearches):
+ (WebCore::SearchPopupMenuWx::enabled):
+ (WebCore::SearchPopupMenuWx::popupMenu):
+ * platform/wx/SearchPopupMenuWx.h: Added.
+
+
+
+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).
+
+ * GNUmakefile.am:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * loader/EmptyClients.h:
+ * page/Chrome.cpp:
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+ * platform/PopupMenu.h:
+ (WebCore::PopupMenu::create):
+ (WebCore::PopupMenu::disconnectClient):
+ (WebCore::PopupMenu::client):
+ (WebCore::PopupMenu::scrollbar):
+ (WebCore::PopupMenu::itemHeight):
+ (WebCore::PopupMenu::windowRect):
+ (WebCore::PopupMenu::popupHandle):
+ (WebCore::PopupMenu::setWasClicked):
+ (WebCore::PopupMenu::wasClicked):
+ (WebCore::PopupMenu::setScrollOffset):
+ (WebCore::PopupMenu::scrollOffset):
+ (WebCore::PopupMenu::wheelDelta):
+ (WebCore::PopupMenu::scrollbarCapturingMouse):
+ (WebCore::PopupMenu::setScrollbarCapturingMouse):
+ (WebCore::PopupMenu::isActive):
+ (WebCore::PopupMenu::scrollbarCornerPresent):
+ * platform/SearchPopupMenu.h:
+ (WebCore::SearchPopupMenu::create):
+ * platform/brew/PopupMenuBrew.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/brew/PopupMenuBrew.h: Removed.
+ * platform/brew/SearchPopupMenuBrew.cpp:
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/brew/SearchPopupMenuBrew.h: Removed.
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/chromium/PopupMenuChromium.h:
+ * platform/chromium/SearchPopupMenuChromium.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/chromium/SearchPopupMenuChromium.h: Removed.
+ * platform/efl/PopupMenuEfl.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/efl/PopupMenuEfl.h: Removed.
+ * platform/efl/SearchPopupMenuEfl.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/efl/SearchPopupMenuEfl.h: Removed.
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ (WebCore::PopupMenu::menuItemActivated):
+ (WebCore::PopupMenu::menuUnmapped):
+ (WebCore::PopupMenu::menuPositionFunction):
+ (WebCore::PopupMenu::menuRemoveItem):
+ * platform/gtk/PopupMenuGtk.h: Removed.
+ * platform/gtk/SearchPopupMenuGtk.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/gtk/SearchPopupMenuGtk.h: Removed.
+ * platform/haiku/PopupMenuHaiku.cpp:
+ (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/haiku/PopupMenuHaiku.h: Removed.
+ * platform/haiku/SearchPopupMenuHaiku.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/haiku/SearchPopupMenuHaiku.h: Removed.
+ * platform/mac/PopupMenuMac.h: Removed.
+ * platform/mac/PopupMenuMac.mm:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::clear):
+ (WebCore::PopupMenu::populate):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/mac/SearchPopupMenuMac.h: Removed.
+ * platform/mac/SearchPopupMenuMac.mm:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/qt/PopupMenuQt.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/qt/PopupMenuQt.h: Removed.
+ * platform/qt/QtAbstractWebPopup.h:
+ * platform/qt/SearchPopupMenuQt.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/qt/SearchPopupMenuQt.h: Removed.
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::popupClassName):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::calculatePositionAndSize):
+ (WebCore::PopupMenu::setFocusedIndex):
+ (WebCore::PopupMenu::visibleItems):
+ (WebCore::PopupMenu::listIndexAtPoint):
+ (WebCore::PopupMenu::focusedIndex):
+ (WebCore::PopupMenu::focusFirst):
+ (WebCore::PopupMenu::focusLast):
+ (WebCore::PopupMenu::down):
+ (WebCore::PopupMenu::up):
+ (WebCore::PopupMenu::invalidateItem):
+ (WebCore::PopupMenu::clientRect):
+ (WebCore::PopupMenu::incrementWheelDelta):
+ (WebCore::PopupMenu::reduceWheelDelta):
+ (WebCore::PopupMenu::scrollToRevealSelection):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ (WebCore::PopupMenu::paint):
+ (WebCore::PopupMenu::valueChanged):
+ (WebCore::PopupMenu::invalidateScrollbarRect):
+ (WebCore::PopupMenu::registerClass):
+ (WebCore::PopupMenu::PopupMenuWndProc):
+ (WebCore::PopupMenu::wndProc):
+ * platform/win/PopupMenuWin.h: Removed.
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::enabled):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ * platform/win/SearchPopupMenuWin.h: Removed.
+ * platform/wx/PopupMenuWx.cpp:
+ (WebCore::PopupMenu::PopupMenu):
+ (WebCore::PopupMenu::~PopupMenu):
+ (WebCore::PopupMenu::show):
+ (WebCore::PopupMenu::OnMenuItemSelected):
+ (WebCore::PopupMenu::hide):
+ (WebCore::PopupMenu::updateFromElement):
+ (WebCore::PopupMenu::itemWritingDirectionIsNatural):
+ * platform/wx/PopupMenuWx.h: Removed.
+ * platform/wx/SearchPopupMenuWx.cpp:
+ (WebCore::SearchPopupMenu::SearchPopupMenu):
+ (WebCore::SearchPopupMenu::saveRecentSearches):
+ (WebCore::SearchPopupMenu::loadRecentSearches):
+ (WebCore::SearchPopupMenu::enabled):
+ * platform/wx/SearchPopupMenuWx.h: Removed.
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::adjustInnerStyle):
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderMenuList.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::addSearchResult):
+ (WebCore::RenderTextControlSingleLine::showPopup):
+ (WebCore::RenderTextControlSingleLine::hidePopup):
+ (WebCore::RenderTextControlSingleLine::updateFromElement):
+ (WebCore::RenderTextControlSingleLine::valueChanged):
+ * rendering/RenderTextControlSingleLine.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
+
+ Classes PopupMenu and SearchPopupMenu have been made pure virtual.
+
+ * platform/PopupMenu.h:
+ (WebCore::PopupMenu::~PopupMenu):
+ * platform/SearchPopupMenu.h:
+ (WebCore::SearchPopupMenu::~SearchPopupMenu):
+
+ Classes RenderMenuList and RenderTexyControlSingleLine have been changed to use
+ the new pure virtual PopupMenu and SearchPopupMenu.
+
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::adjustInnerStyle):
+ (WebCore::RenderMenuList::showPopup):
+ * rendering/RenderMenuList.h:
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
+ (WebCore::RenderTextControlSingleLine::addSearchResult):
+ (WebCore::RenderTextControlSingleLine::showPopup):
+ (WebCore::RenderTextControlSingleLine::hidePopup):
+ (WebCore::RenderTextControlSingleLine::updateFromElement):
+ (WebCore::RenderTextControlSingleLine::valueChanged):
+ * rendering/RenderTextControlSingleLine.h:
+
+ Chrome and ChromeClient were made responsible for providing instances of classes
+ PopupMenu and SearchPopupMenu to its users.
+
+ * loader/EmptyClients.h:
+ (WebCore::EmptyPopupMenu::show):
+ (WebCore::EmptyPopupMenu::hide):
+ (WebCore::EmptyPopupMenu::updateFromElement):
+ (WebCore::EmptyPopupMenu::disconnectClient):
+ (WebCore::EmptySearchPopupMenu::popupMenu):
+ (WebCore::EmptySearchPopupMenu::saveRecentSearches):
+ (WebCore::EmptySearchPopupMenu::loadRecentSearches):
+ (WebCore::EmptySearchPopupMenu::enabled):
+ (WebCore::EmptyChromeClient::selectItemWritingDirectionIsNatural):
+ (WebCore::EmptyChromeClient::createPopupMenu):
+ (WebCore::EmptyChromeClient::createSearchPopupMenu):
+ * page/Chrome.cpp:
+ (WebCore::Chrome::selectItemWritingDirectionIsNatural):
+ (WebCore::Chrome::createPopupMenu):
+ (WebCore::Chrome::createSearchPopupMenu):
+ * page/Chrome.h:
+ * page/ChromeClient.h:
+
+ Original contents of files PopupMenu.h and SearchPopupMenu.h have been splited
+ in several files, two for each platform (PopupMenuXXX.h and SearchPopupMenuXXX.h).
+ Each of new the files contain the concrete classes that inherit form PopupMenu or
+ SearchPopupMenu and are specific for the corresponding platform.
+
+ brew:
+
+ * platform/brew/PopupMenuBrew.cpp:
+ (WebCore::PopupMenuBrew::PopupMenuBrew):
+ (WebCore::PopupMenuBrew::~PopupMenuBrew):
+ (WebCore::PopupMenuBrew::disconnectClient):
+ (WebCore::PopupMenuBrew::show):
+ (WebCore::PopupMenuBrew::hide):
+ (WebCore::PopupMenuBrew::updateFromElement):
+ * platform/brew/PopupMenuBrew.h: Added.
+ (WebCore::PopupMenuBrew::client):
+ * platform/brew/SearchPopupMenuBrew.cpp:
+ (WebCore::SearchPopupMenuBrew::saveRecentSearches):
+ (WebCore::SearchPopupMenuBrew::loadRecentSearches):
+ (WebCore::SearchPopupMenuBrew::SearchPopupMenuBrew):
+ (WebCore::SearchPopupMenuBrew::enabled):
+ (WebCore::SearchPopupMenuBrew::popupMenu):
+ * platform/brew/SearchPopupMenuBrew.h: Added.
+
+ chromium:
+
+ * WebCore.gypi:
+ * platform/chromium/PopupMenuChromium.cpp:
+ (WebCore::PopupMenuChromium::PopupMenuChromium):
+ (WebCore::PopupMenuChromium::~PopupMenuChromium):
+ (WebCore::PopupMenuChromium::show):
+ (WebCore::PopupMenuChromium::hide):
+ (WebCore::PopupMenuChromium::updateFromElement):
+ (WebCore::PopupMenuChromium::disconnectClient):
+ * platform/chromium/PopupMenuChromium.h:
+ (WebCore::PopupMenuChromium::client):
+ * platform/chromium/SearchPopupMenuChromium.cpp:
+ (WebCore::SearchPopupMenuChromium::SearchPopupMenuChromium):
+ (WebCore::SearchPopupMenuChromium::popupMenu):
+ (WebCore::SearchPopupMenuChromium::enabled):
+ (WebCore::SearchPopupMenuChromium::saveRecentSearches):
+ (WebCore::SearchPopupMenuChromium::loadRecentSearches):
+ * platform/chromium/SearchPopupMenuChromium.h: Added.
+
+ efl:
+
+ * platform/efl/PopupMenuEfl.cpp:
+ (WebCore::PopupMenuEfl::PopupMenuEfl):
+ (WebCore::PopupMenuEfl::~PopupMenuEfl):
+ (WebCore::PopupMenuEfl::show):
+ (WebCore::PopupMenuEfl::hide):
+ (WebCore::PopupMenuEfl::updateFromElement):
+ (WebCore::PopupMenuEfl::disconnectClient):
+ * platform/efl/PopupMenuEfl.h: Added.
+ (WebCore::PopupMenuEfl::client):
+ * platform/efl/SearchPopupMenuEfl.cpp:
+ (WebCore::SearchPopupMenuEfl::SearchPopupMenuEfl):
+ (WebCore::SearchPopupMenuEfl::popupMenu):
+ (WebCore::SearchPopupMenuEfl::saveRecentSearches):
+ (WebCore::SearchPopupMenuEfl::loadRecentSearches):
+ (WebCore::SearchPopupMenuEfl::enabled):
+ * platform/efl/SearchPopupMenuEfl.h: Added.
+
+ gtk:
+
+ * GNUmakefile.am:
+ * platform/gtk/PopupMenuGtk.cpp:
+ (WebCore::PopupMenuGtk::PopupMenuGtk):
+ (WebCore::PopupMenuGtk::~PopupMenuGtk):
+ (WebCore::PopupMenuGtk::show):
+ (WebCore::PopupMenuGtk::hide):
+ (WebCore::PopupMenuGtk::updateFromElement):
+ (WebCore::PopupMenuGtk::disconnectClient):
+ (WebCore::PopupMenuGtk::menuItemActivated):
+ (WebCore::PopupMenuGtk::menuUnmapped):
+ (WebCore::PopupMenuGtk::menuPositionFunction):
+ (WebCore::PopupMenuGtk::menuRemoveItem):
+ * platform/gtk/PopupMenuGtk.h: Added.
+ (WebCore::PopupMenuGtk::client):
+ * platform/gtk/SearchPopupMenuGtk.cpp:
+ (WebCore::SearchPopupMenuGtk::SearchPopupMenuGtk):
+ (WebCore::SearchPopupMenuGtk::popupMenu):
+ (WebCore::SearchPopupMenuGtk::saveRecentSearches):
+ (WebCore::SearchPopupMenuGtk::loadRecentSearches):
+ (WebCore::SearchPopupMenuGtk::enabled):
+ * platform/gtk/SearchPopupMenuGtk.h: Added.
+
+ haiku:
+
+ * platform/haiku/PopupMenuHaiku.cpp:
+ (WebCore::HaikuPopup::HaikuPopup):
+ (WebCore::HaikuPopup::~HaikuPopup):
+ (WebCore::PopupMenuHaiku::PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::~PopupMenuHaiku):
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::show):
+ (WebCore::PopupMenuHaiku::hide):
+ (WebCore::PopupMenuHaiku::updateFromElement):
+ * platform/haiku/PopupMenuHaiku.h: Added.
+ (WebCore::PopupMenuHaiku::disconnectClient):
+ (WebCore::PopupMenuHaiku::client):
+ * platform/haiku/SearchPopupMenuHaiku.cpp:
+ (WebCore::SearchPopupMenuHaiku::SearchPopupMenuHaiku):
+ (WebCore::SearchPopupMenuHaiku::saveRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::loadRecentSearches):
+ (WebCore::SearchPopupMenuHaiku::enabled):
+ (WebCore::SearchPopupMenuHaiku::popupMenu):
+ * platform/haiku/SearchPopupMenuHaiku.h: Added.
+
+ mac:
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mac/PopupMenuMac.h: Added.
+ (WebCore::PopupMenuMac::disconnectClient):
+ (WebCore::PopupMenuMac::client):
+ * platform/mac/PopupMenuMac.mm:
+ (WebCore::PopupMenuMac::PopupMenuMac):
+ (WebCore::PopupMenuMac::~PopupMenuMac):
+ (WebCore::PopupMenuMac::clear):
+ (WebCore::PopupMenuMac::populate):
+ (WebCore::PopupMenuMac::show):
+ (WebCore::PopupMenuMac::hide):
+ (WebCore::PopupMenuMac::updateFromElement):
+ (WebCore::PopupMenuMac::itemWritingDirectionIsNatural):
+ * platform/mac/SearchPopupMenuMac.h: Added.
+ * platform/mac/SearchPopupMenuMac.mm:
+ (WebCore::SearchPopupMenuMac::SearchPopupMenuMac):
+ (WebCore::SearchPopupMenuMac::popupMenu):
+ (WebCore::SearchPopupMenuMac::enabled):
+ (WebCore::SearchPopupMenuMac::saveRecentSearches):
+ (WebCore::SearchPopupMenuMac::loadRecentSearches):
+
+ qt:
+
+ * WebCore.pro:
+ * platform/qt/PopupMenuQt.cpp:
+ (WebCore::PopupMenuQt::PopupMenuQt):
+ (WebCore::PopupMenuQt::~PopupMenuQt):
+ (WebCore::PopupMenuQt::disconnectClient):
+ (WebCore::PopupMenuQt::show):
+ (WebCore::PopupMenuQt::hide):
+ (WebCore::PopupMenuQt::updateFromElement):
+ * platform/qt/PopupMenuQt.h: Added.
+ * platform/qt/QtAbstractWebPopup.h:
+ * platform/qt/SearchPopupMenuQt.cpp:
+ (WebCore::SearchPopupMenuQt::SearchPopupMenuQt):
+ (WebCore::SearchPopupMenuQt::popupMenu):
+ (WebCore::SearchPopupMenuQt::saveRecentSearches):
+ (WebCore::SearchPopupMenuQt::loadRecentSearches):
+ (WebCore::SearchPopupMenuQt::enabled):
+ * platform/qt/SearchPopupMenuQt.h: Added.
+
+ win:
+
+ * WebCore.vcproj/WebCore.vcproj:
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::PopupMenuWin):
+ (WebCore::PopupMenuWin::~PopupMenuWin):
+ (WebCore::PopupMenuWin::disconnectClient):
+ (WebCore::PopupMenuWin::popupClassName):
+ (WebCore::PopupMenuWin::show):
+ (WebCore::PopupMenuWin::hide):
+ (WebCore::PopupMenuWin::calculatePositionAndSize):
+ (WebCore::PopupMenuWin::setFocusedIndex):
+ (WebCore::PopupMenuWin::visibleItems):
+ (WebCore::PopupMenuWin::listIndexAtPoint):
+ (WebCore::PopupMenuWin::focusedIndex):
+ (WebCore::PopupMenuWin::focusFirst):
+ (WebCore::PopupMenuWin::focusLast):
+ (WebCore::PopupMenuWin::down):
+ (WebCore::PopupMenuWin::up):
+ (WebCore::PopupMenuWin::invalidateItem):
+ (WebCore::PopupMenuWin::clientRect):
+ (WebCore::PopupMenuWin::incrementWheelDelta):
+ (WebCore::PopupMenuWin::reduceWheelDelta):
+ (WebCore::PopupMenuWin::scrollToRevealSelection):
+ (WebCore::PopupMenuWin::updateFromElement):
+ (WebCore::PopupMenuWin::paint):
+ (WebCore::PopupMenuWin::valueChanged):
+ (WebCore::PopupMenuWin::invalidateScrollbarRect):
+ (WebCore::PopupMenuWin::registerClass):
+ (WebCore::PopupMenuWin::PopupMenuWndProc):
+ (WebCore::PopupMenuWin::wndProc):
+ * platform/win/PopupMenuWin.h: Added.
+ (WebCore::PopupMenuWin::client):
+ (WebCore::PopupMenuWin::scrollbar):
+ (WebCore::PopupMenuWin::itemHeight):
+ (WebCore::PopupMenuWin::windowRect):
+ (WebCore::PopupMenuWin::popupHandle):
+ (WebCore::PopupMenuWin::setWasClicked):
+ (WebCore::PopupMenuWin::wasClicked):
+ (WebCore::PopupMenuWin::setScrollOffset):
+ (WebCore::PopupMenuWin::scrollOffset):
+ (WebCore::PopupMenuWin::wheelDelta):
+ (WebCore::PopupMenuWin::scrollbarCapturingMouse):
+ (WebCore::PopupMenuWin::setScrollbarCapturingMouse):
+ * platform/win/SearchPopupMenuWin.cpp:
+ (WebCore::SearchPopupMenuWin::SearchPopupMenuWin):
+ (WebCore::SearchPopupMenuWin::popupMenu):
+ (WebCore::SearchPopupMenuWin::enabled):
+ (WebCore::SearchPopupMenuWin::saveRecentSearches):
+ (WebCore::SearchPopupMenuWin::loadRecentSearches):
+ * platform/win/SearchPopupMenuWin.h: Added.
+
+ wx:
+
+ * platform/wx/PopupMenuWx.cpp:
+ (WebCore::PopupMenuWx::PopupMenuWx):
+ (WebCore::PopupMenuWx::~PopupMenuWx):
+ (WebCore::PopupMenuWx::disconnectClient):
+ (WebCore::PopupMenuWx::show):
+ (WebCore::PopupMenuWx::OnMenuItemSelected):
+ (WebCore::PopupMenuWx::hide):
+ (WebCore::PopupMenuWx::updateFromElement):
+ * platform/wx/PopupMenuWx.h: Added.
+ (WebCore::PopupMenuWx::client):
+ * platform/wx/SearchPopupMenuWx.cpp:
+ (WebCore::SearchPopupMenuWx::SearchPopupMenuWx):
+ (WebCore::SearchPopupMenuWx::saveRecentSearches):
+ (WebCore::SearchPopupMenuWx::loadRecentSearches):
+ (WebCore::SearchPopupMenuWx::enabled):
+ (WebCore::SearchPopupMenuWx::popupMenu):
+ * platform/wx/SearchPopupMenuWx.h: Added.
+
+
+
+2010-07-31 David Kilzer <ddkilzer@apple.com>
+
+ <http://webkit.org/b/43300> Simplify variables in *.xcconfig files after adding iOS support
+
+ Reviewed by Darin Adler.
+
+ * Configurations/WebCore.xcconfig: Extracted
+ PRODUCTION_FRAMEWORKS_DIR variable.
+
+2010-07-31 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ HTMLStyleElement/SVGStyleElement need to share more code
+ https://bugs.webkit.org/show_bug.cgi?id=43293
+
+ Simplify HTMLStyleElement/SVGStyleElement. They look identically now, as all code is shared in StyleElement.
+ Doesn't affect any tests.
+
+ * dom/StyleElement.cpp:
+ (WebCore::StyleElement::StyleElement): Take createdByParser & Document arguments, to share the line number extraction logic. Store it in m_lineNumber.
+ (WebCore::StyleElement::insertedIntoDocument): Moved addStyleSheetCandidateNode here, to share code between HTML/SVGStyleElement.
+ (WebCore::StyleElement::removedFromDocument): Same for removeStyleSheetCandidateNode.
+ (WebCore::StyleElement::childrenChanged): Introduced new helper function.
+ (WebCore::StyleElement::finishParsingChildren): Ditto.
+ (WebCore::StyleElement::process): Use stored m_lineNumber, avoids a parameter.
+ (WebCore::StyleElement::createSheet): No need to call the virtual setLoading() function, just store m_loading in StyleElement, and set it from here.
+ (WebCore::StyleElement::isLoading): Introduced new helper function.
+ (WebCore::StyleElement::sheetLoaded): Ditto.
+ * dom/StyleElement.h:
+ * html/HTMLStyleElement.cpp:
+ (WebCore::HTMLStyleElement::HTMLStyleElement): Pass Document & createdByParser arguments to StyleElement.
+ (WebCore::HTMLStyleElement::finishParsingChildren): Delegate work to StyleElement.
+ (WebCore::HTMLStyleElement::insertedIntoDocument): Ditto.
+ (WebCore::HTMLStyleElement::removedFromDocument): Ditto.
+ (WebCore::HTMLStyleElement::childrenChanged): Ditto.
+ * html/HTMLStyleElement.h:
+ (WebCore::HTMLStyleElement::isLoading): Ditto.
+ (WebCore::HTMLStyleElement::sheetLoaded): Ditto.
+ * svg/SVGStyleElement.cpp:
+ (WebCore::SVGStyleElement::SVGStyleElement): Pass Document & createdByParser arguments to StyleElement.
+ (WebCore::SVGStyleElement::finishParsingChildren): Delegate work to StyleElement.
+ (WebCore::SVGStyleElement::insertedIntoDocument): Ditto.
+ (WebCore::SVGStyleElement::removedFromDocument): Ditto.
+ (WebCore::SVGStyleElement::childrenChanged): Ditto.
+ * svg/SVGStyleElement.h:
+ (WebCore::SVGStyleElement::isLoading): Ditto.
+ (WebCore::SVGStyleElement::sheetLoaded): Ditto.
+
+2010-07-31 Kinuko Yasuda <kinuko@chromium.org>
+
+ Unreviewed. Attempt to fix release build failure.
+
+ Having 'fail:' label without goto statement generates a compiler
+ warning that causes a build failure in release build.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+
+2010-07-31 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by Nikolas Zimmermann.
+
+ Fix 'bool' in bindings/scripts/test/TestObj.
+
+ * bindings/scripts/test/CPP/WebDOMTestObj.cpp:
+ (WebDOMTestObj::CREATE):
+ (WebDOMTestObj::setCREATE):
+ * bindings/scripts/test/CPP/WebDOMTestObj.h:
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
+ (webkit_dom_test_obj_get_create):
+ (webkit_dom_test_obj_set_create):
+ (webkit_dom_test_obj_set_property):
+ (webkit_dom_test_obj_get_property):
+ (webkit_dom_test_obj_class_init):
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjCreate):
+ (WebCore::setJSTestObjCreate):
+ * bindings/scripts/test/ObjC/DOMTestObj.h:
+ * bindings/scripts/test/ObjC/DOMTestObj.mm:
+ (-[DOMTestObj CREATE]):
+ (-[DOMTestObj setCREATE:]):
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::CREATEAttrGetter):
+ (WebCore::TestObjInternal::CREATEAttrSetter):
+
+2010-07-30 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by Dumitru Daniliuc.
+
+ Add idl and mock implementation for HTML5 FileSystem API
+ https://bugs.webkit.org/show_bug.cgi?id=43134
+
+ Add idl for: FileSystem (as DOMFileSystem), Entry, Flags, Metadata,
+ FileSystemCallback, EntryCallback and ErrorCallback.
+ http://dev.w3.org/2009/dap/file-system/file-dir-sys.html
+
+ They are added only for Mac and chromium.
+
+ Tests will be added when we expose the entry point and add implementation.
+
+ * DerivedSources.make:
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+
+ * storage/DOMFileSystem.cpp: Added.
+ * storage/DOMFileSystem.h: Added.
+ * storage/DOMFileSystem.idl: Added.
+ * storage/Entry.cpp: Added.
+ * storage/Entry.h: Added.
+ * storage/Entry.idl: Added.
+ * storage/EntryCallback.h: Added.
+ * storage/EntryCallback.idl: Added.
+ * storage/ErrorCallback.h: Added.
+ * storage/ErrorCallback.idl: Added.
+ * storage/FileSystemCallback.h: Added.
+ * storage/FileSystemCallback.idl: Added.
+ * storage/Flags.h: Added.
+ * storage/Flags.idl: Added.
+ * storage/Metadata.h: Added.
+ * storage/Metadata.idl: Added.
+ * storage/MetadataCallback.h: Added.
+ * storage/MetadataCallback.idl: Added.
+
+ * bindings/scripts/CodeGenerator.pm: Added special case handlings for generating setter/getter names for CREATE/EXCLUSIVE attributes in Flags.idl.
+
+ * bindings/scripts/test/TestObj.idl: Updated.
+ * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated.
+ * bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated.
+ * bindings/scripts/test/CPP/WebDOMTestObj.h: Updated.
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Updated.
+ * bindings/scripts/test/GObject/WebKitDOMTestObj.h: Updated.
+ * bindings/scripts/test/JS/JSTestObj.cpp: Updated.
+ * bindings/scripts/test/JS/JSTestObj.h: Updated.
+ * bindings/scripts/test/ObjC/DOMTestObj.h: Updated.
+ * bindings/scripts/test/ObjC/DOMTestObj.mm: Updated.
+
+2010-07-30 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64408.
+ http://trac.webkit.org/changeset/64408
+ https://bugs.webkit.org/show_bug.cgi?id=43292
+
+ Causing failed tests on Chromium canaries due to wrong history
+ item counts (Requested by atwilson on #webkit).
+
+ * loader/RedirectScheduler.cpp:
+ (WebCore::RedirectScheduler::scheduleRedirect):
+ (WebCore::RedirectScheduler::mustLockBackForwardList):
+ (WebCore::RedirectScheduler::scheduleLocationChange):
+ (WebCore::RedirectScheduler::scheduleFormSubmission):
+ * loader/RedirectScheduler.h:
+
+2010-07-30 Dan Bernstein <mitz@apple.com>
+
+ Reviewed by Darin Adler.
+
+ <rdar://problem/8257783> Short documents may print a second blank page
+ https://bugs.webkit.org/show_bug.cgi?id=43271
+
+ Test: printing/stretch-to-view-height.html
+
+ * WebCore.exp.in: Export Frame::forceLayoutForPagination(), replacing forceLayoutWithPageWidthRange().
+ * page/Frame.cpp:
+ (WebCore::Frame::setPrinting): Now takes a page width and height and a maximum shrink factor and passes
+ them down to forceLayoutForPagination().
+ * page/Frame.h:
+ (WebCore::Frame::):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::reset): Initialize m_pageHeight.
+ (WebCore::FrameView::forceLayoutForPagination): Renamed forceLayoutWithPageWidthRange() to this and
+ changed it to take a page width and height and a maximum shrink factor. Sets m_pageHeight, which is
+ queried by RenderBox::calcHeight() during layout. If the given pageHeight is 0, m_pageHeight is set
+ to the visible height, retaining the behavior before this change.
+ * page/FrameView.h:
+ (WebCore::FrameView::pageHeight): Added this accessor.
+ * page/PrintContext.cpp:
+ (WebCore::PrintContext::begin): Added a height parameter, used when calling setPrinting().
+ (WebCore::PrintContext::end): Updated for setPrinting() changes.
+ (WebCore::PrintContext::pageNumberForElement): Account for shrink-to-fit.
+ (WebCore::PrintContext::pageProperty): Pass 0 for the height, retaining current behavior.
+ (WebCore::PrintContext::numberOfPages): Account for shrink-to-fit.
+ (WebCore::PrintContext::spoolAllPagesWithBoundaries): Pass the page width to begin().
+ * page/PrintContext.h:
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::calcHeight): When printing, use FrameView::pageHeight() as the basis for
+ viewport-relative heights.
+
+2010-07-30 Mihai Parparita <mihaip@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Session history should skip over JS redirects
+ https://bugs.webkit.org/show_bug.cgi?id=42861
+
+ Lock the back/forward list for location changes that happen before the
+ onload event fires that are not the result of user gestures.
+
+ Test: fast/history/gesture-before-onload.html and updated expectations
+ for http/tests/history tests that used to fail.
+
+ * loader/RedirectScheduler.cpp:
+ (WebCore::RedirectScheduler::scheduleRedirect):
+ (WebCore::RedirectScheduler::mustLockBackForwardList):
+ (WebCore::RedirectScheduler::scheduleLocationChange):
+ (WebCore::RedirectScheduler::scheduleFormSubmission):
+ * loader/RedirectScheduler.h:
+
+2010-07-30 Matthew Delaney <mdelaney@apple.com>
+
+ Reviewed by Darin Adler.
+
+ ctx.clearRect improperly clears shadow
+ https://bugs.webkit.org/show_bug.cgi?id=43213
+
+ Tests: canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
+ canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
+ canvas/philip/tests/2d.clearRect+fillRect.basic.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault):
+ Added a new method to wipe out all context attributes to their defaults.
+ (WebCore::CanvasRenderingContext2D::clearRect):
+ Updated clearRect to ignore shadow, alpha, and global composite attributes
+ when clearing the input rect to match the canvas spec.
+ * html/canvas/CanvasRenderingContext2D.h:
+
+2010-07-30 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by Jian Li.
+
+ Decouple FileThread from FileStream to support generic file-related async tasks
+ https://bugs.webkit.org/show_bug.cgi?id=43135
+
+ No new tests as this doesn't change any functionality.
+
+ * html/FileThread.cpp:
+ (WebCore::FileThread::stop):
+ (WebCore::SameInstancePredicate::SameFilePredicate):
+ (WebCore::SameInstancePredicate::operator()):
+ (WebCore::FileThread::unscheduleTasksInternal):
+ * html/FileThread.h:
+ (WebCore::FileThread::create):
+ (WebCore::FileThread::Task::instance):
+ (WebCore::FileThread::Task::Task):
+ * html/FileThreadTask.h: Changed all templates to take any type as a callee instance.
+ (WebCore::createFileThreadTask):
+
+2010-07-30 Darin Fisher <darin@chromium.org>
+
+ Reviewed by Darin Adler.
+
+ Eliminate BackForwardList::pushStateItem
+ https://bugs.webkit.org/show_bug.cgi?id=43282
+
+ The layout test was previously disabled because of the assertion being
+ hit in BackForwardList::pushStateItem. That assertion revealed the need
+ for this patch.
+
+ Test: fast/loader/stateobjects/pushstate-in-iframe.html
+
+ * history/BackForwardList.h:
+ * history/BackForwardListChromium.cpp:
+ * history/BackForwardListImpl.cpp:
+ * history/BackForwardListImpl.h:
+
+ * loader/HistoryController.cpp: Move the logic, of adding a null state
+ object to the HistoryItem that was previously the current HistoryItem, to
+ HistoryController::pushState from BackForwardList::pushStateItem. The
+ BackForwardList was the wrong place for that logic since it lacked convenient
+ access to the target HistoryItem. It is just given the top-most HistoryItem
+ corresponding to the new navigation.
+
+ (WebCore::HistoryController::updateBackForwardListClippedAtTarget):
+ (WebCore::HistoryController::pushState):
+
+2010-07-30 Luiz Agostini <luiz.agostini@openbossa.org>
+
+ Reviewed by Simon Fraser.
+
+ Enabling view modes to all platforms
+ https://bugs.webkit.org/show_bug.cgi?id=37505
+
+ View mode media feature implementation as specified in http://www.w3.org/TR/view-mode.
+
+ The view mode media feature layout tests are stil skipped for all platforms except Qt
+ because of the lack of support of LayoutTestController in those platforms.
+
+ Test: fast/media/view-mode-media-feature.html
+
+ * css/MediaFeatureNames.h:
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::view_modeMediaFeatureEval):
+ * page/ChromeClient.h:
+ * page/Page.cpp:
+ (WebCore::Page::Page):
+ (WebCore::createViewModesSet):
+ (WebCore::Page::setViewMode):
+ * page/Page.h:
+ (WebCore::Page::viewMode):
+
+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
+
+ Part 4 - Client Notification when the Quota is Reached
+
+ Notify the WebKit client when the per-origin quota is reached
+ via a delegate method reachedApplicationCacheOriginQuota.
+
+ Call the delegate method when the quota is reached.
+
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
+ (WebCore::ApplicationCacheGroup::didFinishLoading):
+ (WebCore::ApplicationCacheGroup::didReachOriginQuota):
+ (WebCore::ApplicationCacheGroup::cacheUpdateFailedDueToOriginQuota):
+ (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
+ (WebCore::ApplicationCacheGroup::scheduleReachedOriginQuotaCallback):
+ * loader/appcache/ApplicationCacheGroup.h:
+
+ Some minor refactoring to access more quota information
+ without repeating code. Such as origin usage, and creating
+ an origin record.
+
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ (WebCore::ApplicationCacheStorage::usageForOrigin):
+ (WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
+ (WebCore::ApplicationCacheStorage::store):
+ (WebCore::ApplicationCacheStorage::ensureOriginRecord):
+ * loader/appcache/ApplicationCacheStorage.h:
+
+ Boilerplate. Exports and definition of the delegate method.
+
+ * WebCore.OfflineWebApplications.exp:
+ * loader/EmptyClients.h:
+ (WebCore::EmptyChromeClient::reachedApplicationCacheOriginQuota):
+ * page/ChromeClient.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
+
+ Part 3 - Refactor storeNewestCache to allow Failure Reason Output
+
+ Storing can result in an error in a number of reasons. Previously
+ the reasons were global and binary and could be determined by
+ checking ApplicationCacheStorage state. Now, with per-origin quotas
+ a per-origin quota can cause a failure that is not in global state.
+ Current failure reasons are:
+
+ OriginQuotaReached = per-origin quota reached, no storage is allowed.
+ TotalQuotaReached = database quota reached, no storage is allowed.
+ DiskOrOperationFailure = SQL error such as failed prepare or query. Not expected to happen.
+
+ This part provides an implementation of storeNewestCache for those
+ that care about the failure reason, and not just if it succeeded
+ or not. This moves the final origin quota check into the transaction.
+
+ * loader/appcache/ApplicationCache.h: style fix for forwarding headers.
+ * loader/appcache/ApplicationCacheGroup.cpp:
+ (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): move origin quota check into storeNewestCache's SQL transaction.
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ (WebCore::ApplicationCacheStorage::storeNewestCache): old implementation calls the new implementation ignoring failure reason.
+ (WebCore::ApplicationCacheStorage::storeNewestCache): new implementation provides a failure reason in case of failure.
+ * loader/appcache/ApplicationCacheStorage.h:
+ (WebCore::ApplicationCacheStorage::): added FailureReason enum and storeNewestCache allowing it.
+
+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
+
+ Part 2 - Update Schema and enforce Per-Origin Quotas
+
+ Added an "Origins" table to the application cache databases.
+ This, like the Database's Origins table, is a list of origin
+ and quota pairs. Origins records are added as soon as they are
+ needed, and deleted only when the ApplicationCacheStorage is
+ emptied. This means Origins records persist even after all
+ caches for that origin may be deleted. The "CacheGroups" table
+ now has a foreign key column "origin" which relates to the
+ "Origins" table.
+
+ To enforce the quotas, remaining quota space is checked at
+ the start of update as an estimate and at the end before
+ inserting. Currently, reaching the quota limit will simply
+ cause an update error. A later part will provide a
+ notification to the client to allow an action, and refactor
+ the final quota limit check into a transaction.
+
+ Respect the quota during the update process. And cause
+ the update process to fail when the quota is reached.
+
+ * loader/appcache/ApplicationCacheGroup.cpp: added loading counter, counts bytes as they load
+ (WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
+ (WebCore::ApplicationCacheGroup::didReceiveData):
+ (WebCore::ApplicationCacheGroup::didFinishLoading):
+ (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
+ * loader/appcache/ApplicationCacheGroup.h: added security origin, based on the manifest URL
+ (WebCore::ApplicationCacheGroup::origin): accessor
+
+ Updates the schema of the database tables as described
+ above. Handle other SQL operations such as checking the
+ remaining space and inserting and deleting Origins records.
+
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ (WebCore::ApplicationCacheStorage::quotaForOrigin): query for the quota of an origin, may return the default origin quota if it didn't exist.
+ (WebCore::ApplicationCacheStorage::remainingSizeForOriginExcludingCache): calculate the remaining size in a quota for an origin, possibly excluding a cache.
+ (WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin): persistent update.
+ (WebCore::ApplicationCacheStorage::openDatabase): updated schema for CachesGroups, added new table Origins.
+ (WebCore::ApplicationCacheStorage::empty): wipe Origins table as well.
+ (WebCore::ApplicationCacheStorage::unknownQuota): constant to mean unknown quota
+
+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
+
+ Part 1 - Add Total and Per-Origin Quota Preferences.
+
+ Allow the application cache total size to be a preference, and
+ add a new preference for the default per-origin quota.
+
+ Handle the per-origin quota in the global cacheStorage() object.
+ The per-origin quota will be used in a later part, this just
+ handles interaction with it from a client.
+
+ * loader/appcache/ApplicationCacheStorage.cpp:
+ (WebCore::ApplicationCacheStorage::setDefaultOriginQuota): setter
+ (WebCore::ApplicationCacheStorage::ApplicationCacheStorage): default to "noQuota" on construction
+ * loader/appcache/ApplicationCacheStorage.h:
+ (WebCore::ApplicationCacheStorage::noQuota): constant to mean unlimited storage
+ (WebCore::ApplicationCacheStorage::defaultOriginQuota): accessor
+
+ Move around some exports around for Offline Web Applications.
+
+ * WebCore.exp.in: Added OFFLINE_WEB_APPLICATIONS exports.
+
+2010-07-30 Andy Estes <aestes@apple.com>
+
+ Reviewed by David Kilzer.
+
+ Add Xcode support for compiling WebKit against iOS SDKs.
+ https://bugs.webkit.org/show_bug.cgi?id=42796
+
+ * Configurations/Base.xcconfig:
+ * Configurations/DebugRelease.xcconfig:
+ * Configurations/FeatureDefines.xcconfig:
+ * Configurations/Version.xcconfig:
+ * Configurations/WebCore.xcconfig:
+
+2010-07-30 James Robinson <jamesr@chromium.org>
+
+ Compile fix: fix a typo in forward declaration, add EmptyClients impl.
+
+ * loader/EmptyClients.h:
+ (WebCore::EmptyChromeClient::getOnscreenGLES2Context):
+ (WebCore::EmptyChromeClient::getOffscreenGLES2Context):
+ * page/ChromeClient.h:
+
+2010-07-30 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Move GLES2 context manipulation to ChromeClient.h and put it behind the right #if guard
+ https://bugs.webkit.org/show_bug.cgi?id=43281
+
+ These calls were initially put in ChromeClientChromium, but they aren't chromium specific.
+ In theory any port that could create the proper OpenGL ES 2 contexts could implement
+ these functions. Also moves the calls to be behind the correct #if guard.
+
+ * page/ChromeClient.h:
+ * page/chromium/ChromeClientChromium.h:
+
+2010-07-30 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by David Levin.
+
+ Interrupt all DB operations when the worker is terminating.
+ https://bugs.webkit.org/show_bug.cgi?id=42843
+
+ Tests: fast/workers/storage/interrupt-database-sync.html
+ fast/workers/storage/interrupt-database.html
+
+ * bindings/js/JSCustomVoidCallback.cpp:
+ (WebCore::JSCustomVoidCallback::~JSCustomVoidCallback): If the
+ destructor is called on the context thread, delete m_data directly
+ instead of posting a task to do that. We need to do that to make
+ sure that all JS objects are destroyed before
+ WorkerThreadShutdownFinishTask (in WorkerThread.cpp) calls
+ WorkerContext::clearScript().
+
+ * bindings/scripts/CodeGeneratorJS.pm: Same change as above, for
+ all auto-generated callbacks.
+
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback): Updated the
+ expectations for run-bindings-tests.
+
+ * platform/sql/SQLiteDatabase.cpp: Added the ability to interrupt
+ all DB operations in progress, unless the database was closed or
+ is being closed. Unlike sqlite3_interrupt(),
+ SQLiteDatabase::interrupt() is sticky: once it's called, trying to
+ run any statement on that database will fail with a
+ SQLITE_INTERRUPT error code.
+ (WebCore::SQLiteDatabase::SQLiteDatabase):
+ (WebCore::SQLiteDatabase::close):
+ (WebCore::SQLiteDatabase::interrupt):
+ (WebCore::SQLiteDatabase::isInterrupted):
+
+ * platform/sql/SQLiteDatabase.h: Added a mutex that can used by
+ SQLiteStatement to check if the database was interrupted.
+ (WebCore::SQLiteDatabase::databaseMutex):
+
+ * platform/sql/SQLiteStatement.cpp: Changed prepare() and step()
+ to check if the database was interrupted, before trying to prepare
+ or run the statement. The other methods don't need to hold on to
+ the DB lock while running, because they're fast, so we don't need
+ to interrupt them.
+ (WebCore::SQLiteStatement::prepare):
+ (WebCore::SQLiteStatement::step):
+
+ * storage/AbstractDatabase.cpp: Made SQLiteDatabase::interrupt()
+ and isInterrupted() visible to WebSQLDatabases classes.
+ (WebCore::AbstractDatabase::interrupt):
+ (WebCore::AbstractDatabase::isInterrupted):
+ * storage/AbstractDatabase.h:
+
+ * storage/DatabaseTracker.cpp: Added a method to interrupt all
+ databases in a given context.
+ (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
+ * storage/DatabaseTracker.h:
+
+ * storage/SQLStatement.cpp: Changed the exception/error reported
+ when a statement is interrupted.
+ (WebCore::SQLStatement::execute):
+ * storage/SQLStatementSync.cpp:
+ (WebCore::SQLStatementSync::execute):
+
+ * storage/SQLTransaction.cpp: Changed the code to release the
+ callback objects as soon as they're not needed.
+ (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
+ Changed this method to not schedule the next transaction step when
+ the database is interrupted.
+ (WebCore::SQLTransaction::performNextStep):
+ (WebCore::SQLTransaction::performPendingCallback):
+ (WebCore::SQLTransaction::deliverTransactionCallback):
+ (WebCore::SQLTransaction::postflightAndCommit):
+ (WebCore::SQLTransaction::deliverTransactionErrorCallback):
+ (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
+ * storage/SQLTransaction.h:
+
+ * storage/chromium/DatabaseTrackerChromium.cpp: Added a method to
+ interrupt all databases in a given context.
+ (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
+
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::stop): Added a call to
+ DatabaseTracker::interruptAllDatabasesForContext().
+
+2010-07-30 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Darin Adler.
+
+ connect-compositing-iframe2.html test sometimes shows blank iframe content
+ https://bugs.webkit.org/show_bug.cgi?id=42046
+
+ Hooking up compositing iframes requires setNeedsStyleRecalc(SyntheticStyleChange) to
+ always result in a call to RenderLayer::styleChanged(). However, the semantics of
+ setNeedsStyleRecalc() was that each call would overwrite the existing styleChangeType,
+ allowing a "lesser" style change to override a "greater" one. In the test content,
+ SyntheticStyleChange was being replaced by FullStyleChange when the classname changed.
+ This resulted in RenderLayer::styleChanged() not being called.
+
+ Fix by changing the behavior of setNeedsStyleRecalc() to only touch the style change
+ type if a "lesser" change is being replaced with a "greater" one. This required adding
+ a new clearNeedsStyleRecalc() method to reset the style change type to NoStyleChange.
+
+ In addition, in Node::setNeedsStyleRecalc(), only propagate the childNeedsStyleRecalc
+ up the parent change if the node was not already needing recalc. In order to fix issues
+ with attaching, this required new call to clearNeedsStyleRecalc() at the end of attach().
+
+ * manual-tests/compositing/missing-iframe-contents.html: Added.
+ * manual-tests/compositing/resources/composited-subframe.html: Copied from LayoutTests/compositing/iframes/resources/composited-subframe.html.
+
+ * dom/Document.cpp:
+ (WebCore::Document::recalcStyle): Call clearNeedsStyleRecalc().
+ * dom/Element.cpp:
+ (WebCore::Element::recalcStyle): Call clearNeedsStyleRecalc().
+
+ * dom/Node.h:
+ (WebCore::Node::clearNeedsStyleRecalc): New method.
+ * dom/Node.cpp:
+ (WebCore::Node::setNeedsStyleRecalc): Only call setStyleChange() if the change type
+ is greater than the current change type.
+ (WebCore::Node::attach): After attaching, we can call clearNeedsStyleRecalc().
+
+ * dom/Text.cpp:
+ (WebCore::Text::recalcStyle): Call clearNeedsStyleRecalc().
+ * html/HTMLFrameSetElement.cpp:
+ (WebCore::HTMLFrameSetElement::recalcStyle): Call clearNeedsStyleRecalc().
+
+2010-07-30 W. James MacLean <wjmaclean@google.com>
+
+ Reviewed by Nikolas Zimmermann.
+
+ SVG - numeric overflow for very large elements
+ https://bugs.webkit.org/show_bug.cgi?id=25645
+
+ Two of the expected test outputs were incorrect now that parsing of large values
+ is handled correctly.
+ - Revised FloatRect to remove bad float-to-int conversions in enclosingIntRect()
+ - Revised _parseNumber to do right-to-left float-based parsing of input value
+
+ Test: svg/custom/massive-coordinates.svg
+
+ * platform/graphics/FloatRect.cpp:
+ (WebCore::safeFloatToInt):
+ (WebCore::enclosingIntRect):
+ * svg/SVGParserUtilities.cpp:
+ (WebCore::_parseNumber):
+
+2010-07-30 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ [chromium] Make the GLES2 texture map generic and teach ImageSkia and ImageBufferSkia about GLES2
+ https://bugs.webkit.org/show_bug.cgi?id=43218
+
+ This makes the GLES2Canvas' TextureHashMap key on void* instead of NativeImagePtr
+ to make it easier to use with other backends. It also teaches ImageSkia how
+ to draw to a GLES2Canvas instead of a skia buffer.
+
+ No change in functionality (yet), no new tests.
+
+ * platform/graphics/chromium/GLES2Canvas.cpp:
+ (WebCore::GLES2Canvas::GLES2Canvas):
+ (WebCore::GLES2Canvas::createTexture):
+ (WebCore::GLES2Canvas::getTexture):
+ * platform/graphics/chromium/GLES2Canvas.h:
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::getUnmultipliedImageData):
+ (WebCore::ImageBuffer::getPremultipliedImageData):
+ * platform/graphics/skia/ImageSkia.cpp:
+ (WebCore::drawBitmapGLES2):
+ (WebCore::BitmapImage::draw):
+ (WebCore::BitmapImageSingleFrameSkia::draw):
+
+2010-07-30 Yong Li <yoli@rim.com>
+
+ Reviewed by Darin Adler.
+
+ Implement SVGScriptElement::shouldExecuteAsJavaScript() otherwise
+ SVGScriptElement cannot run when XHTMLMP is enabled.
+ https://bugs.webkit.org/show_bug.cgi?id=43267
+
+ No test needed, because it fails all SVG <script> tests when XHTMLMP is on.
+
+ * svg/SVGScriptElement.cpp:
+ (WebCore::SVGScriptElement::shouldExecuteAsJavaScript):
+ * svg/SVGScriptElement.h:
+
+2010-07-30 Chris Fleizach <cfleizach@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Style errors in Navigator.h
+ https://bugs.webkit.org/show_bug.cgi?id=43262
+
+ Fixing style changes. No new tests.
+
+ * page/Navigator.h:
+ (WebCore::Navigator::create):
+ (WebCore::Navigator::frame):
+ (WebCore::Navigator::optionalGeolocation):
+
+2010-07-27 Darin Fisher <darin@chromium.org>
+
+ Reviewed by Brady Eidson.
+
+ History.pushState() + navigation operates on top frame when called from
+ nested context
+ https://bugs.webkit.org/show_bug.cgi?id=43080
+
+ Test: fast/loader/stateobjects/pushstate-in-iframe.html
+
+ * loader/HistoryController.cpp:
+ (WebCore::HistoryController::pushState): createTreeItem should be
+ called on the top-most HistoryController so that we properly clone
+ the HistoryItem tree starting at the root node.
+
+2010-07-30 fsamuel@chromium.org <fsamuel@chromium.org>
+
+ Reviewed by Dimitri Glazkov.
+
+ Expand SVG Attribute Macros
+ https://bugs.webkit.org/show_bug.cgi?id=43254
+
+ Expanded SVG Attribute Macros to reduce debugging headache.
+
+ No change in behavior, so no new tests.
+
+ * rendering/style/SVGRenderStyle.h: Expanded and removed references to SVG_RS_DEFINE_ATTRIBUTE* macros.
+ * rendering/style/SVGRenderStyleDefs.h: Removed definitons for expanded macros.
+
+2010-07-30 Kinuko Yasuda <kinuko@chromium.org>
+
+ Reviewed by Dumitru Daniliuc.
+
+ Add callback arguments support to binding code generator scripts
+ https://bugs.webkit.org/show_bug.cgi?id=43130
+
+ Tests: bindings/scripts/test/TestObj.idl
+
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/CodeGeneratorV8.pm:
+
+ * bindings/scripts/test/JS/JSTestObj.cpp:
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
+ (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
+ * bindings/scripts/test/JS/JSTestObj.h:
+ * bindings/scripts/test/TestObj.idl:
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::TestObjInternal::methodWithCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithNonCallbackArgAndCallbackArgCallback):
+ (WebCore::TestObjInternal::methodWithCallbackAndOptionalArgCallback):
+ (WebCore::ConfigureV8TestObjTemplate):
+
+2010-07-30 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Implement NPN_InvokeDefault
+ https://bugs.webkit.org/show_bug.cgi?id=43266
+
+ * bindings/js/JSPluginElementFunctions.cpp:
+ (WebCore::isPluginElement):
+ Add convenience function.
+
+ (WebCore::pluginInstance):
+ Call isPluginElement.
+
+ (WebCore::pluginScriptObjectFromPluginViewBase):
+ Given an JSHTMLElement, ask the PluginViewBase for the scriptable object.
+
+ (WebCore::pluginScriptObject):
+ Call isPluginElement. Call pluginScriptObjectFromPluginViewBase.
+
+ (WebCore::callPlugin):
+ Get the script object, assemble the arguments and call "call" directly.
+
+ (WebCore::runtimeObjectGetCallData):
+ Try to get the script object from the PluginViewBase first.
+
+ * plugins/PluginViewBase.h:
+ (WebCore::PluginViewBase::scriptObject):
+ Remove ExecState parameter.
+
+2010-07-30 Adam Roben <aroben@apple.com>
+
+ Roll our r64361 and r64363
+
+ We can't make these changes until QuartzCore.lib is included in
+ WebKitSupportLibrary.
+
+2010-07-30 Adam Roben <aroben@apple.com>
+
+ Remove uses of CACFContextRef and CARender* from WebCore
+
+ These types are now wrapped in a WKCACFContext type exported by
+ WebKitSystemInterface.
+
+ Fixes <http://webkit.org/b/43244>.
+
+ Reviewed by Sam Weinig.
+
+ * platform/graphics/win/WKCACFContextFlusher.cpp:
+ (WebCore::WKCACFContextFlusher::addContext):
+ (WebCore::WKCACFContextFlusher::removeContext):
+ (WebCore::WKCACFContextFlusher::flushAllContexts):
+ * platform/graphics/win/WKCACFContextFlusher.h:
+ Changed to use WKCACFContext. We don't retain/release the context when
+ putting it into/taking it out of the set. WKCACFContext is not a
+ ref-counted type, so we can't retain/release it, but the
+ retain/release was also unnecessary as WKCACFLayerRenderer calls
+ removeContext before the context is destroyed.
+
+ * platform/graphics/win/WKCACFLayer.cpp:
+ (WebCore::WKCACFLayer::becomeRootLayerForContext):
+ * platform/graphics/win/WKCACFLayer.h:
+ Changed to use WKCACFContext.
+
+ * platform/graphics/win/WKCACFLayerRenderer.cpp:
+ (WebCore::WKCACFLayerRenderer::didFlushContext):
+ (WebCore::WKCACFLayerRenderer::WKCACFLayerRenderer):
+ (WebCore::WKCACFLayerRenderer::~WKCACFLayerRenderer):
+ (WebCore::WKCACFLayerRenderer::layerTreeDidChange):
+ (WebCore::WKCACFLayerRenderer::createRenderer):
+ (WebCore::WKCACFLayerRenderer::destroyRenderer):
+ (WebCore::WKCACFLayerRenderer::render): Also replaced uses of
+ CGSRegion with WebKitSystemInterface functions/types.
+ (WebCore::WKCACFLayerRenderer::resetDevice):
+ * platform/graphics/win/WKCACFLayerRenderer.h:
+ Replaced our CACFContextRef, CARenderContext, and CARenderOGLContext
+ with a single WKCACFContext, which wraps all three. We hold a bare
+ pointer to it and destroy it in our destructor.
+
+2010-07-30 Adam Roben <aroben@apple.com>
+
+ Remove knowledge of WKCACFContextFlusher from WKCACFLayer
+
+ Fixes <http://webkit.org/b/43248> WKCACFLayer shouldn't know about
+ WKCACFContextFlusher
+
+ Reviewed by Sam Weinig.
+
+ * platform/graphics/win/WKCACFLayer.cpp:
+ (WebCore::WKCACFLayer::setNeedsCommit): Don't bother calling to
+ WKCACFContextFlusher. Our root layer will do this for us.
+
+ * platform/graphics/win/WKCACFLayerRenderer.cpp:
+ (WebCore::WKCACFRootLayer::setNeedsRender): Changed to call the new
+ layerTreeDidChange function.
+ (WebCore::WKCACFLayerRenderer::layerTreeDidChange): Added. Tells
+ WKCACFContextFlusher that the context has changed, and schedules a
+ render.
+
+ * platform/graphics/win/WKCACFLayerRenderer.h: Added
+ layerTreeDidChange.
+
+2010-07-29 Jeremy Orlow <jorlow@chromium.org>
+
+ Reviewed by Steve Block.
+
+ Rename all the IDBIndex classses to match the latest conventions
+ https://bugs.webkit.org/show_bug.cgi?id=43190
+
+ No functionality has changed.
+
+ IDBIndexRequest -> IDBIndex in the spec. So that's the first change.
+ IDBIndex was the name of our interface class though, so we need to rename
+ it to get it out of the way. While we're at it, we might as well clean
+ up the naming in general to make things more clear. In the future, we're
+ going to need another layer (yes, yuck) which will be shared by the async
+ and sync classes which will do caching and other optimizations. That will
+ then connect to the backend. We also added "Interface" to make it more
+ clear that's what the file/class is.
+
+ Existing layout tests are enough since nothing should change as far as JavaScript can see.
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::idbIndex):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ (WebCore::IDBAny::):
+ * storage/IDBCallbacks.h:
+ * storage/IDBIndex.cpp: Added.
+ (WebCore::IDBIndex::IDBIndex):
+ (WebCore::IDBIndex::~IDBIndex):
+ * storage/IDBIndex.h:
+ (WebCore::IDBIndex::create):
+ (WebCore::IDBIndex::name):
+ (WebCore::IDBIndex::keyPath):
+ (WebCore::IDBIndex::unique):
+ * storage/IDBIndex.idl: Added.
+ * storage/IDBIndexBackendImpl.cpp: Added.
+ (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
+ (WebCore::IDBIndexBackendImpl::~IDBIndexBackendImpl):
+ * storage/IDBIndexBackendImpl.h: Added.
+ (WebCore::IDBIndexBackendImpl::create):
+ (WebCore::IDBIndexBackendImpl::name):
+ (WebCore::IDBIndexBackendImpl::keyPath):
+ (WebCore::IDBIndexBackendImpl::unique):
+ * storage/IDBIndexBackendInterface.h: Added.
+ (WebCore::IDBIndexBackendInterface::~IDBIndexBackendInterface):
+ * storage/IDBIndexImpl.cpp: Removed.
+ * storage/IDBIndexImpl.h: Removed.
+ * storage/IDBIndexRequest.cpp: Removed.
+ * storage/IDBIndexRequest.h: Removed.
+ * storage/IDBIndexRequest.idl: Removed.
+ * storage/IDBObjectStore.h:
+ * storage/IDBObjectStoreImpl.cpp:
+ (WebCore::IDBObjectStoreImpl::createIndex):
+ (WebCore::IDBObjectStoreImpl::index):
+ * storage/IDBObjectStoreImpl.h:
+ * storage/IDBObjectStoreRequest.cpp:
+ (WebCore::IDBObjectStoreRequest::index):
+ * storage/IDBObjectStoreRequest.h:
+ * storage/IDBObjectStoreRequest.idl:
+ * storage/IDBRequest.cpp:
+ (WebCore::IDBRequest::onSuccess):
+ * storage/IDBRequest.h:
+
+2010-07-30 Rafael Antognolli <antognolli@profusion.mobi>
+
+ Reviewed by Antonio Gomes.
+
+ [EFL] Add library version and soname to EFL generated libraries and binary.
+ https://bugs.webkit.org/show_bug.cgi?id=43212
+
+ Add version and soname to libwebcore.so in case of linking as shared
+ library.
+
+ No new feature, so no new tests.
+
+ * CMakeLists.txt:
+
+2010-07-30 Steve Block <steveblock@google.com>
+
+ Reviewed by Steve Block.
+
+ Add LayoutTestController methods to test DeviceOrientation
+ https://bugs.webkit.org/show_bug.cgi?id=39589
+
+ This patch does not hook up the new LayoutTestController method to WebKit
+ for any platform. This will be done in later patches.
+ https://bugs.webkit.org/show_bug.cgi?id=43181 tracks this for Mac.
+
+ Test: fast/dom/DeviceOrientation/basic-operation.html
+
+ * Android.mk:
+ * CMakeLists.txt:
+ * GNUmakefile.am:
+ * WebCore.exp.in:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/DeviceOrientationClient.h:
+ (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
+ * dom/DeviceOrientationController.cpp:
+ (WebCore::DeviceOrientationController::DeviceOrientationController):
+ * dom/DeviceOrientationEvent.cpp:
+ * platform/mock/DeviceOrientationClientMock.cpp: Added.
+ (WebCore::DeviceOrientationClientMock::DeviceOrientationClientMock):
+ (WebCore::DeviceOrientationClientMock::setController):
+ (WebCore::DeviceOrientationClientMock::startUpdating):
+ (WebCore::DeviceOrientationClientMock::stopUpdating):
+ (WebCore::DeviceOrientationClientMock::setOrientation):
+ (WebCore::DeviceOrientationClientMock::timerFired):
+ * platform/mock/DeviceOrientationClientMock.h: Added.
+ (WebCore::DeviceOrientationClientMock::lastOrientation):
+
+2010-07-30 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Jeremy Orlow.
+
+ Add a mock in WebCore for testing speech input
+ https://bugs.webkit.org/show_bug.cgi?id=42603
+
+ Layout tests will be added in a subsequent patch using this mock.
+
+ * Android.mk:
+ * GNUmakefile.am:
+ * WebCore.gypi:
+ * WebCore.pro:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/mock/SpeechInputClientMock.cpp: Added.
+ (WebCore::SpeechInputClientMock::SpeechInputClientMock):
+ (WebCore::SpeechInputClientMock::startRecognition):
+ (WebCore::SpeechInputClientMock::stopRecording):
+ (WebCore::SpeechInputClientMock::cancelRecognition):
+ (WebCore::SpeechInputClientMock::setRecognitionResult):
+ (WebCore::SpeechInputClientMock::timerFired):
+ * platform/mock/SpeechInputClientMock.h: Added.
+
+2010-07-30 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ Optimize SVGResources memory usage
+ https://bugs.webkit.org/show_bug.cgi?id=43236
+
+ Instead of storing pointers to all possible resources that could be applied to an element, group them in three categories:
+ clipper/filter/masker, marker-start/marker-mid/marker-end, and fill/stroke.
+
+ Only build the cached resources data for elements where the properties can be applied to. Maintain a static list of tagnames
+ for each of the three categories, to avoid doing unncessary work.
+
+ Doesn't affect any tests.
+
+ * rendering/SVGResources.cpp:
+ (WebCore::SVGResources::SVGResources):
+ (WebCore::clipperFilterMaskerTags):
+ (WebCore::markerTags):
+ (WebCore::fillAndStrokeTags):
+ (WebCore::SVGResources::buildCachedResources):
+ (WebCore::SVGResources::invalidateClient):
+ (WebCore::SVGResources::resourceDestroyed):
+ (WebCore::SVGResources::buildSetOfResources):
+ (WebCore::SVGResources::setClipper):
+ (WebCore::SVGResources::resetClipper):
+ (WebCore::SVGResources::setFilter):
+ (WebCore::SVGResources::resetFilter):
+ (WebCore::SVGResources::setMarkerStart):
+ (WebCore::SVGResources::resetMarkerStart):
+ (WebCore::SVGResources::setMarkerMid):
+ (WebCore::SVGResources::resetMarkerMid):
+ (WebCore::SVGResources::setMarkerEnd):
+ (WebCore::SVGResources::resetMarkerEnd):
+ (WebCore::SVGResources::setMasker):
+ (WebCore::SVGResources::resetMasker):
+ (WebCore::SVGResources::setFill):
+ (WebCore::SVGResources::resetFill):
+ (WebCore::SVGResources::setStroke):
+ (WebCore::SVGResources::resetStroke):
+ (WebCore::SVGResources::dump):
+ * rendering/SVGResources.h:
+ (WebCore::SVGResources::clipper):
+ (WebCore::SVGResources::filter):
+ (WebCore::SVGResources::markerStart):
+ (WebCore::SVGResources::markerMid):
+ (WebCore::SVGResources::markerEnd):
+ (WebCore::SVGResources::masker):
+ (WebCore::SVGResources::fill):
+ (WebCore::SVGResources::stroke):
+ (WebCore::SVGResources::ClipperFilterMaskerData::ClipperFilterMaskerData):
+ (WebCore::SVGResources::ClipperFilterMaskerData::create):
+ (WebCore::SVGResources::MarkerData::MarkerData):
+ (WebCore::SVGResources::MarkerData::create):
+ (WebCore::SVGResources::FillStrokeData::FillStrokeData):
+ (WebCore::SVGResources::FillStrokeData::create):
+
+2010-07-26 Andrei Popescu <andreip@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ [IndexedDB] IndexedDatabase should be called IDBFactory.
+ https://bugs.webkit.org/show_bug.cgi?id=42967
+
+ Rename IndexedDatabase to IDBFactory to match the specification.
+
+ Also implement the following new naming convention:
+ IDBFoo IDL interfaces are implemented using IDBFoo C++ classes.
+ IDBFoo objects have pointers to IDBFooBackendInterface objects.
+ IDBFooBackendInterface is implemented by IDBFooBackendImpl and
+ IDBFooBackendProxy (for Chromium).
+
+ No new tests needed, just renaming.
+
+ * Android.derived.jscbindings.mk:
+ * Android.derived.v8bindings.mk:
+ * Android.mk:
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * GNUmakefile.am:
+ * WebCore.gyp/WebCore.gyp:
+ * WebCore.gypi:
+ * WebCore.pri:
+ * WebCore.pro:
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSIDBAnyCustom.cpp:
+ (WebCore::toJS):
+ * bindings/v8/custom/V8IDBAnyCustom.cpp:
+ (WebCore::toV8):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::clear):
+ (WebCore::DOMWindow::indexedDB):
+ * page/DOMWindow.h:
+ * page/DOMWindow.idl:
+ * page/PageGroup.cpp:
+ (WebCore::PageGroup::idbFactory):
+ * page/PageGroup.h:
+ * platform/chromium/ChromiumBridge.h:
+ * storage/IDBAny.cpp:
+ (WebCore::IDBAny::idbFactory):
+ (WebCore::IDBAny::set):
+ * storage/IDBAny.h:
+ (WebCore::IDBAny::):
+ * storage/IDBDatabaseRequest.cpp:
+ * storage/IDBFactory.cpp: Added.
+ (WebCore::IDBFactory::IDBFactory):
+ (WebCore::IDBFactory::~IDBFactory):
+ (WebCore::IDBFactory::open):
+ * storage/IDBFactory.h: Added.
+ (WebCore::IDBFactory::create):
+ * storage/IDBFactory.idl: Added.
+ * storage/IDBFactoryBackendInterface.cpp: Added.
+ (WebCore::IDBFactoryBackendInterface::create):
+ * storage/IDBFactoryBackendInterface.h: Added.
+ (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
+ * storage/IDBFactoryBackendImpl.cpp: Added.
+ (WebCore::IDBFactoryBackendImpl::create):
+ (WebCore::IDBFactoryBackendImpl::IDBFactoryBackendImpl):
+ (WebCore::IDBFactoryBackendImpl::~IDBFactoryBackendImpl):
+ (WebCore::IDBFactoryBackendImpl::open):
+ * storage/IDBFactoryBackendImpl.h: Added.
+ * storage/IDBKeyRange.cpp:
+ (WebCore::IDBKeyRange::only):
+ (WebCore::IDBKeyRange::leftBound):
+ (WebCore::IDBKeyRange::rightBound):
+ (WebCore::IDBKeyRange::bound):
+ * storage/IDBKeyRange.h:
+ * storage/IDBKeyRange.idl:
+ * storage/IndexedDatabase.cpp: Removed.
+ * storage/IndexedDatabase.h: Removed.
+ * storage/IndexedDatabaseImpl.cpp: Removed.
+ * storage/IndexedDatabaseImpl.h: Removed.
+ * storage/IndexedDatabaseRequest.cpp: Removed.
+ * storage/IndexedDatabaseRequest.h: Removed.
+ * storage/IndexedDatabaseRequest.idl: Removed.
+ * storage/chromium/IDBFactoryBackendInterface.cpp: Added.
+ (WebCore::IDBFactoryBackendInterface::create):
+ * storage/chromium/IndexedDatabase.cpp: Removed.
+
+2010-07-29 Alexander Pavlov <apavlov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Crash on refresh with a comment selected in the Elements panel
+ https://bugs.webkit.org/show_bug.cgi?id=43183
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::nodeForPath):
+ * inspector/front-end/ElementsPanel.js:
+ (WebInspector.ElementsPanel.prototype.reset):
+
+2010-07-30 Renata Hodovan <reni@inf.u-szeged.hu>
+
+ Reviewed by Nikolas Zimmermann.
+
+ feTurbulence is not implemented.
+ https://bugs.webkit.org/show_bug.cgi?id=5864
+
+ This code is based on the previous implementation of
+ Dirk Schulze, extended with some modification and optimization.
+
+ LayoutTests: Updating expected values for turbulence filter.
+ svg/W3C-SVG-1.1/filters-turb-01-f.svg
+
+ * svg/SVGFETurbulenceElement.cpp:
+ (WebCore::SVGFETurbulenceElement::build):
+ * svg/graphics/filters/SVGFETurbulence.cpp:
+ (WebCore::FETurbulence::FETurbulence):
+ (WebCore::FETurbulence::create):
+ (WebCore::FETurbulence::PaintingData::PaintingData):
+ (WebCore::FETurbulence::PaintingData::random):
+ (WebCore::smoothCurve):
+ (WebCore::linearInterpolation):
+ (WebCore::FETurbulence::initPaint):
+ (WebCore::checkNoise):
+ (WebCore::FETurbulence::noise2D):
+ (WebCore::Noise::if):
+ (WebCore::FETurbulence::calculateTurbulenceValueForPoint):
+ (WebCore::FETurbulence::apply):
+ * svg/graphics/filters/SVGFETurbulence.h:
+ (WebCore::):
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ Cairo: Need to implement GraphicsContext::clipConvexPolygon()
+ https://bugs.webkit.org/show_bug.cgi?id=41308
+
+ Implement clipConvexPolygon for Cairo ports and enable new path based
+ borders for that port as well.
+
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::addConvexPolygonToContext): Add this helper method.
+ (WebCore::GraphicsContext::drawConvexPolygon): Use the new addConvexPolygonToContext helper.
+ (WebCore::GraphicsContext::clipConvexPolygon): Implement this method.
+ * rendering/RenderObject.h: Enable path based borders for Cairo.
+
+2010-07-29 Ryosuke Niwa <rniwa@webkit.org>
+
+ Reviewed by Darin Adler.
+
+ InsertOrderedList does not switch the list type properly when it has an inner list.
+ https://bugs.webkit.org/show_bug.cgi?id=43166
+
+ The bug was caused by forcedCreateList was not set to true when the start and the end
+ of the selection lies in the same list. Added selectionHasListOfType to fix this problem.
+
+ WebKit used not to convert the outer lists even when the list is fully selected.
+ Corrected this behavior by converting the entire list at once when the list is fully selected.
+ To decide whether or not a list is fully selected, added currentSelection argument to doApplyForSingleParagraph.
+
+ Tests: editing/execCommand/switch-list-type-with-inner-list.html
+ editing/execCommand/switch-list-type-with-orphaned-li.html
+
+ * editing/InsertListCommand.cpp:
+ (WebCore::InsertListCommand::mergeWithNeighboringLists): Extracted the code to merge lists.
+ (WebCore::InsertListCommand::selectionHasListOfType): attachment.cgi
+ (WebCore::InsertListCommand::doApply): Calls selectionHasListOfType.
+ (WebCore::InsertListCommand::doApplyForSingleParagraph): See above.
+ (WebCore::InsertListCommand::listifyParagraph): Calls mergeWithNeighboringLists.
+ * editing/InsertListCommand.h:
+ * editing/htmlediting.cpp:
+ (WebCore::canMergeLists): Ensures lists being merged are instances of HTMLElement.
+ (WebCore::isNodeVisiblyContainedWithin): Works properly when one end is inside the range.
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ [Cairo] Bring behavior of paths on the Cairo GraphicsContext into line with the CoreGraphics port
+ https://bugs.webkit.org/show_bug.cgi?id=41732
+
+ Do not apply paths added to the Cairo GraphicsContext, until they are used.
+ This prevents drawing routines such as fillRect from interacting with any
+ path which callers are constructing on the GraphicsContext.
+
+ This behavior is necessary to close bug https://bugs.webkit.org/show_bug.cgi?id=41308
+ so tests for that issue will test this fix.
+
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::appendPathToCairoContext): Added. A helper method which adds a path
+ to a native Cairo context.
+ (WebCore::setPathOnCairoContext): Added. Like appendPathToCairoContext, but clears the
+ existing path first.
+ (WebCore::appendWebCorePathToCairoContext): Added. Like appendPathToCairoContext, but
+ operates on a WebCore path.
+ (WebCore::fillCurrentCairoPath): Added. Helper which fills the current cairo context path.
+ (WebCore::strokeCurrentCairoPath): Added. Helper which strokes the current cairo context path.
+ (WebCore::GraphicsContext::drawEllipse): Only clear the Cairo path if cairo_stroke
+ was not called, because cairo_stroke implicitly clears the path.
+ (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
+ (WebCore::GraphicsContext::fillPath): Copy the path from m_pendingPath to the context
+ and clear m_pendingPath, instead of relying on the pre-existing context path. Do the
+ actual fill via the new helper.
+ (WebCore::GraphicsContext::strokePath): Ditto.
+ (WebCore::GraphicsContext::drawPath): Ditto.
+ (WebCore::GraphicsContext::fillRect): Use the new fillCurrentCairoPath helper.
+ (WebCore::GraphicsContext::drawFocusRing): Use the new appendWebCorePathToCairoContext helper instead
+ of addPath (which will blow away any path callers are building).
+ (WebCore::GraphicsContext::addInnerRoundedRectClip): Use the new appendWebCorePathToCairoContext helper instead
+ of addPath (which will blow away any path callers are building).
+ (WebCore::GraphicsContext::strokeRect): Use the new strokeCurrentCairoPath helper.
+ (WebCore::GraphicsContext::beginPath): Clear out m_pendingPath here instead of the main native context.
+ (WebCore::GraphicsContext::addPath): Add the path to m_pendingPath instead of the main native context.
+ Also ensure that the transformation matrix of the m_pendingPath is equal to that of the main
+ cairo context.
+ (WebCore::GraphicsContext::clipOut): Use the appendWebCorePathToCairoContext helper here.
+ (WebCore::GraphicsContext::fillRoundedRect): Ditto and remove an unnecessary beginPath call.
+ * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Add a new m_pendingPath member.
+
+2010-07-29 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r64313.
+ http://trac.webkit.org/changeset/64313
+ https://bugs.webkit.org/show_bug.cgi?id=43233
+
+ Some Chromium bots are not happy with it for some unknown
+ reason. (Requested by dumi on #webkit).
+
+ * bindings/js/JSCustomVoidCallback.cpp:
+ (WebCore::JSCustomVoidCallback::~JSCustomVoidCallback):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback):
+ * platform/sql/SQLiteDatabase.cpp:
+ (WebCore::SQLiteDatabase::SQLiteDatabase):
+ (WebCore::SQLiteDatabase::close):
+ (WebCore::SQLiteDatabase::lock):
+ (WebCore::SQLiteDatabase::unlock):
+ * platform/sql/SQLiteDatabase.h:
+ * platform/sql/SQLiteStatement.cpp:
+ (WebCore::SQLiteStatement::prepare):
+ (WebCore::SQLiteStatement::step):
+ * storage/AbstractDatabase.cpp:
+ * storage/AbstractDatabase.h:
+ * storage/DatabaseTracker.cpp:
+ * storage/DatabaseTracker.h:
+ * storage/SQLStatement.cpp:
+ (WebCore::SQLStatement::execute):
+ * storage/SQLStatementSync.cpp:
+ (WebCore::SQLStatementSync::execute):
+ * storage/SQLTransaction.cpp:
+ (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
+ (WebCore::SQLTransaction::performNextStep):
+ (WebCore::SQLTransaction::performPendingCallback):
+ (WebCore::SQLTransaction::deliverTransactionCallback):
+ (WebCore::SQLTransaction::postflightAndCommit):
+ (WebCore::SQLTransaction::deliverTransactionErrorCallback):
+ (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
+ * storage/SQLTransaction.h:
+ * storage/chromium/DatabaseTrackerChromium.cpp:
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::stop):
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Unreviewed, rolling out r64318.
+ http://trac.webkit.org/changeset/64318
+ https://bugs.webkit.org/show_bug.cgi?id=41732
+
+ This change broke many tests.
+
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::drawEllipse):
+ (WebCore::GraphicsContext::drawConvexPolygon):
+ (WebCore::GraphicsContext::fillPath):
+ (WebCore::GraphicsContext::strokePath):
+ (WebCore::GraphicsContext::drawPath):
+ (WebCore::GraphicsContext::drawFocusRing):
+ (WebCore::GraphicsContext::addInnerRoundedRectClip):
+ (WebCore::GraphicsContext::beginPath):
+ (WebCore::GraphicsContext::addPath):
+ (WebCore::GraphicsContext::clipOut):
+ (WebCore::GraphicsContext::fillRoundedRect):
+ * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ [Cairo] Bring behavior of paths on the Cairo GraphicsContext into line with the CoreGraphics port
+ https://bugs.webkit.org/show_bug.cgi?id=41732
+
+ Do not apply paths added to the Cairo GraphicsContext, until they are used.
+ This prevents drawing routines such as fillRect from interacting with any
+ path which callers are constructing on the GraphicsContext.
+
+ This behavior is necessary to close bug https://bugs.webkit.org/show_bug.cgi?id=41308
+ so tests for that issue will test this fix.
+
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::appendPathToCairoContext): Added. A helper method which adds a path
+ to a native Cairo context.
+ (WebCore::setPathOnCairoContext): Added. Like appendPathToCairoContext, but clears the
+ existing path first.
+ (WebCore::appendWebCorePathToCairoContext): Added. Like appendPathToCairoContext, but
+ operates on a WebCore path.
+ (WebCore::GraphicsContext::drawEllipse): Only clear the Cairo path if cairo_stroke
+ was not called, because cairo_stroke implicitly clears the path.
+ (WebCore::GraphicsContext::drawConvexPolygon): Ditto.
+ (WebCore::GraphicsContext::fillPath): Copy the path from m_pendingPath to the context
+ and clear m_pendingPath, instead of relying on the pre-existing context path.
+ (WebCore::GraphicsContext::strokePath): Ditto.
+ (WebCore::GraphicsContext::drawPath): Ditto.
+ (WebCore::GraphicsContext::drawFocusRing): Use the new appendWebCorePathToCairoContext helper instead
+ of addPath (which will blow away any path callers are building).
+ (WebCore::GraphicsContext::addInnerRoundedRectClip): Use the new appendWebCorePathToCairoContext helper instead
+ of addPath (which will blow away any path callers are building).
+ (WebCore::GraphicsContext::beginPath): Clear out m_pendingPath here instead of the main native context.
+ (WebCore::GraphicsContext::addPath): Add the path to m_pendingPath instead of the main native context.
+ Also ensure that the transformation matrix of the m_pendingPath is equal to that of the main
+ cairo context.
+ (WebCore::GraphicsContext::clipOut): Use the appendWebCorePathToCairoContext helper here.
+ (WebCore::GraphicsContext::fillRoundedRect): Ditto and remove an unnecessary beginPath call.
+ * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Add a new m_pendingPath member.
+
+2010-07-29 Martin Robinson <mrobinson@igalia.com>
+
+ Reviewed by Dirk Schulze.
+
+ [Cairo] Remove setStrokeStyle workaround for InlineTextBoxes
+ https://bugs.webkit.org/show_bug.cgi?id=43136
+
+ Remove workaround added in https://bugs.webkit.org/show_bug.cgi?id=15659
+ to fix stroke style for InlineTextBox underlines.
+
+ No new tests as this should not change functionality.
+
+ * platform/graphics/cairo/GraphicsContextCairo.cpp:
+ (WebCore::GraphicsContext::drawLineForText): Remove old workaround.
+
+2010-07-28 Dumitru Daniliuc <dumi@chromium.org>
+
+ Reviewed by David Levin.
+
+ Interrupt all DB operations when the worker is terminating.
+ https://bugs.webkit.org/show_bug.cgi?id=42843
+
+ Tests: fast/workers/storage/interrupt-database-sync.html
+ fast/workers/storage/interrupt-database.html
+
+ * bindings/js/JSCustomVoidCallback.cpp:
+ (WebCore::JSCustomVoidCallback::~JSCustomVoidCallback): If the
+ destructor is called on the context thread, delete m_data directly
+ instead of posting a task to do that. We need to do that to make
+ sure that all JS objects are destroyed before
+ WorkerThreadShutdownFinishTask (in WorkerThread.cpp) calls
+ WorkerContext::clearScript().
+
+ * bindings/scripts/CodeGeneratorJS.pm: Same change as above, for
+ all auto-generated callbacks.
+
+ * bindings/scripts/test/JS/JSTestCallback.cpp:
+ (WebCore::JSTestCallback::~JSTestCallback): Updated the
+ expectations for run-bindings-tests.
+
+ * platform/sql/SQLiteDatabase.cpp: Added the ability to interrupt
+ all DB operations in progress, unless the database was closed or
+ is being closed. Unlike sqlite3_interrupt(),
+ SQLiteDatabase::interrupt() is sticky: once it's called, trying to
+ run any statement on that database will fail with a
+ SQLITE_INTERRUPT error code.
+ (WebCore::SQLiteDatabase::SQLiteDatabase):
+ (WebCore::SQLiteDatabase::close):
+ (WebCore::SQLiteDatabase::interrupt):
+ (WebCore::SQLiteDatabase::isInterrupted):
+
+ * platform/sql/SQLiteDatabase.h: Added a mutex that can used by
+ SQLiteStatement to check if the database was interrupted.
+ (WebCore::SQLiteDatabase::databaseMutex):
+
+ * platform/sql/SQLiteStatement.cpp: Changed prepare() and step()
+ to check if the database was interrupted, before trying to prepare
+ or run the statement. The other methods don't need to hold on to
+ the DB lock while running, because they're fast, so we don't need
+ to interrupt them.
+ (WebCore::SQLiteStatement::prepare):
+ (WebCore::SQLiteStatement::step):
+
+ * storage/AbstractDatabase.cpp: Made SQLiteDatabase::interrupt()
+ and isInterrupted() visible to WebSQLDatabases classes.
+ (WebCore::AbstractDatabase::interrupt):
+ (WebCore::AbstractDatabase::isInterrupted):
+ * storage/AbstractDatabase.h:
+
+ * storage/DatabaseTracker.cpp: Added a method to interrupt all
+ databases in a given context.
+ (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
+ * storage/DatabaseTracker.h:
+
+ * storage/SQLStatement.cpp: Changed the exception/error reported
+ when a statement is interrupted.
+ (WebCore::SQLStatement::execute):
+ * storage/SQLStatementSync.cpp:
+ (WebCore::SQLStatementSync::execute):
+
+ * storage/SQLTransaction.cpp: Changed the code to release the
+ callback objects as soon as they're not needed.
+ (WebCore::SQLTransaction::checkAndHandleClosedOrInterruptedDatabase):
+ Changed this method to not schedule the next transaction step when
+ the database is interrupted.
+ (WebCore::SQLTransaction::performNextStep):
+ (WebCore::SQLTransaction::performPendingCallback):
+ (WebCore::SQLTransaction::deliverTransactionCallback):
+ (WebCore::SQLTransaction::postflightAndCommit):
+ (WebCore::SQLTransaction::deliverTransactionErrorCallback):
+ (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
+ * storage/SQLTransaction.h:
+
+ * storage/chromium/DatabaseTrackerChromium.cpp: Added a method to
+ interrupt all databases in a given context.
+ (WebCore::DatabaseTracker::interruptAllDatabasesForContext):
+
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::stop): Added a call to
+ DatabaseTracker::interruptAllDatabasesForContext().
+
+2010-07-29 Bernhard Bauer <bauerb@chromium.org>
+
+ Reviewed by Darin Fisher.
+
+ Check if plugins are allowed before creating a Java applet.
+ https://bugs.webkit.org/show_bug.cgi?id=43196
+
+ * loader/SubframeLoader.cpp:
+ (WebCore::SubframeLoader::createJavaAppletWidget):
+
+2010-07-29 James Robinson <jamesr@chromium.org>
+
+ Reviewed by Simon Fraser.
+
+ Ask a canvas' rendering context if it is accelerated instead tying it directly to webgl
+ https://bugs.webkit.org/show_bug.cgi?id=43206
+
+ This unifies the logic for whether a canvas is accelerated or not into one place
+ and makes it easier to expand the logic in the future to, for example, cover some
+ 2d canvases.
+
+ Just a refactoring, no change in behavior so no new tests.
+
+ * html/canvas/CanvasRenderingContext.h:
+ (WebCore::CanvasRenderingContext::isAccelerated):
+ * html/canvas/WebGLRenderingContext.h:
+ (WebCore::WebGLRenderingContext::isAccelerated):
+ * rendering/RenderHTMLCanvas.cpp:
+ (WebCore::RenderHTMLCanvas::requiresLayer):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
+
+2010-07-29 Anders Carlsson <andersca@apple.com>
+
+ Reviewed by Sam Weinig.
+
+ Implement NPN_Status
+ https://bugs.webkit.org/show_bug.cgi?id=43205
+
+ * WebCore.exp.in:
+ Export Chrome::setStatusText.
+
+2010-07-29 Victor Wang <victorw@chromium.org>
+
+ Unreviewed, rolling out r64270.
+ http://trac.webkit.org/changeset/64270
+ https://bugs.webkit.org/show_bug.cgi?id=39589
+
+ The patch breaks chromium webkit unittest
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/DeviceOrientationClient.h:
+ (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
+ * dom/DeviceOrientationController.cpp:
+ (WebCore::DeviceOrientationController::DeviceOrientationController):
+ * dom/DeviceOrientationEvent.cpp:
+ * platform/mock/DeviceOrientationClientMock.cpp: Removed.
+ * platform/mock/DeviceOrientationClientMock.h: Removed.
+
+2010-07-29 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Darin Adler.
+
+ Resizer control does not paint in otherwise empty compositing layer
+ https://bugs.webkit.org/show_bug.cgi?id=42306
+
+ Ensure that we create backing store for an empty element with resize: both,
+ in order to render the resizer control.
+
+ Test: compositing/overflow/resize-painting.html
+
+ * rendering/RenderLayerBacking.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Check for hasOverflowControls()
+ earlier, before any child checks.
+ (WebCore::RenderLayerBacking::hasNonCompositingDescendants): Renamed from hasNonCompositingContent()
+ to clarify its purpose.
+
+2010-07-29 Adam Roben <aroben@apple.com>
+
+ Remove WKCACFLayer::Lanczos
+
+ This member is also unused.
+
+ Rubber-stamped in advance by John Sullivan.
+
+ * platform/graphics/win/WKCACFLayer.cpp:
+ (WebCore::toCACFFilterType):
+ (WebCore::fromCACFFilterType):
+ * platform/graphics/win/WKCACFLayer.h:
+ (WebCore::WKCACFLayer::):
+
+2010-07-29 Adam Roben <aroben@apple.com>
+
+ Remove some unused WKCACFLayer members
+
+ Fixes <http://webkit.org/b/43200> WKCACFLayer has some unused members
+
+ Reviewed by John Sullivan.
+
+ * platform/graphics/win/WKCACFLayer.h: Removed [set]ClearsContext,
+ [set]Filters, and [set]SortsSublayers.
+
+2010-07-28 Justin Schuh <jschuh@chromium.org>
+
+ Reviewed by Nate Chapin.
+
+ Clear PluginData's page pointer on Page destruction
+ https://bugs.webkit.org/show_bug.cgi?id=43147
+
+ Test: plugins/access-after-page-destroyed.html
+
+ * page/Page.cpp:
+ (WebCore::Page::~Page):
+
+2010-07-29 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Darin Adler.
+
+ SHOULD NEVER BE REACHED assertion when switching tabs with composited content
+ https://bugs.webkit.org/show_bug.cgi?id=43167
+
+ When the root layer becomes unattached (e.g. when switching tabs), don't return
+ 'false' from paintingGoesToWindow() because that will cause a -setNeedsDispay, which
+ both allocates wasteful backing store, and causes an assertion when we try to
+ paint the layer.
+
+ Test: manual-tests/compositing/assert-on-tab-switch.html: Added.
+
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::paintingGoesToWindow):
+
+2010-07-29 Simon Fraser <simon.fraser@apple.com>
+
+ Reviewed by Pavel Feldman.
+
+ Crash when computing pseudo-style of a vanished scrollbar in inspector
+ https://bugs.webkit.org/show_bug.cgi?id=42561
+
+ When a styled overflow:scroll scrollbar gets destroyed, we need to clear out the m_owner pointer,
+ otherwise the event handling code (which keeps the Scrollbar alive) later causes the scrollbar
+ to try to use m_owner to get pseudo style.
+
+ Test: scrollbars/overflow-custom-scrollbar-crash.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::destroyScrollbar): If this is a custom scrollbar, clear the owning renderer.
+ * rendering/RenderScrollbar.cpp:
+ (WebCore::RenderScrollbar::getScrollbarPseudoStyle): Bail if m_owner is 0.
+ * rendering/RenderScrollbar.h:
+ (WebCore::RenderScrollbar::clearOwningRenderer): New method.
+
+2010-07-29 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Not reviewed. Fix release builds, by removing unused variables, that only served for ASSERTs that are no longer needed.
+
+ * rendering/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::prepareToRenderSVGContent):
+ (WebCore::SVGRenderSupport::pointInClippingArea):
+
+2010-07-29 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Not reviewed. Fix build warning about unreachable code, seen on the windows slave.
+
+ * rendering/RenderSVGContainer.cpp:
+ (WebCore::RenderSVGContainer::selfWillPaint):
+ * rendering/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::selfWillPaint):
+
+2010-07-29 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Reviewed by Dirk Schulze.
+
+ WebKit shouldn't ignore resource cycles, but break them as Opera does
+ https://bugs.webkit.org/show_bug.cgi?id=43031
+
+ mask images are not updated when render objects' bounds change
+ https://bugs.webkit.org/show_bug.cgi?id=15124
+
+ SVG Gradients do not resize correctly
+ https://bugs.webkit.org/show_bug.cgi?id=41902
+
+ svg/dynamic-updates: SVGMarkerElement markerHeight/Width tests are broken
+ https://bugs.webkit.org/show_bug.cgi?id=42616
+
+ svg/dynamic-updates: SVGMaskElement tests are all broken
+ https://bugs.webkit.org/show_bug.cgi?id=42617
+
+ Don't ignore resources containing cyclic references, but break them, as discussed on SVG WG mailing lists - to be compatible with Opera which already does that.
+
+ We used to lookup RenderSVGResourceContainers objects, by extracting the URI reference from the SVGRenderStyle, then utilizing getElementById() to lookup the
+ node, and access its renderer. Opera ignores such references, if they point to resources that contain cyclic references. Ignoring them would mean we have
+ to mutate the render style to empty the resource strings. That obviously doesn't work, as it would break expectations (getComputedStyle, etc.).
+
+ Introduce a SVGResources class that stores pointers to all resources, that can be applied to a RenderObject (clipper/filter/markers/masker).
+ Add a SVGResourcesCache class, which is basically a HashMap<RenderObject*, SVGResources*>. Whenever a RenderObject receives style, we extract the URI references
+ from the SVGRenderStyle, look up the RenderSVGResourceContainer* objects, and store them in a SVGResources* class. Then we execute a cycle detection logic,
+ which detects cyclic references and breaks them. Breaking them means just nulling the pointer to the resource in the SVGResources object. Those SVGResources
+ objects are cached, and used throughout the render tree to access resources. This way it's guaranteed that all cyclic references are resolved until layout/paint
+ phase begins.
+
+ Add destroy/styleDidChange/updateFromElement methods to all SVG renderers, in order to keep track of resource/client changes in the SVGResourcesCache.
+ As side-effect the SVGResourcesCache now knows which RenderObject references which resource, and thus can handle client registration for a RenderSVGResourceContainer.
+ The RenderSVGResourceContainer now holds a HashSet of RenderObjects, that's always up2date, and not related to the fact wheter a resources has already been used
+ for painting. The old logic missed to register clients for a resource, when the resource was in an invalid state. Fixing that fixes the svg/dynamic-updates/SVGMaskElement* tests.
+
+ Rewrite all svg/custom/recursive-(filter|gradient|mask|pattern).svg tests to contain a reference image how it should be renderered. All 1:1 compatible with Opera now.
+
+ * rendering/RenderForeignObject.cpp:
+ (WebCore::RenderForeignObject::layout): Grab selfNeedsLayout() before calling RenderBlock::layout(), otherwhise it's always false.
+ * rendering/RenderPath.cpp: Don't look up resources manually, use SVGResourcesCache.
+ (WebCore::RenderPath::fillContains): Remove constness, to avoid the need to pass around const RenderObjects* to the SVGResourcesCache.
+ (WebCore::RenderPath::strokeContains): Ditto.
+ (WebCore::RenderPath::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
+ (WebCore::RenderPath::calculateMarkerBoundsIfNeeded): Remove special client handling for markers, it's all unified now.
+ (WebCore::RenderPath::styleWillChange): Only call setNeedsBoundariesUpdate when handling StyleDifferenceRepaint/Layout.
+ * rendering/RenderPath.h:
+ * rendering/RenderSVGBlock.cpp:
+ (WebCore::RenderSVGBlock::destroy): Forward to SVGResourcesCache::clientDestroyed.
+ (WebCore::RenderSVGBlock::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
+ (WebCore::RenderSVGBlock::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
+ * rendering/RenderSVGBlock.h:
+ * rendering/RenderSVGContainer.cpp:
+ (WebCore::RenderSVGContainer::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
+ (WebCore::RenderSVGContainer::selfWillPaint): Don't look up resources manually, use SVGResourcesCache.
+ * rendering/RenderSVGContainer.h:
+ * rendering/RenderSVGGradientStop.cpp:
+ (WebCore::RenderSVGGradientStop::styleDidChange): Rewrite, as invalidateResourceClients() is gone.
+ * rendering/RenderSVGHiddenContainer.h: Make layout() protected, as RenderSVGResourceContainer overrides it.
+ * rendering/RenderSVGImage.cpp:
+ (WebCore::RenderSVGImage::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
+ (WebCore::RenderSVGImage::destroy): Forward to SVGResourcesCache::clientDestroyed.
+ (WebCore::RenderSVGImage::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
+ (WebCore::RenderSVGImage::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
+ (WebCore::RenderSVGImage::imageChanged): Don't look up resources manually, use SVGResourcesCache.
+ * rendering/RenderSVGImage.h:
+ * rendering/RenderSVGInline.cpp:
+ (WebCore::RenderSVGInline::destroy): Forward to SVGResourcesCache::clientDestroyed.
+ (WebCore::RenderSVGInline::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
+ (WebCore::RenderSVGInline::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
+ * rendering/RenderSVGInline.h:
+ * rendering/RenderSVGModelObject.cpp:
+ (WebCore::RenderSVGModelObject::destroy): Forward to SVGResourcesCache::clientDestroyed.
+ (WebCore::RenderSVGModelObject::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
+ (WebCore::RenderSVGModelObject::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
+ * rendering/RenderSVGModelObject.h:
+ * rendering/RenderSVGResource.cpp:
+ (WebCore::RenderSVGResource::fillPaintingResource): Remove const from RenderObject parameter.
+ (WebCore::RenderSVGResource::strokePaintingResource): Ditto.
+ (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation): Early exit if we found the first parent resource.
+ * rendering/RenderSVGResource.h:
+ * rendering/RenderSVGResourceClipper.cpp:
+ (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper): Early exit if m_clipper is empty.
+ (WebCore::RenderSVGResourceClipper::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourceClipper::invalidateClient): Ditto.
+ (WebCore::RenderSVGResourceClipper::applyResource): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
+ (WebCore::RenderSVGResourceClipper::createClipData): Don't look up resources manually, use SVGResourcesCache.
+ (WebCore::RenderSVGResourceClipper::hitTestClipContent): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
+ * rendering/RenderSVGResourceClipper.h:
+ * rendering/RenderSVGResourceContainer.cpp:
+ (WebCore::svgExtensionsFromNode):
+ (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): Stop registering resource from the constructor, delegate to styleDidChange.
+ (WebCore::RenderSVGResourceContainer::~RenderSVGResourceContainer): Only deregister resource if it was ever registered.
+ (WebCore::RenderSVGResourceContainer::layout): invalidateClients() here, to avoid the need for invalidateResourceClients() in the SVG DOM. Just call setNeedsLayout() from the SVG DOM.
+ (WebCore::RenderSVGResourceContainer::destroy): Forward to SVGResourcesCache::resourceDestroyed.
+ (WebCore::RenderSVGResourceContainer::styleDidChange): Register resource not in the constructor but when it first receives style.
+ (WebCore::RenderSVGResourceContainer::idChanged): Don't duplicate code, use existing methods from SVGResourcesCache.
+ (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): Add new helper function, to share code between all resources.
+ (WebCore::RenderSVGResourceContainer::markClientForInvalidation): Ditto.
+ (WebCore::RenderSVGResourceContainer::addClient): SVGResourcesCache now manages the list of clients. It calls addClient() for each RenderObject that uses this resource.
+ (WebCore::RenderSVGResourceContainer::removeClient): SVGResourcesCache now manages the list of clients.
+ (WebCore::RenderSVGResourceContainer::registerResource): New helper function sharing code between idChanged / styleDidChange.
+ (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke): Add FIXME that the function is misplaced.
+ * rendering/RenderSVGResourceContainer.h: Move most functions to the new RenderSVGResourceContainer.cpp file.
+ * rendering/RenderSVGResourceFilter.cpp:
+ (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter): Early exit if m_filter is empty.
+ (WebCore::RenderSVGResourceFilter::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourceFilter::invalidateClient): Ditto.
+ * rendering/RenderSVGResourceGradient.cpp:
+ (WebCore::RenderSVGResourceGradient::~RenderSVGResourceGradient): Early exit if m_gradient is empty.
+ (WebCore::RenderSVGResourceGradient::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourceGradient::invalidateClient): Ditto.
+ * rendering/RenderSVGResourceMarker.cpp:
+ (WebCore::RenderSVGResourceMarker::~RenderSVGResourceMarker): Now a no-op, markers are unified within the new client handling concept, no more special code needed.
+ (WebCore::RenderSVGResourceMarker::layout): As RenderSVGResourceMarker skips the RenderSVGResourceContainer::layout() method, we also need to call invalidateClients() here.
+ (WebCore::RenderSVGResourceMarker::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourceMarker::invalidateClient): Ditto.
+ (WebCore::RenderSVGResourceMarker::draw): Remove marker specific logic to catch circular references.
+ * rendering/RenderSVGResourceMarker.h:
+ * rendering/RenderSVGResourceMasker.cpp:
+ (WebCore::RenderSVGResourceMasker::~RenderSVGResourceMasker): Early exit if m_masker is empty.
+ (WebCore::RenderSVGResourceMasker::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourceMasker::invalidateClient): Ditto.
+ (WebCore::RenderSVGResourceMasker::applyResource): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
+ * rendering/RenderSVGResourceMasker.h:
+ * rendering/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::~RenderSVGResourcePattern): Early exit if m_pattern is empty.
+ (WebCore::RenderSVGResourcePattern::invalidateClients): Use new helper functions to invalidate clients, shared between all resources in RenderSVGResourceContainer.
+ (WebCore::RenderSVGResourcePattern::invalidateClient): Ditto.
+ (WebCore::RenderSVGResourcePattern::createTileImage): Remove containsCyclicReference() check, SVGResourcesCycleSolver breaks cyclic references, resources do not need to take care anymore.
+ * rendering/RenderSVGResourcePattern.h:
+ * rendering/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::selfWillPaint): Don't look up resources manually, use SVGResourcesCache.
+ (WebCore::RenderSVGRoot::destroy): Forward to SVGResourcesCache::clientDestroyed.
+ (WebCore::RenderSVGRoot::styleDidChange): Forward to SVGResourcesCache::clientStyleChanged.
+ (WebCore::RenderSVGRoot::updateFromElement): Forward to SVGResourcesCache::clientUpdatedFromElement.
+ * rendering/RenderSVGRoot.h:
+ * rendering/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::layout): s/RenderSVGResource::invalidateAllResourcesOfRenderer/SVGResourcesCache::clientLayoutChanged/.
+ * rendering/RenderSVGText.h:
+ * rendering/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::acquirePaintingResource): Add RenderObject* parameter, don't assume the style comes from the InlineTextBox parent renderer.
+ (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Pass the parent()->renderer() to acquirePaintingResource.
+ (WebCore::SVGInlineTextBox::paintDecoration): Pass the decoration renderer to acquirePaintingResource.
+ (WebCore::SVGInlineTextBox::paintDecorationWithStyle): Ditto.
+ (WebCore::SVGInlineTextBox::paintText): When a selection pseudo style is used to paint the selection, swap styles in the SVGResourcesCache, to take the right resources when painting.
+ * rendering/SVGInlineTextBox.h:
+ * rendering/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::prepareToRenderSVGContent): Don't look up resources manually, use SVGResourcesCache.
+ (WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
+ (WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
+ (WebCore::SVGRenderSupport::pointInClippingArea): Remove const from RenderObject parameter.
+ * rendering/SVGRenderSupport.h:
+ * rendering/SVGRenderTreeAsText.cpp:
+ (WebCore::writeStyle): Add two const_cast now that fill/strokePaintingResource take RenderObject* parameters. This was the less intrusive approach, otherwhise more const_casts would be needed.
+ (WebCore::writeResources): Add FIXME that we should dump the resources present in the SVGResourcesCache instead of manually looking them up from the SVGRenderStyle, to avoid dumping cycles.
+ * rendering/SVGResourcesCache.cpp:
+ (WebCore::SVGResourcesCache::clientStyleChanged): Use markForLayoutAndParentResourceInvalidation() instead of duplicating code.
+ * rendering/SVGResourcesCycleSolver.cpp:
+ (WebCore::setFollowLinkForChainableResource): Implemented stub method.
+ * rendering/style/SVGRenderStyle.cpp:
+ (WebCore::SVGRenderStyle::diff): Return StyleDifferenceLayout, not Repaint for stroke paint changes, otherwhise the cached boundaries are not correctly updated.
+ * svg/SVGClipPathElement.cpp:
+ (WebCore::SVGClipPathElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGClipPathElement::childrenChanged): Ditto.
+ * svg/SVGClipPathElement.h:
+ (WebCore::SVGClipPathElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::insertedIntoDocument): Only execute buildPendingResource() logic, if needsPendingResourceHandling() returns true. Cleaned up code a bit, to deploy early returns.
+ * svg/SVGElement.h:
+ (WebCore::SVGElement::needsPendingResourceHandling): Return true (default). Only needed by SVGTextPathElement/SVGUseElement, and should be removed in future.
+ * svg/SVGFilterElement.cpp:
+ (WebCore::SVGFilterElement::SVGFilterElement): Initialize m_followLink=true.
+ (WebCore::SVGFilterElement::setFilterRes): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGFilterElement::svgAttributeChanged): Ditto.
+ (WebCore::SVGFilterElement::childrenChanged): Ditto.
+ * svg/SVGFilterElement.h:
+ (WebCore::SVGFilterElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ (WebCore::SVGFilterElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged): Don't use invalidateResourceClients(), it's a no-op as effects don't have a renderer -> use invalidateFilter().
+ * svg/SVGFilterPrimitiveStandardAttributes.h:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::invalidateFilter): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ * svg/SVGGradientElement.cpp:
+ (WebCore::SVGGradientElement::SVGGradientElement): Initialize m_followLink=true.
+ (WebCore::SVGGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGGradientElement::childrenChanged): Ditto.
+ * svg/SVGGradientElement.h:
+ (WebCore::SVGGradientElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ (WebCore::SVGGradientElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
+ * svg/SVGLinearGradientElement.cpp:
+ (WebCore::SVGLinearGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGLinearGradientElement::collectGradientProperties): Only follow xlink:href links if m_followLinks == true.
+ * svg/SVGMarkerElement.cpp:
+ (WebCore::SVGMarkerElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGMarkerElement::childrenChanged): Ditto.
+ (WebCore::SVGMarkerElement::setOrientToAuto): Ditto.
+ (WebCore::SVGMarkerElement::setOrientToAngle): Ditto.
+ * svg/SVGMarkerElement.h:
+ (WebCore::SVGMarkerElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ * svg/SVGMaskElement.cpp:
+ (WebCore::SVGMaskElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGMaskElement::childrenChanged): Ditto.
+ * svg/SVGMaskElement.h:
+ (WebCore::SVGMaskElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ * svg/SVGPatternElement.cpp:
+ (WebCore::SVGPatternElement::SVGPatternElement): Initialize m_followLink=true.
+ (WebCore::SVGPatternElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGPatternElement::childrenChanged): Ditto.
+ (WebCore::SVGPatternElement::collectPatternProperties): Only follow xlink:href links if m_followLinks == true.
+ * svg/SVGPatternElement.h:
+ (WebCore::SVGPatternElement::needsPendingResourceHandling): Return false, buildPendingResource() logic not needed anymore for resources, handled by RenderSVGResourceContainer.
+ (WebCore::SVGPatternElement::setFollowLink): Used by SVGResourcesCycleSolver, to stop following xlink:href links, if that leads to cyclic references.
+ * svg/SVGRadialGradientElement.cpp:
+ (WebCore::SVGRadialGradientElement::svgAttributeChanged): Don't use invalidateResourceClients(), it's not needed anymore, only call setNeedsLayout() on the renderer.
+ (WebCore::SVGRadialGradientElement::collectGradientProperties): Only follow xlink:href links if m_followLinks == true.
+ * svg/SVGStyledElement.cpp:
+ (WebCore::SVGStyledElement::attach): Call updateFromElement upon attach(), needed by all resource renderers. Defaults to a no-op in RenderObject.h
+ * svg/SVGStyledElement.h: Remove invalidateResourceClients(), it's not needed anymore.
+
+2010-07-29 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ [EFL] Support to enable WML in WebKit EFL
+ https://bugs.webkit.org/show_bug.cgi?id=43178
+
+ WebKit EFL cannot enable WML. WML files are added to CMakeLists.txt
+ to enable WML in WebKit EFL.
+
+ * CMakeLists.txt: Support to enable WML.
+
+2010-07-21 Grace Kloba <klobag@gmail.com> , Antonio Gomes <tonikitoo@webkit.org>
+
+ Reviewed by David Hyatt.
+
+ Enhance the hit testing to take a rectangle instead of a point
+ https://bugs.webkit.org/show_bug.cgi?id=40197
+
+ The primary goal of this change is to provide mechanisms for more precise tap
+ actions by the users on mobile devices.
+
+ Patch extends the hit testing system to work considering a rectangular area
+ as input instead of a point, when applicable. For that, the HitTestResult class
+ was modified to take a padding (IntSize). The padding specifies a fuzzy range for
+ accepting input events in pixels coordinates for both vertical and horizontal
+ orientations. In other words, it tells how much to expand the search rect
+ around a supposed touch point.
+
+ If it is non-positive padding (e.g. (-1, -1), (5, -1), (0, 0)), hit testing will behavior
+ as the current point based hit testing: methods are no-op'ed to not regress it performance-wise
+ since it is the common behavior. When positive padding is provided, the HitTestResult class will
+ keep record of all nodes that intersect the built up test area. The logic will continue searching
+ when it finds a candidate until the hit test area is fully enclosed by the boundaries of a candidate.
+ The result will be a list of nodes in the z-order they are hit-tested. Caller will decide how
+ to process them.
+
+ In order to expose the functionality, the patch:
+
+ - Adds a nodesFromRect method to the Document class, exposing the funcionality
+ to the DOM. Method returns a NodeList with all nodes that intersect the given
+ hit-tested area.
+ - Extends hitTestResultAtPoint method of the EventHandler with an extra 'padding'
+ parameter, defaulting to IntSize(-1, -1). The rect-based hit test is performed when a
+ non-negative padding is passed in.
+
+ Test: fast/dom/nodesFromRect-basic.html
+
+ * WebCore.base.exp:
+ * dom/Document.cpp:
+ (WebCore::Document::nodesFromRect): This method exposes the rect based funcionality to
+ the DOM. It works similarly to elementFromPoint, however receiving a rectangular area
+ as input instead of a point, and returning a z-index ordered list of nodes (not elements)
+ whose area intersect the hit test rect.
+ * dom/Document.h: Ditto.
+ * dom/Document.idl: Ditto.
+ * page/EventHandler.cpp:
+ (WebCore::EventHandler::hitTestResultAtPoint): The funcionality is also exposed through this
+ method. Patch adds a additional IntSize parameter to work as the padding area, building up
+ the hit test rect.
+ * page/EventHandler.h: Ditto.
+ * rendering/HitTestResult.cpp:
+ (WebCore::HitTestResult::HitTestResult): Rect based hit test constructor. Receives a
+ padding IntSize as parameter. It can be (0,0).
+ (WebCore::HitTestResult::operator=): Modified to assign the m_rectBasedTestResult as well.
+ (WebCore::HitTestResult::append): Merge to HitTestResult objects in a way that the
+ list node's of both objects get amended.
+ (WebCore::HitTestResult::addNodeToRectBasedTestResult): Adds a given Node to the list of
+ hit nodes.
+ * rendering/HitTestResult.h:
+ (WebCore::HitTestResult::padding): Returns the padding as an IntSize.
+ (WebCore::HitTestResult::isRectBasedTest): Returns if the HitTestResult is rect based or not.
+ (WebCore::HitTestResult::.rectBasedTestResult): Returns the list nodes hit.
+ (WebCore::HitTestResult::rectFromPoint): Returns the hit test rect given the hit test point
+ and padding.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::hitTestLayer):
+ (WebCore::RenderLayer::hitTestList):
+ (WebCore::RenderLayer::hitTestChildLayerColumns):
+ * rendering/EllipsisBox.cpp:
+ (WebCore::EllipsisBox::nodeAtPoint): Method is modified to support rect based hit test extension.
+ Now it not just checks if the boundary of the node being hit-tested contains a hit test point, but
+ instead it checks if the boundary of the node intersects a hit test rect. It is implemented so
+ that the common case (point based hit test) works as previously.
+ * rendering/InlineFlowBox.cpp:
+ (WebCore::InlineFlowBox::nodeAtPoint): Ditto.
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::nodeAtPoint): Ditto.
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::nodeAtPoint): Ditto.
+ (WebCore::RenderBlock::hitTestColumns): Ditto.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::nodeAtPoint): Ditto.
+ * rendering/RenderImage.cpp:
+ (WebCore::RenderImage::nodeAtPoint): Ditto.
+ * rendering/RenderLineBoxList.cpp:
+ (WebCore::RenderLineBoxList::hitTest):
+ * rendering/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::nodeAtPoint): Ditto.
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::nodeAtPoint): Ditto.
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::nodeAtPoint): Ditto.
+ * rendering/RenderWidget.cpp:
+ (WebCore::RenderWidget::nodeAtPoint): Ditto.
+
+2010-07-29 Steve Block <steveblock@google.com>
+
+ Reviewed by Jeremy Orlow.
+
+ Add LayoutTestController methods to test DeviceOrientation
+ https://bugs.webkit.org/show_bug.cgi?id=39589
+
+ This patch does not hook up the new LayoutTestController method to WebKit
+ for any platform. This will be done in later patches.
+ https://bugs.webkit.org/show_bug.cgi?id=43181 tracks this for Mac.
+
+ Test: fast/dom/DeviceOrientation/basic-operation.html
+
+ * WebCore/WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * dom/DeviceOrientationClient.h:
+ (WebCore::DeviceOrientationClient::~DeviceOrientationClient):
+ * dom/DeviceOrientationController.cpp:
+ (WebCore::DeviceOrientationController::DeviceOrientationController):
+ * dom/DeviceOrientationEvent.cpp:
+ * platform/mock/DeviceOrientationClientMock.cpp: Added.
+ (WebCore::DeviceOrientationClientMock::DeviceOrientationClientMock):
+ (WebCore::DeviceOrientationClientMock::setController):
+ (WebCore::DeviceOrientationClientMock::startUpdating):
+ (WebCore::DeviceOrientationClientMock::stopUpdating):
+ (WebCore::DeviceOrientationClientMock::setOrientation):
+ (WebCore::DeviceOrientationClientMock::timerFired):
+ * platform/mock/DeviceOrientationClientMock.h: Added.
+ (WebCore::DeviceOrientationClientMock::lastOrientation):
+
+2010-07-29 Satish Sampath <satish@chromium.org>
+
+ Reviewed by Steve Block.
+
+ Runtime feature switch for speech input.
+ https://bugs.webkit.org/show_bug.cgi?id=43146
+
+ Add a runtime feature switch that decides whether speech input attributes are available or not.
+ Defaults to true.
+
+ * bindings/generic/RuntimeEnabledFeatures.cpp:
+ * bindings/generic/RuntimeEnabledFeatures.h:
+ (WebCore::RuntimeEnabledFeatures::setSpeechInputEnabled):
+ (WebCore::RuntimeEnabledFeatures::speechInputEnabled):
+ (WebCore::RuntimeEnabledFeatures::speechEnabled):
+ * html/HTMLInputElement.idl:
+
+2010-07-27 Alexander Pavlov <apavlov@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Inspector should display CDATA section data
+ https://bugs.webkit.org/show_bug.cgi?id=16259
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::buildObjectForNode):
+ * inspector/front-end/ElementsTreeOutline.js:
+ ():
+
+2010-07-28 Kavita Kanetkar <kkanetkar@chromium.org>
+
+ Reviewed by Pavel Feldman.
+
+ Web Inspector: Enable UI for chromium's appcache inspection.
+ https://bugs.webkit.org/show_bug.cgi?id=43098
+
+ * inspector/front-end/Settings.js: Removed appCacheEnabled.
+ * inspector/front-end/StoragePanel.js: Removed appCacheEnabled condition.
+ (WebInspector.StoragePanel):
+ (WebInspector.StoragePanel.prototype.reset):
+ (WebInspector.StoragePanel.prototype.addApplicationCache):
+
2010-07-28 Bryan Gislason <bgislason@rim.com>
Reviewed by Nate Chapin.