2010-09-03 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed-by Simon Hausmann.
Passing a 32-bit depth X pixmap to NPAPI windowless plugins is too inefficient.
Instead, pass a X Pixmap that has same depth as the screen depth since graphics
operations are optimized for this depth.
https://bugs.webkit.org/show_bug.cgi?id=45167
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::determineQuirks):
2010-09-01 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] QWebPage::allowGeolocationRequest should be async API
https://bugs.webkit.org/show_bug.cgi?id=41364
Adding GeolocationPermissionClientQt.cpp/h to build script
* WebCore.pro:
2010-08-27 Kimmo Kinnunen <kimmo.t.kinnunen@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Cache plugin info to a persistent database
https://bugs.webkit.org/show_bug.cgi?id=43179
Implement a cache of NPAPI plugin metadata. Write the metadata to aa
file that gets rewritten if any plugin is added / removed. Compilation
of the feature is controlled by #if ENABLE(NETSCAPE_PLUGIN_METADATA_CACHE)
Currently only enabled for Qt UNIX flavors.
* WebCore.pro: Enable NETSCAPE_PLUGIN_METADATA_CACHE for UNIX builds
* platform/qt/FileSystemQt.cpp:
(WebCore::openFile): Added.
(WebCore::readFromFile): Added.
* plugins/PluginDatabase.cpp:
(WebCore::persistentPluginMetadataCachePath): Static accessor for the path
(WebCore::PluginDatabase::PluginDatabase): Add instance variable.
(WebCore::PluginDatabase::refresh):
(WebCore::PluginDatabase::pluginForMIMEType): Ensure returned plugin is loaded.
(WebCore::PluginDatabase::MIMETypeForExtension): Ensure returned plugin is loaded.
(WebCore::PluginDatabase::clear):
(WebCore::fillBufferWithContentsOfFile): Static helper function.
(WebCore::readUTF8String): Static helper function.
(WebCore::readTime): Static helper function.
(WebCore::PluginDatabase::loadPersistentMetadataCache):
(WebCore::writeUTF8String): Static helper function.
(WebCore::writeTime): Static helper function.
(WebCore::PluginDatabase::updatePersistentMetadataCache): Added.
(WebCore::PluginDatabase::isPersistentMetadataCacheEnabled): Added.
(WebCore::PluginDatabase::setPersistentMetadataCacheEnabled):Added.
(WebCore::PluginDatabase::persistentMetadataCachePath): Added.
(WebCore::PluginDatabase::setPersistentMetadataCachePath): Added.
* plugins/PluginDatabase.h:
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::PluginPackage): Add instance variable.
(WebCore::PluginPackage::createPackageFromCache): Added.
(WebCore::PluginPackage::ensurePluginLoaded): Added.
* plugins/PluginPackage.h:
(WebCore::PluginPackage::fullMIMEDescription): Added.
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::fetchInfo): Split mime parsing.
(WebCore::PluginPackage::setMIMEDescription): Added. Mime parsing.
2010-08-26 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Simon Hausmann.
[Qt] Set the clipRect correctly in windowed and windowless mode.
In Windowed mode, the values are in page coordinates. In Windowless
mode the values are in drawable coordinates. Setting these values is
purely academic since they are not used by Flash. However, there is a
possibility that plugins might infer a 'null' clipRect to mean 'invisible'.
https://bugs.webkit.org/show_bug.cgi?id=44594
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
2010-08-20 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Ariya Hidayat.
[Qt] When using the raster graphics system on Maemo5, allow
Flash to render directly into the raster window surface.
wmode=transparent is now supported as a result of this change.
https://bugs.webkit.org/show_bug.cgi?id=44043
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::paintUsingImageSurfaceExtension):
2010-08-18 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Implement Maemo5 local rendering NPAPI extension. See
https://wiki.mozilla.org/Plugins:NokiaMaemoImageSurface for details.
With the local rendering extension, Flash will paint into a 16-bit surface.
For wmode=transparent, Flash expects the surface to contain the contents
beneath it. As it is tricky to implement the content propagation across all
graphics systems, transparent Flash is not supported. We just fill the surface
with white and wmode=transparent behaves the same as wmode=opaque with a white
background.
https://bugs.webkit.org/show_bug.cgi?id=44043
* WebCore.pro:
* plugins/PluginView.cpp:
(WebCore::PluginView::setValue):
(WebCore::PluginView::PluginView):
* plugins/PluginView.h:
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
(WebCore::PluginView::paintUsingImageSurfaceExtension):
(WebCore::PluginView::paint):
(WebCore::PluginView::platformGetValueStatic):
2010-08-17 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Antonio Gomes.
[Qt] On Maemo5, there is no libgdk-x11-2.0.so symlink. Look for
libgdk-x11-2.0.so.0 instead on X11 and Maemo5.
https://bugs.webkit.org/show_bug.cgi?id=44043
* plugins/qt/PluginViewQt.cpp:
(WebCore::getPluginDisplay):
2010-08-17 Girish Ramakrishnan <girish@forwardbias.in>
Reviewed by Kenneth Rohde Christiansen.
Set PluginQuirkRequiresDefaultScreenDepth for all Flash versions and not
just Flash 10.
https://bugs.webkit.org/show_bug.cgi?id=44043
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::determineQuirks):
2010-08-18 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Steve Block.
[Qt] Request for permission before starting Geolocation service
https://bugs.webkit.org/show_bug.cgi?id=42027
Handles starting location acquisition when request is granted for ports using
"!CLIENT_BASED_GEOLOCATION and PREEMPT_GEOLOCATION_PERMISSION" policy
Only Qt port as of today uses the above combination. Enable
PREEMPT_GEOLOCATION_PERMISSION for qt port.
Below tests cover these changes on platform using PREEMPT_GEOLOCATION_PERMISSION
- fast/dom/Geolocation/delayed-permission-allowed.html
- fast/dom/Geolocation/delayed-permission-denied.html
- fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html
- fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::handlePendingPermissionNotifiers):
2010-08-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r65603.
http://trac.webkit.org/changeset/65603
https://bugs.webkit.org/show_bug.cgi?id=44179
4 tests crash on Qt bot (Requested by Ossy on #webkit).
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::handlePendingPermissionNotifiers):
2010-08-18 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Steve Block.
[Qt] Request for permission before starting Geolocation service
https://bugs.webkit.org/show_bug.cgi?id=42027
Handles starting location acquisition when request is granted for ports using
"!CLIENT_BASED_GEOLOCATION and PREEMPT_GEOLOCATION_PERMISSION" policy
Only Qt port as of today uses the above combination. Enable
PREEMPT_GEOLOCATION_PERMISSION for qt port.
Below tests cover these changes on platform using PREEMPT_GEOLOCATION_PERMISSION
- fast/dom/Geolocation/delayed-permission-allowed.html
- fast/dom/Geolocation/delayed-permission-denied.html
- fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html
- fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::handlePendingPermissionNotifiers):
2010-08-17 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Steve Block.
Geolocation preemptive permissions policy is buggy
https://bugs.webkit.org/show_bug.cgi?id=42811
While waiting for permission, m_startRequestPermissionNotifier was
used to consider only one pending request. This patch implements a set
m_pendingForPermissionNotifiers to maintain set of pending requests.
When user grants/denies permission all listeners will be notified.
Also fixed issue with hasZeroTimeout() where startTimerIfNeeded() has
to start irrespective of permission state
Tests: fast/dom/Geolocation/delayed-permission-allowed-for-multiple-requests.html
fast/dom/Geolocation/delayed-permission-denied-for-multiple-requests.html
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::startUpdating):
(WebCore::Geolocation::handlePendingPermissionNotifiers):
* page/Geolocation.h:
2010-07-27 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
Client-based Geolocation does not pass enableHighAccuracy option to controller and client
https://bugs.webkit.org/show_bug.cgi?id=40374
This change passes the enableHighAccuracy request option to the GeolocationController.
The GeolocationController tracks whether this should be used by the client.
No new tests possible as the mock provider doesn't support this feature.
* page/Geolocation.cpp:
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::startUpdating):
* page/GeolocationController.cpp:
(WebCore::GeolocationController::addObserver):
(WebCore::GeolocationController::removeObserver):
* page/GeolocationController.h:
* page/GeolocationControllerClient.h:
2010-08-24 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Simon Hausmann.
[Qt][Symbian] Make sure WebKit headers are included before platform headers on Symbian
https://bugs.webkit.org/show_bug.cgi?id=31273
On Symbian PREPEND_INCLUDEPATH is the best way to make sure that
WebKit headers are included before platform headers. On all other
platforms continue to use INCLUDEPATH (as before).
This patch also removed the workarounds that are put in place
now that we have a better solution.
No new tests as there is no new functionality.
* WebCore.pro:
2010-08-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
CSS: Add fast-path for rgba() color parsing
https://bugs.webkit.org/show_bug.cgi?id=42965
Test: fast/canvas/rgba-parsing.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColor): Extended with support for rgba().
(WebCore::parseAlphaValue): Added, parses an alpha value using
WTF::strtod() (if necessary) and clamps between 0 and 1.
(WebCore::isTenthAlpha):
2010-08-23 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] -webkit-text-stroke is broken due to Qt::TextBypassShaping
https://bugs.webkit.org/show_bug.cgi?id=44403
Don't bypass the Harfbuzz shaping if we're drawing text with a stroke.
For canvas, always use complex text shaping since stroke and fill are decoupled.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::measureText):
(WebCore::CanvasRenderingContext2D::drawTextInternal):
* platform/graphics/qt/FontQt.cpp:
(WebCore::drawTextCommon):
2010-08-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Ariya Hidayat.
[Qt] Path::closeSubpath() should only close the last subpath if it has >1 point
https://bugs.webkit.org/show_bug.cgi?id=44061
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-closepath
Test: fast/canvas/canvas-closePath-single-point.html
* platform/graphics/Path.h: Add a Qt-only member to track the last subpath.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::closeSubpath): Only close the last subpath if it
has more than 1 point. Otherwise behave as moveTo(first point in last subpath)
(WebCore::Path::Path):
(WebCore::Path::operator=):
(WebCore::Path::moveTo):
(WebCore::Path::transform):
2010-08-19 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Disable XSLT for production configuration
https://bugs.webkit.org/show_bug.cgi?id=37445
Introduce a new CONFIG option to maintain stable configuration for
the QtWebKit port and disable XSLT for the stable configuration
because of bug 37445.
No new tests as there is no new functionality.
* features.pri:
2010-08-12 Hui Huang <hui.2.huang@nokia.com>
Reviewed by Eric Seidel.
m_windowRect is not updated because parent of PluginView is not
set when updatePluginWidget is called. plugin gets wrong window
size on setwindow.
https://bugs.webkit.org/show_bug.cgi?id=43635
* plugins/symbian/PluginViewSymbian.cpp:
(WebCore::PluginView::setParent):
2010-08-13 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Ariya Hidayat.
[Qt] Clean up mobile feature useage
https://bugs.webkit.org/show_bug.cgi?id=43968
* WebCore.pro: Replaced use of Nokia specific platform scopes with concrete
feature names.
2010-08-12 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Decode images directly to QPixmap
https://bugs.webkit.org/show_bug.cgi?id=40797
Use the new API of Qt 4.7 to decode data from the image
reader directly to QPixmap.
This allow us to use JDCT_IFAST when decoding jpeg images
to pixmap, and to decode animated GIF images, while still
using in-place conversion of color space.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::internalHandleCurrentImage):
2010-08-10 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
Make sure NPAPI plugins get an initial setNPWindow on Mac
https://bugs.webkit.org/show_bug.cgi?id=43782
* plugins/mac/PluginViewMac.mm:
2010-08-04 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Daniel Bates.
Remove superfluous non-negative checks in HitTestResult:padding{Width|Height}
https://bugs.webkit.org/show_bug.cgi?id=43534
As pointed out by Steve Block in https://bugs.webkit.org/show_bug.cgi?id=40197#c54 ,
the non-negative checks present in both paddingWidth and paddingHeight methods of
HitTestResults class are superflous, after we changed the rect based hit testing logic
of invalid padding from IntSize(-1, -1) to IntSize(0, 0). Patch addresses this issue.
No new tests needed.
* rendering/HitTestResult.h:
(WebCore::HitTestResult::paddingWidth):
(WebCore::HitTestResult::paddingHeight):
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-08-05 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Temporary files should not be created in the current directory
https://bugs.webkit.org/show_bug.cgi?id=43562
Don't create temporary files in the current directory, use QDir::tempPath()
instead, as suggested by the QTemporaryFile documentation.
* platform/qt/FileSystemQt.cpp:
(WebCore::openTemporaryFile):
2010-08-05 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Clean up the input method handling
https://bugs.webkit.org/show_bug.cgi?id=43545
Changed input method hint interface to be more efficient by setting
all hints in one shot, like in QWidget.
* platform/qt/QWebPageClient.h:
2010-08-04 Abhishek Arya <inferno@chromium.org>
Unreviewed. Put missing equivalent js bindings check.
Forgot putting js bindings check in http://trac.webkit.org/changeset/64647. This fixes the qt crash.
* bindings/js/JSDesktopNotificationsCustom.cpp:
(WebCore::JSNotificationCenter::requestPermission):
2010-08-03 Abhishek Arya <inferno@chromium.org>
Reviewed by Alexey Proskuryakov.
Null the script execution context when disconnecting frame in notifications.
Make sure that script execution context is valid in notification requestPermission.
https://bugs.webkit.org/show_bug.cgi?id=43295
Tests: fast/notifications/notifications-document-close-crash.html
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
(WebCore::V8NotificationCenter::requestPermissionCallback):
* notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::disconnectFrame):
2010-08-04 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Use a QImage for the stroke applier scratch context
This avoids leaking a server-side resource on some graphics systems.
* platform/graphics/qt/PathQt.cpp:
(WebCore::scratchContext):
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-22 Ben Murdoch <benm@google.com>
Reviewed by Simon Fraser.
Touch events do not affect the :active CSS state
https://bugs.webkit.org/show_bug.cgi?id=39493
Clean the code up by using a typedef based on comments
post landing of the original patch.
No change in functionality so no new tests.
* rendering/HitTestRequest.h: Typedef the HitTestRequestType to unsigned.
* WebCore.exp.in: Update export signature.
* WebCore.order: Ditto.
* page/EventHandler.cpp: use the new typedef.
* page/EventHandler.h: ditto.
2010-07-24 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Simon Hausmann.
[Qt] tst_QWebFrame::callQtInvokable() fails
https://bugs.webkit.org/show_bug.cgi?id=41065
Converting JS objects to QVariantMaps was broken.
This is a partial revert of <http://trac.webkit.org/changeset/61478>
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant): Remove erroneous crash guard
around JSObject::getPropertyNames()
2010-07-22 Kim Grönholm <kim.1.gronholm@nokia.com>
Reviewed by NOBODY (OOPS!).
Generate TransformAction events from touch gestures
https://bugs.webkit.org/show_bug.cgi?id=39979
Enabling transformaction events to be generated from multi-touch
gestures by adding gesture handling machinery and eventhandler hooks.
Test: fast/events/transformaction/basic-transformaction-events.html
Tests basic single- and multi-touch sequences and the corresponding
TransformAction events that are generated.
A manual test can be found from:
https://bug-39757-attachments.webkit.org/attachment.cgi?id=57226
* WebCore.pro:
* page/EventHandler.cpp:
(WebCore::hasTransformActionEventListener):
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
* page/TouchGestureHandler.cpp: Added.
(WebCore::TouchGestureHandler::TouchGestureHandler):
(WebCore::TouchGestureHandler::updateRefreshNeededState):
(WebCore::TouchGestureHandler::updateTouchPoints):
(WebCore::TouchGestureHandler::reset):
(WebCore::TouchGestureHandler::calcAngle):
(WebCore::TouchGestureHandler::diffAngle):
(WebCore::TouchGestureHandler::calcPos):
(WebCore::TouchGestureHandler::calcDistance):
* page/TouchGestureHandler.h: Added.
(WebCore::TouchGestureHandler::translateX):
(WebCore::TouchGestureHandler::translateY):
(WebCore::TouchGestureHandler::pos):
(WebCore::TouchGestureHandler::screenPos):
(WebCore::TouchGestureHandler::scale):
(WebCore::TouchGestureHandler::rotate):
2010-07-22 Kim Grönholm <kim.1.gronholm@nokia.com>
Reviewed by NOBODY (OOPS!).
Add TransformActionEvent support
https://bugs.webkit.org/show_bug.cgi?id=39757
Added only the necessary TransformAction event interfaces and not e.g.
any eventhandler hooks that generate and dispatch them.
Test: fast/events/transformaction/create-transformaction-event.html
More tests will be added with the machinery that generates and
dispatches these events.
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::transformactionEnabled):
(WebCore::RuntimeEnabledFeatures::setTransformActionEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionstartEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionupdateEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionendEnabled):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::toV8):
* dom/Document.cpp:
(WebCore::Document::createEvent):
(WebCore::Document::addListenerTypeIfNeeded):
* dom/Document.h:
(WebCore::Document::):
* dom/Document.idl:
* dom/Element.h:
* dom/Element.idl:
* dom/Event.cpp:
(WebCore::Event::isTransformActionEvent):
(WebCore::Event::fromUserGesture):
* dom/Event.h:
* dom/EventNames.h:
* dom/TransformActionEvent.cpp: Added.
(WebCore::TransformActionEvent::TransformActionEvent):
(WebCore::TransformActionEvent::initTransformActionEvent):
* dom/TransformActionEvent.h: Added.
(WebCore::TransformActionEvent::create):
(WebCore::TransformActionEvent::translateX):
(WebCore::TransformActionEvent::translateY):
(WebCore::TransformActionEvent::translateSpeedX):
(WebCore::TransformActionEvent::translateSpeedY):
(WebCore::TransformActionEvent::scale):
(WebCore::TransformActionEvent::scaleSpeed):
(WebCore::TransformActionEvent::rotate):
(WebCore::TransformActionEvent::rotateSpeed):
(WebCore::TransformActionEvent::TransformActionEvent):
(WebCore::TransformActionEvent::isTransformActionEvent):
* dom/TransformActionEvent.idl: Added.
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2010-01-07 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by NOBODY (OOPS!).
[RVCT] ACID3 test crash
https://bugs.webkit.org/show_bug.cgi?id=33280
Workaround developed by Yongjun Zhang.
* dom/Element.cpp:
(WebCore::Element::setAttribute):
2010-07-22 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Small refactoring for input value sanitization
https://bugs.webkit.org/show_bug.cgi?id=42807
Rename some functions to clarify their roles.
* dom/InputElement.cpp:
(WebCore::replaceEOLAndLimitLength):
Renamed from sanitizeUserInputValue().
(WebCore::InputElement::sanitizeValueForTextField):
Renamed from sanitizeValue(), and call replaceEOLAndLimitLength()
instead of sanitizeUserInputValue().
(WebCore::InputElement::sanitizeUserInputValue):
Just call replaceEOLAndLimitLength().
(WebCore::InputElement::updateValueIfNeeded):
Use non-static sanitizeValue() for consistency.
* dom/InputElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setInputType):
Revert the change of r63876. It is not needed because of the
updateValueIfNeeded() change.
(WebCore::HTMLInputElement::sanitizeValue):
Apply the sanitizeValue() renaming.
2010-07-22 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
webkitPerformance.timing.responseEnd should not include document parse time
https://bugs.webkit.org/show_bug.cgi?id=42797
No new tests because timing based test would be flaky.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::finishedLoading): finishedLoading() is called by the platform at the right time, but didReceiveData() synchronously invokes parsing without returning to the event loop prior to this. So by the time the didFinishLoading() method is executed, parsing is finished. The solution is to move this time to didReceiveData() prior to parsing.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::didReceiveData): Update the time each time didReceiveData() is called.
(WebCore::MainResourceLoader::didFinishLoading): When finished, and after parsing, set responseEnd appropriately.
* loader/MainResourceLoader.h:
* page/Timing.cpp:
(WebCore::Timing::resourceLoadTimeRelativeToAbsolute): Now that responseEnd is set correctly, it can be much shorter for very fast loads (like local files). This exposed the fact that this skew check was not tight enough. We need to make sure that the whole range of values from the ResourceLoadTiming API fit within fetchStart-responseEnd, not just that requestTime fits in this range.
2010-07-21 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
Assertion failure by changing the type of an input element with a
non-number value to 'range'.
https://bugs.webkit.org/show_bug.cgi?id=42643
Test: fast/forms/input-value-sanitization.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setInputType):
Update the value by HTMLInputElement::sanitizeValue() in a case that
storesValueSeparateFromAttribute() state is not changed.
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement spec changes for basefont and bgsound
https://bugs.webkit.org/show_bug.cgi?id=42792
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Update a list of tags to match changes in the HTML5 spec
https://bugs.webkit.org/show_bug.cgi?id=42791
We need to atomize these strings at some point.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTMLTreeBuilder needs to update to match new spec behavior for <button>
https://bugs.webkit.org/show_bug.cgi?id=42233
The spec has some typos in this area, but this is my best guess for
what Ian means. I've filed bugs against the spec for each typo.
* html/HTMLElementStack.cpp:
(WebCore::HTMLNames::isScopeMarker):
(WebCore::HTMLNames::isButtonScopeMarker):
(WebCore::HTMLElementStack::inButtonScope):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInButtonScope):
(WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
* html/HTMLTreeBuilder.h:
2010-07-21 Justin Schuh <jschuh@chromium.org>
Reviewed by Oliver Hunt.
Prevent DeleteButtonController enable state from changing when not editing
https://bugs.webkit.org/show_bug.cgi?id=42659
Test: svg/custom/use-invalid-html.xhtml
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::cloneChildNodes):
2010-07-21 Beth Dakin <bdakin@apple.com>
Reviewed by Dan Bernstein.
Fix for https://bugs.webkit.org/show_bug.cgi?id=42605 New border-
radius path-based drawing code has some issues with corner-joins
GraphicsContext::clipConvexPolygon() now takes a boolean parameter
indicating whether or not the clip should be antialiased.
* platform/graphics/GraphicsContext.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
Compute 4 booleans determining if each edge is a "matching" edge of
not. Send the two appropriate values to clipBorderSidePolygon() so
we can decide there whether or not to antialias the clip based on
matchy-ness.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBorder):
If both edges are matching, don't antialias. If neither edge
matches, never antialias. If one edge matches and one does not,
apply two clips to get the appropriate antialiasing in each corner.
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
* rendering/RenderBoxModelObject.h:
2010-07-21 Brady Eidson <beidson@apple.com>
Reviewed by Geoffrey Garen.
Break out "scheme registration" functionality from SecurityOrigin to a SchemeRegistry
https://bugs.webkit.org/show_bug.cgi?id=42783
No new tests. (No change in behavior)
* GNUmakefile.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::isMixedContent):
(WebCore::FrameLoader::loadFrameRequest):
* page/SecurityOrigin.cpp:
(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::canLoad):
(WebCore::SecurityOrigin::isLocal):
* page/SecurityOrigin.h:
* platform/SchemeRegistry.cpp: Added.
(WebCore::localSchemes):
(WebCore::secureSchemes):
(WebCore::schemesWithUniqueOrigins):
(WebCore::SchemeRegistry::registerURLSchemeAsLocal):
(WebCore::SchemeRegistry::removeURLSchemeRegisteredAsLocal):
(WebCore::SchemeRegistry::localURLSchemes):
(WebCore::SchemeRegistry::shouldTreatURLAsLocal):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsLocal):
(WebCore::SchemeRegistry::registerURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess):
(WebCore::SchemeRegistry::registerURLSchemeAsSecure):
(WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure):
* platform/SchemeRegistry.h: Added.
2010-07-21 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
Assertion failure in AnimationBase::updateStateMachine() coming out of paused state
https://bugs.webkit.org/show_bug.cgi?id=37993
Added logic to properly handle pausing and resuming when in the
AnimationStateStartWaitStyleAvailable state. This was causing an
assert when going out of the pause state because the paused flag
was not set.
The fix is a straightforward implementation, going into a new
AnimationStatePausedWaitStyleAvailable state and setting the paused
flag (actually setting the m_pauseTime variable to something other
than -1). Also added handling of the new state, both when the
"style available" callback comes in while in this state and when
unpausing while in this state.
For now a LayoutTest is not possible since there's no way to go in
and out of the pause state. I've opened https://bugs.webkit.org/show_bug.cgi?id=42790
to track this.
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::updateStateMachine):
* page/animation/AnimationBase.h:
(WebCore::AnimationBase::):
2010-07-21 Bo Liu <boliu@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Add chromium WebMediaPlayer to PlatformMedia
https://bugs.webkit.org/show_bug.cgi?id=41295
* platform/graphics/MediaPlayer.h:
(WebCore::PlatformMedia::):
2010-07-21 Simon Fraser <simon.fraser@apple.com>
Reviewed by Anders Carlsson.
Composited layers don't scroll in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=42771
Prep work: FrameView::scrollPositionChanged() sounds like a generic "did scroll" bottleneck,
but this is deceiving. It's only every called on one platform (Mac) when the NSScrollView gets
scrolled, so rename it to FrameView::scrollPositionChangedViaPlatformWidget().
* WebCore.exp.in:
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChangedViaPlatformWidget):
* page/FrameView.h:
2010-07-21 Peter Beverloo <peter@lvp-media.com>
Reviewed by Eric Carlson.
Removed support for the -khtml CSS vendor prefix and limit the
-apple prefix to two properties (dashboard-region and line-clamp).
Test: fast/css/limited-vendor-prefix-behavior.html
* css/CSSParser.cpp:
(WebCore::cssPropertyID):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix the last tree HTML5 tree builder crashes
https://bugs.webkit.org/show_bug.cgi?id=42773
This patch changes the internal representation of a bookmark to handle
the case where one of the adjecent entries in the list of active
formatting elements is actually a marker.
After this patch, the bookmarking mechanism isn't as general, but it
works for the cases we need in the adoption agency.
Also, after this patch, there aren't any more known crashers in the
HTML5 tree builder. :)
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::bookmarkFor):
(WebCore::HTMLFormattingElementList::swapTo):
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::Bookmark::Bookmark):
(WebCore::HTMLFormattingElementList::Bookmark::moveToAfter):
(WebCore::HTMLFormattingElementList::Bookmark::hasBeenMoved):
(WebCore::HTMLFormattingElementList::Bookmark::mark):
(WebCore::HTMLFormattingElementList::first):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-21 Tony Gentilcore <tonyg@chromium.org>
Unreviewed build fix.
Disable overzealous ASSERT
https://bugs.webkit.org/show_bug.cgi?id=42775
No new tests because no changed functionality.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
2010-07-21 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Darin Adler.
Crash in Notification::disconnectFrame() triggered by Frame::lifeSupportTimerFired()
https://bugs.webkit.org/show_bug.cgi?id=42534
Call NotificationsCenter::disconnectFrame() when the frame is disconnected from the page.
Calling it from the destructor of Frame is too late and sometimes causes access violation.
I was not able to reproduce this crash, so did not add new tests.
This patch is based on the error reported in
http://code.google.com/p/chromium/issues/detail?id=49323.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::pageDestroyed):
* page/DOMWindow.h:
* page/Frame.cpp:
(WebCore::Frame::pageDestroyed):
2010-07-21 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Don't assert when clicking on a plug-in in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=42762
Remove a now invalid assert and return false instead.
* page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::passMouseDownEventToWidget):
2010-07-21 Anton Muhin <antonm@chromium.org>
Reviewed by Adam Barth.
[v8] Revert r60670 as it introduced a regression: in some cases named children couldn't be retrieved.
https://bugs.webkit.org/show_bug.cgi?id=42766
See http://code.google.com/p/chromium/issues/detail?id=48804 for more details.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::namedPropertyDeleter):
(WebCore::V8HTMLDocument::namedPropertyGetter):
(WebCore::V8HTMLDocument::indexedPropertyGetter):
(WebCore::V8HTMLDocument::allAccessorSetter):
(WebCore::toV8):
2010-07-21 Eric Carlson <eric.carlson@apple.com>
Reviewed by Simon Fraser.
Update plug-in proxy backed <video> and <audio> elements.
https://bugs.webkit.org/show_bug.cgi?id=42770
<rdar://problem/7963467>
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::attributeChanged): Only call m_player->setControls when
the 'controls' attribute changes.
(WebCore::HTMLMediaElement::createRenderer):
(WebCore::HTMLMediaElement::attach): If we have a proxy widget, call the WebFrameLoaderClient's
'hide' and 'show' methods for the media proxy plug-in to make sure we remove and re-add the
plug-in's view to the global list of plugin views.
(WebCore::HTMLMediaElement::createMediaPlayerProxy): Bail if m_proxyWidget is non-NULL
* loader/EmptyClients.h:
(WebCore::EmptyFrameLoaderClient::hideMediaPlayerProxyPlugin): Empty stub method.
(WebCore::EmptyFrameLoaderClient::showMediaPlayerProxyPlugin): Ditto.
* loader/FrameLoader.cpp:
* loader/FrameLoaderClient.h:
* loader/SubframeLoader.cpp:
(WebCore::FrameLoader::loadMediaPlayerProxyPlugin): Always set m_containsPlugIns in loadMediaPlayerProxyPlugin(),
even when we don't have a renderer.
(WebCore::FrameLoader::hideMediaPlayerProxyPlugin): New, call hideMediaPlayerProxyPlugin.
(WebCore::FrameLoader::showMediaPlayerProxyPlugin): New, call showMediaPlayerProxyPlugin.
* platform/graphics/MediaPlayer.cpp:
(WebCore::NullMediaPlayerPrivate::setControls):
(WebCore::MediaPlayer::setControls): New, pass through to media engine.
(WebCore::MediaPlayer::enterFullscreen): Ditto.
(WebCore::MediaPlayer::exitFullscreen): Ditto.
* platform/graphics/MediaPlayer.h:
* platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::setControls):
(WebCore::MediaPlayerPrivateInterface::enterFullscreen):
(WebCore::MediaPlayerPrivateInterface::exitFullscreen):
2010-07-21 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Make more members of CSSStyleSelector private.
https://bugs.webkit.org/show_bug.cgi?id=42757
No change in behavior, so no new tests.
* css/CSSStyleSelector.h: Made a publicly-unused methods private.
2010-07-21 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: consider jQuery object to be of array nature.
https://bugs.webkit.org/show_bug.cgi?id=42758
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-07-21 Alexey Proskuryakov <ap@apple.com>
Unreviewed Windows build fix.
https://bugs.webkit.org/show_bug.cgi?id=42717
<rdar://problem/7062824> A wrong password entered for site or proxy auth remains in WebCore
credential storage, and is sent with subsequent requests
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Don't use that direct a
copy/paste, oops!
2010-07-21 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
When GraphicsLayer::contentsOrientation() is CompositingCoordinatesBottomUp, need to flip repaint rects
https://bugs.webkit.org/show_bug.cgi?id=42662
If the contentsOrientation() on a GraphicsLayer is CompositingCoordinatesBottomUp, then we
need to flip the rects passed to setNeedsDisplayInRect:.
Avoid writing this code twice by making a bare function to share code
between WebLayer and WebTiledLayer. Convert the existing +drawContents:ofLayer:intoContext:
class method into a bare function, because the Obj-C calling overhead doesn't buy us anything.
Take out an assertion in GraphicsLayerCA::updateContentsTransform() that is not
correct.
No new tests because no layers use bottom-up contents at present.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::updateContentsTransform):
* platform/graphics/mac/WebLayer.h:
* platform/graphics/mac/WebLayer.mm:
(drawLayerContents):
(setLayerNeedsDisplayInRect):
(-[WebLayer setNeedsDisplayInRect:]):
(-[WebLayer drawInContext:]):
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer setNeedsDisplayInRect:]):
(-[WebTiledLayer drawInContext:]):
2010-07-20 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=42717
<rdar://problem/7062824> A wrong password entered for site or proxy auth remains in WebCore
credential storage, and is sent with subsequent requests
Tests: http/tests/security/401-logout/401-logout.php
http/tests/xmlhttprequest/remember-bad-password.html
* platform/network/CredentialStorage.cpp: (WebCore::CredentialStorage::remove):
* platform/network/CredentialStorage.h:
Added a way to remove stored credentials for a given protection space.
* platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
* platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
Remove stored credentials if they didn't work the first time.
2010-07-20 Steve Falkenburg <sfalken@apple.com>
Reviewed by Adam Roben.
WebKit on Windows should build optionally with an unversioned ICU DLL
https://bugs.webkit.org/show_bug.cgi?id=42722
<rdar://problem/8211767> WebKit needs to link against unversioned ICU
To get the proper value for U_DISABLE_RENAMING into all source files, we force
the include of ICUVersion.h (our generated header) via the compiler options.
* WebCore.vcproj/WebCore.vcproj:
Add forced include of ICUVersion.h.
* WebCore.vcproj/WebCoreCommon.vsprops: Add forced include of ICUVersion.h.
2010-07-21 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Serialization to JSON in InspectorValue works incorrect
if comma is assigned as decimal separator. Windows with Russian locale.
https://bugs.webkit.org/show_bug.cgi?id=42755
* inspector/InspectorValues.cpp:
(WebCore::InspectorBasicValue::writeJSON):
2010-07-20 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
CSS rotation transform can cause elements with certain styles to vanish during rotation.
https://bugs.webkit.org/show_bug.cgi?id=42579
Remove some untested, broken code that, as far as I can tell, could never get hit.
Use the correct rect for the PaintInfo so that zero-sized elements with overflow:hidden
but a border paint correctly.
Test: compositing/overflow/zero-size-overflow.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
2010-07-21 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Laszlo Gombos.
[QT] Leak and few more fixes to qt port of geolocation
https://bugs.webkit.org/show_bug.cgi?id=42753
Fixes memory leak and default values set to attributes.
Memory leak fix no new test case added.
* platform/qt/GeolocationServiceQt.cpp: Added.
(WebCore::GeolocationServiceQt::~GeolocationServiceQt):
(WebCore::GeolocationServiceQt::positionUpdated):
2010-07-21 Kristian Amlie <kristian.amlie@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Added automatic sqlite extraction for Symbian to QtWebKit.
Also added sqlite detection in case sqlite is not present in the SDK.
This is possible if WebKit is compiled standalone.
The inclusion part is a consequence of commit c578c6c1d6d in the Qt
repository. It will not work on Qt versions < 4.7.1, but that is ok,
since the only build system it will affect is marked as experimental
in the whole 4.7 series.
* WebCore.pro:
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Associate elements with the active form
https://bugs.webkit.org/show_bug.cgi?id=42728
This patch fixes fast/forms/formmove3.html. The test still doesn't
pass due to some render tree differences, but it works as intended now.
To fix this test, I needed to deviate from the spec slight. Minefield
seems to have the same deviation:
- http://www.w3.org/Bugs/Public/show_bug.cgi?id=10216
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::takeForm):
(WebCore::HTMLConstructionSite::setForm):
(WebCore::HTMLConstructionSite::createHTMLElement):
* html/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::form):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
The adoption agency doesn't properly attach()
https://bugs.webkit.org/show_bug.cgi?id=42727
The adoption agency is transliterated rather directly from the spec,
but it misses some of the WebKit-specific machinations, such as
attaching to the render tree.
The algorithm, as written, is a minor layer violation. I've added to
the problem by calling attach() from HTMLTreeBuilder (even though
that's the job of the HTMLConstructionSite). We'll need to clean up
the layering a bit at some point.
This patch half fixes fast/forms/formmove3.html. Hopefully I'll finish
fixing it in the next patch.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
<input> elements with no type attribute should be foster parented
https://bugs.webkit.org/show_bug.cgi?id=42725
Fix spec transcription error.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
2010-07-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix fast/css/last-child-style-sharing.html
https://bugs.webkit.org/show_bug.cgi?id=42731
Prior to this patch, we weren't calling finishParsingChildren on the
body element. We need a more systematic way of catching these bugs.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popAll):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-21 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
Runtime feature switch for device orientation
https://bugs.webkit.org/show_bug.cgi?id=42265
Add a runtime feature switch that decides whether device orientation
events are available or not. Defaults to true.
* WebCore.vcproj/WebCoreCommon.vsprops: Add bindings/generic to include path.
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDeviceOrientationEnabled):
(WebCore::RuntimeEnabledFeatures::deviceOrientationEnabled):
(WebCore::RuntimeEnabledFeatures::deviceOrientationEventEnabled):
(WebCore::RuntimeEnabledFeatures::ondeviceorientationEnabled):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DOMWindow.idl:
* page/Page.cpp:
(WebCore::Page::Page):
2010-07-21 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed Nikolas Zimmermann.
SVGFilterElement & SVGFE*Element don't support dynamic invalidation, when attributes change
https://bugs.webkit.org/show_bug.cgi?id=42244
The implementation was done by Nikolas Zimmermann before, but
there was no tests for it. The patch also implements the simple
setFilterRes method.
Tests: svg/dynamic-updates/SVGFilterElement-dom-filterRes-attr.html
svg/dynamic-updates/SVGFilterElement-dom-filterUnits-attr.html
svg/dynamic-updates/SVGFilterElement-dom-height-attr.html
svg/dynamic-updates/SVGFilterElement-dom-primitiveUnits-attr.html
svg/dynamic-updates/SVGFilterElement-dom-width-attr.html
svg/dynamic-updates/SVGFilterElement-dom-x-attr.html
svg/dynamic-updates/SVGFilterElement-dom-y-attr.html
svg/dynamic-updates/SVGFilterElement-svgdom-filterRes-call.html
svg/dynamic-updates/SVGFilterElement-svgdom-filterResX-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-filterResY-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-filterUnits-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-height-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-primitiveUnits-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-width-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-x-prop.html
svg/dynamic-updates/SVGFilterElement-svgdom-y-prop.html
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::setFilterRes):
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::childrenChanged):
* svg/SVGFilterElement.h:
2010-07-21 Ben Murdoch <benm@google.com>
Unreviewed, build fix.
Forgot to update the role of HitTestRequest.h in
the xcode project after landing patch from
https://bugs.webkit.org/show_bug.cgi?id=39493
* WebCore.xcodeproj/project.pbxproj: Make HitTestRequest.h
private so it can be included in WebKit by EventHandler.h
which is already private..
2010-07-20 Ben Murdoch <benm@google.com>
Reviewed by Steve Block.
Touch events do not affect the :active CSS state
https://bugs.webkit.org/show_bug.cgi?id=39493
Test: fast/events/touch/touch-active-state.html
* WebCore.exp.in: Update exports for new signature of
hitTestResultAtPoint.
* WebCore.order: ditto.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::hitTestResultAtPoint): Pass the type
of the hit test to perform as a parameter with a default
value rather than harcoding it in the function body.
(WebCore::EventHandler::handleMouseMoveEvent): Do not modiify
the active element during a mouse move if the user is
touching the screen.
(WebCore::EventHandler::handleTouchEvent): Set the correct
type of hit test to perform depending on the type of the
touch event we are handling.
* page/EventHandler.h: Update the signature of hitTestResultAtPoint.
2010-07-20 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
console.assert should include stack trace with line numbers.
https://bugs.webkit.org/show_bug.cgi?id=22556
Test: inspector/console-assert.html
* bindings/v8/ScriptCallStack.cpp:
(WebCore::getTopFrameLocation):
(WebCore::toScriptCallFramesVector):
(WebCore::ScriptCallStack::create):
(WebCore::ScriptCallStack::ScriptCallStack):
* bindings/v8/ScriptCallStack.h:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::setCaptureCallStackForUncaughtExceptions):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::traceCallback):
(WebCore::V8Console::assertCallback):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addMessageToConsole):
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype.toMessageElement):
* page/Console.cpp:
(WebCore::Console::lastWMLErrorMessage):
* page/Console.idl:
2010-07-20 Rafael Antognolli <antognolli@profusion.mobi>
Reviewed by Kent Tamura.
[EFL] Use log functions instead of fprintf
https://bugs.webkit.org/show_bug.cgi?id=42576
Use LOG and LOG_ERROR instead of fprintf.
No new tests, no new functionality.
* platform/efl/WidgetEfl.cpp:
(WebCore::Widget::applyFallbackCursor):
2010-07-20 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: the bindings generation helper script can be
simplified a bit. Chromium.
https://bugs.webkit.org/show_bug.cgi?id=42523
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_binding.py:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCPP.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/generate-bindings.pl:
* inspector/CodeGeneratorInspector.pm:
2010-07-20 Steve Falkenburg <sfalken@apple.com>
Re-save vsprops file after no-op edit in Visual Studio
to fix manual edit issues.
* WebCore.vcproj/WebCoreCommon.vsprops:
2010-07-20 Steve Falkenburg <sfalken@apple.com>
Re-save vcproj file after no-op edit in Visual Studio
to fix manual edit issues.
* WebCore.vcproj/WebCore.vcproj:
2010-07-20 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Include attributes when reconstructing elements in HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=42594
Remove FIXME now that we have a test.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementFromElementRecord):
2010-07-20 Sam Weinig <sam@webkit.org>
Reviewed by Brady Eidson.
Patch for https://bugs.webkit.org/show_bug.cgi?id=42719
Make Acid2 pass in WebKit2
* WebCore.exp.in: Update exported functions.
2010-07-20 Gavin Peters <gavinp@chromium.org>
Reviewed by Adam Barth.
prefetch categorization is exactly wrong
https://bugs.webkit.org/show_bug.cgi?id=42651
While I was in the area, I saw that CachedResource::schedule() was dead, so I have removed it.
Test: fast/dom/HTMLLinkElement/onload-completion-test.html
* loader/CachedCSSStyleSheet.h:
* loader/CachedFont.h:
* loader/CachedImage.h:
* loader/CachedResource.cpp:
* loader/CachedResource.h:
(WebCore::CachedResource::isPrefetch):
* loader/CachedScript.h:
* loader/CachedXBLDocument.h:
* loader/CachedXSLStyleSheet.h:
2010-07-20 James Hawkins <jhawkins@chromium.org>
Reviewed by Darin Fisher.
Expose the form submission trigger on the HTMLFormElement object. This
is used to verify that the user submitted the form instead of JS when
saving form data in Chrome AutoFill.
https://bugs.webkit.org/show_bug.cgi?id=42479
No new tests as this is only used by the Chromium WebKit API.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::submissionTrigger):
* html/HTMLFormElement.h:
2010-07-20 Adam Barth <abarth@webkit.org>
Unreviewed.
Fix fast/dom/title-content-write-set.html for HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=42668
Address some late-breaking review comments.
* dom/CharacterData.cpp:
(WebCore::CharacterData::appendDataCommon):
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::appendData):
(WebCore::CharacterData::insertData):
(WebCore::CharacterData::replaceData):
* dom/CharacterData.h:
2010-07-20 Daniel Erat <derat@chromium.org>
Reviewed by Ojan Vafai.
Subpixel rendering always disabled for Chromium Linux
https://bugs.webkit.org/show_bug.cgi?id=42220
Explicitly initialize global Chromium Linux isSkiaSubpixelGlyphs
flag to false for clarity.
* platform/graphics/chromium/FontPlatformDataLinux.cpp:
2010-07-20 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Fix fast/dom/title-content-write-set.html for HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=42668
When I split parserAppendData from appendData, it was tempting to cut
the function at dispatchModifiedEvent, but that's not quite right. We
still need to notify the parent that it's children have changed.
* dom/CharacterData.cpp:
(WebCore::CharacterData::appendDataCommon):
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::appendData):
* dom/CharacterData.h:
2010-07-20 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
CrashTracer: [USER] 300 crashes in Safari at com.apple.WebCore: WebCore::AccessibilityTable::isTableExposableThroughAccessibility + 573
https://bugs.webkit.org/show_bug.cgi?id=42652
When a table cell accesses its parent table, we should not use getOrCreate, because creating an AXTable inspects its render tree state
which may be out of date, leading to a crash.
By using only get(), it implies that the AXTable must be created before AXTableCells. This should
always be the case when AT clients access a table.
Test: accessibility/updating-attribute-in-table-causes-crash.html
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
2010-07-20 Abhishek Arya <inferno@chromium.org>
Reviewed by David Hyatt.
Check the node is a text node before doing the static cast
for editing commands.
https://bugs.webkit.org/show_bug.cgi?id=42655
Test: editing/execCommand/editing-nontext-node-crash.xhtml
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::fixupWhitespace):
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
2010-07-20 Leo Yang <leo.yang@torchmobile.com.cn>
Reviewed by David Hyatt.
Don't merge Anonymous block whose first child is inline run-in.
Make run-in recalculate its style after its renderer is destroyed.
https://bugs.webkit.org/show_bug.cgi?id=41375.
Test: fast/runin/crash-when-reparent-sibling.html
* rendering/RenderBlock.cpp:
(WebCore::canMergeContiguousAnonymousBlocks):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::destroyLeftoverChildren):
2010-07-20 Steve Block <steveblock@google.com>
Unreviewed Qt test fix.
Qt should not use PREEMPT_GEOLOCATION_PERMISSION until Bug 42027 is fixed.
https://bugs.webkit.org/show_bug.cgi?id=42068
No new tests, test fix only.
* WebCore.pro:
2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63764.
http://trac.webkit.org/changeset/63764
https://bugs.webkit.org/show_bug.cgi?id=42658
have broken Chromium linux build (Requested by loislo on
#webkit).
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_binding.py:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCPP.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/generate-bindings.pl:
* inspector/CodeGeneratorInspector.pm:
2010-07-20 Alexey Proskuryakov <ap@apple.com>
Reviewed by Brady Eidson.
https://bugs.webkit.org/show_bug.cgi?id=41531
Asynchronous cross origin XMLHttpRequest doesn't expose 401 response when withCredentials is false
This doesn't match Firefox, but it matches our sync case, XHR2 spec and common sense.
Test: http/tests/xmlhttprequest/cross-origin-no-authorization.html (updated results).
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::didReceiveAuthenticationChallenge): Instead of canceling
the request, continue without credentials - if the platform has a necessary method on
ResourceHandle.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveAuthenticationChallenge): Don't ask resource loader
client for credentials if subresource loader client already took care of those.
* platform/network/ResourceHandle.cpp: (WebCore::ResourceHandle::hasAuthenticationChallenge):
* platform/network/ResourceHandle.h:
Added an accessor to check whether ResourceHandle is currently waiting for credentials.
2010-07-20 Leandro Pereira <leandro@profusion.mobi>
[EFL] Unreviewed build fix.
Build SVGPathBuilder, SVGPathParser and SVGPathSegListBuilder.
Add websockets include directory.
The EFL port doesn't yet support automated tests.
* CMakeLists.txt:
2010-07-20 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: the bindings generation helper script can be
simplified a bit. Chromium.
https://bugs.webkit.org/show_bug.cgi?id=42523
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_binding.py:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCPP.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/generate-bindings.pl:
* inspector/CodeGeneratorInspector.pm:
2010-07-20 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Geoffrey Garen.
WebScriptObject Should Allow Safely Checking For Key Existence
https://bugs.webkit.org/show_bug.cgi?id=42613
Test: platform/mac/fast/objc/webScriptObject-hasWebScriptKey.html
Add private API "hasWebScriptKey" to check for key existence in
a WebScriptObject. Like JavaScript's `in` syntax. This is intended
to be made public eventually.
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject hasWebScriptKey:]):
* bindings/objc/WebScriptObjectPrivate.h:
2010-07-20 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 tree builder needs to call dispatchDocumentElementAvailable
https://bugs.webkit.org/show_bug.cgi?id=42654
This patch fixes the follout LayoutTests with --html5-treebuilder:
- userscripts/script-not-run-for-fragments.html
- userscripts/script-run-at-start.html
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::dispatchDocumentElementAvailableIfNeeded):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Steve Block.
Need to be able to configure Geolocation policy regarding user permissions
https://bugs.webkit.org/show_bug.cgi?id=42068
Introducing new USE() flag PREEMPT_GEOLOCATION_PREMISSION using which
acquires user permission first before starting location service
This change does not introduce any change in behavior for any platform. So there are no new tests
added.
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::startUpdating):
* page/Geolocation.h:
2010-07-20 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
HTML5 tree builder should restore form state
https://bugs.webkit.org/show_bug.cgi?id=42644
We need to tell self-closing tags that we're done parsing their
children. This patch fixes the following LayoutTests when run with
--html5-treebuilder:
fast/forms/button-state-restore.html
fast/forms/state-restore-to-non-autocomplete-form.html
fast/forms/state-restore-to-non-edited-controls.html
fast/history/saves-state-after-fragment-nav.html
http/tests/navigation/restore-form-state-https.html
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63750.
http://trac.webkit.org/changeset/63750
https://bugs.webkit.org/show_bug.cgi?id=42648
This revision breaks the windows builds (Requested by
hwennborg on #webkit).
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DOMWindow.idl:
* page/Page.cpp:
(WebCore::Page::Page):
2010-07-20 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: It is possible to show full call stack instead of top frame for Caller
and Call Site properties in Timeline panel.
https://bugs.webkit.org/show_bug.cgi?id=42620
* English.lproj/localizedStrings.js:
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendElementRow):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendLinkRow):
(WebInspector.TimelinePanel.PopupContentHelper.prototype._appendStackTrace):
* inspector/front-end/inspector.css:
(.timeline-details):
(.timeline-function-name):
(.timeline-stacktrace-title):
2010-07-20 Leon Clarke <leonclarke@google.com>
Reviewed by Pavel Feldman.
Make things compile again when the inspector is disabled, following
recent inspector improvements.
https://bugs.webkit.org/show_bug.cgi?id=42632
No new tests. Fixing a build break.
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::stackTrace):
* inspector/InspectorController.h:
(WebCore::InspectorController::didInsertDOMNode):
(WebCore::InspectorController::didRemoveDOMNode):
(WebCore::InspectorController::didModifyDOMAttr):
* inspector/InspectorDOMAgent.h:
* loader/appcache/ApplicationCacheGroup.cpp:
2010-07-20 Anton Muhin <antonm@chromium.org>
Reviewed by Adam Barth.
[v8] Allow handles to be disposed and WebKit objects to be dereferenced even if their map is already destroyed.
https://bugs.webkit.org/show_bug.cgi?id=42634
Currently DOMDataStore could be destroyed even if it has some mappings (it gets destroyed
when its isolated context gets GCed). However in this case, handles allocated for
such objects would never be disposed as we require presence of mapping from wrapped
WebKit object to handle being collected in the map and now map is gone. That leads to
zombie objects in both WebKit (wrapped WebKit object doesn't get dereferenced) and V8
(both handle and V8 wrapper object could not be destroyed).
See http://code.google.com/p/chromium/issues/detail?id=47125 for further discussion.
* bindings/v8/DOMData.h:
(WebCore::DOMData::handleWeakObject):
* bindings/v8/DOMDataStore.cpp:
(WebCore::DOMDataStore::weakNodeCallback):
* bindings/v8/V8DOMMap.h:
(WebCore::WeakReferenceMap::~WeakReferenceMap):
2010-07-20 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
Runtime feature switch for device orientation
https://bugs.webkit.org/show_bug.cgi?id=42265
Add a runtime feature switch that decides whether device orientation
events are available or not. Defaults to true.
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::setDeviceOrientationEnabled):
(WebCore::RuntimeEnabledFeatures::deviceOrientationEnabled):
(WebCore::RuntimeEnabledFeatures::deviceOrientationEventEnabled):
(WebCore::RuntimeEnabledFeatures::ondeviceorientationEnabled):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
* page/DOMWindow.idl:
* page/Page.cpp:
(WebCore::Page::Page):
2010-07-20 Hayato Ito <hayato@chromium.org>
Reviewed by Darin Adler.
Fixed a crash when deeply nested CSS selector is used.
https://bugs.webkit.org/show_bug.cgi?id=41129
This patch deletes CSSSelectors iteratively so that it doesn't cause stack overflow.
Test: fast/css/css-selector-deeply-nested.html
* css/CSSSelector.cpp:
(WebCore::CSSSelectorBag::~CSSSelectorBag):
(WebCore::CSSSelectorBag::isEmpty):
(WebCore::CSSSelectorBag::append):
(WebCore::CSSSelectorBag::takeAny):
(WebCore::CSSSelector::~CSSSelector):
(WebCore::CSSSelector::specificity):
* css/CSSSelector.h:
2010-07-20 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: inspected page renderer crashes when inspected page has JS syntax error
https://bugs.webkit.org/show_bug.cgi?id=42642
* bindings/v8/V8ConsoleMessage.cpp:
(WebCore::V8ConsoleMessage::handler):
2010-07-20 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63742.
http://trac.webkit.org/changeset/63742
https://bugs.webkit.org/show_bug.cgi?id=42641
Broke Leopard Intel build. (Requested by bbandix on #webkit).
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::startUpdating):
* page/Geolocation.h:
2010-07-20 Adam Roben <aroben@apple.com>
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Fixed case of "Name" attribute.
2010-07-20 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Steve Block.
Need to be able to configure Geolocation policy regarding user permissions
https://bugs.webkit.org/show_bug.cgi?id=42068
Introducing new USE() flag PREEMPT_GEOLOCATION_PREMISSION using which
acquires user permission first before starting location service
This change does not introduce any change in behavior for any platform. So there are no new tests
added.
* WebCore.pro:
* page/Geolocation.cpp:
(WebCore::Geolocation::startRequest):
(WebCore::Geolocation::setIsAllowed):
(WebCore::Geolocation::startUpdating):
* page/Geolocation.h:
2010-07-20 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Inspector: Resources Search Should Search Only Filtered Resources
https://bugs.webkit.org/show_bug.cgi?id=28290
* inspector/front-end/AbstractTimelinePanel.js:
(WebInspector.AbstractTimelinePanel.prototype._updateFilter):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype.get searchableViews):
* inspector/front-end/inspector.js:
(WebInspector.performSearch):
(WebInspector.doPerformSearch):
2010-07-20 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Incorrect absolute URLs in tooltips of links in the ElementsTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=42626
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._attributeHTML):
2010-07-20 Shinichiro Hamaji <hamaji@chromium.org>
Unreviewed comment fix. The comment in IDL should be //, not # .
Code generator: ensure generated constants match their corresponding enums.
https://bugs.webkit.org/show_bug.cgi?id=42250
* dom/OverflowEvent.idl:
2010-07-20 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
Add WebCore/bindings/generic/RuntimeEnabledFeatures.cpp to build files
https://bugs.webkit.org/show_bug.cgi?id=42380
RuntimeEnabledFeatures.cpp and .h were moved from bindings/v8 to
bindings/generic a while a go (in r54593), but need to
be added to the build in order to be used.
No new functionality so no new tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* websockets/WebSocket.cpp: Remove #if USE(V8), as RuntimeEnabledFeatures.cpp is no longer V8-only.
* websockets/WebSocket.h: Ditto.
2010-07-20 Tony Chang <tony@chromium.org>
Reviewed by Kent Tamura.
clean up style in ClipboardWin and PasteboardWin
https://bugs.webkit.org/show_bug.cgi?id=42609
No new tests since this is just a style cleanup.
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::createGlobalData):
(WebCore::markupToCFHTML):
(WebCore::getURL):
(WebCore::getPlainText):
(WebCore::getTextHTML):
(WebCore::fragmentFromFilenames):
(WebCore::containsFilenames):
(WebCore::fragmentFromCFHTML):
(WebCore::fragmentFromHTML):
* platform/win/ClipboardUtilitiesWin.h:
* platform/win/ClipboardWin.cpp:
(WebCore::pathRemoveBadFSCharacters):
(WebCore::createGlobalHDropContent):
(WebCore::createGlobalUrlFileDescriptor):
(WebCore::writeURL):
(WebCore::ClipboardWin::clearData):
(WebCore::ClipboardWin::clearAllData):
(WebCore::ClipboardWin::getData):
(WebCore::ClipboardWin::types):
(WebCore::ClipboardWin::declareAndWriteDragImage):
(WebCore::ClipboardWin::writeRange):
* platform/win/ClipboardWin.h:
(WebCore::ClipboardWin::create):
(WebCore::ClipboardWin::dataObject):
* platform/win/PasteboardWin.cpp:
(WebCore::PasteboardOwnerWndProc):
(WebCore::Pasteboard::writeSelection):
(WebCore::Pasteboard::writeURL):
(WebCore::Pasteboard::plainText):
(WebCore::Pasteboard::documentFragment):
2010-07-20 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: jump to source is broken for call frames logged by console.trace
https://bugs.webkit.org/show_bug.cgi?id=42619
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
* inspector/front-end/treeoutline.js: allow passing HTML element as a title.
(TreeElement.prototype.set title):
(TreeElement.prototype.set shouldRefreshChildren):
(TreeElement.prototype._setListItemNodeContent):
(TreeElement.prototype._attach):
2010-07-20 Tony Chang <tony@chromium.org>
Reviewed by Dan Bernstein.
[chromium] crash in Position::getInlineBoxAndOffset
https://bugs.webkit.org/show_bug.cgi?id=42202
Test: editing/selection/firstRect-crash.html
Manual test: win/contextmenu-key2.html
* page/EventHandler.cpp: Code no longer needed
* page/Frame.cpp:
(WebCore::Frame::firstRectForRange): Normalize Positions to VisiblePositions because
Positions may be pointing to nodes that have no renderer. If there's no renderer,
getInlineBoxAndOffset will crash.
2010-07-20 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Foster parenting depends on the current element at insertion time
https://bugs.webkit.org/show_bug.cgi?id=42599
We need to consider the current element at insertion-time when deciding
whether to redirect insertion to the foster parent. Previously, we
were considering the current element *both* at insertion-time and at
the time we created the guard.
* html/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::RedirectToFosterParentGuard):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::defaultForInTableText):
2010-07-20 Matthew Delaney <mdelaney@apple.com>
Reviewed by Kenneth Rohde Christiansen.
Failing 2d.path.stroke.prune.curve philip canvas test
https://bugs.webkit.org/show_bug.cgi?id=42190
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::closePath): Added check to make sure there's a non-trivial path to close. Since there is currently no way to check if the current point is the start point, or similarly if there is only 1 point in the current subpath (since these are both sufficient conditions for a trivial subpath), then checking that the bounding rectangle has both zero width and height proves also to be a sufficient condition for a trivial path.
(WebCore::CanvasRenderingContext2D::quadraticCurveTo): Added in simple bounds as per the spec.
(WebCore::CanvasRenderingContext2D::bezierCurveTo): Added in simple bounds as per the spec.
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::closeSubpath): Moved the check for an empty path up on level to make it platform independent and remove redundancy.
2010-07-19 Victoria Kirst <vrk@google.com>
Reviewed by David Levin.
Added a simple implementation of VideoLayerChromium. Uses the
LayerChromium::updateTextureRect() to send video frames to the
GPU.
https://bugs.webkit.org/show_bug.cgi?id=42234
* WebCore.gypi: Added include for VideoLayerChromium.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToMedia): Implemented
setContentsToMedia, though it does not seem to trigger a repaint
correctly.
* platform/graphics/chromium/GraphicsLayerChromium.h:
* platform/graphics/chromium/VideoLayerChromium.cpp: Added.
(WebCore::VideoLayerChromium::create):
(WebCore::VideoLayerChromium::VideoLayerChromium):
(WebCore::VideoLayerChromium::updateTextureContents):
* platform/graphics/chromium/VideoLayerChromium.h: Added.
(WebCore::VideoLayerChromium::drawsContent):
2010-07-19 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG CleanUp of SVGPathData parsing
https://bugs.webkit.org/show_bug.cgi?id=41410
Cleanup the parsing code for SVG Paths. Move classes out of the convoluted SVGParserUtilities.cpp
in their own files. Make use of WebCore specific objects in parsing code like FloatPoint, AffineTransform,
etc. instead of using home-brewn solutions.
The SVGPathParser parses a path data string and delivers the parsed segments and values to the SVGPathConsumer.
SVGPathConsumer is the base class for SVGPathBuilder and SVGPathSegListBuilder, that either build the platform
Path object or a SVGPathSegList out of the segments.
We're now directly parsing floats instead of truncating precision to float afterwards.
SVG Path with an arc with radius of 0 does not render
https://bugs.webkit.org/show_bug.cgi?id=40448
If one of the radii on the elliptic arc are zero, we should draw a line from the starting point to
the end point according to the spec. Fixed this bug with this patch, because an is zero check and
an DRT check was neccessary with the current clean-up.
Extended svg/dom/path-parser.xhml to check the correct behavior.
* Android.mk:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/FloatPoint.h:
(WebCore::FloatPoint::move): Follow WebKit style and use multiple lines for the function.
(WebCore::FloatPoint::scale): Scale FloatPoint.
(WebCore::operator+=):
(WebCore::operator+): Add two FloatPoints and give back the sum as FloatPoint.
* svg/SVGAllInOne.cpp: Added new created files.
* svg/SVGAnimateElement.cpp:
(WebCore::SVGAnimateElement::calculateFromAndToValues): Use new PathParser to create a PathSegList.
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::parseMappedAttribute): Use new PathParser to create a Path.
* svg/SVGGlyphElement.cpp:
(WebCore::parsePathData): Use new PathParser to create a Path.
* svg/SVGParserUtilities.cpp:
(WebCore::parseArcFlag): Removed parseArcFlag(double&), we parse in float now.
* svg/SVGParserUtilities.h: Removed path parsing code and a lot of unneccessary includes.
* svg/SVGPathBuilder.cpp: Added.
(WebCore::SVGPathBuilder::SVGPathBuilder):
(WebCore::SVGPathBuilder::build): Builds a normalized Path.
(WebCore::SVGPathBuilder::moveTo):
(WebCore::SVGPathBuilder::lineTo):
(WebCore::SVGPathBuilder::curveToCubic):
(WebCore::SVGPathBuilder::closePath):
* svg/SVGPathBuilder.h: Added. We just create normalized Paths, so this functions should never be reached.
(WebCore::SVGPathBuilder::lineToHorizontal):
(WebCore::SVGPathBuilder::lineToVertical):
(WebCore::SVGPathBuilder::curveToCubicSmooth):
(WebCore::SVGPathBuilder::curveToQuadratic):
(WebCore::SVGPathBuilder::curveToQuadraticSmooth):
(WebCore::SVGPathBuilder::arcTo):
* svg/SVGPathConsumer.h: Added. Base class of SVGPathBuilder and SVGPathSegListBuilder.
(WebCore::):
(WebCore::SVGPathConsumer::SVGPathConsumer):
(WebCore::SVGPathConsumer::~SVGPathConsumer):
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::parseMappedAttribute): Use new PathParser to create a PathSegList.
* svg/SVGPathParser.cpp: Added.
(WebCore::SVGPathParser::SVGPathParser):
(WebCore::SVGPathParser::~SVGPathParser):
(WebCore::SVGPathParser::parseClosePathSegment):
(WebCore::SVGPathParser::parseMoveToSegment):
(WebCore::SVGPathParser::parseLineToSegment):
(WebCore::SVGPathParser::parseLineToHorizontalSegment):
(WebCore::SVGPathParser::parseLineToVerticalSegment):
(WebCore::SVGPathParser::parseCurveToCubicSegment):
(WebCore::SVGPathParser::parseCurveToCubicSmoothSegment):
(WebCore::SVGPathParser::parseCurveToQuadraticSegment):
(WebCore::SVGPathParser::parseCurveToQuadraticSmoothSegment):
(WebCore::SVGPathParser::parseArcToSegment):
(WebCore::SVGPathParser::parsePathDataString):
(WebCore::SVGPathParser::decomposeArcToCubic): Normalizes an arc to multiple cubic curves.
* svg/SVGPathParser.h: Added.
* svg/SVGPathSegListBuilder.cpp: Added.
(WebCore::SVGPathSegListBuilder::SVGPathSegListBuilder):
(WebCore::SVGPathSegListBuilder::build):
(WebCore::SVGPathSegListBuilder::moveTo):
(WebCore::SVGPathSegListBuilder::lineTo):
(WebCore::SVGPathSegListBuilder::lineToHorizontal):
(WebCore::SVGPathSegListBuilder::lineToVertical):
(WebCore::SVGPathSegListBuilder::curveToCubic):
(WebCore::SVGPathSegListBuilder::curveToCubicSmooth):
(WebCore::SVGPathSegListBuilder::curveToQuadratic):
(WebCore::SVGPathSegListBuilder::curveToQuadraticSmooth):
(WebCore::SVGPathSegListBuilder::arcTo):
(WebCore::SVGPathSegListBuilder::closePath):
* svg/SVGPathSegListBuilder.h: Added.
2010-07-15 Yuzo Fujishima <yuzo@google.com>
Reviewed by Dan Bernstein.
Fix for Bug 42342 - Font download error for an @font-face rule invalidates other @font-face rules for the same font-family
https://bugs.webkit.org/show_bug.cgi?id=42342
Test: fast/css/font-face-download-error.html
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::isValid): Valid if at least one font
face is valid.
(WebCore::CSSSegmentedFontFace::getFontData): Check validity for each
font face.
* css/CSSSegmentedFontFace.h: Make isValid private.
2010-07-19 Kent Tamura <tkent@chromium.org>
Reviewed by Shinichiro Hamaji.
[Chromium] Fix style errors of RenderThemeChromiumWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=42568
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::):
(WebCore::getNonClientMetrics):
(WebCore::systemFontSize):
(WebCore::pointsToPixels):
(WebCore::querySystemBlinkInterval):
(WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeChromiumWin::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeChromiumWin::platformActiveTextSearchHighlightColor):
(WebCore::RenderThemeChromiumWin::paintButton):
(WebCore::RenderThemeChromiumWin::paintSliderTrack):
(WebCore::RenderThemeChromiumWin::paintMenuList):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
(WebCore::RenderThemeChromiumWin::paintInnerSpinButton):
2010-07-19 Steve Falkenburg <sfalken@apple.com>
(Hopefully the last) Windows build fix.
Version of CoreServices.h in WebKit Support Libraries uses
pragma once, unlike the version I have locally. Switch based
on __COLORSYNCDEPRECATED__ instead.
* WebCorePrefix.h:
2010-07-19 Steve Falkenburg <sfalken@apple.com>
Windows build fix.
* WebCorePrefix.h:
2010-07-19 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCorePrefix.h:
2010-07-19 Steve Falkenburg <sfalken@apple.com>
Build fix.
* WebCorePrefix.h:
2010-07-19 Steve Falkenburg <sfalken@apple.com>
Windows Build fixes for new ColorSync API.
We support both new and old APIs, since the newer headers aren't in the tree yet.
* WebCorePrefix.h: Removed include of CoreServices.h. Included via ColorSyncPriv.h instead, since header may not be present.
* platform/graphics/cg/ColorCG.cpp:
(WebCore::createCGColor): Conditionally use new ColorSync API.
* platform/graphics/opentype/OpenTypeUtilities.cpp: Define Fixed if CoreServices.h doesn't.
* platform/graphics/win/GraphicsLayerCACF.cpp:
(WebCore::GraphicsLayerCACF::updateLayerDrawsContent): Use 0 instead of nil, since nil is no longer present via CoreServices.h.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Include AssertMacros.h.
* platform/network/cf/ResourceErrorCF.cpp:
(WebCore::ResourceError::operator CFErrorRef): Use 0 instead of nil, since nil is no longer present via CoreServices.h.
2010-07-19 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Only set unloadEventEnd when the unload event is actually fired
https://bugs.webkit.org/show_bug.cgi?id=42607
r63689 introduced this ASSERT and it began failing on Qt and Mac debug.
For some reason, it did not fail on Windows (which is where I was
testing). The ASSERT was disabled in r63699.
Test: page-cache related layout tests don't crash in debug mode on Mac.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Don't unnecessarily copy QPainterPath in fillPath() and strokePath()
https://bugs.webkit.org/show_bug.cgi?id=42513
Avoid making unnecessary deep-copies of QPainterPaths that will
be discarded after use.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
2010-07-19 Kenneth Russell <kbr@google.com>
Reviewed by Nate Chapin.
WebGL rendering results must be made available to Canvas.toDataURL and 2D drawImage
https://bugs.webkit.org/show_bug.cgi?id=34719
Fixed compiler warning introduced by original patch. No new tests;
covered by existing tests.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas):
2010-07-19 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler, Adam Roben, Dan Bernstein and Sam Weinig.
Handle NP_ASFILE and NP_ASFILEONLY transfer modes
https://bugs.webkit.org/show_bug.cgi?id=42587
* WebCore.exp.in:
Export functions from FileSystem.h
* platform/mac/FileSystemMac.mm:
(WebCore::openTemporaryFile):
Try to create a temporary file using mkstemp.
2010-07-19 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Implement NPN_PostURLNotify
https://bugs.webkit.org/show_bug.cgi?id=42602
Export symbols needed by WebKit2.
* WebCore.exp.in:
2010-07-19 Tony Gentilcore <tonyg@chromium.org>
Unreviewed build fix.
Remove overzealous ASSERT from r63689
https://bugs.webkit.org/show_bug.cgi?id=42606
No new tests because no new functionality.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
2010-07-19 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Mark Rowe.
Web Inspector: Do Not Copy *.re2js Inspector Resources in XCode Build Phase
https://bugs.webkit.org/show_bug.cgi?id=42601
Remove *.re2js files after copying them over in the Build Phase. We do
the same to remove the WebKit.qrc file.
* WebCore.xcodeproj/project.pbxproj:
2010-07-17 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
[Web Timing] Move times to DocumentLoader and fix bugs in mark points
https://bugs.webkit.org/show_bug.cgi?id=42512
Test: fast/dom/webtiming-navigate-within-document.html
* loader/DocumentLoader.h: Move the FrameLoadTimeline (now call DocumentLoadTiming) to the DocumentLoader.
(WebCore::DocumentLoader::documentLoadTiming):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading): Set unloadEventEnd on the provisional DocumentLoader. Add some ASSERTs to tighten things up.
(WebCore::FrameLoader::loadWithDocumentLoader): This was not the right place to set navigationStart. Setting it here caused it to be set before the unload form prompt and caused it to be reset when navigating within the document.
(WebCore::FrameLoader::finishedLoading): Set responseEnd on the active DocumentLoader.
(WebCore::FrameLoader::continueLoadAfterWillSubmitForm): This is the right place for navigationStart as defined by the spec.
* loader/FrameLoader.h: Get rid of FrameLoadTimeline.
* loader/FrameLoaderTypes.h: Rename FrameLoadTimeline to DocumentLoadTiming. It is even more apparent this doesn't belong in this file now. I am planning to submit a patch moving it out ASAP, but didn't want to muddy this patch with all those build files.
(WebCore::DocumentLoadTiming::DocumentLoadTiming):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): Move fetchStart out of this method to load(), and rewrite setting of redirectStart, redirectEnd, and redirectCount to be more readable.
(WebCore::MainResourceLoader::load): Set fetchStart slightly earlier here and tighten it up with some ASSERTs.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchLoadEvent): Set loadEventStart and loadEventEnd on the DocumentLoader.
* page/Navigation.cpp:
(WebCore::Navigation::redirectCount): Retrieve redirectCount from the DocumentLoader.
* page/Timing.cpp:
(WebCore::getPossiblySkewedTimeInKnownRange): The skew problem turned out to be due to the fact that chromium's currentTime() implementation only syncs to the system time every 60 seconds. So absolute times across threads may be skewed slightly. I resolved this temporarily by clipping the time from another thread into a known bound. A better long term solution is probably to add a currentTimeFromSystemTime() method and call that for web timing marks.
(WebCore::Timing::navigationStart):
(WebCore::Timing::unloadEventEnd):
(WebCore::Timing::redirectStart):
(WebCore::Timing::redirectEnd):
(WebCore::Timing::fetchStart):
(WebCore::Timing::domainLookupStart):
(WebCore::Timing::domainLookupEnd):
(WebCore::Timing::connectStart):
(WebCore::Timing::connectEnd):
(WebCore::Timing::requestStart):
(WebCore::Timing::requestEnd):
(WebCore::Timing::responseStart):
(WebCore::Timing::responseEnd):
(WebCore::Timing::loadEventStart):
(WebCore::Timing::loadEventEnd):
(WebCore::Timing::documentLoader):
(WebCore::Timing::documentLoadTiming):
(WebCore::Timing::resourceLoadTiming):
(WebCore::Timing::resourceLoadTimeRelativeToAbsolute): Ensure requestTime is in the range of fetchStart to responseEnd.
* page/Timing.h:
2010-07-19 Chris Marrin <cmarrin@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=42118
Disable WebGL on Leopard for now.
LayoutTests fail on some graphics hardware on Leopard because one of the features we use,
GL_ARB_framebuffer_object, is not universally available in Leopard like it is in
SnowLeopard. This will allow LayoutTests to pass on Leopard until we add logic to use a
software OpenGL driver on machines without this support.
* Configurations/FeatureDefines.xcconfig:
2010-07-19 Eric Carlson <eric.carlson@apple.com>
Reviewed by Sam Weinig.
Remove HTML5 media element 'load' event
https://bugs.webkit.org/show_bug.cgi?id=30464
<rdar://problem/5650561>
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Initialize m_completelyLoaded.
(WebCore::HTMLMediaElement::parseMappedAttribute): Don't deal with 'load' event.
(WebCore::HTMLMediaElement::prepareForLoad): Set m_completelyLoaded to false.
(WebCore::HTMLMediaElement::setNetworkState): Don't post 'load' event.
(WebCore::HTMLMediaElement::progressEventTimerFired): Bail if m_networkState != NETWORK_LOADING.
(WebCore::HTMLMediaElement::userCancelledLoad): No more NETWORK_LOADED state.
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::):
* html/HTMLMediaElement.idl: Remove NETWORK_LOADING.
2010-07-19 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=40996
Progress event should not be fired during synchronous XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=17502
Assertion failure when trying to restart a sync XMLHttpRequest as an async one from onreadystatechange
Tests: http/tests/xmlhttprequest/xmlhttprequest-sync-no-progress-events.html
http/tests/xmlhttprequest/xmlhttprequest-sync-vs-async-assertion-failure.html
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::callReadyStateChangeListener): We now only dispatch readystatechange
event for synchronous requests in states UNSENT, OPENED and DONE. I'm not sure what exactly
the spec draft says about readystatechange for sync requests, but this seems to be the most
logical and backwards compatible behavior.
(WebCore::XMLHttpRequest::didReceiveData): Don't dispatch progress events for sync requests.
Note that we already don't dispatch upload progress events for those.
2010-07-19 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7232109> Unpainted white area appears at the edge of the page when body has bg color
https://bugs.webkit.org/show_bug.cgi?id=34913
Tests: fast/repaint/view-background-from-body-1.html
fast/repaint/view-background-from-body-2.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::styleWillChange): If this is the body renderer and its current style is
null, repaint the view, similarly to how the view is repainted for any repaint-or-higher
style changes.
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::removeChildNode): If the removed child is the body renderer,
repaint the view, in case the body’s background was propagated to the view.
2010-07-19 Adam Roben <aroben@apple.com>
Fix an assertion when a plugin returns -1 from NPP_Write
We were forgetting to call setDefersLoading(false) before destroying
the PluginStream. In the process of destroying the stream, someone
would call setDefersLoading(true), and we would assert because we were
already deferring loads.
Fixes <http://webkit.org/b/42563> Assertion failure in
ResourceHandle::setDefersLoading when running
plugins/return-negative-one-from-write.html on Windows
Reviewed by Anders Carlsson.
* plugins/PluginStream.cpp:
(WebCore::PluginStream::deliverData): Call setDefersLoading(false)
before destroying the stream, to match the setDefersLoading(true) call
earlier in this function. (We already call setDefersLoading(false) in
the non-error case later on.)
2010-07-19 Rafael Antognolli <antognolli@profusion.mobi>
Reviewed by Antonio Gomes.
[EFL] Fix some EFL theme issues
https://bugs.webkit.org/show_bug.cgi?id=42569
Keep a pointer to theme filename and check for it correctly.
Reduce the scope of some variables.
Don't test for platformWidget() since we are not using it.
No new tests, no new functionality.
* platform/efl/WidgetEfl.cpp:
(WebCore::Widget::applyCursor):
(WebCore::Widget::setCursor):
2010-07-19 Rafael Antognolli <antognolli@profusion.mobi>
Reviewed by Antonio Gomes.
[EFL] Add ifdef to compile code just on presence of Ecore_X
https://bugs.webkit.org/show_bug.cgi?id=42567
No new tests since there's no new functionality.
* platform/efl/WidgetEfl.cpp:
(WebCore::Widget::setEvasObject):
Add #ifdef HAVE_ECORE_X to it.
2010-07-19 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: add/removeStyleClass shouldn't increase number of spaces between class names.
https://bugs.webkit.org/show_bug.cgi?id=42485
* inspector/front-end/utilities.js:
(Element.prototype.removeStyleClass):
2010-07-19 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: show stack trace for uncaught exceptions when Web Inspector is open.
https://bugs.webkit.org/show_bug.cgi?id=42560
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::setCaptureCallStackForUncaughtExceptions):
* bindings/js/ScriptController.h:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::setCaptureCallStackForUncaughtExceptions):
* bindings/v8/ScriptController.h:
* bindings/v8/V8ConsoleMessage.cpp:
(WebCore::V8ConsoleMessage::dispatchNow):
(WebCore::V8ConsoleMessage::handler):
* bindings/v8/V8ConsoleMessage.h:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::ConsoleMessage):
* inspector/ConsoleMessage.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addMessageToConsole):
(WebCore::InspectorController::startGroup):
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype.toMessageElement):
(WebInspector.ConsoleMessage.prototype._populateStackTraceTreeElement):
(WebInspector.ConsoleMessage.prototype._addMessageHeader):
(WebInspector.ConsoleMessage.prototype.toString):
* inspector/front-end/inspector.css:
(.console-message.repeated-message > ol.stack-trace):
(.section .properties ol, .event-properties ol, .stack-trace ol, ol.stack-trace):
(ol.stack-trace):
(.section .properties ol.expanded, .event-properties ol.expanded, .stack-trace ol, ol.stack-trace):
* page/Console.cpp:
(WebCore::Console::addMessage):
* page/Console.h:
(WebCore::):
2010-07-19 Robin Burchell <robin.burchell@collabora.co.uk>
Reviewed by Antonio Gomes
[Qt] Use memcpy() instead of qMemCopy()
This is supposed to be more efficient, as the compiler is able to
optimise more.
Additionally, qMemCopy() is only strictly supposed to be used in
headers (see Qt's src/corelib/qglobal.h for reference)
See: https://bugs.webkit.org/show_bug.cgi?id=42392
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertQVariantToValue):
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Canvas: Rename operator==(CanvasStyle,CanvasStyle) since it isn't a proper equality check
https://bugs.webkit.org/show_bug.cgi?id=42284
New name is isEquivalentColor(CanvasStyle).
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
* html/canvas/CanvasStyle.cpp:
(WebCore::CanvasStyle::isEquivalentColor):
* html/canvas/CanvasStyle.h:
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Canvas: Wrong internal positioning of drawImage() shadows
https://bugs.webkit.org/show_bug.cgi?id=42510
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Render shadow when drawing one canvas onto another
https://bugs.webkit.org/show_bug.cgi?id=42508
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::draw):
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Some composition modes fail when color has alpha zero
https://bugs.webkit.org/show_bug.cgi?id=36973
Remove erroneous optimization that ignored painting calls when
the stroke/fill color had an alpha value of zero.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
CSS3 background: Number of layers should be determined by background-image element count
https://bugs.webkit.org/show_bug.cgi?id=41201
Manual test: css3-background-layer-count.html
Spec link:
http://www.w3.org/TR/css3-background/#layering
* manual-tests/css3-background-layer-count.html: Added.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::fillUnsetProperties): Don't repeat
image properties, they determine the total number of layers.
(WebCore::FillLayer::cullEmptyLayers): Change culling logic
to discard all layers after the first one without an image set.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::adjustBackgroundLayers): Call
fillUnsetProperties() before cullEmptyLayers()
(WebCore::InheritedFlags::adjustMaskLayers): Ditto.
2010-07-19 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Avoid QImage::pixel() in getImageData()
https://bugs.webkit.org/show_bug.cgi?id=42463
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::getImageData): Use QImage::scanLine() instead
of fetching data pixel-by-pixel.
2010-07-19 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: hide "toggle debugger" button when debugger is always enabled
https://bugs.webkit.org/show_bug.cgi?id=42558
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
2010-07-19 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
Explicitly declare DeviceOrientationEvent destructor and define it in the .cpp file
https://bugs.webkit.org/show_bug.cgi?id=42466
(Original problem at https://bugs.webkit.org/show_bug.cgi?id=42447)
No new functionality so no new tests.
* dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::~DeviceOrientationEvent):
Move here to avoid needing to have the full declaration of
DeviceOrientation in DeviceOrientationEvent.h.
* dom/DeviceOrientationEvent.h:
2010-07-18 Anders Carlsson <andersca@apple.com>
Fix Build.
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
2010-07-18 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Always set the current NSGraphicsContext before calling drawWithFrame
https://bugs.webkit.org/show_bug.cgi?id=42542
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintMeter):
(WebCore::RenderThemeMac::paintSearchField):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
2010-07-18 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Move PluginWidget to WebKit
https://bugs.webkit.org/show_bug.cgi?id=42530
Rename the PluginWidget class to PluginViewBase and make it an abstract base class.
This is a stopgap measure until we have a single PluginView class that we can use everywhere.
* WebCore.exp.in:
Remove PluginWidget symbols.
* WebCore.xcodeproj/project.pbxproj:
Update.
* platform/Widget.h:
(WebCore::Widget::isPluginViewBase):
Return false.
* plugins/PluginViewBase.h: Added.
(WebCore::PluginViewBase::platformLayer):
Always return 0 here now.
(WebCore::PluginViewBase::isPluginViewBase):
Return true.
* plugins/PluginWidget.h: Removed.
* plugins/mac/PluginWidgetMac.mm: Removed.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::allowsAcceleratedCompositing):
Cast to PluginWidgetBase instead.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
Cast to PluginWidgetBase instead.
2010-07-18 Dean Jackson <dino@apple.com>
Unreviewed.
Remove the unwanted extra line that Xcode
added in my last commit.
* WebCore.xcodeproj/project.pbxproj:
2010-07-18 Dean Jackson <dino@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=41259
Interacting with a <select> element within a transformed and clipped
container scrolls the container
The Node::getRect and ContainerNode::getRect functions were not
transform-aware. This fixes both, and has a test to make sure
we're not breaking any existing scrollToView code. This means
that a <select> popup will appear in the correct place if it
is within a transformed and scrolled container.
Test: fast/transforms/scrollIntoView-transformed.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::getUpperLeftCorner):
(WebCore::ContainerNode::getLowerRightCorner):
- make sure we call localToAbsolute in the right order
(after we've done a local move) and pass in the flags to
indicate it should look for transforms.
* dom/Node.cpp:
(WebCore::Node::getRect):
- make sure localToAbsolute gets told to look for transforms.
2010-07-18 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add NPJSObjectMap class
https://bugs.webkit.org/show_bug.cgi?id=42524
Export ScriptController functions.
* WebCore.exp.in:
2010-07-18 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Implement some NPRuntime related NPN_ functions
https://bugs.webkit.org/show_bug.cgi?id=42518
* WebCore.exp.in:
Export IdentifierRep functions.
2010-07-17 TJ Lee <tjlee0909@gmail.com>
Reviewed by Timothy Hatcher.
HTMLLinkElement ignores dnsPrefetchingEnabled setting
https://bugs.webkit.org/show_bug.cgi?id=42500
Changed the HTML Link tag to check that the browser
has DNS-prefetching enabled before calling ResourceHandle::prepareForURL.
There are no test cases for this patch because it was unclear how to test
this using a layout test. A possible test case would be to
clear the DNS cache on the client's machine before loading a page with
<link rel="dns-prefetch" href="SomeSiteThatsNotTheCurrentOne.com"> and
then check the number of DNS cache entries.
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
2010-07-16 Maciej Stachowiak <mjs@apple.com>
Reviewed by Sam Weinig.
Asynchronous policy checks make FrameLoader think it is done loading prematurely
https://bugs.webkit.org/show_bug.cgi?id=42489
This caused many (~100) layout tsts to fail under WebKit2.
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadSubframe): Right after loading a new subframe,
if m_complete is true, do not consider it done if it has a provisional loader.
This will happen in the case where the policy check is asynchronous.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::subframeIsLoading): For similar reasons,
consider a subframe to be loading if it has a policy decision pending.
2010-07-15 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Failure on http://philip.html5.org/tests/canvas/suite/tests/2d.shadow.alpha.5.html
https://bugs.webkit.org/show_bug.cgi?id=38400
FillRect with shadow need take alpha information from fillstyle
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::fillRect):
2010-07-17 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Pavel Feldman.
Web Inspector: [REGRESSION] Edit long CSS attributes works incorrect
https://bugs.webkit.org/show_bug.cgi?id=42476
* inspector/front-end/inspector.css:
(.editing):
2010-07-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Sam Weinig.
Failing 2d.path.arcTo.ensuresubpath.* philip canvas tests
https://bugs.webkit.org/show_bug.cgi?id=42186
Move code from Qt's Path::addArcTo() up to CanvasRenderingContext2D.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::arcTo): Behave as moveTo(x1,y1)
if the current path is empty.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::addArcTo): Remove now-redundant code.
2010-07-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
QtWebkit creates an unnecessary deep copy of images when canvas drawing is done
A https://bugs.webkit.org/show_bug.cgi?id=32530
Solve this by adding ImageBuffer::imageForRendering() which returns an image
that can be used for rendering now, but isn't a copy to be kept around.
* platform/graphics/ImageBuffer.h:
(WebCore::ImageBuffer::imageForRendering):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::imageForRendering): Added to provide an image that can
be used for rendering now, but may change in the future.
* platform/graphics/qt/StillImageQt.cpp:
(WebCore::StillImage::StillImage):
(WebCore::StillImage::~StillImage):
(WebCore::StillImage::size):
(WebCore::StillImage::nativeImageForCurrentFrame):
(WebCore::StillImage::draw):
* platform/graphics/qt/StillImageQt.h:
(WebCore::StillImage::createForRendering): Added for use in
ImageBuffer::imageForRendering(), provides a thin wrapper around a QPixmap*.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::paint): Paint with ImageBuffer::imageForRendering()
2010-07-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
[Qt] Remove redundant logic in Path::addArcTo()
https://bugs.webkit.org/show_bug.cgi?id=42494
Bounds checking for arcTo() is now done in cross-platform code
thanks to <http://trac.webkit.org/changeset/63599>
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::addArcTo):
2010-07-16 Zhe Su <suzhe@chromium.org>
Reviewed by Darin Adler.
REGRESSION(r61484): Broke focus behaviour on Qt and probably other platforms
https://bugs.webkit.org/show_bug.cgi?id=42253
This patch just reverts the change to WebCore/page/FocusController.cpp
made in changeset 61484, and add a new method named
willSetInputMethodState in EditorClient interface, which gets called
in FocusController just before changing the focused node.
No new tests, because no new functionality.
* loader/EmptyClients.h:
(WebCore::EmptyEditorClient::willSetInputMethodState):
* page/EditorClient.h:
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedNode):
2010-07-16 Matthew Delaney <mdelaney@apple.com>
Reviewed by Sam Weinig.
Failing 2d.path.stroke.prune.arc philip canvas test
https://bugs.webkit.org/show_bug.cgi?id=42188
* html/canvas/CanvasRenderingContext2D.cpp:
Note, updated parameter names to match spec.
(WebCore::CanvasRenderingContext2D::lineTo): Pulled bound checking code out of lower code to have checks for all platforms.
(WebCore::CanvasRenderingContext2D::arcTo): Bound checking per the spec for arcTo parameters. Updated parameter names to match spec.
* platform/graphics/Path.h: Added in new method to expose the current position.
* platform/graphics/cairo/PathCairo.cpp:
(WebCore::Path::currentPoint): Added in likely correct implementation for this call with a FIXME just in case.
* platform/graphics/cg/PathCG.cpp:
(WebCore::Path::currentPoint): Added in support for this call.
* platform/graphics/haiku/PathHaiku.cpp:
(WebCore::Path::currentPoint): Added in stub for this call.
* platform/graphics/openvg/PathOpenVG.cpp:
(WebCore::Path::currentPoint): Added in likely implementation for this call with a FIXME just in case.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::currentPoint): Added in implementation for this call courtesy of Andrea Kling.
* platform/graphics/skia/PathSkia.cpp:
(WebCore::Path::currentPoint): Added in stub for this call.
* platform/graphics/wince/PathWince.cpp:
(WebCore::Path::currentPoint): Added in stub for this call.
* platform/graphics/wx/PathWx.cpp:
(WebCore::Path::currentPoint): Added in stub for this call.
2010-07-16 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63593.
http://trac.webkit.org/changeset/63593
https://bugs.webkit.org/show_bug.cgi?id=42487
Broke a few chromium pixel tests (Requested by tony^work on
#webkit).
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::strokeRect):
2010-07-16 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
Part of <rdar://problem/7233974> Deprecate +[WebView _setShouldUseFontSmoothing:]
https://bugs.webkit.org/show_bug.cgi?id=29355
* WebCore.exp.in: Updated.
* platform/graphics/Font.cpp:
(WebCore::Font::Font): Added a font smoothing mode parameter to the constructor.
Set the font smoothing mode in the font description.
* platform/graphics/Font.h:
2010-07-16 Satish Sampath <satish@chromium.org>
Reviewed by Anders Carlsson.
Add speech attribute to IDL for enabling access from JS.
https://bugs.webkit.org/show_bug.cgi?id=42483
No tests added, this change is a pre-requisite for future layout tests.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::parseMappedAttribute): Update the renderer when speech attribute changes.
* html/HTMLInputElement.idl: Added the speech attribute to IDL.
2010-07-16 Fady Samuel <fsamuel@chromium.org>
Reviewed by David Levin.
Avoids adding stroke when stroke-width is zero.
SVG - stroke-width:0 bug with stroke other than "none"
https://bugs.webkit.org/show_bug.cgi?id=42387
Test: svg/stroke/path-zero-strokewidth-test.svg
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::drawEllipse):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::strokeRect):
2010-07-16 Kent Tamura <tkent@chromium.org>
Unreviewed, build fix.
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::getThemeData): Fix a typo.
2010-07-16 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
[Chromium] <input type=number> UI implementation for Windows
https://bugs.webkit.org/show_bug.cgi?id=42259
No additional tests. Existing tests cover this change and we'll
update expectations.
* platform/chromium/ChromiumBridge.h: Add paintSpinButton().
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::determineState):
Add ControlSubPart parameter and add support for spin buttons.
(WebCore::RenderThemeChromiumWin::determineClassicState): ditto.
(WebCore::RenderThemeChromiumWin::getThemeData): ditto.
(WebCore::RenderThemeChromiumWin::adjustInnerSpinButtonStyle): Added.
(WebCore::RenderThemeChromiumWin::paintInnerSpinButton): Added.
* rendering/RenderThemeChromiumWin.h:
Declare ControlSubpart, and add it to some functions.
2010-07-16 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Antonio Gomes.
[EFL] Use function provided by EFL for system beep
https://bugs.webkit.org/show_bug.cgi?id=42481
EFL port does not support automated tests, yet.
* platform/efl/SoundEfl.cpp:
(WebCore::systemBeep):
2010-07-16 Sarah Strong <sarah.e.strong@gmail.com>
Reviewed by Gustavo Noronha Silva.
[GTK] Clipboard data is lost on exit
https://bugs.webkit.org/show_bug.cgi?id=27411
No new tests. To manually test the bug fixed by this patch:
1) Open an application that uses a webkit webview on a GNOME-based system
2) Copy some text from that application
3) Optional: paste it to another application. This should work properly with and without this patch.
4) Exit the application completely.
5) Paste:
Without this patch, you cannot because your clipboard is empty.
With this patch, pasting succeeds.
I have not included an automated test because of the difficulty of testing behaviour after application exit.
2010-07-16 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
Keyboard operations for <input type=number>
https://bugs.webkit.org/show_bug.cgi?id=42076
- The up arrow key works as stepUp().
- The down arrow key works as stepDown().
- Reject characters other than + - 0-9 . e E
Test: fast/forms/input-number-keyoperation.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultEventHandler):
Add up/down arrow keys support, and call handleBeforeTextInsertedEvent().
(WebCore::isNumberCharacter):
(WebCore::HTMLInputElement::handleBeforeTextInsertedEvent):
For type=number, remove unacceptable characters.
* html/HTMLInputElement.h:
2010-07-16 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
Improve hover state handling for spin buttons
https://bugs.webkit.org/show_bug.cgi?id=42260
Background:
When we move the mouse cursor to a node from the outside of the node,
the following steps are executed.
1. setHovered(true) is called.
2. The node is repainted for the hover state.
3. 'mousemove' event is dispatched for the node.
For a spin-button, RenderTheme::paint{Inner,Outer}SpinButton() is
called before the event handler of the spin-button. So we can't
detect which of the up part or the down part is hovered correctly.
Solution:
The hover state of a spin-button is one of three states;
Indeterminate, Up, and Down. The state is Indeterminate since
setHovered(true) is called and until 'mousemove' event is
dispatched.
No new tests because there are no implementation of spin-buttons
with hovered state yet.
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isSpinUpButtonPartPressed):
(WebCore::RenderTheme::isHovered):
Return false if the node is a spin-button and the state is Indeterminate.
(WebCore::RenderTheme::isSpinUpButtonPartHovered):
* rendering/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::SpinButtonElement):
Initialize m_upDownState.
(WebCore::SpinButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::setHovered):
Set the state to Indeterminate.
* rendering/TextControlInnerElements.h:
(WebCore::SpinButtonElement::upDownState):
2010-07-16 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7527532> Crash beneath setSelection() during detach()
https://bugs.webkit.org/show_bug.cgi?id=42020
No test because I am unable to reproduce the crash.
* rendering/RenderView.cpp:
(WebCore::RenderView::setSelection): In the clearSelection() case, where the repaint mode is
RepaintNewMinusOld, avoid making RenderBlockSelectionInfo instances, and thereby avoid calling
localToAbsolute() during detach().
2010-07-16 Anders Carlsson <andersca@apple.com>
Fix release build.
* storage/Database.cpp:
(WebCore::DerefContextTask::performTask):
2010-07-16 Simon Fraser <simon.fraser@apple.com>
Reviewed by Sam Weinig.
Safari pegs CPU and drops frames on http://neography.com/experiment/circles/solarsystem/ (CSS animations)
https://bugs.webkit.org/show_bug.cgi?id=41409
AnimationController::isAnimatingPropertyOnRenderer() really asked whether an accelerated animation
or transition was running. This prevented us from falling into compositing layers for animation
on platforms, like Windows, that don't have accelerated animations.
Fix by making things more explicit: we now have two methods, isRunningAnimationOnRenderer()
and isRunningAcceleratedAnimationOnRenderer().
Changes are more extensive because I flipped the sense of 'm_fallbackAnimating', which is
now 'm_isAccelerated', for clarity.
Test: compositing/animation/animation-compositing.html
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::AnimationBase): m_fallbackAnimating -> m_isAccelerated
(WebCore::AnimationBase::blendProperties): Ditto.
(WebCore::AnimationBase::updateStateMachine): Ditto.
* page/animation/AnimationBase.h:
(WebCore::AnimationBase::isAnimatingProperty): Takes new acceleratedOnly parameter
which causes the method to only return true if the animation is accelerated.
(WebCore::AnimationBase::isAccelerated): Changed from isFallbackAnimating.
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::isRunningAnimationOnRenderer):
(WebCore::AnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
(WebCore::AnimationController::isRunningAnimationOnRenderer):
(WebCore::AnimationController::isRunningAcceleratedAnimationOnRenderer):
* page/animation/CompositeAnimation.h:
* page/animation/AnimationController.h: Rename isAnimatingPropertyOnRenderer(), add
isRunningAcceleratedAnimationOnRenderer().
* page/animation/AnimationControllerPrivate.h: Ditto.
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::updateTransitions): !isFallbackAnimating() -> isAccelerated().
(WebCore::CompositeAnimation::isAnimatingProperty): Pass acceleratedOnly down.
* page/animation/ImplicitAnimation.cpp:
(WebCore::ImplicitAnimation::timeToNextService): !isFallbackAnimating() -> isAccelerated().
* page/animation/KeyframeAnimation.cpp:
(WebCore::KeyframeAnimation::timeToNextService): isFallbackAnimating() -> !isAccelerated().
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Avoid touching the transform or
opacity if an accelerated animation is running.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation): Make compositing layers
if an animation of transform or opacity is running.
2010-07-16 Simon Fraser <simon.fraser@apple.com>
Reviewed by Sam Weinig.
Assertion when turning Accelerated Compositing off on a composited page
https://bugs.webkit.org/show_bug.cgi?id=42408
When accelerated compositing is turned off, check m_hasAcceleratedCompositing
before saying that the root layer will be composited. Fixes an assertion.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
2010-07-16 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Simon Fraser.
Spatial navigation: do not consider outline for focusable element boundaries
https://bugs.webkit.org/show_bug.cgi?id=42474
Test: fast/events/spatial-navigation/snav-zero-margin-content.html
Currently in WebCore::renderRectRelativeToRootDocument function, we are calling
RenderObject::absoluteClippedOverflowRect to obtain the rect boundary of a given
renderer/element. This method deals with outline, which is out of elements boundary.
It makes spatial navigation to fail on common sites like google.gom: "Web, Images, Map, etc"
are inaccessible.
Patch replaces RenderObject::absoluteClippedOverflowRect by Node::getRect,
which returns only the absolute bounding box rect of the Element.
* page/SpatialNavigation.cpp:
(WebCore::renderRectRelativeToRootDocument):
(WebCore::checkNegativeCoordsForNode):
2010-07-15 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Gustavo Noronha.
[Qt] Remove unnecessary WebKit headers inclusion from WebCore files
https://bugs.webkit.org/show_bug.cgi?id=42416
There are some places in WebCore unnecessarily including WebKit headers.
Cleaning up only, no testing needed.
* platform/network/qt/ResourceHandleQt.cpp:
* platform/qt/RenderThemeQt.cpp:
* platform/qt/WidgetQt.cpp:
2010-07-16 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
Refinement of r63556: moved the tab width computation back to Font, but added a
SimpleFontData parameter.
* platform/graphics/Font.h:
(WebCore::Font::tabWidth):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
2010-07-16 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Pavel Feldman.
Fix unit error in calculating timings from ResourceLoadTiming API
https://bugs.webkit.org/show_bug.cgi?id=42473
The start and end offsets are already in milliseconds so they should not be multiplied by 1000.0 like requestTime.
No new tests because, for a yet unknown reason, the ResourceLoadTiming API is not populated in the chromium test shell like it is in full chromium. This means the test that would have caught this bug (fast/dom/webtiming.html) currently has its expectation set to FAIL.
* page/Timing.cpp:
(WebCore::Timing::domainLookupStart):
(WebCore::Timing::domainLookupEnd):
(WebCore::Timing::connectStart):
(WebCore::Timing::connectEnd):
(WebCore::Timing::requestStart):
(WebCore::Timing::requestEnd):
(WebCore::Timing::responseStart):
2010-07-16 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
clang++ build fixes for JavaScriptCore and WebCore
https://bugs.webkit.org/show_bug.cgi?id=42478
* platform/network/Credential.cpp:
(WebCore::Credential::type):
* platform/network/Credential.h:
Remove const qualifier on Credential::type since it doesn't have an effect on the type.
2010-07-16 Anders Carlsson <andersca@apple.com>
Reviewed by David Levin.
Really add WARN_UNUSED_RESULT to leakRef
https://bugs.webkit.org/show_bug.cgi?id=42464
Get rid of a call to releaseRef here by passing the ScriptExecutionContext
reference through to the DerefContextTask.
* storage/Database.cpp:
(WebCore::DerefContextTask::create):
(WebCore::DerefContextTask::performTask):
(WebCore::DerefContextTask::DerefContextTask):
(WebCore::Database::~Database):
2010-07-16 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: The current implementation of generator is not ready
for generation Backend part of Inspector interface. The full patch
with Backend is quite big and I've split it.
https://bugs.webkit.org/show_bug.cgi?id=42462
* inspector/CodeGeneratorInspector.pm:
* inspector/Inspector.idl:
* inspector/InspectorValues.cpp:
(WebCore::InspectorArray::get):
* inspector/InspectorValues.h:
(WebCore::InspectorArray::length):
2010-07-15 Rob Buis <rwlbuis@gmail.com>
Reviewed by Darin Adler.
An empty value for xml:lang isn't considered
https://bugs.webkit.org/show_bug.cgi?id=42042
Allow :lang selector to match empty values for xml:lang and
lang attributes.
Test: fast/css/lang-selector-empty-attribute.xhtml
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
2010-07-16 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Shift-Enter does not do a reverse search. It searches forward.
https://bugs.webkit.org/show_bug.cgi?id=42459
* inspector/front-end/inspector.js:
(WebInspector.performSearch):
2010-07-16 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: do not include SSL time into Waiting time.
https://bugs.webkit.org/show_bug.cgi?id=42458
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._showPopover):
2010-07-16 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
<rdar://problem/8198266> white-space: pre text containing tabs is not laid out correctly when the font lacks a space glyph
https://bugs.webkit.org/show_bug.cgi?id=42437
No test because none of the fonts available to DumpRenderTree are missing a space glyph.
Changed the tab width computation to use the width of the space glyph from the font that has
a space glyph, which may be a fallback font if the primary font lacks a space glyph.
* platform/graphics/Font.h: Removed Font::tabWidth().
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
2010-07-16 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Chromium build fix. Add missing include.
* inspector/ConsoleMessage.h:
2010-07-16 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Antonio Gomes.
[Qt] Path: Avoid creating a new GraphicsContext in strokeContains() and strokeBoundingRect()
https://bugs.webkit.org/show_bug.cgi?id=42456
* platform/graphics/qt/PathQt.cpp:
(WebCore::scratchContext): Added, provides a scratch GraphicsContext.
(WebCore::Path::strokeContains): Use the scratch context instead
of creating a new GraphicsContext.
(WebCore::Path::strokeBoundingRect): Ditto.
2010-07-16 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
[V8] V8Proxy::retrieve may return null if javascript is disabled. Add a check
to avoid crashes in inspected page.
https://bugs.webkit.org/show_bug.cgi?id=42065
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::addListener):
2010-07-16 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: add SSL time label into the resources popover.
https://bugs.webkit.org/show_bug.cgi?id=42458
* English.lproj/localizedStrings.js:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::buildObjectForTiming):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._showPopover):
2010-07-16 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: disable AppCache in chromium.
https://bugs.webkit.org/show_bug.cgi?id=41858
* inspector/front-end/Settings.js:
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel):
(WebInspector.StoragePanel.prototype.reset):
(WebInspector.StoragePanel.prototype.addApplicationCache):
2010-07-16 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
console.trace should show file and line number for each function in the stack
https://bugs.webkit.org/show_bug.cgi?id=21180
Test: inspector/console-trace.html
* bindings/js/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::initialize):
* bindings/v8/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::ScriptCallFrame):
* bindings/v8/ScriptCallFrame.h:
* bindings/v8/ScriptCallStack.cpp:
(WebCore::getFrameLocation):
(WebCore::toScriptCallFrame):
(WebCore::ScriptCallStack::create):
(WebCore::ScriptCallStack::ScriptCallStack):
(WebCore::ScriptCallStack::at):
(WebCore::ScriptCallStack::size):
* bindings/v8/ScriptCallStack.h:
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::traceCallback):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::CallFrame::CallFrame):
(WebCore::ConsoleMessage::CallFrame::isEqual):
(WebCore::ConsoleMessage::CallFrame::createFrontendObject):
(WebCore::ConsoleMessage::ConsoleMessage):
(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::isEqual):
* inspector/ConsoleMessage.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleMessage.prototype._formatMessage):
(WebInspector.ConsoleMessage.prototype._createStackTraceElement):
(WebInspector.ConsoleMessage.prototype._createSourceUrlLink):
* inspector/front-end/inspector.css:
(.console-message.expandable > .console-message-text::before):
(.console-message.expandable.collapsed > .console-message-text::before):
(.console-message.expandable.collapsed > ol.stack-trace):
(.console-message > ol.stack-trace):
(.console-message.repeated-message > ol.stack-trace):
(.console-message.repeated-message > ol.stack-trace.trace-message):
* page/Console.idl:
2010-07-16 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Antonio Gomes.
[EFL] Build with MathML enabled. Fix build when MathML is enabled and
make it the default.
https://bugs.webkit.org/show_bug.cgi?id=42453
EFL port does not support automated tests, yet.
* CMakeLists.txt: add missing source file and sort.
2010-07-16 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
DeviceOrientationEvent.h should not forward-declare DeviceOrientation
https://bugs.webkit.org/show_bug.cgi?id=42447
When destructing m_orientation, DeviceOrientation cannot be an incomplete type.
* dom/DeviceOrientationEvent.h:
2010-07-16 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
gradientTransform + objectBoundingBox is wrong
https://bugs.webkit.org/show_bug.cgi?id=42446
gradientTransform + gradientUnits="objectBoundingBox" is wrong. Reverse multiplication order of both transforms.
* rendering/RenderSVGResourceGradient.cpp: s/multiply/multLeft/
2010-07-16 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Pavel Feldman.
Make JS memory stats available via 'Performance' object (Web Timing).
This statistics is populated only if 'WebKitMemoryInfoEnabled'
preference is set.
'console.memory' is kept until Web Timing object becomes visible by
default (currently it is hidden under compile-time flag). These stats
are guarded with the same preference.
https://bugs.webkit.org/show_bug.cgi?id=41617
* bindings/js/JSConsoleCustom.cpp:
* bindings/v8/custom/V8ConsoleCustom.cpp:
* page/Console.cpp:
(WebCore::Console::disconnectFrame):
(WebCore::Console::memory):
* page/Console.h:
* page/Console.idl:
* page/MemoryInfo.cpp:
(WebCore::MemoryInfo::MemoryInfo):
* page/MemoryInfo.h:
(WebCore::MemoryInfo::create):
* page/Performance.cpp:
(WebCore::Performance::disconnectFrame):
(WebCore::Performance::memory):
* page/Performance.h:
* page/Performance.idl:
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setMemoryInfoEnabled):
(WebCore::Settings::memoryInfoEnabled):
2010-07-16 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Convolution computation causes bad alpha channel values
https://bugs.webkit.org/show_bug.cgi?id=42273
Unbreak the convolve matrix filter, fixing svg/W3C-SVG-1.1/filters-conv-01-f.svg.
1) Fix clamping the rgb values:
"image->set(pixel++, clampRGBAValue(totals[0], maxAlpha));" totals[0] -> totals[i].
2) Don't apply the divisior divison and bias addition multiple times, accumulated!
* svg/graphics/filters/SVGFEConvolveMatrix.cpp:
(WebCore::setDestinationPixels): Fix two evil bugs, breaking feConvolveMatrix.
2010-07-16 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
relative positioning does not work for radialGradient after window resize
https://bugs.webkit.org/show_bug.cgi?id=41249
Redesign the way resources are invalidated. No longer utilize the DOM tree, specifically SVGStyledElement::svgAttributeChanged(), to invalidate
all resources in the ancestor chain (including itself) when any attribute changes. rect.setAttribute("foo", "bar") should never invalidate the
resources. Also the old approach didn't work correctly if the root layout changed (eg. window size change) - we failed to invalidate the resources,
thus leading to wrong renderings.
Instead of calling setNeedsLayout(true) from the SVG*Element classes, call RenderSVGResource::markForLayoutAndParentResourceInvalidation(), which
does the same thing and invalidates all resources in the ancestor chain (removing the cached results from the HashMaps). This only happens from
the various svgAttributeChanged() methods, if we know which attribute changed, and what action has to be taken.
All SVG renderers now invalidate their own resources on layout() if the layout changed (selfNeedsLayout()=true). The resources will be recreated
and cached during the following paint() call.
Tests: svg/custom/marker-child-changes-css.svg
svg/custom/relative-sized-content-with-resources.xhtml
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout): If our layout changed, invalidate our resources, by calling RenderSVGResource::invalidateAllResourcesOfRenderer().
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout): Ditto.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): Ditto.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout): Ditto.
* rendering/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::styleDidChange): Added, to invalidate resources on CSS changes, covered by new svg/custom/marker-child-changes-css.svg test.
* rendering/RenderSVGModelObject.h:
* rendering/RenderSVGResource.cpp:
(WebCore::RenderSVGResource::markForLayoutAndResourceInvalidation): Add new "needsBoundaries" parameter, calling setNeedsBoundaries() on the target render object,
simplifying all RenderSVGResource* code.
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation): New static method used from DOM tree to invalidate all cached resources in the ancestor chain
for a render object. Also marks the renderer for layout, if needed.
* rendering/RenderSVGResource.h:
* rendering/RenderSVGResourceClipper.cpp: Simplify code, remove no longer needed hacks, as invalidation is now carried out by render tree.
(WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper): Add m_invalidationBlocked hack, to avoid invalidations, while we're mutating the render styles (which is a hack!).
(WebCore::RenderSVGResourceClipper::invalidateClients): Don't do anything if m_invalidationBlocked=true.
(WebCore::RenderSVGResourceClipper::invalidateClient): Ditto.
(WebCore::RenderSVGResourceClipper::createClipData): Set m_invalidationBlocked before mutating render styles, as they are restored immediately after creating the clip image.
(WebCore::RenderSVGResourceClipper::resourceBoundingBox): Remove no longer needed hack to initialize ClipperData earlier than applyResource() would do.
* rendering/RenderSVGResourceClipper.h:
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::invalidateClients): Simplify code using markForLayoutAndResourceInvalidation.
(WebCore::RenderSVGResourceFilter::invalidateClient): Remove wrong assertion.
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::invalidateClients): Simplify code using markForLayoutAndResourceInvalidation.
(WebCore::RenderSVGResourceGradient::invalidateClient): Remove wrong assertion.
* rendering/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::invalidateClients): Simplify code using markForLayoutAndResourceInvalidation.
(WebCore::RenderSVGResourceMarker::invalidateClient): Remove wrong assertion.
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::invalidateClients): Simplify code using markForLayoutAndResourceInvalidation.
(WebCore::RenderSVGResourceMasker::invalidateClient): Remove wrong assertion.
(WebCore::RenderSVGResourceMasker::resourceBoundingBox): Remove no longer needed hack to initializer MaskerData earlier than applyResource() would do.
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::invalidateClients): Simplify code using markForLayoutAndResourceInvalidation.
(WebCore::RenderSVGResourcePattern::invalidateClient): Remove wrong assertion.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout): If our layout changed, invalidate our resources, by calling RenderSVGResource::invalidateAllResourcesOfRenderer().
* svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::applyResultsToTarget): Call RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer) instead of renderer->setNeedsLayout(true).
* svg/SVGAnimateTransformElement.cpp:
(WebCore::SVGAnimateTransformElement::applyResultsToTarget): Ditto.
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged): Ditto.
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged): Ditto.
* svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::notifyFinished): Ditto.
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged): Ditto.
* svg/SVGGElement.cpp:
(WebCore::SVGGElement::svgAttributeChanged): Ditto.
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged): Ditto.
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged): Ditto.
* svg/SVGPathElement.cpp:
(WebCore::SVGPathElement::svgAttributeChanged): Ditto.
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::svgAttributeChanged): Ditto.
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged): Ditto.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::setCurrentScale): Ditto.
(WebCore::SVGSVGElement::svgAttributeChanged): Ditto.
(WebCore::SVGSVGElement::inheritViewAttributes): Ditto.
* svg/SVGStopElement.cpp:
(WebCore::SVGStopElement::SVGStopElement): Changed m_offset initialization from 0.0f to 0.
(WebCore::SVGStopElement::svgAttributeChanged): Add missing implementation, calling RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer) on offsetAttr changes.
* svg/SVGStopElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::svgAttributeChanged): Don't call invalidateResourceInAncestorChain() on every attribute change, do it in all classes inheriting from us,
for specific attributes. Also stop calling RenderSVGResource::invalidateAllResourcesOfRenderer(), all handled in the render tree now.
(WebCore::SVGStyledElement::invalidateResourceClients): Early exit, if document is still parsing.
* svg/SVGStyledElement.h:
* svg/SVGTRefElement.cpp:
(WebCore::SVGTRefElement::svgAttributeChanged): Call RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer) instead of renderer->setNeedsLayout(true).
* svg/SVGTextElement.cpp:
(WebCore::SVGTextElement::svgAttributeChanged): Ditto.
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::svgAttributeChanged): Ditto.
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged): Ditto.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::svgAttributeChanged): Ditto.
(WebCore::SVGUseElement::updateContainerSizes): Ditto.
(WebCore::SVGUseElement::updateContainerOffsets): Ditto.
2010-07-16 Cosmin Truta <ctruta@chromium.org>
Reviewed by Eric Seidel.
Some SVGs with empty <g> elements crash Chromium on Linux
https://bugs.webkit.org/show_bug.cgi?id=41175
Avoid painting of zero-sized image buffers. Skia can't handle it.
Test: svg/filters/filter-empty-g.svg
* WebCore/platform/graphics/skia/ImageBufferSkia.cpp:
(ImageBuffer::ImageBuffer):
2010-07-16 Nate Chapin <japhet@chromium.org>
Reviewed by Darin Fisher.
Regression in r63100: Don't clear m_loadType in
FrameLoader::handledOnloadEvents, as it is used
to make some decisions after the load has actually
completed.
Tickling this bug requires manipulation
via the API (layout tests don't appear to traverse
the correct codepath), so no layout test.
https://bugs.webkit.org/show_bug.cgi?id=42298
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handledOnloadEvents): Don't reset m_loadType.
(WebCore::FrameLoader::addExtraFieldsToRequest): Set subresource cache
policy in one place and don't depend on m_loadType.
2010-07-15 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Darin Adler.
Printing test results differ between machines, we should use ImageDiff instead
https://bugs.webkit.org/show_bug.cgi?id=20011
Added spoolAllPagesWithBoundaries into PrintContext.
Test: printing/setPrinting.html
* WebCore.base.exp:
* page/PrintContext.cpp:
(WebCore::PrintContext::spoolAllPagesWithBoundaries):
* page/PrintContext.h:
2010-07-15 Kent Tamura <tkent@chromium.org>
Unreviewed, small style fixes.
* platform/chromium/ThemeChromiumMac.mm:
(WebCore::ThemeChromiumMac::inflateControlPaintRect):
* platform/mac/ThemeMac.mm:
(WebCore::ThemeMac::inflateControlPaintRect):
2010-07-15 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Update LegacyHTMLTreeBuilder to insert whitespace between </head> and <body>
https://bugs.webkit.org/show_bug.cgi?id=42431
Insert these whitespace text nodes into the HTML element between <head>
and <body>, as required by HTML5. Previously, we just dropped them on
the floor.
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::handleError):
2010-07-15 Victor Wang <victorw@chromium.org>
Reviewed by David Levin.
[chromium] update KURLGoogle decodeURLEscapeSequences to
use googleurl public api so it does not access functions in
url_canon_internal. This is for chromium multi-dll build.
https://bugs.webkit.org/show_bug.cgi?id=42177
Test: (unittest) WebKit\chromium\tests\KURLTest.cpp
* platform/KURLGoogle.cpp:
(WebCore::decodeURLEscapeSequences):
2010-07-15 Kent Tamura <tkent@chromium.org>
Reviewed by Eric Seidel.
[Chromium] Update ThemeChromiumMac.mm for the recent changes of ThemeMac.mm
https://bugs.webkit.org/show_bug.cgi?id=41932
Sync with ThemeMac.mm r61760.
This change doesn't contain r54299, r57603, r57734, r57741, and
r58533 because they conflict with Chromium change for
FlippedView().
* platform/chromium/ThemeChromiumMac.mm:
(WebCore::sizeFromNSControlSize):
(WebCore::sizeFromFont):
(WebCore::controlSizeFromPixelSize):
(WebCore::setControlSize):
(WebCore::convertControlStatesToThemeDrawState):
(WebCore::stepperSizes):
(WebCore::stepperControlSizeForFont):
(WebCore::paintStepper):
(WebCore::ThemeChromiumMac::controlSize):
(WebCore::ThemeChromiumMac::minimumControlSize):
(WebCore::ThemeChromiumMac::inflateControlPaintRect):
(WebCore::ThemeChromiumMac::paint):
2010-07-15 MORITA Hajime <morrita@google.com>
Reviewed by David Levin.
[Chromium][Win] Crashes with <keygen> with huge padding.
https://bugs.webkit.org/show_bug.cgi?id=41737
When we try to draw a large region, TransparencyWin can fail to
allocate a temporal buffer for composition. This change adds a
fallback path to ThemePainter to handle the buffer allocation
failure.
ThemePainter is no longer a subclass of TransparencyWin. It has
a TransparencyWin as a member.
Test: fast/forms/large-parts.html
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::ThemePainter): Added a fallback path.
2010-07-15 Yuzo Fujishima <yuzo@google.com>
Reviewed by Darin Adler.
Fix for Bug 42362 - CSSSegmentedFontFace::isLoaded() const is not used anywhere
Remove the method.
https://bugs.webkit.org/show_bug.cgi?id=42362
No new tests because of no behavior changes.
* css/CSSSegmentedFontFace.cpp:
* css/CSSSegmentedFontFace.h:
2010-07-15 Erik Arvidsson <arv@chromium.org>
Reviewed by David Levin.
Add directional property enums to the switch in applyProperty
https://bugs.webkit.org/show_bug.cgi?id=42438
Build fix for chromium mac.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2010-07-13 Zhenyao Mo <zmo@google.com>
Reviewed by Nate Chapin.
bufferData and bufferSubData generate wrong error when null buffer is bound
https://bugs.webkit.org/show_bug.cgi?id=42125
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::bufferData): Call validateBufferDataParameters().
(WebCore::WebGLRenderingContext::bufferSubData): Ditto.
(WebCore::WebGLRenderingContext::validateBufferDataParameters): Parameters validation for buffer{Sub}Data().
* html/canvas/WebGLRenderingContext.h: Declare validateBufferDataParameters().
2010-07-15 Jay Civelli <jcivelli@chromium.org>
Reviewed by David Levin.
[chromium] Making the popup label color visible when the item is
selected.
https://bugs.webkit.org/show_bug.cgi?id=42271
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::paintRow): paint the label text with a
different color when it is selected.
2010-07-13 Zhenyao Mo <zmo@google.com>
Reviewed by Nate Chapin.
WebGL rendering results must be made available to Canvas.toDataURL and 2D drawImage
https://bugs.webkit.org/show_bug.cgi?id=34719
Tests: fast/canvas/webgl/canvas-test.html
fast/canvas/webgl/gl-pixelstorei.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::makeRenderingResultsAvailable): Paint the WebGL rendering results to canvas if it's 3d.
(WebCore::HTMLCanvasElement::toDataURL): Paint the WebGL rendering results to canvas if it's 3d.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage): Paint the WebGL rendering results to canvas if it's 3d before drawing.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::markContextChanged): Mark it always for canvas2d.drawImage purpose.
(WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas): Paint the WebGL rendering results to canvas if it's dirty.
* html/canvas/WebGLRenderingContext.h: Declare paintRenderingResultsToCanvas().
* platform/graphics/GraphicsContext3D.h: Declare paintRenderingResultsToCanvas() & paintToCanvas().
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::paintToCanvas): Paint the rendered image pixels to the canvas.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas): Implement paintRenderingResultsToCanvas().
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::beginPaint): Just call paintRenderingResultsToCanvas().
(WebCore::GraphicsContext3D::endPaint):
(WebCore::GraphicsContext3D::paintRenderingResultsToCanvas): Implement paintRenderingResultsToCanvas().
2010-07-15 Nico Weber <thakis@chromium.org>
Reviewed by Ojan Vafai.
chromium/skia: Fix canvas.toDataURL in the presence of transparency
https://bugs.webkit.org/show_bug.cgi?id=42214
The problem was that SkBitmaps contain premultiplied data, but pnglib
doesn't expect premultiplied data. Now, the encoder unpremultiplies
data before sending it to pnglib.
Patch partially by deanm.
Covered by fast/canvas/toDataURL-alpha.html.
* platform/image-encoders/skia/PNGImageEncoder.cpp:
(WebCore::preMultipliedBGRAtoRGBA):
(WebCore::encodeImpl):
(WebCore::PNGImageEncoder::encode):
2010-07-15 Alex Nicolaou <anicolao@chromium.org>
Reviewed by Eric Seidel.
Convolution computation causes bad alpha channel values
https://bugs.webkit.org/show_bug.cgi?id=42273
Fixed by clamping colour channel values to the alpha value so that
r <= a, g <= a, and b <= a after the convolution is applied. See
the bug for why I believe the SVG specification needs to be updated.
Test must be drawn to crash. 100x100 green rectangle is used to
indicate pass to minimize the chance of regression.
Test: svg/custom/convolution-crash.svg
* platform/graphics/skia/SkiaUtils.cpp:
(WebCore::SkPMColorToColor):
* svg/graphics/filters/SVGFEConvolveMatrix.cpp:
(WebCore::clampRGBAValue):
(WebCore::setDestinationPixels):
(WebCore::FEConvolveMatrix::fastSetInteriorPixels):
(WebCore::FEConvolveMatrix::fastSetOuterPixels):
2010-07-15 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, Chromium-specific changes that I forgot to make in r63278.
1. DatabaseTrackerChromium::getMaxSizeForDatabase() is called on
the context thread by sync DBs.
2. Forgot to change V8SQLTransactionSyncCustom to return the
result set when executeSql() is called.
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
2010-07-15 Martin Robinson <mrobinson@igalia.com>
Reviewed by Oliver Hunt.
[GTK] Simplify the distribution step
https://bugs.webkit.org/show_bug.cgi?id=42414
No new tests as this is just a build change.
* GNUmakefile.am: Modify EXTRA_DIST directly and make sure the list
of files is sorted. Also handle distributing the IDL files from the
WebCore source tree.
2010-07-15 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
LegacyHTMLTreeBuilder should insert an implicit <colgroup> before inserting <col> to match HTML5
https://bugs.webkit.org/show_bug.cgi?id=42346
This turned out to be an easy fix.
This is covered by lots of layout tests. I believe
all of the changed results to be progressions.
This change had no measurable effect on the parser benchmark.
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::colCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::getNode):
* html/LegacyHTMLTreeBuilder.h:
2010-07-15 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Patch for https://bugs.webkit.org/show_bug.cgi?id=42410
Many leaking DatasetDOMStringMaps seen on buildbot
* dom/NodeRareData.h:
(WebCore::NodeRareData::~NodeRareData): Add a virtual destructor so
that the ElementRareData's destructor will be called when this is deleted
from the Node's destructor.
2010-07-15 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: Crash when table has empty thead tag
https://bugs.webkit.org/show_bug.cgi?id=42391
Test: accessibility/table-with-empty-thead-causes-crash.html
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObjectForSection):
2010-07-15 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Start loading plug-in streams
https://bugs.webkit.org/show_bug.cgi?id=42407
Export some ResourceRequestBase getters.
* WebCore.exp.in:
2010-07-15 Kenneth Russell <kbr@google.com>
Reviewed by Nate Chapin.
Query of NUM_COMPRESSED_TEXTURE_FORMATS must be handled by WebGL
https://bugs.webkit.org/show_bug.cgi?id=42401
No new tests; covered by gl-get-calls.html.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getParameter):
- Return 0 for getParameter(NUM_COMPRESSED_TEXTURE_FORMATS).
2010-07-07 John Gregg <johnnyg@google.com>
Reviewed by Jian Li.
Experimental directory upload feature.
https://bugs.webkit.org/show_bug.cgi?id=40872
This patch adds a new HTML attribute webkitdirectory which applies to
<input type="file"> tags and allows the user to specify a folder
which is recursively enumerated so that all the files in that folder
are added to the file list.
The files chosen in that way have a .webkitRelativePath attribute which contains
the relative path starting from the chosen folder. The relative path is
also appended to each item in the FormData when uploaded.
All the code is behind an ENABLE_DIRECTORY_UPLOAD flag.
Test: fast/forms/input-file-directory-upload.html
* html/Blob.cpp:
(WebCore::Blob::Blob):
* html/Blob.h:
* html/File.cpp:
(WebCore::File::File):
(WebCore::File::Init):
(WebCore::File::webkitRelativePath):
* html/File.h:
(WebCore::File::create):
* html/File.idl:
* html/HTMLAttributeNames.in: add webkitdirectory attribute
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setFileListFromRenderer):
(WebCore::HTMLInputElement::webkitdirectory):
* html/HTMLInputElement.h:
* html/HTMLInputElement.idl:
* platform/BlobItem.cpp:
(WebCore::FileBlobItem::create):
(WebCore::FileBlobItem::FileBlobItem):
* platform/BlobItem.h:
(WebCore::FileBlobItem::relativePath):
* platform/FileChooser.h:
(WebCore::FileChooser::allowsDirectoryUpload):
* platform/network/FormData.cpp:
(WebCore::FormData::appendKeyValuePairItems):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::allowsMultipleFiles):
(WebCore::RenderFileUploadControl::allowsDirectoryUpload):
* rendering/RenderFileUploadControl.h:
2010-07-15 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Avoid creating huge compositing layers for elements that project outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=42338
The logic that computed the bounds of compositing layers naively used the
union of the bounds of descendant, non-composited RenderLayers, without regard
to what is actually visible. This could result in huge layers for page with
elements are large negative offsets, or with large negative text-indent (both
common).
For elements without transforms on them or in their ancestor chain, and when
no 3d transforms or hardware-accelerated animations are used, can clip compositing
layers to the size of the document, or based on CSS overflow and clip.
Tests: compositing/geometry/limit-layer-bounds-clipping-ancestor.html
compositing/geometry/limit-layer-bounds-fixed-positioned.html
compositing/geometry/limit-layer-bounds-overflow-repaint.html
compositing/geometry/limit-layer-bounds-positioned-transition.html
compositing/geometry/limit-layer-bounds-positioned.html
compositing/geometry/limit-layer-bounds-transformed-overflow.html
compositing/geometry/limit-layer-bounds-transformed.html
* rendering/RenderLayerBacking.cpp:
(WebCore::enclosingOverflowClipAncestor): Walk up the RenderLayer tree
looking for an ancestor that has overflow, or to the root. Along the way, check for
transformed elements.
(WebCore::RenderLayerBacking::updateCompositedBounds): If we're in "consult
overlap" mode, and we don't have transforms, then constrain the bounds
of composited layers by the RenderView's layoutOverflowRect(), or by the
enclosing layer with overflow.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): If the offset from the renderer changes,
we need to repaint the layer.
2010-07-15 Alex Nicolaou <anicolao@chromium.org>
Reviewed by Dirk Schulze.
https://bugs.webkit.org/show_bug.cgi?id=42228
SVG Masks were in the wrong colour space for non-CG graphics layers,
because for those cases ImageBuffer needs to be explicitly told to
convert the pixels. This change adds a test that demonstrates the
problem and the conversion call to make the mask LinearRGB.
Test: svg/custom/mask-colorspace.svg
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::createMaskImage):
2010-07-15 Daniel Bates <dbates@rim.com>
Reviewed by Darin Adler.
[Mac] Implement LayoutTestController::markerTextForListItem()
https://bugs.webkit.org/show_bug.cgi?id=37929
Export symbols for WebCore::markerTextForListItem() and WebCore::toElement().
* WebCore.exp.in:
2010-07-15 Andreas Kling <andreas.kling@nokia.com>
Rubber-stamped by Kenneth Rohde Christiansen.
[Qt] Remove an unused variable in BitmapImage::draw()
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw): Remove selfSize.
2010-07-15 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: pass all parameters to WebInspector.addConsoleMessage as a single payload object
https://bugs.webkit.org/show_bug.cgi?id=42345
This refactoring is covered by existing console tests.
* bindings/js/ScriptArray.cpp:
(WebCore::ScriptArray::set):
* bindings/js/ScriptArray.h:
(WebCore::ScriptArray::ScriptArray):
(WebCore::ScriptArray::jsArray):
* bindings/v8/ScriptArray.cpp:
(WebCore::ScriptArray::set):
* bindings/v8/ScriptArray.h:
(WebCore::ScriptArray::ScriptArray):
(WebCore::ScriptArray::~ScriptArray):
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addConsoleMessage):
* inspector/InspectorFrontend.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.updateMessageRepeatCount):
(WebInspector.ConsoleMessage):
(WebInspector.ConsoleMessage.createTextMessage):
(WebInspector.ConsoleCommandResult):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.generateStylesheet):
* inspector/front-end/InjectedScriptAccess.js:
(InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName.myCallback):
(InjectedScriptAccess._installHandler.InjectedScriptAccess.prototype.methodName):
(InjectedScriptAccess._installHandler):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype._checkWarning):
* inspector/front-end/inspector.js:
(WebInspector.updateConsoleMessageExpiredCount):
(WebInspector.addConsoleMessage):
(WebInspector.log.logMessage):
(WebInspector.log):
2010-07-14 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
Backfill DNS and connect times rather than exposing hard zeros
https://bugs.webkit.org/show_bug.cgi?id=42303
There are several cases where domain lookup is not performed and/or a new connection is not established. Previously in these cases, we exposed a "0" to the API. Now, we instead "backfill" with the most recent mark's time.
Also, previously, I was using the ResourceLoadTiming API incorrectly. Each mark is an integer representing offset in milliseconds from requestTime. So all values need to be added to requestTime.
No new test because existing test expectations are set to FAIL because disable disabled by default. The expected results of existings tests change as expected when enabled.
* page/Timing.cpp:
(WebCore::toIntegerMilliseconds): Move to file static instead of class static because it might generate more optimal code. Also, instead of converting negative doubles to zero, ASSERT that they are >= 0. This is because we no longer expose hard zeros for DNS and connect, so we want to be sure that the -1s returned by the API are properly handled.
(WebCore::Timing::domainLookupStart):
(WebCore::Timing::domainLookupEnd):
(WebCore::Timing::connectStart):
(WebCore::Timing::connectEnd):
(WebCore::Timing::requestStart):
(WebCore::Timing::requestEnd):
(WebCore::Timing::responseStart):
* page/Timing.h:
2010-07-15 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: differentiate between blocking and connecting timers.
https://bugs.webkit.org/show_bug.cgi?id=42372
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::updateResponse):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::buildObjectForTiming):
* inspector/InspectorResource.h:
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype.get cached):
(WebInspector.Resource.prototype.set cached):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._showPopover):
(WebInspector.ResourceGraph):
(WebInspector.ResourceGraph.prototype.refresh):
(WebInspector.ResourceGraph.prototype._cachedChanged):
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
* loader/FrameLoader.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::connectionReused):
(WebCore::ResourceResponseBase::setConnectionID):
* platform/network/ResourceResponseBase.h:
2010-07-15 MORITA Hajime <morrita@google.com>
Text layout is wrong with a SVG Font that lacks <missing-glyph> element
https://bugs.webkit.org/show_bug.cgi?id=42352
floatWidthOfSubStringUsingSVGFont() calculated a wrong value for a
sub-run, and a fallback to system font triggers such a computation.
This change made floatWidthOfSubStringUsingSVGFont() to deal with
sub-runs.
Test: svg/custom/svg-fonts-without-missing-glyph.xhtml
* svg/SVGFont.cpp:
(WebCore::floatWidthOfSubStringUsingSVGFont):
2010-07-15 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Cycle detection needs to include shadow tree
https://bugs.webkit.org/show_bug.cgi?id=42360
Search for cycles in shadow tree fragments as well. Extended the svg/custom/recursion-* tests. No more crashes in any of them.
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::containsCyclicReference):
* rendering/RenderSVGShadowTreeRootContainer.cpp: Implemented here, not inline, so that clients don't need to include SVGShadowTreeElements.h
(WebCore::RenderSVGShadowTreeRootContainer::rootElement): Expose helper function, that returns the shadow tree root element as Node*.
* rendering/RenderSVGShadowTreeRootContainer.h:
2010-07-15 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
clipPath is missing cycle detection
https://bugs.webkit.org/show_bug.cgi?id=42350
Detect cyclic clipper resources, and ignore them on rendering. Early exit in applyResource just like the pattern/mask resources do.
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyResource):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
(WebCore::RenderSVGResourceClipper::childElementReferencesResource):
* rendering/RenderSVGResourceClipper.h:
2010-07-15 Mark Rowe <mrowe@apple.com>
Reviewed by Maciej Stachowiak.
Fix a leak of Vector instances seen on the build bot.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::drawBoxSideFromPath): Don't unnecessarily heap allocate then leak the DashArray.
2010-07-15 Mark Rowe <mrowe@apple.com>
Update the sorting in the Xcode project files.
* WebCore.xcodeproj/project.pbxproj:
2010-07-15 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel.
SVG patterns and masks should not be able to reference themselves
https://bugs.webkit.org/show_bug.cgi?id=32171
Pattern still had an issue, when using constructs like:
<pattern id="pattern1" xlink:href="#pattern2"/>
<pattern id="pattern2"><rect fill="url(#pattern1)"/></pattern>
Extended test svg/custom/recursive-pattern.svg to cover this situation.
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource): Don't perform the cycle check against node()...
(WebCore::RenderSVGResourcePattern::createTileImage): .. but against the "patternContentElement" which respect the xlink:href chaining.
2010-07-15 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Adam Barth.
Pixel test failure in moving-shadow-on-path.html and moving-shadow-on-container.html
https://bugs.webkit.org/show_bug.cgi?id=42249
Partly revert <http://trac.webkit.org/changeset/63307>. The RenderSVGRoot change caused a pixel test regression in two fast/repaint tests.
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout): Include selfNeedsLayout() check in LayoutStateRepainter argument.
2010-07-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63352.
http://trac.webkit.org/changeset/63352
https://bugs.webkit.org/show_bug.cgi?id=42341
Broke plugin-initiate-popup-window.html and plugin-javascript-
access.html on snow leopard (Requested by abarth on #webkit).
* bindings/v8/NPV8Object.cpp:
(_NPN_EvaluateHelper):
2010-07-14 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make the LegacyHTMLTreeBuilder coalesce text nodes
https://bugs.webkit.org/show_bug.cgi?id=42314
This is slightly tricky as we're side-stepping the old
parsers insertion logic in the cases where we know we can
safely merge text into an existing text node instead of
inserting a new one.
This affects lots of tests (which will need to change for
the HTML5 TreeBuilder anyway) and causes the LegacyHTMLTreeBuilder
to now pass a bunch more subtests in html5lib/runner.html.
The parser benchmark thinks that this is a small speedup.
I think I happen to have been lucky enough to get the right
cache alignment, and that this is likely a wash.
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::parseToken):
2010-07-14 Evan Stade <estade@chromium.org>
Reviewed by Kent Tamura.
[chromium] Linux scrollbar steppers are "clickable" even when disabled
https://bugs.webkit.org/show_bug.cgi?id=42231
Not tested by layout tests.
* platform/chromium/ScrollbarThemeChromiumLinux.cpp:
(WebCore::ScrollbarThemeChromiumLinux::paintButton):
2010-07-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63389.
http://trac.webkit.org/changeset/63389
https://bugs.webkit.org/show_bug.cgi?id=42311
It broke the Chromium Linux build. (Requested by dave_levin on
#webkit).
* platform/KURLGoogle.cpp:
(WebCore::decodeURLEscapeSequences):
2010-07-13 Mirko Damiani <mirko@develer.com>
Reviewed by Simon Hausmann.
[Qt] CSS border style not cleared for SVG object
https://bugs.webkit.org/show_bug.cgi?id=42150
For tests and description see:
https://bugs.webkit.org/show_bug.cgi?id=25738
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::setLineDash):
2010-07-14 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTMLTreeBuilder shouldn't crash during fast/parser/remove-parser-current-node.html
https://bugs.webkit.org/show_bug.cgi?id=42312
We were crashing because of an ASSERT I added to the attach logic in
the HTMLConstructionSite. I knew this ASSERT was wrong when I added
it, I just wanted to make sure we had test coverage of those cases.
Turns out we do! :)
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::attachAtSite):
2010-07-14 Victor Wang <victorw@chromium.org>
Reviewed by Darin Fisher.
[chromium] update KURLGoogle decodeURLEscapeSequences to
use googleurl public api so it does not access functions in
url_canon_internal. This is for chromium multi-dll build.
https://bugs.webkit.org/show_bug.cgi?id=42177
Test: (unittest) WebKit\chromium\tests\KURLTest.cpp
* platform/KURLGoogle.cpp:
(WebCore::decodeURLEscapeSequences):
2010-07-14 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Avoid extra memcpy of character tokens
https://bugs.webkit.org/show_bug.cgi?id=42002
Eric tells me this patch makes the new tree builder 1% faster than the
old tree builder on our parser benchmark.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicHTMLToken::characters):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::convertToOldStyle):
(WebCore::HTMLTreeBuilder::processFakeCharacters):
2010-07-14 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder foster parents when it should not
https://bugs.webkit.org/show_bug.cgi?id=42235
Regarding foster parenting of nodes inside tables:
"Process the token using the rules for the "in body" insertion mode,
except that if the current node is a table, tbody, tfoot, thead, or
tr element, then, whenever a node would be inserted into the current
node, it must instead be foster parented."
We were forgetting the "when the current node is" part of that check
and always foster parenting, even if we had just inserted another
element (which would have just changed the current node).
This was covered by multiple tests in html5lib/runner.html
but I wrote a reduction (one which I included) as it makes it
easier to see what's going on.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLNames::causesFosterParenting):
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::shouldFosterParent):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-14 Brady Eidson <beidson@apple.com>
Reviewed by Mark Rowe.
<rdar://problem/8131355> Apps load stale versions of pages when initial load happens via back/forward navigation.
No test case is added because DumpRenderTree is not able to test the scenario where the initial load in a WebView
occurs via a back/forward navigation.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::navigateToDifferentDocument): When the first load in a page is a back/forward navigation, we
shouldn't try to prefer cached data but should do revalidation by default.
(WebCore::FrameLoader::addExtraFieldsToRequest): Ditto.
2010-07-14 James Robinson <jamesr@chromium.org>
Reviewed by Darin Fisher.
Breaks all dependencies on Page from platform/ and cleans up GLES2Context lifetime
https://bugs.webkit.org/show_bug.cgi?id=42203
Rather than constructing a GLES2Context from a Page, pass the LayerRendererChromium
a GLES2Context in from the constructor. This way the platform/ directory can remain
ignorant of Page and friends. Also adds functions on ChromeClientChromium to request
onscreen and offscreen GLES2Contexts for callers in WebCore that need them.
* page/chromium/ChromeClientChromium.h:
* platform/chromium/GLES2Context.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::create):
(WebCore::LayerRendererChromium::LayerRendererChromium):
* platform/graphics/chromium/LayerRendererChromium.h:
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Add functions to extract individual RGBA32 components
https://bugs.webkit.org/show_bug.cgi?id=42305
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::willDraw): Use alphaChannel()
* platform/graphics/Color.h:
(WebCore::redChannel):
(WebCore::greenChannel):
(WebCore::blueChannel):
(WebCore::alphaChannel):
(WebCore::Color::red):
(WebCore::Color::green):
(WebCore::Color::blue):
(WebCore::Color::alpha):
2010-07-14 Alexey Proskuryakov <ap@apple.com>
Not reviewed.
https://bugs.webkit.org/show_bug.cgi?id=42201
Use ResourceHandle object for synchronous loading
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::loadResourceSynchronously): Fix an obvious typo.
2010-07-14 Alexey Proskuryakov <ap@apple.com>
Reviewed by Brady Eidson.
https://bugs.webkit.org/show_bug.cgi?id=42201
Use ResourceHandle object for synchronous loading
Fix a Tiger test failure.
Setting NSURLRequest properties has been moved to createNSURLConnection to share code between
sync and async cases, but on Tiger, we don't call this function.
There is more refactoring needed to make this nice, and we need to figure out if some of
request-tweaking code in createNSURLConnection needs to run on every redirect, as it happens
with CFNetwork version.
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::loadResourceSynchronously): Set main document for cookies, which is
the only thing we've been missing.
2010-07-14 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Dan Bernstein.
* WebCore.xcodeproj/project.pbxproj: Silence rsync.
2010-07-14 Darin Adler <darin@apple.com>
Reviewed by Gavin Barraclough.
Fix warning seen with newer gcc (on Qt buildbot).
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
Add parentheses around && expression.
2010-07-14 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Avoid extra memcpy of character tokens
https://bugs.webkit.org/show_bug.cgi?id=42002
This patch is just some cleanup to make fixing this bug easier.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::~ExternalCharacterTokenBuffer):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::isEmpty):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeadingWhitespace):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeadingWhitespace):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo):
(WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processCharacterBuffer):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::defaultForInitial):
(WebCore::HTMLTreeBuilder::defaultForBeforeHTML):
(WebCore::HTMLTreeBuilder::defaultForBeforeHead):
(WebCore::HTMLTreeBuilder::defaultForInHead):
(WebCore::HTMLTreeBuilder::defaultForInHeadNoscript):
(WebCore::HTMLTreeBuilder::defaultForAfterHead):
(WebCore::HTMLTreeBuilder::defaultForInTableText):
* html/HTMLTreeBuilder.h:
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: Don't add shadow rect to dirty region when shadow alpha is 0
https://bugs.webkit.org/show_bug.cgi?id=42300
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::willDraw):
2010-07-14 Kevin Ollivier <kevino@theolliviers.com>
[CURL] Build fix after request -> firstRequest rename.
* platform/network/curl/FormDataStreamCurl.cpp:
(WebCore::FormDataStream::read):
(WebCore::FormDataStream::hasMoreElements):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback):
(WebCore::ResourceHandleManager::setupPOST):
(WebCore::parseDataUrl):
(WebCore::ResourceHandleManager::dispatchSynchronousJob):
(WebCore::ResourceHandleManager::startJob):
(WebCore::ResourceHandleManager::initializeHandle):
2010-07-14 Simon Fraser <simon.fraser@apple.com>
Reviewed by John Sullivan.
<rdar://problem/8186963> Expose information about compositing layers.
Expose information about the types of compositing layers via RenderLayerBacking::compositingLayerType().
* WebCore.exp.in: Export WebCore::SpaceSplitStringData::createVector().
* WebCore.xcodeproj/project.pbxproj: Make RenderLayerBacking.h a Private header for use by WebKit.
* platform/graphics/GraphicsLayer.h: Add hasContentsLayer() and usingTiledLayer() methods.
(WebCore::GraphicsLayer::hasContentsLayer):
(WebCore::GraphicsLayer::usingTiledLayer):
* platform/graphics/mac/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::hasContentsLayer): Return true if we have a contents layer.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::compositingLayerType): Return information about the type of composited layer.
* rendering/RenderLayerBacking.h:
2010-07-14 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
TreeWalker::previousSibling calls firstChild instead of lastChild when handling FILTER_SKIP
https://bugs.webkit.org/show_bug.cgi?id=42008
TreeWalker::previousNode does not handle FILTER_REJECT when processing lastChild
https://bugs.webkit.org/show_bug.cgi?id=42010
Tests: fast/dom/TreeWalker/previousNodeLastChildReject.html
fast/dom/TreeWalker/previousSiblingLastChildSkip.html
* dom/TreeWalker.cpp:
(WebCore::TreeWalker::previousSibling): Call lastChild instead of firstChild.
(WebCore::TreeWalker::previousNode): Fix handling of FILTER_REJECT by exiting
the lastChild loop when we encounter it.
2010-07-14 Sam Weinig <sam@webkit.org>
Reviewed by Brady Eidson.
Fix crashing layout test on snowleopard.
* platform/mac/CursorMac.mm:
(WebCore::Cursor::ensurePlatformCursor): Make sure to retain the cursor.
2010-07-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: aria-checked not recognized on image map radio buttons
https://bugs.webkit.org/show_bug.cgi?id=42055
Moves some code from AccessibilityRenderObject to AccessibilityObject so that
elements that do not have render objects, but do have Nodes (like image map links
and list box options) can still make use of certain aria attributes.
Test: platform/mac/accessibility/image-map-link-used-as-radiobutton.html
* accessibility/AccessibilityImageMapLink.cpp:
(WebCore::AccessibilityImageMapLink::roleValue):
(WebCore::AccessibilityImageMapLink::accessibilityDescription):
(WebCore::AccessibilityImageMapLink::title):
Make imageMap use standard AccessibilityObject methods for getAttribute()
* accessibility/AccessibilityImageMapLink.h:
(WebCore::AccessibilityImageMapLink::node):
* accessibility/AccessibilityListBoxOption.cpp:
(WebCore::AccessibilityListBoxOption::accessibilityIsIgnored):
(WebCore::AccessibilityListBoxOption::stringValue):
* accessibility/AccessibilityListBoxOption.h:
(WebCore::AccessibilityListBoxOption::node):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::language):
Language method doesn't need a node() anymore, it can use the node from AccessibilityObject.
(WebCore::renderListItemContainerForNode):
(WebCore::AccessibilityObject::getAttribute):
(WebCore::AccessibilityObject::intValue):
Move intValue into AccessibilityObject.
(WebCore::AccessibilityObject::hasIntValue):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isCheckbox):
(WebCore::AccessibilityObject::isRadioButton):
(WebCore::AccessibilityObject::isCheckboxOrRadio):
Consolidate what defines a checkbox and radio button into AccessibilityObject.
(WebCore::AccessibilityObject::node):
(WebCore::AccessibilityObject::headingLevel):
(WebCore::AccessibilityObject::isDetached):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isPasswordField):
(WebCore::AccessibilityRenderObject::headingLevel):
(WebCore::AccessibilityRenderObject::selectedTabItem):
(WebCore::AccessibilityRenderObject::hierarchicalLevel):
(WebCore::AccessibilityRenderObject::node):
(WebCore::AccessibilityRenderObject::intValue):
* accessibility/AccessibilityRenderObject.h:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemAccessibilityText):
Stop using AccessibilityObjects getAttribute (no reason to use it really).
2010-07-14 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7759909> Certain text runs measure 1 pixel wider when measured as a whole than when measured piecewise
https://bugs.webkit.org/show_bug.cgi?id=42279
No test because the issue cannot be reproduced with standard fonts.
Word- and run-rounding works by advancing ahead to the nearest integral width. As the total
width accumulated becomes large, the float type’s low precision results in accumulated rounding
error, sometimes crossing an integer. Consequently, word-rounding makes different decisions when
measuring a multi-word run than when measuring its words individually. To work around this,
word- and run-rounding are applied only to the width accumulated since the last rounding
character.
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
2010-07-14 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Adler.
Fix enum value names for Navigation.{idl|h}
https://bugs.webkit.org/show_bug.cgi?id=42282
This is necessary after https://bugs.webkit.org/show_bug.cgi?id=42250.
No new tests because no new functionality.
* page/Navigation.cpp:
(WebCore::Navigation::type):
* page/Navigation.h:
(WebCore::Navigation::):
2010-07-14 Johnny Ding <jnd@chromium.org>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=41292
Set right UserGestureIndicator to indicate whether the NPN_Evaluate allows popup window or not.
Test: plugins/plugin-initiate-popup-window.html
* bindings/v8/NPV8Object.cpp:
(_NPN_EvaluateHelper):
2010-07-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
Bug 42117 - AX: Data table heuristics: consider assuming data table for 'zebra-striped' rows
https://bugs.webkit.org/show_bug.cgi?id=42117
Test: platform/mac/accessibility/table-with-zebra-rows.html
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
2010-07-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: VoiceOver cannot navigate this page because Safari is taking too long
https://bugs.webkit.org/show_bug.cgi?id=42219
No tests. Existing tests cover change.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::boundingBoxRect):
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: Fast-path for assigning the same color string as before to fillStyle or strokeStyle
https://bugs.webkit.org/show_bug.cgi?id=42272
Always route assignment of color strings via setFillColor() or setStrokeColor()
where we can check it against the previous value and return early if it's the same.
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::toHTMLCanvasStyle):
(WebCore::JSCanvasRenderingContext2D::strokeStyle):
(WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
(WebCore::JSCanvasRenderingContext2D::setFillStyle):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::setStrokeColor):
(WebCore::CanvasRenderingContext2D::setFillColor):
* html/canvas/CanvasRenderingContext2D.h:
2010-07-14 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Jian Li.
Separate line-ending conversion code from BlobItem
https://bugs.webkit.org/show_bug.cgi?id=40932
Add common line-ending normalization code under platform/text.
No new tests as it doesn't change any functionality.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/BlobBuilder.cpp:
(WebCore::BlobBuilder::appendString):
* html/FormDataList.cpp:
(WebCore::FormDataList::appendString):
* platform/BlobItem.cpp:
* platform/BlobItem.h:
* platform/text/LineEnding.cpp: Added.
* platform/text/LineEnding.h: Added.
2010-07-14 Erik Arvidsson <arv@chromium.org>
Reviewed by Darin Adler.
Implement border-start and border-end properties
https://bugs.webkit.org/show_bug.cgi?id=41782
Test: fast/css/border-start-end.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::resolveDirectionAwareProperty):
* css/CSSPropertyNames.in:
* inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer):
2010-07-14 Alexey Proskuryakov <ap@apple.com>
Tiger and Gtk build fixes.
https://bugs.webkit.org/show_bug.cgi?id=42201
Use ResourceHandle object for synchronous loading
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::startHttp):
2010-07-14 Sam Weinig <sam@webkit.org>
Reviewed by Darin Adler.
Patch for https://bugs.webkit.org/show_bug.cgi?id=42232
Make changing Cursors work in WebKit2.
- Converted Mac and Windows Cursor implementations to lazily
create the platform cursor.
- Add HostWindow function to set the cursor and use it from Widget::setCursor.
- Rework Windows cursor code to use fewer global variables.
* WebCore.exp.in: Updated
* loader/EmptyClients.h:
(WebCore::EmptyChromeClient::setCursor):
(WebCore::EmptyChromeClient::setLastSetCursorToCurrentCursor):
Added empty implementations.
* page/Chrome.cpp:
(WebCore::Chrome::setCursor):
* page/Chrome.h:
* page/ChromeClient.h:
Change existing setCursor() function to take a Cursor instead of a
PlatformCursorHandle. Added setLastSetCursorToCurrentCursor.
* platform/Cursor.cpp:
* platform/Cursor.h:
Added Cursor Type and the option of lazily creating the native cursor
(used on Mac and Windows for now).
* platform/HostWindow.h:
Add setCursor.
* platform/mac/CursorMac.mm:
(WebCore::createCustomCursor): This no longer needs to call determineHotSpot
as that is done when on construction of the cursor now and the hotSpot passed
in is correct.
(WebCore::Cursor::ensurePlatformCursor):
(WebCore::Cursor::Cursor):
(WebCore::Cursor::~Cursor):
(WebCore::Cursor::operator=):
(WebCore::Cursor::platformCursor):
Convert to lazily creating the native cursor on the first request and
storing the type.
* platform/mac/WidgetMac.mm:
(WebCore::Widget::setCursor):
Use HostWindow::setCursor to set the cursor. This in turn will call the
ChromeClient.
* platform/win/CursorWin.cpp:
(WebCore::createSharedCursor):
(WebCore::loadSharedCursor):
(WebCore::loadCursorByName):
(WebCore::Cursor::ensurePlatformCursor):
(WebCore::SharedCursor::~SharedCursor):
(WebCore::Cursor::Cursor):
(WebCore::Cursor::~Cursor):
(WebCore::Cursor::operator=):
(WebCore::Cursor::platformCursor):
Convert to lazily creating the native cursor on the first request and
storing the type.
* platform/win/WidgetWin.cpp:
(WebCore::Widget::setCursor):
Use HostWindow::setCursor to set the cursor. This in turn will call the
ChromeClient.
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::handleMouseEvent):
Use the new setLastSetCursorToCurrentCursor client function to ensure
the cursor is properly updated when over a plugin.
* platform/chromium/CursorChromium.cpp:
* platform/efl/CursorEfl.cpp:
* platform/gtk/CursorGtk.cpp:
* platform/haiku/CursorHaiku.cpp:
* platform/wince/CursorWince.cpp:
* platform/wx/CursorWx.cpp:
* platform/qt/CursorQt.cpp:
Change m_impl -> m_platformCursor.
2010-07-13 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
reconstructActiveFormElements should reconstruct attributes as well
https://bugs.webkit.org/show_bug.cgi?id=42222
The case in question is "<p><b foo='bar'></p>text</b>".
When the "b" is re-opened to wrap the text it should include
any attributes from the original (now closed) tag name.
There are also similar cases for the Adoption Agency algorithm, but since
the html5lib test suite did not cover those (and it wasn't immediately
obvious to me how to test those) I've saved fixing that bug for a
later patch. For now I've just made the adoption agency use
HTMLConstructionSite::createHTMLElementFromElementRecord so the
FIXME can be in one place instead of two.
In order to cleanly support createHTMLElementFromSavedElement
I re-factored "attachToCurrent" out from createHTMLElementAndAttachToCurrent
and changed all callers to use attachToCurrent(createHTMLElement(token)).
This is covered by two existing tests in html5lib/runner.html
and I wrote two more. One to cover the basic case that we now pass
and a second to cover an evil edge case which we do not.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attachToCurrent):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertHTMLElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertScriptElement):
(WebCore::HTMLConstructionSite::insertForeignElement):
(WebCore::HTMLConstructionSite::createHTMLElementFromElementRecord):
(WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):
(WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-13 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=42201
Use ResourceHandle object for synchronous loading
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::ResourceHandle): Moved common tasks from create() to constructor.
(WebCore::ResourceHandle::firstRequest): Renamed from request(). This is not changed with
redirect, so the old name was quite confusing.
* platform/network/ResourceHandle.h: Made createNSURLConnection() a member function, since
it now needs access to both ResourceHandle and ResourceHandleInternal. Added createCFURLConnection().
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal): Renamed m_request to m_firstRequest.
* platform/network/mac/ResourceHandleMac.mm:
(WebCoreSynchronousLoaderClient): Replaced an Objective C delegate class with a ResourceHandleClient
subclass. This allows for much better code sharing, with common logic is in ResourceHandle.
(WebCore::ResourceHandle::createNSURLConnection): Factored out more code that is common
between sync and async parts.
(WebCore::ResourceHandle::start): Ditto.
(WebCore::ResourceHandle::cancel): Updated for firstRequest() renaming.
(WebCore::ResourceHandle::loadResourceSynchronously): Use ResourceHandle and ResourceHandleClient,
like a good loader.
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Updated for firstRequest() renaming.
(WebCore::ResourceHandle::receivedCredential): Ditto.
(-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]): Ditto.
(-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]): Ditto.
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::WebCoreSynchronousLoaderClient::create):
(WebCore::WebCoreSynchronousLoaderClient::setAllowStoredCredentials):
(WebCore::WebCoreSynchronousLoaderClient::isDone):
(WebCore::WebCoreSynchronousLoaderClient::data):
(WebCore::WebCoreSynchronousLoaderClient::WebCoreSynchronousLoaderClient):
(WebCore::willSendRequest):
(WebCore::didReceiveResponse):
(WebCore::didReceiveData):
(WebCore::shouldUseCredentialStorageCallback):
(WebCore::didFinishLoading):
(WebCore::didFail):
(WebCore::didReceiveChallenge):
(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::~ResourceHandle):
(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::loadResourceSynchronously):
(WebCore::WebCoreSynchronousLoaderClient::willSendRequest):
(WebCore::WebCoreSynchronousLoaderClient::didReceiveResponse):
(WebCore::WebCoreSynchronousLoaderClient::didReceiveData):
(WebCore::WebCoreSynchronousLoaderClient::didFinishLoading):
(WebCore::WebCoreSynchronousLoaderClient::didFail):
(WebCore::WebCoreSynchronousLoaderClient::didReceiveAuthenticationChallenge):
(WebCore::WebCoreSynchronousLoaderClient::shouldUseCredentialStorage):
Same changes for CFNetwork version. Now it's a more direct copy/paste than before, some
day we'll share the code.
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::continueAfterContentPolicy):
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createResourceHandle):
(WebCore::ApplicationCacheGroup::didReceiveResponse):
(WebCore::ApplicationCacheGroup::didFinishLoading):
(WebCore::ApplicationCacheGroup::didFail):
(WebCore::ApplicationCacheGroup::didReceiveManifestResponse):
* loader/icon/IconLoader.cpp:
(WebCore::IconLoader::didReceiveResponse):
(WebCore::IconLoader::didFail):
(WebCore::IconLoader::didFinishLoading):
* platform/network/curl/ResourceHandleManager.cpp:
(WebCore::headerCallback):
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::start):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::loadResourceSynchronously):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::startHttp):
Updated for request() -> firstRequest renaming.
2010-07-14 Marcus Bulach <bulach@chromium.org>
Reviewed by Jeremy Orlow.
Code generator: ensure generated constants match their corresponding enums.
https://bugs.webkit.org/show_bug.cgi?id=42250
Specific interfaces can use DontCheckEnums attribute to avoid generating the compile-time check.
Tests: updated bindings tests. Generated code should compile.
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/CPP/WebDOMTestObj.h:
(WebDOMTestObj::):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::):
(WebCore::JSTestObjPrototype::getOwnPropertySlot):
(WebCore::JSTestObjPrototype::getOwnPropertyDescriptor):
(WebCore::jsTestObjCONST_VALUE_0):
(WebCore::jsTestObjCONST_VALUE_1):
(WebCore::jsTestObjCONST_VALUE_2):
(WebCore::jsTestObjCONST_VALUE_4):
(WebCore::jsTestObjCONST_VALUE_8):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::):
(WebCore::ConfigureV8TestObjTemplate):
* css/WebKitCSSTransformValue.idl:
* dom/DOMCoreException.idl:
* dom/EventException.idl:
* dom/Node.idl:
* dom/OverflowEvent.idl:
* dom/RangeException.idl:
* html/FileError.idl:
* html/FileReader.idl:
* html/canvas/Float32Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
* html/canvas/WebGLRenderingContext.idl:
* inspector/JavaScriptCallFrame.idl:
* loader/appcache/DOMApplicationCache.idl:
* storage/SQLException.idl:
* svg/SVGComponentTransferFunctionElement.idl:
* svg/SVGException.idl:
* svg/SVGFEBlendElement.idl:
* svg/SVGFEColorMatrixElement.idl:
* svg/SVGFECompositeElement.idl:
* svg/SVGFEConvolveMatrixElement.idl:
* svg/SVGFEDisplacementMapElement.idl:
* svg/SVGFEMorphologyElement.idl:
* svg/SVGFETurbulenceElement.idl:
* svg/SVGGradientElement.idl:
* xml/XMLHttpRequestException.idl:
* xml/XPathException.idl:
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Ojan Vafai.
Unbreak fast/canvas/gradient-add-second-start-end-stop.html
Assigning the same CanvasGradient or CanvasPattern to fillStyle
or strokeStyle may not be a no-op since the object could have been
modified since it was last set.
Regressed with <http://trac.webkit.org/changeset/63327>
* html/canvas/CanvasStyle.cpp:
(WebCore::operator==):
2010-07-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: Make assigning the same fillStyle or strokeStyle a fast no-op
https://bugs.webkit.org/show_bug.cgi?id=42267
Avoid calling into GraphicsContext when setting a style to its current value.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setStrokeStyle): Return early if the
new style is the same as the current one.
(WebCore::CanvasRenderingContext2D::setFillStyle): Same.
* html/canvas/CanvasStyle.cpp:
(WebCore::operator==): Added operator==(CanvasStyle, CanvasStyle)
* html/canvas/CanvasStyle.h:
2010-07-14 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
Implement Web Timing redirectStart, redirectEnd, redirectCount
https://bugs.webkit.org/show_bug.cgi?id=42018
Tests: http/tests/misc/webtiming-one-redirect.php
http/tests/misc/webtiming-two-redirects.php
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): This method is called for each request (including server redirects). fetchStart is updated to the current time on each invocation so that it represents fetching of the final document and doesn't include redirect time. For each redirect, redirectCount is incremented and redirectStart to redirectEnd measures the cumulative fetch time for all redirects.
* page/Navigation.cpp:
(WebCore::Navigation::redirectCount): http://dev.w3.org/2006/webapi/WebTiming/#nt-redirect-count
* page/Timing.cpp:
(WebCore::Timing::redirectStart): http://dev.w3.org/2006/webapi/WebTiming/#nt-redirect-start
(WebCore::Timing::redirectEnd): http://dev.w3.org/2006/webapi/WebTiming/#nt-redirect-end
* page/Timing.h:
* page/Timing.idl:
2010-07-14 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Antonio Gomes.
Generate MathML files with CMake even if MathML is disabled. This
fixes EFL build after r63274.
https://bugs.webkit.org/show_bug.cgi?id=42263
No new functionality, so no new tests.
* CMakeLists.txt:
2010-07-14 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Get rid of libWebCoreJS
https://bugs.webkit.org/show_bug.cgi?id=42083
Remove the need to build libWebCoreJS.
* GNUmakefile.am: List all auto-generated source files for libWebCoreJS
instead of relying on make to build libWebCoreJS. This is a more autotools-
-friendly approach.
2010-07-14 Eric Carlson <eric.carlson@apple.com>
One more unreviewed build fix for r63319.
* html/TimeRanges.cpp:
(TimeRanges::nearest):
2010-07-14 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Enable toggling of the "Inspect Element" mode from the browser
https://bugs.webkit.org/show_bug.cgi?id=42169
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel):
(WebInspector.ElementsPanel.prototype.handleShortcut):
(WebInspector.ElementsPanel.prototype.toggleSearchingForNode):
* inspector/front-end/inspector.js:
(WebInspector.toggleSearchingForNode):
2010-07-14 Eric Carlson <eric.carlson@apple.com>
Unreviewed, build fix for r63319.
* html/TimeRanges.cpp:
(TimeRanges::nearest): Include math.h and use narrowPrecisionToFloat.
2010-07-14 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
Update media element's seeking logic
https://bugs.webkit.org/show_bug.cgi?id=42178
<rdar://problem/8185817>
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::seek): When asked to seek to an unbuffered time, seek to the
nearest time instead of generating an exception. Re-order the logic to match spec text.
* html/TimeRanges.cpp:
(TimeRanges::nearest): New, return the value closest to the specified time.
* html/TimeRanges.h:
2010-07-14 Hans Wennborg <hans@chromium.org>
Reviewed by Steve Block.
Rename DeviceOrientationController::onOrientationChange to didChangeDeviceOrientation
https://bugs.webkit.org/show_bug.cgi?id=42257
According to convention, we should avoid "on" in favor of "did" in function names.
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):
* dom/DeviceOrientationController.h:
2010-07-14 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kent Tamura.
Notify browser about popup being deleted. In EFL and BREW ports, the
WebCore::Popup object was being deleted leaving the popup in browser
alive. Popups can be deleted in two ways: either from browser to webcore or
from webcore to browser. The first path was ok. The problem was when the
user changed the page with a popup still opened. This would trigger the
second path and would cause WebCore::Popup to be deleted without
notifying browser.
https://bugs.webkit.org/show_bug.cgi?id=41877
No new functionality so no new tests.
* platform/brew/PopupMenuBrew.cpp:
(WebCore::PopupMenu::~PopupMenu): call hide() when object is
destroyed.
* platform/efl/PopupMenuEfl.cpp:
(WebCore::PopupMenu::~PopupMenu): ditto.
2010-07-14 Satish Sampath <satish@chromium.org>
Reviewed by Kent Tamura.
Invoke speech recognition when user clicks on the speech button of input elements.
http://bugs.webkit.org/show_bug.cgi?id=42047
No new tests, the relevant LayoutTestController bindings will be added in a subsequent patch.
* rendering/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
(WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Added click handling.
(WebCore::InputFieldSpeechButtonElement::speechInput):
(WebCore::InputFieldSpeechButtonElement::recordingComplete): Callback to indicate recording progress.
(WebCore::InputFieldSpeechButtonElement::setRecognitionResult): Callback to receive recognized text.
(WebCore::InputFieldSpeechButtonElement::detach):
* rendering/TextControlInnerElements.h:
2010-07-14 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63305.
http://trac.webkit.org/changeset/63305
https://bugs.webkit.org/show_bug.cgi?id=42256
"debugger-breakpoints-not-activated-on-reload.html fails on
GTK" (Requested by yurys on #webkit).
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
(WebInspector.ScriptsPanel.prototype._breakpointAdded):
(WebInspector.ScriptsPanel.prototype._scriptOrResourceForURLAndLine):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
(WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
2010-07-14 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
Provide implementation of DeviceOrientationController and hook into DOMWindow
https://bugs.webkit.org/show_bug.cgi?id=39588
Added DeviceOrientationController::addListener() and removeListener()
to start and stop the client and added calls from DomWindow. Implemented
DeviceOrientationController::onDeviceOrientationChange() to fire a
DeviceOrientationEvent on the window object.
No new tests yet, pending LayoutTestController methods for mock DeviceOrientation.
* dom/DeviceOrientationClient.h:
* dom/DeviceOrientationController.cpp:
(WebCore::DeviceOrientation::addListener):
(WebCore::DeviceOrientation::removeListener):
(WebCore::DeviceOrientation::removeAllListeners):
(WebCore::DeviceOrientationController::onDeviceOrientationChange):
* dom/DeviceOrientationController.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::addEventListener):
(WebCore::DOMWindow::removeEventListener):
(WebCore::DOMWindow::removeAllEventListeners):
2010-07-14 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: remove v8 debugger code that doesn't use ScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=42164
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::retrieveFrame):
(WebCore::ScriptDebugServer::addListener):
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::setBreakpointsActivated):
(WebCore::ScriptDebugServer::pauseOnExceptionsState):
(WebCore::ScriptDebugServer::setPauseOnExceptionsState):
(WebCore::ScriptDebugServer::continueProgram):
(WebCore::ScriptDebugServer::stepIntoStatement):
(WebCore::ScriptDebugServer::stepOverStatement):
(WebCore::ScriptDebugServer::stepOutOfFunction):
(WebCore::ScriptDebugServer::editScriptSource):
(WebCore::ScriptDebugServer::handleV8DebugEvent):
* bindings/v8/ScriptDebugServer.h:
2010-07-14 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: Clean-up InspectorBackend code. In the next changes
InspectorBackend content will be generated by scripts. As far as
generator is very simple thing all nontrivial function should be
moved to InspectorController and DOMAgent.
https://bugs.webkit.org/show_bug.cgi?id=42171
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::pause):
* bindings/js/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::activateBreakpoints):
(WebCore::ScriptDebugServer::deactivateBreakpoints):
* bindings/v8/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::activateBreakpoints):
(WebCore::ScriptDebugServer::deactivateBreakpoints):
(WebCore::ScriptDebugServer::pause):
* inspector/Inspector.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::saveApplicationSettings):
(WebCore::InspectorBackend::saveSessionSettings):
(WebCore::InspectorBackend::enableSearchingForNode):
(WebCore::InspectorBackend::disableSearchingForNode):
(WebCore::InspectorBackend::enableMonitoringXHR):
(WebCore::InspectorBackend::disableMonitoringXHR):
(WebCore::InspectorBackend::getResourceContent):
(WebCore::InspectorBackend::reloadPage):
(WebCore::InspectorBackend::activateBreakpoints):
(WebCore::InspectorBackend::deactivateBreakpoints):
(WebCore::InspectorBackend::pause):
(WebCore::InspectorBackend::resume):
(WebCore::InspectorBackend::stepOverStatement):
(WebCore::InspectorBackend::stepIntoStatement):
(WebCore::InspectorBackend::stepOutOfFunction):
(WebCore::InspectorBackend::setPauseOnExceptionsState):
(WebCore::InspectorBackend::copyNode):
(WebCore::InspectorBackend::pushNodeByPathToFrontend):
(WebCore::InspectorBackend::highlightDOMNode):
(WebCore::InspectorBackend::hideDOMNodeHighlight):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::saveApplicationSettings):
(WebCore::InspectorController::saveSessionSettings):
(WebCore::InspectorController::highlightDOMNode):
(WebCore::InspectorController::resume):
(WebCore::InspectorController::setPauseOnExceptionsState):
(WebCore::InspectorController::getResourceContent):
(WebCore::InspectorController::reloadPage):
* inspector/InspectorController.h:
(WebCore::InspectorController::hideDOMNodeHighlight):
(WebCore::InspectorController::startProfiling):
(WebCore::InspectorController::stopProfiling):
(WebCore::InspectorController::enableSearchingForNode):
(WebCore::InspectorController::disableSearchingForNode):
(WebCore::InspectorController::enableMonitoringXHR):
(WebCore::InspectorController::disableMonitoringXHR):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::copyNode):
(WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
* inspector/InspectorDOMAgent.h:
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.pause):
(.WebInspector.InspectorBackendStub.prototype.resume):
(.WebInspector.InspectorBackendStub.prototype.stepIntoStatement):
(.WebInspector.InspectorBackendStub.prototype.stepOutOfFunction):
(.WebInspector.InspectorBackendStub.prototype.stepOverStatement):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._togglePause):
(WebInspector.ScriptsPanel.prototype._stepOverClicked):
(WebInspector.ScriptsPanel.prototype._stepIntoClicked):
(WebInspector.ScriptsPanel.prototype._stepOutClicked):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
2010-07-14 Joone Hur <joone@kldp.org>
Reviewed by Jian Li.
[GTK] Enabling File Reader/Writer APIs
https://bugs.webkit.org/show_bug.cgi?id=40209
The layout test fast/files will be enabled after eventSender.beginDragWithFiles is implemented for GTK.
* platform/gtk/FileSystemGtk.cpp:
(WebCore::openFile): Added.
(WebCore::readFromFile): Added.
2010-07-14 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Inconsistent LayoutRepainter usage in the SVG renderers
https://bugs.webkit.org/show_bug.cgi?id=42245
Unify LayoutRepainter usage in the SVG renders, as RenderBlock does it, always use:
LayoutRepainter repainter(*this, m_everHadLayout && checkForRepaintDuringLayout());
instead of including selfWillPaint / selfNeedsLayout checks. This improves layout test
performance by 8s on my machine with a debug build (from 76.72s -> 68.59s, averaged over 5 runs)
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::layout):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::layout):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::layout):
2010-07-14 Kent Tamura <tkent@chromium.org>
Unreviewed, build fix for r63300.
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::containsCyclicReference):
2010-07-14 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: do not activate all breakpoints on page reload
https://bugs.webkit.org/show_bug.cgi?id=41461
Test: inspector/debugger-breakpoints-not-activated-on-reload.html
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._breakpointAdded):
(WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
2010-07-14 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: use OwnPtr to manage ConsoleMessages in InspectorController
https://bugs.webkit.org/show_bug.cgi?id=42243
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::addConsoleMessage):
(WebCore::InspectorController::clearConsoleMessages):
* inspector/InspectorController.h:
(WebCore::InspectorController::consoleMessages):
2010-07-14 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel.
SVG patterns and masks should not be able to reference themselves
https://bugs.webkit.org/show_bug.cgi?id=32171
Don't apply pattern/mask resources, if they contain cyclic references. Gradients/Filters are not affected.
Clippers are already correcly handling this on their own, as well as markers (all which require subtle quirks, covered by existing tests).
Tests: svg/custom/recursive-filter.svg
svg/custom/recursive-gradient.svg
svg/custom/recursive-mask.svg
svg/custom/recursive-pattern.svg
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer): Stop using idForStyleResolution(), but use getIdAttribute(), no functional change though.
(WebCore::RenderSVGResourceContainer::idChanged): Ditto.
(WebCore::RenderSVGResourceContainer::childElementReferencesResource): To be implemented by classes inheriting from us. Defaults to false.
(WebCore::RenderSVGResourceContainer::containsCyclicReference): Check whether this resource contains contains a child which references ourselves.
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::childElementReferencesResource): Check whether the masker child specifies mask=".." with the same URI than ourselves.
(WebCore::RenderSVGResourceMasker::applyResource): Early exit if we contain a cylic reference.
* rendering/RenderSVGResourceMasker.h:
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::childElementReferencesResource): Check whether the masker child specifies fill=".." with the same URI than ourselves.
(WebCore::RenderSVGResourcePattern::applyResource): Early exit if we contain a cylic reference.
* rendering/RenderSVGResourcePattern.h:
* svg/SVGPaint.cpp:
(WebCore::SVGPaint::matchesTargetURI): Add new helper function comparing a SVGPaint URI with a given reference id.
* svg/SVGPaint.h:
2010-07-14 Eric Seidel <eric@webkit.org>
Reviewed by Nikolas Zimmermann.
Selection dumping code should not dump body's offset in the document
https://bugs.webkit.org/show_bug.cgi?id=42238
This requires updating the results of many layout tests,
but has no functional change.
* rendering/RenderTreeAsText.cpp:
(WebCore::nodePosition):
2010-07-14 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
<input type=number> UI: inner spin button layout
https://bugs.webkit.org/show_bug.cgi?id=41924
Add layout/event/style code for the inner spin button, which is
going to be used for Windows implementation.
No new tests because no ports implement the inner spin button yet.
* rendering/RenderTextControlSingleLine.cpp:
Introduce m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::~RenderTextControlSingleLine):
Detach m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::layout):
Set position and size of m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::nodeAtPoint):
Handle m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::forwardEvent):
Handle m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::textBlockWidth):
Shorten the text block width by m_innerSpinButton width.
(WebCore::RenderTextControlSingleLine::preferredContentWidth):
Add m_innerSpinButton width.
(WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
Handle m_innerSpinButton.
(WebCore::RenderTextControlSingleLine::createInnerSpinButtonStyle):
Make style for m_innerSpinButton with INNER_SPIN_BUTTON pseudo class.
* rendering/RenderTextControlSingleLine.h:
2010-07-14 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
<input type=number> UI: Support disabled/readonly states
https://bugs.webkit.org/show_bug.cgi?id=38568
Implement isEnabledFormControl() and isReadOnlyFormControl() of
SpinButtonElement. They returns the states of the parent <input> element.
The existing isEnabledFormControl() had a bug. It didn't have 'const'
modifier.
Test: fast/forms/input-appearance-spinbutton-disabled-readonly.html
* rendering/TextControlInnerElements.cpp:
(WebCore::SpinButtonElement::defaultEventHandler):
- If the input element is disabled or read-only, don't process events.
- Protect 'input' object from destruction during focus().
- Fix a hit-test issue. We don't need to add renderBox()->y() because
'local' is relative to the RenderBox.
- Some code cleanup
* rendering/TextControlInnerElements.h:
(WebCore::SpinButtonElement::isEnabledFormControl):
(WebCore::SpinButtonElement::isReadOnlyFormControl):
2010-07-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Page flashes to mostly white towards the end of loading
https://bugs.webkit.org/show_bug.cgi?id=42230
We constrain the size of huge composited layers. When doing so, we
need to use the constained size to set the position as well
as the dimensions, to ensure the layer appears in the correct place.
Test: compositing/tiling/constrained-layer-size.html
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::updateLayerPosition):
2010-07-13 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Linux implementation of <input type=number> UI
https://bugs.webkit.org/show_bug.cgi?id=41925
- Move the code for scrollbar steppers from ScrollbarThemeChromiumLinux
to PlatformThemeChromiumGtk.
- Move the code for scrollbar colors from RenderThemeChromiumLinux
to PlatformThemeChromiumGtk.
* WebCore.gypi:
* platform/chromium/PlatformThemeChromiumGtk.cpp: Added.
(WebCore::PlatformThemeChromiumGtk::setScrollbarColors): Moved from RenderThemeChromiumLinux.
(WebCore::clamp): Moved from ScrollbarThemeChromiumLinux.
(WebCore::PlatformThemeChromiumGtk::saturateAndBrighten): ditto.
(WebCore::PlatformThemeChromiumGtk::outlineColor): ditto.
(WebCore::PlatformThemeChromiumGtk::paintArrowButton): ditto.
* platform/chromium/PlatformThemeChromiumGtk.h: Added.
* platform/chromium/ScrollbarThemeChromiumLinux.cpp:
(WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
(WebCore::ScrollbarThemeChromiumLinux::paintButton):
Move the main part of the code to PlatformThemeChromiumGtk.
(WebCore::ScrollbarThemeChromiumLinux::paintThumb):
* rendering/RenderThemeChromiumLinux.cpp:
(WebCore::RenderThemeChromiumLinux::adjustInnerSpinButtonStyle): Added.
(WebCore::RenderThemeChromiumLinux::paintInnerSpinButton): Added.
* rendering/RenderThemeChromiumLinux.h:
2010-07-13 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Fisher
Implementing DatabaseSync::transaction() and DatabaseSync::changeVersion().
https://bugs.webkit.org/show_bug.cgi?id=40607
Tests: fast/workers/storage/change-version-handle-reuse-sync.html
fast/workers/storage/change-version-sync.html
fast/workers/storage/empty-statement-sync.html
fast/workers/storage/execute-sql-args-sync.html
fast/workers/storage/executesql-accepts-only-one-statement-sync.html
fast/workers/storage/multiple-transactions-on-different-handles-sync.html
fast/workers/storage/open-database-creation-callback-sync.html
fast/workers/storage/open-database-empty-version-sync.html
fast/workers/storage/open-database-inputs-sync.html
fast/workers/storage/open-database-set-empty-version-sync.html
fast/workers/storage/open-database-while-transaction-in-progress-sync.html
fast/workers/storage/sql-data-types-sync.html
fast/workers/storage/sql-exception-codes-sync.html
fast/workers/storage/test-authorizer-sync.html
fast/workers/storage/transaction-in-transaction-sync.html
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* storage/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::maximumSize):
(WebCore::AbstractDatabase::incrementalVacuumIfNeeded):
* storage/AbstractDatabase.h:
(WebCore::AbstractDatabase::sqliteDatabase):
* storage/ChangeVersionWrapper.cpp:
(WebCore::ChangeVersionWrapper::performPreflight):
(WebCore::ChangeVersionWrapper::performPostflight):
* storage/Database.cpp:
(WebCore::Database::performGetTableNames):
* storage/Database.h:
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::createVTable):
(WebCore::DatabaseAuthorizer::dropVTable):
* storage/DatabaseCallback.h:
* storage/DatabaseSync.cpp:
(WebCore::ChangeVersionPreflightStep::create):
(WebCore::ChangeVersionPreflightStep::performStep):
(WebCore::ChangeVersionPreflightStep::ChangeVersionPreflightStep):
(WebCore::ChangeVersionPostflightStep::create):
(WebCore::ChangeVersionPostflightStep::performStep):
(WebCore::ChangeVersionPostflightStep::ChangeVersionPostflightStep):
(WebCore::DatabaseSync::changeVersion):
(WebCore::DatabaseSync::transaction):
(WebCore::DatabaseSync::runTransaction):
* storage/DatabaseSync.h:
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
* storage/SQLError.h:
* storage/SQLResultSet.cpp:
* storage/SQLResultSet.h:
* storage/SQLStatementCallback.h:
* storage/SQLStatementErrorCallback.h:
* storage/SQLStatementSync.cpp: Copied from WebCore/storage/SQLStatement.cpp.
(WebCore::SQLStatementSync::SQLStatementSync):
(WebCore::SQLStatementSync::execute):
* storage/SQLStatementSync.h: Added.
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::deliverQuotaIncreaseCallback):
(WebCore::SQLTransaction::postflightAndCommit):
* storage/SQLTransaction.h:
* storage/SQLTransactionCallback.h:
* storage/SQLTransactionClient.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
* storage/SQLTransactionClient.h:
* storage/SQLTransactionErrorCallback.h:
* storage/SQLTransactionSync.cpp:
(WebCore::transactionClient):
(WebCore::SQLTransactionSync::create):
(WebCore::SQLTransactionSync::SQLTransactionSync):
(WebCore::SQLTransactionSync::~SQLTransactionSync):
(WebCore::SQLTransactionSync::executeSQL):
(WebCore::SQLTransactionSync::begin):
(WebCore::SQLTransactionSync::execute):
(WebCore::SQLTransactionSync::commit):
(WebCore::SQLTransactionSync::rollback):
* storage/SQLTransactionSync.h:
(WebCore::SQLTransactionSync::SQLTransactionSyncOptionalStep::~SQLTransactionSyncOptionalStep):
* storage/SQLTransactionSyncCallback.h:
* storage/chromium/SQLTransactionClientChromium.cpp:
(WebCore::SQLTransactionClient::didCommitWriteTransaction):
(WebCore::SQLTransactionClient::didExecuteStatement):
(WebCore::SQLTransactionClient::didExceedQuota):
2010-07-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63162.
http://trac.webkit.org/changeset/63162
https://bugs.webkit.org/show_bug.cgi?id=42224
This is no longer needed (Requested by olliej_ on #webkit).
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
2010-07-13 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix my misreading of "clear to the last marker" in the HTML5 spec
https://bugs.webkit.org/show_bug.cgi?id=42199
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::clearToLastMarker):
* html/HTMLFormattingElementList.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-13 Oliver Hunt <oliver@apple.com>
Reviewed by Gavin Barraclough.
ES5 requires BOMs to be treated as whitespace
https://bugs.webkit.org/show_bug.cgi?id=42218
Remove BOM handling logic from WebCore Script objects.
* bindings/js/StringSourceProvider.h:
(WebCore::StringSourceProvider::StringSourceProvider):
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
(WebCore::CachedScript::script):
* loader/CachedScript.h:
2010-07-13 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: rect(x,y,w,h) should move to (x,y) even if w=0 and h=0
https://bugs.webkit.org/show_bug.cgi?id=42211
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::rect):
2010-07-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Show IDs and classnames in layer tree dumps
https://bugs.webkit.org/show_bug.cgi?id=42213
When dumping the layer tree via showLayerTree(), include id and class attributes for
ease of debugging.
No tests, since this is debug-only code.
* rendering/RenderLayer.cpp:
(showLayerTree):
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
* rendering/RenderTreeAsText.h:
(WebCore::):
2010-07-13 Simon Fraser <simon.fraser@apple.com>
Build fix: fix WebCore exports by editing the .in file, rather than the generated file.
* WebCore.exp.in:
2010-07-13 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=42216
ResourceRequest::doUpdateResourceRequest() crashes if client denied request
This is covered by many regression tests with patch for bug 42201 applied (because it makes
us also use this code path for sync requests, and those currently have more strict limitations).
* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::doUpdateResourceRequest): Added a null check.
2010-07-13 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make our end tag in-foreign-content mode spec bug workarounds more closely match minefield
https://bugs.webkit.org/show_bug.cgi?id=42187
I do not expect these work-arounds to be permanent. Hixie has promised to
addresses the feedback to the parser sections of HTML5 soon.
I added these hacks to make our hacks more-closely match Minefield's hacks
and thus have us "pass" a few more html5lib runner tests.
We now pass all of the html5lib foreign content tests
(thus we'll likely need to write more).
Tested by html5lib/runner.html
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::contains):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-12 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
Wire network times from ResourceLoadTiming to performance.timing
https://bugs.webkit.org/show_bug.cgi?id=41824
* page/Timing.cpp:
(WebCore::Timing::domainLookupStart): http://dev.w3.org/2006/webapi/WebTiming/#nt-domain-lookupstart
(WebCore::Timing::domainLookupEnd): http://dev.w3.org/2006/webapi/WebTiming/#nt-domain-lookupend
(WebCore::Timing::connectStart): http://dev.w3.org/2006/webapi/WebTiming/#nt-connect-start
(WebCore::Timing::connectEnd): http://dev.w3.org/2006/webapi/WebTiming/#nt-connect-end
(WebCore::Timing::requestStart): http://dev.w3.org/2006/webapi/WebTiming/#nt-request-start
(WebCore::Timing::requestEnd): http://dev.w3.org/2006/webapi/WebTiming/#nt-request-end
(WebCore::Timing::responseStart): http://dev.w3.org/2006/webapi/WebTiming/#nt-response-start
(WebCore::Timing::resourceLoadTiming):
* page/Timing.h:
* page/Timing.idl:
2010-07-13 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add support for loading javascript: URLs
https://bugs.webkit.org/show_bug.cgi?id=42221
* WebCore.exp.in:
Export protocolIsJavaScript and ScriptValue::getString.
2010-07-13 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add support for URL frame loading using NPN_GetURLNotify
https://bugs.webkit.org/show_bug.cgi?id=42192
* WebCore.exp.in:
Export ResourceRequestBase::setHTTPMethod and ResourceRequestBase::setURL.
2010-07-04 Zhenyao Mo <zmo@google.com>
Reviewed by Darin Fisher.
Need to track texture completeness
https://bugs.webkit.org/show_bug.cgi?id=41381
Test: fast/canvas/webgl/texture-complete.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext): Init max texture level.
(WebCore::WebGLRenderingContext::bindTexture): Pass max texture level to setTarget().
(WebCore::WebGLRenderingContext::copyTexImage2D): Cache full texture info rather than partial.
(WebCore::WebGLRenderingContext::generateMipmap): Ditto.
(WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
(WebCore::WebGLRenderingContext::validateTexFuncParameters): Also validate level.
* html/canvas/WebGLRenderingContext.h: Add max texture level.
* html/canvas/WebGLTexture.cpp: Update the class to fully cache texture information and track NPOT and COMPLETE states.
(WebCore::WebGLTexture::WebGLTexture):
(WebCore::WebGLTexture::setTarget): Check whether the texture is initialized or has been deleted.
(WebCore::WebGLTexture::setParameteri): Ditto.
(WebCore::WebGLTexture::setParameterf): Ditto.
(WebCore::WebGLTexture::setLevelInfo): Set texture info.
(WebCore::WebGLTexture::generateMipmapLevelInfo): Generate texture info for all levels after generateMipmaps() is called.
(WebCore::WebGLTexture::getInternalFormat): Return internal format on texture face 0 level 0.
(WebCore::WebGLTexture::isNPOT): Check whether the texture is initialized or has been deleted.
(WebCore::WebGLTexture::needToUseBlackTexture): Ditto.
(WebCore::WebGLTexture::_deleteObject):
(WebCore::WebGLTexture::mapTargetToIndex): Map target to index.
(WebCore::WebGLTexture::canGenerateMipmaps): Check whether Mipmaps can be generated.
(WebCore::WebGLTexture::computeLevelCount): Compute texture level count from width/height.
(WebCore::WebGLTexture::update): Update NPOT/COMPLETE states.
* html/canvas/WebGLTexture.h: Ditto.
(WebCore::WebGLTexture::LevelInfo::LevelInfo): Add data structure to fully cache texture info.
(WebCore::WebGLTexture::LevelInfo::setInfo): Set information.
2010-07-13 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: drawImage() with wrong 'image' argument type should always throw TypeError
https://bugs.webkit.org/show_bug.cgi?id=42160
Test: canvas/philip/tests/2d.drawImage.wrongtype.html
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::drawImage): Throw TypeError instead of
TYPE_MISMATCH_ERR if 'image' argument is not an image, canvas or video element.
2010-07-13 Aaron Boodman <aa@chromium.org>
Reviewed by Timothy Hatcher.
Don't reset per-document user style caches when user styles are updated in
Chromium.
https://bugs.webkit.org/show_bug.cgi?id=42003
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserStyleSheetToWorld):
(WebCore::PageGroup::removeUserStyleSheetFromWorld):
(WebCore::PageGroup::removeUserStyleSheetsFromWorld):
(WebCore::PageGroup::removeAllUserContent):
(WebCore::PageGroup::resetUserStyleCacheInAllFrames):
* page/PageGroup.h:
2010-07-13 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
On Leopard, media element can't handle audio/mp4 MIME type in source tag
https://bugs.webkit.org/show_bug.cgi?id=29326
Test: media/media-can-play-mpeg-audio.html
* platform/MIMETypeRegistry.cpp:
(WebCore::TypeExtensionPair::): Add "audio/mp4", "m4a" to mappings table.
2010-07-13 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
Implement performance.timing.fetchStart
https://bugs.webkit.org/show_bug.cgi?id=41816
See: http://dev.w3.org/2006/webapi/WebTiming/#nt-fetch-start
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::willSendRequest): Record the fetchStart time for each request for the main resource. This means it is called for each server redirect, overwritting the previous value. In https://bugs.webkit.org/show_bug.cgi?id=42018, this will be modified such that if a previous value exists, it is stored as the redirect time.
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* page/Timing.cpp:
(WebCore::Timing::fetchStart):
* page/Timing.h:
* page/Timing.idl:
2010-07-13 Satish Sampath <satish@chromium.org>
Reviewed by Steve Block.
Speech input plumbing in webcore
https://bugs.webkit.org/show_bug.cgi?id=41518
Adds the following:
- a SpeechInput class to be used by the speech enabled HTML elements
- a SpeechInputListener interface to be implemented by the speech enabled HTML elements
- a SpeechInputClient interface (defined in WebCore, implemented by WebKit) for WebCore to call into WebKit.
This is available as a member of WebCore::Page, set by the platforms which support speech input.
- a SpeechInputClientListener interface for WebCore to receive events from WebKit
No new tests, the relevant LayoutTestController bindings will be added in a subsequent patch.
* Android.mk:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h: Added SpeechInputClient member variable and associated methods.
(WebCore::Page::setSpeechInputClient):
(WebCore::Page::speechInputClient):
* page/SpeechInput.cpp: Added new class to provide speech API services to HTML elements.
(WebCore::SpeechInput::SpeechInput):
(WebCore::SpeechInput::recordingComplete):
(WebCore::SpeechInput::setRecognitionResult):
(WebCore::SpeechInput::startRecognition):
* page/SpeechInput.h: Added.
(WebCore::SpeechInput::~SpeechInput):
(WebCore::SpeechInput::client):
* page/SpeechInputListener.h: Added.
(WebCore::SpeechInputListener::~SpeechInputListener):
* page/SpeechInputClient.h: Added new interface implemented by WebKit to bubble up speech API requests to the embedder.
(WebCore::SpeechInputClient::~SpeechInputClient):
* page/SpeechInputClientListener.h: Added.
(WebCore::SpeechInputClientListener::~SpeechInputClientListener):
2010-07-13 Richard Moore <rich@kde.org>, Robert Hogan <robert@webkit.org>
Reviewed by Simon Hausmann.
[Qt] MIME handling in qtwebkit network layer case-sensitivity
https://bugs.webkit.org/show_bug.cgi?id=28654
Like other platforms, Qt needs to convert MIME types to lower case
so they will be handled by WebCore.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2010-07-13 James Robinson <jamesr@chromium.org>
Reviewed by Simon Fraser.
REGRESSION(55056) debug builds ASSERT falsely on pages with animations
https://bugs.webkit.org/show_bug.cgi?id=42175
Revision 55065 added some repaint box precomputation and some debug ASSERT()ions
to ensure the precomputed values were valid. However, if animations are enabled and
not hardware accelerated, the repaint box dimensions become time-dependent and the
ASSERT()s can trigger. This can make it impossible to interactively debug pages
like google maps.
https://bugs.webkit.org/show_bug.cgi?id=37048 is another example of an assertion
failing due to time dependent animation values.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::repaintAfterLayoutIfNeeded):
2010-07-13 Zhenyao Mo <zmo@google.com>
Reviewed by Darin Fisher.
Implement bufferData and bufferSubData with ArrayBuffer as input
https://bugs.webkit.org/show_bug.cgi?id=41884
Test: fast/canvas/webgl/buffer-data-array-buffer.html
* html/canvas/WebGLBuffer.cpp: Implement associateBufferData & associateBufferSubData with ArrayBuffer as input.
(WebCore::WebGLBuffer::associateBufferData):
(WebCore::WebGLBuffer::associateBufferSubData):
* html/canvas/WebGLBuffer.h: Ditto.
* html/canvas/WebGLRenderingContext.cpp: Implement bufferData and bufferSubData with ArrayBuffer as input.
(WebCore::WebGLRenderingContext::bufferData):
(WebCore::WebGLRenderingContext::bufferSubData):
* html/canvas/WebGLRenderingContext.h: Ditto.
* html/canvas/WebGLRenderingContext.idl: Ditto.
* platform/graphics/GraphicsContext3D.h: Ditto.
* platform/graphics/mac/GraphicsContext3DMac.mm: Ditto.
(WebCore::GraphicsContext3D::bufferData):
(WebCore::GraphicsContext3D::bufferSubData):
2010-07-13 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Fisher.
Implement performance.timing.responseEnd
https://bugs.webkit.org/show_bug.cgi?id=42006
See: http://dev.w3.org/2006/webapi/WebTiming/#nt-response-end
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::finishedLoading):
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* page/Timing.cpp:
(WebCore::Timing::responseEnd):
* page/Timing.h:
* page/Timing.idl:
2010-07-13 W. James MacLean <wjmaclean@chromium.org>
Reviewed by Darin Fisher
Bug 41962 Limit html canvas element dimensions to 32767 for Skia platform
https://bugs.webkit.org/show_bug.cgi?id=41962
Test: fast/canvas/canvas-skia-excessive-size.html
* WebCore/html/HTMLCanvasElement.cpp
(WebCore::HTMLCanvasElement::convertLogicalToDevice):
2010-07-10 Zhenyao Mo <zmo@google.com>
Reviewed by Darin Fisher.
Need to emulate MAX_VARYING_VECTORS/MAX_FRAGMENT_UNIFORM_VECTORs/MAX_VERTEX_UNIFORM_VECTORS for glGet
https://bugs.webkit.org/show_bug.cgi?id=42032
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::getIntegerv): Emulate the enums.
2010-07-13 Philippe Normand <pnormand@igalia.com>
Reviewed by Eric Carlson.
[GTK] video playback position query flood when mouse over the video element
https://bugs.webkit.org/show_bug.cgi?id=35333
Don't trigger a position query only to know which play/pause
button to display. Instead use the media-control button display
type to select the image to paint.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::paintMediaPlayButton):
2010-07-13 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r63192.
http://trac.webkit.org/changeset/63192
https://bugs.webkit.org/show_bug.cgi?id=42173
Broke fast/backgrounds/size/contain-and-cover.html (Requested
by kling on #webkit).
* manual-tests/css3-background-layer-count.html: Removed.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::cullEmptyLayers):
2010-07-13 Marcus Bulach <bulach@chromium.org>
Reviewed by Jeremy Orlow.
Removes cycles caused by "m_this" members in a few IndexedDB classes.
https://bugs.webkit.org/show_bug.cgi?id=42161
Adds IDBAny::create for the various types.
No functionality change, just cleaning up.
* storage/IDBAny.cpp:
(WebCore::createIDBAny):
(WebCore::IDBAny::create):
* storage/IDBAny.h:
* storage/IDBDatabaseRequest.cpp:
(WebCore::IDBDatabaseRequest::IDBDatabaseRequest):
(WebCore::IDBDatabaseRequest::createObjectStore):
(WebCore::IDBDatabaseRequest::removeObjectStore):
* storage/IDBDatabaseRequest.h:
* storage/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::IDBKeyRange):
* storage/IDBKeyRange.h:
(WebCore::IDBKeyRange::left):
(WebCore::IDBKeyRange::right):
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
(WebCore::IDBObjectStoreRequest::get):
(WebCore::IDBObjectStoreRequest::add):
(WebCore::IDBObjectStoreRequest::put):
(WebCore::IDBObjectStoreRequest::remove):
(WebCore::IDBObjectStoreRequest::createIndex):
(WebCore::IDBObjectStoreRequest::removeIndex):
* storage/IDBObjectStoreRequest.h:
* storage/IndexedDatabaseRequest.cpp:
(WebCore::IndexedDatabaseRequest::IndexedDatabaseRequest):
(WebCore::IndexedDatabaseRequest::open):
* storage/IndexedDatabaseRequest.h:
2010-07-13 Antti Koivisto <koivisto@iki.fi>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Land the initial build system for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=41604
The build is enabled by passing --qmakearg="CONFIG+=webkit2" to build-webkit
* WebCore.pri:
* WebCore.pro:
2010-07-13 Leon Clarke <leonclarke@google.com>
Reviewed by Pavel Feldman.
Don't access objects after deleting them, following
the addition of link prefetching. Also remove a forward declaration
of the now-nonexistent CachedLinkPrefetch class.
https://bugs.webkit.org/show_bug.cgi?id=3652
No new tests. Correcting aspects of the prefetch change that shouldn't
have affected functionality.
* html/HTMLLinkElement.h:
* loader/loader.cpp:
(WebCore::Loader::Host::cancelPendingRequests):
2010-07-13 Andras Becsi <abecsi@webkit.org>
Reviewed by Simon Hausmann.
[Qt] Fix the case of a linker option to lowercase to be able to
cross compile QtWebKit for Windows on Linux.
No new tests needed.
* WebCore.pro:
2010-07-12 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: Next iteration of Inspector code generator.
The InspectorFrontend2 was replaced by slightly modified version of
InspectorBackend file (Inspector.idl). At the end all the interface
between WebInspector and inspected page will be specified by this file
and generated by CodeGeneratorInspector (InspectorFrontend.cpp,
InspectorBackend.cpp and InspectorBackend.js).
https://bugs.webkit.org/show_bug.cgi?id=42104
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_binding.py:
* WebCore.gypi:
* WebCore.pri:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/IDLParser.pm:
* bindings/scripts/IDLStructure.pm:
* bindings/scripts/generate-bindings.pl:
* inspector/CodeGeneratorInspector.pm:
* inspector/Inspector.idl: Added.
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::inspectorStyleSheet):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::startTimelineProfiler):
* inspector/InspectorController.h:
(WebCore::InspectorController::remoteInspectorFrontend):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/InspectorFrontend2.idl: Removed.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::resetFrontendProxyObject):
* inspector/InspectorTimelineAgent.h:
2010-07-12 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
DeviceOrientationEvent should use optional properties
https://bugs.webkit.org/show_bug.cgi?id=41607
This change adds a new DeviceOrientation class which takes care of which of the
optional properties are present. DeviceOrientationEvent owns an instance of
DeviceOrientation, rather than owning the properties directly.
DeviceOrientationEvent now requires custom bindings.
Test: fast/dom/DeviceOrientation/optional-event-properties.html
* Android.mk:
* Android.jscbindings.mk:
* Android.v8bindings.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDeviceOrientationEventCustom.cpp: Added.
(WebCore::JSDeviceOrientationEvent::alpha):
(WebCore::JSDeviceOrientationEvent::beta):
(WebCore::JSDeviceOrientationEvent::gamma):
(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
* bindings/v8/custom/V8DeviceOrientationEventCustom.cpp: Added.
(WebCore::V8DeviceOrientationEvent::alphaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::betaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::gammaAccessorGetter):
(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):
* dom/DeviceOrientation.cpp: Added.
* dom/DeviceOrientation.h: Added.
(WebCore::DeviceOrientation::create):
(WebCore::DeviceOrientation::canProvideAlpha):
(WebCore::DeviceOrientation::alpha):
(WebCore::DeviceOrientation::canProvideBeta):
(WebCore::DeviceOrientation::beta):
(WebCore::DeviceOrientation::canProvideGamma):
(WebCore::DeviceOrientation::gamma):
(WebCore::DeviceOrientation::DeviceOrientation):
* dom/DeviceOrientationEvent.cpp:
(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):
(WebCore::DeviceOrientationEvent::initDeviceOrientationEvent):
* dom/DeviceOrientationEvent.h:
(WebCore::DeviceOrientationEvent::create):
(WebCore::DeviceOrientationEvent::orientation):
* dom/DeviceOrientationEvent.idl:
2010-07-13 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Antti Koivisto.
CSS3 background: Number of layers should be determined by background-image element count
https://bugs.webkit.org/show_bug.cgi?id=41201
Change FillLayer culling logic to discard all layers
after the first one without an image set.
Manual test: css3-background-layer-count.html
* manual-tests/css3-background-layer-count.html: Added.
* rendering/style/FillLayer.cpp:
(WebCore::FillLayer::cullEmptyLayers):
2010-07-07 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Darin Adler.
Prevent assertion/duplicate loads for non-deferred subtitute-data loads
https://bugs.webkit.org/show_bug.cgi?id=30879
MainResourceLoader uses the member m_initialRequest to store requests for future
deferred loads. When doing the actual load in handleDataLoadNow(), we therefore
have to clear this request so that subsequent entries into the loader will not
start yet another load.
This can happen as a result of a PageGroupLoadDeferrer going out of scope when
returning from Chrome::runJavaScriptAlert(), which calls setDeferredLoading(false),
but only in the case of using both substitute-data and non-deferred main resource
load together. That's why two new DRT functions were added:
* queueLoadHTMLString()
* setDeferMainResourceLoad()
The change adds DRT hooks for Mac, Win and Qt for these two functions. For Mac
and Win the hook uses new SPI in WebDataSource. For Qt a new static member was
added to the FrameLoaderClientQt and accessed though DumpRenderTreeSupportQt.
Test: fast/loader/non-deferred-substitute-load.html
* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::handleDataLoadNow):
2010-07-13 Yoshiki Hayashi <yhayashi@google.com>
Reviewed by Kent Tamura.
Make sure correct Nodes are passed to childrenChanged so that
:last-child gets properly applied when fragment is inserted.
https://bugs.webkit.org/show_bug.cgi?id=37944
Test: fast/css/last-child-innerhtml.html
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::appendChild):
2010-07-13 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Kent Tamura.
InsertListCommand's modifyRange and doApply should be merged
https://bugs.webkit.org/show_bug.cgi?id=41403
Isolated the code in doApply to insert and remove lists for single paragraph into doApplyForSingleParagraph.
Merged the code in modifyRange into doApply and cleaned up.
No test is added since this is a clean up.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::InsertListCommand): m_forceCreateList is no longer initialized
(WebCore::InsertListCommand::doApply): Isolated the code to insert/remove lists in doApplyForSingleParagraph
(WebCore::InsertListCommand::doApplyForSingleParagraph): Insert/remove lists for single paragraph
* editing/InsertListCommand.h: Added doApplyForSingleParagraph and removed m_forceCreateList
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix typo in "close the cell" which caused assertion
https://bugs.webkit.org/show_bug.cgi?id=42138
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::closeTheCell):
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix line number handling in HTMLTreeBuilder to fix a zillion layout tests
https://bugs.webkit.org/show_bug.cgi?id=42143
Covered by a zillion layout tests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
2010-07-12 Jay Civelli <jcivelli@chromium.org>
Reviewed by Kent Tamura.
Adding right aligned text called labels to PopupMenus.
https://bugs.webkit.org/show_bug.cgi?id=41964
* platform/PopupMenuClient.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::paintRow):
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::itemLabel):
* rendering/RenderMenuList.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::itemLabel):
* rendering/RenderTextControlSingleLine.h:
2010-07-12 Mihnea Ovidenea <mihnea@adobe.com>
Reviewed by Dirk Schulze.
[Cairo] Incorrect Test for Text Fill
https://bugs.webkit.org/show_bug.cgi?id=42123
Correct test used for text shadow. It currently checks for
equality with cTextFill. However, this test fails if the
text drawing mode is set to 'cTextFill | cTextStroke'. Fix
is to modify the test to be like other Cairo uses of the
text drawing mode, and check for the cTextFill bit being
set, not for equality with the bit.
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Sam Weinig.
Fix a typo in the adoption agency causing test failures
https://bugs.webkit.org/show_bug.cgi?id=42133
The new behavior actually differs from old webkit.
<p><b><p>TEST
was not bold in the old parser, but is bold now.
This matches Minefield and the HTML5 spec.
Covered by two tests in html5lib/runner.html.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-12 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Joseph Pecoraro.
Web Inspector: provide starts and ends for network phases instead of duration.
https://bugs.webkit.org/show_bug.cgi?id=42091
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::updateResponse):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::buildObjectForTiming):
* platform/network/ResourceLoadTiming.h:
(WebCore::ResourceLoadTiming::deepCopy):
(WebCore::ResourceLoadTiming::operator==):
(WebCore::ResourceLoadTiming::ResourceLoadTiming):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::ResourceResponseBase):
(WebCore::ResourceResponseBase::wasCached):
(WebCore::ResourceResponseBase::setWasCached):
* platform/network/ResourceResponseBase.h:
2010-07-12 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 Parser: document.write after onload blows away document
https://bugs.webkit.org/show_bug.cgi?id=40745
Rather than blowing away the document when we get a document.write call
after the document is closed, we new ignore the write. This
technically violates the spec (which requires us to blow away the
document), but blowing away the document breaks too many web sites.
Rather than this patch, we could go back to our old behavior (which was
to append the bytes just before EOF), but implementing this approach
(suggested by Henri) will let us gather data about whether his approach
is workable.
See also: http://www.w3.org/Bugs/Public/show_bug.cgi?id=9767
* dom/Document.cpp:
(WebCore::Document::write):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::insert):
2010-07-12 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Oliver Hunt.
Strip BOMs from source before passing to V8
https://bugs.webkit.org/show_bug.cgi?id=42102
This extra copy may carry a performance penalty. We should investigate
whether this allows any simplification in v8/scanner.cc:SkipJavaScriptWhiteSpace().
No new tests because no new functionality.
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
2010-07-12 Gustavo Noronha Silva <gns@gnome.org>
Unreviewed. make distcheck fix.
* GNUmakefile.am:
2010-07-12 Yuta Kitamura <yutak@chromium.org>
Reviewed by Alexey Proskuryakov.
Fix crash caused by unintentional deletion of worker bridge and channel.
WebSocket: Crash caused by calling close() within onmessage handler
https://bugs.webkit.org/show_bug.cgi?id=41507
Test: websocket/tests/workers/close-in-onmessage-crash.html
* websockets/WebSocket.cpp:
(WebCore::WebSocket::close): bufferedAmount() may call WebSocket::didClose(),
which causes m_channel to get freed.
* websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Add reference to
the bridge because waitForMethodCompletion() may dereference the bridge.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::waitForMethodCompletion):
The root cause is a call to WorkerRunLoop::runInMode in this function.
It may call WebSocket::didClose() even inside WebSocket::close(), which frees
everything including the worker bridge and the channel.
2010-07-12 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
REGRESSION (HTML5 parser?): Impossible to get past the CAPTCHA on postcode.royalmail.com
https://bugs.webkit.org/show_bug.cgi?id=41797
Once we resume parsing after script execution, we want to clear the
preload scanner so we don't scan any bytes it might have accumulated.
Test: http/tests/loading/preload-slow-loading.php
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
2010-07-12 Albert J. Wong <ajwong@chromium.org>
Reviewed by Jian Li.
Adding directional property enums back into
CSSComputedStyleDeclaration::getPropertyCSSValue().
https://bugs.webkit.org/show_bug.cgi?id=42122
The four directional -webkit- properties -- CSSPropertyWebkitMarginEnd,
CSSPropertyWebkitMarginStart, CSSPropertyWebkitPaddingEnd, and
CSSPropertyWebkitPaddingStart -- are resolved into other css
properties before the swtich statement via a call to
CSSProperty::resolveDirectionAwareProperty(). Thus, they are never
seen by the switch statement. However, if you leave out a potential
enum value from the switch, gcc will generate a warning if -Wall is
specified. This warning breaks the Chromium build. To avoid this,
we add in the enum values and ASSERT_NOT_REACHED() if they are hit.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2010-07-12 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX converts AtomicStrings to .string() more than needed
https://bugs.webkit.org/show_bug.cgi?id=42056
No behavior change. No new tests.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isPressed):
(WebCore::siblingWithAriaRole):
(WebCore::AccessibilityRenderObject::intValue):
(WebCore::AccessibilityRenderObject::accessibilityDescription):
(WebCore::AccessibilityRenderObject::hasTextAlternative):
(WebCore::AccessibilityRenderObject::supportsARIAFlowTo):
(WebCore::AccessibilityRenderObject::supportsARIADropping):
(WebCore::AccessibilityRenderObject::supportsARIADragging):
(WebCore::AccessibilityRenderObject::determineARIADropEffects):
(WebCore::AccessibilityRenderObject::isExpanded):
(WebCore::AccessibilityRenderObject::isRequired):
(WebCore::AccessibilityRenderObject::isSelected):
(WebCore::AccessibilityRenderObject::supportsARIAOwns):
(WebCore::AccessibilityRenderObject::isEnabled):
(WebCore::AccessibilityRenderObject::activeDescendant):
(WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
(WebCore::AccessibilityRenderObject::orientation):
(WebCore::AccessibilityRenderObject::canSetExpandedAttribute):
(WebCore::AccessibilityRenderObject::canSetValueAttribute):
2010-07-12 Tony Chang <tony@chromium.org>
Reviewed by David Hyatt.
crash in FrameView::detachCustomScrollbars
https://bugs.webkit.org/show_bug.cgi?id=41196
Test: scrollbars/hidden-iframe-scrollbar-crash.html
* page/FrameView.cpp:
(WebCore::FrameView::detachCustomScrollbars):
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML tags should break out of foreign content
https://bugs.webkit.org/show_bug.cgi?id=42106
Implement another paragraph of the spec to pass another
bunch of foreign content tests.
This fixes a bunch of tests in html5lib/runner.html.
After this change we only have 4 remaining foreign content failures.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-12 Zhenyao Mo <zmo@google.com>
Reviewed by Darin Fisher.
Bring bufferData and clear to GLES2 compliant
https://bugs.webkit.org/show_bug.cgi?id=41574
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::bufferData): Call validateBufferDataUsage().
(WebCore::WebGLRenderingContext::clear): Check mask.
(WebCore::WebGLRenderingContext::validateBufferDataUsage): Check usage.
* html/canvas/WebGLRenderingContext.h: Declare validateBufferDataUsage.
2010-07-12 Eric Seidel <eric@webkit.org>
Unreviewed. Attempt to fix Chromium Windows build.
Always generate SVGNames and MathMLNames for all ports (to support HTML5)
https://bugs.webkit.org/show_bug.cgi?id=42050
Another way to fix this might be to mark all the .in files with
svn:eol=native. But fixing the perl to be more robust against
stray whitespace seems to be a better long-term fix.
No functional change, thus no tests.
* bindings/scripts/InFilesParser.pm:
2010-07-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Remove dependency on PlatformString.h in Color.h
https://bugs.webkit.org/show_bug.cgi?id=42109
* platform/graphics/Color.cpp:
* platform/graphics/Color.h:
2010-07-12 Eric Seidel <eric@webkit.org>
Unreviewed, build fix.
Update HTMLTreeBuilder now that MathMLNames is always generated
https://bugs.webkit.org/show_bug.cgi?id=42059
Fix the Windows project file to build MathMLNames.*.
Also added MathMLElementFactory.* which is a NOOP now, but will
prevent folks from breaking the build when they turn MathML on.
* WebCore.vcproj/WebCore.vcproj:
2010-07-12 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
Update media element's handling of empty 'src' attribute
https://bugs.webkit.org/show_bug.cgi?id=42001
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::src): Return getNonEmptyURLAttribute().
(WebCore::HTMLMediaElement::selectMediaResource): Call noneSupported() for empty 'src'.
(WebCore::HTMLMediaElement::selectNextSourceChild): Use getNonEmptyURLAttribute() to convert
'src' to URL instead of document()->completeURL(). Don't consider a <source> with an empty 'src'.
* html/HTMLMediaElement.idl: Add 'NonEmpty' option to 'src' attribute.
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::src): Return getNonEmptyURLAttribute().
(WebCore::HTMLSourceElement::isURLAttribute): New, 'src' is a URL attribute.
* html/HTMLSourceElement.h:
* html/HTMLSourceElement.idl: Add 'NonEmpty' option to 'src' attribute.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::parseMappedAttribute): Use getNonEmptyURLAttribute() to convert
'poster' to URL instead of document()->completeURL().
* html/HTMLVideoElement.idl: Add 'NonEmpty' option to 'poster' attribute.
2010-07-12 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] make dist is broken because of missing headers and other miscellaneous reasons
https://bugs.webkit.org/show_bug.cgi?id=42107
* GNUmakefile.am: Remove InspectorFrontend2.idl from the list of IDL files, so
that it is not built into libWebCoreJS. Add missing header to the source list.
Make sure to distribute the new file: WebCore/inspector/CodeGeneratorInspector.pm.
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder needs to support mixing SVG and MathML content
https://bugs.webkit.org/show_bug.cgi?id=42096
This is just a direct transcription of another paragraph of the
HTML5 spec.
This improved a couple results in html5lib/runner.html, but more
work to do yet to pass all the foreign content tests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processUsingSecondaryInsertionModeAndAdjustInsertionMode):
* html/HTMLTreeBuilder.h:
* mathml/mathtags.in:
2010-07-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Update HTMLTreeBuilder now that MathMLNames is always generated
https://bugs.webkit.org/show_bug.cgi?id=42059
Fix the HTMLTreeBuilder MathML code path to compile and remove
the MathML and SVG guards now that SVGNames and MathMLNames are
always compiled into ever port after:
https://bugs.webkit.org/show_bug.cgi?id=42050
This fixed a whole bunch of libhtml5 tests now that we have the
mathml code paths enabled.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTag):
* page/Frame.cpp:
(WebCore::Frame::Frame):
- Always init SVGNames and MathML names.
2010-07-12 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Don't go into compositing mode for 0x0 plugins
https://bugs.webkit.org/show_bug.cgi?id=34009
Don't use compositing for small (0-height or width, or 1x1) plugins, or iframes whose
height or width is zero.
Previously we made all compositing decisions inside styleChanged(). However,
now that plugin and iframe compositing behavior depends on renderer size, we have
to wait until layout before deciding whether to composite these. This behavior
change is controlled by the m_compositingDependsOnGeometry flag. When set,
updateCompositingLayers() always does a hierarchy update.
Tests: compositing/iframes/iframe-size-from-zero.html
compositing/iframes/iframe-size-to-zero.html
compositing/plugins/1x1-composited-plugin.html
compositing/plugins/large-to-small-composited-plugin.html
compositing/plugins/small-to-large-composited-plugin.html
* page/FrameView.cpp:
(WebCore::FrameView::updateCompositingLayers): No longer bail if usesCompositing() is false; we
have to always enter updateCompositingLayers().
(WebCore::FrameView::repaintFixedElementsAfterScrolling): Ditto
(WebCore::FrameView::enterCompositingMode): Remove bogus return of a void.
* rendering/RenderLayerCompositor.h: Add m_compositingDependsOnGeometry.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::RenderLayerCompositor): Initialize m_compositingDependsOnGeometry to false.
(WebCore::RenderLayerCompositor::updateCompositingLayers): If m_compositingDependsOnGeometry is true,
we always need to run through the layer hierarchy looking for things which need to be composited, even if
we're not (yet) in compositing mode.
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Because we can enter compositing mode
on the fly inside updateCompositingLayers() now, the state of willBeComposited needs to be updated
when processing the root layer, for the case where the compositing mode changes.
(WebCore::RenderLayerCompositor::requiresCompositingForPlugin): Set the m_compositingDependsOnGeometry
flag if we see a potentially-composited plugin. Once we have layout information, only composite the plugin
if height * width > 1.
(WebCore::RenderLayerCompositor::requiresCompositingForIFrame): Set the m_compositingDependsOnGeometry
flag if we see a potentially-composited iframe. Once we have layout information, only composite the plugin
if height or width is greater than zero.
2010-07-12 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Need to do a layout when RenderLayers come and go because of compositing
https://bugs.webkit.org/show_bug.cgi?id=42108
If we create or destroy RenderLayers for reasons other than style changes
(e.g. because of composited iframes or plugins), then we need to ensure
that we do a layout.
Test: compositing/iframes/layout-on-compositing-change.html
* rendering/RenderObject.cpp:
(WebCore::RenderObject::adjustStyleDifference):
2010-07-11 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Always generate SVGNames and MathMLNames for all ports (to support HTML5)
https://bugs.webkit.org/show_bug.cgi?id=42050
Historically, FOONames has only been generate when ENABLE(FOO) is defined.
However, for HTML5 parser support, we need to have access to the SVG
and MathML tag names regardless of whether we the engine is configured
to render SVG or MathML content.
This change enables generation of SVGNames and MathMLNames on all ports and
makes it so that ports can include FOOElementFactory.* regardless of whether
ENABLE(FOO) is defined (and have it do the right thing).
No functional change (yet) so no tests.
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.pri:
* dom/make_names.pl:
2010-07-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
make_names.pl should always generate all names in Names.* files
https://bugs.webkit.org/show_bug.cgi?id=42023
Only the *ElementFactory files need to have conditional contents
based on enabled features. WebCore should always have all known
names for SVG, MathML, XML, XLink, HTML, etc. generated in the
various *Names files, even if features are disabled.
make_names.pl is kinda a big hack at this point. I tried to clean
up a little as I went. The way I made *Names include all names was to
read the .in files twice, once using the preprocessor and once without.
* dom/make_names.pl:
2010-07-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
Canvas: Move fillRect() save/restore into GraphicsContext implementations
https://bugs.webkit.org/show_bug.cgi?id=42088
Saving the platform painter state is an expensive operation,
so don't do it in fillRect() for platforms that don't need it. (CG, Qt)
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fillRect):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::fillRect):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::fillRect):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::fillRect):
2010-07-12 Nate Chapin <japhet@chromium.org>
Reviewed by Darin Fisher.
Ensure that a cache policy that forces validation is cleared once
the load event is fired, rather than only doing so at the next
navigation. This leads to a lot of unnecessary load on AJAX-y
websites.
https://bugs.webkit.org/show_bug.cgi?id=41813
Test: http/tests/xmlhttprequest/cache-headers-after-reload.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::handledOnloadEvents): Reset m_loadType to FrameLoadTypeStandard.
(WebCore::FrameLoader::addExtraFieldsToRequest): Only respect the original request's cache policy if the
DocumentLoader is still loading, and handle the other cache policy settings that were scattered around the loader.
(WebCore::FrameLoader::loadResourceSynchronously): Merge cachePolicy setting into FrameLoader::addExtraFieldsToRequest.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::create): Merge cachePolicy setting into FrameLoader::addExtraFieldsToRequest.
2010-07-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
CSS color parsing optimizations
https://bugs.webkit.org/show_bug.cgi?id=42073
- Avoid instantiating a CSSParser in parseColor() unless necessary.
- Fixed hex color fast-path to support strings starting with '#'.
- Avoid allocating a new string for the value part of a '#' color.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColor):
* platform/graphics/Color.cpp:
(WebCore::Color::parseHexColor):
(WebCore::Color::Color):
* platform/graphics/Color.h:
2010-07-09 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=13075
XMLHttpRequest with failed authentication should set status to 401
https://bugs.webkit.org/show_bug.cgi?id=6871
<rdar://problem/3363403> 401 error page is never shown
* platform/network/mac/ResourceHandleMac.mm: (WebCore::ResourceHandle::receivedCredential):
Added a comment explaining why we handle empty credentials differently here.
* platform/network/cf/ResourceHandleCFNet.cpp: (WebCore::ResourceHandle::receivedCredential):
Bring this code in sync with Mac.
2010-07-12 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
Add a PluginController class, use it for invalidation and getting the user agent
https://bugs.webkit.org/show_bug.cgi?id=42084
* WebCore.exp.in:
Export Widget::convertToContainingWindow.
2010-07-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Dragging within webkit with a drag created via Javascript ends up misinterpreting the data
https://bugs.webkit.org/show_bug.cgi?id=41457
Treat non-special-cased mime-types as Unicode strings in ClipboardQt's getData()
Fixes corruption when retrieving data that was set with anything other than text/plain
Also use QMimeData::setHtml() when applicable to be consistent with PasteboardQt.
* platform/qt/ClipboardQt.cpp:
(WebCore::isHtmlMimeType):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
2010-07-12 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
add ANDROID to STORE_FONT_CUSTOM_PLATFORM_DATA
https://bugs.webkit.org/show_bug.cgi?id=32273
Tested by existing tests, just adding ANDROID to the list of platforms that use this feature.
* loader/CachedFont.cpp:
2010-07-12 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Unreviewed.
[EFL] Move ScriptConcotrollerEfl.cpp from CMakeLists.txt to
CMakeListsEfl.txt.
* CMakeLists.txt:
* CMakeListsEfl.txt:
2010-07-12 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Unreviewed build fix after r60050.
* CMakeLists.txt: Add WebCore/bindings to the include path.
2010-07-09 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[GTK] Crashes when going back with page cache in unknown circunstances
https://bugs.webkit.org/show_bug.cgi?id=41710
Could not yet find a way to reproduce this in a layout test. The
issue is document being NULL, so this NULL-check should be enough
to get rid of the crash. We are working on trying to find a better
solution for these null cases, like attaching the document earlier
when openning a cached page.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendScrollEvent):
2010-07-12 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Yury Semikhatsky.
[Chromium] Crash when stepping on a breakpoint while debugging Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=41958
* page/PageGroupLoadDeferrer.cpp:
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
* page/PageGroupLoadDeferrer.h:
2010-07-12 François Sausset <sausset@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
Make the mathsize MathML attribute handle values in em, px, pt,...
https://bugs.webkit.org/show_bug.cgi?id=42067
Test: mathml/presentation/attributes.xhtml
* css/mathml.css:
(math[mathsize="small"], mstyle[mathsize="small"], mo[mathsize="small"], mn[mathsize="small"], mi[mathsize="small"], mtext[mathsize="small"], mspace[mathsize="small"], ms[mathsize="small"]):
(math[mathsize="normal"], mstyle[mathsize="normal"], mo[mathsize="normal"], mn[mathsize="normal"], mi[mathsize="normal"], mtext[mathsize="normal"], mspace[mathsize="normal"], ms[mathsize="normal"]):
(math[mathsize="big"], mstyle[mathsize="big"], mo[mathsize="big"], mn[mathsize="big"], mi[mathsize="big"], mtext[mathsize="big"], mspace[mathsize="big"], ms[mathsize="big"]):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::parseMappedAttribute):
2010-07-12 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Fix compilation with sealed GTK+.
* platform/gtk/GtkVersioning.h:
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::fillDataObjectFromDropData):
2010-07-12 François Sausset <sausset@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
Fix a bug preventing msqrt and mfrac to use style color to draw themselves.
In mfrac, the fraction bar is now using the color defined by the element style instead of black.
In msqrt, the radical was always drawn in black due to a colorSpace problem.
https://bugs.webkit.org/show_bug.cgi?id=41889
Test: mathml/presentation/roots.xhtml
Test: mathml/presentation/fractions.xhtml
* mathml/RenderMathMLFraction.cpp:
(WebCore::RenderMathMLFraction::paint):
* mathml/RenderMathMLSquareRoot.cpp:
(WebCore::RenderMathMLSquareRoot::paint):
2010-07-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Antti Koivisto.
Canvas: arc() with startAngle == endAngle shouldn't add to the path
https://bugs.webkit.org/show_bug.cgi?id=41420
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-stroke
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::arc):
2010-07-12 Shinichiro Hamaji <hamaji@chromium.org>
Reviewed by Ojan Vafai.
Update padding on Windows?
https://bugs.webkit.org/show_bug.cgi?id=38016
Remove internal padding and add 1px vertical padding for Windows.
* css/themeWin.css:
(input[type="button"], input[type="submit"], input[type="reset"], input[type="file"]::-webkit-file-upload-button, button):
* rendering/RenderButton.cpp:
(WebCore::RenderButton::setupInnerStyle):
* rendering/RenderTheme.h:
* rendering/RenderThemeWin.cpp:
* rendering/RenderThemeWin.h:
* rendering/RenderThemeWince.cpp:
* rendering/RenderThemeWince.h:
2010-07-12 Pavel Feldman <pfeldman@chromium.org>
Not reviewed. Chromium tests fix.
[Chromium, V8] r63057 regressed url tests.
https://bugs.webkit.org/show_bug.cgi?id=42063
* bindings/scripts/CodeGeneratorV8.pm:
2010-07-12 Steve Block <steveblock@google.com>
Reviewed by Alexey Proskuryakov.
XPath substring function does not correctly handle non-positive values for the position argument
https://bugs.webkit.org/show_bug.cgi?id=41913
This patch changes the behavior of the XPath evaluate function when a non-positive
position argument is supplied and no length argument is supplied. In this case,
we reset the position to 1. This follows the spec and matches the current behaviour
when a length argument is supplied.
Test: fast/xpath/substring-non-positive-postion.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstring::evaluate):
2010-06-27 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Dumitru Daniliuc.
Implement IDBObjectStore.get/set/remove
https://bugs.webkit.org/show_bug.cgi?id=41250
Implement these functions in IDBObjectStore,
add plumbing, teach IDBAny/Callbacks how to deal
with IDBKey, and a few small bits of cleanup.
Test: Modified existing test to provide basic coverage.
Will add much more extensive layout test coverage
in future patches.
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.jscbindings.mk:
* Android.mk:
* Android.v8bindings.mk:
* CMakeLists.txt:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8):
* storage/IDBAny.cpp:
(WebCore::IDBAny::idbKey):
(WebCore::IDBAny::set):
* storage/IDBAny.h:
(WebCore::IDBAny::):
* storage/IDBAny.idl:
* storage/IDBCallbacks.h:
* storage/IDBDatabaseRequest.h:
* storage/IDBDatabaseRequest.idl:
* storage/IDBKeyRange.h:
* storage/IDBObjectStore.h:
(WebCore::IDBObjectStore::):
* storage/IDBObjectStoreImpl.cpp:
(WebCore::IDBObjectStoreImpl::IDBObjectStoreImpl):
(WebCore::IDBObjectStoreImpl::get):
(WebCore::IDBObjectStoreImpl::set):
(WebCore::IDBObjectStoreImpl::remove):
* storage/IDBObjectStoreImpl.h:
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::get):
(WebCore::IDBObjectStoreRequest::add):
(WebCore::IDBObjectStoreRequest::modify):
(WebCore::IDBObjectStoreRequest::addOrModify):
(WebCore::IDBObjectStoreRequest::remove):
* storage/IDBObjectStoreRequest.h:
* storage/IDBObjectStoreRequest.idl:
* storage/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* storage/IDBRequest.h:
2010-07-11 Maciej Stachowiak <mjs@apple.com>
Reviewed by Dan Bernstein.
Implement animation-related methods for WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=42053
* WebCore.exp.in: Export Document::getElementById for WebKit2's benefit.
2010-07-11 Adam Barth <abarth@webkit.org>
Rubber-stamped by Eric Seidel
Add a complete list of the HTML5 entities in JSON format.
* html/HTMLEntityNames.json: Added.
2010-07-11 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] WebKitWebView should support drops
https://bugs.webkit.org/show_bug.cgi?id=39843
Add support for dropping content onto GTK+ WebViews.
No new tests, as the DRT does not support simulating drops yet.
* platform/gtk/ClipboardUtilitiesGtk.cpp:
(WebCore::dragOperationToGdkDragAction): Added.
(WebCore::gdkDragActionToDragOperation): Properly detect DragOperationEvery.
* platform/gtk/ClipboardUtilitiesGtk.h: Add declaration for dragOperationToGdkDragAction.
* platform/gtk/PasteboardHelper.cpp:
Add new target atom and rename the markup target type to match the others.
Add a method which fills a data object from drop data.
(WebCore::PasteboardHelper::initializeTargetList): Add support for new atoms.
(WebCore::selectionDataToUTF8String): Added this helper.
(WebCore::PasteboardHelper::getClipboardContents): Use the selectionDataToUTF8String helper.
(WebCore::PasteboardHelper::targetListForDataObject): Change to reflect markup atom rename.
(WebCore::PasteboardHelper::fillDataObjectFromDropData): Added.
(WebCore::PasteboardHelper::dropAtoms): Added.
* platform/gtk/PasteboardHelper.h: Add declarations of new methods.
2010-07-10 Darin Adler <darin@apple.com>
Reviewed by Anders Carlsson.
Enhance content attribute reflection for URL attributes, including adding a non-empty option
https://bugs.webkit.org/show_bug.cgi?id=42040
Test: fast/dom/URL-attribute-reflection.html
Changed syntax from [ReflectURL] to [Reflect,URL] and also added support for
a new option, NonEmpty, which implements the non-empty URL concept from the
HTML5 specification.
* bindings/scripts/CodeGenerator.pm: Changed code to expect the Reflect and URL
extended attributes to come in separately. The URL one simply means "the string
of this attribute is a URL", since we don't have a distinct type for URL. Also
added a new NonEmpty extended attribute.
* bindings/scripts/CodeGeneratorJS.pm: Removed now-unneeded code to handle ReflectURL.
* bindings/scripts/CodeGeneratorV8.pm: Ditto.
* bindings/scripts/test/CPP/WebDOMTestObj.cpp: Updated for new added test cases
and the fix I made to the reflectedCustomURLAttr test.
* bindings/scripts/test/CPP/WebDOMTestObj.h: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
* bindings/scripts/test/V8/V8TestObj.cpp: Ditto. Also, for some reason the V8
bindig writes out the keywords into the generated file as comments, so the keyword
change had a direct efffect on the output file.
* bindings/scripts/test/TestObj.idl: Changed the test cases for ReflectURL to use
the new syntax. Added test cases for NonEmpty. Fixed the name of
reflectedNonEmptyURLAttr, which accidentally was repeating reflectedURLAttr
instead; never noticed because we never compile the test output.
* dom/Element.cpp:
(WebCore::Element::getNonEmptyURLAttribute): Added. For use by NonEmpty and also
by any code that wants to implement the non-empty URL content attribute semantic.
* dom/Element.h: Ditto.
* html/HTMLAnchorElement.idl: Use Reflect,URL instead of ReflectURL.
* html/HTMLAreaElement.idl: Ditto.
* html/HTMLFrameElement.idl: Ditto.
* html/HTMLImageElement.idl: Ditto.
* html/HTMLInputElement.idl: Ditto.
* html/HTMLLinkElement.idl: Ditto.
* html/HTMLMediaElement.idl: Ditto.
* html/HTMLObjectElement.idl: Ditto.
* html/HTMLScriptElement.idl: Ditto.
* html/HTMLVideoElement.idl: Ditto.
2010-07-10 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Adler.
Add missing derrived sources to xcode project
https://bugs.webkit.org/show_bug.cgi?id=42034
This allows --web-timing to work with build-webkit on OSX with JSC.
This should have been done in bug 41442.
No new tests because no new functionality.
* WebCore.xcodeproj/project.pbxproj:
2010-07-10 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Don't initialize plug-ins until allowed by the page
https://bugs.webkit.org/show_bug.cgi?id=42033
* WebCore.exp.in:
Export Document::addMediaCanStartListener and Document::removeMediaCanStartListener.
2010-07-10 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Patch for https://bugs.webkit.org/show_bug.cgi?id=42021
isEqualNode should work for DocumentType nodes
Test: fast/dom/Node/isEqualNode.html
* dom/Node.cpp:
(WebCore::Node::isEqualNode): Add DocumentType logic from the DOM3 spec.
2010-07-10 Daniel Bates <dbates@rim.com>
Reviewed by Adam Barth.
Move enum ReasonForCallingCanExecuteScripts to header ScriptControllerBase.h
https://bugs.webkit.org/show_bug.cgi?id=39339
Moved the enum ReasonForCallingCanExecuteScripts, which was
defined in both the JSC and V8 ScriptController.h file, into
a shared file called ScriptControllerBase.h.
No functionality was changed, so no new tests.
* GNUmakefile.am: Added file bindings/ScriptControllerBase.h.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.vcproj/WebCoreCommon.vsprops: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* bindings/ScriptControllerBase.h: Added.
(WebCore::):
* bindings/js/ScriptController.h: #include ScriptControllerBase.h
* bindings/v8/ScriptController.h: Ditto.
2010-07-10 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
<rdar://problem/8153214> Continuation outlines in layers do not paint correctly
Test: fast/inline/continuation-outlines-with-layers-2.html
Continuation outlines are normally painted by the containing block. However, when the
block and the inline are not enclosed by the same self-painting layer, the inline has to
paint its own outlines. This was handled correctly only for the case where the inline had
its own self-painting layer, but now when an ancestor inline had the self-painting layer.
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint): Instead of testing for having a self-painting layer, test
whether any intermediate box between the inline and the containing block has a self-painting
layer.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject): Ditto.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::enclosingBoxModelObject): Added this utility method.
* rendering/RenderObject.h:
2010-07-10 François Sausset <sausset@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
Build fix: syntax and typo issues
https://bugs.webkit.org/show_bug.cgi?id=41859
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder needs adjustForeignAttributes support
https://bugs.webkit.org/show_bug.cgi?id=42022
To add adjust foreign attributes support I had to add an
AtomicString (prefixed name) to QualifiedName hash. Once I had
done that, I decided it would be best for the other "adjust" functions
to share the same hash logic, so I moved them to using the same
AtomicString -> QualifiedName hash as well.
Tested by html5lib/runner.html
* dom/Attribute.h:
(WebCore::Attribute::parserSetName):
* html/HTMLTreeBuilder.cpp:
2010-07-10 Rob Buis <rwlbuis@gmail.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=41978
Remove namespace prefixes from idl files
No new tests, idl syntax fixes.
* css/CSSImportRule.idl:
* css/CSSMediaRule.idl:
* css/CSSStyleSheet.idl:
* css/CSSVariablesRule.idl:
* svg/SVGAnimatedString.idl:
* svg/SVGColor.idl:
* svg/SVGDocument.idl:
* svg/SVGLangSpace.idl:
* svg/SVGSVGElement.idl:
* svg/SVGStringList.idl:
* svg/SVGStylable.idl:
* svg/SVGStyleElement.idl:
* svg/SVGTests.idl:
* svg/SVGZoomEvent.idl:
* xml/XPathEvaluator.idl:
2010-07-10 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, GTK build fix.
* bindings/gobject/GObjectEventListener.h:
2010-07-10 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Adler.
Remove unnecessary includes in header files in WebCore/dom.
https://bugs.webkit.org/show_bug.cgi?id=41941
* css/StyleMedia.h:
* dom/BeforeLoadEvent.h:
* dom/CustomEvent.h:
* dom/DOMStringMap.h:
* dom/DeviceOrientationEvent.h:
* dom/EventListener.h:
* dom/MessagePort.h:
* dom/Node.cpp:
* dom/NodeFilter.h:
* dom/NodeRareData.h:
* dom/RegisteredEventListener.h:
* dom/SelectorNodeList.cpp:
* dom/SelectorNodeList.h:
* dom/StyleElement.h:
* dom/Traversal.h:
2010-07-09 Tony Chang <tony@chromium.org>
Reviewed by Ojan Vafai.
crash in WebCore::CompositeEditCommand::splitTreeToNode when indenting pre
https://bugs.webkit.org/show_bug.cgi?id=38231
Test: editing/execCommand/indent-pre.html
* editing/IndentOutdentCommand.cpp:
(WebCore::countParagraphs):
(WebCore::IndentOutdentCommand::indentRegion): Split text nodes into one node per paragraph
so moveParagraph doesn't get confused.
(WebCore::IndentOutdentCommand::splitTextNodes):
* editing/IndentOutdentCommand.h:
2010-07-09 Erik Arvidsson <arv@chromium.org>
Reviewed by Darin Adler.
Computed style is not implemented for padding-start, padding-end, margin-start, margin-end
https://bugs.webkit.org/show_bug.cgi?id=41496
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSProperty.cpp:
(WebCore::CSSProperty::resolveDirectionAwareProperty): This function resolves the property ID for a direction aware property.
* css/CSSProperty.h:
* css/CSSStyleSelector.cpp: Use helper function.
(WebCore::CSSStyleSelector::applyProperty):
2010-07-09 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 tree builder should pass some LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=41991
Before this patch, we weren't attaching text nodes to the render tree,
which turns out to be important. :)
This patch fixes more than 10,000 LayoutTests.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::attachAtSite):
2010-07-09 Patrick Gansterer <paroga@paroga.com>
Reviewed by Darin Adler.
[WINCE] Buildfix for TextEncodingRegistry
https://bugs.webkit.org/show_bug.cgi?id=41992
Renamed TextCodecWince to TextCodecWinCE.
* platform/text/TextEncodingRegistry.cpp:
(WebCore::buildBaseTextCodecMaps):
(WebCore::extendTextCodecMaps):
2010-07-09 Leon Clarke <leonclarke@google.com>
Reviewed by Adam Barth.
add support for link prefetching
https://bugs.webkit.org/show_bug.cgi?id=3652
Test: fast/dom/HTMLLinkElement/prefetch.html
* Configurations/FeatureDefines.xcconfig:
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::tokenizeRelAttribute):
(WebCore::HTMLLinkElement::process):
* html/HTMLLinkElement.h:
(WebCore::HTMLLinkElement::RelAttribute::RelAttribute):
* loader/Cache.cpp:
(WebCore::createResource):
* loader/CachedResource.cpp:
(WebCore::CachedResource::data):
(WebCore::CachedResource::didAddClient):
* loader/CachedResource.h:
(WebCore::CachedResource::):
(WebCore::CachedResource::error):
(WebCore::CachedResource::isPrefetch):
(WebCore::CachedResource::schedule):
* loader/CachedScript.cpp:
* loader/CachedScript.h:
* loader/DocLoader.cpp:
(WebCore::DocLoader::requestLinkPrefetch):
(WebCore::DocLoader::canRequest):
(WebCore::DocLoader::incrementRequestCount):
(WebCore::DocLoader::decrementRequestCount):
* loader/DocLoader.h:
* loader/loader.cpp:
(WebCore::cachedResourceTypeToTargetType):
(WebCore::Loader::determinePriority):
(WebCore::Loader::load):
(WebCore::Loader::Host::servePendingRequests):
(WebCore::Loader::Host::didFinishLoading):
(WebCore::Loader::Host::didFail):
(WebCore::Loader::Host::didReceiveResponse):
(WebCore::Loader::Host::cancelPendingRequests):
* loader/loader.h:
(WebCore::Loader::):
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::):
2010-07-09 James Robinson <jamesr@chromium.org>
Unreviewed build fix. Add #include to pick up ExceptionCode values for config (like Qt) where it's not picked up indirectly.
* html/HTMLCanvasElement.cpp:
2010-07-09 James Robinson <jamesr@chromium.org>
Reviewed by Darin Adler.
Removes CanvasSurface and moves all of its functionality to HTMLCanvasElement.
https://bugs.webkit.org/show_bug.cgi?id=42005
http://trac.webkit.org/changeset/55201 introduced a new base class for HTMLCanvasElement called CanvasSurface.
The intention was that this would allow for code sharing with the then-proposed OffscreenCanvas. However,
there is no OffscreenCanvas and there's unlikely to be one soon. Additionally CanvasSurface breaks
encapsulation pretty badly by doing "static_cast<HTMLCanvasElement* const>(this)". Until an abstraction is
really needed we should just use HTMLCanvasElement when we want to talk about a canvas.
This patch moves all of CanvasSurface's functionality back up to HTMLCanvasElement and reorders the header
to be a bit more logical.
Refactor with no behavior change, thus no new tests.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/CanvasSurface.cpp: Removed.
* dom/CanvasSurface.h: Removed.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::HTMLCanvasElement):
(WebCore::HTMLCanvasElement::willDraw):
(WebCore::HTMLCanvasElement::setSurfaceSize):
(WebCore::HTMLCanvasElement::toDataURL):
(WebCore::HTMLCanvasElement::convertLogicalToDevice):
(WebCore::HTMLCanvasElement::securityOrigin):
(WebCore::HTMLCanvasElement::styleSelector):
(WebCore::HTMLCanvasElement::createImageBuffer):
(WebCore::HTMLCanvasElement::drawingContext):
(WebCore::HTMLCanvasElement::buffer):
(WebCore::HTMLCanvasElement::baseTransform):
* html/HTMLCanvasElement.h:
(WebCore::HTMLCanvasElement::setObserver):
(WebCore::HTMLCanvasElement::width):
(WebCore::HTMLCanvasElement::height):
(WebCore::HTMLCanvasElement::size):
(WebCore::HTMLCanvasElement::toDataURL):
(WebCore::HTMLCanvasElement::setOriginTainted):
(WebCore::HTMLCanvasElement::originClean):
(WebCore::HTMLCanvasElement::hasCreatedImageBuffer):
2010-07-09 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Calling layoutTestController.layerTreeAsText() should update layout
https://bugs.webkit.org/show_bug.cgi?id=41818
Need to call updateLayout() before we check for any layers, not after,
since layout will update compositing, and may create layers.
* page/Frame.cpp:
(WebCore::Frame::layerTreeAsText):
2010-07-09 Kenneth Russell <kbr@google.com>
Reviewed by Nate Chapin.
bufferSubData causes crash in WebGLBuffer::associateBufferSubData
https://bugs.webkit.org/show_bug.cgi?id=42004
Test: fast/canvas/webgl/index-validation-crash-with-buffer-sub-data.html
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::associateBufferData):
- Allocate m_elementArrayBuffer for entry point taking only size.
Guard against allocation failures of m_elementArrayBuffer.
(WebCore::WebGLBuffer::associateBufferSubData):
- Guard against any possibility of crashes due to m_elementArrayBuffer being NULL.
2010-07-09 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, but pre-approved by Eric Seidel.
Remove unnecessary includes in header files in WebCore/css.
https://bugs.webkit.org/show_bug.cgi?id=41941
* css/CSSComputedStyleDeclaration.h:
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontFaceSource.h:
* css/CSSPrimitiveValueMappings.h:
* css/StyleMedia.h:
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Get rid of manual case maps in HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=42000
No functional change, thus no tests.
* html/HTMLTreeBuilder.cpp:
2010-07-09 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Implement performance.timing.navigationStart
https://bugs.webkit.org/show_bug.cgi?id=41815
See: http://dev.w3.org/2006/webapi/WebTiming/#nt-navigation-start
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadWithDocumentLoader):
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* page/Timing.cpp:
(WebCore::Timing::navigationStart):
2010-07-09 Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] GraphicsLayerQt must have syncCompositingStateForThisLayerOnly() implemented
https://bugs.webkit.org/show_bug.cgi?id=41954
Add GraphicsLayerQt::syncCompositingStateForThisLayerOnly, a non-recursive
implementation of GraphicsLayerQt::syncCompositingState and which targets
the current layer only.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQt::syncCompositingStateForThisLayerOnly):
* platform/graphics/qt/GraphicsLayerQt.h:
2010-07-09 David Kozub <zub@linux.fjfi.cvut.cz>
Reviewed by Darin Adler.
Fix build by adding missing html/TimeRanges.idl to CMakeLists.txt.
https://bugs.webkit.org/show_bug.cgi?id=41945
No functional changes, thus no tests.
* CMakeLists.txt:
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix SVG tag name casing for HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41998
Tested by html5lib/runner.html
* html/HTMLTreeBuilder.cpp:
(WebCore::):
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement SVG attribute case mapping for HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41949
Tested by html5lib/runner.html.
* html/HTMLTreeBuilder.cpp:
2010-07-09 Andy Estes <aestes@apple.com>
Reviewed by Adele Peterson.
Remove the workaround for a Core Animation bug on platforms where the
bug has been fixed.
https://bugs.webkit.org/show_bug.cgi?id=41927
<rdar://problem/7920153>
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes): Add
a compile-time check for platforms that have a Core Animation bug that
needs working around.
2010-07-08 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Nate Chapin.
Implement unloadEventEnd, loadEventStart, and loadEventEnd for Web Timing
https://bugs.webkit.org/show_bug.cgi?id=41332
Test: fast/dom/webtiming.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::loadWithDocumentLoader):
* loader/FrameLoader.h:
(WebCore::FrameLoader::frameLoadTimeline):
* loader/FrameLoaderTypes.h:
(WebCore::FrameLoadTimeline::FrameLoadTimeline):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchLoadEvent):
* page/Timing.cpp:
(WebCore::Timing::navigationStart):
(WebCore::Timing::unloadEventEnd):
(WebCore::Timing::loadEventStart):
(WebCore::Timing::loadEventEnd):
* page/Timing.h:
* page/Timing.idl:
2010-07-09 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, but pre-approved by Eric Seidel.
Remove all unnecessary includes from the header files in WebCore/accessibility/.
https://bugs.webkit.org/show_bug.cgi?id=41941
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityListBox.cpp:
* accessibility/AccessibilityListBox.h:
* accessibility/AccessibilityMenuList.h:
* accessibility/mac/AccessibilityObjectWrapper.h:
2010-07-09 Patrick Gansterer <paroga@paroga.com>
Reviewed by Kent Tamura.
[WINCE] Buildfix for EventHandlerWin
https://bugs.webkit.org/show_bug.cgi?id=41909
Use Clipboard.h instead of ClipboardWin.h on WinCE.
* page/win/EventHandlerWin.cpp:
2010-07-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62946.
http://trac.webkit.org/changeset/62946
https://bugs.webkit.org/show_bug.cgi?id=41965
AppCache inspector support should be enabled in WebKit ToT.
(Requested by pfeldman_ on #webkit).
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel):
(WebInspector.StoragePanel.prototype.reset):
(WebInspector.StoragePanel.prototype.addApplicationCache):
2010-07-09 François Sausset <sausset@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
Implement MathML mathcolor & mathbackground attributes
https://bugs.webkit.org/show_bug.cgi?id=41895
Test: mathml/presentation/attributes.xhtml
* dom/MappedAttributeEntry.h:
(WebCore::):
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::MathMLElement):
(WebCore::MathMLElement::mapToEntry):
(WebCore::MathMLElement::parseMappedAttribute):
* mathml/MathMLElement.h:
* mathml/mathattrs.in:
2010-07-09 Xiaomei Ji <xji@chromium.org>
Reviewed by David Levin.
Fix characters with unicode-bidi-mirror property are not correctly
mirrored in Linux.
https://bugs.webkit.org/show_bug.cgi?id=41305
Since harfbuzz does not do mirroring, chromium should iterate each
character in the string and mirror it if needed before passing the
string to harfbuzz for shaping.
Test: fast/text/international/bidi-mirror-he-ar.html
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::~TextRunWalker):
(WebCore::TextRunWalker::mirrorCharacters):
2010-07-09 Anders Carlsson <andersca@apple.com>
Reviewed by Simon Fraser.
Instantiate Netscape plug-ins, pass geometry information to Plugin
https://bugs.webkit.org/show_bug.cgi?id=41960
* WebCore.exp.in:
Export ScrollView::contentsToWindow.
2010-07-09 Patrick Gansterer <paroga@paroga.com>
Reviewed by Kent Tamura.
[WINCE] Buildfix for FrameWince after r47440
https://bugs.webkit.org/show_bug.cgi?id=41904
* page/wince/FrameWince.cpp: Added property svn:eol-style.
(WebCore::computePageRectsForFrame):
(WebCore::imageFromSelection):
2010-07-09 Vitaly Repeshko <vitalyr@chromium.org>
Reviewed by Pavel Feldman.
[v8] Call JS gc in a fresh context to avoid retaining the current one.
https://bugs.webkit.org/show_bug.cgi?id=41963
http://crbug.com/46571
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::collectGarbage):
2010-07-09 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Crash with uniform array test
https://bugs.webkit.org/show_bug.cgi?id=36028
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):
- Fixed type tests and casting of incoming arrays.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniform):
- Fixed crash when null WebGLUniform is passed to getUniform.
2010-07-09 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: text editing not spoken by VO on web view contenteditable textbox
https://bugs.webkit.org/show_bug.cgi?id=41912
Test: platform/mac/accessibility/selection-value-changes-for-aria-textbox.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::renderObjectIsObservable):
2010-07-09 Michael Nordman <michaeln@google.com>
Reviewed by Dumitru Daniliuc.
Use class ProgressEvent when raising appcache related progress events and
set the 'total', 'loaded', and 'lengthComputable' attributes.
Also raise the final progress event with the 'total' and 'loaded' attribute
values are equal to one another to keep pace with the spec for this feature.
https://bugs.webkit.org/show_bug.cgi?id=37602
Test: http/tests/appcache/progress-counter.html
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::ApplicationCacheGroup):
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
(WebCore::ApplicationCacheGroup::startLoadingEntry):
(WebCore::CallCacheListenerTask::create):
(WebCore::CallCacheListenerTask::performTask):
(WebCore::CallCacheListenerTask::CallCacheListenerTask):
(WebCore::ApplicationCacheGroup::postListenerTask):
* loader/appcache/ApplicationCacheGroup.h:
(WebCore::ApplicationCacheGroup::postListenerTask):
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
(WebCore::ApplicationCacheHost::stopDeferringEvents):
(WebCore::ApplicationCacheHost::dispatchDOMEvent):
* loader/appcache/ApplicationCacheHost.h:
(WebCore::ApplicationCacheHost::DeferredEvent::DeferredEvent):
2010-07-09 Sebastian Dröge <sebastian.droege@collabora.co.uk>
Reviewed by Gustavo Noronha Silva.
Bug 41340 - [GStreamer] Subtle race condition during seeks
https://bugs.webkit.org/show_bug.cgi?id=41340
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStop):
(webKitWebSrcNeedDataMainCb):
(webKitWebSrcNeedDataCb):
(webKitWebSrcEnoughDataMainCb):
(webKitWebSrcEnoughDataCb):
(webKitWebSrcSeekDataCb):
(StreamingClient::didFinishLoading):
Fix two subtle race conditions that can happen during seeks:
- The timeout callback could be called before the callback ID is
assigned to the instance private data. This causes the ID to
be set after the callback has finished and breaks all future
processing.
- The source must not go EOS while a seek is pending because
this confuses appsrc due to the different threads involved here.
2010-07-09 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Removed hard-coded enabled default of video support
Properly detect video/audio instead of defaulting to true.Properly detect video/audio instead of defaulting to true.Properly detect video/audio instead of defaulting to true.Properly detect video/audio instead of defaulting to true.
* WebCore.pri:
2010-07-09 Ben Murdoch <benm@google.com>
Reviewed by Steve Block.
[Arm] Missing NaN check in XPath substring function
https://bugs.webkit.org/show_bug.cgi?id=41862
Test: fast/xpath/substring-nan-position.html
* xml/XPathFunctions.cpp:
(WebCore::XPath::FunSubstring::evaluate): Add an isnan()
to the value returned from evaluating the position
argument and early out and return the empty string.
2010-07-09 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Prospective build fix.
Moved the media element detection from WebCore.pro into WebCore.pri, where
all the features are detected. This is also used by build-webkit to determine
the defaults, which may be the reason for the build breakage.
* WebCore.pri:
* WebCore.pro:
2010-07-09 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Re-enable support for QtMultimediaKit as backend for the media elements
Experimental support is re-enabled if QtMobility is available and the Qt
version is 4.7 or above.
* WebCore.pro:
* platform/graphics/MediaPlayer.cpp:
* platform/graphics/qt/MediaPlayerPrivateQt.cpp:
(WebCore::MediaPlayerPrivate::supportsType): Adapt to latest QtMultimediaKit API changes.
(WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
(WebCore::MediaPlayerPrivate::totalBytes):
2010-07-09 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: do not show default tooltip when detailed network info is available.
https://bugs.webkit.org/show_bug.cgi?id=41957
* English.lproj/localizedStrings.js:
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype.reset):
(WebInspector.ResourcesPanel.prototype.showResource):
(WebInspector.ResourcesPanel.prototype._getPopoverAnchor):
(WebInspector.ResourcesPanel.prototype._showPopover):
(WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels):
2010-07-09 François Sausset <sausset@gmail.com>
Reviewed by Beth Dakin.
Correct the default font variant of mtext (regular instead of italic).
https://bugs.webkit.org/show_bug.cgi?id=41626
Add test to be sure that only <mi> elements use italic fonts by default.
Update test with fractions to take into account the correct behaviour of mtext (regular instead of italic).
* css/mathml.css:
(mi):
2010-07-09 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Implement performance.navigation.type
https://bugs.webkit.org/show_bug.cgi?id=41564
Tests: fast/dom/navigation-type-back-forward.html
fast/dom/navigation-type-navigate.html
fast/dom/navigation-type-reload.html
* page/Navigation.cpp:
(WebCore::Navigation::type):
* page/Navigation.h:
(WebCore::Navigation::):
* page/Navigation.idl:
2010-07-09 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: hide AppCache until implemented.
https://bugs.webkit.org/show_bug.cgi?id=41858
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel):
(WebInspector.StoragePanel.prototype.reset):
(WebInspector.StoragePanel.prototype.addApplicationCache):
2010-07-09 François Sausset <sausset@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
Set the good default behaviour for the columalign attribute on MathML mtable element
https://bugs.webkit.org/show_bug.cgi?id=41631
Test update: mathml/tables.xhtml
* css/mathml.css:
(math):
2010-07-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62937.
http://trac.webkit.org/changeset/62937
https://bugs.webkit.org/show_bug.cgi?id=41955
Crashes SnowLeopard leaks and Windows debug bot in fast/xsl
/xslt-relative-path.xml, with assertion in
XSLTProcessorLibxslt.cpp:264 (Requested by WildFox on
#webkit).
* xml/XSLTProcessor.h:
(WebCore::XSLTProcessor::XSLTProcessor):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc):
(WebCore::setXSLTLoadCallBack):
(WebCore::xsltStylesheetPointer):
(WebCore::XSLTProcessor::transformToString):
2010-07-09 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Laszlo Gombos.
NotificationPresenter needs a cancelRequestPermission API
https://bugs.webkit.org/show_bug.cgi?id=41783
Updated NotificationPresenter API, to use ScriptExecutionContext instead of origin.
Added new API NotificationPresenter::cancelRequestsForPermision
The new API will be implemented and a test will be added in a followup patch.
* notifications/Notification.cpp:
(WebCore::Notification::Notification):
* notifications/NotificationCenter.cpp:
(WebCore::NotificationCenter::checkPermission):
(WebCore::NotificationCenter::requestPermission):
(WebCore::NotificationCenter::disconnectFrame):
* notifications/NotificationCenter.h:
* notifications/NotificationPresenter.h:
2010-07-09 Andreas Wictor <andreas.wictor@xcerion.com>
Reviewed by Alexey Proskuryakov.
Remove global variables from XSLTProcessorLibxslt.cpp
https://bugs.webkit.org/show_bug.cgi?id=41348
Remove the globalProcessor and globalDocLoader global variables
by using the _private field that exists on most libxml structs.
No new tests, existing tests covers this.
* xml/XSLTProcessor.h:
(WebCore::XSLTProcessor::sourceNode):
(WebCore::XSLTProcessor::XSLTProcessor):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::registeredXSLTProcessors):
(WebCore::registeredXSLStyleSheets):
(WebCore::docLoaderFunc):
(WebCore::clearSavedStyleSheetPointers):
(WebCore::xsltStylesheetPointer):
(WebCore::XSLTProcessor::transformToString):
2010-07-09 Adam Barth <abarth@webkit.org>
Unreviewed build fix.
We recently taught the HTMLTokenizer to recognize self-closing tags,
<http://trac.webkit.org/changeset/62926>, but that confused the
LegacyHTMLTreeBuilder. It turns out that it's much happier if we never
say a tag is self-closing.
* html/HTMLTreeBuilder.cpp:
(WebCore::convertToOldStyle):
2010-07-09 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Rob Buis.
svg/custom/use-instanceRoot-event-bubbling.xhtml test crashes
https://bugs.webkit.org/show_bug.cgi?id=41931
Be careful to not mutate (marking it for recreation) the shadow tree, while building it.
The recent change that cloneNode() properly synchronizes the style/SVG attributes caused this problem.
Fixes crash seen on the buildbots in svg/custom/use-instanceRoot-event-bubbling.xhtml.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::SVGUseElement):
(WebCore::SVGUseElement::recalcStyle):
(WebCore::SVGUseElement::buildShadowAndInstanceTree):
(WebCore::SVGUseElement::invalidateShadowTree):
* svg/SVGUseElement.h:
(WebCore::SVGUseElement::setUpdatesBlocked):
2010-07-09 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Skip leading newlines in <textarea>
https://bugs.webkit.org/show_bug.cgi?id=41947
We would have caught this earlier with the ASSERT.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
2010-07-08 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Provide detailed network info in the resources panel.
https://bugs.webkit.org/show_bug.cgi?id=40227
* English.lproj/localizedStrings.js:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::willSendRequest):
(WebCore::InspectorController::didReceiveResponse):
* inspector/InspectorController.h:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::updateResponse):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::buildObjectForTiming):
* inspector/InspectorResource.h:
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype.elementsToRestoreScrollPositionsFor):
(WebInspector.ResourcesPanel.prototype._getPopoverAnchor):
(WebInspector.ResourcesPanel.prototype._showPopover):
(WebInspector.ResourcesPanel.prototype.hide):
(WebInspector.ResourceTimeCalculator.prototype.computeBarGraphLabels):
(WebInspector.ResourceGraph):
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
* platform/network/ResourceLoadTiming.h:
(WebCore::ResourceLoadTiming::create):
(WebCore::ResourceLoadTiming::deepCopy):
(WebCore::ResourceLoadTiming::operator==):
(WebCore::ResourceLoadTiming::ResourceLoadTiming):
* platform/network/ResourceRequestBase.h:
(WebCore::ResourceRequestBase::reportLoadTiming):
(WebCore::ResourceRequestBase::setReportLoadTiming):
(WebCore::ResourceRequestBase::ResourceRequestBase):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::connectionID):
(WebCore::ResourceResponseBase::setConnectionID):
* platform/network/ResourceResponseBase.h:
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement self closing start tag state in the tokenizer
https://bugs.webkit.org/show_bug.cgi?id=41946
Amazingly we got this far w/o needing self closing.
The LegacyHTMLTreeBuilder clearly uses the self-closing
state, but the fact that we never exposed it seems to
not have caused any test failures. Sad.
The new HTMLTreeBuilder only needs the self closing state
for foreign content mode (and a few parse error cases).
* html/HTMLToken.h:
(WebCore::HTMLToken::setSelfClosing):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
* html/HTMLTreeBuilder.cpp:
(WebCore::):
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add basic "in foreign content" support to the TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41943
This is covered by numerous tests in html5lib/runner.html.
"in foreign content" mode requires us to be able to process
tokens using the "secondary insertion mode". We have to set
a fake insertion mode to do that, so much of this code is enabling
setting of fake insertion modes, and then later restoration of the
insertion mode after execution.
There is a lot more of foreign content mode to implement, but this is
a good start resulting in huge test progressions.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
- Use createHTMLElementAndAttachToCurrent instead of copy/paste code.
- No need to include HTMLElementFactory in this file.
* html/HTMLConstructionSite.h:
- RedirectToFosterParentGuard does not need to be a friend class.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::isOnlyHTMLElementsInScope):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::setInsertionMode):
(WebCore::HTMLTreeBuilder::isFakeInsertionMode):
(WebCore::HTMLTreeBuilder::setFakeInsertionMode):
2010-07-09 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Coalesce text nodes when foster parenting
https://bugs.webkit.org/show_bug.cgi?id=41921
Introduces the notion of an AttachmentSite to the overall
HTMLConstructionSite. Maybe we should rename HTMLConstructionSite to
HTMLConstructionArea since we construct things all over the tree? :)
There's something wrong in the internal layering in this class, but I
can't quite see what it is. I added a FIXME for the some of the
symptoms.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::attachAtSite):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::findFosterSite):
(WebCore::HTMLConstructionSite::fosterParent):
* html/HTMLConstructionSite.h:
2010-07-08 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
RenderSVGRoot does not include border/padding while repainting
https://bugs.webkit.org/show_bug.cgi?id=41854
RenderSVGRoot does not include border/padding in the repaint rect.
clippedOverflowRectForRepaint() was missing. Affects all DRT results,
as <svg> now gets properly sized.
Test: svg/custom/repaint-moving-svg-and-div.xhtml
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
(WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
* rendering/RenderSVGRoot.h:
2010-07-09 Albert J. Wong <ajwong@chromium.org>
Reviewed by Nikolas Zimmermann.
Add RuntimeEnabledFeatures::timeRangesEnabled() required by r62880
https://bugs.webkit.org/show_bug.cgi?id=41935
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::timeRangesEnabled):
Add in timeRangesEnabled() implementation.
* bindings/generic/RuntimeEnabledFeatures.h:
Add in timeRangesEnabled() declaration.
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add setInsertionMode setter in preparation for "in foreign content" mode
https://bugs.webkit.org/show_bug.cgi?id=41942
"in foreign content" mode needs to be able to use a fake
insertion mode for processing. We need to be able to save the
original insertion mode, set a fake one, and then restore the original
if it wasn't changed. To detect changes, we need all callsites to
use a setInsertionMode accessor instead of m_insertionMode =
No functional changes, thus no tests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::setInsertionModeAndEnd):
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processDefaultForInTableTextMode):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add insertForeignElement in preparation for adding "in foreign content" support
https://bugs.webkit.org/show_bug.cgi?id=41940
No functional changes, thus no tests.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertForeignElement):
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElement):
* html/HTMLConstructionSite.h:
2010-07-09 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implementing pending table characters
https://bugs.webkit.org/show_bug.cgi?id=41916
This turned out to not be as scary as I thought it would be.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processDefaultForInTableTextMode):
* html/HTMLTreeBuilder.h:
2010-07-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Handle whitespace correctly
https://bugs.webkit.org/show_bug.cgi?id=41907
This patch introduces an extra memcpy in the character token pipeline.
I'll remove the memcpy in a future patch.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertTextNode):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacter):
* html/HTMLTreeBuilder.h:
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Move more mode handling into functions for later re-use
https://bugs.webkit.org/show_bug.cgi?id=41939
No functional changes, thus no tests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTagForInTableBody):
(WebCore::HTMLTreeBuilder::processEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInCell):
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-07-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add new popUntilPopped functions to clean up code
https://bugs.webkit.org/show_bug.cgi?id=41936
Pretty self explanatory. Much awesome code reduction.
No functional changes, thus no tests.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntilPopped):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-09 Eric Seidel <eric@webkit.org>
Unreviewed. Just renaming (discussed with Adam Barth).
Rename createElement* to createHTMLElement* to better reflect
behavior. This is in preparation for adding foreign content support.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::createHTMLElementAndAttachToCurrent):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertHTMLElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::createHTMLElement):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-09 Eric Seidel <eric@webkit.org>
Unreviewed. Just renaming (discussed with Adam Barth).
Rename insertElement to insertHTMLElement and
insertSelfClosingElement to insertSelfClosingHTMLElement
to better reflect what they actually do. This is in preparation
for adding foreign content support.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::insertHTMLElement):
(WebCore::HTMLConstructionSite::insertSelfClosingHTMLElement):
(WebCore::HTMLConstructionSite::insertFormattingElement):
(WebCore::HTMLConstructionSite::reconstructTheActiveFormattingElements):
(WebCore::HTMLConstructionSite::fosterParent):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
2010-07-08 Rob Buis <rwlbuis@gmail.com>
Reviewed by Eric Seidel.
Implement SVGSVGElement.getElementById
https://bugs.webkit.org/show_bug.cgi?id=41655
Implement getElementById for SVGSVGElement by trying to
reuse Document.getElementById. If that fails to find an
SVG element in the document fragent do a subtree search.
Test: svg/custom/svg-getelementid.xhtml
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::getElementById):
* svg/SVGSVGElement.h:
* svg/SVGSVGElement.idl:
2010-07-08 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Unwrap a few || blocks for easier readability
https://bugs.webkit.org/show_bug.cgi?id=41838
No functional change, thus no tests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::adjustedLexerState):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
2010-07-08 Sam Magnuson <smagnuson@netflix.com>
Reviewed by Simon Hausmann.
[Qt] for debugging purposes nice I'm contributing back my FPS
counter in the AnimationQtBase
https://bugs.webkit.org/show_bug.cgi?id=40381
Simply start a timer and count frames in the AnimationQtBase and
spit out the FPS count at the end of a single animation.
No new tests: this is a simple debugging aid.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::AnimationQt::updateState):
(WebCore::AnimationQt::updateCurrentTime):
(WebCore::TransformAnimationQt::updateState):
(WebCore::OpacityAnimationQt::updateState):
2010-07-08 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: migrate InspectorDOMAgent to the generated version of
InspectorFrontend interface. This is the next step on the way to
Remote Debugging.
* bindings/js/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):
* bindings/js/ScriptEventListener.h:
* bindings/v8/ScriptEventListener.cpp:
(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):
* bindings/v8/ScriptEventListener.h:
* inspector/CodeGeneratorInspector.pm:
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::inspectorStyleSheet):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
* inspector/InspectorController.h:
(WebCore::InspectorController::inspectorFrontend2):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::setDocument):
(WebCore::InspectorDOMAgent::handleEvent):
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
(WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
(WebCore::InspectorDOMAgent::buildObjectForEventListener):
(WebCore::InspectorDOMAgent::didInsertDOMNode):
(WebCore::InspectorDOMAgent::getStyles):
(WebCore::InspectorDOMAgent::getAllStyles):
(WebCore::InspectorDOMAgent::getStyleSheet):
(WebCore::InspectorDOMAgent::getRuleRangesForStyleSheetId):
(WebCore::InspectorDOMAgent::getInlineStyle):
(WebCore::InspectorDOMAgent::getComputedStyle):
(WebCore::InspectorDOMAgent::buildObjectForAttributeStyles):
(WebCore::InspectorDOMAgent::buildArrayForCSSRules):
(WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
(WebCore::InspectorDOMAgent::applyStyleText):
(WebCore::InspectorDOMAgent::toggleStyleEnabled):
(WebCore::InspectorDOMAgent::setRuleSelector):
(WebCore::InspectorDOMAgent::addRule):
(WebCore::InspectorDOMAgent::buildObjectForStyle):
(WebCore::InspectorDOMAgent::populateObjectWithStyleProperties):
(WebCore::InspectorDOMAgent::buildArrayForDisabledStyleProperties):
(WebCore::InspectorDOMAgent::buildObjectForStyleSheet):
(WebCore::InspectorDOMAgent::buildObjectForRule):
(WebCore::InspectorDOMAgent::toArray):
(WebCore::InspectorDOMAgent::reportNodesAsSearchResults):
* inspector/InspectorDOMAgent.h:
(WebCore::InspectorDOMAgent::create):
* inspector/InspectorFrontend.cpp:
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontend2.idl:
* inspector/front-end/inspector.js:
(WebInspector.dispatchMessageFromBackend):
2010-07-08 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
compositing/iframes/iframe-resize.html displays incorrectly after the resize
https://bugs.webkit.org/show_bug.cgi?id=41794
The clip and scroll layers of a composited iframe's RenderLayerCompositor are updated from
from updateGraphicsLayerGeometry(), but this is too early to get the correct layoutWidth and
layoutHeight from the FrameView which happen later in layout. So when a widget size changes,
call updateAfterWidgetResize() directly on the RenderLayerBacking (if any).
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterWidgetResize): New method that updates the clip
and scroll layers of the iframe's content RenderLayerCompositor.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Call updateAfterWidgetResize()
* rendering/RenderLayerBacking.h: Add updateAfterWidgetResize().
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::setWidgetGeometry): Call updateAfterWidgetResize().
2010-07-08 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Calling layoutTestController.layerTreeAsText() should update layout
https://bugs.webkit.org/show_bug.cgi?id=41818
Call updateLayout() on the document before obtaining the layer tree.
This will update compositing layers.
* page/Frame.cpp:
(WebCore::Frame::layerTreeAsText):
2010-07-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Get my head wrapped around processCharacter
https://bugs.webkit.org/show_bug.cgi?id=41812
The bulk of the patch is just stubbing out functions to document what
the spec tells us to do. I'll implement these functions in subsequent
patches.
* html/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::insertLeadingWhitespace):
(WebCore::HTMLConstructionSite::insertLeadingWhitespaceWithActiveFormattingElements):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacter):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::skipLeadingWhitespace):
2010-07-08 Tony Chang <tony@chromium.org>
Reviewed by Ojan Vafai.
WebCore::InsertLineBreakCommand::shouldUseBreakElement ReadAV@NULL
https://bugs.webkit.org/show_bug.cgi?id=30116
Fixing the crash causes text insertions on hidden elements to get ignored
(not a new bug). This is https://bugs.webkit.org/show_bug.cgi?id=40342
Test: editing/inserting/return-key-in-hidden-textarea.html
* editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::doApply):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
2010-07-08 Sam Weinig <sam@webkit.org>
Reviewed by Oliver Hunt.
Fix for https://bugs.webkit.org/show_bug.cgi?id=41923
TimeRanges should expose a JS constructor
* html/TimeRanges.idl: Remove [OmitConstructor].
* page/DOMWindow.idl: Add constructor.
2010-07-08 Erik Arvidsson <arv@chromium.org>
Reviewed by Ojan Vafai.
Add missing padding-end and margin-end CSS properties.
https://bugs.webkit.org/show_bug.cgi?id=25761
Tests: fast/css/margin-start-end.html
fast/css/padding-start-end.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSPropertyNames.in:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
* inspector/front-end/SourceCSSTokenizer.js:
(WebInspector.SourceCSSTokenizer):
2010-07-08 Aaron Boodman <aa@chromium.org>
Reviewed by Timothy Hatcher.
Add the ability for user scripts and user styles to affect just the top frame.
https://bugs.webkit.org/show_bug.cgi?id=41529
Tests: userscripts/user-script-all-frames.html
userscripts/user-script-top-frame-only.html
userscripts/user-style-all-frames.html
userscripts/user-style-top-frame-only.html
* WebCore.base.exp: Update PageGroup method signatures.
* dom/Document.cpp:
(WebCore::Document::pageGroupUserSheets): Check allFrames before injecting.
* page/Frame.cpp:
(WebCore::Frame::injectUserScriptsForWorld): Ditto.
* page/PageGroup.cpp:
(WebCore::PageGroup::addUserScriptToWorld):
(WebCore::PageGroup::addUserStyleSheetToWorld):
* page/PageGroup.h:
* page/UserScript.h:
(WebCore::UserScript::UserScript):
(WebCore::UserScript::injectedFrames):
* page/UserScriptTypes.h:
(WebCore::):
* page/UserStyleSheet.h:
(WebCore::UserStyleSheet::UserStyleSheet):
(WebCore::UserStyleSheet::injectedFrames):
2010-07-08 Adele Peterson <adele@apple.com>
Reviewed by Jon Honeycutt, Adam Roben, and Darin Adler.
Fix for https://bugs.webkit.org/show_bug.cgi?id=41721
<rdar://problem/8158561> Missing plug-in indicator should have a pressed state
Test: plugins/clicking-missing-plugin-fires-delegate.html
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::HTMLPlugInElement): Initialize m_isCapturingMouseEvents.
(WebCore::HTMLPlugInElement::detach): If we're still capturing when getting detached, clear the capturing node on the EventHandler.
(WebCore::HTMLPlugInElement::defaultEventHandler): Call handleMissingPluginIndicatorEvent when the missing plugin indicator is showing.
* html/HTMLPlugInElement.h:
(WebCore::HTMLPlugInElement::isCapturingMouseEvents):
(WebCore::HTMLPlugInElement::setIsCapturingMouseEvents):
* page/ChromeClient.h:
(WebCore::ChromeClient::shouldMissingPluginMessageBeButton): Added default implementation.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::replacementTextRoundedRectPressedColor):
(WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
(WebCore::RenderEmbeddedObject::setMissingPluginIndicatorIsPressed): Added. Causes a repaint when the state changes.
(WebCore::RenderEmbeddedObject::paintReplaced): Call getReplacementTextGeometry.
(WebCore::RenderEmbeddedObject::getReplacementTextGeometry): Factored this out so it can be used in paintReplaced and in isInMissingPluginIndicator.
(WebCore::RenderEmbeddedObject::isInMissingPluginIndicator): Hit test to see if the mouse event is in the missing plugin indicator.
(WebCore::RenderEmbeddedObject::handleMissingPluginIndicatorEvent): Capture mouse events as needed and track the pressed appearance.
* rendering/RenderEmbeddedObject.h:
2010-07-08 James Robinson <jamesr@google.com>
Reviewed by Darin Fisher.
Allow resizing and getting the texture id from an offscreen GLES2Context
https://bugs.webkit.org/show_bug.cgi?id=41828
When using an offscreen GLES2Context the caller needs to be able to resize the backing store
managed by the embedder and get access to a texture id to pass to the compositor. WebGL
does these actions in an indirect way, it will be refactored to use this path.
* platform/chromium/GLES2Context.h:
2010-07-02 Ojan Vafai <ojan@chromium.org>
Reviewed by Adam Barth.
Crash in RenderObject::containingBlock when clearing selection in a display:none node.
https://bugs.webkit.org/show_bug.cgi?id=41523
updateStyleIfNeeded before clearing the selection in the RenderView. Otherwise,
m_selectionStart and m_selectionEnd in RenderView point to garbage object.
This fixes the crash because updateStyleIfNeeded clears the selection before
clobbering nodes that contain the selection.
Test: editing/selection/crash-on-clear-selection.html
* editing/SelectionController.cpp:
(WebCore::SelectionController::updateAppearance):
2010-07-08 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Xan Lopez.
Correct a mistake in calculating squiggle extents. The entire
quantity was being divided by two, rather than just the unitWidth.
This error caused the squiggle to be about half the expected length.
* platform/graphics/cairo/DrawErrorUnderline.h:
(drawErrorUnderline):
2010-07-08 John Abd-El-Malek <jam@chromium.org>
Reviewed by Darin Fisher.
[V8] Navigation policy doesn't play nicely with pepper plugins
https://bugs.webkit.org/show_bug.cgi?id=41864
* bindings/v8/V8Utilities.cpp:
(WebCore::callingOrEnteredFrame):
(WebCore::shouldAllowNavigation):
(WebCore::navigateIfAllowed):
2010-07-08 Jon Honeycutt <jhoneycutt@apple.com>
Missing plug-ins may cause an assertion failure.
https://bugs.webkit.org/show_bug.cgi?id=41900
Reviewed by Adele Peterson.
Test: plugins/missing-plugin.html
* plugins/PluginView.cpp:
(WebCore::PluginView::~PluginView):
Check whether m_instance is null before trying to remove it from the
map. Trying to remove a null instance results in an assertion failure.
(WebCore::PluginView::PluginView):
Initialize m_instance to 0, because there is an early return that may
skip its being assigned its proper value.
2010-07-08 Darin Adler <darin@apple.com>
Reviewed by Oliver Hunt.
Fix a test failure seen only on the Leopard bot.
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
If SharedWorker::create returns an exception, don't try to create a wrapper
for its return value, which can be 0.
2010-07-08 Albert J. Wong <ajwong@chromium.org>
Not reviewed, build break fix for chromium.
A new MediaControlElementType enum was added which caused a warning in
the Chromium build.
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
Add MediaVolumeSliderMuteButton enumartion entry.
2010-07-08 Dmitry Titov <dimich@chromium.org>
Reviewed by David Levin.
Remove IDL declarations and stubs for navigator.registerProtocolHandler and navigator.registerContentHandler.
https://bugs.webkit.org/show_bug.cgi?id=41878
This is practically a rollback of http://trac.webkit.org/changeset/50477.
* page/Chrome.cpp:
* page/Chrome.h:
* page/ChromeClient.h:
* page/Navigator.cpp:
* page/Navigator.h:
* page/Navigator.idl:
2010-07-08 Xan Lopez <xlopez@igalia.com>
Reviewed by Darin Adler.
Fix adoptRef assertion failures caused by stack-allocated ResourceHandle objects
https://bugs.webkit.org/show_bug.cgi?id=41823
Create the ResourceHandle manually for now instead of calling
::create, since that methods does a few extra checks that make us
fail a couple of HTTP tests.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::):
2010-07-08 Alexey Proskuryakov <ap@apple.com>
Reviewed by David Levin.
https://bugs.webkit.org/show_bug.cgi?id=41886
Shorten access control failure explanation messages
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
Removed "response header field" parts from error text - it's long, but doesn't add much
to header field name.
* platform/network/ResourceErrorBase.cpp:
* platform/network/ResourceErrorBase.h:
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didFail):
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest):
(WebCore::DocumentThreadableLoader::didReceiveResponse):
(WebCore::DocumentThreadableLoader::preflightFailure):
Renamed the constant for domain. WebCore shouldn't be creating errors observable by WebKit
clients, because it can't create a platform error, and cannot load a localized string.
We don't treat cross origin access check failures as true loading failures, so we don't tell
clients about these.
2010-07-08 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
Mac OS X media controls should have a way to adjust volume incrementally
https://bugs.webkit.org/show_bug.cgi?id=41718
<rdar://problem/5679472>
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Handle MediaVolumeSliderMuteButtonPart.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId): Handle PseudoMediaControlsVolumeSliderMuteButton.
(WebCore::nameToPseudoTypeMap): Define mediaControlsVolumeSliderMuteButton.
(WebCore::CSSSelector::extractPseudoType): Handle PseudoMediaControlsVolumeSliderMuteButton.
* css/CSSSelector.h:
(WebCore::CSSSelector::): Define PseudoMediaControlsVolumeSliderMuteButton.
* css/CSSValueKeywords.in: Define media-volume-slider-mute-button.
* css/mediaControls.css:
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button): New.
* css/mediaControlsQuickTime.css:
(audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel): Add "overflow: visible"
so volume slider pop-up will be visible.
(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button): Make
mute button 14x12 instead of 15x14 so it matches the size in the volume slider.
(audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):
(audio::-webkit-media-controls-volume-slider-mute-button, video::-webkit-media-controls-volume-slider-mute-button):
New.
* platform/ThemeTypes.h: Define MediaVolumeSliderMuteButtonPart.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlInputElement::MediaControlInputElement): Handle MEDIA_CONTROLS_VOLUME_SLIDER_MUTE_BUTTON.
(WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Add ButtonLocation
parameter both mute buttons can be created.
(WebCore::MediaControlMuteButtonElement::create): Ditto.
* rendering/MediaControlElements.h: Define MediaVolumeSliderMuteButton and ButtonLocation.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::styleDidChange): Update volume slider mute button.
(WebCore::RenderMedia::createMuteButton): Pass ButtonLocation parameter to MediaControlMuteButtonElement::create.
(WebCore::RenderMedia::createVolumeSliderMuteButton): New.
(WebCore::RenderMedia::updateControls): Deal with volume slider mute button.
(WebCore::RenderMedia::updateVolumeSliderContainer): Don't assume all ports want to position
the volume slider in the same place, call new volumeSliderOffsetFromMuteButton theme function.
(WebCore::RenderMedia::forwardEvent): Handle volume slider mute button.
* rendering/RenderMedia.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint): Handle MediaVolumeSliderMuteButtonPart.
(WebCore::RenderTheme::volumeSliderOffsetFromMuteButton): New, return location previously hard
coded in RenderMedia::updateVolumeSliderContainer.
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::adjustMediaSliderThumbSize): Deal with the volume slider thumb.
(WebCore::RenderThemeMac::paintMediaVolumeSliderContainer): New, call the WKSI paint function
for this button.
(WebCore::RenderThemeMac::paintMediaVolumeSliderTrack): Ditto.
(WebCore::RenderThemeMac::paintMediaVolumeSliderThumb): Ditto.
(WebCore::RenderThemeMac::shouldRenderMediaControlPart): Draw the volume slider parts when
using the new controller UI for a movie that has audio.
(WebCore::RenderThemeMac::volumeSliderOffsetFromMuteButton): New, position the volume slider
directly above the mute button.
* rendering/style/RenderStyleConstants.h: Define MEDIA_CONTROLS_VOLUME_SLIDER_MUTE_BUTTON.
2010-07-08 Antonio Gomes <tonikitoo@webkit.org>
Unreviewed complementary fix for r62815
One last time change made me blind to a "!" in a if statment.
* editing/EditorCommand.cpp:
(WebCore::executeToggleStyle):
2010-07-07 Ojan Vafai <ojan@chromium.org>
Reviewed by Darin Adler.
Regression: Selection anchor + focus swap when arrow keys after setBaseAndExtent
https://bugs.webkit.org/show_bug.cgi?id=32605
Only have selections be non-directional when they are set via the mouse.
Otherwise, all selections are directional.
Test: editing/selection/extend-forward-after-set-base-and-extent.html
* WebCore.base.exp:
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
* editing/SelectionController.h:
(WebCore::SelectionController::setSelection):
* page/EventHandler.cpp:
(WebCore::EventHandler::selectClosestWordFromMouseEvent):
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
(WebCore::EventHandler::handleMousePressEventTripleClick):
(WebCore::EventHandler::handleMousePressEventSingleClick):
(WebCore::EventHandler::updateSelectionForMouseDrag):
2010-07-08 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Ojan Vafai.
Refactor platform dependent editing behavior code out of Settings (part II)
https://bugs.webkit.org/show_bug.cgi?id=39854
Mac port is currently the only port relying on a style to be present on the start
of a selection to consider the style as applied or not. All other ports
have to have the style present in all text node of the selection for such.
Patch makes situations that depend on this check like this to be controlled by
the EditingBehavior class.
Refactoring, so no new tests needed.
* editing/EditingBehavior.h:
(WebCore::EditingBehavior::shouldToggleStyleBasedOnStartOfSelection):
* editing/EditorCommand.cpp:
(WebCore::executeToggleStyle):
2010-07-08 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add stubbed out PluginView class
https://bugs.webkit.org/show_bug.cgi?id=41879
Export functions needed by WebKit2.
* WebCore.exp.in:
2010-07-08 Ben Murdoch <benm@google.com>
Reviewed by Pavel Feldman.
Fix build break in V8ConsoleCustom.cpp
https://bugs.webkit.org/show_bug.cgi?id=40825
No new tests as just fixing a build break.
* bindings/v8/custom/V8ConsoleCustom.cpp: Guard profilesAccessorGetter
appropriately.
2010-07-08 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Pass Page to BackForwardControllerClient::createBackForwardList since it
may be called before implementations of BackForwardControllerClient have
access to a Page.
* history/BackForwardController.cpp:
(WebCore::BackForwardController::BackForwardController):
* history/BackForwardControllerClient.h:
2010-07-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62778.
http://trac.webkit.org/changeset/62778
https://bugs.webkit.org/show_bug.cgi?id=41866
Broke svg/W3C-SVG-1.1/text-intro-05-t.svg in debug (Requested
by pfeldman on #webkit).
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::~TextRunWalker):
2010-07-08 Vitaly Repeshko <vitalyr@chromium.org>
Reviewed by Pavel Feldman.
Fix adoptRef usage violation in IDBObjectStoreRequest
https://bugs.webkit.org/show_bug.cgi?id=41869
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
2010-07-08 Sam Weinig <sam@webkit.org>
Another chromium build fix.
* history/BackForwardListChromium.cpp:
(WebCore::BackForwardListImpl::goBack):
(WebCore::BackForwardListImpl::goForward):
(WebCore::BackForwardListImpl::backListWithLimit):
(WebCore::BackForwardListImpl::forwardListWithLimit):
(WebCore::BackForwardListImpl::containsItem):
(WebCore::BackForwardListImpl::removeItem):
2010-07-08 Sam Weinig <sam@webkit.org>
Fix Chromium build.
* WebCore.gyp/WebCore.gyp:
2010-07-08 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Patch for https://bugs.webkit.org/show_bug.cgi?id=41826
Convert BackForwardList to an abstract base class and add BackForwardListImpl
as the concrete implementation of it.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.exp.in:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardController.cpp:
(WebCore::BackForwardController::BackForwardController):
* history/BackForwardController.h:
* history/BackForwardList.cpp: Removed.
* history/BackForwardList.h:
(WebCore::BackForwardList::~BackForwardList):
(WebCore::BackForwardList::isBackForwardListImpl):
(WebCore::BackForwardList::BackForwardList):
* history/BackForwardListChromium.cpp:
* history/BackForwardListImpl.cpp: Copied from WebCore/history/BackForwardList.cpp.
* history/BackForwardListImpl.h: Copied from WebCore/history/BackForwardList.h.
(WebCore::BackForwardListImpl::isBackForwardListImpl):
2010-07-08 Vitaly Repeshko <vitalyr@chromium.org>
Reviewed by Pavel Feldman.
Fix adoptRef usage violations (mostly in chromium)
https://bugs.webkit.org/show_bug.cgi?id=41863
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::wrapNativeNodeFilter):
* bindings/v8/V8NodeFilterCondition.h:
(WebCore::V8NodeFilterCondition::create):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::getNamedItems):
* bindings/v8/custom/V8HTMLFormElementCustom.cpp:
(WebCore::V8HTMLFormElement::namedPropertyGetter):
* bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
(WebCore::V8HTMLSelectElement::namedPropertyGetter):
* bindings/v8/custom/V8NamedNodesCollection.h:
(WebCore::V8NamedNodesCollection::create):
(WebCore::V8NamedNodesCollection::V8NamedNodesCollection):
* storage/IDBDatabaseRequest.cpp:
(WebCore::IDBDatabaseRequest::IDBDatabaseRequest):
* storage/IndexedDatabaseRequest.cpp:
(WebCore::IndexedDatabaseRequest::IndexedDatabaseRequest):
2010-07-08 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Silence a few noisy build rules.
* GNUmakefile.am:
2010-07-08 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Canvas putImageData() resets painter state
https://bugs.webkit.org/show_bug.cgi?id=41827
Use drawImage() to copy pixels in putImageData() instead of QPixmap::operator=
Test: fast/canvas/canvas-state-intact-after-putImageData.html
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::putImageData):
2010-07-08 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Do not invoke shortcuts popup upon bare '?' if it's typed
into an input field.
https://bugs.webkit.org/show_bug.cgi?id=41760
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown):
2010-07-08 Patrick Gansterer <paroga@paroga.com>
Reviewed by Kent Tamura.
[WINCE] Buildfix for EventHandler
https://bugs.webkit.org/show_bug.cgi?id=41829
SM_MENUDROPALIGNMENT isn't supported on WinCE.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEventForKey):
2010-07-08 Xiaomei Ji <xji@chromium.org>
Reviewed by David Levin.
Fix characters with unicode-bidi-mirror property are not correctly
mirrored in Linux.
https://bugs.webkit.org/show_bug.cgi?id=41305
Since harfbuzz does not do mirroring, chromium should iterate each
character in the string and mirror it if needed before passing the
string to harfbuzz for shaping.
Test: fast/text/international/bidi-mirror-he-ar.html
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::~TextRunWalker):
2010-07-08 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Rob Buis & Dirk Schulze.
SVG text transformed incorrectly when a transform and gradient applied
https://bugs.webkit.org/show_bug.cgi?id=41563
When rendering filled/stroked text with a gradient, RenderSVGResourceGradient creates a mask image,
renders the text into the image, and then clips the current context against that image buffer,
and filling a rect afterwards. This happened in the wrong coordinate space so far. Don't actually
try to compute the right transformation matrix (which failed), but extract it directly from the
GraphicsContext and apply this transformation to the mask image context.
Fixes pixellation in svg/batik/text/textEffect3.svg and makes the new test svg/custom/text-rotated-gradient.svg pass.
Only affects CoreGraphics platforms.
Test: svg/custom/text-rotated-gradient.svg
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::absoluteTransformFromContext):
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
2010-07-07 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Crash when re-entering message loop
https://bugs.webkit.org/show_bug.cgi?id=41697
A Chromium-specific test case will be submitted into Chromium shortly.
* page/PageGroupLoadDeferrer.cpp:
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
* page/PageGroupLoadDeferrer.h:
(WebCore::PageGroupLoadDeferrer::nextDeferrer):
2010-07-07 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: skip breakpoints when script is already paused
https://bugs.webkit.org/show_bug.cgi?id=41768
Test: inspector/debugger-no-nested-pause.html
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handleV8DebugEvent):
2010-07-08 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
WebCore/benchmarks/parser/html-parser.html spends a lot of time in deprecatedParseURL
https://bugs.webkit.org/show_bug.cgi?id=41807
Wow. This was an awful bug. We were always taking the slow case
every time we parsed a URL. This is about a 10% speedup on our
parsing benchmark, and might cause as much as a 1% speedup for Apple's
PLT (even though I can't run that).
We still spend a lot of time in deprecatedParseURL. We might consider
inlining it if its being kept around much longer.
No behavioral change, just fixing a broken optimization.
* css/CSSHelper.cpp:
(WebCore::deprecatedParseURL):
- We only need to strip characters <= '\r', not >.
2010-07-08 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: factor out common part of debugger tests
https://bugs.webkit.org/show_bug.cgi?id=41836
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::recompileAllJSFunctions): postpone script recompilation if JS stack is not empty.
2010-07-08 Patrick Gansterer <paroga@paroga.com>
Reviewed by Kent Tamura.
Buildfix for !ENABLE(SVG_ANIMATION) after r51567.
https://bugs.webkit.org/show_bug.cgi?id=41803
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::sampleAnimationAtTime):
2010-07-07 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Nate Chapin.
[V8] Fix document wrapper memory leak in bindings.
https://bugs.webkit.org/show_bug.cgi?id=41771
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::WrapInShadowObject): Do not create static persistent handle
to shadowConstructor because it keeps the first context alive forever.
2010-07-07 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Enable smooth pixmap transforms by default
https://bugs.webkit.org/show_bug.cgi?id=41774
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(WebCore::GraphicsContext::setImageInterpolationQuality):
2010-07-07 Jesus Sanchez-Palencia <jesus@webkit.org>
Reviewed by Antti Koivisto.
[Qt] Missing include to build QtWebKit with WebKit2 in MediaPlayerPrivatePhonon.cpp
https://bugs.webkit.org/show_bug.cgi?id=41767
* platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: Add Logging.h include
2010-07-07 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Move v8-related script offset conversion to DebuggerScript.js
https://bugs.webkit.org/show_bug.cgi?id=41755
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidParseSource):
2010-07-07 Nicolas Weber <thakis@chromium.org>
Reviewed by Dimitri Glazkov.
https://bugs.webkit.org/show_bug.cgi?id=41580
Fix rendering of radial gradients in skia if both points of the
gradient are the same and r0 > 0.
Test: fast/gradients/radial-centered.html
* platform/graphics/skia/GradientSkia.cpp:
(WebCore::Gradient::platformGradient):
2010-06-18 MORITA Hajime <morrita@google.com>
Reviewed by Ojan Vafai.
https://bugs.webkit.org/show_bug.cgi?id=26526
Add support for input events (oninput) to contentEditable elements
Made a default event handler on the Node to dispatch an input event when
webkitEditableContentChanged arrived.
Test: fast/events/event-input-contentEditable.html
* dom/Node.cpp:
(WebCore::Node::defaultEventHandler):
2010-07-07 Darin Adler <darin@apple.com>
Reviewed by Anders Carlsson.
Fix adoptRef assertion failures caused by stack-allocated ResourceHandle objects
https://bugs.webkit.org/show_bug.cgi?id=41823
* platform/network/android/ResourceHandleAndroid.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously): Use adoptRef and new instead
of allocating an object on the stack.
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously): Ditto.
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously): Ditto.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::ResourceHandle::loadResourceSynchronously): Use create instead of
allocating an object on the stack.
2010-07-07 Joseph Pecoraro <joepeck@webkit.org>
Rubber-stamped by Pavel Feldman.
Web Inspector: All RefPtr arguments and return values should be changed to PassRefPtr according to common practice.
https://bugs.webkit.org/show_bug.cgi?id=41759
* inspector/CodeGeneratorInspector.pm:
2010-07-07 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: TextArea should return AXSelectedTextRange of 0,0 if the cursor is not in the text area
https://bugs.webkit.org/show_bug.cgi?id=41810
Test: platform/mac/accessibility/selected-text-range-for-empty-textarea.html
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
2010-07-07 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: Data table heuristics: assume data table if at least one row or column of TH cells exist
https://bugs.webkit.org/show_bug.cgi?id=41806
Test: platform/mac/accessibility/table-with-row-col-of-headers.html
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
2010-07-07 Mark Rowe <mrowe@apple.com>
Fix the build.
Xcode decided to change the reference type from "Relative to Build Product" to "Relative to Group"
when I moved the file between folders. That's incredibly confusing so I'll file a bug against Xcode.
* WebCore.xcodeproj/project.pbxproj:
2010-07-07 Mark Rowe <mrowe@apple.com>
Fix the MathML build.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately): Fix a typo in a variable name.
2010-07-07 James Hawkins <jhawkins@chromium.org>
Reviewed by Dimitri Glazkov.
Move setSuggestedValue() and suggestedValue() back to public as it's
now used by WebInputElement.
https://bugs.webkit.org/show_bug.cgi?id=41785
No new tests, as the method is only being used by Chromium's WebKit
API.
* html/HTMLInputElement.h:
2010-07-07 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Sam Weinig.
Clean up the project file slightly.
Remove obsolete .exp files, add the new .exp.in file, and move ExportFileGenerator.cpp in to the Exports collection.
* WebCore.xcodeproj/project.pbxproj:
2010-07-07 James Robinson <jamesr@chromium.org> and Vincent Scheib <schieb@chromium.org>
Reviewed by Dimitri Glazkov.
WebCore::GLES2Context should allow creating onscreen and offscreen contexts
https://bugs.webkit.org/show_bug.cgi?id=41492
You should be able to create a GLES2Context for rendering both on screen
and off screen (to a texture). Chromium's layer renderer (used for compositing)
does the former. Currently WebGL does the latter by side stepping the
WebCore::GLES2Context API completely. Longer term it should move over to using this.
* platform/chromium/GLES2Context.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::initGL):
2010-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Document::ownerElement() should return an HTMLFrameOwnerElement
https://bugs.webkit.org/show_bug.cgi?id=41789
Change return type of RenderLayerCompositor::enclosingIFrameElement() to
HTMLFrameOwnerElement*. No behavioral changes.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingIFrame):
(WebCore::RenderLayerCompositor::enclosingIFrameElement):
* rendering/RenderLayerCompositor.h:
2010-07-07 Adam Barth <abarth@webkit.org>
Reviewed by Sam Weinig.
Add reverseFind to Vector and deploy in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=41778
This patch moves reverseFind from begin an
HTMLFormattingElementList-specific concept to begin a general Vector
concept. Also, instead of using Entry as the type for operator==, we
now use elements directly. The old code compiled because the Entry
constructor wasn't explicit, which means we were churning refs on every
comparison!
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::find):
(WebCore::HTMLFormattingElementList::bookmarkFor):
(WebCore::HTMLFormattingElementList::insertAt):
(WebCore::HTMLFormattingElementList::remove):
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::Entry::operator==):
(WebCore::HTMLFormattingElementList::Entry::operator!=):
2010-07-07 Darin Adler <darin@apple.com>
Reviewed by Adam Barth.
Turn on adoptRef assertion for RefCounted
https://bugs.webkit.org/show_bug.cgi?id=41547
The WebCore part of this fixes all the assertions I saw in testing.
* html/FileReader.cpp:
(WebCore::FileReader::readAsBinaryString): Added null checks.
Callers from JavaScript can pass the wrong type, which becomes null.
(WebCore::FileReader::readAsText): Ditto.
(WebCore::FileReader::readAsDataURL): Ditto.
* html/FileStreamClient.h: Removed unneeded include.
* html/FileStreamProxy.cpp:
(WebCore::FileStreamProxy::FileStreamProxy): Made inline and moved
some of the code, including the ref, into the create function.
(WebCore::FileStreamProxy::create): Moved some of the code from
the constructor here. It's safe to ref once the object has been
created and adopted.
* html/FileStreamProxy.h: Changed create function to no longer be
inlined. Also removed an unneeded include.
* page/EventSource.cpp:
(WebCore::EventSource::EventSource): Made inline, changed arguments
and moved code that involves the need to ref this object into the
create function. Also moved failure handling out there since it's
cleaner to have a function that fails than a constructor. For
example, the function can return 0.
(WebCore::EventSource::create): Moved some of the code from the
constructor here.
* page/EventSource.h: Removed unneeded includes. Made the
creation function non-inline. Changed the arguments to the constructor.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::StorageAreaSync): Made inline. Moved
code that requires ref'ing this object out to the create function.
(WebCore::StorageAreaSync::create): Moved some of the code from the
constructor here.
* storage/StorageAreaSync.h: Removed unneeded includes. Changed
the type of one of the constructor arguments from String to
const String&.
* workers/SharedWorker.cpp:
(WebCore::SharedWorker::SharedWorker): Made inline. Moved most of
the setup code out of here into the create function.
(WebCore::SharedWorker::create): Moved the code here.
* workers/SharedWorker.h: Removed unneeded includes. Made the
create function non-inline. Marked the toSharedWorker override private
to catch people doing an unnecessary virtual function call if they
already have a SharedWorker*.
* workers/Worker.cpp:
(WebCore::Worker::Worker): Made inline. Moved most of the setup code
out of here into the create function.
(WebCore::Worker::create): Moved the code here.
* workers/Worker.h: Made the create function non-inline. Changed
the arguments to the constructor.
2010-07-07 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: when a node's role changes, the AX tree might need to be updated
https://bugs.webkit.org/show_bug.cgi?id=41784
Test: platform/mac/accessibility/update-children-when-aria-role-changes.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::AccessibilityRenderObject):
(WebCore::AccessibilityRenderObject::updateAccessibilityRole):
2010-07-07 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: when an element uses role="text" but no aria-label, it should default to textUnderElement()
https://bugs.webkit.org/show_bug.cgi?id=41780
Test: platform/mac/accessibility/static-text-role-uses-text-under-element.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::stringValue):
Fallback to textUnderElement() if text() does not return any explicitly set text.
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
Remove erroneous check to ignore text elements that didn't have a explicit text value.
2010-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Document::ownerElement() should return an HTMLFrameOwnerElement
https://bugs.webkit.org/show_bug.cgi?id=41789
Change the return type of Document::ownerElement() to an HTMLFrameOwnerElement, for better
type checking. No behavioral changes.
* accessibility/mac/AccessibilityObjectWrapper.mm:
* dom/Document.cpp:
(WebCore::Document::ownerElement):
* dom/Document.h:
* editing/SelectionController.cpp:
* rendering/RenderBoxModelObject.cpp:
* rendering/RenderLayer.cpp:
* rendering/RenderView.cpp:
2010-07-07 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
REGRESSION: GMail becomes blank after closing other tabs
https://bugs.webkit.org/show_bug.cgi?id=40421
RenderLayerCompositor's attach/detachRootPlatformLayer methods use
setNeedsStyleRecalc() in order to trigger acclerated compositing layers
to be hooked together across iframe boundaries. However, it was possible
for these to get called while inside of Document::recalcStyle(), which
is bad because it can cause the recalc to fail to get processed.
Fix this by using the existing queuePostAttachCallback() functionality
to delay the call to setNeedsStyleRecalc() if post-attach callbacks
are suspended (indicating that we're inside recalcStyle()).
No new tests because I wasn't able to make a test that shows the problem.
* dom/ContainerNode.h: Make queuePostAttachCallback() public.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::postAttachCallbacksAreSuspended): Added; returns
whether s_attachDepth is non-zero.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::attachRootPlatformLayer): Call scheduleNeedsStyleRecalc()
instead of setNeedsStyleRecalc().
(WebCore::RenderLayerCompositor::detachRootPlatformLayer): Ditto.
(WebCore::needsStyleRecalcCallback): Here we call setNeedsStyleRecalc().
(WebCore::RenderLayerCompositor::scheduleNeedsStyleRecalc):
(WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange):
* rendering/RenderLayerCompositor.h: Add scheduleNeedsStyleRecalc().
2010-07-06 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Incorrect compositing order with negative z-index
https://bugs.webkit.org/show_bug.cgi?id=38959
When painting the contents of compositing layers whose phase is "GraphicsLayerPaintBackground"
(indicating that they are used for the background of elements with negative z-index children),
we need to paint the non-composited negative-z-order descendants at the end of the background phase, so
they appear behind composited negative-z-order descendants.
Test: compositing/z-order/negative-z-index.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
2010-07-06 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Incorrect compositing order with negative z-index
https://bugs.webkit.org/show_bug.cgi?id=38959
Prerequisite: adopt new paintList() method that was added when painting compositing layer contents.
No behavioral changes.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
2010-07-07 Adam Barth <abarth@webkit.org>
Unreviewed.
Fix ASSERT in Eric's previous patch. I think he tested his patch in
Release and not Debug.
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::Entry::Entry):
(WebCore::HTMLFormattingElementList::findIndex):
2010-07-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Grease the TreeBuilder's lightning
https://bugs.webkit.org/show_bug.cgi?id=41756
Brings the new TreeBuilder from 7s to 3s on the parser benchmark.
This makes performance comparable to the old parser.
We have not begun to fight! There is so much fat left on these bones.
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::find):
(WebCore::HTMLFormattingElementList::bookmarkFor):
(WebCore::HTMLFormattingElementList::insertAt):
(WebCore::HTMLFormattingElementList::remove):
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::findIndex):
2010-07-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder is way too slow
https://bugs.webkit.org/show_bug.cgi?id=41754
This takes us from 14s to 7s on our parsing benchmark.
That's still much slower than the old tree builder, but there
is a huge amount of fat left to trim.
Vector<T> wasn't able to inline all the Entry functions when
they were buried in the cpp. Turns out the active formatting elements
list is very hot.
I'm not sure Vector<T> is going to be the right data structure for us
in the end, but it has done alright for bring-up.
* html/HTMLFormattingElementList.cpp:
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::Entry::Entry):
(WebCore::HTMLFormattingElementList::Entry::~Entry):
(WebCore::HTMLFormattingElementList::Entry::isMarker):
(WebCore::HTMLFormattingElementList::Entry::element):
(WebCore::HTMLFormattingElementList::Entry::replaceElement):
(WebCore::HTMLFormattingElementList::Entry::operator==):
(WebCore::HTMLFormattingElementList::Entry::operator!=):
2010-07-06 Darin Adler <darin@apple.com>
Reviewed by Adam Barth.
More OwnPtr work, including making clear set the pointer to 0 before deletion
https://bugs.webkit.org/show_bug.cgi?id=41727
* WebCore.exp.in: Updated.
* css/CSSSelector.h:
(WebCore::CSSSelector::RareData::RareData): Use adoptPtr.
(WebCore::CSSSelector::createRareData): Ditto.
* dom/SpaceSplitString.h:
(WebCore::SpaceSplitString::SpaceSplitString): Ditto.
(WebCore::SpaceSplitString::set): Ditto.
* history/CachedFrame.cpp:
(WebCore::CachedFrame::CachedFrame): Ditto.
(WebCore::CachedFrame::setCachedFramePlatformData): Ditto.
* history/CachedFrame.h: Use PassOwnPtr.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::CallCacheListenerTask::create): Use adoptPtr.
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::storeCopyOfCache): Ditto.
* platform/PurgeableBuffer.h:
(WebCore::PurgeableBuffer::create): Ditto.
* platform/graphics/GlyphMetricsMap.h:
(WebCore::::locatePageSlowCase): Ditto.
* platform/graphics/GraphicsLayer.h:
(WebCore::AnimationValue::AnimationValue): Ditto.
(WebCore::TransformAnimationValue::TransformAnimationValue): Ditto.
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayer::create): Ditto.
* platform/graphics/SimpleFontData.h:
(WebCore::SimpleFontData::boundsForGlyph): Ditto.
* platform/mac/PurgeableBufferMac.cpp:
(WebCore::PurgeableBuffer::create): Ditto.
* rendering/InlineFlowBox.h:
(WebCore::InlineFlowBox::setHorizontalOverflowPositions): Ditto.
(WebCore::InlineFlowBox::setVerticalOverflowPositions): Ditto.
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::floats): Ditto.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::inheritAnimations): Ditto.
(WebCore::InheritedFlags::inheritTransitions): Ditto.
* rendering/style/SVGRenderStyleDefs.h: Use PassOwnPtr.
2010-07-07 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Patch for https://bugs.webkit.org/show_bug.cgi?id=41772
Add basic piping for BackForwardControllerClient.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardController.cpp:
(WebCore::BackForwardController::BackForwardController):
* history/BackForwardControllerClient.h:
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-07-07 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Unreviewed build fix after r62577.
[EFL] build fix after r62577
https://bugs.webkit.org/show_bug.cgi?id=41764
No new functionality so no new tests.
2010-07-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[GTK] Scrollbars sometimes go dead and stop scrolling the view
https://bugs.webkit.org/show_bug.cgi?id=41711
Rework the setGtkAdjustment function slightly, make it have an
early return, and be more readable.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::setGtkAdjustments):
2010-07-07 Kristian Monsen <kristianm@google.com>
Reviewed by Steve Block.
Updating Android to use the UserGestureIndicator class instead of Android specific code.
The rest of the changes are in parts of the Android port which are yet to be upstreamed.
No change in behavior, so no new test.
* platform/network/android/ResourceRequest.h:
(WebCore::ResourceRequest::ResourceRequest):
(WebCore::ResourceRequest::doUpdateResourceRequest):
2010-07-07 Andy Estes <aestes@apple.com>
Reviewed by Adam Barth.
Allow a beforeload listener to prevent loading of images in <object> tags.
https://bugs.webkit.org/show_bug.cgi?id=41027
<rdar://problem/8120596>
Tests: fast/dom/beforeload/image-object-before-load-innerHTML.html
fast/dom/beforeload/image-object-before-load.html
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::attach): Do not call
RenderImage::setCachedImage() at the end of attach(). Instead, allow
this to happen conditionally after beforeload is dispatched.
* loader/ImageLoader.cpp:
(WebCore::ImageLoader::dispatchPendingBeforeLoadEvent): Render fallback
content if an object's load was cancelled.
2010-07-06 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
<use> on <font-face> causes crashes, if SVGUseElement gets detached
https://bugs.webkit.org/show_bug.cgi?id=41621
Do not call removeFromMappedElementSheet() from the SVGFontFaceElement destructor,
as that can potentially cause the element to be reattached while destructing.
In order to fix the crash in the testcase, the order of calling the base-class detach
method in SVGUseElement and the instance/shadow tree destruction has to be reversed,
matching the order in removedFromDocument().
Test: svg/custom/use-font-face-crash.svg
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::~SVGFontFaceElement): Remove removeFromMappedElementSheet() call.
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::detach): Reverse order of calling base-class detach method and instance/shadow tree destruction.
2010-07-07 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
document.createEvent() should support DeviceOrientationEvent
https://bugs.webkit.org/show_bug.cgi?id=41618
Tests: fast/dom/DeviceOrientation/create-event.html
* dom/Document.cpp:
(WebCore::Document::createEvent):
2010-07-07 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: show functions from internal browser scripts on the call stack if they
are there.
https://bugs.webkit.org/show_bug.cgi?id=41762
* English.lproj/localizedStrings.js:
* inspector/front-end/CallStackSidebarPane.js:
(WebInspector.CallStackSidebarPane.prototype.update):
2010-07-07 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: All RefPtr arguments and return values should be
changed to PassRefPtr whenever it is possible according to common practice.
https://bugs.webkit.org/show_bug.cgi?id=41759
* inspector/CodeGeneratorInspector.pm:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::pushGCEventRecords):
(WebCore::InspectorTimelineAgent::didInstallTimer):
(WebCore::InspectorTimelineAgent::didRemoveTimer):
(WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
(WebCore::InspectorTimelineAgent::willSendResourceRequest):
(WebCore::InspectorTimelineAgent::didFinishLoadingResource):
(WebCore::InspectorTimelineAgent::didMarkTimeline):
(WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
(WebCore::InspectorTimelineAgent::didMarkLoadEvent):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
(WebCore::TimelineRecordFactory::createGCEventData):
(WebCore::TimelineRecordFactory::createFunctionCallData):
(WebCore::TimelineRecordFactory::createEventDispatchData):
(WebCore::TimelineRecordFactory::createGenericTimerData):
(WebCore::TimelineRecordFactory::createTimerInstallData):
(WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
(WebCore::TimelineRecordFactory::createXHRLoadData):
(WebCore::TimelineRecordFactory::createEvaluateScriptData):
(WebCore::TimelineRecordFactory::createMarkTimelineData):
(WebCore::TimelineRecordFactory::createScheduleResourceRequestData):
(WebCore::TimelineRecordFactory::createResourceSendRequestData):
(WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
(WebCore::TimelineRecordFactory::createResourceFinishData):
(WebCore::TimelineRecordFactory::createReceiveResourceData):
(WebCore::TimelineRecordFactory::createPaintData):
(WebCore::TimelineRecordFactory::createParseHTMLData):
* inspector/TimelineRecordFactory.h:
2010-07-07 Antti Koivisto <koivisto@iki.fi>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Initial WebKit2 implementation
https://bugs.webkit.org/show_bug.cgi?id=40233
Export some event conversion functions needed for WebKit2.
* platform/PlatformKeyboardEvent.h:
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::keyIdentifierForQtKeyCode):
(WebCore::windowsKeyCodeForKeyEvent):
2010-07-06 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
DeviceOrientationEventConstructor should be exposed at window.DeviceOrientationEvent
https://bugs.webkit.org/show_bug.cgi?id=41685
Test: fast/dom/Window/window-properties-device-orientation.html
fast/dom/DeviceOrientation/window-property.txt
* page/DOMWindow.idl:
2010-07-07 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62645.
http://trac.webkit.org/changeset/62645
https://bugs.webkit.org/show_bug.cgi?id=41757
"Broken inspector tests on several platforms" (Requested by
eseidel on #webkit).
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
(WebInspector.ScriptsPanel.prototype._breakpointAdded):
(WebInspector.ScriptsPanel.prototype._scriptOrResourceForURLAndLine):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
(WebInspector.ScriptsPanel.prototype._toggleBreakpointsClicked):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
2010-07-07 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
JavaInstanceV8 needs to push a local reference frame to avoid table overflow.
https://bugs.webkit.org/show_bug.cgi?id=41516
This change is required to help prevent the Java virtual machine from
running out of local references. The Java virtual machine supports only
a limited number of local references. Normally, local references are
cleared when the native method returns.
This change adds calls to PushLocalFrame() and PopLocalFrame() around
each invocation of a method on JavaInstance. These calls instruct the
virtual machine to clear local references when the frame is popped.
This means that in the case where many calls to JavaInstance methods
are made within the same native call, local references are cleared as
soon as they are no longer needed, thus conserving references.
This change mirrors exactly JavaInstanceJSC.
No new tests.
* bridge/jni/v8/JavaInstanceV8.cpp:
(JavaInstance::virtualBegin):
(JavaInstance::virtualEnd):
* bridge/jni/v8/JavaInstanceV8.h:
2010-07-06 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Inspector should remember the size of sidebars set by the user
https://bugs.webkit.org/show_bug.cgi?id=19207
* inspector/front-end/AbstractTimelinePanel.js:
(WebInspector.AbstractTimelinePanel):
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
* inspector/front-end/ConsolePanel.js:
(WebInspector.ConsolePanel):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.rightSidebarResizerDragEnd):
* inspector/front-end/Panel.js:
(WebInspector.Panel):
(WebInspector.Panel.prototype.get toolbarItemClass):
(WebInspector.Panel.prototype.show):
(WebInspector.Panel.prototype.createSidebar):
(WebInspector.Panel.prototype.get _sidebarWidthSettingName):
(WebInspector.Panel.prototype._endSidebarDragging):
(WebInspector.Panel.prototype.updateSidebarWidth):
(WebInspector.Panel.prototype.restoreSidebarWidth):
(WebInspector.Panel.prototype.saveSidebarWidth):
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel):
(WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._endSidebarResizeDrag):
(WebInspector.ScriptsPanel.prototype._sidebarResizeDrag):
(WebInspector.ScriptsPanel.prototype.setSidebarWidth):
* inspector/front-end/Settings.js:
(WebInspector.populateApplicationSettings):
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
2010-07-05 Steve Block <steveblock@google.com>
Reviewed by Adam Barth.
DeviceOrientation should be renamed to DeviceOrientationController
https://bugs.webkit.org/show_bug.cgi?id=41608
No new tests, renaming only.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DeviceOrientation.cpp: Removed.
* dom/DeviceOrientation.h: Removed.
* dom/DeviceOrientationController.cpp: Copied from WebCore/dom/DeviceOrientation.cpp.
(WebCore::DeviceOrientationController::DeviceOrientationController):
(WebCore::DeviceOrientationController::onDeviceOrientationChange):
* dom/DeviceOrientationController.h: Copied from WebCore/dom/DeviceOrientation.h.
* page/Page.cpp:
(WebCore::Page::Page):
* page/Page.h:
(WebCore::Page::deviceOrientationController):
2010-07-07 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: do not activate all breakpoints on page reload
https://bugs.webkit.org/show_bug.cgi?id=41461
Test: inspector/debugger-breakpoints-not-activated-on-reload.html
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._breakpointAdded):
(WebInspector.ScriptsPanel.prototype.toggleBreakpointsClicked):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
2010-07-07 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Rollout r62633 - test crashes after some last-minute modifications.
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::~SVGFontFaceElement):
2010-07-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix </html> handling in before head mode
https://bugs.webkit.org/show_bug.cgi?id=41752
Covered by html5lib/runner.html.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
</div> pops too many <div> elements in body
https://bugs.webkit.org/show_bug.cgi?id=41751
Another missing return!
While tracking this down I added some debugging code to both the
open elements stack and the active formatting elements list.
I also unwrapped a very long || chain to make it more readable.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::show):
* html/HTMLElementStack.h:
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::show):
* html/HTMLFormattingElementList.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder needs to handle <table><input>
https://bugs.webkit.org/show_bug.cgi?id=41744
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Teach HTMLTreeBuilder how to handle <button><button>
https://bugs.webkit.org/show_bug.cgi?id=41743
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Teach TreeBuilder how to handle <form><form>
https://bugs.webkit.org/show_bug.cgi?id=41741
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
<table> should auto-close <p> when not in quirks mode
https://bugs.webkit.org/show_bug.cgi?id=41740
This is already covered by multiple tests in html5lib/runner.html
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make "in body" character handling reconstruct active formatting elements
https://bugs.webkit.org/show_bug.cgi?id=41739
This fixes a bunch of tests, and due to some other bug in our
formatting code, regresses two. I'll fix that bug in a separate
patch.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacter):
2010-07-06 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Darin Adler.
<use> on <font-face> causes crashes, if SVGUseElement gets detached
https://bugs.webkit.org/show_bug.cgi?id=41621
Do not call removeFromMappedElementSheet() from the destructor, as the call to document()->updateStyleSelector() that can potentially
cause the element to be reattached while destructing. It's not needed at all, because removedFromDocument() is called before destruction,
which already calls removeFromMappedElementSheet() - at this point it's still safe to update the style selector.
The crash is reproducable when using <use> on <font-face>.
Test: svg/custom/use-font-face-crash.svg
* svg/SVGFontFaceElement.cpp:
(WebCore::SVGFontFaceElement::~SVGFontFaceElement):
2010-07-07 Hayato Ito <hayato@chromium.org>
Reviewed by Darin Adler.
Rolling out 'page-break-inside:avoid' part of the r54929.
Rebased the related layout tests, which are now expected to fail, as well.
https://bugs.webkit.org/show_bug.cgi?id=41532
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren):
2010-07-07 Mark Rowe <mrowe@apple.com>
Fix failures in a handful of Java-related tests.
* WebCore.exp.in: Remove an extraneous ENABLE_ from an #if so that the condition
evalutes to true when we expect it to.
2010-07-06 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Joseph Pecoraro.
Web Inspector: provide line numbers for inline styles.
https://bugs.webkit.org/show_bug.cgi?id=41691
Test: inspector/styles-source-lines-inline.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSheet):
* css/CSSParser.h:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::parseString):
(WebCore::CSSStyleSheet::parseStringAtLine):
* css/CSSStyleSheet.h:
* dom/StyleElement.cpp:
(WebCore::StyleElement::process):
(WebCore::StyleElement::createSheet):
* dom/StyleElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::HTMLStyleElement):
(WebCore::HTMLStyleElement::finishParsingChildren):
* html/HTMLStyleElement.h:
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::getRuleRangesForStyleSheet):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForRule):
* inspector/front-end/DOMAgent.js:
(WebInspector.CSSStyleDeclaration.parseRule):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection.else.linkifyUncopyable):
(WebInspector.StylePropertiesSection):
2010-07-06 Dan Bernstein <mitz@apple.com>
Reviewed by Jon Honeycutt.
<rdar://problem/8163651> Wrong value type being supplied for kCTTypesetterOptionForcedEmbeddingLevel key
No change in behavior, so no new test.
* platform/graphics/mac/ComplexTextControllerCoreText.cpp:
(WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Use CFNumber instances
as the values of the kCTTypesetterOptionForcedEmbeddingLevel key, instead of CFBooleans.
2010-07-06 Mark Rowe <mrowe@apple.com>
Fix production builds on Mac OS X.
* DerivedSources.make: Don't try and generate the export file during the installhdrs build phase.
It's not useful until much later in the build process, and it's not possible to generate it until
after the tool has been compiled anyway.
* WebCore.xcodeproj/project.pbxproj: Tweak how the ICU and forwarding headers are copied so that it
works in production builds once more.
2010-07-06 Steve Falkenburg <sfalken@apple.com>
Reviewed by Simon Fraser.
Expose URL matching from WebUserContentURLPattern
https://bugs.webkit.org/show_bug.cgi?id=41726
<rdar://problem/7910144>
* WebCore.exp.in: Export UserContentURLPattern::matches for use in WebKit.
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix <nobr><nobr> case in HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41735
We were both not handling <nobr> correctly, as well as
never hitting the <nobr> case because our formatting
elements check was overzealous.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement start table tag in table mode
https://bugs.webkit.org/show_bug.cgi?id=41736
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processTableEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
* html/HTMLTreeBuilder.h:
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement "act as if the banana has been peeled" (for lack of a better term)
https://bugs.webkit.org/show_bug.cgi?id=41734
The spec has a tricky passage that says "whenever a node would be
inserted into the current node, it must instead be foster parented."
This patch attempts to implement that requirement.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertScriptElement):
(WebCore::HTMLConstructionSite::fosterParent):
* html/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::RedirectToFosterParentGuard):
(WebCore::HTMLConstructionSite::RedirectToFosterParentGuard::~RedirectToFosterParentGuard):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
* html/HTMLTreeBuilder.h:
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix </optgroup> in "in select" mode
https://bugs.webkit.org/show_bug.cgi?id=41733
I had to add a oneBelowTop() accessor.
I added some ASSERTs after looking at the fragment case
documentation. I'm now convinced that top() and oneBeforeTop()
should never be NULL, so we just ASSERT they aren't.
This is a very obscure corner of the HTML spec, but at least
we have a test for it. This makes one more html5lib test pass.
* html/HTMLConstructionSite.h:
(WebCore::HTMLConstructionSite::oneBelowTop):
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::topRecord):
(WebCore::HTMLElementStack::top):
(WebCore::HTMLElementStack::oneBelowTop):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix "in row" "Anything else" handling of end tags
https://bugs.webkit.org/show_bug.cgi?id=41731
I also fixed </br> handling to follow the spec more closely
since it implementation was old and didn't use all our
new processFake* hotness.
This is already covered by 3 tests, however we don't
pass them yet, due to lack of table foster parenting
code (which Adam is working on as we speak).
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-06 Mark Rowe <mrowe@apple.com>
Fix clean builds on Mac OS X.
Since "Copy Forwarding and ICU Headers" was split in to a separate target
from the WebCore framework it no longer had automatica access to the
PRIVATE_HEADERS_FOLDER_PATH variable. This caused it to copy the header
files in to the wrong location. Fix that by giving PRIVATE_HEADERS_FOLDER_PATH
its correct value and ensuring that the path exists.
* WebCore.xcodeproj/project.pbxproj:
2010-07-06 Sam Weinig <sam@webkit.org>
Fix Gtk build.
* GNUmakefile.am:
2010-07-06 Mark Rowe <mrowe@apple.com>
Tiger build fix.
Don't use WebCore's LDFLAGS when building WebCoreExportFileGenerator.
* WebCore.xcodeproj/project.pbxproj:
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
"In cell" does not correctly handle <td><tr> or <td><td>
https://bugs.webkit.org/show_bug.cgi?id=41729
This change is mostly cleanup to try and prevent forgetting
tag name checks in the future by using inlines to reduce
copy/paste code.
3 little bugs in InCellMode:
- Missing trTag from the long or statement (reason for the cleanup)
- Used || instead of &&
- Forgot to reprocess the tag after closeTheCell()
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Move fosterParent to HTMLConstructionSite
https://bugs.webkit.org/show_bug.cgi?id=41728
This paves the way for handling the default case of InTableMode
properly.
* html/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::fosterParent):
* html/HTMLConstructionSite.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-06 Adam Barth <abarth@webkit.org>
Rubber-stamped by Eric Seidel.
Move HTMLConstructionSite to its own file. No behavior change.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLConstructionSite.cpp: Copied from WebCore/html/HTMLTreeBuilder.cpp.
(WebCore::HTMLNames::hasImpliedEndTag):
(WebCore::HTMLConstructionSite::attach):
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLConstructionSite::~HTMLConstructionSite):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
(WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
* html/HTMLConstructionSite.h: Copied from WebCore/html/HTMLTreeBuilder.h.
* html/HTMLTreeBuilder.cpp:
* html/HTMLTreeBuilder.h:
2010-07-06 Mark Rowe <mrowe@apple.com>
Build fix.
The path to the generated file needs to be relative to the built product directory,
not to the project file.
* WebCore.xcodeproj/project.pbxproj:
2010-07-06 Mark Rowe <mrowe@apple.com>
Reviewed by Darin Adler.
<http://webkit.org/b/41725> REGRESSION(r62283): No longer possible to build for Tiger from SnowLeopard due to export file shenanigans
Change how the exports file is generated. Rather than having the logic for which symbols
to include be encoded in a Makefile that concatenated separate files, the logic is now
encoded as #if's in the base exports file. This ensures that the exact same preprocessor
settings are used when determining which symbols to export as when compiling the code that
defines the symbols.
* DerivedSources.make: Remove logic that determines which export files to concatenate.
Replace with an invocation of WebCoreExportFileGenerator.
* WebCore.3DRendering.exp: Removed.
* WebCore.AcceleratedCompositing.exp: Removed.
* WebCore.ClientBasedGeolocation.exp: Removed.
* WebCore.ContextMenus.exp: Removed.
* WebCore.DashboardSupport.exp: Removed.
* WebCore.DragSupport.exp: Removed.
* WebCore.Geolocation.exp: Removed.
* WebCore.Inspector.exp: Removed.
* WebCore.JNI.exp: Removed.
* WebCore.NPAPI.exp: Removed.
* WebCore.OrientationEvents.exp: Removed.
* WebCore.PluginHostProcess.exp: Removed.
* WebCore.ProtectionSpaceAuthCallback.exp: Removed.
* WebCore.SVG.Animation.exp: Removed.
* WebCore.SVG.Filters.exp: Removed.
* WebCore.SVG.ForeignObject.exp: Removed.
* WebCore.SVG.exp: Removed.
* WebCore.Tiger.exp: Removed.
* WebCore.Video.exp: Removed.
* WebCore.VideoProxy.exp: Removed.
* WebCore.exp.in: Renamed from WebCore/WebCore.base.exp. Merge the individual .exp
files in, wrapping the appropriate parts with the necessary #if's.
* WebCore.xcodeproj/project.pbxproj:
* make-exports-file-generator: Added.
2010-07-06 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Patch for https://bugs.webkit.org/show_bug.cgi?id=41723
Add BackForwardController class
- Add BackForwardController which currently only forwards to the existing
BackForwardList implementation. This is a first step toward allowing
for a proxying BackForwardList implementation.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* history/BackForwardController.cpp: Added.
(WebCore::BackForwardController::BackForwardController):
(WebCore::BackForwardController::~BackForwardController):
* history/BackForwardController.h: Added.
(WebCore::BackForwardController::client):
(WebCore::BackForwardController::list):
* history/BackForwardControllerClient.h: Added.
(WebCore::BackForwardControllerClient::~BackForwardControllerClient):
* page/Page.cpp:
(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::backForwardList):
(WebCore::Page::goBack):
(WebCore::Page::goForward):
(WebCore::Page::canGoBackOrForward):
(WebCore::Page::goBackOrForward):
(WebCore::Page::getHistoryLength):
* page/Page.h:
2010-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Unreviewed.
Fixes regression on API test by disabling the scrollbars before
configuring the adjustments.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::setGtkAdjustments):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add support for <li>, <dd> and <dt> nested tag closing
https://bugs.webkit.org/show_bug.cgi?id=41720
li, dd, and dt have nearly identical logic in HTML5, so I
attempted to make them share as much code as possible.
This fixes a bunch of subtests for html5lib/runner.html
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
* html/HTMLTreeBuilder.h:
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Factor HTMLConstructionSite out of HTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41716
The HTMLContructionSite is the model object on which the
HTMLTreeBuilder (a controller) acts.
No behavior change. I'll move this class into its own file in a
followup patch.
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::at):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLConstructionSite::HTMLConstructionSite):
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML):
(WebCore::HTMLConstructionSite::mergeAttributesFromTokenIntoElement):
(WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagInBody):
(WebCore::HTMLConstructionSite::insertHTMLBodyStartTagInBody):
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::closeTheCell):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
(WebCore::HTMLTreeBuilder::findFosterParentFor):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLConstructionSite::insertDoctype):
(WebCore::HTMLConstructionSite::insertComment):
(WebCore::HTMLConstructionSite::insertCommentOnDocument):
(WebCore::HTMLConstructionSite::insertCommentOnHTMLHtmlElement):
(WebCore::HTMLConstructionSite::createElementAndAttachToCurrent):
(WebCore::HTMLConstructionSite::insertHTMLHtmlElement):
(WebCore::HTMLConstructionSite::insertHTMLHeadElement):
(WebCore::HTMLConstructionSite::insertHTMLBodyElement):
(WebCore::HTMLConstructionSite::insertElement):
(WebCore::HTMLConstructionSite::insertSelfClosingElement):
(WebCore::HTMLConstructionSite::insertFormattingElement):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLConstructionSite::insertScriptElement):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
(WebCore::HTMLConstructionSite::insertTextNode):
(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
(WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion):
(WebCore::HTMLTreeBuilder::generateImpliedEndTags):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLConstructionSite::currentElement):
(WebCore::HTMLConstructionSite::openElements):
(WebCore::HTMLConstructionSite::activeFormattingElements):
(WebCore::HTMLConstructionSite::head):
(WebCore::HTMLConstructionSite::form):
(WebCore::HTMLConstructionSite::releaseForm):
(WebCore::HTMLConstructionSite::setForm):
(WebCore::HTMLConstructionSite::fragmentScriptingPermission):
(WebCore::HTMLConstructionSite::attach):
2010-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[GTK] Scrollbars sometimes go dead and stop scrolling the view
https://bugs.webkit.org/show_bug.cgi?id=41711
Fixes GtkScrolledWindow scrollbars not actually scrolling the page
in certain conditions. No tests because it is hard to reproduce,
and depends on interaction with a widget that is outside of the
WebView, which is tricky.
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::setGtkAdjustments):
2010-07-06 Darin Adler <darin@apple.com>
Reviewed by Geoffrey Garen.
Simplify access to element attribute map, removing unneeded functions
https://bugs.webkit.org/show_bug.cgi?id=41703
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::canShareStyleWithElement): Use the
attributeMap function instead of the mappedAttributes function.
(WebCore::CSSStyleSelector::styleForElement): Ditto.
* dom/Element.cpp:
(WebCore::Element::~Element): Renamed namedAttrMap to m_attributeMap.
(WebCore::Element::removeAttribute): Ditto.
(WebCore::Element::getAttribute): Ditto.
(WebCore::Element::setAttribute): Ditto.
(WebCore::Element::setAttributeMap): Ditto.
(WebCore::Element::hasAttributes): Ditto.
(WebCore::Element::createAttributeMap): Ditto.
(WebCore::Element::insertedIntoDocument): Ditto.
(WebCore::Element::removedFromDocument): Ditto.
(WebCore::Element::getURLAttribute): Ditto.
* dom/Element.h: Removed unneeded virtual attributes function.
Made read-only argument to attributes function default to false.
(Later, we'll eliminate this.) Renamed namedAttrMap to m_attributeMap
and made it private instead of protected.
* dom/StyledElement.cpp:
(WebCore::StyledElement::attributeChanged): Use attributeMap function
instead of namedAttrMap data member or mappedAttributes function.
(WebCore::StyledElement::classAttributeChanged): Ditto.
(WebCore::StyledElement::parseMappedAttribute): Ditto.
* dom/StyledElement.h: Removed mappedAttributes function and changed
callers to use attributeMap function instead.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setInputType): Use attributeMap instead of
mappedAttributes.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::getPresentationAttribute): Ditto.
2010-07-06 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add a build rule that removes the old generated Obj-C bindings for PluginArray and MimeTypeArray.
* DerivedSources.make:
2010-07-06 Adam Barth <abarth@webkit.org>
Unreviewed.
Make the remaining insertion modes explicit.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-06 Alexey Proskuryakov <ap@apple.com>
Not reviewed, fixing a simple copy/paste mistake.
https://bugs.webkit.org/show_bug.cgi?id=41156
Cross origin XMLHttpRequest should log the reason why connection failed
Covered by xmlhttprequest/access-control-basic-non-simple-deny-cached.html
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders): Fix incorrectly
copy/pasted header field name.
2010-07-06 Xan Lopez <xlopez@igalia.com>
GTK+ fixes for the DOM plug-in renaming Apocalypse.
* GNUmakefile.am:
2010-07-06 Anders Carlsson <andersca@apple.com>
Yet another Windows build fix.
* DerivedSources.cpp:
2010-07-06 Anders Carlsson <andersca@apple.com>
Fix Windows build.
* WebCore.vcproj/WebCore.vcproj:
2010-07-06 Anders Carlsson <andersca@apple.com>
More build fixes.
* WebCore.gypi:
* WebCore.pro:
2010-07-06 Anders Carlsson <andersca@apple.com>
Try to fix Qt build.
* WebCore.pro:
2010-07-06 Anders Carlsson <andersca@apple.com>
Attempt to fix GTK+ build.
* GNUmakefile.am:
2010-07-06 Adam Barth <abarth@webkit.org>
Address reviewer comments from https://bugs.webkit.org/show_bug.cgi?id=41671
Deploy isTableBodyContextTag where possible. No behavior change.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
2010-07-06 Anders Carlsson <andersca@apple.com>
Build fixes.
* WebCore.gypi:
* bindings/js/JSBindingsAllInOne.cpp:
2010-07-06 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
DOM plug-in related renames
https://bugs.webkit.org/show_bug.cgi?id=41709
This is in preparation for using "Plugin" for something other than a DOM object.
MimeType => DOMMimeType
MimeTypeArray => DOMMimeTypeArray
Plugin => DOMPlugin
PluginArray => DOMPluginArray
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMMimeTypeArrayCustom.cpp: Added.
(WebCore::JSDOMMimeTypeArray::canGetItemsForName):
(WebCore::JSDOMMimeTypeArray::nameGetter):
* bindings/js/JSDOMPluginArrayCustom.cpp: Added.
(WebCore::JSDOMPluginArray::canGetItemsForName):
(WebCore::JSDOMPluginArray::nameGetter):
* bindings/js/JSDOMPluginCustom.cpp: Added.
(WebCore::JSDOMPlugin::canGetItemsForName):
(WebCore::JSDOMPlugin::nameGetter):
* bindings/js/JSMimeTypeArrayCustom.cpp: Removed.
* bindings/js/JSPluginArrayCustom.cpp: Removed.
* bindings/js/JSPluginCustom.cpp: Removed.
* bindings/scripts/CodeGeneratorJS.pm:
* page/DOMWindow.idl:
* page/Navigator.cpp:
(WebCore::Navigator::plugins):
(WebCore::Navigator::mimeTypes):
* page/Navigator.h:
* page/Navigator.idl:
* plugins/DOMMimeType.cpp: Added.
(WebCore::DOMMimeType::DOMMimeType):
(WebCore::DOMMimeType::~DOMMimeType):
(WebCore::DOMMimeType::type):
(WebCore::DOMMimeType::suffixes):
(WebCore::DOMMimeType::description):
(WebCore::DOMMimeType::enabledPlugin):
* plugins/DOMMimeType.h: Added.
(WebCore::DOMMimeType::create):
(WebCore::DOMMimeType::mimeClassInfo):
* plugins/DOMMimeType.idl: Added.
* plugins/DOMMimeTypeArray.cpp: Added.
(WebCore::DOMMimeTypeArray::DOMMimeTypeArray):
(WebCore::DOMMimeTypeArray::~DOMMimeTypeArray):
(WebCore::DOMMimeTypeArray::length):
(WebCore::DOMMimeTypeArray::item):
(WebCore::DOMMimeTypeArray::canGetItemsForName):
(WebCore::DOMMimeTypeArray::namedItem):
(WebCore::DOMMimeTypeArray::getPluginData):
* plugins/DOMMimeTypeArray.h: Added.
(WebCore::DOMMimeTypeArray::create):
(WebCore::DOMMimeTypeArray::disconnectFrame):
* plugins/DOMMimeTypeArray.idl: Added.
* plugins/DOMPlugin.cpp: Added.
(WebCore::DOMPlugin::DOMPlugin):
(WebCore::DOMPlugin::~DOMPlugin):
(WebCore::DOMPlugin::name):
(WebCore::DOMPlugin::filename):
(WebCore::DOMPlugin::description):
(WebCore::DOMPlugin::length):
(WebCore::DOMPlugin::item):
(WebCore::DOMPlugin::canGetItemsForName):
(WebCore::DOMPlugin::namedItem):
* plugins/DOMPlugin.h: Added.
(WebCore::DOMPlugin::create):
(WebCore::DOMPlugin::pluginInfo):
* plugins/DOMPlugin.idl: Added.
* plugins/DOMPluginArray.cpp: Added.
(WebCore::DOMPluginArray::DOMPluginArray):
(WebCore::DOMPluginArray::~DOMPluginArray):
(WebCore::DOMPluginArray::length):
(WebCore::DOMPluginArray::item):
(WebCore::DOMPluginArray::canGetItemsForName):
(WebCore::DOMPluginArray::namedItem):
(WebCore::DOMPluginArray::refresh):
(WebCore::DOMPluginArray::pluginData):
* plugins/DOMPluginArray.h: Added.
(WebCore::DOMPluginArray::create):
(WebCore::DOMPluginArray::disconnectFrame):
* plugins/DOMPluginArray.idl: Added.
* plugins/MimeType.cpp: Removed.
* plugins/MimeType.h: Removed.
* plugins/MimeType.idl: Removed.
* plugins/MimeTypeArray.cpp: Removed.
* plugins/MimeTypeArray.h: Removed.
* plugins/MimeTypeArray.idl: Removed.
* plugins/Plugin.cpp: Removed.
* plugins/Plugin.h: Removed.
* plugins/Plugin.idl: Removed.
* plugins/PluginArray.cpp: Removed.
* plugins/PluginArray.h: Removed.
* plugins/PluginArray.idl: Removed.
2010-07-06 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=41156
Cross origin XMLHttpRequest should log the reason why connection failed
Covered by multiple existing tests.
* loader/CrossOriginAccessControl.cpp:
(WebCore::passesAccessControlCheck):
* loader/CrossOriginAccessControl.h:
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCacheItem::parse):
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginMethod):
(WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
(WebCore::CrossOriginPreflightResultCacheItem::allowsRequest):
* loader/CrossOriginPreflightResultCache.h:
Functions that check requests now take a string argument for error explanation.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Make an informative error
if crossOriginRequestPolicy is DenyCrossOriginRequests. This doesn't currently go anywhere,
since XMLHttpRequest is the only client that logs from didFail(), and it of course supports
cross origin requests.
(WebCore::DocumentThreadableLoader::makeSimpleCrossOriginAccessRequest): Make an informative
error when trying to e.g. send a cross origin XMLHttpRequest to ftp://.
(WebCore::DocumentThreadableLoader::didReceiveResponse): Pass error explanation from cross
origin access control code.
(WebCore::DocumentThreadableLoader::preflightFailure): Ditto.
* loader/DocumentThreadableLoader.h: preflightFailure() now takes arguments.
* platform/network/ResourceErrorBase.cpp:
* platform/network/ResourceErrorBase.h:
Added a constant for WebKit error domain.
* xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::didFail): Report the error to console.
One day we'll be able to also provide script file and line number here, so it's best to
pass error all the way down to XHR for reporting.
2010-07-06 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: convert script offset to webkit format in v8 ScriptDebugServer
https://bugs.webkit.org/show_bug.cgi?id=41696
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidParseSource):
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement InTableBodyMode
https://bugs.webkit.org/show_bug.cgi?id=41671
In the process of implementing this patch, Eric and I discussed some of
the high-level organization of the HTMLTreeBuilder class. We'd like to
split it up into smaller pieces. In the meantime, I've reordered some
of the declarations in the header to make the relations between the
different kinds of functions clearer.
* html/HTMLElementStack.cpp:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processIsindexStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInTable):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInTable):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/HTMLTreeBuilder.h:
2010-07-06 Leandro Pereira <leandro@profusion.mobi>
Unreviewed build fix.
[EFL] Generate code for RemoteInspector.
* CMakeLists.txt:
2010-07-06 Varun Jain <varunjain@chromium.org>
Reviewed by Oliver Hunt.
Implementing CURVE_TO_CUBIC specification for SVG Path Segments. Currently,
curves specified in relative cordinates such as using createCurvetoCubicRel()
javascript function are not displayed.
SVG CurvetoCubic Path not implemented for relative cordinates
https://bugs.webkit.org/show_bug.cgi?id=41294
Test: svg/custom/svg-curve-with-relative-cordinates.html
* svg/SVGPathSegList.cpp:
(WebCore::SVGPathSegList::toPathData):
2010-07-06 Alexey Proskuryakov <ap@apple.com>
Roll out patch for https://bugs.webkit.org/show_bug.cgi?id=41348 "Remove global variables
from XSLTProcessorLibxslt.cpp", as it causes crashes on buildbot.
* xml/XSLTProcessor.h:
(WebCore::XSLTProcessor::xslStylesheet):
(WebCore::XSLTProcessor::XSLTProcessor):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::docLoaderFunc):
(WebCore::setXSLTLoadCallBack):
(WebCore::xsltStylesheetPointer):
(WebCore::XSLTProcessor::transformToString):
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add processing for "in cell" mode and end tag processing for "in row"
https://bugs.webkit.org/show_bug.cgi?id=41688
I added several new table tests, not all of which pass yet.
Remaining failures exist due to lack of full "in table body" mode
support, which Adam has an outstanding patch for.
I believe all of the various branches added by this change are
covered now by our tests.
* html/HTMLElementStack.cpp:
- Added QualifiedName versions of inScope functions.
Using tagName.localName() is wrong for non-HTML elements,
in preparation for supporting foreign content we should centralize
our handling of QualifiedName in these functions instead of
sprinkling more .localName() calls around the code.
(WebCore::HTMLElementStack::inScope):
(WebCore::HTMLElementStack::inListItemScope):
(WebCore::HTMLElementStack::inTableScope):
* html/HTMLElementStack.h:
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::Entry::operator==):
(WebCore::HTMLFormattingElementList::Entry::operator!=):
- Calling element() on markers will assert, so use m_element.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::closeTheCell):
- Implemented per the spec.
(WebCore::HTMLTreeBuilder::processStartTag):
- Use isTableBodyContextTag where possible.
- Add InCellMode.
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
- Use isTableBodyContextTag where possible.
(WebCore::HTMLTreeBuilder::processTrEndTagForInRow):
- This code is needed from at least two callsites.
(WebCore::HTMLTreeBuilder::processEndTag):
- Add InCellMode and InRowMode
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/HTMLTreeBuilder.h:
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make <a> auto-close any parent <a> tag
https://bugs.webkit.org/show_bug.cgi?id=41684
I first fixed <a> to auto-close surrounding <a> tags.
That caused about 3 more test passes and one new test failure.
The test failure was due to <marque> not adding a marker
to the active formatting elements.
So I made a one-line change to fix <marque>. However that hit an
ASSERT due to a bug in indexOfFirstUnopenFormattingElement.
Fixing indexOfFirstUnopenFormattingElement fixed another bunch of
Adoption Agency related tests (clearly this was the second typo
which was causing all the adoption agency failures).
However fixing <marque> and indexOfFirstUnopenFormattingElement,
added yet another failure due to missing support for </p>
automatically adding an implicit <p> tag. Fixing </p> finally
got the tests to a stable (all improving) state.
In the end, these 4 minor (and very well tested) tweaks fixed a total
of 9 subtests in html5lib/runner.html.
Another subtest progressed, but did not fully pass due to missing
<table> foster-parenting support.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
2010-07-02 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez
[GStreamer] can't seek past maxTimeLoaded value
https://bugs.webkit.org/show_bug.cgi?id=40526
Extended the seekable range to the whole media. This allows video
played with progressive download to be seeked past the current
buffered position.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
2010-07-06 Andreas Wictor <andreas.wictor@xcerion.com>
Reviewed by Alexey Proskuryakov.
Remove global variables from XSLTProcessorLibxslt.cpp
https://bugs.webkit.org/show_bug.cgi?id=41348
Remove the globalProcessor and globalDocLoader global variables
by using the _private field that exists on most libxml structs.
No new tests, existing tests covers this.
* xml/XSLTProcessor.h:
(WebCore::XSLTProcessor::sourceNode):
(WebCore::XSLTProcessor::XSLTProcessor):
* xml/XSLTProcessorLibxslt.cpp:
(WebCore::registredXSLTProcessors):
(WebCore::registredXSLStyleSheets):
(WebCore::docLoaderFunc):
(WebCore::xsltStylesheetPointer):
(WebCore::XSLTProcessor::transformToString):
2010-07-06 Darin Adler <darin@apple.com>
Fix Cairo build.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::createPlatformShadow): Removed unnneded release
in code that passes a PassOwnPtr to another PassOwnPtr.
2010-07-06 Darin Adler <darin@apple.com>
Fix Chromium build.
* platform/graphics/skia/SkiaUtils.cpp:
(WebCore::scratchContext): Use leakPtr instead of release.
2010-07-06 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Build fix after r62549.
* GNUmakefile.am: Generate RemoteInspector files by manually listing
them instead of building them into libWebCoreJS.la.
2010-07-06 Darin Adler <darin@apple.com>
Reviewed by Adam Barth.
Add adoptPtr and leakPtr functions for OwnPtr and PassOwnPtr
https://bugs.webkit.org/show_bug.cgi?id=41320
Made code changes required because of the change to the release function.
The equivalent to the old release function is now named leakPtr and
should be used sparingly. The new release function returns a PassOwnPtr.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData): Changed code to call
leakPtr instead of release.
* css/CSSParser.cpp:
(WebCore::CSSParser::addProperty): Ditto.
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::getFontData): Removed unneeded type
casting. Not sure why this changed the type to FontData* and then
casted back to SimpleFontData*.
* css/MediaQuery.cpp:
(WebCore::MediaQuery::MediaQuery): Removed call to release on a
PassOwnPtr, since the data member is now an OwnPtr.
(WebCore::MediaQuery::~MediaQuery): Removed now-unneeded delete.
* css/MediaQuery.h: Changed m_expressions to be an OwnPtr.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken): Use assignment instead
of the set function since there are no raw pointers involved.
* loader/CachedResource.cpp:
(WebCore::CachedResource::makePurgeable): Ditto.
* loader/CrossOriginPreflightResultCache.cpp:
(WebCore::CrossOriginPreflightResultCache::appendEntry): Use
leakPtr instead of release, and also add FIXME about deleting the
old value if the original and URL are already in the map. I
believe dealing with this FIXME may fix a storage leak.
* loader/CrossOriginPreflightResultCache.h: Change the argument
to be PassOwnPtr instead of a raw pointer, since this function
does take ownership.
* loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
Use assignment instead of the set function since there are no raw
pointers involved.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::startIconLoader): Ditto.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::decode): Ditto.
(WebCore::TextResourceDecoder::flush): Ditto.
* page/DOMTimer.cpp:
(WebCore::DOMTimer::fired): Use OwnPtr instead of an explicit
delete.
* platform/CrossThreadCopier.h: Removed explicit code that tried
to copy PassOwnPtr in a complicated way. It did nothing different
from just returning the PassOwnPtr. This presumably was done because
PassRefPtr has issues when copied cross-thread, but there are no
similar issues for PassOwnPtr. Someone with more experience than I
might be able to remove the specialization altogether, because
CrossThreadCopierPassThrough does the right thing in this case.
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::adoptPurgeableBuffer): Changed argument to
be a PassOwnPtr.
(WebCore::SharedBuffer::releasePurgeableBuffer): Changed result to
be a PassOwnPtr.
* platform/SharedBuffer.h: Updated for changes above.
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource): Changed one site
to use assignment instead of the set function since there are no raw
pointers involved. Changed another site to use leakPtr instead
of release.
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient): Use assignment
instead of the set function since there are no raw pointers involved.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setContent): Use leakPtr instead of release.
(WebCore::RenderStyle::setBoxShadow): Ditto.
* workers/DefaultSharedWorkerRepository.cpp:
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
Removed unneeded call to release function in a code path that passes
a PassOwnPtr to a function that takes a PassOwnPtr.
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::setTimeout): Changed argument type to PassOwnPtr.
(WebCore::WorkerContext::setInterval): Ditto.
* workers/WorkerContext.h: Updated for changes above.
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerContext):
Removed unneeded call to release function in code paths that pass
a PassOwnPtr to a function that takes a PassOwnPtr.
2010-07-06 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
WebInspector: generator part of the patch for bug 40675.
On the way to Remote Debugging we want to support JSON serialization
on both sides of WebInspector transport.
As far as InspectorFrontend class is a simple proxy to WebInspector
it would be better to generate it from an IDL file.
We have generator infrastructure for binding and will reuse it for
new generator.
https://bugs.webkit.org/show_bug.cgi?id=41692
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_binding.py:
* WebCore.gypi:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/IDLParser.pm:
* bindings/scripts/generate-bindings.pl:
* inspector/CodeGeneratorInspector.pm: Added.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::startTimelineProfiler):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontend2.idl: Added.
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
(WebCore::InspectorTimelineAgent::resetFrontendProxyObject):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
* inspector/InspectorTimelineAgent.h:
2010-07-06 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Rubber-stamped by Xan Lopez.
[GTK] Crashes when going back with page cache in unknown circunstances
https://bugs.webkit.org/show_bug.cgi?id=41710
Also NULL-check document, in hopes of fixing this hard to
reproduce crash that we are getting reported quite a bit.
* page/FrameView.cpp:
(WebCore::FrameView::windowClipRect):
2010-07-05 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: On the way to Remote Debuging we want to support JSON
serialization on both sides of WebInspector transport. As far as
InspectorFrontend class is a simple proxy to WebInspector it would
be better to generate it from an IDL file. We have generator
infostructure for binding and will reuse it for new generator.
https://bugs.webkit.org/show_bug.cgi?id=40675
* bindings/js/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::stackTrace):
* bindings/js/ScriptCallStack.h:
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::stackTrace):
* bindings/v8/ScriptCallStack.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addRecordToTimeline):
* inspector/InspectorFrontend.h:
* inspector/InspectorTimelineAgent.cpp:
(WebCore::InspectorTimelineAgent::pushGCEventRecords):
(WebCore::InspectorTimelineAgent::willCallFunction):
(WebCore::InspectorTimelineAgent::willDispatchEvent):
(WebCore::InspectorTimelineAgent::willLayout):
(WebCore::InspectorTimelineAgent::willRecalculateStyle):
(WebCore::InspectorTimelineAgent::willPaint):
(WebCore::InspectorTimelineAgent::willWriteHTML):
(WebCore::InspectorTimelineAgent::didWriteHTML):
(WebCore::InspectorTimelineAgent::didInstallTimer):
(WebCore::InspectorTimelineAgent::didRemoveTimer):
(WebCore::InspectorTimelineAgent::willFireTimer):
(WebCore::InspectorTimelineAgent::willChangeXHRReadyState):
(WebCore::InspectorTimelineAgent::willLoadXHR):
(WebCore::InspectorTimelineAgent::willEvaluateScript):
(WebCore::InspectorTimelineAgent::didScheduleResourceRequest):
(WebCore::InspectorTimelineAgent::willSendResourceRequest):
(WebCore::InspectorTimelineAgent::willReceiveResourceData):
(WebCore::InspectorTimelineAgent::willReceiveResourceResponse):
(WebCore::InspectorTimelineAgent::didFinishLoadingResource):
(WebCore::InspectorTimelineAgent::didMarkTimeline):
(WebCore::InspectorTimelineAgent::didMarkDOMContentEvent):
(WebCore::InspectorTimelineAgent::didMarkLoadEvent):
(WebCore::InspectorTimelineAgent::addRecordToTimeline):
(WebCore::InspectorTimelineAgent::setHeapSizeStatistic):
(WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
(WebCore::InspectorTimelineAgent::pushCurrentRecord):
* inspector/InspectorTimelineAgent.h:
(WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
* inspector/TimelineRecordFactory.cpp:
(WebCore::TimelineRecordFactory::createGenericRecord):
(WebCore::TimelineRecordFactory::createGCEventData):
(WebCore::TimelineRecordFactory::createFunctionCallData):
(WebCore::TimelineRecordFactory::createEventDispatchData):
(WebCore::TimelineRecordFactory::createGenericTimerData):
(WebCore::TimelineRecordFactory::createTimerInstallData):
(WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
(WebCore::TimelineRecordFactory::createXHRLoadData):
(WebCore::TimelineRecordFactory::createEvaluateScriptData):
(WebCore::TimelineRecordFactory::createMarkTimelineData):
(WebCore::TimelineRecordFactory::createScheduleResourceRequestData):
(WebCore::TimelineRecordFactory::createResourceSendRequestData):
(WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
(WebCore::TimelineRecordFactory::createResourceFinishData):
(WebCore::TimelineRecordFactory::createReceiveResourceData):
(WebCore::TimelineRecordFactory::createPaintData):
(WebCore::TimelineRecordFactory::createParseHTMLData):
* inspector/TimelineRecordFactory.h:
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement InColgroupMode
https://bugs.webkit.org/show_bug.cgi?id=41663
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processColgroupEndTagForInColumnGroup):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
* html/HTMLTreeBuilder.h:
2010-07-06 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement bookmarking for HTML5 Adoption Agency algorithm
https://bugs.webkit.org/show_bug.cgi?id=41659
Was easier than I expected it to be.
Fixes a bunch of html5lib/runner.html tests.
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::bookmarkFor):
(WebCore::HTMLFormattingElementList::insertAt):
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::Bookmark::Bookmark):
(WebCore::HTMLFormattingElementList::Bookmark::moveToAfter):
(WebCore::HTMLFormattingElementList::Bookmark::elementBefore):
(WebCore::HTMLFormattingElementList::Bookmark::elementAfter):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement more of InTableMode
https://bugs.webkit.org/show_bug.cgi?id=41652
By the time we got around to landing this patch, it turns out to be
just a bit of cleanup (the functional changes where landed already.)
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-06 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62529.
http://trac.webkit.org/changeset/62529
https://bugs.webkit.org/show_bug.cgi?id=41661
http/tests/inspector/resource-har-conversion.html is broken
(Requested by yutak on #webkit).
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addResource):
(WebCore::InspectorController::removeResource):
* inspector/InspectorController.h:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::cachedResource):
(WebCore::InspectorResource::type):
(WebCore::InspectorResource::resourceData):
* inspector/InspectorResource.h:
(WebCore::InspectorResource::):
(WebCore::InspectorResource::create):
* inspector/front-end/Resource.js:
(WebInspector.Resource.Type.toString):
(WebInspector.Resource.prototype.set type):
(WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshRequestHeaders):
(WebInspector.ResourceView.prototype._refreshResponseHeaders):
(WebInspector.ResourceView.prototype._refreshHeaders):
* inspector/front-end/inspector.css:
(.resources-category-scripts, .resources-category-xhr, .resources-category-fonts, .resources-category-other):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.updateResource):
* websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didOpen):
(WebCore::WebSocketChannel::didClose):
(WebCore::WebSocketChannel::processBuffer):
* websockets/WebSocketChannel.h:
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement InCaptionMode
https://bugs.webkit.org/show_bug.cgi?id=41660
Implementing this mode also turned up a subtle bug in the adoption
agency code.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processCaptionEndTagForInCaption):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
- We're supposed to reutrn the first *unopened* formatting element.
The old code returned the first *opened* formatting element.
* html/HTMLTreeBuilder.h:
2010-07-06 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement defaut cases for InTableMode
https://bugs.webkit.org/show_bug.cgi?id=41656
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-07-05 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
SVGRenderContainer forces too many kids to relayout
https://bugs.webkit.org/show_bug.cgi?id=15391
Fixing a long-standing performance issue. We should only ever need to relayout container children when the parent bounds change.
The bounds of a container can only change, if the outermost RenderSVGRoot container uses relative length values and its size changes.
This can either happen when the window resizes for standalone SVG documents, or if an enclosing RenderBox changes width/height values.
Only relayout container children if the container has selfNeedsLayout() true, or if the parent bounds change.
Lively Kernel doesn't do any relayouts anymore, except if you change the Safari window size, this is a great progression.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout): No need to special case Path updates, if the element uses relative lengths. SVGRenderSupport now handles this case.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): Fix some style issues.
* rendering/RenderSVGContainer.h:
(WebCore::RenderSVGContainer::setDrawsContents): Inlined for speed.
(WebCore::RenderSVGContainer::drawsContents): Ditto.
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::RenderSVGRoot): Initialize m_isLayoutSizeChanged to false.
(WebCore::RenderSVGRoot::layout): Set m_isLayoutSizeChanged=true when the RenderSVGRoot size changes during layout.
(WebCore::RenderSVGRoot::calcViewport): Remove hasRelativeLengths() special case.
* rendering/RenderSVGRoot.h:
(WebCore::RenderSVGRoot::isLayoutSizeChanged): New function, which returns true during layout() if the outermost <svg> size changes.
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::calcViewport): Cleanup code, and remove obsolete hasRelativeLengths() special case.
* rendering/SVGRenderSupport.cpp:
(WebCore::svgRootTreeObject): Added helper function, that returns the RenderSVGRoot for a given RenderObject.
(WebCore::SVGRenderSupport::layoutChildren): Remove FIXME, only relayout container children, if the parent bounds change and the child uses relative lengths.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::updateRelativeLengthsInformation): Implemented this function. Keeps track of relative lengths elements, so that the
hasRelativeLengths() information is always up2date.
* svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::hasRelativeLengths): Don't call the virtual selfHasRelativeLengths() information, just return wheter m_elementsWithRelativeLengths is not empty.
2010-07-05 Yuzo Fujishima <yuzo@google.com>
Reviewed by Dan Bernstein.
Fix for Bug 41509 - Ranges for @font-face unicode-range must be separated by commas
https://bugs.webkit.org/show_bug.cgi?id=41509
Test: fast/css/font-face-multiple-ranges-for-unicode-range.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceUnicodeRange):
2010-07-05 Yuta Kitamura <yutak@chromium.org>
Reviewed by Pavel Feldman.
Add WebSocket resource type to Web Inspector.
When a new WebSocket connection is established, a line for that connection
will appear in Web Inspector's Resources tab. If the resource name is
clicked, the details of handshake request and response will be shown.
Web Inspector: WebSocket in Resources tab
https://bugs.webkit.org/show_bug.cgi?id=40768
* inspector/InspectorController.cpp:
(WebCore::InspectorController::addResource): WebSocket resource does not
have an associated loader, thus frame might be null. Need to check it.
(WebCore::InspectorController::removeResource): Ditto.
(WebCore::InspectorController::didCreateWebSocket):
(WebCore::InspectorController::willSendWebSocketHandshakeRequest):
(WebCore::InspectorController::didReceiveWebSocketHandshakeResponse):
(WebCore::InspectorController::didCloseWebSocket):
* inspector/InspectorController.h:
* inspector/InspectorResource.cpp: Add null checks of m_loader and m_frame,
because WebSocket does not have a loader and we need to allow null for
these variables.
(WebCore::createReadableStringFromBinary):
(WebCore::InspectorResource::InspectorResource):
(WebCore::InspectorResource::create): Factory function of
regular (non-WebSocket) resources.
(WebCore::InspectorResource::createWebSocket): Factory function of
WebSocket resources.
(WebCore::InspectorResource::updateWebSocketRequest):
(WebCore::InspectorResource::updateWebSocketResponse):
(WebCore::InspectorResource::updateScriptObject):
(WebCore::InspectorResource::cachedResource):
(WebCore::InspectorResource::type):
(WebCore::InspectorResource::resourceData):
* inspector/InspectorResource.h:
(WebCore::InspectorResource::):
(WebCore::InspectorResource::markWebSocket):
* inspector/front-end/Resource.js:
(WebInspector.Resource.Type.toString):
(WebInspector.Resource.prototype.set type):
(WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshRequestHeaders):
(WebInspector.ResourceView.prototype._refreshResponseHeaders):
(WebInspector.ResourceView.prototype._refreshHeaders):
* inspector/front-end/inspector.css:
(.resources-category-websockets, .resources-category-other):
(.resources-category-websockets .resources-graph-bar):
(.resources-category-websockets.resource-cached .resources-graph-bar):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.updateResource):
* websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::disconnect):
(WebCore::WebSocketChannel::didOpen):
(WebCore::WebSocketChannel::didClose):
(WebCore::WebSocketChannel::processBuffer):
(WebCore::WebSocketChannel::identifier):
* websockets/WebSocketChannel.h:
2010-07-05 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Chromium build.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::fillResourceList):
(WebCore::InspectorApplicationCacheAgent::getApplicationCaches):
2010-07-05 Adam Barth <abarth@webkit.org>
Unreviewed.
Move processStartTagForInBody to its own function.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
* html/HTMLTreeBuilder.cpp.orig: Added.
* html/HTMLTreeBuilder.h:
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fix one more notImplemented in h1-h6 start tag handling
https://bugs.webkit.org/show_bug.cgi?id=41654
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-05 Eric Seidel <eric@webkit.org>
Unreviewed. Just fixing proess to process.
Clearly Adam and I can't spell. Thankfully MikeSmith can.
Add <isindex> support, per HTML5
https://bugs.webkit.org/show_bug.cgi?id=41650
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::processFakeEndTag):
(WebCore::HTMLTreeBuilder::processIsindexStartTagForBody):
(WebCore::HTMLTreeBuilder::processStartTag):
* html/HTMLTreeBuilder.h:
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add <isindex> support, per HTML5
https://bugs.webkit.org/show_bug.cgi?id=41650
Covered by html5lib/runner.html including a new
isindex.dat test suite.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
- Support passing attributes to the constructor.
(WebCore::AtomicHTMLToken::name):
(WebCore::AtomicHTMLToken::setName):
(WebCore::AtomicHTMLToken::getAttributeItem):
(WebCore::AtomicHTMLToken::attributes):
(WebCore::AtomicHTMLToken::takeAtributes):
- Reduces ref-churn, and makes it possible for callers
to modify attributes w/o affecting future uses of the attributes.
(WebCore::AtomicHTMLToken::usesName):
- Used by ASSERTS.
(WebCore::AtomicHTMLToken::usesAttributes):
- Used by ASSERTS.
* html/HTMLTreeBuilder.cpp:
(WebCore::convertToOldStyle):
- Can't be const, now that we use takeAttributes()
(WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
(WebCore::HTMLTreeBuilder::proesssFakeStartTag):
- New function. I'm not sure this is the perfect design
(I'd kinda like AtomicHTMLToken to be copyable so we can
have create functions for it), but this makes the callsites
using fake tokens much more readable.
(WebCore::HTMLTreeBuilder::proesssFakeEndTag):
(WebCore::HTMLTreeBuilder::processFakeCharacters):
(WebCore::HTMLTreeBuilder::attributesForIsindexInput):
(WebCore::HTMLTreeBuilder::processIsindexStartTagForBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::insertScriptElement):
- Use takeAttributes() for less ref-churn.
(WebCore::HTMLTreeBuilder::createElement): ditto
(WebCore::HTMLTreeBuilder::finished):
- Remove bogus use of AtomicHTMLToken constructor which
wasn't even being used now that we support emitting EOF tokens
from the Tokenizer directly.
* html/HTMLTreeBuilder.h:
2010-07-05 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
ASSERT that we're processing the correct type of token
https://bugs.webkit.org/show_bug.cgi?id=41647
Making these asserts work required a small (non-observable) tweak to
some old code.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
2010-07-05 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement in select in table
https://bugs.webkit.org/show_bug.cgi?id=41646
This mode is mostly a fall-through to the InSelectMode.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-05 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement basic text node coalescing
https://bugs.webkit.org/show_bug.cgi?id=41623
This patch isn't the end-all, be-all of text node coalescing, but it's
a good start.
* dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::appendData):
* dom/CharacterData.h:
- Added a new method to dance around mutation events.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertTextNode):
2010-07-05 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement InSelectMode
https://bugs.webkit.org/show_bug.cgi?id=41627
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-05 Fady Samuel <fsamuel@chromium.org>
Reviewed by Darin Adler.
Fixed a svg crash when setting class of an svg ellipse object.
Altering the CSS class of an attached SVG element causes WebKit to crash
https://bugs.webkit.org/show_bug.cgi?id=40857
Test: svg/css/svg-ellipse-render-crash.html
* dom/StyledElement.cpp:
(WebCore::StyledElement::classAttributeChanged):
2010-07-05 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
Reproducible crash with Optimize Legibility extension
https://bugs.webkit.org/show_bug.cgi?id=41585
Test: fast/css/text-rendering-priority.html
Moved the text-rendering CSS property to the “high priority” group, because applying it
during style selection invalidates the font.
* css/CSSPropertyNames.in: Moved text-rendering to the “high priority” section at the top.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyDeclarations): Updated compile-time assertion.
2010-07-05 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
optimizeLegibility doesn't play nice with fonts that do not have a space glyph
https://bugs.webkit.org/show_bug.cgi?id=41599
No test because none of the fonts available to DumpRenderTree are missing a space glyph.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::findNextLineBreak): When the font does not map the space character
to a glyph, a fallback font is used for space. Therefore, wordTrailingSpaceWidth must be
initialized with the width of a space as measured by the Font rather than with the cached
space width.
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement HTML5's "reset insertion mode appropriately"
https://bugs.webkit.org/show_bug.cgi?id=41628
This has some minimal testing. One from my previous
</table> patch, and a few from the main suite.
Mostly resetInsertionModeAppropriately isn't used yet
but we're about to add a bunch of states which do use it
and our test coverage will expand further as we do.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::setInsertionModeAndEnd):
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
* html/HTMLTreeBuilder.h:
2010-07-04 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add </table> support for "in table" insertion mode
https://bugs.webkit.org/show_bug.cgi?id=41591
resetInsertionModeAppropriately isn't implemented yet, however
I've added a test for the usage I added.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-07-05 Joseph Pecoraro <joepeck@webkit.org>
Unreviewed build fix for r62503.
Chromium missing method. Filed bug 41632 to track.
* loader/appcache/ApplicationCacheHost.h:
(WebCore::ApplicationCacheHost::applicationCache):
2010-07-05 Joseph Pecoraro <joepeck@webkit.org>
Unreviewed build fix for r62503.
Missed GTK's build file.
* GNUmakefile.am:
2010-07-05 Joseph Pecoraro <joepeck@webkit.org>
Unreviewed build fix for r62503.
Pass a blank ResourceResponse instead of passing 0.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::createResourceHandle):
2010-07-05 Joseph Pecoraro <joepeck@webkit.org>
Unreviewed build fix for r62503.
Forward declare ApplicationCache for Chromium.
* loader/appcache/ApplicationCacheHost.h:
2010-07-05 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Pavel Feldman.
WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
https://bugs.webkit.org/show_bug.cgi?id=24529
Parts of this patch were written by Kavita Kanetkar <kkanetkar@chromium.org>.
Part 2: Pulling ApplicationCache Resources to Display in the Inspector.
The InspectorApplicationCacheAgent gathers the information it
needs and forwards it on to the inspector.
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::fillResourceList): get information about the resources.
(WebCore::InspectorApplicationCacheAgent::getApplicationCaches): gathers all the information from the ApplicationCacheHost.
(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
(WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
* inspector/InspectorApplicationCacheAgent.h: defines structures to hold information about caches and resources.
(WebCore::InspectorApplicationCacheAgent::ApplicationCacheInfo::ApplicationCacheInfo):
(WebCore::InspectorApplicationCacheAgent::ResourceInfo::ResourceInfo):
(WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
* loader/appcache/ApplicationCacheHost.h:
(WebCore::ApplicationCacheHost::applicationCacheForInspector): new convention, public cache accessor for the inspector.
(WebCore::ApplicationCacheHost::documentLoader): added const.
The User Interface uses a DataGrid, like Cookies.
* inspector/front-end/ApplicationCacheItemsView.js:
(WebInspector.ApplicationCacheItemsView.prototype._update):
(WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
(WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
(WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.numberCompare):
(WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid.localeCompare):
(WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
The usual frontend pull workflow, except this goes through
InspectorApplicationCacheAgent instead of InspectorController.
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::getApplicationCaches):
(WebCore::InspectorBackend::inspectorApplicationCacheAgent):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didGetApplicationCaches):
* inspector/InspectorFrontend.h:
* inspector/front-end/DOMAgent.js:
(WebInspector.DOMNode.prototype.hasChildNodes): style fix.
(WebInspector.DOMAgent.prototype.nodeForId): style fix.
(WebInspector.ApplicationCache.getApplicationCachesAsync): pull.
(WebInspector.Cookies.getCookiesAsync):
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel.prototype.updateManifest):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
(WebInspector._addAppCacheDomain):
(WebInspector.reset):
Miscellaneous. Localized Strings and fixes.
* English.lproj/localizedStrings.js: "Type", "%s (%s)"
* inspector/InspectorController.cpp:
(WebCore::InspectorController::deleteCookie):
* inspector/InspectorController.h:
2010-07-04 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Pavel Feldman.
WebInspector: HTML5 Offline Web Applications Support (ApplicationCache)
https://bugs.webkit.org/show_bug.cgi?id=24529
Part 1: Backend -> Frontend Messages. ApplicationCache Status and Connectivity Status.
This patch adds an InspectorApplicationCacheAgent to monitor application
cache changes, starts a UI in the Storage panel, handles the boilerplate
of adding new files.
Added an agent to encapsulate and handle the application cache logic.
This is similar to the timeline agent.
* inspector/InspectorApplicationCacheAgent.cpp: Added.
(WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent):
(WebCore::InspectorApplicationCacheAgent::~InspectorApplicationCacheAgent):
(WebCore::InspectorApplicationCacheAgent::didReceiveManifestResponse):
(WebCore::InspectorApplicationCacheAgent::updateApplicationCacheStatus):
(WebCore::InspectorApplicationCacheAgent::updateNetworkState):
* inspector/InspectorApplicationCacheAgent.h: Added.
InspectorController owns an InspectorApplicationCacheAgent. This
handles its lifetime management.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::connectFrontend): create the agent with a frontend.
(WebCore::InspectorController::disconnectFrontend): remove the agent when closing.
(WebCore::InspectorController::releaseFrontendLifetimeAgents):
* inspector/InspectorController.h:
User Interface for ApplicationCache in the StoragePanel. This follows
very closely to Cookies, it will have a sortable table of items. The
status bar contains connectivity and application cache status
indicators which update when backend messages are received. There
are some stubs which the next part will implement.
* inspector/front-end/ApplicationCacheItemsView.js: Added.
(WebInspector.ApplicationCacheItemsView):
(WebInspector.ApplicationCacheItemsView.prototype.get statusBarItems): refresh, delete, connectivity, application cache status.
(WebInspector.ApplicationCacheItemsView.prototype.show):
(WebInspector.ApplicationCacheItemsView.prototype.hide):
(WebInspector.ApplicationCacheItemsView.prototype.updateStatus): this is the application cache status indicator.
(WebInspector.ApplicationCacheItemsView.prototype.updateNetworkState): this is the online/offline connectivity indicator.
(WebInspector.ApplicationCacheItemsView.prototype._update):
(WebInspector.ApplicationCacheItemsView.prototype._updateCallback):
(WebInspector.ApplicationCacheItemsView.prototype._createDataGrid):
(WebInspector.ApplicationCacheItemsView.prototype._populateDataGrid):
(WebInspector.ApplicationCacheItemsView.prototype.resize):
(WebInspector.ApplicationCacheItemsView.prototype._deleteButtonClicked):
(WebInspector.ApplicationCacheItemsView.prototype._deleteCallback):
(WebInspector.ApplicationCacheItemsView.prototype._refreshButtonClicked):
The usual dispatch flow from the backend, to the frontend, to the
panel, and then to the visible view. Some slight refactoring to
eliminate duplicated code.
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::updateDOMStorage):
(WebCore::InspectorFrontend::didGetApplicationCaches):
(WebCore::InspectorFrontend::updateApplicationCacheStatus):
* inspector/InspectorFrontend.h:
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel):
(WebInspector.StoragePanel.prototype.reset):
(WebInspector.StoragePanel.prototype.addApplicationCache):
(WebInspector.StoragePanel.prototype.showDatabase):
(WebInspector.StoragePanel.prototype.showDOMStorage):
(WebInspector.StoragePanel.prototype.showCookies):
(WebInspector.StoragePanel.prototype.showApplicationCache):
(WebInspector.StoragePanel.prototype._genericViewSetup):
(WebInspector.StoragePanel.prototype.updateApplicationCacheStatus):
(WebInspector.StoragePanel.prototype.updateNetworkState):
(WebInspector.CookieSidebarTreeElement.prototype.set subtitle):
(WebInspector.ApplicationCacheSidebarTreeElement):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.onselect):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.get mainTitle):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.set mainTitle):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.get subtitle):
(WebInspector.ApplicationCacheSidebarTreeElement.prototype.set subtitle):
* inspector/front-end/inspector.js:
(WebInspector.dispatch.delayDispatch):
(WebInspector.dispatch):
(WebInspector._addAppCacheDomain):
(WebInspector.addDOMStorage):
(WebInspector.updateDOMStorage):
Notify the InspectorApplicationCacheAgent on application cache changes
or specifics. Notify the InspectorController on generic resource events.
That is because ApplicationCacheController is a ResourceClient and needs
to trigger the resource events normally handled by ResourceLoader.
* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::inspectorUpdateApplicationCacheStatus): helper method to prevent duplicated code.
(WebCore::ApplicationCacheGroup::setNewestCache): status change.
(WebCore::ApplicationCacheGroup::makeObsolete): status change.
(WebCore::ApplicationCacheGroup::update): status change.
(WebCore::ApplicationCacheGroup::createResourceHandle): resource event.
(WebCore::ApplicationCacheGroup::willSendRequest): resource event.
(WebCore::ApplicationCacheGroup::didReceiveResponse): resource event.
(WebCore::ApplicationCacheGroup::didReceiveData): resource event.
(WebCore::ApplicationCacheGroup::didFinishLoading): resource event.
(WebCore::ApplicationCacheGroup::didFail): resource event.
(WebCore::ApplicationCacheGroup::didFinishLoadingManifest): resource event.
(WebCore::ApplicationCacheGroup::manifestNotFound): status change.
(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): status change.
(WebCore::ApplicationCacheGroup::setUpdateStatus): single access point for status changes.
* loader/appcache/ApplicationCacheGroup.h:
* page/Page.cpp:
(WebCore::networkStateChanged): connectivity status change.
Final inspector details to add the new file, style new elements,
images, and localized strings.
* inspector/front-end/inspector.css:
(.application-cache-sidebar-tree-item .icon):
(.timeline-records-counter, .storage-application-cache-status, .storage-application-cache-connectivity):
(.storage-application-cache-status-icon, .storage-application-cache-connectivity-icon):
(.status-bar-divider):
(.storage-application-cache-status, .storage-application-cache-connectivity):
* inspector/front-end/inspector.html:
* inspector/front-end/Images/applicationCache.png: Added.
* English.lproj/localizedStrings.js: "APPLICATION CACHE", "No Application Cache information available.", "Online", "Offline"
Updated build files.
* CMakeLists.txt:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/front-end/WebKit.qrc:
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add basic <col> support to the treebuilder
https://bugs.webkit.org/show_bug.cgi?id=41590
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add basic "in row" mode to support <td> and <th> insertion
https://bugs.webkit.org/show_bug.cgi?id=41588
Also fixed <td> or <th> as a direct child of <table>.
Most of this was covered by html5lib/runner.html tests,
but I had to add a new tables01.dat to cover the <th> cases.
* html/HTMLElementStack.cpp:
(WebCore::HTMLNames::isTableRowScopeMarker):
(WebCore::HTMLElementStack::popUntilTableRowScopeMarker):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-05 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Finish implementing "any other end tag" for "in body" mode
https://bugs.webkit.org/show_bug.cgi?id=41582
I believe I found a "bug" in the HTML5 spec when writing this:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10080
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-07-05 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Add a missing slash to the list of generated sources. This
was missing from a previous build fix.
* GNUmakefile.am:
2010-07-05 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Joseph Pecoraro.
Web Inspector: preserve scroll positions in source frame when switching between panes.
https://bugs.webkit.org/show_bug.cgi?id=41620
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.hide):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype.set visible):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype.hide):
2010-07-05 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dirk Schulze.
IE SVG test fails
https://bugs.webkit.org/show_bug.cgi?id=41619
Make SVGSVGElement.createSVGTransform create a SVGTransform with the
right type, thereby fixing the IE test.
Test: svg/custom/svg-createsvgtransform-type.html
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::createSVGTransform):
2010-07-05 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: computed style pane is not updated when styles pane is collapsed.
https://bugs.webkit.org/show_bug.cgi?id=41615
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.updateStyles):
2010-07-05 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Logic to track whether elements are using relative lengths is incomplete
https://bugs.webkit.org/show_bug.cgi?id=41566
Add logic to all SVG elements which create renderes to expose a method
"bool selfHasRelativeLengths()", that returns whether the element uses relative
lengths (eg. <rect x="50%"...). This will be used soon to avoid relayouts of
container children, when the bounds have not changed.
A new method SVGStyledElement::updateRelativeLengthsInformation() is added,
which is called from the various svgAttributeChanged() methods and insertedIntoDocument/removedFromDocument.
It will be implemented in a follow-up patch. This patch does not affect any test behaviour related
to relayouting. As SVGFilterElement finally got a proper svgAttributeChanged() method, it now
properly invalidates clients on attribute changes - covered by a new test.
Tests: svg/custom/relative-sized-inner-svg.xhtml
svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml
svg/filters/filter-width-update.svg
* rendering/RenderPath.cpp:
(WebCore::RenderPath::layout): Rename hasRelativeValues to hasRelativeLengths.
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout): Ditto.
(WebCore::RenderSVGRoot::calcViewport): Ditto.
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::calcViewport): Ditto
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::layoutChildren): Ditto.
* svg/SVGCircleElement.cpp:
(WebCore::SVGCircleElement::svgAttributeChanged): Call updateRelativeLengthsInformation() if any attribute which may contain relative lengths changes.
(WebCore::SVGCircleElement::selfHasRelativeLengths): Ditto. Same for all other SVG*Elements below.
* svg/SVGCircleElement.h:
* svg/SVGEllipseElement.cpp:
(WebCore::SVGEllipseElement::svgAttributeChanged):
(WebCore::SVGEllipseElement::selfHasRelativeLengths):
* svg/SVGEllipseElement.h:
* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::svgAttributeChanged):
(WebCore::SVGFilterElement::selfHasRelativeLengths):
* svg/SVGFilterElement.h:
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::svgAttributeChanged):
(WebCore::SVGForeignObjectElement::selfHasRelativeLengths):
* svg/SVGForeignObjectElement.h:
* svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::svgAttributeChanged):
(WebCore::SVGImageElement::selfHasRelativeLengths):
* svg/SVGImageElement.h:
* svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
(WebCore::SVGLineElement::selfHasRelativeLengths):
* svg/SVGLineElement.h:
* svg/SVGLinearGradientElement.cpp:
(WebCore::SVGLinearGradientElement::svgAttributeChanged):
(WebCore::SVGLinearGradientElement::selfHasRelativeLengths):
* svg/SVGLinearGradientElement.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::svgAttributeChanged):
(WebCore::SVGMarkerElement::selfHasRelativeLengths):
* svg/SVGMarkerElement.h:
* svg/SVGMaskElement.cpp:
(WebCore::SVGMaskElement::svgAttributeChanged):
(WebCore::SVGMaskElement::selfHasRelativeLengths):
* svg/SVGMaskElement.h:
* svg/SVGPatternElement.cpp:
(WebCore::SVGPatternElement::svgAttributeChanged):
(WebCore::SVGPatternElement::selfHasRelativeLengths):
* svg/SVGPatternElement.h:
* svg/SVGRadialGradientElement.cpp:
(WebCore::SVGRadialGradientElement::svgAttributeChanged):
(WebCore::SVGRadialGradientElement::selfHasRelativeLengths):
* svg/SVGRadialGradientElement.h:
* svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::svgAttributeChanged):
(WebCore::SVGRectElement::selfHasRelativeLengths):
* svg/SVGRectElement.h:
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
(WebCore::SVGSVGElement::selfHasRelativeLengths):
* svg/SVGSVGElement.h:
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::insertedIntoDocument): Call updateRelativeLengthsInformation().
(WebCore::SVGStyledElement::removedFromDocument): Ditto.
(WebCore::SVGStyledElement::updateRelativeLengthsInformation): Not implemented so far. Will land in a follow-up patch, together with the render tree changes.
* svg/SVGStyledElement.h:
(WebCore::SVGStyledElement::hasRelativeLengths): Devirtualized. For now, just call selfHasRelativeLengths() - this will change in a follow-up patch.
(WebCore::SVGStyledElement::updateRelativeLengthsInformation):
(WebCore::SVGStyledElement::selfHasRelativeLengths): Renamed from hasRelativeValues().
* svg/SVGSymbolElement.cpp:
(WebCore::SVGSymbolElement::svgAttributeChanged):
(WebCore::SVGSymbolElement::selfHasRelativeLengths):
* svg/SVGSymbolElement.h:
* svg/SVGTextContentElement.cpp:
(WebCore::SVGTextContentElement::selfHasRelativeLengths):
* svg/SVGTextContentElement.h:
* svg/SVGTextPathElement.cpp:
(WebCore::SVGTextPathElement::svgAttributeChanged):
(WebCore::SVGTextPathElement::insertedIntoDocument): Call right base class' method. Skipped one in the hierachy before.
(WebCore::SVGTextPathElement::selfHasRelativeLengths):
* svg/SVGTextPathElement.h:
* svg/SVGTextPositioningElement.cpp:
(WebCore::SVGTextPositioningElement::svgAttributeChanged):
(WebCore::listContainsRelativeValue): New helper funtion that checks wheter a SVGLengthList contains relative lengths.
(WebCore::SVGTextPositioningElement::selfHasRelativeLengths):
* svg/SVGTextPositioningElement.h:
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::insertedIntoDocument): Call right base class' method. Skipped on in the hierachy before.
(WebCore::SVGUseElement::removedFromDocument): Ditto.
(WebCore::SVGUseElement::svgAttributeChanged):
(WebCore::SVGUseElement::buildShadowAndInstanceTree): Call updateRelativeLengthsInformation() after building the shadow tree.
(WebCore::SVGUseElement::selfHasRelativeLengths): Same as all other methods, except that it includes the shadow tree root element.
* svg/SVGUseElement.h:
2010-07-05 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Problem with copying a code from Scripts panel.
https://bugs.webkit.org/show_bug.cgi?id=40432
* inspector/front-end/TextViewer.js:
(WebInspector.TextViewer.prototype._getSelection):
(WebInspector.TextViewer.prototype._selectionToPosition):
2010-07-05 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze / Darin Adler.
Node.cloneNode does not work on SVG nodes
https://bugs.webkit.org/show_bug.cgi?id=41421
Be sure to synchronize animated SVG properties before checking whether NamedNodeMap exists.
When creating a SVG element from JS, and setting all attributes via SVG DOM, and not using setAttribute
the NamedNodeMap does not exist. When cloning such an element, be sure to synchronize SVG <-> XML DOM
attributes before attempting to clone, otherwhise the SVG animated properties are lost while cloning.
Test: svg/custom/clone-element-with-animated-svg-properties.html
* dom/Element.cpp:
(WebCore::Element::cloneElementWithoutChildren):
2010-07-05 Antti Koivisto <koivisto@iki.fi>
Revert unplanned project file change.
* WebCore.pri:
* WebCore.pro:
2010-07-05 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Darin Adler.
Memory corruption with SVG <use> element
https://bugs.webkit.org/show_bug.cgi?id=40994
Fix race condition in svgAttributeChanged. Never call svgAttributeChanged() from attributeChanged()
when we're synchronizing SVG attributes. It leads to either unnecessary extra work being done or
crashes. Especially together with <polyline>/<polygon> which always synchronize the SVGAnimatedPoints
datastructure with the points attribute, no matter if there are changes are not. This should be
furhter optimized, but this fix is sane and fixes the root of the evil races.
Test: svg/custom/use-property-synchronization-crash.svg
* svg/SVGElement.cpp:
(WebCore::SVGElement::attributeChanged):
2010-07-05 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: remove v8-specific code dealing with getOwnPropertyNames from InjectedScript.js
https://bugs.webkit.org/show_bug.cgi?id=41595
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-07-04 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dirk Schulze.
SVG polygons should draw polygons up to the first parsing error
https://bugs.webkit.org/show_bug.cgi?id=41140
Render polygons up until the first parsing error.
Test: svg/custom/poly-parsing-error.html
* svg/SVGPolyElement.cpp:
(WebCore::SVGPolyElement::parseMappedAttribute):
2010-07-04 Alice Liu <alice.liu@apple.com>
Reviewed by Dan Bernstein.
Crash reading past end of block in UniscribeController::shapeAndPlaceItem
https://bugs.webkit.org/show_bug.cgi?id=41554
Test: platform/win/fast/text/uniscribe-item-boundary-crash.html
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::shapeAndPlaceItem):
Don't look one past the end of str. Instead look to the next item, if applicable.
2010-07-04 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add basic "in table body" mode to support <tr> insertion
https://bugs.webkit.org/show_bug.cgi?id=41587
This also adds a (currently untestable?)
popUntilTableBodyScopeMarker code path.
Any tags which would be between a tbody a <tr> would end up
foster parented outside the <table>. I think the spec was
just being over-cautious with popUntilTableBodyScopeMarker.
* html/HTMLElementStack.cpp:
(WebCore::HTMLNames::isTableScopeMarker):
(WebCore::HTMLNames::isTableBodyScopeMarker):
(WebCore::HTMLElementStack::popUntilTableBodyScopeMarker):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
2010-07-04 Anders Carlsson <andersca@apple.com>
Fix Windows build.
* WebCore.vcproj/WebCore.vcproj:
2010-07-04 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder needs an adoption agency
https://bugs.webkit.org/show_bug.cgi?id=41453
Fix Qt Minimal build. SVGNames.h should always
be generated, even when SVG is off, however that's
not how things currently work.
* html/HTMLTreeBuilder.cpp:
2010-07-04 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add a very basic InTable insertion mode
https://bugs.webkit.org/show_bug.cgi?id=41581
There is still a bunch of low-hanging fruit left for this
mode, but even this most-basic support lets us pass 6 more tests. :)
It's a progression, ship it! :)
* html/HTMLElementStack.cpp:
(WebCore::HTMLNames::isScopeMarker):
(WebCore::HTMLNames::isListItemScopeMarker):
(WebCore::HTMLNames::isTableScopeMarker):
(WebCore::HTMLElementStack::popUntilTableScopeMarker):
* html/HTMLElementStack.h:
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::appendMarker):
* html/HTMLFormattingElementList.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
* html/HTMLTreeBuilder.h:
2010-07-01 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTreeBuilder needs an adoption agency
https://bugs.webkit.org/show_bug.cgi?id=41453
This changes some test results, but only makes the simplest
adoption agency cases pass. I think the code is likely
very close, but further iteration to make this change larger
seems counter-productive. I recommend we check in this
progression and work from here.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::addChildCommon):
- Make sure callers don't assume this will reparent.
(WebCore::ContainerNode::parserAddChild):
- Update comment to document lack of reparenting behavior.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::ElementRecord::ElementRecord):
(WebCore::HTMLElementStack::ElementRecord::~ElementRecord):
(WebCore::HTMLElementStack::ElementRecord::replaceElement):
(WebCore::HTMLElementStack::ElementRecord::isAbove):
- Added for debugging.
(WebCore::HTMLElementStack::pushHTMLHtmlElement):
(WebCore::HTMLElementStack::insertAbove):
- Needed for the adoption agency.
(WebCore::HTMLElementStack::topRecord):
(WebCore::HTMLElementStack::bottom):
(WebCore::HTMLElementStack::removeHTMLHeadElement):
(WebCore::HTMLElementStack::remove):
(WebCore::HTMLElementStack::find):
(WebCore::HTMLElementStack::topmost):
(WebCore::HTMLElementStack::contains):
(WebCore::HTMLElementStack::htmlElement):
(WebCore::HTMLElementStack::headElement):
(WebCore::HTMLElementStack::bodyElement):
(WebCore::HTMLElementStack::pushCommon):
(WebCore::HTMLElementStack::removeNonTopCommon):
- Fix the name to match top/bottom.
* html/HTMLElementStack.h:
(WebCore::HTMLElementStack::ElementRecord::element):
(WebCore::HTMLElementStack::ElementRecord::next):
(WebCore::HTMLElementStack::ElementRecord::releaseNext):
(WebCore::HTMLElementStack::ElementRecord::setNext):
* html/HTMLFormattingElementList.cpp:
(WebCore::HTMLFormattingElementList::closestElementInScopeWithName):
(WebCore::HTMLFormattingElementList::contains):
(WebCore::HTMLFormattingElementList::find):
(WebCore::HTMLFormattingElementList::remove):
* html/HTMLFormattingElementList.h:
(WebCore::HTMLFormattingElementList::isEmpty):
(WebCore::HTMLFormattingElementList::size):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::furthestBlockForFormattingElement):
- Part of the Adoption Agency algorithm.
(WebCore::HTMLTreeBuilder::findFosterParentFor):
- Used to move mis-nested content out of tables.
This doesn't seem to work quite right yet.
(WebCore::HTMLTreeBuilder::reparentChildren):
(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
- The ridiculously long/complicated adoption agency algorithm from HTML5.
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-07-04 Justin Schuh <jschuh@chromium.org>
Reviewed by Darin Adler.
Remove custom src bindings for HTMLFrameElement and HTMLIFrameElement
https://bugs.webkit.org/show_bug.cgi?id=41578
Remove bindings obsoleted by: http://trac.webkit.org/changeset/59866
No new tests because behavior is not changed.
* Android.jscbindings.mk:
* Android.v8bindings.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSHTMLFrameElementCustom.cpp:
* bindings/js/JSHTMLIFrameElementCustom.cpp: Removed.
* bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
* bindings/v8/custom/V8HTMLIFrameElementCustom.cpp: Removed.
* html/HTMLFrameElement.idl:
* html/HTMLIFrameElement.idl:
2010-07-03 Adam Barth <abarth@webkit.org>
Reviewed by Maciej Stachowiak.
Implement AfterAfterFramesetMode
https://bugs.webkit.org/show_bug.cgi?id=41561
This mode is almost unobservable. The main way to observe it seems to
be seeing where comment nodes get attached to the DOM.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-03 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
WebGLRenderingContext::vertexAttrib* leads to possible out-of-range vector member visit
https://bugs.webkit.org/show_bug.cgi?id=41572
* html/canvas/WebGLRenderingContext.cpp: Fix the out-of-range vector member visit, also refactor the code.
(WebCore::WebGLRenderingContext::vertexAttrib1f):
(WebCore::WebGLRenderingContext::vertexAttrib1fv):
(WebCore::WebGLRenderingContext::vertexAttrib2f):
(WebCore::WebGLRenderingContext::vertexAttrib2fv):
(WebCore::WebGLRenderingContext::vertexAttrib3f):
(WebCore::WebGLRenderingContext::vertexAttrib3fv):
(WebCore::WebGLRenderingContext::vertexAttrib4f):
(WebCore::WebGLRenderingContext::vertexAttrib4fv):
(WebCore::WebGLRenderingContext::vertexAttribfImpl):
(WebCore::WebGLRenderingContext::vertexAttribfvImpl):
* html/canvas/WebGLRenderingContext.h: Helper function declaration.
2010-07-03 Jeremy Orlow <jorlow@chromium.org>
Ugh. Have to put the destructor in the .h file since the .ccp isn't compiled yet.
* storage/IDBKey.h:
(WebCore::IDBKey::~IDBKey):
2010-07-03 Jeremy Orlow <jorlow@chromium.org>
Build fix. Forgot destructor.
* storage/IDBKey.cpp:
(WebCore::IDBKey::~IDBKey):
2010-06-26 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Dumitru Daniliuc.
Support for keys and in-memory storage for IndexedDB
https://bugs.webkit.org/show_bug.cgi?id=41252
It'll take some time to get data persistence working for IndexedDB,
so until then, we'll just store everything in an in memory tree.
The tree uses WTF::AVLTree and is a template so that it can be used by
object stores (IDBKey -> SerializedScriptValue) and indexes (IDBKey ->
IDBKey). This class will be used in a subsequent patch.
Also add an IDBKey type that represents one of these keys. We use a
custom toJS function in a way similar to IDBAny to convert from WebCore
to a JS value. For converting the other way, we have to teach the code
generators what to do (unfortunately). This is done in a way similar
to serialized script value. Unlike serialized script value, IDBKey is
in WebCore and only a helper function is JS engine specific.
This code is not accessable from layout tests. (Will fix in
https://bugs.webkit.org/show_bug.cgi?id=41250) The bindings tests
show us that the generated bindings are what we expect.
* ForwardingHeaders/wtf/AVLTree.h: Added.
* bindings/js/IDBBindingUtilities.cpp: Added.
(WebCore::createIDBKeyFromValue):
* bindings/js/IDBBindingUtilities.h: Added.
* bindings/js/JSIDBKeyCustom.cpp: Added.
(WebCore::toJS):
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::idbKey):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_idb_key):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::):
(WebCore::jsTestObjPrototypeFunctionIdbKey):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj idbKey:]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::idbKeyCallback):
(WebCore::):
* bindings/v8/IDBBindingUtilities.cpp: Added.
(WebCore::createIDBKeyFromValue):
* bindings/v8/IDBBindingUtilities.h: Added.
* bindings/v8/custom/V8IDBKeyCustom.cpp: Added.
(WebCore::toV8):
* storage/IDBCallbacks.h:
* storage/IDBKey.cpp: Added.
(WebCore::IDBKey::IDBKey):
(WebCore::IDBKey::~IDBKey):
* storage/IDBKey.h: Added.
(WebCore::IDBKey::create):
(WebCore::IDBKey::):
(WebCore::IDBKey::type):
(WebCore::IDBKey::string):
(WebCore::IDBKey::number):
* storage/IDBKey.idl: Added.
* storage/IDBKeyTree.h: Added.
(WebCore::IDBKeyTree::create):
(WebCore::IDBKeyTree::AVLTreeAbstractor::get_less):
(WebCore::IDBKeyTree::AVLTreeAbstractor::set_less):
(WebCore::IDBKeyTree::AVLTreeAbstractor::get_greater):
(WebCore::IDBKeyTree::AVLTreeAbstractor::set_greater):
(WebCore::IDBKeyTree::AVLTreeAbstractor::get_balance_factor):
(WebCore::IDBKeyTree::AVLTreeAbstractor::set_balance_factor):
(WebCore::IDBKeyTree::AVLTreeAbstractor::null):
(WebCore::IDBKeyTree::AVLTreeAbstractor::compare_key_node):
(WebCore::IDBKeyTree::AVLTreeAbstractor::compare_node_node):
(WebCore::::IDBKeyTree):
(WebCore::::~IDBKeyTree):
(WebCore::::AVLTreeAbstractor::compare_key_key):
(WebCore::::get):
(WebCore::::insert):
(WebCore::::remove):
2010-07-03 Jon Honeycutt <jhoneycutt@apple.com>
The missing plug-in indicator should be clickable
https://bugs.webkit.org/show_bug.cgi?id=41550
<rdar://problem/8132162>
From an original patch by Kevin Decker.
Reviewed by Darin Adler.
* html/HTMLPlugInElement.cpp:
(WebCore::HTMLPlugInElement::defaultEventHandler):
If the renderer is a RenderEmbeddedWidget showing the missing plug-in
indicator, and the event is a click even, call the ChromeClient's
missingPluginButtonClicked() function.
* page/ChromeClient.h:
(WebCore::ChromeClient::missingPluginButtonClicked):
Declare missingPluginButtonClicked(), and stub the default
implementation.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
Initialize m_showsMissingPluginIndicator.
(WebCore::RenderEmbeddedObject::setShowsMissingPluginIndicator):
Assert that we're not currently showing any replacement text. Set
m_showsMissingPluginIndicator after setting the replacement text.
(WebCore::RenderEmbeddedObject::setShowsCrashedPluginIndicator):
Add the same assert as above.
* rendering/RenderEmbeddedObject.h:
(WebCore::RenderEmbeddedObject::showsMissingPluginIndicator):
Getter for m_showsMissingPluginIndicator.
2010-07-02 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
Move BOM handling out of the lexer and parser
https://bugs.webkit.org/show_bug.cgi?id=41539
Update WebCore to ensure that SourceProviders don't
produce strings with BOMs in them.
* bindings/js/ScriptSourceProvider.h:
(WebCore::ScriptSourceProvider::ScriptSourceProvider):
* bindings/js/StringSourceProvider.h:
(WebCore::StringSourceProvider::StringSourceProvider):
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
(WebCore::CachedScript::script):
* loader/CachedScript.h:
(WebCore::CachedScript::):
CachedScript now stores decoded data with the BOMs stripped,
and caches the presence of BOMs across memory purges.
2010-07-03 Xan Lopez <xlopez@igalia.com>
Include DerivedSources/WebCore before DerivedSources/
Recently DerivedSources generation was changed, with some files no
longer being generated in the toplevel DerivedSources
directory. Since that directory is first in the -I flags the build
can be broken in some cases by including old files unless a 'make
clean' is done. Change the -I order to fix the build in the 32 bit
Release bot.
* GNUmakefile.am:
2010-07-03 Erik Arvidsson <arv@chromium.org>
Reviewed by Ojan Vafai.
Fix issue where a contextmenu event was reporting the wrong target if
the context menu was shown due to pressing the context menu key
(or Shift+F10).
Split sendContextMenuForEvent into one case for keyboard events and use
that when the contextmenu event should be dispatched due to a keypress.
For the keboard case we now use the focused node as the target for the
event and use the clipped rect to determine the position of the menu.
https://bugs.webkit.org/show_bug.cgi?id=38129
Use manual test since DRT does not handle context menu keys.
* manual-tests/win/contextmenu-key.html: Added.
* page/EventHandler.cpp:
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::sendContextMenuEventForKey):
* page/EventHandler.h:
2010-07-03 Dirk Schulze <krit@webkit.org>
Unreviewed sort of XCode project file.
* WebCore.xcodeproj/project.pbxproj:
2010-07-03 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Port Widget
https://bugs.webkit.org/show_bug.cgi?id=41538
Make Widget a dummy class. WebKit Brew MP uses the full screen mode
and does not use the window system introduced in Brew MP.
* platform/Widget.h:
* platform/brew/WidgetBrew.cpp: Added.
(WebCore::Widget::Widget):
(WebCore::Widget::~Widget):
(WebCore::Widget::frameRect):
(WebCore::Widget::setFrameRect):
(WebCore::Widget::setFocus):
(WebCore::Widget::setCursor):
(WebCore::Widget::show):
(WebCore::Widget::hide):
(WebCore::Widget::paint):
(WebCore::Widget::setIsSelected):
2010-07-03 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement AfterFramesetMode
https://bugs.webkit.org/show_bug.cgi?id=41560
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement InFramesetMode
https://bugs.webkit.org/show_bug.cgi?id=41559
Pretty straighforward. We still don't handle character tokens
correctly.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Handle <frameset> InBody
https://bugs.webkit.org/show_bug.cgi?id=41558
Handling the <frameset> tag in the InBody mode is somewhat delicate.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popHTMLBodyElement):
(WebCore::HTMLElementStack::popUntil):
(WebCore::HTMLElementStack::popCommon):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Special handling of <rp> and <rt> tags
https://bugs.webkit.org/show_bug.cgi?id=41557
So sayeth the spec.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement special optgroup processing
https://bugs.webkit.org/show_bug.cgi?id=41556
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Handle <image> in new parser
https://bugs.webkit.org/show_bug.cgi?id=41555
This patch is kind of goofy but apparently how the world works.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::setName):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-02 Kwang Yul Seo <skyul@company100.net>
Reviewed by Alexey Proskuryakov.
Remove extra semicolon at the end of HTMLTreeBuilder::attach
https://bugs.webkit.org/show_bug.cgi?id=41546
This is not critical, but the extra semicolon at the end of HTMLTreeBuilder::attach
causes a warning in RVCT.
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::attach):
2010-07-02 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Darin Adler.
Performance::disconnectFrame() needs to disconnect its children
https://bugs.webkit.org/show_bug.cgi?id=41533
No new tests because no new functionality.
* page/Performance.cpp:
(WebCore::Performance::disconnectFrame):
2010-07-02 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Sam Weinig.
Checking if WTF_USE_JSC is defined before redefining it in config.h
https://bugs.webkit.org/show_bug.cgi?id=41530
* config.h:
2010-07-02 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Add vendor prefix to window.performance
https://bugs.webkit.org/show_bug.cgi?id=41525
No new tests because window.performance tests not landed yet.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::webkitPerformance):
* page/DOMWindow.h:
(WebCore::DOMWindow::optionalWebkitPerformance):
* page/DOMWindow.idl:
2010-07-02 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Oliver Hunt.
Minor fix: Diffuse constant is float (not integer)
https://bugs.webkit.org/show_bug.cgi?id=10412
* svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::parseMappedAttribute):
2010-07-02 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Build fix for GTK+. Try to force a rebuild of the HTMLNames.h
file first by touching HTMLTagNames.in.
* html/HTMLTagNames.in:
2010-07-02 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
RGB colors should be clamped to the 0-255 range
https://bugs.webkit.org/show_bug.cgi?id=39482
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#colors
Test: fast/canvas/canvas-color-clamping.html
* css/CSSParser.cpp:
(WebCore::parseColorInt):
(WebCore::CSSParser::parseColor):
(WebCore::parseColorIntFromValue):
(WebCore::CSSParser::parseColorParameters):
2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62410.
http://trac.webkit.org/changeset/62410
https://bugs.webkit.org/show_bug.cgi?id=41549
accursed last minute changes (Requested by olliej on #webkit).
* bindings/js/ScriptSourceProvider.h:
(WebCore::ScriptSourceProvider::ScriptSourceProvider):
* bindings/js/StringSourceProvider.h:
(WebCore::StringSourceProvider::StringSourceProvider):
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
(WebCore::CachedScript::script):
* loader/CachedScript.h:
2010-07-02 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Further Build fix for GTK+. Also include HTMLElementFactory.h in
the list of dependencies.
* GNUmakefile.am:
2010-07-02 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Build fix for GTK+. *Names.{cpp,h} targets should now include the
header files. Also adds the header files to the generated sources list.
* GNUmakefile.am:
2010-07-02 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Fisher.
DB clean up.
https://bugs.webkit.org/show_bug.cgi?id=41404
1. Made all DatabaseTasks internal classes of Database and made
the Database methods called by those tasks private.
2. Removed the Database::stop{ed}() methods.
3. Removed the code that kept track of open databases from
ScriptExecutionContext (no longer needed).
4. Made minor changes to Database::closeImmediately() to make it
possible for DatabaseThread to call that method instead of
close().
5. Minor fix to DatabaseTracker: addOpenDatabase() should call
OriginQuotaManager::addDatabase() if the origin quota manager
is not tracking this origin.
6. Removed Database::performPolicyChecks(). We already update the
DB size after each transaction, and we enforce a max size for
the DB at the beginning of each transaction.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::stopDatabases):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::hasOpenDatabases):
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::close):
(WebCore::Database::closeImmediately):
* storage/Database.h:
* storage/DatabaseTask.cpp:
(WebCore::DatabaseTask::performTask):
(WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::Database::DatabaseOpenTask::doPerformTask):
(WebCore::Database::DatabaseOpenTask::debugTaskName):
(WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
(WebCore::Database::DatabaseCloseTask::doPerformTask):
(WebCore::Database::DatabaseCloseTask::debugTaskName):
(WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::Database::DatabaseTransactionTask::doPerformTask):
(WebCore::Database::DatabaseTransactionTask::debugTaskName):
(WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::Database::DatabaseTableNamesTask::doPerformTask):
(WebCore::Database::DatabaseTableNamesTask::debugTaskName):
* storage/DatabaseTask.h:
(WebCore::Database::DatabaseOpenTask::create):
(WebCore::Database::DatabaseCloseTask::create):
(WebCore::Database::DatabaseTransactionTask::create):
(WebCore::Database::DatabaseTableNamesTask::create):
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
2010-07-02 Oliver Hunt <oliver@apple.com>
Reviewed by Geoffrey Garen.
Move BOM handling out of the lexer and parser
https://bugs.webkit.org/show_bug.cgi?id=41539
Update WebCore to ensure that SourceProviders don't
produce strings with BOMs in them.
* bindings/js/ScriptSourceProvider.h:
(WebCore::ScriptSourceProvider::ScriptSourceProvider):
* bindings/js/StringSourceProvider.h:
(WebCore::StringSourceProvider::StringSourceProvider):
* loader/CachedScript.cpp:
(WebCore::CachedScript::CachedScript):
(WebCore::CachedScript::script):
* loader/CachedScript.h:
(WebCore::CachedScript::):
CachedScript now stores decoded data with the BOMs stripped,
and caches the presence of BOMs across memory purges.
2010-07-02 Sam Weinig <sam@webkit.org>
Add missing symbol to exports file.
* WebCore.base.exp:
2010-07-02 Abhishek Arya <inferno@chromium.org>
Reviewed by Darin Fisher.
Remove the extra setFailed() call in JPEG decoder to prevent
re-using an already freed object.
https://bugs.webkit.org/show_bug.cgi?id=41487
Test: fast/images/large-size-image-crash.html
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode):
2010-07-02 Peter Beverloo <peter@lvp-media.com>
Reviewed by Maciej Stachowiak.
Add the HTML5 <mark> element. Text content of the element will have
a yellow background color and black text.
Test: fast/html/mark-element.html
Tests for <p> closing, phrasing child content and residual style.
* css/html.css:
(mark):
* html/HTMLElement.cpp:
(WebCore::inlineTagList):
* html/HTMLTagNames.in:
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::getNode):
(WebCore::LegacyHTMLTreeBuilder::isInline):
(WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag):
2010-07-02 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Fix issues in boundary situations for WebGLRenderingContext::drawArrays/drawElements
https://bugs.webkit.org/show_bug.cgi?id=41473
* WebCore.gypi: Add CheckedInt.h.
* WebCore.xcodeproj/project.pbxproj: Add CheckedInt.h.
* html/canvas/CheckedInt.h: Added support of safe integer operations.
(mozilla::CheckedInt_internal::integer_type_manually_recorded_info::):
(mozilla::CheckedInt_internal::is_unsupported_type::):
(mozilla::CheckedInt_internal::):
(mozilla::CheckedInt_internal::integer_traits::):
(mozilla::CheckedInt_internal::integer_traits::min):
(mozilla::CheckedInt_internal::integer_traits::max):
(mozilla::CheckedInt_internal::has_sign_bit):
(mozilla::CheckedInt_internal::binary_complement):
(mozilla::CheckedInt_internal::is_in_range):
(mozilla::CheckedInt_internal::is_add_valid):
(mozilla::CheckedInt_internal::is_sub_valid):
(mozilla::CheckedInt_internal::is_mul_valid):
(mozilla::CheckedInt_internal::is_div_valid):
(mozilla::CheckedInt::CheckedInt):
(mozilla::CheckedInt::value):
(mozilla::CheckedInt::valid):
(mozilla::CheckedInt::operator -):
(mozilla::CheckedInt::operator ==):
(mozilla::CheckedInt::operator !=):
(mozilla::operator /):
(mozilla::cast_to_CheckedInt_impl::run):
(mozilla::):
(mozilla::cast_to_CheckedInt):
(mozilla::operator ==):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative): Fix a bug against 0-size buffer situation.
(WebCore::WebGLRenderingContext::drawArrays): Deal with overflows and count==0 situation.
(WebCore::WebGLRenderingContext::drawElements): Deal with count==0 situation.
2010-07-02 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
linkProgram should fail when vertex/fragment shaders are not both present
https://bugs.webkit.org/show_bug.cgi?id=41380
Test: fast/canvas/webgl/program-test.html
* html/canvas/WebGLProgram.cpp: Add flag for link failure due to missing shaders.
(WebCore::WebGLProgram::WebGLProgram):
* html/canvas/WebGLProgram.h: Add interface for linkFailure flag.
(WebCore::WebGLProgram::isLinkFailureFlagSet):
(WebCore::WebGLProgram::setLinkFailureFlag):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getProgramParameter): Intercept when linkFailureFlag is set.
(WebCore::WebGLRenderingContext::linkProgram): Check if there are missing shaders and don't link if yes.
* html/canvas/WebGLShader.cpp: Cache shader type.
(WebCore::WebGLShader::WebGLShader):
* html/canvas/WebGLShader.h: Ditto.
(WebCore::WebGLShader::getType):
2010-07-02 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Failed on http://philip.html5.org/tests/canvas/suite/tests/2d.drawImage.negativesource.html
Support negative width and height in canvas image draw
* platform/graphics/FloatRect.h:
* platform/graphics/qt/FloatRectQt.cpp:
(WebCore::FloatRect::normalized):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
2010-06-24 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Alexey Proskuryakov.
REGRESSION: Enter does not trigger submit of forms when focus is on select.
https://bugs.webkit.org/show_bug.cgi?id=39532
Restore behavior where hitting "Enter" on a select element attempts to submit
form implicitly.
* dom/SelectElement.cpp:
(WebCore::SelectElement::menuListDefaultEventHandler): Added htmlForm argument,
and attempting to submit implicitly.
(WebCore::SelectElement::listBoxDefaultEventHandler): Ditto.
(WebCore::SelectElement::defaultEventHandler): Plumbed through htmlForm argument.
* dom/SelectElement.h: Added htmlForm argument to method declaration.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::defaultEventHandler): Changed to provide submitting form
as the argument.
2010-07-02 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Support indeterminate checkbox for Linux, and a small fix for Windows
https://bugs.webkit.org/show_bug.cgi?id=41508
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintCheckbox):
Use dedicated images for indeterminate states.
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::determineClassicState):
Do not use DFCS_CHECKED in a case of indeterminate state in
order to have consistent appearance of indeterminate checkbox.
2010-07-02 Brent Fulgham <bfulgham@webkit.org>
Reviewed by Gustavo Noronha Silva.
Fixes https://bugs.webkit.org/show_bug.cgi?id=41323.
Provides an implementation of the 'squiggle' used for
bad grammar or spelling, based on the Pango logic used
by the GTK builds.
No new tests. Covered by LayoutTests/editing/spelling
* WebCore.vcproj/WebCore.vcproj: Add new file holding underline
implementation, set to build only for WinCairo port.
* platform/graphics/cairo/DrawErrorUnderline.cpp: Added.
(drawErrorUnderline): New file containing the squiggle drawing
logic based on the Pango implementation. Placed in its own file
to isolate licenses.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
Have WinCairo build call new 'drawErrorUnderline' implementation.
2010-07-02 Martin Robinson <mrobinson@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GTK] Separate DerivedSources per-project
https://bugs.webkit.org/show_bug.cgi?id=41109
Generate WebCore derived sources in <builddir>/DerivedSources/WebCore.
* GNUmakefile.am:
2010-07-02 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Implement OpenGL ES 2.0 semantics for vertex attribute 0
https://bugs.webkit.org/show_bug.cgi?id=41300
Test: fast/canvas/webgl/gl-bind-attrib-location-test.html
fast/canvas/webgl/gl-vertex-attrib.html
* html/canvas/WebGLProgram.cpp:
(WebCore::WebGLProgram::numActiveAttribLocations): const.
(WebCore::WebGLProgram::getActiveAttribLocation): const.
(WebCore::WebGLProgram::isUsingVertexAttrib0): Determine whether vertex attrib 0 is used by the program.
* html/canvas/WebGLProgram.h: Declare isUsingVertexAttrib0.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with vertex attrib 0.
(WebCore::WebGLRenderingContext::disableVertexAttribArray): Ditto.
(WebCore::WebGLRenderingContext::drawArrays): Ditto.
(WebCore::WebGLRenderingContext::drawElements): Ditto.
(WebCore::WebGLRenderingContext::getVertexAttrib): Use cached value instead of calling glGetVertexAtrtrib.
(WebCore::WebGLRenderingContext::vertexAttrib1f): Validate input, deal with vertex attrib 0.
(WebCore::WebGLRenderingContext::vertexAttrib1fv): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib2f): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib2fv): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib3f): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib3fv): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib4f): Ditto.
(WebCore::WebGLRenderingContext::vertexAttrib4fv): Ditto.
(WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
(WebCore::WebGLRenderingContext::handleNPOTTextures): Move isGLES2Compliant() to caller.
(WebCore::WebGLRenderingContext::vertexAttribImpl): Helper for vertexAttribNfv.
(WebCore::WebGLRenderingContext::initVertexAttrib0): Initialize vertex attrib 0.
(WebCore::WebGLRenderingContext::simulateVertexAttrib0): Simulate vertex attrib 0.
(WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation): Restore states after simulating vertex attrib 0.
* html/canvas/WebGLRenderingContext.h:
(WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState): Tracking full vertex attrib states.
(WebCore::WebGLRenderingContext::VertexAttribState::initValue): Init value to [0,0,0,1].
2010-07-02 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Need to validate the size of the incoming arrays for uniform* functions
https://bugs.webkit.org/show_bug.cgi?id=41383
* html/canvas/WebGLRenderingContext.cpp: Validate input array size.
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform1iv):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform2iv):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform3iv):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniform4iv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
(WebCore::WebGLRenderingContext::validateUniformParameters):
(WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
* html/canvas/WebGLRenderingContext.h: Add helper functions.
2010-07-02 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Canvas arcTo() should draw straight line to p1 if p0, p1 and p2 are collinear
The implementation of PathQt's addArcTo() was not float-safe and also had
a case where it drew an 'infinite' line, which is not part of the spec.
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arcto
We now use qFuzzyCompare() in both cases. The method isPointOnPathBorder()
also had the same problem, and was refactored a bit in the process of fixing
the bug.
Initial patch by Andreas Kling.
https://bugs.webkit.org/show_bug.cgi?id=41412
* platform/graphics/qt/PathQt.cpp:
2010-07-02 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
https://bugs.webkit.org/show_bug.cgi?id=41511
Tests: fast/events/popup-blocked-from-fake-user-gesture.html
http/tests/inspector/change-iframe-src.html
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
from the call stack. Get event directly from hidden property to avoid unnecessary checks.
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::invokeEventHandler):
* bindings/v8/V8HiddenPropertyName.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix tokenization of <!----->
https://bugs.webkit.org/show_bug.cgi?id=41505
I noticed this error when browsing through the HTML5lib failures.
We're adding an extra character to the comment token, contrary to what
the spec says to do.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement processFakePEndTagIfPInScope
https://bugs.webkit.org/show_bug.cgi?id=41503
This is a common idiom because <p> likes to close itself.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processFakePEndTagIfPInScope):
(WebCore::HTMLTreeBuilder::processStartTag):
* html/HTMLTreeBuilder.h:
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement AfterAfterBodyMode
https://bugs.webkit.org/show_bug.cgi?id=41501
In implementing this mode, I noticed a bug in the character processing
of the AfterBodyMode, which I fixed by adding a break statement. Also,
to get one of the new tests to pass, I needed to implement one
notImplemented() in the InBody insertion mode. Yay for testing.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
2010-07-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62371.
http://trac.webkit.org/changeset/62371
https://bugs.webkit.org/show_bug.cgi?id=41515
"Breaks media/controls-drag-timebar.html on 32-Bit Release"
(Requested by philn-tp on #webkit).
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
2010-06-28 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GStreamer] can't seek past maxTimeLoaded value
https://bugs.webkit.org/show_bug.cgi?id=40526
Extended the seekable range to the whole media. This allows video
played with progressive download to be seeked past the current
buffered position.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::updateStates):
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement AfterBodyMode for HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=41500
In the coarse of implementing this state, I ran into an ASSERT in how
</br> tags where handled, which I fixed. Technically, that could be a
separate patch, but it seemed harmless to include it here (with tests).
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::insertCommentOnHTMLHtmlElement):
* html/HTMLTreeBuilder.h:
2010-07-02 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Handle <base> and friends in AfterHeadMode
https://bugs.webkit.org/show_bug.cgi?id=41502
Implement notImplemented() per spec.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
2010-07-01 Oliver Hunt <oliver@apple.com>
Build fix
* dom/Document.h:
2010-07-01 Oliver Hunt <oliver@apple.com>
Reviewed by Maciej Stachowiak.
Add a FixedArray template to encapsulate fixed length arrays
https://bugs.webkit.org/show_bug.cgi?id=41506
Add forwarding header, and replace a few fixed length arrays
with the new FixedArray type.
* ForwardingHeaders/wtf/FixedArray.h: Added.
* dom/Document.h:
* platform/graphics/GlyphMetricsMap.h:
2010-07-01 Simon Fraser <simon.fraser@apple.com>
No review.
Fix a link warning in 32-bit by not explicitly exporting WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly().
* WebCore.AcceleratedCompositing.exp:
2010-07-01 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Add window.performance.navigation namespace
https://bugs.webkit.org/show_bug.cgi?id=41442
Adds window.performance.navigation namespace consisting of ".type"
and ".redirectCount". As part of this change, I renmaed "NavigationTiming"
to just "Timing" to avoid confusion.
No new tests because tests will be added in a subsequent patch when
functionality is added.
* Android.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/Navigation.cpp: Added.
(WebCore::Navigation::Navigation):
(WebCore::Navigation::frame):
(WebCore::Navigation::disconnectFrame):
(WebCore::Navigation::type):
(WebCore::Navigation::redirectCount):
* page/Navigation.h: Added.
(WebCore::Navigation::create):
* page/Navigation.idl: Added.
* page/NavigationTiming.cpp: Removed.
* page/NavigationTiming.h: Removed.
* page/NavigationTiming.idl: Removed.
* page/Performance.cpp:
(WebCore::Performance::navigation):
(WebCore::Performance::timing):
* page/Performance.h:
* page/Performance.idl:
* page/Timing.cpp: Added.
(WebCore::Timing::Timing):
(WebCore::Timing::frame):
(WebCore::Timing::disconnectFrame):
(WebCore::Timing::navigationStart):
* page/Timing.h: Added.
(WebCore::Timing::create):
* page/Timing.idl: Added.
2010-07-01 Daniel Cheng <dcheng@chromium.org>
Reviewed by Jian Li.
[chromium] Dragging a link triggers an assert when accessing event.dataTransfer.types
https://bugs.webkit.org/show_bug.cgi?id=41493
ClipboardChromium::writeURL violates ClipboardChromium's assumption that uriList will always
be non-empty if url is valid.
No new tests.
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::writeURL):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Clamp color stops passed to QGradient to 1.0
[https://bugs.webkit.org/show_bug.cgi?id=41484
Fixes an issue where color stops would be silently dropped from radial gradients.
* platform/graphics/qt/GradientQt.cpp:
(WebCore::Gradient::platformGradient):
2010-07-01 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTokenizer should ASSERT that it never emits a null character
https://bugs.webkit.org/show_bug.cgi?id=41448
No functional change, thus no tests. These ASSERTs would have
caught the coding error which caused the trouble in bug 41436
(which was fixed by bug 41439).
* html/HTMLToken.h:
(WebCore::HTMLToken::beginStartTag):
(WebCore::HTMLToken::beginCharacter):
(WebCore::HTMLToken::beginDOCTYPE):
(WebCore::HTMLToken::appendToName):
(WebCore::HTMLToken::appendToComment):
(WebCore::HTMLToken::appendToAttributeName):
(WebCore::HTMLToken::appendToAttributeValue):
(WebCore::HTMLToken::appendToPublicIdentifier):
(WebCore::HTMLToken::appendToSystemIdentifier):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
Canvas: Don't paint with empty radial gradients
https://bugs.webkit.org/show_bug.cgi?id=41190
If a radial gradient has x0==x1 && y0==y1 && r0==r1, don't paint with it.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fillRect):
* platform/graphics/Gradient.h:
(WebCore::Gradient::isZeroSize):
2010-07-01 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Add interface for network platform to pass up timing information
https://bugs.webkit.org/show_bug.cgi?id=41437
The Web Timing feature requires the network platform to expose detailed
timing information for the main resource. This patch adds that data to
the ResourceResponseBase. Since the 82 bytes of information is only
needed for the main resource, it is a RefPtr to avoid using the memory
for other resource types.
No new tests because no new functionality.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceLoadTiming.h: Added.
(WebCore::ResourceLoadTiming::create):
(WebCore::ResourceLoadTiming::deepCopy):
(WebCore::ResourceLoadTiming::operator==):
(WebCore::ResourceLoadTiming::operator!=):
(WebCore::ResourceLoadTiming::ResourceLoadTiming):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::adopt):
(WebCore::ResourceResponseBase::copyData):
(WebCore::ResourceResponseBase::resourceLoadTiming):
(WebCore::ResourceResponseBase::setResourceLoadTiming):
(WebCore::ResourceResponseBase::compare):
* platform/network/ResourceResponseBase.h:
2010-07-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62321.
http://trac.webkit.org/changeset/62321
https://bugs.webkit.org/show_bug.cgi?id=41494
Broke the non-win builds. (Requested by dumi on #webkit).
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::addOpenDatabase):
(WebCore::ScriptExecutionContext::removeOpenDatabase):
(WebCore::ScriptExecutionContext::stopDatabases):
* dom/ScriptExecutionContext.h:
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::ContextRemoveOpenDatabaseTask::create):
(WebCore::ContextRemoveOpenDatabaseTask::performTask):
(WebCore::ContextRemoveOpenDatabaseTask::isCleanupTask):
(WebCore::ContextRemoveOpenDatabaseTask::ContextRemoveOpenDatabaseTask):
(WebCore::Database::close):
(WebCore::Database::closeImmediately):
(WebCore::Database::stop):
(WebCore::Database::performPolicyChecks):
* storage/Database.h:
(WebCore::Database::):
(WebCore::Database::stopped):
* storage/DatabaseTask.cpp:
(WebCore::DatabaseTask::performTask):
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
(WebCore::DatabaseOpenTask::debugTaskName):
(WebCore::DatabaseCloseTask::DatabaseCloseTask):
(WebCore::DatabaseCloseTask::doPerformTask):
(WebCore::DatabaseCloseTask::debugTaskName):
(WebCore::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::~DatabaseTransactionTask):
(WebCore::DatabaseTransactionTask::doPerformTask):
(WebCore::DatabaseTransactionTask::debugTaskName):
(WebCore::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::DatabaseTableNamesTask::doPerformTask):
(WebCore::DatabaseTableNamesTask::debugTaskName):
* storage/DatabaseTask.h:
(WebCore::DatabaseOpenTask::create):
(WebCore::DatabaseCloseTask::create):
(WebCore::DatabaseTransactionTask::create):
(WebCore::DatabaseTableNamesTask::create):
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
2010-07-01 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Stop using GdkRegion in 3.x mode
https://bugs.webkit.org/show_bug.cgi?id=41463
Make us compile without using GdkRegion, since it's gone from GTK+
3.x.
* platform/graphics/IntRect.h:
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawFocusRing):
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::cairo_region_shrink):
(WebCore::Font::drawComplexText):
* platform/gtk/GtkPluginWidget.cpp:
(WebCore::GtkPluginWidget::paint):
* platform/gtk/RenderThemeGtk.h:
* platform/gtk/ScrollbarGtk.cpp:
(ScrollbarGtk::paint):
2010-06-30 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Fisher.
DB clean up.
https://bugs.webkit.org/show_bug.cgi?id=41404
1. Made all DatabaseTasks internal classes of Database and made
the Database methods called by those tasks private.
2. Removed the Database::stop{ed}() methods.
3. Removed the code that kept track of open databases from
ScriptExecutionContext (no longer needed).
4. Made minor changes to Database::closeImmediately() to make it
possible for DatabaseThread to call that method instead of
close().
5. Minor fix to DatabaseTracker: addOpenDatabase() should call
OriginQuotaManager::addDatabase() if the origin quota manager
is not tracking this origin.
6. Removed Database::performPolicyChecks(). We already update the
DB size after each transaction, and we enforce a max size for
the DB at the beginning of each transaction.
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::stopDatabases):
* dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::hasOpenDatabases):
* storage/Database.cpp:
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::markAsDeletedAndClose):
(WebCore::Database::close):
(WebCore::Database::closeImmediately):
* storage/Database.h:
* storage/DatabaseTask.cpp:
(WebCore::DatabaseTask::performTask):
(WebCore::Database::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::Database::DatabaseOpenTask::doPerformTask):
(WebCore::Database::DatabaseOpenTask::debugTaskName):
(WebCore::Database::DatabaseCloseTask::DatabaseCloseTask):
(WebCore::Database::DatabaseCloseTask::doPerformTask):
(WebCore::Database::DatabaseCloseTask::debugTaskName):
(WebCore::Database::DatabaseTransactionTask::DatabaseTransactionTask):
(WebCore::Database::DatabaseTransactionTask::doPerformTask):
(WebCore::Database::DatabaseTransactionTask::debugTaskName):
(WebCore::Database::DatabaseTableNamesTask::DatabaseTableNamesTask):
(WebCore::Database::DatabaseTableNamesTask::doPerformTask):
(WebCore::Database::DatabaseTableNamesTask::debugTaskName):
* storage/DatabaseTask.h:
(WebCore::Database::DatabaseOpenTask::create):
(WebCore::Database::DatabaseCloseTask::create):
(WebCore::Database::DatabaseTransactionTask::create):
(WebCore::Database::DatabaseTableNamesTask::create):
* storage/DatabaseThread.cpp:
(WebCore::DatabaseThread::databaseThread):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSQL):
(WebCore::SQLTransaction::checkAndHandleClosedDatabase):
2010-07-01 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Support indeterminate checkbox for Windows
https://bugs.webkit.org/show_bug.cgi?id=41444
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::determineState):
Check isIndeterminate() and set an appropriate flag value.
2010-07-01 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=41488
<rdar://problem/7487420> Crash in SubresourceLoader::create when load is initiated from plug-in destructor
Test: plugins/js-from-destroy.html
* loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::create): Null check active
document loader.
2010-07-01 Andy Estes <aestes@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8113003> Correctly fire beforeload events for images
added to the DOM using .innerHTML.
https://bugs.webkit.org/show_bug.cgi?id=40919
Test: fast/dom/beforeload/image-before-load-innerHTML.html
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::write): Do not fire synchronous
image beforeload events immediately after parsing a document fragment.
Let the events fire later, giving the fragment time to potentially be
inserted into the document.
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
Canvas: bezierCurveTo() and quadraticCurveTo() must ensure subpaths
https://bugs.webkit.org/show_bug.cgi?id=41192
If the current path is empty, bezierCurveTo() and quadraticCurveTo() will now
move to the (first) control point before adding the curve.
Spec links:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-beziercurveto
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-quadraticcurveto
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::quadraticCurveTo):
(WebCore::CanvasRenderingContext2D::bezierCurveTo):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas element cannot have negative width or height (HTML5 spec 4.8.11)
https://bugs.webkit.org/show_bug.cgi?id=39149
If assigned a negative value, it should default to 300 for width and 150 for height.
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#attr-canvas-width
Test: fast/canvas/canvas-negative-size.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::reset):
2010-07-01 Darin Adler <darin@apple.com>
Reviewed by Steve Falkenburg.
Turn on adoptRef assertion for TreeShared.
* platform/TreeShared.h: Remove LOOSE_TREE_SHARED and all the ifdefs.
Actually, I used LOOSE_REF_COUNTED by accident in a few places, but
removing them all now.
* rendering/ShadowElement.cpp:
(WebCore::ShadowBlockElement::create): Added adoptRef. This was a
storage leak before, probably recently introduced r61324.
(WebCore::ShadowInputElement::create): Ditto.
2010-07-01 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Only include the geolocation IDL in the GObject DOM bindings set
if geolocation is enabled.
* GNUmakefile.am:
2010-07-01 Timothy Hatcher <timothy@apple.com>
Provide a WebView preference to disable DNS prefetching.
https://bugs.webkit.org/show_bug.cgi?id=28825
rdar://problem/7181249
Reviewed by Darin Adler.
* WebCore.base.exp: Added Settings::setDNSPrefetchingEnabled.
* dom/Document.cpp:
(WebCore::Document::initDNSPrefetch): Check settings->dnsPrefetchingEnabled().
* page/Settings.cpp:
(WebCore::Settings::Settings): Set m_dnsPrefetchingEnabled to true.
(WebCore::Settings::setDNSPrefetchingEnabled): Added. Set m_dnsPrefetchingEnabled.
* page/Settings.h:
(WebCore::Settings::dnsPrefetchingEnabled): Added. Return m_dnsPrefetchingEnabled.
2010-07-01 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
Get accelerated compositing working with webkit2
https://bugs.webkit.org/show_bug.cgi?id=41084
Step 2: add a method, syncCompositingStateForThisLayerOnly(), to GraphicsLayer to commit
batched changes non-recursively. This allows us to use GraphicsLayer in places where we
don't want to kick off a recursive commit of the entire tree.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::syncCompositingStateForThisLayerOnly):
* platform/graphics/mac/GraphicsLayerCA.h:
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::syncCompositingStateForThisLayerOnly):
* WebCore.AcceleratedCompositing.exp: Export the new method for use in WebKit2.
2010-07-01 Simon Fraser <simon.fraser@apple.com>
Reviewed by Sam Weinig.
Get accelerated compositing working with webkit2
https://bugs.webkit.org/show_bug.cgi?id=41084
Step 1: add a new .exp file for WebCore, which exports symbols only when USE(ACCELERATED_COMPOSITING)
is defined.
Also export WebCore::FloatSize::FloatSize(WebCore::IntSize const&) from WebCore.
* DerivedSources.make:
* WebCore.AcceleratedCompositing.exp: Added.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
2010-07-01 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8148656> <https://bugs.webkit.org/show_bug.cgi?id=41431>
REGRESSION (r49411): Various crashes due to JavaScript execution during plug-in destruction
Test: plugins/write-xssauditor-from-destroy.html
Fix specific known cases that also crash in same process case. I don't know if there is
any rule for when documentLoader should be checked for being null, it looks like a mess.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::referrer):
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::findInRequest):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
The HTML5 canvas 2d.drawImage.zerocanvas test does not pass
https://bugs.webkit.org/show_bug.cgi?id=40271
Throw INVALID_STATE_ERR when attempting to draw a canvas with zero width or height.
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::drawImage): Call setDOMException after drawImage(canvas, x, y)
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Oliver Hunt.
[Qt] Canvas: clip() should use non-zero winding rule
https://bugs.webkit.org/show_bug.cgi?id=41466
Use non-zero winding number rule when clipping a GraphicsContext from canvas.
Fixes appearance of the "pill" in the web inspector.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::canvasClip):
2010-07-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62246.
http://trac.webkit.org/changeset/62246
https://bugs.webkit.org/show_bug.cgi?id=41470
"Worker tests are broken in Chromium" (Requested by yurys on
#webkit).
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::processingUserGesture):
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::invokeEventHandler):
* bindings/v8/V8HiddenPropertyName.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
2010-07-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
Canvas: Exception erroneously thrown for drawImage() when image.complete=false
https://bugs.webkit.org/show_bug.cgi?id=33968
Do nothing in drawImage() if called with an image whose 'complete'
attribute is false, or a video whose readyState is either HAVE_NOTHING
or HAVE_METADATA.
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-drawimage
Test: fast/canvas/canvas-drawImage-incomplete.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
2010-07-01 Justin Schuh <jschuh@chromium.org>
Reviewed by Dan Bernstein.
Prevent crash on counter destruction
https://bugs.webkit.org/show_bug.cgi?id=40032
Added counter destruction to RenderWidget::destroy()
Test: fast/css/counters/destroy-counter-crash.html
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::destroy):
2010-07-01 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Unreviewed build fix after r62215.
No new functionality, so no new tests.
* CMakeLists.txt: Add missing files and re-sort.
2010-07-01 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Remove an unneeded assert.
This assert is triggered for example while showing the falling leaves demo.
GraphicsLayerQtImpl::toGraphicsLayerQtImpl asserts that its input
pointer is null. Looking at the uses of this method it seems like
it is expected to return null if a null pointer is given to it.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::toGraphicsLayerQtImpl):
2010-06-16 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix qmake vcproj generation for QtWebKit.
qmake use TARGET=/LIBS+= -lTARGET to create dependencies
between projects in a subdir template.
Since when compiling outside of Qt we hijack the target name of
QtWebKit to add the configuration and version suffix to the binary
filename, qmake can't establish the WebCore project as a dependency
to QtTestBrowser.
This patch makes sure that the target is not hijacked on the
first of the three passes where the dependencies are determined.
* WebCore.pro:
2010-07-01 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
SVGRenderStyle::diff() is missing
https://bugs.webkit.org/show_bug.cgi?id=41455
Don't just return StyleDifferenceLayout when two SVGRenderStyle objects differ.
Figure out when to repaint, and as last resort do a relayout.
Lively Kernel doesn't do any relayouts anymore, same for lots of demos in the IE9 testcenter.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff):
* rendering/style/SVGRenderStyle.cpp:
(WebCore::SVGRenderStyle::diff):
* rendering/style/SVGRenderStyle.h:
2010-07-01 Antti Koivisto <koivisto@iki.fi>
Revert accidental commit.
* platform/network/qt/ResourceRequestQt.cpp:
(WebCore::ResourceRequest::toNetworkRequest):
2010-07-01 Patrick Gansterer <paroga@paroga.com>
Reviewed by Nikolas Zimmermann.
Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196.
https://bugs.webkit.org/show_bug.cgi?id=40984
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::finishRenderSVGContent):
2010-07-04 Patrick Gansterer <paroga@paroga.com>
Reviewed by Dirk Schulze.
Buildfix for !ENABLE(FILTERS) after r62238.
https://bugs.webkit.org/show_bug.cgi?id=41456
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::prepareToRenderSVGContent):
2010-07-01 MORITA Hajime <morrita@google.com>
Unreviewed build fix.
* rendering/RenderInputSpeech.cpp:
(WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
* rendering/RenderInputSpeech.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintInputFieldSpeechButton):
* rendering/RenderTheme.h:
2010-07-01 Satish Sampath <satish@chromium.org>
Reviewed by Kent Tamura.
Rendering the speech button in input elements.
https://bugs.webkit.org/show_bug.cgi?id=40984
The button currently has only one state and rendered as an image on all platforms. Subsequent
patches will add user input handling and more states + rendering code to the button. The
button's appearance can be customized by individual ports in their RenderTheme implementation
if required.
Tests: platform/mac/fast/forms/input-appearance-numberandspeech.html
platform/mac/fast/forms/input-appearance-searchandspeech.html
platform/mac/fast/forms/input-appearance-speechbutton.html
* GNUmakefile.am:
* Resources/inputSpeech.png: Added.
* Resources/inputSpeech.tiff: Added. Used by the Mac implementation.
* WebCore.gypi:
* WebCore.pro:
* WebCore.qrc:
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/qt/ImageQt.cpp:
(loadResourcePixmap): Load the speech button images for Qt port.
* rendering/RenderInputSpeech.cpp: Added.
(WebCore::RenderInputSpeech::adjustInputFieldSpeechButtonStyle): Sets the button's dimensions.
(WebCore::RenderInputSpeech::paintInputFieldSpeechButton):
* rendering/RenderInputSpeech.h: Added.
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::forwardEvent):
(WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): Create the speech button.
(WebCore::RenderTextControlSingleLine::createInnerBlockStyle):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle):
(WebCore::RenderTheme::paintInputFieldSpeechButton):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintSearchFieldCancelButton): Get cancel button to render to the left of
speech button when enabled.
2010-07-01 Mario Sanchez Prada <msanchez@igalia.com>
Reviewed by Xan Lopez.
[GTK] Extra nullcheck needed at SelectionControllerGtk.cpp
https://bugs.webkit.org/show_bug.cgi?id=41447
Extra null check added.
* editing/gtk/SelectionControllerGtk.cpp:
(WebCore::SelectionController::notifyAccessibilityForSelectionChange):
2010-07-01 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Adam Barth.
[v8] Web Inspector: inspected page crashes on attempt to change iframe's src attribute
https://bugs.webkit.org/show_bug.cgi?id=41350
Tests: fast/events/popup-blocked-from-fake-user-gesture.html
http/tests/inspector/change-iframe-src.html
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::processingUserGesture): use V8Proxy from the ScriptController instead of one
from the call stack. Get event directly from hidden property to avoid unnecessary checks.
* bindings/v8/V8AbstractEventListener.cpp:
(WebCore::V8AbstractEventListener::invokeEventHandler):
* bindings/v8/V8HiddenPropertyName.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::eventAccessorGetter):
(WebCore::V8DOMWindow::eventAccessorSetter):
2010-07-01 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
RenderSVGContainer/RenderSVGRoot report wrong strokeBoundingBox()
https://bugs.webkit.org/show_bug.cgi?id=41450
strokeBoundingBox() was reporting the repaintRectInLocalCoordinates() for children of a container,
instead of the actual strokeBoundingBox(). Only visible in WebInspector when looking at a container
which has a resource applied and contains a children which also has a resource applied.
Doesn't affect any test results.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::objectBoundingBox):
(WebCore::RenderSVGContainer::strokeBoundingBox):
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::objectBoundingBox): Deinlined this functions, it's virtual so there's no gain.
(WebCore::RenderSVGRoot::strokeBoundingBox): Ditto.
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
* rendering/RenderSVGRoot.h:
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::computeContainerBoundingBox):
* rendering/SVGRenderSupport.h: Add enum controlling the mode of container bounding box mode calculation.
2010-07-01 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Nikolas Zimmermann.
Implementing feConvolveMatrix svg filter
https://bugs.webkit.org/show_bug.cgi?id=5861
The implementation is optimized for speed, and uses
multiple algorithms for different parts of the image.
See SVGFEConvolveMatrixElement.cpp for a detailed
description.
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build):
* svg/graphics/filters/SVGFEConvolveMatrix.cpp:
(WebCore::clampRGBAValue):
(WebCore::FEConvolveMatrix::fastSetInteriorPixels):
(WebCore::FEConvolveMatrix::getPixelValue):
(WebCore::FEConvolveMatrix::fastSetOuterPixels):
(WebCore::FEConvolveMatrix::setInteriorPixels):
(WebCore::FEConvolveMatrix::setOuterPixels):
(WebCore::FEConvolveMatrix::apply):
* svg/graphics/filters/SVGFEConvolveMatrix.h:
(WebCore::FEConvolveMatrix::uniteChildEffectSubregions):
2010-07-01 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Abstract 'a'-'z' checks into a function
https://bugs.webkit.org/show_bug.cgi?id=41438
Hopefully this version is more readable.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
2010-07-01 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Parameter names in frame src URLs parsed incorrectly if resembles HTML entity code followed by underscore
https://bugs.webkit.org/show_bug.cgi?id=41345
Apparently whether an HTML entity requires a trailing semicolon varies
depending on the entity. The full table is in the spec:
http://www.whatwg.org/specs/web-apps/current-work/multipage/named-character-references.html#named-character-references
I believe branch added in this patch is accurate. At some point, I'll
add a full test suite for all the named entities.
* html/HTMLEntityParser.cpp:
(WebCore::consumeHTMLEntity):
2010-07-01 Eric Seidel <eric@webkit.org>
Unreviewed. Fix paste-o in Gtk build file.
Split out HTMLFormattingElementList into its own file
https://bugs.webkit.org/show_bug.cgi?id=41440
* GNUmakefile.am:
2010-07-01 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel & Dirk Schulze.
Performance regression for setting content of <text> in SVG
https://bugs.webkit.org/show_bug.cgi?id=36564
Dramatically reducing the number of repaintRectInLocalCoordinates() calls needed while painting.
Do not pass the repaintRect to prepareToRenderSVGContent, only calculate it if opacity < 1 or -webkit-svg-shadow is set.
Most noticeable is that RenderSVGRoot had to visit all children, before actually painting, just to calculate the repaint rect.
And as RenderSVGRoot never carries shadow or opacity it was completly useless.
RenderSVGContainer also called repaintRectInLocalCoordinates, but the result is only needed when painting outlines, which is a rare case.
These modifications fix the performance regression and the number of repaintRectInLocalCoordinate calls for the complex example in
the bug report with 500 runs shrinks from 1.7 million calls to less than 105.000.
50 runs without the patch: ~ 520.8ms
50 runs with the patch : ~ 501.8ms
The test calls setTimeout(0) 50 times, that already accounts for the 500ms. So setting the content of a <text>
element withs clippers applied, is very cheap now.
Also remove the need to pass in a filter argument to prepareToRenderSVGContent/finishRenderSVGContent, it can easily be grabbed
of the cache - just like all other resources are handled, simplifying the code.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint):
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
* rendering/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::prepareToRenderSVGContent):
(WebCore::SVGRenderSupport::finishRenderSVGContent):
* rendering/SVGRenderSupport.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint):
2010-07-01 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Split out HTMLFormattingElementList into its own file
https://bugs.webkit.org/show_bug.cgi?id=41440
No functional changes, thus no tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
* html/HTMLTreeBuilder.h:
2010-07-01 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
BogusCommentState should come in from the cold
https://bugs.webkit.org/show_bug.cgi?id=41439
The BogusCommentState has always been wrong. The proximate issue is
that it didn't handle resuming correctly when parsing a partial input
stream. Now that we have EOF working properly, we can actually
implement this state correctly.
We need to distinguish when we enter this state from when we continue
in this state. We could do that with a branch for each character, but
it seemed easier to split the state in two, even though that leaves us
with one more state in our tokenizer than we have in the HTML5 spec.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::):
2010-06-30 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTMLTokenizer's whitespace checks are very redundant
https://bugs.webkit.org/show_bug.cgi?id=41434
This patch adds isTokenizerWhitespace, which replaces a lot of
redundant logic in nextToken.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
2010-06-30 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Crash when uploading document to Google Docs
https://bugs.webkit.org/show_bug.cgi?id=40795
Fix bug where the local file wasn't opened (for POSTing)
if it were the first element in the form.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::FormDataIODevice::FormDataIODevice):
(WebCore::FormDataIODevice::moveToNextElement):
(WebCore::FormDataIODevice::openFileForCurrentElement):
* platform/network/qt/QNetworkReplyHandler.h:
2010-06-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement generateImpliedEndTags and deploy to steps which were blocked on it
https://bugs.webkit.org/show_bug.cgi?id=41432
This fixes one subtest in html5lib/runner.html and positively
effects a couple others.
More code sharing will be needed here. For the moment
we're using copy/paste code, but that will soon be shared.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::generateImpliedEndTagsWithExclusion):
(WebCore::HTMLTreeBuilder::generateImpliedEndTags):
* html/HTMLTreeBuilder.h:
2010-06-30 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed buildfix after r62196 and r62214.
* html/HTMLElementStack.cpp: Put !ENABLE(SVG) guard instead of
!ENABLE(SVG_FOREIGN_OBJECT) around include of SVGNames.h.
2010-06-30 Sam Weinig <sam@webkit.org>
Really fix the windows build.
* bindings/js/JSBindingsAllInOne.cpp:
2010-06-30 Sam Weinig <sam@webkit.org>
Another Chromium build fix.
* page/DOMWindow.idl:
2010-06-30 Sam Weinig <sam@webkit.org>
Fix Chromium build.
* WebCore.gyp/WebCore.gyp:
2010-06-30 Sam Weinig <sam@webkit.org>
Fix Windows build.
* bindings/js/JSBindingsAllInOne.cpp:
2010-06-30 Sam Weinig <sam@webkit.org>
Fix Gtk build.
* GNUmakefile.am:
2010-06-29 Sam Weinig <sam@webkit.org>
Reviewed by Dan Bernstein.
Patch for https://bugs.webkit.org/show_bug.cgi?id=41146
<rdar://problem/8126069>
Implement the .dataset DOM property
Tests: fast/dom/dataset-xhtml.xhtml
fast/dom/dataset.html
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMStringMapCustom.cpp: Added.
(WebCore::JSDOMStringMap::canGetItemsForName):
(WebCore::JSDOMStringMap::nameGetter):
(WebCore::JSDOMStringMap::getOwnPropertyNames):
(WebCore::JSDOMStringMap::deleteProperty):
(WebCore::JSDOMStringMap::putDelegate):
* bindings/js/JSDOMStringMapCustom.h: Added.
* dom/DOMStringMap.cpp: Added.
(WebCore::DOMStringMap::~DOMStringMap):
* dom/DOMStringMap.h: Added.
(WebCore::DOMStringMap::DOMStringMap):
* dom/DOMStringMap.idl: Added.
* dom/DatasetDOMStringMap.cpp: Added.
(WebCore::isValidAttributeName):
(WebCore::convertAttributeNameToPropertyName):
(WebCore::propertyNameMatchesAttributeName):
(WebCore::isValidPropertyName):
(WebCore::convertPropertyNameToAttributeName):
(WebCore::DatasetDOMStringMap::ref):
(WebCore::DatasetDOMStringMap::deref):
(WebCore::DatasetDOMStringMap::getNames):
(WebCore::DatasetDOMStringMap::item):
(WebCore::DatasetDOMStringMap::contains):
(WebCore::DatasetDOMStringMap::setItem):
(WebCore::DatasetDOMStringMap::deleteItem):
* dom/DatasetDOMStringMap.h: Added.
(WebCore::DatasetDOMStringMap::create):
(WebCore::DatasetDOMStringMap::DatasetDOMStringMap):
* dom/Element.cpp:
(WebCore::Element::dataset):
* dom/Element.h:
* dom/Element.idl:
* dom/ElementRareData.h:
* page/DOMWindow.idl:
2010-06-30 Darin Adler <darin@apple.com>
More Qt build fix.
* html/HTMLElementStack.cpp: Put !ENABLE(SVG_FOREIGN_OBJECT) around
include of SVGNames.h too.
2010-06-30 Darin Adler <darin@apple.com>
Reviewed by Adam Barth.
Add assertion, off by default, for when you forget to do adoptRef
https://bugs.webkit.org/show_bug.cgi?id=41422
* platform/TreeShared.h: Added code to require adoption and assert if
you don't call adoptRef. For now, it is turned off because of the
LOOSE_TREE_SHARED define in this header. Later we can turn it on
once we get everything working without asserting. Note also that it
only works for objects with an initial reference count of 1.
2010-06-30 Patrick Gansterer <paroga@paroga.com>
Reviewed by Darin Adler.
Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r62196.
https://bugs.webkit.org/show_bug.cgi?id=41429
* html/HTMLElementStack.cpp:
2010-06-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add new popUntil(tagName) function and deploy
https://bugs.webkit.org/show_bug.cgi?id=41405
Add a new popUntil function to share some common code
between states. There is more code to share here, but this
is a start.
I also filled in a couple similar states to these with the
hope of sharing more code, but decided to wait for a later
patch.
No test changes, since this code doesn't do enough yet to
pass any more subtests. Lack of generateImpliedEndTags is the main
blocking issue.
* html/HTMLElementStack.cpp:
(WebCore::HTMLElementStack::popUntil):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
2010-06-30 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Unit test for DOM insertion methods
https://bugs.webkit.org/show_bug.cgi?id=40495
Fix typo in custom function detection method.
* bindings/scripts/CodeGeneratorGObject.pm:
2010-06-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement HTML5 "in scope" algorithm and attempt to use it
https://bugs.webkit.org/show_bug.cgi?id=41402
Implemented the 4 needed "in scope" functions for HTML5.
3 for the different sets of scope markers, and one for
doing exact element comparisons instead of tag name searches.
I deployed inScope("body") for </body> and </html> in InBody.
Adds two new (expected) failures, since we're now
switching out of InBody to AfterBody when seeing
</html>. We don't implement AfterBody yet, so
the rest of the content after </html> is ignored.
* html/HTMLElementStack.cpp:
(WebCore::inScopeCommon):
(WebCore::HTMLElementStack::inScope):
(WebCore::HTMLElementStack::inListItemScope):
(WebCore::HTMLElementStack::inTableScope):
* html/HTMLElementStack.h:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processBodyEndTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
2010-06-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Split HTMLElementStack out into its own file
https://bugs.webkit.org/show_bug.cgi?id=41399
No functional change, thus no tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLElementStack.cpp: Added.
(WebCore::HTMLElementStack::ElementRecord::ElementRecord):
(WebCore::HTMLElementStack::ElementRecord::element):
(WebCore::HTMLElementStack::ElementRecord::next):
(WebCore::HTMLElementStack::ElementRecord::releaseNext):
(WebCore::HTMLElementStack::ElementRecord::setNext):
(WebCore::HTMLElementStack::HTMLElementStack):
(WebCore::HTMLElementStack::~HTMLElementStack):
(WebCore::HTMLElementStack::popHTMLHeadElement):
(WebCore::HTMLElementStack::pop):
(WebCore::HTMLElementStack::pushHTMLHtmlElement):
(WebCore::HTMLElementStack::pushHTMLHeadElement):
(WebCore::HTMLElementStack::pushHTMLBodyElement):
(WebCore::HTMLElementStack::push):
(WebCore::HTMLElementStack::top):
(WebCore::HTMLElementStack::removeHTMLHeadElement):
(WebCore::HTMLElementStack::remove):
(WebCore::HTMLElementStack::contains):
(WebCore::HTMLElementStack::inScope):
(WebCore::HTMLElementStack::htmlElement):
(WebCore::HTMLElementStack::headElement):
(WebCore::HTMLElementStack::bodyElement):
(WebCore::HTMLElementStack::pushCommon):
(WebCore::HTMLElementStack::popCommon):
(WebCore::HTMLElementStack::removeNonFirstCommon):
* html/HTMLElementStack.h: Added.
* html/HTMLTreeBuilder.h:
2010-06-30 Kenneth Russell <kbr@google.com>
Reviewed by Oliver Hunt.
WebCore::WebGLArrayInternal::lengthAttrGetter ReadAV@NULL (b1a3e1a3e9d01f17fd493d68eeb2742f)
https://bugs.webkit.org/show_bug.cgi?id=38040
Changed custom ArrayBufferView constructors to create a
fully-initialized, zero-length array when called with zero
arguments. This is the simplest fix which works identically in
both the JSC and V8 bindings.
Test: fast/canvas/webgl/array-buffer-view-crash.html
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore::constructArrayBufferView):
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
2010-06-30 Victor Wang <victorw@chromium.org>
Reviewed by Darin Fisher.
[chromium] update webcore gyp to use v8 dll for chromium multi dll build.
https://bugs.webkit.org/show_bug.cgi?id=41376
* WebCore.gyp/WebCore.gyp:
2010-06-30 Jeremy Moskovich <jeremy@chromium.org>
Reviewed by Dimitri Glazkov.
[Chromium] Add OOP font loading to FontPlatformDataChromiumMac.
On OS X, with font management software installed. Fonts
can reside in an arbitrary path on disk which is blocked by
Chromium's sandbox.
This change adds hooks to FontPlaformData which allow cross-process
font loading in case of need.
https://bugs.webkit.org/show_bug.cgi?id=41148
Not possible to test - requires sandboxing which DRT doesn't support.
* WebCore.gypi:
* platform/graphics/chromium/FontPlatformDataChromiumMac.mm: Added.
(WebCore::FontPlatformData::FontPlatformData):
(WebCore::FontPlatformData::~FontPlatformData):
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::setFont):
(WebCore::FontPlatformData::roundsGlyphAdvances):
(WebCore::FontPlatformData::allowsLigatures):
(WebCore::FontPlatformData::description):
2010-06-30 Jeremy Moskovich <jeremy@chromium.org>
Reviewed by Dan Bernstein.
Minor tweaks to FontPlatformDataMac & SimpleFontDataMac.mm
* Avoid an extra FontPlatformData copy in SimpleFontDataMac.mm
* Fix a typo in FontPlatformDataMac.mm
https://bugs.webkit.org/show_bug.cgi?id=41152
No behavior changes so no new tests.
* platform/graphics/mac/FontPlatformDataMac.mm:
(WebCore::FontPlatformData::description):
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::copyFontTableForTag):
2010-06-30 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Make "disallow multiple calls to SetWindow" on windowed plugins a quirk
https://bugs.webkit.org/show_bug.cgi?id=41407
Only disallow calling SetWindow more than once if we're using Flash 9 or older.
This fixes resizing of YouTube videos via the player's own button.
Removed copy-pasted logic in PluginViewGtk since the issue only exists
when running Flash with a non-Gtk toolkit.
* plugins/PluginPackage.cpp:
(WebCore::PluginPackage::determineQuirks):
* plugins/PluginQuirkSet.h:
(WebCore::):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::setNPWindowIfNeeded): Remove unnecessary logic copy-pasted from PluginViewQt.
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
2010-06-30 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Antti Koivisto.
[Qt, Gtk, Symbian] Mind the semantics of NPRect for windowed plugin clip rects
https://bugs.webkit.org/show_bug.cgi?id=41406
NPRect has right/bottom instead of width/height.
This was fixed in PluginViewMac with http://trac.webkit.org/changeset/45815
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
* plugins/symbian/PluginViewSymbian.cpp:
(WebCore::PluginView::setNPWindowIfNeeded):
2010-06-30 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Simon Fraser.
Spatial Navigation: make elements in inner frames nested more than 1 level deep focusable
https://bugs.webkit.org/show_bug.cgi?id=41160
Patch addresses the problem of spatial navigation not work properly with nested
inner frames by adding the isNodeDeepDescendantOfDocument method. It recursively checks
if a give node is descendant of a given document or any parent of it.
Test: fast/events/spatial-navigation/snav-iframe-nested.html
* page/FocusController.cpp:
(WebCore::FocusController::deepFindFocusableNodeInDirection):
* page/SpatialNavigation.cpp:
(WebCore::isNodeDeepDescendantOfDocument):
* page/SpatialNavigation.h:
2010-06-30 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTMLTokenizer should use fewer macros
https://bugs.webkit.org/show_bug.cgi?id=41397
Macros are sadness. Inline functions are the new hotness.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::processEntity):
(WebCore::HTMLTokenizer::emitAndResumeIn):
(WebCore::HTMLTokenizer::emitAndReconsumeIn):
(WebCore::HTMLTokenizer::emitEndOfFile):
(WebCore::HTMLTokenizer::flushBufferedEndTag):
(WebCore::HTMLTokenizer::flushEmitAndResumeIn):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::bufferCharacter):
(WebCore::HTMLTokenizer::bufferCodePoint):
(WebCore::HTMLTokenizer::bufferParseError):
(WebCore::HTMLTokenizer::bufferCurrentToken):
(WebCore::HTMLTokenizer::bufferEndOfFile):
* html/HTMLTokenizer.h:
2010-06-30 Justin Schuh <jschuh@chromium.org>
Reviewed by Adam Barth.
Remove dead binding code
https://bugs.webkit.org/show_bug.cgi?id=41388
Removed BindingElement because it was obsoleted by r59866.
* WebCore.gypi:
* bindings/generic/BindingElement.h: Removed.
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8Binding.h:
* bindings/v8/custom/V8DatabaseCustom.cpp:
* bindings/v8/custom/V8DatabaseSyncCustom.cpp:
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
2010-06-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTokenizer needs EndOfFile support
https://bugs.webkit.org/show_bug.cgi?id=41344
EndOfFile support uncovered a bug in our implementation of finish().
finish() may be called more than once if the first call does not
result in end() being called (and parsing thus actually stopping).
SegmentedString::close() should have ASSERTed that it was not already
closed when close() is called. I've added such an assert now.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finish):
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::close):
* platform/text/SegmentedString.h:
2010-06-29 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTMLTokenizer needs EndOfFile support
https://bugs.webkit.org/show_bug.cgi?id=41344
We're using \0 as the EndOfFile marker as HTML5 replaces
all other \0 with \0xFFFD. Added some special case logic
to InputStreamPreprocessor::peek not to replace \0 when
its being used at the end of a stream.
This fixed 60 subtests in html5lib/runner.html.
There are still at least two states (BogusCommentState and
CDATASectionState) which do not have proper EOF support.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::finishWasCalled):
* html/HTMLInputStream.h:
(WebCore::HTMLInputStream::markEndOfFile):
(WebCore::HTMLInputStream::haveSeenEndOfFile):
* html/HTMLToken.h:
(WebCore::HTMLToken::makeEndOfFile):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::emitEndOfFile):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::InputStreamPreprocessor::peek):
(WebCore::HTMLTokenizer::InputStreamPreprocessor::shouldTreatNullAsEndOfFileMarker):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Teach HTML5TreeBuilder how to merge attributes from extra html/body elements
https://bugs.webkit.org/show_bug.cgi?id=41337
Had to teach ElementStack to store pointers to html, head, and body
elements.
This fixed a few tests in LayoutTests/html5lib.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
(WebCore::HTMLTreeBuilder::mergeAttributesFromTokenIntoElement):
(WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::createElementAndAttachToCurrent):
(WebCore::HTMLTreeBuilder::insertHTMLHtmlElement):
(WebCore::HTMLTreeBuilder::insertHTMLHeadElement):
(WebCore::HTMLTreeBuilder::insertHTMLBodyElement):
(WebCore::HTMLTreeBuilder::insertElement):
(WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
(WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::ElementStack):
(WebCore::HTMLTreeBuilder::ElementStack::popHTMLHeadElement):
(WebCore::HTMLTreeBuilder::ElementStack::pop):
(WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHtmlElement):
(WebCore::HTMLTreeBuilder::ElementStack::pushHTMLHeadElement):
(WebCore::HTMLTreeBuilder::ElementStack::pushHTMLBodyElement):
(WebCore::HTMLTreeBuilder::ElementStack::push):
(WebCore::HTMLTreeBuilder::ElementStack::removeHTMLHeadElement):
(WebCore::HTMLTreeBuilder::ElementStack::remove):
(WebCore::HTMLTreeBuilder::ElementStack::htmlElement):
(WebCore::HTMLTreeBuilder::ElementStack::headElement):
(WebCore::HTMLTreeBuilder::ElementStack::bodyElement):
(WebCore::HTMLTreeBuilder::ElementStack::pushCommon):
(WebCore::HTMLTreeBuilder::ElementStack::popCommon):
(WebCore::HTMLTreeBuilder::ElementStack::removeNonFirstCommon):
2010-06-30 José Millán Soto <jmillan@igalia.com>
Reviewed by Xan Lopez.
[Gtk] Text attributes not exposed
https://bugs.webkit.org/show_bug.cgi?id=25528
Implemented the get_run_attributes and get_default_attributes
functions for the ATK_TEXT role.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(getAttributeSetForAccessibilityObject):
(compareAttribute):
(attributeSetDifference):
(accessibilityObjectLength):
(getAccessibilityObjectForOffset):
(getRunAttributesFromAccesibilityObject):
(webkit_accessible_text_get_run_attributes):
(webkit_accessible_text_get_default_attributes):
2010-06-30 Yuta Kitamura <yutak@chromium.org>
Reviewed by Alexey Proskuryakov.
Fix Sec-WebSocketKey{1,2} headers.
According to WebSocket specification, a value of Sec-WebSocketKey{1,2} header
should not start or end with a space.
WebSocket: Malformed handshake headers in a worker due to rand_s failing
https://bugs.webkit.org/show_bug.cgi?id=41327
No new tests. ASSERT should catch the problem.
* websockets/WebSocketHandshake.cpp:
(WebCore::generateSecWebSocketKey):
2010-06-30 Yuzo Fujishima <yuzo@google.com>
Reviewed by Dan Bernstein.
Fix for Bug 41339 - unicode-range property only with a descending range
causes a crash
https://bugs.webkit.org/show_bug.cgi?id=41339
Test: fast/css/font-face-descending-unicode-range.html
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceUnicodeRange):
2010-06-29 Abhinav Mithal <abhinav.mithal@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] [Symbian] Fix doube-deallocation while destroying PluginContainerSymbian
https://bugs.webkit.org/show_bug.cgi?id=37303
* plugins/symbian/PluginViewSymbian.cpp:
(WebCore::PluginView::platformDestroy):
2010-06-29 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Implement getAttachedShaders
https://bugs.webkit.org/show_bug.cgi?id=31172
* bindings/js/JSWebGLRenderingContextCustom.cpp: JS binding for getAttachedShaders().
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: V8 binding for getAttachedShaders().
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getAttachedShaders): Implementation of getAttachedShaders().
(WebCore::WebGLRenderingContext::findShader): Helper function to find a shader object from its name.
* html/canvas/WebGLRenderingContext.h: Declaration of getAttachedShaders().
* html/canvas/WebGLRenderingContext.idl: Ditto.
* platform/graphics/GraphicsContext3D.h: Ditto.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::getAttachedShaders): Implementation of getAttachedShaders().
2010-06-29 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
REGRESSION: [Chromium] <progress> appearance on windows looks not good
https://bugs.webkit.org/show_bug.cgi?id=41343
RenderThemeChromiumWin::paintProgressBar() should return false,
which indicates the widget is painted.
Test: fast/dom/HTMLProgressElement/progress-element.html
* rebaselined with a wrong expectation.
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2010-06-29 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Jian Li.
Fix http/tests/local/blob/send-data-blob.html on Windows
https://bugs.webkit.org/show_bug.cgi?id=41228
Fix a regression bug in the line-conversion code.
Rewrite the line-conversion function with simpler functions to
make it less error prone.
No new tests as this is for bug fixes.
* platform/BlobItem.cpp:
(WebCore::StringBlobItem::convertToCString):
2010-06-29 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Darin Fisher.
Implementing DatabaseSync::openDatabaseSync().
https://bugs.webkit.org/show_bug.cgi?id=40607
1. Moved some common code from Database to AbstractDatabase.
2. Made performOpenAndVerify() virtual, since DatabaseSync doesn't
need to interact with DatabaseThread.
3. Removed the m_creationCallback field, since it's only needed in
the openDatabase{Sync} methods.
* storage/AbstractDatabase.cpp:
(WebCore::retrieveTextResultFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::updateGuidVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::guidForOriginAndName):
(WebCore::AbstractDatabase::databaseInfoTableName):
(WebCore::AbstractDatabase::AbstractDatabase):
(WebCore::AbstractDatabase::closeDatabase):
(WebCore::AbstractDatabase::version):
(WebCore::AbstractDatabase::performOpenAndVerify):
(WebCore::AbstractDatabase::scriptExecutionContext):
(WebCore::AbstractDatabase::securityOrigin):
(WebCore::AbstractDatabase::stringIdentifier):
(WebCore::AbstractDatabase::displayName):
(WebCore::AbstractDatabase::estimatedSize):
(WebCore::AbstractDatabase::fileName):
(WebCore::AbstractDatabase::databaseVersionKey):
(WebCore::AbstractDatabase::getVersionFromDatabase):
(WebCore::AbstractDatabase::setVersionInDatabase):
(WebCore::AbstractDatabase::versionMatchesExpected):
(WebCore::AbstractDatabase::setExpectedVersion):
(WebCore::AbstractDatabase::disableAuthorizer):
(WebCore::AbstractDatabase::enableAuthorizer):
(WebCore::AbstractDatabase::setAuthorizerReadOnly):
(WebCore::AbstractDatabase::lastActionChangedDatabase):
(WebCore::AbstractDatabase::lastActionWasInsert):
(WebCore::AbstractDatabase::resetDeletes):
(WebCore::AbstractDatabase::hadDeletes):
(WebCore::AbstractDatabase::resetAuthorizer):
* storage/AbstractDatabase.h:
(WebCore::AbstractDatabase::opened):
(WebCore::AbstractDatabase::isNew):
(WebCore::AbstractDatabase::databaseDebugName):
* storage/Database.cpp:
(WebCore::DatabaseCreationCallbackTask::create):
(WebCore::DatabaseCreationCallbackTask::performTask):
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::version):
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
(WebCore::Database::stop):
(WebCore::Database::performOpenAndVerify):
* storage/Database.h:
(WebCore::Database::sqliteDatabase):
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::create):
(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::denyBasedOnTableName):
* storage/DatabaseAuthorizer.h:
* storage/DatabaseSync.cpp:
(WebCore::DatabaseSync::openDatabaseSync):
(WebCore::DatabaseSync::DatabaseSync):
(WebCore::DatabaseSync::~DatabaseSync):
(WebCore::DatabaseSync::markAsDeletedAndClose):
(WebCore::CloseSyncDatabaseOnContextThreadTask::create):
(WebCore::CloseSyncDatabaseOnContextThreadTask::performTask):
(WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask):
(WebCore::DatabaseSync::closeImmediately):
* storage/DatabaseSync.h:
* storage/DatabaseTask.cpp:
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
* storage/DatabaseTask.h:
(WebCore::DatabaseOpenTask::create):
2010-06-29 François Sausset <sausset@gmail.com>
Reviewed by Darin Adler.
Fix a bug when a msubsup element is inside a mrow element
https://bugs.webkit.org/show_bug.cgi?id=36525
Test: mathml/presentation/subsup.xhtml
* mathml/RenderMathMLSubSup.cpp:
(WebCore::RenderMathMLSubSup::stretchToHeight):
2010-06-29 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
uniformmatrix* should generate INVALID_VALUE with transpose = true
https://bugs.webkit.org/show_bug.cgi?id=41235
Test: fast/canvas/webgl/gl-uniformmatrix4fv.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::uniformMatrix2fv): Call validateUniformMatrixParameters instead.
(WebCore::WebGLRenderingContext::uniformMatrix3fv): Ditto.
(WebCore::WebGLRenderingContext::uniformMatrix4fv): Ditto.
(WebCore::WebGLRenderingContext::validateUniformMatrixParameters): Validate input parameters for uniformMatrix*().
* html/canvas/WebGLRenderingContext.h: Declare validateUniformMatrixParameters().
2010-06-29 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Support UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL for texImage2D taking ArrayBufferView
https://bugs.webkit.org/show_bug.cgi?id=40398
Added support for UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL pixel store
parameters to texImage2D and texSubImage2D entry points taking ArrayBufferView.
More cleanly separated the unpacking and packing phases of user-supplied pixel data
in GraphicsContext3D, and added support for unpack alignment. Fixed bug in handling
of unpackAlignment in GraphicsContext3D::flipVertically. Necessarily added
validation of the amount of data passed to texImage2D and texSubImage2D. Modified
fast/canvas/webgl/tex-image-with-format-and-type.html to include premultiplied alpha
tests for relevant source formats; added new test which exercises all combinations
of UNPACK_FLIP_Y_WEBGL, UNPACK_PREMULTIPLY_ALPHA_WEBGL, and UNPACK_ALIGNMENT pixel
store parameters.
Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-array-buffer-view.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::validateTexFuncData):
* html/canvas/WebGLRenderingContext.h:
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::extractImageData):
(WebCore::GraphicsContext3D::extractTextureData):
(WebCore::GraphicsContext3D::flipVertically):
(WebCore::doUnpackingAndPacking):
(WebCore::computeIncrementParameters):
(WebCore::doPacking):
(WebCore::GraphicsContext3D::packPixels):
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::getImageData):
2010-06-29 Patrick Gansterer <paroga@paroga.com>
Reviewed by Dirk Schulze.
Buildfix for !ENABLE(SVG_FOREIGN_OBJECT) after r61667.
https://bugs.webkit.org/show_bug.cgi?id=41367
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::isOutermostSVG): Add missing ENABLE(SVG_FOREIGN_OBJECT).
2010-06-29 Patrick Gansterer <paroga@paroga.com>
Reviewed by Darin Adler.
Buildfix after r62118.
https://bugs.webkit.org/show_bug.cgi?id=41365
* rendering/RenderSVGRoot.cpp: Inlude missing RenderSVGResource.h.
2010-06-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62052.
http://trac.webkit.org/changeset/62052
https://bugs.webkit.org/show_bug.cgi?id=41357
Causes crashes in JSLazyEventListener::initializeFunction (see
bug 41352) (Requested by aroben on #webkit).
* bindings/js/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/js/ScriptEventListener.h:
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/v8/ScriptEventListener.h:
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::parseMappedAttribute):
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseMappedAttribute):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute):
2010-06-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62129.
http://trac.webkit.org/changeset/62129
https://bugs.webkit.org/show_bug.cgi?id=41362
Needed to roll out r62052 (see bug 41357) (Requested by aroben
on #webkit).
* bindings/js/ScriptEventListener.cpp:
(WebCore::createWindowAttributeEventListener):
2010-06-29 Beth Dakin <bdakin@apple.com>
Reviewed by Darin Adler.
Speculative fix for <rdar://problem/8071558> CrashTracer: [USER]
2300+ crashes in Safari at com.apple.WebCore:
WebCore::FrameView::scheduleRelayout + 352
Unfortunately, we don't have a reproducible case for this bug, and
therefore, we do not have a layout test either. It is pretty clear
from the logs that m_frame->settings() is null in
FrameView::scheduleRelayout() in the crashing case.
m_frame->settings() is null whenever page is null. Everywhere else
in FrameView.cpp we null-check either page or settings before using
settings. It seems plausible to me that scheduleRelayout could be
called when page is null, so the fix is just to add null-checks.
* page/FrameView.cpp:
(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleRelayout):
2010-06-29 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/7975842> Certain text is repeated after using splitText()
Tests: fast/text/setData-dirty-lines.html
fast/text/splitText-dirty-lines.html
* dom/CharacterData.cpp:
(WebCore::CharacterData::setData): Call RenderText::setTextWithOffset() rather than
setText(), because only the former correctly dirties line boxes.
* dom/Text.cpp:
(WebCore::Text::splitText): Ditto.
2010-06-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r62073.
http://trac.webkit.org/changeset/62073
https://bugs.webkit.org/show_bug.cgi?id=41359
Necessary to fix chromium build when r62052 is rolled out.
(Requested by dave_levin on #webkit).
* bindings/v8/ScriptEventListener.h:
2010-06-29 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Hooking up WebGL layers to the gpu-compositor. Implement missing
methods to set the contents of a GraphicsLayer with a platform specific WebGL
Layer, and to update the contents of the WebGL Layer when needed.
https://bugs.webkit.org/show_bug.cgi?id=41243
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::setContentsToWebGL):
* platform/graphics/chromium/GraphicsLayerChromium.h:
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::removeAllSublayers):
No need to call setNeedsCommit() from here as the previous call to
layer->removeFromSuperlayer() will have that effect (and we only need
to notify the owner if there were actually any sublayers removed).
* platform/graphics/chromium/LayerChromium.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::drawLayer):
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::create):
(WebCore::WebGLLayerChromium::updateTextureContents):
(WebCore::WebGLLayerChromium::setContext):
2010-06-29 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Nikolas Zimmermann.
Buildfix for --minimal build after r62052
https://bugs.webkit.org/show_bug.cgi?id=41338
* bindings/js/ScriptEventListener.cpp: #if ENABLE(SVG) guards added.
(WebCore::createWindowAttributeEventListener):
2010-06-29 Brent Fulgham <bfulgham@webkit.org>
Build fix. Not reviewd.
CGColor is only used for PLATFORM(CG). Conditionalize include
to correct build failure for WinCairo.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
Conditionalize use of CGColor.
2010-06-29 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Clean up the source lists in the GNUMakefile.am files
https://bugs.webkit.org/show_bug.cgi?id=41229
Clean up the GNUMakefile.am a little bit. Alphabetize and conglomerate
the source lists.
* GNUmakefile.am:
2010-06-29 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] DragDataGtk should use DataObjectGtk as the platformDragData
https://bugs.webkit.org/show_bug.cgi?id=40307
Use DataObjectGtk as the platformDragData for DragDataGtk. DataObjectGtk
contains all the information necessary to keep track of drops in progress.
* platform/DragData.h: Use a DataObjectGtk* as the platform drag data.
* platform/gtk/DragDataGtk.cpp:
(WebCore::DragData::containsFiles): Retrieve information via platformDragData.
(WebCore::DragData::asFilenames): Ditto.
(WebCore::DragData::containsPlainText): Ditto.
(WebCore::DragData::asPlainText): Ditto.
(WebCore::DragData::createClipboard): Create the Clipboard with the platformDragData.
(WebCore::DragData::containsCompatibleContent): Retrieve information via platformDragData.
(WebCore::DragData::containsURL): Ditto.
(WebCore::DragData::asURL): Ditto.
(WebCore::DragData::asFragment): Ditto.
2010-06-29 Adam Langley <agl@chromium.org>
Build fix. Not reviewd.
* platform/graphics/chromium/FontPlatformDataLinux.cpp:
(WebCore::FontPlatformData::setupPaint):
The name of the Skia function changed between writing this patch and
commiting it.
2010-06-29 Adam Langley <agl@chromium.org>
Reviewed by Kent Tamura.
[chromium] Support forced autohinting.
https://bugs.webkit.org/show_bug.cgi?id=40493
Freetype (the typical font rendering on Linux) includes an 'autohinter':
an algorithm for hinting glyph shapes without using the embedded hinting
bytecode in a font.
Some people prefer the autohinter's results, so we support forcing its
use.
This change also fixes a bug where two FontPlatformData structures would
compare equal, even if their rendering styles were different.
* platform/graphics/chromium/FontPlatformDataLinux.cpp:
(WebCore::FontPlatformData::setupPaint):
In order to compare FontPlatformData structures we need to make sure
that they are initialised.
(WebCore::FontPlatformData::operator==):
* platform/graphics/chromium/FontRenderStyle.h:
(WebCore::FontRenderStyle::FontRenderStyle):
(WebCore::FontRenderStyle::operator==):
This fixes the case where two FontPlatformData structures, differing
only by rendering style, would compare equal.
2010-06-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Unreviewed, Symbian build fix.
Add more directories to USERINCLUDE so that they get included
before the Symbian system headers.
This is a workaround to some toolchain problems; bug 31273 is used to
find a better solution.
No new tests as there is no new functionality.
* WebCore.pro:
2010-06-29 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Cleanup SVGRenderSupport
https://bugs.webkit.org/show_bug.cgi?id=41347
Remove SVGRenderBase base class from all SVG renderers. It was meant as temporary solution until all SVG renderers inherit from RenderSVGModelObject,
though this is not going to happen. RenderSVGModelObject inherits from RenderObject, making it impossible to inherit eg. RenderSVGImage from it, as
it already indirectly inherits from RenderObject, through RenderImage. Other examples are RenderForeignObject (RenderBlock inheritance),
RenderSVGInlineText (RenderText inheritance) etc.
Rename SVGRenderBase to SVGRenderSupport, just like the file is named, remove all free functions, and make them all static functions in SVGRenderSupport.
We can still share code between all SVG renderers, but don't need a special base class for all renderers -> shrink size of all SVG renderers.
Doesn't affect any test.
* rendering/RenderBox.cpp: Remove localTransform() override, not needed at all.
* rendering/RenderBox.h: Ditto.
* rendering/RenderForeignObject.cpp: s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderForeignObject::paint):
(WebCore::RenderForeignObject::clippedOverflowRectForRepaint):
(WebCore::RenderForeignObject::computeRectForRepaint):
(WebCore::RenderForeignObject::nodeAtFloatPoint):
(WebCore::RenderForeignObject::mapLocalToContainer):
* rendering/RenderPath.cpp:
(WebCore::BoundingRectStrokeStyleApplier::strokeStyle): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
(WebCore::RenderPath::paint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderPath::nodeAtFloatPoint): Ditto.
(WebCore::RenderPath::updateCachedBoundaries): Ditto.
* rendering/RenderSVGBlock.h: Remove SVGRenderBase inheritance.
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
(WebCore::RenderSVGContainer::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
(WebCore::RenderSVGContainer::objectBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
(WebCore::RenderSVGContainer::strokeBoundingBox): Ditto.
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
(WebCore::RenderSVGContainer::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
* rendering/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::layout): layoutChildren is a static function in SVGRenderSupport now.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::paint): prepareToRenderSVGContent/finishRenderSVGContent are static functions in SVGRenderSupport now.
(WebCore::RenderSVGImage::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
(WebCore::RenderSVGImage::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
(WebCore::RenderSVGImage::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderSVGImage::computeRectForRepaint): Ditto.
(WebCore::RenderSVGImage::mapLocalToContainer): Ditto.
* rendering/RenderSVGImage.h: Remove SVGRenderBase inheritance.
* rendering/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::objectBoundingBox): findTextRootObject is a static function in SVGRenderSupport now.
(WebCore::RenderSVGInline::strokeBoundingBox): Ditto.
(WebCore::RenderSVGInline::repaintRectInLocalCoordinates): Ditto.
(WebCore::RenderSVGInline::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderSVGInline::computeRectForRepaint): Ditto,.
(WebCore::RenderSVGInline::mapLocalToContainer): Ditto.
(WebCore::RenderSVGInline::absoluteQuads): findTextRootObject is a static function in SVGRenderSupport now.
* rendering/RenderSVGInline.h: Remove SVGRenderBase inheritance.
* rendering/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderSVGModelObject::computeRectForRepaint): Ditto.
(WebCore::RenderSVGModelObject::mapLocalToContainer): Ditto.
(WebCore::RenderSVGModelObject::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
* rendering/RenderSVGModelObject.h: Remove SVGRenderBase inheritance.
* rendering/RenderSVGResource.cpp:
(WebCore::invalidatePaintingResource): Moved here from SVGRenderSupport (static inline helper function).
(WebCore::RenderSVGResource::invalidateAllResourcesOfRenderer): Moved here from SVGRenderSupport and renamed from deregisterFromResources.
* rendering/RenderSVGResource.h: Expose invalidateAllResourcesOfRenderer function.
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::createClipData): renderSubtreeToImage is a static function in SVGRenderSupport now.
(WebCore::RenderSVGResourceClipper::hitTestClipContent): Ditto.
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient): findTextRootObject is a static function in SVGRenderSupport now.
(WebCore::clipToTextMask): Ditto.
(WebCore::RenderSVGResourceGradient::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
(WebCore::RenderSVGResourceGradient::postApplyResource): findTextRootObject is a static function in SVGRenderSupport now.
* rendering/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::createMaskImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now.
(WebCore::clampImageBufferSizeToViewport): Moved here from SVGRenderSupport.
(WebCore::RenderSVGResourcePattern::createTileImage): renderSubtreeToImage is a static function in SVGRenderSupport now.
* rendering/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::applyResource): applyStrokeStyleToContext is a static function in SVGRenderSupport now
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout): layoutChildren is a static function in SVGRenderSupport now.
(WebCore::RenderSVGRoot::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
(WebCore::RenderSVGRoot::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
(WebCore::RenderSVGRoot::repaintRectInLocalCoordinates): Remove call to computeContainerBoundingBox, use strokeBoundingBox instead, for consistency.
* rendering/RenderSVGRoot.h: Remove localTransform() override, no longer needed. Remove SVGRenderBase inheritance.
(WebCore::RenderSVGRoot::objectBoundingBox): Inlined for speeed.
(WebCore::RenderSVGRoot::strokeBoundingBox): computeContainerBoundingBox is a static function in SVGRenderSupport now.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderSVGText::computeRectForRepaint): Ditto.
(WebCore::RenderSVGText::mapLocalToContainer): Ditto.
(WebCore::RenderSVGText::nodeAtFloatPoint): pointInClippingArea is a static function in SVGRenderSupport now.
(WebCore::RenderSVGText::destroy): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
(WebCore::RenderSVGText::repaintRectInLocalCoordinates): intersectRepaintRectWithResources is a static function in SVGRenderSupport now.
* rendering/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::applyViewportClip): s/SVGRenderBase/SVGRenderSupport/
(WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip): pointInClippingArea is a static function in SVGRenderSupport now.
* rendering/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint): prepareToRenderSVGContent/finishRenderSVGContent are now static functions in SVGRenderSupport.
* rendering/SVGRenderSupport.cpp: Make it impossible to construct the class. Remove virtual destructor, made all methods static.
(WebCore::SVGRenderSupport::clippedOverflowRectForRepaint): s/SVGRenderBase/SVGRenderSupport/
(WebCore::SVGRenderSupport::computeRectForRepaint): Ditto.
(WebCore::SVGRenderSupport::mapLocalToContainer): Ditto.
(WebCore::SVGRenderSupport::prepareToRenderSVGContent): Ditto.
(WebCore::SVGRenderSupport::finishRenderSVGContent): Ditto.
(WebCore::SVGRenderSupport::renderSubtreeToImage): Made static.
(WebCore::SVGRenderSupport::computeContainerBoundingBox): Ditto.
(WebCore::SVGRenderSupport::layoutChildren): Ditto.
(WebCore::SVGRenderSupport::isOverflowHidden): s/SVGRenderBase/SVGRenderSupport/
(WebCore::SVGRenderSupport::intersectRepaintRectWithResources): Ditto.
(WebCore::SVGRenderSupport::pointInClippingArea): Made static.
(WebCore::SVGRenderSupport::dashArrayFromRenderingStyle): Ditto.
(WebCore::SVGRenderSupport::applyStrokeStyleToContext): Ditto.
(WebCore::SVGRenderSupport::findTextRootObject): Ditto.
* rendering/SVGRenderSupport.h:
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle): dashArrayFromRenderingStyle is a static function in SVGRenderSupport now.
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint): s/SVGRenderBase/SVGRenderSupport/
* rendering/SVGRootInlineBox.h: Remove SVGRenderBase inheritance.
* svg/SVGFEImageElement.cpp: Add RenderObject.h include, otherwhise it won't build anymore.
(WebCore::SVGFEImageElement::build): renderSubtreeToImage is a static function in SVGRenderSupport now.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::svgAttributeChanged): deregisterResource was renamed to invalidateAllResourcesOfRenderer and is a static function in SVGRenderSupport.
2010-06-21 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[PNG decoder] direct access to jmpbuf is deprecated in libpng >= 1.4.0beta103
https://bugs.webkit.org/show_bug.cgi?id=40907
Define a JMPBUF macro to cope with deprecation of the jmpbuf
attribute in libpng >= 1.4.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::decodingFailed):
(WebCore::PNGImageReader::decode):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::rowAvailable):
2010-06-29 Kristian Amlie <kristian.amlie@nokia.com>
Reviewed by Simon Hausmann.
[Qt/Symbian] Fixed deployment paths for WebKit declarative plugin.
* WebCore.pro:
2010-06-29 Yury Semikhatsky <yurys@chromium.org>
Unreviewed: Chromium Win and Mac build fix.
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
2010-06-29 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Move PaintInfo/PaintPhase into their own headers, out of RenderObject
https://bugs.webkit.org/show_bug.cgi?id=41342
1) Move enums PaintPhase/PaintBehaviorFlags and the PaintBehaviour typedef from RenderObject into PaintPhase.h.
Move PaintInfo from RenderObject into PaintInfo.h. Replace s/RenderObject::PaintInfo/PaintInfo/ throughout WebCore/.
Also move the OverlapTestRequestMap typedef into PaintInfo.h, and replace s/RenderObject::OverlapTestRequestMap/OverlapTestRequestMap/ everywhere.
2) Move "RenderObject* paintingRootForChildren(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
and modify it to take a renderer: "void updatePaintingRootForChildren(const RenderObject* renderer)".
This changes a common idiom:
- info.paintingRoot = paintingRootForChildren(paintInfo);
+ info.updatePaintingRootForChildren(this);
We save resetting the paintingRoot to 0 if it was 0 already and thus do less work.
3) Move "bool shouldPaintWithinRoot(PaintInfo& paintInfo) const" from RenderObject to PaintInfo
and modify it to take a renderer: "bool shouldPaintWithinRoot(const RenderObject* renderer) const".
This changes a common idiom:
- if (!shouldPaintWithinRoot(paintInfo))
+ if (!paintInfo.shouldPaintWithinRoot(this))
4) Move "void applyTransformToPaintInfo(RenderObject::PaintInfo&, const AffineTransform& localToChildTransform)"
from SVGRenderSupport to PaintInfo and rename it to "applyTransform", guarded with ENABLE(SVG) blocks.
This changes a common idiom:
- applyTransformToPaintInfo(childPaintInfo, localToParentTransform());
+ childPaintInfo.applyTransform(localToParentTransform());
Add PaintInfo.h / PaintPhase.h to all build systems that list headers.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* platform/android/RenderThemeAndroid.cpp:
(WebCore::getCanvasFromInfo):
(WebCore::RenderThemeAndroid::paintCheckbox):
(WebCore::RenderThemeAndroid::paintButton):
(WebCore::RenderThemeAndroid::paintRadio):
(WebCore::RenderThemeAndroid::paintTextField):
(WebCore::RenderThemeAndroid::paintTextArea):
(WebCore::RenderThemeAndroid::paintSearchField):
(WebCore::RenderThemeAndroid::paintCombo):
(WebCore::RenderThemeAndroid::paintMenuList):
(WebCore::RenderThemeAndroid::paintMenuListButton):
* platform/android/RenderThemeAndroid.h:
* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::paintThemePart):
(WebCore::RenderThemeEfl::paintCheckbox):
(WebCore::RenderThemeEfl::paintRadio):
(WebCore::RenderThemeEfl::paintButton):
(WebCore::RenderThemeEfl::paintMenuList):
(WebCore::RenderThemeEfl::paintTextField):
(WebCore::RenderThemeEfl::paintTextArea):
(WebCore::RenderThemeEfl::paintSearchFieldDecoration):
(WebCore::RenderThemeEfl::paintSearchFieldResultsButton):
(WebCore::RenderThemeEfl::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeEfl::paintSearchFieldCancelButton):
(WebCore::RenderThemeEfl::paintSearchField):
* platform/efl/RenderThemeEfl.h:
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::paintMozillaGtkWidget):
(WebCore::RenderThemeGtk::paintCheckbox):
(WebCore::RenderThemeGtk::paintRadio):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintTextArea):
(WebCore::RenderThemeGtk::paintSearchFieldResultsButton):
(WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeGtk::paintSearchFieldCancelButton):
(WebCore::RenderThemeGtk::paintSearchField):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::paintMediaFullscreenButton):
(WebCore::RenderThemeGtk::paintMediaMuteButton):
(WebCore::RenderThemeGtk::paintMediaPlayButton):
(WebCore::RenderThemeGtk::paintMediaSeekBackButton):
(WebCore::RenderThemeGtk::paintMediaSeekForwardButton):
(WebCore::RenderThemeGtk::paintMediaSliderTrack):
(WebCore::RenderThemeGtk::paintMediaSliderThumb):
(WebCore::RenderThemeGtk::paintProgressBar):
* platform/gtk/RenderThemeGtk.h:
* platform/haiku/RenderThemeHaiku.cpp:
(WebCore::RenderThemeHaiku::paintCheckbox):
(WebCore::RenderThemeHaiku::paintRadio):
(WebCore::RenderThemeHaiku::paintMenuList):
* platform/haiku/RenderThemeHaiku.h:
* platform/qt/RenderThemeQt.cpp:
(WebCore::StylePainter::StylePainter):
(WebCore::RenderThemeQt::paintCheckbox):
(WebCore::RenderThemeQt::paintRadio):
(WebCore::RenderThemeQt::paintButton):
(WebCore::RenderThemeQt::paintTextField):
(WebCore::RenderThemeQt::paintTextArea):
(WebCore::RenderThemeQt::paintMenuList):
(WebCore::RenderThemeQt::paintMenuListButton):
(WebCore::RenderThemeQt::paintProgressBar):
(WebCore::RenderThemeQt::paintSliderTrack):
(WebCore::RenderThemeQt::paintSliderThumb):
(WebCore::RenderThemeQt::paintSearchField):
(WebCore::RenderThemeQt::paintSearchFieldCancelButton):
(WebCore::RenderThemeQt::paintSearchFieldDecoration):
(WebCore::RenderThemeQt::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeQt::paintMediaFullscreenButton):
(WebCore::RenderThemeQt::paintMediaMuteButton):
(WebCore::RenderThemeQt::paintMediaPlayButton):
(WebCore::RenderThemeQt::paintMediaSeekBackButton):
(WebCore::RenderThemeQt::paintMediaSeekForwardButton):
(WebCore::RenderThemeQt::paintMediaCurrentTime):
(WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeQt::paintMediaVolumeSliderThumb):
(WebCore::RenderThemeQt::paintMediaSliderTrack):
(WebCore::RenderThemeQt::paintMediaSliderThumb):
* platform/qt/RenderThemeQt.h:
* platform/wx/RenderThemeWx.cpp:
(WebCore::RenderThemeWx::paintCheckbox):
(WebCore::RenderThemeWx::paintRadio):
(WebCore::RenderThemeWx::paintButton):
(WebCore::RenderThemeWx::paintTextField):
(WebCore::RenderThemeWx::paintMenuList):
(WebCore::RenderThemeWx::paintMenuListButton):
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::paint):
* rendering/EllipsisBox.h:
* rendering/InlineBox.cpp:
(WebCore::InlineBox::paint):
* rendering/InlineBox.h:
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::paint):
(WebCore::InlineFlowBox::paintFillLayers):
(WebCore::InlineFlowBox::paintFillLayer):
(WebCore::InlineFlowBox::paintBoxDecorations):
(WebCore::InlineFlowBox::paintMask):
(WebCore::InlineFlowBox::paintTextDecorations):
* rendering/InlineFlowBox.h:
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
* rendering/InlineTextBox.h:
* rendering/PaintInfo.h: Added.
(WebCore::PaintInfo::PaintInfo):
(WebCore::PaintInfo::updatePaintingRootForChildren):
(WebCore::PaintInfo::shouldPaintWithinRoot):
(WebCore::PaintInfo::applyTransform):
* rendering/PaintPhase.h: Added.
(WebCore::):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paint):
(WebCore::RenderBlock::paintChildren):
(WebCore::RenderBlock::paintEllipsisBoxes):
(WebCore::clipOutPositionedObjects):
(WebCore::RenderBlock::layoutColumns):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paint):
(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::paintMask):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderForeignObject.cpp:
(WebCore::RenderForeignObject::paint):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paint):
(WebCore::performOverlapTests):
(WebCore::RenderLayer::paintLayer):
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::paintPaginatedChildLayer):
(WebCore::RenderLayer::paintChildLayerIntoColumns):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::paintIntoLayer):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::paint):
* rendering/RenderLineBoxList.h:
* rendering/RenderMediaControls.cpp:
(WebCore::RenderMediaControls::paintMediaControlsPart):
* rendering/RenderMediaControls.h:
* rendering/RenderMediaControlsChromium.cpp:
(WebCore::paintMediaMuteButton):
(WebCore::paintMediaPlayButton):
(WebCore::paintMediaSlider):
(WebCore::paintMediaSliderThumb):
(WebCore::paintMediaVolumeSlider):
(WebCore::paintMediaVolumeSliderThumb):
(WebCore::paintMediaTimelineContainer):
(WebCore::RenderMediaControlsChromium::paintMediaControlsPart):
* rendering/RenderMediaControlsChromium.h:
* rendering/RenderObject.h:
* rendering/RenderPath.cpp:
(WebCore::RenderPath::paint):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::paint):
(WebCore::RenderReplaced::shouldPaint):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::paint):
* rendering/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::draw):
* rendering/RenderSVGResourceMarker.h:
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint):
* rendering/RenderScrollbarPart.cpp:
(WebCore::RenderScrollbarPart::paintIntoRect):
* rendering/RenderTable.cpp:
(WebCore::RenderTable::paintObject):
(WebCore::RenderTable::paintBoxDecorations):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::paint):
(WebCore::RenderTableCell::paintBackgroundsBehindCell):
(WebCore::RenderTableCell::paintBoxDecorations):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::paintMeter):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::paintCapsLockIndicator):
(WebCore::RenderTheme::paintCheckbox):
(WebCore::RenderTheme::paintRadio):
(WebCore::RenderTheme::paintButton):
(WebCore::RenderTheme::paintInnerSpinButton):
(WebCore::RenderTheme::paintOuterSpinButton):
(WebCore::RenderTheme::paintTextField):
(WebCore::RenderTheme::paintTextArea):
(WebCore::RenderTheme::paintMenuList):
(WebCore::RenderTheme::paintMenuListButton):
(WebCore::RenderTheme::paintProgressBar):
(WebCore::RenderTheme::paintSliderTrack):
(WebCore::RenderTheme::paintSliderThumb):
(WebCore::RenderTheme::paintSearchField):
(WebCore::RenderTheme::paintSearchFieldCancelButton):
(WebCore::RenderTheme::paintSearchFieldDecoration):
(WebCore::RenderTheme::paintSearchFieldResultsDecoration):
(WebCore::RenderTheme::paintSearchFieldResultsButton):
(WebCore::RenderTheme::paintMediaFullscreenButton):
(WebCore::RenderTheme::paintMediaPlayButton):
(WebCore::RenderTheme::paintMediaMuteButton):
(WebCore::RenderTheme::paintMediaSeekBackButton):
(WebCore::RenderTheme::paintMediaSeekForwardButton):
(WebCore::RenderTheme::paintMediaSliderTrack):
(WebCore::RenderTheme::paintMediaSliderThumb):
(WebCore::RenderTheme::paintMediaVolumeSliderContainer):
(WebCore::RenderTheme::paintMediaVolumeSliderTrack):
(WebCore::RenderTheme::paintMediaVolumeSliderThumb):
(WebCore::RenderTheme::paintMediaRewindButton):
(WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
(WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
(WebCore::RenderTheme::paintMediaControlsBackground):
(WebCore::RenderTheme::paintMediaCurrentTime):
(WebCore::RenderTheme::paintMediaTimeRemaining):
* rendering/RenderThemeChromiumMac.h:
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
(WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
(WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
(WebCore::RenderThemeChromiumMac::paintMediaControlsBackground):
(WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeChromiumMac::paintMediaVolumeSliderThumb):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintCheckbox):
(WebCore::RenderThemeChromiumSkia::paintRadio):
(WebCore::paintButtonLike):
(WebCore::RenderThemeChromiumSkia::paintButton):
(WebCore::RenderThemeChromiumSkia::paintTextField):
(WebCore::RenderThemeChromiumSkia::paintTextArea):
(WebCore::RenderThemeChromiumSkia::paintSearchField):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
(WebCore::RenderThemeChromiumSkia::paintMediaControlsBackground):
(WebCore::RenderThemeChromiumSkia::paintMediaSliderTrack):
(WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderTrack):
(WebCore::RenderThemeChromiumSkia::paintMediaSliderThumb):
(WebCore::RenderThemeChromiumSkia::paintMediaVolumeSliderThumb):
(WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
(WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
(WebCore::RenderThemeChromiumSkia::paintMenuList):
(WebCore::RenderThemeChromiumSkia::paintMenuListButton):
(WebCore::RenderThemeChromiumSkia::paintSliderTrack):
(WebCore::RenderThemeChromiumSkia::paintSliderThumb):
(WebCore::RenderThemeChromiumSkia::paintProgressBar):
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintCheckbox):
(WebCore::RenderThemeChromiumWin::paintRadio):
(WebCore::RenderThemeChromiumWin::paintButton):
(WebCore::RenderThemeChromiumWin::paintTextField):
(WebCore::RenderThemeChromiumWin::paintSliderTrack):
(WebCore::RenderThemeChromiumWin::paintSliderThumb):
(WebCore::RenderThemeChromiumWin::paintMenuList):
(WebCore::RenderThemeChromiumWin::paintTextFieldInternal):
(WebCore::RenderThemeChromiumWin::paintProgressBar):
* rendering/RenderThemeChromiumWin.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintTextField):
(WebCore::RenderThemeMac::paintCapsLockIndicator):
(WebCore::RenderThemeMac::paintTextArea):
(WebCore::RenderThemeMac::paintMenuList):
(WebCore::RenderThemeMac::paintMeter):
(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::paintMenuListButtonGradients):
(WebCore::RenderThemeMac::paintMenuListButton):
(WebCore::RenderThemeMac::paintSliderTrack):
(WebCore::RenderThemeMac::paintSliderThumb):
(WebCore::RenderThemeMac::paintSearchField):
(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldDecoration):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeMac::paintSearchFieldResultsButton):
(WebCore::getUnzoomedRectAndAdjustCurrentContext):
(WebCore::RenderThemeMac::paintMediaFullscreenButton):
(WebCore::RenderThemeMac::paintMediaMuteButton):
(WebCore::RenderThemeMac::paintMediaPlayButton):
(WebCore::RenderThemeMac::paintMediaSeekBackButton):
(WebCore::RenderThemeMac::paintMediaSeekForwardButton):
(WebCore::RenderThemeMac::paintMediaSliderTrack):
(WebCore::RenderThemeMac::paintMediaSliderThumb):
(WebCore::RenderThemeMac::paintMediaRewindButton):
(WebCore::RenderThemeMac::paintMediaReturnToRealtimeButton):
(WebCore::RenderThemeMac::paintMediaToggleClosedCaptionsButton):
(WebCore::RenderThemeMac::paintMediaControlsBackground):
(WebCore::RenderThemeMac::paintMediaCurrentTime):
(WebCore::RenderThemeMac::paintMediaTimeRemaining):
* rendering/RenderThemeSafari.cpp:
(WebCore::RenderThemeSafari::paintCheckbox):
(WebCore::RenderThemeSafari::paintRadio):
(WebCore::RenderThemeSafari::paintButton):
(WebCore::RenderThemeSafari::paintTextField):
(WebCore::RenderThemeSafari::paintCapsLockIndicator):
(WebCore::RenderThemeSafari::paintTextArea):
(WebCore::RenderThemeSafari::paintMenuList):
(WebCore::RenderThemeSafari::paintMenuListButtonGradients):
(WebCore::RenderThemeSafari::paintMenuListButton):
(WebCore::RenderThemeSafari::paintSliderTrack):
(WebCore::RenderThemeSafari::paintSliderThumb):
(WebCore::RenderThemeSafari::paintSearchField):
(WebCore::RenderThemeSafari::paintSearchFieldCancelButton):
(WebCore::RenderThemeSafari::paintSearchFieldDecoration):
(WebCore::RenderThemeSafari::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
(WebCore::RenderThemeSafari::paintMediaFullscreenButton):
(WebCore::RenderThemeSafari::paintMediaMuteButton):
(WebCore::RenderThemeSafari::paintMediaPlayButton):
(WebCore::RenderThemeSafari::paintMediaSeekBackButton):
(WebCore::RenderThemeSafari::paintMediaSeekForwardButton):
(WebCore::RenderThemeSafari::paintMediaSliderTrack):
(WebCore::RenderThemeSafari::paintMediaSliderThumb):
* rendering/RenderThemeSafari.h:
* rendering/RenderThemeWin.cpp:
(WebCore::RenderThemeWin::paintButton):
(WebCore::RenderThemeWin::paintTextField):
(WebCore::RenderThemeWin::paintMenuList):
(WebCore::RenderThemeWin::paintMenuListButton):
(WebCore::RenderThemeWin::paintSliderTrack):
(WebCore::RenderThemeWin::paintSliderThumb):
(WebCore::RenderThemeWin::paintSearchField):
(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeWin::paintSearchFieldResultsButton):
(WebCore::RenderThemeWin::paintMediaFullscreenButton):
(WebCore::RenderThemeWin::paintMediaMuteButton):
(WebCore::RenderThemeWin::paintMediaPlayButton):
(WebCore::RenderThemeWin::paintMediaSeekBackButton):
(WebCore::RenderThemeWin::paintMediaSeekForwardButton):
(WebCore::RenderThemeWin::paintMediaSliderTrack):
(WebCore::RenderThemeWin::paintMediaSliderThumb):
(WebCore::RenderThemeWin::paintMediaToggleClosedCaptionsButton):
* rendering/RenderThemeWin.h:
(WebCore::RenderThemeWin::paintCheckbox):
(WebCore::RenderThemeWin::paintRadio):
(WebCore::RenderThemeWin::paintTextArea):
(WebCore::RenderThemeWin::paintSearchFieldDecoration):
* rendering/RenderThemeWince.cpp:
(WebCore::RenderThemeWince::paintButton):
(WebCore::RenderThemeWince::paintTextField):
(WebCore::RenderThemeWince::paintMenuList):
(WebCore::RenderThemeWince::paintMenuListButton):
(WebCore::RenderThemeWince::paintSearchField):
(WebCore::RenderThemeWince::paintSearchFieldCancelButton):
(WebCore::RenderThemeWince::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeWince::paintSearchFieldResultsButton):
(WebCore::RenderThemeWince::paintSliderTrack):
(WebCore::RenderThemeWince::paintSliderThumb):
(WebCore::RenderThemeWince::paintMediaFullscreenButton):
(WebCore::RenderThemeWince::paintMediaMuteButton):
(WebCore::RenderThemeWince::paintMediaPlayButton):
(WebCore::RenderThemeWince::paintMediaSeekBackButton):
(WebCore::RenderThemeWince::paintMediaSeekForwardButton):
(WebCore::RenderThemeWince::paintMediaSliderTrack):
(WebCore::RenderThemeWince::paintMediaSliderThumb):
* rendering/RenderThemeWince.h:
(WebCore::RenderThemeWince::paintCheckbox):
(WebCore::RenderThemeWince::paintRadio):
(WebCore::RenderThemeWince::paintTextArea):
(WebCore::RenderThemeWince::paintSearchFieldDecoration):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::paintEllipsisBox):
(WebCore::RootInlineBox::paintCustomHighlight):
(WebCore::RootInlineBox::paint):
(WebCore::RootInlineBox::fillLineSelectionGap):
* rendering/RootInlineBox.h:
* rendering/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint):
* rendering/SVGInlineFlowBox.h:
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paint):
* rendering/SVGInlineTextBox.h:
* rendering/SVGMarkerLayoutInfo.cpp:
(WebCore::SVGMarkerLayoutInfo::drawMarkers):
* rendering/SVGMarkerLayoutInfo.h:
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
(WebCore::SVGRenderBase::finishRenderSVGContent):
(WebCore::renderSubtreeToImage):
* rendering/SVGRenderSupport.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint):
* rendering/SVGRootInlineBox.h:
2010-06-29 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Sort Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
2010-06-29 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Provide floating-point support for text selection framework
https://bugs.webkit.org/show_bug.cgi?id=40665
Rename 'glyphScale' to 'horizontalGlyphStretch' upon Dans' request.
Also guard the variables in ENABLE(SVG) blocks. Initialize variable to 1 instead of 1.0f, as that's the new style rule.
No functional changes, thus no new tests.
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::horizontalGlyphStretch):
(WebCore::TextRun::setHorizontalGlyphStretch):
(WebCore::TextRun::spacingDisabled):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::offsetForPosition):
2010-06-29 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
REGRESSION: text-shadow CSS applied to SVG no longer works
https://bugs.webkit.org/show_bug.cgi?id=40960
Readd text-shadow support, this time supporting multiple shadows.
It's not exactly like HTML, because SVG draws fill/stroke phases seperated - the png shows the difference.
Tests: svg/css/text-shadow-multiple.xhtml
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::applyShadowToGraphicsContext): Refactored from paintTextWithShadows(), so SVG can reuse.
(WebCore::paintTextWithShadows): Use refactored applyShadowToGraphicsContext() function.
* rendering/InlineTextBox.h:
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paintTextWithShadows): Added.
(WebCore::SVGInlineTextBox::paintText): Call paintTextWithShadows() instead of directly drawing the text.
* rendering/SVGInlineTextBox.h:
2010-06-29 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: show actual breakpoint position in UI.
When user sets breakpoint from UI, javascript engine may actually set
it on a different line. If so, move breakpoint to the correct position
in frontend.
https://bugs.webkit.org/show_bug.cgi?id=40781
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::dispatchDidPause):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::currentCallFrame):
* bindings/v8/ScriptDebugServer.h:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::setBreakpoint):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad):
(WebCore::InspectorController::setBreakpoint):
(WebCore::InspectorController::removeBreakpoint):
(WebCore::InspectorController::didParseSource):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didSetBreakpoint):
* inspector/InspectorFrontend.h:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint):
(WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint):
(WebInspector.BreakpointManager.prototype.setBreakpoint):
(WebInspector.BreakpointManager.prototype.restoredBreakpoint):
(WebInspector.BreakpointManager.prototype.removeBreakpoint):
(WebInspector.BreakpointManager.prototype._setBreakpoint):
(WebInspector.BreakpointManager.prototype._removeBreakpoint):
(WebInspector.BreakpointManager.prototype._setBreakpointOnBackend.didSetBreakpoint):
(WebInspector.BreakpointManager.prototype._setBreakpointOnBackend):
(WebInspector.Breakpoint.prototype.set enabled):
(WebInspector.Breakpoint.prototype.set condition):
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.setBreakpoint):
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
2010-06-29 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Catch toString() exceptions in all DB-related code.
https://bugs.webkit.org/show_bug.cgi?id=41297
* bindings/v8/custom/V8BindingMacros.h:
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::openDatabaseCallback):
* bindings/v8/custom/V8DatabaseCustom.cpp:
(WebCore::V8Database::changeVersionCallback):
* bindings/v8/custom/V8DatabaseSyncCustom.cpp:
(WebCore::V8DatabaseSync::changeVersionCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::openDatabaseCallback):
(WebCore::V8WorkerContext::openDatabaseSyncCallback):
2010-06-29 Herczeg Zoltan <zherczeg@webkit.org>
Rubber-stamped by Nikolas Zimmermann.
Windows build fix.
https://bugs.webkit.org/show_bug.cgi?id=5861
* svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::build):
2010-06-29 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Nikolas Zimmermann.
Add ConvolveMatrix SVG filter effect
https://bugs.webkit.org/show_bug.cgi?id=5861
The patch was originally started by Dirk Schulze,
and the .cpp and .h files are mostly his work.
I updated the build systems and do some minor updates
to the source files as well. The patch does not contain
the implementation of the filter: this is intended,
and will be landed in a follow-up patch.
* 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.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/objc/DOM.mm:
(WebCore::createElementClassMap):
* bindings/objc/DOMSVG.h:
* page/DOMWindow.idl:
* svg/SVGAllInOne.cpp:
* svg/SVGFEConvolveMatrixElement.cpp: Added.
(WebCore::SVGFEConvolveMatrixElement::SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::~SVGFEConvolveMatrixElement):
(WebCore::SVGFEConvolveMatrixElement::parseMappedAttribute):
(WebCore::SVGFEConvolveMatrixElement::setOrder):
(WebCore::SVGFEConvolveMatrixElement::setKernelUnitLength):
(WebCore::SVGFEConvolveMatrixElement::build):
* svg/SVGFEConvolveMatrixElement.h: Added.
* svg/SVGFEConvolveMatrixElement.idl: Added.
* svg/graphics/filters/SVGFEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::FEConvolveMatrix):
(WebCore::FEConvolveMatrix::create):
(WebCore::FEConvolveMatrix::kernelSize):
(WebCore::FEConvolveMatrix::setKernelSize):
(WebCore::FEConvolveMatrix::targetOffset):
(WebCore::FEConvolveMatrix::setTargetOffset):
(WebCore::operator<<):
(WebCore::FEConvolveMatrix::externalRepresentation):
* svg/graphics/filters/SVGFEConvolveMatrix.h:
(WebCore::):
* svg/svgattrs.in:
* svg/svgtags.in:
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 tree builder shouldn't ASSERT on HTML5lib test suite
https://bugs.webkit.org/show_bug.cgi?id=41335
Sketch out the EndTag handling for InBodyMode.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::inScope):
(WebCore::HTMLTreeBuilder::clearActiveFormatingElementsUpToLastMarker):
(WebCore::HTMLTreeBuilder::generateImpliedEndTags):
2010-06-28 David Levin <levin@chromium.org>
Reviewed by NOBODY (chromium build fix).
* rendering/RenderObject.h: Add missing forward declaration.
2010-06-28 Adam Barth <abarth@webkit.org>
Unreviewed.
I accidently gave up my ref and tried to dereference a null pointer.
This code is keeping an extra ref that it doesn't need, but that fact
was somewhat hidden before.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::addChildCommon):
(WebCore::ContainerNode::parserAddChild):
(WebCore::ContainerNode::legacyParserAddChild):
* dom/ContainerNode.h:
2010-06-28 Adam Barth <abarth@webkit.org>
Unreviewed.
Refactor common code into addChildCommon
https://bugs.webkit.org/show_bug.cgi?id=41326
Eric asked that we share the common code between these codepaths.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::addChildCommon):
(WebCore::ContainerNode::parserAddChild):
(WebCore::ContainerNode::addChild):
* dom/ContainerNode.h:
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
https://bugs.webkit.org/show_bug.cgi?id=41319
Restructure the code to not use in-band data, which is what
got us in trouble with a signed/unsigned mismatch before.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::indexOfFirstUnopenFormattingElement):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
* html/HTMLTreeBuilder.h:
2010-06-28 Daniel Bates <dbates@rim.com>
Unreviewed, attempt to fix Qt bots.
Attempt to fix the build after changeset 62079 <http://trac.webkit.org/changeset/62079>
(https://bugs.webkit.org/show_bug.cgi?id=41324).
Rename some more call sites that were missed in the initial landing.
* dom/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseProcessingInstruction):
(WebCore::XMLDocumentParser::parseCdata):
(WebCore::XMLDocumentParser::parseComment):
(WebCore::XMLDocumentParser::parseDtd):
2010-06-28 Daniel Bates <dbates@rim.com>
Unreviewed, build fix.
Change return type of method HTMLTreeBuilder::reconstructTheActiveFormattingElements()
from int to unsigned.
Attempt to fix the build after changeset 62077 <https://trac.webkit.org/changeset/62077>
(https://bugs.webkit.org/show_bug.cgi?id=41319).
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::indexOfLastOpenFormattingElementOrMarker):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
* html/HTMLTreeBuilder.h:
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Rename ContainerNode::addChild to legacyParserAddChild to indicate its parser-only intended use
https://bugs.webkit.org/show_bug.cgi?id=41324
A bunch of places in the code were calling ContainerNode::addChild.
I don't think they actually want to be doing that, as it has special
form-related handling which is part of LegacyHTMLTreeBuilder.
No functional changes, thus no tests.
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::legacyParserAddChild):
* dom/ContainerNode.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
* dom/Node.cpp:
(WebCore::Node::legacyParserAddChild):
* dom/Node.h:
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::legacyParserAddChild):
* html/HTMLTableElement.h:
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::legacyParserAddChild):
* html/HTMLTableRowElement.h:
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::legacyParserAddChild):
* html/HTMLTableSectionElement.h:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::addText):
(WebCore::HTMLViewSourceDocument::addLink):
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Implement HTMLTreeBuilder::reconstructTheActiveFormattingElements
https://bugs.webkit.org/show_bug.cgi?id=41319
This is basically a direct transcription of HTML5 TreeBuilder spec:
http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html#list-of-active-formatting-elements
This code is covered by various tests in html5lib/runner which we
can't run yet due to other asserts. Adam and I are working on
getting rid of those ASSERTS so that this (and other code) will
be better tested shortly.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertFormatingElement):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::contains):
(WebCore::HTMLTreeBuilder::FormatingElementEntry::FormatingElementEntry):
(WebCore::HTMLTreeBuilder::FormatingElementEntry::):
(WebCore::HTMLTreeBuilder::FormatingElementEntry::isMarker):
(WebCore::HTMLTreeBuilder::FormatingElementEntry::element):
(WebCore::HTMLTreeBuilder::FormatingElementEntry::replaceElement):
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix ASSERT so we can run more HTML5lib tests
https://bugs.webkit.org/show_bug.cgi?id=41325
We can't call Node::addChild because that function contains a bunch of
logic from the old parser. Instead, this patch creates a new version
of addChild that's does less validating (that's the tree builder's
job).
* dom/ContainerNode.cpp:
(WebCore::ContainerNode::parserAddChild):
* dom/ContainerNode.h:
* dom/Node.cpp:
(WebCore::Node::parserAddChild):
* dom/Node.h:
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::attach):
2010-06-28 David Levin <levin@chromium.org>
Reviewed by NOBODY (chromium build fix).
* bindings/v8/ScriptEventListener.h: Changed forward declaration
to correspond to the code change doing in r62052.
2010-06-28 Brady Eidson <beidson@apple.com>
Reviewed by Alexey Proskuryakov.
Support for https://bugs.webkit.org/show_bug.cgi?id=40484
In working on adding beforeProcess, it becomes necessary for JSLazyEventListeners to always know what their
original Node* was, even if it was a window event listener.
For HTMLFrameSet, HTMLBody, and SVGSVG elements, a second form of createAttributeEventListener was used that
took a Frame* argument and didn't set the original Node* on the JSLazyEventListener.
This patch changes that form of the function to createWindowAttributeEventListener, and passes the Node* along
for later use by the beforeProcess mechanism.
No new tests. (No change in behavior)
* bindings/js/ScriptEventListener.cpp:
(WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
of a Frame*, and figures out the Frame* itself internally.
* bindings/js/ScriptEventListener.h:
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createWindowAttributeEventListener): Renamed from createAttributeEventListener, takes a Node* instead
of a Frame*, and figures out the Frame* itself internally. Note that V8LazyEventListener doesn't allow us to
pass the Element* argument in so this beforeprocess feature won't fully work on V8 builds until this is changed.
* bindings/v8/ScriptEventListener.h:
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::parseMappedAttribute): Use createWindowAttributeEventListener instead.
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::parseMappedAttribute): Ditto.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::parseMappedAttribute): Ditto. Also add some missing copyright dates that `svn log` proves
should be there.
2010-06-28 John Gregg <johnnyg@google.com>
Reviewed by Kent Tamura.
add ENABLE_DIRECTORY_UPLOAD build support
https://bugs.webkit.org/show_bug.cgi?id=41100
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* WebCore.pri:
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Don't use the new tree builder for fragments
https://bugs.webkit.org/show_bug.cgi?id=41316
We need to walk before we can run. After this change, we can run the
runner.html tests (with the ASSERT caveat).
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
The new tree builder should actually finish building the tree
https://bugs.webkit.org/show_bug.cgi?id=41314
Again, this patch makes progress on runner.html, but I haven't removed
the ASSERT yet.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::finished):
* html/HTMLTreeBuilder.h:
2010-06-28 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Eric Seidel.
Fix a race condition that can happen when using DBs in workers.
https://bugs.webkit.org/show_bug.cgi?id=41105
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
* storage/DatabaseTracker.h:
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add text nodes to the DOM
https://bugs.webkit.org/show_bug.cgi?id=41306
Actually add some text nodes to the DOM when parsing a document. We're
going to need to do something fancier here eventually, but this gets us
past the error we're seeing currently in runner.html.
Unfortunately, this patch "regresses" runner.html in the sense that we
now hit an assert, but it's still an improvement... I'll update the
HTML5 expectations once we get past the assert.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::insertTextNode):
* html/HTMLTreeBuilder.h:
2010-06-28 Beth Dakin <bdakin@apple.com>
Build fix for non-PATH_BASED_BORDER_RADIUS_DRAWING platforms.
* rendering/RenderBoxModelObject.cpp:
2010-06-28 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Use HTML5-conformant gradient interpolation mode
https://bugs.webkit.org/show_bug.cgi?id=41298
Change the Qt Gradient implementation to use ComponentInterpolation mode.
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#colors-and-styles
* platform/graphics/qt/GradientQt.cpp:
(WebCore::Gradient::platformGradient):
2010-06-28 Beth Dakin <bdakin@apple.com>
Reviewed by Sam Weinig.
Fix for https://bugs.webkit.org/show_bug.cgi?id=9197 CSS3: Borders
with border-radius and double, groove, or ridge styles should look
better
This patch re-works border radius painting to stroke paths instead
of arcs.
Added new function clipConvexPolygon(). Added static
addConvexPolygonToContext so that code can be shared between
drawConvexPolygon() and clipConvexPolygon().
* platform/graphics/GraphicsContext.h:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::addConvexPolygonToContext):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::GraphicsContext::clipConvexPolygon):
Shells of implementations on non-CG platforms.
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::clipConvexPolygon):
This new helper function determines if the inner corners of the
border will arch in or meet at a right angle.
* rendering/RenderBoxModelObject.cpp:
(WebCore::borderWillArcInnerEdge):
This function is re-written so that, for each side of the border,
if borderWillArcInnerEdge() is true, we go down a brand new code
path of clipping to a convex polygon for the border side and then
we paint the side using the new function drawBoxSideFromPath(). If
borderWillArcInnerEdge() is false, then we call into the old
familiar drawLineForBoxSide() which relies on the rounder clip
rects we have set up to arch the outer edge of the border.
(WebCore::RenderBoxModelObject::paintBorder):
This new function does the math to figure out the convex polygon
to clip to in the case where we need to arch the inner edge of the
border. This calls into a new GraphicsContext function that is only
implemented on CG at this time. This is the reason we are keeping
around an old version of paintBorder() for now.
(WebCore::RenderBoxModelObject::clipBorderSidePolygon):
* rendering/RenderBoxModelObject.h:
borderInnerRect() is a new convenience function called from
RenderObject and RenderBoxModelObject to determine the rect of the
inside edge of the border.
* rendering/RenderObject.cpp:
(WebCore::RenderObject::borderInnerRect):
This new function re-works drawArcForBoxSide to draw from Paths
when appropriate instead of stroking arcs.
(WebCore::RenderObject::drawBoxSideFromPath):
Keep this around for that do not HAVE(PATH_BASED_BORDER_RADIUS_DRAWING) until
GraphicsContext::clipConvexPolygon() is implemented.
(WebCore::RenderObject::drawArcForBoxSide):
* rendering/RenderObject.h:
New function
RenderStyle::getInnerBorderRadiiForRectWithBorderWidths() gets the
inner radius values for a rect. It takes border widths a parameters
rather than using the style's border widths so that it can be used
in inner radius calculations for double and groove/ridge
calculations. The W3C corner constraining rules were moved to a
static function that can be called from both getBorderRadiiForRect
() and getInnerBorderRadiiForRectWithBorderWidths().
* rendering/style/RenderStyle.cpp:
(WebCore::constrainCornerRadiiForRect):
(WebCore::RenderStyle::getBorderRadiiForRect):
(WebCore::RenderStyle::getInnerBorderRadiiForRectWithBorderWidths):
* rendering/style/RenderStyle.h:
2010-06-28 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Add support for the progress bar tag
https://bugs.webkit.org/show_bug.cgi?id=41014
Add support for rendering the progress tag for WebKit GTK+.
* GNUmakefile.am:
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
Added. Currently progress bar animations are disabled. As it looks like
there may not be a good way to support this with Mozilla's theme drawing code.
(WebCore::RenderThemeGtk::animationDurationForProgressBar): Ditto.
(WebCore::RenderThemeGtk::adjustProgressBarStyle): Added.
(WebCore::RenderThemeGtk::paintProgressBar): Added.
* platform/gtk/RenderThemeGtk.h: Add declarations for new methods.
* platform/gtk/gtk2drawing.c:
(moz_gtk_get_progress_widget): Expose the progress widget so that the chunk can be positioned properly.
* platform/gtk/gtkdrawing.h: Added declaration for moz_gtk_get_progress_widget.
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 Regression: Crash in insert()
https://bugs.webkit.org/show_bug.cgi?id=41281
We need to call endIfDelayed() outside of the script nesting block
because endIfDelayed() might call end(), which deletes the
HTMLDocumentParser. If we try to exit the script nesting block after
the HTMLDocumentParser has been deleted, we'll decrement unallocated
memory, which is bad times.
Moving endIfDelayed outside of the script nesting block also lets us
avoid ending if inWrite() is true. If we're inWrite(), then there's
folks above us on the stack who will crash of the HTMLDocumentParser is
deallocated. Adding this check matches the LegacyHTMLDocumentParser
and the logic in attemptToEnd, facilitating a small refactoring of the
common logic for improved readability.
I don't know of any test case that changes in behavior because of this
patch, but this bug exists on the same line of code that the reliablity
tests crashed. I'm not sure whether this patch will fix that crash,
but removing bugs (even theoretical ones) seems like a good idea.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::attemptToEnd):
(WebCore::HTMLDocumentParser::endIfDelayed):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::shouldDelayEnd):
2010-06-28 Eric Carlson <eric.carlson@apple.com>
Reviewed by Sam Weinig.
MediaPlayerPrivate::getSupportedTypes does not return "modern" MIME types
https://bugs.webkit.org/show_bug.cgi?id=41287
<rdar://problem/8137402>
No new test because getSupportedTypes is used privately by MediaPlayer.
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivate::getSupportedTypes): Build hash set with both common and
modern types.
2010-06-28 James Robinson <jamesr@chromium.org>
Reviewed by Darin Adler.
REGRESSION(53790): Neopets page with mismatched elements misrenders
https://bugs.webkit.org/show_bug.cgi?id=41181
Misnested formatting tags require fixup in order to create a valid DOM. Because this takes
O(N^2) time in some cases, http://trac.webkit.org/changeset/53790 added an iteration limit
of 5 to this algorithm to avoid hangs. This limit is too low for neopets, but a limit of
7 is sufficient. This raises the limit to 10 to have a bit of breathing room. HTML5
defines the fixup algorithm http://www.whatwg.org/specs/web-apps/current-work/#adoptionAgency
but doesn't specify any particular iteration limit.
* html/LegacyHTMLTreeBuilder.cpp:
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
The new tree builder needs to call attach() on elements it attaches to
the DOM
https://bugs.webkit.org/show_bug.cgi?id=41293
Apparently Nodes expect to have their attach() method called when they
are attached to the DOM. The new tree builder is happy to oblige.
Making this call requires some fancy footwork with RefPtr/PassRefPtr to
avoid extra ref churn while keeping each function small.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::insertDoctype):
(WebCore::HTMLTreeBuilder::insertComment):
(WebCore::HTMLTreeBuilder::insertCommentOnDocument):
(WebCore::HTMLTreeBuilder::insertElement):
(WebCore::HTMLTreeBuilder::insertSelfClosingElement):
(WebCore::HTMLTreeBuilder::insertScriptElement):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::attach):
2010-06-28 Xan Lopez <xlopez@igalia.com>
Fix distcheck.
* GNUmakefile.am:
2010-06-28 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Index validation caches buffer size information too aggressively
https://bugs.webkit.org/show_bug.cgi?id=41092
Test: fast/canvas/webgl/index-validation-with-resized-buffer.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateRenderingState):
- Compute the number of valid elements each time based on the latched buffer.
(WebCore::WebGLRenderingContext::vertexAttribPointer):
- Do not cache the buffer size, only the attributes used to
compute the number of required elements.
* html/canvas/WebGLRenderingContext.h:
(WebCore::WebGLRenderingContext::VertexAttribState::VertexAttribState):
- Ditto.
2010-06-28 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Replace single treat-as-space characters with normal space
https://bugs.webkit.org/show_bug.cgi?id=41278
This keeps Qt from attempting glyph substitution and loading a bunch
of extra fonts when encountering entities.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::floatWidthForComplexText):
2010-06-28 Robin Cao <robin.cao@torchmobile.com.cn>
Reviewed by Dan Bernstein.
canvas fillText with @font-face crashes
https://bugs.webkit.org/show_bug.cgi?id=35486
The font object in CanvasRenderingContext2D may become invalid at some point.
Override recalcStyle() in HTMLCanvasElement, and update the font object from there if needed.
A test already exists: canvas/philip/tests/2d.text.draw.fontface.repeat.html
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::recalcStyle):
* html/HTMLCanvasElement.h:
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::updateFont):
* html/canvas/CanvasRenderingContext2D.h:
2010-06-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Unreviewed build fix.
[EFL] Build fix for latest version of Ecore library.
Ecore recently changed return type of callbacks from int to Eina_Bool.
No new functionality, so no new tests.
* platform/efl/SharedTimerEfl.cpp:
(WebCore::timerEvent): Return Eina_Bool instead of int.
2010-06-28 Xan Lopez <xlopez@igalia.com>
Fix build with GTK+ older than 2.18
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::visibleContentRect):
2010-06-28 Xan Lopez <xlopez@igalia.com>
Reviewed by Adam Barth.
[GTK] Push NULL context on every DOM bindings entry point
https://bugs.webkit.org/show_bug.cgi?id=39967
Update GObject DOM bindings to push the NULL context on every API
entry point, and update bindings test results.
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
2010-06-28 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Adam Roben.
[WinCairo] Text box backgrounds do not render in partially opaque layers
https://bugs.webkit.org/show_bug.cgi?id=41113
Tests:
manual-tests/partially-opaque-text-input.html
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::releaseWindowsContext):
When restoring a context which does not support alpha blending, manually
set the alpha channel of the HBITMAP to fully opaque. This will effectively
ignore the alpha channel of the HBITMAP, which is necessary because GDI
drawing functions set the alpha value to be fully transparent (0).
2010-06-28 Martin Robinson <martin.james.robinson@gmail.com>
Reviewed by Adam Roben.
[WinCairo] Rendering of themed elements on a layer with opacity produces nothing
https://bugs.webkit.org/show_bug.cgi?id=41111
Tests:
manual-tests/partially-opaque-form-elements.html
* platform/graphics/win/GraphicsContextCairoWin.cpp:
(WebCore::GraphicsContext::releaseWindowsContext):
Preform a cairo_save() and a cairo_restore() around code modifying the transformation
matrix of the Cairo surface. Also set the destination coordinates before adjusting
the transformation matrix scale, so that the destination coordinates are not scaled
as well.
2010-06-28 Sam Magnuson <smagnuson@netflix.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] GraphicsLayerQt delay seems unnecessary.
https://bugs.webkit.org/show_bug.cgi?id=40846
Test: compositing/animation/busy-indicator.html
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::recache):
(WebCore::GraphicsLayerQtImpl::flushChanges):
(WebCore::GraphicsLayerQt::setContentsToImage):
(WebCore::GraphicsLayerQt::addAnimation):
2010-06-28 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Until now we were adding the event listeners for a given object in
the wrap method, since that's the first moment we have accoss to
the core WebCore object. The problem is that we only install the
listeners that the topmost class in the class hierarchy needs (eg,
HTMLParagrahElement for a P element), when most of the actual
event attributes are defined in the base classes (Node, Element,
...).
To fix this set the core object as a construct/write-only property
on the wrapper GObject, and set the eventlisteners in the cGObject
'construct' method, chaining up through all the class hierarchy
until the end. This way we'll get all the eventlisteners defined
in all the superclasses of our object, which is what we want.
* bindings/gobject/WebKitDOMObject.cpp:
(webkit_dom_object_get_property):
(webkit_dom_object_set_property):
(webkit_dom_object_class_init):
* bindings/scripts/CodeGeneratorGObject.pm:
* dom/Node.idl:
2010-06-28 Xan Lopez <xlopez@igalia.com>
Fix GTK+ build.
* platform/gtk/RenderThemeGtk.cpp:
2010-06-28 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Does not compile with -DGSEAL_ENABLE
https://bugs.webkit.org/show_bug.cgi?id=37851
Fix build with GSEAL enabled.
* GNUmakefile.am:
* platform/gtk/GtkVersioning.h:
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::paintMozillaGtkWidget):
(WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
(WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
(WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor):
(WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor):
(WebCore::RenderThemeGtk::systemColor):
* platform/gtk/ScrollViewGtk.cpp:
(WebCore::ScrollView::platformRemoveChild):
(WebCore::ScrollView::visibleContentRect):
* platform/gtk/gtk2drawing.c:
(ensure_toggle_button_widget):
(ensure_combo_box_widgets):
(ensure_combo_box_entry_widgets):
(ensure_tree_header_cell_widget):
(moz_gtk_button_paint):
(moz_gtk_toggle_paint):
(calculate_button_inner_rect):
(calculate_arrow_rect):
(moz_gtk_scrollbar_button_paint):
(moz_gtk_scrollbar_trough_paint):
(moz_gtk_scrollbar_thumb_paint):
(moz_gtk_spin_paint):
(moz_gtk_spin_updown_paint):
(moz_gtk_scale_paint):
(moz_gtk_scale_thumb_paint):
(moz_gtk_gripper_paint):
(moz_gtk_hpaned_paint):
(moz_gtk_vpaned_paint):
(moz_gtk_entry_paint):
(moz_gtk_treeview_paint):
(moz_gtk_tree_header_sort_arrow_paint):
(moz_gtk_treeview_expander_paint):
(moz_gtk_expander_paint):
(moz_gtk_combo_box_paint):
(moz_gtk_downarrow_paint):
(moz_gtk_combo_box_entry_button_paint):
(moz_gtk_container_paint):
(moz_gtk_toggle_label_paint):
(moz_gtk_toolbar_paint):
(moz_gtk_toolbar_separator_paint):
(moz_gtk_tooltip_paint):
(moz_gtk_resizer_paint):
(moz_gtk_frame_paint):
(moz_gtk_progressbar_paint):
(moz_gtk_progress_chunk_paint):
(moz_gtk_get_tab_thickness):
(moz_gtk_tab_paint):
(moz_gtk_tabpanels_paint):
(moz_gtk_tab_scroll_arrow_paint):
(moz_gtk_menu_bar_paint):
(moz_gtk_menu_popup_paint):
(moz_gtk_menu_separator_paint):
(moz_gtk_menu_item_paint):
(moz_gtk_menu_arrow_paint):
2010-06-28 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Add support for GTK+3
https://bugs.webkit.org/show_bug.cgi?id=41253
Adapt build system for 3.x support.
* GNUmakefile.am:
2010-06-28 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: properties of scope variables are flattened while on a breakpoint.
https://bugs.webkit.org/show_bug.cgi?id=41214
Test: inspector/debugger-proto-property.html
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor): object proxy with non-empty path cannot be scope proxy.
2010-06-28 MORITA Hajime <morrita@google.com>
Unreviewed attempt to fix windows build.
* page/DOMWindow.idl:
2010-06-22 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
<progress> should be styled with -webkit-progress-bar-value
https://bugs.webkit.org/show_bug.cgi?id=40823
Fixed to peek styles of the shadow node pseudo class to fallback
to non-styled painting.
* css/html.css:
(progress): Added defaul background-color.
(progress::-webkit-progress-bar-value): Added defaul background-color.
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::shouldHaveParts):
(WebCore::RenderProgress::updatePartsState):
Test: fast/dom/HTMLProgressElement/progress-bar-value-pseudo-element.html
2010-06-28 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Kent Tamura.
GCC suggest parentheses around && within ||
https://bugs.webkit.org/show_bug.cgi?id=41245
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren):
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Don't dump contents of <script> elements in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=41277
Apparently we need to tell each element when we start and stop parsing
its children. If we don't do this, we see the contents of every script
and style element in dumpAsText LayoutTests. (This patch is *well*
covered by LayoutTests.)
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::pop):
(WebCore::HTMLTreeBuilder::ElementStack::push):
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make it possible to test the new HTML5 TreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41276
Adam was concerned that someone might make their port
depend on this setting (I guess we had some trouble with that
with the HTML5Parser setting), so I littered the code with warnings.
test-html5-parser now tests this code path.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::finished):
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setHTML5TreeBuilderEnabled_DO_NOT_USE):
(WebCore::Settings::html5TreeBuilderEnabled):
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make the html5lib runner.html not assert
https://bugs.webkit.org/show_bug.cgi?id=41273
This patch gets us closer to being able to run the parser tests. We
still don't get parsing correct, but at least we don't assert. :)
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::insertCommentOnDocument):
* html/HTMLTreeBuilder.h:
2010-06-28 Eric Seidel <eric@webkit.org>
Unreviewed. Attempt to fix Chromium and Qt builders.
Add a new baseclass for XML, HTML and Text DocumentParsers to clean up DocumentParser call sites
https://bugs.webkit.org/show_bug.cgi?id=41141
No functional changes, thus no tests.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::eventHandlerLineNumber):
(WebCore::ScriptController::eventHandlerColumnNumber):
* dom/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::stopParsing):
2010-06-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add support for parsing attributes
https://bugs.webkit.org/show_bug.cgi?id=41272
This patch lets use parse the following document:
<script src="data:text/javascript,alert('PASS')"></script>
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
(WebCore::HTMLTreeBuilder::insertScriptElement):
(WebCore::HTMLTreeBuilder::createElement):
2010-06-28 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Add a new baseclass for XML, HTML and Text DocumentParsers to clean up DocumentParser call sites
https://bugs.webkit.org/show_bug.cgi?id=41141
By splitting ScriptableDocumentParser and DecodedDataDocumentParser
out from DocumentParser we've made the DocumentParser and
RawDataDocumentParser classes simpler.
No functional change, thus no tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::eventHandlerLineNumber):
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::checkLoaded):
* dom/Document.cpp:
(WebCore::Document::scriptableDocumentParser):
(WebCore::Document::open):
(WebCore::Document::implicitOpen):
(WebCore::Document::implicitClose):
(WebCore::Document::removePendingSheet):
* dom/Document.h:
(WebCore::Document::parser):
* dom/DocumentParser.cpp:
(WebCore::DocumentParser::DocumentParser):
* dom/DocumentParser.h:
(WebCore::DocumentParser::asScriptableDocumentParser):
* dom/RawDataDocumentParser.h:
(WebCore::RawDataDocumentParser::finishWasCalled):
* dom/ScriptableDocumentParser.cpp: Copied from WebCore/html/HTMLEntityParser.h.
(WebCore::ScriptableDocumentParser::ScriptableDocumentParser):
* dom/ScriptableDocumentParser.h: Added.
(WebCore::ScriptableDocumentParser::isExecutingScript):
(WebCore::ScriptableDocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::ScriptableDocumentParser::xssAuditor):
(WebCore::ScriptableDocumentParser::setXSSAuditor):
(WebCore::ScriptableDocumentParser::processingContentWrittenByScript):
(WebCore::ScriptableDocumentParser::asScriptableDocumentParser):
* dom/ViewportArguments.cpp:
(WebCore::parserLineNumber):
(WebCore::reportViewportWarning):
* dom/XMLDocumentParser.h:
* dom/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc):
* html/HTMLDocumentParser.h:
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser):
(WebCore::LegacyHTMLDocumentParser::parseTag):
* html/LegacyHTMLDocumentParser.h:
(WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript):
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole):
* loader/DocumentLoader.cpp:
* loader/DocumentWriter.cpp:
* loader/TextDocument.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
(WebCore::TextDocumentParser::finish):
* svg/SVGDocumentExtensions.cpp:
(WebCore::parserLineNumber):
(WebCore::reportMessage):
(WebCore::SVGDocumentExtensions::reportWarning):
(WebCore::SVGDocumentExtensions::reportError):
2010-06-27 Steve Falkenburg <sfalken@apple.com>
Reviewed by Mark Rowe.
WebKit2 build exceeds address space on 32-bit Windows builders
https://bugs.webkit.org/show_bug.cgi?id=41270
Add all-in-one file for render-related SVG files.
Clean up other all-in-one files by adding missing files, excluding matching files from the vcproj.
Reduces release WebCore.lib size by 10% (160MB).
* DerivedSources.cpp:
* WebCore.vcproj/WebCore.vcproj:
* bindings/js/JSBindingsAllInOne.cpp:
* html/HTMLElementsAllInOne.cpp:
* rendering/RenderSVGAllInOne.cpp: Added.
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out the InBodyMode for the tree builder
https://bugs.webkit.org/show_bug.cgi?id=41271
This gives us some basic behavior for the InBodyMode. I've implemented
some of the easier logic. The more complicated logic will be in
subsequent patches.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::insertFormatingElement):
(WebCore::HTMLTreeBuilder::reconstructTheActiveFormattingElements):
* html/HTMLTreeBuilder.h:
2010-06-25 Yuzo Fujishima <yuzo@google.com>
Reviewed by Shinichiro Hamaji.
Improve default value handling for page format properties.
Default page size and orientation have been hard-coded.
Instead, pass default page size and margins to
WebCore::Document::pageSizeAndMarginsInPixels to handle auto page size
and margins specified as percentages.
Return margins instead of page rect.
https://bugs.webkit.org/show_bug.cgi?id=41150
* WebCore.base.exp:
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyPageSizeProperty):
(WebCore::CSSStyleSelector::pageSizeFromName):
* css/html.css:
(@page):
* dom/Document.cpp:
(WebCore::Document::pageSizeAndMarginsInPixels):
* dom/Document.h:
* page/PrintContext.cpp:
(WebCore::PrintContext::pageProperty):
(WebCore::PrintContext::pageSizeAndMarginsInPixels):
* page/PrintContext.h:
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::pageSizeType):
(WebCore::InheritedFlags::setPageSizeType):
(WebCore::InheritedFlags::resetPageSizeType):
* rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):
* rendering/style/StyleRareNonInheritedData.h:
(WebCore::):
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Clean up some loose ends in HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=41265
This patch cleans up a few loose ends in HTML5 tree builder.
Technically, we could do each of these as individual patches, but that
didn't seem worth while.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
- Add missing break before default case statement. I don't think
this change is observable.
(WebCore::HTMLTreeBuilder::processComment):
- Originally I thought that comments had special processing in the
InHeadNoscriptMode, but it turns out that when you unwind the
definitions, it amounts to exactly the same thing.
(WebCore::HTMLTreeBuilder::processEndOfFile):
- Add missing break before default case statement. I don't think
this change is observable.
(WebCore::HTMLTreeBuilder::insertComment):
- Eliminate one unnecessary ref/deref pair.
(WebCore::HTMLTreeBuilder::insertSelfClosingElement):
- When we insert self-closing elements, there's no reason to push
them onto the stack of open elements just to pop them off again.
This change saves a malloc/free pair as well as a ref/deref pair.
Go team.
* html/HTMLTreeBuilder.h:
- Remove unused function.
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement remaining StartTag processing for InHeadNoscriptMode
https://bugs.webkit.org/show_bug.cgi?id=41264
The InHeadNoscriptMode processes some start tags "as if" the tree
builder were in the InHeadMode. This is an idiom we'll see more of
later. My approach is this patch is to factor all the logic for
processing start tags in the InHeadMode into a separate function that
can be called from both locations. This seems cleaner than just
splitting out the parts that are actually used by both modes.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
(WebCore::HTMLTreeBuilder::insertSelfClosingElement):
* html/HTMLTreeBuilder.h:
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add support for <title> and <style> elements
https://bugs.webkit.org/show_bug.cgi?id=41263
These elements use the generic RCDATA and RawText algorithms,
respectively.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
(WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Actually insert Doctype elements
https://bugs.webkit.org/show_bug.cgi?id=41262
This code is pretty much the same as in the old tree builder.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::insertDoctype):
2010-06-27 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Canvas: Ignore calls to drawImage() with non-finite parameters
https://bugs.webkit.org/show_bug.cgi?id=38929
This also fixes a Qt assert when using the raster graphics system.
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#2dcontext
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::drawImage):
2010-06-27 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
editing/execCommand/copy-without-selection.html fails on Qt after r61637
https://bugs.webkit.org/show_bug.cgi?id=41025
The problem was that when getting data back via Clipboard::getData(),
the String::String(const char*, int) constructor was called
with UTF-16 data.
The solution is to use QMimeData's text() and setText() for "text/plain".
setText() which makes sure Qt passes the string in proper format to the
system clipboard. (The previous implementation would convert it to UTF-8)
text() makes sure that the correct encoding is used (UTF-16) and that
we get back whatever we originally put in there.
* platform/qt/ClipboardQt.cpp:
(WebCore::isTextMimeType):
(WebCore::ClipboardQt::getData):
(WebCore::ClipboardQt::setData):
2010-06-27 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 tree builder should be able to execute inline scripts
https://bugs.webkit.org/show_bug.cgi?id=41257
This patch implements enough machinery so that we can execute inline
scripts in extremely simple documents such as the following:
<html>
<script>
alert(1);
</script>
To get this to work, I had to flesh out a surprising amount of the data
structures for processing the <head>. No tests because this is
already covered by most LayoutTests.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::insertComment):
(WebCore::HTMLTreeBuilder::insertElement):
(WebCore::HTMLTreeBuilder::insertScriptElement):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementRecord::ElementRecord):
(WebCore::HTMLTreeBuilder::ElementRecord::element):
(WebCore::HTMLTreeBuilder::ElementRecord::next):
(WebCore::HTMLTreeBuilder::ElementRecord::releaseNext):
(WebCore::HTMLTreeBuilder::ElementRecord::setNext):
(WebCore::HTMLTreeBuilder::ElementStack::pop):
(WebCore::HTMLTreeBuilder::ElementStack::push):
(WebCore::HTMLTreeBuilder::ElementStack::top):
(WebCore::HTMLTreeBuilder::ElementStack::remove):
(WebCore::HTMLTreeBuilder::currentElement):
2010-06-26 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler.
beforeProcess event needs to fire before inline scripts/stylesheets take effect
<rdar://problem/8084335> and https://bugs.webkit.org/show_bug.cgi?id=40484
This patch adds the Event, the onBeforeProcess attribute, and hooks the attribute up in a few places.
Besides that, no change in behavior.
Layout tests will come with the actual implementations as a followup to this patch.
Project file nonsense:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Scaffolding for the event itself:
* dom/BeforeProcessEvent.cpp: Added.
(WebCore::BeforeProcessEvent::text):
(WebCore::BeforeProcessEvent::setText):
* dom/BeforeProcessEvent.h: Added.
(WebCore::BeforeProcessEvent::create):
(WebCore::BeforeProcessEvent::initBeforeProcessEvent):
(WebCore::BeforeProcessEvent::BeforeProcessEvent):
* dom/BeforeProcessEvent.idl: Added.
* dom/EventNames.h:
Respect the onBeforeProcess attribute:
* dom/Document.cpp:
(WebCore::Document::addListenerTypeIfNeeded):
* dom/Document.h:
(WebCore::Document::):
* html/HTMLAttributeNames.in:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::parseMappedAttribute):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseMappedAttribute):
2010-06-26 Darin Adler <darin@apple.com>
Try to fix Chromium build by adding back function used only by Chromium WebKit.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::defaultChecked): Added back.
* html/HTMLInputElement.h: Added defaultChecked function.
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::httpEquiv): Added back.
* html/HTMLMetaElement.h: Added httpEquiv function.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::defaultSelected): Added back.
* html/HTMLOptionElement.h: Added defaultSelected function.
* rendering/style/StyleRareNonInheritedData.h: Fixed incorrect struct vs. class
here as seen in warnings on Chromium Windows bot.
2010-06-26 Darin Adler <darin@apple.com>
Try to fix Windows build by adding back function used only by Windows WebKit.
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::label): Added back.
* html/HTMLOptionElement.h: Added label function.
2010-06-26 Darin Adler <darin@apple.com>
Try to fix Qt build by adding back function used only by Qt WebKit.
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::content): Added back.
* html/HTMLMetaElement.h: Added content function.
2010-06-26 Darin Adler <darin@apple.com>
* html/HTMLFormElement.h: Removed stray character that got in here before landing.
2010-06-26 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Add more use of reflection, remove unused functions
https://bugs.webkit.org/show_bug.cgi?id=41255
Also noticed that HTMLDirectoryElement was missing its create function
and added that so the element will get the correct class.
* html/HTMLBaseFontElement.idl: Use reflection for the size attribute
in the Objective-C code path too.
* html/HTMLSelectElement.idl: Use reflection for disabled and autofocus
attributes. Also removed spaces and indenting to match other IDL files.
* html/HTMLStyleElement.idl: Use reflection for disabled attribute.
* html/HTMLTableCellElement.idl: Use reflection for noWrap attribute.
* html/HTMLTextAreaElement.idl: Use reflection for disabled, autofocus,
readOnly, and required attributes.
* html/HTMLUListElement.idl: Use reflection for compact attribute.
* html/HTMLDirectoryElement.cpp:
(WebCore::HTMLDirectoryElement::HTMLDirectoryElement): Made inline.
(WebCore::HTMLDirectoryElement::create): Added.
* html/HTMLDirectoryElement.h:
Added create, made constructor private, removed unused functions.
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::parseMappedAttribute): Removed code to
set unused m_media data member.
* html/HTMLStyleElement.h:
Removed unused functions and m_media data member. Also made some
functions private.
* html/HTMLAppletElement.cpp:
* html/HTMLAppletElement.h:
* html/HTMLAreaElement.cpp:
* html/HTMLAreaElement.h:
* html/HTMLBaseFontElement.cpp:
* html/HTMLBaseFontElement.h:
* html/HTMLButtonElement.cpp:
* html/HTMLButtonElement.h:
* html/HTMLDListElement.cpp:
* html/HTMLDListElement.h:
* html/HTMLDivElement.cpp:
* html/HTMLDivElement.h:
* html/HTMLFontElement.cpp:
* html/HTMLFontElement.h:
* html/HTMLFormControlElement.cpp:
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
* html/HTMLFormElement.h:
* html/HTMLFrameElement.cpp: Also removed an incorrect FIXME comment
here after I did a little research to disprove it.
* html/HTMLFrameElement.h:
* html/HTMLFrameSetElement.cpp:
* html/HTMLFrameSetElement.h:
* html/HTMLHRElement.cpp:
* html/HTMLHRElement.h:
* html/HTMLHeadElement.cpp:
* html/HTMLHeadElement.h:
* html/HTMLHeadingElement.cpp:
* html/HTMLHeadingElement.h:
* html/HTMLHtmlElement.cpp:
* html/HTMLHtmlElement.h:
* html/HTMLImageElement.cpp:
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
* html/HTMLInputElement.h:
* html/HTMLIsIndexElement.cpp:
* html/HTMLIsIndexElement.h:
* html/HTMLLIElement.cpp:
* html/HTMLLIElement.h:
* html/HTMLLabelElement.cpp:
* html/HTMLLabelElement.h:
* html/HTMLLegendElement.cpp:
* html/HTMLLegendElement.h:
* html/HTMLLinkElement.cpp:
* html/HTMLLinkElement.h:
* html/HTMLMapElement.cpp:
* html/HTMLMapElement.h:
* html/HTMLMenuElement.cpp:
* html/HTMLMenuElement.h:
* html/HTMLMetaElement.cpp:
* html/HTMLMetaElement.h:
* html/HTMLModElement.cpp:
* html/HTMLModElement.h:
* html/HTMLOListElement.cpp:
* html/HTMLOListElement.h:
* html/HTMLObjectElement.cpp:
* html/HTMLObjectElement.h:
* html/HTMLOptGroupElement.cpp:
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
* html/HTMLOptionElement.h:
* html/HTMLParagraphElement.cpp:
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.cpp:
* html/HTMLParamElement.h:
* html/HTMLPlugInElement.cpp:
* html/HTMLPlugInElement.h:
* html/HTMLPreElement.cpp:
* html/HTMLPreElement.h:
* html/HTMLQuoteElement.cpp:
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.cpp:
* html/HTMLScriptElement.h:
* html/HTMLTableCaptionElement.cpp:
* html/HTMLTableCaptionElement.h:
* html/HTMLTableCellElement.cpp:
* html/HTMLTableCellElement.h:
* html/HTMLTableColElement.cpp:
* html/HTMLTableColElement.h:
* html/HTMLTableElement.cpp:
* html/HTMLTableElement.h:
* html/HTMLTableRowElement.cpp:
* html/HTMLTableRowElement.h:
* html/HTMLTextAreaElement.cpp:
* html/HTMLTextAreaElement.h:
* html/HTMLUListElement.cpp:
* html/HTMLUListElement.h:
* html/HTMLVideoElement.cpp:
* html/HTMLVideoElement.h:
Removed unused functions.
2010-06-26 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Exclude line numbers for sources which are not from the network.
https://bugs.webkit.org/show_bug.cgi?id=41060
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::write):
2010-06-25 Antonio Gomes <tonikitoo@webkit.org>
Unreviewed complementary fix for r61818. It added StaticHashSetListNode.cpp|h to the system,
but did not added it to chromium build system.
* WebCore.gypi:
2010-06-26 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: ScripsPanel.prototype.editScriptSource uses old addBreakpoint signature.
https://bugs.webkit.org/show_bug.cgi?id=41247
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.removeBreakpoint):
(WebInspector.Breakpoint.prototype.set enabled):
(WebInspector.Breakpoint.prototype.set condition):
* inspector/front-end/Object.js:
(WebInspector.Object.prototype.addEventListener):
(WebInspector.Object.prototype.removeEventListener):
(WebInspector.Object.prototype.removeAllListeners):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
(WebInspector.ScriptsPanel.prototype.editScriptSource):
2010-06-26 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Dimitri Glazkov.
Add a guarded window.performance.timing binding which is disabled by default.
https://bugs.webkit.org/show_bug.cgi?id=38924
This is where Web Timing support will be implemented. Web Timing is a
draft spec for exposing load times to web pages. It will be enabled
once the spec and implementaiton are solidified. See:
http://dev.w3.org/2006/webapi/WebTiming/
No new tests because guarded behind a #DEFINE. Will add tests as
functionality is landed.
* Android.mk:
* CMakeLists.txt:
* Configurations/FeatureDefines.xcconfig:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::performance):
* page/DOMWindow.h:
(WebCore::DOMWindow::optionalPerformance):
* page/DOMWindow.idl:
* page/NavigationTiming.cpp: Added.
(WebCore::NavigationTiming::NavigationTiming):
(WebCore::NavigationTiming::frame):
(WebCore::NavigationTiming::disconnectFrame):
(WebCore::NavigationTiming::navigationStart):
* page/NavigationTiming.h: Added.
(WebCore::NavigationTiming::create):
* page/NavigationTiming.idl: Added.
* page/Performance.cpp: Added.
(WebCore::Performance::Performance):
(WebCore::Performance::frame):
(WebCore::Performance::disconnectFrame):
(WebCore::Performance::timing):
* page/Performance.h: Added.
(WebCore::Performance::create):
* page/Performance.idl: Added.
2010-06-25 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
activeTexture wrongly generates error with legal input.
https://bugs.webkit.org/show_bug.cgi?id=41227
Test: fast/canvas/webgl/texture-active-bind.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::activeTexture): Fix the upper limit test for test units.
2010-06-25 Johnny Ding <jnd@chromium.org>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=41061
Make sure Chromium's ScriptController::processingUserGesture follows the JSC's behavior.
Set right value in UserGestureIndicator when handling events in PopupMenuList in chromium.
Test: fast/events/popup-when-select-change.html
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::processingUserGesture):
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupContainer::handleMouseDownEvent):
(WebCore::PopupContainer::handleMouseMoveEvent):
(WebCore::PopupContainer::handleMouseReleaseEvent):
(WebCore::PopupContainer::handleWheelEvent):
(WebCore::PopupContainer::handleKeyEvent):
2010-06-25 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Make PendingScript hold a CachedResourceClient open for its lifetime
https://bugs.webkit.org/show_bug.cgi?id=40968
This replaces the mechanism introduced in r61374 with a simpler
appraoch for preventing unexpected purges: always keep a client open.
This approach will allow deferred scripts to add a client after
the resource may have already been loaded without having to worry about
the buffer being purged in the meantime.
No new tests because making a CachedResource purse itself is not
testable from a LayoutTest.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::watchForLoad):
(WebCore::HTMLDocumentParser::notifyFinished):
* html/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::~HTMLScriptRunner):
(WebCore::HTMLScriptRunner::sourceFromPendingScript):
(WebCore::HTMLScriptRunner::isPendingScriptReady):
(WebCore::HTMLScriptRunner::executePendingScript):
(WebCore::HTMLScriptRunner::watchForLoad):
(WebCore::HTMLScriptRunner::stopWatchingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::requestScript):
(WebCore::HTMLScriptRunner::PendingScript::~PendingScript):
(WebCore::HTMLScriptRunner::PendingScript::releaseElementAndClear):
(WebCore::HTMLScriptRunner::PendingScript::setCachedScript):
(WebCore::HTMLScriptRunner::PendingScript::cachedScript):
* html/HTMLScriptRunner.h:
(WebCore::HTMLScriptRunner::PendingScript::PendingScript):
(WebCore::HTMLScriptRunner::PendingScript::watchingForLoad):
(WebCore::HTMLScriptRunner::PendingScript::setWatchingForLoad):
(WebCore::HTMLScriptRunner::PendingScript::notifyFinished):
* html/HTMLScriptRunnerHost.h:
2010-06-25 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
getUniform will not work for fetching uniform array elements
https://bugs.webkit.org/show_bug.cgi?id=34508
Test: fast/canvas/webgl/gl-uniform-arrays.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::attachShader): Generate correct errors.
(WebCore::WebGLRenderingContext::getUniform): Dealing with array elements.
(WebCore::WebGLRenderingContext::useProgram): Deal with program==null.
(WebCore::WebGLRenderingContext::validateProgram): Generate correct errors.
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::useProgram): Deal with program==null.
2010-06-25 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Bring set/get state functions to GLES2 conformance
https://bugs.webkit.org/show_bug.cgi?id=41095
Tests: fast/canvas/webgl/gl-enable-enum-test.html
fast/canvas/webgl/gl-enum-tests.html
* html/canvas/WebGLRenderingContext.cpp: Check input parameters according to GLES2 spec.
(WebCore::WebGLRenderingContext::blendEquation):
(WebCore::WebGLRenderingContext::blendEquationSeparate):
(WebCore::WebGLRenderingContext::disable):
(WebCore::WebGLRenderingContext::enable):
(WebCore::WebGLRenderingContext::hint):
(WebCore::WebGLRenderingContext::isEnabled):
(WebCore::WebGLRenderingContext::pixelStorei):
(WebCore::WebGLRenderingContext::validateBlendEquation):
(WebCore::WebGLRenderingContext::validateCapability):
* html/canvas/WebGLRenderingContext.h: Add helper function declaration.
2010-06-25 Sterling Swigart <sswigart@google.com>
Reviewed by David Levin.
Callback code generation fixed so that now string parameters are converted to JSString
using the jsString method instead of the toJS method which would not compile.
https://bugs.webkit.org/show_bug.cgi?id=41119
* bindings/scripts/CodeGeneratorJS.pm: Now generates jsString for String parameters in callbacks.
* bindings/scripts/test/JS/JSTestCallback.cpp: Fixed test for above.
(WebCore::JSTestCallback::callbackWithClass2Param): Ditto.
2010-06-25 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
A buffer should be bound to one target in its lifetime
https://bugs.webkit.org/show_bug.cgi?id=41108
Test: fast/canvas/webgl/buffer-bind-test.html
* html/canvas/WebGLBuffer.cpp:
(WebCore::WebGLBuffer::WebGLBuffer): Init target to 0.
(WebCore::WebGLBuffer::associateBufferData): Remove target parameter, use one byteLength member.
(WebCore::WebGLBuffer::associateBufferSubData): Ditto.
(WebCore::WebGLBuffer::byteLength): Ditto.
(WebCore::WebGLBuffer::setTarget): Set target.
* html/canvas/WebGLBuffer.h: Cache target in the WebGLBuffer object, use one byteLength member.
(WebCore::WebGLBuffer::getTarget):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::bindBuffer): Check if a buffer is bound to another target; set buffer object internal target.
(WebCore::WebGLRenderingContext::bufferData): Remove target parameter and use the WebGLBuffer cached target instead.
(WebCore::WebGLRenderingContext::bufferSubData): Ditto.
(WebCore::WebGLRenderingContext::validateElementArraySize): Ditto.
(WebCore::WebGLRenderingContext::validateIndexArrayConservative): Ditto.
(WebCore::WebGLRenderingContext::vertexAttribPointer): Ditto.
2010-06-25 Dean Jackson <dino@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=41188
Animations should not require 0% and 100% keyframes
When we are generating the animation lists in CSSStyleSelector,
rather than bail if we notice that "from" or "to" are missing, we
now generate synthetic keyframes for those cases.
Tests: animations/missing-from-to-transforms.html
animations/missing-from-to.html
WebCore/manual-tests/animation-with-transition.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::styleForKeyframe):
Moved individual keyframe generation into a new function.
(WebCore::CSSStyleSelector::keyframeStylesForAnimation):
Call the new function above for regular keyframes, and
also check for missing keyframes and generate them if
necessary.
* css/CSSStyleSelector.h:
2010-06-25 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
We should parse <html>
https://bugs.webkit.org/show_bug.cgi?id=41239
This patch is hard to test, but I think this patch lets us parse a
document consisting of only an <html> start tag.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::insertHTMLStartTagBeforeHTML):
(WebCore::HTMLTreeBuilder::insertHTMLStartTagInBody):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::push):
2010-06-25 Dan Bernstein <mitz@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/8000667> Certain text is repeated before and after a line break
Test: fast/text/bidi-explicit-embedding-past-end.html
* platform/text/BidiResolver.h:
(WebCore::::createBidiRunsForLine): Committing explicit embedding past the end of the range
creates BidiRuns up to the end of the range, so at that point, we can stop iterating.
2010-06-25 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter
https://bugs.webkit.org/show_bug.cgi?id=41202
Hit the Windoze with the compile bat.
* WebCore.vcproj/WebCore.vcproj:
2010-06-25 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTMLTreeBuilder should branch first on token type and then on insertion mode
https://bugs.webkit.org/show_bug.cgi?id=41232
This is different than how the spec is written, but it lets us remove a
lot of redudancy in the algorithm. We might even want to pull some of
the branches on token name outside the insertion mode branch, but I'll
leave that for a future patch.
Although this looks like a big patch, it's mostly just a mechanical
switch permutation.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::processDoctypeToken):
(WebCore::HTMLTreeBuilder::processStartTag):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processComment):
(WebCore::HTMLTreeBuilder::processCharacter):
(WebCore::HTMLTreeBuilder::processEndOfFile):
(WebCore::HTMLTreeBuilder::processDefaultForInitialMode):
(WebCore::HTMLTreeBuilder::processDefaultForBeforeHTMLMode):
(WebCore::HTMLTreeBuilder::processDefaultForBeforeHeadMode):
(WebCore::HTMLTreeBuilder::processDefaultForInHeadMode):
(WebCore::HTMLTreeBuilder::processDefaultForInHeadNoscriptMode):
(WebCore::HTMLTreeBuilder::processDefaultForAfterHeadMode):
* html/HTMLTreeBuilder.h:
2010-06-25 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Tree builder doesn't need to return a Node
https://bugs.webkit.org/show_bug.cgi?id=41225
The old tree builder returned the newly inserted Node, but the new tree
builder doesn't need to do that as far as I can tell. Removing the
return value cuts down on a bunch of accounting.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertDoctype):
(WebCore::HTMLTreeBuilder::insertComment):
(WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
(WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
(WebCore::HTMLTreeBuilder::insertScriptElement):
* html/HTMLTreeBuilder.h:
2010-06-25 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
getParameter(COLOR_WRITEMASK) needs to return Array
https://bugs.webkit.org/show_bug.cgi?id=40437
* bindings/js/JSWebGLRenderingContextCustom.cpp: Handling bool array.
(WebCore::toJS):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: Handling bool array.
(WebCore::toV8Object):
* html/canvas/WebGLGetInfo.cpp: Handling bool array.
(WebCore::WebGLGetInfo::WebGLGetInfo):
(WebCore::WebGLGetInfo::getBoolArray):
* html/canvas/WebGLGetInfo.h: Handling bool array.
(WebCore::WebGLGetInfo::):
* html/canvas/WebGLRenderingContext.cpp: Handling bool array.
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::getBooleanArrayParameter):
* html/canvas/WebGLRenderingContext.h: Handling bool array.
2010-06-25 Evan Stade <estade@chromium.org>
Reviewed by Darin Fisher.
[chromium linux] Improve look of scrollbars
https://bugs.webkit.org/show_bug.cgi?id=35775
This will affect layout pixel tests, which will need to be rebaselined.
* platform/Scrollbar.cpp: need the buttons to be invalidated when the
thumb moves as they paint differently if the thumb is at the top or
bottom
(WebCore::Scrollbar::updateThumbPosition):
(WebCore::Scrollbar::updateThumbProportion):
* platform/chromium/ScrollbarThemeChromium.cpp:
(WebCore::ScrollbarThemeChromium::trackRect): share code between
linux/windows
* platform/chromium/ScrollbarThemeChromiumLinux.cpp:
(WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
(WebCore::outlineColor): up the contrast
(WebCore::ScrollbarThemeChromiumLinux::paintButton): add custom button
drawing implementation
(WebCore::ScrollbarThemeChromiumLinux::buttonSize): add buttons
* platform/chromium/ScrollbarThemeChromiumWin.cpp: share code between
linux/windows
* rendering/RenderThemeChromiumLinux.cpp: improve stock colors to get
better contrast and integration with stock chrome theme
2010-06-25 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Move decoding into DocumentParser to further simplify RawDataDocumentParser and DocumentWriter
https://bugs.webkit.org/show_bug.cgi?id=41202
The silly thing about this patch is that none of the
RawDataDocumentParser subclasses actually use any of the
data passed to them via appendBytes.
This makes the relationship between DocumentWriter and
DocumentParser slightly more confusing, however I think this
DocumentParser API is slightly nicer.
Next step is to split DecodedDataDocumentParser out from
DocumentParser, and then the base DocumentParser won't know
anything about decoding or SegmentedString.
No functional change, thus no tests.
* WebCore.xcodeproj/project.pbxproj:
* dom/DocumentParser.h:
* dom/RawDataDocumentParser.h:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::createDecoderIfNeeded):
(WebCore::DocumentWriter::reportDataRecieved):
(WebCore::DocumentWriter::addData):
* loader/DocumentWriter.h:
* loader/ImageDocument.cpp:
(WebCore::ImageDocumentParser::appendBytes):
* loader/MediaDocument.cpp:
(WebCore::MediaDocumentParser::appendBytes):
* loader/PluginDocument.cpp:
(WebCore::PluginDocumentParser::appendBytes):
* loader/SinkDocument.cpp:
(WebCore::SinkDocumentParser::SinkDocumentParser):
(WebCore::SinkDocumentParser::appendBytes):
(WebCore::SinkDocument::createParser):
2010-06-25 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Split DocumentParser::write into separate append and insert calls
https://bugs.webkit.org/show_bug.cgi?id=41197
Unfortunately this is still somewhat confusing as
"insert" means "insert this data at the current
insertion point and run the parser synchronously
unless we're in a nested write call" and "append"
means "append this data to the end and run the
parser if not in a nested call or until possibly yielding".
This at least makes clearer which document parsers implement
which behavior, and paves the way for moving the decoding
logic into DocumentParser from DocumentWriter.
No functional changes, thus no tests.
* dom/Document.cpp:
(WebCore::Document::write):
* dom/DocumentParser.h:
* dom/RawDataDocumentParser.h:
(WebCore::RawDataDocumentParser::insert):
(WebCore::RawDataDocumentParser::append):
* dom/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::insert):
(WebCore::XMLDocumentParser::append):
* dom/XMLDocumentParser.h:
* dom/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::resumeParsing):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::parseDocumentFragment):
* html/HTMLDocumentParser.h:
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::insert):
(WebCore::LegacyHTMLDocumentParser::append):
* html/LegacyHTMLDocumentParser.h:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
(WebCore::DocumentWriter::addData):
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::append):
* loader/TextDocument.cpp:
(WebCore::TextDocumentParser::insert):
(WebCore::TextDocumentParser::append):
(WebCore::TextDocumentParser::finish):
2010-06-25 Daniel Cheng <dcheng@chromium.org>
Reviewed by Darin Fisher.
[chromium] Add new stubs for querying platform drag-and-drop and copy-and-paste data.
This change adds new stubs for querying for data in a clipboard or drag operation. This is
so adding support for more data types in clipboard/drag operations doesn't become
increasingly expensive, since we currently copy all the drag data we need every time a new
web drop target is entered. It also adds a new mechanism to write back to the system
clipboard that isn't tied to one data type.
https://bugs.webkit.org/show_bug.cgi?id=40540
No new tests since we're just adding new ChromiumBridge APIs. When we switch to it, it will
be covered by the existing tests.
* platform/chromium/ChromiumBridge.h:
* platform/chromium/PasteboardPrivate.h:
(WebCore::PasteboardPrivate::):
2010-06-25 Mario Sanchez Prada <msanchez@igalia.com>
Reviewed by Xan Lopez.
[Gtk] Implement atk_table_get_column_header
https://bugs.webkit.org/show_bug.cgi?id=30896
Implemented get_column_header and modified get_row_header
accordingly to keep them both coherent among themselves.
Based on a previous patch by Joanmarie Diggs.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(webkit_accessible_table_get_column_header):
(webkit_accessible_table_get_row_header):
2010-06-29 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Pasteboard code does not take into account the nil character when getting and setting markup/netscape-url data
https://bugs.webkit.org/show_bug.cgi?id=41221
Take into account null-terminator when getting and setting markup and
Netscape URL pasteboard types. This means that if the selection data
contains the null terminator, it won't be included in the final String.
When setting the pasteboard data the null terminator is now included to
match the behavior of other applications.
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::getClipboardContents):
Create the markup string after using g_strndup to protect against non-null-terminated
strings. Use String::fromUTF8 here to ensure that the string is not longer than the
first null-terminator. Also fix a small indentation issue.
(WebCore::PasteboardHelper::fillSelectionData):
Always include the null-terminator when setting pasteboard data manually. This matches
the behavior of other browser applications.
2010-06-25 Sam Magnuson <smagnuson@netflix.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] When any geometry change happens to a node it will resize the
backing cache
https://bugs.webkit.org/show_bug.cgi?id=40378
Continue to grow the cache, but never toss it. When the pixmap
cache gets too big it will be lost and created at the right size
next time.
No new tests: this is an optimization.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::recache):
(WebCore::GraphicsLayerQtImpl::paint):
(WebCore::GraphicsLayerQtImpl::flushChanges):
2010-06-25 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=41019
Canvas: Remember verified clean origins for drawImage()
Made CanvasRenderingContext2D cache the KURLs of clean origins
for fast repeated lookup.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::checkOrigin):
* html/canvas/CanvasRenderingContext2D.h:
2010-06-25 Robert Hogan <robert@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] HTTP 307 after a 303 after a POST re-sends POST data from the original request
https://bugs.webkit.org/show_bug.cgi?id=35301
Qt needs to use ResourceRequest::request()->httpMethod()) in order to determine
the appropriate method for a 307 redirect request.
When deciding if it needs to override a POST method with a GET method during a
redirect chain, QNetworkReplyHandler needs to check the HTTP method stored
in ResourceRequest::request()->httpMethod(). This will always contain the
original request method in a redirect chain and, more importantly, is the
method that will be used for the request created from the redirect
if it is not overridden.
* platform/network/qt/QNetworkReplyHandler.cpp:
(WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2010-06-25 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
Removed a one-line method that only had one internal caller.
* rendering/RenderBlock.h: Removed bidiReorderLine()
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::layoutInlineChildren): Moved the implementation of
bidiReorderLine() inline here.
2010-06-25 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Take a KURL parameter in Document's constructor.
This will remove the one case where Document::url()
and FrameLoader::url() are not equal, allowing us to
remove FrameLoader::url().
https://bugs.webkit.org/show_bug.cgi?id=41166
Refactor only, no new tests.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Take a KURL and pass it through to Document.
(WebCore::DOMImplementation::createHTMLDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document): Call setURL() if a frame or a non-empty KURL is specified.
(WebCore::Document::initSecurityContext): m_url is now initialized, so use it instead
of m_frame->loader()->url() for initializing the SecurityOrigin.
* dom/Document.h:
(WebCore::Document::create):
(WebCore::Document::createXHTML):
* html/HTMLDocument.cpp:
* html/HTMLDocument.h: Add KURL parameter to create() and constructor.
* html/HTMLViewSourceDocument.cpp:
* html/HTMLViewSourceDocument.h: Add KURL parameter to create() and constructor.
* loader/CachedFont.cpp:
(WebCore::CachedFont::ensureSVGFontData):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument): Take a KURL and pass it through to Document.
(WebCore::DocumentWriter::begin): Pass existing url parameter to constructors, and remove
redundant Document::setURL() call.
* loader/DocumentWriter.h:
* loader/FTPDirectoryDocument.cpp:
* loader/FTPDirectoryDocument.h: Add KURL parameter to create() and constructor.
* loader/ImageDocument.cpp:
* loader/ImageDocument.h: Add KURL parameter to create() and constructor.
* loader/MediaDocument.cpp:
* loader/MediaDocument.h: Add KURL parameter to create() and constructor.
* loader/PlaceholderDocument.h: Add KURL parameter to create() and constructor.
* loader/PluginDocument.cpp:
* loader/PluginDocument.h: Add KURL parameter to create() and constructor.
* loader/SinkDocument.cpp:
* loader/SinkDocument.h: Add KURL parameter to create() and constructor.
* loader/TextDocument.cpp:
* loader/TextDocument.h: Add KURL parameter to create() and constructor.
* svg/SVGDocument.cpp:
* svg/SVGDocument.h: Add KURL parameter to create() and constructor.
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseXML):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61812.
http://trac.webkit.org/changeset/61812
https://bugs.webkit.org/show_bug.cgi?id=41216
breaks Chromium workers tests (Requested by mnaganov on
#webkit).
* storage/AbstractDatabase.cpp:
* storage/AbstractDatabase.h:
* storage/Database.cpp:
(WebCore::Database::databaseInfoTableName):
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::updateGuidVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::databaseVersionKey):
(WebCore::DatabaseCreationCallbackTask::create):
(WebCore::DatabaseCreationCallbackTask::performTask):
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::openAndVerifyVersion):
(WebCore::retrieveTextResultFromDatabase):
(WebCore::Database::getVersionFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::Database::setVersionInDatabase):
(WebCore::Database::versionMatchesExpected):
(WebCore::Database::close):
(WebCore::Database::disableAuthorizer):
(WebCore::Database::enableAuthorizer):
(WebCore::Database::setAuthorizerReadOnly):
(WebCore::Database::lastActionChangedDatabase):
(WebCore::Database::lastActionWasInsert):
(WebCore::Database::resetDeletes):
(WebCore::Database::hadDeletes):
(WebCore::guidForOriginAndName):
(WebCore::Database::resetAuthorizer):
(WebCore::Database::performOpenAndVerify):
(WebCore::Database::performCreationCallback):
(WebCore::Database::version):
(WebCore::Database::setExpectedVersion):
(WebCore::Database::stringIdentifier):
(WebCore::Database::displayName):
(WebCore::Database::estimatedSize):
(WebCore::Database::fileName):
* storage/Database.h:
(WebCore::Database::scriptExecutionContext):
(WebCore::Database::opened):
(WebCore::Database::isNew):
(WebCore::Database::databaseDebugName):
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::denyBasedOnTableName):
* storage/DatabaseAuthorizer.h:
(WebCore::DatabaseAuthorizer::create):
* storage/DatabaseSync.cpp:
(WebCore::DatabaseSync::databaseInfoTableName):
(WebCore::DatabaseSync::openDatabaseSync):
(WebCore::DatabaseSync::DatabaseSync):
(WebCore::DatabaseSync::~DatabaseSync):
(WebCore::DatabaseSync::version):
(WebCore::DatabaseSync::changeVersion):
(WebCore::DatabaseSync::transaction):
(WebCore::DatabaseSync::scriptExecutionContext):
* storage/DatabaseSync.h:
(WebCore::DatabaseSync::databaseDebugName):
* storage/DatabaseTask.cpp:
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
* storage/DatabaseTask.h:
(WebCore::DatabaseOpenTask::create):
2010-06-25 Lei Zheng <lzheng@chromium.org>
Reviewed by Dimitri Glazkov.
Add a flag to the ResourceResponse for tracking if a request was fetched when
Alternate-protocol is available.
https://bugs.webkit.org/show_bug.cgi?id=41001
No new tests. (This is just a setter and getter.)
* platform/network/chromium/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::wasAlternateProtocolAvailable):
(WebCore::ResourceResponse::setWasAlternateProtocolAvailable):
2010-06-25 Lyon Chen <liachen@rim.com>
Reviewed by Darin Adler.
InspectorCSSStore.cpp is not surrounded with ENABLE(INSPECTOR)
https://bugs.webkit.org/show_bug.cgi?id=41004
Surround InspectorCSSStore.cpp code with ENABLE(INSPECTOR) so it will not
break the build when INSPECTOR is disabled.
* inspector/InspectorCSSStore.cpp:
2010-06-25 No'am Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Simon Hausmann.
[Qt] WebGL: missing file
https://bugs.webkit.org/show_bug.cgi?id=40998
Added a missing file to WebCore.pro
No new tests; build fix
* WebCore.pro:
2010-06-25 Adam Roben <aroben@apple.com>
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Added a missing </File> tag.
2010-06-25 Alex Milowski <alex@milowski.com>
Reviewed by Kenneth Rohde Christiansen.
This patch changes the vertical alignment to rely upon baseline
alignment for all MathML rendering. This fixes a number of layout
issues and the implementation is much more clean.
Also, this patch adds a horizontal green line in the debug layout
so you can see the top padding of any RenderMathMLBlock instance.
Test: mathml/presentation/row-alignment.xhtml
* css/mathml.css:
* mathml/RenderMathMLBlock.cpp:
* mathml/RenderMathMLFraction.cpp:
* mathml/RenderMathMLFraction.h:
* mathml/RenderMathMLOperator.cpp:
* mathml/RenderMathMLOperator.h:
* mathml/RenderMathMLRoot.cpp:
* mathml/RenderMathMLRow.cpp:
* mathml/RenderMathMLRow.h:
* mathml/RenderMathMLSquareRoot.cpp:
* mathml/RenderMathMLSubSup.cpp:
* mathml/RenderMathMLUnderOver.cpp:
2010-06-25 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Can't see source when hitting debugger statement in evaled source
https://bugs.webkit.org/show_bug.cgi?id=41058
Test: inspector/debugger-pause-in-eval-script.html
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::sourceParsed): use lexical global object to figure out
where the script is compiled. Otherwise scripts typed in Web Inspector console will
be treated as ones evaluated in the context of Web Inspector and won't appear in the
scripts list.
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didParseSource): cache script sources for eval's too.
2010-06-25 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kenneth Rohde Christiansen.
[EFL] Use a descriptive string in FileChooser when multiple files can
be selected.
https://bugs.webkit.org/show_bug.cgi?id=40943
EFL port has no tests yet, so no new tests.
* platform/efl/FileChooserEfl.cpp:
(WebCore::FileChooser::basenameForWidth):
2010-06-25 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
SVG Text Highlighting not yet supported (in Safari)
https://bugs.webkit.org/show_bug.cgi?id=41200
Add text match marker highlighting support for SVG text - searching for SVG text in Safari now paints the nice yellow highlighting rect, and the
white rectangles for all text matches. Behaves exactly like HTML text, but respecting SVGs per-character/per-chunk transformations,
allowing to highlight textPaths, tspans with absolute per-character positions etc..
Only manually testable, thus no new tests.
* rendering/InlineBox.h: Expose calculateBoundaries() in non-SVG builds as well, now used by InlineTextBox too.
* rendering/InlineTextBox.h: Add calculateBoundaries(), which will be used to refactor some code in RenderText, see below.
(WebCore::InlineTextBox::calculateBoundaries): Just return a IntRect(x(), y(), width(), height()) here.
(WebCore::RenderObject::isSVGInlineText):
* rendering/RenderSVGInlineText.h:
(WebCore::RenderSVGInlineText::isSVGInlineText): Return true for isSVGInlineText(), return false for isSVGText() (default in RenderObject.h)
* rendering/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::paint): Only paint box decorations in PaintPhase(Child)BlockBackground, exit afterwards just like RenderBlock does.
Otherwise the white text match marker rectangle gets drawn over the yellow highlight that Safari draws.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::paint): Accept a new painting phase: PaintPhaseSelection, used by Safari when drawing the yellow highlight rect.
* rendering/RenderText.cpp:
(WebCore::RenderText::absoluteQuads): Use calculateBoundaries() instead of IntRect(x(), y(), width(), height()). SVG provides different boundaries here.
(WebCore::RenderText::absoluteQuadsForRange): Ditto. This is the main change, leading to correct text highlight placement.
* rendering/SVGInlineFlowBox.cpp: Add assertion that painting is not disabled, for consistency. Change paint phase assertion to include PaintPhaseSelection.
(WebCore::SVGInlineFlowBox::paint):
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::selectionRectForTextChunkPart): Refactored from selectionRect(), to share code between selectionRect/computeTextMatchMarkerRect.
(WebCore::SVGInlineTextBox::selectionRect): Use new helper function selectionRectForTextChunkPart().
(WebCore::SVGInlineTextBox::paint): Ditto. Call new computeTextMatchMarkerRect() function.
(WebCore::SVGInlineTextBox::computeTextMatchMarkerRect): Implemented similar to HTML, but respecting SVGs concept of text chunk parts.
(WebCore::SVGInlineTextBox::paintText): In PaintPhaseSelection, only paint selected text, not anything before/after the selection start/end.
(WebCore::SVGInlineTextBox::calculateBoundaries): Early exit, if m_chunkTransformation is identity.
* rendering/SVGInlineTextBox.h: Added "bool paintSelectedTextOnly" to paintText() and add new computeTextMatchMarkerRect(RenderStyle*) function.
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::paint): Change paint phase assertion to include PaintPhaseSelection.
2010-06-25 John Gregg <johnnyg@google.com>
Reviewed by Darin Fisher.
Notification should expose ltr/rtl as TextDirection, not String
https://bugs.webkit.org/show_bug.cgi?id=40871
No new tests; existing test covers this, just renaming a method.
* notifications/Notification.h:
(WebCore::Notification::direction):
2010-06-25 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61842.
http://trac.webkit.org/changeset/61842
https://bugs.webkit.org/show_bug.cgi?id=41208
It broke Windows build (Requested by Ossy_ on #webkit).
* ForwardingHeaders/wtf/win/OwnPtrWin.h: Removed.
2010-06-25 Patrick Gansterer <paroga@paroga.com>
Reviewed by Darin Adler.
Remove unneeded whitespace from svgtags.in.
https://bugs.webkit.org/show_bug.cgi?id=40912
make_names.pl throws an error at non-empty lines
when using cl.exe as preprocessor.
* svg/svgtags.in:
2010-06-25 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Rob Buis.
Split up isSVGText() in isSVGText() / isSVGInlineText()
https://bugs.webkit.org/show_bug.cgi?id=41204
Introduce isSVGInlineText(), to provide a safe mechanism to differentiate between RenderSVGText / RenderSVGInlineText.
No change in functionality, thus no new tests.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::shouldPreserveNewline): s/isSVGText/isSVGInlineText/
(WebCore::RenderBlock::findNextLineBreak): Ditto.
* rendering/RenderObject.h:
(WebCore::RenderObject::isSVGInlineText): Return false, by default.
* rendering/RenderSVGInlineText.h:
(WebCore::RenderSVGInlineText::isSVGInlineText): Return true here, don't return true anymore for isSVGText().
* rendering/RenderText.cpp:
(WebCore::RenderText::setTextInternal): s/isSVGText/isSVGInlineText/
* rendering/RenderTreeAsText.cpp: Remove hack, now that we can properly differentiate between RenderSVGText / RenderSVGInlineText.
(WebCore::write):
2010-06-25 Kwang Yul Seo <skyul@company100.net>
Reviewed by Adam Barth.
Change OwnPtrCommon to include platform-specific headers
https://bugs.webkit.org/show_bug.cgi?id=40279
Adding new type to OwnPtrCommon needlessly causes all ports to do full rebuilds.
Change OwnPtrCommon to include platform-specific headers to avoid all ports rebuilds.
* ForwardingHeaders/wtf/win: Added.
* ForwardingHeaders/wtf/win/OwnPtrWin.h: Added.
2010-06-25 Patrick Gansterer <paroga@paroga.com>
Reviewed by Adam Barth.
Implement TextCodecs for WinCE port.
https://bugs.webkit.org/show_bug.cgi?id=32169
Originally written by Yong Li <yong.li@torchmobile.com>
* platform/graphics/FontCache.h:
* platform/graphics/wince/FontCacheWince.cpp:
(WebCore::FontCache::getMultiLanguageInterface):
* platform/text/wince/TextCodecWinCE.cpp: Added.
(WebCore::codePageCharsets):
(WebCore::knownCharsets):
(WebCore::supportedCharsets):
(WebCore::languageManager):
(WebCore::addCharset):
(WebCore::LanguageManager::LanguageManager):
(WebCore::getCodePage):
(WebCore::newTextCodecWinCE):
(WebCore::TextCodecWinCE::TextCodecWinCE):
(WebCore::TextCodecWinCE::~TextCodecWinCE):
(WebCore::TextCodecWinCE::registerBaseEncodingNames):
(WebCore::TextCodecWinCE::registerBaseCodecs):
(WebCore::TextCodecWinCE::registerExtendedEncodingNames):
(WebCore::TextCodecWinCE::registerExtendedCodecs):
(WebCore::getCodePageFlags):
(WebCore::findFirstNonAsciiCharacter):
(WebCore::decode):
(WebCore::TextCodecWinCE::decode):
(WebCore::TextCodecWinCE::encode):
(WebCore::TextCodecWinCE::enumerateSupportedEncodings):
* platform/text/wince/TextCodecWinCE.h: Added.
2010-06-24 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dirk Schulze.
Bug 40880 - SVG properties fill and stroke do not accept system colors
https://bugs.webkit.org/show_bug.cgi?id=40880
Handle css system colors in fill and stroke properties.
Test: svg/css/rect-system-color.xhtml
* css/CSSParser.cpp: Remove comment and unneeded if condition
(WebCore::CSSParser::parseValue):
* css/SVGCSSParser.cpp: Allow css system colors
(WebCore::CSSParser::parseSVGValue):
2010-06-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Make DocumentParser API private on subclasses to catch misuse bugs
https://bugs.webkit.org/show_bug.cgi?id=41186
This already found one bug:
https://bugs.webkit.org/show_bug.cgi?id=41187
Added a new HTMLDocumentParaser::parseDocumentFragment so that
DocumentFragment.cpp does not need to use private methods.
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::parseHTML):
* dom/XMLDocumentParser.h:
(WebCore::XMLDocumentParser::setIsXHTMLDocument):
(WebCore::XMLDocumentParser::isXHTMLDocument):
(WebCore::XMLDocumentParser::setIsXHTMLMPDocument):
(WebCore::XMLDocumentParser::isXHTMLMPDocument):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::parseDocumentFragment):
* html/HTMLDocumentParser.h:
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::parseDocumentFragment):
* html/LegacyHTMLDocumentParser.h:
(WebCore::LegacyHTMLDocumentParser::forceSynchronous):
(WebCore::LegacyHTMLDocumentParser::processingContentWrittenByScript):
* html/LegacyHTMLTreeBuilder.cpp:
(WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
* loader/TextDocument.cpp:
2010-05-28 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha.
[GStreamer] multiple video sink support
https://bugs.webkit.org/show_bug.cgi?id=39472
Playbin2 video-sink is now a bin containing a tee element capable
of dispatching the buffers to multiple video sinks. By default
only our webkit video sink is used. This will allow
GStreamerGWorld to add support for autovideosink in the future.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize):
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out AfterHeadMode for tree builder
https://bugs.webkit.org/show_bug.cgi?id=41191
This mode is fairly similar to the others. I needed to change some of
the types around w.r.t. Nodes/Elements.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertElement):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::push):
(WebCore::HTMLTreeBuilder::ElementStack::remove):
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out InHeadNoscriptMode for tree builder
https://bugs.webkit.org/show_bug.cgi?id=41189
Lots of notImplemented() calls in this state. I need to figure how to
delegate handling of a token from one state to another.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processToken):
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out InHeadMode for tree builder
https://bugs.webkit.org/show_bug.cgi?id=41184
This state is relatively straightforward. We introduce the stack of
open elements to track that notion in the spec. The old tree builder
has a nice data structure for that, which we'll probably steal, but I'd
like to see what the full API is first.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertCharacter):
(WebCore::HTMLTreeBuilder::insertGenericRCDATAElement):
(WebCore::HTMLTreeBuilder::insertGenericRawTextElement):
(WebCore::HTMLTreeBuilder::insertScriptElement):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::ElementStack::pop):
(WebCore::HTMLTreeBuilder::ElementStack::top):
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out BeforeHeadMode tree builder state
https://bugs.webkit.org/show_bug.cgi?id=41183
This makes procesToken recursive, which might not be the best idea.
Also, we can now make fake AtomicHTMLTokens for use by the algorithm.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertElement):
* html/HTMLTreeBuilder.h:
2010-06-22 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by David Hyatt.
Add a NodeList-derivated wrapper class for a ListHashSet.
https://bugs.webkit.org/show_bug.cgi?id=41081
StaticHashSetList will work as a wrapper to ListHashSet objects that are
aimed to be exposed to the DOM.
As a use case, the rect based HitTest (bug 40197) will store the retrieved nodes
in a ListHashSet. It is going to be exposed to the DOM through are nodesFromRect
of Document returning a NodeList (i.e. StatisHashSetList) wrapping a ListHashSet.
No new tests.
2010-06-24 Cris Neckar <cdn@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Out of bounds write in WebCore::PNGImageDecoder::rowAvailable
https://bugs.webkit.org/show_bug.cgi?id=40798
Catches error in row callback for libPNG when extra rows are returned.
Test: fast/images/png-extra-row-crash.html
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable):
2010-06-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Clean up and document DocumentWriter::replaceDocument code path
https://bugs.webkit.org/show_bug.cgi?id=41182
No functional changes, thus no tests.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
- Remove comment which could be misleading.
2010-06-23 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Implementing DatabaseSync::openDatabaseSync().
https://bugs.webkit.org/show_bug.cgi?id=40607
Moved some common code from Database to AbstractDatabase. Made
performOpenAndVerify() virtual, since DatabaseSync doesn't need to
interact with DatabaseThread. Removed the m_creationCallback
field, since it's only needed in the openDatabase{Sync} methods.
* storage/AbstractDatabase.cpp:
(WebCore::retrieveTextResultFromDatabase):
(WebCore::setTextValueInDatabase):
(WebCore::guidMutex):
(WebCore::guidToVersionMap):
(WebCore::updateGuidVersionMap):
(WebCore::guidToDatabaseMap):
(WebCore::guidForOriginAndName):
(WebCore::AbstractDatabase::databaseInfoTableName):
(WebCore::AbstractDatabase::AbstractDatabase):
(WebCore::AbstractDatabase::closeDatabase):
(WebCore::AbstractDatabase::version):
(WebCore::AbstractDatabase::performOpenAndVerify):
(WebCore::AbstractDatabase::scriptExecutionContext):
(WebCore::AbstractDatabase::securityOrigin):
(WebCore::AbstractDatabase::stringIdentifier):
(WebCore::AbstractDatabase::displayName):
(WebCore::AbstractDatabase::estimatedSize):
(WebCore::AbstractDatabase::fileName):
(WebCore::AbstractDatabase::databaseVersionKey):
(WebCore::AbstractDatabase::getVersionFromDatabase):
(WebCore::AbstractDatabase::setVersionInDatabase):
(WebCore::AbstractDatabase::versionMatchesExpected):
(WebCore::AbstractDatabase::setExpectedVersion):
(WebCore::AbstractDatabase::disableAuthorizer):
(WebCore::AbstractDatabase::enableAuthorizer):
(WebCore::AbstractDatabase::setAuthorizerReadOnly):
(WebCore::AbstractDatabase::lastActionChangedDatabase):
(WebCore::AbstractDatabase::lastActionWasInsert):
(WebCore::AbstractDatabase::resetDeletes):
(WebCore::AbstractDatabase::hadDeletes):
(WebCore::AbstractDatabase::resetAuthorizer):
* storage/AbstractDatabase.h:
(WebCore::AbstractDatabase::opened):
(WebCore::AbstractDatabase::isNew):
(WebCore::AbstractDatabase::databaseDebugName):
* storage/Database.cpp:
(WebCore::DatabaseCreationCallbackTask::create):
(WebCore::DatabaseCreationCallbackTask::performTask):
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask):
(WebCore::Database::openDatabase):
(WebCore::Database::Database):
(WebCore::Database::version):
(WebCore::Database::openAndVerifyVersion):
(WebCore::Database::close):
(WebCore::Database::stop):
(WebCore::Database::performOpenAndVerify):
* storage/Database.h:
(WebCore::Database::sqliteDatabase):
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::create):
(WebCore::DatabaseAuthorizer::DatabaseAuthorizer):
(WebCore::DatabaseAuthorizer::denyBasedOnTableName):
* storage/DatabaseAuthorizer.h:
* storage/DatabaseSync.cpp:
(WebCore::DatabaseSync::openDatabaseSync):
(WebCore::DatabaseSync::DatabaseSync):
(WebCore::DatabaseSync::changeVersion):
(WebCore::DatabaseSync::transaction):
(WebCore::DatabaseSync::markAsDeletedAndClose):
(WebCore::CloseSyncDatabaseOnContextThreadTask::create):
(WebCore::CloseSyncDatabaseOnContextThreadTask::performTask):
(WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask):
(WebCore::DatabaseSync::closeImmediately):
* storage/DatabaseSync.h:
* storage/DatabaseTask.cpp:
(WebCore::DatabaseOpenTask::DatabaseOpenTask):
(WebCore::DatabaseOpenTask::doPerformTask):
* storage/DatabaseTask.h:
(WebCore::DatabaseOpenTask::create):
2010-06-24 Steve Falkenburg <sfalken@apple.com>
Windows build fix.
* platform/network/cf/AuthenticationCF.h:
2010-06-24 Martin Robinson <mrobinson@igalia.com>
Unreviewed. Build fix.
Fix the build after r61798.
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::getClipboardContents):
2010-06-24 Alexey Proskuryakov <ap@apple.com>
Reviewed by Brady Eidson.
https://bugs.webkit.org/show_bug.cgi?id=41178
Timed refresh in subframes isn't stopped when going into b/f cache
Test: fast/history/timed-refresh-in-cached-frame.html
* history/CachedFrame.cpp: (WebCore::CachedFrame::CachedFrame): Top frame's stopLoading()
won't help cached subframes; stop loading from here.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading): Don't stop loading in child frames. This didn't work
for cached frames due to frame tree having been already desonstructed, and it's not necessary
in non-cached case because stopLoading() will be called for subframes via
FrameLoader::detachFromParent() and closeURL().
(WebCore::FrameLoader::pageHidden): This was a second code path that dispatched pagehide
event - it's no longer needed, because everything goes through FrameLoader::stopLoading().
(WebCore::FrameLoader::commitProvisionalLoad): Don't call pageHidden(), the code for adding
frame to b/f cache will do everything.
* loader/FrameLoader.h: Removed pageHidden().
2010-06-24 Eric Seidel <eric@webkit.org>
Unreviewed. Fix the build. I am a bad man.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
2010-06-24 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
Build fix for building against GTK+ 3.x.
No new tests as functionality has not changed.
* platform/gtk/GtkVersioning.h:
* platform/gtk/PasteboardHelper.cpp:
(WebCore::PasteboardHelper::getClipboardContents):
(WebCore::PasteboardHelper::fillSelectionData):
2010-06-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Clean up and document DocumentWriter::replaceDocument code path
https://bugs.webkit.org/show_bug.cgi?id=41182
No functional change, thus no test.
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):
* loader/DocumentWriter.h:
2010-06-24 Jer Noble <jer.noble@apple.com>
Reviewed by Eric Carlson.
Full-screened content doesn't keep the display on: Safari not grabbing a power assertion?
https://bugs.webkit.org/show_bug.cgi?id=40939
rdar://problem/7996172
Export -[MediaElement playbackRate];
* WebCore.Video.exp:
2010-06-21 Evan Martin <evan@chromium.org>
Reviewed by Adam Barth.
[chromium] overlapping characters in complex text
https://bugs.webkit.org/show_bug.cgi?id=40966
We need to clear all the buffers we hand to Harfbuzz before we use them.
While I'm here, refactor the code slightly to make its behavior more
clear and correct (previously, we would repeatedly double our buffer
size when we could have just sized it correctly on the second try).
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::TextRunWalker::TextRunWalker):
(WebCore::TextRunWalker::nextScriptRun):
(WebCore::TextRunWalker::createGlyphArrays):
(WebCore::TextRunWalker::shapeGlyphs):
2010-06-24 Adele Peterson <adele@apple.com>
Reviewed by Sam Weinig.
Updated fix for <rdar://problem/8093680> "Paste and Match Style" should fire paste events
https://bugs.webkit.org/show_bug.cgi?id=41085
Covered by existing tests.
* editing/EditorCommand.cpp:
(WebCore::executePasteAsPlainText): Added.
(WebCore::createCommandMap): Added pasteAsPlainText command.
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out BeforeHTMLMode state
https://bugs.webkit.org/show_bug.cgi?id=41133
In this patch, we switch the TreeBuidler over to using AtomicHTMLTokens
and sketch out another state. These states don't actually do anything
yet, I'm still just getting the structure of the spec into the code so
we can implement the details incrementally.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertDoctype):
(WebCore::HTMLTreeBuilder::insertComment):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::parseError):
2010-06-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add AtomicHTMLToken
https://bugs.webkit.org/show_bug.cgi?id=41131
We need an atomized version of the token for use in the tree builder.
Eventually, we should make the existing HTMLToken an internal detail of
the HTMLTokenizer. This new AtomicHTMLToken should be also be more
easily cached between the preload scanner and the tree builder.
* html/HTMLToken.h:
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicHTMLToken::type):
(WebCore::AtomicHTMLToken::name):
(WebCore::AtomicHTMLToken::selfClosing):
(WebCore::AtomicHTMLToken::attributes):
(WebCore::AtomicHTMLToken::characters):
(WebCore::AtomicHTMLToken::comment):
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
(WebCore::AtomicHTMLToken::forceQuirks):
* html/HTMLTreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
2010-06-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add RawDataDocumentParser to get rid of a bunch of copy/paste code in DocumentParser subclasses
https://bugs.webkit.org/show_bug.cgi?id=41136
I think this is likely far from the final design,
however this is almost entirely minus lines which is a
good thing.
The original authors of these DocumentParser subclasses
seem to have just copied the files whole, as they all
had the same includes, many of which were unnecessary for
some of the files.
I think eventually the FrameLoader will call a virtual
DocumentParser::appendData which will in turn decode
and call another write/appendData call. In the case
of these RawDataDocumentParsers, they will just override
the low-level appendData call instead of needing
DocumentWriter to have a special if based on
DocumentParser::wantsRawData.
No functional change, thus no tests.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* dom/DocumentParser.h:
(WebCore::DocumentParser::writeRawData):
* loader/ImageDocument.cpp:
(WebCore::ImageDocumentParser::ImageDocumentParser):
(WebCore::ImageDocumentParser::finish):
* loader/MediaDocument.cpp:
(WebCore::MediaDocumentParser::MediaDocumentParser):
(WebCore::MediaDocumentParser::writeRawData):
* loader/PluginDocument.cpp:
(WebCore::PluginDocumentParser::PluginDocumentParser):
* loader/SinkDocument.cpp:
(WebCore::SinkDocument::createParser):
2010-06-23 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
REGRESSION (r61619): Memory corruption in open-source ICO decoder
https://bugs.webkit.org/show_bug.cgi?id=41107
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::processInfoHeader): Fix memory corruption.
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::processDirectoryEntries): Handle sizing failure correctly (though failure should be impossible).
2010-06-24 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61783.
http://trac.webkit.org/changeset/61783
https://bugs.webkit.org/show_bug.cgi?id=41179
Caused a couple of test failures (Requested by japhet on
#webkit).
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
(WebCore::DOMImplementation::createHTMLDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::initSecurityContext):
* dom/Document.h:
(WebCore::Document::create):
(WebCore::Document::createXHTML):
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::HTMLDocument):
* html/HTMLDocument.h:
(WebCore::HTMLDocument::create):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::HTMLViewSourceDocument):
* html/HTMLViewSourceDocument.h:
(WebCore::HTMLViewSourceDocument::create):
* loader/CachedFont.cpp:
(WebCore::CachedFont::ensureSVGFontData):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
* loader/DocumentWriter.h:
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::FTPDirectoryDocument):
* loader/FTPDirectoryDocument.h:
(WebCore::FTPDirectoryDocument::create):
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::ImageDocument):
* loader/ImageDocument.h:
(WebCore::ImageDocument::create):
* loader/MediaDocument.cpp:
(WebCore::MediaDocument::MediaDocument):
* loader/MediaDocument.h:
(WebCore::MediaDocument::create):
* loader/PlaceholderDocument.h:
(WebCore::PlaceholderDocument::create):
(WebCore::PlaceholderDocument::PlaceholderDocument):
* loader/PluginDocument.cpp:
(WebCore::PluginDocument::PluginDocument):
* loader/PluginDocument.h:
(WebCore::PluginDocument::create):
* loader/SinkDocument.cpp:
(WebCore::SinkDocument::SinkDocument):
* loader/SinkDocument.h:
(WebCore::SinkDocument::create):
* loader/TextDocument.cpp:
(WebCore::TextDocument::TextDocument):
* loader/TextDocument.h:
(WebCore::TextDocument::create):
* svg/SVGDocument.cpp:
(WebCore::SVGDocument::SVGDocument):
* svg/SVGDocument.h:
(WebCore::SVGDocument::create):
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseXML):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2010-06-24 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Small code cleanup in RenderThemeGtk
https://bugs.webkit.org/show_bug.cgi?id=40989
Reduce the amount of duplicated code slightly and prepare this section for
future improvements, such as sharing the clipping rectangle calculation with
the slow path.
No new tests as functionality has not changed.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::paintMozillaGtkWidget): Small code cleanup.
2010-06-24 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Take a KURL parameter in Document's constructor.
This will remove the one case where Document::url()
and FrameLoader::url() are not equal, allowing us to
remove FrameLoader::url().
https://bugs.webkit.org/show_bug.cgi?id=41166
Refactor only, no new tests.
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument): Take a KURL and pass it through to Document.
(WebCore::DOMImplementation::createHTMLDocument):
* dom/DOMImplementation.h:
* dom/Document.cpp:
(WebCore::Document::Document): Call setURL() for non-empty KURL input parameters.
(WebCore::Document::initSecurityContext): m_url is now initialized, so use it instead
of m_frame->loader()->url() for initializing the SecurityOrigin.
* dom/Document.h:
(WebCore::Document::create):
(WebCore::Document::createXHTML):
* html/HTMLDocument.cpp:
* html/HTMLDocument.h: Add KURL parameter to create() and constructor.
* html/HTMLViewSourceDocument.cpp:
* html/HTMLViewSourceDocument.h: Add KURL parameter to create() and constructor.
* loader/CachedFont.cpp:
(WebCore::CachedFont::ensureSVGFontData):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument): Take a KURL and pass it through to Document.
(WebCore::DocumentWriter::begin): Pass existing url parameter to constructors, and remove
redundant Document::setURL() call.
* loader/DocumentWriter.h:
* loader/FTPDirectoryDocument.cpp:
* loader/FTPDirectoryDocument.h: Add KURL parameter to create() and constructor.
* loader/ImageDocument.cpp:
* loader/ImageDocument.h: Add KURL parameter to create() and constructor.
* loader/MediaDocument.cpp:
* loader/MediaDocument.h: Add KURL parameter to create() and constructor.
* loader/PlaceholderDocument.h: Add KURL parameter to create() and constructor.
* loader/PluginDocument.cpp:
* loader/PluginDocument.h: Add KURL parameter to create() and constructor.
* loader/SinkDocument.cpp:
* loader/SinkDocument.h: Add KURL parameter to create() and constructor.
* loader/TextDocument.cpp:
* loader/TextDocument.h: Add KURL parameter to create() and constructor.
* svg/SVGDocument.cpp:
* svg/SVGDocument.h: Add KURL parameter to create() and constructor.
* xml/DOMParser.cpp:
(WebCore::DOMParser::parseFromString):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::responseXML):
* xml/XSLTProcessor.cpp:
(WebCore::XSLTProcessor::createDocumentFromSource):
2010-06-24 Brady Eidson <beidson@apple.com>
Reviewed by Sam Weinig.
<rdar://problem/8044645> and https://bugs.webkit.org/show_bug.cgi?id=41082
Webarchives will null main resource cause a repro crash.
Test: webarchive/loading/mainresource-null-mimetype-crash.html
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createResource): Fail to create the archive resource if the main resource's
mime type is null.
2010-06-24 Damian Kaleta <dkaleta@apple.com>
Reviewed by Sam Weinig.
Provide a way to obtain the rendered rectangle for box elements.
* WebCore.base.exp: Export the symbol so we can see it in WebKit.
* dom/Node.cpp:
(WebCore::Node::renderRect): Added new ethod that will return a rendered rectangle for box elements.
* dom/Node.h: Ditto.
2010-06-24 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Create specialized classes for Transform,
Image and WebGL layers to replace the rather monolithic LayerChromium class.
Layers can now own the GL texture they use for backing store and a different
shading program can be used by the compositor for each layer type. WebGL layers
are not yet hooked up to GraphicsContext3D.
https://bugs.webkit.org/show_bug.cgi?id=41106
* WebCore.gypi:
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
(WebCore::GraphicsLayerChromium::setContentsToImage):
(WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
* platform/graphics/chromium/GraphicsLayerChromium.h:
(WebCore::GraphicsLayerChromium::):
* platform/graphics/chromium/ImageLayerChromium.cpp: Added.
(WebCore::ImageLayerChromium::create):
(WebCore::ImageLayerChromium::ImageLayerChromium):
(WebCore::ImageLayerChromium::setContents):
(WebCore::ImageLayerChromium::updateTextureContents):
* platform/graphics/chromium/ImageLayerChromium.h: Added.
(WebCore::ImageLayerChromium::drawsContent):
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::create):
(WebCore::LayerChromium::LayerChromium):
(WebCore::LayerChromium::updateTextureContents):
(WebCore::LayerChromium::updateTextureRect):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::drawsContent):
(WebCore::LayerChromium::ownsTexture):
(WebCore::LayerChromium::textureId):
(WebCore::LayerChromium::setShaderProgramId):
(WebCore::LayerChromium::shaderProgramId):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::createLayerShader):
(WebCore::ShaderProgram::ShaderProgram):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::~LayerRendererChromium):
(WebCore::LayerRendererChromium::useShaderProgram):
(WebCore::LayerRendererChromium::drawTexturedQuad):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::drawDebugBorder):
(WebCore::LayerRendererChromium::updateLayersRecursive):
(WebCore::LayerRendererChromium::drawLayer):
(WebCore::LayerRendererChromium::bindCommonAttribLocations):
(WebCore::LayerRendererChromium::initializeSharedGLObjects):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::):
* platform/graphics/chromium/TransformLayerChromium.cpp: Added.
(WebCore::TransformLayerChromium::create):
(WebCore::TransformLayerChromium::TransformLayerChromium):
* platform/graphics/chromium/TransformLayerChromium.h: Added.
(WebCore::TransformLayerChromium::drawsContent):
* platform/graphics/chromium/WebGLLayerChromium.cpp: Added.
(WebCore::WebGLLayerChromium::WebGLLayerChromium):
(WebCore::WebGLLayerChromium::textureId):
(WebCore::WebGLLayerChromium::updateTextureContents):
(WebCore::WebGLLayerChromium::setContext):
* platform/graphics/chromium/WebGLLayerChromium.h: Added.
(WebCore::WebGLLayerChromium::drawsContent):
(WebCore::WebGLLayerChromium::ownsTexture):
(WebCore::WebGLLayerChromium::shaderProgramId):
(WebCore::WebGLLayerChromium::setShaderProgramId):
2010-06-24 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Inspector cleanup + better DevTools alignment with Inspector.
https://bugs.webkit.org/show_bug.cgi?id=41094
- Removed a bunch of unused methods from all over the place
- Added client callbacks for states surviving navigation
- Implemented more user-friendly stub for InspectorFrontendHost.platform
* inspector/InspectorClient.h:
(WebCore::InspectorClient::resourceTrackingWasEnabled):
(WebCore::InspectorClient::resourceTrackingWasDisabled):
(WebCore::InspectorClient::timelineProfilerWasStarted):
(WebCore::InspectorClient::timelineProfilerWasStopped):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::enableResourceTracking):
(WebCore::InspectorController::disableResourceTracking):
(WebCore::InspectorController::ensureSettingsLoaded):
(WebCore::InspectorController::startTimelineProfiler):
(WebCore::InspectorController::stopTimelineProfiler):
* inspector/InspectorFrontend.cpp:
* inspector/InspectorFrontend.h:
* inspector/front-end/InspectorBackendStub.js:
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.platform):
2010-06-23 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=41099
Assertion failure: !m_suspended when XMLHttpRequest fails
This was a general problem with load failure timer not being deferred.
Test: manual-tests/xhr-failure-behind-alert.html
* manual-tests/xhr-failure-behind-alert.html: Added.
* platform/network/ResourceHandle.cpp:
(WebCore::ResourceHandle::fireFailure): Added an empty case for NoFailure. Reset
m_scheduledFailureType to NoFailure when firing.
(WebCore::ResourceHandle::setDefersLoading): Stop failure timer when deferring, restart when
un-deferring loads.
* platform/network/ResourceHandle.h: Renamed m_failureType to m_scheduledFailureType to
make it clear that it is only set when a timer is scheduled.
* platform/network/ResourceHandleInternal.h:
(WebCore::ResourceHandleInternal::ResourceHandleInternal): Initialize m_scheduledFailureType
to NoFailure, so that we can look at it when un-deferring loads.
* platform/network/android/ResourceHandleAndroid.cpp:
(WebCore::ResourceHandle::platformSetDefersLoading):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::ResourceHandle::platformSetDefersLoading):
* platform/network/curl/ResourceHandleCurl.cpp:
(WebCore::ResourceHandle::platformSetDefersLoading):
* platform/network/mac/ResourceHandleMac.mm:
(WebCore::ResourceHandle::platformSetDefersLoading):
* platform/network/qt/ResourceHandleQt.cpp:
(WebCore::ResourceHandle::platformSetDefersLoading):
* platform/network/soup/ResourceHandleSoup.cpp:
Platform specific parts of setDefersLoading() are now in a separate function.
2010-06-24 Pavel Feldman <pfeldman@chromium.org>
Not reviewed: revert 61766.
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::enableResourceTracking):
(WebCore::InspectorController::disableResourceTracking):
(WebCore::InspectorController::ensureSettingsLoaded):
(WebCore::InspectorController::startTimelineProfiler):
(WebCore::InspectorController::stopTimelineProfiler):
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::setAttachedWindow):
* inspector/InspectorFrontend.h:
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.setAttachedWindowHeight):
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.platform):
2010-06-23 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Inspector cleanup + better DevTools alignment with Inspector.
https://bugs.webkit.org/show_bug.cgi?id=41094
- Removed a bunch of unused methods from all over the place
- Added client callbacks for states surviving navigation
- Implemented more user-friendly stub for InspectorFrontendHost.platform
* inspector/InspectorClient.h:
(WebCore::InspectorClient::resourceTrackingWasEnabled):
(WebCore::InspectorClient::resourceTrackingWasDisabled):
(WebCore::InspectorClient::timelineProfilerWasStarted):
(WebCore::InspectorClient::timelineProfilerWasStopped):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::enableResourceTracking):
(WebCore::InspectorController::disableResourceTracking):
(WebCore::InspectorController::ensureSettingsLoaded):
(WebCore::InspectorController::startTimelineProfiler):
(WebCore::InspectorController::stopTimelineProfiler):
* inspector/InspectorFrontend.cpp:
* inspector/InspectorFrontend.h:
* inspector/front-end/InspectorBackendStub.js:
* inspector/front-end/InspectorFrontendHostStub.js:
(.WebInspector.InspectorFrontendHostStub.prototype.platform):
2010-06-24 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Inspector & SVG Text have problems, kids of RenderSVGText are not properly placed.
https://bugs.webkit.org/show_bug.cgi?id=41143
Simplify code path taken for SVG text in InspectorController, take the code path currently only used for RenderInline,
that just calls absoluteQuads(), and displays the result. Refactored code that all SVG renderers (except RenderSVGRoot)
take this code path -> highlighting now works as expected.
Don't use absoluteClippedOverlowRect() in the various RenderSVG*::absoluteQuads() methods, as we're loosing floating-point precision.
Instead use localToAbsoluteQuad(strokeBoundingBox()) in order to highlight the unclipped, unfiltered, etc.. region that this renderer would paint.
No new tests, as this is only manual testable - at least I didn't find any Inspector-Highlighting tests, if someone knows please mail me.
* inspector/InspectorController.cpp:
(WebCore::drawHighlightForLineBoxesOrSVGRenderer):
(WebCore::InspectorController::drawNodeHighlight):
* rendering/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::absoluteRects): ASSERT_NOT_REACHED() here. SVG should only be inspected through absoluteQuads().
* rendering/RenderSVGBlock.h: Add absoluteRects() in this base class for RenderForeignObject/RenderSVGText.
* rendering/RenderSVGHiddenContainer.cpp: Remove absoluteRects() - RenderSVGModelObject already has it.
* rendering/RenderSVGHiddenContainer.h: Ditto.
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::absoluteRects): ASSERT_NOT_REACHED() here.
(WebCore::RenderSVGImage::absoluteQuads): Don't use absoluteClippedOverlowRect() but localToAbsoluteQuad(repaintRectInLocalCoordinates()).
* rendering/RenderSVGImage.h:
(WebCore::RenderSVGImage::objectBoundingBox): Inlined
* rendering/RenderSVGInline.cpp:
(WebCore::RenderSVGInline::absoluteQuads): Take RenderSVGText translation into account, allows inspecting <tspan>/<tref> etc.
* rendering/RenderSVGInline.h:
* rendering/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::absoluteRects): ASSERT_NOT_REACHED() here.
(WebCore::RenderSVGModelObject::absoluteQuads): Don't use absoluteClippedOverlowRect() but localToAbsoluteQuad(repaintRectInLocalCoordinates()).
* rendering/RenderSVGModelObject.h:
* rendering/RenderSVGRoot.cpp: Fix typo in license s/aint/along. Need to touch this file in order to let Mac build.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::mapLocalToContainer): Remove hack, which moved the transformState by x()/y(). Not needed anymore.
(WebCore::RenderSVGText::absoluteQuads): Proper implementation, respecting x/y translation.
* rendering/RenderSVGText.h: Reorder some functions.
* rendering/SVGRenderSupport.h: Removed last virtual function strokeBoundingBox().
2010-06-24 Kent Tamura <tkent@chromium.org>
Unreviewed. Build fix for Tiger.
* platform/mac/ThemeMac.mm:
(WebCore::setControlSize):
2010-06-24 Kent Tamura <tkent@chromium.org>
Unreviewed. Build fix for Tiger.
* platform/mac/ThemeMac.mm:
(WebCore::setControlSize):
(WebCore::ThemeMac::inflateControlPaintRect):
2010-06-24 Kent Tamura <tkent@chromium.org>
Unreviewed. Build fix for Chromium Mac.
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isSpeechEnabled):
2010-06-24 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed Symbian build fix.
The QML WebKit integration needs to be part of QtWebKit.sis
* WebCore.pro: Deploy qmlwebkitplugin.dll.
2010-06-24 Satish Sampath <satish@chromium.org>
Reviewed by Kent Tamura.
Add a speech button to input elements, no rendering or actions yet.
Speech Input: Add a speech button to text input element (no rendering or actions yet)
https://bugs.webkit.org/show_bug.cgi?id=40925
No new tests. Will create a layout test in a subsequent patch.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/CSSValueKeywords.in:
* css/html.css:
(input::-webkit-input-speech-button):
* dom/InputElement.h:
* html/HTMLAttributeNames.in:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isSpeechEnabled):
* html/HTMLInputElement.h:
* platform/ThemeTypes.h:
(WebCore::):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::nodeAtPoint):
(WebCore::RenderTextControlSingleLine::forwardEvent):
(WebCore::RenderTextControlSingleLine::styleDidChange):
(WebCore::RenderTextControlSingleLine::hasControlClip):
(WebCore::RenderTextControlSingleLine::controlClipRect):
(WebCore::RenderTextControlSingleLine::textBlockWidth):
(WebCore::RenderTextControlSingleLine::preferredContentWidth):
(WebCore::RenderTextControlSingleLine::adjustControlHeightBasedOnLineHeight):
(WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
(WebCore::RenderTextControlSingleLine::createSpeechButtonStyle):
(WebCore::RenderTextControlSingleLine::clientPaddingRight):
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
* rendering/TextControlInnerElements.cpp:
(WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
(WebCore::InputFieldSpeechButtonElement::create):
(WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
* rendering/TextControlInnerElements.h:
* rendering/style/RenderStyleConstants.h:
(WebCore::):
2010-06-24 Kent Tamura <tkent@chromium.org>
Reviewed by Adam Barth.
[Mac] The upper button of <input type=number> has no visual effect on click
https://bugs.webkit.org/show_bug.cgi?id=38380
Because we have no ways to draw an NSStepperCell with its up button
highlighted, use HIThemeDrawButton() instead.
Test: platform/mac/fast/forms/input-appearance-spinbutton-up.html
* platform/mac/ThemeMac.mm:
(WebCore::controlSizeFromPixelSize):
New function. Made from a part of setControlSize().
(WebCore::setControlSize):
(WebCore::convertControlStatesToThemeDrawState):
(WebCore::paintStepper): Use HITheme API instead of NSStepperCell.
(WebCore::ThemeMac::inflateControlPaintRect):
Use controlSizeFromPixelSize().
2010-06-24 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: implement layout tests for debugger
https://bugs.webkit.org/show_bug.cgi?id=40774
Test: inspector/debugger-pause-on-debugger-statement.html
* bindings/js/ScriptDebugServer.cpp: remove unused obsolete code that deals with global listeners.
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::removeListener):
(WebCore::ScriptDebugServer::dispatchFunctionToListeners):
(WebCore::ScriptDebugServer::pauseIfNeeded):
(WebCore::ScriptDebugServer::didAddListener):
(WebCore::ScriptDebugServer::didRemoveListener):
* bindings/js/ScriptDebugServer.h:
* platform/mac/EventLoopMac.mm:
(WebCore::EventLoop::cycle): wait at most 10ms for new event, otherwise layout tests would
hang because in their case there may be no events ever.
2010-06-24 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Yury Semikhatsky.
Fixed evaluation & logging of null values in console.
Changed handling of null and undefined in ScriptValue::toString()
to match JSC bindings (i.e. "null" and "undefined" instead of "").
https://bugs.webkit.org/show_bug.cgi?id=40980
* bindings/v8/ScriptValue.cpp:
(WebCore::ScriptValue::toString):
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-06-24 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: live edit doesn't work when resource tracking is off
https://bugs.webkit.org/show_bug.cgi?id=41076
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._sourceIDForLine): implement this method for ScriptView,
it's needed for editLine to work.
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Sketch out InitialMode of HTML5 tree builder
https://bugs.webkit.org/show_bug.cgi?id=41126
Transliterated from the spec. Currently doesn't do anything. Mostly
an experiment to see where this goes.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::insertDoctype):
(WebCore::HTMLTreeBuilder::insertComment):
* html/HTMLTreeBuilder.h:
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add all the HTML5 tree builder insertion modes
https://bugs.webkit.org/show_bug.cgi?id=41124
These are just copied verbatim from the spec. No tests because these
don't do anything yet.
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::):
2010-06-23 Eric Seidel <eric@webkit.org>
Unreviewed. Fix namespace indent. Just whitespace changes.
* dom/DocumentParser.h:
(WebCore::DocumentParser::~DocumentParser):
(WebCore::DocumentParser::isExecutingScript):
(WebCore::DocumentParser::stopParsing):
(WebCore::DocumentParser::processingData):
(WebCore::DocumentParser::wantsRawData):
(WebCore::DocumentParser::writeRawData):
(WebCore::DocumentParser::wellFormed):
(WebCore::DocumentParser::lineNumber):
(WebCore::DocumentParser::columnNumber):
(WebCore::DocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::DocumentParser::htmlTreeBuilder):
(WebCore::DocumentParser::asHTMLDocumentParser):
(WebCore::DocumentParser::inViewSourceMode):
(WebCore::DocumentParser::setInViewSourceMode):
(WebCore::DocumentParser::document):
(WebCore::DocumentParser::xssAuditor):
(WebCore::DocumentParser::setXSSAuditor):
(WebCore::DocumentParser::DocumentParser):
2010-06-23 Eric Seidel <eric@webkit.org>
Unreviewed. Speculative build fix for Qt.
Move Document* down onto DocumentParser, since every DocumentParser needs one.
https://bugs.webkit.org/show_bug.cgi?id=41117
XMLDocumentParserQt is a huge pile of donkey barf.
I can't believe I ever r+'d the creation of this pile of
copy/paste code.
I clearly missed removing m_doc from this code as well and thus
broke Qt.
We really need to fix both XMLDocumentParserLibxml2 and
XMLDocumentParserQt not to be so poorly abstracted so
that if we're going to have two of them they can at least
share some code.
* dom/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::~XMLDocumentParser):
(WebCore::XMLDocumentParser::doWrite):
(WebCore::XMLDocumentParser::doEnd):
(WebCore::XMLDocumentParser::parse):
(WebCore::XMLDocumentParser::startDocument):
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseEndElement):
(WebCore::XMLDocumentParser::parseProcessingInstruction):
(WebCore::XMLDocumentParser::parseCdata):
(WebCore::XMLDocumentParser::parseComment):
(WebCore::XMLDocumentParser::parseDtd):
2010-06-23 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Move Document* down onto DocumentParser, since every DocumentParser needs one.
https://bugs.webkit.org/show_bug.cgi?id=41117
This eliminated the need for document() on HTMLDocumentParser.
This paves the way for more code sharing between various
DocumentParser subclasses.
* dom/DocumentParser.h:
(WebCore::DocumentParser::inViewSourceMode):
(WebCore::DocumentParser::setInViewSourceMode):
(WebCore::DocumentParser::document):
(WebCore::DocumentParser::DocumentParser):
* dom/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::isWMLDocument):
(WebCore::XMLDocumentParser::pushCurrentNode):
(WebCore::XMLDocumentParser::popCurrentNode):
(WebCore::XMLDocumentParser::clearCurrentNodeStack):
(WebCore::XMLDocumentParser::enterText):
(WebCore::XMLDocumentParser::end):
(WebCore::XMLDocumentParser::insertErrorMessageBlock):
* dom/XMLDocumentParser.h:
* dom/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::~XMLDocumentParser):
(WebCore::XMLDocumentParser::doWrite):
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::endElementNs):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):
(WebCore::XMLDocumentParser::startDocument):
(WebCore::XMLDocumentParser::internalSubset):
(WebCore::XMLDocumentParser::initializeParserContext):
(WebCore::XMLDocumentParser::doEnd):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/HTMLDocumentParser.h:
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser):
(WebCore::LegacyHTMLDocumentParser::begin):
(WebCore::LegacyHTMLDocumentParser::scriptHandler):
(WebCore::LegacyHTMLDocumentParser::scriptExecution):
(WebCore::LegacyHTMLDocumentParser::parseTag):
(WebCore::LegacyHTMLDocumentParser::continueProcessing):
(WebCore::LegacyHTMLDocumentParser::willWriteHTML):
(WebCore::LegacyHTMLDocumentParser::didWriteHTML):
(WebCore::LegacyHTMLDocumentParser::write):
(WebCore::LegacyHTMLDocumentParser::stopParsing):
(WebCore::LegacyHTMLDocumentParser::timerFired):
(WebCore::LegacyHTMLDocumentParser::end):
(WebCore::LegacyHTMLDocumentParser::processToken):
(WebCore::LegacyHTMLDocumentParser::processDoctypeToken):
(WebCore::LegacyHTMLDocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::LegacyHTMLDocumentParser::executeExternalScriptsIfReady):
(WebCore::LegacyHTMLDocumentParser::executeExternalScriptsTimerFired):
* html/LegacyHTMLDocumentParser.h:
* loader/ImageDocument.cpp:
(WebCore::ImageDocumentParser::ImageDocumentParser):
(WebCore::ImageDocumentParser::imageDocument):
(WebCore::ImageDocumentParser::write):
(WebCore::ImageDocumentParser::writeRawData):
(WebCore::ImageDocumentParser::finish):
(WebCore::ImageDocumentParser::finishWasCalled):
(WebCore::ImageDocumentParser::isWaitingForScripts):
(WebCore::ImageDocument::createParser):
* loader/MediaDocument.cpp:
(WebCore::MediaDocumentParser::MediaDocumentParser):
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocumentParser::finish):
(WebCore::MediaDocumentParser::finishWasCalled):
* loader/PluginDocument.cpp:
(WebCore::PluginDocumentParser::PluginDocumentParser):
(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocumentParser::writeRawData):
(WebCore::PluginDocumentParser::finish):
(WebCore::PluginDocumentParser::finishWasCalled):
* loader/SinkDocument.cpp:
(WebCore::SinkDocumentParser::SinkDocumentParser):
* loader/TextDocument.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
(WebCore::TextDocumentParser::write):
(WebCore::TextDocumentParser::finish):
(WebCore::TextDocumentParser::finishWasCalled):
2010-06-23 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Start to clean up DocumentParser interface
https://bugs.webkit.org/show_bug.cgi?id=41114
The first of many cleanups needed to the DocumentParser
interface. Rename executingScript() to isExecutingScript()
and make it return a bool instead of an int. Also added a
FIXME to XMLDocumentParser about implementing it and did
some minor other cleanup to the XMLDocumentParser header.
No functional change, thus no tests.
* dom/Document.cpp:
(WebCore::Document::open):
* dom/DocumentParser.h:
(WebCore::DocumentParser::isExecutingScript):
* dom/XMLDocumentParser.h:
(WebCore::XMLDocumentParser::wellFormed):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::attemptToEnd):
(WebCore::HTMLDocumentParser::endIfDelayed):
(WebCore::HTMLDocumentParser::isExecutingScript):
* html/HTMLDocumentParser.h:
* html/LegacyHTMLDocumentParser.h:
(WebCore::LegacyHTMLDocumentParser::isExecutingScript):
2010-06-22 Maciej Stachowiak <mjs@apple.com>
Reviewed by Simon Fraser.
Implement IDL attribute for HTML5 hidden
https://bugs.webkit.org/show_bug.cgi?id=41039
Test: fast/html/hidden-attr-dom.html
* html/HTMLElement.idl: Just add to the IDL file. [Reflect] takes
care of the rest.
2010-06-23 Joanmarie Diggs <joanmarie.diggs@gmail.com>
Reviewed by Chris Fleizach.
[Gtk] nameFromChildren is obsolete
https://bugs.webkit.org/show_bug.cgi?id=36128
Look to the AtkText interface implemented by the objects in
question.
Test: platform/gtk/accessibility/name-from-label.html
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(webkit_accessible_get_name):
(webkit_accessible_table_get_column_description):
(webkit_accessible_table_get_row_description):
2010-06-23 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Port FileSystem
https://bugs.webkit.org/show_bug.cgi?id=34323
Port FileSystem with IFileMgr interface.
* platform/FileSystem.h:
* platform/brew/FileSystemBrew.cpp: Added.
(WebCore::getFileSize):
(WebCore::getFileModificationTime):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::pathByAppendingComponent):
(WebCore::fileSystemRepresentation):
(WebCore::canonicalPath):
(WebCore::makeAllDirectories):
(WebCore::homeDirectoryPath):
(WebCore::pathGetFileName):
(WebCore::directoryName):
(WebCore::openTemporaryFile):
(WebCore::closeFile):
(WebCore::writeToFile):
(WebCore::unloadModule):
(WebCore::listDirectory):
2010-06-23 Alexendar Pavlov <apavlov@chromium.org>
Reviewed by David Hyatt.
Swap checks in Position::isCandidate so that the less expensive
nodeIsUserSelectNode (node && node->renderer() &&
node->renderer()->style()->userSelect() == SELECT_NONE) came first.
(Was Web Inspector: Hangup when expanding elements with enormous
text node content in Elements panel).
https://bugs.webkit.org/show_bug.cgi?id=35926
* dom/Position.cpp:
(WebCore::Position::isCandidate):
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
2010-06-23 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Add PopupMenu implementation
https://bugs.webkit.org/show_bug.cgi?id=40226
Delegate PopupMenu handling to ChromeClientBrew.
* page/brew/ChromeClientBrew.h: Added.
* platform/PopupMenu.h:
* platform/brew/PopupMenuBrew.cpp: Added.
(WebCore::PopupMenu::PopupMenu):
(WebCore::PopupMenu::~PopupMenu):
(WebCore::PopupMenu::show):
(WebCore::PopupMenu::hide):
(WebCore::PopupMenu::updateFromElement):
(WebCore::PopupMenu::itemWritingDirectionIsNatural):
2010-06-23 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Implement format conversions in texImage2D and texSubImage2D taking HTML data
https://bugs.webkit.org/show_bug.cgi?id=40319
Generalized code supporting premultiplication of alpha and
vertical flip to pack texture data into requested format and type.
Handled incoming image data of various formats, RGBA and BGRA in
particular, both to reduce the number of temporary copies during
texture upload and to support premultiplying alpha for the
texImage2D and texSubImage2D entry points taking ArrayBufferView
in a subsequent bug. Added test case exercising all combinations
of format/type combinations, premultiplication of alpha, and
Image/ImageData upload. (Incorporated pnglib.js under
fast/canvas/webgl/resources/ to be able to generate Image elements
programmatically.) Tested in Safari on Mac OS X and in Chromium on
Mac OS X, Windows and Linux.
Test: fast/canvas/webgl/tex-image-with-format-and-type.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::readPixels):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType):
(WebCore::WebGLRenderingContext::validateTexFuncParameters):
* platform/graphics/GraphicsContext3D.cpp:
(WebCore::GraphicsContext3D::computeFormatAndTypeParameters):
(WebCore::GraphicsContext3D::extractImageData):
(WebCore::GraphicsContext3D::flipVertically):
(WebCore::doUnpackingAndPacking):
(WebCore::doPacking):
(WebCore::GraphicsContext3D::packPixels):
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::):
* platform/graphics/cg/GraphicsContext3DCG.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::narrowInternalFormat):
(WebCore::GraphicsContext3D::texImage2D):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/graphics/skia/GraphicsContext3DSkia.cpp:
(WebCore::GraphicsContext3D::getImageData):
2010-06-23 Stephen White <senorblanco@chromium.org>
Unreviewed; correcting bad patch.
In my haste to land r61710, I mistakenly landed the wrong version, in
which a chunk of code was moved. This patch moves that chunk of code
to where it was in the patch that was reviewed. Mea culpa.
* rendering/RenderBoxModelObject.cpp:
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
2010-06-23 Stephen White <senorblanco@chromium.org>
Reviewed by David Hyatt.
This is a tweak to the resize algorithm introduced in r61341, and
is a fix for the regression described in
https://bugs.webkit.org/show_bug.cgi?id=41036
The goal is to bring back the some of old behaviour, without regressing
too much of the performance gains in r61341.
The old algorithm was:
- on first resize, draw in high quality and record the paint time
- if we've already drawn at this size, use the same quality as last time
- on subsequent resizes, if the resize occurs within X ms of the
previous one, draw at low quality and set a timer (one timer per
image).
- when each timer expires, draw that image at high quality
The r61341 algorithm was:
- on first resize, draw the image in low quality, add it to a list of
resized images, and set a timer (one timer for all images)
- when the timer expires, redraw all resized images in high quality
The new algorithm is:
- on first resize, if no other animated resizes are outstanding, draw in
high quality and set the timer (one timer for all images)
- if any images have been resized to two different sizes in the last
X ms, draw all resized images in low quality and kick the timer
forward
- when the timer expires, if any animated resizes occured, redraw all
resized images in high quality, and reset the flag
This should cause GUIMark and the IE9 demos to have good performance
after the first frame, while other pages with only static resizes
should be unaffected.
* rendering/RenderBoxModelObject.cpp:
Change the LastPaintTimeMap to a LastPaintSizeMap: we now record the
last size an image was resized to, rather than the time it was painted
(the time actually became redundant in r61341 when I added the
check for m_timer.isActive(): we only care if anything is resizing
while the timer is active).
(WebCore::ImageQualityController::ImageQualityController):
Add an initializer for the m_animatedResizeIsActive flag.
(WebCore::ImageQualityController::objectDestroyed):
Reset the m_animatedResizeIsActive flag if this was the last object
in the list.
(WebCore::ImageQualityController::highQualityRepaintTimerFired):
Only repaint all the images if there was an animated resize (otherwise,
everything is already high quality).
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
Implement the above algorithm.
2010-06-23 Abhishek Arya <inferno@chromium.org>
Reviewed by Kenneth Rohde Christiansen.
Bad cast after DOM mutation in RenderMenuList
https://bugs.webkit.org/show_bug.cgi?id=40828
Firing the onchange event on select which changes its size > 1 causes the select
object to change from a menulist to a listbox. However, when propogating the events,
we do a bad cast assuming the object will remain a menulist. Added proper checks to
make sure we check the renderer after the onchange is fired and propogate the event
based on correct object type.
Test: fast/events/select-onchange-crash.html
* dom/SelectElement.cpp:
(WebCore::SelectElement::setSelectedIndex):
2010-06-23 Andy Estes <aestes@apple.com>
Reviewed by Alexey Proskuryakov.
<rdar://problem/8107855> Prevent a crash in WebCore when removing an
object element with an invalid data URL in in a listener to its
beforeload event.
https://bugs.webkit.org/show_bug.cgi?id=41054
Tests: fast/dom/beforeload/remove-bad-object-in-beforeload-listener.html
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::renderFallbackContent): Exit early if the
object element is not in the document.
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::updateWidget): If RenderWidget::destroy()
was called during processing of onbeforeload, do not proceed with loading
the object.
2010-06-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[gtk] web fonts not loaded properly in scribd html5 reader
https://bugs.webkit.org/show_bug.cgi?id=38758
Drop filling the pattern with default values, because this
restricts the matching more than we want.
* platform/graphics/cairo/FontCacheCairo.cpp:
(WebCore::FontCache::createFontPlatformData):
2010-06-23 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[gtk] web fonts not loaded properly in scribd html5 reader
https://bugs.webkit.org/show_bug.cgi?id=38758
Also special-case `sans' amd `mono', which are aliases commonly
used in GTK+ applications.
* platform/graphics/cairo/FontCacheCairo.cpp:
(WebCore::isWellKnownFontName):
2010-06-23 Justin Schuh <jschuh@chromium.org>
Unreviewed, rolling out r61695.
http://trac.webkit.org/changeset/61695
https://bugs.webkit.org/show_bug.cgi?id=40798
61695 broke all the Linux builds.
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable):
2010-06-23 Kevin Ollivier <kevino@theolliviers.com>
Reviewed by Darin Adler.
Fix PluginViewNone.cpp compilation for ports that also compile PluginView.cpp
https://bugs.webkit.org/show_bug.cgi?id=37939
* plugins/PluginViewNone.cpp:
(WebCore::PluginView::handleFocusInEvent):
(WebCore::PluginView::handleFocusOutEvent):
(WebCore::PluginView::keepAlive):
(WebCore::PluginView::privateBrowsingStateChanged):
(WebCore::PluginView::setJavaScriptPaused):
2010-06-23 Cris Neckar <cdn@chromium.org>
Reviewed by Darin Fisher.
[Chromium] Out of bounds write in WebCore::PNGImageDecoder::rowAvailable
https://bugs.webkit.org/show_bug.cgi?id=40798
Catches error in row callback for libPNG when extra rows are returned.
Test: fast/images/png-extra-row-crash.html
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageDecoder::rowAvailable):
2010-06-23 James Robinson <jamesr@chromium.org>
Reviewed by Dan Bernstein.
Do not set needsLayout when the style attribute changes on an SVG element
https://bugs.webkit.org/show_bug.cgi?id=40366
SVGSVGElement::svgAttributeChanged was incorrectly calling renderer()->setNeedsLayout(true)
whenever the styleAttr changed on its element. This could happen during layout in some
circumstances due to lazy style attribute synchronization. When it did, it could cause the
layout flags to become inconsistent. See the test case for details.
Changes to an element's style attribute always mark an element as needing layout anyway so
this call was redundant.
Test: fast/repaint/svg-layout-root-style-attr-update.html
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::isKnownAttribute):
2010-06-23 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
r61215 broke Acid3
https://bugs.webkit.org/show_bug.cgi?id=41034
The code added in r61215, which tests whether the root renderer will fill
the entire viewport, should not run for subframes. So bail from
RenderView::paintBoxDecorations() if document()->ownerElement() is not null.
The old code was trying to do this by checking 'elt', but that ends up as
null after the for loop above.
We can also bail early if the is no FrameView().
Test: fast/frames/paint-iframe-background.html
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
2010-06-23 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: do not reset profiles panel on navigation.
https://bugs.webkit.org/show_bug.cgi?id=41068
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad):
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::resetProfilesPanel):
* inspector/InspectorFrontend.h:
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
(WebInspector.ProfilesPanel.prototype.populateInterface):
(WebInspector.ProfilesPanel.prototype.profilerWasDisabled):
(WebInspector.ProfilesPanel.prototype._reset):
(WebInspector.ProfilesPanel.prototype._clearProfiles):
* inspector/front-end/inspector.js:
(WebInspector.resetProfilesPanel):
2010-06-23 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: InspectorController should be added only once as ScriptDebugListener to
ScriptDebugServer.
https://bugs.webkit.org/show_bug.cgi?id=41070
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
(WebCore::InspectorController::enableDebuggerFromFrontend):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel): don't call InspectorBackend.enableDebugger if debugger is always enabled,
InspectorController will do this on its side when the front end is connected.
2010-06-23 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Clear breakpoints before restoring them, not after.
https://bugs.webkit.org/show_bug.cgi?id=41071
* inspector/InspectorController.cpp:
(WebCore::InspectorController::enableDebuggerFromFrontend):
2010-06-23 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Do not render the full frame when there is some elements with fixed positioning
https://bugs.webkit.org/show_bug.cgi?id=33150
Do not render the full frame when there is some elements with fixed positioning
https://bugs.webkit.org/show_bug.cgi?id=33150
The frame view take into acount the list of fixed object when scrolling
the view. If the number of object is lower than a certain threshold, the pixel
are blitted, and the invalidated area updated.
* page/FrameView.cpp:
(WebCore::FrameView::addFixedObject):
(WebCore::FrameView::removeFixedObject):
(WebCore::FrameView::scrollContentsFastPath):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::scrollContents):
(WebCore::ScrollView::scrollContentsFastPath):
* platform/ScrollView.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::repaintRectIncludingDescendants):
* rendering/RenderLayer.h:
* rendering/RenderObject.cpp:
(WebCore::RenderObject::styleWillChange):
2010-06-23 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Fix displaying of several CPU profiles with the same name.
https://bugs.webkit.org/show_bug.cgi?id=40992
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfileGroupSidebarTreeElement.prototype.onselect):
2010-06-23 Adam Barth <abarth@webkit.org>
Unreviewed. clean-header-guards that were made dirty by recent
renames.
* html/HTMLDocumentParser.h:
* html/HTMLPreloadScanner.h:
* html/HTMLTokenizer.h:
* html/HTMLTreeBuilder.h:
* html/LegacyHTMLDocumentParser.h:
* html/LegacyHTMLTreeBuilder.h:
* html/LegacyPreloadScanner.h:
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename LegacyHTMLTreeConstructor to LegacyHTMLTreeBuilder
https://bugs.webkit.org/show_bug.cgi?id=41053
There was some debate about whether to call this class (and the
non-legacy version) "tree builder" or "tree constructor". Maciej
pointed out that other implementations (including Mozilla and HTML5Lib)
call it a tree builder. The path of least resistance seems to be call
it that for now.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
* dom/DocumentParser.h:
(WebCore::DocumentParser::htmlTreeConstructor):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::htmlTreeConstructor):
* html/HTMLDocumentParser.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLInputElement.cpp:
* html/HTMLMeterElement.cpp:
* html/HTMLProgressElement.cpp:
* html/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
* html/HTMLTreeBuilder.h:
(WebCore::HTMLTreeBuilder::legacyTreeConstructor):
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser):
* html/LegacyHTMLDocumentParser.h:
(WebCore::LegacyHTMLDocumentParser::htmlTreeConstructor):
* html/LegacyHTMLTreeBuilder.cpp: Copied from WebCore/html/LegacyHTMLTreeConstructor.cpp.
(WebCore::LegacyHTMLTreeBuilder::LegacyHTMLTreeBuilder):
(WebCore::LegacyHTMLTreeBuilder::~LegacyHTMLTreeBuilder):
(WebCore::LegacyHTMLTreeBuilder::reset):
(WebCore::LegacyHTMLTreeBuilder::setCurrent):
(WebCore::LegacyHTMLTreeBuilder::limitDepth):
(WebCore::LegacyHTMLTreeBuilder::insertNodeAfterLimitDepth):
(WebCore::LegacyHTMLTreeBuilder::parseToken):
(WebCore::LegacyHTMLTreeBuilder::parseDoctypeToken):
(WebCore::LegacyHTMLTreeBuilder::insertNode):
(WebCore::LegacyHTMLTreeBuilder::handleError):
(WebCore::LegacyHTMLTreeBuilder::textCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::commentCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::headCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::bodyCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::framesetCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::formCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::isindexCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::selectCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::ddCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::dtCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::rpCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::rtCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::nestedCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::nestedPCloserCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::nestedStyleCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::tableCellCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::tableSectionCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::noembedCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::noframesCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::noscriptCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::pCloserCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::pCloserStrictCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::mapCreateErrorCheck):
(WebCore::LegacyHTMLTreeBuilder::getNode):
(WebCore::LegacyHTMLTreeBuilder::allowNestedRedundantTag):
(WebCore::LegacyHTMLTreeBuilder::processCloseTag):
(WebCore::LegacyHTMLTreeBuilder::isHeadingTag):
(WebCore::LegacyHTMLTreeBuilder::isInline):
(WebCore::LegacyHTMLTreeBuilder::isResidualStyleTag):
(WebCore::LegacyHTMLTreeBuilder::isAffectedByResidualStyle):
(WebCore::LegacyHTMLTreeBuilder::handleResidualStyleCloseTagAcrossBlocks):
(WebCore::LegacyHTMLTreeBuilder::reopenResidualStyleTags):
(WebCore::LegacyHTMLTreeBuilder::pushBlock):
(WebCore::LegacyHTMLTreeBuilder::popBlock):
(WebCore::LegacyHTMLTreeBuilder::popOneBlockCommon):
(WebCore::LegacyHTMLTreeBuilder::popOneBlock):
(WebCore::LegacyHTMLTreeBuilder::moveOneBlockToStack):
(WebCore::LegacyHTMLTreeBuilder::checkIfHasPElementInScope):
(WebCore::LegacyHTMLTreeBuilder::popInlineBlocks):
(WebCore::LegacyHTMLTreeBuilder::freeBlock):
(WebCore::LegacyHTMLTreeBuilder::createHead):
(WebCore::LegacyHTMLTreeBuilder::handleIsindex):
(WebCore::LegacyHTMLTreeBuilder::startBody):
(WebCore::LegacyHTMLTreeBuilder::finished):
(WebCore::LegacyHTMLTreeBuilder::reportErrorToConsole):
* html/LegacyHTMLTreeBuilder.h: Copied from WebCore/html/LegacyHTMLTreeConstructor.h.
* html/LegacyHTMLTreeConstructor.cpp: Removed.
* html/LegacyHTMLTreeConstructor.h: Removed.
* html/StepRange.cpp:
* html/ValidityState.cpp:
* rendering/RenderSlider.cpp:
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename the preload scanners
https://bugs.webkit.org/show_bug.cgi?id=41052
Renames PreloadScanner to LegacyPreloadScanner because this code is now
off by default. Also, rename HTML5PreloadScanner to
HTMLPreloadScanner. We're not calling it PreloadScanner because we've
factored out the CSSPreloadScanner and the HTMLPreloadScanner from the
original PreloadScanner.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5PreloadScanner.cpp: Removed.
* html/HTML5PreloadScanner.h: Removed.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/HTMLDocumentParser.h:
* html/HTMLPreloadScanner.cpp: Copied from WebCore/html/HTML5PreloadScanner.cpp.
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::appendToEnd):
(WebCore::HTMLPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::processToken):
(WebCore::HTMLPreloadScanner::scanningBody):
* html/HTMLPreloadScanner.h: Copied from WebCore/html/HTML5PreloadScanner.h.
* html/LegacyHTMLDocumentParser.cpp:
(WebCore::LegacyHTMLDocumentParser::scriptHandler):
(WebCore::LegacyHTMLDocumentParser::scriptExecution):
* html/LegacyHTMLDocumentParser.h:
* html/LegacyPreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp.
(WebCore::LegacyPreloadScanner::LegacyPreloadScanner):
(WebCore::LegacyPreloadScanner::~LegacyPreloadScanner):
(WebCore::LegacyPreloadScanner::begin):
(WebCore::LegacyPreloadScanner::end):
(WebCore::LegacyPreloadScanner::reset):
(WebCore::LegacyPreloadScanner::scanningBody):
(WebCore::LegacyPreloadScanner::write):
(WebCore::LegacyPreloadScanner::clearLastCharacters):
(WebCore::LegacyPreloadScanner::rememberCharacter):
(WebCore::LegacyPreloadScanner::lastCharactersMatch):
(WebCore::LegacyPreloadScanner::consumeEntity):
(WebCore::LegacyPreloadScanner::tokenize):
(WebCore::LegacyPreloadScanner::processAttribute):
(WebCore::LegacyPreloadScanner::emitCharacter):
(WebCore::LegacyPreloadScanner::tokenizeCSS):
(WebCore::LegacyPreloadScanner::emitTag):
(WebCore::LegacyPreloadScanner::emitCSSRule):
* html/LegacyPreloadScanner.h: Copied from WebCore/html/PreloadScanner.h.
* html/PreloadScanner.cpp: Removed.
* html/PreloadScanner.h: Removed.
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::decodeHTMLEntities):
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Yet more HTML5 => HTML renames
https://bugs.webkit.org/show_bug.cgi?id=41051
This patch renames HTML5DocumentParser to HTMLDocumentParser and
HTML5TreeBuilder to HTMLTreeBuilder. There was some discussion about
whether to use the name HTMLTreeBuilder or HTMLTreeConstructor, but
tree builder seems to be the dominate name in other implementations.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DocumentFragment.cpp:
(WebCore::DocumentFragment::parseHTML):
* html/HTML5DocumentParser.cpp: Removed.
* html/HTML5DocumentParser.h: Removed.
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::scan):
(WebCore::HTML5PreloadScanner::processToken):
* html/HTML5TreeBuilder.cpp: Removed.
* html/HTML5TreeBuilder.h: Removed.
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createParser):
* html/HTMLDocumentParser.cpp: Copied from WebCore/html/HTML5DocumentParser.cpp.
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::begin):
(WebCore::HTMLDocumentParser::stopParsing):
(WebCore::HTMLDocumentParser::processingData):
(WebCore::HTMLDocumentParser::pumpTokenizerIfPossible):
(WebCore::HTMLDocumentParser::isScheduledForResume):
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeConstructor):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::willPumpLexer):
(WebCore::HTMLDocumentParser::didPumpLexer):
(WebCore::HTMLDocumentParser::write):
(WebCore::HTMLDocumentParser::end):
(WebCore::HTMLDocumentParser::attemptToEnd):
(WebCore::HTMLDocumentParser::endIfDelayed):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::finishWasCalled):
(WebCore::HTMLDocumentParser::executingScript):
(WebCore::HTMLDocumentParser::inScriptExecution):
(WebCore::HTMLDocumentParser::lineNumber):
(WebCore::HTMLDocumentParser::columnNumber):
(WebCore::HTMLDocumentParser::htmlTreeConstructor):
(WebCore::HTMLDocumentParser::isWaitingForScripts):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
(WebCore::HTMLDocumentParser::watchForLoad):
(WebCore::HTMLDocumentParser::stopWatchingForLoad):
(WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc):
(WebCore::HTMLDocumentParser::notifyFinished):
(WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::HTMLDocumentParser::script):
* html/HTMLDocumentParser.h: Copied from WebCore/html/HTML5DocumentParser.h.
* html/HTMLParserScheduler.cpp:
(WebCore::HTMLParserScheduler::HTMLParserScheduler):
* html/HTMLParserScheduler.h:
* html/HTMLTreeBuilder.cpp: Copied from WebCore/html/HTML5TreeBuilder.cpp.
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::~HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::handleScriptStartTag):
(WebCore::HTMLTreeBuilder::handleScriptEndTag):
(WebCore::HTMLTreeBuilder::takeScriptToProcess):
(WebCore::HTMLTreeBuilder::adjustedLexerState):
(WebCore::HTMLTreeBuilder::passTokenToLegacyParser):
(WebCore::HTMLTreeBuilder::constructTreeFromToken):
(WebCore::HTMLTreeBuilder::processToken):
(WebCore::HTMLTreeBuilder::finished):
(WebCore::HTMLTreeBuilder::isScriptingFlagEnabled):
* html/HTMLTreeBuilder.h: Copied from WebCore/html/HTML5TreeBuilder.h.
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
More HTML5 => HTML renames
https://bugs.webkit.org/show_bug.cgi?id=41049
This patch renames HTML5ScriptRunner, HTML5ScriptRunnerHost, and
HTML5Token to remove the "5" from their names. These clases aren't
specific to HTML5 and will be used going forward.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan):
* html/CSSPreloadScanner.h:
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::notifyFinished):
* html/HTML5DocumentParser.h:
* html/HTML5PreloadScanner.cpp:
(WebCore::HTMLNames::PreloadTask::PreloadTask):
(WebCore::HTMLNames::PreloadTask::processAttributes):
(WebCore::HTML5PreloadScanner::processToken):
* html/HTML5PreloadScanner.h:
* html/HTML5ScriptRunner.cpp: Removed.
* html/HTML5ScriptRunner.h: Removed.
* html/HTML5ScriptRunnerHost.h: Removed.
* html/HTML5Token.h: Removed.
* html/HTML5TreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTML5TreeBuilder::handleScriptEndTag):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
(WebCore::HTML5TreeBuilder::constructTreeFromToken):
(WebCore::HTML5TreeBuilder::processToken):
* html/HTML5TreeBuilder.h:
* html/HTMLScriptRunner.cpp: Copied from WebCore/html/HTML5ScriptRunner.cpp.
(WebCore::HTMLScriptRunner::HTMLScriptRunner):
(WebCore::HTMLScriptRunner::~HTMLScriptRunner):
(WebCore::HTMLScriptRunner::sourceFromPendingScript):
(WebCore::HTMLScriptRunner::isPendingScriptReady):
(WebCore::HTMLScriptRunner::executePendingScript):
(WebCore::HTMLScriptRunner::executeScript):
(WebCore::HTMLScriptRunner::hasScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::watchForLoad):
(WebCore::HTMLScriptRunner::stopWatchingForLoad):
(WebCore::HTMLScriptRunner::execute):
(WebCore::HTMLScriptRunner::haveParsingBlockingScript):
(WebCore::HTMLScriptRunner::executeParsingBlockingScripts):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTMLScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTMLScriptRunner::requestScript):
(WebCore::HTMLScriptRunner::runScript):
* html/HTMLScriptRunner.h: Copied from WebCore/html/HTML5ScriptRunner.h.
* html/HTMLScriptRunnerHost.h: Copied from WebCore/html/HTML5ScriptRunnerHost.h.
(WebCore::HTMLScriptRunnerHost::~HTMLScriptRunnerHost):
* html/HTMLToken.h: Copied from WebCore/html/HTML5Token.h.
(WebCore::HTMLToken::HTMLToken):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::emitCharacter):
(WebCore::HTMLTokenizer::emitCurrentToken):
(WebCore::HTMLTokenizer::shouldEmitBufferedCharacterToken):
* html/HTMLTokenizer.h:
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename HTML5EntityParser to HTMLEntityParser
https://bugs.webkit.org/show_bug.cgi?id=41048
Mostly the result of do-webcore-rename, but I tweaked the header guard
and the name of the free function.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5EntityParser.cpp: Removed.
* html/HTML5EntityParser.h: Removed.
* html/HTMLEntityParser.cpp: Copied from WebCore/html/HTML5EntityParser.cpp.
(WebCore::consumeHTMLEntity):
* html/HTMLEntityParser.h: Copied from WebCore/html/HTML5EntityParser.h.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::processEntity):
(WebCore::HTMLTokenizer::nextToken):
2010-06-22 Yuta Kitamura <yutak@chromium.org>
Reviewed by Alexey Proskuryakov.
Add a new class that stores information about WebSocket handshake response.
In the future, instances of the new class will be passed to the Web Inspector
so that it will be able to display information about WebSocket handshake
response.
WebSocket: Add WebSocketHandshakeResponse
https://bugs.webkit.org/show_bug.cgi?id=38728
Test: websocket/tests/handshake-fail-by-no-cr.html
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* websockets/WebSocketHandshake.cpp:
(WebCore::trimConsoleMessage):
(WebCore::WebSocketHandshake::readServerHandshake):
(WebCore::WebSocketHandshake::serverHandshakeResponse):
(WebCore::WebSocketHandshake::readStatusLine): Moved from extractResponseCode.
Add more error checks and make error messages more descriptive.
(WebCore::WebSocketHandshake::readHTTPHeaders):
(WebCore::WebSocketHandshake::processHeaders):
* websockets/WebSocketHandshake.h:
* websockets/WebSocketHandshakeResponse.cpp: Added.
(WebCore::WebSocketHandshakeResponse::ChallengeResponse::ChallengeResponse):
(WebCore::WebSocketHandshakeResponse::ChallengeResponse::set):
(WebCore::WebSocketHandshakeResponse::WebSocketHandshakeResponse):
(WebCore::WebSocketHandshakeResponse::~WebSocketHandshakeResponse):
(WebCore::WebSocketHandshakeResponse::statusCode):
(WebCore::WebSocketHandshakeResponse::setStatusCode):
(WebCore::WebSocketHandshakeResponse::statusText):
(WebCore::WebSocketHandshakeResponse::setStatusText):
(WebCore::WebSocketHandshakeResponse::headerFields):
(WebCore::WebSocketHandshakeResponse::addHeaderField):
(WebCore::WebSocketHandshakeResponse::clearHeaderFields):
(WebCore::WebSocketHandshakeResponse::challengeResponse):
(WebCore::WebSocketHandshakeResponse::setChallengeResponse):
* websockets/WebSocketHandshakeResponse.h: Added.
2010-06-23 Yuzo Fujishima <yuzo@google.com>
Reviewed by Shinichiro Hamaji.
Implement page format data programming interface.
The final goal is to implement CSS Paged Media Module Level 3 (http://dev.w3.org/csswg/css3-page/).
To begin with, this change adds methods to know:
- if page box is visible,
- the page area rectangle, and
- preferred page size.
https://bugs.webkit.org/show_bug.cgi?id=37538
Test: printing/page-format-data.html
* WebCore.base.exp:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseSizeParameter):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
(WebCore::CSSStyleSelector::applyPageSizeProperty):
(WebCore::CSSStyleSelector::pageSizeFromName):
(WebCore::CSSStyleSelector::mmLength):
(WebCore::CSSStyleSelector::inchLength):
* css/CSSStyleSelector.h:
* css/html.css:
(@page):
* dom/Document.cpp:
(WebCore::Document::isPageBoxVisible):
(WebCore::Document::pageAreaRectInPixels):
(WebCore::Document::preferredPageSizeInPixels):
* dom/Document.h:
* page/PrintContext.cpp:
(WebCore::PrintContext::isPageBoxVisible):
(WebCore::PrintContext::pageAreaRectInPixels):
(WebCore::PrintContext::preferredPageSizeInPixels):
* page/PrintContext.h:
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::pageSize):
(WebCore::InheritedFlags::setPageSize):
* rendering/style/StyleRareNonInheritedData.h:
2010-06-23 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename lexer and m_lexer to tokenizer and m_tokenizer, respectively
https://bugs.webkit.org/show_bug.cgi?id=41046
This is a follow up to the recent HTML5Lexer => HTMLTokenizer rename.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::begin):
(WebCore::HTML5DocumentParser::pumpLexer):
(WebCore::HTML5DocumentParser::willPumpLexer):
(WebCore::HTML5DocumentParser::didPumpLexer):
(WebCore::HTML5DocumentParser::lineNumber):
(WebCore::HTML5DocumentParser::columnNumber):
* html/HTML5DocumentParser.h:
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::scan):
(WebCore::HTML5PreloadScanner::processToken):
* html/HTML5PreloadScanner.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
(WebCore::HTML5TreeBuilder::handleScriptStartTag):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
* html/HTML5TreeBuilder.h:
* html/HTMLTokenizer.h:
* html/LegacyHTMLDocumentParser.h:
2010-06-23 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Eric Seidel.
Reproducible crash in com.apple.WebCore 0x01ed3784 WebCore::RenderLineBoxList::appendLineBox(WebCore::InlineFlowBox*) + 36
https://bugs.webkit.org/show_bug.cgi?id=40953
REGRESSION (r58209-58231): Memory corruption with invalid SVG
https://bugs.webkit.org/show_bug.cgi?id=40173
Fix several crashes, all related to <foreignObject> and/or invalid SVG documents.
- Only allow <svg> nodes, as direct children of a <foreignObject>, not any other "partial" SVG content.
- Assure to create RenderSVGRoot objects for <svg> nodes in <foreignObject>, treat them as "outermost SVG elements".
- Never allow any partial SVG content to appear in any document. Only <svg> elements are allowed.
Tests: svg/custom/bug45331.svg
svg/foreignObject/disallowed-svg-nodes-as-direct-children.svg
svg/foreignObject/no-crash-with-svg-content-in-html-document.svg
svg/foreignObject/svg-document-as-direct-child.svg
svg/foreignObject/svg-document-in-html-document.svg
svg/foreignObject/text-tref-02-b.svg
* dom/Element.cpp: Added childShouldCreateRenderer, with ENABLE(SVG) guards.
(WebCore::Element::childShouldCreateRenderer): Only create a renderer for a SVG child, if we're a SVG element, or if the child is a <svg> element.
* dom/Element.h: Added childShouldCreateRenderer, with ENABLE(SVG) guards.
* svg/SVGForeignObjectElement.cpp:
(WebCore::SVGForeignObjectElement::childShouldCreateRenderer): Disallow arbitary SVG content, only <svg> elements are allowed as direct children of a <foreignObject>
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::isOutermostSVG): Be sure to create RenderSVGRoot objects for <svg> elements inside <foreignObject>
2010-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename HTML5Lexer to HTMLTokenizer
https://bugs.webkit.org/show_bug.cgi?id=41045
This might be slightly confusing given that the old class was called
HTMLTokenizer, but it matches the terminology in the HTML5 spec.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::pumpLexer):
* html/HTML5DocumentParser.h:
* html/HTML5Lexer.cpp: Removed.
* html/HTML5Lexer.h: Removed.
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::processToken):
* html/HTML5PreloadScanner.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
(WebCore::HTML5TreeBuilder::handleScriptStartTag):
(WebCore::HTML5TreeBuilder::adjustedLexerState):
* html/HTML5TreeBuilder.h:
* html/HTMLTokenizer.cpp: Copied from WebCore/html/HTML5Lexer.cpp.
(WebCore::HTMLNames::isEndTagBufferingState):
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::~HTMLTokenizer):
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::processEntity):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::temporaryBufferIs):
(WebCore::HTMLTokenizer::addToPossibleEndTag):
(WebCore::HTMLTokenizer::isAppropriateEndTag):
(WebCore::HTMLTokenizer::emitCharacter):
(WebCore::HTMLTokenizer::emitCodePoint):
(WebCore::HTMLTokenizer::emitParseError):
(WebCore::HTMLTokenizer::emitCurrentToken):
(WebCore::HTMLTokenizer::shouldEmitBufferedCharacterToken):
* html/HTMLTokenizer.h: Copied from WebCore/html/HTML5Lexer.h.
2010-06-22 Simon Hausmann <simon.hausmann@nokia.com>
Unreviewed Qt/Symbian build fix.
Fix "make clean" to not try to execute clean commands for
the extra targets we use to simulate "make install".
* WebCore.pro: Use no_clean in CONFIG of extra compilers.
2010-06-22 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Run clean-header-guards to fix some header guards
https://bugs.webkit.org/show_bug.cgi?id=41044
No functional changes, thus no tests.
This entire change was generated by running
clean-header-guards, and then reverting changes
to files which shouldn't be changed. Those which
are left all should be updated.
Some of these changes are just fixing 755 permissions
to be 644, since it seems various files have the wrong
execute bit which don't need it. clean-header-guards
made those (welcome) permission fixes unintentionally.
* bindings/v8/custom/V8HTMLAudioElementConstructor.h:
* bindings/v8/custom/V8HTMLImageElementConstructor.h:
* bindings/v8/custom/V8HTMLOptionElementConstructor.h:
* dom/Touch.h:
* dom/TouchList.h:
* dom/XMLDocumentParser.h:
* dom/XMLDocumentParserScope.h:
* html/HTML5DocumentParser.h:
* html/LegacyHTMLTreeConstructor.h:
* loader/CrossOriginPreflightResultCache.h:
* page/OriginAccessEntry.h:
* page/win/FrameWin.h:
* platform/ThreadTimers.h:
* platform/chromium/KeyboardCodes.h:
* platform/graphics/chromium/FontPlatformDataChromiumWin.h:
* platform/graphics/chromium/FontUtilsChromiumWin.h:
* platform/graphics/filters/FEBlend.h:
* platform/graphics/filters/FEColorMatrix.h:
* platform/graphics/filters/FEComponentTransfer.h:
* platform/graphics/filters/FEComposite.h:
* platform/graphics/gstreamer/DataSourceGStreamer.h:
* platform/graphics/gstreamer/VideoSinkGStreamer.h:
- I checked, this crazy define was not referenced
anywhere else. It's safe to change the name. :)
* platform/graphics/haiku/FontPlatformData.h:
* platform/graphics/qt/FontCustomPlatformData.h:
* platform/graphics/skia/SkiaFontWin.h:
* platform/graphics/win/GraphicsLayerCACF.h:
* platform/graphics/win/QTMovieWinTimer.h:
* platform/graphics/win/RefCountedGDIHandle.h:
* platform/graphics/win/WebLayer.h:
* platform/graphics/win/WebTiledLayer.h:
* platform/graphics/wince/FontPlatformData.h:
* platform/graphics/wx/FontPlatformData.h:
* platform/network/CredentialStorage.h:
* platform/network/cf/FormDataStreamCFNet.h:
* platform/network/curl/FormDataStreamCurl.h:
* platform/network/qt/DnsPrefetchHelper.h:
* platform/network/qt/QNetworkReplyHandler.h:
* platform/win/PlatformScrollBar.h:
* plugins/PluginDatabase.h:
* plugins/PluginPackage.h:
* plugins/PluginStream.h:
* plugins/qt/PluginContainerQt.h:
* plugins/symbian/npinterface.h:
* rendering/RenderSelectionInfo.h:
* rendering/SVGRenderSupport.h:
* storage/IDBObjectStoreImpl.h:
* svg/animation/SMILTimeContainer.h:
* wml/WMLErrorHandling.h:
2010-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Rename HTMLDocumentParser to LegacyHTMLDocumentParser
https://bugs.webkit.org/show_bug.cgi?id=41043
As requested by Darin Adler.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::checkLoaded):
* dom/Document.cpp:
(WebCore::Document::write):
* dom/DocumentFragment.cpp:
* dom/DocumentParser.h:
(WebCore::DocumentParser::asHTMLDocumentParser):
* dom/XMLDocumentParserLibxml2.cpp:
* dom/XMLDocumentParserQt.cpp:
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::columnNumber):
* html/HTML5TreeBuilder.cpp:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createParser):
* html/HTMLDocumentParser.cpp: Removed.
* html/HTMLDocumentParser.h: Removed.
* html/HTMLFormControlElement.cpp:
* html/HTMLParserScheduler.cpp:
(WebCore::parserChunkSize):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createParser):
(WebCore::HTMLViewSourceDocument::addViewSourceToken):
* html/HTMLViewSourceDocument.h:
* html/LegacyHTMLDocumentParser.cpp: Copied from WebCore/html/HTMLDocumentParser.cpp.
(WebCore::LegacyHTMLDocumentParser::LegacyHTMLDocumentParser):
(WebCore::LegacyHTMLDocumentParser::reset):
(WebCore::LegacyHTMLDocumentParser::begin):
(WebCore::LegacyHTMLDocumentParser::setForceSynchronous):
(WebCore::LegacyHTMLDocumentParser::processListing):
(WebCore::LegacyHTMLDocumentParser::parseNonHTMLText):
(WebCore::LegacyHTMLDocumentParser::scriptHandler):
(WebCore::LegacyHTMLDocumentParser::scriptExecution):
(WebCore::LegacyHTMLDocumentParser::parseComment):
(WebCore::LegacyHTMLDocumentParser::parseServer):
(WebCore::LegacyHTMLDocumentParser::parseProcessingInstruction):
(WebCore::LegacyHTMLDocumentParser::parseText):
(WebCore::LegacyHTMLDocumentParser::parseEntity):
(WebCore::LegacyHTMLDocumentParser::parseDoctype):
(WebCore::LegacyHTMLDocumentParser::parseTag):
(WebCore::LegacyHTMLDocumentParser::continueProcessing):
(WebCore::LegacyHTMLDocumentParser::advance):
(WebCore::LegacyHTMLDocumentParser::willWriteHTML):
(WebCore::LegacyHTMLDocumentParser::didWriteHTML):
(WebCore::LegacyHTMLDocumentParser::write):
(WebCore::LegacyHTMLDocumentParser::stopParsing):
(WebCore::LegacyHTMLDocumentParser::processingData):
(WebCore::LegacyHTMLDocumentParser::timerFired):
(WebCore::LegacyHTMLDocumentParser::end):
(WebCore::LegacyHTMLDocumentParser::finish):
(WebCore::LegacyHTMLDocumentParser::finishWasCalled):
(WebCore::LegacyHTMLDocumentParser::processToken):
(WebCore::LegacyHTMLDocumentParser::processDoctypeToken):
(WebCore::LegacyHTMLDocumentParser::~LegacyHTMLDocumentParser):
(WebCore::LegacyHTMLDocumentParser::enlargeBuffer):
(WebCore::LegacyHTMLDocumentParser::enlargeScriptBuffer):
(WebCore::LegacyHTMLDocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::LegacyHTMLDocumentParser::notifyFinished):
(WebCore::LegacyHTMLDocumentParser::executeExternalScriptsIfReady):
(WebCore::LegacyHTMLDocumentParser::executeExternalScriptsTimerFired):
(WebCore::LegacyHTMLDocumentParser::continueExecutingExternalScripts):
(WebCore::LegacyHTMLDocumentParser::isWaitingForScripts):
(WebCore::LegacyHTMLDocumentParser::setSrc):
(WebCore::parseLegacyHTMLDocumentFragment):
* html/LegacyHTMLDocumentParser.h: Copied from WebCore/html/HTMLDocumentParser.h.
(WebCore::LegacyHTMLDocumentParser::asHTMLDocumentParser):
* html/LegacyHTMLTreeConstructor.cpp:
(WebCore::LegacyHTMLTreeConstructor::reportErrorToConsole):
* html/LegacyHTMLTreeConstructor.h:
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::finish):
* page/XSSAuditor.h:
2010-06-22 Shinichiro Hamaji <hamaji@chromium.org>
Unreviewed attempt to fix the windows build.
Split out HTML5DocumentParser yield/resume logic into a separate class
https://bugs.webkit.org/show_bug.cgi?id=41018
* WebCore.vcproj/WebCore.vcproj:
2010-06-22 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Split out HTML5DocumentParser yield/resume logic into a separate class
https://bugs.webkit.org/show_bug.cgi?id=41018
The HTML5DocumentParser is just the coordinator, and shouldn't have
any real parsing logic of his own. Continuing along that path, I'm
moving the when-to-yield/resume logic out into a separate class.
I could have create a new HTMLParserSchedulerHost virtual interface
to allow the HTMLParserScheduler to talk back to the
HTML5DocumentParser, but instead I just exposed the one method it
needs (resumeParsing()) as a public method. Since no code besides
HTMLDocument (and DocumentFrament) ever should know about the
HTML5DocumentParser DocumentParser subclass, no class should ever
see the resumeParsing() method anyway.
Most of this change is just moving code from HTML5DocumentParser
to the new HTMLParserScheduler.
Some of this change is wrapping previous direct access to
m_continueNextChunkTimer.isActive() with isScheduledForResume().
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::stopParsing):
(WebCore::HTML5DocumentParser::processingData):
(WebCore::HTML5DocumentParser::pumpLexerIfPossible):
(WebCore::HTML5DocumentParser::isScheduledForResume):
(WebCore::HTML5DocumentParser::resumeParsing):
(WebCore::HTML5DocumentParser::pumpLexer):
(WebCore::HTML5DocumentParser::end):
(WebCore::HTML5DocumentParser::attemptToEnd):
(WebCore::HTML5DocumentParser::endIfDelayed):
* html/HTML5DocumentParser.h:
(WebCore::HTML5DocumentParser::document):
- Exposed for HTMLParserScheduler.
* html/HTMLParserScheduler.cpp: Added.
(WebCore::parserTimeLimit): Moved from HTML5DocumentParser.
(WebCore::parserChunkSize): ditto.
(WebCore::HTMLParserScheduler::HTMLParserScheduler):
(WebCore::HTMLParserScheduler::~HTMLParserScheduler):
(WebCore::isLayoutTimerActive):
(WebCore::HTMLParserScheduler::continueNextChunkTimerFired):
- Moved from HTML5DocumentParser.
* html/HTMLParserScheduler.h: Added.
(WebCore::HTMLParserScheduler::PumpSession::PumpSession):
- Moved from HTML5DocumentParser.
(WebCore::HTMLParserScheduler::shouldContinueParsing):
(WebCore::HTMLParserScheduler::isScheduledForResume):
2010-06-22 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: move nodeByPath from InjectedScript to InspectorBackend.
https://bugs.webkit.org/show_bug.cgi?id=40988
* inspector/InjectedScriptHost.cpp:
* inspector/InjectedScriptHost.h:
* inspector/InjectedScriptHost.idl:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::pushNodeByPathToFrontend):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
(WebCore::InspectorDOMAgent::nodeForPath):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didPushNodeByPathToFrontend):
* inspector/InspectorFrontend.h:
* inspector/front-end/DOMAgent.js:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.setDocument):
* inspector/front-end/InjectedScript.js:
* inspector/front-end/InjectedScriptAccess.js:
2010-06-22 David Levin <levin@chromium.org>
Reviewed by Alexey Proskuryakov.
REGRESSION: (r47291): Upload progress events are not fired for simple cross-site XHR.
https://bugs.webkit.org/show_bug.cgi?id=39029
Specifically, WebKit should fire upload events if one or more event listeners are
registered on the XMLHttpRequestUpload object when send is called in an async manner.
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::createRequest): Allow upload events to be fired when there are
handlers for them in the cross-origin simple request case.
2010-06-22 Kent Tamura <tkent@chromium.org>
Reviewed by Adam Barth.
Fix uninitialized SubframeLoader::m_containsPlugins
https://bugs.webkit.org/show_bug.cgi?id=41035
* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::SubframeLoader):
Initialize m_containsPlugins with false.
2010-06-22 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Adam Barth.
Add BlobBuilder.idl to expose BlobBuilder interface
https://bugs.webkit.org/show_bug.cgi?id=40593
(Resubmitting with the correct file set.)
BlobBuilder is defined in FileAPI's FileWriter spec.
(http://dev.w3.org/2009/dap/file-system/file-writer.html)
Also removes the ENABLE_FILE_WRITER ifdef guard for BlobBuilder.
Tests: http/tests/local/blob/send-data-blob.html
http/tests/local/blob/send-hybrid-blob.html
http/tests/local/blob/send-sliced-data-blob.html
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/BlobBuilder.cpp:
(WebCore::BlobBuilder::append):
* html/BlobBuilder.h:
* html/BlobBuilder.idl: Added.
* page/DOMWindow.idl:
2010-06-22 Kent Tamura <tkent@chromium.org>
Unreviewed, build fix for r61648.
* platform/graphics/GraphicsContext3D.h:
2010-06-22 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Kent Tamura.
Define GraphicsContext3D::platformLayer() for all remaining (non PLATFORM(MAC))
ports to get RenderLayerBacking.cpp compiling again.
https://bugs.webkit.org/show_bug.cgi?id=41026
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::platformLayer):
2010-06-22 Eric Seidel <eric@webkit.org>
Unreviewed. Rolling out http://trac.webkit.org/changeset/61638
made a few tests crash.
Make PendingScript hold a CachedResourceClient open for its lifetime
https://bugs.webkit.org/show_bug.cgi?id=40968
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::watchForLoad):
(WebCore::HTML5DocumentParser::notifyFinished):
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
(WebCore::HTML5ScriptRunner::sourceFromPendingScript):
(WebCore::HTML5ScriptRunner::isPendingScriptReady):
(WebCore::HTML5ScriptRunner::executePendingScript):
(WebCore::HTML5ScriptRunner::hasScriptsWaitingForLoad):
(WebCore::HTML5ScriptRunner::watchForLoad):
(WebCore::HTML5ScriptRunner::stopWatchingForLoad):
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTML5ScriptRunner::requestScript):
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::PendingScript::):
(WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
(WebCore::HTML5ScriptRunner::PendingScript::watchingForLoad):
* html/HTML5ScriptRunnerHost.h:
2010-06-22 Adele Peterson <adele@apple.com>
Reviewed by Darin Adler.
Fix for Crash when the renderer for the button in <input type="number"> goes away during event handling
https://bugs.webkit.org/show_bug.cgi?id=41013
Test: fast/forms/input-number-crash.html
* rendering/TextControlInnerElements.cpp: (WebCore::SpinButtonElement::defaultEventHandler):
Nil check the RenderBox since its possible the renderer has gone away during event handling.
2010-06-22 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Pull script line number from DocumentParser instead of pushing it to ScriptController
https://bugs.webkit.org/show_bug.cgi?id=40649
This approach is cleaner and improves WebCore/benchmarks/parser/html-parser.html by ~2%.
Tests: fast/js/script-line-number.html
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::ScriptController):
(WebCore::ScriptController::eventHandlerLineNumber):
* bindings/js/ScriptController.h:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::eventHandlerLineNumber):
(WebCore::ScriptController::eventHandlerColumnNumber):
* bindings/v8/ScriptController.h:
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* bindings/v8/V8Proxy.h:
* dom/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::pumpLexer):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processToken):
2010-06-22 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Make PendingScript hold a CachedResourceClient open for its lifetime
https://bugs.webkit.org/show_bug.cgi?id=40968
This replaces the mechanism introduced in r61374 with a simpler
approach from preventing unexpected purges; always keep a client open.
This will approach will allow deferred scripts to add a client after
the resource may have already been loaded without having to worry about
the buffer being purged in the meantime.
No new tests because making a CachedResource purge itself is not
testable from a LayoutTest.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::watchForLoad):
(WebCore::HTML5DocumentParser::notifyFinished):
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
(WebCore::HTML5ScriptRunner::sourceFromPendingScript):
(WebCore::HTML5ScriptRunner::isPendingScriptReady):
(WebCore::HTML5ScriptRunner::executePendingScript):
(WebCore::HTML5ScriptRunner::watchForLoad):
(WebCore::HTML5ScriptRunner::stopWatchingForLoad):
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets):
(WebCore::HTML5ScriptRunner::requestScript):
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
(WebCore::HTML5ScriptRunner::PendingScript::~PendingScript):
(WebCore::HTML5ScriptRunner::PendingScript::setCachedScript):
(WebCore::HTML5ScriptRunner::PendingScript::cachedScript):
(WebCore::HTML5ScriptRunner::PendingScript::notifyFinished):
* html/HTML5ScriptRunnerHost.h:
2010-06-22 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Fragment parsing needs to go through the HTML5 Parser code path
https://bugs.webkit.org/show_bug.cgi?id=40645
Added a new HTML5DocumentParser::parseHTMLDocumentFragment
codepath which optionally calls through to the old fragment
parsing path, now renamed parseLegacyHTMLDocumentFragment.
* dom/Element.cpp:
(WebCore::Element::createContextualFragment):
- Use document()->createDocumentFragment() instead
of DocumentFragment::create() to match other callers
(and not depend on DocumentFragment.h).
- Update call to parseHTMLDocumentFragment to use the new
HTML5 parser codepath.
* dom/MappedAttributeEntry.h:
- Add a FIXME about this horrible enum placement.
Sadly this will cause a world-rebuild for everyone.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::runScriptsForPausedTreeConstructor):
- The main pumpLexer function has gotten to large. Move the script
running logic into this new function.
- Handle the case where we have no m_scriptRunner (fragment case).
(WebCore::HTML5DocumentParser::pumpLexer):
- Use new runScriptsForPausedTreeConstructor().
(WebCore::HTML5DocumentParser::executingScript):
(WebCore::HTML5DocumentParser::inScriptExecution):
- New function to handle the case where m_scriptRunner is null.
(WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution):
- Use inScriptExecution() instead of m_scriptRunner->inScriptExecution().
(WebCore::HTML5DocumentParser::executeScript): ditto.
(WebCore::HTML5DocumentParser::notifyFinished): ditto.
(WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets): ditto.
(WebCore::shouldUseLegacyParser):
- Helper function to check the html5ParserEnabled() setting.
(WebCore::HTML5DocumentParser::parseHTMLDocumentFragment):
- Run HTML5DocumentParser in fragment mode, or optionally run
the legacy parser if !html5ParserEnabled().
* html/HTML5DocumentParser.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
- Implement the FragmentScriptingNotAllowed hack for platform/Pasteboard.
* html/HTML5TreeBuilder.h:
* html/HTMLDocumentParser.cpp:
(WebCore::parseLegacyHTMLDocumentFragment):
- Renamed from parseHTMLDocumentFragment
* html/HTMLDocumentParser.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::insertAdjacentHTML):
- Call HTML5DocumentParser::parseHTMLDocumentFragment.
* platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::documentFragment): ditto.
* xml/XSLTProcessor.cpp:
(WebCore::createFragmentFromSource): ditto.
2010-06-22 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=40643
Final phase of moving ownership of WebGLLayer to GraphicsContext3D.
As it turns out, I still have to have a separate CGLContextObj for
rendering because Core Animation composites in a separate thread,
so we need to disconnect WebGL rendering from CA compositing. But
this change is still worthwhile because it reduces dependencies
and makes it easier to port WebGL to other platforms.
No new tests since this is just restructuring and the current tests
are all still valid and do a sufficient test of WebGL functionality.
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::platformLayer):
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setContentsToWebGL):
(WebCore::GraphicsLayer::setWebGLNeedsDisplay):
* platform/graphics/mac/GraphicsContext3DMac.mm: Add creation of WebGLLayer
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/mac/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::):
* platform/graphics/mac/GraphicsLayerCA.mm: Handle setting of WebGLLayer as content the same as for MediaLayer. Also changed WebGL related names for clarity
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateContentsWebGLLayer):
(WebCore::GraphicsLayerCA::setContentsToWebGL):
(WebCore::GraphicsLayerCA::setWebGLNeedsDisplay):
* platform/graphics/mac/WebGLLayer.h:
* platform/graphics/mac/WebGLLayer.mm: Got rid of storage for context and texture, now just store GraphicsContext3D and get them from there when needed
(-[WebGLLayer copyCGLPixelFormatForDisplayMask:]):
(-[WebGLLayer copyCGLContextForPixelFormat:]):
(-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
* rendering/RenderLayerBacking.cpp: Changed init of WebGL contentsLayer to pass WebGLLayer rather than GraphicsContext3D
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
(WebCore::RenderLayerBacking::rendererContentChanged):
2010-06-22 Darin Adler <darin@apple.com>
Reviewed by Dave Hyatt.
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::parseMappedAttribute): Removed incorrect FIXME comments.
2010-06-22 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
<rdar://problem/8119403> REGRESSION (r61548): PLT is almost 1.5% slower, Google page cycler slower
https://bugs.webkit.org/show_bug.cgi?id=41012
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Removed a redundant statement that was
left over in the original patch and resulted in double the calls to RenderText::width() here.
(WebCore::RenderBlock::findNextLineBreak): Changed the order of evaluating conditions for a
potential speedup.
2010-06-22 Darin Adler <darin@apple.com>
Reviewed by Alexey Proskuryakov.
Alexey asked me to take out the autorelease pools because he believes
that there is no code that should be running using Objective-C
autorelease. Most likely, the code that is triggering these stderr
messages is incorrect, and that bug should be fixed instead.
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::run): Roll out use of AutodrainedPool.
2010-06-22 Darin Adler <darin@apple.com>
Reviewed by Brady Eidson.
Fix autorelease problem seen when running worker regression tests.
We were seeing logs to stderr saying autorelease was used without
an autorelease pool being set up.
* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::run): Use an AutodrainedPool as the file
thread, icon database, and database thread do. No effect on platforms
other than Mac.
2010-06-22 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: If an element that is a continuation is removed, its parent tree is not notified appropriately that their children have changed
https://bugs.webkit.org/show_bug.cgi?id=41000
Test: accessibility/removed-continuation-element-causes-crash.html
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::updateChildrenIfNecessary):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::childrenChanged):
(WebCore::AccessibilityRenderObject::addChildren):
* accessibility/AccessibilityRenderObject.h:
2010-06-22 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
Override setFailed() in each image decoder to clean up any temporary
objects.
https://bugs.webkit.org/show_bug.cgi?id=35411
In a few cases, we need to be careful to avoid deleting objects until
after they're no longer needed. These cases usually mean some jumping
through hoops, to the detriment of code simplicity.
No layout tests because this does not change the visible output of
decoding in any way.
* platform/image-decoders/ImageDecoder.h:
(WebCore::ImageDecoder::setData):
* platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::setFailed):
(WebCore::BMPImageDecoder::decode):
* platform/image-decoders/bmp/BMPImageDecoder.h:
* platform/image-decoders/bmp/BMPImageReader.cpp:
(WebCore::BMPImageReader::decodeBMP):
(WebCore::BMPImageReader::readInfoHeaderSize):
(WebCore::BMPImageReader::processInfoHeader):
(WebCore::BMPImageReader::readInfoHeader):
(WebCore::BMPImageReader::processBitmasks):
(WebCore::BMPImageReader::processColorTable):
(WebCore::BMPImageReader::processRLEData):
(WebCore::BMPImageReader::processNonRLEData):
* platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::):
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::setFailed):
(WebCore::GIFImageDecoder::decode):
* platform/image-decoders/gif/GIFImageDecoder.h:
* platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::setFailed):
(WebCore::ICOImageDecoder::decode):
* platform/image-decoders/ico/ICOImageDecoder.h:
* platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode):
(WebCore::JPEGImageDecoder::setFailed):
(WebCore::JPEGImageDecoder::decode):
* platform/image-decoders/jpeg/JPEGImageDecoder.h:
* platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
(WebCore::PNGImageDecoder::PNGImageDecoder):
(WebCore::PNGImageDecoder::setFailed):
(WebCore::PNGImageDecoder::headerAvailable):
(WebCore::PNGImageDecoder::decode):
* platform/image-decoders/png/PNGImageDecoder.h:
2010-06-04 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Remove side effects of form submission and prepare FormDataBuilder for splitting up.
https://bugs.webkit.org/show_bug.cgi?id=40184
Refactoring, covered by existing tests.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareFormSubmission):
* Changed to use new accessors on FormDataBuilder;
* Simplified the logic around action URL;
* Removed form submission side effect of element's enctype property being updated when
submitting a mailto form;
* Removed unnecessary updating of action URL for mailto forms.
(WebCore::HTMLFormElement::submit): Moved action URL check into prepareFormSubmission.
(WebCore::HTMLFormElement::parseMappedAttribute): Updated to use new methods on FormDataBuilder.
* html/HTMLFormElement.h: Removed decls for isMailtoForm and dataEncoding methods;
moved m_target and m_url to FormDataBuilder.
* platform/network/FormData.cpp:
(WebCore::FormData::appendDOMFormData): Removed unnecessary instantiation of FormDataBuilder.
* platform/network/FormDataBuilder.cpp:
(WebCore::FormDataBuilder::parseAction): Moved from HTMLFormControl.
* platform/network/FormDataBuilder.h:
(WebCore::FormDataBuilder::action): Ditto.
(WebCore::FormDataBuilder::target): Ditto.
(WebCore::FormDataBuilder::setTarget): Ditto.
2010-06-22 Yuta Kitamura <yutak@chromium.org>
Reviewed by Alexey Proskuryakov.
Fix WebSocketHandshakeRequest so that it fits the new handshake protocol.
The new WebSocket specification (draft 76 and later) allows a browser to
send header fields in arbitrary order. Thus we can use a HTTPHeaderMap to
store header fields instead of Vector of pairs of a field name and
a field value.
This patch also does refactoring of WebSocketHandshakeRequest class
to make it simpler and easier to use.
Fix WebSocketHandshakeRequest so that it fits the new handshake protocol
https://bugs.webkit.org/show_bug.cgi?id=39864
No new tests, because there is no functional change.
* websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::clientHandshakeRequest):
* websockets/WebSocketHandshakeRequest.cpp:
(WebCore::WebSocketHandshakeRequest::Key3::Key3):
(WebCore::WebSocketHandshakeRequest::Key3::set):
(WebCore::WebSocketHandshakeRequest::WebSocketHandshakeRequest):
(WebCore::WebSocketHandshakeRequest::requestMethod):
(WebCore::WebSocketHandshakeRequest::url):
(WebCore::WebSocketHandshakeRequest::addHeaderField):
(WebCore::WebSocketHandshakeRequest::headerFields):
(WebCore::WebSocketHandshakeRequest::key3):
(WebCore::WebSocketHandshakeRequest::setKey3):
* websockets/WebSocketHandshakeRequest.h:
2010-06-20 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
<meter> should be yellow when min < value < low < optimum
https://bugs.webkit.org/show_bug.cgi?id=40824
Fixed a wrong conditional on HTMLMeterElement::gaugeRegion().
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::gaugeRegion):
Tests: fast/dom/HTMLMeterElement/meter-appearances-capacity.html
fast/dom/HTMLMeterElement/meter-optimums.html
2010-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Follow the HTML5 spec more closely w.r.t. when to save the insertion point
https://bugs.webkit.org/show_bug.cgi?id=40976
The spec always increments the nesting level and saves the insertion
point at the same time. In this patch, we now do those operations
packaged as a RAII.
As a side effect, the test case below no longer ASSERTs. (The output
is wrong, but we'll get to that next.)
Test: fast/tokenizer/write-on-load.html
* html/HTML5ScriptRunner.cpp:
(WebCore::NestScript::NestScript):
(WebCore::NestScript::~NestScript):
(WebCore::HTML5ScriptRunner::executePendingScript):
(WebCore::HTML5ScriptRunner::executeScript):
(WebCore::HTML5ScriptRunner::requestScript):
(WebCore::HTML5ScriptRunner::runScript):
* html/HTMLInputStream.h:
2010-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Expose HTMLInputStream to ScriptRunner so that ScriptRunner can save the insertion point itself
https://bugs.webkit.org/show_bug.cgi?id=40975
This saves us having to call back into the HTML5DocumentParser each
time we need to save the insertion point. This prepares us for another
place we need to save the insertion point.
* html/HTML5DocumentParser.cpp:
* html/HTML5DocumentParser.h:
(WebCore::HTML5DocumentParser::inputStream):
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::executeScript):
(WebCore::HTML5ScriptRunner::requestScript):
* html/HTML5ScriptRunnerHost.h:
2010-06-22 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Move HTMLInputStream to its own file
https://bugs.webkit.org/show_bug.cgi?id=40974
No new tests, just code motion.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5DocumentParser.h:
2010-06-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Save the insertion point before beforeload events
https://bugs.webkit.org/show_bug.cgi?id=40973
We need to save the insertion point before dispatching the beforeload
event in case someone decides to document.write during beforeload.
Prior to this patch, such writes would pump the lexer too much and
tokenize the rest of the document before executing the script.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::dispatchBeforeLoad):
* html/HTML5DocumentParser.h:
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::requestScript):
* html/HTML5ScriptRunnerHost.h:
2010-06-21 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
document.write from BeforeLoad should not assert
https://bugs.webkit.org/show_bug.cgi?id=40971
We're setting the parse blocking script too early. It's not actually
blocking parsing yet.
Test: fast/tokenizer/write-before-load.html
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::requestScript):
2010-06-21 Chris Fleizach <cfleizach@apple.com>
No review. QT build fix again.
AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded
https://bugs.webkit.org/show_bug.cgi?id=40927
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::postNotification):
2010-06-21 Chris Fleizach <cfleizach@apple.com>
No review. QT build fix.
AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded
https://bugs.webkit.org/show_bug.cgi?id=40927
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::postNotification):
2010-06-21 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: VoiceOver does not announce WAI-ARIA state change of aria-expanded
https://bugs.webkit.org/show_bug.cgi?id=40927
Test: platform/mac/accessibility/aria-expanded-notifications.html
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAriaExpandedChange):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::handleAriaExpandedChange):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::handleAriaExpandedChanged):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* dom/Element.cpp:
(WebCore::Element::updateAfterAttributeChanged):
2010-06-21 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61585.
http://trac.webkit.org/changeset/61585
https://bugs.webkit.org/show_bug.cgi?id=40950
It broke builds (Requested by kinuko on #webkit).
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/BlobBuilder.cpp:
(WebCore::BlobBuilder::appendString):
(WebCore::BlobBuilder::appendBlob):
* html/BlobBuilder.h:
* page/DOMWindow.idl:
2010-06-21 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Adam Barth.
Add BlobBuilder.idl to expose BlobBuilder interface
https://bugs.webkit.org/show_bug.cgi?id=40593
BlobBuilder is defined in FileAPI's FileWriter spec.
(http://dev.w3.org/2009/dap/file-system/file-writer.html)
Also removes the ENABLE_FILE_WRITER ifdef guard for BlobBuilder.
Tests: http/tests/local/blob/send-data-blob.html
http/tests/local/blob/send-hybrid-blob.html
http/tests/local/blob/send-sliced-data-blob.html
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/BlobBuilder.cpp:
(WebCore::BlobBuilder::append):
* html/BlobBuilder.h:
* html/BlobBuilder.idl: Added.
* page/DOMWindow.idl:
2010-06-21 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
FrameLoader cleanup: Split high level subframe and plugin
loading functions into a separate class.
https://bugs.webkit.org/show_bug.cgi?id=40453
Refactor only, no new tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.base.exp:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/DOMImplementation.cpp:
* history/PageCache.cpp:
* html/HTMLFrameElementBase.cpp:
* html/HTMLMediaElement.cpp:
* loader/FrameLoader.cpp:
* loader/FrameLoader.h:
(WebCore::FrameLoader::subframeLoader):
* loader/PluginDocument.cpp:
* loader/SubframeLoader.cpp: Added.
(WebCore::SubframeLoader::SubframeLoader):
(WebCore::toPlugInElement):
(WebCore::SubframeLoader::clear):
(WebCore::SubframeLoader::requestFrame):
(WebCore::SubframeLoader::requestObject):
(WebCore::FrameLoader::loadMediaPlayerProxyPlugin):
(WebCore::SubframeLoader::createJavaAppletWidget):
(WebCore::SubframeLoader::loadSubframe):
(WebCore::SubframeLoader::allowPlugins):
(WebCore::SubframeLoader::shouldUsePlugin):
(WebCore::SubframeLoader::loadPlugin):
(WebCore::SubframeLoader::completeURL):
* loader/SubframeLoader.h: Added.
(WebCore::SubframeLoader::containsPlugins):
* page/Page.cpp:
* page/XSSAuditor.h:
* platform/graphics/wince/MediaPlayerProxy.cpp:
* plugins/MimeType.cpp:
* rendering/RenderApplet.cpp:
* rendering/RenderEmbeddedObject.cpp:
2010-06-21 Nate Chapin <japhet@chromium.org>
Unreviewed, build fix.
Bad merge, left a reference to m_committedFirstRealDocumentLoad in
http://trac.webkit.org/changeset/61568.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::transitionToCommitted):
2010-06-21 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Remove a couple of FrameLoader's unused boolean members
(m_receivedData, m_cancellingWithLoadInProcess) and merge
several more into a single state machine called FrameLoaderStateMachine
(m_firstLayoutDone, m_creatingInitialEmptyDocument,
m_isDisplayingInitialEmptyDocument, m_committedFirstRealDocumentLoad).
https://bugs.webkit.org/show_bug.cgi?id=39695
Refactor only, so no new tests.
* WebCore.base.exp:
* WebCore.xcodeproj/project.pbxproj:
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::createDocument):
(WebCore::DocumentWriter::begin):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::FrameLoader):
(WebCore::FrameLoader::init):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::didOpenURL):
(WebCore::FrameLoader::didExplicitOpen):
(WebCore::FrameLoader::clear):
(WebCore::FrameLoader::didBeginDocument):
(WebCore::FrameLoader::finishedParsing):
(WebCore::FrameLoader::provisionalLoadStarted):
(WebCore::FrameLoader::logCanCachePageDecision):
(WebCore::FrameLoader::logCanCacheFrameDecision):
(WebCore::FrameLoader::frameHasLoaded):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::transitionToCommitted):
(WebCore::FrameLoader::finishedLoadingDocument):
(WebCore::FrameLoader::checkLoadCompleteForThisFrame):
(WebCore::FrameLoader::didFirstLayout):
(WebCore::FrameLoader::frameLoadCompleted):
(WebCore::FrameLoader::dispatchDidCommitLoad):
* loader/FrameLoader.h:
(WebCore::FrameLoader::stateMachine):
* loader/FrameLoaderStateMachine.cpp: Added.
* loader/FrameLoaderStateMachine.h: Added.
* loader/HistoryController.cpp:
(WebCore::HistoryController::restoreScrollPositionAndViewState):
(WebCore::HistoryController::saveDocumentState):
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
* loader/RedirectScheduler.cpp:
(WebCore::RedirectScheduler::scheduleLocationChange):
(WebCore::RedirectScheduler::scheduleFormSubmission):
2010-06-21 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fix. Fix header includes for ENABLE(DATABASE)
* bindings/js/JSExceptionBase.cpp:
2010-06-21 Anders Carlsson <andersca@apple.com>
Fix clang++ build.
* loader/FormSubmission.h:
2010-06-21 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
Add a missing include in AsyncImageResizer.h
* html/AsyncImageResizer.h: Added the IntSize include.
2010-06-21 Adam Roben <aroben@apple.com>
Call NotifyAddrChange again each time we are notified of a change
NotifyAddrChange only notifies you of a single change. If you want to
listen for subsequent changes, you have to call it again.
Fixes <http://webkit.org/b/33004> NetworkStateNotifier ignores all
state changes after the first.
No test possible, as we don't have a way to modify the system's
network adapters when running tests.
Reviewed by Anders Carlsson.
* platform/network/win/NetworkStateNotifierWin.cpp:
(WebCore::NetworkStateNotifier::addrChangeCallback): Call
registerForAddressChange as soon as we're notified of an address
change, so we'll also get notified of the *next* address change. I
added the call here instead of in addressChanged (which is called
later on the main thread) to minimize the time between the callback
and registering again (so that we won't miss changes that happen in
rapid succession).
2010-06-21 Dan Bernstein <mitz@apple.com>
Release build fix
* rendering/RenderBlockLineLayout.cpp:
(WebCore::tryHyphenating):
2010-06-21 Dan Bernstein <mitz@apple.com>
Windows build fix
* WebCore.vcproj/WebCore.vcproj: Fixed a typo.
2010-06-21 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
CSS3: Implement the 'hyphens' and 'hyphenate-character' properties
https://bugs.webkit.org/show_bug.cgi?id=10228
Tests: fast/text/hyphenate-character.html
fast/text/hyphens.html
Added -webkit-hyphens and -webkit-hyphenate-character as specified in
<http://www.w3.org/TR/2010/WD-css3-gcpm-20100608/#hyphenation>.
* Android.mk: Added Hyphenation.cpp.
* CMakeLists.txt: Ditto.
* GNUmakefile.am: Added Hyphenation.{cpp,h}.
* WebCore.base.exp: Exported wkGetHyphenationLocationBeforeIndex().
* WebCore.gypi: Added Hyphenation.{cpp,h}.
* WebCore.pro: Added Hyphenation.{cpp,h}.
* WebCore.vcproj/WebCore.vcproj: Added Hyphenation.{cpp,h}.
* WebCore.xcodeproj/project.pbxproj: Added Hyphenation.{cpp,h}.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Added the -webkit-hyphenate-character
and -webkit-hyphens cases.
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Validate values for the new properties.
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Added. Maps from a Hyphens value to an identifier.
(WebCore::CSSPrimitiveValue::operator Hyphens): Added. Maps from an identifier to a Hyphens value.
* css/CSSPropertyNames.in: Added -webkit-hyphenate-character and -webkit-hyphens.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty): Apply the new properties to the RenderStyle.
* css/CSSValueKeywords.in:
* platform/mac/WebCoreSystemInterface.h: Added wkGetHyphenationLocationBeforeIndex.
* platform/mac/WebCoreSystemInterface.mm: Ditto.
* platform/text/CharacterNames.h: Added the hyphen character.
* platform/text/Hyphenation.cpp: Added.
(WebCore::lastHyphenLocation): Added this default implementation for platforms that do not implement
hyphenation yet. It calls notImplemented() and returns 0.
* platform/text/Hyphenation.h: Added.
* platform/text/cf/HyphenationCF.cpp: Added.
(WebCore::lastHyphenLocation): Returns the last hyphenation location occurring in the given string before
the given index. Uses the current search locale (which is based on the top language preference of the user)
for hyphenation.
* platform/text/mac/HyphenationMac.mm: Added.
(WebCore::lastHyphenLocation): Returns the last hyphenation location occurring in the given string before
the given index. Returns 0 if the current search locale is not "en", because the platform only knows how to
hyphenate English.
* rendering/BidiRun.h:
(WebCore::BidiRun::BidiRun): Added a boolean member, m_hasHyphen, and initialized it to false in the constructor.
* rendering/InlineBox.h:
(WebCore::InlineBox::InlineBox): Renamed m_hasEllipsisBox to m_hasEllipsisBoxOrHyphen, because this bit is now
shared by two subclass: RootInlineBox uses it for hasEllipsisBox(), while InlineTextBox uses it for hasHyphen().
* rendering/InlineTextBox.cpp:
(WebCore::adjustCharactersAndLengthForHyphen): Added this helper function to get the hyphen string from the style
and return a UChar* and length for the concatenation of the given text with the hyphen string.
(WebCore::InlineTextBox::selectionRect): If the selected range touches the end and the box has a hyphen,
compute the width of the text with the hyphen string concatenated to it.
(WebCore::InlineTextBox::paint): If the box has a hyphen, draw the text with the hyphen string concatenated to it.
(WebCore::InlineTextBox::paintSelection): Similarly concatenate the hyphen string.
* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::hasHyphen): Added this accessor.
(WebCore::InlineTextBox::setHasHyphen): Ditto.
* rendering/RenderBlock.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::constructLine): Copy the m_hasHyphen flag from the run to its text box.
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Add the width of the hyphen string when computing the
width of a box that has a hyphen.
(WebCore::RenderBlock::layoutInlineChildren): If the line was hyphenated, set the m_hasHyphen flag on the
logically last run.
(WebCore::tryHyphenating): Added this helper function which checks if a piece of text that does not fit on the
line could be hyphenated such that the part before the hyphen, including the hyphen, would fit. Given the amount
of space remaining on the line, it finds the longest prefix that can fit in the remaining space (which leaving room for
the hyphen), and then checks for a hyphenation location within that prefix.
(WebCore::RenderBlock::findNextLineBreak): In the 'hyphens: none' case, prevent line breaks at soft hyphens.
In the 'hyphens: auto' case, try hyphenating when a word will not fit in the remaining space on the line.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::detachEllipsisBox): Changed to use hasEllipsisBox() and setHasEllipsisBox().
(WebCore::RootInlineBox::clearTruncation): Ditto.
(WebCore::RootInlineBox::placeEllipsis): Ditto.
(WebCore::RootInlineBox::paintEllipsisBox): Ditto.
(WebCore::RootInlineBox::nodeAtPoint): Ditto.
(WebCore::RootInlineBox::ellipsisBox): Ditto.
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::hasEllipsisBox): Added this accessor.
(WebCore::RootInlineBox::setHasEllipsisBox): Ditto.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::diff): Return a layout hint if the hyphens setting or hyphenate-character differs.
(WebCore::RenderStyle::hyphenString): Added. For hyphenate-character: auto, returns the hyphen character.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::hyphens): Added this accessor.
(WebCore::InheritedFlags::hyphenateCharacter): Ditto.
(WebCore::InheritedFlags::setHyphens): Ditto.
(WebCore::InheritedFlags::setHyphenateCharacter): Ditto.
(WebCore::InheritedFlags::initialHyphens): Added. Returns HyphensManual.
(WebCore::InheritedFlags::initialHyphenateCharacter): Added. Returns the null string, corresponding to
a value of 'auto'.
* rendering/style/RenderStyleConstants.h:
Added a Hyphens enum.
* rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData): Initialize and copy the new members.
(WebCore::StyleRareInheritedData::operator==): Compare the new members.
* rendering/style/StyleRareInheritedData.h: Added two new members: hyphens and hyphenateCharacter.
2010-06-03 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Plumb FormSubmission through to ScheduledFormSubmission.
https://bugs.webkit.org/show_bug.cgi?id=40137
No behavior change, covered by existing tests.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareFormSubmission): Moved creation of action URL
instance here from FrameLoader::submit, because it makes more sense here,
also added a FIXME to investigate existing code later.
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::FormSubmission): Changed action to be a KURL, not a String.
(WebCore::FormSubmission::create): Ditto.
(WebCore::FormSubmission::populateFrameLoadRequest): Added, moving the logic from
FrameLoader::submit closer to the data.
* loader/FormSubmission.h:
(WebCore::FormSubmission::action): Changed type to KURL.
(WebCore::FormSubmission::clearTarget): Added.
(WebCore::FormSubmission::referrer): Added.
(WebCore::FormSubmission::setReferrer): Added.
(WebCore::FormSubmission::origin): Added.
(WebCore::FormSubmission::setOrigin): Added.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm): Cleaned up to make it more about decision-making,
not data manipulation.
* loader/RedirectScheduler.cpp:
(WebCore::ScheduledFormSubmission::ScheduledFormSubmission): Changed to accept FormSubmission as argument.
(WebCore::ScheduledFormSubmission::fire): Changed to use FormSubmission.
(WebCore::RedirectScheduler::scheduleFormSubmission): Removed assert that no longer makes sense,
changed to use FormSubmission.
* loader/RedirectScheduler.h: Updated ScheduledFormSubmission decl to hold FormSubmission ref.
2010-06-21 Satish Sampath <satish@chromium.org>
Reviewed by Steve Block.
Speech Input Patch 0: Added compilation argument to conditionally compile pending patches.
https://bugs.webkit.org/show_bug.cgi?id=40878
No new tests are needed, because there is no new functionality.
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* WebCore.pri:
2010-06-21 Hans Wennborg <hans@chromium.org>
Reviewed by Jeremy Orlow.
Delete DOM storage databases when they are empty.
https://bugs.webkit.org/show_bug.cgi?id=40767
Even if a page clears its local storage, the database file for it stays around,
and there is currently no mechanism that deletes them.
After doing the "final sync" of a storage area, the StorageAreaSyncMaster should
see if the database is empty, and in that case delete it.
Tests:
manual-tests/localstorage-empty-database.html
* manual-tests/localstorage-empty-database.html:
Added link to clear local storage for testing that the file is removed.
* storage/LocalStorageTask.cpp:
(WebCore::LocalStorageTask::LocalStorageTask):
Added local storage task type DeleteEmptyDatabase.
(WebCore::LocalStorageTask::performTask):
Ditto.
* storage/LocalStorageTask.h:
(WebCore::LocalStorageTask::):
Ditto.
(WebCore::LocalStorageTask::createDeleteEmptyDatabase):
Ditto.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::scheduleFinalSync):
When scheduling final sync, also schedule DeleteEmptyDatabase.
(WebCore::StorageAreaSync::sync):
Return early if final sync has nothing to sync.
(WebCore::StorageAreaSync::deleteEmptyDatabase):
Added function to check if a database is empty and in that case delete it.
* storage/StorageAreaSync.h:
Ditto.
* storage/StorageSyncManager.cpp:
(WebCore::StorageSyncManager::scheduleDeleteEmptyDatabase):
Added function for scheduling DeleteEmptyDatabase task.
* storage/StorageSyncManager.h:
Ditto.
2010-06-21 Balazs Kelemen <kb@inf.u-szeged.hu>
Reviewed by Simon Hausmann.
[Qt] Avoid unnecessary image conversion in RGBA32Buffer::zeroFill()
https://bugs.webkit.org/show_bug.cgi?id=40910
* platform/image-decoders/qt/RGBA32BufferQt.cpp:
(WebCore::RGBA32Buffer::zeroFill):
2010-06-21 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Decode images directly to QPixmap
https://bugs.webkit.org/show_bug.cgi?id=40797
Decode images to QPixmap directly instead of QImage when possible.
RGBA32Buffer transforms the pixmap back to image if
necessary.
This improve the performance with certain graphic system, and
can reduce memory usage.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::setData):
(WebCore::ImageDecoderQt::internalHandleCurrentImage):
* platform/image-decoders/ImageDecoder.h:
(WebCore::RGBA32Buffer::getAddr):
* platform/image-decoders/qt/RGBA32BufferQt.cpp:
(WebCore::RGBA32Buffer::clear):
(WebCore::RGBA32Buffer::zeroFill):
(WebCore::RGBA32Buffer::copyBitmapData):
(WebCore::RGBA32Buffer::setSize):
(WebCore::RGBA32Buffer::asNewNativeImage):
(WebCore::RGBA32Buffer::setPixmap):
2010-06-20 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Adding the SQLException class which will be used to report sync DB errors.
https://bugs.webkit.org/show_bug.cgi?id=40607
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
* bindings/js/JSExceptionBase.cpp:
(WebCore::toExceptionBase):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::setDOMException):
* bindings/v8/V8Proxy.h:
* dom/ExceptionCode.cpp:
(WebCore::):
(WebCore::getExceptionCodeDescription):
* dom/ExceptionCode.h:
(WebCore::):
* page/DOMWindow.idl:
* storage/SQLException.h: Added.
(WebCore::SQLException::create):
(WebCore::SQLException::):
(WebCore::SQLException::SQLException):
* storage/SQLException.idl: Added.
2010-06-20 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: don't add ScriptDebugServer as v8 listener if browser exposes
v8 debugging protocol.
https://bugs.webkit.org/show_bug.cgi?id=40844
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::addListener):
(WebCore::ScriptDebugServer::setEnabled):
(WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
* bindings/v8/ScriptDebugServer.h:
2010-06-20 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed build fix.
[EFL] Build break for r61527
https://bugs.webkit.org/post_bug.cgi
* CMakeLists.txt: Add loader/FormSubmission.cpp
2010-06-20 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Remove bogus const qualifiers.
* platform/mac/PasteboardHelper.h:
2010-06-20 Patrick Gansterer <paroga@paroga.com>
Reviewed by Kent Tamura.
Buildfix for NotificationCenter.h.
https://bugs.webkit.org/show_bug.cgi?id=40890
ScriptExecutionContext::completeURL is used in header,
but ScriptExecutionContext.h wasn't included.
* notifications/NotificationCenter.h:
2010-06-20 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Recognize async attribute on HTML script tags.
https://bugs.webkit.org/show_bug.cgi?id=39026
This does not implement async behavior, it only parses the async
attribute for HTML script tags. SVG script tags continue to not
support the async attribute.
Tests: fast/dom/HTMLScriptElement/script-async-attr.html
svg/dom/SVGScriptElement/script-async-attr.svg
* dom/ScriptElement.cpp:
(WebCore::ScriptElementData::isAsynchronous):
(WebCore::ScriptElementData::isDeferred):
* dom/ScriptElement.h:
* html/HTMLAttributeNames.in:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::async):
(WebCore::HTMLScriptElement::setAsync):
(WebCore::HTMLScriptElement::defer):
(WebCore::HTMLScriptElement::asyncAttributeValue):
(WebCore::HTMLScriptElement::deferAttributeValue):
* html/HTMLScriptElement.h:
* html/HTMLScriptElement.idl:
* svg/SVGScriptElement.cpp:
(WebCore::SVGScriptElement::asyncAttributeValue):
(WebCore::SVGScriptElement::deferAttributeValue):
* svg/SVGScriptElement.h:
2010-06-20 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Joseph Pecoraro.
Web Inspector: Auto-completion for CSS property names in Styles pane
https://bugs.webkit.org/show_bug.cgi?id=17374
Added autocompletion for CSS properties. A suggestion for a property
shows when you type. You can also cycle through known property names
using the Up and Down arrow keys.
* WebCore.gypi:
* inspector/front-end/CSSCompletions.js: Added.
(WebInspector.CSSCompletions):
(WebInspector.CSSCompletions.startsWith):
(WebInspector.CSSCompletions.firstStartsWith):
(WebInspector.CSSCompletions._firstIndexOfPrefix):
(WebInspector.CSSCompletions.next):
(WebInspector.CSSCompletions.previous):
(WebInspector.CSSCompletions._closest):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/utilities.js:
(Text.prototype.select):
():
2010-06-14 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Introduce FormSubmission, the structure representing a form submission.
https://bugs.webkit.org/show_bug.cgi?id=40084
No change in functionality, covered by existing tests.
* GNUmakefile.am: Added FormSubmission.h/cpp.
* WebCore.gypi: Ditto.
* WebCore.pro: Ditto.
* WebCore.vcproj/WebCore.vcproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareFormSubmission): Renamed prepareFormData to prepareFormSubmission,
added code for populating a FormSubmission instance, moved the loop of accumulating text input
values into this functions (it belongs here logically).
(WebCore::HTMLFormElement::submit): Modified to use prepareFormSubmission.
* html/HTMLFormElement.h:
* loader/FormSubmission.cpp: Added.
* loader/FormSubmission.h: Added.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::submitForm): Modified to use FormSubmission. Stopped plumbing further to keep
the patch size down.
* loader/FrameLoader.h: Modified submitForm signature.
2010-06-20 Joseph Pecoraro <joepeck@webkit.org>
Unreviewed rollout r61506, because it made 1 test crash.
Causes crash. Will approach the solution in a different way.
2010-06-20 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Timothy Hatcher.
Web Inspector: Should Autocomplete Style Properties
https://bugs.webkit.org/show_bug.cgi?id=38448
This Autocompletes style properties when in the console.
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-06-20 Robert Hogan <robert@webkit.org>
Reviewed by Simon Hausmann.
[Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
https://bugs.webkit.org/show_bug.cgi?id=36702
setNPWindowIfNeeded() is called on paint() in PluginViewQt, which doesn't
work for DRT. So call it if we are in DRT mode and the window geometry
has changed.
Unskips plugins/reentrant-update-widget-positions.html
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
2010-06-19 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Persist V8's ScriptData to the memory cache.
https://bugs.webkit.org/show_bug.cgi?id=38661
This stores V8's ScriptData in the memory cache and also causes the
network platform layer to be notified of the available cacheable
metadata.
Chromium's morejs benchmark showed a ~7% improvement when this was
originally submitted (before it had to be rolled back).
Test: fast/js/parser-high-byte-character.html
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::cachedScript):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::precompileScript):
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
2010-06-19 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Port SocketStream
https://bugs.webkit.org/show_bug.cgi?id=39671
Port SocketStream with BREW MP's ISocket interface.
* platform/network/brew/SocketStreamError.h: Added.
(WebCore::SocketStreamError::SocketStreamError):
* platform/network/brew/SocketStreamHandle.h: Added.
(WebCore::SocketStreamHandle::create):
* platform/network/brew/SocketStreamHandleBrew.cpp: Added.
(WebCore::socketStreamConnectCallback):
(WebCore::getHostByNameCallback):
(WebCore::socketReadableCallback):
(WebCore::networkManager):
(WebCore::SocketStreamHandlePrivate::SocketStreamHandlePrivate):
(WebCore::SocketStreamHandlePrivate::~SocketStreamHandlePrivate):
(WebCore::SocketStreamHandlePrivate::socketConnected):
(WebCore::SocketStreamHandlePrivate::socketReadyRead):
(WebCore::SocketStreamHandlePrivate::connect):
(WebCore::SocketStreamHandlePrivate::send):
(WebCore::SocketStreamHandlePrivate::close):
(WebCore::SocketStreamHandlePrivate::socketClosed):
(WebCore::SocketStreamHandlePrivate::socketError):
(WebCore::SocketStreamHandle::SocketStreamHandle):
(WebCore::SocketStreamHandle::~SocketStreamHandle):
(WebCore::SocketStreamHandle::platformSend):
(WebCore::SocketStreamHandle::platformClose):
(WebCore::SocketStreamHandle::didReceiveAuthenticationChallenge):
(WebCore::SocketStreamHandle::receivedCredential):
(WebCore::SocketStreamHandle::receivedRequestToContinueWithoutCredential):
(WebCore::SocketStreamHandle::receivedCancellation):
* platform/network/brew/SocketStreamHandlePrivate.h: Added.
2010-06-19 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Pavel Feldman.
Web Inspector: Prevent from copying "filename.css" in Styles pane
https://bugs.webkit.org/show_bug.cgi?id=40420
* inspector/front-end/Section.js:
(WebInspector.Section.prototype.set subtitle):
(WebInspector.Section.prototype.get subtitleAsText):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylePropertiesSection):
* inspector/front-end/inspector.css:
(.styles-section .subtitle::before, .styles-section .subtitle a::before):
2010-06-19 Alex Milowski <alex@milowski.com>
Reviewed by Darin Adler.
A fix for a change in https://bugs.webkit.org/show_bug.cgi?id=39941
that caused a compile error in MathML.
https://bugs.webkit.org/show_bug.cgi?id=40827
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::MathMLElement):
2010-06-19 Kartikaya Gupta <kagupta@rim.com>
Reviewed by Nikolas Zimmermann.
CPP bindings missing some APIs
https://bugs.webkit.org/show_bug.cgi?id=40570
Add missing C++ DOM API bindings. Specifically:
- NodeFilter callback support
- Missing custom method implementations in HTMLCollection and HTMLOptionsCollection
- Missing EventTarget static type-determination methods
- Fix CPP binding generator to not generate d-ptrs for classes that extend EventTarget and just use the parent's d-ptr instead
- Switch binding generator to use DOMWindow instead of AbstractView so that necessary W3C-defined methods (e.g. getComputedStyle) are accessible.
* bindings/cpp/WebDOMDOMWindowCustom.cpp: Added.
(WebDOMDOMWindow::addEventListener):
(WebDOMDOMWindow::removeEventListener):
* bindings/cpp/WebDOMEventTarget.cpp:
(toWebKit):
* bindings/cpp/WebDOMEventTarget.h:
* bindings/cpp/WebDOMHTMLCollectionCustom.cpp: Added.
(WebDOMHTMLCollection::item):
(WebDOMHTMLCollection::namedItem):
* bindings/cpp/WebDOMHTMLOptionsCollectionCustom.cpp: Added.
(WebDOMHTMLOptionsCollection::length):
(WebDOMHTMLOptionsCollection::setLength):
* bindings/cpp/WebDOMNodeFilterCustom.cpp: Added.
(WebDOMNodeFilter::acceptNode):
(toWebKit):
* bindings/cpp/WebNativeNodeFilterCondition.cpp: Added.
(WebNativeNodeFilterCondition::WebNativeNodeFilterCondition):
(WebNativeNodeFilterCondition::~WebNativeNodeFilterCondition):
(WebNativeNodeFilterCondition::acceptNode):
* bindings/cpp/WebNativeNodeFilterCondition.h: Added.
(WebNativeNodeFilterCondition::create):
* bindings/scripts/CodeGeneratorCPP.pm:
* dom/NodeFilter.idl:
* page/DOMWindow.idl:
2010-06-19 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
[chromium] Adding a conditional gyp dependency for the WebCore target to
the gles2_c_lib which is required by the gpu compositor. The dependency will
only kick in if the accelerated_compositing path is enabled.
https://bugs.webkit.org/show_bug.cgi?id=40801
* WebCore.gyp/WebCore.gyp:
2010-06-19 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Platform plugin's multi-select does not take OptGroup into account
https://bugs.webkit.org/show_bug.cgi?id=40718
In multi-select elements, optgroup elements are counted in the index calculation,
but in single-select they are not. Keep the same logic even when NO_LISTBOX_RENDERING
is enabled.
Added tests to the existing manual test, as testing this requires a special build, in which
NO_LISTBOX_RENDERING is enabled.
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::listBoxSelectItem):
* manual-tests/no-listbox-rendering.html:
* rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::listBoxSelectItem):
2010-06-19 Thomas Van Lenten <thomasvl@chromium.org>
Reviewed by David Levin.
Warnings from -Wextra in a Chromium Mac build
1. checks of unsigned >= 0
2. enumeral and non-enumeral type in conditional expression
3. copy ctors that don't call the super copy ctor or ctor
No functionality change so no new tests.
https://bugs.webkit.org/show_bug.cgi?id=40791
* platform/chromium/ChromiumDataObject.cpp:
(WebCore::ChromiumDataObject::ChromiumDataObject):
* platform/chromium/ThemeChromiumMac.mm:
(WebCore::updateStates):
* rendering/RenderThemeChromiumMac.mm:
(WebCore::RenderThemeChromiumMac::updateActiveState):
2010-06-19 Ben Murdoch <benm@google.com>
Reviewed by Pavel Feldman.
Fix build break with inspector disabled.
https://bugs.webkit.org/show_bug.cgi?id=40790
Replace a #include with a forward declaration.
Fixing a build break so no new tests required.
* inspector/InspectorController.h: Forward declare InspectorValue
rather than #including its header which has its content guarded
out.
2010-06-19 Zhe Su <suzhe@chromium.org>
Reviewed by Darin Fisher.
[chromium]Refactor input method related APIs.
https://bugs.webkit.org/show_bug.cgi?id=40608
No new tests are needed, because there is no new functionality.
* page/FocusController.cpp:
(WebCore::FocusController::setFocusedNode):
2010-06-19 George Wright <gwright@rim.com>
Reviewed by George Staikos.
https://bugs.webkit.org/show_bug.cgi?id=40720
Make setWapInputFormat() public again as CSSStyleSelector.cpp calls this when WCSS is enabled.
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::data):
2010-06-02 Robert Hogan <robert@webkit.org>
Reviewed by Adam Barth.
[Qt] Support evaluateScriptInIsolatedWorld()
https://bugs.webkit.org/show_bug.cgi?id=40079
getOwnPropertyNames() crashes if PropertyNameArray is size 0. This change allows
http/tests/world-reuse.html and didClearWindowObject.html to fail instead of crash.
* WebCore.pro: Add qwebscriptworld.*
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
2010-06-19 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Some very minor cleanups for HTML5 Parser
https://bugs.webkit.org/show_bug.cgi?id=40638
No new tests because no new functionality.
* html/HTML5DocumentParser.cpp:
(WebCore::): Make ctor explicit.
* html/HTML5DocumentParser.h:
(WebCore::HTML5DocumentParser::InsertionPointRecord::InsertionPointRecord): Make ctor explicit.
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::isEndTagBufferingState): Use switch to generate an efficient table with single branch.
* html/HTML5Token.h:
(WebCore::HTML5Token::forceQuirks): Add const.
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::isPaused): Add const.
2010-06-18 Aaron Boodman <aa@chromium.org>
Remove WebKit::WebDocument::isXHTMLDocument.
https://bugs.webkit.org/show_bug.cgi?id=40815
* dom/Document.h: remove isXHTML() getter.
2010-06-19 Aaron Boodman <aa@chromium.org>
Unreviewed, rolling out r61466.
http://trac.webkit.org/changeset/61466
https://bugs.webkit.org/show_bug.cgi?id=40816
Landed wrong change
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initContextIfNeeded):
* bindings/v8/V8DOMWindowShell.h:
2010-06-18 Aaron Boodman <aa@chromium.org>
WebKit API: Undo static hooks into V8 when WebKit is shut down.
https://bugs.webkit.org/show_bug.cgi?id=40816
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::initContextIfNeeded):
(WebCore::V8DOMWindowShell::initializeV8IfNeeded):
(WebCore::V8DOMWindowShell::uninitializeV8IfNeeded):
* bindings/v8/V8DOMWindowShell.h:
2010-06-18 Jessie Berlin <jberlin@webkit.org>
Reviewed by Darin Adler.
Bug 19509 - Database Tables in the Inspector should be sortable
https://bugs.webkit.org/show_bug.cgi?id=19509
* inspector/front-end/StoragePanel.js:
(WebInspector.StoragePanel.prototype.dataGridForResult):
Make each column in the DataGrid sortable.
(WebInspector.StoragePanel.prototype._sortDataGrid.comparator):
Make sure to sort numeric columns by their numeric values, instead of lexicographically.
(WebInspector.StoragePanel.prototype._sortDataGrid):
Sort the entries in the DataGrid based on the selected column.
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Oliver Hunt.
More clang++ warning fixes.
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
* platform/graphics/mac/FontPlatformData.h:
* platform/graphics/mac/WebLayer.mm:
(-[CALayer _descriptionWithPrefix:]):
2010-06-18 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
* WebCore.gyp/WebCore.gyp: Modified inclusion rule in to actually add WebSystemInterface.mm.
2010-06-18 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
* WebCore.gyp/WebCore.gyp: Renamed WebSystemInterface.m to WebSystemInterface.mm.
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Make WebCoreSystemInterface.h a C++ only header
https://bugs.webkit.org/show_bug.cgi?id=40867
* platform/mac/WebCoreSystemInterface.h:
2010-06-18 Abhishek Arya <inferno@chromium.org>
Reviewed by Adam Barth.
Convert column span from an unsigned short type to an unsigned int
type. Fixes a divide-by-zero crash arising from using a zero colspan
value coming from a narrow cast of an int to an unsigned short.
https://bugs.webkit.org/show_bug.cgi?id=40812
Test: fast/table/zero-colspan-crash.html
* rendering/RenderTable.h: Change span from unsigned short to unsigned int.
* rendering/RenderTableSection.cpp: Fix a compiler warning with comparing
unsigned int with signed int. Value of an unsigned int here cannot be
greater than maximum positive value of a signed int.
(WebCore::RenderTableSection::addCell):
2010-06-18 Ananth Jasty <ext-ananth.jasty@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Text spacing miscalculation when using wordSpacing.
https://bugs.webkit.org/show_bug.cgi?id=40483
Removed wordSpacing compensation in FontQt whitespace width
calculation. The QFontMetrics::width() overload that takes
a character does not take QFont's word spacing into account.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::floatWidthForComplexText):
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Get rid of PluginDataMac.mm and use the plug-in strategy instead
https://bugs.webkit.org/show_bug.cgi?id=40860
* WebCore.xcodeproj/project.pbxproj:
* page/mac/WebCoreViewFactory.h:
* plugins/PluginData.cpp:
(WebCore::PluginData::refresh):
(WebCore::PluginData::initPlugins):
* plugins/PluginStrategy.h:
* plugins/mac/PluginDataMac.mm: Removed.
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Fix some (not all) clang++ warnings.
* dom/Position.h:
(WebCore::lastOffsetInNode):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::resourceForRequest):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
(WebCore::ComplexTextController::collectComplexTextRuns):
* platform/network/CredentialStorage.cpp:
(WebCore::protectionSpaceMapKeyFromURL):
* rendering/style/StyleRareNonInheritedData.h:
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Dan Bernstein.
Add stubbed out WebPlatformStrategies class to WebKit.
https://bugs.webkit.org/show_bug.cgi?id=40851
* WebCore.base.exp:
* platform/PlatformStrategies.cpp:
* platform/PlatformStrategies.h:
(WebCore::PlatformStrategies::~PlatformStrategies):
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Fix build errors when building with clang++.
* loader/archive/cf/LegacyWebArchiveMac.mm:
Move the const qualifier to the right place.
* page/EditorClient.h:
* platform/Pasteboard.h:
Use @class when forward declaring Objective-C classes in Objective-C.
2010-06-18 Alexey Proskuryakov <ap@apple.com>
Reviewed by Geoff Garen.
https://bugs.webkit.org/show_bug.cgi?id=40852
<rdar://problem/8105498> Limit simultaneous DNS prefetch request number (40852)
No change in functionality, so no tests.
We still queue up to 64 names, but only make up to 8 requests at once. If there are names
remaining in queue, we retry after a short timeout (which is easier than posting
notifications from client callback).
* platform/network/cf/DNSCFNet.cpp:
(WebCore::DNSResolveQueue::add):
(WebCore::DNSResolveQueue::fired):
2010-06-18 Zhenyao Mo <zmo@google.com>
Reviewed by Simon Fraser.
WebGL demos show bad flicker
https://bugs.webkit.org/show_bug.cgi?id=38560
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::prepareTexture): Move ensureContext() out of if-block so it's always executed.
2010-06-18 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Add PlatformStrategies and PluginStrategy classes.
https://bugs.webkit.org/show_bug.cgi?id=40850
* WebCore.xcodeproj/project.pbxproj:
* platform/PlatformStrategies.cpp: Added.
(WebCore::PlatformStrategies::~PlatformStrategies):
(WebCore::platformStrategies):
(WebCore::setPlatformStrategies):
* platform/PlatformStrategies.h: Added.
(WebCore::PlatformStrategies::pluginStrategy):
(WebCore::PlatformStrategies::PlatformStrategies):
* plugins/PluginData.cpp:
* plugins/PluginStrategy.h: Added.
(WebCore::PluginStrategy::~PluginStrategy):
2010-06-18 Martin Robinson <mrobinson@igalia.com>
Unreviewed.
Fix the GTK+ build after r61413 and 61379.
* bindings/scripts/CodeGeneratorGObject.pm:
Produce a g_value_set that uses getterExpressionPrefix instead of the raw getter.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_get_property): Update expected test results.
2010-06-18 Leandro Pereira <leandro@profusion.mobi>
[EFL] Unreviewed build fix.
* CMakeLists.txt: Add inspector/ScriptBreakpoint.cpp.
2010-06-18 Andy Estes <aestes@apple.com>
Rubber-stamped by Sam Weinig.
Update copyright header.
* html/HTMLLinkElement.h:
2010-06-17 Andy Estes <aestes@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/8091385> Prevent a crash in WebCore when removing a stylesheet link element in
in a listener to its beforeload event.
https://bugs.webkit.org/show_bug.cgi?id=40742
Postpone loading of link elements until after they have been inserted into the DOM and
attached. This prevents DOM mutations triggered by beforeload handlers from firing in the
midst of DOM insertion, which can lead to assertion failures and crashes.
Test: fast/dom/beforeload/remove-link-in-beforeload-listener.html
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::HTMLLinkElement): Initialize m_shouldProcessAfterAttach to false.
(WebCore::HTMLLinkElement::processCallback): Add a static callback function which calls
HTMLLinkElement::process().
(WebCore::HTMLLinkElement::insertedIntoDocument): Instead of calling process() directly, set
m_shouldProcessAfterAttach to true to indicate that process() should be called after attach().
(WebCore::HTMLLinkElement::removedFromDocument): Set m_shouldProcessAfterAttach to false.
(WebCore::HTMLLinkElement::attach): If m_shouldProcessAfterAttach is true, register
HTMLLinkElement::processCallback() as a post-attach callback.
* html/HTMLLinkElement.h: Add m_shouldProcessAfterAttach.
(WebCore::HTMLLinkElement::canLazyAttach): Override canLazyAttach() to return false to
indicate that a full attach should be performed. This ensures the post-attach callbacks are
fired.
2010-06-18 Chris Fleizach <cfleizach@apple.com>
Unreviewed. Windows build fix.
AX: presentational role needs to be inherited by required elements
https://bugs.webkit.org/show_bug.cgi?id=40132
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
2010-06-18 Chris Fleizach <cfleizach@apple.com>
Reviewed by David Kilzer.
AX: presentational role needs to be inherited by required elements
https://bugs.webkit.org/show_bug.cgi?id=40132
Test: platform/mac/accessibility/inherited-presentational-lists.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
* accessibility/AccessibilityRenderObject.h:
(WebCore::AccessibilityRenderObject::node):
2010-06-18 Darin Adler <darin@apple.com>
Fix GTK build after reflection change.
* bindings/scripts/CodeGeneratorGObject.pm: Changed code
that emits setters to convey the correct type of the attribute.
The GObject code generator takes a different approach to attributes
than the others, so it's hacked a bit to make it more like them.
We should find a way to share more code between the different generators.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
Updated to expect correct results.
2010-06-18 Yury Semikhatsky <yurys@chromium.org>
Unreviewed: Qt build fix.
* inspector/InspectorController.cpp:
2010-06-18 Justin Garcia <justin.garcia@apple.com>
Reviewed by Ojan Vafai.
https://bugs.webkit.org/show_bug.cgi?id=39798
No selection change notification for editing operation that doesn't change the selection's DOM position
Some editing operations change the selection visually without affecting its position within
the DOM. This was previously known to occur for certain typing commands, but it can also
occur for some Pastes and changes to block style.
* editing/Editor.cpp:
(WebCore::Editor::appliedEditing):
(WebCore::Editor::unappliedEditing):
(WebCore::Editor::reappliedEditing):
(WebCore::Editor::changeSelectionAfterCommand):
* editing/Editor.h:
2010-06-18 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Unreviewed build fix.
[EFL] Build break on Debug build.
https://bugs.webkit.org/show_bug.cgi?id=40810
* CMakeLists.txt: Add CSSPreloadScanner.cpp
2010-06-18 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: persist breakpoints in inspector settings.
https://bugs.webkit.org/show_bug.cgi?id=14190
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::setSessionSettings):
(WebCore::InspectorController::didCommitLoad):
(WebCore::InspectorController::setBreakpoint):
(WebCore::InspectorController::removeBreakpoint):
(WebCore::InspectorController::didParseSource):
(WebCore::InspectorController::breakpointsSettingKey):
(WebCore::InspectorController::loadBreakpoints):
(WebCore::InspectorController::saveBreakpoints):
* inspector/InspectorController.h:
* inspector/InspectorValues.cpp:
(WebCore::InspectorValue::parseJSON):
* inspector/InspectorValues.h:
* inspector/ScriptBreakpoint.cpp: Added.
(WebCore::ScriptBreakpoint::sourceBreakpointsFromInspectorObject):
(WebCore::ScriptBreakpoint::inspectorObjectFromSourceBreakpoints):
* inspector/ScriptBreakpoint.h:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.addBreakpoint):
(WebInspector.BreakpointManager.prototype.restoredBreakpoint):
(WebInspector.BreakpointManager.prototype.breakpointsForSourceID):
(WebInspector.BreakpointManager.prototype.breakpointsForURL):
(WebInspector.BreakpointManager.prototype._addBreakpoint):
* inspector/front-end/inspector.js:
(WebInspector.restoredBreakpoint):
2010-06-18 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Implement additional DOM attribute reflection for bindings
https://bugs.webkit.org/show_bug.cgi?id=39936
- Added support for [Reflect] for long, unsigned long, and boolean
attributes.
- Fixed code that set attributes like this: <video controls="controls">
to instead set them like this: <video controls>.
- Added lots more uses of [Reflect].
- Removed now-unneeded [ConvertFromString].
- Made [Reflect] imply [ConvertNullToNullString] so we can get rid
of most uses of the latter.
- Made [Reflect] automatically lowercase the name of the reflected
content attribute to minimize the need to specify a custom content
attribute name.
One thing this patch does *not* do is remove the unneeded functions
in the various DOM classes that are no longer used by the bindings.
We should do that in a followup.
* bindings/scripts/CodeGenerator.pm: Added new functions so code
can be shared across bindings, GetterExpressionPrefix and
SetterExpressionPrefix. We can do a lot more refactoring like
this in the future.
* bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded
ConvertFromString handling, changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
to better handle reflected DOM attributes.
* bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded
ConvertFromString handling, changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
to better handle reflected DOM attributes. Fixed a few things
in the output so the .cpp file will have more WebKit style.
The .h file should be GTK style, but the .cpp file can be the
standard WebKit style eventually.
* bindings/scripts/CodeGeneratorJS.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Made reflected attributes
automatically convert null to the null string without a
separate ConvertNullToNullString attribute.
* bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Redid the special cases for
ownerDocument and for operator to fit better with the new code
paths. Removed unneeded ConvertFromString handling.
* bindings/scripts/CodeGeneratorV8.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Made reflected attributes
automatically convert null to the null string without a
separate ConvertNullToNullString attribute.
* bindings/scripts/test/TestObj.idl: Added some test cases for
content attribute reflection and for exceptions in string-typed
attributes.
* bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated.
* bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
* bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
* dom/Element.cpp:
(WebCore::Element::getIntegralAttribute): Added.
(WebCore::Element::setIntegralAttribute): Added.
(WebCore::Element::getUnsignedIntegralAttribute): Added.
(WebCore::Element::setUnsignedIntegralAttribute): Added.
* dom/Element.h: Added new attribute get/set functions for bindings.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isURLAttribute): Added. Returns true for
srcAttr.
* html/HTMLMediaElement.h: Added isURLAttribute.
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::isURLAttribute): Changed to call
HTMLMediaElement::isURLAttribute before checking for posterAttr.
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLUListElement.idl:
* html/HTMLVideoElement.idl:
* svg/SVGElement.idl:
Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that
are now unneeded since [Reflect] now implies that. Changed formatting to be
simpler and consistent without all the lining up and multiple lines.
2010-06-17 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dimitri Glazkov.
Remove some unnecessary checks that cause compiler warnings.
https://bugs.webkit.org/show_bug.cgi?id=40772
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallback):
* bindings/v8/npruntime.cpp:
2010-06-18 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Yury Semikhatsky.
Implement 'takeHeapSnapshot' in InspectorController.
https://bugs.webkit.org/show_bug.cgi?id=40834
* bindings/js/ScriptProfiler.h:
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::takeHeapSnapshot):
* bindings/v8/ScriptProfiler.h:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::takeHeapSnapshot):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::takeHeapSnapshot):
* inspector/InspectorController.h:
2010-06-18 Dan Bernstein <mitz@apple.com>
Reviewed by Anders Carlsson.
REGRESSION (r61379?): Assertion failure in Element::getURLAttribute() when accessing the src attribute of a script element
https://bugs.webkit.org/show_bug.cgi?id=40831
Test: fast/dom/HTMLScriptElement/isURLAttribute.html
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::isURLAttribute): Check for the 'src' attribute.
2010-06-18 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61405.
http://trac.webkit.org/changeset/61405
https://bugs.webkit.org/show_bug.cgi?id=40838
broke chromium mac compile (Requested by tonyg-cr1 on
#webkit).
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
2010-06-18 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Fix WebGLRenderingContext helper functions find{Texture/Renderbuffer/Buffer}
https://bugs.webkit.org/show_bug.cgi?id=40176
* html/canvas/WebGLBuffer.cpp: Remove constructor with existing name.
* html/canvas/WebGLBuffer.h: Ditto.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getVertexAttrib): Use findBuffer instead of creating a new WebGLBuffer.
(WebCore::WebGLRenderingContext::findTexture): Deal with name == 0 case and return raw pointer.
(WebCore::WebGLRenderingContext::findRenderbuffer): Ditto.
(WebCore::WebGLRenderingContext::findBuffer): Find WebGLBuffer object using given name.
* html/canvas/WebGLRenderingContext.h: Add findBuffer function declaration, change return type to raw pointer.
2010-06-18 Tony Gentilcore <tonyg@chromium.org>
Reviewed by David Levin.
Persist V8's ScriptData to the memory cache.
https://bugs.webkit.org/show_bug.cgi?id=38661
This stores V8's ScriptData in the memory cache and also causes the
network platform layer to be notified of the available cacheable
metadata.
Chromium's morejs benchmark showed a ~7% improvement when this was
originally submitted (before it had to be rolled back).
Test: fast/js/parser-high-byte-character.html
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::cachedScript):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::precompileScript):
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
2010-06-18 Anton Muhin <antonm@chromium.org>
Reviewed by Dimitri Glazkov.
[v8] Finish migration to new named property query API
https://bugs.webkit.org/show_bug.cgi?id=40771
Remove definition which allowed gradual transition to new API.
See https://bugs.webkit.org/show_bug.cgi?id=40303 for first phase.
* config.h:
2010-06-17 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: bring XHR console records back.
- adds "Enable XHR Monitor" / "Disable XHR Monitor" actions to the console's context menu
- make the chosen option persist in the settings.
https://bugs.webkit.org/show_bug.cgi?id=40799
* English.lproj/localizedStrings.js:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::disableSearchingForNode):
(WebCore::InspectorBackend::enableMonitoringXHR):
(WebCore::InspectorBackend::disableMonitoringXHR):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::setMonitoringXHR):
(WebCore::InspectorController::didLoadResourceFromMemoryCache):
(WebCore::InspectorController::identifierForInitialRequest):
(WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
(WebCore::InspectorController::ensureSettingsLoaded):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::monitoringXHRWasEnabled):
(WebCore::InspectorFrontend::monitoringXHRWasDisabled):
* inspector/InspectorFrontend.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._handleContextMenuEvent):
(WebInspector.ConsoleView.prototype._registerShortcuts):
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor.):
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub):
(.WebInspector.InspectorBackendStub.prototype.enableMonitoringXHR):
(.WebInspector.InspectorBackendStub.prototype.disableMonitoringXHR):
* inspector/front-end/inspector.js:
(WebInspector.monitoringXHRWasEnabled):
(WebInspector.monitoringXHRWasDisabled):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didFinishLoading):
2010-06-18 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Modernize SVG Text code, following the HTML design
https://bugs.webkit.org/show_bug.cgi?id=40663
SVG Text does not support subpixel positioning
https://bugs.webkit.org/show_bug.cgi?id=12172
RenderSVGText can't do partial repaints
https://bugs.webkit.org/show_bug.cgi?id=15386
HTML and SVG need to share more text painting code
https://bugs.webkit.org/show_bug.cgi?id=15644
Rewrite SVG Text rendering, only keeping the layout of the actual characters/chunks as it was.
We're now drawing SVG Text very similar to HTML Text, utilizing the SVGInlineFlowBox/SVGInlineTextBox structure,
instead of painting all text content of a <text> element from the SVGRootInlineBox, as it was the last years.
Rough overview of the changes:
- Partial repainting support for text selections (startPos/endPos are respected), no more redrawing of the whole <text> content while selecting
- Subpixel positioning (near pixel-perfect rendering for all W3C tests that contain text, finally!)
-> much better textPath results, characters now align as expected, as all rounding hacks are disabled for SVG text runs, and subpixel precision is used while painting
- No more custom handling of selection, the standard methods offsetFromPosition() / selectionRectForText() are used instead.
- Selection works as expected on stretched/squeezed text (lengthAdjust="spacingAndGlyphs"), takes 'includePartialGlyphs' into account - just like HTML text
- Correct text decoration drawing (proper with and positions and rendering-order, underline/overline before text, strike-through afterwards)
- Proper sizing of all InlineBoxes, starting from the SVGRootInlineBox, down to every single flow & text box
-> correct DRT results, no more weird negative offsets of text runs, etc. Looks exactly like the HTML text test results.
- Rewritten SVGTextContentElement API to take per-character / per-chunk transformations into account.
- Speeeeeed! Drawing is much faster now.
Add 24 new testcases covering basic selection features and the SVGTextContentElement API. Each test draws a half-opaque red rectangle, calculated using
SVGTextContentElement API to highlight the area that is supposed to be selected. Then eventSender API is utilized to move the mouse to the calculated
start origin, holding it down and moving it to the end position.
A detailed list of tests that show progression, can be found in the corresponding LayoutTests/ChangeLog.
Note that this requires a rebaselining of all SVG tests containing text elements.
Tests: svg/hixie/text/001.xml (moved from svg/hixie/text/001-broken.xml)
svg/text/lengthAdjust-text-metrics.html
svg/text/select-textLength-spacing-squeeze-1.svg
svg/text/select-textLength-spacing-squeeze-2.svg
svg/text/select-textLength-spacing-squeeze-3.svg
svg/text/select-textLength-spacing-squeeze-4.svg
svg/text/select-textLength-spacing-stretch-1.svg
svg/text/select-textLength-spacing-stretch-2.svg
svg/text/select-textLength-spacing-stretch-3.svg
svg/text/select-textLength-spacing-stretch-4.svg
svg/text/select-textLength-spacingAndGlyphs-squeeze-1.svg
svg/text/select-textLength-spacingAndGlyphs-squeeze-2.svg
svg/text/select-textLength-spacingAndGlyphs-squeeze-3.svg
svg/text/select-textLength-spacingAndGlyphs-squeeze-4.svg
svg/text/select-textLength-spacingAndGlyphs-stretch-1.svg
svg/text/select-textLength-spacingAndGlyphs-stretch-2.svg
svg/text/select-textLength-spacingAndGlyphs-stretch-3.svg
svg/text/select-textLength-spacingAndGlyphs-stretch-4.svg
svg/text/select-x-list-1.svg
svg/text/select-x-list-2.svg
svg/text/select-x-list-3.svg
svg/text/select-x-list-4.svg
svg/text/select-x-list-with-tspans-1.svg
svg/text/select-x-list-with-tspans-2.svg
svg/text/select-x-list-with-tspans-3.svg
svg/text/select-x-list-with-tspans-4.svg
* rendering/InlineBox.h: Remove not needed isInlineBox() method.
(WebCore::InlineBox::isInlineTextBox): Constify this method.
(WebCore::InlineBox::isSVGInlineTextBox): Added, with ENABLE(SVG) guards, just like the existing isSVGRootInlineBox().
(WebCore::InlineBox::isSVGRootInlineBox): Constify this method.
(WebCore::InlineBox::calculateBoundaries): Added, with ENABLE(SVG) guards, used to calculate the whole boundaries of a InlineText/FlowBox, only used in SVG text.
* rendering/InlineFlowBox.h: Devirtualize placeBoxesHorizontally(), SVG no more overrides it.
* rendering/InlineTextBox.h: Virtualize selectionStartEnd() - SVGInlineTextBox needs to change start/endPositions based on the current text chunk part that it's rendering.
SVGTextChunkLayoutInfo.h contains a detailed documentation what a SVGTextChunk/SVGTextChunkPart is, and why they are necessary.
(WebCore::InlineTextBox::isInlineTextBox): Constify this method.
* rendering/RenderBlock.h:
(WebCore::RenderBlock::forceLayoutInlineChildren): Add helper method, used only by RenderSVGText, to use a simplified layout strategy, which is a big speed win.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlock::computeHorizontalPositionsForLine): Remove all isSVGText() special cases, as this function is not called anymore for SVG text.
(WebCore::RenderBlock::layoutInlineChildren): Don't call computeHorizontalPositionsForLine() for SVG text. computePerCharacterLayoutInformation() overrides it anyway.
* rendering/RenderSVGInline.cpp: Remove custom absoluteRects/absoluteQuads code, all shared with RenderInline now.
(WebCore::RenderSVGInline::clippedOverflowRectForRepaint): Added, forward to SVGRenderBase, just like all other non-text SVG renderers do.
(WebCore::RenderSVGInline::computeRectForRepaint): Ditto.
(WebCore::RenderSVGInline::mapLocalToContainer): Ditto
* rendering/RenderSVGInline.h:
* rendering/RenderSVGInlineText.cpp: Remove destroy() hack, which called setNeedsLayoutAndPrefWidthsRecalc/repaint on destruction.
As repaint rects work properly now, this hack is no longer necessary, it was only hiding the real problem.
(WebCore::RenderSVGInlineText::styleDidChange): Don't skip RenderText::styleDidChange() anymore, which automatically schedules layout changes for us.
(WebCore::RenderSVGInlineText::localCaretRect): Remove outdated comment, localCaretRect() is not yet needed in SVG text code.
* rendering/RenderSVGInlineText.h: Remove custom absoluteRects/absoluteQuads/selectionRectForRepaint/positionForPoint/destroy/computeRectForRepaint* code, all shared with RenderText now.
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::mapLocalToContainer): Take x/y translation into account, but do NOT include in localToParentTransform(), as that would affect rendering.
(WebCore::RenderSVGText::layout): Use super-simplified layout strategy, removing a lot of uncessary stuff done by RenderBlock, that SVG does not need.
(WebCore::RenderSVGText::absoluteRects): Remove dead-code, retreving the RenderSVGRoot* object, not necessary since a longer time.
(WebCore::RenderSVGText::absoluteQuads): Ditto.
(WebCore::RenderSVGText::paint): Early exit if we're not in PaintPhaseForeground/PaintPhaseSelfOutline. We're not interessted in other phases.
(WebCore::RenderSVGText::strokeBoundingBox): Fix stroke width calculation, no need to special case SVGFonts.
* rendering/RenderSVGText.h: Remove updateFirstLineBlock/updateFirstLetter overrides, the new RenderSVGText::layout() code, doesn't use these methods at all.
We asked RenderBlock to layout before, which was calling updateFirstLetter & co, this is gone now, as it was all not needed.
(WebCore::RenderSVGText::objectBoundingBox): Directly return the frameRect here, inlined for speed.
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::verticallyAlignBoxes): Early-exit if we're a SVGRootInlineBox. SVG handles this on its own.
* rendering/RootInlineBox.h: Devirtualize verticallyAlignBoxes(), SVG no longer overrides it. Remove virtual computePerCharacterLayoutInformation() method, only lives in SVGRootInlineBox now.
* rendering/SVGCharacterData.h: Remove no longer needed SVGTextDecorationInfo.
* rendering/SVGCharacterLayoutInfo.cpp: Don't pass a reference to a Vector<SVGChar> to SVGCharacterLayoutInfo, let it create it.
(WebCore::SVGCharacterLayoutInfo::SVGCharacterLayoutInfo):
* rendering/SVGCharacterLayoutInfo.h:
* rendering/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint): Ask children to paint.
(WebCore::SVGInlineFlowBox::calculateBoundaries): Calculate boundaries by uniting all direct children boundaries.
* rendering/SVGInlineFlowBox.h: Remove placeBoxesHorizontally, which does not get called anymore, and does not need to be overriden.
* rendering/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::SVGInlineTextBox): Don't use abbrevations for variable names, initialize new member variables.
(WebCore::SVGInlineTextBox::measureCharacter): New helper function extracted from buildLayoutInformation, replacing calculateGlyphWidth/Height.
(WebCore::SVGInlineTextBox::offsetForPosition): Implement this method by utilizing Font::offsetForPosition(), but respecting the text chunk parts.
(WebCore::SVGInlineTextBox::positionForOffset): No change here, still not used.
(WebCore::SVGInlineTextBox::selectionRect): Rewritten, utilizing Font::selectionRectForText(), taking text chunk parts into account, and the supplied startPos/endPos.
(WebCore::SVGInlineTextBox::paint): Rewritten, to handle paint servers much more elegant, than the old solution. See code for details, too much to explain here.
(WebCore::SVGInlineTextBox::acquirePaintingResource): Helper function, used from paint().
(WebCore::SVGInlineTextBox::releasePaintingResource): Ditto.
(WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting): Ditto.
(WebCore::SVGInlineTextBox::restoreGraphicsContextAfterTextPainting): Ditto.
(WebCore::SVGInlineTextBox::constructTextRun): Helper function centralizing the creation of a TextRun object, used to draw/measure SVG text.
(WebCore::SVGInlineTextBox::mapStartEndPositionsIntoChunkPartCoordinates): Important helper function, mapping a startPos/endPos from InlineTextBox
coordinate space to the SVGInlineTextBox, respecting the current text chunk part.
(WebCore::SVGInlineTextBox::selectionStartEnd): Call InlineTextBox::selectionStartEnd(), and apply post fixes when m_currentChunkPart is set. (called when painting a selected chunk part)
(WebCore::positionOffsetForDecoration): Refactored from old paintDecoration() code.
(WebCore::thicknessForDecoration): Ditto.
(WebCore::findRenderObjectDefininingTextDecoration): Ditto.
(WebCore::SVGInlineTextBox::paintDecoration): Ditto. (Can not share the code with HTML, as we need floating point precision, and directly call fillRect, instead of drawHighlightForText.)
(WebCore::SVGInlineTextBox::paintDecorationWithStyle): Ditto.
(WebCore::SVGInlineTextBox::paintSelection): New method, painting text selections with floating-point precision.
(WebCore::SVGInlineTextBox::paintText): New method, painting text with floating-point precision, correctly handling selected text, removing the need for special SVG text sub-paint phases.
(GlyphFill/StrokeSelectionPhase, GlyphFill/StrokePhase)
(WebCore::SVGInlineTextBox::buildLayoutInformation): Use new measureCharacter() helper function, renamed some variables, to avoid abbrevations.
(WebCore::SVGInlineTextBox::calculateGlyphBoundaries): Rewritten to use new measureCharacter() helper function.
(WebCore::SVGInlineTextBox::calculateBoundaries): Rewritten to take text chunk parts into account, serves as central method used to layout InlineBoxes (see SVGRootInlineBox.)
* rendering/SVGInlineTextBox.h:
(WebCore::SVGInlineTextBox::isSVGInlineTextBox): Added.
(WebCore::SVGInlineTextBox::setHeight): Rename variable, to avoid abbrevations.
(WebCore::SVGInlineTextBox::chunkTransformation): New helper function, returning the transformation, that gets applied to the complete text chunk, if any.
(WebCore::SVGInlineTextBox::setChunkTransformation): New helper function used by SVGRrootInlineBox, to set the chunk transformation, during text chunk part propagation phase.
(WebCore::SVGInlineTextBox::addChunkPartInformation): Ditto.
(WebCore::SVGInlineTextBox::svgTextChunkParts): Ditto.
* rendering/SVGRootInlineBox.cpp: Virtually rewritten, to be designed more like HTMLs RootInlineBox, diving into children for painting.
(WebCore::SVGRootInlineBox::paint): Ask children to paint, nothing more. No more traversing through the SVGTextChunks, figuring out which part to render, this is done in layout phase now.
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation): Completly redesigned, see SVGTextChunkLayoutInfo.h for a high-level overview.
(WebCore::SVGRootInlineBox::buildLayoutInformation): Just small cleanups, nothing changed here.
(WebCore::SVGRootInlineBox::layoutChildBoxes): New helper function, extracted from old layoutInlineBoxes().
(WebCore::SVGRootInlineBox::layoutRootBox): Ditto.
(WebCore::SVGRootInlineBox::propagateTextChunkPartInformation): Key-concept of the new design, builds "text chunk parts" and propagates that knownledge to all child SVGInlineTextBoxes.
* rendering/SVGRootInlineBox.h:
(WebCore::SVGRootInlineBox::isSVGRootInlineBox): Constified method.
(WebCore::SVGRootInlineBox::setHeight): Change variable name, to avoid abbrevations.
* rendering/SVGTextChunkLayoutInfo.cpp: Remove if 0, enable compilation.
* rendering/SVGTextChunkLayoutInfo.h: Add large comment explaining text chunk parts, the key concept of the new design. Remove SVGTextChunkWalker & friends, no longer used.
(WebCore::SVGTextChunkPart::SVGTextChunkPart):
(WebCore::SVGTextChunkPart::isValid):
(WebCore::SVGTextChunk::SVGTextChunk):
(WebCore::SVGTextChunkLayoutInfo::SVGTextChunkLayoutInfo):
(WebCore::SVGTextChunkLayoutInfo::textChunks):
* rendering/SVGTextLayoutUtilities.cpp:
(WebCore::cummulatedWidthOfInlineBoxCharacterRange):
(WebCore::cummulatedHeightOfInlineBoxCharacterRange):
(WebCore::svgTextRunForInlineTextBox): Disable rounding hacks, explain parameters with comments, why they have which values.
* rendering/SVGTextLayoutUtilities.h: Remove SVGTextPaintSubphase and SVGTextPaintInfo.
* rendering/SVGTextQuery.cpp: Remove if 0, enable compilation.
* rendering/SVGTextQuery.h: Ditto.
* svg/SVGStyledElement.cpp: Very important change! Do not treat CSS attributes as recognized attributes, that would lead to setNeedsLayout() calls, reducing performance!
This hack existed, as we were not dealing with text updates correctly, now that RenderSVGInlineText::styleDidChange is fixed, it's no longer necessary.
(WebCore::SVGStyledElement::isKnownAttribute):
* svg/SVGTextContentElement.cpp: Completely remove the SVGTextContentElement API, that manually traversed all text chunks, instead use the new SVGTextQuery API.
(WebCore::SVGTextContentElement::getNumberOfChars):
(WebCore::SVGTextContentElement::getComputedTextLength):
(WebCore::SVGTextContentElement::getSubStringLength):
(WebCore::SVGTextContentElement::getStartPositionOfChar):
(WebCore::SVGTextContentElement::getEndPositionOfChar):
(WebCore::SVGTextContentElement::getExtentOfChar):
(WebCore::SVGTextContentElement::getRotationOfChar):
(WebCore::SVGTextContentElement::getCharNumAtPosition):
* svg/SVGTextElement.cpp: Very important change! Do not calls setNeedsLayout() on RenderSVGText, if childrenChanged() has been called.
* svg/SVGTextElement.h: Completly remove childrenChanged() - no longer necessary, updates work as expected without it now.
2010-06-18 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by David Levin.
Fix compilation when filters are disabled. Revision r60689
changed the signature of SVGRenderBase::prepareToRenderSVGContent()
but didn't change the unsused parameters when filters are disabled.
https://bugs.webkit.org/show_bug.cgi?id=40625
No new tests. Compilation fix.
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
2010-06-18 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
noAccess url schemes block access to inline stylesheets
https://bugs.webkit.org/show_bug.cgi?id=32309
Instead of using baseURL() to grab the security context we should just
use finalURL directly. When I wrote the original patch that added this
security check, finalURL didn't exist yet.
If finalURL is an empty URL, that means we generated the style sheet
from text that didn't have a URL. It would be slightly safer to store
a bit on CSSStyleSheet indicating whether it came from an inline style
sheet, but I think this check is fairly accurate.
Test: http/tests/security/data-url-inline.css.html
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::cssRules):
2010-06-18 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Remove unneeded custom code for WebSocket.send
https://bugs.webkit.org/show_bug.cgi?id=38180
We don't appear to require a custom binding here. The old function was
wacky in two ways:
1) It required all of its arguments.
2) If the toString of its argument threw, it would catch the exception
and re-throw a different exception.
I've kept the first behavior but changed the second (and documented it
with a test).
Test: websocket/tests/send-throw.html
* bindings/js/JSWebSocketCustom.cpp:
* bindings/v8/custom/V8WebSocketCustom.cpp:
* websockets/WebSocket.idl:
2010-06-15 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Move isAvailable()/setIsAvailable() from Database/DatabaseSync to AbstractDatabase.
https://bugs.webkit.org/show_bug.cgi?id=39041
* WebCore.base.exp
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::openDatabaseEnabled):
(WebCore::RuntimeEnabledFeatures::openDatabaseSyncEnabled):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::openDatabase):
* storage/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::isAvailable):
(WebCore::AbstractDatabase::setIsAvailable):
* storage/AbstractDatabase.h:
* storage/Database.cpp:
* storage/Database.h:
* storage/DatabaseSync.cpp:
* storage/DatabaseSync.h:
* workers/WorkerContext.cpp:
(WebCore::WorkerContext::openDatabase):
(WebCore::WorkerContext::openDatabaseSync):
* workers/WorkerContext.h:
2010-06-18 Adam Barth <abarth@webkit.org>
Rubber-stamped by Eric Seidel.
Fix the namespace indent for HTML5Lexer. This patch changes
white-space only.
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::):
(WebCore::HTML5Lexer::lineNumber):
(WebCore::HTML5Lexer::columnNumber):
(WebCore::HTML5Lexer::state):
(WebCore::HTML5Lexer::setState):
(WebCore::HTML5Lexer::skipLeadingNewLineForListing):
(WebCore::HTML5Lexer::InputStreamPreprocessor::InputStreamPreprocessor):
(WebCore::HTML5Lexer::InputStreamPreprocessor::nextInputCharacter):
(WebCore::HTML5Lexer::InputStreamPreprocessor::peek):
(WebCore::HTML5Lexer::InputStreamPreprocessor::advance):
2010-06-18 Fumitoshi Ukai <ukai@chromium.org>
Unreviewed test breakage fix.
WebSocket: resume should not process buffer if already processing.
https://bugs.webkit.org/show_bug.cgi?id=39340
MessageLoop runs in main thread, so we don't need to use timer in worker thread.
Also, we should not use Timer in worker thread.
* websockets/ThreadableWebSocketChannelClientWrapper.h:
(WebCore::ThreadableWebSocketChannelClientWrapper::resume):
(WebCore::ThreadableWebSocketChannelClientWrapper::ThreadableWebSocketChannelClientWrapper):
2010-06-17 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61379.
http://trac.webkit.org/changeset/61379
https://bugs.webkit.org/show_bug.cgi?id=40813
Broke multiple tests on all platforms (Requested by tkent on
#webkit).
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/CodeGeneratorCPP.pm:
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::attrWithException):
(WebDOMTestObj::setAttrWithException):
(WebDOMTestObj::attrWithSetterException):
(WebDOMTestObj::attrWithGetterException):
(WebDOMTestObj::setAttrWithGetterException):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(webkit_dom_test_callback_callback_with_class1param):
(webkit_dom_test_callback_callback_with_class2param):
(webkit_dom_test_callback_callback_with_non_bool_return_type):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_void_method):
(webkit_dom_test_obj_void_method_with_args):
(webkit_dom_test_obj_int_method):
(webkit_dom_test_obj_int_method_with_args):
(webkit_dom_test_obj_obj_method):
(webkit_dom_test_obj_obj_method_with_args):
(webkit_dom_test_obj_method_that_requires_all_args):
(webkit_dom_test_obj_method_that_requires_all_args_and_throws):
(webkit_dom_test_obj_serialized_value):
(webkit_dom_test_obj_method_with_exception):
(webkit_dom_test_obj_with_dynamic_frame):
(webkit_dom_test_obj_with_dynamic_frame_and_arg):
(webkit_dom_test_obj_with_dynamic_frame_and_optional_arg):
(webkit_dom_test_obj_with_dynamic_frame_and_user_gesture):
(webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad):
(webkit_dom_test_obj_with_script_state_void):
(webkit_dom_test_obj_with_script_state_obj):
(webkit_dom_test_obj_with_script_state_void_exception):
(webkit_dom_test_obj_with_script_state_obj_exception):
(webkit_dom_test_obj_with_script_execution_context):
(webkit_dom_test_obj_method_with_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
(webkit_dom_test_obj_get_read_only_int_attr):
(webkit_dom_test_obj_get_read_only_string_attr):
(webkit_dom_test_obj_get_read_only_test_obj_attr):
(webkit_dom_test_obj_get_int_attr):
(webkit_dom_test_obj_set_int_attr):
(webkit_dom_test_obj_get_long_long_attr):
(webkit_dom_test_obj_set_long_long_attr):
(webkit_dom_test_obj_get_unsigned_long_long_attr):
(webkit_dom_test_obj_set_unsigned_long_long_attr):
(webkit_dom_test_obj_get_string_attr):
(webkit_dom_test_obj_set_string_attr):
(webkit_dom_test_obj_get_test_obj_attr):
(webkit_dom_test_obj_set_test_obj_attr):
(webkit_dom_test_obj_get_attr_with_exception):
(webkit_dom_test_obj_set_attr_with_exception):
(webkit_dom_test_obj_get_attr_with_setter_exception):
(webkit_dom_test_obj_set_attr_with_setter_exception):
(webkit_dom_test_obj_get_attr_with_getter_exception):
(webkit_dom_test_obj_set_attr_with_getter_exception):
(webkit_dom_test_obj_get_script_string_attr):
(webkit_dom_test_obj_get_conditional_attr1):
(webkit_dom_test_obj_set_conditional_attr1):
(webkit_dom_test_obj_get_conditional_attr2):
(webkit_dom_test_obj_set_conditional_attr2):
(webkit_dom_test_obj_get_conditional_attr3):
(webkit_dom_test_obj_set_conditional_attr3):
(webkit_dom_test_obj_get_description):
(webkit_dom_test_obj_get_id):
(webkit_dom_test_obj_set_id):
(webkit_dom_test_obj_get_hash):
(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::):
(WebCore::jsTestObjAttrWithException):
(WebCore::jsTestObjAttrWithSetterException):
(WebCore::jsTestObjAttrWithGetterException):
(WebCore::setJSTestObjAttrWithException):
(WebCore::setJSTestObjAttrWithGetterException):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj attrWithException]):
(-[DOMTestObj setAttrWithException:]):
(-[DOMTestObj attrWithSetterException]):
(-[DOMTestObj attrWithGetterException]):
(-[DOMTestObj setAttrWithGetterException:]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::attrWithExceptionAttrGetter):
(WebCore::TestObjInternal::attrWithExceptionAttrSetter):
(WebCore::TestObjInternal::attrWithSetterExceptionAttrGetter):
(WebCore::TestObjInternal::attrWithGetterExceptionAttrGetter):
(WebCore::TestObjInternal::attrWithGetterExceptionAttrSetter):
(WebCore::TestObjInternal::overloadedMethodCallback):
(WebCore::):
* dom/Element.cpp:
* dom/Element.h:
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLUListElement.idl:
* html/HTMLVideoElement.idl:
* svg/SVGElement.idl:
2010-06-17 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dave Hyatt.
CSS3 "Property is declared twice in rule" test fails
https://bugs.webkit.org/show_bug.cgi?id=36282
Filter out duplicate properties in style declaration.
Test: fast/css/duplicate-property-in-rule.html
* css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties
(WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Discard negative padding values
* css/CSSStyleSelector.cpp: Remove negative padding check
(WebCore::CSSStyleSelector::applyProperty):
2010-06-17 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Implement additional DOM attribute reflection for bindings
https://bugs.webkit.org/show_bug.cgi?id=39936
- Added support for [Reflect] for long, unsigned long, and boolean
attributes.
- Fixed code that set attributes like this: <video controls="controls">
to instead set them like this: <video controls>.
- Added lots more uses of [Reflect].
- Removed now-unneeded [ConvertFromString].
- Made [Reflect] imply [ConvertNullToNullString] so we can get rid
of most uses of the latter.
- Made [Reflect] automatically lowercase the name of the reflected
content attribute to minimize the need to specify a custom content
attribute name.
One thing this patch does *not* do is remove the unneeded functions
in the various DOM classes that are no longer used by the bindings.
We should do that in a followup.
* bindings/scripts/CodeGenerator.pm: Added new functions so code
can be shared across bindings, GetterExpressionPrefix and
SetterExpressionPrefix. We can do a lot more refactoring like
this in the future.
* bindings/scripts/CodeGeneratorCPP.pm: Removed unneeded
ConvertFromString handling, changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
to better handle reflected DOM attributes.
* bindings/scripts/CodeGeneratorGObject.pm: Removed unneeded
ConvertFromString handling, changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
to better handle reflected DOM attributes. Fixed a few things
in the output so the .cpp file will have more WebKit style.
The .h file should be GTK style, but the .cpp file can be the
standard WebKit style eventually.
* bindings/scripts/CodeGeneratorJS.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Made reflected attributes
automatically convert null to the null string without a
separate ConvertNullToNullString attribute.
* bindings/scripts/CodeGeneratorObjC.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Redid the special cases for
ownerDocument and for operator to fit better with the new code
paths. Removed unneeded ConvertFromString handling.
* bindings/scripts/CodeGeneratorV8.pm: Changed to use the new
GetterExpressionPrefix and SetterExpressionPrefix functions
and removed a now-unneeded IsSVGAnimatedType special case since
the new functions take care of it. Made reflected attributes
automatically convert null to the null string without a
separate ConvertNullToNullString attribute.
* bindings/scripts/test/TestObj.idl: Added some test cases for
content attribute reflection and for exceptions in string-typed
attributes.
* bindings/scripts/test/CPP/WebKitDOMTestObj.cpp: Updated.
* bindings/scripts/test/CPP/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.
* bindings/scripts/test/GObject/WebKitDOMTestObj.h: Ditto.
* bindings/scripts/test/JS/JSTestObj.cpp: Ditto.
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.h: Ditto.
* bindings/scripts/test/ObjC/DOMTestObj.mm: Ditto.
* bindings/scripts/test/V8/V8TestObj.cpp: Ditto.
* dom/Element.cpp:
(WebCore::Element::getIntegralAttribute): Added.
(WebCore::Element::setIntegralAttribute): Added.
(WebCore::Element::getUnsignedIntegralAttribute): Added.
(WebCore::Element::setUnsignedIntegralAttribute): Added.
* dom/Element.h: Added new attribute get/set functions for bindings.
* html/HTMLAnchorElement.idl:
* html/HTMLAppletElement.idl:
* html/HTMLAreaElement.idl:
* html/HTMLBRElement.idl:
* html/HTMLBaseElement.idl:
* html/HTMLBaseFontElement.idl:
* html/HTMLBlockquoteElement.idl:
* html/HTMLBodyElement.idl:
* html/HTMLButtonElement.idl:
* html/HTMLDListElement.idl:
* html/HTMLDirectoryElement.idl:
* html/HTMLDivElement.idl:
* html/HTMLElement.idl:
* html/HTMLEmbedElement.idl:
* html/HTMLFontElement.idl:
* html/HTMLFormElement.idl:
* html/HTMLFrameElement.idl:
* html/HTMLFrameSetElement.idl:
* html/HTMLHRElement.idl:
* html/HTMLHeadElement.idl:
* html/HTMLHeadingElement.idl:
* html/HTMLHtmlElement.idl:
* html/HTMLIFrameElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLInputElement.idl:
* html/HTMLIsIndexElement.idl:
* html/HTMLLIElement.idl:
* html/HTMLLabelElement.idl:
* html/HTMLLegendElement.idl:
* html/HTMLLinkElement.idl:
* html/HTMLMapElement.idl:
* html/HTMLMediaElement.idl:
* html/HTMLMenuElement.idl:
* html/HTMLMetaElement.idl:
* html/HTMLModElement.idl:
* html/HTMLOListElement.idl:
* html/HTMLObjectElement.idl:
* html/HTMLOptGroupElement.idl:
* html/HTMLOptionElement.idl:
* html/HTMLParagraphElement.idl:
* html/HTMLParamElement.idl:
* html/HTMLPreElement.idl:
* html/HTMLQuoteElement.idl:
* html/HTMLScriptElement.idl:
* html/HTMLStyleElement.idl:
* html/HTMLTableCaptionElement.idl:
* html/HTMLTableCellElement.idl:
* html/HTMLTableColElement.idl:
* html/HTMLTableElement.idl:
* html/HTMLTableRowElement.idl:
* html/HTMLTableSectionElement.idl:
* html/HTMLTextAreaElement.idl:
* html/HTMLUListElement.idl:
* html/HTMLVideoElement.idl:
* svg/SVGElement.idl:
Added more uses of [Reflect]. Got rid of uses of [ConvertNullToNullString] that
are now unneeded since [Reflect] now implies that. Changed formatting to be
simpler and consistent without all the lining up and multiple lines.
2010-06-17 MORITA Hajime <morrita@google.com>
Unreviewd, fixed a build break.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
2010-06-16 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
<meter> should allow styling for each gauge-level and component
https://bugs.webkit.org/show_bug.cgi?id=40280
- Introduced following new pseudo classes for <meter> element.
- -webkit-meter-horizontal-bar
- -webkit-meter-vertical-bar
- -webkit-meter-horizontal-optimum-value
- -webkit-meter-vertical-optimum-value
- -webkit-meter-horizontal-suboptimal-value
- -webkit-meter-vertical-suboptimal-value
- -webkit-meter-horizontal-even-less-good-value
- -webkit-meter-vertical-even-less-good-value
- Introduced 2 shadow nodes for RenderMeter to handle CSS styling.
one for bar part and another for value part.
- Removed RenderTheme::paintMeter() implementation because it can be
handled by styled painting without RenderTheme.
- Pulled RenderIndicator up to super class from RenderProgress,
then make RenderMeter a subclass of it.
- Moved shadow related methods from RenderProgress to ShadowBlockElement
to share it with RenderMeter.
- Added rules for html.css for new pseudo classes.
Tests: fast/dom/HTMLMeterElement/meter-styles-changing-pseudo.html
fast/dom/HTMLMeterElement/meter-styles.html
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
(WebCore::nameToPseudoTypeMap):
(WebCore::CSSSelector::extractPseudoType):
* css/CSSSelector.h:
(WebCore::CSSSelector::):
* css/html.css:
(meter::-webkit-meter-horizontal-bar):
(meter::-webkit-meter-vertical-bar):
(meter::-webkit-meter-horizontal-optimum-value):
(meter::-webkit-meter-horizontal-suboptimal-value):
(meter::-webkit-meter-horizontal-even-less-good-value):
(meter::-webkit-meter-vertical-optimum-value):
(meter::-webkit-meter-vertical-suboptimal-value):
(meter::-webkit-meter-vertical-even-less-good-value):
* rendering/RenderIndicator.cpp: Added.
(WebCore::RenderIndicator::RenderIndicator):
(WebCore::RenderIndicator::~RenderIndicator):
(WebCore::RenderIndicator::layout):
(WebCore::RenderIndicator::styleDidChange):
(WebCore::RenderIndicator::updateFromElement):
(WebCore::RenderIndicator::hasParts):
(WebCore::RenderIndicator::requestLayoutForParts):
* rendering/RenderIndicator.h: Added.
(WebCore::RenderIndicator::requiresForcedStyleRecalcPropagation):
* rendering/RenderMeter.cpp:
(WebCore::RenderMeter::RenderMeter):
(WebCore::RenderMeter::~RenderMeter):
(WebCore::RenderMeter::layoutParts): Added.
(WebCore::RenderMeter::shouldHaveParts): Added.
(WebCore::RenderMeter::valueRatio): Added.
(WebCore::RenderMeter::barPartRect): Added.
(WebCore::RenderMeter::valuePartRect): Added.
(WebCore::RenderMeter::isHorizontal): Added.
(WebCore::RenderMeter::valuePseudoId): Added.
(WebCore::RenderMeter::barPseudoId): Added.
(WebCore::RenderMeter::updatePartsState): Added.
* rendering/RenderMeter.h:
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::RenderProgress):
(WebCore::RenderProgress::updateFromElement):
(WebCore::RenderProgress::paint):
(WebCore::RenderProgress::layoutParts): Added.
(WebCore::RenderProgress::shouldHaveParts): Added.
(WebCore::RenderProgress::updatePartsState):
(WebCore::RenderProgress::valuePartRect):
* rendering/RenderProgress.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isControlStyled):
(WebCore::RenderTheme::paintMeter):
* rendering/RenderTheme.h:
(WebCore::RenderTheme::supportsMeter): Added.
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::supportsMeter): Added.
* rendering/ShadowElement.cpp:
(WebCore::ShadowBlockElement::layoutAsPart): Added.
(WebCore::ShadowBlockElement::updateStyleForPart): Added.
(WebCore::ShadowBlockElement::createForPart): Added.
(WebCore::ShadowBlockElement::createStyleForPart): Added.
(WebCore::ShadowBlockElement::partShouldHaveStyle): Added.
* rendering/ShadowElement.h:
* rendering/style/RenderStyleConstants.h:
(WebCore::):
2010-06-17 Fumitoshi Ukai <ukai@chromium.org>
Reviewed by Alexey Proskuryakov.
WebSocket: resume should not process buffer if already processing.
https://bugs.webkit.org/show_bug.cgi?id=39340
Test: websocket/tests/alert-in-event-handler.html
While running an event handler of WebSocket object, it may be suspended
and resumed in various reason. e.g. alert() will suspend/resume
ActiveDOM objects. In chromium, sending IPC message would also
suspend/resume ActiveDOM objects.
If resume process pending buffer in this case, another event might
be fired while running the initial event handler.
Thus, resume should not process pending buffer immediately.
Pending buffer would be processed after the current task has been
finished.
* websockets/ThreadableWebSocketChannelClientWrapper.h:
* websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::WebSocketChannel):
(WebCore::WebSocketChannel::resume):
Just set one shot timer for resumeTimerFired() if not yet set.
(WebCore::WebSocketChannel::resumeTimerFired):
Process pending event after resume was called.
* websockets/WebSocketChannel.h:
2010-06-17 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
REGRESSION(HTML5 parser): editing/selection/leave-requested-block.html can fail or crash
https://bugs.webkit.org/show_bug.cgi?id=40764
HTML5ScriptRunner was careful to only call CachedResource::addClient
for cases where the resource was not already loaded. This was to
avoid getting synchronous notifyFinished callbacks from inside
addClient. (The old HTMLDocumentParser also has hacks to work around
addClient's synchronous notifyFinished behavior for already-loaded
resources as well.)
It turns out that CachedResource will mark itself as purgeable if it
has no clients, thus it could have its data cleared (but itself not
deleted) in the case where we yield back to the runloop to wait for
CSS to load before executing the loaded script.
The fix is to act more like the old parser and always call addClient
on every CachedScript we load. But unlike the old parser, we're
careful not to re-enter from addClient -> notifyFinished
using guards in HTML5DocumentParser::watchForLoad.
I do not know how to make a CachedResource purge itself
from a LayoutTest, so this is not currently testable.
If anyone knows how I'm happy to make a test.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::watchForLoad):
- It is now expected to call watchForLoad with a loaded script.
(WebCore::HTML5DocumentParser::notifyFinished):
- Now that watchForLoad is called with loaded scripts, notifyFinished
may be be called from addClient, thus we may be in the middle of
script execution when it's called. It's OK. We pass the call
along to HTML5ScriptRunner::executeScriptsWaitingForLoad
and it knows how to ignore the call in that case.
* html/HTML5DocumentParser.h:
- Document these member variables more.
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
(WebCore::HTML5ScriptRunner::executePendingScript):
(WebCore::HTML5ScriptRunner::hasScriptsWaitingForLoad):
(WebCore::HTML5ScriptRunner::watchForLoad):
- Set the pending script to RegisteringForWatch state before
watching and WatchingForLoad after.
(WebCore::HTML5ScriptRunner::stopWatchingForLoad):
- Set the pending script to NotWatchingForLoad.
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
- Assert that callers checked hasScriptsWaitingForLoad()
(WebCore::HTML5ScriptRunner::requestScript):
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::PendingScript::):
(WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
(WebCore::HTML5ScriptRunner::PendingScript::watchingForLoad):
* html/HTML5ScriptRunnerHost.h:
- Document the new expectations of watchForLoad
2010-06-17 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Prevent HTML5PreloadScanner from loading resources in <noscript> tags.
https://bugs.webkit.org/show_bug.cgi?id=40779
No new tests. Will create a layout test in a subsequent patch.
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::processToken):
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::adjustedLexerState):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
(WebCore::HTML5TreeBuilder::isScriptingFlagEnabled):
* html/HTML5TreeBuilder.h:
2010-06-17 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5PreloadScanner parses <script> in DataState
https://bugs.webkit.org/show_bug.cgi?id=40804
The ScriptDataState is handled separately from the rest of the lexer
state changes because it's more complicted in the tree builder. The
easiest thing is to just handle it separately in the preloader too.
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::processToken):
2010-06-17 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add CSS scanning to HTML5PreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=40802
This patch just cribs the CSS preload scanning algorithm from the old
preload scanner. We also invented a way of testing the preload
scanner.
Tests: fast/preloader/image.html
fast/preloader/link.html
fast/preloader/script.html
fast/preloader/style.html
* Android.mk:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/CSSPreloadScanner.cpp: Added.
(WebCore::isWhitespace):
(WebCore::CSSPreloadScanner::CSSPreloadScanner):
(WebCore::CSSPreloadScanner::reset):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::tokenize):
(WebCore::CSSPreloadScanner::emitRule):
* html/CSSPreloadScanner.h: Added.
(WebCore::CSSPreloadScanner::):
* html/HTML5PreloadScanner.cpp:
(WebCore::HTML5PreloadScanner::HTML5PreloadScanner):
(WebCore::HTML5PreloadScanner::processToken):
(WebCore::HTML5PreloadScanner::scanningBody):
* html/HTML5PreloadScanner.h:
2010-06-17 Abhishek Arya <inferno@chromium.org>
Reviewed by David Kilzer.
(Landed by Dirk Pranke).
Check for a null frame before setting drag selection.
https://bugs.webkit.org/show_bug.cgi?id=38893
Same Layout test as https://bugs.webkit.org/show_bug.cgi?id=37168.
Test: editing/pasteboard/drag-drop-iframe-refresh-crash.html
Note that you need to run the test manually 20-30 times for the crash
to reproduce.
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
2010-06-17 Benjamin Poulain <benjamin.poulain@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Get rid of the the unused imageSize of ImageDecoderQt::internalHandleCurrentImage()
https://bugs.webkit.org/show_bug.cgi?id=40620
Remove an unused variable.
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::internalHandleCurrentImage):
2010-06-17 Jeremy Moskovich <jeremy@chromium.org>
Reviewed by Darin Fisher.
[Chromium API] Implement WebSandboxSupport on OS X and add stubs to allow
OOP loading of fonts.
https://bugs.webkit.org/show_bug.cgi?id=40544
* platform/chromium/ChromiumBridge.h: Add prototype for loadFont()
2010-06-17 Nicolas Weber <thakis@chromium.org>
Reviewed by Eric Seidel.
Fix various warnings that are reported when building with clang
https://bugs.webkit.org/show_bug.cgi?id=40503
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::labelElementContainer):
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::parentTable):
* bindings/v8/NPV8Object.cpp:
(WebCore::npObjectTypeInfo):
* bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
(WebCore::):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::):
* bindings/v8/custom/V8HTMLOptionElementConstructor.cpp:
(WebCore::):
* css/CSSStyleSheet.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getNamedElements):
* inspector/InspectorValues.cpp:
(WebCore::InspectorObject::getObject):
(WebCore::InspectorObject::getArray):
* page/animation/AnimationBase.h:
* platform/graphics/BitmapImage.h:
(WTF::):
* platform/graphics/mac/FontPlatformData.h:
* rendering/RenderBlock.h:
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::ellipsisBox):
* storage/StorageNamespaceImpl.cpp:
(WebCore::StorageNamespaceImpl::storageArea):
2010-06-17 Kwang Yul Seo <skyul@company100.net>
Reviewed by Pavel Feldman.
Add ENABLE(INSPECTOR) guard for m_sessionSettings
https://bugs.webkit.org/show_bug.cgi?id=40611
Build fix.
* inspector/InspectorController.h:
2010-06-17 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add FIXME to explain HTMLDocumentParser's forceSynchronous bool
https://bugs.webkit.org/show_bug.cgi?id=40609
No functional change, just adding comment.
* dom/Document.cpp:
(WebCore::Document::write):
2010-06-13 Robert Hogan <robert@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
WebCore EventHandler needs to take account of onLoad events
fired before layout() complete
https://bugs.webkit.org/show_bug.cgi?id=40102
WebCore 'cheats' by firing onLoad events before the frame's layout
has been performed. This can result in event listeners performing
operations that depend on the document's final layout, such as
scrolling operations.
When scrolling a frameview in eventhandler ensure the layout is complete.
* page/EventHandler.cpp:
(WebCore::EventHandler::scrollRecursively):
2010-06-16 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dimitri Glazkov.
Add the error codes defined in the async DB spec to SQLError.idl and SQLError.h.
https://bugs.webkit.org/show_bug.cgi?id=40748
Test: storage/sql-error-codes.html
* storage/SQLError.h:
(WebCore::SQLError::):
* storage/SQLError.idl:
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
(WebCore::SQLStatement::setDatabaseDeletedError):
(WebCore::SQLStatement::setVersionMismatchedError):
(WebCore::SQLStatement::setFailureDueToQuota):
(WebCore::SQLStatement::lastExecutionFailedDueToQuota):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::deliverTransactionCallback):
(WebCore::SQLTransaction::handleCurrentStatementError):
(WebCore::SQLTransaction::deliverStatementCallback):
(WebCore::SQLTransaction::postflightAndCommit):
2010-06-17 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Jian Li.
Fix CRLF ending conversion in StringBlobItem.
https://bugs.webkit.org/show_bug.cgi?id=40736
Also: fix referencing uninitialized member bug and slice length bug
in hybrid blob case.
Tests will be added when we add BlobBuilder jsc bindings.
* platform/BlobItem.cpp:
(WebCore::StringBlobItem::convertToCString):
(WebCore::DataRangeBlobItem::DataRangeBlobItem):
2010-06-17 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, rolling out r61340.
http://trac.webkit.org/changeset/61340
https://bugs.webkit.org/show_bug.cgi?id=36282
Broke several editing tests.
* css/CSSMutableStyleDeclaration.cpp:
(WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applyProperty):
2010-06-17 Jian Li <jianli@chromium.org>
Reviewed by David Levin.
Add optional contentType parameter to Blob.slice per latest File API spec.
https://bugs.webkit.org/show_bug.cgi?id=40647
Tested by http/tests/local/resources/send-sliced-dragged-file.html.
* html/Blob.cpp:
(WebCore::Blob::slice):
* html/Blob.h:
* html/Blob.idl:
2010-06-17 Jesus Sanchez-Palencia <jesus@webkit.org>, Kenneth Rohde Christiansen <kenneth@webkit.org>
Reviewed by Simon Hausmann.
[Qt] QtWebKit does not support viewport meta tag
https://bugs.webkit.org/show_bug.cgi?id=39902
Add windowRect() to page client.
* platform/qt/QWebPageClient.h:
2010-06-17 Stephen White <senorblanco@chromium.org>
Reviewed by David Levin.
Fix for slow multiple animated resize issue.
https://bugs.webkit.org/show_bug.cgi?id=38233
The timer-based resize quality approach implemented in
http://trac.webkit.org/changeset/34210 is a good idea, but doesn't
scale to multiple images with animated resizes. This fix unifies all
outstanding resize timers into a single timer, and removes the "use
last quality" check (which doesn't work when images are overlapping).
It also refactors the copy of this code implemented in
RenderBoxModelObject in http://trac.webkit.org/changeset/53949.
This improves Safari performance for the following IE9 platform demos on my C2D MacPro (10.5):
http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html (4->60fps)
http://ie.microsoft.com/testdrive/Performance/10FlickrExplorer/Default.html (3->16fps)
http://ie.microsoft.com/testdrive/Performance/11BrowserFlip/Default.html (9->60fps)
* rendering/RenderBoxModelObject.cpp:
(WebCore::ImageQualityController::ImageQualityController):
Unify all timers into a single timer, rename RenderBoxModelScaleObserver
to ImageQualityController, and remove the resize quality "stickness",
since it doesn't work with multiple outstanding resizes.
(WebCore::ImageQualityController::objectDestroyed):
gImages global is now m_lastPaintTimeMap member.
(WebCore::ImageQualityController::highQualityRepaintTimerFired):
Function made non-static; repaint all pending resizes (not just one).
(WebCore::ImageQualityController::restartTimer):
Added function to restart timer at 1.05x threshold.
(WebCore::imageQualityController):
Static function to return singleton.
(WebCore::ImageQualityController::shouldPaintAtLowQuality):
Use m_lastPaintTimeMap, not gImages global. Implement new timer
algorithm. Remove resize "stickiness".
(WebCore::RenderBoxModelObject::shouldPaintAtLowQuality):
Implement shouldPaintAtLowQuality, which pulls out "this" and passes
the call to the ImageQualityController.
(WebCore::RenderBoxModelObject::~RenderBoxModelObject):
Call ImageQualityController singleton's objectDestroyed() instead of
old static function.
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
Modify shouldPaintAtLowQuality() call to match new class name and
function signature.
* rendering/RenderBoxModelObject.h:
Expose shouldPaintAtLowQuality as a member function.
* rendering/RenderImage.cpp:
(WebCore::RenderImage::~RenderImage):
No need to call objectDestroyed() here anymore, since the
RenderBoxModelObject destructor will do this for us.
(WebCore::RenderImage::paintIntoRect):
Rip out RenderImageScaleObserver, and call
RenderBoxModelObject::shouldPaintAtLowQuality() instead.
2010-06-17 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dave Hyatt.
CSS3 "Property is declared twice in rule" test fails
https://bugs.webkit.org/show_bug.cgi?id=36282
Filter out duplicate properties in style declaration.
Test: fast/css/duplicate-property-in-rule.html
* css/CSSMutableStyleDeclaration.cpp: Filter out duplicate properties
(WebCore::CSSMutableStyleDeclaration::CSSMutableStyleDeclaration):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue): Discard negative padding values
* css/CSSStyleSelector.cpp: Remove negative padding check
(WebCore::CSSStyleSelector::applyProperty):
2010-06-17 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Clean up error conditions for Typed Arrays
https://bugs.webkit.org/show_bug.cgi?id=40755
* bindings/js/JSArrayBufferCustom.cpp:
(WebCore::JSArrayBufferConstructor::constructJSArrayBuffer):
- Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths.
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore::constructArrayBufferView):
- Changed all error code paths to throw exceptions. Clarified exception types.
* bindings/js/JSFloat32ArrayCustom.cpp:
(WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSInt16ArrayCustom.cpp:
(WebCore::JSInt16ArrayConstructor::constructJSInt16Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSInt32ArrayCustom.cpp:
(WebCore::JSInt32ArrayConstructor::constructJSInt32Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSInt8ArrayCustom.cpp:
(WebCore::JSInt8ArrayConstructor::constructJSInt8Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSUint16ArrayCustom.cpp:
(WebCore::JSUint16ArrayConstructor::constructJSUint16Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSUint32ArrayCustom.cpp:
(WebCore::JSUint32ArrayConstructor::constructJSUint32Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/js/JSUint8ArrayCustom.cpp:
(WebCore::JSUint8ArrayConstructor::constructJSUint8Array):
- Removed throwing of INDEX_SIZE_ERROR, delegating responsibility to constructArrayBufferView.
* bindings/v8/custom/V8ArrayBufferCustom.cpp:
(WebCore::V8ArrayBuffer::constructorCallback):
- Fixed handling of NaN/+inf/-inf lengths. Throw RangeError for too-large or negative lengths.
Clarified exception types.
* bindings/v8/custom/V8ArrayBufferViewCustom.h:
(WebCore::constructWebGLArray):
- Clarified exception types and throwing of exceptions along all error code paths.
* html/canvas/TypedArrayBase.h:
(WebCore::TypedArrayBase::create):
- Added necessary null checks during allocation.
2010-06-17 Shu Chang <chang.shu@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Fix the link error on symbian with ENABLE_JIT=0.
1. Add "#if ENABLE(JIT)" in the header file;
2. Put feature enable/disable logic to a common.pri so
that both JavaScriptCore.pri and WebCore.pri can share.
https://bugs.webkit.org/show_bug.cgi?id=40780
* WebCore.pri:
2010-06-17 Kenneth Russell <kbr@google.com>
Reviewed by Oliver Hunt.
Differences in error reporting for overloaded methods causing fast/canvas/webgl/texImageTest.html to fail
https://bugs.webkit.org/show_bug.cgi?id=40750
Added V8Proxy::throwTypeError() and throwSyntaxError for parity
with JSC::throwTypeError() and throwSyntaxError. Changed
CodeGeneratorV8.pm to use throwTypeError for overload resolution
failures. Revised CodeGeneratorJS.pm to use throwVMTypeError
instead of manual call to JSValue::encode. Deleted now-unnecessary
Chromium expectations for fast/canvas/webgl/texImageTest.html.
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::throwTypeError):
(WebCore::V8Proxy::throwSyntaxError):
* bindings/v8/V8Proxy.h:
2010-06-17 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
If Page::goToItem is passed a HistoryItem that is the current item,
then the page should be loaded again.
https://bugs.webkit.org/show_bug.cgi?id=40660
* loader/HistoryController.cpp:
(WebCore::HistoryController::recursiveGoToItem): Add a check to
recursiveGoToItem that matches the one in FrameLoader::loadItem.
2010-06-17 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Build fix for DragDataBrew
https://bugs.webkit.org/show_bug.cgi?id=40610
http://trac.webkit.org/changeset/60957 was not applied to DragDataBrew.cpp.
Add FilenameConversionPolicy argument to DragData::containsURL and DragData::asURL.
* platform/brew/DragDataBrew.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
2010-06-17 Zhenyao Mo <zmo@google.com>
Reviewed by David Levin.
Rename internalformat to internalFormat
https://bugs.webkit.org/show_bug.cgi?id=40149
* html/canvas/WebGLFramebuffer.cpp: Rename internalformat to internalFormat.
(WebCore::WebGLFramebuffer::getColorBufferFormat):
* html/canvas/WebGLRenderbuffer.cpp: Ditto.
(WebCore::WebGLRenderbuffer::WebGLRenderbuffer):
* html/canvas/WebGLRenderbuffer.h: Ditto.
(WebCore::WebGLRenderbuffer::setInternalFormat):
(WebCore::WebGLRenderbuffer::getInternalFormat):
* html/canvas/WebGLRenderingContext.cpp: Ditto.
(WebCore::WebGLRenderingContext::copyTexImage2D):
(WebCore::WebGLRenderingContext::copyTexSubImage2D):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer):
(WebCore::WebGLRenderingContext::getRenderbufferParameter):
(WebCore::WebGLRenderingContext::renderbufferStorage):
(WebCore::WebGLRenderingContext::texImage2DBase):
(WebCore::WebGLRenderingContext::isTexInternalFormatColorBufferCombinationValid):
* html/canvas/WebGLRenderingContext.h: Ditto.
* html/canvas/WebGLTexture.cpp: Ditto.
(WebCore::WebGLTexture::WebGLTexture):
* html/canvas/WebGLTexture.h: Ditto.
(WebCore::WebGLTexture::setInternalFormat):
(WebCore::WebGLTexture::getInternalFormat):
2010-06-17 Zhenyao Mo <zmo@google.com>
Reviewed by David Levin.
Remove input parameter validation for "level" upper limit in *tex* functions
https://bugs.webkit.org/show_bug.cgi?id=40603
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncParameters): Don't check for "level" upper limit.
2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Eric Seidel.
Clean EFL header files in order to diminish the compilation time with
EFL from subversion. We remove the EFL includes from header files and use
forward declarations, including the headers in correspondent source
files when needed. This causes only the needed source files to be
recompiled in case a new version of EFL is installed instead of
triggering a recompilation of almost all WebCore/WebKit.
https://bugs.webkit.org/show_bug.cgi?id=40575
No new functionalities, so no new tests.
* CMakeListsEfl.txt:
* platform/PlatformKeyboardEvent.h: forward declaration.
* platform/PlatformMouseEvent.h: forward declaration and change method
signature to not require enum.
* platform/PlatformWheelEvent.h: forward declaration.
* platform/Widget.h: forward declaration.
* platform/efl/PlatformKeyboardEventEfl.cpp: include needed header.
* platform/efl/PlatformMouseEventEfl.cpp:
(WebCore::PlatformMouseEvent::setClickCount): change method signature
as mentioned above.
* platform/efl/PlatformWheelEventEfl.cpp: include needed header.
* platform/efl/RenderThemeEfl.cpp: include needed header
* platform/efl/RenderThemeEfl.h: forward declaration.
* platform/efl/ScrollbarEfl.cpp: include needed header.
* platform/efl/ScrollbarEfl.h: forward declaration.
* platform/efl/WidgetEfl.cpp: include needed header.
* platform/graphics/FloatRect.h: remove unused method.
* platform/graphics/Icon.h: forward declaration.
* platform/graphics/IntRect.h: remove unused method.
* platform/graphics/efl/FloatRectEfl.cpp: Removed. This file was
implementing an unused method.
* platform/graphics/efl/IntRectEfl.cpp: Removed. This file was
implementing an unused method.
2010-06-17 Alex Milowski <alex@milowski.com>
Reviewed by Darin Adler.
Fixed a compile error in the paint() methods by making them use the
new visitedDependentColor() method.
https://bugs.webkit.org/show_bug.cgi?id=40327
* mathml/RenderMathMLRoot.cpp:
(WebCore::RenderMathMLRoot::paint):
(WebCore::RenderMathMLRoot::layout): Fixed a crash where every child
was assumed to be a RenderMathMLBlock instance when that isn't the
case. Also, layout() needed to mark the index for layout before
calling layout() on the index.
* mathml/RenderMathMLSquareRoot.cpp:
(WebCore::RenderMathMLSquareRoot::paint):
2010-06-17 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Use adoptRef and create functions in more code paths
https://bugs.webkit.org/show_bug.cgi?id=40760
This helps prepare for an assertion that fires if you ref or destroy an
object before calling adoptRef on it. That will help us catch mistakes
that can lead to storage leaks.
* WebCore.base.exp: Updated export now that Frame::create is not an
inline function.
* css/CSSInitialValue.h:
(WebCore::CSSInitialValue::createExplicit): Use create.
(WebCore::CSSInitialValue::createImplicit): Ditto.
(WebCore::CSSInitialValue::create): Added.
* css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::createUncachedIdentifier): Added.
(WebCore::CSSPrimitiveValue::createUncachedColor): Added.
(WebCore::CSSPrimitiveValue::createUncached): Added.
(WebCore::CSSPrimitiveValue::createIdentifier): Use createUncachedIdentifier
instead of using new directly.
(WebCore::CSSPrimitiveValue::createColor): Use createUncachedColor instead
of using new directly.
(WebCore::CSSPrimitiveValue::create): Use createdUncached instead of using
new directly.
* css/CSSPrimitiveValue.h: Declare the new functions above.
* css/CSSStyleSelector.cpp:
(WebCore::loadFullDefaultStyle): Deref simpleDefaultStyleSheet instead of
explicitly deleting it.
* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::SubresourceLoader): Move the call to
addSubresourceLoader out of here.
(WebCore::SubresourceLoader::create): Move it in here. This makes it so
we don't ref the loader before finishing its creation and calling adoptRef.
* page/Frame.cpp:
(WebCore::Frame::Frame): Move the call to setMainFrame out of here.
Also refactor the code so an assertion is easier to read.
(WebCore::Frame::create): Move the call to setMainFrame in here.
This makes it so we don't ref the frame before finishing its creation
and calling adoptRef.
* page/Frame.h: Made the create function non-inline.
* platform/text/BidiContext.cpp:
(WebCore::BidiContext::createUncached): Added.
(WebCore::BidiContext::create): Call createUncached instead of callling
new directly.
* platform/text/BidiContext.h: Declare createUncached.
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::buildPrimitives): Use PassRefPtr and
RefPtr instead of OwnPtr. And use the create function instead of new.
* rendering/RenderSVGResourceFilter.h: Ditto.
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer): Ditto.
* storage/StorageAreaImpl.cpp:
(WebCore::StorageAreaImpl::StorageAreaImpl): Move the code that calls
StorageAreaSync::create out of here.
(WebCore::StorageAreaImpl::create): Move it in here. This makes it so we
don't ref the storage area before finishing its creation and calling adoptRef.
* svg/SVGPaint.cpp:
(WebCore::SVGPaint::defaultFill): Use create instead of new.
(WebCore::SVGPaint::defaultStroke): Ditto.
* svg/graphics/filters/SVGFilterBuilder.h: Made the constructor private
and added a create function since this is a reference counted object and
should not be constructed directly.
2010-06-17 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Gustavo Noronha.
Update CMake build system to use new script for generating source files
with gperf (r61091).
This updates also the build system to cope with recent changes to
source files list.
https://bugs.webkit.org/show_bug.cgi?id=40628
No new tests since it's just compilation fixes.
* CMakeLists.txt:
2010-06-17 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Fix boolean reflected attributes to use empty string consistently for the content attribute value
https://bugs.webkit.org/show_bug.cgi?id=40758
Test: fast/dom/boolean-attribute-reflection.html
The HTML5 specification and other browsers are all consistent:
When setting a boolean IDL attribute to true, the attribute value
gets set to the empty string. The guidelines for authors allow either
the empty string or the name of the attribute, but for implementers
of the DOM, the reflected attribute gets empty string.
* dom/Element.cpp:
(WebCore::Element::setBooleanAttribute): Use emptyAtom to set the
attribute to the empty string.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::setAutofocus): Use the empty string,
not "autofocus".
(WebCore::HTMLFormControlElement::setRequired): Use the empty string,
not "required".
2010-06-17 Pavel Feldman <pfeldman@chromium.org>
Unreviewed: chromium tests fix. Added InspectorBackend delegates for new inspector methods.
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.clearConsoleMessages):
(.WebInspector.InspectorBackendStub.prototype.getOuterHTML):
(.WebInspector.InspectorBackendStub.prototype.setOuterHTML):
(.WebInspector.InspectorBackendStub.prototype.addInspectedNode):
2010-06-17 Mark Brand <mabrand@mabrand.nl>
Reviewed by Simon Hausmann.
[Qt] use "win32-g++*" scope to match all MinGW makespecs
The scope "win32-g++" comes from the name of the makespec. However, it
is frequently used to check for MinGW. This works fine as long as
win32-g++ is the only makespec for MinGW. Now we need the wildcard
to cover "win32-g++-cross" as well.
* WebCore.pro:
2010-06-16 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Joe Pecoraro.
Web Inspector: move get/setOuterHTML, addInspectedNode and
clearConsole to native InspectorDOMAgent. This is done to allow
inspected nodes array to store nodes from different domains,
also moves outerhtml manipulation closer to the rest of the DOM
operations. In addition to that, we are slowly getting rid of
InjectedScriptAccess in favor of IDL-defined InspectorBackend
interface for clearer remote debugging API.
https://bugs.webkit.org/show_bug.cgi?id=40733
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::inspectedNode):
* inspector/InjectedScriptHost.h:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::changeTagName):
(WebCore::InspectorBackend::getOuterHTML):
(WebCore::InspectorBackend::setOuterHTML):
(WebCore::InspectorBackend::addInspectedNode):
(WebCore::InspectorBackend::clearConsoleMessages):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::inspectedNode):
(WebCore::InspectorDOMAgent::changeTagName):
(WebCore::InspectorDOMAgent::getOuterHTML):
(WebCore::InspectorDOMAgent::setOuterHTML):
(WebCore::InspectorDOMAgent::addInspectedNode):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didGetOuterHTML):
(WebCore::InspectorFrontend::didSetOuterHTML):
* inspector/InspectorFrontend.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.requestClearMessages):
* inspector/front-end/DOMAgent.js:
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.this.treeOutline.focusedNodeChanged):
(WebInspector.ElementsPanel):
* inspector/front-end/ElementsTreeOutline.js:
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted.changeTagNameCallback):
(WebInspector.ElementsTreeElement.prototype._tagNameEditingCommitted):
():
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
* inspector/front-end/InjectedScriptAccess.js:
2010-06-17 John Gregg <johnnyg@google.com>
Reviewed by David Levin.
Move the call to the notification presenter that a Notification is being
destroyed from the destructor (not safe) to the ActiveDOMObject::contextDestroyed
method.
Also fix up an incorrect reference loss in the V8 bindings code for Notifications.
https://bugs.webkit.org/show_bug.cgi?id=40097
No new tests; code paths are well-covered by existing tests.
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
(WebCore::V8NotificationCenter::createHTMLNotificationCallback):
(WebCore::V8NotificationCenter::createNotificationCallback):
* notifications/Notification.cpp:
(WebCore::Notification::~Notification):
(WebCore::Notification::contextDestroyed):
* notifications/Notification.h:
2010-06-17 Csaba Osztrogonác <ossy@webkit.org>
Unreviewed rollout r61311, because it made 2 tests fail on Qt bot.
[Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
https://bugs.webkit.org/show_bug.cgi?id=36702
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
2010-05-28 Viatcheslav Ostapenko <ostapenko.viatcheslav@nokia.com>
Reviewed by Simon Hausmann, Antti Koivisto
Make repaint throttling parameters runtime configurable.
https://bugs.webkit.org/show_bug.cgi?id=38401
REPAINT_THROTTLING now chooses default values for throttling parameters.
Should be removed when applications start using runtime configuration.
* page/FrameView.cpp:
(WebCore::FrameView::reset):
(WebCore::FrameView::updateDeferredRepaintDelay):
(WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelay):
(WebCore::FrameView::setRepaintThrottlingnInitialDeferredRepaintDelayDuringLoading):
(WebCore::FrameView::setRepaintThrottlingMaxDeferredRepaintDelayDuringLoading):
(WebCore::FrameView::setRepaintThrottlingDeferredRepaintDelayIncrementDuringLoading):
* page/FrameView.h:
2010-06-17 Robert Hogan <robert@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] NPP_SetWindow seems to not be called when TestNetscapePlugin is moved
https://bugs.webkit.org/show_bug.cgi?id=36702
setNPWindowIfNeeded() is called on paint() in PluginViewQt, which doesn't
work for DRT. So call it if we are in DRT mode and the window geometry
has changed.
Unskips plugins/reentrant-update-widget-positions.html
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::updatePluginWidget):
2010-06-17 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Kenneth Christiansen.
[Qt] Avoid unnecessary calls to save() and restore() when drawing images
Avoid calling the expensive save() and restore() on the GraphicsContext just
for changing the composition mode. Instead save and restore it manually
on QPainter.
Change fac227f609e544f8f55aca8447b4328d6534407a in Qt makes sure that the
call to QPainter::setCompositionMode doesn't do anything if the mode hasn't
changed.
* platform/graphics/GraphicsContext.h:
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::toQtCompositionMode):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
2010-06-16 Dawit Alemayehu <adawit@kde.org>
Reviewed by Simon Hausmann.
[Qt] QtWebKit crashes while initializing flash plugin 10.1.53.64.
https://bugs.webkit.org/show_bug.cgi?id=40567
Avoid preventable crashes by ensuring gtk_init() is called in the
flash viewer plugins before calling NP_Initialize.
* plugins/qt/PluginPackageQt.cpp:
(WebCore::PluginPackage::load):
2010-06-16 Tony Gentilcore <tonyg@chromium.org>
Reviewed by David Levin.
Guarantee that references are held for CachedScripts in HTMLDocumentParser.
https://bugs.webkit.org/show_bug.cgi?id=40177
No new tests because no new functionality.
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::reset):
(WebCore::HTMLDocumentParser::executeExternalScriptsIfReady):
2010-06-16 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Repeat pattern should start from origin
https://bugs.webkit.org/show_bug.cgi?id=39225
Patterns must be painted so that the top left of the first image
is anchored at the origin of the coordinate space.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::drawRepeatPattern):
(WebCore::GraphicsContext::fillRect):
2010-06-16 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
Reviewed by Simon Hausmann.
[Qt] WebGL viewport does not show up on N900
https://bugs.webkit.org/show_bug.cgi?id=38528
With OGLES2 add default precision to the shader code.
Use GLsizeiptr and GLintptr with OGLES2.
Call paint() in beginPaint() so that drawTexture() is used
whenever possible.
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::beginPaint):
(WebCore::GraphicsContext3D::paint):
(WebCore::GraphicsContext3D::shaderSource):
2010-06-16 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Simon Fraser.
Spatial Navigation: refactor scrollInDirection to work with scrollable content
https://bugs.webkit.org/show_bug.cgi?id=39195
scrollInDirection now receives as parameter the node that the Spatial Navigation
found as the more appropriated to move focus to. If it is in a scrollable container
(e.g. <div> with clipped overflow content), it scrolls recursively starting from
the container, not the current focused node.
Test: fast/events/spatial-navigation/snav-only-clipped-overflow-content.html
* page/FocusController.cpp:
(WebCore::FocusController::advanceFocusDirectionally):
* page/SpatialNavigation.cpp:
(WebCore::scrollInDirection):
* page/SpatialNavigation.h:
2010-06-16 Brady Eidson <beidson@apple.com>
Reviewed by Eric Carlson
<rdar://problem/7249553> and https://bugs.webkit.org/show_bug.cgi?id=40749
ResourceLoader::willCacheResponse() needs to null-check Frame::Settings()
No new tests. (Discovered via crash reports, no reproducible cases noted)
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::willCacheResponse): Null check m_frame->settings(),
but also add an ASSERT so debug-build developers can learn more about why
this might be happening.
2010-06-16 Darin Adler <darin@apple.com>
Try to fix the MathML build.
* mathml/MathMLMathElement.h: Added missing return type.
2010-06-16 Darin Adler <darin@apple.com>
Reviewed by David Levin.
Deploy adoptRef in more places, including all HTML and MathML elements
https://bugs.webkit.org/show_bug.cgi?id=39941
* dom/Element.cpp:
(WebCore::Element::dispatchAttrRemovalEvent): Use create instead of new
in commented-out code.
(WebCore::Element::dispatchAttrAdditionEvent): Ditto.
* dom/Node.h: Removed now-unused CreateElementZeroRefCount and
CreateHTMLElementZeroRefCount.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::insertList): Use create instead of new, fixing
a storage leak.
* editing/ModifySelectionListLevel.cpp:
(WebCore::IncreaseSelectionListLevelCommand::increaseSelectionListLevel):
Removed "WithType" from function name. Use create instead of new, fixing a
storage leak.
(WebCore::DecreaseSelectionListLevelCommand::decreaseSelectionListLevel): Use
create instead of new, fixing a storage leak.
* storage/IndexedDatabaseImpl.cpp:
(WebCore::IndexedDatabaseImpl::create): Use adoptRef, fixing a storage leak.
* editing/ModifySelectionListLevel.h: Added create functions.
* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::HTMLAnchorElement):
* html/HTMLFrameOwnerElement.cpp:
(WebCore::HTMLFrameOwnerElement::HTMLFrameOwnerElement):
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::HTMLMeterElement):
* html/HTMLProgressElement.cpp:
(WebCore::HTMLProgressElement::HTMLProgressElement):
Removed code to explicitly pass CreateHTMLElement construction type since that's
now the type used for all HTML elements.
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::HTMLFormControlElement):
* html/HTMLFormControlElement.h:
Removed construction type argument, since CreateHTMLElement is now the type used
for all HTML elements.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::MathMLElement): Removed construction type of
CreateStyledElementZeroRefCount so we'll use the default construction
type, CreateStyledElement.
(WebCore::MathMLElement::create): Use adoptRef.
* mathml/MathMLElement.h: Made isMathMLElement function private and
removed unneeded override of createRenderer, because it did the
same thing as the base class's createRenderer function.
* mathml/MathMLInlineContainerElement.cpp:
(WebCore::MathMLInlineContainerElement::create): Use adoptRef.
(WebCore::MathMLInlineContainerElement::createRenderer):
Removed unnecessarily initialization of local variable and removed the
case for mathTag, since that uses a different derived class.
* mathml/MathMLInlineContainerElement.h: Made createRenderrer override
private.
* mathml/MathMLMathElement.cpp:
(WebCore::MathMLMathElement::MathMLMathElement): Marked inline since
it is called in only one place.
(WebCore::MathMLMathElement::create): Use adoptRef.
(WebCore::MathMLMathElement::createRenderer): Added. Creates a
RenderMathMLMath object.
* mathml/MathMLMathElement.h: Made constructor private and added a
private override of createRenderer.
* mathml/MathMLTextElement.cpp:
(WebCore::MathMLTextElement::MathMLTextElement): Marked inline since
it is called in only one place.
(WebCore::MathMLTextElement::create): Use adoptRef.
(WebCore::MathMLTextElement::createRenderer): Changed to call through
to the base class instead of calling RenderObject::createObject directly.
* mathml/MathMLTextElement.h: Made the constructor and createRenderer
function private.
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::RenderFileUploadControl):
Removed an unneeded initializer.
* rendering/RenderProgress.cpp: Tweaked includes.
* rendering/ShadowElement.cpp: Added a "using namespace" directive.
* rendering/ShadowElement.h: Tweaked formatting. Made more functions
private.
* editing/DeleteButton.cpp:
(WebCore::DeleteButton::create):
* html/HTMLAudioElement.cpp:
(WebCore::HTMLAudioElement::create):
(WebCore::HTMLAudioElement::createForJSConstructor):
* html/HTMLBRElement.cpp:
(WebCore::HTMLBRElement::create):
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::create):
* html/HTMLBaseFontElement.cpp:
(WebCore::HTMLBaseFontElement::create):
* html/HTMLBlockquoteElement.cpp:
(WebCore::HTMLBlockquoteElement::create):
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::create):
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::create):
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::create):
* html/HTMLDListElement.cpp:
(WebCore::HTMLDListElement::create):
* html/HTMLDataGridCellElement.cpp:
(WebCore::HTMLDataGridCellElement::create):
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::create):
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::create):
* html/HTMLDataGridRowElement.cpp:
(WebCore::HTMLDataGridRowElement::create):
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::create):
* html/HTMLDivElement.cpp:
(WebCore::HTMLDivElement::create):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::create):
* html/HTMLElement.h:
(WebCore::HTMLElement::HTMLElement):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::create):
* html/HTMLFontElement.cpp:
(WebCore::HTMLFontElement::create):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::create):
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::create):
* html/HTMLHRElement.cpp:
(WebCore::HTMLHRElement::create):
* html/HTMLHeadElement.cpp:
(WebCore::HTMLHeadElement::create):
* html/HTMLHeadingElement.cpp:
(WebCore::HTMLHeadingElement::create):
* html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::create):
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::create):
(WebCore::HTMLImageElement::createForJSConstructor):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::create):
* html/HTMLIsIndexElement.cpp:
(WebCore::HTMLIsIndexElement::create):
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::create):
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::create):
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::create):
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::create):
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::create):
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::create):
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::create):
* html/HTMLMenuElement.cpp:
(WebCore::HTMLMenuElement::create):
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::create):
* html/HTMLModElement.cpp:
(WebCore::HTMLModElement::create):
* html/HTMLNoScriptElement.cpp:
(WebCore::HTMLNoScriptElement::create):
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::create):
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::create):
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::create):
(WebCore::HTMLOptionElement::createForJSConstructor):
* html/HTMLParagraphElement.cpp:
(WebCore::HTMLParagraphElement::create):
* html/HTMLParamElement.cpp:
(WebCore::HTMLParamElement::create):
* html/HTMLPreElement.cpp:
(WebCore::HTMLPreElement::create):
* html/HTMLQuoteElement.cpp:
(WebCore::HTMLQuoteElement::create):
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::create):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::create):
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::create):
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::create):
* html/HTMLTableCaptionElement.cpp:
(WebCore::HTMLTableCaptionElement::create):
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::create):
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::create):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::create):
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::create):
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::create):
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::create):
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::create):
* html/HTMLUListElement.cpp:
(WebCore::HTMLUListElement::create):
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::create):
* loader/ImageDocument.cpp:
(WebCore::ImageDocumentElement::create):
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlShadowRootElement::create):
(WebCore::MediaControlElement::create):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlSeekButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlTimeDisplayElement::create):
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::create):
* rendering/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::create):
(WebCore::TextControlInnerTextElement::create):
(WebCore::SearchFieldResultsButtonElement::create):
(WebCore::SearchFieldCancelButtonElement::create):
(WebCore::SpinButtonElement::create):
Use adoptRef.
2010-06-16 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 parser crash when setTimeout document.write after slow script
https://bugs.webkit.org/show_bug.cgi?id=40726
According to the HTML5 spec, we're supposed to open() a new document if
we receive a document.write() after we've received EOF for the network.
The old parser just dumped those bytes onto the end of the network
stream. After this patch, our behavior matches Minefield.
Test: http/tests/misc/write-while-waiting.html
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
(WebCore::Document::write):
* dom/DocumentParser.h:
* dom/XMLDocumentParser.cpp:
(WebCore::XMLDocumentParser::finishWasCalled):
* dom/XMLDocumentParser.h:
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::finishWasCalled):
* html/HTML5DocumentParser.h:
(WebCore::HTML5DocumentParser::InputStream::isClosed):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finishWasCalled):
* html/HTMLDocumentParser.h:
* loader/ImageDocument.cpp:
(WebCore::ImageTokenizer::finishWasCalled):
* loader/MediaDocument.cpp:
(WebCore::MediaDocumentParser::finishWasCalled):
* loader/PluginDocument.cpp:
(WebCore::PluginDocumentParser::finishWasCalled):
* loader/SinkDocument.cpp:
(WebCore::SinkDocumentParser::finishWasCalled):
* loader/TextDocument.cpp:
(WebCore::TextDocumentParser::finishWasCalled):
2010-06-16 Martin Robinson <mrobinson@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GTK] ClipboardGtk::setURL does not match the behavior of other platforms
https://bugs.webkit.org/show_bug.cgi?id=40640
Instead of writing URL labels to the text portion of the clipboard or
drag-and-drop data, write the URL itself. Also escape the label text
of URLs. Abstracts logic into DataObjectGtk, so ClipboardGtk and
PasteboardGtk can share it.
Tests for this issue will be activated when dropping support has been
added to the GTK+ EventSender.
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::writeURL): Use DataObjectGtk::setURL.
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::setURL):
Added. Write URL to the text portion and remember to escape the
label when creating the markup portion.
* platform/gtk/DataObjectGtk.h: Add declaration of new method.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeURL): Use DataObjectGtk::setURL.
2010-06-16 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Hit assertion in WebCore::HTML5Token::appendToSystemIdentifier
https://bugs.webkit.org/show_bug.cgi?id=40729
This was a copy/paste error. Yay for ASSERTs.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-16 Stuart Morgan <stuartmorgan@chromium.org>
Reviewed by Anders Carlsson.
Bring npapi.h more in line with upstream npapi-headers version:
- Remove obsolete XP_MAC sections.
- Remove Metrowerks defines.
- Add OS/2 defines.
- Add Maemo defines.
- Add new version of the custom Carbon event definitions.
- Sync platform define style/details
https://bugs.webkit.org/show_bug.cgi?id=38666
* bridge/npapi.h:
2010-06-16 Simon Fraser <simon.fraser@apple.com>
Reviewed by Sam Weinig.
Allow transitions and animations of clip: rect
https://bugs.webkit.org/show_bug.cgi?id=38130
Make the CSS clip property animatable.
Test: transitions/clip-transition.html
* page/animation/AnimationBase.cpp:
(WebCore::blendFunc): New blend function for LengthBox
(WebCore::AnimationBase::ensurePropertyMap): Create a PropertyWrapper for LengthBoxes.
* platform/LengthBox.h:
(WebCore::LengthBox::LengthBox): New ctor that takes 4 length values.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::setClip): New method that takes a LengthBox.
2010-06-16 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Fix clipping via CSS clip: with composited descendants
https://bugs.webkit.org/show_bug.cgi?id=40579
Consult the 'clip' style, as well as overflow, when creating clipping
compositing layers.
Tests: compositing/geometry/clip.html
compositing/overflow/clip-descendents.html
* rendering/RenderLayerBacking.cpp:
(WebCore::clipBox): Utility function that returns the union of the clip and overflow
boxes.
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Use clipBox() to
get the correct clipping rectangle.
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::enclosingNonStackingClippingLayer): Look for
clip as well as overflow.
(WebCore::RenderLayerCompositor::clipsCompositingDescendants): Ditto.
2010-06-16 Simon Fraser <simon.fraser@apple.com>
Reviewed by Darin Adler.
REGRESSION: Undocked inspector toolbar is white
https://bugs.webkit.org/show_bug.cgi?id=40644
Make the html element 100% height so that we don't erase the background to white, after r61215.
* inspector/front-end/inspector.css:
(html):
2010-06-16 Brian Weinstein <bweinstein@apple.com>
Reviewed by Darin Adler.
User scripts injected on start are not run on image documents.
https://bugs.webkit.org/show_bug.cgi?id=40722
<rdar://8087394>
User scripts that are injected on start are run from FrameLoader::dispatchDocumentElementAvailable,
but this is never called from ImageDocument, so call it when we create a document element for
our image document.
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createDocumentStructure): Call FrameLoader::dispatchDocumentElementAvailable
after creating our document element.
2010-06-16 Brady Eidson <beidson@apple.com>
Reviewed by NOBODY (Build fix for Mac)
* WebCore.xcodeproj/project.pbxproj: Make paths relative to the project root.
2010-06-16 Chris Marrin <cmarrin@apple.com>
Reviewed by Eric Carlson.
https://bugs.webkit.org/show_bug.cgi?id=40643
Second of three steps - rename Canvas3DLayer to WebGLLayer
* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/mac/Canvas3DLayer.h: Removed.
* platform/graphics/mac/Canvas3DLayer.mm: Removed.
* platform/graphics/mac/GraphicsLayerCA.mm:
(WebCore::GraphicsLayerCA::setContentsToGraphicsContext3D):
* platform/graphics/mac/WebGLLayer.h: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.h.
* platform/graphics/mac/WebGLLayer.mm: Copied from WebCore/platform/graphics/mac/Canvas3DLayer.mm.
2010-06-16 Chris Marrin <cmarrin@apple.com>
Reviewed by Simon Fraser.
https://bugs.webkit.org/show_bug.cgi?id=40643
Rename GraphicsContext3DMac.cpp so it can interact with CALayer
* platform/graphics/mac/GraphicsContext3DMac.cpp: Removed.
* platform/graphics/mac/GraphicsContext3DMac.mm: Copied from WebCore/platform/graphics/mac/GraphicsContext3DMac.cpp.
* WebCore.xcodeproj/project.pbxproj
2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Add new files, needed in SVG Text rewrite
https://bugs.webkit.org/show_bug.cgi?id=40676
Land SVGTextChunkLayoutInfo.cpp and SVGTextQuery.(cpp|h), both with an "#if 0" on top, as they will be needed
in a later patch, completing the SVG Text rewrite, that will enable them.
Doesn't affect any code for now, it should just reduce the review amount.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/SVGTextChunkLayoutInfo.cpp: Added.
(WebCore::cummulatedWidthOrHeightOfTextChunk):
(WebCore::cummulatedWidthOfTextChunk):
(WebCore::cummulatedHeightOfTextChunk):
(WebCore::calculateTextAnchorShiftForTextChunk):
(WebCore::applyTextAnchorToTextChunk):
(WebCore::calculateTextLengthCorrectionForTextChunk):
(WebCore::applyTextLengthCorrectionToTextChunk):
(WebCore::SVGTextChunkLayoutInfo::startTextChunk):
(WebCore::SVGTextChunkLayoutInfo::closeTextChunk):
(WebCore::SVGTextChunkLayoutInfo::buildTextChunks):
(WebCore::SVGTextChunkLayoutInfo::recursiveBuildTextChunks):
(WebCore::SVGTextChunkLayoutInfo::layoutTextChunks):
* rendering/SVGTextChunkLayoutInfo.h: Add missing include, otherwhise compiling SVGTextChunkLayoutInfo.cpp will fail.
* rendering/SVGTextQuery.cpp: Added.
(WebCore::SVGTextQuery::Data::Data):
(WebCore::flowBoxForRenderer):
(WebCore::mapLengthThroughChunkTransformation):
(WebCore::SVGTextQuery::SVGTextQuery):
(WebCore::SVGTextQuery::collectTextBoxesInFlowBox):
(WebCore::SVGTextQuery::executeQuery):
(WebCore::SVGTextQuery::mapStartAndLengthIntoChunkPartCoordinates):
(WebCore::SVGTextQuery::measureCharacterRange):
(WebCore::NumberOfCharactersData::NumberOfCharactersData):
(WebCore::SVGTextQuery::numberOfCharactersCallback):
(WebCore::SVGTextQuery::numberOfCharacters):
(WebCore::TextLengthData::TextLengthData):
(WebCore::SVGTextQuery::textLengthCallback):
(WebCore::SVGTextQuery::textLength):
(WebCore::SubStringLengthData::SubStringLengthData):
(WebCore::SVGTextQuery::subStringLengthCallback):
(WebCore::SVGTextQuery::subStringLength):
(WebCore::StartPositionOfCharacterData::StartPositionOfCharacterData):
(WebCore::SVGTextQuery::startPositionOfCharacterCallback):
(WebCore::SVGTextQuery::startPositionOfCharacter):
(WebCore::EndPositionOfCharacterData::EndPositionOfCharacterData):
(WebCore::SVGTextQuery::endPositionOfCharacterCallback):
(WebCore::SVGTextQuery::endPositionOfCharacter):
(WebCore::RotationOfCharacterData::RotationOfCharacterData):
(WebCore::SVGTextQuery::rotationOfCharacterCallback):
(WebCore::SVGTextQuery::rotationOfCharacter):
(WebCore::ExtentOfCharacterData::ExtentOfCharacterData):
(WebCore::SVGTextQuery::extentOfCharacterCallback):
(WebCore::SVGTextQuery::extentOfCharacter):
(WebCore::CharacterNumberAtPositionData::CharacterNumberAtPositionData):
(WebCore::SVGTextQuery::characterNumberAtPositionCallback):
(WebCore::SVGTextQuery::characterNumberAtPosition):
* rendering/SVGTextQuery.h: Added.
2010-06-16 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Dirk Schulze.
Provide floating-point support for text selection framework
https://bugs.webkit.org/show_bug.cgi?id=40665
This is the first chunk of the SVG Text rewrite patches.
offsetForPosition() / selectionRectForText() should accept float/FloatPoint arguments instead
of int/IntPoint. offsetForPosition() already worked with floats internally in Qt and Mac.
selectionRectForText() was already returning a FloatRect, but the passed in origin was an integer.
Fixing these problems in order to support sub-pixel positioning in the upcoming SVG Text rewrite patch.
Add a glyphScale parameter to TextRun, that will be used to support text selection
in lengthAdjust/textLength scenarios in SVG text, soon.
Doesn't affect any testcases so far. HTML is not affected in any way,
as it only ever passes integers to these functions.
* platform/graphics/Font.cpp:
(WebCore::Font::selectionRectForText):
(WebCore::Font::offsetForPosition):
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
(WebCore::TextRun::glyphScale):
(WebCore::TextRun::setGlyphScale):
(WebCore::TextRun::applyGlyphScaling):
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advance):
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/chromium/FontLinux.cpp:
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/efl/FontEfl.cpp:
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/haiku/FontHaiku.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::offsetForPosition):
* platform/graphics/mac/ComplexTextController.h:
* platform/graphics/mac/FontComplexTextMac.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::offsetForPositionForSimpleText):
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForSimpleText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/win/FontWin.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* platform/graphics/wince/FontWince.cpp:
(WebCore::Font::offsetForPositionForComplexText):
(WebCore::Font::selectionRectForComplexText):
* platform/graphics/wx/FontWx.cpp:
(WebCore::Font::selectionRectForComplexText):
(WebCore::Font::offsetForPositionForComplexText):
* svg/SVGFont.cpp:
(WebCore::Font::selectionRectForTextUsingSVGFont):
(WebCore::Font::offsetForPositionForTextUsingSVGFont):
2010-06-16 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
[v8] Introduce single element caches for WebCore::String to v8::String conversions
https://bugs.webkit.org/show_bug.cgi?id=40435
Measurements show that for some web apps (GMail, Wave) and some scenarios
(intensive reading and/or keeping a tab open for a long time),
hit rate lies in 30--50% interval.
Inlining fast case gives another minor performance win.
* bindings/v8/V8Binding.cpp:
(WebCore::getStringCache):
(WebCore::v8ExternalStringSlow):
* bindings/v8/V8Binding.h:
(WebCore::v8ExternalString):
2010-06-16 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Kenneth Christiansen.
Spatial Navigation: using offset{Left,Top} is not enough to get the proper inner frames position
https://bugs.webkit.org/show_bug.cgi?id=39439
As pointed out by Darin Adler in https://bugs.webkit.org/show_bug.cgi?id=18662#c20,
"It's not correct to use the offsetLeft and offsetTop of the frame owner element's renderer because
that's just the distance from the offsetParent, not the absolute position".
Patch fixes that behavior by now considering the offsetTop and offsetLeft the offsetParent recursively,
starting from the HtmlFrameOwnerElement. Previously, only calling offsetTop and offsetLeft works
because all tests were done in htmls where the {i}frame element was a directly a child of the body,
e.g. <html>...<body><iframe src=xxx>....<body></html>.
Test: fast/events/spatial-navigation/snav-iframe-recursive-offset-parent.html
* page/SpatialNavigation.cpp:
(WebCore::renderRectRelativeToRootDocument):
2010-06-16 Dan Bernstein <mitz@apple.com>
Try to fix the Tiger build
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformBoundsForGlyph):
2010-06-16 Dan Bernstein <mitz@apple.com>
Try to fix the Tiger build
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformBoundsForGlyph):
2010-06-16 Dan Bernstein <mitz@apple.com>
Reviewed by Alexey Proskuryakov.
<rdar://problem/8077119> REGRESSION (r60247): Google Reader contains the tops of pieces of unidentifiable text under feed headlines.
https://bugs.webkit.org/show_bug.cgi?id=40386
Test: platform/mac/fast/text/x-height.html
The result of platformBoundsForGlyph() is in flipped coordinates, whereas the result of
-[NSFont boundingRectForGlyph:] was not. r60247 failed to account for this.
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::platformInit): Measure the height of the x glyph above the baseline
correctly.
(WebCore::SimpleFontData::platformBoundsForGlyph): Return a rect in flipped coordinates on Tiger
as well.
2010-06-16 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Don't crash when a document ends with an entity
https://bugs.webkit.org/show_bug.cgi?id=40658
When we SWITCH_TO a state, we're expecting our caller to have advanced
the source. Rather than have all the callers check for empty, we do
that ourselves.
* html/HTML5Lexer.cpp:
2010-06-15 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Enable HTML5 lexer
https://bugs.webkit.org/show_bug.cgi?id=40650
* page/Settings.cpp:
(WebCore::Settings::Settings):
2010-06-15 Mark Rowe <mrowe@apple.com>
Rubber-stamped by David Harrison.
sqlite3_prepare16_v2 is not documented as always setting "tail" during error cases.
Explicitly initialize it to null, just to be safe.
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare):
2010-06-15 Mark Rowe <mrowe@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/8091103> URLs not added to history when initial load happens via back/forward navigation
Back/forward navigation currently does not create or update items in the global history. This is usually
desirable, except for in the event where the back/forward list was created programmatically and attached
to the WebView and the initial load in that WebView is being performed as a result of a back/forward
navigation. In that situation it is preferable to ensure that global history item is created or updated.
No test case is added because DumpRenderTree is not able to test the scenario where the initial
load in a WebView occurs via a back/forward navigation.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::transitionToCommitted): If we're committing the first load in this frame as a
back/forward navigation then we should update the history as if it were a standard load, with the
exception of updating the back/forward list.
* loader/HistoryController.cpp:
(WebCore::HistoryController::updateForStandardLoad): Add a parameter to allow callers to skip updating
the back/forward list.
* loader/HistoryController.h:
(WebCore::HistoryController::):
2010-06-15 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by David Levin.
Fix compilation errors in BlobBuilder with FILE_WRITER enabled
https://bugs.webkit.org/show_bug.cgi?id=40606
No functionality change so no new tests.
* html/BlobBuilder.cpp:
* html/BlobBuilder.h:
2010-06-15 Jian Li <jianli@chromium.org>
Reviewed by David Levin.
Move type attribute from File.idl to Blob.idl per latest File API spec.
https://bugs.webkit.org/show_bug.cgi?id=40642
* html/Blob.idl:
* html/File.idl:
2010-06-15 Darin Adler <darin@apple.com>
Reviewed by Adam Barth.
Move functions out of Frame class that were marked "move to Chrome"
https://bugs.webkit.org/show_bug.cgi?id=39636
Refactoring that does not require new tests.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::didOpenURL): Call setStatus and setDefaultStatus
on DOMWindow rather than going through Frame.
(WebCore::FrameLoader::open): Ditto.
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call
shouldClose on this object instead of going through Frame.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Call
shouldClose on FrameLoader instead of going through Frame.
(WebCore::DOMWindow::focus): Moved the code from Frame::focusWindow
in here.
(WebCore::DOMWindow::blur): Moved the code from Frame::unfocusWindow
in here.
(WebCore::DOMWindow::close): Moved the code from Frame::scheduleClose
in here.
(WebCore::DOMWindow::setStatus): Moved the code from
Frame::setJSStatusBarText in here.
(WebCore::DOMWindow::setDefaultStatus): Moved the code from
Frame::setJSDefaultStatusBarText in here.
* page/DOMWindow.h: Added m_status and m_defaultStatus members to
store the status messages being set by the DOM.
* page/Frame.cpp: Removed all the functions that were marked
"to be moved into Chrome".
* page/Frame.h: Ditto.
2010-06-15 Simon Fraser <simon.fraser@apple.com>
Fix crashing tests; need to check for null documentElement().
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
2010-06-15 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dave Hyatt.
Garbage shown outside HTML if HTML is absolutely positioned
https://bugs.webkit.org/show_bug.cgi?id=36163
Add a check that the root renderer (the document element's renderer) covers
the entire viewport before deciding that we don't need the RenderView
to paint its background. Fixes lack of painting with positioned, floated, and
display: table html elements.
Test: fast/repaint/positioned-document-element.html
* rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
2010-06-15 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
Safari 5 does not clear background with transformed html element
https://bugs.webkit.org/show_bug.cgi?id=40498
When the document element is composited, ensure that the FrameView
paints the background, because the composited layer may be transparent,
or might get moved via animation.
Test: compositing/repaint/composited-document-element.html
* rendering/RenderView.cpp:
(WebCore::isComposited):
(WebCore::rendererObscuresBackground):
2010-06-15 Xan Lopez <xlopez@igalia.com>
Try to fix GTK+ build.
* platform/gtk/GtkVersioning.h:
2010-06-15 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
Introduce HistoryItem::itemSequenceNumber and use it to identify
HistoryItems that are clones of one another.
Changes HistoryController::recursiveGoToItem to use itemSequenceNumber
equality instead of isTargetItem as the pre-requisite for not calling
FrameLoader::loadItem.
Changes FrameLoader::loadItem to require equivalent
documentSequenceNumber before initiating a same document navigation.
This alone would appear to fix the bug, but it does not go far enough
since without the itemSequenceNumber equality check, we'd re-load more
often than we should.
Moves documentSequenceNumber assignment into createItemTree as cleanup
and to ensure that it gets called properly whenever we create a cloned
HistoryItem. (createItemTree's mission is to create clones up until
or including the target frame depending on the value of the doClip
parameter.)
Removes the now unused HistoryController::urlsMatchItem.
https://bugs.webkit.org/show_bug.cgi?id=40451
Test: fast/history/history-back-within-subframe.html
http/tests/navigation/history-back-across-form-submission-to-fragment.html
* history/HistoryItem.cpp:
(WebCore::generateSequenceNumber):
(WebCore::HistoryItem::HistoryItem):
* history/HistoryItem.h:
(WebCore::HistoryItem::setItemSequenceNumber):
(WebCore::HistoryItem::itemSequenceNumber):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadItem):
* loader/HistoryController.cpp:
(WebCore::HistoryController::updateBackForwardListForFragmentScroll):
(WebCore::HistoryController::createItemTree):
(WebCore::HistoryController::recursiveGoToItem):
(WebCore::HistoryController::pushState):
* loader/HistoryController.h:
2010-06-15 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Does not compile with -DGSEAL_ENABLE
https://bugs.webkit.org/show_bug.cgi?id=37851
Fix compilation with GSEAL_ENABLE.
* platform/gtk/GtkVersioning.h:
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::screenDepth):
(WebCore::screenDepthPerComponent):
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::show):
* platform/gtk/ScrollbarGtk.cpp:
(ScrollbarGtk::detachAdjustment):
(ScrollbarGtk::updateThumbPosition):
(ScrollbarGtk::updateThumbProportion):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::paint):
(WebCore::PluginView::initXEvent):
(WebCore::PluginView::platformGetValue):
(WebCore::PluginView::platformStart):
* plugins/gtk/gtk2xtbin.c:
(gtk_xtbin_realize):
(gtk_xtbin_new):
(gtk_xtbin_set_position):
(gtk_xtbin_unrealize):
2010-06-15 Xan Lopez <xlopez@igalia.com>
Unreviewed build fix.
Fix the build when WebSockets are disabled.
* bindings/js/JSWorkerContextCustom.cpp:
2010-06-15 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
YouTube thumbnail borders vanish during transition
https://bugs.webkit.org/show_bug.cgi?id=40551
Turn off the direct image optimization if the image has a clip style, so that is is
correctly rendered with the clip.
Test: compositing/images/clip-on-directly-composited-image.html
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::isDirectlyCompositedImage):
2010-06-15 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: make ui tests pass when ScriptDebugServer is used
https://bugs.webkit.org/show_bug.cgi?id=40623
* bindings/v8/JavaScriptCallFrame.cpp:
(WebCore::JavaScriptCallFrame::functionName): return empty string for anonymous functions instead of [anonymous].
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handleV8DebugEvent): autocontinue on syntax errors since there is no stack trace and
not much to inspect.
2010-06-15 Adam Roben <aroben@apple.com>
Make WebCore's and JavaScriptCore's DerivedSources available for debugging in production builds
Fixes <http://webkit.org/b/40626> <rdar://problem/8094205>.
Reviewed by Sam Weinig.
* WebCore.vcproj/WebCore.make: Copy the contents of WebCore's
DerivedSources directory to AppleInternal/Sources/WebCore.
2010-06-15 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Bring framebuffer functions to GLES2 conformance
https://bugs.webkit.org/show_bug.cgi?id=40175
Test: fast/canvas/webgl/framebuffer-test.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::checkFramebufferStatus): Check input parameters and deal with default framebuffer situation.
(WebCore::WebGLRenderingContext::framebufferRenderbuffer): Check input parameters.
(WebCore::WebGLRenderingContext::framebufferTexture2D): Ditto.
(WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): Ditto.
(WebCore::WebGLRenderingContext::validateFramebufferFuncParameters): Check input parameters.
* html/canvas/WebGLRenderingContext.h: Add validateFramebufferFuncParameters.
2010-06-15 Patrick Gansterer <paroga@paroga.com>
Reviewed by David Levin.
Buildfix for ResourceHandleWin after r24202 and r55542.
https://bugs.webkit.org/show_bug.cgi?id=32963
* platform/network/win/ResourceHandleWin.cpp:
(WebCore::ResourceHandle::onHandleCreated):
(WebCore::ResourceHandle::onRequestComplete):
(WebCore::transferJobStatusCallback):
(WebCore::ResourceHandle::start):
2010-06-12 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Joe Pecoraro.
Web Inspector: Should not expose window.console._inspectorCommandLineAPI to the web.
https://bugs.webkit.org/show_bug.cgi?id=40500
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
(injectedScriptConstructor.):
2010-06-15 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] The qt_webkit_version.pri file gets overwritten on install
https://bugs.webkit.org/show_bug.cgi?id=40487
Don't install qt_webkit_version.pri when building WebKit inside of Qt.
The import of WebKit into Qt will take care of providing the file
in mkspecs/modules and it'll be installed through projects.pro.
* WebCore.pro:
2010-06-15 Tony Chang <tony@chromium.org>
Reviewed by Ojan Vafai.
resolve urls in text/html clipboard data
https://bugs.webkit.org/show_bug.cgi?id=40044
Allow text/html data copied from a page to contain full URLs when
dragging or copy/pasting.
Tests: editing/pasteboard/copy-resolves-urls.html
http/tests/misc/copy-resolves-urls.html
* WebCore.base.exp:
* editing/markup.cpp:
(WebCore::appendStartMarkup):
(WebCore::getStartMarkup):
(WebCore::MarkupAccumulator::appendMarkup):
(WebCore::createMarkup):
* editing/markup.h:
(WebCore::):
* platform/chromium/ClipboardChromium.cpp:
(WebCore::ClipboardChromium::writeRange):
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeSelection):
* platform/gtk/ClipboardGtk.cpp:
(WebCore::ClipboardGtk::writeRange):
* platform/gtk/DataObjectGtk.cpp:
(WebCore::DataObjectGtk::markup):
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeSelection):
* platform/haiku/PasteboardHaiku.cpp:
(WebCore::Pasteboard::writeSelection):
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::writeRange):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeSelection):
2010-06-14 Chris Fleizach <cfleizach@apple.com>
No review. GTK build fix.
AX: need ListItemRole and PresentationalRole
https://bugs.webkit.org/show_bug.cgi?id=40133
Mostly speculative fix to make GTK unit tests work.
* accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
(atkRole):
(webkit_accessible_get_role):
2010-06-14 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
<rdar://problem/8090895> Update http streaming MIME types
* platform/MIMETypeRegistry.cpp:
(WebCore::TypeExtensionPair::): Add http streaming MIME synonyms.
2010-06-14 Eric Carlson <eric.carlson@apple.com>
Reviewed by Oliver Hunt.
audio/x-mp3 MIME type not recognized
<rdar://problem/7875393>
https://bugs.webkit.org/show_bug.cgi?id=40594
Allow MIMETypeRegistry to have more than one MIME type for a
media file extension, and have the QTKit media engine register
all MIME types it can find for each file type QTKit supports.
Test: media/media-can-play-mp3.html
* platform/MIMETypeRegistry.cpp:
(WebCore::mediaMIMETypeMap): Update for new HashMap format.
(WebCore::TypeExtensionPair::): Store String+Vector<String>
(WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): Only consult
mediaMIMETypeMap(), it has the canonical answer.
(WebCore::MIMETypeRegistry::getMediaMIMETypesForExtension): New, return
a Vector of all MIME types for an extension.
* platform/MIMETypeRegistry.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::addFileTypesToCache): Add all MIME types returned in the
getMediaMIMETypesForExtension Vector.
2010-06-14 Mark Rowe <mrowe@apple.com>
Reviewed by Brady Eidson.
<rdar://problem/8071866> REGRESSION: Crash on launch on Tiger and Leopard with network home folder
* platform/sql/SQLiteStatement.cpp:
(WebCore::SQLiteStatement::prepare): Don't assume that tail is always non-null, since that may
not be the case with some versions of SQLite. Instead we must null-check before dereferencing.
2010-06-14 Anders Carlsson <andersca@apple.com>
Fix Tiger build.
* plugins/mac/PluginDataMac.mm:
2010-06-14 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Use an array for extensions in MimeClassInfo
https://bugs.webkit.org/show_bug.cgi?id=40602
Get rid of MimeClassInfo::suffixes and replace it with an array of extensions.
* plugins/MimeType.cpp:
(WebCore::MimeType::suffixes):
Create a string of joined extensions.
* plugins/MimeType.h:
* plugins/PluginData.h:
(WebCore::operator==):
* plugins/chromium/PluginDataChromium.cpp:
(WebCore::getPluginMimeTypeFromExtension):
* plugins/gtk/PluginDataGtk.cpp:
(WebCore::PluginData::initPlugins):
* plugins/mac/PluginDataMac.mm:
(WebCore::PluginData::initPlugins):
* plugins/qt/PluginDataQt.cpp:
(WebCore::PluginData::initPlugins):
* plugins/win/PluginDataWin.cpp:
(WebCore::PluginData::initPlugins):
* plugins/wx/PluginDataWx.cpp:
(WebCore::PluginData::initPlugins):
2010-06-14 Adam Barth <abarth@webkit.org>
Unreviewed.
Add an include to try to fix Chromium build.
* html/HTML5DocumentParser.cpp:
2010-06-14 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Safari beach-balls loading large pages with HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40596
Implement parser yielding, similar to how the old
HTMLDocumentParser yields.
This implementation re-uses the tokenizerTimeDelay and
tokenizerChunkSize settings even though they don't map exactly
to the token loop that the HTML5 parser uses.
* dom/DocumentParser.h:
- Add a FIXME for processingData() and clarify how the
appendData flag is used by renaming it to isFromNetwork.
* html/HTML5DocumentParser.cpp:
(WebCore::parserTimeLimit):
- Defaults accessor, probably belongs on Page.
(WebCore::parserChunkSize):
- Defaults accessor, probably belongs on Page.
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::stopParsing):
- Stop the continue-parsing timer if active.
(WebCore::HTML5DocumentParser::processingData):
- Implement this poorly understood accessor to match
the old parser's behavior. It's unclear what this does
and it does not affect any layout tests to my knowledge
but likely affects the WebKit API in some way.
(WebCore::HTML5DocumentParser::pumpLexerIfPossible):
- Pass SynchronousMode.
- Do not ever pump if we've yielded to the timer.
(WebCore::HTML5DocumentParser::PumpSession::PumpSession):
- A struct for storing the yield counters.
(WebCore::HTML5DocumentParser::shouldContinueParsing):
- Mostly matches HTMLDocumentParser::shouldContinueParsing.
(WebCore::HTML5DocumentParser::pumpLexer):
- Respect SynchronousMode.
- ASSERT that a timer is not scheduled if we're pumping.
(WebCore::isLayoutTimerActive):
- This belongs on Document.
(WebCore::HTML5DocumentParser::continueNextChunkTimerFired):
(WebCore::HTML5DocumentParser::write):
(WebCore::HTML5DocumentParser::end):
- We should never end() if a timer is still outstanding.
(WebCore::HTML5DocumentParser::attemptToEnd):
(WebCore::HTML5DocumentParser::endIfDelayed):
(WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution):
* html/HTML5DocumentParser.h:
(WebCore::HTML5DocumentParser::):
* html/HTMLDocumentParser.cpp:
- Clarify the old TimeDelay and ChunkSize constants.
2010-06-14 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Add a preload scanner for the HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40557
This patch adds a simple preload scanner for the HTML5 parser. This
preload scanner is not as awesome as the old one because it doesn't
scan CSS, but it's much simpler.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
- Build file torture.
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::write):
- Call into the preload scanner when waiting for a script.
* html/HTML5DocumentParser.h:
* html/HTML5PreloadScanner.cpp: Copied from WebCore/html/PreloadScanner.cpp.
(WebCore::HTML5PreloadScanner::HTML5PreloadScanner):
(WebCore::HTML5PreloadScanner::scan):
- A simple loop to pump the preload scanner's lexer.
(WebCore::HTML5PreloadScanner::processToken):
- Preload interesting resources. Stolen from the old preload
scanner.
(WebCore::HTML5PreloadScanner::scanningBody):
* html/HTML5PreloadScanner.h: Copied from WebCore/html/PreloadScanner.h.
2010-06-14 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Constify some HTML5Token methods
https://bugs.webkit.org/show_bug.cgi?id=40592
I keep wanting these methods to be const. Eric wanted this in a
separate patch.
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::state):
* html/HTML5Token.h:
(WebCore::HTML5Token::attributes):
(WebCore::HTML5Token::name):
(WebCore::HTML5Token::characters):
(WebCore::HTML5Token::comment):
(WebCore::HTML5Token::publicIdentifier):
(WebCore::HTML5Token::systemIdentifier):
* html/HTML5TreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTML5TreeBuilder::adjustedLexerState):
- Technically, this might belong in the other patch, but I think
it's fine here.
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
* html/HTML5TreeBuilder.h:
2010-06-14 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, build fix.
* WebCore.xcodeproj/project.pbxproj:
2010-06-14 Dimitri Glazkov <dglazkov@chromium.org>
Unreviewed, build fix.
Remove accidental specifying of the class name twice.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::prepareFormData): Removed my ghastly typo.
2010-06-14 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Get DatabaseTracker ready for sync DBs.
https://bugs.webkit.org/show_bug.cgi?id=39041
* storage/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::~AbstractDatabase):
* storage/AbstractDatabase.h:
* storage/Database.cpp:
(WebCore::Database::closeImmediately):
* storage/Database.h:
(WebCore::Database::scriptExecutionContext):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
(WebCore::DatabaseTracker::databaseChanged):
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* storage/DatabaseTracker.h:
* storage/OriginQuotaManager.cpp:
(WebCore::OriginQuotaManager::markDatabase):
* storage/OriginQuotaManager.h:
* storage/chromium/DatabaseObserver.h:
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::addOpenDatabase):
(WebCore::TrackerRemoveOpenDatabaseTask::create):
(WebCore::TrackerRemoveOpenDatabaseTask::TrackerRemoveOpenDatabaseTask):
(WebCore::DatabaseTracker::removeOpenDatabase):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::getMaxSizeForDatabase):
2010-06-14 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=40529
eventSender.keyDown("delete") incorrectly sends a backspace on some platforms
* platform/mac/KeyEventMac.mm: (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
Use virtual key code to force correct character code for clarity. Also, reworded comment,
since saying that "backspace needs to always be 8" misleadingly implied that it could
"sometimes" be such without this code.
2010-06-14 Dimitri Glazkov <dglazkov@chromium.org>
Reviewed by Darin Adler.
Refactor form submission code in HTMLFormElement to add clarity.
https://bugs.webkit.org/show_bug.cgi?id=39430
Covered by existing tests in fast/forms/mailto.
* html/HTMLFormElement.cpp:
(WebCore::appendMailtoPostFormDataToURL): Renamed from transferMailtoPostFormDataToUrl,
removed clearing out of the FormData and moved it to a new place (next to the call site).
(WebCore::HTMLFormElement::prepareFormData): Renamed from createFormData, moved the logic of
prepareing FormData here, including the use of appendMailtoPostFormDataToURL.
(WebCore::HTMLFormElement::submit): Consolidated multiple invocations of submitForm().
* html/HTMLFormElement.h: Renamed createFormData to prepareFormData.
2010-06-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: need ListItemRole and PresentationalRole
https://bugs.webkit.org/show_bug.cgi?id=40133
* accessibility/AccessibilityObject.cpp:
(WebCore::createARIARoleMap):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isListItem):
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeNames]):
2010-06-14 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Remove pluginIndex from MimeClassInfo
https://bugs.webkit.org/show_bug.cgi?id=40588
* plugins/PluginData.h:
* plugins/gtk/PluginDataGtk.cpp:
(WebCore::PluginData::initPlugins):
* plugins/mac/PluginDataMac.mm:
(WebCore::PluginData::initPlugins):
* plugins/qt/PluginDataQt.cpp:
(WebCore::PluginData::initPlugins):
* plugins/win/PluginDataWin.cpp:
(WebCore::PluginData::initPlugins):
* plugins/wx/PluginDataWx.cpp:
(WebCore::PluginData::initPlugins):
2010-06-14 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Jian Li.
Implement BlobBuilder internal class for BlobBuilder support as defined in FileWriter
https://bugs.webkit.org/show_bug.cgi?id=36903
No new tests; they will be added when we add jsc bindings.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/BlobBuilder.cpp: Added.
* html/BlobBuilder.h: Added.
(WebCore::BlobBuilder::create):
* platform/BlobItem.cpp:
(WebCore::StringBlobItem::convertToCString): Added EndingNative support.
* platform/BlobItem.h: Added EndingNative line-ending type.
(WebCore::):
2010-06-14 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Stop using MimeClassInfo::pluginIndex
https://bugs.webkit.org/show_bug.cgi?id=40582
Add a pluginIndicies vector to PluginData and use it instead of MimeClassInfo::pluginIndex.
* plugins/MimeType.cpp:
(WebCore::MimeType::enabledPlugin):
Get the plug-in index from the mimePluginIndices vector.
* plugins/Plugin.cpp:
(WebCore::Plugin::item):
Compare the mime plugin index as well.
* plugins/PluginData.cpp:
(WebCore::PluginData::PluginData):
Populate the m_mimePluginIndices vector.
(WebCore::PluginData::pluginNameForMimeType):
Get the plug-in index from the m_mimePluginIndices vector.
* plugins/PluginData.h:
(WebCore::operator==):
Don't check for pluginIndex.
(WebCore::PluginData::mimePluginIndices):
Add getter for m_mimePluginIndices.
2010-06-14 Sam Weinig <sam@webkit.org>
Better build fix.
* bindings/js/JSBindingsAllInOne.cpp:
2010-06-14 Sam Weinig <sam@webkit.org>
Another windows build fix.
* bindings/js/JSBindingsAllInOne.cpp:
2010-06-14 Sam Weinig <sam@webkit.org>
Another build fix.
* bindings/js/JSDOMWindowCustom.cpp:
2010-06-14 Sam Weinig <sam@webkit.org>
Add missing comma to fix GTK build.
* xml/XSLTProcessor.idl:
2010-06-14 Sam Weinig <sam@webkit.org>
Reviewed by Alexey Proskuryakov.
Fix for https://bugs.webkit.org/show_bug.cgi?id=40581
Auto-generate most of the JS constructors
- Auto-generates all the JS constructors that don't have custom
names (eg, Not Image(), Audio() or Option())
- Fixes two typos.
(new XSLTConstructor()).toString() [object XSLTProcessorConsructor] -> [object XSLTProcessorConstructor])
(new EventSource()).toString() [object EventSourceContructor] -> [object EventSourceConstructor])
* Android.jscbindings.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSArrayBufferConstructor.cpp: Removed.
* bindings/js/JSArrayBufferConstructor.h: Removed.
* bindings/js/JSArrayBufferCustom.cpp: Copied from WebCore/bindings/js/JSArrayBufferConstructor.cpp.
(WebCore::JSArrayBufferConstructor::constructJSArrayBuffer):
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore::constructArrayBufferView):
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMWindowCustom.cpp:
* bindings/js/JSEventSourceConstructor.cpp: Removed.
* bindings/js/JSEventSourceConstructor.h: Removed.
* bindings/js/JSEventSourceCustom.cpp: Copied from WebCore/bindings/js/JSEventSourceConstructor.cpp.
(WebCore::JSEventSourceConstructor::constructJSEventSource):
* bindings/js/JSFloat32ArrayConstructor.cpp: Removed.
* bindings/js/JSFloat32ArrayConstructor.h: Removed.
* bindings/js/JSFloat32ArrayCustom.cpp:
(WebCore::JSFloat32ArrayConstructor::constructJSFloat32Array):
* bindings/js/JSInt16ArrayConstructor.cpp: Removed.
* bindings/js/JSInt16ArrayConstructor.h: Removed.
* bindings/js/JSInt16ArrayCustom.cpp:
(WebCore::JSInt16ArrayConstructor::constructJSInt16Array):
* bindings/js/JSInt32ArrayConstructor.cpp: Removed.
* bindings/js/JSInt32ArrayConstructor.h: Removed.
* bindings/js/JSInt32ArrayCustom.cpp:
(WebCore::JSInt32ArrayConstructor::constructJSInt32Array):
* bindings/js/JSInt8ArrayConstructor.cpp: Removed.
* bindings/js/JSInt8ArrayConstructor.h: Removed.
* bindings/js/JSInt8ArrayCustom.cpp:
(WebCore::JSInt8ArrayConstructor::constructJSInt8Array):
* bindings/js/JSMessageChannelConstructor.cpp: Removed.
* bindings/js/JSMessageChannelConstructor.h: Removed.
* bindings/js/JSMessageChannelCustom.cpp:
(WebCore::JSMessageChannelConstructor::constructJSMessageChannel):
* bindings/js/JSSharedWorkerConstructor.cpp: Removed.
* bindings/js/JSSharedWorkerConstructor.h: Removed.
* bindings/js/JSSharedWorkerCustom.cpp:
(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):
* bindings/js/JSUint16ArrayConstructor.cpp: Removed.
* bindings/js/JSUint16ArrayConstructor.h: Removed.
* bindings/js/JSUint16ArrayCustom.cpp:
(WebCore::JSUint16ArrayConstructor::constructJSUint16Array):
* bindings/js/JSUint32ArrayConstructor.cpp: Removed.
* bindings/js/JSUint32ArrayConstructor.h: Removed.
* bindings/js/JSUint32ArrayCustom.cpp:
(WebCore::JSUint32ArrayConstructor::constructJSUint32Array):
* bindings/js/JSUint8ArrayConstructor.cpp: Removed.
* bindings/js/JSUint8ArrayConstructor.h: Removed.
* bindings/js/JSUint8ArrayCustom.cpp:
(WebCore::JSUint8ArrayConstructor::constructJSUint8Array):
* bindings/js/JSWebKitCSSMatrixConstructor.cpp: Removed.
* bindings/js/JSWebKitCSSMatrixConstructor.h: Removed.
* bindings/js/JSWebKitCSSMatrixCustom.cpp: Copied from WebCore/bindings/js/JSWebKitCSSMatrixConstructor.cpp.
(WebCore::JSWebKitCSSMatrixConstructor::constructJSWebKitCSSMatrix):
* bindings/js/JSWebKitPointConstructor.cpp: Removed.
* bindings/js/JSWebKitPointConstructor.h: Removed.
* bindings/js/JSWebKitPointCustom.cpp: Copied from WebCore/bindings/js/JSWebKitPointConstructor.cpp.
(WebCore::JSWebKitPointConstructor::constructJSWebKitPoint):
* bindings/js/JSWebSocketConstructor.cpp: Removed.
* bindings/js/JSWebSocketConstructor.h: Removed.
* bindings/js/JSWebSocketCustom.cpp:
(WebCore::JSWebSocketConstructor::constructJSWebSocket):
* bindings/js/JSWorkerConstructor.cpp: Removed.
* bindings/js/JSWorkerConstructor.h: Removed.
* bindings/js/JSWorkerContextCustom.cpp:
* bindings/js/JSWorkerCustom.cpp:
(WebCore::JSWorkerConstructor::constructJSWorker):
* bindings/js/JSXSLTProcessorConstructor.cpp: Removed.
* bindings/js/JSXSLTProcessorConstructor.h: Removed.
* bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessorConstructor::constructJSXSLTProcessor):
* bindings/scripts/CodeGeneratorJS.pm:
* css/WebKitCSSMatrix.idl:
* dom/MessageChannel.idl:
* html/canvas/ArrayBuffer.idl:
* html/canvas/Float32Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
* page/EventSource.idl:
* page/WebKitPoint.idl:
* websockets/WebSocket.idl:
* workers/SharedWorker.idl:
* workers/Worker.idl:
* xml/XSLTProcessor.idl:
2010-05-16 Antonio Gomes <tonikitoo@webkit.org>
Unreviewed naming fixes of local variables used in Spatial Navigation methods.
Summary:
* "candidate" renamed to "node";
* "currentFocusCandidate" renamed to "candidate"
* "closestFocusCandidate" renamed to "closest"
That way naming is more consistent in the various Spatial Navigation methods.
* page/FocusController.cpp:
(WebCore::FocusController::findFocusableNodeInDirection):
(WebCore::FocusController::deepFindFocusableNodeInDirection):
2010-06-14 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Simon Fraser and Kenneth Christiansen.
Spatial Navigation: make it work with focusable elements in overflow content
https://bugs.webkit.org/show_bug.cgi?id=36463
This patch addresses the problem with Spatial Navigation. It currently does not
properly traverse scrollable contents, including scrollable div's. For this to work,
a new class member called scrollableEnclosingBox was introduced to FocusCandidate class which
keeps track of the current scrollable box Node wrapping a FocusCandidate.
To make use of enclosingScrollableBox of FocusCandidate, the DOM traversal routine
(FocusController::findNextFocusableInDirection) was changed as follows: when it
encounters a scrollable Node, each focusable node which is 'inner' keeps track of
the container reference. By the time a sibling of the scrollable Node is encountered,
there is no need to track this reference any more and the traversal algorithm continues
normally.
The common case is obviously that there is no scrollable container wrapping it.
updateFocusCandiditeIfCloser logic was also adapted to fit the need of the
newly introduced enclosingScrollableBox class member, getting simpler and more
easily maintainable.
Tests: fast/events/spatial-navigation/snav-div-scrollable-but-without-focusable-content.html
fast/events/spatial-navigation/snav-clipped-overflow-content.html
* page/FocusController.cpp:
(WebCore::updateFocusCandidateInSameContainer):
(WebCore::updateFocusCandidateIfCloser):
(WebCore::FocusController::findFocusableNodeInDirection):
(WebCore::FocusController::deepFindFocusableNodeInDirection):
* page/SpatialNavigation.cpp:
(WebCore::isScrollableContainerNode):
* page/SpatialNavigation.h:
(WebCore::FocusCandidate::FocusCandidate):
(WebCore::FocusCandidate::isInScrollableContainer):
2010-06-14 Jian Li <jianli@chromium.org>
Unreviewed. Fix build break in GTK.
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallbackPrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterfacePrivate.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2010-06-14 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: AXUnknown objects are being returned
https://bugs.webkit.org/show_bug.cgi?id=40574
Test: platform/mac/accessibility/no-unknown-objects-when-title-attribute-present.html
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
2010-06-14 Jian Li <jianli@chromium.org>
Reviewed by Darin Adler.
Fix code generators to better support Conditional attribute and add test
coverage for it.
https://bugs.webkit.org/show_bug.cgi?id=39512
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_get_conditional_attr1):
(webkit_dom_test_obj_set_conditional_attr1):
(webkit_dom_test_obj_get_conditional_attr2):
(webkit_dom_test_obj_set_conditional_attr2):
(webkit_dom_test_obj_get_conditional_attr3):
(webkit_dom_test_obj_set_conditional_attr3):
(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/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestInterface.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::):
(WebCore::jsTestObjConditionalAttr1):
(WebCore::jsTestObjConditionalAttr2):
(WebCore::jsTestObjConditionalAttr3):
(WebCore::setJSTestObjConditionalAttr1):
(WebCore::setJSTestObjConditionalAttr2):
(WebCore::setJSTestObjConditionalAttr3):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestInterface.mm:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj conditionalAttr1]):
(-[DOMTestObj setConditionalAttr1:]):
(-[DOMTestObj conditionalAttr2]):
(-[DOMTestObj setConditionalAttr2:]):
(-[DOMTestObj conditionalAttr3]):
(-[DOMTestObj setConditionalAttr3:]):
* bindings/scripts/test/TestInterface.idl:
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestInterface.cpp:
* bindings/scripts/test/V8/V8TestInterface.h:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::conditionalAttr1AttrGetter):
(WebCore::TestObjInternal::conditionalAttr1AttrSetter):
(WebCore::TestObjInternal::conditionalAttr2AttrGetter):
(WebCore::TestObjInternal::conditionalAttr2AttrSetter):
(WebCore::TestObjInternal::conditionalAttr3AttrGetter):
(WebCore::TestObjInternal::conditionalAttr3AttrSetter):
(WebCore::):
2010-06-14 Chang Shu <chang.shu@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Change the type of ShadowSize from IntSize to FloatSize in GraphicsContext.
Using IntSize loses precision and fails the test.
Note: This code change fixes Qt port but Mac is still failing due to
platform issue.
https://bugs.webkit.org/show_bug.cgi?id=40434
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::applyShadow):
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::getShadow):
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextPrivate.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::calculateShadowBufferDimensions):
(WebCore::drawPathShadow):
(WebCore::drawBorderlessRectShadow):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
(WebCore::Font::drawComplexText):
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/qt/FontQt.cpp:
(WebCore::drawTextCommon):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::drawFilledShadowPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::drawBorderlessRectShadow):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::windowsCanHandleDrawTextShadow):
* platform/graphics/win/FontCGWin.cpp:
(WebCore::drawGDIGlyphs):
(WebCore::Font::drawGlyphs):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::drawText):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
2010-06-14 Dan Bernstein <mitz@apple.com>
Reviewed by Simon Fraser.
<rdar://problem/7752961> Unevenly distributed space in justified text
https://bugs.webkit.org/show_bug.cgi?id=36105
Test: fast/text/justify-padding-distribution.html
* platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::WidthIterator): Initialize m_padPerSpace to the quotient of the total
padding and the number of spaces rather than truncating it.
(WebCore::WidthIterator::advance): Subtract m_padPerSpace from m_padding and add the difference
between its old and new values, when rounded, to the advance.
* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextController):
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):
* platform/graphics/win/UniscribeController.cpp:
(WebCore::UniscribeController::UniscribeController):
(WebCore::UniscribeController::shapeAndPlaceItem):
* platform/graphics/win/UniscribeController.h:
2010-06-14 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Stack overflow when converting navigator object to QVariant
https://bugs.webkit.org/show_bug.cgi?id=40572
Protect against infinite recursion in JSValue->QVariant conversion.
This fixes a crash when trying to convert MimeType objects (they
recurse infinitely and on-the-fly via the enabledPlugin property.)
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertValueToQVariant):
2010-06-14 Yong Li <yoli@rim.com>
Test cases created by: Robin Cao <robin.cao@torchmobile.com.cn>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=38910
Suspend Document::m_executeScriptSoonTimer objects when the page is deferred.
There's no reason why we suspend all active DOM timers on the page but not suspend
this one. Document::m_executeScriptSoonTimer can run JS and schedule more DOM Timers.
It can only be tested manually.
* manual-tests/load-deferrer-script-element.html: Added.
* manual-tests/resources/load-deferrer-script-element.js: Added.
* dom/Document.cpp:
(WebCore::Document::executeScriptSoon):
(WebCore::Document::suspendExecuteScriptSoonTimer): Added.
(WebCore::Document::resumeExecuteScriptSoonTimer): Added.
* dom/Document.h:
* page/PageGroupLoadDeferrer.cpp:
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
(WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
2010-06-13 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Platform plugin support for Notifications UI
https://bugs.webkit.org/show_bug.cgi?id=40005
To avoid race condition when GC is run during shutdown,
disconnect the Notification from the NotificationPresenter
when the presenter deletes itself.
This cannot be tested by a layout test, the race condition happens only
when GC is run during shutdown. It can be tested manually by loading
manually any notification test and closing the browser.
* notifications/Notification.cpp:
(WebCore::Notification::~Notification):
* notifications/Notification.h:
(WebCore::Notification::detachPresenter):
2010-06-08 Marcus Bulach <bulach@chromium.org>
Reviewed by Jeremy Orlow.
Adds IndexedDB's KeyRange.
https://bugs.webkit.org/show_bug.cgi?id=40250
Test: storage/indexeddb/idb-keyrange.html
* 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.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* storage/IDBKeyRange.cpp: Added.
(WebCore::IDBKeyRange::IDBKeyRange):
* storage/IDBKeyRange.h: Added.
(WebCore::IDBKeyRange::):
(WebCore::IDBKeyRange::create):
(WebCore::IDBKeyRange::~IDBKeyRange):
(WebCore::IDBKeyRange::left):
(WebCore::IDBKeyRange::right):
(WebCore::IDBKeyRange::flags):
* storage/IDBKeyRange.idl: Added.
* storage/IndexedDatabaseRequest.cpp:
(WebCore::IndexedDatabaseRequest::makeSingleKeyRange):
(WebCore::IndexedDatabaseRequest::makeLeftBoundKeyRange):
(WebCore::IndexedDatabaseRequest::makeRightBoundKeyRange):
(WebCore::IndexedDatabaseRequest::makeBoundKeyRange):
* storage/IndexedDatabaseRequest.h:
* storage/IndexedDatabaseRequest.idl:
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
And another.
* storage/IndexedDatabaseRequest.h:
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
More build fixes.
* storage/IndexedDatabaseRequest.h:
2010-06-14 Mahesh Kulkarni <mahesh.kulkarni@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] navigator.geolocation support for Qt port
https://bugs.webkit.org/show_bug.cgi?id=39724
Implemetion for Qt port of navigator.gelocation. Using qtmobility location service.
* WebCore.pri:
* WebCore.pro:
* platform/qt/GeolocationServiceQt.cpp: Added.
(WebCore::GeolocationServiceQt::create):
(WebCore::GeolocationServiceQt::GeolocationServiceQt):
(WebCore::GeolocationServiceQt::~GeolocationServiceQt):
(WebCore::GeolocationServiceQt::positionUpdated):
(WebCore::GeolocationServiceQt::startUpdating):
(WebCore::GeolocationServiceQt::stopUpdating):
* platform/qt/GeolocationServiceQt.h: Added.
(WebCore::GeolocationServiceQt::lastPosition):
(WebCore::GeolocationServiceQt::lastError):
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
2 more build fixes.
* storage/IDBDatabaseImpl.h:
* storage/IndexedDatabaseRequest.h:
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
Unreviewed build fix for my last.
* workers/WorkerScriptLoaderClient.h:
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
[V8] Clean up SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=40482
SerializedScriptValue doesn't follow WebKit's style guidelines very well
and needlessly inlines quite a bit within the .h file. This change cleans
things up. No funcitonal changes.
No change in behavior.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::deserializeAndSetProperty):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/v8/SerializedScriptValue.h:
2010-06-14 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
data from inspected page to WebInspector as JSON string via http. The native
serialization to JSON string is supported by InspectorValue's classes. This patch
has the implementation of sendMessageToFrontend function. WebKit version of it still
uses ScriptFunctionCall and will be switched to another transport a little bit later.
https://bugs.webkit.org/show_bug.cgi?id=40134
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::InspectorFrontend):
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
* inspector/InspectorValues.cpp:
(WebCore::InspectorObject::writeJSON):
* inspector/front-end/inspector.js:
(WebInspector.dispatchMessageToFrontend):
* loader/EmptyClients.h:
(WebCore::EmptyInspectorClient::sendMessageToFrontend):
2010-06-14 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Adler.
Reenable IDBDatabaseRequest's description attribute
https://bugs.webkit.org/show_bug.cgi?id=39826
On the 26th, Beth commented out the description attribute in
IDBDatabaseRequest because it was causing problems with the
objective c bindings. Turns out that this is the same bug as
in http://trac.webkit.org/changeset/19486. (Thanks for the
pointer, Mark!)
The solution is to change the objective C bindings generator
to change the name in the generated code. id and hash both
just appended "Name" to them in the past. I couldn't think
of anything else particularly better to append, so I just
went with name as well.
Test: building the world works on the first try. Layout
test verifies description works again.
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_get_description):
(webkit_dom_test_obj_get_id):
(webkit_dom_test_obj_set_id):
(webkit_dom_test_obj_get_hash):
(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::):
(WebCore::jsTestObjDescription):
(WebCore::jsTestObjId):
(WebCore::jsTestObjHash):
(WebCore::setJSTestObjId):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj descriptionName]):
(-[DOMTestObj idName]):
(-[DOMTestObj setIdName:]):
(-[DOMTestObj hashName]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::descriptionAttrGetter):
(WebCore::TestObjInternal::idAttrGetter):
(WebCore::TestObjInternal::idAttrSetter):
(WebCore::TestObjInternal::hashAttrGetter):
(WebCore::):
* storage/IDBDatabaseRequest.idl:
2010-06-13 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] ScreenQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39766
* platform/qt/ScreenQt.cpp:
2010-06-13 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Rename HTMLParser to LegacyHTMLTreeConstructor
https://bugs.webkit.org/show_bug.cgi?id=40554
This makes our old HTML parsing system closer match the
HTML5 spec, and thus easier to compare to the new HTML5
parsing system.
This rename was entirely automatic. Done by do-webcore-rename.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Document.cpp:
* dom/DocumentParser.h:
(WebCore::DocumentParser::htmlTreeConstructor):
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::htmlTreeConstructor):
* html/HTML5DocumentParser.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::legacyTreeConstructor):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::htmlTreeConstructor):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLInputElement.cpp:
* html/HTMLMeterElement.cpp:
* html/HTMLProgressElement.cpp:
* html/LegacyHTMLTreeConstructor.cpp: Renamed from WebCore/html/HTMLParser.cpp.
(WebCore::addTags):
(WebCore::HTMLStackElem::HTMLStackElem):
(WebCore::HTMLStackElem::derefNode):
(WebCore::LegacyHTMLTreeConstructor::LegacyHTMLTreeConstructor):
(WebCore::LegacyHTMLTreeConstructor::~LegacyHTMLTreeConstructor):
(WebCore::LegacyHTMLTreeConstructor::reset):
(WebCore::LegacyHTMLTreeConstructor::setCurrent):
(WebCore::tagPriorityOfNode):
(WebCore::LegacyHTMLTreeConstructor::limitDepth):
(WebCore::LegacyHTMLTreeConstructor::insertNodeAfterLimitDepth):
(WebCore::LegacyHTMLTreeConstructor::parseToken):
(WebCore::LegacyHTMLTreeConstructor::parseDoctypeToken):
(WebCore::isTableSection):
(WebCore::isTablePart):
(WebCore::isTableRelated):
(WebCore::isScopingTag):
(WebCore::LegacyHTMLTreeConstructor::insertNode):
(WebCore::LegacyHTMLTreeConstructor::handleError):
(WebCore::LegacyHTMLTreeConstructor::textCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::commentCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::headCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::bodyCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::framesetCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::formCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::isindexCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::selectCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::ddCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::dtCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::rpCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::rtCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::nestedCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::nestedPCloserCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::nestedStyleCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::tableCellCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::tableSectionCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::noembedCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::noframesCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::noscriptCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::pCloserCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::pCloserStrictCreateErrorCheck):
(WebCore::LegacyHTMLTreeConstructor::mapCreateErrorCheck):
(WebCore::mapTagToFunc):
(WebCore::mapTagsToFunc):
(WebCore::LegacyHTMLTreeConstructor::getNode):
(WebCore::LegacyHTMLTreeConstructor::allowNestedRedundantTag):
(WebCore::LegacyHTMLTreeConstructor::processCloseTag):
(WebCore::LegacyHTMLTreeConstructor::isHeadingTag):
(WebCore::LegacyHTMLTreeConstructor::isInline):
(WebCore::LegacyHTMLTreeConstructor::isResidualStyleTag):
(WebCore::LegacyHTMLTreeConstructor::isAffectedByResidualStyle):
(WebCore::LegacyHTMLTreeConstructor::handleResidualStyleCloseTagAcrossBlocks):
(WebCore::LegacyHTMLTreeConstructor::reopenResidualStyleTags):
(WebCore::LegacyHTMLTreeConstructor::pushBlock):
(WebCore::LegacyHTMLTreeConstructor::popBlock):
(WebCore::LegacyHTMLTreeConstructor::popOneBlockCommon):
(WebCore::LegacyHTMLTreeConstructor::popOneBlock):
(WebCore::LegacyHTMLTreeConstructor::moveOneBlockToStack):
(WebCore::LegacyHTMLTreeConstructor::checkIfHasPElementInScope):
(WebCore::LegacyHTMLTreeConstructor::popInlineBlocks):
(WebCore::LegacyHTMLTreeConstructor::freeBlock):
(WebCore::LegacyHTMLTreeConstructor::createHead):
(WebCore::LegacyHTMLTreeConstructor::handleIsindex):
(WebCore::LegacyHTMLTreeConstructor::startBody):
(WebCore::LegacyHTMLTreeConstructor::finished):
(WebCore::LegacyHTMLTreeConstructor::reportErrorToConsole):
(WebCore::shouldCreateImplicitHead):
(WebCore::serializeForNumberType):
(WebCore::parseToDoubleForNumberType):
* html/LegacyHTMLTreeConstructor.h: Renamed from WebCore/html/HTMLParser.h.
(WebCore::LegacyHTMLTreeConstructor::skipMode):
(WebCore::LegacyHTMLTreeConstructor::isHandlingResidualStyleAcrossBlocks):
(WebCore::LegacyHTMLTreeConstructor::setSkipMode):
(WebCore::LegacyHTMLTreeConstructor::popBlock):
(WebCore::LegacyHTMLTreeConstructor::hasPElementInScope):
(WebCore::LegacyHTMLTreeConstructor::reportError):
(WebCore::LegacyHTMLTreeConstructor::):
(WebCore::shouldCreateImplicitHead):
* html/StepRange.cpp:
* html/ValidityState.cpp:
* rendering/RenderSlider.cpp:
2010-06-13 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Rename m_parser, htmlParser() to m_treeConstructor, htmlTreeConstructor() in preparation for renaming HTMLParser
https://bugs.webkit.org/show_bug.cgi?id=40514
This rename was done by hand. I realize now I should have
renamed HTMLParser to HTMLTreeConstructor before renaming HTMLTokenizer.
No functional changes, thus no tests.
* dom/DocumentParser.h:
(WebCore::DocumentParser::htmlTreeConstructor):
* html/HTML5DocumentParser.cpp:
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::pumpLexerIfPossible):
(WebCore::HTML5DocumentParser::pumpLexer):
(WebCore::HTML5DocumentParser::end):
(WebCore::HTML5DocumentParser::htmlTreeConstructor):
(WebCore::HTML5DocumentParser::isWaitingForScripts):
(WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution):
(WebCore::HTML5DocumentParser::notifyFinished):
(WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets):
* html/HTML5DocumentParser.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
(WebCore::HTML5TreeBuilder::finished):
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::legacyTreeConstructor):
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::scriptHandler):
(WebCore::HTMLDocumentParser::parseTag):
(WebCore::HTMLDocumentParser::end):
(WebCore::HTMLDocumentParser::processToken):
(WebCore::HTMLDocumentParser::processDoctypeToken):
* html/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::htmlTreeConstructor):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
2010-06-13 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Rename tok, asHTMLTokenizer to parser, asHTMLDocumentParser
https://bugs.webkit.org/show_bug.cgi?id=40513
Last set of Tokenizer related renames, also done via do-webcore-rename:
asHTMLTokenizer => asHTMLDocumentParser
tok => parser
No functional changes, thus no tests.
* dom/Document.cpp:
(WebCore::Document::write):
* dom/DocumentParser.h:
(WebCore::DocumentParser::asHTMLDocumentParser):
* html/HTMLDocumentParser.cpp:
(WebCore::parseHTMLDocumentFragment):
* html/HTMLDocumentParser.h:
(WebCore::HTMLDocumentParser::asHTMLDocumentParser):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):
2010-06-13 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Fix the rest of the references to the old Tokenizer class (now DocumentParser)
https://bugs.webkit.org/show_bug.cgi?id=40512
No functional changes, thus no new tests.
This was mostly done by do-webcore-rename:
tokenizer => parser
m_tokenizer => m_parser
createTextTokenizer => createTextDocumentParser
createTokenizer => createParser
getTokenizer => getParser
However had to be careful to avoid renaming things related to
css/tokenizer.flex (which we should later rename to CSSTokenizer.flex)
Still a couple references with "tok" and "asHTMLTokenizer" which I'll
get in the next patch.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isLoaded):
* bindings/v8/ScriptEventListener.cpp:
(WebCore::createAttributeEventListener):
* dom/Document.cpp:
(WebCore::Document::removedLastRef):
(WebCore::Document::~Document):
(WebCore::Document::createParser):
(WebCore::Document::open):
(WebCore::Document::cancelParsing):
(WebCore::Document::implicitOpen):
(WebCore::Document::implicitClose):
(WebCore::Document::write):
(WebCore::Document::finishParsing):
(WebCore::Document::removePendingSheet):
* dom/Document.h:
(WebCore::Document::parser):
* dom/DocumentParser.h:
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
* dom/XMLDocumentParserLibxml2.cpp:
(WebCore::PendingCallbacks::callAndRemoveFirstCallback):
(WebCore::PendingCallbacks::PendingStartElementNSCallback::call):
(WebCore::PendingCallbacks::PendingEndElementNSCallback::call):
(WebCore::PendingCallbacks::PendingCharactersCallback::call):
(WebCore::PendingCallbacks::PendingProcessingInstructionCallback::call):
(WebCore::PendingCallbacks::PendingCDATABlockCallback::call):
(WebCore::PendingCallbacks::PendingCommentCallback::call):
(WebCore::PendingCallbacks::PendingInternalSubsetCallback::call):
(WebCore::PendingCallbacks::):
(WebCore::getParser):
(WebCore::startElementNsHandler):
(WebCore::endElementNsHandler):
(WebCore::charactersHandler):
(WebCore::processingInstructionHandler):
(WebCore::cdataBlockHandler):
(WebCore::commentHandler):
(WebCore::warningHandler):
(WebCore::fatalErrorHandler):
(WebCore::normalErrorHandler):
(WebCore::getEntityHandler):
(WebCore::startDocumentHandler):
(WebCore::endDocumentHandler):
(WebCore::internalSubsetHandler):
(WebCore::externalSubsetHandler):
(WebCore::parseXMLDocumentFragment):
* dom/XMLDocumentParserQt.cpp:
(WebCore::parseXMLDocumentFragment):
* html/HTML5EntityParser.cpp:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createParser):
* html/HTMLDocument.h:
* html/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::write):
(WebCore::HTMLDocumentParser::stopParsing):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::finished):
(WebCore::HTMLParser::reportErrorToConsole):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createParser):
(WebCore::HTMLViewSourceDocument::addLine):
* html/HTMLViewSourceDocument.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::begin):
(WebCore::DocumentWriter::addData):
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::createParser):
* loader/FTPDirectoryDocument.h:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::stop):
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createParser):
* loader/ImageDocument.h:
* loader/MediaDocument.cpp:
(WebCore::MediaDocument::createParser):
* loader/MediaDocument.h:
* loader/PluginDocument.cpp:
(WebCore::PluginDocument::createParser):
* loader/PluginDocument.h:
* loader/SinkDocument.cpp:
(WebCore::SinkDocument::createParser):
* loader/SinkDocument.h:
* loader/TextDocument.cpp:
(WebCore::TextDocument::createParser):
(WebCore::createTextDocumentParser):
* loader/TextDocument.h:
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::reportWarning):
(WebCore::SVGDocumentExtensions::reportError):
* wml/WMLDocument.cpp:
(WebCore::WMLDocument::finishedParsing):
* wml/WMLErrorHandling.cpp:
(WebCore::reportWMLError):
* wml/WMLTemplateElement.cpp:
(WebCore::WMLTemplateElement::registerTemplatesInDocument):
2010-06-13 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: link won't return linked element if URL contains #
https://bugs.webkit.org/show_bug.cgi?id=40192
Test: platform/mac/accessibility/internal-link-when-document-has-fragment.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::internalLinkElement):
2010-06-13 Sam Weinig <sam@webkit.org>
Try and fix the chrome build.
* bindings/scripts/CodeGeneratorV8.pm:
* xml/XMLHttpRequest.idl:
2010-06-13 Sam Weinig <sam@webkit.org>
Reviewed by Anders Carlsson.
Fix for https://bugs.webkit.org/show_bug.cgi?id=40550
XMLHttpRequest constructor object should expose the constants from the IDL.
Test: fast/dom/XMLHttpRequest-constants.html
* Android.jscbindings.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSDOMWindowCustom.cpp:
* bindings/js/JSWorkerContextCustom.cpp:
* bindings/js/JSXMLHttpRequestConstructor.cpp: Removed.
* bindings/js/JSXMLHttpRequestConstructor.h: Removed.
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequestConstructor::constructJSXMLHttpRequest):
* bindings/scripts/CodeGeneratorJS.pm:
* xml/XMLHttpRequest.idl:
2010-06-13 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dan Bernstein.
-webkit-transition font-size and font-family
https://bugs.webkit.org/show_bug.cgi?id=33429
When animating font-size, update the font with a saved
version of the font selector to ensure that we don't clobber
the font family.
Test: transitions/font-family-during-transition.html
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::setBlendedFontSize):
2010-06-13 Tony Chang <tony@chromium.org>
Build fix, not reviewed.
fix chromium compile after r61094 (id attribute refactor)
https://bugs.webkit.org/show_bug.cgi?id=40553
* bindings/v8/custom/V8NamedNodesCollection.cpp:
(WebCore::V8NamedNodesCollection::itemWithName):
2010-06-13 Darin Adler <darin@apple.com>
Reviewed by Alexey Proskuryakov.
Partly done support for alternate ID attributes should be removed
https://bugs.webkit.org/show_bug.cgi?id=39692
Removed the include of "HTMLNames.h" from "Element.h". This prevents
near-world-rebuilds every time you change HTMLTagNames.in.
Renamed the getIDAttribute function in the Element class to
idForStyleResolution, since it returns a value of the id attribute
that has been lowercased as appropriate for style matching, not the
actual value of the attribute. With the old name it was easy to
misuse it in non-style contexts.
Got rid of the idAttributeName function on Element, since it is
easy to use it wrong. Replace it with isIdAttributeName, getIdAttribute,
and setIdAttribute functions, which are a good fit for the needs of
most call sites that were dealing with the id attribute.
Added an idAttributeName function to Document. This is for a future
where a document can have a custom id attribute name specified in its
doctype. It's possible this will be insufficient because the same
document might have XHTML or SVG elements in it, and it's possible
that on those elements we will want the attribute named "id" with
no namespace to still work. We can deal with that when we implement
the actual feature, though. For now, it seems OK to fetch the name
of the id attribute from the document.
* dom/DynamicNodeList.cpp:
(WebCore::DynamicNodeList::itemWithName):
* dom/StaticNodeList.cpp:
(WebCore::StaticNodeList::itemWithName):
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
(WebCore::RenderSVGResourceContainer::idChanged):
* svg/SVGUseElement.cpp:
(WebCore::SVGUseElement::handleDeepUseReferencing):
* svg/animation/SMILTimeContainer.cpp:
(WebCore::SMILTimeContainer::updateAnimations):
Use the new idForStyleResolution function, which is the new name of
the getIDAttribute function. There's a good chance these call sites are
incorrect, which is something we should investigate later, so there's
a FIXME at each call site.
* dom/Document.cpp:
(WebCore::Document::Document): Initialize m_idAttributeName to the
standard id attribute from HTML.
(WebCore::Document::getElementById): Use Element::getIdAttribute.
* dom/Document.h: Added Document::idAttributeName.
* dom/Element.cpp:
(WebCore::Element::setAttribute): Use Document::idAttributeName.
(WebCore::Element::setAttributeMap): Use Element::isIdAttributeName.
(WebCore::Element::insertedIntoDocument): Use Document::idAttributeName.
(WebCore::Element::removedFromDocument): Ditto.
(WebCore::Element::formatForDebugger): Use Element::getIdAttribute.
* dom/Element.h: Added isIdAttributeName, getIdAttribute, setIdAttribute,
idForStyleResolution. Removed rareIDAttributeName.
* dom/ElementRareData.h: Removed m_idAttributeName.
* dom/NamedNodeMap.cpp:
(WebCore::NamedNodeMap::setAttributes): Use Document::idAttributeName.
* dom/NamedNodeMap.h: Renamed id, setID, and m_id to idForStyleResolution,
setIdForStyleResolution, and m_idForStyleResolution since this is not the
value of the id attribute because it gets lowercased for compatibility-mode
documents.
* rendering/RenderIFrame.cpp:
* rendering/RenderLayerCompositor.cpp:
* rendering/RenderProgress.cpp:
Added include of HTMLNames.h now that Element.h no longer includes it.
* editing/SetNodeAttributeCommand.h:
* editing/markup.cpp:
* html/HTMLParser.cpp:
Removed unneeded includes.
* html/HTMLParser.h: Sorted includes.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::matchRules): Use idForStyleResolution.
(WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): Use idForStyleResolution.
* dom/Attr.cpp:
(WebCore::Attr::isId): Use Document::idAttributeName.
* dom/StyledElement.cpp:
(WebCore::StyledElement::parseMappedAttribute): Use isIdAttributeName,
and setIdForStyleResolution.
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI): Use setIdAttribute.
* editing/EditorCommand.cpp:
(WebCore::executeInsertHorizontalRule): Ditto.
* html/HTMLAppletElement.cpp:
(WebCore::HTMLAppletElement::parseMappedAttribute): Use isIdAttributeName.
(WebCore::HTMLAppletElement::createRenderer): Use getIdAttribute.
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::checkForNameMatch): Use getIdAttribute.
(WebCore::HTMLCollection::updateNameCache): Use getIdAttribute.
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::ensureColumn): Use getIdAttribute.
(WebCore::HTMLDataGridColElement::parseMappedAttribute): Use isIdAttributeName.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute): Use isIdAttributeName.
* html/HTMLFormCollection.cpp:
(WebCore::HTMLFormCollection::nextNamedItem): Added missing braces.
(WebCore::HTMLFormCollection::updateNameCache): Use getIdAttribute.
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::parseMappedAttribute): Use isIdAttributeName.
(WebCore::HTMLFrameElementBase::setName): Use getIdAttribute.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseMappedAttribute): Use isIdAttributeName.
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::parseMappedAttribute): Use isIdAttributeName.
Also restructured the function a bit to make its structure clearer and added
a comment pointing out that it can't be quite right.
* html/HTMLNameCollection.cpp:
(WebCore::HTMLNameCollection::itemAfter): Use getIdAttribute.
* html/HTMLObjectElement.cpp:
(WebCore::HTMLObjectElement::parseMappedAttribute): Use isIdAttributeName.
* html/HTMLParamElement.cpp:
(WebCore::HTMLParamElement::parseMappedAttribute): Use isIdAttributeName.
* loader/CachedFont.cpp:
(WebCore::CachedFont::getSVGFontById): Use getIdAttribute.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::nameForLayer): Use getIdAttribute.
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGPaintingResource): Use getIdAttribute.
(WebCore::writeSVGResourceContainer): Ditto.
* svg/SVGElement.cpp:
(WebCore::SVGElement::insertedIntoDocument): Use getIdAttribute.
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::isKnownAttribute): Use isIdAttributeName.
(WebCore::SVGStyledElement::svgAttributeChanged): Use isIdAttributeName.
* wml/WMLElement.cpp:
(WebCore::WMLElement::parseMappedAttribute): Use isIdAttributeName.
2010-06-13 Dan Bernstein <mitz@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8087385> REGRESSION (r60974): Continuous wheel scrolling is too fast in list boxes and in Safari Reader
https://bugs.webkit.org/show_bug.cgi?id=40537
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent): Only multiply by pixelsPerLineStep() if the
event is not continuous, as was before r56012.
2010-06-13 Andras Becsi <abecsi@webkit.org>
Reviewed by Darin Adler.
Centralize the gperf code generation commands into make-hash-tools.pl
to avoid redundancy across multiple build systems.
Do this in preparation of refactoring the usage of these generated
sources to fix the debug linking error on Linux with gcc >= 4.4.0.
webkit.org/b/29244
No functionality change, so no new tests needed.
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/rule_gperf.py: Removed.
* WebCore.pri:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSParser.cpp:
(WebCore::cssPropertyID):
(WebCore::cssValueKeywordID):
* css/makeprop.pl:
* css/makevalues.pl:
* html/DocTypeStrings.gperf:
* html/HTML5EntityParser.cpp:
* html/HTMLDocumentParser.cpp:
* html/HTMLEntityNames.gperf:
* html/PreloadScanner.cpp:
* make-hash-tools.pl: Added.
* platform/ColorData.gperf:
* platform/graphics/Color.cpp:
2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] tests/hybridPixmap fails
https://bugs.webkit.org/show_bug.cgi?id=37316
The problem was that JSC::Instance::createRuntimeObject was never called.
This is fixed by overloading newRuntimeObject and calling Instance::createRuntimeObject
in between, instead of creating the runtime object directly inside the static function
QtPixmapInstance::createRuntimeObject, which had to be renamed as to not overshadow the virtual function.
This fixes an existing test, tests/hybridPixmap
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapInstance::newRuntimeObject):
(JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):
* bridge/qt/qt_pixmapruntime.h:
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::convertQVariantToValue):
2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Darin Adler.
GraphicsContext3D.h in the Qt port includes too many unnecessary files
https://bugs.webkit.org/show_bug.cgi?id=40536
Removed unncessary includes.
No new tests; Compilation improvement.
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/qt/GraphicsContext3DQt.cpp:
2010-06-13 Noam Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Eric Seidel.
[Qt] GraphicsLayer: recaching images creates an unnecessary deep copy
https://bugs.webkit.org/show_bug.cgi?id=40535
Made sure the painter ends its operation before copying the pixmap.
No new tests: this is an optimization.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::recache):
2010-06-13 Clemmitt Sigler <cmsigler@gmail.com>
Reviewed by Eric Seidel.
Patch to fix missing references to RenderMathMLRoot,
RenderMathMLSquareRoot when building GtkLauncher.
https://bugs.webkit.org/show_bug.cgi?id=40326
No change in functionality so no new tests.
* GNUmakefile.am:
2010-06-12 Brian Weinstein <bweinstein@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=40538
Some machines have started to see the return of the dreaded: WebCore.lib : fatal error LNK1106: invalid
file or disk full. Since we don't have the hotfix for VS2005, work around this in the meantime
by creating an EditingAllInOne file, that includes all of the cpp files in the editing subdirectory.
* WebCore.vcproj/WebCore.vcproj: Prevnt the editing cpp from building, so we only compile EditingAllInOne.
* editing/EditingAllInOne.cpp: Added. Includes all of the editing cpp files.
2010-06-12 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61031.
http://trac.webkit.org/changeset/61031
https://bugs.webkit.org/show_bug.cgi?id=40539
Crashes Dromaeo jslib test in Release Chromium (Requested by
dimich_ on #webkit).
* bindings/v8/V8Binding.cpp:
(WebCore::v8ExternalString):
* bindings/v8/V8Binding.h:
2010-06-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Rename the last few *Tokenizer classes (which don't have their own files) to *DocumentParser
https://bugs.webkit.org/show_bug.cgi?id=40508
This was a very simple do-webcore-rename-generated patch.
PluginTokenizer => PluginDocumentParser
TextTokenizer => TextDocumentParser
SinkTokenizer => SinkDocumentParser
MediaTokenizer => MediaDocumentParser
FTPDirectoryTokenizer => FTPDirectoryDocumentParser
No functional changes, thus no tests.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createTokenizer):
* html/HTMLViewSourceDocument.h:
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocumentParser::FTPDirectoryDocumentParser):
(WebCore::FTPDirectoryDocumentParser::appendEntry):
(WebCore::FTPDirectoryDocumentParser::createTDForFilename):
(WebCore::FTPDirectoryDocumentParser::parseAndAppendOneLine):
(WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
(WebCore::FTPDirectoryDocumentParser::createBasicDocument):
(WebCore::FTPDirectoryDocumentParser::write):
(WebCore::FTPDirectoryDocumentParser::finish):
(WebCore::FTPDirectoryDocument::createTokenizer):
* loader/MediaDocument.cpp:
(WebCore::MediaDocumentParser::MediaDocumentParser):
(WebCore::MediaDocumentParser::write):
(WebCore::MediaDocumentParser::createDocumentStructure):
(WebCore::MediaDocumentParser::writeRawData):
(WebCore::MediaDocumentParser::finish):
(WebCore::MediaDocumentParser::isWaitingForScripts):
(WebCore::MediaDocument::createTokenizer):
* loader/PluginDocument.cpp:
(WebCore::PluginDocumentParser::PluginDocumentParser):
(WebCore::PluginDocumentParser::pluginWidgetFromDocument):
(WebCore::PluginDocumentParser::write):
(WebCore::PluginDocumentParser::createDocumentStructure):
(WebCore::PluginDocumentParser::writeRawData):
(WebCore::PluginDocumentParser::finish):
(WebCore::PluginDocumentParser::isWaitingForScripts):
(WebCore::PluginDocument::createTokenizer):
(WebCore::PluginDocument::pluginWidget):
* loader/SinkDocument.cpp:
(WebCore::SinkDocumentParser::SinkDocumentParser):
(WebCore::SinkDocumentParser::finish):
(WebCore::SinkDocument::createTokenizer):
* loader/TextDocument.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):
(WebCore::TextDocumentParser::~TextDocumentParser):
(WebCore::TextDocumentParser::write):
(WebCore::TextDocumentParser::finish):
(WebCore::TextDocumentParser::isWaitingForScripts):
(WebCore::TextDocument::createTokenizer):
(WebCore::createTextTokenizer):
2010-06-12 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] EventHandlerQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=40259
Coding style change only.
* page/qt/EventHandlerQt.cpp:
(WebCore::EventHandler::eventActivatedView):
2010-06-12 Kwang Yul Seo <skyul@company100.net>
Reviewed by Darin Adler.
Unify fileSystemRepresentation and filenameFromString
https://bugs.webkit.org/show_bug.cgi?id=40201
Remove filenameFromString and use fileSystemRepresentation instead
as they do the same job.
* platform/FileSystem.cpp: Removed.
* platform/FileSystem.h:
* platform/efl/FileSystemEfl.cpp:
(WebCore::fileSystemRepresentation):
* platform/gtk/FileChooserGtk.cpp:
(WebCore::FileChooser::basenameForWidth):
* platform/gtk/FileSystemGtk.cpp:
(WebCore::fileSystemRepresentation):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileSize):
(WebCore::getFileModificationTime):
(WebCore::makeAllDirectories):
(WebCore::pathGetFileName):
(WebCore::directoryName):
(WebCore::listDirectory):
* platform/gtk/SharedBufferGtk.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::startHttp):
* platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
2010-06-12 Patrick Gansterer <paroga@paroga.com>
Reviewed by Eric Seidel.
[Haiku] Cleanup SharedBuffer::createWithContentsOfFile
https://bugs.webkit.org/show_bug.cgi?id=39003
* platform/haiku/SharedBufferHaiku.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
2010-06-12 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] WheelEventQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39760
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2010-06-12 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Don't include POSIX headers in WebCorePrefix.h
https://bugs.webkit.org/show_bug.cgi?id=39411
When building for BREW MP, don't include POSIX headers:
<fcntl.h>, <pthread.h> and <sys/types.h>.
* WebCorePrefix.h:
2010-06-11 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Rename the rest of the *Tokenizer classes to *DocumentParser
https://bugs.webkit.org/show_bug.cgi?id=40507
This search/replace was done by do-webcore-rename.
Just looking for a rubber stamp.
XMLTokenizer => XMLDocumentParser
XMLTokenizerLibxml2 => XMLDocumentParserLibxml2
XMLTokenizerQt => XMLDocumentParserQt
XMLTokenizerScope => XMLDocumentParserScope
HTML5Tokenizer => HTML5DocumentParser
HTMLTokenizer => HTMLDocumentParser
No functional change, thus no tests.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::checkLoaded):
* dom/Document.cpp:
(WebCore::Document::createTokenizer):
(WebCore::Document::write):
* dom/Document.h:
(WebCore::Document::setXMLEncoding):
* dom/DocumentParser.h:
(WebCore::DocumentParser::asHTMLTokenizer):
* dom/Element.cpp:
* dom/ProcessingInstruction.cpp:
* dom/XMLDocumentParser.cpp: Added.
(WebCore::XMLDocumentParser::isWMLDocument):
(WebCore::XMLDocumentParser::pushCurrentNode):
(WebCore::XMLDocumentParser::popCurrentNode):
(WebCore::XMLDocumentParser::clearCurrentNodeStack):
(WebCore::XMLDocumentParser::write):
(WebCore::XMLDocumentParser::handleError):
(WebCore::XMLDocumentParser::enterText):
(WebCore::toString):
(WebCore::XMLDocumentParser::exitText):
(WebCore::XMLDocumentParser::end):
(WebCore::XMLDocumentParser::finish):
(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLDocumentParser::insertErrorMessageBlock):
(WebCore::XMLDocumentParser::notifyFinished):
(WebCore::XMLDocumentParser::isWaitingForScripts):
(WebCore::XMLDocumentParser::pauseParsing):
* dom/XMLDocumentParser.h: Added.
(WebCore::XMLParserContext::context):
(WebCore::XMLParserContext::XMLParserContext):
(WebCore::XMLDocumentParser::):
(WebCore::XMLDocumentParser::setIsXHTMLDocument):
(WebCore::XMLDocumentParser::isXHTMLDocument):
(WebCore::XMLDocumentParser::setIsXHTMLMPDocument):
(WebCore::XMLDocumentParser::isXHTMLMPDocument):
(WebCore::XMLDocumentParser::wellFormed):
(WebCore::XMLDocumentParser::context):
* dom/XMLDocumentParserLibxml2.cpp: Added.
(WebCore::PendingCallbacks::~PendingCallbacks):
(WebCore::PendingCallbacks::appendStartElementNSCallback):
(WebCore::PendingCallbacks::appendEndElementNSCallback):
(WebCore::PendingCallbacks::appendCharactersCallback):
(WebCore::PendingCallbacks::appendProcessingInstructionCallback):
(WebCore::PendingCallbacks::appendCDATABlockCallback):
(WebCore::PendingCallbacks::appendCommentCallback):
(WebCore::PendingCallbacks::appendInternalSubsetCallback):
(WebCore::PendingCallbacks::appendErrorCallback):
(WebCore::PendingCallbacks::callAndRemoveFirstCallback):
(WebCore::PendingCallbacks::isEmpty):
(WebCore::PendingCallbacks::PendingCallback::~PendingCallback):
(WebCore::PendingCallbacks::PendingStartElementNSCallback::~PendingStartElementNSCallback):
(WebCore::PendingCallbacks::PendingStartElementNSCallback::call):
(WebCore::PendingCallbacks::PendingEndElementNSCallback::call):
(WebCore::PendingCallbacks::PendingCharactersCallback::~PendingCharactersCallback):
(WebCore::PendingCallbacks::PendingCharactersCallback::call):
(WebCore::PendingCallbacks::PendingProcessingInstructionCallback::~PendingProcessingInstructionCallback):
(WebCore::PendingCallbacks::PendingProcessingInstructionCallback::call):
(WebCore::PendingCallbacks::PendingCDATABlockCallback::~PendingCDATABlockCallback):
(WebCore::PendingCallbacks::PendingCDATABlockCallback::call):
(WebCore::PendingCallbacks::PendingCommentCallback::~PendingCommentCallback):
(WebCore::PendingCallbacks::PendingCommentCallback::call):
(WebCore::PendingCallbacks::PendingInternalSubsetCallback::~PendingInternalSubsetCallback):
(WebCore::PendingCallbacks::PendingInternalSubsetCallback::call):
(WebCore::PendingCallbacks::):
(WebCore::matchFunc):
(WebCore::OffsetBuffer::OffsetBuffer):
(WebCore::OffsetBuffer::readOutBytes):
(WebCore::shouldAllowExternalLoad):
(WebCore::openFunc):
(WebCore::readFunc):
(WebCore::writeFunc):
(WebCore::closeFunc):
(WebCore::errorFunc):
(WebCore::XMLParserContext::createStringParser):
(WebCore::XMLParserContext::createMemoryParser):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLParserContext::~XMLParserContext):
(WebCore::XMLDocumentParser::~XMLDocumentParser):
(WebCore::XMLDocumentParser::doWrite):
(WebCore::toString):
(WebCore::handleElementNamespaces):
(WebCore::handleElementAttributes):
(WebCore::XMLDocumentParser::startElementNs):
(WebCore::XMLDocumentParser::endElementNs):
(WebCore::XMLDocumentParser::characters):
(WebCore::XMLDocumentParser::error):
(WebCore::XMLDocumentParser::processingInstruction):
(WebCore::XMLDocumentParser::cdataBlock):
(WebCore::XMLDocumentParser::comment):
(WebCore::XMLDocumentParser::startDocument):
(WebCore::XMLDocumentParser::endDocument):
(WebCore::XMLDocumentParser::internalSubset):
(WebCore::getTokenizer):
(WebCore::hackAroundLibXMLEntityBug):
(WebCore::startElementNsHandler):
(WebCore::endElementNsHandler):
(WebCore::charactersHandler):
(WebCore::processingInstructionHandler):
(WebCore::cdataBlockHandler):
(WebCore::commentHandler):
(WebCore::warningHandler):
(WebCore::fatalErrorHandler):
(WebCore::normalErrorHandler):
(WebCore::):
(WebCore::sharedXHTMLEntity):
(WebCore::getXHTMLEntity):
(WebCore::getEntityHandler):
(WebCore::startDocumentHandler):
(WebCore::endDocumentHandler):
(WebCore::internalSubsetHandler):
(WebCore::externalSubsetHandler):
(WebCore::ignorableWhitespaceHandler):
(WebCore::XMLDocumentParser::initializeParserContext):
(WebCore::XMLDocumentParser::doEnd):
(WebCore::xmlDocPtrForString):
(WebCore::XMLDocumentParser::lineNumber):
(WebCore::XMLDocumentParser::columnNumber):
(WebCore::XMLDocumentParser::stopParsing):
(WebCore::XMLDocumentParser::resumeParsing):
(WebCore::parseXMLDocumentFragment):
(WebCore::attributesStartElementNsHandler):
(WebCore::parseAttributes):
* dom/XMLDocumentParserQt.cpp: Added.
(WebCore::EntityResolver::resolveUndeclaredEntity):
(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::XMLDocumentParser::~XMLDocumentParser):
(WebCore::XMLDocumentParser::doWrite):
(WebCore::XMLDocumentParser::initializeParserContext):
(WebCore::XMLDocumentParser::doEnd):
(WebCore::XMLDocumentParser::lineNumber):
(WebCore::XMLDocumentParser::columnNumber):
(WebCore::XMLDocumentParser::stopParsing):
(WebCore::XMLDocumentParser::resumeParsing):
(WebCore::parseXMLDocumentFragment):
(WebCore::attributesStartElementNsHandler):
(WebCore::parseAttributes):
(WebCore::prefixFromQName):
(WebCore::handleElementNamespaces):
(WebCore::handleElementAttributes):
(WebCore::XMLDocumentParser::parse):
(WebCore::XMLDocumentParser::startDocument):
(WebCore::XMLDocumentParser::parseStartElement):
(WebCore::XMLDocumentParser::parseEndElement):
(WebCore::XMLDocumentParser::parseCharacters):
(WebCore::XMLDocumentParser::parseProcessingInstruction):
(WebCore::XMLDocumentParser::parseCdata):
(WebCore::XMLDocumentParser::parseComment):
(WebCore::XMLDocumentParser::endDocument):
(WebCore::XMLDocumentParser::hasError):
(WebCore::XMLDocumentParser::parseDtd):
* dom/XMLDocumentParserScope.cpp: Added.
(WebCore::XMLDocumentParserScope::XMLDocumentParserScope):
(WebCore::XMLDocumentParserScope::~XMLDocumentParserScope):
* dom/XMLDocumentParserScope.h: Added.
* dom/XMLTokenizer.cpp: Removed.
* dom/XMLTokenizer.h: Removed.
* dom/XMLTokenizerLibxml2.cpp: Removed.
* dom/XMLTokenizerQt.cpp: Removed.
* dom/XMLTokenizerScope.cpp: Removed.
* dom/XMLTokenizerScope.h: Removed.
* html/HTML5DocumentParser.cpp: Added.
(WebCore::):
(WebCore::HTML5DocumentParser::HTML5DocumentParser):
(WebCore::HTML5DocumentParser::~HTML5DocumentParser):
(WebCore::HTML5DocumentParser::begin):
(WebCore::HTML5DocumentParser::pumpLexerIfPossible):
(WebCore::HTML5DocumentParser::pumpLexer):
(WebCore::HTML5DocumentParser::write):
(WebCore::HTML5DocumentParser::end):
(WebCore::HTML5DocumentParser::attemptToEnd):
(WebCore::HTML5DocumentParser::endIfDelayed):
(WebCore::HTML5DocumentParser::finish):
(WebCore::HTML5DocumentParser::executingScript):
(WebCore::HTML5DocumentParser::lineNumber):
(WebCore::HTML5DocumentParser::columnNumber):
(WebCore::HTML5DocumentParser::htmlParser):
(WebCore::HTML5DocumentParser::isWaitingForScripts):
(WebCore::HTML5DocumentParser::resumeParsingAfterScriptExecution):
(WebCore::HTML5DocumentParser::watchForLoad):
(WebCore::HTML5DocumentParser::stopWatchingForLoad):
(WebCore::HTML5DocumentParser::shouldLoadExternalScriptFromSrc):
(WebCore::HTML5DocumentParser::executeScript):
(WebCore::HTML5DocumentParser::notifyFinished):
(WebCore::HTML5DocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::HTML5DocumentParser::script):
* html/HTML5DocumentParser.h: Added.
(WebCore::HTML5DocumentParser::InputStream::InputStream):
(WebCore::HTML5DocumentParser::InputStream::appendToEnd):
(WebCore::HTML5DocumentParser::InputStream::insertAtCurrentInsertionPoint):
(WebCore::HTML5DocumentParser::InputStream::close):
(WebCore::HTML5DocumentParser::InputStream::current):
(WebCore::HTML5DocumentParser::InputStream::splitInto):
(WebCore::HTML5DocumentParser::InputStream::mergeFrom):
(WebCore::HTML5DocumentParser::InsertionPointRecord::InsertionPointRecord):
(WebCore::HTML5DocumentParser::InsertionPointRecord::~InsertionPointRecord):
(WebCore::HTML5DocumentParser::inWrite):
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::columnNumber):
* html/HTML5Tokenizer.cpp: Removed.
* html/HTML5Tokenizer.h: Removed.
* html/HTML5TreeBuilder.cpp:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createTokenizer):
* html/HTMLDocumentParser.cpp: Added.
(WebCore::):
(WebCore::fixUpChar):
(WebCore::tagMatch):
(WebCore::Token::addAttribute):
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::reset):
(WebCore::HTMLDocumentParser::begin):
(WebCore::HTMLDocumentParser::setForceSynchronous):
(WebCore::HTMLDocumentParser::processListing):
(WebCore::HTMLDocumentParser::parseNonHTMLText):
(WebCore::HTMLDocumentParser::scriptHandler):
(WebCore::HTMLDocumentParser::scriptExecution):
(WebCore::HTMLDocumentParser::parseComment):
(WebCore::HTMLDocumentParser::parseServer):
(WebCore::HTMLDocumentParser::parseProcessingInstruction):
(WebCore::HTMLDocumentParser::parseText):
(WebCore::HTMLDocumentParser::parseEntity):
(WebCore::HTMLDocumentParser::parseDoctype):
(WebCore::HTMLDocumentParser::parseTag):
(WebCore::HTMLDocumentParser::continueProcessing):
(WebCore::HTMLDocumentParser::advance):
(WebCore::HTMLDocumentParser::willWriteHTML):
(WebCore::HTMLDocumentParser::didWriteHTML):
(WebCore::HTMLDocumentParser::write):
(WebCore::HTMLDocumentParser::stopParsing):
(WebCore::HTMLDocumentParser::processingData):
(WebCore::HTMLDocumentParser::timerFired):
(WebCore::HTMLDocumentParser::end):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::processToken):
(WebCore::HTMLDocumentParser::processDoctypeToken):
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::enlargeBuffer):
(WebCore::HTMLDocumentParser::enlargeScriptBuffer):
(WebCore::HTMLDocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::HTMLDocumentParser::notifyFinished):
(WebCore::HTMLDocumentParser::executeExternalScriptsIfReady):
(WebCore::HTMLDocumentParser::executeExternalScriptsTimerFired):
(WebCore::HTMLDocumentParser::continueExecutingExternalScripts):
(WebCore::HTMLDocumentParser::isWaitingForScripts):
(WebCore::HTMLDocumentParser::setSrc):
(WebCore::parseHTMLDocumentFragment):
(WebCore::decodeNamedEntity):
* html/HTMLDocumentParser.h: Added.
(WebCore::Token::Token):
(WebCore::Token::~Token):
(WebCore::Token::isOpenTag):
(WebCore::Token::isCloseTag):
(WebCore::Token::reset):
(WebCore::Token::addViewSourceChar):
(WebCore::):
(WebCore::DoctypeToken::DoctypeToken):
(WebCore::DoctypeToken::reset):
(WebCore::DoctypeToken::state):
(WebCore::DoctypeToken::setState):
(WebCore::HTMLDocumentParser::forceSynchronous):
(WebCore::HTMLDocumentParser::executingScript):
(WebCore::HTMLDocumentParser::lineNumber):
(WebCore::HTMLDocumentParser::columnNumber):
(WebCore::HTMLDocumentParser::processingContentWrittenByScript):
(WebCore::HTMLDocumentParser::htmlParser):
(WebCore::HTMLDocumentParser::asHTMLTokenizer):
(WebCore::HTMLDocumentParser::checkBuffer):
(WebCore::HTMLDocumentParser::checkScriptBuffer):
(WebCore::HTMLDocumentParser::):
(WebCore::HTMLDocumentParser::State::State):
(WebCore::HTMLDocumentParser::State::tagState):
(WebCore::HTMLDocumentParser::State::setTagState):
(WebCore::HTMLDocumentParser::State::entityState):
(WebCore::HTMLDocumentParser::State::setEntityState):
(WebCore::HTMLDocumentParser::State::inScript):
(WebCore::HTMLDocumentParser::State::setInScript):
(WebCore::HTMLDocumentParser::State::inStyle):
(WebCore::HTMLDocumentParser::State::setInStyle):
(WebCore::HTMLDocumentParser::State::inXmp):
(WebCore::HTMLDocumentParser::State::setInXmp):
(WebCore::HTMLDocumentParser::State::inTitle):
(WebCore::HTMLDocumentParser::State::setInTitle):
(WebCore::HTMLDocumentParser::State::inIFrame):
(WebCore::HTMLDocumentParser::State::setInIFrame):
(WebCore::HTMLDocumentParser::State::inPlainText):
(WebCore::HTMLDocumentParser::State::setInPlainText):
(WebCore::HTMLDocumentParser::State::inProcessingInstruction):
(WebCore::HTMLDocumentParser::State::setInProcessingInstruction):
(WebCore::HTMLDocumentParser::State::inComment):
(WebCore::HTMLDocumentParser::State::setInComment):
(WebCore::HTMLDocumentParser::State::inDoctype):
(WebCore::HTMLDocumentParser::State::setInDoctype):
(WebCore::HTMLDocumentParser::State::inTextArea):
(WebCore::HTMLDocumentParser::State::setInTextArea):
(WebCore::HTMLDocumentParser::State::escaped):
(WebCore::HTMLDocumentParser::State::setEscaped):
(WebCore::HTMLDocumentParser::State::inServer):
(WebCore::HTMLDocumentParser::State::setInServer):
(WebCore::HTMLDocumentParser::State::skipLF):
(WebCore::HTMLDocumentParser::State::setSkipLF):
(WebCore::HTMLDocumentParser::State::startTag):
(WebCore::HTMLDocumentParser::State::setStartTag):
(WebCore::HTMLDocumentParser::State::discardLF):
(WebCore::HTMLDocumentParser::State::setDiscardLF):
(WebCore::HTMLDocumentParser::State::allowYield):
(WebCore::HTMLDocumentParser::State::setAllowYield):
(WebCore::HTMLDocumentParser::State::loadingExtScript):
(WebCore::HTMLDocumentParser::State::setLoadingExtScript):
(WebCore::HTMLDocumentParser::State::forceSynchronous):
(WebCore::HTMLDocumentParser::State::setForceSynchronous):
(WebCore::HTMLDocumentParser::State::inAnyNonHTMLText):
(WebCore::HTMLDocumentParser::State::hasTagState):
(WebCore::HTMLDocumentParser::State::hasEntityState):
(WebCore::HTMLDocumentParser::State::needsSpecialWriteHandling):
(WebCore::HTMLDocumentParser::State::):
(WebCore::HTMLDocumentParser::State::setBit):
(WebCore::HTMLDocumentParser::State::testBit):
* html/HTMLElement.cpp:
* html/HTMLFormControlElement.cpp:
* html/HTMLParser.cpp:
(WebCore::HTMLParser::reportErrorToConsole):
* html/HTMLParser.h:
* html/HTMLTokenizer.cpp: Removed.
* html/HTMLTokenizer.h: Removed.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createTokenizer):
(WebCore::HTMLViewSourceDocument::addViewSourceToken):
* html/HTMLViewSourceDocument.h:
* loader/DocumentLoader.cpp:
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryTokenizer::FTPDirectoryTokenizer):
(WebCore::FTPDirectoryTokenizer::loadDocumentTemplate):
(WebCore::FTPDirectoryTokenizer::finish):
* loader/FrameLoader.cpp:
* loader/ImageDocument.cpp:
* loader/MediaDocument.cpp:
* loader/PluginDocument.cpp:
* loader/TextDocument.cpp:
* page/XSSAuditor.h:
* svg/SVGDocumentExtensions.cpp:
* wml/WMLErrorHandling.cpp:
(WebCore::reportWMLError):
* xml/XSLStyleSheetLibxslt.cpp:
(WebCore::XSLStyleSheet::parseString):
* xml/XSLTProcessor.cpp:
* xml/XSLTProcessorLibxslt.cpp:
2010-06-12 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Window object should have CanvasGradient and CanvasPattern
https://bugs.webkit.org/show_bug.cgi?id=40394
This fixes the following tests:
- canvas/philip/tests/2d.gradient.object.return.html
- canvas/philip/tests/2d.pattern.basic.type.html
* html/canvas/CanvasGradient.idl:
* html/canvas/CanvasPattern.idl:
* page/DOMWindow.idl:
2010-06-12 Dan Bernstein <mitz@apple.com>
Reviewed by Oliver Hunt.
<rdar://problem/8025267> REGRESSION (Safari 4-TOT): Crash when a frame’s resize handler removes the frame
https://bugs.webkit.org/show_bug.cgi?id=40534
Test: fast/replaced/frame-removed-during-resize.html
* rendering/RenderWidget.cpp:
(WebCore::RenderWidget::updateWidgetPosition): Null-check m_widget, since resizing the widget
may trigger an iframe’s resize handler, which may destroy the widget.
2010-06-12 Dean Jackson <dino@apple.com>
Reviewed by Darin Adler.
Animation keyframe timing functions are applying incorrectly
https://bugs.webkit.org/show_bug.cgi?id=38963
When copying RenderStyles, we have to clone the AnimationList so that each keyframe
can have its own timing function.
Tests: animations/keyframe-timing-functions-transform.html
animations/keyframe-timing-functions2.html
* platform/animation/Animation.h:
(WebCore::Animation::create):
* platform/animation/AnimationList.cpp:
(WebCore::AnimationList::AnimationList):
* platform/animation/AnimationList.h:
(WebCore::AnimationList::AnimationList):
2010-06-12 Dan Bernstein <mitz@apple.com>
Reviewed by Dave Hyatt.
<rdar://problem/7882140> -webkit-column-break-* properties don’t do anything
https://bugs.webkit.org/show_bug.cgi?id=40531
Test: fast/multicol/break-properties.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren): Check for -webkit-column-break-{before,after}: always
and -webkit-column-break-inside: avoid when doing column layout.
2010-06-13 Robert Hogan <robert@webkit.org>
Reviewed by Alexey Proskuryakov.
FrameLoader::clear() clears JS objects that cached pages later rely on
https://bugs.webkit.org/show_bug.cgi?id=37725
https://bugs.webkit.org/show_bug.cgi?id=31626
Fix the following tests for Qt:
fast/events/pageshow-pagehide-on-back-cached.html
fast/events/pageshow-pagehide-on-back-cached-with-frames.html
fast/loader/input-element-page-cache-crash.html
fast/dom/Window/timer-resume-on-navigation-back.html
loader/go-back-to-different-window-size.html
fast/dom/javascript-url-crash-function.html
fast/dom/location-new-window-no-crash.html
http/tests/security/javascriptURL/xss-ALLOWED-from-javascript-url-window-open.html
which currently fail because the page's Qt-bindings runtime objects are
cleared when navigating away from the page containing them.
Track Qt-bindings objects in a separate ScriptController::cacheableRootBindingObject().
RuntimeObjects tracked by this root object will not get invalidated on page navigations,
so they will still be available when the pages containing them are retrieved from the
b/f cache.
This means the Qt bindings objects will only get cleared on Frame::pageDestroyed().
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::cacheableBindingRootObject):
* bindings/js/ScriptController.h:
2010-06-12 Kent Tamura <tkent@chromium.org>
Reviewed by Darin Adler.
REGRESSION: Can't submit a form with <input type=radio required>
https://bugs.webkit.org/show_bug.cgi?id=40429
Validity state was not updated correctly for radio buttons, and it
prevents form submission even if a radio button group has a
checked radio button.
Test: fast/forms/interactive-validation-required-radio.html
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateCheckedRadioButtons):
Call setNeedsValidityCheck() for all of radio buttons in the same group
to update validity state.
(WebCore::HTMLInputElement::setChecked):
Remove setNeedsValidityCheck() call because it is called in
updateCheckedRadioButtons().
2010-06-12 Kent Tamura <tkent@chromium.org>
Reviewed by Dimitri Glazkov.
Disable interactive form validation in non-strict modes
https://bugs.webkit.org/show_bug.cgi?id=40218
The interactive validation feature of HTML5 is not compatible with
HTML4, and users and page authors don't expect existing sites work
differently in WebKit. For example, maxlength and required attributes
in existing sites unexpectedly prevented form submission.
So, we disable the interactive validation feature in non-strict
modes to improve compatibility.
Test: fast/forms/interactive-validation-compat-mode.html
fast/forms/interactive-validation-html4.html
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
Process interactive validation only in the strict mode.
2010-06-12 Eric Seidel <eric@webkit.org>
Reviewed by David Levin.
Rename Tokenizer to DocumentParser to match what it actually does
https://bugs.webkit.org/show_bug.cgi?id=40504
The rename was entirely done by do-webcore-rename.
The only manual changes were removing out-dated comments
and fixing Tokenizer_h to DocumentParser_h in the header guards.
I'll do all the rest of the renames (like the tokenizer subclasses
and the tokenizer() createTokenizer() methods) in separate changes.
No functional change, thus no tests.
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSHTMLDocumentCustom.cpp:
* bindings/v8/ScriptEventListener.cpp:
* dom/Document.cpp:
(WebCore::Document::createTokenizer):
* dom/Document.h:
(WebCore::Document::tokenizer):
* dom/DocumentParser.h: Added.
(WebCore::DocumentParser::~DocumentParser):
(WebCore::DocumentParser::stopParsing):
(WebCore::DocumentParser::processingData):
(WebCore::DocumentParser::executingScript):
(WebCore::DocumentParser::wantsRawData):
(WebCore::DocumentParser::writeRawData):
(WebCore::DocumentParser::inViewSourceMode):
(WebCore::DocumentParser::setInViewSourceMode):
(WebCore::DocumentParser::wellFormed):
(WebCore::DocumentParser::lineNumber):
(WebCore::DocumentParser::columnNumber):
(WebCore::DocumentParser::executeScriptsWaitingForStylesheets):
(WebCore::DocumentParser::htmlParser):
(WebCore::DocumentParser::asHTMLTokenizer):
(WebCore::DocumentParser::xssAuditor):
(WebCore::DocumentParser::setXSSAuditor):
(WebCore::DocumentParser::DocumentParser):
* dom/Tokenizer.h: Removed.
* dom/ViewportArguments.cpp:
(WebCore::reportViewportWarning):
* dom/XMLTokenizer.h:
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::XMLTokenizer::stopParsing):
* dom/XMLTokenizerQt.cpp:
(WebCore::XMLTokenizer::stopParsing):
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::HTML5Tokenizer):
* html/HTML5Tokenizer.h:
* html/HTMLDocument.cpp:
(WebCore::HTMLDocument::createTokenizer):
* html/HTMLDocument.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::stopParsing):
* html/HTMLTokenizer.h:
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createTokenizer):
* html/HTMLViewSourceDocument.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::addData):
* loader/FTPDirectoryDocument.cpp:
(WebCore::FTPDirectoryDocument::createTokenizer):
* loader/FTPDirectoryDocument.h:
* loader/ImageDocument.cpp:
(WebCore::ImageDocument::createTokenizer):
* loader/ImageDocument.h:
* loader/MediaDocument.cpp:
(WebCore::MediaDocument::createTokenizer):
* loader/MediaDocument.h:
* loader/PluginDocument.cpp:
(WebCore::PluginDocument::createTokenizer):
* loader/PluginDocument.h:
* loader/SinkDocument.cpp:
(WebCore::SinkDocument::createTokenizer):
* loader/SinkDocument.h:
* loader/TextDocument.cpp:
(WebCore::TextTokenizer::TextTokenizer):
(WebCore::TextDocument::createTokenizer):
(WebCore::createTextTokenizer):
* loader/TextDocument.h:
* wml/WMLDocument.cpp:
(WebCore::WMLDocument::finishedParsing):
2010-06-12 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5Tokenizer needs to tell the InspectorTimelineAgent before and after it writes
https://bugs.webkit.org/show_bug.cgi?id=40417
This "fixes" inspector/timeline-script-tag-1.html. HTML5 results
differ from the old parser for expected reasons.
HTML5Tokenizer calls InspectorTimelineAgent::will/didWriteHTML every
time we pump the lexer instead of every write() call.
We end up pumping the lexer slightly more often than the old code called
write() in order to cleanly handle unclosed-entities, unclosed tags,
buffered characters, etc. at the end of a document.
I discussed this extensively with James Robinson in #webkit and we decided
that it was better for the HTML5Tokenizer to call for every pump and
that the Inspector should later filter out empty pumps.
We can't filter out empty pumps yet, because the number of parsed
characters is passed in willWrite instead of didWrite and thus is
speculative (and wrong). This is a problem independent of this change
as willWrite's "length" argument is wrong in different ways for the old
parser, including always being 0 when the old parser resumes.
Tested by inspector/timeline-script-tag-1.html
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::willPumpLexer):
- Notify the InspectorTimelineAgent we're about to process input.
(WebCore::HTML5Tokenizer::didPumpLexer):
- Notify the InspectorTimelineAgent we did process tokens.
(WebCore::HTML5Tokenizer::pumpLexer):
- Call willPump and didPump
* html/HTML5Tokenizer.h:
* inspector/InspectorTimelineAgent.h:
- Add a FIXME about passing length to didWrite instead of willWrite.
2010-06-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61052.
http://trac.webkit.org/changeset/61052
https://bugs.webkit.org/show_bug.cgi?id=40517
"Broke fast/forms/caret-rtl.html on Mac bots" (Requested by
eseidel on #webkit).
* html/HTMLElement.cpp:
(WebCore::HTMLElement::mapToEntry):
(WebCore::HTMLElement::parseMappedAttribute):
2010-06-11 Maciej Stachowiak <mjs@apple.com>
Reviewed by Ojan Vafai.
Implement HTML5 hidden attribute
https://bugs.webkit.org/show_bug.cgi?id=40511
Test: fast/html/hidden-attr.html
Note: I used the mapped attribute mechanism for this instead of a rule in the UA stylesheet
to avoid a performance hit from adding a global attribute rule to the UA stylesheet.
* html/HTMLElement.cpp:
(WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
(WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
2010-06-10 Abhishek Arya <inferno@chromium.org>
Reviewed by Dave Hyatt.
Do not render CSS Styles :first-letter and :first-line in a SVG text element context.
https://bugs.webkit.org/show_bug.cgi?id=40031
Test: svg/text/text-style-invalid.svg
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::firstLineBlock):
(WebCore::RenderSVGText::updateFirstLetter):
* rendering/RenderSVGText.h:
2010-06-11 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
getParameter with UNPACK_FLIP_Y_WEBGL and UNPACK_PREMULTIPLY_ALPHA_WEBGL is buggy
https://bugs.webkit.org/show_bug.cgi?id=40506
Return the data members of WebGLRenderingContext for these
parameter queries rather than asking OpenGL, which knows nothing
about them.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getParameter):
2010-06-11 Simon Fraser <simon.fraser@apple.com>
Reviewed by Dr Dan Bernstein.
REGRESSION: crash when unloading an iFrame with Flash from the DOM
https://bugs.webkit.org/show_bug.cgi?id=40161
<rdar://problem/7994710>
Null-check the ownerElement of the RenderView's document when unhooking the compositing
root of an iframe whose layers are parented via the enclosing document. Fixes a crash when
dynamically removing such an iframe.
Test: compositing/iframes/remove-iframe-crash.html
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::detachRootPlatformLayer):
2010-06-11 Abhishek Arya <inferno@chromium.org>
Reviewed by David Hyatt.
Don't process floats if parent node is not a RenderBlock.
https://bugs.webkit.org/show_bug.cgi?id=40033
Test: svg/text/clear-floats-crash.svg
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::clearFloats):
2010-06-11 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r61036.
http://trac.webkit.org/changeset/61036
https://bugs.webkit.org/show_bug.cgi?id=40499
broke chromium compile (Requested by jamesr on #webkit).
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/SerializedScriptValue.h:
(WebCore::SerializedScriptValue::deserializeAndSetProperty):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::SerializedScriptValue):
2010-06-11 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Add texImage2D and texSubImage2D signatures with internal format, etc.
https://bugs.webkit.org/show_bug.cgi?id=40318
Added new texImage2D and texSubImage2D entry points following
WebGL specification changes. Added UNPACK_FLIP_Y_WEBGL and
UNPACK_PREMULTIPLY_ALPHA_WEBGL pixelStorei parameters, honored
them for the new entry points taking HTML elements, and added
support to getParameter. Added warnings to the console for calls
to the obsolete entry points, which will be removed in a few
weeks. Updated all layout tests to use the new entry points and
pixelStorei parameters, and associated expectations. No other new
tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext):
(WebCore::WebGLRenderingContext::getParameter):
(WebCore::WebGLRenderingContext::pixelStorei):
(WebCore::WebGLRenderingContext::texImage2DImpl):
(WebCore::WebGLRenderingContext::texImage2D):
(WebCore::WebGLRenderingContext::texSubImage2DImpl):
(WebCore::WebGLRenderingContext::texSubImage2D):
(WebCore::WebGLRenderingContext::printWarningToConsole):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
* platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::):
2010-06-11 James Robinson <jamesr@chromium.org>
Reviewed by Dimitri Glazkov.
[chromium] Skia mispaints pages with border-radius
https://bugs.webkit.org/show_bug.cgi?id=40456
Skia mispaints pages that have border radius set in some cases. The bug is in the anti aliased
clip path logic used to implement anti aliased curves in Skia. Since Skia internally only supports
1-bit clips, anti aliased clipping is emulated by creating a new alpha layer, storing a set of
clip paths on the side, and then 'erasing' the regions outside the clip. See r49641.
PlatformContextSkia maintains a stack of PlatformContextSkia::State objects that preserve information
like fill color, drawing mode, etc that is manipulated by GraphicsContext::save() /
GraphicsContext::restore() calls as well some internal functions. Whenever a new State object is pushed
a new copy of the current State object is pushed onto the top of this stack using the copy c'tor. The
set of anti alias clip paths is also stored on the State object, but not copied when new entries are
added as the paths only apply to that entry on the stack.
The bug is that the state stack is stored in a WTF::Vector. When this vector exceeds its capacity
(by default at 16 elements) all of the existing State entries are copied into the new buffer using
State's copy constructor. This does not preserve the anti alias clip paths, so when the State entries
are popped the anti aliasing info is lost. This corrupts all further paint operations since it results
in inbalanced save/restore calls to the underlying SkCanvas.
The fix is to make the PlatformContextSkia::State copy constructor copy all fields and to add a new
function PlatformContextSkia::State::cloneInheritedProperties to use when pushing new State entries
that copies everything except for the anti aliased clip paths.
Test: fast/css/nested-rounded-corners.html
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::State::State):
(PlatformContextSkia::State::cloneInheritedProperties):
(PlatformContextSkia::save):
2010-06-11 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
[V8] Clean up SerializedScriptValue
https://bugs.webkit.org/show_bug.cgi?id=40482
SerializedScriptValue doesn't follow WebKit's style guidelines very well
and needlessly inlines quite a bit within the .h file. This change cleans
things up. No funcitonal changes.
No change in behavior.
* bindings/v8/SerializedScriptValue.cpp:
(WebCore::SerializedScriptValue::deserializeAndSetProperty):
(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::createFromWire):
(WebCore::SerializedScriptValue::release):
(WebCore::SerializedScriptValue::SerializedScriptValue):
* bindings/v8/SerializedScriptValue.h:
2010-06-11 Anton Muhin <antonm@chromium.org>
Reviewed by Adam Barth.
[v8] Introduce single element caches for WebCore::String to v8::String conversions
https://bugs.webkit.org/show_bug.cgi?id=40435
Measurements show that for some web apps (GMail, Wave) and some scenarios
(intensive reading and/or keeping a tab open for a long time),
hit rate lies in 30--50% interval.
Inlining fast case gives another minor performance win.
* bindings/v8/V8Binding.cpp:
(WebCore::getStringCache):
(WebCore::v8ExternalStringSlow):
* bindings/v8/V8Binding.h:
(WebCore::v8ExternalString):
2010-06-11 Leandro Pereira <leandro@profusion.mobi>
Reviewed by Gustavo Noronha Silva.
[EFL] Build fix: remove unneeded file (npapi.cpp) and add
other files that got added to the tree.
http://webkit.org/b/40331
* CMakeLists.txt:
* CMakeListsEfl.txt:
2010-06-11 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser.
https://bugs.webkit.org/show_bug.cgi?id=40454
This required exposing the HTMLParser which we definitely don't want to
do, but the good news is that it can go away when the HTMLParser goes
away.
No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html.
* dom/Tokenizer.h:
(WebCore::Tokenizer::htmlParser):
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::htmlParser):
* html/HTML5Tokenizer.h:
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::htmlParser):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::htmlParser):
2010-06-11 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Delete custom JSC bindings for bufferData, texImage2D and texSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=40443
Deleted custom JSC bindings for bufferData, texImage2D and
texSubImage2D and fixed minor associated issues in code generator
and IDL. Updated fast/canvas/webgl/texImageTest-expected.txt,
which now runs as intended. Ran all layout tests, including WebGL
tests, in Safari.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
- Deleted custom bindings.
* bindings/scripts/CodeGeneratorJS.pm:
- Made overload helper functions static to fix compiler warnings.
- Added needed isObject check for overloads between object and non-object arguments.
- Added JSValue::encode to exception return path, needed on Leopard in particular.
* html/HTMLCanvasElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLVideoElement.idl:
- Added GenerateNativeConverter extended attribute.
* html/canvas/WebGLRenderingContext.idl:
- Deleted #ifdefs for custom JSC bindings.
2010-06-11 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fix, add KillRingNone.cpp until we can implement it.
* wscript:
2010-06-11 Hans Wennborg <hans@chromium.org>
Reviewed by Jeremy Orlow.
DOM storage should only create databases when needed
https://bugs.webkit.org/show_bug.cgi?id=40301
As soon as a page attempts to use localstorage, StorageAreaSync will
create an empty database if one doesn't already exist. This can lead to
lots of unnecessary database files. In particular, they are created
even when the privacy settings or private browsing mode disallow
localstorage data, which may seem odd to the user.
Database creation should be put off in StorageAreaSync until it is time
to actually write something to the database.
Tests:
manual-tests/localstorage-empty-database.html
* manual-tests/localstorage-empty-database.html: Added.
* storage/StorageAreaSync.cpp:
(WebCore::StorageAreaSync::StorageAreaSync):
(WebCore::StorageAreaSync::openDatabase):
(WebCore::StorageAreaSync::performImport):
(WebCore::StorageAreaSync::sync):
* storage/StorageAreaSync.h:
(WebCore::StorageAreaSync::):
2010-06-11 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Eric Seidel.
Perl scripts for bindings don't use strict keyword.
As result some problems in the script code were not detected at compile stage.
https://bugs.webkit.org/show_bug.cgi?id=40468
* bindings/scripts/CodeGenerator.pm:
* bindings/scripts/IDLParser.pm:
* bindings/scripts/IDLStructure.pm:
2010-06-11 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5Tokenizer should not delete itself while running scripts
https://bugs.webkit.org/show_bug.cgi?id=40458
Tested by fast/dom/document-clear.html
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::attemptToEnd):
- Don't ever end() while running scripts.
This matches the old HTMLTokenizer.cpp
2010-06-11 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
getActiveUniform must ensure names of arrays end in "[0]"
https://bugs.webkit.org/show_bug.cgi?id=38709
Test: fast/canvas/webgl/get-active-test.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getActiveAttrib): Append "[0]" to the name if needed.
2010-06-11 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
readPixels with negative width/height should generate INVALID_VALUE and return
https://bugs.webkit.org/show_bug.cgi?id=39704
* html/canvas/WebGLRenderingContext.cpp: Deal with negative width/height.
(WebCore::WebGLRenderingContext::readPixels):
* html/canvas/WebGLRenderingContext.h: Change width/height type from unsigned long to long.
* html/canvas/WebGLRenderingContext.idl: Ditto.
2010-06-11 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
uniform* entry points must ignore the call if a null WebGLUniformLocation is passed
https://bugs.webkit.org/show_bug.cgi?id=38707
* html/canvas/WebGLRenderingContext.cpp: uniform* entry points ignore the call if a null WebGLUniformLocation is passed.
(WebCore::WebGLRenderingContext::uniform1f):
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform1i):
(WebCore::WebGLRenderingContext::uniform1iv):
(WebCore::WebGLRenderingContext::uniform2f):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform2i):
(WebCore::WebGLRenderingContext::uniform2iv):
(WebCore::WebGLRenderingContext::uniform3f):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform3i):
(WebCore::WebGLRenderingContext::uniform3iv):
(WebCore::WebGLRenderingContext::uniform4f):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniform4i):
(WebCore::WebGLRenderingContext::uniform4iv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
2010-06-11 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
drawElements/drawArrays should validate input parameters according to GLES2 spec
https://bugs.webkit.org/show_bug.cgi?id=38700
Tests: fast/canvas/webgl/draw-arrays-out-of-bounds.html
fast/canvas/webgl/draw-elements-out-of-bounds.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::drawArrays): Validate input parameters.
(WebCore::WebGLRenderingContext::drawElements): Ditto.
(WebCore::WebGLRenderingContext::validateDrawMode): Validate mode for draw{Arrays/Elements}.
* html/canvas/WebGLRenderingContext.h: Add validateDrawMode, fix incorrect parameter types.
* html/canvas/WebGLRenderingContext.idl: Fix incorrect parameter types.
2010-06-11 Luiz Agostini <luiz.agostini@openbossa.org>
Reviewed by Antti Koivisto.
CSS3 Media Queries are not serialized according to CSSOM
https://bugs.webkit.org/show_bug.cgi?id=39220
MediaQuery serialization according to specification
http://dev.w3.org/csswg/cssom/#serializing-media-queries.
MediaQuery objects now ignore duplicated expressions. MediaQueryEvaluator::eval()
now does not proccess MediaQuery objects that are known to be invalid.
Test: fast/media/media-query-serialization.html
* css/MediaQuery.cpp:
(WebCore::stringCompare):
(WebCore::MediaQuery::serialize):
(WebCore::MediaQuery::MediaQuery):
(WebCore::MediaQuery::~MediaQuery):
(WebCore::MediaQuery::operator==):
(WebCore::MediaQuery::cssText):
(WebCore::MediaQuery::append):
* css/MediaQuery.h:
(WebCore::MediaQuery::ignored):
(WebCore::MediaQuery::begin):
(WebCore::MediaQuery::end):
* css/MediaQueryExp.cpp:
(WebCore::MediaQueryExp::serialize):
* css/MediaQueryExp.h:
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::eval):
2010-06-10 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
Implement more of IndexedDB's Indexes and ObjectStores
https://bugs.webkit.org/show_bug.cgi?id=40424
Clean up both of these classes a bit and add create/open/remove
methods as needed.
Tests in a future patch (promise).
* storage/IDBDatabase.h:
* storage/IDBDatabaseImpl.cpp:
(WebCore::IDBDatabaseImpl::objectStores):
(WebCore::IDBDatabaseImpl::createObjectStore):
(WebCore::IDBDatabaseImpl::objectStore):
(WebCore::IDBDatabaseImpl::removeObjectStore):
* storage/IDBDatabaseImpl.h:
(WebCore::IDBDatabaseImpl::name):
(WebCore::IDBDatabaseImpl::description):
(WebCore::IDBDatabaseImpl::version):
* storage/IDBDatabaseRequest.cpp:
(WebCore::IDBDatabaseRequest::IDBDatabaseRequest):
(WebCore::IDBDatabaseRequest::createObjectStore):
(WebCore::IDBDatabaseRequest::objectStore):
(WebCore::IDBDatabaseRequest::removeObjectStore):
* storage/IDBDatabaseRequest.h:
(WebCore::IDBDatabaseRequest::create):
(WebCore::IDBDatabaseRequest::name):
(WebCore::IDBDatabaseRequest::description):
(WebCore::IDBDatabaseRequest::version):
(WebCore::IDBDatabaseRequest::objectStores):
* storage/IDBDatabaseRequest.idl:
* storage/IDBObjectStore.h:
* storage/IDBObjectStoreImpl.h:
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::get):
(WebCore::IDBObjectStoreRequest::add):
(WebCore::IDBObjectStoreRequest::modify):
(WebCore::IDBObjectStoreRequest::addOrModify):
(WebCore::IDBObjectStoreRequest::remove):
(WebCore::IDBObjectStoreRequest::createIndex):
(WebCore::IDBObjectStoreRequest::index):
(WebCore::IDBObjectStoreRequest::removeIndex):
* storage/IDBObjectStoreRequest.h:
* storage/IDBObjectStoreRequest.idl:
2010-06-11 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Enable serialization/deserialization of the frontend state
https://bugs.webkit.org/show_bug.cgi?id=40228
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::saveApplicationSettings):
(WebCore::InspectorBackend::saveSessionSettings):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::setSessionSettings):
(WebCore::InspectorController::populateScriptObjects):
(WebCore::InspectorController::didCommitLoad):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::populateApplicationSettings):
(WebCore::InspectorFrontend::populateSessionSettings):
* inspector/InspectorFrontend.h:
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype._settingsLoaded):
(WebInspector.ConsoleView.prototype._enterKeyPressed.printResult):
(WebInspector.ConsoleView.prototype._enterKeyPressed):
* inspector/front-end/EventListenersSidebarPane.js:
(WebInspector.EventListenersSidebarPane.prototype._settingsLoaded):
(WebInspector.EventListenersSidebarPane.prototype):
():
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.saveApplicationSettings):
(.WebInspector.InspectorBackendStub.prototype.saveSessionSettings):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._selectTab):
(WebInspector.ResourceView.prototype._selectHeadersTab):
(WebInspector.ResourceView.prototype.selectContentTab):
* inspector/front-end/ResourcesPanel.js:
(WebInspector.ResourcesPanel.prototype._createStatusbarButtons):
(WebInspector.ResourcesPanel.prototype._settingsLoaded):
(WebInspector.ResourcesPanel.prototype._toggleLargerResources):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
(WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
* inspector/front-end/Settings.js:
(WebInspector.populateApplicationSettings):
(WebInspector.populateSessionSettings):
(WebInspector.Settings):
(WebInspector.Settings.prototype.reset):
(WebInspector.Settings.prototype._load):
(WebInspector.Settings.prototype._set):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype._settingsLoaded):
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylesSidebarPane.prototype._changeSetting):
(WebInspector.StylesSidebarPane.prototype._changeColorFormat):
(WebInspector.ComputedStyleSidebarPane.settingsLoaded):
(WebInspector.ComputedStyleSidebarPane.showInheritedToggleFunction):
(WebInspector.ComputedStyleSidebarPane):
* inspector/front-end/WatchExpressionsSidebarPane.js:
(WebInspector.WatchExpressionsSidebarPane):
(WebInspector.WatchExpressionsSidebarPane.prototype._settingsLoaded):
(WebInspector.WatchExpressionsSection):
(WebInspector.WatchExpressionsSection.prototype.saveExpressions):
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.reset):
2010-06-10 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Port performSearch from InjectedScript to InspectorDOMAgent.
https://bugs.webkit.org/show_bug.cgi?id=40422
* inspector/InjectedScriptHost.cpp:
(WebCore::InjectedScriptHost::addNodesToSearchResult):
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::performSearch):
(WebCore::InspectorBackend::searchCanceled):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorDOMAgent.cpp:
(WebCore::):
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::~InspectorDOMAgent):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::searchCanceled):
(WebCore::InspectorDOMAgent::onMatchJobsTimer):
(WebCore::InspectorDOMAgent::reportNodesAsSearchResults):
* inspector/InspectorDOMAgent.h:
(WebCore::MatchJob::~MatchJob):
(WebCore::MatchJob::MatchJob):
(WebCore::MatchJob::addNodesToResults):
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::addNodesToSearchResult):
* inspector/InspectorFrontend.h:
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::updateScriptObject):
* inspector/front-end/ElementsPanel.js:
(WebInspector.ElementsPanel.prototype.searchCanceled):
(WebInspector.ElementsPanel.prototype.performSearch):
(WebInspector.ElementsPanel.prototype.addNodesToSearchResult):
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
* inspector/front-end/InjectedScriptAccess.js:
2010-06-11 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Pavel Feldman.
[Chromium] Restore 'console.profiles' access.
https://bugs.webkit.org/show_bug.cgi?id=39840
* bindings/v8/ScriptProfiler.cpp:
(WebCore::ScriptProfiler::stop):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::profilesAccessorGetter):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::stopUserInitiatedProfiling):
2010-06-10 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Pavel Feldman.
Web Inspector: Make a close brace in Styles pane selectable.
https://bugs.webkit.org/show_bug.cgi?id=40157
* inspector/front-end/inspector.css:
(.styles-selector):
(.styles-section .properties li):
(.styles-section):
2010-06-11 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: localize missing script source message
https://bugs.webkit.org/show_bug.cgi?id=40467
* English.lproj/localizedStrings.js:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didParseSource): fixed typo in comment.
2010-06-11 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Vertex attributes enabled as arrays but not bound to buffers must generate INVALID_OPERATION
https://bugs.webkit.org/show_bug.cgi?id=40315
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateRenderingState): Check if an enabled vertext attribs is bound to a buffer.
(WebCore::WebGLRenderingContext::vertexAttribPointer): Set bound buffer in vertex attrib state.
* html/canvas/WebGLRenderingContext.h: Add a member in vertex attrib state to track bound buffer.
2010-05-31 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Implement the simple text code path.
https://bugs.webkit.org/show_bug.cgi?id=40077
Remove the FONT_FAST_PATH macro and use the Qt's
fast text implementation instead of the one of WebKit.
The Qt::TextBypassShaping flag is used to tell Qt to
only use the glyph advances.
Qt 4.7 is needed to get this flag thus the complex path is always
used if QtWebKit is compiled against an earlier version.
Contrary to the WebKit's implementation, the complex code path
is taken if the text is RightToLeft, justified or is formatted
with non-zero letter or word spacing.
* platform/graphics/Font.cpp:
(WebCore::Font::drawText):
(WebCore::Font::floatWidth):
(WebCore::Font::selectionRectForText):
(WebCore::Font::offsetForPosition):
* platform/graphics/Font.h:
(WebCore::Font::isRoundingHackCharacter):
* platform/graphics/qt/FontQt.cpp:
(WebCore::fromRawDataWithoutRef):
(WebCore::needComplexCodePath):
(WebCore::setupPlatformContext):
(WebCore::Font::canReturnFallbackFontsForComplexText):
(WebCore::Font::drawSimpleText):
(WebCore::Font::drawComplexText):
(WebCore::Font::floatWidthForSimpleText):
(WebCore::Font::offsetForPositionForSimpleText):
(WebCore::Font::selectionRectForSimpleText):
2010-06-03 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
Move the text code path detection code from FontFastPath.cpp to Font.cpp.
https://bugs.webkit.org/show_bug.cgi?id=40077
This is a patch preliminary to the implementation of the
simple font code path for the Qt port.
* platform/graphics/Font.cpp:
(WebCore::Font::setCodePath):
(WebCore::Font::codePath):
* platform/graphics/Font.h:
* platform/graphics/FontFastPath.cpp:
2010-06-11 Sterling Swigart <sswigart@google.com>
Reviewed by Dmitry Titov.
Added AsyncImageResizer and ImageResizerThread classes, which after further
patches will be capable of resizing images.
https://bugs.webkit.org/show_bug.cgi?id=40018
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/AsyncImageResizer.cpp: Added.
(WebCore::AsyncImageResizer::create):
(WebCore::AsyncImageResizer::AsyncImageResizer):
(WebCore::AsyncImageResizer::~AsyncImageResizer):
(WebCore::AsyncImageResizer::notifyFinished):
* html/AsyncImageResizer.h: Added.
(WebCore::AsyncImageResizer::CallbackInfo::CallbackInfo):
(WebCore::AsyncImageResizer::):
(WebCore::AsyncImageResizer::resizeComplete):
(WebCore::AsyncImageResizer::resizeError):
* html/ImageResizerThread.cpp: Added.
(WebCore::returnBlobOrError):
(WebCore::ImageResizerThread::start):
(WebCore::ImageResizerThread::ImageResizerThread):
(WebCore::ImageResizerThread::~ImageResizerThread):
(WebCore::ImageResizerThread::imageResizerThreadStart):
(WebCore::ImageResizerThread::imageResizerThread):
* html/ImageResizerThread.h: Added.
2010-06-11 Steve Block <steveblock@google.com>
Reviewed by Alexey Proskuryakov.
Client-based Geolocation does not handle multiple simultaneous requests
https://bugs.webkit.org/show_bug.cgi?id=40148
Test: fast/dom/Geolocation/multiple-requests.html
The Geolocation must handle multiple calls to addObserver() from the same Geolocation object.
* page/GeolocationController.cpp:
(WebCore::GeolocationController::addObserver):
2010-06-11 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Pavel Feldman.
Web Inspector: When completing using a tab key, select very first value, not a second.
https://bugs.webkit.org/show_bug.cgi?id=40409
* inspector/front-end/TextPrompt.js:
(WebInspector.TextPrompt.prototype._completionsReady):
2010-06-10 Yuzo Fujishima <yuzo@google.com>
Reviewed by Shinichiro Hamaji.
Implement render style selection for pages to support CSS3 Paged Media.
https://bugs.webkit.org/show_bug.cgi?id=35961
Test: printing/page-rule-selection.html
* WebCore.base.exp:
* css/CSSGrammar.y:
* css/CSSSelector.cpp:
(WebCore::CSSSelector::specificity):
(WebCore::CSSSelector::specificityForPage):
* css/CSSSelector.h:
(WebCore::CSSSelector::CSSSelector):
(WebCore::CSSSelector::isForPage):
(WebCore::CSSSelector::setForPage):
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::styleForPage):
(WebCore::CSSStyleSelector::matchPageRules):
(WebCore::CSSStyleSelector::matchPageRulesForList):
(WebCore::CSSStyleSelector::isLeftPage):
(WebCore::CSSStyleSelector::isFirstPage):
(WebCore::CSSStyleSelector::pageName):
* css/CSSStyleSelector.h:
(WebCore::CSSStyleSelector::isRightPage):
* css/html.css:
(@page):
* dom/Document.cpp:
(WebCore::Document::styleForPage):
* dom/Document.h:
* page/PrintContext.cpp:
(WebCore::PrintContext::pageProperty):
* page/PrintContext.h:
2010-06-10 Yuzo Fujishima <yuzo@google.com>
Reviewed by Shinichiro Hamaji.
Fix Bug 40452: REGRESSION: printing is broken if stylesheet has @page
https://bugs.webkit.org/show_bug.cgi?id=40452
Test: printing/page-rule-in-media-query.html
* css/CSSStyleSelector.cpp:
(WebCore::CSSRuleSet::addRulesFromSheet):
(WebCore::CSSRuleSet::addStyleRule):
2010-06-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60989.
http://trac.webkit.org/changeset/60989
https://bugs.webkit.org/show_bug.cgi?id=40462
It makes things crash (Requested by abarth on #webkit).
* dom/Tokenizer.h:
(WebCore::Tokenizer::isHTMLTokenizer):
* html/HTML5Tokenizer.cpp:
* html/HTML5Tokenizer.h:
* html/HTML5TreeBuilder.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::isHTMLTokenizer):
(WebCore::HTMLTokenizer::htmlParser):
2010-06-10 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Eric Seidel.
Fix fast/forms/preserveFormDuringResidualStyle.html for HTML5 Parser.
https://bugs.webkit.org/show_bug.cgi?id=40454
This required exposing the HTMLParser which we definitely don't want to
do, but the good news is that it can go away when the HTMLParser goes
away.
No new tests because covered by fast/forms/preserve/FormDuringResidualStyle.html.
* dom/Tokenizer.h:
(WebCore::Tokenizer::htmlParser):
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::htmlParser):
* html/HTML5Tokenizer.h:
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::htmlParser):
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::removedFromTree):
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::htmlParser):
2010-06-10 Tony Chang <tony@chromium.org>
Reviewed by Kent Tamura.
crash when focus is changed while trying to focus next element
https://bugs.webkit.org/show_bug.cgi?id=40407
Test: fast/events/focus-change-crash.html
* dom/Element.cpp:
(WebCore::Element::focus):
2010-06-10 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60979.
http://trac.webkit.org/changeset/60979
https://bugs.webkit.org/show_bug.cgi?id=40450
Broke build on Leopard (Requested by kbr_google on #webkit).
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::bufferData):
(WebCore::JSWebGLRenderingContext::bufferSubData):
(WebCore::JSWebGLRenderingContext::texImage2D):
(WebCore::JSWebGLRenderingContext::texSubImage2D):
* bindings/scripts/CodeGeneratorJS.pm:
* html/HTMLCanvasElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLVideoElement.idl:
* html/canvas/WebGLRenderingContext.idl:
2010-06-10 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Delete custom JSC bindings for bufferData, texImage2D and texSubImage2D
https://bugs.webkit.org/show_bug.cgi?id=40443
Deleted custom JSC bindings for bufferData, texImage2D and
texSubImage2D and fixed minor associated issues in code generator
and IDL. Updated fast/canvas/webgl/texImageTest-expected.txt,
which now runs as intended. Ran all layout tests, including WebGL
tests, in Safari.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
- Deleted custom bindings.
* bindings/scripts/CodeGeneratorJS.pm:
- Made overload helper functions static to fix compiler warnings.
- Added needed isObject check for overloads between object and non-object arguments.
* html/HTMLCanvasElement.idl:
* html/HTMLImageElement.idl:
* html/HTMLVideoElement.idl:
- Added GenerateNativeConverter extended attribute.
* html/canvas/WebGLRenderingContext.idl:
- Deleted #ifdefs for custom JSC bindings.
2010-06-10 David Hyatt <hyatt@apple.com>
Reviewed by John Sullivan.
https://bugs.webkit.org/show_bug.cgi?id=40441, back out the original fix for 29601, since it has broken continuous
wheel delta values.
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/mac/WheelEventMac.mm:
(WebCore::PlatformWheelEvent::PlatformWheelEvent):
2010-06-10 Abhishek Arya <inferno@chromium.org>
Reviewed by Dimitri Glazkov.
Add null pointer checks for nativeImageForCurrentFrame
function calls.
https://bugs.webkit.org/show_bug.cgi?id=39797
* platform/chromium/PasteboardChromium.cpp:
(WebCore::Pasteboard::writeImage):
* platform/graphics/qt/GraphicsContext3DQt.cpp:
(WebCore::GraphicsContext3D::getImageData):
* platform/qt/PasteboardQt.cpp:
(WebCore::Pasteboard::writeImage):
2010-06-09 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Implement TypedArray BYTES_PER_ELEMENT
https://bugs.webkit.org/show_bug.cgi?id=39100
Implemented BYTES_PER_ELEMENT on all ArrayBufferView subclasses.
Required bug fixes to JSC bindings' custom constructors. Updated
fast/canvas/webgl/array-unit-tests.html to verify. Ran all WebGL
layout tests in Safari and Chromium.
* bindings/js/JSFloat32ArrayConstructor.cpp:
(WebCore::JSFloat32ArrayConstructor::JSFloat32ArrayConstructor):
(WebCore::JSFloat32ArrayConstructor::getOwnPropertySlot):
(WebCore::JSFloat32ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSFloat32ArrayConstructor.h:
(WebCore::JSFloat32ArrayConstructor::createStructure):
* bindings/js/JSInt16ArrayConstructor.cpp:
(WebCore::JSInt16ArrayConstructor::JSInt16ArrayConstructor):
(WebCore::JSInt16ArrayConstructor::getOwnPropertySlot):
(WebCore::JSInt16ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSInt16ArrayConstructor.h:
(WebCore::JSInt16ArrayConstructor::createStructure):
* bindings/js/JSInt32ArrayConstructor.cpp:
(WebCore::JSInt32ArrayConstructor::JSInt32ArrayConstructor):
(WebCore::JSInt32ArrayConstructor::getOwnPropertySlot):
(WebCore::JSInt32ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSInt32ArrayConstructor.h:
(WebCore::JSInt32ArrayConstructor::createStructure):
* bindings/js/JSInt8ArrayConstructor.cpp:
(WebCore::JSInt8ArrayConstructor::JSInt8ArrayConstructor):
(WebCore::JSInt8ArrayConstructor::getOwnPropertySlot):
(WebCore::JSInt8ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSInt8ArrayConstructor.h:
(WebCore::JSInt8ArrayConstructor::createStructure):
* bindings/js/JSUint16ArrayConstructor.cpp:
(WebCore::JSUint16ArrayConstructor::JSUint16ArrayConstructor):
(WebCore::JSUint16ArrayConstructor::getOwnPropertySlot):
(WebCore::JSUint16ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSUint16ArrayConstructor.h:
(WebCore::JSUint16ArrayConstructor::createStructure):
* bindings/js/JSUint32ArrayConstructor.cpp:
(WebCore::JSUint32ArrayConstructor::JSUint32ArrayConstructor):
(WebCore::JSUint32ArrayConstructor::getOwnPropertySlot):
(WebCore::JSUint32ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSUint32ArrayConstructor.h:
(WebCore::JSUint32ArrayConstructor::createStructure):
* bindings/js/JSUint8ArrayConstructor.cpp:
(WebCore::JSUint8ArrayConstructor::JSUint8ArrayConstructor):
(WebCore::JSUint8ArrayConstructor::getOwnPropertySlot):
(WebCore::JSUint8ArrayConstructor::getOwnPropertyDescriptor):
* bindings/js/JSUint8ArrayConstructor.h:
(WebCore::JSUint8ArrayConstructor::createStructure):
* html/canvas/Float32Array.idl:
* html/canvas/Int16Array.idl:
* html/canvas/Int32Array.idl:
* html/canvas/Int8Array.idl:
* html/canvas/Uint16Array.idl:
* html/canvas/Uint32Array.idl:
* html/canvas/Uint8Array.idl:
2010-06-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 Parser should continue parsing after script execution
https://bugs.webkit.org/show_bug.cgi?id=40416
The previous code was just wrong. We were always blocking
the parser after any script execution. Now we correctly continue
parsing after a successful script execution and only block the
parser when we weren't able to execute the script immediately.
Added a new haveParsingBlockingScript() function to HTML5ScriptRunner
to make some of the code more self-documenting.
Test: fast/tokenizer/write-multiple-scripts.html
fast/js/implicit-call-with-global-reentry.html
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::execute):
- Remove some old (now bogus) FIXMEs and notImplemented() calls.
- Fix the logic to match the HTML5 spec by continuing parsing
after script execution and only blocking the parser when the
script wasn't able to immediately run.
(WebCore::HTML5ScriptRunner::haveParsingBlockingScript):
- New function to make some of the code read better.
(WebCore::HTML5ScriptRunner::executeParsingBlockingScripts):
- Use haveParsingBlockingScript().
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
- Use haveParsingBlockingScript().
(WebCore::HTML5ScriptRunner::runScript):
- Use haveParsingBlockingScript().
* html/HTML5ScriptRunner.h:
2010-06-10 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: to reduce the front end start up time don't push script
sources to frontend if debugger is always enabled, instead request
script content lazily at the moment it should be displyed. It is critical for
always enabled debugger because in that case lots of script may have
already been parsed when the front end is opening and pushing all
of them at once may slow things down(even though the script sources will never
be used if scripts panel isn't open).
https://bugs.webkit.org/show_bug.cgi?id=40364
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::getScriptSource):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didCommitLoad):
(WebCore::InspectorController::getScriptSource):
(WebCore::InspectorController::didParseSource):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didGetScriptSource):
* inspector/InspectorFrontend.h:
* inspector/front-end/InspectorBackendStub.js:
(.WebInspector.InspectorBackendStub.prototype.editScriptSource):
(.WebInspector.InspectorBackendStub.prototype.getScriptSource):
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype.setupSourceFrameIfNeeded):
(WebInspector.ScriptView.prototype._didGetScriptSource):
(WebInspector.ScriptView.prototype._sourceFrameSetupFinished):
2010-06-10 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Use allowRequestIfNoIllegalURICharacters instead of context for XSSAuditor::canLoadExternalScriptFromSrc
https://bugs.webkit.org/show_bug.cgi?id=40404
We originally added the context parameter to
canLoadExternalScriptFromSrc to work around some false positives caused
by folks checking external script URLs on the server. Our thought was
that we could tell these were not real XSS attacks because the
surrounding context wouldn't match in the URL and the document.
Implementing this feature in the HTML5 parser is hard because it
pierces a layer of abstraction (the token abstraction of the input
stream). We could hack this into the new parser, but instead I think
it's better to switch to using the allowRequestIfNoIllegalURICharacters
heuristic.
We designed the allowRequestIfNoIllegalURICharacters after the context
heuristic to deal with other cases where the server was validating
input before echoing it. However, we never tried applying it to
canLoadExternalScriptFromSrc.
It's possible that this will cause false positives and will need to be
reverted, which is why I've left in some of the infrustructure for
computing context. We don't have a good way to know if that will
happen except to try. We do know, however, that this heuristic will
work for the original false positives we saw.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::shouldLoadExternalScriptFromSrc):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseTag):
* page/XSSAuditor.cpp:
(WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
* page/XSSAuditor.h:
2010-06-10 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
Add ENABLE(DATABASE) guard for DatabaseAuthorizer.cpp
https://bugs.webkit.org/show_bug.cgi?id=40399
Build fix for ENABLE(DATABASE)=0.
* storage/DatabaseAuthorizer.cpp:
2010-06-10 Shu Chang <chang.shu@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Change the type of ShadowBlur from int to float in GraphicsContext.
Using int for ShadowBlur loses precision and fails the test.
Note: This code change fixes Qt port but Mac is still failing due to
platform issue. Function CGContextSetShadowWithColor() does not take
a blur value less than 0.5.
https://bugs.webkit.org/show_bug.cgi?id=40370
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::getShadow):
* platform/graphics/GraphicsContext.h:
* platform/graphics/GraphicsContextPrivate.h:
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::Font::drawGlyphs):
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::calculateShadowBufferDimensions):
(WebCore::drawPathShadow):
(WebCore::drawBorderlessRectShadow):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/cairo/ImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/chromium/FontChromiumWin.cpp:
(WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs):
(WebCore::Font::drawComplexText):
* platform/graphics/gtk/FontGtk.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/haiku/GraphicsContextHaiku.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/mac/FontMac.mm:
(WebCore::Font::drawGlyphs):
* platform/graphics/openvg/GraphicsContextOpenVG.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::drawComplexText):
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::strokeArc):
(WebCore::GraphicsContext::drawConvexPolygon):
(WebCore::drawFilledShadowPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::drawBorderlessRectShadow):
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/skia/GraphicsContextSkia.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::windowsCanHandleDrawTextShadow):
* platform/graphics/win/FontCGWin.cpp:
(WebCore::drawGDIGlyphs):
(WebCore::Font::drawGlyphs):
* platform/graphics/wince/GraphicsContextWince.cpp:
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::drawText):
* platform/graphics/wx/GraphicsContextWx.cpp:
(WebCore::GraphicsContext::setPlatformShadow):
2010-06-10 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Support for loading notification icons
https://bugs.webkit.org/show_bug.cgi?id=40396
Make notification objects download the icon needed for displaying the
notification before calling the NotificationPresenter to display the
notification.
An error during the download would cause the notification to be displayed
without an icon.
If a notification is in the process of download, and a new notification
is created with the same ReplaceId, the download is not cancelled
immediately and the notification is removed only after the download is
complete.
Tests: http/tests/notifications/icon-does-not-exist.html
http/tests/notifications/icon-exists-cancel.html
http/tests/notifications/icon-exists-show-alert-during-load.html
http/tests/notifications/icon-exists.html
http/tests/notifications/icon-requires-auth.html
* notifications/Notification.cpp:
(WebCore::Notification::Notification):
(WebCore::Notification::~Notification):
(WebCore::Notification::show):
(WebCore::Notification::cancel):
(WebCore::Notification::startLoading):
(WebCore::Notification::stopLoading):
(WebCore::Notification::didReceiveResponse):
(WebCore::Notification::didReceiveData):
(WebCore::Notification::didFinishLoading):
(WebCore::Notification::didFail):
(WebCore::Notification::didFailRedirectCheck):
(WebCore::Notification::didReceiveAuthenticationCancellation):
(WebCore::Notification::finishLoading):
* notifications/Notification.h:
(WebCore::Notification::iconData):
(WebCore::Notification::releaseIconData):
(WebCore::Notification::):
2010-06-10 Raine Makelainen <raine.makelainen@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Impossible to set input method hints based HTML5 input types
https://bugs.webkit.org/show_bug.cgi?id=40107
Helper methods for checking "tel", "number", "email",
and "url" input element types.
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::isTelephoneField):
(WebCore::HTMLInputElement::isNumberField):
(WebCore::HTMLInputElement::isEmailField):
(WebCore::HTMLInputElement::isUrlField):
2010-06-10 Daniel Cheng <dcheng@chromium.org>
Reviewed by Jian Li.
Don't convert filenames to URLs in edit drags.
https://bugs.webkit.org/show_bug.cgi?id=38826
For security reasons, we don't want to expose file system paths to web
content, so we filter them out of edit drags.
Test: editing/pasteboard/file-drag-to-editable.html
* page/DragController.cpp:
(WebCore::documentFragmentFromDragData):
* platform/DragData.h:
(WebCore::DragData::):
* platform/android/DragDataAndroid.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/chromium/DragDataChromium.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/efl/DragDataEfl.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/gtk/DragDataGtk.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/haiku/DragDataHaiku.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/mac/DragDataMac.mm:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/qt/DragDataQt.cpp:
(WebCore::DragData::asPlainText):
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/win/ClipboardUtilitiesWin.cpp:
(WebCore::getURL):
(WebCore::getPlainText):
* platform/win/ClipboardUtilitiesWin.h:
* platform/win/ClipboardWin.cpp:
(WebCore::ClipboardWin::getData):
* platform/win/DragDataWin.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/wince/DragDataWince.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
* platform/wx/DragDataWx.cpp:
(WebCore::DragData::containsURL):
(WebCore::DragData::asURL):
2010-06-10 Mike Belshe <mbelshe@chromium.org>
Reviewed by David Levin
Track whether a resource is loaded via a proxy.
https://bugs.webkit.org/show_bug.cgi?id=40312
* platform/network/chromium/ResourceResponse.h:
(WebCore::ResourceResponse::wasFetchedViaProxy):
(WebCore::ResourceResponse::setWasFetchedViaProxy):
2010-06-10 Jungshik Shin <jshin@chromium.org>
Reviewed by Kent Tamura
Bug 38224 - [chromium] Enable rendering of Ethiopic, Lao, Tibetan
and a few other scripts on Win XP
https://bugs.webkit.org/show_bug.cgi?id=38224
Make it possible to specify a list of fonts for per-script
fallback instead of a single font per script. This is
necessary for Malayalam (for which Windows font doesn't
support Unicode 5.x fully on Vista or earlier), Ethiopic
(we want to support on XP with a 3rd party font because XP
doesn't have any Ethiopic font out of the box) and some other
scripts. This is a short-term 'fix' until we have per-script
font preferences.
No layout test is added because the test results would be
dependent on which fonts are present.
* platform/graphics/chromium/FontUtilsChromiumWin.cpp:
(WebCore::):
(WebCore::FontMap::ScriptToFontFamilies::):
2010-06-09 Andrei Popescu <andreip@google.com>
Reviewed by Adam Barth.
CodeGeneratorJS.pm incorrectly increments $paramIndex when a method is declared with [CallWith]
https://bugs.webkit.org/show_bug.cgi?id=40372
Use two variables to keep track of the number of arguments passed from JavaScript vs the number
of arguments passed to the corresponding C++ method. These numbers can be different since
the parameter declared via [CallWith] is generated in the bindings instead of being passed
from JavaScript.
Test: storage/indexeddb/idb-objectstore-request.html
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/CPP/WebDOMTestObj.cpp:
(WebDOMTestObj::withScriptExecutionContext):
* bindings/scripts/test/CPP/WebDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
2010-06-09 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
Refactoring: Simple shadow elements should be factored out .
https://bugs.webkit.org/show_bug.cgi?id=40400
Pulled ShadowElement class up from SliderThumbElement,
ProgressValueElement, ShadowInputElement.
And renamed ProgressValueElement to ShadowBlockElement.
No new tests. Because there is no functional change.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* rendering/RenderFileUploadControl.cpp:
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateValuePartState):
* rendering/RenderProgress.h:
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::SliderThumbElement):
(WebCore::SliderThumbElement::defaultEventHandler):
(WebCore::SliderThumbElement::detach):
* rendering/ShadowElement.cpp: Added.
(WebCore::ShadowBlockElement::create):
(WebCore::ShadowBlockElement::ShadowBlockElement):
(WebCore::ShadowInputElement::create):
(WebCore::ShadowInputElement::ShadowInputElement):
* rendering/ShadowElement.h: Added.
(WebCore::ShadowElement::ShadowElement):
(WebCore::ShadowElement::isShadowNode):
(WebCore::ShadowElement::shadowParentNode):
2010-06-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Reduce FrameView.h includes to speed up build times
https://bugs.webkit.org/show_bug.cgi?id=40408
Another fix for Qt.
* page/Frame.h:
- Include CSSMutableStyleDeclaration.h since it's used by m_typingStyle = 0;
2010-06-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Reduce FrameView.h includes to speed up build times
https://bugs.webkit.org/show_bug.cgi?id=40408
More attempted build fixes for Tiger and Qt.
* page/Frame.cpp:
* page/Frame.h:
2010-06-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Reduce FrameView.h includes to speed up build times
https://bugs.webkit.org/show_bug.cgi?id=40408
Add a few more RenderLayer.h includes to fix non-mac builds.
* page/FrameView.cpp:
* rendering/RenderObject.cpp:
* rendering/RenderTreeAsText.cpp:
2010-06-10 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Reduce FrameView.h includes to speed up build times
https://bugs.webkit.org/show_bug.cgi?id=40408
Cleaned up FrameView.h includes and then propagated the
cascade of includes to the necessary .cpp files.
This should reduce the set of files rebuilt every
time FrameView.h changes, and should also reduce the size
of some .o files.
No functional changes, thus no tests.
* accessibility/AccessibilityRenderObject.cpp:
* dom/ContainerNode.cpp:
* dom/Document.cpp:
* dom/Element.cpp:
* dom/EventTarget.h:
* dom/Node.cpp:
* editing/EditorCommand.cpp:
* editing/SelectionController.cpp:
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::script):
- No need for this to be inline. Being inline required
Frame.h in the header, which causes huge include cascade.
* html/HTML5Tokenizer.h:
* page/DragController.cpp:
* page/EventHandler.cpp:
* page/Frame.h:
* page/FrameView.h:
* page/PrintContext.cpp:
* page/SpatialNavigation.cpp:
* rendering/RenderBlock.cpp:
* rendering/RenderBlockLineLayout.cpp:
* rendering/RenderImage.cpp:
* rendering/RenderInline.cpp:
* rendering/RenderObject.h:
* rendering/RenderTextControlSingleLine.cpp:
* rendering/RenderWidget.cpp:
* rendering/SVGRenderSupport.cpp:
2010-06-10 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Move HTML5 entity parser to its own file
https://bugs.webkit.org/show_bug.cgi?id=40406
Moving this algorithm to its own file better encapsulates its
dependencies and makes it callable from other parts of WebCore.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/HTML5EntityParser.cpp: Copied from WebCore/html/HTML5Lexer.cpp.
(WebCore::):
(WebCore::consumeHTML5Entity):
* html/HTML5EntityParser.h: Copied from WebCore/html/HTML5Lexer.h.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::processEntity):
(WebCore::HTML5Lexer::nextToken):
* html/HTML5Lexer.h:
2010-06-09 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
HTML5 Parser: Fix fast/profiler tests that depend on event handler line numbers
https://bugs.webkit.org/show_bug.cgi?id=40393
This emulated the old behavior in HTMLTokenizer:processToken()
No new tests because covered by:
- fast/profiler/dead-time.html
- fast/profiler/inline-event-handler.html
- fast/profiler/stop-profiling-after-setTimeout.html
- fast/profiler/throw-exception-from-eval.html
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::pumpLexer):
2010-06-09 Alexey Proskuryakov <ap@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=9504
img tag rewritten by innerHTML doesn't use image map
Test: fast/dom/replaced-image-map.html
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::~HTMLMapElement): Destructor is not a good place to make changes
that affect page behavior, because destructors are called by garbage collector. Don't
undregister the image map from here.
(WebCore::HTMLMapElement::parseMappedAttribute): Only tell document about the map if it's
actually in document. A map in a detached subtree isn't used by Firefox at least.
(WebCore::HTMLMapElement::insertedIntoDocument): Register the map.
(WebCore::HTMLMapElement::removedFromDocument): Unregister the map.
* html/HTMLMapElement.h: Added insertedIntoDocument/removedFromDocument overrides.
2010-06-09 Roland Steiner <rolandsteiner@chromium.org>
Reviewed by Ojan Vafai.
Bug 35632 - htmlediting.cpp : isEmptyTableCell() is incomplete
https://bugs.webkit.org/show_bug.cgi?id=35632
Correct isEmptyTableCell to check for the presence of other renderer
children.
Test: editing/deleting/delete-br-in-last-table-cell.html
* editing/htmlediting.cpp:
(WebCore::isEmptyTableCell):
2010-06-09 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.transformation.html
https://bugs.webkit.org/show_bug.cgi?id=38598
In path transform function handle path only have moveElement case.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::transform):
2010-06-09 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
[v8] First phase of switching to new named property query API
https://bugs.webkit.org/show_bug.cgi?id=40303
To allow better management of attributes of intercepted properties,
we're starting to switch to new named property query API which
now could return attributes instead of simple property present/absent
flag. The next step would remove USE_NEW_QUERY_CALLBACK, then
v8 would have them enabled by default.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/NPV8Object.cpp:
* bindings/v8/ScriptArray.cpp:
* bindings/v8/ScriptCallStack.cpp:
* bindings/v8/SerializedScriptValue.cpp:
* bindings/v8/V8Binding.cpp:
* bindings/v8/V8DOMWrapper.cpp:
* bindings/v8/V8GCController.cpp:
* bindings/v8/V8IsolatedContext.cpp:
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectQueryProperty):
* bindings/v8/V8Proxy.cpp:
* bindings/v8/custom/V8PopStateEventCustom.cpp:
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Storage::namedPropertyQuery):
* config.h:
2010-06-09 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
Need to include V8Proxy.h in V8 generated bindings for toV8Context()
https://bugs.webkit.org/show_bug.cgi?id=40290
No new tests, build fix only.
* bindings/scripts/CodeGeneratorV8.pm:
2010-06-09 Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
Reviewed by Kenneth Rohde Christiansen.
WebGL rendering context does not activate unless accelerated
compositing is enabled from settings.
https://bugs.webkit.org/show_bug.cgi?id=37772
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2010-06-09 Yong Li <yoli@rim.com>
Reviewed by George Staikos.
https://bugs.webkit.org/show_bug.cgi?id=40252
Make image down-sampling threshold runtime adjustable.
No new test needed.
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setData):
* platform/graphics/ImageSource.h:
(WebCore::ImageSource::maxPixelsPerDecodedImage):
(WebCore::ImageSource::setMaxPixelsPerDecodedImage):
2010-06-09 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix handling of bytes received from the network while in document.write
https://bugs.webkit.org/show_bug.cgi?id=40356
The old tokenizer has specially logic for handling the case of
receiving bytes from the network while in a nested call to
document.write. This patch implements similar logic for the HTML5
tokenizer. Also, this patch abstracts the tricky shuffling of
SegmentedStrings behind a simple API.
I'm not sure how to trigger this case. My guess is we can trigger it
using a nested event loop, e.g., via alert(), but I'm not sure how to
test that in a LayoutTest. There don't appear to be any LayoutTests
that currently test this behavior despite it being present in the old
tokenizer.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::pumpLexer):
(WebCore::HTML5Tokenizer::write):
- Added a branch for the |append| argument.
(WebCore::HTML5Tokenizer::end):
(WebCore::HTML5Tokenizer::finish):
(WebCore::HTML5Tokenizer::executeScript):
- Switch over to using a RAII pattern for recording and restoring
insertion points.
* html/HTML5Tokenizer.h:
(WebCore::HTML5Tokenizer::InputStream::InputStream):
(WebCore::HTML5Tokenizer::InputStream::appendToEnd):
(WebCore::HTML5Tokenizer::InputStream::insertAtCurrentInsertionPoint):
(WebCore::HTML5Tokenizer::InputStream::close):
- Putting the close() method on InputStream makes it much easier to
handle EOF. We now just close the last buffer in the stream when
the network says it's done.
(WebCore::HTML5Tokenizer::InputStream::current):
- This class could be moved to its own file, but it shouldn't be
used outside of the tokenizer.
(WebCore::HTML5Tokenizer::InsertionPointRecord::InsertionPointRecord):
(WebCore::HTML5Tokenizer::InsertionPointRecord::~InsertionPointRecord):
- A simple RAII class for managing saved insertion points.
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::operator=):
- Fix a related bug where m_closed was not being copied properly in
the assignment operator.
2010-06-09 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Fix fast/parser/hex-entities-length.html for HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40385
Stripping surrogate pair values appears to be a problem with the spec
in "Preprocessing the input stream." Minefield doesn't appear to
implement the part in question. So this patch removes that guard and
adds a FIXME to track the issue.
No new tests because covered by fast/parser/hex-entities-length.html
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::InputStreamPreprocessor::peek):
2010-06-09 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Update readPixels to take ArrayBufferView rather than returning it
https://bugs.webkit.org/show_bug.cgi?id=40322
No new tests; covered by existing tests, which have been modified.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::readPixels):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
2010-06-09 Enrico Ros <eros@codeaurora.org>
Reviewed by Ariya Hidayat.
Fix drawing zero-sized gradients on Canvas.
https://bugs.webkit.org/show_bug.cgi?id=40340
HTML5 draft says that nothing must be painted if the gradient start
point equals the stop point.
This commit fixes the following canvas test:
http://philip.html5.org/tests/canvas/suite/tests/2d.gradient.interpolate.zerosize.html
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::fillRect): skip zero-sized linear gradients
* platform/graphics/Gradient.h:
(WebCore::Gradient::isRadial): made public
(WebCore::Gradient::isZeroSize): true if start == stop
2010-06-09 Leandro Pereira <leandro@profusion.mobi>
Reviewed by Adam Treat.
[EFL] Allow building core libraries as shared objects to speed up
linking time on machines with small amounts of memory.
http://webkit.org/b/39899
* CMakeLists.txt: If building with shared core, install the lib.
Remove npapi.cpp (causes conflicts when linking dynamically).
* CMakeListsEfl.txt: EFL libraries are needed to link dynamically.
2010-06-09 Mark Rowe <mrowe@apple.com>
Reviewed by Adele Peterson.
<rdar://problem/8070662> REGRESSION (r51629): WebBackForwardList created via -init crashes when -addItem: is called.
A WebBackForwardList created via -init results in a BackForwardList being created with a null m_page.
BackForwardList needs to be careful not to dereference m_page without first ensuring it's not null.
* history/BackForwardList.cpp:
(WebCore::BackForwardList::addItem): Null-check m_page.
(WebCore::BackForwardList::goBack): Ditto.
(WebCore::BackForwardList::goForward): Ditto.
(WebCore::BackForwardList::goToItem): Ditto.
(WebCore::BackForwardList::setCapacity): Ditto.
2010-06-09 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Add dummy Context Menu implementation
https://bugs.webkit.org/show_bug.cgi?id=40223
Brew MP does not use Context Menu. Add dummy implementation.
* platform/brew/ContextMenuBrew.cpp: Added.
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::itemCount):
(WebCore::ContextMenu::insertItem):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::itemWithAction):
(WebCore::ContextMenu::itemAtIndex):
(WebCore::ContextMenu::setPlatformDescription):
(WebCore::ContextMenu::platformDescription):
(WebCore::ContextMenu::releasePlatformDescription):
* platform/brew/ContextMenuItemBrew.cpp: Added.
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::setEnabled):
(WebCore::ContextMenuItem::enabled):
2010-06-09 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Port Clipboard
https://bugs.webkit.org/show_bug.cgi?id=35734
Add dummy Clipboard.
* platform/brew/ClipboardBrew.cpp: Added.
(WebCore::ClipboardBrew::ClipboardBrew):
(WebCore::ClipboardBrew::~ClipboardBrew):
(WebCore::ClipboardBrew::clearData):
(WebCore::ClipboardBrew::clearAllData):
(WebCore::ClipboardBrew::getData):
(WebCore::ClipboardBrew::setData):
(WebCore::ClipboardBrew::types):
(WebCore::ClipboardBrew::files):
(WebCore::ClipboardBrew::setDragImage):
(WebCore::ClipboardBrew::setDragImageElement):
(WebCore::ClipboardBrew::createDragImage):
(WebCore::ClipboardBrew::declareAndWriteDragImage):
(WebCore::ClipboardBrew::writeURL):
(WebCore::ClipboardBrew::writeRange):
(WebCore::ClipboardBrew::writePlainText):
(WebCore::ClipboardBrew::hasData):
* platform/brew/ClipboardBrew.h: Added.
2010-06-09 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
[Qt] ClipboardQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39781
* platform/qt/ClipboardQt.cpp:
(WebCore::ClipboardQt::declareAndWriteDragImage):
2010-06-09 Kenneth Russell <kbr@google.com>
Reviewed by Dimitri Glazkov.
Rename FloatArray to Float32Array
https://bugs.webkit.org/show_bug.cgi?id=40323
Used do-webcore-rename to perform renaming. Manually undid
incorrect changes to WebCore/bridge/jni/jsc/JNIBridgeJSC.cpp,
WebCore/manual-tests/resources/ArrayParameterTestApplet.java and
ArrayParameterTestApplet.class. Updated LayoutTests. Built and ran
all layout tests on Safari; built Chromium and ran selected WebGL
tests.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::float32ArrayEnabled):
* bindings/js/JSArrayBufferViewCustom.cpp:
(WebCore::toJS):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::float32Array):
(WebCore::JSDOMWindow::webGLFloatArray):
* bindings/js/JSFloat32ArrayConstructor.cpp: Copied from WebCore/bindings/js/JSFloatArrayConstructor.cpp.
(WebCore::):
(WebCore::JSFloat32ArrayConstructor::JSFloat32ArrayConstructor):
(WebCore::constructCanvasFloatArray):
(WebCore::JSFloat32ArrayConstructor::getConstructData):
* bindings/js/JSFloat32ArrayConstructor.h: Copied from WebCore/bindings/js/JSFloatArrayConstructor.h.
* bindings/js/JSFloat32ArrayCustom.cpp: Copied from WebCore/bindings/js/JSFloatArrayCustom.cpp.
(WebCore::JSFloat32Array::indexSetter):
(WebCore::toJS):
(WebCore::JSFloat32Array::set):
* bindings/js/JSFloatArrayConstructor.cpp: Removed.
* bindings/js/JSFloatArrayConstructor.h: Removed.
* bindings/js/JSFloatArrayCustom.cpp: Removed.
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::dataFunctionf):
(WebCore::dataFunctionMatrix):
* bindings/v8/custom/V8ArrayBufferViewCustom.cpp:
(WebCore::toV8):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::WebGLFloatArrayAccessorGetter):
* bindings/v8/custom/V8Float32ArrayCustom.cpp: Copied from WebCore/bindings/v8/custom/V8FloatArrayCustom.cpp.
(WebCore::V8Float32Array::constructorCallback):
(WebCore::V8Float32Array::setCallback):
(WebCore::toV8):
* bindings/v8/custom/V8FloatArrayCustom.cpp: Removed.
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformMatrixHelper):
* html/canvas/Float32Array.cpp: Copied from WebCore/html/canvas/FloatArray.cpp.
(WebCore::Float32Array::create):
(WebCore::Float32Array::Float32Array):
(WebCore::Float32Array::slice):
* html/canvas/Float32Array.h: Copied from WebCore/html/canvas/FloatArray.h.
* html/canvas/Float32Array.idl: Copied from WebCore/html/canvas/FloatArray.idl.
* html/canvas/FloatArray.cpp: Removed.
* html/canvas/FloatArray.h: Removed.
* html/canvas/FloatArray.idl: Removed.
* html/canvas/WebGLGetInfo.cpp:
(WebCore::WebGLGetInfo::WebGLGetInfo):
(WebCore::WebGLGetInfo::getWebGLFloatArray):
* html/canvas/WebGLGetInfo.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getUniform):
(WebCore::WebGLRenderingContext::getVertexAttrib):
(WebCore::WebGLRenderingContext::uniform1fv):
(WebCore::WebGLRenderingContext::uniform2fv):
(WebCore::WebGLRenderingContext::uniform3fv):
(WebCore::WebGLRenderingContext::uniform4fv):
(WebCore::WebGLRenderingContext::uniformMatrix2fv):
(WebCore::WebGLRenderingContext::uniformMatrix3fv):
(WebCore::WebGLRenderingContext::uniformMatrix4fv):
(WebCore::WebGLRenderingContext::vertexAttrib1fv):
(WebCore::WebGLRenderingContext::vertexAttrib2fv):
(WebCore::WebGLRenderingContext::vertexAttrib3fv):
(WebCore::WebGLRenderingContext::vertexAttrib4fv):
(WebCore::WebGLRenderingContext::getWebGLFloatArrayParameter):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLRenderingContext.idl:
* page/DOMWindow.idl:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/mac/GraphicsContext3DMac.cpp:
* platform/graphics/qt/GraphicsContext3DQt.cpp:
2010-06-09 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 Parser needs to integrate with the XSSAuditor
https://bugs.webkit.org/show_bug.cgi?id=40287
This fixes most of the XSSAuditor tests, except for the ones
which rely on the srcValue "context". The previous HTMLTokenizer
implementation was both Lexer and ScriptRunner and thus could
provide the XSSAuditor with the un-modified attribute source.
This naive implementation will fail the context-sensitive tests
but Adam Barth says he'll just have to find a new way to provide
the required information to the XSSAuditor in a later patch.
Covered by numerous http/tests/security/xssAuditor tests.
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::requestScript):
- Ask the HTML5ScriptRunner host before running any scripts.
* html/HTML5ScriptRunnerHost.h:
- Add a shouldLoadExternalScriptFromSrc declaration.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::shouldLoadExternalScriptFromSrc):
- Ask the XSSAuditor if we're allowed to run the passed script.
* html/HTML5Tokenizer.h:
2010-06-09 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Fix script-after-frameset test in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40274
The old HTMLTokenizer enforced this in scriptHandler(). We don't use
that code anymore, so it needs to be implemented. The spec does this
as a part of "insertion mode"->"after frameset", so this adds an
InsertionMode enum instead of a one-off boolean.
No new tests because covered by fast/tokenizer/script-after-frameset.html
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::):
(WebCore::HTML5TreeBuilder::setInsertionMode):
(WebCore::HTML5TreeBuilder::insertionMode):
2010-06-09 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
[BREWMP] Add EventLoop
https://bugs.webkit.org/show_bug.cgi?id=39401
BREW MP does not have an explicit event loop. Add dummy EventLoop::cycle.
* platform/brew/EventLoopBrew.cpp: Added.
(WebCore::EventLoop::cycle):
2010-06-09 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60889.
http://trac.webkit.org/changeset/60889
https://bugs.webkit.org/show_bug.cgi?id=40365
gtk bot has some kind of memory corruption (Requested by
loislo on #webkit).
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::setFrontend):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::InspectorFrontend):
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
* inspector/InspectorValues.cpp:
(WebCore::InspectorObject::writeJSON):
* inspector/front-end/inspector.js:
* loader/EmptyClients.h:
2010-06-09 Kent Tamura <tkent@chromium.org>
Reviewed by Eric Carlson.
[Windows] Build fix on Japanese Windows
https://bugs.webkit.org/show_bug.cgi?id=40358
cl.exe on Japanese Windows assumes files with invalid CP932
sequences broken and doesn't build them at all.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Remove non-ASCII characters
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: ditto.
* platform/graphics/win/WKCAImageQueue.cpp: ditto.
* platform/graphics/win/WKCAImageQueue.h: ditto.
2010-06-09 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Add isDebuggerAlwaysEnabled method to ScriptDebugServer.
This method returns true if debugger should always be enabled when
frontend is attached.
https://bugs.webkit.org/show_bug.cgi?id=40289
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
* bindings/v8/ScriptDebugServer.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::setFrontend):
2010-06-07 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: On the way to Remote Debugging we want to transfer dom/timeline/etc
data from inspected page to WebInspector as JSON string via http. The native
serialization to JSON string is supported by InspectorValue's classes. This patch
has the implementation of sendMessageToFrontend function. WebKit version of it still
uses ScriptFunctionCall and will be switched to another transport a little bit later.
https://bugs.webkit.org/show_bug.cgi?id=40134
* inspector/InspectorClient.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::connectFrontend):
(WebCore::InspectorController::disconnectFrontend):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::InspectorFrontend):
* inspector/InspectorFrontend.h:
* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::frontendLoaded):
* inspector/InspectorValues.cpp:
(WebCore::InspectorObject::writeJSON):
* inspector/front-end/inspector.js:
(WebInspector.dispatchMessageToFrontend):
* loader/EmptyClients.h:
(WebCore::EmptyInspectorClient::sendMessageToFrontend):
2010-06-09 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Dirk Schulze.
[Qt] Imperfect dependency for generated SVGNames.cpp
https://bugs.webkit.org/show_bug.cgi?id=40359
* WebCore.pri: Missing dependency added.
2010-06-08 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Implement non-scaling-stroke (from SVG Tiny 1.2, also in Opera)
https://bugs.webkit.org/show_bug.cgi?id=31438
This is the implementation of the SVG property vector-effect according
to the specification of SVG Tiny 1.2.
getScreenCTM() was not able to calculate the transformation matrix in
comparison to the host coordinate system for objects, that get refereced
by a use element. This is fixed and covered by the the new test as well.
This patch is based upon a patch of Jeff Schiller.
Test: svg/custom/non-scaling-stroke.svg
* css/CSSComputedStyleDeclaration.cpp: Added CSSPropertyVectorEffect.
(WebCore::):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EVectorEffect):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* css/SVGCSSValueKeywords.in: Add vector-effect value non-scaling-stroke.
* rendering/RenderPath.cpp: Revert transformations to ctm and transform path instead.
(WebCore::fillAndStrokePath):
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
* rendering/RenderSVGResourceGradient.cpp: Transform the gradient with the screenCTM.
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/RenderSVGResourcePattern.cpp: Transform the pattern with the screenCTM.
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/style/SVGRenderStyle.h: Added vector-effect property, not interited.
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::setBitDefaults):
* rendering/style/SVGRenderStyleDefs.h: Added enums for vector-effect.
(WebCore::):
* svg/SVGLocatable.cpp: Calculate screenCTM for <use> referenced objects.
(WebCore::SVGLocatable::computeCTM):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
* svg/svgattrs.in:
2010-06-08 Mark Rowe <mrowe@apple.com>
Reviewed by Adele Peterson.
<rdar://problem/8072136> REGRESSION (r56051): Inspect Element context menu does nothing in applications linked against 10.4 SDK
Revert the change to ContextMenu::addInspectElementItem from r56051. It was made without
explanation and broke a reliance that WebKit has on the presence of a separator before the
Inspect Element menu item. This also restores the context menu item to the correct location
at the bottom of the context menu in applications built against the Mac OS X 10.4 SDK.
* platform/ContextMenu.cpp:
(WebCore::ContextMenu::addInspectElementItem):
2010-06-08 Roland Steiner <rolandsteiner@chromium.org>
Unreviewed build fix
Bug 38145 - Validate *tex* functions input parameters according to ES2 conformance
https://bugs.webkit.org/show_bug.cgi?id=38145
https://bugs.webkit.org/show_bug.cgi?id=40346
Fix for 38145 broke the build ('log2 not found' on Windows),
the fix from 40346 also didn't catch ('log ambiguous').
2nd quick fix: add explicit casts to double and use double constants.
No new tests.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncParameters):
2010-05-18 Yuzo Fujishima <yuzo@google.com>
Reviewed by Shinichiro Hamaji.
Fix for Bug 34529 - [CSSOM] issues with cssText and selectorText
Serialize selector as per http://dev.w3.org/csswg/cssom/#serializing-selectors
Without this patch, for example, selectors containing ':' or '.' are not properly serialized.
https://bugs.webkit.org/show_bug.cgi?id=34529
Test: fast/css/selector-text-escape.html
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* css/CSSOMUtils.cpp: Added.
(WebCore::appendCharacter):
(WebCore::serializeCharacter):
(WebCore::serializeCharacterAsCodePoint):
(WebCore::serializeIdentifier):
(WebCore::serializeString):
* css/CSSOMUtils.h: Added.
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):
2010-06-08 Ryosuke Niwa <rniwa@webkit.org>
Reviewed by Justin Garcia
InsertListCommand needs cleanup
https://bugs.webkit.org/show_bug.cgi?id=36430
Separated code for listifying and unlistifying paragraphs.
Also isolated the dependency on the selection in doApply.
No test is added since this is a cleanup.
* editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): isolated code to listify / unlistify paragraphs
(WebCore::InsertListCommand::unlistifyParagraph): ditto
(WebCore::InsertListCommand::listifyParagraph): ditto
* editing/InsertListCommand.h:
2010-06-08 Kenneth Russell <kbr@google.com>
Unreviewed, build fix.
Fix build breakage from 38145
https://bugs.webkit.org/show_bug.cgi?id=40346
The fix for bug 38145 broke the Chromium Win build because
Microsoft's cmath doesn't define log2. Suggested fix by zmo is to
change log2(x) to log(x) / log(2). Built and ran WebGL layout
tests in Safari on Mac OS X. Changed download mirrors for
python-irclib to working ones.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncParameters):
2010-06-08 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Validate *tex* functions input parameters according to ES2 conformance
https://bugs.webkit.org/show_bug.cgi?id=38145
Test: fast/canvas/webgl/tex-input-validation.html
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::getColorBufferFormat): Get color buffer internalformat.
* html/canvas/WebGLFramebuffer.h: Ditto.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext): Deal with max tex units and max texture size.
(WebCore::WebGLRenderingContext::copyTexImage2D): Validate input parameters.
(WebCore::WebGLRenderingContext::copyTexSubImage2D): Ditto.
(WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
(WebCore::WebGLRenderingContext::texParameterf): Ditto.
(WebCore::WebGLRenderingContext::texParameteri): Ditto.
(WebCore::WebGLRenderingContext::texSubImage2DBase): Ditto.
(WebCore::WebGLRenderingContext::handleNPOTTextures): Deal with max tex units.
(WebCore::WebGLRenderingContext::isTexInternalformatColorBufferCombinationValid): Check whether the texture format and framebuffer color buffer internalformat combination is valid.
(WebCore::WebGLRenderingContext::getTextureBinding): get the current bound texture for given target.
(WebCore::WebGLRenderingContext::validateTexFuncFormatAndType): Validate input format/type for *tex* functions.
(WebCore::WebGLRenderingContext::validateTexFuncParameters): Validate input parameters for *tex* functions.
(WebCore::WebGLRenderingContext::texParameter): Base function for texParameteri and texParameterf.
* html/canvas/WebGLRenderingContext.h: Deal with max tex units.
* html/canvas/WebGLTexture.cpp:
(WebCore::WebGLTexture::WebGLTexture): Cache internalformat.
* html/canvas/WebGLTexture.h: Ditto.
(WebCore::WebGLTexture::setInternalformat):
(WebCore::WebGLTexture::getInternalformat):
* platform/graphics/GraphicsContext3D.cpp: internalformat and format need to be the same.
(WebCore::GraphicsContext3D::extractImageData):
2010-06-08 Erik Arvidsson <arv@chromium.org>
Reviewed by Ojan Vafai.
REGRESSION: Weird focus behavior affects quoting on University of Washington message board system
https://bugs.webkit.org/show_bug.cgi?id=38548
Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded): Make sure we do not clear selection when canStartSelection
returns false.
2010-06-08 Enrico Ros <eros@codeaurora.org>
Reviewed by Ariya Hidayat.
[Qt] Crashfix on Path::contains
https://bugs.webkit.org/show_bug.cgi?id=40253
Fix accessing the first item of an empty vector, that happens when
CanvasRenderingContext2D::isPointInPath is invoked over a borderless
path (e.g. a path made of just a MoveTo operation).
* platform/graphics/qt/PathQt.cpp:
(WebCore::isPointOnPathBorder):
2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60859.
http://trac.webkit.org/changeset/60859
https://bugs.webkit.org/show_bug.cgi?id=40334
Included debugging statements. Caused a test to fail.
(Requested by ojan on #webkit).
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded):
2010-06-08 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60858.
http://trac.webkit.org/changeset/60858
https://bugs.webkit.org/show_bug.cgi?id=40325
Qt needs a clean build. Rolling out the patch for now and fix
it tomorrow (Requested by krit on #webkit).
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::):
* css/CSSPrimitiveValueMappings.h:
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* css/SVGCSSValueKeywords.in:
* rendering/RenderPath.cpp:
(WebCore::fillAndStrokePath):
* rendering/RenderSVGResourceContainer.h:
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::setBitDefaults):
* rendering/style/SVGRenderStyleDefs.h:
(WebCore::):
* svg/SVGLocatable.cpp:
(WebCore::SVGLocatable::computeCTM):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
* svg/svgattrs.in:
2010-06-08 Daniel Bates <dbates@rim.com>
Unreviewed, fix Xcode project file after change-set 60841.
Xcode is not happy about the entries for files EditingBehavior.h and
EditingBehaviorTypes.h that were added in change-set 60841 (Bug # 39854).
Lets make Xcode happy.
Also, lets place these entries in alphabetic order.
* WebCore.xcodeproj/project.pbxproj:
2010-06-08 Erik Arvidsson <arv@chromium.org>
Reviewed by Ojan Vafai.
REGRESSION: Weird focus behavior affects quoting on University of Washington message board system
https://bugs.webkit.org/show_bug.cgi?id=38548
We should not clear the selection when canStartSelection returns false.
Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded): Make sure we do not clear selection when canStartSelection
returns false.
2010-06-08 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
Implement non-scaling-stroke (from SVG Tiny 1.2, also in Opera)
https://bugs.webkit.org/show_bug.cgi?id=31438
This is the implementation of the SVG property vector-effect according
to the specification of SVG Tiny 1.2.
getScreenCTM() was not able to calculate the transformation matrix in
comparison to the host coordinate system for objects, that get refereced
by a use element. This is fixed and covered by the the new test as well.
This patch is based upon a patch of Jeff Schiller.
Test: svg/custom/non-scaling-stroke.svg
* css/CSSComputedStyleDeclaration.cpp: Added CSSPropertyVectorEffect.
(WebCore::):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EVectorEffect):
* css/SVGCSSComputedStyleDeclaration.cpp:
(WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
* css/SVGCSSPropertyNames.in:
* css/SVGCSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::applySVGProperty):
* css/SVGCSSValueKeywords.in: Add vector-effect value non-scaling-stroke.
* rendering/RenderPath.cpp: Revert transformations to ctm and transform path instead.
(WebCore::fillAndStrokePath):
* rendering/RenderSVGResourceContainer.h:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
* rendering/RenderSVGResourceGradient.cpp: Transform the gradient with the screenCTM.
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/RenderSVGResourcePattern.cpp: Transform the pattern with the screenCTM.
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/style/SVGRenderStyle.h: Added vector-effect property, not interited.
(WebCore::SVGRenderStyle::NonInheritedFlags::):
(WebCore::SVGRenderStyle::setBitDefaults):
* rendering/style/SVGRenderStyleDefs.h: Added enums for vector-effect.
(WebCore::):
* svg/SVGLocatable.cpp: Calculate screenCTM for <use> referenced objects.
(WebCore::SVGLocatable::computeCTM):
* svg/SVGStyledElement.cpp:
(WebCore::SVGStyledElement::cssPropertyIdForSVGAttributeName):
* svg/svgattrs.in:
2010-06-08 Alexey Proskuryakov <ap@apple.com>
* GNUmakefile.am: Also adding platform/Cursor.cpp to Gtk build.
2010-06-08 Csaba Osztrogonác <ossy@webkit.org>
[Qt] Unreviewed buildfix after r60849.
* WebCore.pro: platform/Cursor.cpp is added to Qt build system.
2010-06-08 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
Unreviewed Buildbot fix.
Reset the Qt TextBreakIterator when reusing it.
* platform/text/qt/TextBreakIteratorQt.cpp:
(WebCore::setUpIterator):
2010-06-04 Alexey Proskuryakov <ap@apple.com>
Reviewed by John Sullivan.
https://bugs.webkit.org/show_bug.cgi?id=15779
<rdar://problem/8002964> Custom CSS .cur cursor anchor point is ignored
Test: manual-tests/cur-hotspot.html
Currently, this patch only has effect in Safari 5 on Windows. Other platforms will need
to implement getting hot spot information from .cur files.
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
Added Cursor.cpp. Looks like TextWrangler fixed line endings in vcproj file.
* css/CSSCursorImageValue.cpp:
(WebCore::CSSCursorImageValue::CSSCursorImageValue): Renamed "hotspot" to "hotSpot" to match
other code.
(WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed): Ditto. Added a FIXME about possibly
incorrect code for resolving differences with CSS specified hotspot.
* css/CSSCursorImageValue.h:
(WebCore::CSSCursorImageValue::create):
(WebCore::CSSCursorImageValue::hotSpot):
Renamed "hotspot" to "hotSpot" to match other code.
* css/CSSParser.cpp: (WebCore::CSSParser::parseValue): Start with an invalid value for hot
spot, so that we can differentiate between missing and (0, 0) CSS hot spots. Missing and
invalid (-1, -1) are treated identically by Firefox, so we don't need to differentiate these.
* css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Renamed "hotspot" to
"hotSpot" to match other code.
* page/EventHandler.cpp: (WebCore::EventHandler::selectCursor): Don't ignore cursors with
invalid CSS hot spots. Firefox ignores only the hot spot, not the whole cursor in this case
(and IE doesn't support CSS3 cursor declarations).
* platform/Cursor.cpp: Added. (WebCore::determineHotSpot): Added a function that decides
where hot spot is, provided an image and a possible out of band coordinate specification.
* platform/Cursor.h: Added determineHotSpot().
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::getHotSpot):
* platform/graphics/BitmapImage.h:
* platform/graphics/Image.h:
(WebCore::Image::getHotSpot):
* platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::getHotSpot):
* platform/graphics/ImageSource.h:
Added plumbing to get hot spot data from an image provider.
* platform/graphics/cg/ImageSourceCG.cpp: (WebCore::ImageSource::getHotSpot): CG implemantation.
* platform/mac/CursorMac.mm: (WebCore::createCustomCursor): Call determineHotSpot() to
determine where hot spot should be.
(WebCore::Cursor::Cursor): Renamed "hotspot" to "hotSpot" to match other code.
* platform/win/CursorWin.cpp: (WebCore::Cursor::Cursor): Call determineHotSpot() to determine
where hot spot should be.
* platform/gtk/CursorGtk.cpp: (WebCore::Cursor::Cursor): Ditto. This must be done despite
this platform not having an implementation for ImageSource::getHotSpot(), because we no longer
check for out of bounds hot spots in EventHandler::selectCursor().
* platform/qt/CursorQt.cpp: (WebCore::Cursor::Cursor): Ditto.
2010-06-08 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
Reviewed by Antti Koivisto.
[Qt] TextBreakIterator Qt performance
https://bugs.webkit.org/show_bug.cgi?id=39958
Rework TextBreakIteratorQt to be more in line with the ICU version.
We now reuse iterators where ever possible. The string data is compared
with memcmp, which should be faster than using a hash, as you need
to traverse the full buffer in the case the strings don't match,
where as the compare would fail quickly.
* platform/text/qt/TextBreakIteratorQt.cpp:
(WebCore::TextBreakIterator::TextBreakIterator):
(WebCore::setUpIterator):
(WebCore::wordBreakIterator):
(WebCore::characterBreakIterator):
(WebCore::lineBreakIterator):
(WebCore::sentenceBreakIterator):
2010-06-08 Andras Becsi <abecsi@webkit.org>
Unreviewed build fix after r60785.
[GTK] Add missing GtkVersioning.h include to fix the build
on older GTK+ versions.
No new tests needed.
* platform/gtk/WidgetGtk.cpp:
2010-06-08 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: extend ScriptDebugServer to support script source editing
https://bugs.webkit.org/show_bug.cgi?id=40297
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::editScriptSource):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::editScriptSource):
* bindings/v8/ScriptDebugServer.h:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::editScriptSource):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::disableDebugger):
(WebCore::InspectorController::editScriptSource):
(WebCore::InspectorController::currentCallFrames):
(WebCore::InspectorController::didPause):
(WebCore::InspectorController::didContinue):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didEditScriptSource):
* inspector/InspectorFrontend.h:
* inspector/front-end/Script.js:
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.canEditScripts):
(WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
(WebInspector.ScriptsPanel.prototype.editScriptSource):
* inspector/front-end/Settings.js:
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._editLine):
* inspector/front-end/TextViewer.js:
(WebInspector.TextViewer.prototype._handleDoubleClick):
(WebInspector.TextViewer.prototype._commitEditingLine):
* inspector/front-end/inspector.css:
(#scripts-files option.extension-script):
2010-06-08 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Ojan Vafai and Darin Adler.
Refactor platform dependent editing behavior code out of Settings
https://bugs.webkit.org/show_bug.cgi?id=39854
As per discussion in bug 36627, Darin Adler suggested: "before the addition of any new EditingBehavior,
I think we to add functions to translate the overall behavior policy into specific behaviors rather than
directly saying 'behavior == Mac' or 'behavior == Windows'. Helper functions that expression the different
rules in plain language.". Patch addresses this request.
No behavior change, so no new tests.
* GNUmakefile.am:
* WebCore.pro:
* WebCore/WebCore.vcproj/WebCore.vcproj
* WebCore/WebCore.xcodeproj/project.pbxproj
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h: Moved out EditingBehavior enum to WebCore/editing/EditingBehaviorTypes.h,
and renamed to EditingBehaviorTypes.
(WebCore::Settings::setEditingBehaviorType): Renamed from setEditingBehavior.
(WebCore::Settings::editingBehaviorType): Renamed from editingBehavior.
* editing/EditingBehavior.h: Added.
(WebCore::EditingBehavior::EditingBehavior): Class to work as a central point for
editing behavior that might have to be handled differently in the different platforms/ports.
Class should be not used or instantiated directly, but rather implicitly constructed
through the Editor class.
(WebCore::EditingBehavior::shouldMoveCaretToHorizontalBoundaryWhenPastTopOrBottom):
(WebCore::EditingBehavior::shouldConsiderSelectionAsDirectional):
(WebCore::EditingBehavior::shouldCenterAlignWhenSelectionIsRevealed):
* editing/EditingBehaviorTypes.h: Added.
(WebCore::):
* editing/Editor.cpp:
(WebCore::Editor::behavior): Getter for EditingBehavior class.
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::executeToggleStyle):
* editing/SelectionController.cpp:
(WebCore::SelectionController::setSelection):
(WebCore::SelectionController::setIsDirectional):
(WebCore::SelectionController::positionForPlatform):
(WebCore::SelectionController::modify):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEventSingleClick):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::positionForPointWithInlineChildren):
- Call sites will look like:
if (frame->editor()->behavior().shouldThisIfThat()))
// do something
2010-06-08 Steve Block <steveblock@google.com>
Reviewed by Jeremy Orlow.
Prevent Geolocation making callbacks to a ScriptExecutionContext that no longer exists
https://bugs.webkit.org/show_bug.cgi?id=40162
Before making callbacks, we check that the relevant ScriptExecutionContext still exists.
To achieve this, the callbacks inherit from ActiveDOMObject.
The ScriptExecutionContext is ref'ed from script, so may not be GC'ed for some time after
it is disconnected from its frame. Making the callback currently involves accessing the
Frame, so an additional check for the Frame is required.
This change also prevents the V8 bindings from incorrectly holding a reference to the Frame.
Test: fast/dom/Geolocation/callback-to-deleted-context.html
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomPositionCallback.cpp:
(WebCore::JSCustomPositionCallback::JSCustomPositionCallback):
(WebCore::JSCustomPositionCallback::handleEvent):
* bindings/js/JSCustomPositionErrorCallback.cpp:
(WebCore::JSCustomPositionErrorCallback::JSCustomPositionErrorCallback):
(WebCore::JSCustomPositionErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomPositionCallback.cpp:
(WebCore::V8CustomPositionCallback::V8CustomPositionCallback):
(WebCore::V8CustomPositionCallback::handleEvent):
* bindings/v8/custom/V8CustomPositionCallback.h:
(WebCore::V8CustomPositionCallback::create):
* bindings/v8/custom/V8CustomPositionErrorCallback.cpp:
(WebCore::V8CustomPositionErrorCallback::V8CustomPositionErrorCallback):
(WebCore::V8CustomPositionErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomPositionErrorCallback.h:
(WebCore::V8CustomPositionErrorCallback::create):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::createPositionCallback):
(WebCore::createPositionErrorCallback):
* page/PositionCallback.h:
(WebCore::PositionCallback::PositionCallback):
* page/PositionErrorCallback.h:
(WebCore::PositionErrorCallback::PositionErrorCallback):
2010-06-08 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Avoid duplicated signals in DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=40170
Do not create duplicated event signals between a class and its
ancestor.
* bindings/scripts/CodeGeneratorGObject.pm:
2010-06-08 MORITA Hajime <morrita@google.com>
Unreviewd. Touched the file to force rebuild.
* html/HTMLMeterElement.idl:
2010-06-08 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
[Chromium] Fix the math for transform matrices of composited layers. There
were problems both with how content layers were setting their position and
how the overal matrix stack was computed when the layer anchor isn't at the
center of the layer.
https://bugs.webkit.org/post_bug.cgi
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateContentsRect):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::updateLayersRecursive):
(WebCore::LayerRendererChromium::drawLayer):
2010-06-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5Lexer does not handle <div FOO ><img><img></div> correctly
https://bugs.webkit.org/show_bug.cgi?id=40283
Fix a typo in the AfterAttributeNameState.
The compiler really should have caught this since the typo
resulted in unreachable code.
Tests:
10 tables/mozilla/marvin/colgroup* tests.
Also added a new sub-test in html5lib/resources/webkit01.dat
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
- Fix typo of = instead of >
2010-06-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Implement HTML5's forceQuirks flag
https://bugs.webkit.org/show_bug.cgi?id=40284
I didn't implement this before because I didn't know how to test it,
but now I do.
Tests:
* fast/doctypes/doctype-parsing.html.
When we actually implement the quirks mode handling in the tree
builder, we'll probably want to add to this test.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
* html/HTML5Token.h:
(WebCore::HTML5Token::forceQuirks):
(WebCore::HTML5Token::setForceQuirks):
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::parseDoctypeToken):
* html/HTMLTokenizer.h:
(WebCore::DoctypeToken::reset):
2010-06-08 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Remove ASSERT in ~HTML5Tokenizer
https://bugs.webkit.org/show_bug.cgi?id=40282
We thought this ASSERT would be a good idea, but the problem is that
this object is deleted without warning in some circumstances, so
there's no way to know whether it has reached the end of its state
machine.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::~HTML5Tokenizer):
2010-06-07 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
[Mac] <meter> elements should be rendered as level indicators.
https://bugs.webkit.org/show_bug.cgi?id=40217
Implemented RenderThemeMac::paintMeter() using NSLevelIndicatorCell.
This change also added new -webkit-appearance values to select the
style of level indicators:
- relevancy-level-indicator,
- continuous-capacity-level-indicator,
- discrete-capacity-level-indicator, and
- rating-level-indicator.
The size of elements are adjusted based on the bounds of the indicator
to make room for painting whole indicator cells.
Tests: fast/dom/HTMLMeterElement/meter-appearances-capacity.html
fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy.html
fast/dom/HTMLMeterElement/meter-optimums.html
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
* css/CSSValueKeywords.in:
* html/HTMLMeterElement.cpp:
(WebCore::HTMLMeterElement::gaugeRegion):
* html/HTMLMeterElement.h:
(WebCore::HTMLMeterElement::):
* platform/ThemeTypes.h:
(WebCore::):
* rendering/RenderMeter.cpp:
(WebCore::RenderMeter::calcWidth):
(WebCore::RenderMeter::calcHeight):
* rendering/RenderMeter.h:
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
(WebCore::RenderTheme::paint):
(WebCore::RenderTheme::paintBorderOnly):
(WebCore::RenderTheme::paintDecorations):
(WebCore::RenderTheme::meterSizeForBounds):
* rendering/RenderTheme.h:
* rendering/RenderThemeMac.h:
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::meterSizeForBounds):
(WebCore::RenderThemeMac::paintMeter):
(WebCore::RenderThemeMac::levelIndicatorStyleFor):
(WebCore::RenderThemeMac::levelIndicatorFor):
2010-06-07 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
[Mac] ENABLE_METER_TAG should be enabled.
https://bugs.webkit.org/show_bug.cgi?id=40219
* Configurations/FeatureDefines.xcconfig:
* WebCore.xcodeproj/project.pbxproj:
2010-06-07 Eric Seidel <eric@webkit.org>
Unreviewed. Just commit an edit Xcode keeps making automatically.
It appears someone hand-edited the file, Xcode no-like.
* WebCore.xcodeproj/project.pbxproj:
2010-06-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 Parser fails script-tests which use document.write
https://bugs.webkit.org/show_bug.cgi?id=40276
We were leaving the TreeBuilder paused when executing the scripts
resulting in document.write() calls being ignored.
I don't see a good way to ASSERT this correct behavior, since
the HTML5ScriptRunner and the HTML5TreeBuilder do not know about
each other. We should never have document.write() called while
the HTML5TreeBuilder is paused, however both document.write and
the network call the same HTML5Tokenizer::write method. It's OK
to be paused when the network writes, but during document.write
(or any other script execution).
Tested by all of fast/url and numerous other tests.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::notifyFinished):
- Unpause the treebuilder before executing scripts.
(WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets):
- Unpause the treebuilder before executing scripts.
2010-06-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 Parser hits ASSERT in fast/events/stop-load-in-unload-handler-using-document-write.html
https://bugs.webkit.org/show_bug.cgi?id=40268
Teach HTML5Tokenizer about m_parserStopped.
While tracking down how m_parserStopped was used, I found
several useless implementations of stopParsing() which I removed.
I also found a comment in HTMLTokenizer which still talks about the
"part" (an old class now split into Frame, Page, FrameLoader, etc.)
and an nearly empty FrameLoader::tokenizerProcessedData which I just
inlined into its one caller.
Tests:
fast/events/stop-load-in-unload-handler-using-document-write.html
http/tests/security/xssAuditor/full-block-base-href.html
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::pumpLexerIfPossible):
- New method used instead of direct calls to pumpLexer for when
callers would like to pump the lexer if possible, but don't want
to check if the parser is stopped, etc.
(WebCore::HTML5Tokenizer::pumpLexer):
- Added an ASSERT that the parser is not stopped.
- Stop pumping if the parser is stopped.
(WebCore::HTML5Tokenizer::write):
- Ignore the write if the parser is already stopped.
(WebCore::HTML5Tokenizer::end):
(WebCore::HTML5Tokenizer::attemptToEnd):
- Move comment back to finish() which was incorrectly moved here.
(WebCore::HTML5Tokenizer::endIfDelayed):
(WebCore::HTML5Tokenizer::finish):
- Move comment back here from attemptToEnd()
(WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
- Remove a bogus ASSERT. The lexer will stop when it needs
more data, which may not necessarily mean m_source.isEmpty().
* html/HTML5Tokenizer.h:
- Add pumpLexerIfPossible().
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::stopParsing):
- Add a FIXME about if we really should call checkCompleted() here.
- Inline FrameLoader::tokenizerProcessedData() since this was the only caller.
* loader/FrameLoader.cpp:
- Remove tokenizerProcessedData()
* loader/FrameLoader.h:
- Remove tokenizerProcessedData()
* loader/MediaDocument.cpp:
- Remove unneeded Tokenizer::stopParsing() override.
* loader/PluginDocument.cpp:
- Remove unneeded Tokenizer::stopParsing() override.
* loader/SinkDocument.cpp:
- Remove unneeded Tokenizer::stopParsing() override.
2010-06-07 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix XFrameOptions and xssAuditor crashes in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40265
We're not supposed to call end() while the tokenizer's write() method.
This causes a bunch of LayoutTests to crash. In particular, this patch
fixes crashes in the following tests:
Tests:
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body.html
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny.html
* http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag.html
* http/tests/security/xssAuditor/full-block-base-href.html
* http/tests/security/xssAuditor/full-block-get-from-iframe.html
* http/tests/security/xssAuditor/full-block-iframe-javascript-url.html
* http/tests/security/xssAuditor/full-block-link-onclick.html
* http/tests/security/xssAuditor/full-block-post-from-iframe.html
* http/tests/security/xssAuditor/full-block-script-tag.html
* http/tests/security/xssAuditor/xss-protection-parsing-01.html
* html/HTML5Tokenizer.cpp:
(WebCore::):
(WebCore::HTML5Tokenizer::HTML5Tokenizer):
(WebCore::HTML5Tokenizer::write):
(WebCore::HTML5Tokenizer::attemptToEnd):
(WebCore::HTML5Tokenizer::endIfDelayed):
(WebCore::HTML5Tokenizer::finish):
(WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
* html/HTML5Tokenizer.h:
(WebCore::HTML5Tokenizer::inWrite):
2010-06-07 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 parser hits ASSERT in http/tests/misc/window-dot-stop.html
https://bugs.webkit.org/show_bug.cgi?id=40264
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::executeScript):
2010-06-07 Kinuko Yasuda <kinuko@chromium.org>
Unreviewed.
Avoid "warning: no previous prototype for" in Snow Leopard compilation.
* platform/BlobItem.cpp: Added static to getFileSnapshotModificationTime().
2010-06-07 Kinuko Yasuda <kinuko@chromium.org>
Reviewed by Jian Li.
Refactor FormData and Blob for better support of Blobs synthesized by BlobBuilder.
https://bugs.webkit.org/show_bug.cgi?id=39083
- Introduces a new class BlobItem as a basic component of Blob and FormDataList.
- File would become a special type of Blob that contains only one FileBlobItem.
- Fix the dependency violation in FormData so that the files under platform/ do not include any html/ files.
The patch doesn't support the latest File API changes (e.g. type,
url and slice's type parameters) and should not change any of its
existing behaviors.
The existing tests should be able to be used for regression.
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/Blob.cpp:
(WebCore::Blob::Blob):
(WebCore::Blob::size):
(WebCore::Blob::path):
(WebCore::Blob::append):
(WebCore::Blob::slice):
* html/Blob.h:
(WebCore::Blob::create):
(WebCore::Blob::type):
(WebCore::Blob::items):
(WebCore::Blob::Blob):
* html/File.cpp:
(WebCore::File::File):
(WebCore::File::name):
* html/File.h:
(WebCore::File::fileName):
* html/FileReader.cpp:
(WebCore::FileReader::readAsBinaryString):
(WebCore::FileReader::readAsText):
* html/FileStream.cpp:
(WebCore::FileStream::openForRead):
* html/FormDataList.cpp:
(WebCore::FormDataList::appendString): Moved the line ending fix logic to StringBlobItem::convertToCString.
(WebCore::FormDataList::appendBlob):
* html/FormDataList.h:
(WebCore::FormDataList::items):
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::createFormData):
* html/HTMLProgressElement.cpp:
* platform/BlobItem.cpp: Added.
* platform/BlobItem.h: Added.
* platform/network/FormData.cpp:
(WebCore::FormDataElement::FormDataElement):
(WebCore::FormData::create):
(WebCore::FormData::createMultiPart):
(WebCore::FormData::deepCopy):
(WebCore::FormData::appendData):
(WebCore::FormData::appendString):
(WebCore::FormData::appendFile):
(WebCore::FormData::appendFileRange):
(WebCore::FormData::appendItems):
(WebCore::FormData::appendItem):
(WebCore::FormData::appendKeyValuePairItems):
* platform/network/FormData.h:
(WebCore::operator!=):
* platform/network/mac/FormDataStreamMac.mm:
(WebCore::closeCurrentStream):
(WebCore::advanceCurrentStream):
(WebCore::formCreate):
(WebCore::formRead):
(WebCore::setHTTPBody):
* xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::send):
2010-06-07 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
[chromium] Decoupled transform matrix update of composited layers from
drawing and interposed a sorting step so that the layers are now composited
back to front to get transparency working correctly. Also added missing code
for the preserves3D CSS property.
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::setDrawTransform):
(WebCore::LayerChromium::drawTransform):
(WebCore::LayerChromium::setDrawOpacity):
(WebCore::LayerChromium::drawOpacity):
(WebCore::LayerChromium::preserves3D):
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::compareLayerZ):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::updateLayersRecursive):
(WebCore::LayerRendererChromium::drawLayer):
* platform/graphics/chromium/LayerRendererChromium.h:
2010-06-07 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
[Chromium] convert a key to AtomicString in V8NodeList::namedPropertyGetter
https://bugs.webkit.org/show_bug.cgi?id=40238
Comparison to "length" below could be performed faster in this (major) case
as it would only require direct pointer comparison (cf. to full text
comparison if key is converted to WebCore::String.)
* bindings/v8/custom/V8NodeListCustom.cpp:
(WebCore::V8NodeList::namedPropertyGetter):
2010-06-07 Ariya Hidayat <ariya.hidayat@codeaurora.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Fix GraphicsContext::clipOut to take the transformation matrix into account.
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::GraphicsContext::clipOut):
2010-06-07 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
Reviewed by Xan Lopez.
[gtk] web fonts not loaded properly in scribd html5 reader
https://bugs.webkit.org/show_bug.cgi?id=38758
Avoid always giving a positive reply in createFontPlatformData. We
do not want every non-existing family name to be considered a hit,
or weird usage of local sources in @font-face rules will make
WebKitGTK+ never consider the online fonts.
* GNUmakefile.am:
* platform/graphics/cairo/FontCacheCairo.cpp:
(WebCore::isWellKnownFontName):
(WebCore::FontCache::createFontPlatformData):
* platform/graphics/cairo/GOwnPtrCairo.cpp: Added.
(WTF::FcPattern):
(WTF::FcObjectSet):
(WTF::FcFontSet):
* platform/graphics/cairo/GOwnPtrCairo.h: Added.
2010-06-07 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
"Fix" fast/dom/stripNullFromTextNodes.html in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40200
The proper handling of null characters is to replace them with U+FFFD.
This patch "fixes" fast/dom/stripNullFromTextNodes.html in the sense
that it makes it give the proper output w.r.t. HTML5. However, that
doesn't match the behavior of the old parser, which just stripped the
nulls.
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::InputStreamPreprocessor::peek):
2010-06-07 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
HTML5 parser should normalize line endings
https://bugs.webkit.org/show_bug.cgi?id=40199
When reading characters from the source, we need to normalize line
endings, which means treating \r as \n and folding \r\n sequences into
a single \n. Doing this requires a slightly tighter pattern for
advancing the source (to make sure we update our state machine
correctly).
Fixes fast/css/first-child-pseudo-class.html and hundreds of other
LayoutTests in the HTML5 parser.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::InputStreamPreprocessor::LineEndingNormalizer):
- Introduced InputStreamPreprocessor to keep track of our line
endings state machine. This class will grow to eventually do
all the input stream preprocessing required by the HTML5 spec.
(WebCore::HTML5Lexer::InputStreamPreprocessor::nextInputCharacter):
- We need to be careful not to read *source more than
once because we need to know whether we've transformed the
character. Keeping the next input character in this state
machine requires some careful coding, but seems advantageous.
(WebCore::HTML5Lexer::InputStreamPreprocessor::peek):
(WebCore::HTML5Lexer::InputStreamPreprocessor::advance):
2010-06-07 Andrei Popescu <andreip@google.com>
Reviewed by Jeremy Orlow.
run-bindings-tests results broken by Changeset 60776
https://bugs.webkit.org/show_bug.cgi?id=40230
The change to CodeGeneratorJS.pm in
http://trac.webkit.org/changeset/60776/trunk/WebCore/bindings/scripts/CodeGeneratorJS.pm
added the possibility to use [CallWith=ScriptExecutionContext] in idl files.
Before the above change was submitted, CodeGeneratorJS.pm was modified so that native
functions return EncodedJSValue instead of JSValues. This was done in
http://trac.webkit.org/changeset/60631/trunk/WebCore/bindings/scripts/CodeGeneratorJS.pm
This CL updates the CodeGeneratorJS.pm to correctly return an EncodedJSValue in the case
where the ScriptExecutionContext pointer is 0 at the time when the native function is invoked.
No new tests, just fixing run-bindings-tests.
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
* bindings/scripts/test/JS/JSTestObj.h:
2010-06-07 Kwang Yul Seo <skyul@company100.net>
Reviewed by Eric Seidel.
[BREWMP] Add dummy SearchPopupMenu implementation
https://bugs.webkit.org/show_bug.cgi?id=40224
Add dummy implementation of SearchPopupMenu.
* platform/brew/SearchPopupMenuBrew.cpp: Added.
(WebCore::SearchPopupMenu::saveRecentSearches):
(WebCore::SearchPopupMenu::loadRecentSearches):
(WebCore::SearchPopupMenu::SearchPopupMenu):
(WebCore::SearchPopupMenu::enabled):
2010-06-07 Julien Chaffraix <jchaffraix@webkit.org>
Unreviewed, reverting my HTML comment parsing change as it
breaks Gtk and Qt.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseComment):
(WebCore::HTMLTokenizer::parseTag):
* html/HTMLTokenizer.h:
2010-06-07 Martin Robinson <mrobinson@igalia.com>
Reviewed by Oliver Hunt.
[GTK] HTML5 input type=range is not drawn
https://bugs.webkit.org/show_bug.cgi?id=39561
Support HTML5 range widgets. They are now drawn using the standard
GTK+ theme drawing mechanism.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::supportsFocus): Add focus support for parts of sliders.
(WebCore::setMozillaState):
Add the GtkThemeWidgetType argument and honor depressed states for slider thumbs.
(WebCore::paintMozillaGtkWidget): Pass in the widget type to setMozillaState.
(WebCore::RenderThemeGtk::paintSliderTrack): Added.
(WebCore::RenderThemeGtk::adjustSliderTrackStyle): Added.
(WebCore::RenderThemeGtk::paintSliderThumb): Added.
(WebCore::RenderThemeGtk::adjustSliderThumbStyle): Added.
(WebCore::RenderThemeGtk::adjustSliderThumbSize): Added support for non-media sliders.
* platform/gtk/RenderThemeGtk.h: Added new method declarations.
2010-06-07 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] gtk_widget_get_window should replace widget->window
https://bugs.webkit.org/show_bug.cgi?id=40180
Replace all uses of widget->window with gtk_widget_get_window. For older
GTK+ versions, #define gtk_widget_get_window in GtkVersioning.h.
No tests necessary as functionality has not changed.
* platform/gtk/GtkPluginWidget.cpp:
(WebCore::GtkPluginWidget::invalidateRect): Replace widget->window use.
* platform/gtk/GtkVersioning.h: Add gtk_widget_get_window for old GTK+ versions.
* platform/gtk/PlatformScreenGtk.cpp:
(WebCore::getVisual): Replace widget->window use.
(WebCore::screenRect): Ditto.
* platform/gtk/PopupMenuGtk.cpp:
(WebCore::PopupMenu::show): Ditto.
* platform/gtk/WidgetGtk.cpp:
(WebCore::gdkDrawable): Ditto.
(WebCore::Widget::setCursor): Ditto.
2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com>
Reviewed by Sam Weinig.
Add CPP bindings generator
https://bugs.webkit.org/show_bug.cgi?id=38279
Add CPP bindings generator used in Olympia platform.
We can succesfully generate cpp bindings for all IDLs except:
- DOMWindow.idl / EventTarget.idl (filtered out in the IDL list in DerivedSources.make for non-jsc/v8 generators anyways, so no problem at all)
- inspector/ (not needed for us at all)
- svg/ (needs custom handling, related to animated attributes)
All generated files are free of style issues: "Total errors found: 0 in 510 files"
Not integrated in any build system so far, though I've successfully tested on Mac and inside Olympia, of course.
* bindings/cpp: Added.
* bindings/cpp/WebDOMCString.cpp: Added.
(WebDOMCString::reset):
(WebDOMCString::assign):
(WebDOMCString::length):
(WebDOMCString::data):
(WebDOMCString::utf16):
(WebDOMCString::fromUTF16):
(WebDOMCString::WebDOMCString):
(WebDOMCString::operator=):
(WebDOMCString::operator WTF::CString):
* bindings/cpp/WebDOMCString.h: Added.
(WebDOMCString::~WebDOMCString):
(WebDOMCString::WebDOMCString):
(WebDOMCString::operator=):
(WebDOMCString::isEmpty):
(WebDOMCString::isNull):
* bindings/cpp/WebDOMEventListenerCustom.cpp: Added.
(WebDOMEventListener::handleEvent):
(toWebKit):
* bindings/cpp/WebDOMEventTarget.cpp: Added.
(WebDOMEventTarget::WebDOMEventTargetPrivate::WebDOMEventTargetPrivate):
(WebDOMEventTarget::WebDOMEventTarget):
(WebDOMEventTarget::~WebDOMEventTarget):
(WebDOMEventTarget::impl):
(toWebCore):
(toWebKit):
* bindings/cpp/WebDOMEventTarget.h: Added.
* bindings/cpp/WebDOMHTMLDocumentCustom.cpp: Added.
(documentWrite):
(WebDOMHTMLDocument::write):
(WebDOMHTMLDocument::writeln):
* bindings/cpp/WebDOMNodeCustom.cpp: Added.
(WebDOMNode::insertBefore):
(WebDOMNode::replaceChild):
(WebDOMNode::removeChild):
(WebDOMNode::appendChild):
(WebDOMNode::addEventListener):
(WebDOMNode::removeEventListener):
* bindings/cpp/WebDOMObject.h: Added.
(WebDOMObject::WebDOMObject):
(WebDOMObject::~WebDOMObject):
* bindings/cpp/WebDOMString.cpp: Added.
(WebDOMString::reset):
(WebDOMString::assign):
(WebDOMString::length):
(WebDOMString::data):
(WebDOMString::utf8):
(WebDOMString::fromUTF8):
(WebDOMString::WebDOMString):
(WebDOMString::operator=):
(WebDOMString::operator WebCore::String):
(WebDOMString::operator WebCore::AtomicString):
(WebDOMString::equals):
* bindings/cpp/WebDOMString.h: Added.
(WebDOMString::~WebDOMString):
(WebDOMString::WebDOMString):
(WebDOMString::operator=):
(WebDOMString::isEmpty):
(WebDOMString::isNull):
* bindings/cpp/WebExceptionHandler.cpp: Added.
(globalExceptionHandler):
(webInstallExceptionHandler):
(webRaiseDOMException):
* bindings/cpp/WebExceptionHandler.h: Added.
(webDOMRaiseError):
* bindings/cpp/WebNativeEventListener.cpp: Added.
(WebNativeEventListener::WebNativeEventListener):
(WebNativeEventListener::~WebNativeEventListener):
(WebNativeEventListener::handleEvent):
(WebNativeEventListener::reportError):
(WebNativeEventListener::operator==):
* bindings/cpp/WebNativeEventListener.h: Added.
(WebNativeEventListener::create):
(WebNativeEventListener::cast):
* bindings/scripts/CodeGeneratorCPP.pm: Added.
* bindings/scripts/test/CPP: Added.
* bindings/scripts/test/CPP/WebDOMTestCallback.cpp: Added.
(WebDOMTestCallback::WebDOMTestCallbackPrivate::WebDOMTestCallbackPrivate):
(WebDOMTestCallback::WebDOMTestCallback):
(WebDOMTestCallback::impl):
(WebDOMTestCallback::~WebDOMTestCallback):
(WebDOMTestCallback::callbackWithClass1Param):
(WebDOMTestCallback::callbackWithClass2Param):
(WebDOMTestCallback::callbackWithNonBoolReturnType):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestCallback.h: Added.
* bindings/scripts/test/CPP/WebDOMTestInterface.cpp: Added.
(WebDOMTestInterface::WebDOMTestInterfacePrivate::WebDOMTestInterfacePrivate):
(WebDOMTestInterface::WebDOMTestInterface):
(WebDOMTestInterface::impl):
(WebDOMTestInterface::~WebDOMTestInterface):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestInterface.h: Added.
* bindings/scripts/test/CPP/WebDOMTestObj.cpp: Added.
(WebDOMTestObj::WebDOMTestObjPrivate::WebDOMTestObjPrivate):
(WebDOMTestObj::WebDOMTestObj):
(WebDOMTestObj::impl):
(WebDOMTestObj::~WebDOMTestObj):
(WebDOMTestObj::readOnlyIntAttr):
(WebDOMTestObj::readOnlyStringAttr):
(WebDOMTestObj::readOnlyTestObjAttr):
(WebDOMTestObj::intAttr):
(WebDOMTestObj::setIntAttr):
(WebDOMTestObj::longLongAttr):
(WebDOMTestObj::setLongLongAttr):
(WebDOMTestObj::unsignedLongLongAttr):
(WebDOMTestObj::setUnsignedLongLongAttr):
(WebDOMTestObj::stringAttr):
(WebDOMTestObj::setStringAttr):
(WebDOMTestObj::testObjAttr):
(WebDOMTestObj::setTestObjAttr):
(WebDOMTestObj::attrWithException):
(WebDOMTestObj::setAttrWithException):
(WebDOMTestObj::attrWithSetterException):
(WebDOMTestObj::setAttrWithSetterException):
(WebDOMTestObj::attrWithGetterException):
(WebDOMTestObj::setAttrWithGetterException):
(WebDOMTestObj::scriptStringAttr):
(WebDOMTestObj::voidMethod):
(WebDOMTestObj::voidMethodWithArgs):
(WebDOMTestObj::intMethod):
(WebDOMTestObj::intMethodWithArgs):
(WebDOMTestObj::objMethod):
(WebDOMTestObj::objMethodWithArgs):
(WebDOMTestObj::methodThatRequiresAllArgs):
(WebDOMTestObj::methodThatRequiresAllArgsAndThrows):
(WebDOMTestObj::serializedValue):
(WebDOMTestObj::methodWithException):
(WebDOMTestObj::addEventListener):
(WebDOMTestObj::removeEventListener):
(WebDOMTestObj::withDynamicFrame):
(WebDOMTestObj::withDynamicFrameAndArg):
(WebDOMTestObj::withDynamicFrameAndOptionalArg):
(WebDOMTestObj::withScriptStateVoid):
(WebDOMTestObj::withScriptStateObj):
(WebDOMTestObj::withScriptStateVoidException):
(WebDOMTestObj::withScriptStateObjException):
(WebDOMTestObj::methodWithOptionalArg):
(WebDOMTestObj::methodWithNonOptionalArgAndOptionalArg):
(WebDOMTestObj::methodWithNonOptionalArgAndTwoOptionalArgs):
(toWebCore):
(toWebKit):
* bindings/scripts/test/CPP/WebDOMTestObj.h: Added.
* css/StyleSheet.idl: Export helper method isCSSStyleSheet() for cpp bindings only.
* dom/CustomEvent.idl: Disabled for cpp bindings, needs arbitary input parameter handling support ('DOMObject' type).
* dom/Document.idl: Ignore getCSSCanvasContext() for cpp bindings and export helper method isHTMLDocument() (cpp bindings only).
* dom/Event.idl: Export isMutationEvent()/isMouseEvent()/isUIEvent() helpers for cpp bindings only.
* dom/EventListener.h: Add CPPEventListenerType.
* dom/Node.idl: addEventListener/removeEventListener need [Custom] flag for cpp bindings.
* dom/PopStateEvent.idl: Disabled just like CustomEvent, for the same reason ("any" argument type handling).
* html/HTMLCanvasElement.idl: Disable getContext() method for cpp bindings, as it's done for objc bindings.
* html/HTMLDocument.idl: Add [NoCPPCustom] marker for open(), as we're just autogenerating it.
* html/HTMLInputElement.idl: Disable valueAsDate() method for cpp bindings, as we're missing native 'Date' type support.
* html/TextMetrics.h: Add missing PassRefPtr.h include.
* html/canvas/CanvasRenderingContext2D.idl: Disable methods (setLineCap, etc..) for cpp bindings whose names clash with property setters.
* page/AbstractView.idl: Rename 'Media' type to 'StyleMedia' - this should have been done before.
* page/Location.idl: Disable several methods which would need a custom implementation for the cpp bindings.
* page/WebKitPoint.h: Add missing PassRefPtr.h include.
* storage/SQLResultSet.idl: Correct type from 'long' to 'long long', for cpp bindings only though as it wouldn't build on Chromium/V8.
* workers/DedicatedWorkerContext.idl: Disable postMessage() for now when using cpp bindings, would need custom code for us.
* workers/WorkerContext.idl: Hide constructors from cpp bindings.
2010-06-07 Julien Chaffraix <jchaffraix@webkit.org>
Reviewed by Alexey Proskuryakov.
Space should be allowed between -- and > in comment end
https://bugs.webkit.org/show_bug.cgi?id=21945
Implemented the HTML comment parsing algorithm so that we match HTML5 and
FF when parsing comments. Missing from this patch is
the parser errors, which will be added in a follow up patch.
Added tests cases for broken comments.
Tests: fast/parser/broken-comment-1.html
fast/parser/broken-comment-2.html
fast/parser/broken-comment-3.html
fast/parser/broken-comment-4.html
fast/parser/broken-comment-5.html
fast/parser/broken-comment-6.html
fast/parser/broken-comment-in-head-1.html
fast/parser/broken-comment-in-head-2.html
fast/parser/broken-comment-in-head-3.html
fast/parser/broken-comment-in-head-4.html
fast/parser/broken-comment-in-head-5.html
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::parseComment): Now we use a state machine
that matches the HTML5 specification.
(WebCore::HTMLTokenizer::emitCommentToken): This emits the comment token
and keep some of the original behavior as parseComment is called in wrong
context (inside a <title> for example). Added a more explicit comment about
this.
(WebCore::HTMLTokenizer::parseTag): Remove the handling of <!--> in quirks mode.
HTML5 specifies that we should accept this in strict mode too.
* html/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::): Added a new enum for the comment parsing state.
2010-06-07 Mahesh Kulakrni <mahesh.kulkarni@nokia.com>
Reviewed by Simon Hausmann.
[QT] QT_BEARER flag is not enabled on S60 properly
https://bugs.webkit.org/show_bug.cgi?id=39357
enable QT_BEARER for all platform based on qtmobility +
bearer module availability or for qt 4.7+
* WebCore.pri:
2010-06-07 Leon Clarke <leonclarke@google.com>
Reviewed by Jeremy Orlow.
Fix indexeddb idls in android makefile
https://bugs.webkit.org/show_bug.cgi?id=40169
No new tests. Android-specific build fix.
* Android.derived.v8bindings.mk:
2010-06-07 Andrei Popescu <andreip@google.com>
Reviewed by Jeremy Orlow.
[indexedDB] It is impossible to create object stores
https://bugs.webkit.org/show_bug.cgi?id=40054
No new tests. Layout tests will be added separately.
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_with_script_execution_context):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::):
(WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
* bindings/scripts/test/JS/JSTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.h:
* bindings/scripts/test/ObjC/DOMTestObj.mm:
(-[DOMTestObj withScriptExecutionContext]):
* bindings/scripts/test/TestObj.idl:
* bindings/scripts/test/V8/V8TestObj.cpp:
(WebCore::TestObjInternal::withScriptExecutionContextCallback):
(WebCore::):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::clear):
(WebCore::DOMWindow::indexedDB):
* storage/IDBCallbacks.h:
* storage/IDBDatabase.h:
* storage/IDBDatabaseImpl.cpp:
(WebCore::IDBDatabaseImpl::createObjectStore):
* storage/IDBDatabaseImpl.h:
* storage/IDBDatabaseRequest.cpp:
(WebCore::IDBDatabaseRequest::IDBDatabaseRequest):
(WebCore::IDBDatabaseRequest::createObjectStore):
* storage/IDBDatabaseRequest.h:
* storage/IDBDatabaseRequest.idl:
* storage/IDBObjectStore.cpp: Removed.
* storage/IDBObjectStore.h:
(WebCore::IDBObjectStore::~IDBObjectStore):
* storage/IDBObjectStoreImpl.cpp: Added.
(WebCore::IDBObjectStoreImpl::~IDBObjectStoreImpl):
(WebCore::IDBObjectStoreImpl::IDBObjectStoreImpl):
(WebCore::IDBObjectStoreImpl::indexNames):
(WebCore::IDBObjectStoreImpl::createIndex):
(WebCore::IDBObjectStoreImpl::index):
(WebCore::IDBObjectStoreImpl::removeIndex):
* storage/IDBObjectStoreImpl.h: Added.
(WebCore::IDBObjectStoreImpl::create):
(WebCore::IDBObjectStoreImpl::name):
(WebCore::IDBObjectStoreImpl::keyPath):
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
* storage/IDBObjectStoreRequest.h:
(WebCore::IDBObjectStoreRequest::create):
* storage/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* storage/IDBRequest.h:
* storage/IndexedDatabaseRequest.cpp:
(WebCore::IndexedDatabaseRequest::IndexedDatabaseRequest):
(WebCore::IndexedDatabaseRequest::open):
* storage/IndexedDatabaseRequest.h:
(WebCore::IndexedDatabaseRequest::create):
* storage/IndexedDatabaseRequest.idl:
2010-06-07 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Updated run-bindings-tests results.
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::constructTestInterface):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::jsTestObjPrototypeFunctionVoidMethod):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionIntMethod):
(WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethod):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgs):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionMethodWithException):
(WebCore::jsTestObjPrototypeFunctionCustomMethod):
(WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionCustomArgsAndException):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrame):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGesture):
(WebCore::jsTestObjPrototypeFunctionWithDynamicFrameAndUserGestureASAD):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
(WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod):
* bindings/scripts/test/JS/JSTestObj.h:
2010-06-07 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Implement JSON parsing for InspectorValue.
https://bugs.webkit.org/show_bug.cgi?id=40064
* inspector/InspectorValues.cpp:
(WebCore::):
(WebCore::InspectorValue::asBool):
(WebCore::InspectorValue::asNumber):
(WebCore::InspectorValue::asString):
(WebCore::InspectorValue::asObject):
(WebCore::InspectorValue::asArray):
(WebCore::InspectorValue::readJSON):
(WebCore::InspectorValue::writeJSON):
(WebCore::InspectorBasicValue::asBool):
(WebCore::InspectorBasicValue::asNumber):
(WebCore::InspectorBasicValue::writeJSON):
(WebCore::InspectorString::asString):
(WebCore::InspectorObject::asObject):
(WebCore::InspectorObject::getBool):
(WebCore::InspectorObject::getNumber):
(WebCore::InspectorObject::getString):
(WebCore::InspectorObject::getObject):
(WebCore::InspectorObject::getArray):
(WebCore::InspectorObject::get):
(WebCore::InspectorArray::asArray):
* inspector/InspectorValues.h:
(WebCore::InspectorObject::begin):
(WebCore::InspectorObject::end):
2010-06-07 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix text selection drawing.
https://bugs.webkit.org/show_bug.cgi?id=40221
The regression was introduced in r60169.
* platform/graphics/qt/FontQt.cpp:
(WebCore::drawTextCommon):
2010-06-07 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: should be possible to distinguish extension scripts from main world scripts
https://bugs.webkit.org/show_bug.cgi?id=40220
* bindings/js/ScriptDebugServer.cpp: remove global listeners set which is not used anymore.
(WebCore::ScriptDebugServer::dispatchDidParseSource): pass script wrold type to the listeners.
(WebCore::currentWorldType):
(WebCore::ScriptDebugServer::sourceParsed):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidParseSource):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didParseSource):
* inspector/InspectorController.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::parsedScriptSource):
* inspector/InspectorFrontend.h:
* inspector/ScriptDebugListener.h: pass type of the isolated world where the script was compiled to didParseSource.
(WebCore::):
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
* inspector/front-end/Script.js:
(WebInspector.Script):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.addScript):
(WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): use different style to highlight content scripts.
* inspector/front-end/inspector.css:
(#scripts-files option.extension-script):
* inspector/front-end/inspector.js:
(WebInspector.parsedScriptSource):
2010-06-06 MORITA Hajime <morrita@google.com>
Unreviewd, Chromium windows build fix.
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2010-06-06 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
ASSERTION FAILED with -webkit-appearance:progress-bar for non <progress> elements
https://bugs.webkit.org/show_bug.cgi?id=40158
paintProgressBar() and paintMeter() assumed given RenderObject is
RenderProgress or RenderMeter respectively, but arbitrary elements
can have -webkit-appearance: progress-bar and such elements
violates that assumption. So this change added type check before
downcasting the RenderObject.
* platform/qt/RenderThemeQt.cpp:
(WebCore::RenderThemeQt::paintProgressBar):
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintMeter):
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintProgressBar):
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintProgressBar):
* rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::paintProgressBar):
2010-06-06 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (Qt build fix pt 2).
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::findMethodIndex):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-06-06 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (Qt build fix).
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::findMethodIndex):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-06-06 Gavin Barraclough <barraclough@apple.com>
Reviewed by Sam Weinig.
Bug 40214 - Clean up error construction / throwing in JSC.
The one egregious insanity here is that creating an error requires
a VM-entry-esqe-host call (the string argument is wrapped as a JS
object & pushed on the RegisterFile, then unwrapped back to a
UString). Changing this also means you only require a global
object, not an ExecState, to create an error.
The methods to create error objects are also parameterized
requiring a switch on the type, which can be made cleaner and
faster by moving to a separate method per error type. Code to add
divot information to error had been duplicated, and is coalesced
back into a single function.
Convenience methods added to create & throw type & syntax error
with a default error message, since this is a common case.
Also, errors are currently thrown either using
"throwError(exec, error)" or "exec->setException(error)" - unify
on the former, since this is more commonly used. Add
"throwVMError(exec, error)" equivalents, as a convenience for
cases where the result was being wrapped in "JSValue::encode(...)".
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSArrayBufferConstructor.h:
(WebCore::construct):
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore::setWebGLArrayHelper):
* bindings/js/JSAudioConstructor.cpp:
(WebCore::constructAudio):
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::setFillColor):
(WebCore::JSCanvasRenderingContext2D::setStrokeColor):
(WebCore::JSCanvasRenderingContext2D::drawImage):
(WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
(WebCore::JSCanvasRenderingContext2D::setShadow):
(WebCore::JSCanvasRenderingContext2D::createPattern):
(WebCore::JSCanvasRenderingContext2D::fillText):
(WebCore::JSCanvasRenderingContext2D::strokeText):
* bindings/js/JSClipboardCustom.cpp:
(WebCore::JSClipboard::clearData):
(WebCore::JSClipboard::getData):
(WebCore::JSClipboard::setDragImage):
* bindings/js/JSDOMBinding.cpp:
(WebCore::setDOMException):
(WebCore::toJSSequence):
* bindings/js/JSDOMWrapper.cpp:
(WebCore::DOMObject::defineOwnProperty):
* bindings/js/JSDesktopNotificationsCustom.cpp:
(WebCore::JSNotificationCenter::requestPermission):
* bindings/js/JSEventSourceConstructor.cpp:
(WebCore::constructEventSource):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open):
* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::selectionStart):
(WebCore::JSHTMLInputElement::setSelectionStart):
(WebCore::JSHTMLInputElement::selectionEnd):
(WebCore::JSHTMLInputElement::setSelectionEnd):
(WebCore::JSHTMLInputElement::setSelectionRange):
* bindings/js/JSImageConstructor.cpp:
(WebCore::constructImage):
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::evaluate):
* bindings/js/JSMessageChannelConstructor.cpp:
(WebCore::JSMessageChannelConstructor::construct):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::fillMessagePortArray):
* bindings/js/JSOptionConstructor.cpp:
(WebCore::constructHTMLOptionElement):
* bindings/js/JSSVGMatrixCustom.cpp:
(WebCore::JSSVGMatrix::multiply):
* bindings/js/JSSharedWorkerConstructor.cpp:
(WebCore::constructSharedWorker):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::bufferData):
(WebCore::JSWebGLRenderingContext::bufferSubData):
(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContext::getParameter):
(WebCore::JSWebGLRenderingContext::getProgramParameter):
(WebCore::JSWebGLRenderingContext::getShaderParameter):
(WebCore::JSWebGLRenderingContext::getUniform):
(WebCore::JSWebGLRenderingContext::texImage2D):
(WebCore::JSWebGLRenderingContext::texSubImage2D):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
* bindings/js/JSWebSocketConstructor.cpp:
(WebCore::constructWebSocket):
* bindings/js/JSWebSocketCustom.cpp:
(WebCore::JSWebSocket::send):
* bindings/js/JSWorkerConstructor.cpp:
(WebCore::constructWorker):
* bindings/js/JSXMLHttpRequestConstructor.cpp:
(WebCore::constructXMLHttpRequest):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::open):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::BaseWalker::throwStackOverflow):
(WebCore::BaseWalker::throwInterruptedException):
(WebCore::SerializingTreeWalker::startArray):
(WebCore::SerializingTreeWalker::startObject):
* bindings/js/WorkerScriptController.cpp:
(WebCore::WorkerScriptController::setException):
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
* bridge/jni/jsc/JNIBridgeJSC.cpp:
(JavaField::dispatchValueFromInstance):
(JavaField::dispatchSetValueToInstance):
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::invokeMethod):
* bridge/objc/objc_instance.mm:
(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeMethod):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):
(JSC::Bindings::ObjcArray::setValueAt):
(JSC::Bindings::ObjcArray::valueAt):
(JSC::Bindings::callObjCFallbackObject):
* bridge/objc/objc_utility.h:
* bridge/objc/objc_utility.mm:
(JSC::Bindings::throwError):
* bridge/runtime_array.cpp:
(JSC::RuntimeArray::put):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::RuntimeObject::throwInvalidAccessError):
2010-06-06 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
hit testing does not respect clip paths
https://bugs.webkit.org/show_bug.cgi?id=15162
Test: svg/dynamic-updates/SVGClipPath-influences-hitTesting.html
Added a check, if a float point is not only in the shape/object boundaries
but also is not in the clipped away area of a clipPath.
* rendering/HitTestRequest.h:
(WebCore::HitTestRequest::):
(WebCore::HitTestRequest::svgClipContent):
* rendering/RenderPath.cpp:
(WebCore::RenderPath::fillContains):
(WebCore::RenderPath::nodeAtFloatPoint):
* rendering/RenderPath.h:
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtFloatPoint):
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
* rendering/RenderSVGResourceClipper.h:
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::nodeAtFloatPoint):
* rendering/SVGRenderSupport.cpp:
(WebCore::pointInClippingArea):
* rendering/SVGRenderSupport.h:
2010-06-06 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG Pattern/Gradient clean-up
https://bugs.webkit.org/show_bug.cgi?id=40205
Transformations of SVG Patterns and Gradients can be bundeled.
This calculation also needs just to be calculated once. It's not a great speed-up for most platforms,
but a clean-up and preparation for new features like vectorEffects and others.
Now, that we don't recalucluate the gradient and its transformations, it was necessary to add a way
to transform alreday existing gradients on Cairo. This is done in the same way like Skia transforms
gradients after they were created.
This patch doesn't change functionality, so no new tests added.
* platform/graphics/Gradient.cpp:
* platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::setPlatformGradientSpaceTransform):
* rendering/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/RenderSVGResourceGradient.h:
* rendering/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
(WebCore::RenderSVGResourcePattern::createTileImage):
(WebCore::RenderSVGResourcePattern::buildPattern):
* rendering/RenderSVGResourcePattern.h:
2010-06-05 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, typo/build fix.
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
2010-05-28 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Do not pass empty handles to v8.
https://bugs.webkit.org/show_bug.cgi?id=39896
Passing an empty handle to v8 results in a crash with a stack
trace that doesn't give us much information about the cause of the
crash. Instead, if we check the handles we pass to v8 and crash
when they are empty, we do not make things worse, and should get a
more informative stack trace.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/scripts/test/V8/V8TestCallback.cpp:
(WebCore::V8TestCallback::callbackWithClass1Param):
(WebCore::V8TestCallback::callbackWithClass2Param):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
2010-05-30 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Darin Adler.
Add a convenient helper getter for Frame* to RenderObject
https://bugs.webkit.org/show_bug.cgi?id=39928
document()->frame() is being called enough from RenderObject derivated classes
that it worth adding a helper Frame getter as a shortcut.
No behavior change, so no new tests.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::isOffScreen):
(WebCore::AccessibilityRenderObject::stringValue):
(WebCore::AccessibilityRenderObject::selection):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
* page/EventHandler.cpp:
(WebCore::canAutoscroll):
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintCustomHighlight):
(WebCore::InlineTextBox::paintTextMatchMarker):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintCaret):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::paintCustomHighlight):
* rendering/RenderDataGrid.cpp:
(WebCore::RenderDataGrid::isActive):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::flattenFrameSet):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::paintFocusRings):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::addDashboardRegions):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::~RenderLayer):
(WebCore::RenderLayer::panScrollFromPoint):
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::autoscroll):
(WebCore::RenderLayer::isActive):
(showLayerTree):
* rendering/RenderLayerBacking.cpp:
(WebCore::inspectorTimelineAgent):
* rendering/RenderListBox.cpp:
(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):
(WebCore::RenderListBox::panScroll):
(WebCore::RenderListBox::autoscroll):
(WebCore::RenderListBox::isActive):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::~RenderObject):
(WebCore::RenderObject::selectionBackgroundColor):
(WebCore::RenderObject::selectionForegroundColor):
(WebCore::RenderObject::destroy):
(WebCore::RenderObject::addDashboardRegions):
(WebCore::RenderObject::animation):
* rendering/RenderObject.h:
(WebCore::RenderObject::document):
(WebCore::RenderObject::frame):
2010-06-05 Jonathan Kliegman <kliegs@chromium.org>
Reviewed by Dirk Schulze.
SVG doesn't support rgba colors
https://bugs.webkit.org/show_bug.cgi?id=16183
Enabled processing of rgba, hsl and hsla color specifications
for SVG files. SVG spec calls for CSS2 but common usage and
other browsers suppor CSS3 colors being used in SVG files
Removed unused svg paramater from CSSParser::parseColorFromValue
Tests: svg/custom/fill-opacity-hsl.svg
svg/custom/fill-opacity-rgba.svg
* css/CSSParser.cpp:
(WebCore::CSSParser::parseColorFromValue):
* css/CSSParser.h:
* css/SVGCSSParser.cpp:
(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):
* svg/SVGColor.cpp:
(WebCore::SVGColor::colorFromRGBColorString):
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] ContextMenuItemQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39780
* platform/qt/ContextMenuItemQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] ContextMenuQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39779
* platform/qt/ContextMenuQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] DragDataQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39777
* platform/qt/DragDataQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] FileChooserQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39776
* platform/qt/FileChooserQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] FileSystemQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39775
* platform/qt/FileSystemQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] KURLQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39774
* platform/qt/KURLQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] LoggingQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39772
* platform/qt/LoggingQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] PlatformKeyboardEventQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39770
* platform/qt/PlatformKeyboardEventQt.cpp:
(WebCore::keyIdentifierForQtKeyCode):
(WebCore::windowsKeyCodeForKeyEvent):
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] PlatformScreenQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39768
* platform/qt/PlatformMouseEventQt.cpp:
(WebCore::PlatformMouseEvent::PlatformMouseEvent):
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] RenderThemeQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39767
* platform/qt/RenderThemeQt.cpp:
2010-06-05 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] ScrollbarQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39765
* platform/qt/ScrollbarQt.cpp:
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
This patch changes us from using a jump table for each character to
using absolute jumps between parser states. This appears to be about a
1% improvement on the parser bench mark (which is 1/10th of what we
need to catch the old parser).
I've kept the underlying logic as close to the old logic as possible.
This new form will make it easier to handle the input stream part of
the spec and to make further performance improvements.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::reset):
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::emitCurrentToken):
* html/HTML5Lexer.h:
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
HTML5 parser should be within 1% of old parser performance
https://bugs.webkit.org/show_bug.cgi?id=40172
Stop using adopt(). I think this function is cause us to do extra
mallocs that are hurting performance. Instead of caching AtomicString
on HTML5Token, just use the AtomicString on the old token. Also,
reserve inline capacity for 10 attributes.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::isAppropriateEndTag):
* html/HTML5Lexer.h:
* html/HTML5Token.h:
(WebCore::HTML5Token::beginStartTag):
(WebCore::HTML5Token::beginEndTag):
(WebCore::HTML5Token::beginCharacter):
(WebCore::HTML5Token::beginComment):
(WebCore::HTML5Token::beginDOCTYPE):
(WebCore::HTML5Token::name):
(WebCore::HTML5Token::characters):
(WebCore::HTML5Token::comment):
* html/HTML5TreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] ScrollbarThemeQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39764
* platform/qt/ScrollbarThemeQt.cpp:
(WebCore::scPart):
(WebCore::scrollbarPart):
(WebCore::styleOptionSlider):
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] SharedTimerQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39763
* platform/qt/SharedTimerQt.cpp:
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
WidgetQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39759
* platform/qt/WidgetQt.cpp:
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
TemporaryLinkStubsQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39761
* platform/qt/TemporaryLinkStubsQt.cpp:
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by Eric Seidel.
[Qt] SoundQt.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39762
* platform/qt/SoundQt.cpp:
2010-06-04 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Dirk Schulze.
Canvas createPattern(img, repetition) shouldn't throw INVALID_STATE_ERR when !img.complete
https://bugs.webkit.org/show_bug.cgi?id=40166
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-createpattern
Test: http/tests/misc/canvas-pattern-from-incremental-image.html (updated)
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern):
2010-06-04 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
[Qt] Localizations.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39773
* platform/qt/Localizations.cpp:
(WebCore::localizedMediaTimeDescription):
2010-06-04 Lyon Chen <liachen@rim.com>
Reviewed by Darin Adler.
ApplicationCacheStorage::storeNewestCache() Crash WebKit when openDatabase(true) failed
https://bugs.webkit.org/show_bug.cgi?id=40074
Adding m_database.isOpen() check for every openDatabase(true) call, this is needed because
openDatabase(true) could still fail, for example when cacheStorage is full or no longer available.
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::storeNewestCache):
2010-06-04 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60684.
http://trac.webkit.org/changeset/60684
https://bugs.webkit.org/show_bug.cgi?id=40196
This patch broke chromium reliability tests (Requested by
tonyg-cr on #webkit).
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
2010-06-04 Chris Fleizach <cfleizach@apple.com>
Reviewed by David Kilzer.
AX: need an aria-help
https://bugs.webkit.org/show_bug.cgi?id=40010
Test: accessibility/aria-help.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::helpText):
* html/HTMLAttributeNames.in:
2010-06-04 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Canvas arc() with zero radius should draw a line to the start point
https://bugs.webkit.org/show_bug.cgi?id=40164
Spec link:
http://www.whatwg.org/specs/web-apps/current-work/#dom-context-2d-arc
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::addArc):
2010-06-04 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] RenderThemeGtk leaks memory
https://bugs.webkit.org/show_bug.cgi?id=40168
Call gtk_widget_destroy in the RenderThemeGtk destructor. This cleans
up all widget resources when a theme is destroyed.
No new tests, because functionality has not changed.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::~RenderThemeGtk): Call gtk_widget_destroy on m_gtkWindow.
2010-06-04 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] RenderThemeGtk leaks memory
https://bugs.webkit.org/show_bug.cgi?id=40168
Remove the use of releaseRef to assign a value to a RefPtr. This results in
the original pointer taking an extra reference.
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::initMediaStyling): Remove the use of releaseRef here.
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Gavin Barraclough.
Try to fix the windows build
https://bugs.webkit.org/show_bug.cgi?id=40189
Suppress the "unreachable code" warning because we want to assert that
we don't reach certain code points.
* html/HTML5Lexer.cpp:
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
A couple more cases like the previous patch that I missed.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
Make all the state transitions in the machine explicit. This allows us
to remove all the break statements, which won't work correctly after we
change the macro definitions.
Also, while I was looking at every line of code, I fixed a bunch of the
one-line-if style errors introduces in my previous patches.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
Bug 40187 - Change function signature of NativeConstructor to match NativeFunction
Mostly for consistency, but constructor & args arguments are redundant,
and this will help if we wish to be able to JIT calls to more constructors.
* bindings/js/JSArrayBufferConstructor.cpp:
(WebCore::constructCanvasArrayBuffer):
* bindings/js/JSAudioConstructor.cpp:
(WebCore::constructAudio):
* bindings/js/JSEventSourceConstructor.cpp:
(WebCore::constructEventSource):
* bindings/js/JSFloatArrayConstructor.cpp:
(WebCore::constructCanvasFloatArray):
* bindings/js/JSImageConstructor.cpp:
(WebCore::constructImage):
* bindings/js/JSInt16ArrayConstructor.cpp:
(WebCore::constructCanvasShortArray):
* bindings/js/JSInt32ArrayConstructor.cpp:
(WebCore::constructCanvasIntArray):
* bindings/js/JSInt8ArrayConstructor.cpp:
(WebCore::constructCanvasByteArray):
* bindings/js/JSMessageChannelConstructor.cpp:
(WebCore::JSMessageChannelConstructor::construct):
* bindings/js/JSMessageChannelConstructor.h:
* bindings/js/JSOptionConstructor.cpp:
(WebCore::constructHTMLOptionElement):
* bindings/js/JSSharedWorkerConstructor.cpp:
(WebCore::constructSharedWorker):
* bindings/js/JSUint16ArrayConstructor.cpp:
(WebCore::constructCanvasUnsignedShortArray):
* bindings/js/JSUint32ArrayConstructor.cpp:
(WebCore::constructCanvasUnsignedIntArray):
* bindings/js/JSUint8ArrayConstructor.cpp:
(WebCore::constructCanvasUnsignedByteArray):
* bindings/js/JSWebKitCSSMatrixConstructor.cpp:
(WebCore::constructWebKitCSSMatrix):
* bindings/js/JSWebKitPointConstructor.cpp:
(WebCore::constructWebKitPoint):
* bindings/js/JSWebSocketConstructor.cpp:
(WebCore::constructWebSocket):
* bindings/js/JSWorkerConstructor.cpp:
(WebCore::constructWorker):
* bindings/js/JSXMLHttpRequestConstructor.cpp:
(WebCore::constructXMLHttpRequest):
* bindings/js/JSXSLTProcessorConstructor.cpp:
(WebCore::constructXSLTProcessor):
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/runtime_object.cpp:
(JSC::Bindings::callRuntimeConstructor):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
Change the intent of the loop to match what it's going to be once we
remove the loop. This is a whitespace only change that will make the
final diff much, much smaller. Sorry for the transient ugly style.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
Introduce ADVANCE_TO macro. This is the last macro we need to
introduce.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
Fix the rest of the RECONSUME_IN cases that were missed by our script.
Also, reorder some assigment to prepare for the ADVANCE_TO patch.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
This patch handles the FLUSH_AND_ADVANCE_TO case. Again, this patch
introduces style errors that will be fixed shortly.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
This patch handles the FLUSH_EMIT_AND_RESUME_IN case. This patch
introduces some bad style w.r.t. one-line if statements, but we'll fix
them all automatically in cleanup patch when we're done.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
More small steps. This patch deals with emitting tokens.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
The next step: using macros to delimit each state. Evetually, we're
going to change what these macros expand to.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5Lexer go fast
https://bugs.webkit.org/show_bug.cgi?id=40048
We're going to do this patch in small steps to make it easier to verify correctness.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-06-04 Jay Civelli <jcivelli@chromium.org>
Reviewed by David Levin.
[chromium] Adding support for the left and right Windows keys to the
NativeWebKeyboardEvent.
https://bugs.webkit.org/show_bug.cgi?id=39752
* platform/chromium/KeyCodeConversionGtk.cpp:
(WebCore::windowsKeyCodeForKeyEvent):
2010-06-04 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG filter on filter don't work
https://bugs.webkit.org/show_bug.cgi?id=32708
Any child of <text> was not allowed to use the same filter as the text root.
I couldn't found any reason in the SVG specification that legimitate this.
Only batik also doesn't allow the same filter on the text root as on it's childs,
while any other effect is still allowed.
I removed this limitation so that the result looks like the result on Firefox.
Test: svg/filters/filter-on-filter-for-text.svg
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::prepareToRenderSVGContent):
* rendering/SVGRenderSupport.h:
* rendering/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
(WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
(WebCore::SVGRootInlineBox::paint):
2010-06-04 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Factor PageCache functionality out of FrameLoader and into
PageCache itself.
https://bugs.webkit.org/show_bug.cgi?id=39382
Refactor only, so no new tests.
* history/PageCache.cpp:
(WebCore::pageCacheLogPrefix):
(WebCore::pageCacheLog):
(WebCore::logCanCacheFrameDecision):
(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
(WebCore::PageCache::canCache):
(WebCore::PageCache::add):
(WebCore::PageCache::get):
* history/PageCache.h:
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitIfReady):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::prepareForCachedPageRestore):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::FrameLoader::navigateToDifferentDocument):
* loader/FrameLoader.h:
(WebCore::FrameLoader::quickRedirectComing):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-06-04 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Web Inspector: it would be better to push object properties to JSON string in order of insertion.
https://bugs.webkit.org/show_bug.cgi?id=40140
* inspector/InspectorValues.cpp:
(WebCore::InspectorObject::writeJSON):
* inspector/InspectorValues.h:
(WebCore::InspectorObject::setBool):
(WebCore::InspectorObject::setNumber):
(WebCore::InspectorObject::setString):
(WebCore::InspectorObject::set):
2010-06-04 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Persist V8's ScriptData to the memory cache.
https://bugs.webkit.org/show_bug.cgi?id=38661
This stores V8's ScriptData in the memory cache and also causes the
network platform layer to be notified of the available cacheable
metadata.
Chromium's morejs benchmark shows a 3-4% improvement on fast hardware.
No new tests because no new functionality.
* bindings/v8/ScriptSourceCode.h:
(WebCore::ScriptSourceCode::ScriptSourceCode):
(WebCore::ScriptSourceCode::cachedScript):
* bindings/v8/V8Proxy.cpp:
(WebCore::V8Proxy::compileScript):
(WebCore::V8Proxy::precompileScript):
(WebCore::V8Proxy::evaluate):
* bindings/v8/V8Proxy.h:
2010-06-04 Tony Gentilcore <tonyg@chromium.org>
Reviewed by Adam Barth.
Utilize new takeFirst() method where appropriate.
https://bugs.webkit.org/show_bug.cgi?id=40089
No new tests because no new functionality.
* css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::addSubresourceStyleURLs):
* dom/XMLTokenizerLibxml2.cpp:
(WebCore::PendingCallbacks::callAndRemoveFirstCallback):
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::reset):
(WebCore::HTMLTokenizer::executeExternalScriptsIfReady):
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::advanceSubstring):
* storage/Database.cpp:
(WebCore::Database::scheduleTransaction):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::getNextStatement):
* storage/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::processPendingTransactions):
2010-06-04 Nikita Vasilyev <me@elv1s.ru>
Reviewed by Pavel Feldman.
Web Inspector: better Function.prototype.bind for the internal code.
In the "Event Listeners" pane show handler function instead of Function.prototype.bind.
https://bugs.webkit.org/show_bug.cgi?id=40080
* inspector/front-end/utilities.js:
(Function.prototype.bind.bound):
(Function.prototype.bind.bound.toString):
(Function.prototype.bind):
2010-06-04 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, fix Qt build.
Add references to a new file.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/WebKit.qrc:
2010-06-04 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Eliminate direct dependency of StylesSidebarPane on InspectorBackend
https://bugs.webkit.org/show_bug.cgi?id=40069
No new tests are needed, as this is a refactoring.
* inspector/front-end/CSSStyleModel.js: Added.
(WebInspector.CSSStyleModel):
(WebInspector.CSSStyleModel.prototype.getStylesAsync):
(WebInspector.CSSStyleModel.prototype.getComputedStyleAsync):
(WebInspector.CSSStyleModel.prototype.setRuleSelector):
(WebInspector.CSSStyleModel.prototype.addRule):
(WebInspector.CSSStyleModel.prototype.toggleStyleEnabled):
(WebInspector.CSSStyleModel.prototype.setCSSText):
(WebInspector.CSSStyleModel.prototype.applyStyleText):
* inspector/front-end/StylesSidebarPane.js:
(WebInspector.StylesSidebarPane.prototype.update.stylesCallback):
(WebInspector.StylesSidebarPane.prototype.update.computedStyleCallback):
(WebInspector.StylesSidebarPane.prototype.update):
(WebInspector.StylesSidebarPane.prototype._arrayContainsInheritedProperty):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
(WebInspector.StylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted.successCallback):
(WebInspector.BlankStylePropertiesSection.prototype.editingSelectorCommitted):
(WebInspector.StylePropertyTreeElement.prototype.):
(WebInspector.StylePropertyTreeElement.prototype):
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.loaded):
2010-06-04 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
[Qt] Compilation fails when compiling against Qt 4.7 and Qt Mobility is installed
https://bugs.webkit.org/show_bug.cgi?id=40116
CONFIG += mobility has the side-effect of pulling in mobility includes, which conflict
with Qt 4.7's bearer managenent includes and break the build.
* WebCore.pro:
2010-06-04 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
[chromium] Fix scrolling bug with pages using accelerated compositing.
https://bugs.webkit.org/show_bug.cgi?id=40037
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::drawLayers):
2010-06-04 Matthew Delaney <mdelaney@apple.com>
Reviewed by Darin Adler.
CG implementation needed for compression quality in canvas.toDataURL
https://bugs.webkit.org/show_bug.cgi?id=38492
Took toDataURL.jpeg.quality.basic.html test off of Skipped list. Passes.
Went the route of avoiding in-band signaling to flag the use of a quality
parameter or not. So, instead of simply passing the quality down as a
double, instead I pass a reference to the quality parameter from where
it comes in just after the JS bindings. Thus, no need for any global
constants to signify when the quality is not specified. Updated the other
platforms to support this (qt was on the only one currently with any
implementation).
* bindings/js/JSHTMLCanvasElementCustom.cpp: Moved range check logic for quality parameter down lower. Updated
call to toDataURL to use double* instead of just passing the quality directly.
(WebCore::JSHTMLCanvasElement::toDataURL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: Updated toDataURL call to pass double*
(WebCore::V8HTMLCanvasElement::toDataURLCallback):
* dom/CanvasSurface.cpp: Updated method prototype.
(WebCore::CanvasSurface::toDataURL):
* dom/CanvasSurface.h: Updated method prototype.
(WebCore::CanvasSurface::toDataURL):
* platform/graphics/ImageBuffer.h: Updated method signature to use double* for quality param.
* platform/graphics/cairo/ImageBufferCairo.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/cg/ImageBufferCG.cpp: Implemented support for quality parametejr when jpeg MIME type used.
(WebCore::jpegUTI):
(WebCore::utiFromMIMEType):
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/haiku/ImageBufferHaiku.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/qt/ImageBufferQt.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/skia/ImageBufferSkia.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/wince/ImageBufferWince.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/wx/ImageBufferWx.cpp: Updated prototype for consistency.
(WebCore::ImageBuffer::toDataURL):
2010-06-04 Alejandro G. Castro <alex@igalia.com>
Reviewed by Xan Lopez.
Leaks in listDirectory
https://bugs.webkit.org/show_bug.cgi?id=40008
Fixed both leaks.
* platform/gtk/FileSystemGtk.cpp:
(WebCore::listDirectory):
2010-06-04 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
[Chromium] get rid of named interceptor on HTMLDocument and introduce/remove accessors when named items get deleted/removed
https://bugs.webkit.org/show_bug.cgi?id=39877
This patch makes callbacks invoked on named items addition/removal
install API accessors and thus there is no more need in
named and indexed interceptors on HTMLDocument which
speeds up invocation of methods on document.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::checkDocumentWrapper):
(WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
(WebCore::getter):
(WebCore::V8DOMWindowShell::namedItemAdded):
(WebCore::V8DOMWindowShell::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::WrapInShadowObject):
(WebCore::V8HTMLDocument::GetNamedProperty):
(WebCore::V8HTMLDocument::allAccessorSetter):
(WebCore::toV8):
2010-06-04 Kwang Yul Seo <skyul@company100.net>
Reviewed by Kent Tamura.
Change filenameFromString to return CString
https://bugs.webkit.org/show_bug.cgi?id=39494
filenameFromString returns a newly allocated string and the caller must
free the string. GTK and EFL ports use g_free while all others ports use
fastFree. This is confusing because the same function behaves
differently with respect to ports. Change filenameFromString to return
CString.
* platform/FileSystem.cpp:
(WebCore::filenameFromString):
* platform/FileSystem.h:
* platform/efl/FileSystemEfl.cpp:
(WebCore::filenameFromString):
* platform/gtk/FileChooserGtk.cpp:
(WebCore::FileChooser::basenameForWidth):
* platform/gtk/FileSystemGtk.cpp:
(WebCore::filenameFromString):
(WebCore::filenameForDisplay):
(WebCore::fileExists):
(WebCore::deleteFile):
(WebCore::deleteEmptyDirectory):
(WebCore::getFileSize):
(WebCore::getFileModificationTime):
(WebCore::makeAllDirectories):
(WebCore::pathGetFileName):
(WebCore::directoryName):
(WebCore::listDirectory):
* platform/gtk/SharedBufferGtk.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::startHttp):
* platform/posix/SharedBufferPOSIX.cpp:
(WebCore::SharedBuffer::createWithContentsOfFile):
2010-06-04 No'am Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Fix compilation with QT_NO_FEATURE
https://bugs.webkit.org/show_bug.cgi?id=38324
The #ifdef QT_NO_GRAPHICSEFFECT was in the wrong place, would have
made AC not work at all.
No new tests.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::GraphicsLayerQtImpl::flushChanges):
2010-06-04 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arcTo.ensuresubpath.1.html
https://bugs.webkit.org/show_bug.cgi?id=38645
Path arcto function need to ensure there is subpath before it.
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::addArcTo):
2010-06-04 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] failed at http://philip.html5.org/tests/canvas/suite/tests/2d.path.arc.angle.3.html
https://bugs.webkit.org/show_bug.cgi?id=38537
For path.arc function handle span > 2PI
* platform/graphics/qt/PathQt.cpp:
(WebCore::Path::addArc):
2010-06-04 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Set attributes.stencil to false by default at context creation
https://bugs.webkit.org/show_bug.cgi?id=40090
* platform/graphics/GraphicsContext3D.h: Set default attributes.stencil to false.
(WebCore::GraphicsContext3D::Attributes::Attributes):
2010-06-03 Abhishek Arya <inferno@chromium.org>
Reviewed by Eric Carlson.
Fix a crash when trying to use an invalid media src url by
moving the isValid url checks to a central location in
isSafeToLoadURL function. Also added an empty string check
in DocumentLoader::didTellClientAboutLoad.
Test: media/invalid-media-url-crash.html
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::isSafeToLoadURL):
(WebCore::HTMLMediaElement::selectNextSourceChild):
(WebCore::HTMLMediaElement::getPluginProxyParams):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::didTellClientAboutLoad):
2010-06-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60642.
http://trac.webkit.org/changeset/60642
https://bugs.webkit.org/show_bug.cgi?id=40151
Broke rendering of border images on rotated elements
(Requested by jamesr on #webkit).
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
* platform/graphics/GraphicsContext.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintNinePieceImage):
2010-06-03 Damian Kaleta <dkaleta@apple.com>
Reviewed by Beth Dakin.
Pixel cracks in border images when drawing with a scale factor > 1
<rdar://problem/7994266>pixel cracks in border images
https://bugs.webkit.org/show_bug.cgi?id=15720
* platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
* platform/graphics/GraphicsContext.h: Added two new methods to support drawing using FloatRect.
If the boolean flag roundToPixels is true, the pixels are adjusted with the pixel boundaries.
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintNinePieceImage):
2010-06-03 James Robinson <jamesr@chromium.org>
Reviewed by Dan Bernstein.
Take container's scroll offset and clip into account when initializing LayoutState
https://bugs.webkit.org/show_bug.cgi?id=38506
When doing a subtree layout, the initial LayoutState creation needs to
take the layout root container's offset and its scroll offset into account
to create the initial offset. Otherwise if a subtree layout occurs
for a layout root whose container has a non-zero scroll offset
the LayoutState's offset and clip are wrong, resulting in a mispaint.
See the test cases for examples.
Tests: fast/repaint/layout-state-scrolloffset.html
fast/repaint/layout-state-scrolloffset2.html
fast/repaint/layout-state-scrolloffset3.html
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
2010-06-03 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (speculative Qt build fix II).
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-06-03 Gavin Barraclough <barraclough@apple.com>
Reviewed by NOBODY (speculative Qt build fix).
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-06-02 Gavin Barraclough <barraclough@apple.com>
Reviewed by Oliver Hunt.
Bug 40094 - The return type of NativeFunction should be EncodedJSValue
On Windows & Linux, using JSVALUE32_64, EncodedJSValue is returned in registers, but JSValue is not.
* bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
* bindings/js/JSCustomXPathNSResolver.cpp:
(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
* bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::callHTMLAllCollection):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::callHTMLCollection):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::InjectedScriptHost::createInjectedScript):
* bindings/js/JSNodeFilterCondition.cpp:
(WebCore::JSNodeFilterCondition::acceptNode):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::callNodeList):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::callPlugin):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::create):
(WebCore::ScheduledAction::executeFunctionInContext):
* bindings/js/ScriptFunctionCall.cpp:
(WebCore::ScriptFunctionCall::call):
* bindings/js/SerializedScriptValue.cpp:
(WebCore::SerializingTreeWalker::convertIfTerminal):
* bindings/objc/WebScriptObject.mm:
(-[WebScriptObject callWebScriptMethod:withArguments:]):
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/NP_jsobject.cpp:
(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Construct):
* bridge/jni/jni_jsobject.mm:
(JavaJSObject::call):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::callRuntimeObject):
2010-06-03 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60614.
http://trac.webkit.org/changeset/60614
https://bugs.webkit.org/show_bug.cgi?id=40123
It made fast/dom/Window/window-postmessage-clone.html fail on
Mac bots (Requested by Ossy on #webkit).
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::toV8):
* dom/Document.cpp:
(WebCore::Document::createEvent):
(WebCore::Document::addListenerTypeIfNeeded):
* dom/Document.h:
(WebCore::Document::):
* dom/Document.idl:
* dom/Element.h:
* dom/Element.idl:
* dom/Event.cpp:
(WebCore::Event::fromUserGesture):
* dom/Event.h:
* dom/EventNames.h:
* dom/TransformActionEvent.cpp: Removed.
* dom/TransformActionEvent.h: Removed.
* dom/TransformActionEvent.idl: Removed.
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2010-06-03 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: show "Object" as description for values with anonymous constructor
https://bugs.webkit.org/show_bug.cgi?id=40121
* inspector/front-end/InjectedScript.js:
(injectedScriptConstructor):
2010-06-03 Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix NPAPI support on Mac OS X/Cocoa-32
qt_mac_window_for() returns a NSWindow on Cocoa, so we were
passing in a NSWindow instead of a WindowRef as part of the
NP_CGContext.
https://bugs.webkit.org/show_bug.cgi?id=38762
* WebCore.gypi: Reflect rename
* WebCore.pro: Reflect rename
* plugins/mac/PluginViewMac.cpp: Renamed to PluginViewMac.mm
and fix bug by getting the Carbon windowRef from the NSWindow.
* wscript: Reflect rename
2010-06-03 Kim Grönholm <kim.1.gronholm@nokia.com>
Reviewed by Simon Hausmann.
Add TransformActionEvent support
https://bugs.webkit.org/show_bug.cgi?id=39757
Added only the necessary TransformAction event interfaces and not e.g.
any eventhandler hooks that generate and dispatch them.
Test: fast/events/transformaction/create-transformaction-event.html
More tests will be added with the machinery that generates and
dispatches these events.
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.mk:
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* bindings/generic/RuntimeEnabledFeatures.cpp:
* bindings/generic/RuntimeEnabledFeatures.h:
(WebCore::RuntimeEnabledFeatures::transformactionEnabled):
(WebCore::RuntimeEnabledFeatures::setTransformActionEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionstartEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionupdateEnabled):
(WebCore::RuntimeEnabledFeatures::ontransformactionendEnabled):
* bindings/js/JSEventCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8EventCustom.cpp:
(WebCore::toV8):
* dom/Document.cpp:
(WebCore::Document::createEvent):
(WebCore::Document::addListenerTypeIfNeeded):
* dom/Document.h:
(WebCore::Document::):
* dom/Document.idl:
* dom/Element.h:
* dom/Element.idl:
* dom/Event.cpp:
(WebCore::Event::isTransformActionEvent):
(WebCore::Event::fromUserGesture):
* dom/Event.h:
* dom/EventNames.h:
* dom/TransformActionEvent.cpp: Added.
(WebCore::TransformActionEvent::TransformActionEvent):
(WebCore::TransformActionEvent::initTransformActionEvent):
* dom/TransformActionEvent.h: Added.
(WebCore::TransformActionEvent::create):
(WebCore::TransformActionEvent::translateX):
(WebCore::TransformActionEvent::translateY):
(WebCore::TransformActionEvent::translateSpeedX):
(WebCore::TransformActionEvent::translateSpeedY):
(WebCore::TransformActionEvent::scale):
(WebCore::TransformActionEvent::scaleSpeed):
(WebCore::TransformActionEvent::rotate):
(WebCore::TransformActionEvent::rotateSpeed):
(WebCore::TransformActionEvent::TransformActionEvent):
(WebCore::TransformActionEvent::isTransformActionEvent):
* dom/TransformActionEvent.idl: Added.
* html/HTMLAttributeNames.in:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseMappedAttribute):
* page/DOMWindow.h:
* page/DOMWindow.idl:
2010-06-03 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: a number of fixes that make InspectorController
happy with null redirects.
https://bugs.webkit.org/show_bug.cgi?id=40109
* inspector/InspectorController.cpp:
(WebCore::InspectorController::willSendRequest):
(WebCore::InspectorController::didReceiveResponse):
(WebCore::InspectorController::didReceiveContentLength):
(WebCore::InspectorController::didFinishLoading):
(WebCore::InspectorController::didFailLoading):
2010-06-03 Pavel Feldman <pfeldman@chromium.org>
Not reviewed. Rolling out aggressive cache part of the r60391
described in the bug below. It was orthogonal to the rest of
the patch and caused regression.
https://bugs.webkit.org/show_bug.cgi?id=37364
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::drawResampledBitmap):
2010-06-02 Darin Fisher <darin@chromium.org>
Reviewed by Brady Eidson.
location.href and outgoing referrer not updated properly by
pushState/replaceState
https://bugs.webkit.org/show_bug.cgi?id=40027
Tests: fast/loader/stateobjects/pushstate-updates-location.html
fast/loader/stateobjects/replacestate-updates-location.html
http/tests/navigation/pushstate-updates-referrer.html
http/tests/navigation/replacestate-updates-referrer.html
* dom/Document.cpp:
(WebCore::Document::updateURLForPushOrReplaceState):
Update the FrameLoader's notion of the current URL as well!
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):
Use the 'url' parameter instead of m_URL since m_URL might have
changed during the handling of the PopState event. Eventually,
this will become irrelevant since the PopState event should be
dispatched asynchronously, but just in case we patch HashChange
to be asynchronous before PopState, this change would be needed.
2010-06-02 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
REGRESSION(60409): document.write is not synchronous when using the HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=40047
The HTML5 spec states that we should "spin the event loop" while
waiting for stylesheets to load. Currently we do that by yielding
out of the parser when stylesheets are loading. Because it was easy
we made inline <scripts> yield for stylesheet loads as well. However,
this caused document.write() to return after encountering the first
inline <script> tag in many cases which is incorrect. document.write
is supposed to block until the entire document is parsed (including)
executing inline script tags. To match the exiting parser, we'll just
make inline <script> tags not block on stylesheets for now.
This is tested by WebCore/benchmarks/html-parser.html as well
as likely several other tests in LayoutTests which we haven't
triaged yet.
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::executeScript):
- ASSERT that either stylesheets have loaded or we're executing an
inline <script> tag.
(WebCore::HTML5ScriptRunner::runScript):
- Remove the code to block inline <script> tags on stylesheet loads.
2010-06-02 MORITA Hajime <morrita@google.com>
Unreviewd, Chromium windows build fix.
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2010-06-02 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
[Chromium] Linux: progress bar image pieces should be painted with same resampling mode
https://bugs.webkit.org/show_bug.cgi?id=40045
computeResamplingMode(), used by Image::drawPattern() and
BitmapImage::draw(), chooses an image resampling mode based on the
size of given image and the destination rectangle. But when
painting single component (i.e. a progress bar) from multiple
images, it can choose different resampling modes for images of
same component. That difference creates unexpected visual artifacts
like seams between images of single component.
This change introduced "image resampling hint" to allow callers to
control the resampling mode. Using the hint,
RenderThemeChromiumSkia now able to hold same resampling mode
during draw a progress bar.
No new tests. Expectations will come after ENABLE_PROGRESS_BAR get
enabled on chromium.
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::computeResamplingMode):
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::save):
(PlatformContextSkia::setImageResamplingHint): Added
(PlatformContextSkia::clearImageResamplingHint): Added
(PlatformContextSkia::hasImageResamplingHint): Added
(PlatformContextSkia::imageResamplingHint): Added
* platform/graphics/skia/PlatformContextSkia.h:
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::paintProgressBar):
2010-06-03 MORITA Hajime <morrita@google.com>
Reviewed by Kent Tamura.
[Chromium] Support HTML5 <progress> element on Linux.
https://bugs.webkit.org/show_bug.cgi?id=37310
Implemented RenderThemeChromiumSkia::paintProgressBar(), extracing
determinateProgressValueRectFor() from RenderThemeChromiumWin to
RenderThemeChromiumSkia
No new tests. Expectations will come after ENABLE_PROGRESS_BAR get
enabled on chromium.
* rendering/RenderThemeChromiumSkia.cpp:
(WebCore::RenderThemeChromiumSkia::determinateProgressValueRectFor):
(WebCore::RenderThemeChromiumSkia::indeterminateProgressValueRectFor):
(WebCore::RenderThemeChromiumSkia::animationRepeatIntervalForProgressBar):
(WebCore::RenderThemeChromiumSkia::animationDurationForProgressBar):
(WebCore::RenderThemeChromiumSkia::paintProgressBar):
(WebCore::RenderThemeChromiumSkia::progressValueRectFor):
* rendering/RenderThemeChromiumSkia.h:
* rendering/RenderThemeChromiumWin.cpp:
(WebCore::RenderThemeChromiumWin::paintProgressBar):
2010-06-02 Nico Weber <thakis@chromium.org>
Reviewed by Simon Fraser.
Scroll events are sent twice per keypress for ports that don't have a platformWidget scrollbar
https://bugs.webkit.org/show_bug.cgi?id=39918
This was regressed by http://trac.webkit.org/changeset/58615 . Fix this by slightly tweaking
that patch.
Test: editing/input/page-up-down-scrolls.html
* page/FrameView.cpp:
(WebCore::FrameView::scrollPositionChanged):
* page/FrameView.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::valueChanged):
* platform/ScrollView.h:
(WebCore::ScrollView::repaintFixedElementsAfterScrolling):
2010-06-02 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: use platform-specific key designations in shortcuts help for mac
https://bugs.webkit.org/show_bug.cgi?id=39158
* inspector/front-end/KeyboardShortcut.js:
(WebInspector.KeyboardShortcut.shortcutToString):
(WebInspector.KeyboardShortcut._keyName):
(WebInspector.KeyboardShortcut._modifiersToString):
* inspector/front-end/inspector.js:
(WebInspector._registerShortcuts):
2010-06-02 Kenneth Russell <kbr@google.com>
Reviewed by Darin Fisher.
Enable WebGL on more platforms even if accelerated compositing is disabled
https://bugs.webkit.org/show_bug.cgi?id=40085
Conditionalize the code which prevents a WebGL rendering context
from being created if accelerated compositing is disabled.
Currently Chromium is the only port which will create a context if
accelerated compositing is disabled; other ports may opt in to
this code path if desired.
Tested with existing WebGL layout tests in Safari and Chromium on
Mac OS X.
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::getContext):
2010-06-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60580.
http://trac.webkit.org/changeset/60580
https://bugs.webkit.org/show_bug.cgi?id=40087
This broke dragging links if the selection was in a
contentEditable element. (Requested by arv on #webkit).
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded):
2010-06-02 Erik Arvidsson <arv@chromium.org>
Reviewed by Ojan Vafai.
REGRESSION: Weird focus behavior affects quoting on University of Washington message board system
https://bugs.webkit.org/show_bug.cgi?id=38548
Test: editing/selection/click-in-focusable-link-should-not-clear-selection.html
* page/FocusController.cpp:
(WebCore::clearSelectionIfNeeded):
2010-06-02 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
Just disable the current version of multi-column layout completely when the new
pagination model is in effect.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::setDesiredColumnCountAndWidth):
2010-06-02 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
Turn off unforced page breaking at paint time when the new page breaking model is being used.
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::paint):
2010-06-02 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
Don't check page break properties at paint time if we're using the new page breaking model.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintChildren):
2010-06-02 Nate Chapin <japhet@chromium.org>
Reviewed by Dimitri Glazkov.
[V8] Fix an infinite recursion crash when trying to wrap
media elements without a media player.
No test because there isn't a good way to ensure the media player
is off.
* dom/make_names.pl: Call, e.g., V8HTMLElement::wrap(HTMLElement*)
instead of toV8(HTMLElement*).
2010-06-02 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Darin Adler.
Notification object ref counting is not correct.
https://bugs.webkit.org/show_bug.cgi?id=39998
Return PassRefPtr<Notification> instead of a raw pointer from the create methods
for Web Notifications.
No new tests are needed, as existing tests show the problem when sending the
"display" event asynchronously.
* notifications/Notification.h:
(WebCore::Notification::create):
* notifications/NotificationCenter.h:
(WebCore::NotificationCenter::createHTMLNotification):
(WebCore::NotificationCenter::createNotification):
2010-06-02 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: add Console API for retrieving memory stats
Add 'console.memory' property which returns an object. Currently
it has two fields: totalJSHeapSize and usedJSHeapSize. Later, it can be
extended for reporting total browser's memory consumption.
https://bugs.webkit.org/show_bug.cgi?id=39646
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSBindingsAllInOne.cpp:
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::memory):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::memoryAccessorGetter):
* page/Console.h:
* page/Console.idl:
* page/MemoryInfo.cpp: Added.
(WebCore::MemoryInfo::MemoryInfo):
* page/MemoryInfo.h: Added.
(WebCore::MemoryInfo::create):
(WebCore::MemoryInfo::totalJSHeapSize):
(WebCore::MemoryInfo::usedJSHeapSize):
* page/MemoryInfo.idl: Added.
2010-06-02 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: support "Continue to Here" in debugger
https://bugs.webkit.org/show_bug.cgi?id=39953
* English.lproj/localizedStrings.js:
* inspector/front-end/BreakpointManager.js:
(WebInspector.BreakpointManager.prototype.setOneTimeBreakpoint):
(WebInspector.BreakpointManager.prototype.removeOneTimeBreakpoint):
(WebInspector.BreakpointManager.prototype.addBreakpoint):
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView):
(WebInspector.ScriptView.prototype._continueToLine):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel.prototype.continueToLine):
(WebInspector.ScriptsPanel.prototype.debuggerPaused):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView):
(WebInspector.SourceView.prototype._continueToLine):
(WebInspector.SourceView.prototype.updateLocalContent):
2010-06-02 Mikhail Naganov <mnaganov@chromium.org>
Unreviewed, rolling out r60563.
http://trac.webkit.org/changeset/60563
https://bugs.webkit.org/show_bug.cgi?id=39646
windows build failed
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSConsoleCustom.cpp:
* bindings/v8/custom/V8ConsoleCustom.cpp:
* page/Console.h:
* page/Console.idl:
* page/MemoryInfo.cpp: Removed.
* page/MemoryInfo.h: Removed.
* page/MemoryInfo.idl: Removed.
2010-06-02 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: add Console API for retrieving memory stats
Add 'console.memory' property which returns an object. Currently
it has two fields: totalJSHeapSize and usedJSHeapSize. Later, it can be
extended for reporting total browser's memory consumption.
https://bugs.webkit.org/show_bug.cgi?id=39646
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::memory):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::memoryAccessorGetter):
* page/Console.h:
* page/Console.idl:
* page/MemoryInfo.cpp: Added.
(WebCore::MemoryInfo::MemoryInfo):
* page/MemoryInfo.h: Added.
(WebCore::MemoryInfo::create):
(WebCore::MemoryInfo::totalJSHeapSize):
(WebCore::MemoryInfo::usedJSHeapSize):
* page/MemoryInfo.idl: Added.
2010-06-02 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: add test for resource parameters.
https://bugs.webkit.org/show_bug.cgi?id=40026
Test: http/tests/inspector/resource-parameters.html
* inspector/front-end/HAREntry.js:
(WebInspector.HAREntry.prototype._buildParameters):
* inspector/front-end/Resource.js:
(WebInspector.Resource.prototype._parseParameters):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshParms):
2010-06-02 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix make install on Symbian for headers in package builds when INSTALL_HEADERS is not defined
First we wrote inst_headers.output with $$[QT_INSTALL_HEADERS] and then
overwrote it with the $$INSTALL_HEADERS variant without checking if the
variable was set.
Fixed and cleaned up the logic of falling back to $$[QT_INSTALL_HEADERS].
* WebCore.pro:
2010-06-02 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Style fixes for the generated code in DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=39949
Get rid of extra spaces and wrong indentation in the generated
code.
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(webkit_dom_test_callback_callback_with_class1param):
(webkit_dom_test_callback_callback_with_class2param):
(webkit_dom_test_callback_callback_with_non_bool_return_type):
(webkit_dom_test_callback_set_property):
(webkit_dom_test_callback_get_property):
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(webkit_dom_test_interface_set_property):
(webkit_dom_test_interface_get_property):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(webkit_dom_test_obj_void_method):
(webkit_dom_test_obj_void_method_with_args):
(webkit_dom_test_obj_int_method):
(webkit_dom_test_obj_int_method_with_args):
(webkit_dom_test_obj_obj_method):
(webkit_dom_test_obj_obj_method_with_args):
(webkit_dom_test_obj_method_that_requires_all_args):
(webkit_dom_test_obj_method_that_requires_all_args_and_throws):
(webkit_dom_test_obj_serialized_value):
(webkit_dom_test_obj_method_with_exception):
(webkit_dom_test_obj_with_dynamic_frame):
(webkit_dom_test_obj_with_dynamic_frame_and_arg):
(webkit_dom_test_obj_with_dynamic_frame_and_optional_arg):
(webkit_dom_test_obj_with_dynamic_frame_and_user_gesture):
(webkit_dom_test_obj_with_dynamic_frame_and_user_gesture_asad):
(webkit_dom_test_obj_with_script_state_void):
(webkit_dom_test_obj_with_script_state_obj):
(webkit_dom_test_obj_with_script_state_void_exception):
(webkit_dom_test_obj_with_script_state_obj_exception):
(webkit_dom_test_obj_method_with_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_optional_arg):
(webkit_dom_test_obj_method_with_non_optional_arg_and_two_optional_args):
(webkit_dom_test_obj_get_read_only_int_attr):
(webkit_dom_test_obj_get_read_only_string_attr):
(webkit_dom_test_obj_get_read_only_test_obj_attr):
(webkit_dom_test_obj_get_int_attr):
(webkit_dom_test_obj_set_int_attr):
(webkit_dom_test_obj_get_long_long_attr):
(webkit_dom_test_obj_set_long_long_attr):
(webkit_dom_test_obj_get_unsigned_long_long_attr):
(webkit_dom_test_obj_set_unsigned_long_long_attr):
(webkit_dom_test_obj_get_string_attr):
(webkit_dom_test_obj_set_string_attr):
(webkit_dom_test_obj_get_test_obj_attr):
(webkit_dom_test_obj_set_test_obj_attr):
(webkit_dom_test_obj_get_attr_with_exception):
(webkit_dom_test_obj_set_attr_with_exception):
(webkit_dom_test_obj_get_attr_with_setter_exception):
(webkit_dom_test_obj_set_attr_with_setter_exception):
(webkit_dom_test_obj_get_attr_with_getter_exception):
(webkit_dom_test_obj_set_attr_with_getter_exception):
(webkit_dom_test_obj_get_script_string_attr):
(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
2010-06-02 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Added conversion of inspector's resource representation into HAR.
Moved common resource accessors from ResourceView to Resource.
https://bugs.webkit.org/show_bug.cgi?id=30567
Test: http/tests/inspector/resource-har-conversion.html
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/HAREntry.js: Added.
(WebInspector.HAREntry):
(WebInspector.HAREntry.prototype.build):
(WebInspector.HAREntry.prototype._buildRequest):
(WebInspector.HAREntry.prototype._buildResponse):
(WebInspector.HAREntry.prototype._buildContent):
(WebInspector.HAREntry.prototype._buildTimings):
(WebInspector.HAREntry.prototype._buildHeaders):
(WebInspector.HAREntry.prototype._buildPostData):
(WebInspector.HAREntry.prototype._buildParameters):
(WebInspector.HAREntry.prototype._buildParameter):
(WebInspector.HAREntry.prototype._toMilliseconds):
* inspector/front-end/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.set url):
(WebInspector.Resource.prototype.get receiveDuration):
(WebInspector.Resource.prototype.requestHeaderValue):
(WebInspector.Resource.prototype.get requestFormData):
(WebInspector.Resource.prototype.set requestFormData):
(WebInspector.Resource.prototype.responseHeaderValue):
(WebInspector.Resource.prototype.get queryParameters):
(WebInspector.Resource.prototype.get formParameters):
(WebInspector.Resource.prototype._parseParameters):
(WebInspector.Resource.prototype._headerValue):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshQueryString):
(WebInspector.ResourceView.prototype._refreshFormData):
(WebInspector.ResourceView.prototype._refreshParms):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2010-06-02 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60547.
http://trac.webkit.org/changeset/60547
https://bugs.webkit.org/show_bug.cgi?id=40051
It made fast/overflow/overflow-with-local-background-
attachment.html crash (Requested by Ossy on #webkit).
* notifications/Notification.h:
(WebCore::Notification::create):
* notifications/NotificationCenter.h:
(WebCore::NotificationCenter::createHTMLNotification):
(WebCore::NotificationCenter::createNotification):
2010-06-02 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 parser does not track line numbers
https://bugs.webkit.org/show_bug.cgi?id=39984
This adds rudimentary line-number tracking to the HTML5Lexer.
We'll still need to handle \r\n cases eventually, but this
fixes the vast majority of our line-number related failures.
Fixes 268 layout tests. :)
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::reset):
- Reset m_lineNumber to 0.
(WebCore::HTML5Lexer::consumeEntity):
- Pass m_lineNumber to advance().
(WebCore::HTML5Lexer::nextToken):
- Pass m_lineNumber to advance().
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::lineNumber):
- Expose m_lineNumber for HTML5Tokenizer.
(WebCore::HTML5Lexer::columnNumber):
- Mirrors the implementation in the old HTMLTokenizer.
we might some day support column number tracking in
the Lexer. It certainly would be possible.
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::HTML5ScriptRunner):
- ASSERT we're passed a host.
(WebCore::HTML5ScriptRunner::sourceFromPendingScript):
- Use PendingScript.startingLineNumber when PendingScript is an inline script.
(WebCore::HTML5ScriptRunner::execute):
- Now expects a start line number passed from the TreeBuilder.
(WebCore::HTML5ScriptRunner::runScript):
- Now expects a start line number.
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
- Track startingLineNumber for any inline script.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::begin):
- Add a FIXME. The old HTMLTokenizer resets its "lexer" state here.
(WebCore::HTML5Tokenizer::pumpLexer):
- Pass scriptStartLine to the HTML5ScriptRunner
(WebCore::HTML5Tokenizer::lineNumber):
- Implementation for Tokenizer.h
(WebCore::HTML5Tokenizer::columnNumber):
- Implementation for Tokenizer.h
* html/HTML5Tokenizer.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
- Initialize the new line number tracking variables.
(WebCore::HTML5TreeBuilder::handleScriptEndTag):
- Save off the line number from the start tag to pass to the ScriptRunner.
(WebCore::HTML5TreeBuilder::takeScriptToProcess):
- Return the line number from the start tag.
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
- Save off the line number of ever script start tag we see.
* html/HTML5TreeBuilder.h:
- Keep both the line number of the last start tag, and the
line number of the script we know we're expecting our caller to
run before resuming parsing. These are separate to keep the code
clean, especially since the last script start tag line number is
a hack specific to using the old HTMLParser.
2010-06-02 Joseph Pecoraro <joepeck@webkit.org>
Reviewed by Pavel Feldman.
Web Inspector: Timeline should nicely format the Timer timeout
https://bugs.webkit.org/show_bug.cgi?id=40040
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent): Format the Timer's timeout time.
2010-06-02 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
[Chromium] Clamp dirtyRect updates of composited layer contents to the size
of the layer to avoid writing outside texture bounds.
https://bugs.webkit.org/show_bug.cgi?id=40030
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::updateTextureContents):
2010-06-02 Yael Aharon <yael.aharon@nokia.com>
Reviewed by Darin Adler.
Notification object ref counting is not correct.
https://bugs.webkit.org/show_bug.cgi?id=39998
Return PassRefPtr<Notification> instead of a raw pointer from the create methods
for Web Notifications.
No new tests are needed, as existing tests show the problem when sending the
"display" event asynchronously.
* notifications/Notification.h:
(WebCore::Notification::create):
* notifications/NotificationCenter.h:
(WebCore::NotificationCenter::createHTMLNotification):
(WebCore::NotificationCenter::createNotification):
2010-06-02 Qi Zhang <qi.2.zhang@nokia.com>
Reviewed by Dirk Schulze.
[Qt] Image shadow doesn't work
https://bugs.webkit.org/show_bug.cgi?id=37804
Implement the code for image shadow
* platform/graphics/qt/ImageQt.cpp:
(WebCore::BitmapImage::draw):
2010-06-02 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Darin Fisher.
Adding the precision qualifier to fragment shaders used by the GL
compositor in chromium to turn them into valid GLSL ES.
https://bugs.webkit.org/show_bug.cgi?id=40022
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::initializeSharedGLObjects):
2010-06-02 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by David Levin.
Fix type qualifier is meaningless on cast type in SVGFEColorMatrixElement::build
https://bugs.webkit.org/show_bug.cgi?id=40015
No new tests as there is no new functionality.
Remove const from the cast type.
* svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::build):
2010-06-02 Sterling Swigart <sswigart@google.com>
Reviewed by David Levin.
Image Resizer Patch 0: Added compilation argument to conditionally compile pending patches.
https://bugs.webkit.org/show_bug.cgi?id=39906
* Configurations/FeatureDefines.xcconfig:
* GNUmakefile.am:
* WebCore.pri:
2010-06-01 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG repaintRect should be empty if content got clipped away
https://bugs.webkit.org/show_bug.cgi?id=39965
The SVG repaintRect of the renderer was not empty, if the content got clipped away.
The MaskerData/ClipperData <-> RenderObject mapping is set up during the layout phase now, to be able to
relayout a RenderObject, if it's repaintRect is empty. This has the following reason:
We apply the object to the resource on painting at the moment.
With an empty repaintRect, paint() quits earlier and therefore the object doesn't get applied to the resource.
This can cause problems, if the resource get changed by animations or scripts.
On a change, the resource tells all it's callers to relayout.
If the reference to the caller (our RenderObject) is missing, the object won't ever update
and therefore won't get drawn.
We already have LayoutTests that cover this problem. The complete repaintRect calculation
(including the smallest clipping area and shadow size calculation) moved from the renderers to SVGRenderSupport.
This eliminates redundant code.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::updateCachedBoundaries):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
* rendering/RenderSVGResource.h:
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):
* rendering/RenderSVGResourceClipper.h:
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::resourceBoundingBox):
* rendering/RenderSVGResourceFilter.h:
* rendering/RenderSVGResourceGradient.h:
(WebCore::RenderSVGResourceGradient::resourceBoundingBox):
* rendering/RenderSVGResourceMarker.h:
(WebCore::RenderSVGResourceMarker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.h:
* rendering/RenderSVGResourcePattern.h:
(WebCore::RenderSVGResourcePattern::resourceBoundingBox):
* rendering/RenderSVGResourceSolidColor.h:
(WebCore::RenderSVGResourceSolidColor::resourceBoundingBox):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::strokeBoundingBox):
(WebCore::RenderSVGText::repaintRectInLocalCoordinates):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::intersectRepaintRectWithResources):
* rendering/SVGRenderSupport.h:
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeResources):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::hasClipper):
(WebCore::SVGRenderStyle::hasMasker):
(WebCore::SVGRenderStyle::hasFilter):
2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60539.
http://trac.webkit.org/changeset/60539
https://bugs.webkit.org/show_bug.cgi?id=40043
Accidentally added an unreviewed and invalid change to the
patch. (Requested by krit on #webkit).
* rendering/RenderPath.cpp:
(WebCore::RenderPath::updateCachedBoundaries):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
* rendering/RenderSVGResource.h:
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):
* rendering/RenderSVGResourceClipper.h:
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::resourceBoundingBox):
* rendering/RenderSVGResourceFilter.h:
* rendering/RenderSVGResourceGradient.h:
(WebCore::RenderSVGResourceGradient::resourceBoundingBox):
* rendering/RenderSVGResourceMarker.h:
(WebCore::RenderSVGResourceMarker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.h:
* rendering/RenderSVGResourcePattern.h:
(WebCore::RenderSVGResourcePattern::resourceBoundingBox):
* rendering/RenderSVGResourceSolidColor.h:
(WebCore::RenderSVGResourceSolidColor::resourceBoundingBox):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::strokeBoundingBox):
(WebCore::RenderSVGText::repaintRectInLocalCoordinates):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
(WebCore::SVGRenderBase::clipperBoundingBoxForRenderer):
(WebCore::SVGRenderBase::maskerBoundingBoxForRenderer):
* rendering/SVGRenderSupport.h:
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeResources):
* rendering/style/SVGRenderStyle.h:
* svg/SVGColor.cpp:
(WebCore::SVGColor::colorFromRGBColorString):
2010-06-01 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG repaintRect should be empty if content got clipped away
https://bugs.webkit.org/show_bug.cgi?id=39965
The SVG repaintRect of the renderer was not empty, if the content got clipped away.
The MaskerData/ClipperData <-> RenderObject mapping is set up during the layout phase now, to be able to
relayout a RenderObject, if it's repaintRect is empty. This has the following reason:
We apply the object to the resource on painting at the moment.
With an empty repaintRect, paint() quits earlier and therefore the object doesn't get applied to the resource.
This can cause problems, if the resource get changed by animations or scripts.
On a change, the resource tells all it's callers to relayout.
If the reference to the caller (our RenderObject) is missing, the object won't ever update
and therefore won't get drawn.
We already have LayoutTests that cover this problem. The complete repaintRect calculation
(including the smallest clipping area and shadow size calculation) moved from the renderers to SVGRenderSupport.
This eliminates redundant code.
* rendering/RenderPath.cpp:
(WebCore::RenderPath::updateCachedBoundaries):
* rendering/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
* rendering/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
* rendering/RenderSVGResource.h:
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::resourceBoundingBox):
* rendering/RenderSVGResourceClipper.h:
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::resourceBoundingBox):
* rendering/RenderSVGResourceFilter.h:
* rendering/RenderSVGResourceGradient.h:
(WebCore::RenderSVGResourceGradient::resourceBoundingBox):
* rendering/RenderSVGResourceMarker.h:
(WebCore::RenderSVGResourceMarker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::resourceBoundingBox):
* rendering/RenderSVGResourceMasker.h:
* rendering/RenderSVGResourcePattern.h:
(WebCore::RenderSVGResourcePattern::resourceBoundingBox):
* rendering/RenderSVGResourceSolidColor.h:
(WebCore::RenderSVGResourceSolidColor::resourceBoundingBox):
* rendering/RenderSVGText.cpp:
(WebCore::RenderSVGText::strokeBoundingBox):
(WebCore::RenderSVGText::repaintRectInLocalCoordinates):
* rendering/SVGRenderSupport.cpp:
(WebCore::SVGRenderBase::intersectRepaintRectWithResources):
* rendering/SVGRenderSupport.h:
* rendering/SVGRenderTreeAsText.cpp:
(WebCore::writeResources):
* rendering/style/SVGRenderStyle.h:
(WebCore::SVGRenderStyle::hasClipper):
(WebCore::SVGRenderStyle::hasMasker):
(WebCore::SVGRenderStyle::hasFilter):
2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60530.
http://trac.webkit.org/changeset/60530
https://bugs.webkit.org/show_bug.cgi?id=40041
resource-har-conversion failed on GTK (Requested by abarth on
#webkit).
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/HAREntry.js: Removed.
* inspector/front-end/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.set url):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshQueryString):
(WebInspector.ResourceView.prototype._refreshFormData):
(WebInspector.ResourceView.prototype._refreshParms):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2010-06-01 No'am Rosenthal <noam.rosenthal@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] GraphicsLayer: warnings when reloading page
https://bugs.webkit.org/show_bug.cgi?id=39694
Made sure recaching and masks aren't attempted on zero-size layers.
No new tests. Old tests (e.g. LayoutTests/compositing/masks) show the problem.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::MaskEffectQt::draw):
(WebCore::GraphicsLayerQtImpl::recache):
2010-06-01 anton muhin <antonm@google.com>
Reviewed by Nate Chapin.
[Chromium] enforce presence of named property query callback if named property enumerator is present
https://bugs.webkit.org/show_bug.cgi?id=40006
We need to be able to distinguish between enumerable and not enumerable properties
in the presence of named interceptor. V8 is migrating to use query
callback to report enumerable properties and fallback check---
using getter callback---would report properties as not enumerable.
Thus if there is an enumerator callback, there should be query callback as well.
(see V8's r4751).
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/V8NPObject.cpp:
(WebCore::npObjectQueryProperty):
(WebCore::createV8ObjectForNPObject):
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Storage::namedPropertyQuery):
2010-06-01 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Added conversion of inspector's resource representation into HAR.
Moved common resource accessors from ResourceView to Resource.
https://bugs.webkit.org/show_bug.cgi?id=30567
Test: http/tests/inspector/resource-har-conversion.html
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/HAREntry.js: Added.
(WebInspector.HAREntry):
(WebInspector.HAREntry.prototype.build):
(WebInspector.HAREntry.prototype._buildRequest):
(WebInspector.HAREntry.prototype._buildResponse):
(WebInspector.HAREntry.prototype._buildContent):
(WebInspector.HAREntry.prototype._buildTimings):
(WebInspector.HAREntry.prototype._buildHeaders):
(WebInspector.HAREntry.prototype._buildPostData):
(WebInspector.HAREntry.prototype._buildParameters):
(WebInspector.HAREntry.prototype._buildParameter):
(WebInspector.HAREntry.prototype._toMilliseconds):
* inspector/front-end/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.set url):
(WebInspector.Resource.prototype.get receiveDuration):
(WebInspector.Resource.prototype.requestHeaderValue):
(WebInspector.Resource.prototype.get requestFormData):
(WebInspector.Resource.prototype.set requestFormData):
(WebInspector.Resource.prototype.responseHeaderValue):
(WebInspector.Resource.prototype.get queryParameters):
(WebInspector.Resource.prototype.get formParameters):
(WebInspector.Resource.prototype._parseParameters):
(WebInspector.Resource.prototype._headerValue):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshQueryString):
(WebInspector.ResourceView.prototype._refreshFormData):
(WebInspector.ResourceView.prototype._refreshParms):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
2010-06-01 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
Fix "variable may be used before being set" warning in TextResourceDecoder::checkForHeadCharset
https://bugs.webkit.org/show_bug.cgi?id=40001
No new tests as there is no new functionality.
Initialize len to 0 just to eliminate the compiler warning.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::checkForHeadCharset):
2010-06-01 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Safari specific files InspectorFrontendClientLocal were removed from chromium project.
https://bugs.webkit.org/show_bug.cgi?id=39993
* WebCore.gypi:
2010-06-01 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Darin Adler.
Fix broken code generation in GenerateParametersCheckExpression.
https://bugs.webkit.org/show_bug.cgi?id=39960
* bindings/scripts/CodeGeneratorJS.pm:
* bindings/scripts/test/JS/JSTestObj.cpp: Updated baseline.
2010-06-01 Mark Rowe <mrowe@apple.com>
Rubber-stamped by Adam Roben.
Remove Breakpoint.js. It was emptied in r60450 but for some reason it was not
deleted at that time. The presence of empty files within the inspector's resource
folder causes Mac OS X production builds to fail.
* inspector/front-end/Breakpoint.js: Removed.
2010-05-24 James Hawkins <jhawkins@chromium.org>
Reviewed by Darin Fisher.
Added ability for PopupMenuClient to signal when
* selection changed, and
* selection cleared.
https://bugs.webkit.org/show_bug.cgi?id=39639
No new tests because this functionality is intentionally hidden from
everything other than renderer.
* platform/PopupMenuClient.h:
* platform/chromium/PopupMenuChromium.cpp:
(WebCore::PopupListBox::selectIndex):
(WebCore::PopupListBox::clearSelection):
* rendering/RenderMenuList.h:
(WebCore::RenderMenuList::RenderMenuList::selectionChanged):
(WebCore::RenderMenuList::RenderMenuList::selectionCleared):
* rendering/RenderTextControlSingleLine.h:
(WebCore::RenderTextControlSingleLine::selectionChanged):
(WebCore::RenderTextControlSingleLine::selectionCleared):
2010-06-01 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Dimitri Glazkov.
Check if a database needs to be auto-vacuumed only after transactions that have deleted something.
https://bugs.webkit.org/show_bug.cgi?id=39688
* storage/Database.cpp:
(WebCore::Database::resetDeletes):
(WebCore::Database::hadDeletes):
* storage/Database.h:
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::resetDeletes):
(WebCore::DatabaseAuthorizer::dropTable):
(WebCore::DatabaseAuthorizer::dropTempTable):
(WebCore::DatabaseAuthorizer::dropIndex):
(WebCore::DatabaseAuthorizer::dropTempIndex):
(WebCore::DatabaseAuthorizer::dropTrigger):
(WebCore::DatabaseAuthorizer::dropTempTrigger):
(WebCore::DatabaseAuthorizer::dropView):
(WebCore::DatabaseAuthorizer::dropTempView):
(WebCore::DatabaseAuthorizer::dropVTable):
(WebCore::DatabaseAuthorizer::allowDelete):
(WebCore::DatabaseAuthorizer::updateDeletesBasedOnTableName): Added.
* storage/DatabaseAuthorizer.h:
(WebCore::DatabaseAuthorizer::hadDeletes):
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::postflightAndCommit):
2010-06-01 David Hyatt <hyatt@apple.com>
Reviewed by Anders Carlsson.
Add a preference for paginating during layout (the new model for computing page breaks).
* page/Settings.cpp:
(WebCore::Settings::Settings):
* page/Settings.h:
(WebCore::Settings::setPaginateDuringLayoutEnabled):
(WebCore::Settings::paginateDuringLayoutEnabled):
2010-06-01 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Clean up the DB classes in preparation for a bigger refactoring.
https://bugs.webkit.org/show_bug.cgi?id=39041
* storage/ChangeVersionWrapper.cpp:
* storage/ChangeVersionWrapper.h:
* storage/Database.cpp:
(WebCore::Database::Database):
(WebCore::Database::lastActionChangedDatabase):
(WebCore::Database::lastActionWasInsert):
(WebCore::Database::inProgressTransactionCompleted):
(WebCore::Database::securityOrigin):
* storage/Database.h:
(WebCore::Database::sqliteDatabase):
(WebCore::Database::databaseDebugName):
* storage/DatabaseTask.cpp:
(WebCore::DatabaseTransactionTask::doPerformTask):
* storage/DatabaseTask.h:
* storage/SQLStatement.cpp:
(WebCore::SQLStatement::execute):
* storage/SQLStatement.h:
* storage/SQLTransaction.cpp:
(WebCore::SQLTransaction::SQLTransaction):
(WebCore::SQLTransaction::openTransactionAndPreflight):
(WebCore::SQLTransaction::runStatements):
(WebCore::SQLTransaction::runCurrentStatement):
(WebCore::SQLTransaction::postflightAndCommit):
(WebCore::SQLTransaction::cleanupAfterSuccessCallback):
(WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
* storage/SQLTransaction.h:
2010-06-01 Rob Buis <rwlbuis@gmail.com>
Reviewed by Nikolas Zimmermann.
Large SVG rect with shadow fails to render
https://bugs.webkit.org/show_bug.cgi?id=38851
Store intermediate shadow calculation in floats to prevent integer overflow.
Test: svg/filters/shadow-on-rect-large.svg
* rendering/style/SVGRenderStyle.cpp:
(WebCore::getSVGShadowExtent):
(WebCore::SVGRenderStyle::inflateForShadow):
2010-06-01 Jer Noble <jer.noble@apple.com>
Reviewed by Sam Weinig.
QuickTime 7.6.4 + Safari Nightly = Crash
https://bugs.webkit.org/show_bug.cgi?id=40019
rdar://problem/8035443
Check the return value of QTCFPropertyListCreateXMLData before calling CFDataGetLength().
* platform/graphics/win/QTCFDictionary.cpp:
(QTCFDictionaryCreateCopyWithDataCallback):
2010-06-01 Rob Buis <rwlbuis@gmail.com>
Reviewed by Dirk Schulze.
Manipulating SVG element attributes in Javascript does not work as expected
https://bugs.webkit.org/show_bug.cgi?id=34328
Reset the viewBox to be empty when removing the viewBox attribute.
Test: svg/custom/svg-viewBox-dynamic.html
* svg/SVGFitToViewBox.cpp:
(WebCore::SVGFitToViewBox::parseViewBox):
(WebCore::SVGFitToViewBox::parseMappedAttribute):
* svg/SVGFitToViewBox.h:
* svg/SVGViewSpec.cpp:
(WebCore::SVGViewSpec::setViewBoxString):
(WebCore::SVGViewSpec::parseViewSpec):
2010-06-01 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle.
https://bugs.webkit.org/show_bug.cgi?id=39324
There are some parameters that super handles that are not explicitly returned by the list of the element's attributes.
In those cases, super should handle.
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2010-05-28 David Hyatt <hyatt@apple.com>
Reviewed by Beth Dakin.
https://bugs.webkit.org/show_bug.cgi?id=15550, complete implementation of column-span. Add support for nested column
spans. When a column span is nested inside multiple enclosing blocks, the blocks have to be split around the column-span.
We do this using block element continuations, the same kind of solution we employed for blocks inside inlines.
The code for block continuations is very similar to the code for inline continuations. It may be possible to refactor the
code into RenderBoxModelObject so that more of it can be shared, but this first pass avoids that so as not to risk
causing any regressions in core rendering.
Note also that - just as with inline continuations - you can't unsplit block continuations yet. There is no technical limitation
here... the functions just need to be written to handle it.
Added new tests in fast/multicol/span.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::continuationBefore):
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::clone):
(WebCore::RenderBlock::splitBlocks):
(WebCore::RenderBlock::splitFlow):
(WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
(WebCore::RenderBlock::columnsBlockForSpanningElement):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::addChild):
(WebCore::RenderBlock::addChildIgnoringContinuation):
(WebCore::RenderBlock::blockElementContinuation):
(WebCore::RenderBlock::layoutColumns):
* rendering/RenderBlock.h:
2010-06-01 Alexey Proskuryakov <ap@apple.com>
Build fix.
Hopefully, touching WebCore.base.exp will actually rebuild the export file.
* WebCore.Geolocation.exp:
* WebCore.base.exp:
2010-06-01 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Adam Barth.
Execute void callbacks in the context they were created in.
https://bugs.webkit.org/show_bug.cgi?id=39145
* bindings/v8/custom/V8CustomVoidCallback.cpp:
(WebCore::V8CustomVoidCallback::V8CustomVoidCallback):
(WebCore::V8CustomVoidCallback::handleEvent):
* bindings/v8/custom/V8CustomVoidCallback.h:
2010-06-01 Alexey Proskuryakov <ap@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=39434
REGRESSION (r59811): Geolocation callbacks cannot be created
* DerivedSources.make: Don't append both WebCore.Geolocation.exp and WebCore.ClientBasedGeolocation.exp,
they are mutually exclusive.
* WebCore.Geolocation.exp: Touched to force .exp file rebuild.
* WebCore.xcodeproj/project.pbxproj: Removed GeolocationService related files.
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::createPositionCallback): Functions defined in JavaScript code no longer inherit
from InternalFunction, they inherit from JSFunction. This check is still imperfect, because
it's not clear what definition of "function" should really be used, if any - other bindings
code never checks callback type.
(WebCore::createPositionErrorCallback): Ditto.
* page/Geolocation.h: Don't include GeolocationService.h unless it's going to be used.
2010-06-01 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
IndexedDB cleanup
https://bugs.webkit.org/show_bug.cgi?id=40007
Remove the exception code parameter since this function can no longer
cause an exception.
* storage/IDBObjectStoreRequest.idl:
* storage/IndexedDatabase.h:
* storage/IndexedDatabaseImpl.cpp:
(WebCore::IndexedDatabaseImpl::open):
* storage/IndexedDatabaseImpl.h:
* storage/IndexedDatabaseRequest.cpp:
(WebCore::IndexedDatabaseRequest::open):
* storage/IndexedDatabaseRequest.h:
* storage/IndexedDatabaseRequest.idl:
2010-06-01 Martin Robinson <mrobinson@igalia.com>
Reviewed by Xan Lopez.
[GTK] Double clicks cause three button press events
https://bugs.webkit.org/show_bug.cgi?id=38853
Add GOwnPtr wrapper for GdkEvent and expose a setter for
PlatformMouseEvent::m_clickCount.
* GNUmakefile.am: Add GOwnPtrGtk.{cpp,h} to the sources list.
* platform/PlatformMouseEvent.h:
(WebCore::PlatformMouseEvent::setClickCount): Added.
* platform/gtk/GOwnPtrGtk.cpp: Added.
(WTF::GdkEvent):
* platform/gtk/GOwnPtrGtk.h: Added.
2010-06-01 Adam Langley <agl@chromium.org>
Reviewed by Eric Seidel.
[chromium] respect the user's embedded bitmap settings on Linux.
We plumbed everything through Skia and Chrome, but forgot to connect
the two wires inside WebCore.
(Note: no layout test because test_shell forces this option off. Also,
the test font which triggers this behaviour is 32MB.)
https://bugs.webkit.org/show_bug.cgi?id=39894
http://code.google.com/p/chromium/issues/detail?id=21149
* platform/graphics/chromium/FontPlatformDataLinux.cpp:
(WebCore::FontPlatformData::setupPaint):
2010-06-01 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Fix installation of the QtWebKit module .pri file when building inside of Qt
* WebCore.pro:
2010-06-01 Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Fix a QtWebKit.pc corruption problem.
https://bugs.webkit.org/show_bug.cgi?id=36826
The problem occurs while installing QtWebKit from trunk
or a source package.
* WebCore.pro:
2010-06-01 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Laszlo Gombos.
[Qt] Fix Symbian package dependencies of apps against QtWebKit when installing into Qt
Install the versioning qt_webkit_version.pri into $$[QMAKE_MKSPECS]/modules, which is
where mkspecs/features/qt.prf expects it.
* WebCore.pro:
2010-06-01 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60470.
http://trac.webkit.org/changeset/60470
https://bugs.webkit.org/show_bug.cgi?id=39990
Need to rollout until bot can be updated (Requested by jorlow
on #webkit).
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::namedPropertyDeleter):
(WebCore::V8HTMLDocument::namedPropertyGetter):
(WebCore::V8HTMLDocument::indexedPropertyGetter):
(WebCore::V8HTMLDocument::allAccessorSetter):
(WebCore::toV8):
2010-06-01 Anton Muhin <antonm@chromium.org>
Reviewed by Nate Chapin.
[Chromium] get rid of named interceptor on HTMLDocument and introduce/remove accessors when named items get deleted/removed
https://bugs.webkit.org/show_bug.cgi?id=39877
This patch makes callbacks invoked on named items addition/removal
install API accessors and thus there is no more need in
named and indexed interceptors on HTMLDocument which
speeds up invocation of methods on document.
* bindings/scripts/CodeGeneratorV8.pm:
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::checkDocumentWrapper):
(WebCore::V8DOMWindowShell::updateDocumentWrapperCache):
(WebCore::getter):
(WebCore::V8DOMWindowShell::namedItemAdded):
(WebCore::V8DOMWindowShell::namedItemRemoved):
* bindings/v8/V8DOMWindowShell.h:
* bindings/v8/V8DOMWrapper.cpp:
(WebCore::V8DOMWrapper::instantiateV8Object):
* bindings/v8/custom/V8HTMLDocumentCustom.cpp:
(WebCore::V8HTMLDocument::WrapInShadowObject):
(WebCore::V8HTMLDocument::GetNamedProperty):
(WebCore::V8HTMLDocument::allAccessorSetter):
(WebCore::toV8):
2010-06-01 Zoltan Herczeg <zherczeg@webkit.org>
Reviewed by Dirk Schulze.
Make the spot light anti-alias effect look similar to SVG expected values.
https://bugs.webkit.org/show_bug.cgi?id=39477
The W3 standard only mention, that the edge of the spotlight should be
anti-aliased but it does not specify how. The provided expected values
gives some hint about their intentions. The algorithm uses a fixed
range, which computed as follows: let a = cos(spot light cutoff range)
the light fades off in the [a-0.016, a] range.
Test: svg/W3C-SVG-1.1/filters-light-04-f.svg
Updated pixel test: svg/W3C-SVG-1.1/filters-light-01-f.svg
* svg/graphics/filters/SVGLightSource.cpp:
(WebCore::SpotLightSource::initPaintingData):
2010-05-31 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix default action for EndTagOpenState
https://bugs.webkit.org/show_bug.cgi?id=39982
Add a test for a bogus end tag to webkit01.dat and update expected
results now that we pass some more tests.
Adding this test revealed a bug in resuming the bogus comment state.
I've left these broken expectations, but I'll fix the bug in a future
patch. (The bug existed prior to this patch, just not the test.)
* html5lib/resources/webkit01.dat:
* html5lib/runner-expected-html5.txt:
* html5lib/webkit-resumer-expected-html5.txt:
2010-05-31 Lyon Chen <liachen@rim.com>
Reviewed by Kent Tamura.
Enum value FORWARD, BACKWARD, RIGHT, LEFT are causing macro conflicts.
https://bugs.webkit.org/show_bug.cgi?id=35530
Change enum EAlteration from { MOVE, EXTEND } to { AlterationMove, AlterationExtend } and enum EDirection { FORWARD, BACKWARD, RIGHT, LEFT} to { DirectionForward, DirectionBackward, DirectionRight, DirectionLeft } to avoid macro conflict, and also better coding style conformance.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
(WebCore::AccessibilityRenderObject::doAXRangeForLine):
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
* editing/EditorCommand.cpp:
(WebCore::executeDeleteBackward):
(WebCore::executeDeleteBackwardByDecomposingPreviousCharacter):
(WebCore::executeDeleteForward):
(WebCore::executeDeleteToBeginningOfLine):
(WebCore::executeDeleteToBeginningOfParagraph):
(WebCore::executeDeleteToEndOfLine):
(WebCore::executeDeleteToEndOfParagraph):
(WebCore::executeDeleteWordBackward):
(WebCore::executeDeleteWordForward):
(WebCore::executeForwardDelete):
(WebCore::executeMoveBackward):
(WebCore::executeMoveBackwardAndModifySelection):
(WebCore::executeMoveDown):
(WebCore::executeMoveDownAndModifySelection):
(WebCore::executeMoveForward):
(WebCore::executeMoveForwardAndModifySelection):
(WebCore::executeMoveLeft):
(WebCore::executeMoveLeftAndModifySelection):
(WebCore::executeMovePageDown):
(WebCore::executeMovePageDownAndModifySelection):
(WebCore::executeMovePageUp):
(WebCore::executeMovePageUpAndModifySelection):
(WebCore::executeMoveRight):
(WebCore::executeMoveRightAndModifySelection):
(WebCore::executeMoveToBeginningOfDocument):
(WebCore::executeMoveToBeginningOfDocumentAndModifySelection):
(WebCore::executeMoveToBeginningOfLine):
(WebCore::executeMoveToBeginningOfLineAndModifySelection):
(WebCore::executeMoveToBeginningOfParagraph):
(WebCore::executeMoveToBeginningOfParagraphAndModifySelection):
(WebCore::executeMoveToBeginningOfSentence):
(WebCore::executeMoveToBeginningOfSentenceAndModifySelection):
(WebCore::executeMoveToEndOfDocument):
(WebCore::executeMoveToEndOfDocumentAndModifySelection):
(WebCore::executeMoveToEndOfSentence):
(WebCore::executeMoveToEndOfSentenceAndModifySelection):
(WebCore::executeMoveToEndOfLine):
(WebCore::executeMoveToEndOfLineAndModifySelection):
(WebCore::executeMoveToEndOfParagraph):
(WebCore::executeMoveToEndOfParagraphAndModifySelection):
(WebCore::executeMoveParagraphBackwardAndModifySelection):
(WebCore::executeMoveParagraphForwardAndModifySelection):
(WebCore::executeMoveUp):
(WebCore::executeMoveUpAndModifySelection):
(WebCore::executeMoveWordBackward):
(WebCore::executeMoveWordBackwardAndModifySelection):
(WebCore::executeMoveWordForward):
(WebCore::executeMoveWordForwardAndModifySelection):
(WebCore::executeMoveWordLeft):
(WebCore::executeMoveWordLeftAndModifySelection):
(WebCore::executeMoveWordRight):
(WebCore::executeMoveWordRightAndModifySelection):
(WebCore::executeMoveToLeftEndOfLine):
(WebCore::executeMoveToLeftEndOfLineAndModifySelection):
(WebCore::executeMoveToRightEndOfLine):
(WebCore::executeMoveToRightEndOfLineAndModifySelection):
* editing/SelectionController.cpp:
(WebCore::SelectionController::willBeModified):
(WebCore::SelectionController::modify):
* editing/SelectionController.h:
(WebCore::SelectionController::):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
* page/DOMSelection.cpp:
(WebCore::DOMSelection::modify):
(WebCore::DOMSelection::deleteFromDocument):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleKeyboardSelectionMovement):
2010-05-31 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
REGRESSION(60409): window.onload never fires when using HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39981
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::finish):
- The logic was just wrong here. We should only be setting
m_wasWaitingOnScriptsDuringFinish if isWaitingForScripts()
is true, and we should be calling end() when it is not.
(WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
- Add another ASSERT to catch cases like this.
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::finished):
- Add a comment about why we don't need to call m_document->finishedParsing()
2010-05-31 Tony Chang <tony@chromium.org>
Reviewed by Dan Bernstein.
REGRESSION (r58665): Infinite recursion in Position::getInlineBoxAndOffset()
https://bugs.webkit.org/show_bug.cgi?id=39946
r58665 added an infinite recursion check, but didn't take into consideration recursion between two
Positions. This adds a check for when
downstreamIgnoringEditingBoundaries(p1) == p2 and upstreamIgnoringEditingBoundaries(p2) == p1
Test: editing/selection/mixed-editability-12.html
* dom/Position.cpp:
(WebCore::Position::getInlineBoxAndOffset):
2010-05-31 Leo Yang <leo.yang@torchmobile.com.cn>
Reviewed by George Staikos.
Fix canvas.toDataURL(type, quality, ...) to let it support quality parameter.
And implement it in Qt port.
https://bugs.webkit.org/show_bug.cgi?id=37304
Tests: platform/qt/fast/canvas/toDataURL-jpeg-alpha.html
platform/qt/fast/canvas/toDataURL-jpeg-primarycolors.html
platform/qt/fast/canvas/toDataURL-jpeg-quality-basic.html
platform/qt/fast/canvas/toDataURL-jpeg-quality-notnumber.html
platform/qt/fast/canvas/toDataURL-jpeg-quality-outsiderange.html
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::toDataURL):
* bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
(WebCore::V8HTMLCanvasElement::toDataURLCallback):
* dom/CanvasSurface.cpp:
(WebCore::CanvasSurface::toDataURL):
* dom/CanvasSurface.h:
(WebCore::CanvasSurface::toDataURL):
* html/HTMLCanvasElement.idl:
* platform/graphics/ImageBuffer.h:
* platform/graphics/cairo/ImageBufferCairo.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/cg/ImageBufferCG.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/haiku/ImageBufferHaiku.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/qt/ImageBufferQt.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/skia/ImageBufferSkia.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/wince/ImageBufferWince.cpp:
(WebCore::ImageBuffer::toDataURL):
* platform/graphics/wx/ImageBufferWx.cpp:
(WebCore::ImageBuffer::toDataURL):
2010-05-31 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kenneth Rohde Christiansen.
[EFL] Add Context Menu implementation
https://bugs.webkit.org/show_bug.cgi?id=39821
* platform/ContextMenu.h: add port-specific attributes.
* platform/ContextMenuItem.h: create PlatformMenuItemDescription as in
other ports
(WebCore::PlatformMenuItemDescription::PlatformMenuItemDescription):
* platform/efl/ContextMenuEfl.cpp:implement needed methods for this
port.
(WebCore::ContextMenu::ContextMenu):
(WebCore::ContextMenu::~ContextMenu):
(WebCore::ContextMenu::appendItem):
(WebCore::ContextMenu::setPlatformDescription):
(WebCore::ContextMenu::releasePlatformDescription):
* platform/efl/ContextMenuItemEfl.cpp: implement needed methods for
this port.
(WebCore::ContextMenuItem::ContextMenuItem):
(WebCore::ContextMenuItem::~ContextMenuItem):
(WebCore::ContextMenuItem::releasePlatformDescription):
(WebCore::ContextMenuItem::type):
(WebCore::ContextMenuItem::setType):
(WebCore::ContextMenuItem::action):
(WebCore::ContextMenuItem::setAction):
(WebCore::ContextMenuItem::title):
(WebCore::ContextMenuItem::setTitle):
(WebCore::ContextMenuItem::platformSubMenu):
(WebCore::ContextMenuItem::setSubMenu):
(WebCore::ContextMenuItem::checked):
(WebCore::ContextMenuItem::setChecked):
(WebCore::ContextMenuItem::enabled):
(WebCore::ContextMenuItem::setEnabled):
2010-05-31 Ilya Tikhonovsky <loislo@chromium.org>
Reviewed by Pavel Feldman.
WebInspector: Classes for native serialization to JSON were implemented.
https://bugs.webkit.org/show_bug.cgi?id=34204
* GNUmakefile.am:
* WebCore.Inspector.exp:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* inspector/InspectorValues.cpp: Added.
(WebCore::escapeChar):
(WebCore::doubleQuoteString):
(WebCore::InspectorBaseValue::toJSONString):
(WebCore::InspectorBaseValue::writeJSON):
(WebCore::InspectorValue::writeJSON):
(WebCore::InspectorString::writeJSON):
(WebCore::InspectorObject::writeJSON):
(WebCore::InspectorArray::writeJSON):
* inspector/InspectorValues.h: Added.
(WebCore::InspectorBaseValue::InspectorBaseValue):
(WebCore::InspectorBaseValue::~InspectorBaseValue):
(WebCore::InspectorBaseValue::null):
(WebCore::InspectorBaseValue::):
(WebCore::InspectorBaseValue::type):
(WebCore::InspectorValue::create):
(WebCore::InspectorValue::InspectorValue):
(WebCore::InspectorValue::):
(WebCore::InspectorString::create):
(WebCore::InspectorString::InspectorString):
(WebCore::InspectorObject::create):
(WebCore::InspectorObject::~InspectorObject):
(WebCore::InspectorObject::InspectorObject):
(WebCore::InspectorArray::create):
(WebCore::InspectorArray::~InspectorArray):
(WebCore::InspectorArray::length):
(WebCore::InspectorArray::InspectorArray):
(WebCore::InspectorObject::setBool):
(WebCore::InspectorObject::setNumber):
(WebCore::InspectorObject::setString):
(WebCore::InspectorObject::set):
(WebCore::InspectorArray::pushBool):
(WebCore::InspectorArray::pushNumber):
(WebCore::InspectorArray::pushString):
(WebCore::InspectorArray::push):
2010-05-31 Olivier Goffart <olivier.goffart@nokia.com>
Reviewed by Oliver Hunt.
[PATCH] compilation error with clang in JSDOMBinding.h
https://bugs.webkit.org/show_bug.cgi?id=39945
JSNode is only forward declared at this point. And since neither
"wrapper" nor JSValue are type-dependent. Compilers should report errors
at the first compilation pass.
The fix is to move the conversion the line above, as the call to the
function getCachedDOMNodeWrapper is type-dependent, the conversion will
happen at template-instantiation time.
See also http://llvm.org/bugs/show_bug.cgi?id=7244
* bindings/js/JSDOMBinding.h:
(WebCore::getDOMNodeWrapper):
2010-05-31 Pavel Podivilov <podivilov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Moved breakpoints add/remove logic to the BreakpointManager.
https://bugs.webkit.org/show_bug.cgi?id=14190
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/Breakpoint.js:
* inspector/front-end/BreakpointManager.js: Added.
(WebInspector.BreakpointManager):
(WebInspector.BreakpointManager.prototype.addBreakpoint):
(WebInspector.BreakpointManager.prototype.removeBreakpoint):
(WebInspector.BreakpointManager.prototype.breakpointsForSourceID):
(WebInspector.BreakpointManager.prototype.breakpointsForURL):
(WebInspector.BreakpointManager.prototype.reset):
(WebInspector.BreakpointManager.prototype._saveBreakpointOnBackend):
(WebInspector.BreakpointManager.prototype._removeBreakpointFromBackend):
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get enabled):
(WebInspector.Breakpoint.prototype.set enabled):
(WebInspector.Breakpoint.prototype.get sourceText):
(WebInspector.Breakpoint.prototype.set sourceText):
(WebInspector.Breakpoint.prototype.get label):
(WebInspector.Breakpoint.prototype.get id):
(WebInspector.Breakpoint.prototype.get condition):
(WebInspector.Breakpoint.prototype.set condition):
* inspector/front-end/BreakpointsSidebarPane.js:
(WebInspector.BreakpointsSidebarPane):
(WebInspector.BreakpointsSidebarPane.prototype.reset):
(WebInspector.BreakpointsSidebarPane.prototype._breakpointAdded):
(WebInspector.BreakpointsSidebarPane.prototype._breakpointRemoved):
(WebInspector.BreakpointsSidebarPane.prototype._breakpointEnableChanged):
* inspector/front-end/Object.js:
(WebInspector.Object.prototype.dispatchEventToListeners):
* inspector/front-end/ScriptView.js:
(WebInspector.ScriptView.prototype._addBreakpoint):
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
(WebInspector.ScriptsPanel.prototype._breakpointAdded):
(WebInspector.ScriptsPanel.prototype._breakpointRemoved):
(WebInspector.ScriptsPanel.prototype.editScriptSource.mycallback):
(WebInspector.ScriptsPanel.prototype.editScriptSource):
(WebInspector.ScriptsPanel.prototype._showScriptOrResource):
* inspector/front-end/SourceFrame.js:
(WebInspector.SourceFrame.prototype._contextMenu):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype._addBreakpoint):
(WebInspector.SourceView.prototype._removeBreakpoint):
* inspector/front-end/WebKit.qrc:
* inspector/front-end/inspector.html:
* inspector/front-end/inspector.js:
(WebInspector.loaded):
(WebInspector.restoredBreakpoint):
(WebInspector.reset):
2010-05-31 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, build fix.
Add references to inspector/front-end/TabbedPane.js wherever applicable.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* inspector/front-end/WebKit.qrc:
2010-05-31 Alexander Pavlov <apavlov@chromium.org>
Unreviewed, add a file not added in r60445.
* inspector/front-end/TabbedPane.js: Added
2010-05-31 Martin Robinson <mrobinson@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GTK] Text copied from a WebView cannot be pasted into gnome-terminal
https://bugs.webkit.org/show_bug.cgi?id=39827
Switch all methods in Pasteboard to use the PasteboardHelper + DataObjectGtk
approach used in other parts of WebKit GTK+.
* platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::writeSelection): Switch to using PasteboardHelper.
(WebCore::Pasteboard::writePlainText): Ditto.
(WebCore::Pasteboard::writeURL): Ditto.
(WebCore::Pasteboard::writeImage): Ditto.
(WebCore::Pasteboard::clear): Small cleanup.
(WebCore::Pasteboard::documentFragment): Switch to using PasteboardHelper.
(WebCore::Pasteboard::plainText): Ditto.
2010-05-31 Darin Adler <darin@apple.com>
Updated bindings test results for change in JavaScript host calling convention change
from 2 days ago.
* bindings/scripts/test/JS/JSTestObj.cpp: Regenerated and inspected to see that the new
result is correct.
* bindings/scripts/test/JS/JSTestObj.h: Ditto.
2010-05-31 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Implement additional tabs support in ResourceView
https://bugs.webkit.org/show_bug.cgi?id=39822
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
(WebInspector.ResourceView.prototype._selectHeadersTab):
(WebInspector.ResourceView.prototype._innerSelectContentTab):
* inspector/front-end/SourceView.js:
(WebInspector.SourceView.prototype.show):
(WebInspector.SourceView.prototype.hide):
(WebInspector.SourceView.prototype.resize):
(WebInspector.SourceView.prototype.updateLocalContent):
(WebInspector.SourceView.prototype.selectLocalContentTab):
* inspector/front-end/TabbedPane.js: Added.
(WebInspector.TabbedPane):
(WebInspector.TabbedPane.prototype.appendTab):
(WebInspector.TabbedPane.prototype.tabObjectForId):
(WebInspector.TabbedPane.prototype.hideTab):
(WebInspector.TabbedPane.prototype.selectTabById):
* inspector/front-end/TextViewer.js:
(WebInspector.TextViewer.prototype._getSelection):
* inspector/front-end/inspector.html:
2010-05-31 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Implement retrieval of CSS stylesheets for source editing
https://bugs.webkit.org/show_bug.cgi?id=39833
Test: inspector/styles-source-offsets.html
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::parseSheet):
(WebCore::CSSParser::createStyleRule):
* css/CSSParser.h:
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::getStyleSheet):
(WebCore::InspectorBackend::getRuleRangesForStyleSheetId):
* inspector/InspectorBackend.h:
* inspector/InspectorBackend.idl:
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::getRuleRangesForStyleSheet):
(WebCore::InspectorCSSStore::asCSSStyleRule):
(WebCore::InspectorCSSStore::styleSheetForId):
* inspector/InspectorCSSStore.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::getStyleSheet):
(WebCore::InspectorDOMAgent::getRuleRangesForStyleSheetId):
(WebCore::InspectorDOMAgent::buildObjectForStyle):
(WebCore::InspectorDOMAgent::populateObjectWithStyleProperties):
(WebCore::InspectorDOMAgent::buildObjectForStyleSheet):
(WebCore::InspectorDOMAgent::buildObjectForRule):
(WebCore::InspectorDOMAgent::getParentStyleSheet):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorFrontend.cpp:
(WebCore::InspectorFrontend::didGetStyleSheet):
* inspector/InspectorFrontend.h:
* inspector/front-end/DOMAgent.js:
(WebInspector.CSSStyleDeclaration):
2010-05-31 Philippe Normand <pnormand@igalia.com>
Reviewed by Xan Lopez.
[GStreamer] float variables misused
https://bugs.webkit.org/show_bug.cgi?id=38842
Use 0.0f for float variables instead of 0.0. Also added some
missing casts around GST_SECOND.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::playbackPosition):
(WebCore::MediaPlayerPrivateGStreamer::duration):
(WebCore::MediaPlayerPrivateGStreamer::currentTime):
(WebCore::MediaPlayerPrivateGStreamer::seek):
(WebCore::MediaPlayerPrivateGStreamer::naturalSize):
(WebCore::MediaPlayerPrivateGStreamer::setRate):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeSeekable):
(WebCore::MediaPlayerPrivateGStreamer::maxTimeLoaded):
(WebCore::MediaPlayerPrivateGStreamer::totalBytes):
2010-05-31 Steve Block <steveblock@google.com>
Unreviewed, rolling out r60069.
http://trac.webkit.org/changeset/60069
https://bugs.webkit.org/show_bug.cgi?id=39288
Roll out r60069 while the need for Geolocation::stop() is
investigated.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::stopLoading):
* page/Geolocation.cpp:
(WebCore::Geolocation::disconnectFrame):
* page/Geolocation.h:
2010-05-31 Olivier Tilloy <olivier@tilloy.net>
Reviewed by Gustavo Noronha Silva.
[Gtk] Implement RenderThemeGtk::systemColor to apply the correct colors
from the current GTK theme.
https://bugs.webkit.org/show_bug.cgi?id=37779
* platform/gtk/RenderThemeGtk.cpp:
(WebCore::RenderThemeGtk::RenderThemeGtk):
(WebCore::RenderThemeGtk::systemColor):
(WebCore::RenderThemeGtk::gtkButton):
* platform/gtk/RenderThemeGtk.h:
2010-05-31 Dirk Schulze <krit@webkit.org>
Reviewed by Nikolas Zimmermann.
SVG Filter: Crash if parent and child elements use the same filter
https://bugs.webkit.org/show_bug.cgi?id=39536
If a parent and a child used the same filter, the temporary saved
context reference got overwritten by the child. The reference is
stored in FilterData now. FilterData depends to the target object
and avoids overwriting any reference.
Test: svg/filters/parent-children-with-same-filter.svg
* rendering/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter):
(WebCore::RenderSVGResourceFilter::applyResource):
(WebCore::RenderSVGResourceFilter::postApplyResource):
* rendering/RenderSVGResourceFilter.h:
2010-05-31 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
Fix all compiler warnings.
* plugins/gtk/gtk2xtbin.c:
(xt_event_dispatch):
(gtk_xtbin_get_type):
(gtk_xtbin_set_position):
(xt_add_focus_listener):
(xt_remove_focus_listener):
2010-05-31 Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed by Simon Hausmann.
[Qt] Escape backslashes in the .pro files
qmake in Qt 4.7 warns about unescaped backspaces and deprecates them.
* WebCore.pro:
2010-05-31 Anton Muhin <antonm@chromium.org>
Reviewed by Darin Adler.
Make NodeList getters take AtomicString instead of plain String
https://bugs.webkit.org/show_bug.cgi?id=39892
Those methods turn String into AtomicString later. And this conversion
is faster if underlying string is already atomic.
That buys small (~2-3%) speed up for Chromium on Dromaeo DOM Core.
I don't know if Safari benefits from it.
* dom/Node.cpp:
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
* dom/Node.h:
2010-05-30 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Fix LayoutTests/fast/parser/xml-declaration-missing-ending-mark.html in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39939
Turns out we need to implement the bogus comment state. :)
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
2010-05-30 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
fast/tokenizer/write-partial-entity.html hits ASSERT SegmentedString in the HTML5 Parser
https://bugs.webkit.org/show_bug.cgi?id=39935
Test: fast/tokenizer/write-partial-entity.html
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::executeScript):
- Use m_source.append(oldInsertionPoint) instead of
oldInsertionPoint.prepend(m_source) because m_source may have had
characters pushed onto it and prepend() does not handle that case.
2010-05-30 Lyon Chen <liachen@rim.com>
Reviewed by Kent Tamura.
This is a coding style cleanup before fixing to bug 35530.
Enum value FORWARD, BACKWARD, RIGHT, LEFT are causing macro conflicts.
https://bugs.webkit.org/show_bug.cgi?id=35530
* editing/Editor.cpp:
(WebCore::Editor::deleteWithDirection):
(WebCore::Editor::fontForSelection):
(WebCore::Editor::applyStyle):
(WebCore::Editor::applyParagraphStyle):
(WebCore::Editor::applyStyleToSelection):
(WebCore::Editor::applyParagraphStyleToSelection):
(WebCore::triStateOfStyleInComputedStyle):
(WebCore::Editor::selectionStartHasStyle):
(WebCore::Editor::selectionHasStyle):
(WebCore::Editor::paste):
(WebCore::Editor::ignoreSpelling):
(WebCore::Editor::learnSpelling):
(WebCore::findFirstMisspellingInRange):
(WebCore::findFirstGrammarDetailInRange):
(WebCore::findFirstBadGrammarInRange):
(WebCore::findFirstMisspellingOrBadGrammarInRange):
(WebCore::Editor::advanceToNextMisspelling):
(WebCore::Editor::isSelectionMisspelled):
(WebCore::isRangeUngrammatical):
(WebCore::Editor::guessesForMisspelledSelection):
(WebCore::guessesForMisspelledOrUngrammaticalRange):
(WebCore::Editor::markMisspellingsAfterTypingToPosition):
(WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
* editing/EditorCommand.cpp:
(WebCore::applyCommandToFrame):
(WebCore::executeToggleStyleInList):
(WebCore::executeApplyParagraphStyle):
(WebCore::executeDelete):
(WebCore::executeForwardDelete):
(WebCore::executeInsertLineBreak):
(WebCore::supportedCopyCut):
(WebCore::supportedPaste):
(WebCore::enabledDelete):
* editing/SelectionController.cpp:
(WebCore::SelectionController::modifyExtendingRight):
(WebCore::SelectionController::modifyExtendingForward):
(WebCore::SelectionController::modifyMovingRight):
(WebCore::SelectionController::modifyMovingForward):
(WebCore::SelectionController::modifyExtendingLeft):
(WebCore::SelectionController::modifyExtendingBackward):
(WebCore::SelectionController::modifyMovingLeft):
(WebCore::SelectionController::modifyMovingBackward):
(WebCore::SelectionController::modify):
(WebCore::SelectionController::xPosForVerticalArrowNavigation):
(WebCore::SelectionController::debugRenderer):
* editing/TypingCommand.cpp:
(WebCore::TypingCommand::deleteKeyPressed):
(WebCore::TypingCommand::forwardDeleteKeyPressed):
(WebCore::TypingCommand::insertLineBreak):
(WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):
(WebCore::TypingCommand::insertParagraphSeparator):
(WebCore::TypingCommand::doApply):
(WebCore::TypingCommand::insertText):
(WebCore::TypingCommand::updatePreservesTypingStyle):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleMousePressEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::selectCursor):
(WebCore::EventHandler::canHandleDragAndDropForTarget):
(WebCore::EventHandler::dispatchMouseEvent):
(WebCore::EventHandler::sendContextMenuEvent):
(WebCore::EventHandler::handleKeyboardSelectionMovement):
(WebCore::EventHandler::handleDrag):
2010-05-30 Daniel Bates <dbates@rim.com>
Unreviewed, attempt to fix the build after http://trac.webkit.org/changeset/60418.
* html/HTMLFormControlElement.h:
(WebCore::HTMLFormControlElement::isEnabledFormControl):
(WebCore::HTMLFormControlElement::isReadOnlyFormControl):
(WebCore::HTMLFormControlElement::isFormControlElement):
* html/HTMLInputElement.h:
(WebCore::HTMLInputElement::isPasswordField):
2010-05-30 Darin Adler <darin@apple.com>
Reviewed by Sam Weinig.
Make more HTML DOM members private, especially constructors, third and final batch
https://bugs.webkit.org/show_bug.cgi?id=39916
* dom/Document.cpp:
(WebCore::Document::implicitClose):
* editing/DeleteButtonController.cpp:
(WebCore::DeleteButtonController::createDeletionUI):
* editing/EditorCommand.cpp:
(WebCore::executeInsertHorizontalRule):
(WebCore::executeInsertImage):
* editing/htmlediting.cpp:
(WebCore::createDefaultParagraphElement):
(WebCore::createListItemElement):
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError):
(WebCore::HTMLParser::headCreateErrorCheck):
(WebCore::HTMLParser::formCreateErrorCheck):
(WebCore::HTMLParser::createHead):
(WebCore::HTMLParser::handleIsindex):
(WebCore::HTMLParser::finished):
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::createSubtreeIfNeeded):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded):
Use create instead of new to create HTML elements.
* html/HTMLFormCollection.cpp:
(WebCore::HTMLFormCollection::formCollectionInfo):
(WebCore::HTMLFormCollection::item):
(WebCore::HTMLFormCollection::getNamedFormItem):
(WebCore::HTMLFormCollection::updateNameCache):
* html/HTMLFormControlElement.h:
Updated for name and privacy changes in HTMLFormElement.
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::HTMLFormElement):
(WebCore::HTMLFormElement::create):
(WebCore::HTMLFormElement::~HTMLFormElement):
(WebCore::HTMLFormElement::length):
(WebCore::HTMLFormElement::submitImplicitly):
(WebCore::HTMLFormElement::createFormData):
(WebCore::HTMLFormElement::submit):
(WebCore::HTMLFormElement::reset):
(WebCore::HTMLFormElement::formElementIndex):
(WebCore::HTMLFormElement::registerFormElement):
(WebCore::HTMLFormElement::removeFormElement):
(WebCore::HTMLFormElement::registerImgElement):
(WebCore::HTMLFormElement::removeImgElement):
(WebCore::HTMLFormElement::defaultButton):
(WebCore::HTMLFormElement::collectUnhandledInvalidControls):
(WebCore::HTMLFormElement::addElementAlias):
(WebCore::HTMLFormElement::documentDidBecomeActive):
* html/HTMLFormElement.h:
Added create functions. Made constructors and other members private.
Used an OwnPtr for m_elementAliases. Renamed collectionInfo to
m_collectionCache and used an OwnPtr for it. Renamed formElements to
m_associatedElements (since its contents are what HTML5 calls
"form-associated element", not form elements). Renamed imgElements to
m_imageElements.
* html/HTMLFrameSetElement.cpp:
(WebCore::HTMLFrameSetElement::HTMLFrameSetElement):
(WebCore::HTMLFrameSetElement::create):
(WebCore::HTMLFrameSetElement::parseMappedAttribute):
* html/HTMLFrameSetElement.h:
Added create functions. Made constructors and other members private.
Renamed m_rows and m_cols to m_rowLengths and m_colLengths and used
OwnArrayPtr for both.
* html/HTMLLabelElement.cpp:
(WebCore::nodeAsLabelableFormControl): Made this cast to Element instead
of HTMLElement, since isFormControlElement is available on Element.
(WebCore::HTMLLabelElement::HTMLLabelElement):
(WebCore::HTMLLabelElement::create):
* html/HTMLLabelElement.h:
Added create functions. Made constructors and other members private.
* html/HTMLLegendElement.cpp:
(WebCore::HTMLLegendElement::HTMLLegendElement):
(WebCore::HTMLLegendElement::create):
(WebCore::HTMLLegendElement::associatedControl):
(WebCore::HTMLLegendElement::focus):
(WebCore::HTMLLegendElement::accessKeyAction):
* html/HTMLLegendElement.h:
Added create functions. Made constructors and other members private.
Renamed formElement to associatedControl since hte control associated
with this legend is not a "form element".
* editing/DeleteButton.cpp:
(WebCore::DeleteButton::DeleteButton):
(WebCore::DeleteButton::create):
* editing/DeleteButton.h:
* html/HTMLDivElement.cpp:
(WebCore::HTMLDivElement::HTMLDivElement):
(WebCore::HTMLDivElement::create):
* html/HTMLDivElement.h:
* html/HTMLFontElement.cpp:
(WebCore::HTMLFontElement::create):
* html/HTMLFontElement.h:
* html/HTMLHRElement.cpp:
(WebCore::HTMLHRElement::HTMLHRElement):
(WebCore::HTMLHRElement::create):
* html/HTMLHRElement.h:
* html/HTMLHeadElement.cpp:
(WebCore::HTMLHeadElement::HTMLHeadElement):
(WebCore::HTMLHeadElement::create):
* html/HTMLHeadElement.h:
* html/HTMLHeadingElement.cpp:
(WebCore::HTMLHeadingElement::HTMLHeadingElement):
(WebCore::HTMLHeadingElement::create):
* html/HTMLHeadingElement.h:
* html/HTMLHtmlElement.cpp:
(WebCore::HTMLHtmlElement::HTMLHtmlElement):
(WebCore::HTMLHtmlElement::create):
* html/HTMLHtmlElement.h:
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::create):
* html/HTMLImageElement.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::createTemporaryFormForIsIndex):
* html/HTMLInputElement.h:
* html/HTMLIsIndexElement.cpp:
(WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
(WebCore::HTMLIsIndexElement::create):
* html/HTMLIsIndexElement.h:
* html/HTMLLIElement.cpp:
(WebCore::HTMLLIElement::HTMLLIElement):
(WebCore::HTMLLIElement::create):
* html/HTMLLIElement.h:
* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::HTMLLinkElement):
(WebCore::HTMLLinkElement::create):
* html/HTMLLinkElement.h:
Added create functions. Made constructors and other members private.
* html/HTMLTagNames.in: Removed the createWithNew flag from all the
tags that were still using it: div, font, form, frameset, h1, h2, h3,
h4, h5, h6, head, hr, html, image, img, input, ins, isindex, label,
legend, li, and link.
* html/HTMLTextAreaElement.h: Removed unneeded definition of the readOnly
function, since the one in HTMLFormElement does the same thing.
* loader/ImageDocument.cpp:
(WebCore::ImageDocumentElement::ImageDocumentElement):
(WebCore::ImageDocumentElement::create):
(WebCore::ImageDocument::createDocumentStructure):
Added create functions. Made constructors and other members private.
* page/DragController.cpp:
(WebCore::DragController::concludeEditDrag): Use the non-virtual disabled
function instead of the virtual isEnabledFormControl function, which just
turns around and calls the disabled function.
* rendering/MediaControlElements.cpp:
(WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
(WebCore::MediaControlShadowRootElement::create):
(WebCore::MediaControlElement::MediaControlElement):
(WebCore::MediaControlElement::create):
(WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlTimelineContainerElement::rendererIsNeeded):
(WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlStatusDisplayElement::update):
(WebCore::MediaControlStatusDisplayElement::rendererIsNeeded):
(WebCore::MediaControlInputElement::MediaControlInputElement):
(WebCore::MediaControlInputElement::styleForElement):
(WebCore::MediaControlInputElement::rendererIsNeeded):
(WebCore::MediaControlInputElement::attach):
(WebCore::MediaControlInputElement::updateStyle):
(WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
(WebCore::MediaControlMuteButtonElement::create):
(WebCore::MediaControlMuteButtonElement::defaultEventHandler):
(WebCore::MediaControlMuteButtonElement::updateDisplayType):
(WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlPlayButtonElement::defaultEventHandler):
(WebCore::MediaControlPlayButtonElement::updateDisplayType):
(WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
(WebCore::MediaControlSeekButtonElement::create):
(WebCore::MediaControlSeekButtonElement::isForwardButton):
(WebCore::MediaControlSeekButtonElement::defaultEventHandler):
(WebCore::MediaControlSeekButtonElement::seekTimerFired):
(WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
(WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::defaultEventHandler):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::updateDisplayType):
(WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlTimelineElement::defaultEventHandler):
(WebCore::MediaControlTimelineElement::update):
(WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement):
(WebCore::MediaControlVolumeSliderElement::create):
(WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
(WebCore::MediaControlVolumeSliderElement::update):
(WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenButtonElement::defaultEventHandler):
(WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement):
(WebCore::MediaControlTimeDisplayElement::create):
* rendering/MediaControlElements.h:
Added create functions. Made constructors and other members private.
* rendering/RenderFileUploadControl.cpp:
(WebCore::ShadowInputElement::ShadowInputElement):
(WebCore::ShadowInputElement::create):
(WebCore::RenderFileUploadControl::updateFromElement):
Added create functions. Made constructors and other members private.
* rendering/RenderMedia.cpp:
(WebCore::RenderMedia::createControlsShadowRoot):
(WebCore::RenderMedia::createPanel):
(WebCore::RenderMedia::createMuteButton):
(WebCore::RenderMedia::createPlayButton):
(WebCore::RenderMedia::createSeekBackButton):
(WebCore::RenderMedia::createSeekForwardButton):
(WebCore::RenderMedia::createRewindButton):
(WebCore::RenderMedia::createReturnToRealtimeButton):
(WebCore::RenderMedia::createToggleClosedCaptionsButton):
(WebCore::RenderMedia::createStatusDisplay):
(WebCore::RenderMedia::createTimelineContainer):
(WebCore::RenderMedia::createTimeline):
(WebCore::RenderMedia::createVolumeSliderContainer):
(WebCore::RenderMedia::createVolumeSlider):
(WebCore::RenderMedia::createCurrentTimeDisplay):
(WebCore::RenderMedia::createTimeRemainingDisplay):
(WebCore::RenderMedia::createFullscreenButton):
Use create instead of new.
* rendering/RenderProgress.cpp:
(WebCore::ProgressValueElement::ProgressValueElement):
(WebCore::ProgressValueElement::create):
(WebCore::RenderProgress::updateValuePartState):
* rendering/RenderSlider.cpp:
(WebCore::SliderThumbElement::SliderThumbElement):
(WebCore::SliderThumbElement::create):
(WebCore::RenderSlider::updateFromElement):
Added create functions. Made constructors and other members private.
* rendering/TextControlInnerElements.cpp:
(WebCore::TextControlInnerElement::TextControlInnerElement):
(WebCore::TextControlInnerElement::create):
(WebCore::TextControlInnerTextElement::TextControlInnerTextElement):
(WebCore::TextControlInnerTextElement::create):
(WebCore::TextControlInnerTextElement::defaultEventHandler):
(WebCore::SearchFieldResultsButtonElement::SearchFieldResultsButtonElement):
(WebCore::SearchFieldResultsButtonElement::create):
(WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
(WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
(WebCore::SearchFieldCancelButtonElement::create):
(WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
(WebCore::SpinButtonElement::SpinButtonElement):
(WebCore::SpinButtonElement::create):
(WebCore::SpinButtonElement::defaultEventHandler):
* rendering/TextControlInnerElements.h:
Added create functions. Made constructors and other members private.
2010-05-30 Xan Lopez <xlopez@igalia.com>
Reviewed by Darin Adler.
Incorrect build dependencies for GObject DOM Bindings
https://bugs.webkit.org/show_bug.cgi?id=39932
-include does not execute the implicit % expansion, we have to do
it manually.
* GNUmakefile.am:
2010-05-30 Robert Hogan <robert@webkit.org>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Enhance Qt DRT implementation to support platform scroll wheel events.
https://bugs.webkit.org/show_bug.cgi?id=36004
Fix the bug in webkit.org/b/29601 for Qt. A delta not divisible by 120
indicates a device that is sending fine-resolution scroll events, so
use the delta as the number of pixels to scroll.
* platform/qt/WheelEventQt.cpp:
(WebCore::PlatformWheelEvent::applyDelta):
2010-05-30 Jessie Berlin <jberlin@webkit.org>
Reviewed by Pavel Feldman.
https://bugs.webkit.org/show_bug.cgi?id=39224
Bug 39224 - Web Inspector: There should be a way to clean up profiles
Adds a button to clear the profiles from the profiles panel like that
used for the console, the audits panel, and the timeline panel.
Consolidates the css rules, since they all use the same image.
Also allows for individual profiles to be deleted via the keyboard
(U+0008 or U+007F) and uses this new schema for the Elements Tree.
* English.lproj/localizedStrings.js:
Add tooltip text for the button to clear the profiles pane.
* inspector/InspectorBackend.idl:
Add ability to remove the profiles from the backend when they are
deleted or cleared in the frontend.
* inspector/InspectorBackend.cpp:
(WebCore::InspectorBackend::removeProfile):
(WebCore::InspectorBackend::clearProfiles):
* inspector/InspectorBackend.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::removeProfile):
(WebCore::InspectorController::clearProfiles):
* inspector/InspectorController.h:
* inspector/front-end/AuditsPanel.js:
(WebInspector.AuditsPanel):
Use the 'clear-status-bar-item' class.
* inspector/front-end/ChangesView.js:
(WebInspector.ChangesView):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.prototype._createStatusbarButtons):
* inspector/front-end/audits.css:
* inspector/front-end/inspector.css:
(.clear-status-bar-item .glyph):
* inspector/front-end/inspector.html:
* inspector/front-end/ElementsTreeOutline.js:
Replace the keyDown handler on the Outline with specific methods to
handle delete and enter on the TreeElements.
(WebInspector.ElementsTreeOutline):
(WebInspector.ElementsTreeOutline.prototype.get editing):
Return whether or not an element in the tree is currently being edited.
(WebInspector.ElementsTreeElement.prototype.ondelete):
(WebInspector.ElementsTreeElement.prototype.onenter):
* inspector/front-end/Panel.js:
(WebInspector.Panel.prototype.createSidebar):
Make the TreeOutline for a Panel's sidebar aware of its enclosing Panel.
* inspector/front-end/ProfilesPanel.js:
(WebInspector.ProfilesPanel):
Add the clear button.
(WebInspector.ProfilesPanel.prototype.get statusBarItems):
(WebInspector.ProfilesPanel.prototype._clearProfiles):
Remove the profiles from the backend, the reset the frontend interface.
(WebInspector.ProfilesPanel.prototype.removeProfileHeader):
Remove the profile from both the frontend and the backend, and clear the
view when the last profile is removed.
(WebInspector.ProfilesPanel.prototype._updateInterface):
Hide the clear button when profiling is disabled.
(WebInspector.ProfileSidebarTreeElement.prototype.onselect):
Replace access to global variable with reference to the Panel held by the
TreeOutline.
(WebInspector.ProfileSidebarTreeElement.prototype.ondelete):
Remove the profile corresponding the tree element when the user deletes
that tree element.
* inspector/front-end/treeoutline.js:
(TreeOutline.prototype._treeKeyDown):
Allow the selected tree element to handle the user pressing a delete
key or enter key.
2010-05-29 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Darin Adler.
Check if a CC environment variable is defined before hard-coding gcc's
path. Simply hard-coding it breaks cross-compilation and Linux
distributions with more than one gcc installed (or not in the default
path).
https://bugs.webkit.org/show_bug.cgi?id=35551
No new functionality, so no new tests.
* bindings/scripts/CodeGeneratorObjC.pm:
* bindings/scripts/IDLParser.pm:
* dom/make_names.pl:
2010-05-29 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: [REGRESSION] caller locations are not shown on Timeline Panel.
https://bugs.webkit.org/show_bug.cgi?id=39923
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel.FormattedRecord):
(WebInspector.TimelinePanel.FormattedRecord.prototype._generatePopupContent):
(WebInspector.TimelinePanel.FormattedRecord.prototype._getRecordDetails):
2010-05-29 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
HTML5 parser should block script execution until stylesheets load
https://bugs.webkit.org/show_bug.cgi?id=39903
All <script> tag execution now blocks on stylesheet load, including
inline <script> content which the old parser doesn't support blocking.
Hyatt says we could now get rid of updateLayoutIgnorePendingStylesheets
once our primary parser knows how to wait for stylesheets
before executing inline <script> content.
All of http/tests/local passes in --html5-parser mode now.
Also fixed fast/parser/tokenizer-close-during-document-write.html.
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::HTML5ScriptRunner):
- Added a m_hasScriptsWaitingForStylesheets bool so that we can
detect when we're actually waiting on stylesheets or not.
If we're not waiting on stylesheets then we're still parsing and
executing scripts would cause parser/script reentrancy and bad news bears.
(WebCore::HTML5ScriptRunner::isPendingScriptReady):
- Re-enable the check that the stylesheets have loaded.
(WebCore::HTML5ScriptRunner::executePendingScript):
- ASSERT that stylesheets have loaded.
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
- ASSERT that this is never called reentrantly.
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets):
- Execute any scripts which were blocked on stylesheet loads.
- ASSERT (in two ways) that this is never called reentrantly.
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::hasScriptsWaitingForStylesheets):
- Callers need to check this before calling executeScriptsWaitingForLoad.
(WebCore::HTML5ScriptRunner::inScriptExecution):
- Used by callers to ASSERT that we're not called re-entrantly.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::HTML5Tokenizer):
- Add m_hasScriptsWaitingForStylesheets for tracking if we've paused
due to stylesheets or not. Callers need to know this to know if they
should ignore executeScriptsWaitingForStylesheets calls from
Document (which may be generated when parsing </script> tags).
We only care about executeScriptsWaitingForStylesheets calls when
we've actually blocked the parser due to waiting on a stylesheet load.
(WebCore::HTML5Tokenizer::end):
- Move m_source.close() back to this method now that I understand more
about when finish() is called. This should fix several layout test ASSERTS.
(WebCore::HTML5Tokenizer::finish):
- This should not close m_source since scripts may still write to
the document. Set m_wasWaitingOnScriptsDuringFinish to indicate
that we were not able to end parsing during finish.
(WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
- ASSERT that this is never caller re-entrantly.
(WebCore::HTML5Tokenizer::executeScript):
- ASSERT that the ScriptRunner always thinks we're running scripts when this is called.
(WebCore::HTML5Tokenizer::executingScript):
- Added implementation to fix fast/parser/tokenizer-close-during-document-write.html
(WebCore::HTML5Tokenizer::notifyFinished):
- ASSERT that this is never called re-entrantly.
(WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets):
- Call the ScriptRunner to tell it that stylesheets have loaded if
it is blocked on stylesheet loads.
- ASSERT(m_hasScriptsWaitingForStylesheets). We can't just assert
isPaused() since we may be paused for script loads.
* html/HTML5Tokenizer.h:
2010-05-29 Laszlo Gombos <laszlo.1.gombos@nokia.com>
Reviewed by Darin Adler.
Remove set but never used variables
https://bugs.webkit.org/show_bug.cgi?id=35252
No new tests as there is no new functionality.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::lastChildConsideringContinuation):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseFontFaceUnicodeRange):
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::doApply):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::loadManifestHostHashes):
* page/EventHandler.cpp:
(WebCore::EventHandler::handleWheelEvent):
* page/animation/AnimationBase.cpp:
(WebCore::AnimationBase::getTimeToNextEvent):
* rendering/AutoTableLayout.cpp:
(WebCore::AutoTableLayout::recalcColumn):
(WebCore::AutoTableLayout::layout):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::calcInlinePrefWidths):
* rendering/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::createClipData):
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::canEstablishDatabase):
2010-05-29 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60405.
http://trac.webkit.org/changeset/60405
https://bugs.webkit.org/show_bug.cgi?id=39921
It broke GTK build. (Requested by Ossy on #webkit).
* dom/Node.cpp:
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
* dom/Node.h:
2010-05-29 Anton Muhin <antonm@chromium.org>
Reviewed by Darin Adler.
Make NodeList getters take AtomicString instead of plain String
https://bugs.webkit.org/show_bug.cgi?id=39892
Those methods turn String into AtomicString later. And this conversion
is faster if underlying string is already atomic.
That buys small (~2-3%) speed up for Chromium on Dromaeo DOM Core.
I don't know if Safari benefits from it.
* dom/Node.cpp:
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
* dom/Node.h:
2010-05-29 Justin Schuh <jschuh@chromium.org>
Reviewed by Adam Barth.
Allow descendant frame navigation for file URLs when allowFileAccessFromFileURLs is false
https://bugs.webkit.org/show_bug.cgi?id=39750
Fix for local HTML package breakage when each file is its own origin.
In this case we should allow descendant file: frames to navigate each
other when they share the same top frame.
Test: fast/frames/location-change-no-file-access.html
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::shouldAllowNavigation):
2010-05-29 Geoffrey Garen <ggaren@apple.com>
Qt build fix: Updated for ArgList changes.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-05-29 Geoffrey Garen <ggaren@apple.com>
Qt build fix: Updated for ArgList changes.
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
2010-05-29 Geoffrey Garen <ggaren@apple.com>
Qt build fix: Updated for ArgList changes.
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapInstance::invokeMethod):
* bridge/qt/qt_runtime.cpp:
(JSC::Bindings::findMethodIndex):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):
* bridge/qt/qt_runtime.h:
2010-05-29 Geoffrey Garen <ggaren@apple.com>
Qt build fix: Updated for ArgList changes.
* bridge/qt/qt_pixmapruntime.cpp:
(JSC::Bindings::QtPixmapAssignToElementMethod::invoke):
(JSC::Bindings::QtPixmapToDataUrlMethod::invoke):
(JSC::Bindings::QtPixmapToStringMethod::invoke):
(JSC::Bindings::QtPixmapInstance::invokeMethod):
* bridge/qt/qt_pixmapruntime.h:
2010-05-29 Geoffrey Garen <ggaren@apple.com>
Qt build fix: Keep this borken class limping along.
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::invokeMethod):
* bridge/qt/qt_instance.h:
2010-05-28 Geoffrey Garen <ggaren@apple.com>
Reviewed by Sam Weinig, Gavin Barraclough, Oliver Hunt.
Simplified the host calling convention.
PART ONE: Functional code changes.
[ None in WebCore ]
PART TWO: Global search and replace.
In the areas below, I used global search-and-replace to change
(ExecState*, JSObject*, JSValue, const ArgList&) => (ExecState*)
args.size() => exec->argumentCount()
args.at(i) => exec->argument(i)
* bindings/js/JSArrayBufferViewCustom.cpp:
(WebCore::JSArrayBufferView::slice):
* bindings/js/JSArrayBufferViewHelper.h:
(WebCore::setWebGLArrayHelper):
* bindings/js/JSCanvasRenderingContext2DCustom.cpp:
(WebCore::JSCanvasRenderingContext2D::setFillColor):
(WebCore::JSCanvasRenderingContext2D::setStrokeColor):
(WebCore::JSCanvasRenderingContext2D::strokeRect):
(WebCore::JSCanvasRenderingContext2D::drawImage):
(WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
(WebCore::JSCanvasRenderingContext2D::setShadow):
(WebCore::JSCanvasRenderingContext2D::createPattern):
(WebCore::JSCanvasRenderingContext2D::createImageData):
(WebCore::JSCanvasRenderingContext2D::putImageData):
(WebCore::JSCanvasRenderingContext2D::fillText):
(WebCore::JSCanvasRenderingContext2D::strokeText):
* bindings/js/JSClipboardCustom.cpp:
(WebCore::JSClipboard::clearData):
(WebCore::JSClipboard::getData):
(WebCore::JSClipboard::setDragImage):
* bindings/js/JSDOMApplicationCacheCustom.cpp:
(WebCore::JSDOMApplicationCache::hasItem):
(WebCore::JSDOMApplicationCache::add):
(WebCore::JSDOMApplicationCache::remove):
* bindings/js/JSDOMFormDataCustom.cpp:
(WebCore::JSDOMFormData::append):
* bindings/js/JSDOMWindowCustom.cpp:
(WebCore::JSDOMWindow::open):
(WebCore::JSDOMWindow::showModalDialog):
(WebCore::JSDOMWindow::postMessage):
(WebCore::JSDOMWindow::setTimeout):
(WebCore::JSDOMWindow::setInterval):
(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):
(WebCore::JSDOMWindow::openDatabase):
* bindings/js/JSDatabaseCustom.cpp:
(WebCore::JSDatabase::changeVersion):
(WebCore::createTransaction):
(WebCore::JSDatabase::transaction):
(WebCore::JSDatabase::readTransaction):
* bindings/js/JSDatabaseSyncCustom.cpp:
(WebCore::JSDatabaseSync::changeVersion):
(WebCore::createTransaction):
(WebCore::JSDatabaseSync::transaction):
(WebCore::JSDatabaseSync::readTransaction):
* bindings/js/JSDedicatedWorkerContextCustom.cpp:
(WebCore::JSDedicatedWorkerContext::postMessage):
* bindings/js/JSDesktopNotificationsCustom.cpp:
(WebCore::JSNotificationCenter::requestPermission):
* bindings/js/JSFloatArrayCustom.cpp:
(WebCore::JSFloatArray::set):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::JSGeolocation::getCurrentPosition):
(WebCore::JSGeolocation::watchPosition):
* bindings/js/JSHTMLAllCollectionCustom.cpp:
(WebCore::callHTMLAllCollection):
(WebCore::JSHTMLAllCollection::item):
(WebCore::JSHTMLAllCollection::namedItem):
* bindings/js/JSHTMLCanvasElementCustom.cpp:
(WebCore::JSHTMLCanvasElement::getContext):
* bindings/js/JSHTMLCollectionCustom.cpp:
(WebCore::callHTMLCollection):
(WebCore::JSHTMLCollection::item):
(WebCore::JSHTMLCollection::namedItem):
* bindings/js/JSHTMLDocumentCustom.cpp:
(WebCore::JSHTMLDocument::open):
(WebCore::documentWrite):
(WebCore::JSHTMLDocument::write):
(WebCore::JSHTMLDocument::writeln):
* bindings/js/JSHTMLInputElementCustom.cpp:
(WebCore::JSHTMLInputElement::setSelectionRange):
* bindings/js/JSHTMLOptionsCollectionCustom.cpp:
(WebCore::JSHTMLOptionsCollection::add):
(WebCore::JSHTMLOptionsCollection::remove):
* bindings/js/JSHTMLSelectElementCustom.cpp:
(WebCore::JSHTMLSelectElement::remove):
* bindings/js/JSHistoryCustom.cpp:
(WebCore::JSHistory::pushState):
(WebCore::JSHistory::replaceState):
* bindings/js/JSInjectedScriptHostCustom.cpp:
(WebCore::JSInjectedScriptHost::databaseForId):
(WebCore::JSInjectedScriptHost::currentCallFrame):
(WebCore::JSInjectedScriptHost::nodeForId):
(WebCore::JSInjectedScriptHost::pushNodePathToFrontend):
(WebCore::JSInjectedScriptHost::selectDatabase):
(WebCore::JSInjectedScriptHost::selectDOMStorage):
(WebCore::JSInjectedScriptHost::reportDidDispatchOnInjectedScript):
* bindings/js/JSInspectorFrontendHostCustom.cpp:
(WebCore::JSInspectorFrontendHost::platform):
(WebCore::JSInspectorFrontendHost::port):
(WebCore::JSInspectorFrontendHost::showContextMenu):
* bindings/js/JSInt16ArrayCustom.cpp:
(WebCore::JSInt16Array::set):
* bindings/js/JSInt32ArrayCustom.cpp:
(WebCore::JSInt32Array::set):
* bindings/js/JSInt8ArrayCustom.cpp:
(WebCore::JSInt8Array::set):
* bindings/js/JSJavaScriptCallFrameCustom.cpp:
(WebCore::JSJavaScriptCallFrame::evaluate):
(WebCore::JSJavaScriptCallFrame::scopeType):
* bindings/js/JSLocationCustom.cpp:
(WebCore::JSLocation::replace):
(WebCore::JSLocation::reload):
(WebCore::JSLocation::assign):
(WebCore::JSLocation::toString):
* bindings/js/JSMessageEventCustom.cpp:
(WebCore::JSMessageEvent::initMessageEvent):
* bindings/js/JSMessagePortCustom.cpp:
(WebCore::JSMessagePort::postMessage):
* bindings/js/JSMessagePortCustom.h:
(WebCore::handlePostMessage):
* bindings/js/JSNodeCustom.cpp:
(WebCore::JSNode::insertBefore):
(WebCore::JSNode::replaceChild):
(WebCore::JSNode::removeChild):
(WebCore::JSNode::appendChild):
* bindings/js/JSNodeListCustom.cpp:
(WebCore::callNodeList):
* bindings/js/JSPluginElementFunctions.cpp:
(WebCore::callPlugin):
* bindings/js/JSSQLResultSetRowListCustom.cpp:
(WebCore::JSSQLResultSetRowList::item):
* bindings/js/JSSQLTransactionCustom.cpp:
(WebCore::JSSQLTransaction::executeSql):
* bindings/js/JSSQLTransactionSyncCustom.cpp:
(WebCore::JSSQLTransactionSync::executeSql):
* bindings/js/JSSVGLengthCustom.cpp:
(WebCore::JSSVGLength::convertToSpecifiedUnits):
* bindings/js/JSSVGMatrixCustom.cpp:
(WebCore::JSSVGMatrix::multiply):
(WebCore::JSSVGMatrix::inverse):
(WebCore::JSSVGMatrix::rotateFromVector):
* bindings/js/JSSVGPODListCustom.h:
(WebCore::JSSVGPODListCustom::clear):
(WebCore::JSSVGPODListCustom::initialize):
(WebCore::JSSVGPODListCustom::getItem):
(WebCore::JSSVGPODListCustom::insertItemBefore):
(WebCore::JSSVGPODListCustom::replaceItem):
(WebCore::JSSVGPODListCustom::removeItem):
(WebCore::JSSVGPODListCustom::appendItem):
* bindings/js/JSSVGPathSegListCustom.cpp:
(WebCore::JSSVGPathSegList::clear):
(WebCore::JSSVGPathSegList::initialize):
(WebCore::JSSVGPathSegList::getItem):
(WebCore::JSSVGPathSegList::insertItemBefore):
(WebCore::JSSVGPathSegList::replaceItem):
(WebCore::JSSVGPathSegList::removeItem):
(WebCore::JSSVGPathSegList::appendItem):
* bindings/js/JSUint16ArrayCustom.cpp:
(WebCore::JSUint16Array::set):
* bindings/js/JSUint32ArrayCustom.cpp:
(WebCore::JSUint32Array::set):
* bindings/js/JSUint8ArrayCustom.cpp:
(WebCore::JSUint8Array::set):
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::bufferData):
(WebCore::JSWebGLRenderingContext::bufferSubData):
(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContext::getBufferParameter):
(WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContext::getParameter):
(WebCore::JSWebGLRenderingContext::getProgramParameter):
(WebCore::JSWebGLRenderingContext::getRenderbufferParameter):
(WebCore::JSWebGLRenderingContext::getShaderParameter):
(WebCore::JSWebGLRenderingContext::getTexParameter):
(WebCore::JSWebGLRenderingContext::getUniform):
(WebCore::JSWebGLRenderingContext::getVertexAttrib):
(WebCore::JSWebGLRenderingContext::texImage2D):
(WebCore::JSWebGLRenderingContext::texSubImage2D):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):
(WebCore::JSWebGLRenderingContext::uniform1fv):
(WebCore::JSWebGLRenderingContext::uniform1iv):
(WebCore::JSWebGLRenderingContext::uniform2fv):
(WebCore::JSWebGLRenderingContext::uniform2iv):
(WebCore::JSWebGLRenderingContext::uniform3fv):
(WebCore::JSWebGLRenderingContext::uniform3iv):
(WebCore::JSWebGLRenderingContext::uniform4fv):
(WebCore::JSWebGLRenderingContext::uniform4iv):
(WebCore::JSWebGLRenderingContext::uniformMatrix2fv):
(WebCore::JSWebGLRenderingContext::uniformMatrix3fv):
(WebCore::JSWebGLRenderingContext::uniformMatrix4fv):
(WebCore::JSWebGLRenderingContext::vertexAttrib1fv):
(WebCore::JSWebGLRenderingContext::vertexAttrib2fv):
(WebCore::JSWebGLRenderingContext::vertexAttrib3fv):
(WebCore::JSWebGLRenderingContext::vertexAttrib4fv):
* bindings/js/JSWebSocketCustom.cpp:
(WebCore::JSWebSocket::send):
* bindings/js/JSWorkerContextCustom.cpp:
(WebCore::JSWorkerContext::importScripts):
(WebCore::JSWorkerContext::setTimeout):
(WebCore::JSWorkerContext::setInterval):
(WebCore::JSWorkerContext::openDatabase):
(WebCore::JSWorkerContext::openDatabaseSync):
* bindings/js/JSWorkerCustom.cpp:
(WebCore::JSWorker::postMessage):
* bindings/js/JSXMLHttpRequestCustom.cpp:
(WebCore::JSXMLHttpRequest::open):
(WebCore::JSXMLHttpRequest::send):
* bindings/js/JSXSLTProcessorCustom.cpp:
(WebCore::JSXSLTProcessor::importStylesheet):
(WebCore::JSXSLTProcessor::transformToFragment):
(WebCore::JSXSLTProcessor::transformToDocument):
(WebCore::JSXSLTProcessor::setParameter):
(WebCore::JSXSLTProcessor::getParameter):
(WebCore::JSXSLTProcessor::removeParameter):
* bindings/js/ScheduledAction.cpp:
(WebCore::ScheduledAction::create):
(WebCore::ScheduledAction::ScheduledAction):
* bindings/js/ScheduledAction.h:
* bindings/js/ScriptCallFrame.cpp:
(WebCore::ScriptCallFrame::ScriptCallFrame):
* bindings/js/ScriptCallFrame.h:
* bindings/js/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::ScriptCallStack):
(WebCore::ScriptCallStack::initialize):
* bindings/js/ScriptCallStack.h:
* bindings/scripts/CodeGeneratorJS.pm:
* bridge/c/c_instance.cpp:
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
* bridge/c/c_instance.h:
* bridge/jni/jsc/JavaInstanceJSC.cpp:
(JavaInstance::invokeMethod):
* bridge/jni/jsc/JavaInstanceJSC.h:
* bridge/jsc/BridgeJSC.h:
(JSC::Bindings::Instance::invokeDefaultMethod):
* bridge/objc/objc_instance.h:
* bridge/objc/objc_instance.mm:
(ObjcInstance::invokeMethod):
(ObjcInstance::invokeObjcMethod):
(ObjcInstance::invokeDefaultMethod):
* bridge/objc/objc_runtime.mm:
(JSC::Bindings::callObjCFallbackObject):
* bridge/runtime_method.cpp:
(JSC::callRuntimeMethod):
* bridge/runtime_object.cpp:
(JSC::Bindings::callRuntimeObject):
2010-05-28 Stephen White <senorblanco@chromium.org>
Reviewed by Darin Fisher.
Implement GraphicsContext::setImageInterpolation() for the Chromium
port. This is preparatory work for bug 38233. A number of
background-resize tests will need a rebaseline, since the images are
taken during the initial "low quality" phase (<800ms).
[CHROMIUM] Chromium port should support image interpolation quality
https://bugs.webkit.org/show_bug.cgi?id=38686
Covered by fast/backgrounds/size/backgroundSize15.html, and others.
* platform/graphics/skia/GraphicsContextSkia.cpp:
Implement WebCore::GraphicsContext::setImageInterpolationQuality.
* platform/graphics/skia/ImageSkia.cpp:
(WebCore::computeResamplingMode): Only enable high quality
interpolation if it has been requested in the GraphicsContext.
(WebCore::drawResampledBitmap): Enable cacheing of resampled images
even if the size is not full (fix from Brett Wilson).
(WebCore::paintSkBitmap): Pass in the PlatformContextSkia to
computeResamplingMode, so it can query it for interpolation quality.
(WebCore::Image::drawPattern): Ibid.
* platform/graphics/skia/PlatformContextSkia.cpp:
(PlatformContextSkia::State::State):
(PlatformContextSkia::interpolationQuality):
(PlatformContextSkia::setInterpolationQuality):
* platform/graphics/skia/PlatformContextSkia.h:
Add a member fn and accessors to retain the image interpolation quality
in the platform context, and to save/restore it with the state.
2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kenneth Rohde Christiansen.
[EFL] Remove compiler warnings about uninitialized variable.
https://bugs.webkit.org/show_bug.cgi?id=39871
No new tests, just cosmetic changes.
* platform/efl/WidgetEfl.cpp:
(WebCore::Widget::applyCursor):
2010-05-28 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Dimitri Glazkov.
Prevent chromium composited layers from rendering on top of the scrollbars.
https://bugs.webkit.org/show_bug.cgi?id=39851
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::drawLayers):
2010-05-28 Aaron Boodman <aa@chromium.org>
Reviewed by Darin Fisher.
Added isXHTMLDocument() to WebCore::Document.
https://bugs.webkit.org/show_bug.cgi?id=39887
* dom/Document.h: Add isXHTMLDocument().
(WebCore::Document::isXHTMLDocument): Ditto.
2010-05-28 Peter Kasting <pkasting@google.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=39857
Make GIFs loop the correct number of times. Previously, everyone looped
one time too few for non-infinitely-looping GIFs.
Modified a Qt manual test to be correct and moved it to the general
manual test directory.
* manual-tests/animated-gif-looping.html: Copied from WebCore/manual-tests/qt/qt-gif-test.html.
* manual-tests/qt/qt-10loop-anim.gif: Removed.
* manual-tests/qt/qt-anim.gif: Removed.
* manual-tests/qt/qt-gif-test.html: Removed.
* manual-tests/qt/qt-noanim.gif: Removed.
* manual-tests/resources/animated-10x.gif: Copied from WebCore/manual-tests/qt/qt-10loop-anim.gif and modified.
* manual-tests/resources/animated-infinite.gif: Copied from WebCore/manual-tests/qt/qt-anim.gif.
* manual-tests/resources/non-animated.gif: Copied from WebCore/manual-tests/qt/qt-noanim.gif.
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::internalAdvanceAnimation): For a loop count of n, show a total of n + 1 animation cycles.
* platform/graphics/ImageSource.h:
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::ImageSource::repetitionCount):
* platform/graphics/qt/ImageDecoderQt.cpp:
(WebCore::ImageDecoderQt::repetitionCount): Remove translation code now that WebCore matches Qt's internal handling of the loop count. Qt itself may still have a bug here.
* platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::repetitionCount):
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read): Translate loop count 0 to "loop infinitely" (by restoring one piece of the Mozilla code we'd removed).
2010-05-28 Ben Murdoch <benm@google.com>
Reviewed by Darin Adler.
openFile(...) in FIleSystemPOSIX does not call fileSystemRepresentation
https://bugs.webkit.org/show_bug.cgi?id=39882
No new tests. Existing tests in fast/files should suffice.
* platform/posix/FileSystemPOSIX.cpp:
(WebCore::openFile): pass the path parameter through fileSystemRepresentation before using it.
2010-05-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Named entities in attributes aren't parsed correctly by HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39873
I misplaced this if statement when writing this code originally. Now
that we have test coverage for this paragraph in the spec, we can see
and fix the bug.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::consumeEntity):
2010-05-28 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Handle edge cases in HTML5 entity parsing
https://bugs.webkit.org/show_bug.cgi?id=39823
The HTML5 specification tells us to handle HTML entities in a somewhat
complicated way. This patch attempts to correctly handle numeric
entities. Some of this code is duplicated from HTMLTokenizer.
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::):
(WebCore::HTMLNames::adjustEntity):
(WebCore::HTMLNames::legalEntityFor):
(WebCore::HTML5Lexer::consumeEntity):
(WebCore::HTML5Lexer::processEntity):
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::emitCodePoint):
* html/HTML5Lexer.h:
2010-05-28 Chris Fleizach <cfleizach@apple.com>
Reviewed by Beth Dakin.
AX: stop prepping value conversion in accessibilityAttributeValueForParameter
https://bugs.webkit.org/show_bug.cgi?id=39880
Cleaning up a FIXME so that all values are not converted before they're needed in accessibilityAttributeValue:forParameter:
* accessibility/mac/AccessibilityObjectWrapper.mm:
(visiblePositionForTextMarker):
(-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]):
(-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2010-05-28 Adam Treat <atreat@rim.com>
Reviewed by Daniel Bates.
RIM Bug #293 and https://bugs.webkit.org/show_bug.cgi?id=39859
Layout is not dependent upon ScrollView::frameRect when useFixedLayout
is true. No reason to set the needs layout flag in this case.
* platform/ScrollView.cpp:
(WebCore::ScrollView::setFrameRect):
2010-05-28 Mikhail Naganov <mnaganov@chromium.org>
Unreviewed. Revert 60353 -- immature.
https://bugs.webkit.org/show_bug.cgi?id=39646
* bindings/js/JSConsoleCustom.cpp:
* bindings/v8/custom/V8ConsoleCustom.cpp:
* page/Console.cpp:
* page/Console.h:
* page/Console.idl:
2010-05-27 Darin Adler <darin@apple.com>
Reviewed by David Levin.
Make more HTML DOM members private, especially constructors, batch 2
https://bugs.webkit.org/show_bug.cgi?id=39706
Refactoring so no new tests.
Worked my way up from the bottom of HTMLTagNames.in.
* html/HTMLTagNames.in: Removed createWithNew from keygen, listing,
map, marquee, menu, meta, ol, optgroup, option, p, param, pre,
script, select, source, style, table, tbody, td, textarea, tfoot,
th, thead, title, tr, ul, video, xmp, and noscript.
* editing/htmlediting.cpp:
(WebCore::createOrderedListElement): Use create function instead of new.
(WebCore::createUnorderedListElement): Ditto.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError): Ditto.
(WebCore::HTMLParser::mapCreateErrorCheck): Ditto.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable): Ditto.
(WebCore::HTMLViewSourceDocument::addLine): Ditto.
* html/HTMLKeygenElement.cpp:
(WebCore::HTMLKeygenElement::HTMLKeygenElement): Use create function
instead of new.
(WebCore::HTMLKeygenElement::create): Added.
* html/HTMLKeygenElement.h: Made constructor and virtual function
overrides private, added create function.
* html/HTMLMapElement.cpp:
(WebCore::HTMLMapElement::HTMLMapElement):
(WebCore::HTMLMapElement::create):
* html/HTMLMapElement.h:
* html/HTMLMarqueeElement.cpp:
(WebCore::HTMLMarqueeElement::HTMLMarqueeElement):
(WebCore::HTMLMarqueeElement::create):
* html/HTMLMarqueeElement.h:
* html/HTMLMenuElement.cpp:
(WebCore::HTMLMenuElement::HTMLMenuElement):
(WebCore::HTMLMenuElement::create):
* html/HTMLMenuElement.h:
* html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::HTMLMetaElement):
(WebCore::HTMLMetaElement::create):
* html/HTMLMetaElement.h:
* html/HTMLNoScriptElement.cpp:
(WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
(WebCore::HTMLNoScriptElement::create):
(WebCore::HTMLNoScriptElement::childShouldCreateRenderer):
* html/HTMLNoScriptElement.h:
* html/HTMLOListElement.cpp:
(WebCore::HTMLOListElement::HTMLOListElement):
(WebCore::HTMLOListElement::create):
* html/HTMLOListElement.h:
* html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
(WebCore::HTMLOptGroupElement::create):
* html/HTMLOptGroupElement.h:
* html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::HTMLOptionElement):
(WebCore::HTMLOptionElement::create):
* html/HTMLOptionElement.h:
* html/HTMLParagraphElement.cpp:
(WebCore::HTMLParagraphElement::HTMLParagraphElement):
(WebCore::HTMLParagraphElement::create):
* html/HTMLParagraphElement.h:
* html/HTMLParamElement.cpp:
(WebCore::HTMLParamElement::HTMLParamElement):
(WebCore::HTMLParamElement::create):
* html/HTMLParamElement.h:
* html/HTMLPreElement.cpp:
(WebCore::HTMLPreElement::HTMLPreElement):
(WebCore::HTMLPreElement::create):
* html/HTMLPreElement.h:
* html/HTMLQuoteElement.cpp:
(WebCore::HTMLQuoteElement::HTMLQuoteElement):
(WebCore::HTMLQuoteElement::create):
* html/HTMLQuoteElement.h:
* html/HTMLScriptElement.cpp:
(WebCore::HTMLScriptElement::HTMLScriptElement):
(WebCore::HTMLScriptElement::create):
* html/HTMLScriptElement.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::create):
* html/HTMLSelectElement.h:
* html/HTMLSourceElement.cpp:
(WebCore::HTMLSourceElement::HTMLSourceElement):
(WebCore::HTMLSourceElement::create):
* html/HTMLSourceElement.h:
* html/HTMLStyleElement.cpp:
(WebCore::HTMLStyleElement::HTMLStyleElement):
(WebCore::HTMLStyleElement::create):
* html/HTMLStyleElement.h:
* html/HTMLTableRowElement.cpp:
(WebCore::HTMLTableRowElement::HTMLTableRowElement):
(WebCore::HTMLTableRowElement::create):
(WebCore::HTMLTableRowElement::insertCell):
* html/HTMLTableRowElement.h:
* html/HTMLTableSectionElement.cpp:
(WebCore::HTMLTableSectionElement::HTMLTableSectionElement):
(WebCore::HTMLTableSectionElement::create):
(WebCore::HTMLTableSectionElement::insertRow):
* html/HTMLTableSectionElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::create):
* html/HTMLTextAreaElement.h:
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::HTMLTitleElement):
(WebCore::HTMLTitleElement::create):
* html/HTMLTitleElement.h:
* html/HTMLUListElement.cpp:
(WebCore::HTMLUListElement::HTMLUListElement):
(WebCore::HTMLUListElement::create):
* html/HTMLUListElement.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::HTMLVideoElement):
(WebCore::HTMLVideoElement::create):
* html/HTMLVideoElement.h:
Made constructors and virtual function overrides private, added
create function.
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::HTMLTableCellElement): Updated
names of data members. Renamed _row to m_row, _col to m_col,
rSpan to m_rowSpan, cSpan to m_colSpan, and removed unused
rowHeight and m_solid.
(WebCore::HTMLTableCellElement::create): Added.
(WebCore::HTMLTableCellElement::parseMappedAttribute): Updated names.
* html/HTMLTableCellElement.h: Ditto.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::create): Added.
(WebCore::HTMLTableElement::createTHead): Used create instead of new.
(WebCore::HTMLTableElement::createTFoot): Ditto.
(WebCore::HTMLTableElement::insertRow): Ditto.
* html/HTMLTableElement.h:
* html/HTMLTablePartElement.h: Made members protected instead of
public.
2010-05-28 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] REGRESSION(r59837): Incorrect clipping of TransparencyLayers
https://bugs.webkit.org/show_bug.cgi?id=39784
Move coordinate transformation from TransparencyLayer to clipToImageBuffer()
* platform/graphics/qt/GraphicsContextQt.cpp:
(WebCore::TransparencyLayer::TransparencyLayer):
(WebCore::GraphicsContext::clipToImageBuffer):
2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kenneth Rohde Christiansen.
[EF] Implement methods for supporting PopupMenu
https://bugs.webkit.org/show_bug.cgi?id=39629
* platform/PopupMenu.h: add needed attribute
* platform/efl/PopupMenuEfl.cpp: implement methods to show/hide popup
menu
(WebCore::PopupMenu::PopupMenu): initialize new attribute
(WebCore::PopupMenu::show): ditto.
(WebCore::PopupMenu::hide): ditto.
2010-05-28 Lucas De Marchi <lucas.demarchi@profusion.mobi>
Reviewed by Kenneth Rohde Christiansen.
Reorder class initializers to remove compiler warnings.
https://bugs.webkit.org/show_bug.cgi?id=39596
* platform/efl/PlatformKeyboardEventEfl.cpp: ditto.
(WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent): ditto.
* platform/efl/PlatformMouseEventEfl.cpp: ditto.
(WebCore::PlatformMouseEvent::PlatformMouseEvent): ditto.
* platform/efl/PlatformWheelEventEfl.cpp: ditto
(WebCore::PlatformWheelEvent::PlatformWheelEvent): ditto.
2010-05-27 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
Add IndexedDB's IDBIndex
https://bugs.webkit.org/show_bug.cgi?id=39850
Flesh out IDBIndex as much as possible until Andrei finishes
his patch to get around passing Frame*'s all around. I also
cleaned up a bunch of existing files as I noticed style
violations (while basing my new files off of the old).
Not hooked up enough to test. Will add tests soon.
* Android.derived.jscbindings.mk
* Android.derived.v8bindings.mk
* Android.mk
* CMakeLists.txt
* DerivedSources.cpp
* DerivedSources.make
* GNUmakefile.am
* WebCore.pri
* WebCore.pro
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj
* WebCore.xcodeproj/project.pbxproj
* bindings/js/JSIDBAnyCustom.cpp:
(WebCore::toJS):
* bindings/v8/custom/V8IDBAnyCustom.cpp:
(WebCore::toV8):
* storage/IDBAny.cpp:
(WebCore::IDBAny::idbIndexRequest):
(WebCore::IDBAny::set):
* storage/IDBAny.h:
(WebCore::IDBAny::):
* storage/IDBCallbacks.h:
* storage/IDBDatabase.h:
* storage/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::):
* storage/IDBDatabaseError.idl:
* storage/IDBDatabaseException.h:
* storage/IDBDatabaseException.idl:
* storage/IDBDatabaseImpl.cpp:
* storage/IDBDatabaseImpl.h:
* storage/IDBDatabaseRequest.cpp:
* storage/IDBDatabaseRequest.h:
* storage/IDBDatabaseRequest.idl:
* storage/IDBIndex.h: Added.
(WebCore::IDBIndex::~IDBIndex):
* storage/IDBIndexImpl.cpp: Added.
(WebCore::IDBIndexImpl::IDBIndexImpl):
(WebCore::IDBIndexImpl::~IDBIndexImpl):
* storage/IDBIndexImpl.h: Added.
(WebCore::IDBIndexImpl::create):
(WebCore::IDBIndexImpl::name):
(WebCore::IDBIndexImpl::keyPath):
(WebCore::IDBIndexImpl::unique):
* storage/IDBIndexRequest.cpp: Added.
(WebCore::IDBIndexRequest::IDBIndexRequest):
(WebCore::IDBIndexRequest::~IDBIndexRequest):
* storage/IDBIndexRequest.h: Added.
(WebCore::IDBIndexRequest::create):
(WebCore::IDBIndexRequest::name):
(WebCore::IDBIndexRequest::keyPath):
(WebCore::IDBIndexRequest::unique):
* storage/IDBIndexRequest.idl: Added.
* storage/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::IDBObjectStore):
(WebCore::IDBObjectStore::~IDBObjectStore):
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::removeIndex):
* storage/IDBObjectStore.h:
* storage/IDBObjectStoreRequest.cpp:
(WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
(WebCore::IDBObjectStoreRequest::name):
(WebCore::IDBObjectStoreRequest::keyPath):
(WebCore::IDBObjectStoreRequest::indexNames):
(WebCore::IDBObjectStoreRequest::createIndex):
(WebCore::IDBObjectStoreRequest::index):
(WebCore::IDBObjectStoreRequest::removeIndex):
* storage/IDBObjectStoreRequest.h:
* storage/IDBObjectStoreRequest.idl:
* storage/IDBRequest.cpp:
(WebCore::IDBRequest::onSuccess):
* storage/IDBRequest.h:
* storage/IndexedDatabaseRequest.idl:
2010-05-28 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: hide node highlight when inspected page closes.
https://bugs.webkit.org/show_bug.cgi?id=39872
* inspector/InspectorController.cpp:
(WebCore::InspectorController::~InspectorController):
(WebCore::InspectorController::inspectedPageDestroyed):
2010-05-28 Mikhail Naganov <mnaganov@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: add Console API for retrieving memory stats
Add 'console.memory' property which returns an object. Currently
it has two fields: totalHeapSize and usedHeapSize. Later, it can be
extended for reporting total browser's memory consumption.
https://bugs.webkit.org/show_bug.cgi?id=39840
* bindings/js/JSConsoleCustom.cpp:
(WebCore::JSConsole::memory):
* bindings/v8/custom/V8ConsoleCustom.cpp:
(WebCore::V8Console::memoryAccessorGetter):
* page/Console.cpp:
(WebCore::Console::memory):
* page/Console.h:
* page/Console.idl:
2010-05-28 Xan Lopez <xlopez@igalia.com>
Add new file to the build system.
* GNUmakefile.am:
2010-05-28 Antti Koivisto <koivisto@iki.fi>
Reviewed by Kenneth Rohde Christiansen.
https://bugs.webkit.org/show_bug.cgi?id=39874
[Qt] Make tiled backing store more configurable
Make tile size, tile creation delay and tiling area dynamically configurable.
* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::TiledBackingStore):
(WebCore::TiledBackingStore::setTileSize):
(WebCore::TiledBackingStore::setTileCreationDelay):
(WebCore::TiledBackingStore::setKeepAndCoverAreaMultipliers):
(WebCore::TiledBackingStore::createTiles):
* platform/graphics/TiledBackingStore.h:
(WebCore::TiledBackingStore::tileSize):
(WebCore::TiledBackingStore::tileCreationDelay):
(WebCore::TiledBackingStore::getKeepAndCoverAreaMultipliers):
2010-05-28 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
document.write does not work correctly in the HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39828
Added a new HTML5ScriptRunnerHost interface which
HTML5Tokenizer implements. This allows HTML5ScriptController
to delegate the actual ScriptController::executeScript back to
HTML5Tokenizer. HTML5Tokenizer saves off the current m_source
before calling ScriptController::executeScript to allow safe
reentrancy through document.write().
* WebCore.xcodeproj/project.pbxproj:
- Added HTML5ScriptRunnerHost.h
* html/HTML5ScriptRunner.cpp:
(WebCore::HTML5ScriptRunner::HTML5ScriptRunner):
(WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
- Unregister m_parsingBlockingScript if stopped before
load completion. This was probably causing some of the
crashes on page navigation we saw during LayoutTest runs.
(WebCore::documentURLForScriptExecution):
- Unify our documentURL handling so all callsites get it right.
(WebCore::HTML5ScriptRunner::sourceFromPendingScript):
- Use documentURLForScriptExecution
(WebCore::HTML5ScriptRunner::executePendingScript):
- Call stopWatchingForLoad instead of removeClient()
- Call executeScript instead of ScriptController directly.
(WebCore::HTML5ScriptRunner::executeScript):
- Wraps calls to HTML5ScriptRunnerHost::executeScript
(WebCore::HTML5ScriptRunner::watchForLoad):
- Wraps calls to HTML5ScriptRunnerHost::watchForLoad
(WebCore::HTML5ScriptRunner::stopWatchingForLoad):
- Wraps calls to HTML5ScriptRunnerHost::stopWatchingForLoad
(WebCore::HTML5ScriptRunner::requestScript):
- Only watch for load if the CachedScript isn't already loaded.
This gets rid of rentrancy due to addClient calls, and as a result
also stops us from hitting ASSERT(m_scriptNestingLevel)
in executePendingScript.
(WebCore::HTML5ScriptRunner::runScript):
- Use the new fancy documentURLForScriptExecution and executeScript.
* html/HTML5ScriptRunner.h:
(WebCore::HTML5ScriptRunner::PendingScript::PendingScript):
- Add a watchingForLoad bool so we know if we ever called watchForLoad
with this CachedScript*.
* html/HTML5ScriptRunnerHost.h: Added.
(WebCore::HTML5ScriptRunnerHost::~HTML5ScriptRunnerHost):
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::HTML5Tokenizer):
- Store an m_document pointer since we need to access
m_document->frame()->script() for script execution.
(WebCore::HTML5Tokenizer::pumpLexer):
- Always pause or unpause the TreeBuilder after script execution.
Previously nested script execution would leave the TreeBuilder
paused even though the top-level loop wanted to resume parsing.
Now whenever m_scriptRunner->execute returns "continue parsing"
parsing will actually continue. This fixed cases where we would
ignore the rest of the document after document.write() of a script tag.
(WebCore::HTML5Tokenizer::write):
- Explain how document.write() reentrancy is safe in the new world.
(WebCore::HTML5Tokenizer::watchForLoad):
- HTML5ScriptRunnerHost implementation. We assert that this call will
never cause script execution since that's our current design.
(WebCore::HTML5Tokenizer::stopWatchingForLoad):
- HTML5ScriptRunnerHost implementation.
(WebCore::HTML5Tokenizer::executeScript):
- HTML5ScriptRunnerHost implementation. Save off the current source
before executing scripts in case document.write is called during
script execution.
* html/HTML5Tokenizer.h:
- Implement HTML5ScriptRunnerHost.
2010-05-28 Nathan Lawrence <nlawrence@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=39460
Because not just <img> and <image> elements can preload images, we
dont want to restrict the element associated with the loader.
No new tests. Should share the same tests as the last patch.
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
2010-05-27 MORITA Hajime <morrita@google.com>
Reviewed by Ojan Vafai.
Cursor movement and text selection does not work well if a block is followed by an inline.
https://bugs.webkit.org/show_bug.cgi?id=32123
RenderInline::setSelectionState() missed selection state
propagation for ancestors. This fix pulled
RenderBlock::setSelectionState() up to RenderBoxModelObject, to
share it with RenderInline.
Test: editing/selection/range-between-block-and-inline.html: Added.
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::setSelectionState):
* rendering/RenderBoxModelObject.h:
Moved setSelectionState() from RenderBlock to RenderBoxModelObject.
2010-05-27 MORITA Hajime <morrita@google.com>
Not reviewed. Fixed typo
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::adjustStyle):
2010-05-27 Darin Adler <darin@apple.com>
Reviewed by David Levin.
Make more HTML DOM members private, especially constructors
https://bugs.webkit.org/show_bug.cgi?id=39697
Refactoring, so no new tests needed.
Working my way through HTMLTagNames.in from top to bottom, skipping any
that are non-trivial for some reason.
* html/HTMLTagNames.in: Removed createWithNew from audio, base, basefont,
blockquote, body, br, button, canvas, caption, col, colgroup, datagrid,
datalist, dcell, dcol, drow, del, dir, dl, and fieldset.
* mathml/mathtags.in: Removed createWithNew from msub, and msup.
* dom/Document.cpp:
(WebCore::Document::implicitClose): Use create function instead of new.
(WebCore::Document::getCSSCanvasElement): Ditto.
* editing/IndentOutdentCommand.cpp:
(WebCore::createIndentBlockquoteElement): Ditto.
* editing/htmlediting.cpp:
(WebCore::createBreakElement): Ditto.
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::createCaption): Ditto.
* html/HTMLViewSourceDocument.cpp:
(WebCore::HTMLViewSourceDocument::createContainingTable): Ditto.
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::setInnerTextValue): Ditto.
* html/HTMLParser.cpp:
(WebCore::HTMLParser::handleError): Use create function instead of new.
Required reordering the code slightly, but the new order works fine.
* html/HTMLAudioElement.cpp:
(WebCore::HTMLAudioElement::create):
* html/HTMLAudioElement.h:
* html/HTMLBRElement.cpp:
(WebCore::HTMLBRElement::create):
* html/HTMLBRElement.h:
* html/HTMLBaseElement.cpp:
(WebCore::HTMLBaseElement::create):
* html/HTMLBaseElement.h:
* html/HTMLBaseFontElement.cpp:
(WebCore::HTMLBaseFontElement::create):
* html/HTMLBaseFontElement.h:
* html/HTMLBlockquoteElement.cpp:
(WebCore::HTMLBlockquoteElement::create):
* html/HTMLBlockquoteElement.h:
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::create):
* html/HTMLBodyElement.h:
* html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::create):
* html/HTMLButtonElement.h:
* html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::create):
* html/HTMLCanvasElement.h:
* html/HTMLDListElement.cpp:
(WebCore::HTMLDListElement::create):
* html/HTMLDListElement.h:
* html/HTMLDataGridCellElement.cpp:
(WebCore::HTMLDataGridCellElement::create):
* html/HTMLDataGridCellElement.h:
* html/HTMLDataGridColElement.cpp:
(WebCore::HTMLDataGridColElement::create):
* html/HTMLDataGridColElement.h:
* html/HTMLDataGridElement.cpp:
(WebCore::HTMLDataGridElement::create):
* html/HTMLDataGridElement.h:
* html/HTMLDataGridRowElement.cpp:
(WebCore::HTMLDataGridRowElement::create):
* html/HTMLDataGridRowElement.h:
* html/HTMLDataListElement.cpp:
(WebCore::HTMLDataListElement::create):
* html/HTMLDataListElement.h:
* html/HTMLElement.cpp:
(WebCore::HTMLElement::setInnerText):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::create):
* html/HTMLFieldSetElement.h:
* html/HTMLModElement.cpp:
(WebCore::HTMLModElement::HTMLModElement):
(WebCore::HTMLModElement::create):
* html/HTMLModElement.h:
* html/HTMLTableCaptionElement.cpp:
(WebCore::HTMLTableCaptionElement::create):
* html/HTMLTableCaptionElement.h:
Made constructors and virtual function overrides private, added create functions.
Made constructors inline in cases where they were called in only one place.
* html/HTMLTableColElement.cpp:
(WebCore::HTMLTableColElement::HTMLTableColElement): Changed data member name
from _span to m_span.
(WebCore::HTMLTableColElement::create): Added.
(WebCore::HTMLTableColElement::parseMappedAttribute): Updated to use m_span.
* html/HTMLTableColElement.h:
Made constructor and virtual function overrides private, added create function.
Renamed _span to m_span.
2010-05-27 Kwang Yul Seo <skyul@company100.net>
Reviewed by Darin Adler.
wx port: build fix for Linux
https://bugs.webkit.org/show_bug.cgi?id=39860
Use uint16_t instead of uint16.
* plugins/PluginPackageNone.cpp:
(WebCore::PluginPackage::NPVersion):
2010-05-27 Nathan Lawrence <nlawrence@apple.com>
Reviewed by Geoffrey Garen.
https://bugs.webkit.org/show_bug.cgi?id=39460
Fixes the issue where images prefetched by JavaScript do not report
their memory usage to the GC.
There is a new test manual-tests/image-prefetch-stress.html that loads
a new 4MB image every half a second.
* html/HTMLImageLoader.cpp:
(WebCore::HTMLImageLoader::notifyFinished):
* manual-tests/image-prefetch-stress.html: Added.
2010-05-27 Eric Uhrhane <ericu@chromium.org>
Reviewed by Adam Barth.
Add v8 bindings for async DB API in workers
https://bugs.webkit.org/show_bug.cgi?id=39145
No new tests. This should share layout tests with JSC.
Tweak the callback generation to switch lots of Frame* to ScriptExecutionContext*, and use the context passed in to handleEvent where possible.
* bindings/scripts/CodeGeneratorV8.pm:
As with CodeGeneratorV8; these are pretty much all tiny tweaks.
We do have to use a slightly different patch for callback invocation in invokeCallback, as V8Proxy::retrieve() doesn't work in the worker context.
* bindings/v8/custom/V8CustomPositionCallback.cpp:
(WebCore::V8CustomPositionCallback::handleEvent):
* bindings/v8/custom/V8CustomPositionErrorCallback.cpp:
(WebCore::V8CustomPositionErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
(WebCore::V8SQLStatementErrorCallback::handleEvent):
* bindings/v8/custom/V8CustomVoidCallback.cpp:
(WebCore::V8CustomVoidCallback::V8CustomVoidCallback):
(WebCore::V8CustomVoidCallback::handleEvent):
(WebCore::invokeCallback):
* bindings/v8/custom/V8CustomVoidCallback.h:
(WebCore::V8CustomVoidCallback::create):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::openDatabaseCallback):
* bindings/v8/custom/V8DatabaseCustom.cpp:
(WebCore::V8Database::changeVersionCallback):
(WebCore::createTransaction):
* bindings/v8/custom/V8DatabaseSyncCustom.cpp:
(WebCore::V8DatabaseSync::changeVersionCallback):
(WebCore::createTransaction):
* bindings/v8/custom/V8NotificationCenterCustom.cpp:
(WebCore::V8NotificationCenter::requestPermissionCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
Add openDatabaseCallback.
* bindings/v8/custom/V8WorkerContextCustom.cpp:
(WebCore::V8WorkerContext::openDatabaseCallback):
Remove an obsolete parameter.
(WebCore::V8WorkerContext::openDatabaseSyncCallback):
2010-05-27 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: [REGRESSION] Query parameters are not displayed in the resources headers section.
https://bugs.webkit.org/show_bug.cgi?id=39848
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView):
(WebInspector.ResourceView.prototype._refreshRequestPayload):
2010-05-27 Nico Weber <thakis@chromium.org>
Reviewed by Eric Seidel
https://bugs.webkit.org/show_bug.cgi?id=39092
Add Yank support to chromium mac. Do this by moving WebKit Mac's
implementation of Editor::yankFromKillRing() into its own class and
then using that.
* editing/Editor.cpp:
Use new KillRing class.
* editing/Editor.h:
(WebCore::Editor::killRing):
Use new KillRing class.
* editing/EditorCommand.cpp:
(WebCore::executeYankAndSelect):
Use new KillRing class.
* platform/KillRing.h:
Add new KillRing class, which acts as null object.
(WebCore::KillRing::~KillRing):
* platform/mac/KillRingMac.h:
Add new KillRingMac class, which writes to the mac's kill ring.
* platform/mac/KillRingMac.mm:
Add new KillRingMac class, which writes to the mac's kill ring.
2010-05-27 Ben Murdoch <benm@google.com>
Reviewed by Jian Li.
Build break in FileStream.cpp
https://bugs.webkit.org/show_bug.cgi?id=39841
When ENABLE_BLOB_SLICE is not defined, an undefined variable is used
in FileStream.cpp:114. Fix by using the correct variable.
Build fix so no new tests.
* html/FileStream.cpp:
(WebCore::FileStream::openForRead): Replace undefined variable with a defined one.
2010-05-27 Hans Wennborg <hans@chromium.org>
Reviewed by Jeremy Orlow.
[Chromium] Default popup window size should not depend on zoom level
https://bugs.webkit.org/show_bug.cgi?id=39835
V8DOMWindow::openCallback should not set width and height of new
window unless specified in the function's arguments.
There is already code to reset the new window's origin coordinates,
but the same thing should be done to its dimensions as well. Otherwise,
a new popup with unspecified size will have its size depending on the
parent's zoom level, which is not desirable.
This is the same as what is done in
bindings/js/JSDOMWindowCustom.cpp:826.
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::openCallback):
2010-05-27 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
qt_instance.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39744
Fix webkit coding style issues in qt_instance.cpp
* bridge/qt/qt_instance.cpp:
(JSC::Bindings::QtInstance::getQtInstance):
(JSC::Bindings::QtInstance::removeCachedMethod):
(JSC::Bindings::QtInstance::markAggregate):
(JSC::Bindings::QtInstance::getPropertyNames):
(JSC::Bindings::QtInstance::stringValue):
(JSC::Bindings::QtField::name):
(JSC::Bindings::QtField::valueFromInstance):
2010-05-27 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
qt_instance.h has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39743
Fix webkit coding style issues in qt_instance.h
* bridge/qt/qt_instance.h:
2010-05-27 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
qt_class.h has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39742
Fix webkit coding style issues in qt_class.h
* bridge/qt/qt_class.h:
2010-05-27 Eric Carlson <eric.carlson@apple.com>
Reviewed by Darin Adler.
<rdar://problem/8016158> Crash in CVPixelBufferCreateResolvedAttributesDictionary with RLE
compressed movie.
Configure the visual context to generate Direct3D compatible pixel buffers when we are able to
use a CAImageQueue so there will be less conversion required before display. This change also
works around the issue that causes the RLE compressed movie to crash.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Pass enum to QTMovieVisualContext
constructor instead of CFDictionary.
* platform/graphics/win/QTMovieVisualContext.cpp:
(SetNumberValue):
(getPixelBufferCreationOptions): New, create options dictionary appropriate for the visual
context type.
(pixelBufferCreationOptions): New, return options dictionary appropriate for the visual
context type.
(QTMovieVisualContextPriv::QTMovieVisualContextPriv): Get the options dictionary from
getPixelBufferCreationOptions insteaad of taking it as a parameter.
(QTMovieVisualContext::QTMovieVisualContext): Take enum instead of CFDictionary for
visual context configuration type.
* platform/graphics/win/QTMovieVisualContext.h:
2010-05-27 Anders Carlsson <andersca@apple.com>
Reviewed by Adam Roben.
[Qt] REGRESSION(r60258): It broke 10 tests.
https://bugs.webkit.org/show_bug.cgi?id=39819
* plugins/qt/PluginDataQt.cpp:
(WebCore::PluginData::initPlugins):
Append the MimeClassInfo object after it's been initialized.
2010-05-27 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fixes for Windows after recent changes.
* platform/graphics/wx/FontWx.cpp:
* wscript:
2010-05-27 Chris Fleizach <cfleizach@apple.com>
No review, build fixage.
Bug 39324 - AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle.
https://bugs.webkit.org/show_bug.cgi?id=39324
Rolling out change from r60307 until a better fix is ready.
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2010-05-27 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: check that ScriptDebugListener was not removed
while messages were dispatched in the nested loop.
https://bugs.webkit.org/show_bug.cgi?id=39838
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handleV8DebugEvent):
2010-05-27 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: undefined script URL value should be converted to an emtpy
WebCore::String instead of "undefined" string. Otherwise it's shown
in the Scripts panel with "undefined:<line no>" URL.
https://bugs.webkit.org/show_bug.cgi?id=39845
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidParseSource):
2010-05-27 Chris Fleizach <cfleizach@apple.com>
Reviewed by Darin Adler.
AX: WebKit doesn't call [super -accessibilityAttributeValue:attribute forParameter:] when it encounters a parameterized attribute that it doesn't handle.
https://bugs.webkit.org/show_bug.cgi?id=39324
Make sure that accessibilityAttributeValue:forParameter: will default to its super's implementation. This is how AppKit expects objects to behave.
* accessibility/mac/AccessibilityObjectWrapper.mm:
(-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2010-05-27 Xan Lopez <xlopez@igalia.com>
More GTK+ distcheck fixes.
* GNUmakefile.am:
2010-05-27 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
[v8] Web Inspector: notify ScriptDebugListener when execution is resumed
https://bugs.webkit.org/show_bug.cgi?id=39838
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::handleV8DebugEvent):
2010-05-27 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
qt_pixmapruntime.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39745
Fix webkit coding style issues in qt_pixmapruntime.cpp
* bridge/qt/qt_pixmapruntime.cpp:
2010-05-26 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
Clean up IndexedDB layout tests
https://bugs.webkit.org/show_bug.cgi?id=39748
Remove an assert that always fires.
Tests: storage/indexeddb/idb-database-request.html
storage/indexeddb/indexed-database-request.html
* storage/IDBDatabaseImpl.cpp:
(WebCore::IDBDatabaseImpl::objectStores):
2010-05-27 Pavel Feldman <pfeldman@chromium.org>
Reviewed by Yury Semikhatsky.
Web Inspector: Get CSS rule offsets lazily.
https://bugs.webkit.org/show_bug.cgi?id=39832
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::getStartEndOffsets):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::buildObjectForRule):
2010-05-27 Anders Bakken <agbakken@gmail.com>
Reviewed by David Levin.
qt_class.cpp has coding-style errors
https://bugs.webkit.org/show_bug.cgi?id=39741
Fix webkit coding style issues in qt_class.cpp
* bridge/qt/qt_class.cpp:
(JSC::Bindings::QtClass::fieldNamed):
2010-05-27 Eric Seidel <eric@webkit.org>
Reviewed by Darin Adler.
Remove bit-rotten INSTRUMENT_LAYOUT_SCHEDULING code from HTMLTokenizer
https://bugs.webkit.org/show_bug.cgi?id=39714
This came from a discussion on #webkit with Hyatt about this code
being old and no longer used to either of our knowledge.
No functional changes, thus no tests.
I also removed a bogus FIXME I had added in an earlier patch
before I understood what the HTMLTokenizer was trying to do.
* html/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::scriptHandler):
(WebCore::HTMLTokenizer::scriptExecution):
(WebCore::HTMLTokenizer::continueProcessing):
(WebCore::HTMLTokenizer::willWriteHTML):
(WebCore::HTMLTokenizer::didWriteHTML):
(WebCore::HTMLTokenizer::timerFired):
(WebCore::HTMLTokenizer::executeExternalScriptsIfReady):
2010-05-27 Anton Muhin <antonm@chromium.org>
Reviewed by Adam Barth.
Add callbacks to ScriptController to allow notifications on named items additions and removals
https://bugs.webkit.org/show_bug.cgi?id=39679
* bindings/js/ScriptController.h: Callbacks with empty implementation added.
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/ScriptController.cpp: Empty implementation of callbacks.
(WebCore::ScriptController::namedItemAdded):
(WebCore::ScriptController::namedItemRemoved):
* bindings/v8/ScriptController.h: Callbacks added.
* html/HTMLDocument.cpp: Hooking in callbacks.
(WebCore::HTMLDocument::addItemToMap):
(WebCore::HTMLDocument::removeItemFromMap):
* html/HTMLDocument.h:
2010-05-27 Zhenyao Mo <zmo@google.com>
Reviewed by Dimitri Glazkov.
Implement lazy clearing of renderbuffers
https://bugs.webkit.org/show_bug.cgi?id=36248
Test: fast/canvas/webgl/renderbuffer-initialization.html
* html/canvas/WebGLFramebuffer.cpp:
(WebCore::WebGLFramebuffer::WebGLFramebuffer): Init added members.
(WebCore::WebGLFramebuffer::setAttachment): Set attachment object.
(WebCore::WebGLFramebuffer::onBind): Perform buffer clearing if needed.
(WebCore::WebGLFramebuffer::onAttachedObjectChange): Ditto.
(WebCore::WebGLFramebuffer::isUninitialized): Check whether an attached object is uninitialized renderbuffer.
(WebCore::WebGLFramebuffer::setInitialized): After initialize a renderbuffer, set the flag.
(WebCore::WebGLFramebuffer::initializeRenderbuffers): Clear un-initialized renderbuffers if framebuffer is complete.
* html/canvas/WebGLFramebuffer.h:
(WebCore::WebGLFramebuffer::isDepthAttached): Changed to check object.
(WebCore::WebGLFramebuffer::isStencilAttached): Ditto.
(WebCore::WebGLFramebuffer::isDepthStencilAttached): Ditto.
* html/canvas/WebGLRenderbuffer.cpp:
(WebCore::WebGLRenderbuffer::WebGLRenderbuffer): Init added members.
* html/canvas/WebGLRenderbuffer.h:
(WebCore::WebGLRenderbuffer::isInitialized): As the function name.
(WebCore::WebGLRenderbuffer::setInitialized): Ditto.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::bindFramebuffer): Call onBind().
(WebCore::WebGLRenderingContext::copyTexImage2D): Call onAttachedObjectChange().
(WebCore::WebGLRenderingContext::deleteRenderbuffer): Ditto.
(WebCore::WebGLRenderingContext::deleteTexture): Ditto.
(WebCore::WebGLRenderingContext::framebufferRenderbuffer): Call setAttachment.
(WebCore::WebGLRenderingContext::framebufferTexture2D): Call onAttachedObjectChange().
(WebCore::WebGLRenderingContext::renderbufferStorage): Ditto.
(WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
* platform/graphics/mac/GraphicsContext3DMac.cpp:
(WebCore::GraphicsContext3D::reshape): Initialize internal buffers.
2010-05-27 Kristian Monsen <kristianm@google.com>
Reviewed by Darin Adler.
Compile fix for Android, added include for Refcounted.h, this did not get
included through Threading.h in Android.
https://bugs.webkit.org/show_bug.cgi?id=39678
Build fix only, no new tests.
* storage/SQLTransactionSyncCallback.h:
2010-05-27 Joone Hur <joone@kldp.org>
Reviewed by Xan Lopez.
Add GtkVersioning.h in ScrollbackGtk.cpp for maintaining compatibility with the previous GTK+
https://bugs.webkit.org/show_bug.cgi?id=39567
* platform/gtk/ScrollbarGtk.cpp:
2010-05-27 Hans Wennborg <hans@chromium.org>
Reviewed by Alexey Proskuryakov.
Increase limit on number of (i)frames from 200 to 1000.
https://bugs.webkit.org/show_bug.cgi?id=39427
The limit on number of iframes was introduced in r3707 back in 2003.
An example of a page that is broken because of this is:
http://vimcolorschemetest.googlecode.com/svn/html/index-c.html
Neither Firefox nor IE has such a limit.
It seems that WebKit can handle a significantly higher number of frames, and
the original reasons for imposing the limit are believed to be gone.
Tests: compositing/iframes/lots-of-iframes.html
compositing/iframes/lots-of-objects.html
* html/HTMLFrameElementBase.cpp:
(WebCore::HTMLFrameElementBase::isURLAllowed):
* page/FrameTree.cpp:
(WebCore::FrameTree::uniqueChildName):
* page/Page.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::isURLAllowed):
2010-05-27 Kwang Yul Seo <skyul@company100.net>
Reviewed by Xan Lopez.
[GTK] writeToFile fails when length is large
https://bugs.webkit.org/show_bug.cgi?id=39666
writeToFile forgot to increment data pointer.
* platform/gtk/FileSystemGtk.cpp:
(WebCore::writeToFile):
2010-05-26 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=39783, clean up the moveChild functions on RenderBlock.
Eliminate the need to pass the toChildrenList to the moveChild functions by tightening up the type of the
|to| argument to be a RenderBlock.
Add a moveChildrenTo function that can move a range of children, and patch places that were doing this
by hand.
Make the append forms of the functions just use the insert forms with a beforeChild of 0.
Patch insertChildNode in RenderObjectChildList so that it passes the fullInsert parameter through in the
case where it does an append.
Add an assert to RenderLayer that catches bad structure built when the fullInsert/Remove parameters are
messed up when using append/insertChildNode.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveChildrenTo):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::moveChildrenTo):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::addChild):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
2010-05-27 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add <pre>/<listing> hack to HTML5Lexer to fix the last remaining HTML5 test suite regressions
https://bugs.webkit.org/show_bug.cgi?id=39818
HTML parsers are supposed to ignore the first \n after a <pre> or <listing> tag
for authoring convenience. Our new HTML5Lexer didn't have this hack yet
so there were 4 HTML5 tests failing. Fixing this fixed the last of the HTML5
test suite regressions using the HTML5Lexer vs the old lexer.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::reset):
(WebCore::HTML5Lexer::nextToken):
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::skipLeadingNewLineForListing):
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
2010-05-26 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Teach the HTML5 parser how to handle external scripts
https://bugs.webkit.org/show_bug.cgi?id=39716
Make it possible for the HTML5Tokenizer to run external scripts.
I created a new class HTML5ScriptRunner to hold all of the
script-logic which is scattered throughout the old HTMLTokenizer.
The design is for the HTML5Tokenizer (the "controller") to hold
the Lexer, TreeBuilder and ScriptRunner. The Lexer returns back
to the controller, which passes tokens to the TreeBuilder. When the
treebuilder encounters a </script> tag it pauses itself and returns
back to the controller which calls the ScriptRunner. The TreeBuilder
is un-paused when the HTML5Tokenizer calls takeScriptToProcess().
The ScriptRunner attempts to process the passed script, and additionally
any blocked scripts it can. It returns to the controller indicating if
parsing should continue. If not, callbacks when external scripts load
or when stylesheets are finished parsing will cause the controller to
kick off script execution and parsing again at a later point.
* WebCore.xcodeproj/project.pbxproj:
- Add HTML5ScriptRunner.*
* bindings/js/CachedScriptSourceProvider.h:
- Add missing include discovered while building.
* dom/ScriptElement.cpp:
(WebCore::ScriptElement::finishParsingChildren):
- Remove previous hack for inline <script> execution.
* dom/ScriptElement.h:
- Explain the HTML5 spec names for m_evaluated and m_createdByParser.
* html/HTML5ScriptRunner.cpp: Added.
(WebCore::HTML5ScriptRunner::HTML5ScriptRunner):
- The HTML5Tokenizer is passed to the HTML5ScriptRunner as a
CachedResourceClient. The HTML5ScriptRunner will register the
HTML5Tokenizer for notifyFinished callbacks when the scripts load.
The HTML5Tokenizer is expected to call the HTML5ScriptRunner to
execute any loaded scripts at that point.
(WebCore::HTML5ScriptRunner::~HTML5ScriptRunner):
(WebCore::HTML5ScriptRunner::frame): Helper method.
(WebCore::createScriptLoadEvent): Helper method.
(WebCore::createScriptErrorEvent): Helper method.
(WebCore::HTML5ScriptRunner::sourceFromPendingScript):
- Helper method for dealing with both inline and external script types.
(WebCore::HTML5ScriptRunner::isPendingScriptReady):
- Helper for dealing with both inline and external scripts.
(WebCore::HTML5ScriptRunner::executePendingScript):
- Execute one script. Both external and inline scripts
can become m_parsingBlockingScript if they can't be executed
immediately after parsing.
(WebCore::HTML5ScriptRunner::execute):
- Takes a script element from the tree builder and tries
to process it.
(WebCore::HTML5ScriptRunner::executeParsingBlockingScripts):
- Runs the current parsing blocking script if ready.
- Running a script could add another parsing blocking script
so we loop until there is no ready-to-run parsing blocking script.
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForLoad):
- Called by HTML5Tokenizer when a script loads.
(WebCore::HTML5ScriptRunner::executeScriptsWaitingForStylesheets):
- Called by HTML5Tokenizer when stylesheets complete.
(WebCore::HTML5ScriptRunner::requestScript):
- Transcription of the HTML5 spec.
(WebCore::HTML5ScriptRunner::runScript):
- Transcription of the HTML5 spec.
* html/HTML5ScriptRunner.h: Added.
- New class to handle script loading and execution for the HTML5 parser.
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::HTML5Tokenizer):
- Create a HTML5ScriptRunner and pass it "this" as the CachedResourceClient.
(WebCore::HTML5Tokenizer::pumpLexer):
- When the parser is paused, try to run scripts.
(WebCore::HTML5Tokenizer::write):
- Only pump the lexer when the parser is not paused.
(WebCore::HTML5Tokenizer::end):
- finish() tells us that we've reached EOF, not end()
- Only pump the lexer when the parser is not paused.
(WebCore::HTML5Tokenizer::finish):
- Mark EOF, and end() if we're not waiting on scripts.
(WebCore::HTML5Tokenizer::isWaitingForScripts):
- isPaused() seems to mean isPausedForExternalScripts().
(WebCore::HTML5Tokenizer::resumeParsingAfterScriptExecution):
(WebCore::HTML5Tokenizer::notifyFinished):
(WebCore::HTML5Tokenizer::executeScriptsWaitingForStylesheets):
* html/HTML5Tokenizer.h:
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::HTML5TreeBuilder):
- Add an m_isPaused flag.
(WebCore::HTML5TreeBuilder::handleScriptStartTag):
(WebCore::HTML5TreeBuilder::handleScriptEndTag):
(WebCore::HTML5TreeBuilder::takeScriptToProcess):
- Acknowledge that the caller has received the script element.
It is the caller's responsibility to execute the script if necessary
and re-pause the tree builder if necessary.
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
- Save off the current script tag so that it can be passed to
the HTML5ScriptRunner when we're paused.
* html/HTML5TreeBuilder.h:
(WebCore::HTML5TreeBuilder::setPaused):
(WebCore::HTML5TreeBuilder::isPaused):
2010-05-26 Adam Barth <abarth@webkit.org>
Reviewed by Darin Adler.
Implement SegmentedString::lookAheadSlowCase
https://bugs.webkit.org/show_bug.cgi?id=39802
The slow case is need by the resumer test suite. Sadly, the resumer
test suite is really slow and produces infinite errors (many of which
are false positives). I'll land more of the resumer test suite in a
future patch.
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::advance):
* platform/text/SegmentedString.h:
(WebCore::SegmentedString::lookAhead):
(WebCore::SegmentedString::lookAheadIgnoringCase):
(WebCore::SegmentedString::equalsLiterally):
(WebCore::SegmentedString::equalsIgnoringCase):
(WebCore::SegmentedString::lookAheadInline):
(WebCore::SegmentedString::lookAheadSlowCase):
2010-05-26 Jer Noble <jer.noble@apple.com>
Patch edited by Adele Peterson and Mark Rowe.
Reviewed by Eric Carlson
Video elements show no video on Windows machines that do not support accelerated compositing
https://bugs.webkit.org/show_bug.cgi?id=39446
rdar://problem/7999794
Create the visual context in setUpVideoRendering (as opposed to in load), and destroy it in
tearDownVideoRendering (as opposed to in the destructor.)
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::~MediaPlayerPrivateQuickTimeVisualContext):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::load): Moved creation of the visual context to setUpVideoRendering.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::paint): Return early if the visual context isn't set up.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::currentRenderingMode): If the visual context isn't set up,
return MediaRenderingNone.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpVideoRendering): Create the visual context.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::tearDownVideoRendering): Destroy the visual context.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::hasSetUpVideoRendering): For software rendering mode,
make sure the visual context has been set up when saying the setup has been done.
* platform/graphics/win/QTMovieVisualContext.cpp:
(QTMovieVisualContextPriv::~QTMovieVisualContextPriv): Destruction moved to tearDownVideoRendering.
Also, make sure to cancel the visual context's newImageAvailable callback in the visual context's destructor.
(QTMovieVisualContext::create): Added.
* platform/graphics/win/QTMovieVisualContext.h:
2010-05-26 Gustavo Noronha Silva <gns@gnome.org>
Build fixes for make distcheck.
* GNUmakefile.am:
2010-05-26 Zelidrag Hornung <zelidrag@chromium.org>
Reviewed by Ojan Vafai.
Fixed frame page up/down scrolling calculation. Made sure that the
cursor moves with page up/down event. Please note that now for mac
editing behavior we will scroll the content to center the cursor on
page up/down while other platforms will align the cursor with the top of
displayed frame.
https://bugs.webkit.org/show_bug.cgi?id=38213
Tests: editing/input/option-page-up-down.html (fixed)
editing/input/scroll-viewport-page-up-down.html
* WebCore.base.exp:
* editing/EditorCommand.cpp:
(WebCore::verticalScrollDistance): Fixed page scroll calculation. Now scroll height is calculated only from the visible portion not the entire frame height.
(WebCore::executeMovePageDown): Now it can tell SelectionController to move the cursor with the page scroll up/down events.
(WebCore::executeMovePageDownAndModifySelection): Ditto.
(WebCore::executeMovePageUp): Ditto.
(WebCore::executeMovePageUpAndModifySelection): Ditto.
* editing/SelectionController.cpp:
* editing/SelectionController.cpp: Exposed an enum param that lets EditorCommand.cpp control how cursor position will be aligned when page moves.
(WebCore::SelectionController::setSelection): Ditto.
(WebCore::SelectionController::modify): Ditto.
* editing/SelectionController.h: Ditto.
(WebCore::SelectionController::): Ditto.
(WebCore::SelectionController::setSelection): Ditto.
2010-05-26 Jaime Yap <jaimeyap@google.com>
Reviewed by Pavel Feldman.
ScriptCallStack::callLocation() sometimes passed an empty handle to
toWebCoreString() causing a null pointer deref.
https://bugs.webkit.org/show_bug.cgi?id=39681
* bindings/v8/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::callLocation):
2010-05-26 Brian Weinstein <bweinstein@apple.com>
Reviewed by Mark Rowe.
Web Inspector: Tooltip on Pause on Exceptions doesn't show up until it is clicked.
https://bugs.webkit.org/show_bug.cgi?id=39804
Initialize the title attribute of the Pause on Exceptions button when we initialize other information
about it.
* inspector/front-end/ScriptsPanel.js:
(WebInspector.ScriptsPanel):
2010-05-26 Adam Barth <abarth@webkit.org>
Unreviewed, rolling out r60262.
http://trac.webkit.org/changeset/60262
https://bugs.webkit.org/show_bug.cgi?id=39783
Broke every build and is blocking me from working. :(
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlock.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::addChild):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
(WebCore::RenderRubyBase::mergeBlockChildren):
2010-05-26 Anders Carlsson <andersca@apple.com>
Unreviewed, rolling out r60256.
http://trac.webkit.org/changeset/60256
https://bugs.webkit.org/show_bug.cgi?id=39382
Causes fast/dom/prototype-inheritance-2.html to start
crashing.
* history/PageCache.cpp:
(WebCore::PageCache::PageCache):
(WebCore::PageCache::add):
* history/PageCache.h:
(WebCore::PageCache::get):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::commitIfReady):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::canCachePageContainingThisFrame):
(WebCore::FrameLoader::canCachePage):
(WebCore::pageCacheLogPrefix):
(WebCore::pageCacheLog):
(WebCore::FrameLoader::logCanCachePageDecision):
(WebCore::FrameLoader::logCanCacheFrameDecision):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::open):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::FrameLoader::cachePageForHistoryItem):
(WebCore::FrameLoader::navigateToDifferentDocument):
* loader/FrameLoader.h:
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
2010-05-26 David Hyatt <hyatt@apple.com>
Reviewed by Sam Weinig.
https://bugs.webkit.org/show_bug.cgi?id=39783, clean up the moveChild functions on RenderBlock.
Eliminate the need to pass the toChildrenList to the moveChild functions by tightening up the type of the
|to| argument to be a RenderBlock.
Add a moveChildrenTo function that can move a range of children, and patch places that were doing this
by hand.
Make the append forms of the functions just use the insert forms with a beforeChild of 0.
Patch insertChildNode in RenderObjectChildList so that it passes the fullInsert parameter through in the
case where it does an append.
Add an assert to RenderLayer that catches bad structure built when the fullInsert/Remove parameters are
messed up when using append/insertChildNode.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
(WebCore::RenderBlock::createAndAppendRootInlineBox):
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveChildrenTo):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::moveChildrenTo):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::addChild):
* rendering/RenderObjectChildList.cpp:
(WebCore::RenderObjectChildList::insertChildNode):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
2010-05-26 Anders Carlsson <andersca@apple.com>
Fix GTK+ test failures.
* plugins/gtk/PluginDataGtk.cpp:
(WebCore::PluginData::initPlugins):
* plugins/win/PluginDataWin.cpp:
(WebCore::PluginData::initPlugins):
2010-05-25 Anders Carlsson <andersca@apple.com>
Reviewed by Darin Adler.
Clean up MimeClassInfo and PluginInfo
https://bugs.webkit.org/show_bug.cgi?id=39700
This gets rid of all the heap allocation from MimeClassInfo and PluginInfo.
It also changes the m_plugins and m_mimes vectors in PluginData to not hold heap allocated MimeClassInfo
and PluginClassInfo objects.
* page/Page.cpp:
(WebCore::Page::refreshPlugins):
* plugins/MimeType.cpp:
(WebCore::MimeType::type):
(WebCore::MimeType::suffixes):
(WebCore::MimeType::description):
(WebCore::MimeType::enabledPlugin):
* plugins/MimeType.h:
(WebCore::MimeType::mimeClassInfo):
* plugins/MimeTypeArray.cpp:
(WebCore::MimeTypeArray::item):
(WebCore::MimeTypeArray::canGetItemsForName):
(WebCore::MimeTypeArray::namedItem):
* plugins/Plugin.cpp:
(WebCore::Plugin::name):
(WebCore::Plugin::filename):
(WebCore::Plugin::description):
(WebCore::Plugin::length):
(WebCore::Plugin::item):
(WebCore::Plugin::canGetItemsForName):
(WebCore::Plugin::namedItem):
* plugins/Plugin.h:
(WebCore::Plugin::pluginInfo):
* plugins/PluginArray.cpp:
(WebCore::PluginArray::length):
(WebCore::PluginArray::item):
(WebCore::PluginArray::canGetItemsForName):
(WebCore::PluginArray::namedItem):
(WebCore::PluginArray::pluginData):
* plugins/PluginArray.h:
* plugins/PluginData.cpp:
(WebCore::PluginData::PluginData):
(WebCore::PluginData::~PluginData):
(WebCore::PluginData::supportsMimeType):
(WebCore::PluginData::pluginNameForMimeType):
* plugins/PluginData.h:
(WebCore::operator==):
(WebCore::PluginData::create):
(WebCore::PluginData::disconnectPage):
(WebCore::PluginData::page):
(WebCore::PluginData::plugins):
(WebCore::PluginData::mimes):
* plugins/chromium/PluginDataChromium.cpp:
(WebCore::PluginCache::reset):
(WebCore::PluginCache::plugins):
(WebCore::PluginData::initPlugins):
(WebCore::getPluginMimeTypeFromExtension):
* plugins/gtk/PluginDataGtk.cpp:
(WebCore::PluginData::initPlugins):
* plugins/mac/PluginDataMac.mm:
(WebCore::PluginData::initPlugins):
* plugins/qt/PluginDataQt.cpp:
(WebCore::PluginData::initPlugins):
* plugins/win/PluginDataWin.cpp:
(WebCore::PluginData::initPlugins):
* plugins/wx/PluginDataWx.cpp:
(WebCore::PluginData::initPlugins):
2010-05-26 Nate Chapin <japhet@chromium.org>
Reviewed by Adam Barth.
Factor PageCache functionality out of FrameLoader and into
PageCache.
https://bugs.webkit.org/show_bug.cgi?id=39382
Refactor only, so no new tests.
* history/PageCache.cpp:
(WebCore::pageCacheLogPrefix):
(WebCore::pageCacheLog):
(WebCore::logCanCacheFrameDecision):
(WebCore::logCanCachePageDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
(WebCore::PageCache::canCache):
(WebCore::PageCache::add):
(WebCore::PageCache::get):
* history/PageCache.h:
* loader/DocumentLoader.cpp:
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::prepareForCachedPageRestore):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
(WebCore::FrameLoader::loadProvisionalItemFromCachedPage):
(WebCore::FrameLoader::navigateToDifferentDocument):
* loader/FrameLoader.h:
(WebCore::FrameLoader::quickRedirectComing):
* svg/graphics/SVGImage.cpp:
2010-05-26 Peter Kasting <pkasting@google.com>
Reviewed by Adam Barth.
https://bugs.webkit.org/show_bug.cgi?id=39786
Properly reset |bytes_to_consume| when reaching the "gif_done" state in
the open-source GIF decoder.
No tests, since there's no test harness support for checking the
internal ImageDecoder state values.
* platform/image-decoders/gif/GIFImageReader.cpp:
(GIFImageReader::read): Use a macro to perform the state change, like we do everywhere else in the file. Also correctly return "failure" for certain corrupt GIFs, since that doesn't prevent their display (due to WebKit's different use of this code compared to Mozilla).
2010-05-26 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r60251.
http://trac.webkit.org/changeset/60251
https://bugs.webkit.org/show_bug.cgi?id=39788
broke tests (Requested by dhyatt on #webkit).
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlock.h:
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
(WebCore::RenderRubyBase::mergeBlockChildren):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::removeChild):
2010-05-26 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix webkit01.dat resumer tests in HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39796
To match the old tokenizer, we should only flush character tokens when
we reach EOF. Added a notion of a "closed" segmented string that
cannot be appended to, which models EOF.
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::shouldEmitBufferedCharacterToken):
* html/HTML5Lexer.h:
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::pumpLexer):
(WebCore::HTML5Tokenizer::write):
(WebCore::HTML5Tokenizer::end):
* html/HTML5Tokenizer.h:
* platform/text/SegmentedString.cpp:
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::clear):
(WebCore::SegmentedString::append):
* platform/text/SegmentedString.h:
(WebCore::SegmentedString::SegmentedString):
(WebCore::SegmentedString::close):
(WebCore::SegmentedString::isClosed):
2010-05-26 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Make HTML5 lexer not ASSERT when resuming partial parses
https://bugs.webkit.org/show_bug.cgi?id=39755
I'm working through a variation of the webkit-runner.html test suite
that stops the parser at every character to make sure we can resume
parsing correctly. This patch fixes some errors caught by ASSERTs,
which prevent the basic tests from running to completion. There's a
bunch more work to do, however.
Test: html5lib/webkit-resumer.html
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::isEndTagBufferingState):
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::addToPossibleEndTag):
* html/HTML5Lexer.h:
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::write):
* html/HTML5Tokenizer.h:
2010-05-26 Alexey Proskuryakov <ap@apple.com>
Mac 32 bit build fix.
* platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit):
Use static_cast instead of narrowPrecisionToFloat - the latter can't convert from float to float.
2010-05-26 David Hyatt <hyatt@apple.com>
Reviewed by Ojan.
https://bugs.webkit.org/show_bug.cgi?id=39783, clean up moveChild functions in RenderBlock.
Cut out the need to pass the to block's child list by tightening up the type of the to object
from RenderObject to RenderBlock.
Implement the "append" versions of the move functions using their "insert" counterparts, since
insertChildNode just calls appendChildNode when beforeChild is 0 anyway.
Add comments explaining why the default for fullRemoveInsert is false, and make sure all forms
of the move functions have the optional parameter for consistency.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::createAndAppendRootInlineBox):
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
(WebCore::RenderBlock::makeChildrenNonInline):
(WebCore::RenderBlock::removeChild):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::moveChildTo):
(WebCore::RenderBlock::moveAllChildrenTo):
* rendering/RenderRubyBase.cpp:
(WebCore::RenderRubyBase::moveInlineChildren):
(WebCore::RenderRubyBase::moveBlockChildren):
(WebCore::RenderRubyBase::mergeBlockChildren):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::removeChild):
2010-05-26 Dan Bernstein <mitz@apple.com>
Typed and reviewed by Alexey Proskuryakov.
https://bugs.webkit.org/show_bug.cgi?id=39682
<rdar://problem/8026774> REGRESSION: WebKit nightly adding insane height to div at random
Test: fast/css/custom-font-xheight.html
* platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformInit):
Calling an Objective C method that returns a structure with a null object can leave garbage in
returned value. Custom fonts don't have an NSFont, they only have a CGFont. Call
platformBoundsForGlyph() function instead, which works with CGFont.
(WebCore::SimpleFontData::platformBoundsForGlyph): Fixed to work on Tiger (for fonts that
have an NSFont), since this is now used in more cases.
2010-05-26 Beth Dakin <bdakin@apple.com>
Build fix for Mac clean builds.
* storage/IDBDatabaseRequest.idl:
2010-05-26 Eric Carlson <eric.carlson@apple.com>
Reviewed by Dan Bernstein.
Must not cast between CFNumberRef and CFBooleanRef.
<rdar://problem/8030739>
https://bugs.webkit.org/show_bug.cgi?id=39756
* platform/graphics/win/QTMovieVisualContext.cpp:
(QTMovieVisualContext::getCGImageOptions): QuickTime assumes the value associated
with kCVPixelBufferCGImageCompatibilityKey is a CFBoolean, so add one.
2010-05-26 Xan Lopez <xlopez@igalia.com>
GTK+ build fix, strike two.
* bindings/gobject/WebKitDOMEventTarget.cpp:
(webkit_dom_event_target_get_type):
(webkit_dom_event_target_default_init):
2010-05-26 Jeremy Orlow <jorlow@chromium.org>
Unreviewed build fix for Windows + clean up the Visual Studio project.
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
2010-05-26 Andrei Popescu <andreip@google.com>
Reviewed by Jeremy Orlow.
Indexed Database component is missing IDBObjectStoreRequest interface
https://bugs.webkit.org/show_bug.cgi?id=39490
Adding IDL and stub implementation for IDBObjectStoreRequest.
No new tests, indexed database isn't yet testable.
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pri:
* WebCore.pro:
* WebCore.xcodeproj/project.pbxproj:
* bindings/js/JSIDBObjectStoreRequestCustom.cpp: Added.
(WebCore::JSIDBObjectStoreRequest::remove):
(WebCore::JSIDBObjectStoreRequest::addOrModify):
(WebCore::JSIDBObjectStoreRequest::modify):
(WebCore::JSIDBObjectStoreRequest::add):
(WebCore::JSIDBObjectStoreRequest::get):
* bindings/v8/custom/V8IDBObjectStoreRequestCustom.cpp: Added.
(WebCore::V8IDBObjectStoreRequest::removeCallback):
(WebCore::V8IDBObjectStoreRequest::addOrModifyCallback):
(WebCore::V8IDBObjectStoreRequest::modifyCallback):
(WebCore::V8IDBObjectStoreRequest::addCallback):
(WebCore::V8IDBObjectStoreRequest::getCallback):
* storage/IDBObjectStore.cpp: Added.
* storage/IDBObjectStore.h: Added.
(WebCore::IDBObjectStore::~IDBObjectStore):
* storage/IDBObjectStoreRequest.cpp: Added.
(WebCore::IDBObjectStoreRequest::name):
(WebCore::IDBObjectStoreRequest::keyPath):
(WebCore::IDBObjectStoreRequest::IDBObjectStoreRequest):
* storage/IDBObjectStoreRequest.h: Added.
(WebCore::IDBObjectStoreRequest::create):
(WebCore::IDBObjectStoreRequest::~IDBObjectStoreRequest):
* storage/IDBObjectStoreRequest.idl: Added.
2010-05-26 Xan Lopez <xlopez@igalia.com>
Unreviewed GTK+ build fix.
Use G_DEFINE_INTERFACE only if it's available.
* bindings/gobject/WebKitDOMEventTarget.cpp:
(webkit_dom_event_target_get_type):
(webkit_dom_event_target_default_init):
2010-05-26 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Darin Fisher.
Implement WebDOMStorageList and make WebIDBDatabase use it
https://bugs.webkit.org/show_bug.cgi?id=39731
Remove unused function.
* dom/DOMStringList.h:
2010-05-26 Jessie Berlin <jberlin@webkit.org>
Reviewed by Pavel Feldman
Bug 31296 - Web Inspector: Should support console.groupCollapsed
https://bugs.webkit.org/show_bug.cgi?id=31296
* inspector/InspectorController.cpp:
(WebCore::InspectorController::startGroup):
Set the message type based on whether or not it should be initially collapsed.
* inspector/InspectorController.h:
* inspector/front-end/ConsoleView.js:
Treat a StartGroupCollapsed message the same way as a StartGroup message, but display the tree for the group as collapsed.
(WebInspector.ConsoleView.prototype.addMessage):
(WebInspector.ConsoleMessage.prototype.toMessageElement):
(WebInspector.ConsoleMessage.prototype.toString):
(WebInspector.ConsoleGroup.prototype.addMessage):
* page/Console.cpp:
(WebCore::Console::groupCollapsed):
Create a group and indicate that it should be collapsed.
* page/Console.h:
Add the StartGroupCollapsed message type.
(WebCore::):
* page/Console.idl:
Create the JS bindings for groupCollapsed.
2010-05-26 yael aharon <yael.aharon@nokia.com>
Reviewed by Kent Tamura.
Support the labels attribute in labelable form controls
https://bugs.webkit.org/show_bug.cgi?id=38713
Added a new cache type in NodeRareData to store the new cache type.
This cache is created on demand.
Added the "labels" attribute to all form controls that support this attribute.
Tests: fast/forms/labels-add-htmlFor-label.html
fast/forms/labels-add-parent-label.html
fast/forms/labels-change-htmlFor-attribute.html
fast/forms/labels-item-index.html
fast/forms/labels-remove-htmlFor-attribute.html
fast/forms/labels-remove-htmlFor-label.html
fast/forms/labels-remove-parent-label.html
fast/forms/labels-set-htmlFor-attribute.html
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Node.cpp:
(WebCore::Node::notifyLocalNodeListsLabelChanged):
(WebCore::Node::removeCachedLabelsNodeList):
(WebCore::NodeListsNodeData::invalidateCaches):
(WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes):
(WebCore::NodeListsNodeData::isEmpty):
* dom/Node.h:
* dom/NodeRareData.h:
(WebCore::NodeListsNodeData::NodeListsNodeData):
* html/HTMLButtonElement.idl:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::isLabelable):
(WebCore::HTMLFormControlElement::labels):
* html/HTMLFormControlElement.h:
* html/HTMLInputElement.idl:
* html/HTMLLabelElement.cpp:
(WebCore::HTMLLabelElement::parseMappedAttribute):
* html/HTMLLabelElement.h:
* html/HTMLMeterElement.idl:
* html/HTMLProgressElement.idl:
* html/HTMLSelectElement.idl:
* html/HTMLTextAreaElement.idl:
* html/LabelsNodeList.cpp: Added.
(WebCore::LabelsNodeList::LabelsNodeList):
(WebCore::LabelsNodeList::~LabelsNodeList):
(WebCore::LabelsNodeList::nodeMatches):
* html/LabelsNodeList.h: Added.
(WebCore::LabelsNodeList::create):
2010-05-26 Xan Lopez <xlopez@igalia.com>
Reviewed by Jeremy Orlow.
Style fix in JSEventCustom.cpp
https://bugs.webkit.org/show_bug.cgi?id=39727
Conditional includes should be all together after the
unconditional includes.
* bindings/js/JSEventCustom.cpp:
2010-05-24 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
Add IDBDatabase's attributes
https://bugs.webkit.org/show_bug.cgi?id=39602
Add the attributes (like name, description, etc) for
IDBDatabaseRequest. Plumb that back to the IDBDatabase
object which stores the data.
CMake and Android build changes in another CL (that
fixes other stuff too).
Updated the layout test, but there's some further testing
that needs to be added once the Chromium side of this lands.
* GNUmakefile.am
* WebCore.gypi:
* WebCore.pro
* WebCore.vcproj/WebCore.vcproj
* WebCore.xcodeproj/project.pbxproj
* dom/DOMStringList.h:
(WebCore::DOMStringList::strings):
* storage/IDBDatabase.cpp: Removed.
* storage/IDBDatabase.h:
* storage/IDBDatabaseImpl.cpp: Added.
(WebCore::IDBDatabaseImpl::IDBDatabaseImpl):
(WebCore::IDBDatabaseImpl::~IDBDatabaseImpl):
(WebCore::IDBDatabaseImpl::objectStores):
* storage/IDBDatabaseImpl.h: Added.
(WebCore::IDBDatabaseImpl::create):
(WebCore::IDBDatabaseImpl::name):
(WebCore::IDBDatabaseImpl::description):
(WebCore::IDBDatabaseImpl::version):
* storage/IDBDatabaseRequest.h:
(WebCore::IDBDatabaseRequest::name):
(WebCore::IDBDatabaseRequest::description):
(WebCore::IDBDatabaseRequest::version):
(WebCore::IDBDatabaseRequest::objectStores):
* storage/IDBDatabaseRequest.idl:
* storage/IDBSuccessEvent.cpp:
(WebCore::IDBSuccessEvent::IDBSuccessEvent):
* storage/IndexedDatabaseImpl.cpp:
(WebCore::IndexedDatabaseImpl::open):
* storage/IndexedDatabaseImpl.h:
2010-05-26 Xan Lopez <xlopez@igalia.com>
Reviewed by NOBODY Gustavo Noronha.
[GTK] Add support for DOM events in the GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=38844
Add actual GObject event objects to the DOM event signals.
* GNUmakefile.am:
* bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::handleEvent):
* bindings/gobject/WebKitDOMBinding.cpp:
(WebKit::wrapEventTarget):
(WebKit::kit):
* bindings/gobject/WebKitDOMBinding.h:
* bindings/gobject/WebKitDOMEventTarget.cpp: Added.
(webkit_dom_event_target_default_init):
(webkit_dom_event_target_dispatch_event):
* bindings/gobject/WebKitDOMEventTarget.h: Added.
* bindings/scripts/CodeGeneratorGObject.pm:
2010-05-24 Jeremy Orlow <jorlow@chromium.org>
Reviewed by Steve Block.
[Android] Add IndexedDB to the build
https://bugs.webkit.org/show_bug.cgi?id=39593
Add the current list of build files to Android's make files. From now on,
I'll try to be sure to update these along with the rest.
Also, fix a nit in the gypi file.
No tests..just changing build files.
* Android.derived.jscbindings.mk:
* Android.derived.v8bindings.mk:
* Android.mk:
* WebCore.gypi:
2010-05-26 Alexander Pavlov <apavlov@chromium.org>
Reviewed by Pavel Feldman.
Expose CSS rule body start/end offsets in the parent stylesheet
https://bugs.webkit.org/show_bug.cgi?id=38906
CSSParser::parseSheet() accepts an optional external Vector where the start/end offsets
of the CSSStyleRule bodies, relative to the beginning of the stylesheet, will be stored.
This Vector is only used when the Web Inspector needs the body ranges, thus there is no
memory overhead until the user starts editing styles via the Web Inspector.
Additionally, fixed an issue with a single inspectorStyleSheet for all frames in the page.
Test: inspector/styles-source-offsets.html
* css/CSSGrammar.y:
* css/CSSParser.cpp:
(WebCore::CSSParser::CSSParser):
(WebCore::CSSParser::setupParser):
(WebCore::CSSParser::parseSheet):
(WebCore::CSSParser::createStyleRule):
(WebCore::CSSParser::updateLastSelectorLineAndPosition):
(WebCore::CSSParser::markRuleBodyStart):
(WebCore::CSSParser::markRuleBodyEnd):
* css/CSSParser.h:
(WebCore::CSSParser::resetRuleBodyMarks):
* inspector/InspectorCSSStore.cpp:
(WebCore::InspectorCSSStore::InspectorCSSStore):
(WebCore::InspectorCSSStore::reset):
(WebCore::InspectorCSSStore::removeDocument):
(WebCore::InspectorCSSStore::inspectorStyleSheet):
(WebCore::InspectorCSSStore::getStartEndOffsets):
(WebCore::InspectorCSSStore::getIndexInStyleRules):
(WebCore::InspectorCSSStore::disabledStyleForId):
(WebCore::InspectorCSSStore::styleForId):
(WebCore::InspectorCSSStore::ruleForId):
(WebCore::InspectorCSSStore::bindStyle):
(WebCore::InspectorCSSStore::bindStyleSheet):
(WebCore::InspectorCSSStore::bindRule):
* inspector/InspectorCSSStore.h:
* inspector/InspectorController.cpp:
(WebCore::InspectorController::InspectorController):
(WebCore::InspectorController::resourceForURL):
* inspector/InspectorController.h:
(WebCore::InspectorController::inspectorFrontend):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::InspectorDOMAgent):
(WebCore::InspectorDOMAgent::unbind):
(WebCore::InspectorDOMAgent::getStyles):
(WebCore::InspectorDOMAgent::getAllStyles):
(WebCore::InspectorDOMAgent::buildArrayForCSSRules):
(WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
(WebCore::InspectorDOMAgent::applyStyleText):
(WebCore::InspectorDOMAgent::setStyleText):
(WebCore::InspectorDOMAgent::setStyleProperty):
(WebCore::InspectorDOMAgent::toggleStyleEnabled):
(WebCore::InspectorDOMAgent::setRuleSelector):
(WebCore::InspectorDOMAgent::addRule):
(WebCore::InspectorDOMAgent::buildObjectForStyle):
(WebCore::InspectorDOMAgent::buildArrayForDisabledStyleProperties):
(WebCore::InspectorDOMAgent::buildObjectForStyleSheet):
(WebCore::InspectorDOMAgent::buildObjectForRule):
* inspector/InspectorDOMAgent.h:
* inspector/front-end/DOMAgent.js:
(WebInspector.CSSStyleDeclaration):
2010-05-26 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Add support for DOM events in the GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=38844
Use GObject-like names for the DOM event signals. Basically go
from 'mousewheel' to 'mouse-wheel-event'.
* bindings/scripts/CodeGeneratorGObject.pm:
2010-05-26 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Sort Xcode project file.
* WebCore.xcodeproj/project.pbxproj:
2010-05-26 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] Add support for DOM events in the GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=38844
First step towards DOM events support. We create one signal per
event supported in the DOM classes, and create a custom
GObjectEventListener that will emit a GObject signal when an event
is dispatched to the object. There is no event object at the
moment (we just pass NULL), and no support for hooking into the
capture phase.
* GNUmakefile.am:
* bindings/gobject/GObjectEventListener.cpp: Added.
(WebCore::GObjectEventListener::handleEvent):
(WebCore::GObjectEventListener::operator==):
* bindings/gobject/GObjectEventListener.h: Added.
(WebCore::GObjectEventListener::create):
(WebCore::GObjectEventListener::cast):
(WebCore::GObjectEventListener::GObjectEventListener):
* bindings/scripts/CodeGeneratorGObject.pm:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
(WebKit::core):
(webkit_dom_test_callback_finalize):
(webkit_dom_test_callback_class_init):
(WebKit::wrapTestCallback):
* bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
(WebKit::core):
(webkit_dom_test_interface_finalize):
(webkit_dom_test_interface_class_init):
(WebKit::wrapTestInterface):
* bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
(WebKit::core):
(webkit_dom_test_obj_finalize):
(webkit_dom_test_obj_class_init):
(WebKit::wrapTestObj):
* dom/EventListener.h:
(WebCore::EventListener::):
2010-05-26 Xan Lopez <xlopez@igalia.com>
Reviewed by Gustavo Noronha.
[GTK] GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=33590
We need to protect the body of some methods with #ifdefs, since
the availability of the code they call into is decided at compile
time.
* bindings/scripts/CodeGeneratorGObject.pm:
2010-05-26 Kent Tamura <tkent@chromium.org>
Reviewed by Shinichiro Hamaji.
Move date/time limit values to DateComponents.h from HTMLInputElement.cpp
https://bugs.webkit.org/show_bug.cgi?id=39423
The minimum and maximum values for date, datetime, datetime-local,
month, time, and week types depend on the implementation of
DateComponents. So move them to DateComponents.
* html/DateComponents.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::minimum):
(WebCore::HTMLInputElement::maximum):
2010-05-26 Csaba Osztrogonác <ossy@webkit.org>
Reviewed by Simon Hausmann.
Buildfix for build without ENABLE(RUBY) after r60201.
* rendering/RenderBlock.cpp:
(WebCore::canMergeContiguousAnonymousBlocks): Missing #if ENABLE(RUBY) guard added.
2010-05-26 Nikolas Zimmermann <nzimmermann@rim.com>
Not reviewed. Update test expectations for JS generator, when using run-webkit-tests. This has been forgotten.
* bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::JSTestInterfaceConstructor::JSTestInterfaceConstructor):
(WebCore::JSTestInterface::createPrototype):
* bindings/scripts/test/JS/JSTestInterface.h:
(WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
* bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::JSTestObjConstructor::JSTestObjConstructor):
(WebCore::JSTestObj::createPrototype):
* bindings/scripts/test/JS/JSTestObj.h:
(WebCore::JSTestObjPrototype::JSTestObjPrototype):
2010-05-25 Philippe Normand <pnormand@igalia.com>
Reviewed by Gustavo Noronha Silva.
[GStreamer] Apple trailers not playing
https://bugs.webkit.org/show_bug.cgi?id=37390
Set the AppleTrailer User-Agent workaround after
FrameLoader::addExtraFieldsToSubresourceRequest has been called
because that method sets the global User-Agent.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(webKitWebSrcStart):
2010-05-25 Dumitru Daniliuc <dumi@chromium.org>
Unreviewed, changing "fts2" to "fts3" in one location I missed in r60188.
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::dropVTable):
2010-05-25 Mark Rowe <mrowe@apple.com>
Build fix.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2010-05-25 Yuta Kitamura <yutak@chromium.org>
Reviewed by Pavel Feldman.
Web Inspector: Show HTTP status message sent from server in Resources tab.
This patch obtains an HTTP status message of each resource and pass it to
the front end of Web Inspector. The status message is shown in "Headers" tab in
the detail view of that resource, along with the HTTP status code.
Web Inspector does not respect HTTP status message
https://bugs.webkit.org/show_bug.cgi?id=39595
* inspector/InspectorResource.cpp:
(WebCore::InspectorResource::updateResponse):
(WebCore::InspectorResource::updateScriptObject):
* inspector/InspectorResource.h:
* inspector/front-end/Resource.js:
(WebInspector.Resource.CompareByTransferSize):
* inspector/front-end/ResourceView.js:
(WebInspector.ResourceView.prototype._refreshHTTPInformation):
* inspector/front-end/inspector.js:
(WebInspector.updateResource):
* inspector/front-end/utilities.js:
(String.prototype.escapeHTML): Escape '"' so that we can escape messages
that may occur inside HTML attributes.
2010-05-24 David Hyatt <hyatt@apple.com>
Reviewed by Dan Bernstein.
https://bugs.webkit.org/show_bug.cgi?id=39615, implement basic support for -webkit-column-span.
This patch adds support for -webkit-column-span elements that can span across all of the columns
in a multi-column block. In this first stage, column span support is limited to only immediate
children of the multi-column block, so no elements actually have to split across a span yet.
Two new kinds of anonymous blocks have been added: anonymous columns blocks and anonymous column
span blocks. When a span gets inserted into a multicol block, the block is split, with the
column portions of the multicol getting wrapped in anonymous columns blocks and the spans getting
wrapped in anonymous column span blocks. The multicol block then stops being multicol and lets
the anonymous multicol blocks take over column layout.
Many new tests added in fast/multicol/span.
* dom/Node.cpp:
(WebCore::Node::diff):
Changes to column span result in a detach/attach, since spanning elements don't typically have
much content.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::styleDidChange):
Make sure to inherit the appropriate new styles into the anonymous column and column span blocks.
(WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
This method handles the insertion of new children into the block after it has had to wrap its
children in anonymous column/column-span blocks.
(WebCore::RenderBlock::splitAnonymousBlocksAroundChild):
A helper method for splitting all anonymous blocks between beforeChild and this block so that
a new element with an incompatible type can be inserted between them.
(WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks):
This method does the initial split of a block into anonymous components. This happens the first
time a column-span element gets inserted into the block.
(WebCore::columnsBlockForSpanningElement):
This function checks whether or not the column-span element is actually being inserted into a viable
columns block.
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
This is the original RenderBlock::addChild. It handles everything else just like it used to.
(WebCore::RenderBlock::addChild):
Patched to now call addChildToAnonymousColumnBlocks if the block has wrapped its current children
in anonymous column/column-span blocks already.
(WebCore::RenderBlock::moveAllChildrenTo):
moveAllChildrenTo has been enhanced to support doing a full remove/append in the case where elements
are shifting across layers. (This should arguably be the default behavior, but that can happen in
a future patch.)
(WebCore::RenderBlock::removeLeftoverAnonymousBlock):
Patched to fix a bug when the leftover block is empty and to prevent anonymous column/column-span
block from being coalesced with a parent if they are non-empty.
(WebCore::canMergeContiguousAnonymousBlocks):
Whether or not two contiguous anonymous blocks can merge after the removal of a child.
(WebCore::RenderBlock::removeChild):
removeChild has been patched to handle more cases of merging/deletion than it did before. It
can now destroy empty anonymous block chains and can now merge two contiguous anonymous blocks
that don't share the same childrenInline() setting (by putting one inside the other). It also
makes sure to do full appends/moves/inserts in the cases where the affected blocks have layers.
(WebCore::RenderBlock::fillSelectionGaps):
Don't let the selection extend outside of a column-span.
(WebCore::RenderBlock::setDesiredColumnCountAndWidth):
Turn off multi-column layout on the outermost block if it has wrapped its children in anonymous
column/column-span blocks.
(WebCore::RenderBlock::createAnonymousBlockWithSameTypeAs):
(WebCore::RenderBlock::createAnonymousColumnsBlock):
(WebCore::RenderBlock::createAnonymousColumnSpanBlock):
New helper functions for anonymous block creation.
(WebCore::RenderBlock::renderName):
Patched to dump anonymous column and column-span blocks so that they can be distinguished from
regular anonymous blocks.
* rendering/RenderBlock.h:
* rendering/RenderObject.h:
(WebCore::RenderObject::isAnonymousColumnsBlock):
(WebCore::RenderObject::isAnonymousColumnSpanBlock):
New helper functions for asking the type of an anonymous block.
* rendering/style/RenderStyle.h:
(WebCore::InheritedFlags::inheritColumnPropertiesFrom):
A helper function to allow anonymous column blocks to easily inherit all column properties for
rendering.
2010-05-25 Dirk Pranke <dpranke@chromium.org>
Reviewed by Dimitri Glazkov.
Re-commit r58765 - it had been rolled out to see if it was causing
a perf regression (in r59787), but that does not seem to have been
the case.
Tests: fast/notifications/notifications-replace.html
fast/notifications/notifications-rtl.html
https://bugs.webkit.org/show_bug.cgi?id=39605
* notifications/Notification.h:
(WebCore::Notification::dir):
(WebCore::Notification::setDir):
(WebCore::Notification::replaceId):
(WebCore::Notification::setReplaceId):
* notifications/Notification.idl:
2010-05-22 Jer Noble <jer.noble@apple.com>
Reviewed by Adam Roben.
Full screen doesn't work for video elements
https://bugs.webkit.org/show_bug.cgi?id=39557
rdar://problem/8011813
Add fullscreen support for MediaPlayerPrivateVisualContext. A new class, MediaPlayerPrivateFullscreenWindow,
provides the fullscreen hwnd and layer renderer. Any WKCACFLayer can be provided to MediaPlayerPrivateFullscreenWindow
so future additional MediaPlayerPrivate implementations can use the fullscreen window.
Minor additions have been made to the FloatSize and IntSize classes.
MediaPlayerPrivateQuickTimeVisualContext now calls retrieveCurrentImage after creating a new
videoLayer; this is an existing bug that was never really exposed before now.
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/FloatSize.h: Added aspectRatio() and scale(float).
(WebCore::FloatSize::aspectRatio):
(WebCore::FloatSize::scale):
* platform/graphics/IntSize.h: Added aspectRatio().
(WebCore::IntSize::aspectRatio):
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Added.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Added.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Call retrieveCurrentImage() after creating the videoLayer.
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsFullscreen):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie):
* platform/graphics/win/WKCACFLayer.cpp:
(WebCore::WKCACFLayer::WKCACFLayer):
(WebCore::WKCACFLayer::removeFromSuperlayer):
(WebCore::WKCACFLayer::setFrame):
(WebCore::WKCACFLayer::internalSetNeedsDisplay):
(WebCore::WKCACFLayer::setLayoutClient):
(WebCore::WKCACFLayer::layoutSublayersProc):
(WebCore::WKCACFLayer::layoutClient):
(WebCore::WKCACFLayer::setNeedsLayout):
* platform/graphics/win/WKCACFLayer.h: Add layout client class.
(WebCore::WKCACFLayerLayoutClient::~WKCACFLayerLayoutClient):
(WebCore::WKCACFLayer::frame): Added back frame()/setFrame().
* platform/graphics/win/WebTiledLayer.cpp:
(WebCore::WebTiledLayer::setFrame): Implamented setFrame() in subclass of WKCACFLayer
* platform/graphics/win/WebTiledLayer.h:
* platform/graphics/win/WebTiledLayer.cpp: Added setFrame() overriding WKCACFLayer's implementation
(WebCore::WebTiledLayer::setFrame):
* platform/graphics/win/WebTiledLayer.h:
2010-05-25 Dumitru Daniliuc <dumi@chromium.org>
Reviewed by Brady Eidson.
Allow FTS3 functions.
https://bugs.webkit.org/show_bug.cgi?id=38003
* storage/DatabaseAuthorizer.cpp:
(WebCore::DatabaseAuthorizer::addWhitelistedFunctions):
(WebCore::DatabaseAuthorizer::createVTable):
2010-05-25 Anders Carlsson <andersca@apple.com>
Reviewed by Sam Weinig.
Get rid of PluginDatabaseClient
https://bugs.webkit.org/show_bug.cgi?id=39685
PluginDatabaseClient isn't used anywhere so just remove it.
* GNUmakefile.am:
* plugins/PluginDatabase.cpp:
(WebCore::PluginDatabase::PluginDatabase):
(WebCore::PluginDatabase::refresh):
* plugins/PluginDatabase.h:
* plugins/PluginDatabaseClient.h: Removed.
2010-05-25 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=18595
REGRESSION (r20766): Setting display:none on an iframe causes the ownerDocument to freeze
Test: fast/events/frame-detached-in-mousedown.html
* page/EventHandler.h: Added a boolean tracking whether EventHandler needs to reset capturing
node on mouse up. It's only done for nodes that hold subframes - elements that capture events
are responsible for resetting the state.
* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): Don't initialize m_capturingMouseEventsNode, it's a
RefPtr and is initialized automatically.
(WebCore::EventHandler::handleMousePressEvent): Remember that EventHandler should reset
capturing node on its own.
(WebCore::EventHandler::handleMouseDoubleClickEvent): The code here looked like it was copied
from the below in r21156. Copied correct code instead.
(WebCore::EventHandler::handleMouseReleaseEvent): We only clear the capturing node when it
holds a subframe, but the frame may be already detached by the time mouse up is handled, so the
check was wrong - and return code of passMouseReleaseEventToSubframe() is obviously irrelevant.
(WebCore::EventHandler::setCapturingMouseEventsNode): Remember that EventHandler should not
reset capturing node on its own.
2010-05-25 Kevin Ollivier <kevino@theolliviers.com>
[wx] Build fix for missing symbol.
* wscript:
2010-05-25 Darin Adler <darin@apple.com>
* dom/Element.cpp:
(WebCore::Element::getIDAttribute): Added comments about problems with this function.
2010-05-25 Leandro Pereira <leandro@profusion.mobi>
Reviewed by Gustavo Noronha Silva.
[EFL] Build fix.
http://webkit.org/b/39598
* CMakeLists.txt:
2010-05-25 Enrica Casucci <enrica@apple.com>
Reviewed by Darin Adler.
REGRESSION(51522): typing at the end of a line in designMode documents is *very* slow.
https://bugs.webkit.org/show_bug.cgi?id=36037
<rdar://problem/8022887>
The performance regression was traced to r51522 but this is not entirely true. That revision introduced, among other things,
additional checks in the method isCandidate of both Position and PositionIterator classes to support scenarios of mixed editability
that were not allowed before. This change uncovered an underlying issue with the decrement method of PositionIterator, that in some
cases would iterate through every position as offset in a block before moving to the last child in the block.
This was exactly the case of the attached test case, where, trying to check if the caret was placed at the end of a block, we were examining
every position in the block before considering the last true position in the block.
The performance was linear with the number of child nodes in the block, instead of constant.
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::decrement):
2010-05-25 Alexey Proskuryakov <ap@apple.com>
Reviewed by Darin Adler.
https://bugs.webkit.org/show_bug.cgi?id=39621
<rdar://problem/8009738> Extreme memory growth on DOM Hanoi test
The largest cause of memory growth on this test were autoreleased DOMNode objects created
to make webView:formStateDidChangeForNode: delegate calls.
* html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
Don't call notifyFormStateChanged() - since the element starts with refcount 0, it's not
safe to call functions that are likely to create temporary wrappers (wrapper destructor
would bring refcount back to 0, and destroy HTMLTextAreaElement from within its constructor).
2010-05-25 Kent Tamura <tkent@chromium.org>
Reviewed by Dimitri Glazkov.
[DRT/Chromium] Enable 3D_CANVAS, FILTERS, METER_TAG and PROGRESS_TAG
https://bugs.webkit.org/show_bug.cgi?id=39652
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::paintMeter): Fix narrowPrecisionToFloat() usage.
2010-05-25 Darin Adler <darin@apple.com>
Sort ".exp" files with the sort tool.
This makes later merging easier.
These Mac-specific files should probably move into a subdirectory
at some point.
* WebCore.Inspector.exp: Sorted.
* WebCore.PluginHostProcess.exp: Removed blank line.
* WebCore.VideoProxy.exp: Sorted.
* WebCore.base.exp: Ditto.
2010-05-25 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Darin Fisher.
Removing the persistent GraphicsContext from LayerChromium to save on
memory and simplify code. Layers now create a temporary context, draw into
it, update the GL texture and discard the context.
https://bugs.webkit.org/show_bug.cgi?id=39640
* platform/graphics/chromium/GraphicsLayerChromium.cpp:
(WebCore::GraphicsLayerChromium::updateLayerDrawsContent):
* platform/graphics/chromium/LayerChromium.cpp:
(WebCore::LayerChromium::LayerChromium):
(WebCore::LayerChromium::~LayerChromium):
(WebCore::LayerChromium::setLayerRenderer):
(WebCore::LayerChromium::updateTextureContents):
(WebCore::LayerChromium::setContents):
(WebCore::LayerChromium::setBounds):
(WebCore::LayerChromium::setNeedsDisplay):
* platform/graphics/chromium/LayerChromium.h:
* platform/graphics/chromium/LayerRendererChromium.cpp:
(WebCore::LayerRendererChromium::~LayerRendererChromium):
(WebCore::LayerRendererChromium::setRootLayerCanvasSize):
(WebCore::LayerRendererChromium::drawLayers):
(WebCore::LayerRendererChromium::assignTextureForLayer):
(WebCore::LayerRendererChromium::compositeLayersRecursive):
* platform/graphics/chromium/LayerRendererChromium.h:
(WebCore::LayerRendererChromium::rootLayerGraphicsContext):
2010-05-24 Kenneth Rohde Christiansen <kenneth@webkit.org>
Reviewed by Simon Hausmann.
[Qt] Make text filling work together with text stroke.
When the text has stroke a new QPen was set, overriding the pen
set for text filling. This patch fixes that by storing the two
pens and using where appropriate.
* platform/graphics/qt/FontQt.cpp:
(WebCore::Font::drawComplexText):
2010-05-17 Antonio Gomes <tonikitoo@webkit.org>
Reviewed by Darin Adler.
Add an optional "starting node' parameter to scrollRecursively and scrollOverflow of EventHandler
https://bugs.webkit.org/show_bug.cgi?id=39217
It would be usefull if scrollOverflow and scrollRecursively methods of EventHandler
could receive a parameter to specify where to start scrolling from. Currently they
start scrolling from either the current focused node or the node where mouse last
pressed on. Patch proposes an aditional starting point as an optional parameter.
Since it is optional, all call sites can remain as are, and if a Null node is passed
in, both methods work as previously.
* page/EventHandler.cpp:
(WebCore::EventHandler::scrollOverflow):
(WebCore::EventHandler::scrollRecursively):
* page/EventHandler.h:
2010-05-25 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Timothy Hatcher.
Web Inspector: localize heap graph strings.
https://bugs.webkit.org/show_bug.cgi?id=39674
* English.lproj/localizedStrings.js:
2010-05-25 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Switch HTML parsing benchmark to use document.write instead of innerHTML
https://bugs.webkit.org/show_bug.cgi?id=39661
We'd like to exercise the main parsing pipeline instead of the fragment
parsing pipeline.
* benchmarks/parser/html-parser.html:
2010-05-25 Kenneth Rohde Christiansen <kenneth.christiansen@openbossa.org>
Reviewed by Laszlo Gombos.
[Qt] Running with accelerated compositing enabled sometimes result in a crash
https://bugs.webkit.org/show_bug.cgi?id=39609
Check if we have a scene before applying the workaround for
the QGraphicsScene bug where opacity change doesn't always have
immediate effect.
* platform/graphics/qt/GraphicsLayerQt.cpp:
(WebCore::OpacityAnimationQt::applyFrame):
2010-05-25 Yury Semikhatsky <yurys@chromium.org>
Unreviewed. Fix Chromium Mac Release build.
* bindings/v8/ScriptDebugServer.cpp:
2010-05-24 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
ScriptDebugServer is now implemented as DebugEventListener which means it doesn't
depend on v8 debugging protocol, instead it uses ExecState to collect debugging
info and pass it to the listeners.
New implementation of ScriptDebugServer uses methods provided by client to dispatch
its messages while JS is paused(previously the messages was dispatched in a callback
passed to v8 along with DebugEventHandler).
https://bugs.webkit.org/show_bug.cgi?id=39594
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::dispatchDidPause):
(WebCore::ScriptDebugServer::dispatchDidContinue):
(WebCore::ScriptDebugServer::dispatchFunctionToListeners): Changed method signature to allow
invocation of ScriptDebugListener methods that have non-empty argument list.
(WebCore::ScriptDebugServer::pauseIfNeeded):
* bindings/js/ScriptDebugServer.h:
* bindings/v8/ScriptDebugServer.cpp:
(WebCore::retrieveFrame):
(WebCore::ScriptDebugServer::ScriptDebugServer):
(WebCore::ScriptDebugServer::addListener):
(WebCore::ScriptDebugServer::removeListener): Execution is resumed(nested message loop is terminated) when
corresponding debugger window closes.
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::pauseOnExceptionsState):
(WebCore::ScriptDebugServer::setPauseOnExceptionsState):
(WebCore::ScriptDebugServer::continueProgram):
(WebCore::ScriptDebugServer::stepIntoStatement):
(WebCore::ScriptDebugServer::stepOverStatement):
(WebCore::ScriptDebugServer::stepOutOfFunction):
(WebCore::ScriptDebugServer::v8DebugEventCallback):
(WebCore::ScriptDebugServer::handleV8DebugEvent):
(WebCore::ScriptDebugServer::didResume):
* bindings/v8/ScriptDebugServer.h:
(WebCore::ScriptDebugServer::ClientMessageLoop::~ClientMessageLoop):
(WebCore::ScriptDebugServer::setClientMessageLoop):
* inspector/InspectorController.cpp:
(WebCore::InspectorController::didPause):
* inspector/InspectorController.h:
* inspector/ScriptDebugListener.h: Changed didPause signature to explicitly pass ScriptState
where execution is paused.
2010-05-25 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Clear attributes for each tag in the HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39660
Yes, I did screw this up.
* html/HTML5Token.h:
(WebCore::HTML5Token::beginStartTag):
(WebCore::HTML5Token::beginEndTag):
2010-05-25 Anders Bakken <agbakken@gmail.com>
Reviewed by Darin Adler.
Remove warning for GCC 4.4.3
GCC suggest parentheses around && within ||
* dom/Element.cpp:
(WebCore::Element::recalcStyle):
2010-05-25 Xan Lopez <xlopez@igalia.com>
Fix the GTK+ build, PluginInfoStore was removed.
* GNUmakefile.am:
2010-05-25 Ada Chan <adachan@apple.com>
Reviewed by Steve Falkenburg.
Add a base class for DOMTimer called SuspendableTimer which captures just the
basic functionality of TimerBase and ActiveDOMObject combined. It does not
contain functionality specific to scripting timers.
SuspendableTimer is used in fixing https://bugs.webkit.org/show_bug.cgi?id=39651
* Android.mk:
* CMakeLists.txt:
* GNUmakefile.am:
* WebCore.gypi:
* WebCore.pro:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* page/DOMTimer.cpp:
(WebCore::DOMTimer::DOMTimer):
(WebCore::DOMTimer::contextDestroyed):
(WebCore::DOMTimer::stop):
* page/DOMTimer.h:
* page/SuspendableTimer.cpp: Added.
(WebCore::SuspendableTimer::SuspendableTimer):
(WebCore::SuspendableTimer::~SuspendableTimer):
(WebCore::SuspendableTimer::hasPendingActivity):
(WebCore::SuspendableTimer::stop):
(WebCore::SuspendableTimer::suspend):
(WebCore::SuspendableTimer::resume):
(WebCore::SuspendableTimer::canSuspend):
* page/SuspendableTimer.h: Added.
2010-05-25 Justin Schuh <jschuh@chromium.org>
Reviewed by Nate Chapin.
Remove custom bindings for Element.SetAttribute*
https://bugs.webkit.org/show_bug.cgi?id=39604
Custom bindings are no longer needed because origin checks were moved
out of the bindings by: http://trac.webkit.org/changeset/59866
Behavior isn't changed and is covered by existing tests.
* bindings/js/JSElementCustom.cpp:
* bindings/v8/custom/V8ElementCustom.cpp:
* dom/Element.idl:
2010-05-25 Yury Semikhatsky <yurys@chromium.org>
Reviewed by Pavel Feldman.
Add memory graph to Timeline overview pane.
https://bugs.webkit.org/show_bug.cgi?id=37879
* inspector/front-end/Drawer.js:
(WebInspector.Drawer):
(WebInspector.Drawer.prototype.show.animationFinished):
(WebInspector.Drawer.prototype.show):
(WebInspector.Drawer.prototype.hide):
(WebInspector.Drawer.prototype.set currentPanelCounters):
* inspector/front-end/Panel.js:
* inspector/front-end/TimelineOverviewPane.js:
(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.showTimelines):
(WebInspector.TimelineOverviewPane.prototype.showMemoryGraph):
(WebInspector.TimelineOverviewPane.prototype._forAllRecords):
(WebInspector.TimelineOverviewPane.prototype.update):
(WebInspector.TimelineOverviewPane.prototype.updateMainViewWidth):
(WebInspector.TimelineOverviewPane.prototype._endWindowDragging):
(WebInspector.TimelineOverviewPane.prototype._createTimelineCategoryStatusBarCheckbox):
(WebInspector.HeapGraph):
(WebInspector.HeapGraph.prototype.get element):
(WebInspector.HeapGraph.prototype.get visible):
(WebInspector.HeapGraph.prototype.show):
(WebInspector.HeapGraph.prototype.hide):
(WebInspector.HeapGraph.prototype.setSize):
(WebInspector.HeapGraph.prototype.update):
(WebInspector.HeapGraph.prototype._clear):
(WebInspector.HeapGraph.prototype._drawScale):
* inspector/front-end/TimelinePanel.js:
(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype.toolbarItemClass._createTopPane):
(WebInspector.TimelinePanel.prototype.get statusBarItems):
(WebInspector.TimelinePanel.prototype._timelinesOverviewItemSelected):
(WebInspector.TimelinePanel.prototype._memoryOverviewItemSelected):
(WebInspector.TimelinePanel.prototype.setSidebarWidth):
(WebInspector.TimelinePanel.prototype.show):
(WebInspector.TimelinePanel.prototype.hide):
* inspector/front-end/inspector.css:
(#counters):
(#timeline-overview-sidebar):
(.timeline-category-statusbar-item):
(.timeline-category-statusbar-item .timeline-category-checkbox):
(.timeline-category-statusbar-item .timeline-category-checkbox:checked):
(.timeline-category-statusbar-item.timeline-category-loading .timeline-category-checkbox):
(.timeline-category-statusbar-item.timeline-category-scripting .timeline-category-checkbox):
(.timeline-category-statusbar-item.timeline-category-rendering .timeline-category-checkbox):
(#timeline-overview-memory):
(.timeline-records-counter):
(#main-status-bar > .timeline-records-counter):
(#counters > .timeline-records-counter):
* inspector/front-end/inspector.html:
* inspector/front-end/utilities.js:
():
2010-05-25 Adam Barth <abarth@webkit.org>
Unreviewed. Fix typo pointed out by Maciej.
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::unconsumeCharacters):
(WebCore::HTML5Lexer::consumeEntity):
2010-05-25 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Fix <noembed> and <plaintext> content models
https://bugs.webkit.org/show_bug.cgi?id=39653
PLAINTEXTState is my favorite lexer state. :)
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
2010-05-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
First cut at HTML5 entities
https://bugs.webkit.org/show_bug.cgi?id=39649
There's still a bunch more work to do to get our entity parsing fully
up to spec. This patch contains the bulk of the implementation
however.
The basics are covered by the existing html5lib tests. I'll add more
detailed tests in a followup patch.
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::legalEntityFor):
(WebCore::HTMLNames::isHexDigit):
(WebCore::HTMLNames::isAlphaNumeric):
(WebCore::HTMLNames::uncomsumeCharacters):
(WebCore::HTML5Lexer::consumeEntity):
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::haveBufferedCharacterToken):
* html/HTML5Lexer.h:
(WebCore::HTML5Lexer::):
* html/HTML5Tokenizer.cpp:
(WebCore::HTML5Tokenizer::write):
2010-05-24 Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed by Kenneth Rohde Christiansen.
[Qt] Fix compilation with QT_NO_TEMPORARYFILE
https://bugs.webkit.org/show_bug.cgi?id=38324
* platform/qt/FileSystemQt.cpp:
(WebCore::openTemporaryFile):
2010-05-24 Andrey Kosyakov <caseq@chromium.org>
Reviewed by Yury Semikhatsky.
Fixed handling of bare '/' and '?' at console prompt.
https://bugs.webkit.org/show_bug.cgi?id=39585
* inspector/front-end/inspector.js:
(WebInspector.documentKeyDown):
2010-05-24 Andreas Kling <andreas.kling@nokia.com>
Reviewed by Sam Weinig.
The 'prototype' property on generated Web IDL interfaces should be { DontDelete | ReadOnly }.
Spec link:
http://www.w3.org/TR/WebIDL/#interface-object
https://bugs.webkit.org/show_bug.cgi?id=39436
Test: fast/dom/prototype-property.html
* bindings/scripts/CodeGeneratorJS.pm:
2010-05-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Add RCDATA and RAWTEXT suport to the HTML5 parser
https://bugs.webkit.org/show_bug.cgi?id=39642
Adam Barth wrote half of this patch.
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
2010-05-24 Tony Chang <tony@chromium.org>
Not reviewed, build fix.
Fix the chromium compile due to pageZoomFactor refactoring.
* page/EventHandler.cpp:
(WebCore::pageZoomFactor):
2010-05-24 Jer Noble <jer.noble@apple.com>
Reviewed by Eric Carlson.
HTML5 <video> tag performance worse than Flash
https://bugs.webkit.org/show_bug.cgi?id=39577
rdar://problem/7982458
Added attachments() back to QTPixelBuffer, as they are necessary for CAImageQueue.
WKCACFLayer contents()/setContents() now return/take a CFTypeRef instead of a CGImageRef, which allows
a CAImageQueueRef to be set as a layer's contents.
WKCAImageQueue is a simple C++ wrapper around the WebKitSystemInterface CAImageQueue functions.
MediaPlayerPrivateQuickTimeVisualContext will now use a CAImageQueue to display movie frames if
certain prerequisites are met (QuartzCore.dll and CoreVideo.dll version numbers must meet a certain
threshold defined in MediaPlayerPrivateQuickTimeVisualContext.cpp).
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/win/QTPixelBuffer.cpp:
* platform/graphics/win/QTPixelBuffer.h:
* platform/graphics/win/WKCACFLayer.cpp:
* platform/graphics/win/WKCACFLayer.h:
* platform/graphics/win/WKCAImageQueue.cpp: Added.
* platform/graphics/win/WKCAImageQueue.h: Added.
2010-05-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Teach the HTML5 parser how to lex escaped script data
https://bugs.webkit.org/show_bug.cgi?id=39630
* html/HTML5Lexer.cpp:
(WebCore::HTMLNames::vectorEqualsString):
(WebCore::HTML5Lexer::nextToken):
(WebCore::HTML5Lexer::temporaryBufferIs):
(WebCore::HTML5Lexer::isAppropriateEndTag):
(WebCore::HTML5Lexer::maybeFlushBufferedEndTag):
(WebCore::HTML5Lexer::flushBufferedEndTag):
* html/HTML5Lexer.h:
2010-05-24 Eric Seidel <eric@webkit.org>
Unreviewed. Trick MSVC into ignoring our unused code for the moment.
Prepare HTML5TreeBuilder for addition of new HTML5 parser code
https://bugs.webkit.org/show_bug.cgi?id=39623
* html/HTML5TreeBuilder.cpp:
(WebCore::HTML5TreeBuilder::constructTreeFromToken):
2010-05-24 Darin Adler <darin@apple.com>
Fix build on platforms with touch code enabled.
* page/EventHandler.cpp:
(WebCore::pageZoomFactor): Added.
(WebCore::EventHandler::handleTouchEvent): Use pageZoomFactor.
2010-05-24 Darin Adler <darin@apple.com>
Reviewed by Eric Seidel.
Move view-related functions from Frame to FrameView
https://bugs.webkit.org/show_bug.cgi?id=39366
Refactoring only so adds no new tests.
* WebCore.base.exp: Updated.
* css/CSSStyleSelector.cpp:
(WebCore::CSSStyleSelector::styleForDocument): Call zoom factor function
on FrameView.
(WebCore::CSSStyleSelector::applyProperty): Ditto.
(WebCore::CSSStyleSelector::getComputedSizeFromSpecifiedSize): Ditto.
* dom/Document.cpp:
(WebCore::Document::elementFromPoint): Ditto.
(WebCore::Document::caretRangeFromPoint): Ditto.
* dom/MouseRelatedEvent.cpp:
(WebCore::contentsX): Ditto.
(WebCore::contentsY): Ditto.
(WebCore::pageZoomFactor): Added helper function.
(WebCore::MouseRelatedEvent::computePageLocation): Use helper.
(WebCore::MouseRelatedEvent::receivedTarget): Ditto.
* dom/Node.cpp:
(WebCore::Node::dispatchMouseEvent): Call zoom factor function on FrameView.
(WebCore::Node::dispatchWheelEvent): Ditto.
* dom/Touch.cpp:
(WebCore::contentsX): Call zoom factor function on FrameView.
(WebCore::contentsY): Ditto.
* html/HTMLBodyElement.cpp:
(WebCore::adjustForZoom): Ditto.
(WebCore::HTMLBodyElement::setScrollLeft): Ditto.
(WebCore::HTMLBodyElement::setScrollTop): Ditto.
* html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::width): Ditto.
(WebCore::HTMLImageElement::height): Ditto.
* loader/ImageDocument.cpp:
(WebCore::pageZoomFactor): Added helper function.
(WebCore::ImageTokenizer::finish): Use helper function
(WebCore::ImageDocument::scale): Ditto.
(WebCore::ImageDocument::resizeImageToFit): Ditto.
(WebCore::ImageDocument::imageChanged): Ditto.
(WebCore::ImageDocument::restoreImageSize): Ditto.
(WebCore::ImageDocument::imageFitsInWindow): Ditto.
* page/DOMWindow.cpp:
(WebCore::DOMWindow::innerHeight): Ditto.
(WebCore::DOMWindow::innerWidth): Ditto.
(WebCore::DOMWindow::scrollX): Ditto.
(WebCore::DOMWindow::scrollY): Ditto.
(WebCore::DOMWindow::scrollTo): Ditto.
* page/DragController.cpp:
(WebCore::elementUnderMouse): Ditto.
* page/Frame.cpp:
(WebCore::Frame::Frame): Removed code to initialize m_zoomFactor.
* page/Frame.h: Moved functions to FrameView. Moved all #if to the left
margin to make the style consistent. Removed empty function
removeEditingStyleFromBodyElement.
* page/FrameView.cpp:
(WebCore::parentZoomFactor): Added helper function for constructor.
(WebCore::FrameView::FrameView): Added initialization of m_zoomFactor.
(WebCore::FrameView::shouldApplyTextZoom): Moved this here from Frame.
(WebCore::FrameView::shouldApplyPageZoom): Ditto.
(WebCore::FrameView::setZoomFactor): Ditto.
* page/FrameView.h: Added members moved here from Frame.
* rendering/RenderView.cpp:
(WebCore::RenderView::zoomFactor): Call FrameView instead of Frame.
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::currentScale): Ditto.
(WebCore::SVGSVGElement::setCurrentScale): Ditto.
2010-05-24 Jer Noble <jer.noble@apple.com>
No review; build fix only.
Roll-out changes r60094, 60096-60097.
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::load):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::retrieveCurrentImage):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::destroyLayerForMovie):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/win/QTPixelBuffer.cpp:
* platform/graphics/win/QTPixelBuffer.h:
* platform/graphics/win/WKCACFLayer.cpp:
(WebCore::WKCACFLayer::printLayer):
* platform/graphics/win/WKCACFLayer.h:
(WebCore::WKCACFLayer::setContents):
(WebCore::WKCACFLayer::contents):
(WebCore::WKCACFLayer::speed):
(WebCore::WKCACFLayer::timeOffset):
* platform/graphics/win/WKCAImageQueue.cpp: Removed.
* platform/graphics/win/WKCAImageQueue.h: Removed.
2010-05-24 Eric Seidel <eric@webkit.org>
Unreviewed. Add wtf/UnusedParam.h include to make Chromium happy.
Chromium does not use a prefix header in order to support
distcc3. Other ports all do. The real fix is to remove
wtf/UnusedParam.h from the prefix header.
* html/HTML5TreeBuilder.cpp:
2010-05-24 Jer Noble <jer.noble@apple.com>
No review; build fix only.
Second half of previous build fix, in which I add the include in the correct place.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2010-05-24 Jer Noble <jer.noble@apple.com>
No review; build fix only.
Include WKCAImageQueue.h outside the ACCELERATED_COMPOSITING check.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
2010-05-24 Eric Seidel <eric@webkit.org>
Reviewed by Adam Barth.
Prepare HTML5TreeBuilder for addition of new HTML5 parser code
https://bugs.webkit.org/show_bug.cgi?id=39623
Before we start transcribing the parser, we need a place to put it.
This also cleans up HTML5 token to not convert comment and character
data into AtomicStrings (which makes no sense).
No functionality change, so no new tests.
* html/HTML5Token.h:
(WebCore::HTML5Token::beginStartTag):
(WebCore::HTML5Token::beginEndTag):
(WebCore::HTML5Token::beginCharacter):
(WebCore::HTML5Token::beginComment):
(WebCore::HTML5Token::name):
(WebCore::HTML5Token::adoptDataAsStringImpl):
(WebCore::HTML5Token::characters):
(WebCore::HTML5Token::commentData):
(WebCore::HTML5Token::clearData):
* html/HTML5TreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTML5TreeBuilder::constructTreeFromToken):
(WebCore::HTML5TreeBuilder::processToken):
* html/HTML5TreeBuilder.h:
2010-05-23 Jer Noble <jer.noble@apple.com>
Reviewed by Eric Carlson.
HTML5 <video> tag performance worse than Flash
https://bugs.webkit.org/show_bug.cgi?id=39577
rdar://problem/7982458
Added attachments() back to QTPixelBuffer, as they are necessary for CAImageQueue.
WKCACFLayer contents()/setContents() now return/take a CFTypeRef instead of a CGImageRef, which allows
a CAImageQueueRef to be set as a layer's contents.
WKCAImageQueue is a simple C++ wrapper around the WebKitSystemInterface CAImageQueue functions.
MediaPlayerPrivateQuickTimeVisualContext will now use a CAImageQueue to display movie frames if
certain prerequisites are met (QuartzCore.dll and CoreVideo.dll version numbers must meet a certain
threshold defined in MediaPlayerPrivateQuickTimeVisualContext.cpp).
* WebCore.vcproj/WebCore.vcproj:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/win/QTPixelBuffer.cpp:
* platform/graphics/win/QTPixelBuffer.h:
* platform/graphics/win/WKCACFLayer.cpp:
* platform/graphics/win/WKCACFLayer.h:
* platform/graphics/win/WKCAImageQueue.cpp: Added.
* platform/graphics/win/WKCAImageQueue.h: Added.
2010-05-24 Brady Eidson <beidson@apple.com>
Reviewed by Darin Adler.
Database origins aren't populated at launch (missing db in prefs sheet, possible other symptoms)
<rdar://problem/8013233> and https://bugs.webkit.org/show_bug.cgi?id=39486
Currently, a Tracker needs to know it's path before origins are populated. Testing databases and
related features is made very difficult with this regression, so instead of changing things in a
complicated way to make this not the case, I've added an "initialize Tracker with this path" function
that calls the DatabaseTracker constructor with the initial path.
I checked the other platforms besides Mac and Win, and none of them seem to perform the
"initialize databases if necessary" step in their init routines, so this change shouldn't effect them.
No new tests. (API specific layout test in DRT is forthcoming)
* WebCore.base.exp:
* storage/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::initializeTracker): Added to create the tracker with its initial path.
(WebCore::DatabaseTracker::tracker): Move the static tracker out so tracker() and initializeTracker()
can share it. Add a fallback to not change behavior of platforms that don't call the new
"initializeTracker()" method.
(WebCore::DatabaseTracker::DatabaseTracker): Changed to take the initial path as an argument.
* storage/DatabaseTracker.h:
* storage/chromium/DatabaseTrackerChromium.cpp:
(WebCore::DatabaseTracker::tracker): Adapt to new c'tor.
(WebCore::DatabaseTracker::DatabaseTracker): Ditto.
2010-05-24 Adam Barth <abarth@webkit.org>
Reviewed by Eric Seidel.
Teach the HTML5 parser to lex DOCTYPEs
https://bugs.webkit.org/show_bug.cgi?id=39571
* html/HTML5Lexer.cpp:
(WebCore::HTML5Lexer::nextToken):
* html/HTML5Lexer.h:
* html/HTML5Token.h:
(WebCore::HTML5Token::beginDOCTYPE):
(WebCore::HTML5Token::publicIdentifier):
(WebCore::HTML5Token::systemIdentifier):
(WebCore::HTML5Token::setPublicIdentifierToEmptyString):
(WebCore::HTML5Token::setSystemIdentifierToEmptyString):
(WebCore::HTML5Token::appendToPublicIdentifier):
(WebCore::HTML5Token::appendToSystemIdentifier):
(WebCore::HTML5Token::DoctypeData::DoctypeData):
* html/HTML5TreeBuilder.cpp:
(WebCore::convertToOldStyle):
(WebCore::HTML5TreeBuilder::passTokenToLegacyParser):
* platform/text/SegmentedString.h:
(WebCore::SegmentedString::lookAheadIgnoringCase):
(WebCore::SegmentedString::advanceAndASSERTIgnoringCase):
== Rolled over to ChangeLog-2010-05-24 ==