blob: 2abc454f4b047ea2444cbd4eccc47c208b15a811 [file] [log] [blame]
2013-10-30 peavo@outlook.com <peavo@outlook.com>
Favicons are flipped in vertical direction in WinCairo builds.
https://bugs.webkit.org/show_bug.cgi?id=102077
Reviewed by Brent Fulgham.
* platform/graphics/win/ImageCairoWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Add MediaSource compatable loading functions to MediaPlayer
https://bugs.webkit.org/show_bug.cgi?id=123353
Reviewed by Eric Carlson.
Add methods to MediaPlayer to allow it to select the correct MediaPlayerFactory
when attempting to load a MediaSource URL.
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
(WebCore::MediaSource::isTypeSupported):
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::supportsType):
* platform/graphics/MediaPlayer.h:
* dom/DOMImplementation.cpp:
(WebCore::DOMImplementation::createDocument):
Remove the isSupportedMediaSourceMIMEType() method:
* platform/MIMETypeRegistry.h:
* platform/efl/MIMETypeRegistryEfl.cpp:
* platform/mac/MIMETypeRegistryMac.mm:
2013-10-30 Brady Eidson <beidson@apple.com>
IDBCursorBackendLevelDB should be made cross-platform
https://bugs.webkit.org/show_bug.cgi?id=123513
Rubberstamped by Andreas Kling.
Because of all the already-done refactoring, this is basically a file-move and global rename.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* WebCore.vcxproj/WebCore.vcxproj:
* Modules/indexeddb/IDBCursorBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp.
* Modules/indexeddb/IDBCursorBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h.
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
2013-10-29 Jer Noble <jer.noble@apple.com>
[MSE] Remove legacy Media Source APIs (WebKitMediaSource, WebKitSourceBuffer, WebKitSourceBufferList)
https://bugs.webkit.org/show_bug.cgi?id=123463
Reviewed by Eric Carlson.
No new tests; updated test results.
Remove all reference to WebKitMediaSource, WebKitSourceBuffer, and WebKitSourceBufferList.
* CMakeLists.txt:
* DerivedSources.cpp:
* DerivedSources.make:
* GNUmakefile.list.am:
* Modules/mediasource/DOMURLMediaSource.idl:
* Modules/mediasource/WebKitMediaSource.cpp: Removed.
* Modules/mediasource/WebKitMediaSource.h: Removed.
* Modules/mediasource/WebKitMediaSource.idl: Removed.
* Modules/mediasource/WebKitSourceBuffer.cpp: Removed.
* Modules/mediasource/WebKitSourceBuffer.h: Removed.
* Modules/mediasource/WebKitSourceBuffer.idl: Removed.
* Modules/mediasource/WebKitSourceBufferList.cpp: Removed.
* Modules/mediasource/WebKitSourceBufferList.h: Removed.
* Modules/mediasource/WebKitSourceBufferList.idl: Removed.
* WebCore.xcodeproj/project.pbxproj:
* dom/EventTargetFactory.in:
2013-10-30 Antti Koivisto <antti@apple.com>
Unbreak the release build.
* rendering/SimpleLineLayoutFunctions.cpp:
2013-10-30 Liangjun Zeng <lizeng@blackberry.com>
Fix memory leaks in platform/image-encoders/JPEGImageEncoder.cpp
https://bugs.webkit.org/show_bug.cgi?id=118781
Reviewed by Brent Fulgham.
We can find the function "jpeg_finish_compress" call the function "jpeg_abort" at the end.
And the comments of "jpeg_abort" is "Abort processing of a JPEG compression operation,
but don't destroy the object itself". (We can find these in the "jcapimin.c" of jpeg)
So the compression object destroy need be called.
No new tests because this doesn't change functionality.
* platform/image-encoders/JPEGImageEncoder.cpp:
(WebCore::compressRGBABigEndianToJPEG):
2013-10-30 Antti Koivisto <antti@apple.com>
Add debug settings for simple line layout
https://bugs.webkit.org/show_bug.cgi?id=123514
Reviewed by Andreas Kling.
* WebCore.exp.in:
* page/Settings.in:
Add simpleLineLayoutEnabled and simpleLineLayoutDebugBordersEnabled.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::paintDebugBorders):
(WebCore::SimpleLineLayout::paintFlow):
2013-10-30 peavo@outlook.com <peavo@outlook.com>
[Curl] Cookies are sometimes not set in download request.
https://bugs.webkit.org/show_bug.cgi?id=123445
Reviewed by Brent Fulgham.
Sometimes cookies are not set in the download request because the cookie file cannot be opened,
it's already been opened by the ResourceHandleManager for writing.
This can be fixed by getting the cookie list from the share handle in ResourceHandleManager instead.
This will also improve performance, as there is no need to read and parse the cookie file for each download.
* platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::init): Use share handle to get cookie list.
2013-10-30 ChangSeok Oh <changseok.oh@collabora.com>
Unguard Element::childShouldCreateRenderer
https://bugs.webkit.org/show_bug.cgi?id=123496
Reviewed by Andreas Kling.
Make Element::childShouldCreateRenderer normally accessible. Guarding it with flags
just leaves potential build issues.
No new tests since no functionality changed.
* dom/Element.cpp:
(WebCore::Element::childShouldCreateRenderer):
* dom/Element.h:
2013-10-30 Jer Noble <jer.noble@apple.com>
[MSE] Make MediaSourcePrivate, SourceBufferPrivate classes RefCounted.
https://bugs.webkit.org/show_bug.cgi?id=123350
Reviewed by Darin Adler.
Make the MediaSourcePrivate and SourceBufferPrivate classes RefCounted so that
they can be referenced both by MediaSource/SourceBuffer, and by the MediaPlayerPrivate
which creates them.
Change OwnPtr -> RefPtr everywhere:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::addSourceBuffer):
* Modules/mediasource/MediaSourceBase.cpp:
(WebCore::MediaSourceBase::setPrivateAndOpen):
(WebCore::MediaSourceBase::createSourceBufferPrivate):
* Modules/mediasource/MediaSourceBase.h:
* Modules/mediasource/SourceBuffer.cpp:
(WebCore::SourceBuffer::create):
(WebCore::SourceBuffer::SourceBuffer):
* Modules/mediasource/SourceBuffer.h:
* Modules/mediasource/WebKitMediaSource.cpp:
(WebCore::WebKitMediaSource::addSourceBuffer):
* Modules/mediasource/WebKitSourceBuffer.cpp:
(WebCore::WebKitSourceBuffer::create):
(WebCore::WebKitSourceBuffer::WebKitSourceBuffer):
* Modules/mediasource/WebKitSourceBuffer.h:
* html/HTMLMediaSource.h:
* platform/graphics/MediaSourcePrivate.h:
* platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::SourceBufferPrivate):
2013-10-30 Allan Sandfeld Jensen <allan.jensen@digia.com>
Remove unused runtime enabled
https://bugs.webkit.org/show_bug.cgi?id=123509
Reviewed by Anders Carlsson.
Some of the runtime enabled features were only ever used by the V8 bindings
and can be removed as no WebKit code sets or reads them.
* bindings/generic/RuntimeEnabledFeatures.cpp:
(WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
* bindings/generic/RuntimeEnabledFeatures.h:
2013-10-30 Antti Koivisto <antti@apple.com>
Make SimpleLineLayout::Layout a class
https://bugs.webkit.org/show_bug.cgi?id=123508
Reviewed by Mario Sanchez Prada.
Improve encapsulation.
2013-10-30 Antti Koivisto <antti@apple.com>
REGRESSION(r158214): It made zillion tests crash on GTK and EFL
https://bugs.webkit.org/show_bug.cgi?id=123505
* rendering/SimpleLineLayout.h: Add WTF_MAKE_FAST_ALLOCATED
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GStreamer] Store video-sink in a bin
https://bugs.webkit.org/show_bug.cgi?id=122831
Reviewed by Gustavo Noronha Silva.
For the upcoming mediastream playback support the player will
handle a non-playbin-based pipeline that will require a slightly
different video rendering chain. This patch generalizes the
encapsulation of the video sink in a bin, just like the audio sink
case.
No new tests, no change in functionality.
2013-10-29 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION(r154614): Opening and closing a picture on Facebook resets scroll position
https://bugs.webkit.org/show_bug.cgi?id=122882
Reviewed by Anders Carlsson.
scrollLeft and scrollTop have to continue to function in the strict mode for the Web compatiblity.
In particular, www.facebook.com and build.webkit.org depend on this behavior as of October 29th, 2013.
* html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::scrollLeft):
(WebCore::HTMLBodyElement::setScrollLeft):
(WebCore::HTMLBodyElement::scrollTop):
(WebCore::HTMLBodyElement::setScrollTop):
2013-10-29 Brady Eidson <beidson@apple.com>
IDBTransactionBackend should be cross platform
https://bugs.webkit.org/show_bug.cgi?id=123449
Reviewed by Beth Dakin.
- Rename IDBTransactionBackendLevelDB to IDBTransactionBackendImpl
- Rename IDBTransactionBackendLevelDBOperations to IDBTransactionBackendOperations
- Move their files from the leveldb subdirectory to the indexeddb directory
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBTransactionBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp.
* Modules/indexeddb/IDBTransactionBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h.
* Modules/indexeddb/IDBTransactionBackendOperations.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp.
* Modules/indexeddb/IDBTransactionBackendOperations.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h.
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
2013-10-29 Sam Weinig <sam@webkit.org>
Modernize DatasetDOMStringMap and ClassList a bit
https://bugs.webkit.org/show_bug.cgi?id=123491
Reviewed by Andreas Kling.
* dom/DatasetDOMStringMap.cpp:
* dom/DatasetDOMStringMap.h:
* dom/Element.cpp:
* dom/ElementRareData.h:
* html/ClassList.cpp:
* html/ClassList.h:
Pass the owner Element by reference and store in a std::unique_ptr.
2013-10-29 Brady Eidson <beidson@apple.com>
Attempted build-fix after http://trac.webkit.org/changeset/158234
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::createBackingStoreTransaction): Implement this!
2013-10-29 Andreas Kling <akling@apple.com>
ElementData construction helpers should return PassRef.
<https://webkit.org/b/123487>
Make functions that create new ElementData objects return appropriate
PassRef pointers instead of PassRefPtr.
Reviewed by Anders Carlsson.
2013-10-29 Ryosuke Niwa <rniwa@webkit.org>
GTK+ build fix attempt after r158220.
* GNUmakefile.list.am:
2013-10-29 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123483
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
(WebCore::IDBCursorBackendLevelDB::create):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::registerOpenCursor):
(WebCore::IDBTransactionBackendLevelDB::unregisterOpenCursor):
(WebCore::IDBTransactionBackendLevelDB::closeOpenCursors):
(WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* WebCore.xcodeproj/project.pbxproj: Export a required header.
2013-10-29 Seokju Kwon <seokju@webkit.org>
Remove mutable keyword from member variables of XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=123481
Reviewed by Andreas Kling.
No new tests, no change in functionality.
* xml/XMLHttpRequest.h: Remove mutable keyword as these are no longer used in const functions.
2013-10-29 Myles C. Maxfield <mmaxfield@apple.com>
Underline bounds cannot be queried before underline itself is drawn
https://bugs.webkit.org/show_bug.cgi?id=123310
Reviewed by Simon Fraser
GraphicsContext's drawLineForText function is used to draw underlines,
strikethroughs, and overlines. Before drawing the line, this function
modifies the bounds given to it in order to make underlines crisp. However,
this means that it is impossible to know where an underline will be drawn
before drawing it. This patch pulls out this adjustment computation into
InlineTextBox, then passes the result to drawLineForText.
Because there should be no observable difference, no tests need to be updated.
* platform/graphics/GraphicsContext.h: Changing the signature of drawLineForText
so it can accept bounds from our helper function
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::drawLineForText): Update to work with new
signature of drawLineForText
* platform/graphics/cairo/GraphicsContextCairo.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/graphics/wince/GraphicsContextWinCE.cpp:
(WebCore::GraphicsContext::drawLineForText): Ditto
* platform/win/WebCoreTextRenderer.cpp:
(WebCore::doDrawTextAtPoint): Update the last call site of drawLineForText
* rendering/InlineTextBox.cpp:
(WebCore::computeBoundsForUnderline): Pure function that computes the adjusted
bounds of the underline about to be drawn
(WebCore::drawLineForText): calls computeBoundsForUnderline and then
GraphicsContext::drawLineForText
(WebCore::InlineTextBox::paintDecoration): Use new drawLineForText function
(WebCore::InlineTextBox::paintCompositionUnderline): Ditto
2013-10-29 Alexey Proskuryakov <ap@apple.com>
Beef up CryptoKey
https://bugs.webkit.org/show_bug.cgi?id=123462
Fix a mismerge, remove duplicate CryptoKeyType declaration.
* crypto/CryptoKey.h:
2013-10-29 Alexey Proskuryakov <ap@apple.com>
Beef up CryptoKey
https://bugs.webkit.org/show_bug.cgi?id=123462
Reviewed by Sam Weinig.
* WebCore.xcodeproj/project.pbxproj: Added new files.
* crypto/CryptoAlgorithmIdentifier.h: Added an enum with all registered algorithms
(they don't have to be all implemented in any port).
* crypto/CryptoKey.cpp:
(WebCore::CryptoKey::CryptoKey): Initialize base class variables.
(WebCore::CryptoKey::type): Convert internal representation for bindings use.
(WebCore::CryptoKey::buildAlgorithmDescription): Ditto. This function is supposed
to be called by derived classes before adding other keyes.
(WebCore::CryptoKey::usages): Convert internal representation for bindings use.
* crypto/CryptoKey.h:
(WebCore::CryptoKey::extractable): Expose for bindings.
(WebCore::CryptoKey::allows): A faster way to check allowed key usage from C++ code.
* crypto/CryptoKey.idl: Added SkipVTableValidation, because validation doesn't work
with derived classes. Corrected "usages" attribute name.
* crypto/CryptoKeyFormat.h: Added.
* crypto/CryptoKeyType.h: Added.
* crypto/CryptoKeyUsage.h: Added.
Added enums used by CryptoKey.
2013-10-29 Hugo Parente Lima <hugo.lima@openbossa.org>
Adding Nix files in Source/Platform to trunk
https://bugs.webkit.org/show_bug.cgi?id=118331
Reviewed by Benjamin Poulain.
Add Nix WebAudio implementation that just forward some calls to our API.
This patch is part of the upstream process, tests will be landed by other patches.
* platform/audio/nix/AudioBusNix.cpp: Added.
* platform/audio/nix/AudioDestinationNix.cpp: Added.
* platform/audio/nix/AudioDestinationNix.h: Added.
* platform/audio/nix/FFTFrameNix.cpp: Added.
* platform/nix/support/MultiChannelPCMData.cpp: Added.
2013-10-29 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackendLevelDB to generic IDBBackingStoreInterface::Transaction.
https://bugs.webkit.org/show_bug.cgi?id=123475
Reviewed by Tim Horton.
Currently it's using IDBBackingStoreLevelDB::Transaction, which hinders the goal of:
https://bugs.webkit.org/show_bug.cgi?id=123449 - IDBTransactionBackend should be cross platform
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBIndexWriter.cpp:
(WebCore::IDBIndexWriter::writeIndexKeys):
(WebCore::IDBIndexWriter::verifyIndexKeys):
(WebCore::IDBIndexWriter::addingKeyAllowed):
* Modules/indexeddb/IDBIndexWriter.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseMetaData):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::commit):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2013-10-29 Dean Jackson <dino@apple.com>
Move InlineTextBox's text painting to it's own class
https://bugs.webkit.org/show_bug.cgi?id=123355
Reinstate the LGPL license. I incorrectly told Myles to
use another license on these new files.
* rendering/TextPainter.cpp:
* rendering/TextPainter.h:
2013-10-29 Myles C. Maxfield <mmaxfield@apple.com>
Move InlineTextBox's text painting to it's own class
https://bugs.webkit.org/show_bug.cgi?id=123355
Reviewed by Dean Jackson.
Implementing text-decoration-skip: ink requires drawing text
twice (once regularly, and once with a thick outline into a mask).
This patch pulls out the relevant text drawing code from
InlineTextBox into a new class, called TextPainter, which can be re-used
to draw text multiple times.
Because there should be no observable difference, no tests need to be updated.
* CMakeLists.txt: Adding new TextPainter class
* GNUmakefile.list.am: Adding new TextPainter class
* WebCore.vcxproj/WebCore.vcxproj: Adding new TextPainter class
* WebCore.vcxproj/WebCore.vcxproj.filters: Adding new TextPainter
class
* WebCore.xcodeproj/project.pbxproj: Adding new TextPainter class
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Moving text drawing code from
this function
* rendering/RenderingAllInOne.cpp: Adding new TextPainter class
* rendering/TextPainter.cpp: Added.
(WebCore::TextPainter::TextPainter):
(WebCore::drawTextOrEmphasisMarks):
(WebCore::paintTextWithShadows):
(WebCore::rotation):
(WebCore::TextPainter::paintText): New location for text drawing
code
(WebCore::TextPainter::paintTextInContext):
* rendering/TextPainter.h: Added.
(WebCore::SavedDrawingStateForMask::SavedDrawingStateForMask):
(WebCore::TextPainter::boxRect):
2013-10-29 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-29 Tim Horton <timothy_horton@apple.com>
Build fix after 158223; make TileController use float for scales.
This matches what we do in other places, and fixes the constant
issue with exporting symbols that include CGFloat.
* WebCore.exp.in:
* platform/graphics/ca/mac/TileController.h:
(WebCore::TileController::scale):
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::setScale):
2013-10-29 Antti Koivisto <antti@apple.com>
Try to keep MSVC happy.
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
2013-10-29 Tim Horton <timothy_horton@apple.com>
More correct build fix after 158223.
Only fails in release because it's inline.
* WebCore.exp.in:
2013-10-29 Antti Koivisto <antti@apple.com>
Use left/right instead of left/width for simple text runs
https://bugs.webkit.org/show_bug.cgi?id=123465
Reviewed by Andreas Kling.
This simplifies the code a bit.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::adjustRunOffsets):
(WebCore::SimpleLineLayout::create):
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
2013-10-29 Tim Horton <timothy_horton@apple.com>
Try fixing the Mac build (though I have no idea why
this wouldn't fail locally)...
* WebCore.exp.in:
2013-10-29 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support tiled drawing and use it for the main frame
https://bugs.webkit.org/show_bug.cgi?id=123422
Reviewed by Simon Fraser.
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
2013-10-29 Eric Carlson <eric.carlson@apple.com>
[Mac MediaStream] implement AVFoundation backed MediaStreamSource
https://bugs.webkit.org/show_bug.cgi?id=123316
Reviewed by Jer Noble
No new tests, existing tests updated.
* CMakeLists.txt: Add MediaStreamSourceStates.cpp.
* Modules/mediastream/MediaSourceStates.cpp:
(WebCore::MediaSourceStates::MediaSourceStates): m_SourceStates -> m_sourceStates.
(WebCore::MediaSourceStates::sourceType): Ditto.
(WebCore::MediaSourceStates::facingMode): Ditto.
* Modules/mediastream/MediaSourceStates.h: Ditto.
* Modules/mediastream/MediaSourceStates.idl: Mark some attributes as optional.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::addRemoteSource):
(WebCore::MediaStream::removeRemoteSource):
* Modules/mediastream/MediaStreamCapabilities.cpp:
(WebCore::MediaStreamCapabilities::sourceType): MediaSourceStates -> MediaStreamSourceStates
(WebCore::MediaStreamCapabilities::facingMode): Ditto.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack): Don't observe source changes directly, let the
private track do that. Change private track parameter to ref because it can't be NULL.
(WebCore::MediaStreamTrack::~MediaStreamTrack): Ditto.
(WebCore::MediaStreamTrack::setSource): Pass through to private track.
(WebCore::MediaStreamTrack::stopped): Ditto.
(WebCore::MediaStreamTrack::states): Ditto.
(WebCore::MediaStreamTrack::capabilities): Ditto.
(WebCore::MediaStreamTrack::applyConstraints): Ditto.
(WebCore::MediaStreamTrack::stopProducingData): Ditto.
(WebCore::MediaStreamTrack::trackReadyStateChanged): Renamed from sourceStateChanged. Don't
schedule an 'ended' event if called as a side effect of the stop() method having been
called as per spec.
(WebCore::MediaStreamTrack::trackMutedChanged): Renamed from sourceMutedChanged.
(WebCore::MediaStreamTrack::trackEnabledChanged): Renamed from sourceEnabledChanged.
(WebCore::MediaStreamTrack::stop): Pass through to private track.
* Modules/mediastream/MediaStreamTrack.h:
(WebCore::MediaStreamTrack::Observer::~Observer): Add virtual destructor.
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::callSuccessHandler): Set track, not source, constraints.
* WebCore.xcodeproj/project.pbxproj: Add new files.
* bindings/js/JSMediaSourceStatesCustom.cpp:
(WebCore::JSMediaSourceStates::facingMode): Return jsUndefined when the facing mode
is Unknown.
* platform/mediastream/MediaStreamCenter.h: Remove unused class forward defines and
undefined method prototype.
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::addSource): ASSERT if source is kind None.
(WebCore::MediaStreamDescriptor::removeSource): Ditto.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
* platform/mediastream/MediaStreamSource.cpp:
(WebCore::MediaStreamSource::setReadyState): Call startProducingData when readyState changes
to Live, stopProducingData when it changes to Ended.
(WebCore::MediaStreamSource::removeObserver): Call stop() when there are no more observers.
(WebCore::MediaStreamSource::setEnabled): If passed false, do nothing unless all observers
are disabled. Call startProducingData/stopProducingData when becoming enabled/disabled.
(WebCore::MediaStreamSource::stop): Don't bother checking to see if other observers have
stopped, the spec says that track.stop() should permanently stop the track's source.
* platform/mediastream/MediaStreamSource.h:
(WebCore::MediaStreamSource::name): Make virtual so derived classes can override.
(WebCore::MediaStreamSource::setName): Ditto.
(WebCore::MediaStreamSource::readyState): Ditto.
(WebCore::MediaStreamSource::enabled): Ditto.
(WebCore::MediaStreamSource::muted): Ditto.
(WebCore::MediaStreamSource::setReadonly): Ditto.
(WebCore::MediaStreamSource::remote): Ditto.
(WebCore::MediaStreamSource::setRemote): Ditto.
(WebCore::MediaStreamSource::startProducingData): Added.
(WebCore::MediaStreamSource::stopProducingData): Added.
* platform/mediastream/MediaStreamSourceCapabilities.h: Move MediaStreamSourceStates to
its own file.
* platform/mediastream/MediaStreamSourceStates.cpp: Added.
(WebCore::MediaStreamSourceStates::facingMode): Moved here from MediaSourceStates so the
strings are available to platform code.
(WebCore::MediaStreamSourceStates::sourceType): Ditto.
* platform/mediastream/MediaStreamSourceStates.h: Added, moved from MediaStreamSourceCapabilities.h.
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::create): Pass private track to constructor as PassRefPtr.
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate): Initialize member variables.
(WebCore::MediaStreamTrackPrivate::~MediaStreamTrackPrivate): Unregister as source observer.
(WebCore::MediaStreamTrackPrivate::setSource): Unregister/register as source observer.
(WebCore::MediaStreamTrackPrivate::setEnabled): Enable/disable source, call client.
(WebCore::MediaStreamTrackPrivate::stop): New. Set readyState to Ended, optionally stop source.
(WebCore::MediaStreamTrackPrivate::setReadyState): Inline the logic from shouldFireTrackReadyStateChanged.
(WebCore::MediaStreamTrackPrivate::constraints): New, passthrough to the source.
(WebCore::MediaStreamTrackPrivate::states): Ditto.
(WebCore::MediaStreamTrackPrivate::type): Ditto.
(WebCore::MediaStreamTrackPrivate::capabilities): Ditto.
(WebCore::MediaStreamTrackPrivate::applyConstraints): Ditto.
(WebCore::MediaStreamTrackPrivate::sourceReadyStateChanged): React to source changes.
(WebCore::MediaStreamTrackPrivate::sourceMutedChanged): Ditto.
(WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Ditto.
(WebCore::MediaStreamTrackPrivate::observerIsEnabled): Respond to source query.
(WebCore::MediaStreamTrackPrivate::observerIsStopped): Ditto.
* platform/mediastream/MediaStreamTrackPrivate.h:
* platform/mediastream/mac/AVAudioCaptureSource.h: Added.
* platform/mediastream/mac/AVAudioCaptureSource.mm: Added.
* platform/mediastream/mac/AVCaptureDeviceManager.h: Added.
* platform/mediastream/mac/AVCaptureDeviceManager.mm: Added.
* platform/mediastream/mac/AVMediaCaptureSource.h: Added.
* platform/mediastream/mac/AVMediaCaptureSource.mm: Added.
* platform/mediastream/mac/AVVideoCaptureSource.h: Added.
* platform/mediastream/mac/AVVideoCaptureSource.mm: Added.
* platform/mediastream/mac/MediaStreamCenterMac.cpp:
(WebCore::MediaStreamCenterMac::validateRequestConstraints): Implement.
(WebCore::MediaStreamCenterMac::createMediaStream): Ditto.
(WebCore::MediaStreamCenterMac::getMediaStreamTrackSources): Ditto.
* platform/mock/MockMediaStreamCenter.cpp:
(WebCore::initializeMockSources): Update for MediaStreamSourceStates changes.
(WebCore::MockMediaStreamCenter::createMediaStream):
2013-10-29 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Layout error when the shape has negative top coordinate and it's applied on the second region
<https://webkit.org/b/123346>
Reviewed by David Hyatt.
We have a layout error when there is a shape applied on the second region, and it has a negative 'top' coordinate.
Since shapeInsideInfo::shapeLogicalTop() can return negative numbers, we need to check for it, when we're positioning
the first line in the region.
Test: fast/regions/shape-inside/shape-inside-on-multiple-regions-with-negative-shape-top.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-29 Brady Eidson <beidson@apple.com>
Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
https://bugs.webkit.org/show_bug.cgi?id=123451
Reviewed by NOBODY (My bad, non-reviewed, non-building code got in there)
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::processPendingCalls): Remove the auto line I was trying from review feedback.
2013-10-29 Brady Eidson <beidson@apple.com>
Get IDBTransactionBackendLevelDBOperations *almost* ready to go cross platform.
https://bugs.webkit.org/show_bug.cgi?id=123451
Reviewed by Andreas Kling.
This involves:
- Splitting out IDBTransactionBackendLevelDB::Operation into its own header
- Splitting out IDBDatabaseBackendImpl::PendingOpenCall into its own header
- Reworking the LevelDB Operations to handle the base class IDBTransactionBackendInterface
- Adding virtual methods in a few of the *Interface classes to support the above
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBCursorBackendInterface.h:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
(WebCore::IDBDatabaseBackendImpl::setIndexKeys):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
* Modules/indexeddb/IDBDatabaseBackendImpl.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBOperation.h: Added.
(WebCore::IDBOperation::~IDBOperation):
* Modules/indexeddb/IDBPendingOpenCall.h: Added.
(WebCore::IDBPendingOpenCall::create):
(WebCore::IDBPendingOpenCall::callbacks):
(WebCore::IDBPendingOpenCall::databaseCallbacks):
(WebCore::IDBPendingOpenCall::version):
(WebCore::IDBPendingOpenCall::transactionId):
(WebCore::IDBPendingOpenCall::IDBPendingOpenCall):
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::create):
(WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::create):
(WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::create):
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::scheduleTask):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
(WebCore::IDBTransactionBackendLevelDB::createCursorBackend):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::create):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::VersionChangeAbortOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-29 Antti Koivisto <antti@apple.com>
Make SimpleLineLayout::Layout a variable size object
https://bugs.webkit.org/show_bug.cgi?id=123459
Reviewed by Andreas Kling.
Less memory, less indirection.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
(WebCore::SimpleLineLayout::create):
(WebCore::SimpleLineLayout::Layout::create):
(WebCore::SimpleLineLayout::Layout::Layout):
* rendering/SimpleLineLayout.h:
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::hitTestFlow):
* rendering/SimpleLineLayoutFunctions.h:
(WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
(WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
(WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
(WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
(WebCore::SimpleLineLayout::containsTextCaretOffset):
(WebCore::SimpleLineLayout::isTextRendered):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::end):
2013-10-29 Andreas Kling <akling@apple.com>
RenderObject::outlineStyleForRepaint() should return a reference.
<https://webkit.org/b/123453>
Kill a FIXME and make outlineStyleForRepaint() return a RenderStyle&.
Reviewed by Antti Koivisto.
2013-10-29 Andreas Kling <akling@apple.com>
Move more of SVG resources cache to using RenderElement.
<https://webkit.org/b/123452>
Make some more RenderSVGResourcesCache methods take RenderElement&
instead of RenderObject*.
Also removed a double hash lookup in removeResourcesFromRenderer().
Reviewed by Antti Koivisto.
2013-10-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove old Inspector.json version files and generators
https://bugs.webkit.org/show_bug.cgi?id=123426
Reviewed by Timothy Hatcher.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* inspector/Inspector-0.1.json: Removed.
* inspector/Inspector-1.0.json: Removed.
* inspector/generate-inspector-protocol-version: Removed.
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GTK] DOM bindings documentation errors
https://bugs.webkit.org/show_bug.cgi?id=123448
Reviewed by Carlos Garcia Campos.
* bindings/gobject/WebKitDOMCustom.h: Basic documentation for
return types.
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateFunction): Generate Returns documentation tag for
non-void return types and provide basic documentation.
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
Reset tests results.
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/GObject/WebKitDOMattribute.h:
2013-10-24 Brent Fulgham <bfulgham@apple.com>
Invalid cast in WebCore::toRenderMathMLBlock
https://bugs.webkit.org/show_bug.cgi?id=121728
rdar://problem/15046151
Reviewed by Dean Jackson.
Tested by: mathml/arbitrary-markup.html
* dom/Element.h: Expose childShouldCreateRenderer for
MathML as well as SVG builds.
* dom/Node.h:
(WebCore::Node::isMathMLElement): Added.
* mathml/MathMLElement.cpp:
(WebCore::MathMLElement::create): Create as MathML Element.
(WebCore::MathMLElement::childShouldCreateRenderer):
Only allow the child to emit a renderer if it is a
MathML element.
* mathml/MathMLElement.h:
2013-10-29 Andreas Kling <akling@apple.com>
SVG: applyStrokeStyleToContext should take a RenderElement&.
<https://webkit.org/b/123447>
..and a RenderStyle& too, for that matter.
Reviewed by Anders Carlsson.
* rendering/svg/SVGRenderSupport.h:
* rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
Have this take a RenderElement& and RenderStyle& instead of
raw pointers. Tweaked a silly-looking loop.
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGShape.cpp:
Moved BoundingRectStrokeStyleApplier helper class into the
cpp file since it wasn't being used anywhere else.
* rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::applyResource):
* rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::applyResource):
* rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::applyResource):
Remove ampersands.
2013-10-29 Antti Koivisto <antti@apple.com>
Multiple runs per line on simple line path
https://bugs.webkit.org/show_bug.cgi?id=123446
Reviewed by Andreas Kling.
By allowing multiple runs per line we can support text flows with consecutive whitespaces in the middle.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Remove space test.
The improved test coverage found a few more cases that we need to disallow.
(WebCore::SimpleLineLayout::adjustRunOffsets):
Round the run positions and widths so they match line boxes.
Adjust for text-align.
(WebCore::SimpleLineLayout::create):
Split lines with consecutive spaces into runs.
* rendering/SimpleLineLayout.h:
(WebCore::SimpleLineLayout::Run::Run):
* rendering/SimpleLineLayoutFunctions.cpp:
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeTextBoundingBox):
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::RunResolver::Iterator::resolver):
(WebCore::SimpleLineLayout::RunResolver::Iterator::lineIndex):
(WebCore::SimpleLineLayout::RunResolver::Run::Run):
(WebCore::SimpleLineLayout::RunResolver::Run::rect):
(WebCore::SimpleLineLayout::RunResolver::Run::baseline):
(WebCore::SimpleLineLayout::RunResolver::Run::text):
(WebCore::SimpleLineLayout::RunResolver::Run::lineIndex):
(WebCore::SimpleLineLayout::RunResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator++):
Removed unnecessary operators.
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator==):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::RunResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::RunResolver::Iterator::simpleRun):
(WebCore::SimpleLineLayout::RunResolver::RunResolver):
(WebCore::SimpleLineLayout::RunResolver::begin):
(WebCore::SimpleLineLayout::RunResolver::end):
Resolver -> RunResolver
(WebCore::SimpleLineLayout::LineResolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator++):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator==):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::LineResolver::Iterator::operator*):
(WebCore::SimpleLineLayout::LineResolver::LineResolver):
(WebCore::SimpleLineLayout::LineResolver::begin):
(WebCore::SimpleLineLayout::LineResolver::end):
Add LineResolver around RunResolver. It resolves the line rectangles.
(WebCore::SimpleLineLayout::runResolver):
(WebCore::SimpleLineLayout::lineResolver):
2013-10-29 Chris Fleizach <cfleizach@apple.com>
AX: elements with explicit tabindex should expose AXFocused as writable, since mouse clicks can focus it
https://bugs.webkit.org/show_bug.cgi?id=121335
Reviewed by Mario Sanchez Prada.
Re-order logic that determines if a <span> should appear as an accessible element.
The change is that if an element canSetFocus() it should always be in the AX tree.
Test: accessibility/tabindex-elements-are-accessible.html
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2013-10-29 Philippe Normand <pnormand@igalia.com>
[GTK] enable media-stream in build-webkit
https://bugs.webkit.org/show_bug.cgi?id=123144
Reviewed by Martin Robinson.
* GNUmakefile.list.am: Add new MediaStream files to the GTK port build.
2013-10-28 Chris Fleizach <cfleizach@apple.com>
AX: Webkit does not expose AXRequired on input type=file
https://bugs.webkit.org/show_bug.cgi?id=123376
Reviewed by Mario Sanchez Prada.
File upload buttons should expose AXRequired, since they take an input state.
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::supportsRequiredAttribute):
(WebCore::AccessibilityNodeObject::alternativeText):
2013-10-29 Jinwoo Song <jinwoo7.song@samsung.com>
Re-enable simple line layout for EFL
https://bugs.webkit.org/show_bug.cgi?id=123402
Reviewed by Antti Koivisto.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for EFL port, so the port
can use the simple line layout.
2013-10-29 Zan Dobersek <zdobersek@igalia.com>
Unreviewed, follow-up to r158185. Export the required symbol.
This should fix the Mac debug build.
* WebCore.exp.in:
2013-10-29 Santosh Mahto <santosh.ma@samsung.com>
Text selected with double-click gets unselected after DOM modification
https://bugs.webkit.org/show_bug.cgi?id=114227
Reviewed by Ryosuke Niwa.
Before this patch when selection is done by double-click (start and base remain
same) and DOM is modified then selection gets vanished. This does not
happen when selection is done by dragging mouse. This happens because
on double-click base and extent remain the same and on DOM
modification we update the selection with base and extent, so we loose
the selection. Since in double-click case start/end contain the
correct selection, same should be used after dom modification to
update selection.
Test: editing/selection/double-click-selection-with-dom-mutation.html
* editing/FrameSelection.cpp:
(WebCore::FrameSelection::textWasReplaced): use start/end to update
selection in case double click selection. Added a check for base !=
extent, if base != extent use base/extent to update the selection
otherwise use start/end with directionality check.
2013-10-29 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Display anonymous regions in DRT
https://bugs.webkit.org/show_bug.cgi?id=122963
Reviewed by Alexandru Chiculita.
After https://bugs.webkit.org/show_bug.cgi?id=119135, css regions are modelled using an anonymous
RenderNamedFlowFragment object inside the block having a valid -webkit-flow-from.
This patch changes the way elements | pseudo-elements with -webkit-flow-from are displayed
in test dumps.
Before:
RenderRegion {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
After:
RenderBlock (positioned) {DIV} at (200,200) size 52x52 [border: (1px solid #000000)]
RenderNamedFlowFragment at (1,1) size 50x50
Before:
Flow Threads
Thread with flow-name 'article'
Regions for flow 'article'
RenderRegion {DIV} #region_1
RenderRegion {DIV} #region_2
After:
Named flows
Named flow 'article'
Regions for named flow 'article'
RenderNamedFlowFragment (anonymous child of {DIV::before} #region_1)
RenderNamedFlowFragment (anonymous child of {DIV} #region_2)
Changed existing tests based on the new dumps.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::renderName):
* rendering/RenderNamedFlowFragment.h: Add a comment explaining the purpose of the class.
* rendering/RenderRegion.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeRenderRegionList): Adjust function to display info for anonymous regions too.
(WebCore::writeRenderNamedFlowThreads): Separate dump of valid and invalid regions for a named flow.
2013-10-29 Zan Dobersek <zdobersek@igalia.com>
Move writeIndent, overloaded << operators from RenderTreeAsText to TextStream
https://bugs.webkit.org/show_bug.cgi?id=116012
Reviewed by Simon Fraser.
The writeIndent method and overloaded << operators for writing out vectors and points and rectangles
of various types are not specific to the render tree nor do they depend on any rendering-specific interface.
* page/scrolling/ScrollingStateNode.cpp:
* page/scrolling/ScrollingStateNode.h:
(ScrollingStateNode): Remove the writeIndent declaration, it's functionally the same as the TextStream method.
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
(GraphicsLayer): Ditto.
* platform/graphics/filters/DistantLightSource.cpp: Remove the RenderTreeAsText.h inclusion or replace it with
the inclusion of the TextStream.h header where required. The writeIndent method is now declared there.
* platform/graphics/filters/FEBlend.cpp: Ditto.
* platform/graphics/filters/FEColorMatrix.cpp: Ditto.
* platform/graphics/filters/FEComponentTransfer.cpp: Ditto.
* platform/graphics/filters/FEComposite.cpp: Ditto.
* platform/graphics/filters/FEConvolveMatrix.cpp: Ditto.
* platform/graphics/filters/FECustomFilter.cpp: Ditto.
* platform/graphics/filters/FEDiffuseLighting.cpp: Ditto.
* platform/graphics/filters/FEDisplacementMap.cpp: Ditto.
* platform/graphics/filters/FEDropShadow.cpp: Ditto.
* platform/graphics/filters/FEFlood.cpp: Ditto.
* platform/graphics/filters/FEGaussianBlur.cpp: Ditto.
* platform/graphics/filters/FEMerge.cpp: Ditto.
* platform/graphics/filters/FEMorphology.cpp: Ditto.
* platform/graphics/filters/FEOffset.cpp: Ditto.
* platform/graphics/filters/FESpecularLighting.cpp: Ditto.
* platform/graphics/filters/FETurbulence.cpp: Ditto.
* platform/graphics/filters/SourceAlpha.cpp: Ditto.
* platform/graphics/filters/SourceGraphic.cpp: Ditto.
* platform/text/TextStream.cpp: Move the writeIndent and operators' definitions here.
(WebCore::operator<<):
(WebCore):
(WebCore::writeIndent):
* platform/text/TextStream.h: Move the writeIndent and operators' declarations here.
(WebCore):
(TextStream):
(WebCore::TextStream::operator<<):
* rendering/RenderTreeAsText.cpp: Move the writeIndent and operators' definitions into TextStream.
(WebCore):
* rendering/RenderTreeAsText.h: Move the writeIndent and operators' declarations into TextStream.
(WebCore):
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
Clean up ScopedEventQueue
https://bugs.webkit.org/show_bug.cgi?id=123408
Reviewed by Darin Adler.
Clean up the ScopedEventQueue implementation. ScopedEventQueue::instance() should return a reference to a
NeverDestroyed<ScopedEventQueue> object. The static ScopedEventQueue::s_instance pointer is removed.
The ScopedEventQueue destructor, the dispatchAllEvents method and the scope level incrementation/decrementation
methods are made private. NeverDestroyed<ScopedEventQueue> and EventQueueScope are made friends of the
ScopedEventQueue class so they can access the constructor and the incrementation/decrementation methods, respectively.
ScopedEventQueue method definitions are reordered to follow the order of their declarations in the header file.
ScopedEventQueue::dispatchAllEvents() now uses std::move to efficiently dispatch and clear all currently queued events.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchScopedEvent):
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::instance):
(WebCore::ScopedEventQueue::dispatchAllEvents):
* dom/ScopedEventQueue.h:
(WebCore::EventQueueScope::EventQueueScope):
(WebCore::EventQueueScope::~EventQueueScope):
2013-10-28 Andreas Kling <akling@apple.com>
applyTextTransform() should take a const RenderStyle&.
<https://webkit.org/b/123434>
This function is always called with an existing RenderStyle object.
Reviewed by Anders Carlsson.
2013-10-28 Andreas Kling <akling@apple.com>
RenderSVGResource::applyResource() should take a const RenderStyle&.
<https://webkit.org/b/123433>
These functions are always called with an existing RenderStyle object
so let them take a const reference instead of a raw pointer.
Also sprinkled some missing OVERRIDEs.
Reviewed by Anders Carlsson.
2013-10-28 Andreas Kling <akling@apple.com>
Remove unused RenderTextControl::textBaseStyle().
<https://webkit.org/b/123432>
Reviewed by Anders Carlsson.
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
HTML input type objects should be managed through std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=123160
Reviewed by Darin Adler.
Make the constructors of the InputType subclasses public. This makes it possible to use std::make_unique on these classes
and makes the T::create() helpers redundant. New instances of these classes are now managed through std::unique_ptr.
InputType::create() now uses a NeverDestroyed InputTypeFactoryMap that maps type names to InputTypeFactoryFunctions and
gets populated when the method is first called and the map is still empty. Certain types are not added to the factory map
if they're disabled at runtime.
The factory is used to create the new InputType object if the requested type was found in the map, and TextInputType is used otherwise.
* html/ButtonInputType.cpp:
* html/ButtonInputType.h:
(WebCore::ButtonInputType::ButtonInputType):
* html/CheckboxInputType.cpp:
* html/CheckboxInputType.h:
(WebCore::CheckboxInputType::CheckboxInputType):
* html/ColorInputType.cpp:
* html/ColorInputType.h:
(WebCore::ColorInputType::ColorInputType):
* html/DateInputType.cpp:
* html/DateInputType.h:
* html/DateTimeInputType.cpp:
* html/DateTimeInputType.h:
(WebCore::DateTimeInputType::DateTimeInputType):
* html/DateTimeLocalInputType.cpp:
* html/DateTimeLocalInputType.h:
(WebCore::DateTimeLocalInputType::DateTimeLocalInputType):
* html/EmailInputType.cpp:
* html/EmailInputType.h:
(WebCore::EmailInputType::EmailInputType):
* html/FileInputType.cpp:
* html/FileInputType.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::updateType):
* html/HTMLInputElement.h:
* html/HiddenInputType.cpp:
* html/HiddenInputType.h:
(WebCore::HiddenInputType::HiddenInputType):
* html/ImageInputType.cpp:
(WebCore::ImageInputType::ImageInputType):
* html/ImageInputType.h:
* html/InputType.cpp:
(WebCore::createInputType): A templated helper that constructs a new InputType subclass object through std::make_unique.
(WebCore::populateInputTypeFactoryMap): Populates the passed-in map with type-createInputType<T> pairs.
(WebCore::InputType::create): Get the InputTypeFactoryFunction for the specified type, or fall back to TextInputType.
(WebCore::InputType::createText):
* html/InputType.h:
* html/MonthInputType.cpp:
* html/MonthInputType.h:
(WebCore::MonthInputType::MonthInputType):
* html/NumberInputType.cpp:
* html/NumberInputType.h:
(WebCore::NumberInputType::NumberInputType):
* html/PasswordInputType.cpp:
* html/PasswordInputType.h:
(WebCore::PasswordInputType::PasswordInputType):
* html/RadioInputType.cpp:
* html/RadioInputType.h:
(WebCore::RadioInputType::RadioInputType):
* html/RangeInputType.cpp:
* html/RangeInputType.h:
* html/ResetInputType.cpp:
* html/ResetInputType.h:
(WebCore::ResetInputType::ResetInputType):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::SearchInputType):
* html/SearchInputType.h:
* html/SubmitInputType.cpp:
* html/SubmitInputType.h:
(WebCore::SubmitInputType::SubmitInputType):
* html/TelephoneInputType.cpp:
* html/TelephoneInputType.h:
(WebCore::TelephoneInputType::TelephoneInputType):
* html/TextInputType.cpp:
* html/TextInputType.h:
(WebCore::TextInputType::TextInputType):
* html/TimeInputType.cpp:
* html/TimeInputType.h:
* html/URLInputType.cpp:
* html/URLInputType.h:
(WebCore::URLInputType::URLInputType):
* html/WeekInputType.cpp:
* html/WeekInputType.h:
(WebCore::WeekInputType::WeekInputType):
2013-10-28 Brady Eidson <beidson@apple.com>
Refactor IDB factory creation.
https://bugs.webkit.org/show_bug.cgi?id=123347
Reviewed by Andreas Kling.
- Rework how database directory location is passed around.
- Make (some) SecurityOrigin arguments be references instead of pointers.
- Add two SecurityOrigin arguments to opening databases for future use.
* Modules/indexeddb/IDBFactory.cpp:
(WebCore::IDBFactory::openInternal):
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
(WebCore::IDBFactoryBackendInterface::create):
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/PageGroupIndexedDatabase.cpp:
(WebCore::PageGroupIndexedDatabase::PageGroupIndexedDatabase):
(WebCore::PageGroupIndexedDatabase::from):
(WebCore::PageGroupIndexedDatabase::factoryBackend):
* Modules/indexeddb/PageGroupIndexedDatabase.h:
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
(WebCore::WorkerGlobalScopeIndexedDatabase::WorkerGlobalScopeIndexedDatabase):
(WebCore::WorkerGlobalScopeIndexedDatabase::from):
(WebCore::WorkerGlobalScopeIndexedDatabase::indexedDB):
* Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::open):
(WebCore::IDBBackingStoreLevelDB::openInMemory):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::computeFileIdentifier):
(WebCore::computeUniqueIdentifier):
(WebCore::IDBFactoryBackendLevelDB::IDBFactoryBackendLevelDB):
(WebCore::IDBFactoryBackendLevelDB::getDatabaseNames):
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::openBackingStore):
(WebCore::IDBFactoryBackendLevelDB::open):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
(WebCore::IDBFactoryBackendLevelDB::create):
* WebCore.exp.in:
* platform/DatabaseStrategy.cpp:
(WebCore::DatabaseStrategy::createIDBFactoryBackend):
* platform/DatabaseStrategy.h:
2013-10-28 Andreas Kling <akling@apple.com>
RenderElement::style() should return a reference.
<https://webkit.org/b/123414>
Now that renderers always have style, go ahead and make style()
return a RenderStyle&.
There are countless opportunities for further cleanup enabled by
this change. I'm simply passing &style() in many cases where we
can really do something nicer instead.
Reviewed by Anders Carlsson.
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController create the appropriate PlatformCALayer subclasses
https://bugs.webkit.org/show_bug.cgi?id=123418
Reviewed by Simon Fraser.
Add PlatformCALayer::createCompatibleLayer, which is overridden in
each of the subclasses to create a PlatformCALayer instance of the same
subclass. This is used in TileController to make bare PlatformCALayers
of the correct type (Mac, Win, or Remote).
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::createCompatibleLayer):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::createCompatibleLayer):
* platform/graphics/ca/win/PlatformCALayerWin.h:
Add createCompatibleLayer and implement it in the subclasses.
* platform/graphics/ca/mac/TileController.mm:
(WebCore::TileController::TileController):
(WebCore::TileController::tiledScrollingIndicatorLayer):
(WebCore::TileController::createTileLayer):
Make use of createCompatibleLayer when creating PlatformCALayers.
2013-10-28 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: CSS Regions: Add protocol API to expose content nodes addition/removal
https://bugs.webkit.org/show_bug.cgi?id=123424
Reviewed by Timothy Hatcher.
Test: inspector-protocol/model/content-flow-content-nodes.html
Adding two new inspector-protocol APIs to handle the cases when new elements are
added or removed from a named flow. These APIs will trigger even though there
is no region associated with the named flow.
* inspector/Inspector.json:
* inspector/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
(WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElementImpl):
(WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElementImpl):
* inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didRegisterNamedFlowContentElement):
(WebCore::InspectorInstrumentation::didUnregisterNamedFlowContentElement):
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
(WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused inspector/inline-javascript-imports.py
https://bugs.webkit.org/show_bug.cgi?id=123425
Reviewed by Timothy Hatcher.
* inspector/inline-javascript-imports.py: Removed.
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused "externs" files and generators
https://bugs.webkit.org/show_bug.cgi?id=123427
Reviewed by Timothy Hatcher.
* inspector/InjectedScriptExterns.js: Removed.
* inspector/generate_protocol_externs.py: Removed.
2013-10-28 Joseph Pecoraro <pecoraro@apple.com>
Upstream remaining PLATFORM(IOS) and ENABLE(REMOTE_INSPECTOR) pieces
https://bugs.webkit.org/show_bug.cgi?id=123411
Reviewed by Timothy Hatcher.
Include an InspectorClient hook for when node searching is enabled / disabled.
* inspector/InspectorClient.h:
(WebCore::InspectorClient::didSetSearchingForNode):
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::setSearchingForNode):
* inspector/InspectorOverlay.cpp:
(WebCore::InspectorOverlay::didSetSearchingForNode):
* inspector/InspectorOverlay.h:
2013-10-28 Benjamin Poulain <benjamin@webkit.org>
Rename applyPageScaleFactorInCompositor to delegatesPageScaling
https://bugs.webkit.org/show_bug.cgi?id=123417
Reviewed by Simon Fraser.
* page/Frame.cpp:
(WebCore::Frame::frameScaleFactor):
* page/FrameView.cpp:
(WebCore::FrameView::visibleContentScaleFactor):
* page/Page.cpp:
(WebCore::Page::setPageScaleFactor):
* page/Settings.in:
* platform/ScrollView.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMap):
2013-10-28 Myles C. Maxfield <mmaxfield@apple.com>
Parsing support for -webkit-text-decoration-skip: ink
https://bugs.webkit.org/show_bug.cgi?id=123358
Reviewed by Dean Jackson.
Adds initial parsing support for parsing -webkit-text-decoration-skip with
values of "none" and "ink". This work is behind the new
ENABLE(CSS3_TEXT_DECORATION) compile-time flag.
Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-roundtrip.html
* Configurations/FeatureDefines.xcconfig: Adding ENABLE(CSS3_TEXT_DECORATION)
* css/CSSComputedStyleDeclaration.cpp: Mapping internal representation of text-decoration-skip
to a CSSValue
(WebCore::renderTextDecorationSkipFlagsToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp: Actually parsing tokens
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseTextDecorationSkip):
* css/CSSParser.h:
* css/CSSPropertyNames.in: adding -webkit-text-decoration-skip
* css/CSSValueKeywords.in: adding ink
* css/DeprecatedStyleBuilder.cpp: Mapping from CSSValue to internal representation
(WebCore::ApplyPropertyTextDecorationSkip::valueToDecorationSkip):
(WebCore::ApplyPropertyTextDecorationSkip::applyValue):
(WebCore::ApplyPropertyTextDecorationSkip::createHandler):
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* css/StyleResolver.cpp: decoration-skip uses DeprecatedStyleBuilder
(WebCore::StyleResolver::applyProperty):
* rendering/style/RenderStyle.h: Adding functions for modifying and accessing decoration-skip properties
* rendering/style/RenderStyleConstants.h: Definition of internal representation
* rendering/style/StyleRareInheritedData.cpp: Setting up constructors and comparators
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator==):
* rendering/style/StyleRareInheritedData.h: Holds actual value of internal representation
2013-10-28 Anders Carlsson <andersca@apple.com>
RunLoop::dispatch should take an std::function
https://bugs.webkit.org/show_bug.cgi?id=123407
Reviewed by Andreas Kling.
* WebCore.exp.in:
* platform/RunLoop.cpp:
(WebCore::RunLoop::performWork):
(WebCore::RunLoop::dispatch):
* platform/RunLoop.h:
2013-10-28 Tim Horton <timothy_horton@apple.com>
Make TileController manipulate PlatformCALayers instead of CALayers
https://bugs.webkit.org/show_bug.cgi?id=123279
Reviewed by Simon Fraser.
In the interest of making TileController more platform-independent
(so that it can be used with the remote layer tree, and maybe Windows),
move TileController onto our PlatformCALayer abstraction instead of
direct manipulation of CALayers.
Some fallout from this includes getting rid of special Mac-specific
TileController-specific CALayer subclasses, and reworking tile
painting to work in a more generic way.
This is a first step, and doesn't get us all the way to a platform independent
TileController, but more patches are forthcoming.
No new tests, just a (largeish) refactor.
* WebCore.exp.in:
The signature of some methods has changed.
* WebCore.xcodeproj/project.pbxproj:
Remove WebTileLayer.*
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):
Use the "isTile" key on the CALayer dictionary instead of the layer's
class to determine if it's a tile. TileController will set this on a tile
when it is created, for now.
* platform/graphics/TiledBacking.h:
tiledScrollingIndicatorLayer() should return a PlatformCALayer.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
* platform/graphics/ca/GraphicsLayerCA.h:
(WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount):
* platform/graphics/ca/PlatformCALayerClient.h:
The PlatformCALayerClient paintContents and incrementRepaintCount callbacks
should include the platformCALayer that caused the callback.
* platform/graphics/ca/PlatformCALayer.h:
Add LayerTypeSimpleLayer, which is similar to LayerTypeWebLayer
except it just calls back its client to paint, instead of doing
complicated things with repaint rects. This is so that TileController
doesn't re-enter drawLayerContents when asking its GraphicsLayer
to paint for each PlatformCALayer (it will be entering drawLayerContents
for the first time for each layer). It also happens to be useful
for things like the tile controller overlay, which don't need
all that complication.
Add LayerTypeTiledBackingTileLayer, which is used simply to distinguish
TileController Tile layers from other LayerTypeSimpleLayers.
* platform/graphics/ca/mac/LayerPool.h:
* platform/graphics/ca/mac/LayerPool.mm:
(WebCore::LayerPool::addLayer):
(WebCore::LayerPool::takeLayerWithSize):
LayerPool should operate on PlatformCALayers now.
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
Set the "isTile" key on the CALayer to true for TiledBackingTileLayers,
so that the scrolling performance logging can tell a tile apart from
any other layer, on the scrolling thread, without touching PlatformCALayers
or the TileController or any other main-thread data structures.
(PlatformCALayerMac::setEdgeAntialiasingMask): Added.
* platform/graphics/ca/mac/TileController.h:
Remove references to Objective-C classes; instead use PlatformCALayer everywhere.
TileController is now a PlatformCALayerClient, and the layers it owns are
all PlatformCALayers (and it is constructed with a PlatformCALayer, etc.).
Hand in the tile debug border color as a WebCore color, instead of a CGColorRef.
blankPixelCountForTiles() now operates on a list of PlatformLayers instead of
WebTileLayers specifically, since WebTileLayer is gone.
Make drawTileMapContents private because WebTileCacheMapLayer no longer exists.
(WebCore::TileController::platformCALayerDrawsContent):
All of the layers who have TileController as their client paint their contents.
(WebCore::TileController::platformCALayerContentsOpaque):
This will only be called for layers which paint via drawLayerContents,
so it's OK that we don't special-case the debugging overlay here.
(WebCore::TileController::owningGraphicsLayer):
Return the GraphicsLayer that owns the TileController's main
layer, via its conformance to PlatformCALayerClient. This is
a bit strange (because it's not strictly a GraphicsLayer, despite
always being so at the moment), but is done for clarity inside
TileController itself.
* platform/graphics/ca/mac/TileController.mm:
Remove CALayer (WebCALayerDetails), WebTiledScrollingIndicatorLayer,
and a bunch of includes that we don't need anymore.
(WebCore::TileController::create):
(WebCore::TileController::TileController):
TileController is passed a PlatformCALayer for the tile cache root layer,
instead of a WebTiledBackingLayer. It also creates a PlatformCALayer with
LayerTypeLayer instead of a bare CALayer for the container layer.
It's OK to remove the transaction because it was only used to stop
the implicit animation, which PlatformCALayer will do for us.
(WebCore::TileController::~TileController):
Clear the owner of the PlatformCALayers which the TileController previously owned,
so they don't try to call back a destroyed TileController.
(WebCore::TileController::tileCacheLayerBoundsChanged):
(WebCore::TileController::setNeedsDisplay):
Straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::setTileNeedsDisplayInRect):
Adjustments towards use of PlatformCALayer; we need FloatRects so we can
pass pointers to PlatformCALayer::setNeedsDisplay.
(WebCore::TileController::platformCALayerPaintContents):
Replace drawLayer with platformCALayerPaintContents, which will be called
back from our various WebSimpleLayers. If the PlatformCALayer is our
tiled scrolling debug indicator, paint that. Otherwise, it's a tile.
Make use of drawLayerContents() to paint the tile contents.
Make use of drawRepaintIndicator() to paint the repaint indicator if needed.
Move scrolling performance logging code that used to be in WebTileLayer here.
(WebCore::TileController::platformCALayerDeviceScaleFactor):
(WebCore::TileController::platformCALayerShowDebugBorders):
(WebCore::TileController::platformCALayerShowRepaintCounter):
Forward these to the owning GraphicsLayerCA, because it will have the right answers.
(WebCore::TileController::setScale):
Adjustments towards use of PlatformCALayer; remove some code that Simon
caused to be unused in 156291 but did not remove.
(WebCore::TileController::setAcceleratesDrawing):
(WebCore::TileController::setTilesOpaque):
(WebCore::TileController::setVisibleRect):
(WebCore::TileController::revalidateTiles):
(WebCore::TileController::setTileDebugBorderWidth):
(WebCore::TileController::setTileDebugBorderColor):
(WebCore::TileController::bounds):
(WebCore::TileController::blankPixelCount):
(WebCore::TileController::blankPixelCountForTiles):
(WebCore::queueTileForRemoval):
(WebCore::TileController::setNeedsRevalidateTiles):
(WebCore::TileController::ensureTilesForRect):
(WebCore::TileController::retainedTileBackingStoreMemory):
Straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::updateTileCoverageMap):
Adjustments towards use of PlatformCALayer; rename backgroundColor
to visibleRectIndicatorColor, since it's actually a border, not a background.
(WebCore::TileController::tiledScrollingIndicatorLayer):
Create a LayerTypeSimpleLayer PlatformCALayer for the tiled scrolling indicator.
It will be asked to paint straightforwardly, like a CALayer would.
Create a LayerTypeLayer PlatformCALayer for the visible rect indicator.
It doesn't need to paint anything, so it doesn't get an owner.
(WebCore::TileController::createTileLayer):
When creating a new tile layer, adopt it by setting its owner.
Otherwise, straightforward adjustments towards use of PlatformCALayer.
(WebCore::TileController::platformCALayerIncrementRepaintCount):
Manage repaint counts for tiles in TileController now.
(WebCore::TileController::drawTileMapContents):
Adjustments towards use of PlatformCALayer.
* platform/graphics/ca/mac/WebTileLayer.h: Removed.
* platform/graphics/ca/mac/WebTileLayer.mm: Removed.
We don't need WebTileLayer anymore, tiles are now just WebSimpleLayers
owned by TileController. Its behavior has been moved into TileController.
* platform/graphics/ca/mac/WebTiledBackingLayer.h:
* platform/graphics/ca/mac/WebTiledBackingLayer.mm:
(-[WebTiledBackingLayer createTileController:]):
Add createTileController: so that the WebTiledBackingLayer's owner can
hand the TileController the PlatformCALayer for the WebTiledBackingLayer
without propagating additional usage of PlatformCALayer::platformCALayer(),
which we need to remove in light of the remote layer tree work.
(-[WebTiledBackingLayer setBorderColor:]):
* platform/graphics/ca/win/PlatformCALayerWin.h:
Add an empty implementation of setEdgeAntialiasingMask.
We'll probably want to implement it before adopting TileController on Windows.
* platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
(PlatformCALayerWinInternal::displayCallback):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents):
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerIncrementRepaintCount):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::LayerClient::platformCALayerPaintContents):
(WebCore::LayerClient::platformCALayerIncrementRepaintCount):
Adjust for new parameters on PlatformCALayerClient callbacks.
* platform/graphics/mac/WebLayer.h:
Add WebSimpleLayer, which inherits directly from CALayer, and make
our standard WebLayer (which is used for compositing layers in web content)
inherit from that.
* platform/graphics/mac/WebLayer.mm:
Move most of the behavior of WebLayer onto WebSimpleLayer, except for its
complex painting code. That stays as an override on WebLayer.
(WebCore::drawLayerContents):
Use the PlatformCALayer's PlatformLayer - if it exists - to extract
fine-grained repaint rects. If it doesn't, we'll just use the CGContext's
clip rect as our single repaint rect.
Rename platformLayer to platformCALayer for accuracy.
Remove special code for CATiledLayer since we ought not use it on Mac anymore.
(WebCore::drawRepaintIndicator):
Factor repaint indicator code out into its own function so that TileController
can use it. It can't be called from drawLayerContents for TileController, since
the PlatformCALayer that TileController passes in to drawLayerContents is actually
that of the tile cache's root layer, not the tile itself.
Also, add a custom background color parameter so TileController can override
the default green color with its own standard purple.
(-[WebLayer drawInContext:]):
(-[WebSimpleLayer drawInContext:]):
* platform/graphics/mac/WebTiledLayer.mm:
(-[WebTiledLayer drawInContext:]):
Removed a param from drawLayerContents because it's trivially acquirable
from the PlatformCALayer.
2013-10-24 Sam Weinig <sam@webkit.org>
Move RenderBlock functions only used by RenderBlockFlow to RenderBlockFlow
https://bugs.webkit.org/show_bug.cgi?id=123318
Reviewed by David Hyatt.
* rendering/LineLayoutState.h:
Move FloatWithRect from RenderBlock.
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
Move pagination and float functions.
2013-10-28 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Add support for order inside grid items
https://bugs.webkit.org/show_bug.cgi?id=123208
Reviewed by Antti Koivisto.
Based on Blink r153457 and r153536 by <jchaffraix@chromium.org>
Added support for sorting grid items by using -webkit-order
property. Used OrderIterator to implement it so it had to be moved
out of RenderFlexibleBox to be shared with RenderGrid.
Tests: fast/css-grid-layout/grid-item-order-auto-flow-resolution.html
fast/css-grid-layout/grid-item-order-paint-order.html
* CMakeLists.txt: Added new file.
* GNUmakefile.list.am: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* rendering/OrderIterator.cpp: Added. Ripped out of RenderFlexibleBox.
(WebCore::OrderIterator::OrderIterator):
(WebCore::OrderIterator::setOrderValues): Use std::move semantics.
(WebCore::OrderIterator::first): Use an integer as iterator.
(WebCore::OrderIterator::next): Ditto.
(WebCore::OrderIterator::reset): Ditto.
* rendering/OrderIterator.h: Added.
(WebCore::OrderIterator::currentChild):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlexibleBox.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::paintChildren):
* rendering/RenderGrid.h:
2013-10-28 Afonso R. Costa Jr. <afonso.costa@samsung.com>
Methods on window.internals shouldn't pass a document.
https://bugs.webkit.org/show_bug.cgi?id=107301
Reviewed by Alexey Proskuryakov.
Each 'Internals' instance is associated with a 'Document'. So, it
is not necessary to pass a document as argument. Only nodesFromRect and
layerTreeAsText methods were kept because, in some Layout Tests, the
'Document' object is not the same used by Internals::contextDocument.
* testing/Internals.cpp: Removed 'document' parameter.
(WebCore::Internals::animationsAreSuspended):
(WebCore::Internals::suspendAnimations):
(WebCore::Internals::resumeAnimations):
(WebCore::Internals::inspectorHighlightRects):
(WebCore::Internals::inspectorHighlightObject):
(WebCore::Internals::setScrollViewPosition):
(WebCore::Internals::setPagination):
(WebCore::Internals::configurationForViewport):
(WebCore::Internals::paintControlTints):
(WebCore::Internals::setDelegatesScrolling):
(WebCore::Internals::touchPositionAdjustedToBestClickableNode):
(WebCore::Internals::touchNodeAdjustedToBestClickableNode):
(WebCore::Internals::touchPositionAdjustedToBestContextMenuNode):
(WebCore::Internals::touchNodeAdjustedToBestContextMenuNode):
(WebCore::Internals::bestZoomableAreaForTouchPoint):
(WebCore::Internals::lastSpellCheckRequestSequence):
(WebCore::Internals::lastSpellCheckProcessedSequence):
(WebCore::Internals::wheelEventHandlerCount):
(WebCore::Internals::touchEventHandlerCount):
(WebCore::Internals::setBatteryStatus):
(WebCore::Internals::setNetworkInformation):
(WebCore::Internals::setDeviceProximity):
(WebCore::Internals::hasSpellingMarker):
(WebCore::Internals::hasAutocorrectedMarker):
(WebCore::Internals::isOverwriteModeEnabled):
(WebCore::Internals::toggleOverwriteModeEnabled):
(WebCore::Internals::consoleMessageArgumentCounts):
(WebCore::Internals::hasGrammarMarker):
(WebCore::Internals::numberOfScrollableAreas):
(WebCore::Internals::isPageBoxVisible):
(WebCore::Internals::repaintRectsAsText):
(WebCore::Internals::scrollingStateTreeAsText):
(WebCore::Internals::mainThreadScrollingReasons):
(WebCore::Internals::nonFastScrollableRects):
(WebCore::Internals::garbageCollectDocumentResources):
(WebCore::Internals::insertAuthorCSS):
(WebCore::Internals::insertUserCSS):
(WebCore::Internals::shortcutIconURLs):
(WebCore::Internals::allIconURLs):
(WebCore::Internals::setHeaderHeight):
(WebCore::Internals::setFooterHeight):
(WebCore::Internals::webkitWillEnterFullScreenForElement):
(WebCore::Internals::webkitDidEnterFullScreenForElement):
(WebCore::Internals::webkitWillExitFullScreenForElement):
(WebCore::Internals::webkitDidExitFullScreenForElement):
(WebCore::Internals::startTrackingRepaints):
(WebCore::Internals::stopTrackingRepaints):
(WebCore::Internals::getCurrentCursorInfo):
* testing/Internals.h:
(WebCore::Internals::setPagination):
* testing/Internals.idl:
2013-10-28 Xabier Rodriguez Calvar <calvaris@igalia.com>
Remove HTMLMediaElement.startTime
https://bugs.webkit.org/show_bug.cgi?id=123264
Reviewed by Eric Carlson.
Patch based on one by: philipj@opera.com
Blink review URL: https://codereview.chromium.org/32583003
startTime has been removed from the HTMLMediaElement and its use
in the rest of components.
* Modules/mediacontrols/mediaControlsApple.js:
(Controller.prototype.handleRewindButtonClicked):
(Controller.prototype.handleTimelineMouseMove):
(Controller.prototype.updateDuration):
(Controller.prototype.updateTime): Removed used of startTime().
* bindings/gobject/WebKitDOMCustom.cpp:
(webkit_dom_html_media_element_get_start_time):
* bindings/gobject/WebKitDOMCustom.h:
* bindings/gobject/WebKitDOMCustom.symbols: Added phony function.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
(WebCore::HTMLMediaElement::isBlockedOnMediaController): Removed
use of startTime()
* html/HTMLMediaElement.h:
* html/HTMLMediaElement.idl: Removed startTime()
* rendering/RenderThemeWinCE.cpp:
(WebCore::RenderThemeWinCE::paintSliderThumb): Removed use of
startTime()
2013-10-28 Andreas Kling <akling@apple.com>
RenderElement::m_style should be a Ref.
<https://webkit.org/b/123401>
Made RenderElement::m_style a Ref. This codifies the fact that it
can never be null after construction.
Removed a couple of unnecessary null checks that were exposed as
compilation failures.
Reviewed by Antti Koivisto.
2013-10-28 Bastien Nocera <hadess@hadess.net>
Name all the GLib timeout sources
https://bugs.webkit.org/show_bug.cgi?id=123229
Reviewed by Anders Carlsson.
Give a name to GLib timeout sources, this is helpful when
profiling WebKitGTK applications.
No new tests, no change in functionality.
2013-10-28 Philippe Normand <pnormand@igalia.com>
MediaStreamTrackPrivate's m_client uninitialized
https://bugs.webkit.org/show_bug.cgi?id=123403
Reviewed by Eric Carlson.
No new tests, no change in functionality.
* platform/mediastream/MediaStreamTrackPrivate.cpp:
(WebCore::MediaStreamTrackPrivate::MediaStreamTrackPrivate):
Initialize the m_client member variable.
2013-10-28 Carlos Garcia Campos <cgarcia@igalia.com>
Unreviewed. Fix make distcheck.
* GNUmakefile.am: Add crypto idl files to EXTRA_DIST and remove
css/fullscreenQuickTime.css that was removed.
2013-10-28 Antti Koivisto <antti@apple.com>
Prepare simple line layout to support multiple runs per line
https://bugs.webkit.org/show_bug.cgi?id=123400
Reviewed by Andreas Kling.
Bunch of renaming and some refactoring for future support for text runs.
SimpleLineLayout::Lines -> SimpleLineLayout::Layout and becomes a class instead of a typedef.
SimpleLineLayout::Resolver::Line -> SimpleLineLayout::Resolver::Run
SimpleLineLayout::createLines() -> SimpleLineLayout::create()
RenderBlockFlow::simpleLines() -> RenderBlockFlow::simpleLineLayout()
RenderText::simpleLines() -> RenderText::simpleLineLayout()
Added resolver construction functions:
SimpleLineLayout::runResolver()
SimpleLineLayout::lineResolver()
2013-10-28 Mario Sanchez Prada <mario.prada@samsung.com>
[GTK] Expose title and alternative text for links in image maps
https://bugs.webkit.org/show_bug.cgi?id=84045
Reviewed by Chris Fleizach.
Change the way we decide when the title attribute should be
used for the accessible description, by not relying in the
titleTagShouldBeUsedInDescriptionField() helper function but
in whether we have found a visible text for it or not.
This actually mimics what the Mac port does and so makes possible
to share both the layout test and its expected results.
* accessibility/atk/WebKitAccessibleUtil.cpp:
(accessibilityDescription): Update the method to determine
whether the title attribute should be used for the description.
2013-10-28 Bastien Nocera <hadess@hadess.net>
Replace 0 timeouts g_timeout_add() by g_idle_add()
https://bugs.webkit.org/show_bug.cgi?id=123260
Reviewed by Carlos Garcia Campos.
A zero timeout should be equivalent to using g_idle_add_full(G_PRIORITY_DEFAULT, ...)
without the nagging feeling that the wrong API was used.
No new tests, no change in functionality.
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Use g_idle_add() instead
of 0-timer.
(WebCore::MediaPlayerPrivateGStreamer::videoChanged):
(WebCore::MediaPlayerPrivateGStreamer::audioChanged):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
(WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
* platform/gtk/GtkDragAndDropHelper.cpp: Ditto.
(WebCore::GtkDragAndDropHelper::handleDragLeave):
2013-10-28 Zan Dobersek <zdobersek@igalia.com>
Re-enable simple line layout for GTK
https://bugs.webkit.org/show_bug.cgi?id=123388
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor): 8-bit TextRun support is now enabled for the GTK port, so the port
can use the simple line layout.
2013-10-27 Andreas Kling <akling@apple.com>
Fix 4 asserting SVG tests after r158097.
RenderElement::setStyle() is, quite surprisingly, a virtual function
with a single override in RenderSVGBlock.
To match the old behavior, we have to rewrite the display type from
any inline type to block instead.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle):
2013-10-27 Andreas Kling <akling@apple.com>
Tone down overzealous assertion from r158097.
RenderElement::initializeStyle() really only cares that there are no
text renderers that we should be calling styleDidChange() on.
Tweak the code to only check that there are no text children.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::initializeStyle):
2013-10-27 Antti Koivisto <antti@apple.com>
Enable center and right text alignment for simple lines
https://bugs.webkit.org/show_bug.cgi?id=123398
Reviewed by Andreas Kling.
Support text-align:center and text-align:right on simple line layout path.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
text-align:justify is still not supported.
(WebCore::SimpleLineLayout::computeLineLeft):
(WebCore::SimpleLineLayout::createLines):
Do a rounding dance that matches the line boxes.
* rendering/SimpleLineLayout.h:
Add left position to lines.
* rendering/SimpleLineLayoutResolver.h:
(WebCore::SimpleLineLayout::Resolver::Line::rect):
We now do rounding during layout.
(WebCore::SimpleLineLayout::Resolver::Line::baseline):
2013-10-27 Andreas Kling <akling@apple.com>
Renderers should receive their style at construction.
<https://webkit.org/b/123396>
Pass the RenderStyle to all non-text renderer constructors.
After construction, initializeStyle() must be called (as a stopgap
measure) until we are able to do style-derived initialization
without virtual function calls.
With this change, RenderElement::m_style is never null. Subsequent
patches will add enforcement for this and also make style() return
a RenderStyle&.
I'm adding three FIXME's in this patch:
- createRendererIfNeeded() calls AnimationController to set up
the initial style manually instead of asking RenderElement's
setAnimatedStyle() to do it. This can probably be done in a
nicer way, but it's not clear yet how.
- ImageContentData::createRenderer() does a bit of unnecessary
work. This should be easy to clean up but got too distracting
to be part of this patch.
- Document::createRenderTree() creates the RenderView with an
initial dummy RenderStyle. I've done this because resolving
the document style assumes we already have a RenderView.
For styleWillChange() implementations to detect that they are
reacting to the initial style, I've added a hasInitializedStyle()
function on RenderElement. This will return false until you've
called initializeStyle() on the renderer. This should go away
along with initializeStyle() eventually.
Reviewed by Antti Koivisto.
2013-10-26 Tim Horton <timothy_horton@apple.com>
[mac] Remove WebTiledLayer
https://bugs.webkit.org/show_bug.cgi?id=123395
Reviewed by Anders Carlsson.
Mac doesn't use CATiledLayer at all anymore. We have to keep
LayerTypeTiledLayer around for Windows, for now, but we can
get rid of WebTiledLayer and some related Mac-specific code.
No new tests, just removing dead code.
* WebCore.xcodeproj/project.pbxproj:
Remove WebTiledLayer.*
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
Remove synchronouslyDisplayTilesInRect, which was only used for WebTiledLayer on Mac.
Remove WebTiledLayer instantiation and setup code.
* platform/graphics/mac/WebTiledLayer.h: Removed.
* platform/graphics/mac/WebTiledLayer.mm: Removed.
2013-10-26 Andreas Kling <akling@apple.com>
CTTE: RenderImageResourceStyleImage always has a StyleImage.
<https://webkit.org/b/123390>
Codify the fact that RenderImageResourceStyleImage always wraps an
existing StyleImage object.
Reviewed by Antti Koivisto.
2013-10-26 Antti Koivisto <antti@apple.com>
Revert some accidental changes.
* css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::getFontData):
* css/CSSFontSelector.cpp:
* css/CSSFontSelector.h:
2013-10-26 Mark Lam <mark.lam@apple.com>
Gardening: fixed broken build.
https://bugs.webkit.org/show_bug.cgi?id=123354.
* css/CSSFontSelector.h:
2013-10-26 Antti Koivisto <antti@apple.com>
fast/frames/seamless/seamless-nested-crash.html asserts on wk2 only
https://bugs.webkit.org/show_bug.cgi?id=123354
Reviewed by Andreas Kling.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Don't enable simple line layout if the primary font is loading. The code expects
to use the primary font metrics for all lines but those won't match the fallbacks
when font is not loaded.
2013-10-26 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Deprecate public dispatch_event method in objects implementing EventTarget interface
https://bugs.webkit.org/show_bug.cgi?id=123261
Reviewed by Gustavo Noronha Silva.
The interface function should be used instead.
* bindings/scripts/CodeGeneratorGObject.pm:
(GetFunctionDeprecationInformation): Helper function to return the
version when the function was deprecated and the function
replacing the deprecated one.
(GenerateFunction): Check if the function is deprecated to mark it
as such in the header and API docs.
* bindings/scripts/gobject-generate-headers.pl: Replace the unused
WEBKIT_OBSOLETE_API macro with new macros to mark function as
deprecated, using the glib macros so that we don't need checks for
the platform.
* bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
* bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
* bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
* bindings/scripts/test/GObject/WebKitDOMTestException.h:
* bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestObj.h:
* bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
* bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
* bindings/scripts/test/GObject/WebKitDOMattribute.h:
2013-10-25 Mark Lam <mark.lam@apple.com>
DatabaseManager's ProposedDatabases need to be thread-safe.
https://bugs.webkit.org/show_bug.cgi?id=123313.
Reviewed by Geoffrey Garen.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::registerDatabaseContext):
(WebCore::DatabaseManager::unregisterDatabaseContext):
(WebCore::DatabaseManager::didConstructDatabaseContext):
(WebCore::DatabaseManager::didDestructDatabaseContext):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::addProposedDatabase):
(WebCore::DatabaseManager::removeProposedDatabase):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseManager.h:
2013-10-25 Joseph Pecoraro <pecoraro@apple.com>
Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac
https://bugs.webkit.org/show_bug.cgi?id=123111
Reviewed by Timothy Hatcher.
* Configurations/FeatureDefines.xcconfig:
* WebCore.exp.in:
2013-10-25 Hans Muller <hmuller@adobe.com>
[CSS Shapes] CORS-enabled fetch for shape image values
https://bugs.webkit.org/show_bug.cgi?id=123114
Reviewed by Andreas Kling.
Access to shape images is now controlled by CORS CSS shape per
http://dev.w3.org/csswg/css-shapes/#shape-outside-property.
Previously shape images had to be same-origin.
Shape image URL access is defined by the same logic that defines
canvas tainting: same-origin and data URLs are allowed and images
with a "Access-Control-Allow-Origin:" header that's either "*" or
that matches the document's origin.
A PotentiallyCrossOriginEnabled RequestOriginPolicy was added to
ResourceLoaderOptions, to indicate that a "potentially CORS-enabled fetch"
was to be undertaken. The CSSImageValue::cachedImage() method handles this
option by effectively setting the "Origin:" request header (see
updateRequestForAccessControl() in CrossOriginAccessControl.cpp).
StyleResolver::loadPendingShapeImage() uses the new ResourceLoaderOption.
The static ShapeInsideInfo and ShapeOutsideInfo isEnabledFor() method
now performs the CORS check for image valued shapes. The private
isOriginClean() method from CanvasRenderingContext2D has been moved to
the CachedImage class so that it can be shared by the Canvas and Shape
implementations. It checks the response headers per the CORS spec.
Test: http/tests/security/shape-image-cors.html
* css/CSSImageValue.cpp:
(WebCore::CSSImageValue::cachedImage): Handle the new ResourceLoaderOption.
* css/StyleResolver.cpp:
(WebCore::StyleResolver::loadPendingShapeImage): Set the new ResourceLoaderOption.
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::createPattern): Use the CachedImage::isOriginClean().
* loader/ResourceLoaderOptions.h: Added PotentiallyCrossOriginEnabled to RequestOriginPolicy.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::isOriginClean): Migrated from CanvasRenderingContext2D.
* loader/cache/CachedImage.h:
* rendering/shapes/ShapeInfo.cpp:
(WebCore::::checkImageOrigin): Do the CORS check and log an error message if neccessary.
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInsideInfo.cpp:
(WebCore::ShapeInsideInfo::isEnabledFor): Call checkImageOrigin() for images.
* rendering/shapes/ShapeOutsideInfo.cpp:
(WebCore::ShapeOutsideInfo::isEnabledFor): Ditto.
2013-10-25 Jer Noble <jer.noble@apple.com>
[MSE] Fix runtime errors caused by mediasource IDL attributes.
https://bugs.webkit.org/show_bug.cgi?id=123352
Reviewed by Eric Carlson.
Due to http://webkit.org/b/123178, MediaSource classes must add a GenerateIsReachable
(and also a JSGenerateToJSObject) attribute to avoid runtime asserts and crashes.
* Modules/mediasource/MediaSource.idl:
* Modules/mediasource/SourceBuffer.idl:
* Modules/mediasource/SourceBufferList.idl:
* Modules/mediasource/WebKitMediaSource.idl:
* Modules/mediasource/WebKitSourceBufferList.idl:
2013-10-25 Jacky Jiang <zhajiang@blackberry.com>
[BlackBerry] Browser crashed at PlatformGraphicsContext::addDrawLineForText() when trying to upload a video to youtube
https://bugs.webkit.org/show_bug.cgi?id=123349
Reviewed by George Staikos.
Internally reviewed by George Staikos, Konrad Piascik, Eli Fidler and Arvid Nilsson.
Browser crashed when dereferencing null PlatformGraphicsContext*.
In FrameView::paintControlTints(), we intentionally constructed GraphicsContext
with null PlatformGraphicsContext* and disabled painting by doing
context.setUpdatingControlTints(true). So we should not go further in
GraphicsContext::drawLineForText() if painting is disabled.
Check paintingDisabled() for the other functions in PathBlackBerry.cpp
as well; otherwise, it is likely we will crash at those places.
* platform/graphics/blackberry/PathBlackBerry.cpp:
(WebCore::GraphicsContext::fillPath):
(WebCore::GraphicsContext::strokePath):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
(WebCore::GraphicsContext::drawLineForText):
(WebCore::GraphicsContext::clip):
(WebCore::GraphicsContext::clipPath):
(WebCore::GraphicsContext::canvasClip):
(WebCore::GraphicsContext::clipOut):
2013-10-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding platform implementation of MediaStreamTrack
https://bugs.webkit.org/show_bug.cgi?id=123301
Reviewed by Eric Carlson.
No new tests needed.
* CMakeLists.txt:
* Modules/mediastream/AudioStreamTrack.cpp:
(WebCore::AudioStreamTrack::create): Create method now receives a MediaStreamTrackPrivate as parameter.
(WebCore::AudioStreamTrack::AudioStreamTrack):
* Modules/mediastream/AudioStreamTrack.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Constructor now iterates through a set of MediaStreamTrackPrivate
instances to create each MediaStreamTrack of MediaStream.
(WebCore::MediaStream::addRemoteSource): Calling AudioStreamTrack and VideoStreamTrack with
MediaStreamTrackPrivate as parameter.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::MediaStreamTrack): Constructor now receives a MediaStreamTrackPrivate, instead of a
MediaStreamSource.
(WebCore::MediaStreamTrack::~MediaStreamTrack):
(WebCore::MediaStreamTrack::kind): Calling method from MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::setSource): Ditto.
(WebCore::MediaStreamTrack::id): Ditto.
(WebCore::MediaStreamTrack::label): Ditto.
(WebCore::MediaStreamTrack::enabled): Ditto.
(WebCore::MediaStreamTrack::setEnabled): Ditto.
(WebCore::MediaStreamTrack::muted): Ditto.
(WebCore::MediaStreamTrack::readonly): Ditto.
(WebCore::MediaStreamTrack::remote): Ditto.
(WebCore::MediaStreamTrack::readyState): Ditto.
(WebCore::MediaStreamTrack::states):
(WebCore::MediaStreamTrack::capabilities):
(WebCore::MediaStreamTrack::clone):
(WebCore::MediaStreamTrack::stopProducingData):
(WebCore::MediaStreamTrack::ended): Ditto.
(WebCore::MediaStreamTrack::sourceStateChanged): Ditto.
(WebCore::MediaStreamTrack::sourceMutedChanged): Ditto.
(WebCore::MediaStreamTrack::sourceEnabledChanged): Ditto.
(WebCore::MediaStreamTrack::configureTrackRendering):
(WebCore::MediaStreamTrack::stopped): Ditto.
(WebCore::MediaStreamTrack::trackDidEnd): Setting Ended ready state in MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::trackReadyStateChanged): Dispatches Live or Ended event.
(WebCore::MediaStreamTrack::trackMutedChanged): Dispatches Muted event.
* Modules/mediastream/MediaStreamTrack.h: Now inheriting from MediaStreamTrackPrivateClient.
(WebCore::MediaStreamTrack::source): Calling method from MediaStreamTrackPrivate.
(WebCore::MediaStreamTrack::privateTrack):
* Modules/mediastream/VideoStreamTrack.cpp:
(WebCore::VideoStreamTrack::create):
(WebCore::VideoStreamTrack::VideoStreamTrack): Create method now receives a MediaStreamTrackPrivate as parameter.
* Modules/mediastream/VideoStreamTrack.h:
* platform/mediastream/MediaStreamDescriptor.cpp:
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Stores the private tracks in a Vector (property of
MediaStreamDescriptor class).
(WebCore::MediaStreamDescriptor::addTrack): Adds a private track to the tracks' Vector
(WebCore::MediaStreamDescriptor::removeTrack): Removes a private track from the tracks' Vector
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::numberOfAudioSources): Renamed from numberOfAudioStreams.
(WebCore::MediaStreamDescriptor::audioSources): Renamed from audioStreams.
(WebCore::MediaStreamDescriptor::numberOfVideoSources): Renamed from numberOfVideoStreams.
(WebCore::MediaStreamDescriptor::videoSources): Renamed from videoStreams.
(WebCore::MediaStreamDescriptor::numberOfAudioTracks): Returns the number of audio tracks this MediaStreamDescriptor
has.
(WebCore::MediaStreamDescriptor::audioTracks): Returns a audio track, given an index
(WebCore::MediaStreamDescriptor::numberOfVideoTracks): Returns the number of video tracks this MediaStreamDescriptor
has.
(WebCore::MediaStreamDescriptor::videoTracks): Returns a video track, given an index
* platform/mediastream/MediaStreamTrackPrivate.cpp: Added.
* platform/mediastream/MediaStreamTrackPrivate.h: Added.
2013-10-25 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with multiple regions
<https://webkit.org/b/123210>
Reviewed by David Hyatt.
I simplified the determination of the next region part of updateShapeAndSegmentsForCurrentLineInFlowThread's implementation
in order to make the code more straightforward. I also tried to avoid using regionAtBlockOffset(...) function where it's possible,
since it's not always that reliable, what I'll will report in a separate bug.
No new tests, covered by existing tests.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-25 Zoltan Horvath <zoltan@webkit.org>
[CSS Regions][CSS Shapes] Update updateShapeAndSegmentsForCurrentLineInFlowThread to deal better with the first lines
<https://bugs.webkit.org/show_bug.cgi?id=123275>
Reviewed by David Hyatt.
We have a complex condition in updateShapeAndSegmentsForCurrentLineInFlowThread, which is
adjusting the first line to the shape's top. This patch adds two boolean to make that clear.
No new tests, no behavior change.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-25 Antti Koivisto <antti@apple.com>
Faster way for simple line layout to check if text has fallback fonts
https://bugs.webkit.org/show_bug.cgi?id=123342
Reviewed by Andreas Kling.
Don't use RenderText::knownToHaveNoOverflowAndNoFallbackFonts as it is slow.
Simple text code path test already guarantees there is no overflow. Test for fallback
fonts explicitly.
* platform/graphics/SimpleFontData.h:
Make FINAL.
* rendering/RenderText.cpp:
* rendering/RenderText.h:
Remove knownToHaveNoOverflowAndNoFallbackFonts() as it has no clients.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
Check if all characters can be found from the primary font.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientDestroyed() should take a RenderElement&.
<https://webkit.org/b/123339>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientLayoutChanged() should take a RenderElement&.
<https://webkit.org/b/123336>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVGResourcesCache::clientStyleChanged() should take a RenderElement&.
<https://webkit.org/b/123335>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
SVG: postApplyResource() should take a RenderElement&.
<https://webkit.org/b/123334>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Antti Koivisto <antti@apple.com>
REGRESSION(r157950): It made many tests assert on Windows, EFL, GTK
https://bugs.webkit.org/show_bug.cgi?id=123309
Reviewed by Andreas Kling.
Disable simple line layout on non-Mac plaforms for now.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Andreas Kling <akling@apple.com>
SVG: applyResource() should take a RenderElement&.
<https://webkit.org/b/123286>
This function is always called with an object, and that object
is guaranteed to never be a text renderer.
Reviewed by Antti Koivisto.
2013-10-25 Andreas Kling <akling@apple.com>
RenderElement::styleWillChange() should pass newStyle as reference.
<https://webkit.org/b/123332>
When styleWillChange() is called, there is always a new style getting
set so there's no need to handle the null style case.
This flushed out a couple of unnecessary checks.
Reviewed by Antti Koivisto.
2013-10-25 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile fixes.
https://bugs.webkit.org/show_bug.cgi?id=123269
Reviewed by Csaba Osztrogonác.
* platform/graphics/win/ImageCairoWin.cpp: Added new parameter to BitmapImage::draw() calls.
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
2013-10-25 Sergio Villar Senin <svillar@igalia.com>
Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=118620
Reviewed by Antti Koivisto.
Turns out that order is extremelly uncommon so using a Vector is
much less expensive. This also special-cases the much common case
of only having order of value 0 by using Vectors with just one
preallocated member.
Also added the performance test that shows a ~1% win when using a
vector instead of the HashSet.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-25 Sergio Villar Senin <svillar@igalia.com>
Non-SVG build broken after r157950
https://bugs.webkit.org/show_bug.cgi?id=123328
Reviewed by Xan Lopez.
The isSVGInlineTest() check should be done only if SVG is enabled.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Jer Noble <jer.noble@apple.com>
[Mac] Add helper methods to convert CMTime <--> MediaTime
https://bugs.webkit.org/show_bug.cgi?id=123285
Reviewed by Eric Carlson.
Add utility methods to convert between CMTime (a rational time class) and MediaTime.
Once there, PlatformClockCM can now vend and accept MediaTimes for currentTime.
* platform/mac/MediaTimeMac.h:
* platform/mac/MediaTimeMac.cpp:
(WebCore::toMediaTime): Added conversion utility method.
(WebCore::toCMTime): Ditto.
* platform/mac/PlatformClockCM.h:
* platform/mac/PlatformClockCM.mm:
(PlatformClockCM::setCurrentMediaTime): Added.
(PlatformClockCM::currentMediaTime): Added.
* WebCore.xcodeproj/project.pbxproj: Add new files to project.
2013-10-24 Mark Rowe <mrowe@apple.com>
Remove references to OS X 10.7 from Xcode configuration settings.
Now that we're not building for OS X 10.7 they're no longer needed.
Reviewed by Anders Carlsson.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Antti Koivisto <antti@apple.com>
Cache line layout path
https://bugs.webkit.org/show_bug.cgi?id=123298
Reviewed by Sam Weinig.
Determining the path can be non-trivial. Avoid computing it repeatedly on relayouts.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::RenderBlock::invalidateLineLayoutPath):
(WebCore::RenderBlock::removeChild):
Invalidate the path when children change.
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
(WebCore::RenderBlockFlow::styleDidChange):
Invalidate the path when style changes.
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderBlockFlow::ensureLineBoxes):
* rendering/RenderText.cpp:
(WebCore::RenderText::setText):
Invalidate the path when text changes.
2013-10-24 Mark Rowe <mrowe@apple.com>
<rdar://problem/15312643> Prepare for the mysterious future.
Reviewed by David Kilzer.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/FeatureDefines.xcconfig:
* Configurations/Version.xcconfig:
2013-10-24 Andreas Kling <akling@apple.com>
DocumentLoader::cachedResourceLoader() should return a reference.
<https://webkit.org/b/123303>
..and while we're at it, make DocumentLoader::m_cachedResourceLoader
a Ref, and have CachedResourceLoader::create return a PassRef.
Reviewed by Sam Weinig.
2013-10-24 Anders Carlsson <andersca@apple.com>
Stop bringing in the std namespace
https://bugs.webkit.org/show_bug.cgi?id=123273
Reviewed by Andreas Kling.
* Modules/webaudio/AudioBufferSourceNode.cpp:
(WebCore::AudioBufferSourceNode::renderFromBuffer):
(WebCore::AudioBufferSourceNode::startGrain):
(WebCore::AudioBufferSourceNode::totalPitchRate):
* Modules/webaudio/AudioNodeInput.cpp:
(WebCore::AudioNodeInput::numberOfChannels):
* Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::valuesForTimeRangeImpl):
* Modules/webaudio/AudioScheduledSourceNode.cpp:
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
(WebCore::AudioScheduledSourceNode::stop):
* Modules/webaudio/AudioSummingJunction.cpp:
* Modules/webaudio/DelayDSPKernel.cpp:
(WebCore::DelayDSPKernel::process):
* Modules/webaudio/OfflineAudioDestinationNode.cpp:
(WebCore::OfflineAudioDestinationNode::offlineRender):
* Modules/webaudio/OscillatorNode.cpp:
* Modules/webaudio/PannerNode.cpp:
(WebCore::PannerNode::dopplerRate):
* Modules/webaudio/WaveShaperDSPKernel.cpp:
(WebCore::WaveShaperDSPKernel::processCurve):
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::hasAdequateQuotaForOrigin):
* Modules/websockets/WebSocket.cpp:
(WebCore::saturateAdd):
* Modules/websockets/WebSocketChannel.cpp:
* Modules/websockets/WebSocketFrame.cpp:
(WebCore::WebSocketFrame::parseFrame):
* accessibility/AccessibilityARIAGrid.cpp:
* accessibility/AccessibilityARIAGridCell.cpp:
* accessibility/AccessibilityARIAGridRow.cpp:
* accessibility/AccessibilityList.cpp:
* accessibility/AccessibilityListBox.cpp:
* accessibility/AccessibilityListBoxOption.cpp:
* accessibility/AccessibilityNodeObject.cpp:
* accessibility/AccessibilityObject.cpp:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableCell.cpp:
* accessibility/AccessibilityTableColumn.cpp:
* accessibility/AccessibilityTableHeaderContainer.cpp:
* accessibility/AccessibilityTableRow.cpp:
* accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]):
* bindings/js/JSCSSStyleDeclarationCustom.cpp:
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
* bindings/js/JSGeolocationCustom.cpp:
(WebCore::setTimeout):
(WebCore::setMaximumAge):
* bindings/js/ScriptController.cpp:
* bindings/js/SerializedScriptValue.cpp:
(WebCore::writeLittleEndian):
(WebCore::CloneSerializer::write):
(WebCore::CloneDeserializer::deserialize):
(WebCore::CloneDeserializer::readString):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::getFontFace):
* css/CSSGradientValue.cpp:
(WebCore::CSSRadialGradientValue::createGradient):
* css/CSSParser.cpp:
(WebCore::CSSParser::parseValue):
(WebCore::CSSParser::parseColorParameters):
(WebCore::CSSParser::parseHSLParameters):
* css/CSSReflectValue.cpp:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::ApplyPropertyFontSize::applyValue):
* css/PropertySetCSSStyleDeclaration.cpp:
* css/SVGCSSParser.cpp:
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::viewportPercentageValue):
* dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
* dom/ContainerNode.cpp:
* dom/Document.cpp:
(WebCore::Document::minimumLayoutDelay):
* dom/Node.cpp:
(WebCore::Node::compareDocumentPosition):
* dom/Range.cpp:
(WebCore::Range::toString):
(WebCore::Range::textRects):
(WebCore::Range::textQuads):
* dom/ScriptedAnimationController.cpp:
(WebCore::ScriptedAnimationController::scheduleAnimation):
* dom/StyledElement.cpp:
(WebCore::StyledElement::makePresentationAttributeCacheKey):
* dom/Text.cpp:
* dom/ViewportArguments.cpp:
(WebCore::clampLengthValue):
(WebCore::clampScaleValue):
(WebCore::ViewportArguments::resolve):
(WebCore::computeMinimumScaleFactorForContentContained):
(WebCore::restrictMinimumScaleFactorToViewportSize):
* editing/AlternativeTextController.cpp:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::deleteInsignificantText):
* editing/Editor.cpp:
(WebCore::Editor::setComposition):
(WebCore::Editor::compositionRange):
* editing/EditorCommand.cpp:
(WebCore::verticalScrollDistance):
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
(WebCore::TextIterator::handleTextBox):
(WebCore::CharacterIterator::string):
(WebCore::SearchBuffer::SearchBuffer):
(WebCore::SearchBuffer::append):
(WebCore::SearchBuffer::prependContext):
(WebCore::SearchBuffer::search):
* editing/VisibleUnits.cpp:
(WebCore::startOfParagraph):
* editing/htmlediting.cpp:
* editing/markup.cpp:
* fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::didReceiveResponse):
(WebCore::FileReaderLoader::didReceiveData):
* history/BackForwardList.cpp:
(WebCore::BackForwardList::backListWithLimit):
(WebCore::BackForwardList::forwardListWithLimit):
* history/PageCache.cpp:
(WebCore::PageCache::setCapacity):
* html/BaseDateAndTimeInputType.cpp:
* html/FTPDirectoryDocument.cpp:
* html/HTMLAreaElement.cpp:
(WebCore::HTMLAreaElement::getRegion):
* html/HTMLElement.cpp:
(WebCore::HTMLElement::parseAttribute):
(WebCore::parseColorStringWithCrazyLegacyRules):
* html/HTMLFormControlElement.cpp:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::getTextFieldValues):
* html/HTMLImageElement.cpp:
* html/HTMLInputElement.cpp:
* html/HTMLMapElement.cpp:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::textTrackAddCue):
(WebCore::HTMLMediaElement::textTrackRemoveCue):
(WebCore::HTMLMediaElement::rewind):
(WebCore::HTMLMediaElement::seek):
(WebCore::HTMLMediaElement::duration):
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::updateListBoxSelection):
* html/HTMLSourceElement.cpp:
* html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::colSpan):
(WebCore::HTMLTableCellElement::rowSpan):
* html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::parseAttribute):
* html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::setSelectionStart):
(WebCore::HTMLTextFormControlElement::setSelectionEnd):
(WebCore::HTMLTextFormControlElement::select):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
* html/HTMLTrackElement.cpp:
* html/ImageDocument.cpp:
(WebCore::ImageDocument::scale):
* html/InputType.cpp:
(WebCore::InputType::valueAsDouble):
* html/MediaController.cpp:
(MediaController::duration):
(MediaController::currentTime):
(MediaController::setCurrentTime):
(MediaController::updateReadyState):
* html/NumberInputType.cpp:
(WebCore::NumberInputType::setValueAsDouble):
(WebCore::NumberInputType::setValueAsDecimal):
(WebCore::NumberInputType::createStepRange):
* html/RangeInputType.cpp:
(WebCore::RangeInputType::handleKeydownEvent):
* html/SearchInputType.cpp:
(WebCore::SearchInputType::startSearchEventTimer):
* html/StepRange.cpp:
(WebCore::StepRange::clampValue):
(WebCore::StepRange::parseStep):
* html/TimeRanges.cpp:
* html/ValidationMessage.cpp:
(WebCore::ValidationMessage::setMessageDOMAndStartTimer):
(WebCore::adjustBubblePosition):
* html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::normalizeRect):
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateIndexArrayConservative):
(WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlRewindButtonElement::defaultEventHandler):
* html/shadow/MediaControlsApple.cpp:
* html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::setPositionFromPoint):
* inspector/ContentSearchUtils.cpp:
* inspector/DOMEditor.cpp:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::diff):
* inspector/InjectedScriptHost.cpp:
* loader/ProgressTracker.cpp:
(WebCore::ProgressTracker::incrementProgress):
* loader/cache/CachedImage.cpp:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::adjustWindowRect):
* page/EventHandler.cpp:
(WebCore::MaximumDurationTracker::~MaximumDurationTracker):
* page/FrameTree.cpp:
* page/FrameView.cpp:
(WebCore::FrameView::adjustedDeferredRepaintDelay):
(WebCore::FrameView::autoSizeIfEnabled):
* page/PrintContext.cpp:
(WebCore::PrintContext::computeAutomaticScaleFactor):
* page/SpatialNavigation.cpp:
(WebCore::entryAndExitPointsForDirection):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::blendFilterOperations):
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
* platform/graphics/FloatRect.cpp:
(WebCore::FloatRect::FloatRect):
(WebCore::FloatRect::intersect):
(WebCore::FloatRect::uniteEvenIfEmpty):
(WebCore::FloatRect::extend):
(WebCore::FloatRect::fitToPoints):
* platform/graphics/GlyphPageTreeNode.cpp:
(WebCore::GlyphPageTreeNode::initializePage):
(WebCore::GlyphPageTreeNode::getChild):
* platform/graphics/IntRect.cpp:
(WebCore::IntRect::intersect):
(WebCore::IntRect::unite):
(WebCore::IntRect::uniteIfNonZero):
* platform/graphics/LayoutRect.cpp:
(WebCore::LayoutRect::intersect):
(WebCore::LayoutRect::unite):
(WebCore::LayoutRect::uniteIfNonZero):
* platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::platformApplyGeneric):
(WebCore::FEMorphology::platformApplySoftware):
* platform/mac/MemoryPressureHandlerMac.mm:
(WebCore::MemoryPressureHandler::respondToMemoryPressure):
* platform/text/TextCodecICU.cpp:
* rendering/LineWidth.cpp:
(WebCore::LineWidth::fitBelowFloats):
(WebCore::LineWidth::computeAvailableWidthFromLeftAndRight):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::availableLogicalWidthForLine):
(WebCore::RenderBlock::availableLogicalWidthForContent):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::computePreferredLogicalWidths):
(WebCore::RenderFieldset::layoutSpecialExcludedChild):
(WebCore::RenderFieldset::paintBoxDecorations):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::updateLogicalWidth):
(WebCore::RenderFlowThread::addForcedRegionBreak):
* rendering/RenderFrameBase.cpp:
(WebCore::RenderFrameBase::layoutWithFlattening):
* rendering/RenderFrameSet.cpp:
(WebCore::RenderFrameSet::layOutAxis):
* rendering/RenderSlider.cpp:
(WebCore::RenderSlider::computePreferredLogicalWidths):
* rendering/RenderTableCell.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
* rendering/RootInlineBox.h:
(WebCore::RootInlineBox::selectionHeight):
(WebCore::RootInlineBox::selectionHeightAdjustedForPrecedingBlock):
* rendering/mathml/RenderMathMLRow.cpp:
(WebCore::RenderMathMLRow::layout):
* rendering/mathml/RenderMathMLScripts.cpp:
(WebCore::RenderMathMLScripts::layout):
* rendering/style/RenderStyle.h:
* rendering/style/StyleGeneratedImage.cpp:
(WebCore::StyleGeneratedImage::imageSize):
* style/StyleFontSizeFunctions.cpp:
(WebCore::Style::fontSizeForKeyword):
* svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::setCurrentTime):
2013-10-24 Andreas Kling <akling@apple.com>
Uncomplicate some of SVGTextRunRenderingContext.
<https://webkit.org/b/123294>
This class was weird about a few things, so I've taken these steps
to clear things up:
- FINAL and OVERRIDE all the things.
- Constructor now takes a RenderObject&.
- renderer() now returns a RenderObject&.
- drawSVGGlyphs() no longer takes a TextRun.
- glyphDataForCharacter() no longer takes a TextRun.
To expand on the last two, there was also some awkward hoop-jumping
where we'd go through the TextRun passed by argument to find its
rendering context, which was really just |this| all along.
Reviewed by Antti Koivisto.
2013-10-24 Roger Fong <roger_fong@apple.com>
Add texture level dependent size checks to textureImage2D calls.
https://bugs.webkit.org/show_bug.cgi?id=123290
<rdar://problem/15201382>
Reviewed by Dean Jackson
Test covered by WebGL Conformance suite 1.0.2 test, textures/texture-size-limit.html.
There are different size limits when calling textureImage2D on different texture levels.
We should be throwing an error if our texture size exceeds these limits.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::validateTexFuncParameters):
2013-10-24 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
[MediaStream API] allow a stream source to be shared
https://bugs.webkit.org/show_bug.cgi?id=121954
Reviewed by Eric Carlson.
Now, the MediaStreamSource don't know about the MediaStream that owns it,
since there can be more than one MediaStream that has it as source for some track.
MediaStreamTrack classes now have observers registered, in case there are more than
one MediaStream owning that track
No new tests, no change in functionality.
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::MediaStream): Adding the MediaStream as an observer for each track it owns.
(WebCore::MediaStream::addTrack): Now adding the MediaStream as an observer the new added track
and adding the source to the MediaStreamDescriptor.
(WebCore::MediaStream::removeTrack): Instead of removing the source right away, we first check if
there isn't any other track using that source, if not we remove the source.
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::addRemoteSource): MediaStreamSource has no information about the MediaStream
that uses it, so now we don't set the stream in the source anymore.
(WebCore::MediaStream::removeRemoteSource): There can be more than on track using the source. So we
get each track that is using the source and then remove it and fire the ended event.
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::addObserver):
(WebCore::MediaStreamTrack::removeObserver):
(WebCore::MediaStreamTrack::trackDidEnd): Does not get the client from the MediaStreamDescriptor, it now
notify each of its observers that the track ended.
* Modules/mediastream/MediaStreamTrack.h: Adding Observer class.
* platform/mediastream/MediaStreamDescriptor.cpp: Destructor now does nothing. Previously it was setting
each MediaStreamSource's descriptor to null.
(WebCore::MediaStreamDescriptor::removeSource): Not setting the stream in source anymore.
(WebCore::MediaStreamDescriptor::MediaStreamDescriptor): Ditto.
(WebCore::MediaStreamDescriptor::setEnded): Not setting the state of the source to Ended
* platform/mediastream/MediaStreamDescriptor.h:
(WebCore::MediaStreamDescriptor::~MediaStreamDescriptor):
* platform/mediastream/MediaStreamSource.cpp: Removing references to MediaStream object
(WebCore::MediaStreamSource::MediaStreamSource):
(WebCore::MediaStreamSource::reset):
* platform/mediastream/MediaStreamSource.h:
2013-10-24 Daniel Bates <dabates@apple.com>
Crash in WebCore::NavigationScheduler::startTimer()
https://bugs.webkit.org/show_bug.cgi?id=123288
<rdar://problem/14055644>
Reviewed by Alexey Proskuryakov.
Currently NavigationScheduler::startTimer() synchronously notifies the client
before the Web Inspector of a scheduled redirect. If a client cancels this
redirect then NavigationScheduler::m_redirect will become null and we'll
subsequently crash when informing the Web Inspector of this formerly scheduled
redirect. Instead, NavigationScheduler::startTimer() should notify the Web
Inspector before it notifies the client of a scheduled redirect.
As a side benefit of this change, the Web Inspector is notified of a scheduled
redirect before being notified of it being canceled when a client chooses to cancel
a scheduled redirect.
* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::startTimer):
2013-10-24 Antti Koivisto <antti@apple.com>
Try to fix build without CSS_SHAPES.
* rendering/SimpleLineLayout.cpp:
(WebCore::SimpleLineLayout::canUseFor):
2013-10-24 Antti Koivisto <antti@apple.com>
Simple line layout
https://bugs.webkit.org/show_bug.cgi?id=122458
Reviewed by Darin Adler.
Line box based inline layout is powerful but also rather slow and memory intensive. Simple line layout
is a compact alternative data structure and fast code path to cover common cases without requiring line
boxes.
This patch handles a case single left-aligned text renderer inside flow with no floats. Even this very basic
case is sufficiently common to handle up to 25% of all text lines on some popular new sites. The decision
which path to use is made per block flow (paragraph).
Simple line layout aims to produce pixel-exact rendering result when compared to the line box layout.
The goal is to handle everything that requires line level access in cases that allow use of simple lines.
This is not quite the case yet. For example selections and outline painting are not supported. In these
cases we seamlessly switch to the line boxes.
The simple line data structure currently uses 12 bytes per line. Lineboxes take ~160 bytes minimum per line.
Laying out the lines is also several times faster as is iterating over them.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Position.cpp:
(WebCore::Position::upstream):
(WebCore::Position::downstream):
(WebCore::Position::getInlineBoxAndOffset):
Creating positions within a simple line flow causes switch to line boxes.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleTextNode):
TextIterator traverses line boxes if available. In case simple line case we need to replicate the
same results (for compatibility but especially to avoid changing test results). This is done here
by just traversing the string without actually using the layout.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutInlineChildren):
Select the layout path to use.
(WebCore::RenderBlockFlow::deleteLines):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::firstLineBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::clearTruncation):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::hasLines):
(WebCore::RenderBlockFlow::layoutSimpleLines):
Do simple layout.
(WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderBlockFlow::ensureLineBoxes):
This function switches from simple lines to line boxes. The switching can be done outside normal layout.
This is used to cover some cases that are not yet supported by simple lines (like selections).
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::simpleLines):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::layoutLineBoxes):
Rename the line box layout function.
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RenderText.cpp:
(WebCore::RenderText::deleteLineBoxesBeforeSimpleLineLayout):
(WebCore::RenderText::absoluteRects):
(WebCore::RenderText::absoluteRectsForRange):
(WebCore::RenderText::absoluteQuadsClippedToEllipsis):
(WebCore::RenderText::absoluteQuads):
(WebCore::RenderText::absoluteQuadsForRange):
(WebCore::RenderText::positionForPoint):
(WebCore::RenderText::knownToHaveNoOverflowAndNoFallbackFonts):
(WebCore::RenderText::setSelectionState):
(WebCore::RenderText::setTextWithOffset):
(WebCore::RenderText::ensureLineBoxes):
(WebCore::RenderText::simpleLines):
(WebCore::RenderText::linesBoundingBox):
(WebCore::RenderText::linesVisualOverflowBoundingBox):
(WebCore::RenderText::selectionRectForRepaint):
(WebCore::RenderText::caretMinOffset):
(WebCore::RenderText::caretMaxOffset):
(WebCore::RenderText::countRenderedCharacterOffsetsUntil):
(WebCore::RenderText::containsRenderedCharacterOffset):
(WebCore::RenderText::containsCaretOffset):
(WebCore::RenderText::hasRenderedText):
* rendering/RenderText.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
(WebCore::writeSimpleLine):
(WebCore::write):
* rendering/SimpleLineLayout.cpp: Added.
(WebCore::SimpleLineLayout::canUseFor):
This check for the cases supported by the simple line layout path.
(WebCore::SimpleLineLayout::isWhitespace):
(WebCore::SimpleLineLayout::skipWhitespaces):
(WebCore::SimpleLineLayout::textWidth):
(WebCore::SimpleLineLayout::createLines):
The main layout functions that breaks text to lines. It only handles the cases allowed by
SimpleLineLayout::canUseFor. What it handles it aims to break exactly as line box layout does.
* rendering/SimpleLineLayout.h: Added.
* rendering/SimpleLineLayoutFunctions.cpp: Added.
(WebCore::SimpleLineLayout::paintFlow):
(WebCore::SimpleLineLayout::hitTestFlow):
(WebCore::SimpleLineLayout::collectFlowOverflow):
(WebCore::SimpleLineLayout::computeTextBoundingBox):
* rendering/SimpleLineLayoutFunctions.h: Added.
(WebCore::SimpleLineLayout::computeFlowHeight):
(WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
(WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
(WebCore::SimpleLineLayout::findTextCaretMinimumOffset):
(WebCore::SimpleLineLayout::findTextCaretMaximumOffset):
(WebCore::SimpleLineLayout::containsTextCaretOffset):
(WebCore::SimpleLineLayout::isTextRendered):
(WebCore::SimpleLineLayout::lineHeightFromFlow):
Support functions called from RenderBlockFlow and RenderText. They are equivalent to
similar line box functions.
(WebCore::SimpleLineLayout::baselineFromFlow):
* rendering/SimpleLineLayoutResolver.h: Added.
(WebCore::SimpleLineLayout::Resolver::Line::Line):
(WebCore::SimpleLineLayout::Resolver::Line::rect):
(WebCore::SimpleLineLayout::Resolver::Line::baseline):
(WebCore::SimpleLineLayout::Resolver::Line::text):
(WebCore::SimpleLineLayout::Resolver::Iterator::Iterator):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator++):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator--):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator==):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator!=):
(WebCore::SimpleLineLayout::Resolver::Iterator::operator*):
Lazy iterator for deriving line metrics. This keeps the line data structure small as
we don't need to keep easily derived values around.
(WebCore::SimpleLineLayout::Resolver::Resolver):
(WebCore::SimpleLineLayout::Resolver::size):
(WebCore::SimpleLineLayout::Resolver::begin):
(WebCore::SimpleLineLayout::Resolver::end):
(WebCore::SimpleLineLayout::Resolver::last):
(WebCore::SimpleLineLayout::Resolver::operator[]):
2013-10-24 Myles C. Maxfield <mmaxfield@apple.com>
Gaps between underlines in adjacent underlined text runs
https://bugs.webkit.org/show_bug.cgi?id=123236
Reviewed by Simon Fraser and Darin Adler.
There are two pieces to this change. The first piece is in
InlineTextBox::paint(). We were putting floating-point
extents into a LayoutSize, which simply uses ints (for now),
and then immediately converting this back to a FloatSize.
Instead, we should be using floats throughout all of
this code.
In addition, inside GraphicsContext::drawLineForText(), we are
rounding the underline to pixel boundaries so that it appears
very crisp on the screen. However, we should round once after
performing computations, rather than rounding twice and then
performing computations on the rounded numbers.
Test: fast/css3-text/css3-text-decoration/no-gap-between-two-rounded-textboxes.html
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText): Change rounding mode
to perform computations before rounding
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Don't convert to a LayoutSize
just to convert to a FloatSize
2013-10-24 Andreas Kling <akling@apple.com>
SVGRenderingContext should wrap a RenderElement.
<https://webkit.org/b/123283>
The SVG rendering context class is never used with text renderers
so we can have it wrap a RenderElement for tighter code.
Also renamed SVGRenderingContext::m_object to m_renderer.
Reviewed by Antti Koivisto.
2013-10-24 Santosh Mahto <santosh.ma@samsung.com>
[contenteditable] Content after non-editable element disappears when merging lines using backspace
https://bugs.webkit.org/show_bug.cgi?id=122748
Reviewed by Ryosuke Niwa.
In case of paragraph merging after deletion if second paragraph
contains non-editable element, then content after the non-editable
element(including non-editable element) will be removed while the
content before the element will be merged with the first paragraph.
This happens becasue endOfParagraphToMove calculation in merging function
stop at editing boundary so endOfParagraphToMove becomes position just
before non-editable content.
With this patch now endOfParagraphToMove is calculated by skipping
over the non-editable element.
Test: editing/deleting/merge-paragraph-contatining-noneditable.html
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::mergeParagraphs): use CanSkipOverEditingBoundary
condition while calculating endOfParagraphToMove.
2013-10-24 Antoine Quint <graouts@apple.com>
Web Inspector: Inspector doesn't show webkitTransitionEnd events in the timeline
https://bugs.webkit.org/show_bug.cgi?id=123263
Reviewed by Timothy Hatcher.
A legacy event type is only set on an event in EventTarget::fireEventListeners(Event*)
which is called after we used to call InspectorInstrumentation::willDispatchEvent(), the method
that would ultimately yield the creation of a TimelineRecord for the event in the Web Inspector
frontend, and as a result we would try to dispatch an event with an unprefixed event type to
the frontend, which wouldn't even happen because most likely it wouldn't have listeners for this
unprefixed type.
We now move the call to InspectorInstrumentation::willDispatchEvent() in
EventTarget::fireEventListeners(Event*, EventTargetData*, EventListenerVector&) such that the
correct event type and list of listeners is used to determine what event to dispatch to the frontend.
* dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
Remove calls to InspectorInstrumentation::willDispatchEvent() and InspectorInstrumentation::didDispatchEvent().
* dom/EventTarget.cpp:
(WebCore::EventTarget::fireEventListeners):
Add call to InspectorInstrumentation::willDispatchEvent() before we go through each listener and
call InspectorInstrumentation::willHandleEvent(). Additionally, we refactor some code since we're
getting references to the ScriptExecutionContext and Document upfront now.
2013-10-24 Andreas Kling <akling@apple.com>
SVG: RenderElement-ize intersectRepaintRectWithResources().
<https://webkit.org/b/123278>
SVGRenderSupport::intersectRepaintRectWithResources() is only ever
called with non-text renderers so make it take RenderElement&.
Had to tweak RenderSVGResource::resourceBoundingBox() to take the
renderer by reference.
Reviewed by Antti Koivisto.
2013-10-24 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Breakpoints in sourceURL named scripts do not work
https://bugs.webkit.org/show_bug.cgi?id=123231
Reviewed by Timothy Hatcher.
Remember a Script's sourceURL and sourceMappingURL. When setting a
breakpoint by URL, check it against the sourceURL or original URL.
If a script had a sourceURL that would have been the only URL sent
to the frontend, so that receives priority.
Test: inspector-protocol/debugger/setBreakpointByUrl-sourceURL.html
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::didParseSource):
* inspector/InspectorDebuggerAgent.h:
* inspector/ScriptDebugListener.h:
2013-10-23 Alexey Proskuryakov <ap@apple.com>
Add CryptoKey base class and bindings
https://bugs.webkit.org/show_bug.cgi?id=123216
Reviewed by Sam Weinig.
* crypto/CryptoKey.idl: Added.
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.list.am:
Process the IDL.
* WebCore.xcodeproj/project.pbxproj: Added files.
* bindings/js/JSCryptoKeyCustom.cpp: Added.
(WebCore::JSCryptoKey::algorithm): Use a visitor to build algorithm dictionary
for the key.
* crypto/CryptoAlgorithmDescriptionBuilder.cpp: Added.
* crypto/CryptoAlgorithmDescriptionBuilder.h: Added.
An interface for a visitor we'll use to expose CrytoKey.algorithm in bindings,
and possibly also for storage serialization. Not complete yet, we'll need support
for a few more simple types, and less trivially, for nested algorithms.
* bindings/js/JSCryptoAlgorithmBuilder.cpp: Added.
* bindings/js/JSCryptoAlgorithmBuilder.h: Added.
An implementation that builds an algorithm description dictionary for JS bindings.
* crypto/CryptoKey.cpp: Added.
(WebCore::CryptoKey::~CryptoKey):
(WebCore::CryptoKey::buildAlgorithmDescription):
* crypto/CryptoKey.h: Added.
Added an almost empty implementation. Some of the functions that are currently
marked as pure virtual will likely be implemented in this base class.
2013-10-24 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157916.
http://trac.webkit.org/changeset/157916
https://bugs.webkit.org/show_bug.cgi?id=123274
Broke Layout/flexbox-lots-of-data.html on perfbot (Requested
by ap on #webkit).
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderHashTraits::emptyValue):
(WebCore::RenderFlexibleBox::OrderHashTraits::constructDeletedValue):
(WebCore::RenderFlexibleBox::OrderHashTraits::isDeletedValue):
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-24 Zan Dobersek <zdobersek@igalia.com>
Comment in ScopedEventQueue::dispatchEvent is unnecessarily verbose
https://bugs.webkit.org/show_bug.cgi?id=123252
Reviewed by Darin Adler.
Shorten the comment about the crash avoidance in ScopedEventQueue::dispatchEvent due to
the calling convention in C++ is left unspecified. The problem was already fixed in r157219
and later adjusted in r157401, but the comment could have been shorter and simpler in both cases.
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::dispatchEvent):
2013-10-24 Alex Christensen <achristensen@webkit.org>
Removed unused ThreadSafeCoordinatedSurface and CertificateInfoCurl files.
https://bugs.webkit.org/show_bug.cgi?id=123246
Reviewed by Noam Rosenthal.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Removed references to ThreadSafeCoordinatedSurface and CertificateInfoCurl.
* platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.cpp: Removed.
* platform/graphics/texmap/coordinated/ThreadSafeCoordinatedSurface.h: Removed.
* platform/network/curl/CertificateInfoCurl.cpp: Removed.
2013-10-24 Peter Molnar <pmolnar.u-szeged@partner.samsung.com>
Removed Qt workaround.
https://bugs.webkit.org/show_bug.cgi?id=123258
Reviewed by Csaba Osztrogonác.
No change of functionality, no new tests needed.
!$defines case can be removed, because Qt and Android aren't in WebKit trunk,
all ports (Mac,EFL,GTK,Windows) call this script with --defines option now
* css/make-css-file-arrays.pl:
2013-10-24 Antti Koivisto <antti@apple.com>
Remove a stray space.
Not reviewed.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addImageMapChildren):
2013-10-24 Antti Koivisto <antti@apple.com>
Element iterator functions should take reference
https://bugs.webkit.org/show_bug.cgi?id=123267
Reviewed by Andreas Kling.
The argument has to be non-null.
2013-10-24 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Build break with latest EFL 1.8 libraries.
https://bugs.webkit.org/show_bug.cgi?id=123245
Reviewed by Gyuyoung Kim.
After fixed build break on EFL 1.8 at r138326, EFL libraries are changed
Eo typedef and splitted header files which contain version macro.
* platform/Widget.h: Changed Eo typedef.
* platform/efl/EflScreenUtilities.h: Ditto.
* platform/graphics/Image.h: Ditto.
2013-10-24 Andreas Kling <akling@apple.com>
RenderSVGResource: Pass RenderElement to fill/strokePaintingResource.
<https://webkit.org/b/123242>
We never pass text renderers to these functions, so make them take
RenderElement instead.
Reviewed by Anders Carlsson.
2013-10-24 Carlos Garcia Campos <cgarcia@igalia.com>
[GObject bindings] Make EventTarget interface introspectable
https://bugs.webkit.org/show_bug.cgi?id=77835
Reviewed by Gustavo Noronha Silva.
Add webkit_dom_event_target_add_event_listener_with_closure and
webkit_dom_event_target_remove_event_listener_with_closure to be
used by GObject instrospection bindings. Instead of receving a
GCallback, which makes the function not introspectable, they
receive a GClosure.
* bindings/gobject/GObjectEventListener.cpp:
(WebCore::GObjectEventListener::GObjectEventListener):
(WebCore::GObjectEventListener::~GObjectEventListener):
(WebCore::GObjectEventListener::gobjectDestroyed):
(WebCore::GObjectEventListener::handleEvent):
(WebCore::GObjectEventListener::operator==):
* bindings/gobject/GObjectEventListener.h:
(WebCore::GObjectEventListener::addEventListener):
(WebCore::GObjectEventListener::removeEventListener):
* bindings/gobject/WebKitDOMEventTarget.cpp:
(webkit_dom_event_target_dispatch_event):
(webkit_dom_event_target_add_event_listener):
(webkit_dom_event_target_remove_event_listener):
(webkit_dom_event_target_add_event_listener_with_closure):
(webkit_dom_event_target_remove_event_listener_with_closure):
* bindings/gobject/WebKitDOMEventTarget.h:
* bindings/scripts/CodeGeneratorGObject.pm:
(GenerateEventTargetIface):
* bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
(webkit_dom_test_event_target_dispatch_event):
(webkit_dom_test_event_target_add_event_listener):
(webkit_dom_test_event_target_remove_event_listener):
* bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
(webkit_dom_test_node_dispatch_event):
(webkit_dom_test_node_add_event_listener):
(webkit_dom_test_node_remove_event_listener):
2013-10-14 Sergio Villar Senin <svillar@igalia.com>
Use a Vector instead of HashSet to computed the orderValues in RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=118620
Reviewed by Antti Koivisto.
Turns out that order is extremelly uncommon so using a Vector is
much less expensive. This also special-cases the much common case
of only having order of value 0 by using Vectors with just one
preallocated member.
Also added the performance test that shows a ~1% win when using a
vector instead of the HashSet.
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::OrderIterator::setOrderValues):
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
* rendering/RenderFlexibleBox.h:
2013-10-23 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix since r157823.
FilterOperation::getOperationType() is renamed FilterOperation::type().
* platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::TextureMapperGL::drawUsingCustomFilter):
(WebCore::TextureMapperGL::drawFiltered):
(WebCore::BitmapTextureGL::applyFilters):
* platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
(WebCore::CoordinatedGraphicsScene::injectCachedCustomFilterPrograms):
2013-10-23 Ryuan Choi <ryuan.choi@samsung.com>
Unreviewed build fix on CMake based ports when CMAKE_BUILD_TYPE is not given.
When CMAKE_BUILD_TYPE is empty, FIND command will be failed.
* CMakeLists.txt:
2013-10-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Integrate css3-images image-orientation with existing EXIF support
https://bugs.webkit.org/show_bug.cgi?id=91566
Reviewed by Beth Dakin.
Original patch by David Barr(davidbarr@chromium.org).
This patch passes an information of image orientation into existing EXIF support functions
(draw() functions of image classes mainly). We need to let the functions to know the information
in order to meet the image-orientation requirement.
Spec: http://dev.w3.org/csswg/css-images-3/#the-image-orientation
The css3-images module specification is at last call.
Test: fast/css/image-orientation/image-orientation.html
Image orientation test is to check if incorrect rotation value can be fixed with correct orientation.
* loader/cache/CachedImage.cpp:
(WebCore::CachedImage::imageSizeForRenderer):
* page/DragController.cpp:
(WebCore::DragController::doImageDrag):
* page/Frame.cpp:
(WebCore::Frame::nodeImage):
* platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::updateSize):
(WebCore::BitmapImage::sizeRespectingOrientation):
(WebCore::BitmapImage::drawPattern):
* platform/graphics/BitmapImage.h:
* platform/graphics/CrossfadeGeneratedImage.cpp:
(WebCore::CrossfadeGeneratedImage::draw):
* platform/graphics/CrossfadeGeneratedImage.h:
* platform/graphics/GeneratedImage.h:
* platform/graphics/GradientImage.cpp:
(WebCore::GradientImage::draw):
* platform/graphics/GradientImage.h:
* platform/graphics/Image.cpp:
(WebCore::Image::draw):
(WebCore::Image::drawTiled):
* platform/graphics/Image.h:
* platform/graphics/blackberry/ImageBlackBerry.cpp:
* platform/graphics/cairo/BitmapImageCairo.cpp:
(WebCore::BitmapImage::draw):
* platform/graphics/cg/BitmapImageCG.cpp:
* platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::draw):
* platform/graphics/cg/PDFDocumentImage.h:
* platform/graphics/win/ImageCGWin.cpp:
(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):
* platform/graphics/wince/ImageBufferWinCE.cpp:
(WebCore::BufferedImage::draw):
* platform/graphics/wince/ImageWinCE.cpp:
(WebCore::BitmapImage::draw):
* platform/mac/DragImageMac.mm:
(WebCore::createDragImageFromImage):
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintSnapshotImage):
* rendering/RenderImage.cpp:
(WebCore::RenderImage::styleDidChange):
* rendering/RenderSnapshottedPlugIn.cpp:
(WebCore::RenderSnapshottedPlugIn::paintSnapshot):
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayout):
* svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::draw):
* svg/graphics/SVGImage.h:
* svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::draw):
* svg/graphics/SVGImageForContainer.h:
2013-10-23 Andreas Kling <akling@apple.com>
Tighten typing in SVGInlineTextBox a bit.
<https://webkit.org/b/123238>
Use RenderBoxModelObject& instead of generic RenderObject* in some
places where it happens as a natural consequence of keeping the
original return type from InlineBox::parent()->renderer().
Reviewed by Anders Carlsson.
2013-10-23 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce RENDER_OBJECT_TYPE_CASTS to replace manual toFoo() in child render object
https://bugs.webkit.org/show_bug.cgi?id=123150
Reviewed by Andreas Kling.
As a step to let toFoo use TYPE_CASTS_BASE, toRenderFoo() can use it for child render object.
So, this patch introduces RENDER_OBJECT_TYPE_CASTS based on the TYPE_CASTS_BASE. This will
generate plenty more helper functions for render object type cast.
Some unnecessary type casts are fixed by this change.
No new tests, no behavior changes.
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBox.h:
* rendering/RenderBoxModelObject.h:
* rendering/RenderButton.h:
* rendering/RenderCounter.h:
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement):
* rendering/RenderEmbeddedObject.h:
* rendering/RenderFieldset.h:
* rendering/RenderFileUploadControl.h:
* rendering/RenderFlexibleBox.h:
* rendering/RenderFlowThread.h:
* rendering/RenderFrame.h:
* rendering/RenderFrameSet.h:
* rendering/RenderFullScreen.h:
* rendering/RenderHTMLCanvas.h:
* rendering/RenderIFrame.h:
* rendering/RenderImage.h:
* rendering/RenderInline.h:
* rendering/RenderLayerModelObject.h:
* rendering/RenderLineBreak.h:
* rendering/RenderListBox.h:
* rendering/RenderListItem.h:
* rendering/RenderMedia.h:
* rendering/RenderMenuList.h:
* rendering/RenderMeter.h:
* rendering/RenderMultiColumnBlock.h:
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderNamedFlowThread.h:
* rendering/RenderObject.h:
* rendering/RenderProgress.h:
* rendering/RenderQuote.h:
* rendering/RenderRegion.h:
* rendering/RenderReplaced.h:
* rendering/RenderRubyRun.h:
* rendering/RenderScrollbarPart.h:
* rendering/RenderSearchField.h:
* rendering/RenderSlider.h:
* rendering/RenderSnapshottedPlugIn.h:
* rendering/RenderTable.h:
* rendering/RenderTableCaption.h:
* rendering/RenderTableCell.h:
* rendering/RenderTableCol.h:
* rendering/RenderTableRow.h:
* rendering/RenderTableSection.h:
* rendering/RenderText.h:
* rendering/RenderTextControl.h:
* rendering/RenderTextControlMultiLine.h:
* rendering/RenderTextControlSingleLine.h:
* rendering/RenderWidget.h:
* rendering/mathml/RenderMathMLBlock.h:
* rendering/svg/RenderSVGContainer.h:
* rendering/svg/RenderSVGGradientStop.h:
* rendering/svg/RenderSVGImage.h:
* rendering/svg/RenderSVGInlineText.h:
* rendering/svg/RenderSVGPath.h:
* rendering/svg/RenderSVGResourceFilter.h:
* rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
(WebCore::RenderSVGResourceFilterPrimitive::styleDidChange):
* rendering/svg/RenderSVGRoot.h:
* rendering/svg/RenderSVGShape.h:
* rendering/svg/RenderSVGText.h:
* rendering/svg/RenderSVGTextPath.h:
* rendering/svg/RenderSVGViewportContainer.h:
* rendering/svg/SVGInlineFlowBox.cpp:
(WebCore::SVGInlineFlowBox::paint):
2013-10-23 Myles C. Maxfield <mmaxfield@apple.com>
Include misspelling dot gap width when centering misspelling dots
https://bugs.webkit.org/show_bug.cgi?id=122365
Reviewed by Simon Fraser.
When calculating where to place the misspelling dots, we find the
maximum number of full dots that can fit under the misspelled word,
and then center a run of that many dots. However, when we're
centering the run, we are only considering the size of the extra
fractional dot that we cut off. However, the dot image has a "gap"
of transparent pixels (which visually provide tracking for the dots)
which visually appears to be empty space. We should take this gap
space into consideration when centering the run of dots. We also
should make sure that our dots start on integral pixel boundaries
because otherwise we can't set the phase of the dot run properly.
Test: editing/spelling/centering-misspelling-dots.html
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::GraphicsContext::drawLineForDocumentMarker):
2013-10-23 Andreas Kling <akling@apple.com>
SVGFilterBuilder should not be ref-counted.
<https://webkit.org/b/123222>
These objects are singly-owned and do not need ref counting.
Reviewed by Anders Carlsson.
2013-10-23 Brady Eidson <beidson@apple.com>
Remove unused IDBBackingStoreLevelDB default constructor.
Rubberstamped by Anders Carlsson.
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
2013-10-23 Alex Christensen <achristensen@webkit.org>
Added Texture Mapper and Coordinated Graphics to Windows build for WinCairo.
https://bugs.webkit.org/show_bug.cgi?id=123215
Reviewed by Brent Fulgham.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Added source files for Texture Mapper to Windows build.
* WebCore.vcxproj/WebCoreCairo.props:
Added Texture Mapper include directories for WinCairo.
2013-10-23 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding mock class to test RTCDataChannelHandler
https://bugs.webkit.org/show_bug.cgi?id=123205
Reviewed by Eric Carlson.
Now RTCPeerConnectionHandler-datachannel LayouTest can run properly.
Also updated the expected file, removing the reliable property check (which was removed in the spec)
Existing tests updated.
* CMakeLists.txt:
* platform/mediastream/RTCDataChannelHandlerClient.h:
* platform/mock/RTCDataChannelHandlerMock.cpp: Added.
* platform/mock/RTCDataChannelHandlerMock.h: Added.
* platform/mock/RTCNotifiersMock.cpp:
(WebCore::RemoteDataChannelNotifier::RemoteDataChannelNotifier):
(WebCore::RemoteDataChannelNotifier::fire):
(WebCore::DataChannelStateNotifier::DataChannelStateNotifier):
(WebCore::DataChannelStateNotifier::fire):
* platform/mock/RTCNotifiersMock.h:
* platform/mock/RTCPeerConnectionHandlerMock.cpp:
(WebCore::RTCPeerConnectionHandlerMock::createDataChannel):
2013-10-23 Andreas Kling <akling@apple.com>
Clock should not be ref-counted.
<https://webkit.org/b/123217>
The Clock object is only ever owned by the MediaController,
so remove the ref counting and store it in a std::unique_ptr.
Also slapped the Clock subclasses with FINAL and OVERRIDE.
Reviewed by Anders Carlsson.
2013-10-23 Mark Lam <mark.lam@apple.com>
Fix assertion in DatabaseManager::detailsForNameAndOrigin() to be iOS friendly.
https://bugs.webkit.org/show_bug.cgi?id=123218.
Reviewed by Joseph Pecoraro.
No new tests.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::detailsForNameAndOrigin):
2013-10-23 Alex Christensen <achristensen@webkit.org>
Separated USE(CA) from USE(ACCELERATED_COMPOSITING) to prepare WinCairo for accelerated compositing.
https://bugs.webkit.org/show_bug.cgi?id=123214
Reviewed by Brent Fulgham.
* platform/graphics/PlatformLayer.h:
Added TextureMapperPlatformLayer PlatformLayer declaration for WinCairo.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::createWindow):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h:
Added USE(CA) where necessary to compile WinCairo with accelerated compositing.
2013-10-23 Myles C. Maxfield <mmaxfield@apple.com>
Antialias underlines if they're not axis-aligned
https://bugs.webkit.org/show_bug.cgi?id=123004
Reviewed by Simon Fraser.
In order to make underlines crisp, GraphicsContext:drawLineForText
modifies the bounds of the underline rect in order to make the rect
device-pixel-aligned, and then turns off antialiasing when drawing
the line. This makes sense when the underline is axis-aligned, but
doesn't when the rect is rotated or skewed. Therefore, we should
only opt-in to this behavior if the underline we're about to draw
is axis-aligned. This requires figuring out whether or not the
current transformation is axis-aligned every time
GraphicsContext::drawLineForText is called, which will incur a small
performance hit. However, this is justified by underlines looking
much better (antialiased) when the context is rotated or skewed.
Tests: svg/custom/foreign-object-skew.html
svg/zoom/page/zoom-foreignObject.html
svg/zoom/text/zoom-foreignObject.html:
* platform/graphics/cg/GraphicsContextCG.cpp:
(WebCore::GraphicsContext::drawLineForText):
2013-10-23 Mark Lam <mark.lam@apple.com>
Re-instate ProposedDatabases needed by detailsForNameAndOrigin().
https://bugs.webkit.org/show_bug.cgi?id=123131.
Reviewed by Geoffrey Garen.
Test: storage/websql/open-database-expand-quota.html
If a webpage tries to create a database that exceeds the database size
quota for that security origin, the WebKit1 quota request mechanism
uses detailsForNameAndOrigin() to get the requested size of the database
(that the webpage is attempting to open) in order to determine whether
to increase the quota or not.
Previously, detailsForNameAndOrigin() relies on the ProposedDatabase
mechanism to provide this size information. This change re-instates the
ProposedDatabase mechanism so that WebKit1 client code that relies on
this behavior will continue to work.
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::ProposedDatabase::ProposedDatabase):
(WebCore::DatabaseManager::ProposedDatabase::~ProposedDatabase):
(WebCore::DatabaseManager::DatabaseManager):
(WebCore::DatabaseManager::openDatabaseBackend):
(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):
* Modules/webdatabase/DatabaseManager.h:
(WebCore::DatabaseManager::ProposedDatabase::origin):
(WebCore::DatabaseManager::ProposedDatabase::details):
2013-10-23 Tim Horton <timothy_horton@apple.com>
[cg] Fix the capitalization of kCGImageSourceSkipMetaData (-> Metadata)
https://bugs.webkit.org/show_bug.cgi?id=122918
Reviewed by Anders Carlsson.
* platform/graphics/cg/ImageSourceCG.cpp:
(WebCore::imageSourceOptions):
The capitalization of kCGImageSourceSkipMetaData changed to
kCGImageSourceSkipMetadata in Mountain Lion.
2013-10-23 Brady Eidson <beidson@apple.com>
Make IDBDatabaseBackendLevelDB.cpp be cross platform
https://bugs.webkit.org/show_bug.cgi?id=123027
Attentively reviewed by Dean Jackson.
Move it out of the indexeddb/leveldb directory, and rename it to IDBDatabaseBackendImpl.
Project files:
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/IDBDatabaseBackendImpl.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp.
* Modules/indexeddb/IDBDatabaseBackendImpl.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h.
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
(WebCore::IDBDatabaseBackendInterface::isIDBDatabaseBackendImpl): Add to support a required cast in LevelDB code.
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::deleteDatabase):
(WebCore::IDBFactoryBackendLevelDB::open):
(WebCore::IDBFactoryBackendLevelDB::maybeCreateTransactionBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
* Modules/indexeddb/leveldb/IDBLevelDBCoding.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::IDBDatabaseBackendImpl::VersionChangeOperation::perform):
(WebCore::IDBDatabaseBackendImpl::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
2013-10-23 Daniel Bates <dabates@apple.com>
[iOS] Upstream more ARMv7s bits
https://bugs.webkit.org/show_bug.cgi?id=123052
Reviewed by Joseph Pecoraro.
Define exported symbol file for armv7s and arm64.
* Configurations/WebCore.xcconfig:
2013-10-23 Krzysztof Wolanski <k.wolanski@samsung.com>
[GTK] accessibility/self-referencing-aria-labelledby.html is failing
https://bugs.webkit.org/show_bug.cgi?id=121594
Reviewed by Mario Sanchez Prada.
According to http://www.w3.org/TR/REC-html40/struct/objects.html#edef-IMG
description of image element should be determined by alt attribute, then
if it is empty by title attributte.
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetDescription):
2013-10-15 Andreas Kling <akling@apple.com>
Tighten animation-driven restyle to operate on Element only.
<https://webkit.org/b/122820>
Text nodes are never directly animated, so we can tighten this code
to work on Element only. This happens naturally since the code was
already working with RenderElement everywhere.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Even more PassRef<RenderStyle>!
<https://webkit.org/b/123147>
Convert more of the WebCore code to use PassRef for RenderStyle
in places where they are known to be non-null.
Re-landing this without region styling since that caused some
assertions last time.
Reviewed by Antti Koivisto.
2013-10-22 Zoltan Horvath <zoltan@webkit.org>
Refactor LineBreaker::nextSegmentBreak, add BreakingContext that holds all its state
https://bugs.webkit.org/show_bug.cgi?id=123038
Reviewed by David Hyatt.
I followed Levi's logic on Blink's nextSegmentBreak refactoring (https://chromiumcodereview.appspot.com/25054004).
I mostly did the same changes, but the code is too diverged at this point to just apply that patch on our trunk. The patch
introduces BreakingContext as a separate class. I added new methods for each condition, which were originally located in
nextSegmentBreak. I also removed the goto-s from the code. All the new methods are inline in order to avoid introducing any
performance regression. The change makes the code so much cleaner and understandable.
This change would be the first step of the nextSegmentBreak refactoring, I wanted to keep things in place in RenderBlockLineLayout.cpp
for now, but I'm planning to separate BreakingContext into a new file and do additional changes to make things nicer. I'm tracking
the entire progress under http://webkit.org/b/121261 meta bug.
No new tests, covered by existing tests.
- I updated 1 expected result, because there was a 1 pixel difference on the result, which I believe comes from a rounding situation.
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::BreakingContext::BreakingContext):
(WebCore::BreakingContext::currentObject):
(WebCore::BreakingContext::lineBreak):
(WebCore::BreakingContext::lineBreakRef):
(WebCore::BreakingContext::lineWidth):
(WebCore::BreakingContext::atEnd):
(WebCore::BreakingContext::clearLineBreakIfFitsOnLine):
(WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::increment):
(WebCore::BreakingContext::handleBR):
(WebCore::BreakingContext::handleOutOfFlowPositioned):
(WebCore::BreakingContext::handleFloat):
(WebCore::BreakingContext::handleEmptyInline):
(WebCore::BreakingContext::handleReplaced):
(WebCore::nextCharacter):
(WebCore::BreakingContext::handleText):
(WebCore::textBeginsWithBreakablePosition):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
(WebCore::BreakingContext::handleEndOfLine):
(WebCore::LineBreaker::nextSegmentBreak):
2013-10-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157826.
http://trac.webkit.org/changeset/157826
https://bugs.webkit.org/show_bug.cgi?id=123197
Caused some regions tests to assert (Requested by smfr on
#webkit).
* dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
* dom/Document.h:
* dom/Element.cpp:
(WebCore::Element::styleForRenderer):
* dom/Element.h:
* dom/ElementRareData.h:
(WebCore::ElementRareData::setComputedStyle):
(WebCore::ElementRareData::resetComputedStyle):
* html/HTMLTitleElement.cpp:
(WebCore::HTMLTitleElement::textWithDirection):
* page/animation/AnimationController.cpp:
(WebCore::AnimationController::updateAnimations):
* page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate):
* page/animation/CompositeAnimation.h:
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor):
* rendering/RenderElement.h:
(WebCore::RenderElement::setStyleInternal):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::setRegionObjectsRegionStyle):
(WebCore::RenderRegion::restoreRegionObjectsOriginalStyle):
(WebCore::RenderRegion::computeStyleInRegion):
(WebCore::RenderRegion::computeChildrenStyleInRegion):
(WebCore::RenderRegion::setObjectStyleInRegion):
* rendering/RenderRegion.h:
* style/StyleResolveTree.cpp:
(WebCore::Style::resolveLocal):
2013-10-22 Ryuan Choi <ryuan.choi@samsung.com>
[EFL] Remove HAVE_GLX macro
https://bugs.webkit.org/show_bug.cgi?id=123191
Reviewed by Gyuyoung Kim.
Since r138313, HAVE(GLX) was replaced to USE(GLX) except in GraphicsSurfaceToken.h.
* platform/graphics/surfaces/GraphicsSurfaceToken.h:
Replace HAVE(GLX) to USE(GLX)
2013-10-22 Mark Lam <mark.lam@apple.com>
Gardening: fix broken build on Windows.
https://bugs.webkit.org/show_bug.cgi?id=123174.
Not reviewed.
No new tests.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
2013-10-22 Brady Eidson <beidson@apple.com>
Get rid of IDBObjectStoreBackendLevelDB
https://bugs.webkit.org/show_bug.cgi?id=123174
Reviewed by Tim Horton.
This file was kind of a dumping ground.
Its contents can be merged into IDBBackingStoreInterface and a new IDBIndexWriter class.
Also took the opportunity to do a little bit of RefPtr<> and pointer-vs-reference cleanup.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp: Removed.
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h: Removed.
* Modules/indexeddb/IDBIndexWriter.cpp: Added.
(WebCore::IDBIndexWriter::IDBIndexWriter):
(WebCore::IDBIndexWriter::writeIndexKeys):
(WebCore::IDBIndexWriter::verifyIndexKeys):
(WebCore::IDBIndexWriter::addingKeyAllowed):
* Modules/indexeddb/IDBIndexWriter.h: Added.
(WebCore::IDBIndexWriter::create):
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBMetadata.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::makeIndexWriters):
(WebCore::IDBBackingStoreLevelDB::generateKey):
(WebCore::IDBBackingStoreLevelDB::updateKeyGenerator):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::PutOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
2013-10-22 Dean Jackson <dino@apple.com>
[WebGL] Implement a software rendering option on Mac
https://bugs.webkit.org/show_bug.cgi?id=123177
Reviewed by Tim Horton.
Implement a way to force software OpenGL rendering
for WebGL, via a Setting/Preference.
No new tests. We intentionally hide the capabilities of
the renderer from the content, so you can't test for
this setting. However, manual inspection is pretty
obvious. Just go to a page with a complex shader
such as https://www.shadertoy.com/view/lss3WS.
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::create): If we're forcing software
rendering, mark the context attributes as such.
* page/Settings.in: New setting key.
* platform/graphics/GraphicsContext3D.h: New flag in Attributes.
(WebCore::GraphicsContext3D::Attributes::Attributes):
* platform/graphics/mac/GraphicsContext3DMac.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D): Slight update to the
algorithm that sets a pixel format. If we're forcing software rendering,
obviously we never want to create an accelerated pixel format.
* platform/graphics/filters/CustomFilterGlobalContext.cpp:
(WebCore::CustomFilterGlobalContext::prepareContextIfNeeded): Set the attribute
here before trying to create the context.
* platform/graphics/filters/CustomFilterGlobalContext.h: Add a forceSoftwareRendering
flag to prepareContextIfNeeded.
* rendering/FilterEffectRenderer.cpp:
(WebCore::createCustomFilterEffect): Check the Setting before creating a custom
filter context.
2013-10-22 Anders Carlsson <andersca@apple.com>
Revert r157445 since it broke certificates on Mac.
<rdar://problem/15246926&15254017&15269117>
* GNUmakefile.list.am:
* PlatformEfl.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/ResourceErrorBase.h:
* platform/network/ResourceResponseBase.h:
* platform/network/cf/CertificateInfoCFNet.cpp: Removed.
* platform/network/cf/ResourceResponse.h:
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::setCertificateChain):
(WebCore::ResourceResponse::certificateChain):
* platform/network/soup/ResourceError.h:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::tlsErrors):
(WebCore::ResourceError::setTLSErrors):
(WebCore::ResourceError::certificate):
(WebCore::ResourceError::setCertificate):
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::tlsError):
(WebCore::ResourceError::platformCopy):
(WebCore::ResourceError::platformCompare):
* platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate):
(WebCore::ResourceResponse::setSoupMessageCertificate):
(WebCore::ResourceResponse::soupMessageTLSErrors):
(WebCore::ResourceResponse::setSoupMessageTLSErrors):
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::toSoupMessage):
(WebCore::ResourceResponse::updateFromSoupMessage):
2013-10-22 Jer Noble <jer.noble@apple.com>
[Media] Refactor supportsType() factory method to take a parameters object.
https://bugs.webkit.org/show_bug.cgi?id=122489
Reviewed by Eric Carlson.
In order to support adding new conditional properties with which to decide
what MediaPlayerPrivate subclass to create, replace the two versions of the
supportsType() factory method with a single one taking a parameters object.
At the same time, add a 'isMediaSource' parameter to that object, allowing
MediaPlayerPrivate subclasses which support the same type and codecs but
which do not both support MediaSource to be distinguised.
* platform/graphics/MediaPlayer.cpp:
(WebCore::bestMediaEngineForSupportParameters): Renamed from
bestMediaEngineForTypeAndCodecs.
(WebCore::MediaPlayer::nextBestMediaEngine): Added convenience function.
(WebCore::MediaPlayer::loadWithNextMediaEngine): Call nextBestMediaEngine()
(WebCore::MediaPlayer::supportsType): Pass parameter object.
(WebCore::MediaPlayer::networkStateChanged): Call nextBestMediaEngine().
* platform/graphics/MediaPlayer.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType): Handle parameter object.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine): Remove extraneous
extendedSupportsType method.
(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType): Handle parameter object.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
(WebCore::MediaPlayerPrivate::supportsType): Ditto.
* platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.h:
* platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
(WebCore::MediaPlayerPrivateQTKit::registerMediaEngine): Remove extraneous
extendedSupportsType method.
(WebCore::MediaPlayerPrivateQTKit::supportsType): Handle parameter object.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType): Ditto.
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:
* platform/graphics/wince/MediaPlayerPrivateWinCE.h:
2013-10-22 Andreas Kling <akling@apple.com>
Merge SVGRenderBlock::styleWillChange() into styleDidChange().
<https://webkit.org/b/123181>
I meant to do this one in r157787, but better late than never.
Reviewed by Geoffrey Garen.
2013-10-22 Sam Weinig <sam@webkit.org>
CTTE: Modernize RenderBlock a bit
https://bugs.webkit.org/show_bug.cgi?id=123162
Reviewed by Andreas Kling.
Start threading references through RenderBlock. While we
are here, do some selective modernization as well.
2013-10-22 Andreas Kling <akling@apple.com>
Even more PassRef<RenderStyle>!
<https://webkit.org/b/123147>
Convert the remaining WebCore code to use PassRef for RenderStyle
wherever they are known to be non-null.
Reviewed by Antti Koivisto.
2013-10-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r157819.
http://trac.webkit.org/changeset/157819
https://bugs.webkit.org/show_bug.cgi?id=123180
Broke 32-bit builds (Requested by smfr on #webkit).
* Configurations/WebCore.xcconfig:
2013-10-22 Antti Koivisto <antti@apple.com>
Rename deleteLineBoxTree to deleteLines
https://bugs.webkit.org/show_bug.cgi?id=123176
Reviewed by Andreas Kling.
RenderBlock::deleteLineBoxTree -> RenderBlock::deleteLines
RenderInline::deleteLineBoxTree -> RenderInline::deleteLines
2013-10-22 Tim Horton <timothy_horton@apple.com>
{ClipPathOperation, FilterOperation}::getOperationType() should not include 'get'
https://bugs.webkit.org/show_bug.cgi?id=123172
Reviewed by Simon Fraser.
No new tests, just a rename.
"get" in WebCore tends to mean that the function has out arguments; these have no arguments.
Rename FilterOperation::getOperationType() to FilterOperation::type().
I noticed that ClipPathOperation had the same mistake, so I fixed it there too.
Removed long and useless list of files.
2013-10-22 Samuel White <samuel_white@apple.com>
AX: Add paramAttrs to fetch start and end text markers in a given rect.
https://bugs.webkit.org/show_bug.cgi?id=122164
Reviewed by Chris Fleizach.
Added ability to fetch end and start text markers inside a given bounds. This gives ScreenReaders
like VoiceOver a way to retrieve the text markers for a specified column of page text.
Test: platform/mac/accessibility/text-marker-for-bounds.html
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::mainFrame):
(WebCore::AccessibilityObject::topDocument):
(WebCore::AccessibilityObject::visiblePositionForBounds):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
* accessibility/AccessibilityRenderObject.h:
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper screenToContents:]):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
2013-10-22 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Match adjustLogicalLineTopAndLogicalHeightIfNeeded's implementation with Blink's
https://bugs.webkit.org/show_bug.cgi?id=123033
Reviewed by David Hyatt.
In Blink I made this function in a bit different way. This change modifies it
to be identical, which helps a lot in the future cross-merging patches.
No new tests, covered by existing texts.
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded):
2013-10-22 Daniel Bates <dabates@apple.com>
[iOS] Upstream more ARMv7s bits
https://bugs.webkit.org/show_bug.cgi?id=123052
Reviewed by Joseph Pecoraro.
* Configurations/WebCore.xcconfig:
2013-10-22 Simon Fraser <simon.fraser@apple.com>
Try to fix Mavericks build; use <> for framework include.
* page/CaptionUserPreferencesMediaAF.cpp:
2013-10-22 Tim Horton <timothy_horton@apple.com>
GammaFilterOperation seems to be dead code
https://bugs.webkit.org/show_bug.cgi?id=123173
Reviewed by Simon Fraser.
* platform/graphics/filters/FilterOperation.cpp:
* platform/graphics/filters/FilterOperation.h:
Remove dead code.
2013-10-22 Antti Koivisto <antti@apple.com>
Rename some line box functions to be just about lines
https://bugs.webkit.org/show_bug.cgi?id=123168
Reviewed by Dave Hyatt.
firstLineBoxBaseline -> firstLineBaseline
hasInlineBoxChildren -> hasLines
Also use hasLines in a bunch of places where firstLineBox() was used.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
Also use hasRenderedText() instead of firstTextBox()
* rendering/RenderFullScreen.cpp:
Fix namespace.
2013-10-22 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Adding Mock class to test RTCPeerConnection
https://bugs.webkit.org/show_bug.cgi?id=122848
Reviewed by Eric Carlson.
The following tests can be run:
RTCPeerConnection-createAnswer.html
RTCPeerConnection-createOffer.html
RTCPeerConnection-ice.html
RTCPeerConnection-localDescription.html
RTCPeerConnection-remoteDescription.html
RTCPeerConnection-state.html
Tests that require a MediaStream object, by invoking getUserMedia,
are not ready to run yet.
No new tests needed.
* CMakeLists.txt:
* platform/mediastream/RTCPeerConnectionHandler.cpp:
(WebCore::createHandler):
* platform/mediastream/RTCPeerConnectionHandler.h:
* platform/mediastream/RTCPeerConnectionHandlerClient.h:
* platform/mock/RTCNotifiersMock.cpp: Added.
* platform/mock/RTCNotifiersMock.h: Added.
* platform/mock/RTCPeerConnectionHandlerMock.cpp: Added.
* platform/mock/RTCPeerConnectionHandlerMock.h: Copied from Source/WebCore/platform/mediastream/RTCPeerConnectionHandler.h.
* platform/mock/TimerEventBasedMock.h: Added.
* testing/Internals.cpp:
(WebCore::Internals::Internals):
(WebCore::Internals::enableMockRTCPeerConnectionHandler):
* testing/Internals.h:
2013-10-22 Zan Dobersek <zdobersek@igalia.com>
WebCore::fillWithEmptyClients adopts new empty clients before leaking their pointers
https://bugs.webkit.org/show_bug.cgi?id=122945
Reviewed by Anders Carlsson.
* loader/EmptyClients.cpp:
(WebCore::fillWithEmptyClients): Store the static empty clients as NeverDestroyed, rather than
adopting the pointer of each heap-allocated object and then immediately leaking that pointer.
2013-10-22 Zan Dobersek <zdobersek@igalia.com>
Simplify HRTFDatabaseLoader's load map
https://bugs.webkit.org/show_bug.cgi?id=122944
Reviewed by Eric Carlson.
* platform/audio/HRTFDatabaseLoader.cpp:
(WebCore::loaderMap): Return a reference to a NeverDestroyed HashMap that maps sample rates to loaders.
(WebCore::HRTFDatabaseLoader::createAndLoadAsynchronouslyIfNecessary):
(WebCore::HRTFDatabaseLoader::~HRTFDatabaseLoader):
* platform/audio/HRTFDatabaseLoader.h: Remove the LoaderMap type definition, the private singleton of that type
and the singleton's unused getter.
2013-10-22 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Support hardware accelerated filters
https://bugs.webkit.org/show_bug.cgi?id=123139
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export a variety of filter-related things.
* platform/graphics/ca/PlatformCAFilters.h:
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::setFilters):
* platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
(PlatformCAFilters::setFiltersOnLayer):
setFiltersOnLayer should take a PlatformLayer instead of a PlatformCALayer
as its argument, because it doesn't need a PlatformCALayer, and this way
we can share code with the RemoteLayerTreeHost, which only has PlatformLayers
and not PlatformCALayers.
2013-10-22 Brendan Long <b.long@cablelabs.com>
cue.text fails for some track element cues
https://bugs.webkit.org/show_bug.cgi?id=81123
Reviewed by Eric Carlson.
Test: media/track/track-long-captions-file.html
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::parseBytes): Use buffer when we don't have full lines.
(WebCore::WebVTTParser::fileFinished): Force file to finish parsing.
(WebCore::WebVTTParser::hasRequiredFileIdentifier): Simplify due to using String.
(WebCore::WebVTTParser::collectCueText): Don't automatically create cues when we run out of data.
(WebCore::WebVTTParser::collectNextLine): Use buffer.
* html/track/WebVTTParser.h: Add m_buffer and Finished state.
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::notifyFinished): Call m_parser->fileFinished() when done.
2013-10-22 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=123161
Reviewed by Brent Fulgham.
* rendering/RenderFlowThread.h: Move USE(ACCELERATED_COMPOSITING) guard to expose needed type.
2013-10-21 Brady Eidson <beidson@apple.com>
Add a cross-platform IDBRecordIdentifier
https://bugs.webkit.org/show_bug.cgi?id=123138
Reviewed by Andreas Kling.
Add the cross-platform header:
* Modules/indexeddb/IDBRecordIdentifier.h: Added.
(WebCore::IDBRecordIdentifier::create):
(WebCore::IDBRecordIdentifier::encodedPrimaryKey):
(WebCore::IDBRecordIdentifier::version):
(WebCore::IDBRecordIdentifier::reset):
(WebCore::IDBRecordIdentifier::IDBRecordIdentifier):
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
Remove the old abstract and LevelDB classes:
* Modules/indexeddb/IDBBackingStoreInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
Use the cross-platform one everywhere:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::loadCurrentRow):
(WebCore::ObjectStoreCursorImpl::loadCurrentRow):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::PutOperation::perform):
2013-10-22 Andrei Bucur <abucur@adobe.com>
[CSS Regions] Possible performance regression after r157567
https://bugs.webkit.org/show_bug.cgi?id=123016
Reviewed by Andreas Kling.
The revision 157567 http://trac.webkit.org/changeset/157567 may have regressed
Parser/html5-full-render by ~1.1% and Parser/html-parser by ~2%. These changes
try to optimize the initial patch, based on Andreas Kling's review.
The patch also adds a couple of refactorings that should make the code easier to read:
- the CSS Shapes functions are now wrapped in a single #if clause
- the CSS Shapes and CSS Regions pre-layout preparations are wrapped in a helper function
The RenderFlowThread::logicalWidthChangedInRegionsForBlock function is optimized by passing
it information about the state of the relayout children flag. If the flag is true already,
some of the steps are skipped.
Tests: no new tests.
* dom/Element.cpp:
(WebCore::Element::webkitGetRegionFlowRanges):
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForElementInfo):
* rendering/RenderBlock.cpp:
(WebCore::shapeInfoRequiresRelayout):
(WebCore::RenderBlock::updateShapesBeforeBlockLayout):
(WebCore::RenderBlock::computeShapeSize):
(WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout):
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
(WebCore::RenderBlockFlow::ensureRareData):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderElement::isRenderNamedFlowFragmentContainer):
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement):
* rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
* rendering/RenderFlowThread.h:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
* rendering/RenderNamedFlowFragment.h:
* rendering/RenderObject.cpp:
* rendering/RenderObject.h:
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
2013-10-22 Andreas Kling <akling@apple.com>
CSSStyleSheet constructor functions should return PassRef.
<https://webkit.org/b/123156>
Make CSSStyleSheet::create*() return PassRef and tighten some call
sites that were using them. Most callers didn't need any tweaks to
take advantage of PassRef.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLFraction always has a MathMLInlineContainerElement.
<https://webkit.org/b/123154>
This renderer is never anonymous and always has a corresponding
MathMLInlineContainerElement. Overload element() with a tighter
return type.
Also marked the class FINAL and made most member functions private.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
FontGlyphs constructor functions should return PassRef.
<https://webkit.org/b/123159>
Made the two FontGlyphs creator functions return PassRef and tweaked
the FontGlyphsCache in Font.cpp to make more efficient use of it.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Fix some more code to use RenderElement instead of RenderObject.
<https://webkit.org/b/123149>
Using RenderElement where possible lets us skip the isRenderElement()
branch in RenderObject::style() and generates much tighter code.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Merge SVG renderers' styleWillChange() into styleDidChange().
<https://webkit.org/b/123108>
This work can just as well be done after setting the style.
Three more styleWillChange() overloads gone.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
CSSValueList constructor functions should return PassRef.
<https://webkit.org/b/123151>
These functions always return objects, and thus can return PassRef.
Also made CSSValueList::createFromParserValueList() take a reference
since that function is only ever called with a non-null value.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Avoid parent style ref churn in createTextRendererIfNeeded().
<https://webkit.org/b/123148>
There's no need to take a temporary ref on the parent's RenderStyle
while creating a text renderer. It's not going away, and the text
renderer is not going to participate in ownership afterwards.
Reviewed by Antti Koivisto.
2013-10-22 Andreas Kling <akling@apple.com>
Remove some unnecessary null checks in RenderElement::setStyle().
<https://webkit.org/b/123146>
After assigning the new style to RenderElement::m_style, we know that
it'll be non-null, so remove all the checking for this.
Reviewed by Antti Koivisto.
2013-10-22 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Introduce ACCESSIBILITY_OBJECT_TYPE_CASTS to replace manual toFoo() in accessibility child class
https://bugs.webkit.org/show_bug.cgi?id=123140
Reviewed by Andreas Kling.
As a step to let toFoo use TYPE_CASTS_BASE, DEFINE_TYPE_CASTS can be used for toFoo() in accessibility
child class. The DEFINE_TYPE_CASTS will generate plenty more helper functions for accessibility type cast.
No new tests, no behavior changes.
* accessibility/AccessibilityList.h:
* accessibility/AccessibilityMenuList.h:
* accessibility/AccessibilityMockObject.h:
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilitySVGRoot.h:
* accessibility/AccessibilityScrollView.h:
* accessibility/AccessibilitySpinButton.h:
* accessibility/AccessibilityTable.h:
2013-10-22 Brian Holt <brian.holt@samsung.com>
[GTK] Add WebKit2 API for TLS errors
https://bugs.webkit.org/show_bug.cgi?id=120160
Reviewed by Carlos Garcia Campos.
Added a new constructor for CertificateInfo under Soup.
* platform/network/CertificateInfo.h:
* platform/network/soup/CertificateInfoSoup.cpp:
(WebCore::CertificateInfo::CertificateInfo): New constructor using
GTlsCertificateFlags and GTlsCertificate.
2013-10-22 Mihnea Ovidenie <mihnea@adobe.com>
[CSSRegions] Use RenderStyle::hasFlowFrom when needed
https://bugs.webkit.org/show_bug.cgi?id=122543
Reviewed by David Hyatt.
Rename RenderStyle::hasStyleRegion -> RenderStyle::hasFlowFrom.
Use RenderStyle::hasFlowFrom() helper function instead of directly
checking the value of RenderStyle::regionThread().
No change of functionality, covered by existing tests.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
(WebCore::ComputedStyleExtractor::propertyValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::adjustRenderStyle):
* dom/PseudoElement.cpp:
(WebCore::PseudoElement::didAttachRenderers):
* dom/PseudoElement.h:
(WebCore::pseudoElementRendererIsNeeded):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
* rendering/style/RenderStyle.h:
2013-10-21 Brent Fulgham <bfulgham@apple.com>
[WIN] Properly support reverse animations without needing software fallback.
https://bugs.webkit.org/show_bug.cgi?id=85121
Reviewed by Dean Jackson.
Testing is provided by existing animation tests.
* platform/animation/TimingFunction.h:
(WebCore::CubicBezierTimingFunction::createReversed): Added.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::addAnimation): The early return when performing a reverse or
autoreverse animation is no longer needed.
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(toCAMediaTimingFunction): Use new reversed function.
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(toCACFTimingFunction): Ditto.
(PlatformCAAnimation::setTimingFunction): Pass 'reverse' flag.
(PlatformCAAnimation::setTimingFunctions): Ditto.
2013-10-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Use TYPE_CASTS_BASE for CSS_VALUE_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=123126
Reviewed by Andreas Kling.
TYPE_CASTS_BASE was moved to common place to be used by all toFoo().
CSS_VALUE_TYPE_CASTS starts to use it for CSS child value. This change
generates plenty more helper functions for toCSSFooValue().
Additionally, this use support that toWebKitCSSFooValue, which couldn't
use CSS_VALUE_TYPE_CASTS macro.
No new tests, no behavior change.
* css/CSSAspectRatioValue.h:
* css/CSSBorderImageSliceValue.h:
* css/CSSCalculationValue.h:
* css/CSSCanvasValue.h:
* css/CSSCrossfadeValue.h:
* css/CSSCursorImageValue.h:
* css/CSSFilterImageValue.h:
* css/CSSFontFaceSrcValue.h:
* css/CSSFontFeatureValue.h:
* css/CSSFontValue.h:
* css/CSSFunctionValue.h:
* css/CSSGradientValue.h:
* css/CSSGridTemplateValue.h:
* css/CSSImageSetValue.h:
* css/CSSImageValue.h:
* css/CSSInheritedValue.h:
* css/CSSInitialValue.h:
* css/CSSLineBoxContainValue.h:
* css/CSSPrimitiveValue.h:
* css/CSSReflectValue.h:
* css/CSSShadowValue.h:
* css/CSSTimingFunctionValue.h:
* css/CSSUnicodeRangeValue.h:
* css/CSSValue.h:
* css/CSSValueList.h:
* css/CSSVariableValue.h:
* css/WebKitCSSArrayFunctionValue.h:
* css/WebKitCSSFilterValue.h:
* css/WebKitCSSMatFunctionValue.h:
* css/WebKitCSSMixFunctionValue.h:
* css/WebKitCSSSVGDocumentValue.h:
* css/WebKitCSSShaderValue.h:
2013-10-21 Joone Hur <joone.hur@intel.com>
Bad cast with toRenderBoxModelObject in RenderBlock::updateFirstLetter()
https://bugs.webkit.org/show_bug.cgi?id=123013
Reviewed by Andreas Kling.
No new tests because this was reported by Google ClusterFuzz.
https://codereview.chromium.org/25713009/
There is a case that toRenderBoxModelObject causes a crash in RenderBlock::updateFirstLetter()
due to bad cast, so we need to check whether the RenderObject is a RenderBoxModelObject
by running isBoxModelObject() before calling toRenderBoxModelObject.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::updateFirstLetter):
2013-10-21 Brady Eidson <beidson@apple.com>
Make IDBTransactionCoordinatorLevelDB cross platform
https://bugs.webkit.org/show_bug.cgi?id=123124
Enthusiastically reviewed by Tim Horton.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.xcodeproj/project.pbxproj:
Make more methods pure virtual in the interface:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
Update the name of the class, and use IDBTransactionBackendInterface instead of IDBTransactionBackendLeveDB:
* Modules/indexeddb/IDBTransactionCoordinator.cpp: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp.
(WebCore::IDBTransactionCoordinator::create):
(WebCore::IDBTransactionCoordinator::IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::~IDBTransactionCoordinator):
(WebCore::IDBTransactionCoordinator::didCreateTransaction):
(WebCore::IDBTransactionCoordinator::didStartTransaction):
(WebCore::IDBTransactionCoordinator::didFinishTransaction):
(WebCore::IDBTransactionCoordinator::isActive):
(WebCore::IDBTransactionCoordinator::processStartedTransactions):
(WebCore::doScopesOverlap):
(WebCore::IDBTransactionCoordinator::canRunTransaction):
* Modules/indexeddb/IDBTransactionCoordinator.h: Renamed from Source/WebCore/Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.h.
Update the name of the class elsewhere:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
(WebCore::IDBDatabaseBackendLevelDB::transactionCoordinator):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
2013-10-21 Daniel Bates <dabates@apple.com>
[iOS] Upstream JSGlobalObject::shouldInterruptScriptBeforeTimeout()
https://bugs.webkit.org/show_bug.cgi?id=123045
Reviewed by Joseph Pecoraro.
* bindings/js/JSDOMWindowBase.cpp:
(WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage): Added.
(WebCore::JSDOMWindowBase::shouldInterruptScript): Extracted comment and assertion
about null Page object into WebCore::shouldInterruptScriptToPreventInfiniteRecursionWhenClosingPage()
so that it can be shared by both this function and JSDOMWindowBase::shouldInterruptScriptBeforeTimeout().
(WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
* bindings/js/JSDOMWindowBase.h:
* bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::shouldInterruptScriptBeforeTimeout): Added.
* bindings/js/JSWorkerGlobalScopeBase.h:
* loader/EmptyClients.h: Added isStopping(). We'll land the iOS chrome client implementation
in a subsequent patch.
* page/ChromeClient.h: Added isStopping().
2013-10-21 Anders Carlsson <andersca@apple.com>
Navigation policy callback not called when performing the same fragment navigation twice
https://bugs.webkit.org/show_bug.cgi?id=123121
<rdar://problem/15230466>
Reviewed by Beth Dakin.
There's code in PolicyChecker::checkNavigationPolicy that will call the decision function right away
if the requests are equal, without consulting any policy client. Because of this, make sure to empty out
the last checked request of the document loader when doing a fragment navigation.
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithDocumentLoader):
2013-10-21 Jer Noble <jer.noble@apple.com>
Unreviewed build fix; unprotect the declaration of updateSleepDisabling();
* html/HTMLMediaElement.h:
2013-10-20 Mark Lam <mark.lam@apple.com>
Avoid JSC debugger overhead unless needed.
https://bugs.webkit.org/show_bug.cgi?id=123084.
Reviewed by Geoffrey Garen.
No new tests.
- If no breakpoints are set, we now avoid calling the debug hook callbacks.
- If no break on exception is set, we also avoid exception event debug callbacks.
- When we return from the ScriptDebugServer to the JSC::Debugger, we may no
longer call the debug hook callbacks if not needed. Hence, the m_currentCallFrame
pointer in the ScriptDebugServer may become stale. To avoid this issue, before
returning, the ScriptDebugServer will clear its m_currentCallFrame if
needsOpDebugCallbacks() is false.
* bindings/js/ScriptDebugServer.cpp:
(WebCore::ScriptDebugServer::setBreakpoint):
(WebCore::ScriptDebugServer::removeBreakpoint):
(WebCore::ScriptDebugServer::clearBreakpoints):
(WebCore::ScriptDebugServer::setPauseOnExceptionsState):
(WebCore::ScriptDebugServer::setPauseOnNextStatement):
(WebCore::ScriptDebugServer::breakProgram):
(WebCore::ScriptDebugServer::stepIntoStatement):
(WebCore::ScriptDebugServer::dispatchDidContinue):
(WebCore::ScriptDebugServer::exception):
(WebCore::ScriptDebugServer::didReachBreakpoint):
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::reset):
2013-10-21 Myles C. Maxfield <mmaxfield@apple.com>
Grammar markers are not updated when switching between 1x and 2x
https://bugs.webkit.org/show_bug.cgi?id=122146
Reviewed by Dean Jackson.
When running editing/spelling/grammar-markers-hidpi.html, the 2x
grammar/spelling dot resources are cached. If you then run
editing/spelling/grammar-markers.html without tearing down WebKit,
it re-uses the 2x dots. The difference between the two tests is a call
to testRunner.setBackingScaleFactor().
We create a NSColor from an NSImage, and remember it in a static
variable. However, NSColor inspects the current graphics context to
determine which resolution to use, and then remembers that decision.
Therefore, we want to recreate the NSColor whenever the device pixel
ratio changes. This patch adds a new static function to GraphicsContext
which recreates this NSColor every time the ratio changes.
Tests: editing/spelling/grammar-markers.html
editing/spelling/inline_spelling_markers.html
* platform/graphics/mac/GraphicsContextMac.mm:
(WebCore::makePattern):
(WebCore::GraphicsContext::drawLineForDocumentMarker):
2013-10-21 Simon Fraser <simon.fraser@apple.com>
Use pink layer borders for compositing layers with a contents layer
https://bugs.webkit.org/show_bug.cgi?id=123118
Reviewed by Dean Jackson.
With the existing layer border colors, it's not possible to distinguish an empty
layer from one with solid color, image or video contents. So use a pink color
for those. This makes it easier to diagnose bugs like 122784.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::getDebugBorderInfo):
2013-10-21 Jer Noble <jer.noble@apple.com>
Limit use of display sleep assertion when <video> element is off-screen.
https://bugs.webkit.org/show_bug.cgi?id=123041
Reviewed by Darin Adler.
Use page visibility changes to suspend and resume the use of sleep assertions in
HTMLMediaElement.
Page will propogate the page visibility change notifications to its Documents, which
will further propogate those notifications to registered elements. Upon receiving
these notifications, HTMLMediaElement will release or take a DisplaySleepDisabler
token if necessary.
Also, rename HTMLMediaElement's updateDisableSleep() to updateSleepDisabling() and wrap
the implementation in a PLATFORM(MAC) guard rather than at each call site.
* dom/Document.cpp:
(WebCore::Document::registerForVisibilityStateCallbacks): Added registration method.
(WebCore::Document::unregisterForVisibilityStateCallbacks): Added unregistration method.
(WebCore::Document::visibilityStateChanged): Call all registered clients.
* dom/Document.h:
* dom/Element.h:
(WebCore::Element::visibilityStateChanged): Added default virtual method to be overridden
by subclasses.
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Register for the notification, and check the
current status of Document::hidden().
(WebCore::HTMLMediaElement::~HTMLMediaElement): Unregister for the notification.
(WebCore::HTMLMediaElement::visibilityStateChanged): Set m_displaySleepDisablingSuspended
and call updateSleepDisabling().
(WebCore::HTMLMediaElement::shouldDisableSleep): Add a check for m_displaySleepDisablingSuspended.
* html/HTMLMediaElement.h:
* page/Page.cpp:
(WebCore::Page::setVisibilityState): Pass to every child document.
Rename updateDisableSleep() -> updateSleepDisabling():
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::~HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):
(WebCore::HTMLMediaElement::mediaPlayerRateChanged):
(WebCore::HTMLMediaElement::clearMediaPlayer):
(WebCore::HTMLMediaElement::stop):
2013-10-21 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
MediaStreamTrack now tracks its own state
https://bugs.webkit.org/show_bug.cgi?id=123025
Reviewed by Jer Noble.
The spec says that a MediaStreamSource can be shared by different tracks,
so a track must have its own state tracking, synchronizing with its MediaStreamSource when
the underlying MediaStreamSource changes the readyState.
In the old implementation if a user invoked the stop method, its readyState method was still
returning the MediaStreamSource state, which was wrong.
This also adds a setEnabled method, which can be used to set the state of a track when a
remote peer ends it, for instance.
No new tests needed.
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::readyState):
(WebCore::MediaStreamTrack::setState):
(WebCore::MediaStreamTrack::stopProducingData):
(WebCore::MediaStreamTrack::ended):
(WebCore::MediaStreamTrack::sourceStateChanged):
(WebCore::MediaStreamTrack::trackDidEnd):
* Modules/mediastream/MediaStreamTrack.h:
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Clean up transaction logging
https://bugs.webkit.org/show_bug.cgi?id=123116
Reviewed by Anders Carlsson.
* WebCore.exp.in:
Export some TextStream functions.
2013-10-21 Brady Eidson <beidson@apple.com>
Transition most use of IDBBackingStoreLevelDB to IDBBackingStoreInterface
https://bugs.webkit.org/show_bug.cgi?id=123105
Reviewed by Anders Carlsson.
Export more required headers:
* WebCore.xcodeproj/project.pbxproj:
Flesh out many of the pure virtual methods on IDBBackingStoreInterface, as well as
the RecordIdentifier and Cursor classes:
* Modules/indexeddb/IDBBackingStoreInterface.h:
(WebCore::IDBBackingStoreInterface::RecordIdentifier::~RecordIdentifier):
(WebCore::IDBBackingStoreInterface::Cursor::~Cursor):
Use IDBBackingStoreInterface, IDBBackingStoreInterface::RecordIdentifier, and
IDBBackingStoreInterface::Cursor wherever possible:
* Modules/indexeddb/IDBFactoryBackendInterface.cpp:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::ObjectStoreKeyCursorImpl::clone):
(WebCore::ObjectStoreCursorImpl::clone):
(WebCore::IndexKeyCursorImpl::clone):
(WebCore::IndexCursorImpl::clone):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
(WebCore::IDBBackingStoreLevelDB::Transaction::Transaction):
(WebCore::IDBBackingStoreLevelDB::Transaction::begin):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::RecordIdentifier::RecordIdentifier):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::IDBCursorBackendLevelDB):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
(WebCore::IDBCursorBackendLevelDB::create):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::create):
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
(WebCore::IDBDatabaseBackendLevelDB::backingStore):
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::createTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
(WebCore::IDBFactoryBackendLevelDB::createTransactionBackend):
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
(WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
(WebCore::IDBObjectStoreBackendLevelDB::generateKey):
(WebCore::IDBObjectStoreBackendLevelDB::updateKeyGenerator):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
(WebCore::GetOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-21 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes][CSS Regions] Don't apply shape-inside when we have multiple auto-height regions and the height is not resolved
https://bugs.webkit.org/show_bug.cgi?id=123103
Reviewed by David Hyatt.
When we have multiple regions with auto-height, the region's height is not resolved from other elements we can't apply the
the shape on the region. This patch prevents to apply the shape and fixes the behavior for these cases.
Test: fast/regions/shape-inside/shape-inside-on-multiple-autoheight-regions.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread):
2013-10-21 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Backing store should take contentsScale into account
https://bugs.webkit.org/show_bug.cgi?id=123106
Reviewed by Simon Fraser.
* WebCore.exp.in:
Export FloatRect::scale.
2013-10-21 Andreas Kling <akling@apple.com>
RenderScrollbarPart doesn't need styleWillChange().
<https://webkit.org/b/123113>
We will call setInline(false) in styleDidChange(), there's no need
to override styleWillChange() just to do it twice.
Reviewed by Darin Adler.
2013-10-21 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] The layers from the flow thread should be collected under the regions' layers.
https://bugs.webkit.org/show_bug.cgi?id=120457
Reviewed by David Hyatt.
This patch is based on the work of Alexandru Chiculita at https://bugs.webkit.org/attachment.cgi?id=203872&action=review
The composited layers inside the named flow threads are collected as part of the regions (as children of the
GraphicsLayer of the layer that corresponds to the region (which is attached to the parent renderer of
RenderNameFlowFragment)).
When a region displays a layer that needs accelerated compositing we activate the accelerated compositing for
that region too (inside RenderLayerCompositor::computeRegionCompositingRequirements).
This patch has landed before (as http://trac.webkit.org/changeset/156451), but was reverted because
fast/multicol/mixed-positioning-stacking-order.html failed. The fix is inside RenderLayerCompositor::canBeComposited
that only enables compositing for layers inside flow threads that collect the graphics layers under the regions.
Another change from changeset #156451 is that now the region renderers are created as anonymous renderers under
the element that has the flow-from property. When a composited layer is needed for the region, it sits in it's
parent renderer, not in the region renderer (RenderNamedFlowFragment).
Tests: compositing/regions/crash-transform-inside-region.html
compositing/regions/floated-region-with-transformed-child.html
compositing/regions/move-layer-from-one-region-to-another.html
compositing/regions/propagate-region-box-shadow-border-padding-for-video.html
compositing/regions/propagate-region-box-shadow-border-padding.html
compositing/regions/region-as-layer-in-another-flowthread.html
compositing/regions/transform-transparent-positioned-video-inside-region.html
compositing/regions/transformed-layer-inside-transformed-layer.html
compositing/regions/z-index-update.html
compositing/regions/z-index.html
* rendering/FlowThreadController.cpp:
(WebCore::FlowThreadController::updateRenderFlowThreadLayersIfNeeded):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::propagateStyleToAnonymousChildren): Not for RenderFlowThreads, as they are updated
through the RenderView::styleDidChange function.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::layout): When the layout of the flow thread is over (including the 2 phase layout),
we update all the mappings between the layers inside the flow thread and the regions where those layers will be
painted.
(WebCore::RenderFlowThread::hasCompositingRegionDescendant): Whether any of the regions has a compositing descendant.
(WebCore::RenderFlowThread::getLayerListForRegion):
(WebCore::RenderFlowThread::regionForCompositedLayer):
(WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
(WebCore::RenderFlowThread::collectsGraphicsLayersUnderRegions):
(WebCore::RenderFlowThread::updateLayerToRegionMappings): Triggers an update of the layers if a layer has moved
from a region to another since the last update.
(WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
* rendering/RenderFlowThread.h:
* rendering/RenderGeometryMap.cpp:
(WebCore::RenderGeometryMap::pushRenderFlowThread):
* rendering/RenderGeometryMap.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::paintList):
(WebCore::RenderLayer::enclosingFlowThreadAncestor):
(WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::calculateLayerBounds): When we calculate the bounds of the RenderView, we ignore those
flow threads that collect the graphics layers under the regions.
(WebCore::RenderLayer::dirtyZOrderLists):
(WebCore::RenderLayer::dirtyNormalFlowList):
* rendering/RenderLayer.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::shouldClipCompositedBounds): Not if it's a flow thread that collects the graphics
layers under the regions
(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Now adjusts the ancestorCompositingBounds for the FlowThread.
(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread): Make sure that the region propagates
its borders, paddings, outlines or box-shadows to layers inside it.
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
* rendering/RenderLayerBacking.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements): Now calls computeRegionCompositingRequirements.
(WebCore::RenderLayerCompositor::computeRegionCompositingRequirements):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree): Do not iterate the RenderFlowThread directly if
we are going to collect the composited layers as part of regions.
(WebCore::RenderLayerCompositor::rebuildRegionCompositingLayerTree):
(WebCore::RenderLayerCompositor::canBeComposited): CSS Regions flow threads do not need to be composited as we
use composited RenderRegions to render the background of the RenderFlowThread.
(WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason): If it's a container of a css region.
* rendering/RenderLayerCompositor.h:
* rendering/RenderMultiColumnSet.cpp:
(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderMultiColumnSet.h:
* rendering/RenderNamedFlowFragment.h:
(WebCore::RenderNamedFlowFragment::layerOwner): When the content inside the region requires the region to have a
layer, the layer will be created on the region's parent renderer instead. This method returns that renderer
holding the layer. The return value may be null.
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
(WebCore::RenderNamedFlowThread::nextRendererForNode):
(WebCore::RenderNamedFlowThread::previousRendererForNode):
(WebCore::RenderNamedFlowThread::addFlowChild):
(WebCore::RenderNamedFlowThread::removeFlowChild):
(WebCore::RenderNamedFlowThread::collectsGraphicsLayersUnderRegions):
* rendering/RenderNamedFlowThread.h: m_flowThreadChildList is now allocated through an OwnPtr to keep the render
arena under the size limit.
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::adjustRegionBoundsFromFlowThreadPortionRect):
* rendering/RenderRegion.h:
(WebCore::toRenderRegion):
* rendering/RenderTreeAsText.cpp:
(WebCore::writeLayers):
* WebCore.exp.in: WebCore::RenderLayer::isFlowThreadCollectingGraphicsLayersUnderRegions
2013-10-21 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Fixing mediastream debug build
https://bugs.webkit.org/show_bug.cgi?id=123104
Reviewed by Andreas Kling.
No new tests needed.
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):
2013-10-21 Andreas Kling <akling@apple.com>
Merge RenderListMarker::styleWillChange() into styleDidChange().
<https://webkit.org/b/123098>
If the marker's list-style-type or list-style-position changed, we
need to dirty the layout. Move this logic to styleDidChange() so we
can get rid of one styleWillChange() overload.
Reviewed by Antti Koivisto.
2013-10-21 Mihai Maerean <mmaerean@adobe.com>
[CSS Regions] Fix WHITESPACE issues in the CSS grammar.
https://bugs.webkit.org/show_bug.cgi?id=123082
Reviewed by Andreas Kling.
This is a port of Rune Lillesveen's patch from https://codereview.chromium.org/25607005
Fix WHITESPACE issues in the CSS grammar.
A single WHITESPACE token consumes consecutive spaces, but does not consume
spaces separated by comments. That means S* and S+ in CSS grammars need to
accept multiple WHITESPACE tokens. Additionally, white spaces are not
mandatory to separate an @-symbol and the rest of the prelude.
Use space non-terminal instead of WHITESPACE for S+ in calc expressions.
Use maybe_space non-terminal instead of WHITESPACE for S* after @-webkit-filter
and @-webkit-region.
Tests: fast/css/calc-comments-allowed.html
fast/regions/webkit-region-syntax-space.html
* css/CSSGrammar.y.in:
2013-10-21 Anton Obzhirov <a.obzhirov@samsung.com>
[ATK] Use atk_object_notify_state_change instead of manually emitting signals
https://bugs.webkit.org/show_bug.cgi?id=122968
Reviewed by Mario Sanchez Prada.
Refactor emitting "state-change" event to use atk_object_notify_state_change
instead of using g_signal_emit_by_name.
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::handleFocusedUIElementChanged):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleDetach):
* editing/atk/FrameSelectionAtk.cpp:
(WebCore::maybeEmitTextFocusChange):
2013-10-21 Gyuyoung Kim <gyuyoung.kim@samsung.com>
Make TYPE_CASTS_BASE more flexible
https://bugs.webkit.org/show_bug.cgi?id=122951
Reviewed by Andreas Kling.
TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult
to be used by other type casts. For instance, CSSValue, Accessibility and so on.
This patch modifies TYPE_CASTS_BASE which can support other type casts.
Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h.
No new tests, no behavior changes.
* dom/Document.h:
* dom/Node.h:
2013-10-21 Santosh Mahto <santosh.ma@samsung.com>
ASSERTION FAILED: !style->propertyIsImportant(propertyID) in WebCore::setTextDecorationProperty
https://bugs.webkit.org/show_bug.cgi?id=122097
Reviewed by Ryosuke Niwa.
When remove format command is called we pushdown the ancestor style
down to its children. Currently applying inline style to iframe
while pushing down style which causes iframe to be reinserted in tree and
triggres again subframe loading which repeats everytime and finally
crash happens. So we should avoid applying inline style to iframe
element as it doesnot reflect in its content while pushing down style
on it.
And ASSERT call has been removed from setTextDecoration property as
the scenario is perfectly valid case.
Test: editing/execCommand/remove-format-textdecoration-in-iframe.html
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): Return if
element is iframe.
* editing/EditingStyle.cpp:
(WebCore::StyleChange::setTextDecorationProperty): Remove ASSERT.
2013-10-20 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 5)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Antti Koivisto.
- Move m_lineBoxes to RenderBlockFlow.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
* rendering/HitTestResult.cpp:
(WebCore::HitTestResult::innerTextIfTruncated):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::deleteLineBoxTree):
(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet):
(WebCore::RenderBlock::paintContents):
(WebCore::blockDirectionOffset):
(WebCore::inlineDirectionOffset):
(WebCore::RenderBlock::inlineSelectionGaps):
(WebCore::RenderBlock::hitTestContents):
(WebCore::positionForPointRespectingEditingBoundaries):
(WebCore::RenderBlock::positionForPointWithInlineChildren):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::inlineBlockBaseline):
(WebCore::RenderBlock::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlock::addFocusRingRects):
(WebCore::RenderBlock::showLineTreeAndMark):
* rendering/RenderBlock.h:
(WebCore::RenderBlock::addOverflowFromInlineChildren):
(WebCore::RenderBlock::hasInlineBoxChildren):
(WebCore::RenderBlock::paintInlineChildren):
(WebCore::RenderBlock::hitTestInlineChildren):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::RenderBlockFlow):
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::deleteLineBoxTree):
(WebCore::RenderBlockFlow::hitTestInlineChildren):
(WebCore::RenderBlockFlow::adjustForBorderFit):
(WebCore::RenderBlockFlow::fitBorderToLinesIfNeeded):
(WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
(WebCore::RenderBlockFlow::firstLineBoxBaseline):
(WebCore::RenderBlockFlow::inlineBlockBaseline):
(WebCore::RenderBlockFlow::inlineSelectionGaps):
(WebCore::RenderBlockFlow::positionForBox):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
(WebCore::RenderBlockFlow::paintInlineChildren):
(WebCore::RenderBlockFlow::relayoutForPagination):
(WebCore::RenderBlockFlow::showLineTreeAndMark):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::lineBoxes):
(WebCore::RenderBlockFlow::firstLineBox):
(WebCore::RenderBlockFlow::lastLineBox):
(WebCore::RenderBlockFlow::firstRootBox):
(WebCore::RenderBlockFlow::lastRootBox):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
2013-10-20 Andreas Kling <akling@apple.com>
Avoid unnecessary vector copy in AnimationController event dispatch.
<https://webkit.org/b/122994>
Use Vector's move constructor instead of making a copy of the pending
events queue and then clearing it.
Reviewed by Simon Fraser.
2013-10-19 Brady Eidson <beidson@apple.com>
Add abstract IDBBackingStoreInterface, use it to get IDBDatabaseBackendLevelDB closer to going cross-platform
https://bugs.webkit.org/show_bug.cgi?id=123074
Reviewed by Andreas Kling.
* Modules/indexeddb/IDBBackingStoreInterface.h: Added.
(WebCore::IDBBackingStoreInterface::~IDBBackingStoreInterface):
(WebCore::IDBBackingStoreInterface::Transaction::~Transaction):
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
(WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseIntVersion):
(WebCore::IDBBackingStoreLevelDB::createObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteObjectStore):
(WebCore::IDBBackingStoreLevelDB::getRecord):
(WebCore::IDBBackingStoreLevelDB::putRecord):
(WebCore::IDBBackingStoreLevelDB::clearObjectStore):
(WebCore::IDBBackingStoreLevelDB::deleteRecord):
(WebCore::IDBBackingStoreLevelDB::getKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::maybeUpdateKeyGeneratorCurrentNumber):
(WebCore::IDBBackingStoreLevelDB::keyExistsInObjectStore):
(WebCore::IDBBackingStoreLevelDB::createIndex):
(WebCore::IDBBackingStoreLevelDB::deleteIndex):
(WebCore::IDBBackingStoreLevelDB::putIndexDataForRecord):
(WebCore::IDBBackingStoreLevelDB::findKeyInIndex):
(WebCore::IDBBackingStoreLevelDB::getPrimaryKeyViaIndex):
(WebCore::IDBBackingStoreLevelDB::keyExistsInIndex):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreCursor):
(WebCore::IDBBackingStoreLevelDB::openObjectStoreKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexKeyCursor):
(WebCore::IDBBackingStoreLevelDB::openIndexCursor):
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
(WebCore::IDBBackingStoreLevelDB::Transaction::reset):
(WebCore::IDBBackingStoreLevelDB::Transaction::levelDBTransactionFrom):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::deleteFunction):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::verifyIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::writeIndexKeys):
(WebCore::IDBObjectStoreBackendLevelDB::IndexWriter::addingKeyAllowed):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
(WebCore::IDBTransactionBackendLevelDB::backingStoreTransaction):
* WebCore.xcodeproj/project.pbxproj:
* GNUmakefile.list.am:
2013-10-20 Andreas Kling <akling@apple.com>
Use PassRef for StyleSheetContents.
<https://webkit.org/b/123083>
Let functions that return newly-constructed StyleSheetContents
objects vend PassRef<StyleSheetContents> instead of PassRefPtr.
Updated functions that take StyleSheetContents in arguments
accordingly. And CSSStyleSheet now has a Ref internally. Woo!
Reviewed by Antti Koivisto.
2013-10-20 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Removing "unused parameter" compiling warnings from WebKit2 and WebCore
https://bugs.webkit.org/show_bug.cgi?id=123075
Reviewed by Andreas Kling.
No new tests needed.
* Modules/mediastream/RTCDTMFToneChangeEvent.cpp:
(WebCore::RTCDTMFToneChangeEvent::create):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(lineAtPositionForAtkBoundary):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
2013-10-19 Andreas Kling <akling@apple.com>
Use PassRef for constructing StyleRules.
<https://webkit.org/b/123072>
Let functions that return newly-constructed StyleRuleFoo objects
vend PassRef<StyleRuleFoo> instead of PassRefPtr.
Since StyleRuleBase::copy() has to return something, we can't rely
on ASSERT_NOT_REACHED() + return nullptr anymore, so I've replaced
those with CRASH(). No call sites actually handled null anyway.
Reviewed by Sam Weinig.
2013-10-19 Jer Noble <jer.noble@apple.com>
Unreviewed roll out of r157695; broke Mac builds.
* Configurations/FeatureDefines.xcconfig:
2013-10-07 Jer Noble <jer.noble@apple.com>
[MSE] [Mac] Enable MediaSource on the Mac
https://bugs.webkit.org/show_bug.cgi?id=122484
Reviewed by Darin Adler.
Enable ENABLE_MEDIA_SOURCE.
* Configurations/FeatureDefines.xcconfig:
2013-10-19 Sam Weinig <sam@webkit.org>
CTTE: Tighten up type usage around InputType::innerTextElement()
https://bugs.webkit.org/show_bug.cgi?id=123078
Reviewed by Anders Carlsson.
* editing/TextIterator.cpp:
(WebCore::TextIterator::handleReplacedElement):
* html/HTMLElement.h:
(WebCore::HTMLElement::isTextControlInnerTextElement):
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::innerTextElement):
* html/HTMLInputElement.h:
* html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::innerTextElement):
* html/HTMLTextAreaElement.h:
* html/HTMLTextFormControlElement.cpp:
(WebCore::hasVisibleTextArea):
(WebCore::HTMLTextFormControlElement::selection):
(WebCore::HTMLTextFormControlElement::innerTextValue):
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
* html/HTMLTextFormControlElement.h:
* html/InputType.h:
(WebCore::InputType::innerTextElement):
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent):
(WebCore::TextFieldInputType::innerTextElement):
* html/TextFieldInputType.h:
* html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerTextElement::renderer):
* html/shadow/TextControlInnerElements.h:
(WebCore::isTextControlInnerTextElement):
* rendering/RenderObject.h:
(WebCore::RenderObject::isTextControlInnerBlock):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::innerTextElement):
(WebCore::RenderTextControl::styleDidChange):
(WebCore::RenderTextControl::textBlockLogicalWidth):
(WebCore::RenderTextControl::updateFromElement):
(WebCore::RenderTextControl::computeLogicalHeight):
(WebCore::RenderTextControl::hitInnerTextElement):
* rendering/RenderTextControl.h:
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::layout):
(WebCore::RenderTextControlSingleLine::styleDidChange):
(WebCore::RenderTextControlSingleLine::autoscroll):
(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):
* rendering/RenderTextControlSingleLine.h:
(WebCore::toRenderTextControlInnerBlock):
2013-10-19 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 4)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Andreas Kling.
- Fix classes derived from RenderBlockFlow that were still calling
up to RenderBlock rather than RenderBlockFlow.
* rendering/RenderDetailsMarker.cpp:
(WebCore::RenderDetailsMarker::paint):
* rendering/RenderFieldset.cpp:
(WebCore::RenderFieldset::computePreferredLogicalWidths):
(WebCore::RenderFieldset::paintBoxDecorations):
(WebCore::RenderFieldset::paintMask):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::paintObject):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::styleDidChange):
(WebCore::RenderFlowThread::layout):
(WebCore::RenderFlowThread::nodeAtPoint):
* rendering/RenderFullScreen.cpp:
(RenderFullScreenPlaceholder::willBeDestroyed):
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::styleDidChange):
* rendering/RenderMultiColumnBlock.cpp:
(WebCore::RenderMultiColumnBlock::styleDidChange):
(WebCore::RenderMultiColumnBlock::updateLogicalWidthAndColumnWidth):
(WebCore::RenderMultiColumnBlock::addChild):
* rendering/RenderProgress.cpp:
(WebCore::RenderProgress::updateFromElement):
* rendering/RenderRuby.cpp:
(WebCore::RenderRubyAsBlock::styleDidChange):
(WebCore::RenderRubyAsBlock::addChild):
(WebCore::RenderRubyAsBlock::removeChild):
* rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::rubyBaseSafe):
(WebCore::RenderRubyRun::addChild):
(WebCore::RenderRubyRun::removeChild):
(WebCore::RenderRubyRun::layout):
* rendering/RenderRubyText.cpp:
(WebCore::RenderRubyText::textAlignmentForLine):
(WebCore::RenderRubyText::adjustInlineDirectionLineBounds):
* rendering/RenderTableCaption.cpp:
(WebCore::RenderTableCaption::willBeRemovedFromTree):
* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::willBeRemovedFromTree):
(WebCore::RenderTableCell::computePreferredLogicalWidths):
(WebCore::RenderTableCell::offsetFromContainer):
(WebCore::RenderTableCell::clippedOverflowRectForRepaint):
(WebCore::RenderTableCell::computeRectForRepaint):
(WebCore::RenderTableCell::styleDidChange):
(WebCore::RenderTableCell::borderLeft):
(WebCore::RenderTableCell::borderRight):
(WebCore::RenderTableCell::borderTop):
(WebCore::RenderTableCell::borderBottom):
(WebCore::RenderTableCell::borderStart):
(WebCore::RenderTableCell::borderEnd):
(WebCore::RenderTableCell::borderBefore):
(WebCore::RenderTableCell::borderAfter):
(WebCore::RenderTableCell::paint):
* rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::styleDidChange):
* rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::scrollWidth):
(WebCore::RenderTextControlSingleLine::scrollHeight):
(WebCore::RenderTextControlSingleLine::scrollLeft):
(WebCore::RenderTextControlSingleLine::scrollTop):
(WebCore::RenderTextControlSingleLine::scroll):
(WebCore::RenderTextControlSingleLine::logicalScroll):
* rendering/RenderTextTrackCue.cpp:
(WebCore::RenderTextTrackCue::layout):
* rendering/RenderView.cpp:
(WebCore::RenderView::layoutContent):
(WebCore::RenderView::addChild):
(WebCore::RenderView::visualOverflowRect):
(WebCore::RenderView::styleDidChange):
* rendering/svg/RenderSVGBlock.cpp:
(WebCore::RenderSVGBlock::setStyle):
(WebCore::RenderSVGBlock::updateFromStyle):
(WebCore::RenderSVGBlock::willBeDestroyed):
(WebCore::RenderSVGBlock::styleWillChange):
(WebCore::RenderSVGBlock::styleDidChange):
* rendering/svg/SVGTextQuery.cpp:
(WebCore::flowBoxForRenderer):
2013-10-19 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 3)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Andreas Kling.
- Move containsNonZeroBidiLevel to RenderBlockFlow.
* editing/Editor.cpp:
(WebCore::Editor::hasBidiSelection):
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel):
* rendering/RenderBlockFlow.h:
2013-10-18 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Antti Koivisto.
- Move truncation (e.g. line clamp and ellipse) support to RenderBlockFlow.
* rendering/EllipsisBox.cpp:
(WebCore::EllipsisBox::EllipsisBox):
(WebCore::EllipsisBox::paint):
(WebCore::EllipsisBox::markupBox):
(WebCore::EllipsisBox::selectionRect):
(WebCore::EllipsisBox::paintSelection):
(WebCore::EllipsisBox::nodeAtPoint):
* rendering/EllipsisBox.h:
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.cpp:
(WebCore::shouldCheckLines):
(WebCore::RenderBlockFlow::lineAtIndex):
(WebCore::RenderBlockFlow::lineCount):
(WebCore::getHeightForLineCount):
(WebCore::RenderBlockFlow::heightForLineCount):
(WebCore::RenderBlockFlow::clearTruncation):
* rendering/RenderBlockFlow.h:
* rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::placeEllipsis):
2013-10-19 Andreas Kling <akling@apple.com>
StyleResolver should deal in PassRef<RenderStyle> where possible.
<https://webkit.org/b/123061>
Make StyleResolver functions that returned or took RenderStyles
by PassRefPtr use PassRef instead where possible.
Reviewed by Anders Carlsson.
2013-10-19 Brady Eidson <beidson@apple.com>
Global rename of the class "IDBBackingStore" to "IDBBackingStoreLevelDB"
Rubberstamped by Anders Carlsson (And Andreas Kling wanted to, but he wasn’t around)
* Modules/indexeddb/IDBTransactionBackendInterface.h:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h:
2013-10-19 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Link fails.
https://bugs.webkit.org/show_bug.cgi?id=123019
Reviewed by Darin Adler.
Added empty CertificateInfo implementation for Curl.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* platform/network/curl/CertificateInfoCurl.cpp: Added.
(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::~CertificateInfo):
2013-10-19 Filip Pizlo <fpizlo@apple.com>
libWebCoreTestSupport should have explicit exports
https://bugs.webkit.org/show_bug.cgi?id=123053
Reviewed by Oliver Hunt.
No new tests because there is no change in behavior.
* Configurations/WebCoreTestSupport.xcconfig:
* testing/js/WebCoreTestSupport.h:
2013-10-18 Andreas Kling <akling@apple.com>
Start passing RenderStyle around with PassRef.
<https://webkit.org/b/123051>
Made the RenderStyle::create methods return PassRef<RenderStyle>
and RenderElement::setStyle take a PassRef<RenderStyle>.
Reviewed by Darin Adler.
2013-10-18 Sam Weinig <sam@webkit.org>
Move m_lineBoxes from RenderBlock to RenderBlockFlow (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=122969
Reviewed by Dan Bernstein.
- Make the RootInlineBox constructor take a RenderBlockFlow.
- Move createRootInlineBox, and createAndAppendRootInlineBox to RenderBlockFlow.
* editing/VisibleUnits.cpp:
(WebCore::absoluteLineDirectionPointToLocalPointInBlock):
* rendering/InlineBox.cpp:
(WebCore::InlineBox::locationIncludingFlipping):
(WebCore::InlineBox::flipForWritingMode):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
* rendering/RenderBlock.cpp:
* rendering/RenderBlock.h:
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::RenderBlockFlow::createRootInlineBox):
(WebCore::RenderBlockFlow::createAndAppendRootInlineBox):
(WebCore::createInlineBoxForRenderer):
(WebCore::RenderBlockFlow::createLineBoxes):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::positionLineBox):
* rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::localSelectionRect):
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::localSelectionRect):
* rendering/RootInlineBox.cpp:
(WebCore::RootInlineBox::RootInlineBox):
(WebCore::RootInlineBox::rendererLineBoxes):
(WebCore::RootInlineBox::placeEllipsis):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::setContainingRegion):
(WebCore::RootInlineBox::alignBoxesInBlockDirection):
(WebCore::RootInlineBox::beforeAnnotationsAdjustment):
(WebCore::RootInlineBox::lineSnapAdjustment):
(WebCore::RootInlineBox::lineSelectionGap):
(WebCore::RootInlineBox::computeCaretRect):
(WebCore::RootInlineBox::selectionTop):
(WebCore::RootInlineBox::selectionTopAdjustedForPrecedingBlock):
(WebCore::RootInlineBox::selectionBottom):
(WebCore::RootInlineBox::blockDirectionPointInLine):
(WebCore::RootInlineBox::blockFlow):
(WebCore::RootInlineBox::closestLeafChildForPoint):
(WebCore::RootInlineBox::removeLineBoxFromRenderObject):
(WebCore::RootInlineBox::extractLineBoxFromRenderObject):
(WebCore::RootInlineBox::attachLineBoxToRenderObject):
* rendering/RootInlineBox.h:
* rendering/TrailingFloatsRootInlineBox.h:
* rendering/svg/RenderSVGText.h:
(WebCore::toRenderSVGText):
* rendering/svg/SVGRootInlineBox.cpp:
(WebCore::SVGRootInlineBox::SVGRootInlineBox):
(WebCore::SVGRootInlineBox::renderSVGText):
(WebCore::SVGRootInlineBox::paint):
(WebCore::SVGRootInlineBox::computePerCharacterLayoutInformation):
(WebCore::SVGRootInlineBox::layoutRootBox):
* rendering/svg/SVGRootInlineBox.h:
2013-10-18 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Double-buffering and minimization of repaints
https://bugs.webkit.org/show_bug.cgi?id=123043
Reviewed by Simon Fraser.
No new tests, not yet testable.
* WebCore.exp.in:
Export one version of drawLayerContents and Region::contains.
* WebCore.xcodeproj/project.pbxproj:
Expose WebLayer.h as a private header.
* platform/graphics/mac/WebLayer.h:
Clean up this header, and add a new drawLayerContents that can operate without a CALayer.
* platform/graphics/mac/WebLayer.mm:
(WebCore::drawLayerContents):
Split drawLayerContents into one method that acquires properties CALayer,
and one that just does the painting.
2013-10-18 Anders Carlsson <andersca@apple.com>
Try to fix the Lion build.
* bindings/objc/ObjCNodeFilterCondition.h:
2013-10-18 Daniel Bates <dabates@apple.com>
[iOS] Upstream WebSafe{GCActivityCallback, IncrementalSweeper}IOS
https://bugs.webkit.org/show_bug.cgi?id=123049
Reviewed by Mark Hahnenberg.
* WebCore.xcodeproj/project.pbxproj:
* platform/ios/WebSafeGCActivityCallbackIOS.h: Added.
* platform/ios/WebSafeIncrementalSweeperIOS.h: Added.
2013-10-18 Anders Carlsson <andersca@apple.com>
Remove spaces between template angle brackets
https://bugs.webkit.org/show_bug.cgi?id=123040
Reviewed by Andreas Kling.
* Modules/encryptedmedia/MediaKeySession.h:
* Modules/encryptedmedia/MediaKeys.h:
* Modules/geolocation/Geolocation.h:
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):
* Modules/geolocation/GeolocationController.h:
* Modules/indexeddb/IDBCallbacks.h:
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackendInterface.h:
* Modules/indexeddb/IDBEventDispatcher.cpp:
(WebCore::IDBEventDispatcher::dispatch):
* Modules/indexeddb/IDBEventDispatcher.h:
* Modules/indexeddb/IDBKey.h:
* Modules/indexeddb/IDBObjectStore.h:
* Modules/indexeddb/IDBPendingTransactionMonitor.cpp:
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::dispatchEvent):
* Modules/indexeddb/IDBRequest.h:
(WebCore::IDBRequest::onSuccessWithPrefetch):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::dispatchEvent):
* Modules/indexeddb/IDBTransaction.h:
* Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::sortedTrackListForMenu):
* Modules/mediacontrols/MediaControlsHost.h:
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::activeRanges):
* Modules/mediasource/MediaSource.h:
* Modules/mediasource/MediaSourceBase.cpp:
(WebCore::MediaSourceBase::buffered):
* Modules/mediasource/MediaSourceBase.h:
* Modules/mediasource/MediaSourceRegistry.cpp:
(WebCore::MediaSourceRegistry::unregisterURL):
* Modules/mediasource/MediaSourceRegistry.h:
* Modules/mediasource/SourceBufferList.h:
* Modules/mediasource/WebKitMediaSource.cpp:
(WebCore::WebKitMediaSource::activeRanges):
* Modules/mediasource/WebKitMediaSource.h:
* Modules/mediasource/WebKitSourceBufferList.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::scheduledEventTimerFired):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/MediaStreamRegistry.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::scheduledEventTimerFired):
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCDataChannel.cpp:
(WebCore::RTCDataChannel::scheduledEventTimerFired):
* Modules/mediastream/RTCDataChannel.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::stop):
(WebCore::RTCPeerConnection::scheduledEventTimerFired):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/mediastream/RTCStatsResponse.h:
(WebCore::RTCStatsResponse::result):
* Modules/notifications/Notification.h:
* Modules/notifications/NotificationCenter.h:
* Modules/speech/SpeechSynthesis.cpp:
(WebCore::SpeechSynthesis::getVoices):
* Modules/speech/SpeechSynthesis.h:
* Modules/webaudio/AudioBuffer.h:
* Modules/webaudio/AudioNode.h:
* Modules/webaudio/AudioNodeOutput.h:
* Modules/webaudio/MediaStreamAudioSource.cpp:
(WebCore::MediaStreamAudioSource::setAudioFormat):
(WebCore::MediaStreamAudioSource::consumeAudio):
* Modules/webaudio/PeriodicWave.h:
* Modules/webaudio/ScriptProcessorNode.h:
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/DatabaseBackend.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::origins):
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::origins):
* Modules/webdatabase/DatabaseServer.h:
* Modules/webdatabase/DatabaseThread.h:
* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::DatabaseTracker::interruptAllDatabasesForContext):
(WebCore::DatabaseTracker::origins):
(WebCore::DatabaseTracker::getOpenDatabases):
(WebCore::DatabaseTracker::deleteAllDatabases):
(WebCore::DatabaseTracker::deleteDatabaseFile):
* Modules/webdatabase/DatabaseTracker.h:
* Modules/webdatabase/SQLStatementBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.cpp:
* Modules/webdatabase/SQLTransactionBackend.h:
* Modules/webdatabase/SQLTransactionCoordinator.cpp:
(WebCore::SQLTransactionCoordinator::shutdown):
* Modules/webdatabase/SQLTransactionCoordinator.h:
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
* Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
* Modules/websockets/WebSocket.cpp:
(WebCore::WebSocket::didReceiveBinaryData):
* Modules/websockets/WebSocket.h:
* Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::processFrame):
* Modules/websockets/WebSocketChannel.h:
* Modules/websockets/WebSocketChannelClient.h:
(WebCore::WebSocketChannelClient::didReceiveBinaryData):
* Modules/websockets/WebSocketExtensionDispatcher.h:
* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::workerGlobalScopeDidReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
(WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
* accessibility/AXObjectCache.h:
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::ariaLabeledByText):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityText::AccessibilityText):
* bindings/js/DOMWrapperWorld.h:
* bindings/js/JSDOMBinding.h:
(WebCore::toRefPtrNativeArray):
* bindings/js/JSDOMGlobalObject.h:
* bindings/js/JSMutationCallback.cpp:
(WebCore::JSMutationCallback::call):
* bindings/js/JSMutationCallback.h:
* bindings/js/JSWebGLRenderingContextCustom.cpp:
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
* bindings/js/PageScriptDebugServer.h:
* bindings/js/ScheduledAction.h:
* bindings/js/ScriptController.cpp:
(WebCore::ScriptController::collectIsolatedContexts):
* bindings/js/ScriptController.h:
* bindings/js/ScriptDebugServer.h:
* bindings/js/ScriptProfile.cpp:
(WebCore::buildInspectorObjectFor):
* bindings/objc/ObjCNodeFilterCondition.h:
* bridge/objc/objc_class.h:
* bridge/runtime_root.cpp:
(JSC::Bindings::RootObject::invalidate):
* bridge/runtime_root.h:
* css/BasicShapeFunctions.cpp:
(WebCore::basicShapeForValue):
* css/CSSBasicShapes.h:
(WebCore::CSSBasicShapePolygon::values):
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForFilter):
* css/CSSFontFace.h:
* css/CSSFontFaceSource.h:
* css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::getFontFace):
(WebCore::CSSFontSelector::beginLoadTimerFired):
* css/CSSFontSelector.h:
* css/CSSGroupingRule.h:
* css/CSSImageGeneratorValue.h:
* css/CSSParserValues.cpp:
(WebCore::CSSParserSelector::adoptSelectorVector):
* css/CSSParserValues.h:
* css/CSSPropertySourceData.h:
* css/CSSRuleList.h:
(WebCore::StaticCSSRuleList::rules):
* css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontLoaded):
* css/CSSSegmentedFontFace.h:
* css/CSSSelectorList.cpp:
(WebCore::CSSSelectorList::adoptSelectorVector):
* css/CSSSelectorList.h:
* css/CSSStyleSheet.h:
* css/CSSValue.h:
(WebCore::compareCSSValueVector):
* css/CSSValuePool.h:
* css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
* css/DocumentRuleSets.h:
* css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::matchedRuleList):
* css/ElementRuleCollector.h:
* css/FontLoader.h:
* css/InspectorCSSOMWrappers.cpp:
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheetContents):
(WebCore::InspectorCSSOMWrappers::collectFromStyleSheets):
* css/InspectorCSSOMWrappers.h:
* css/MediaList.cpp:
(WebCore::MediaQuerySet::parse):
(WebCore::MediaList::item):
(WebCore::reportMediaQueryWarningIfNeeded):
* css/MediaList.h:
(WebCore::MediaQuerySet::queryVector):
* css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::eval):
* css/MediaQueryMatcher.h:
* css/PropertySetCSSStyleDeclaration.cpp:
(WebCore::PropertySetCSSStyleDeclaration::cloneAndCacheForCSSOM):
* css/PropertySetCSSStyleDeclaration.h:
* css/RuleSet.cpp:
(WebCore::RuleSet::addToRuleSet):
(WebCore::RuleSet::addRegionRule):
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
* css/RuleSet.h:
* css/SelectorFilter.h:
* css/StyleInvalidationAnalysis.cpp:
(WebCore::StyleInvalidationAnalysis::analyzeStyleSheet):
* css/StylePropertySet.cpp:
(WebCore::StylePropertySet::getLayeredShorthandValue):
* css/StyleResolver.cpp:
(WebCore::StyleResolver::appendAuthorStyleSheets):
(WebCore::StyleResolver::keyframeStylesForAnimation):
(WebCore::StyleResolver::styleRulesForElement):
(WebCore::StyleResolver::pseudoStyleRulesForElement):
(WebCore::StyleResolver::resolveVariables):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::loadPendingSVGDocuments):
(WebCore::StyleResolver::loadPendingShaders):
* css/StyleResolver.h:
* css/StyleRule.cpp:
(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
(WebCore::StyleRuleGroup::StyleRuleGroup):
(WebCore::StyleRuleMedia::StyleRuleMedia):
(WebCore::StyleRuleSupports::StyleRuleSupports):
(WebCore::StyleRuleRegion::StyleRuleRegion):
* css/StyleRule.h:
(WebCore::StyleRule::parserAdoptSelectorVector):
(WebCore::StyleRulePage::parserAdoptSelectorVector):
(WebCore::StyleRuleGroup::childRules):
(WebCore::StyleRuleMedia::create):
(WebCore::StyleRuleSupports::create):
(WebCore::StyleRuleRegion::create):
(WebCore::StyleRuleHost::create):
(WebCore::StyleRuleHost::StyleRuleHost):
* css/StyleScopeResolver.h:
* css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::childRulesHaveFailedOrCanceledSubresources):
* css/StyleSheetContents.h:
(WebCore::StyleSheetContents::childRules):
(WebCore::StyleSheetContents::importRules):
* css/StyleSheetList.cpp:
(WebCore::StyleSheetList::styleSheets):
(WebCore::StyleSheetList::item):
* css/StyleSheetList.h:
* css/WebKitCSSKeyframesRule.h:
(WebCore::StyleRuleKeyframes::keyframes):
* dom/CheckedRadioButtons.h:
* dom/ClientRectList.h:
* dom/ContainerNode.h:
(WebCore::ChildNodesLazySnapshot::nextNode):
(WebCore::ChildNodesLazySnapshot::takeSnapshot):
* dom/CrossThreadTask.h:
* dom/Document.cpp:
(WebCore::Document::webkitCancelFullScreen):
(WebCore::Document::webkitExitFullscreen):
(WebCore::Document::fullScreenChangeDelayTimerFired):
(WebCore::Document::didAssociateFormControlsTimerFired):
* dom/Document.h:
* dom/DocumentMarkerController.cpp:
(WebCore::DocumentMarkerController::removeMarkers):
* dom/DocumentMarkerController.h:
* dom/DocumentStyleSheetCollection.cpp:
(WebCore::DocumentStyleSheetCollection::injectedUserStyleSheets):
(WebCore::DocumentStyleSheetCollection::injectedAuthorStyleSheets):
(WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
(WebCore::DocumentStyleSheetCollection::analyzeStyleSheetChange):
(WebCore::styleSheetsUseRemUnits):
(WebCore::filterEnabledNonemptyCSSStyleSheets):
(WebCore::collectActiveCSSStyleSheetsFromSeamlessParents):
(WebCore::DocumentStyleSheetCollection::updateActiveStyleSheets):
* dom/DocumentStyleSheetCollection.h:
* dom/Element.cpp:
(WebCore::Element::attrNodeList):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/Element.h:
* dom/EventListenerMap.h:
* dom/EventSender.h:
(WebCore::EventSender::timerFired):
* dom/IdTargetObserverRegistry.h:
* dom/MutationCallback.h:
* dom/MutationObserver.cpp:
(WebCore::MutationObserver::takeRecords):
(WebCore::MutationObserver::deliver):
(WebCore::MutationObserver::deliverAllMutations):
* dom/MutationObserver.h:
* dom/MutationObserverRegistration.h:
* dom/NamedFlowCollection.cpp:
(WebCore::NamedFlowCollection::namedFlows):
* dom/NamedFlowCollection.h:
* dom/Node.cpp:
(WebCore::Node::didMoveToNewDocument):
(WebCore::Node::mutationObserverRegistry):
(WebCore::Node::registerMutationObserver):
(WebCore::Node::unregisterMutationObserver):
(WebCore::Node::notifyMutationObserversNodeWillDetach):
* dom/Node.h:
* dom/NodeRareData.h:
* dom/Range.cpp:
(WebCore::Range::processContents):
(WebCore::Range::processNodes):
(WebCore::Range::processAncestorsAndTheirSiblings):
* dom/Range.h:
* dom/ScopedEventQueue.h:
* dom/ScriptExecutionContext.cpp:
(WebCore::ScriptExecutionContext::reportException):
* dom/ScriptExecutionContext.h:
* dom/ScriptedAnimationController.h:
* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
* editing/BreakBlockquoteCommand.cpp:
(WebCore::BreakBlockquoteCommand::doApply):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::removeChildrenInRange):
(WebCore::CompositeEditCommand::deleteInsignificantText):
(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
* editing/CompositeEditCommand.h:
* editing/EditingStyle.cpp:
(WebCore::htmlElementEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
(WebCore::htmlAttributeEquivalents):
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::styleFromMatchedRulesForElement):
* editing/Editor.cpp:
(WebCore::Editor::countMatchesForText):
* editing/Editor.h:
* editing/InsertParagraphSeparatorCommand.cpp:
(WebCore::InsertParagraphSeparatorCommand::getAncestorsInsideBlock):
(WebCore::InsertParagraphSeparatorCommand::cloneHierarchyUnderNewBlock):
(WebCore::InsertParagraphSeparatorCommand::doApply):
* editing/InsertParagraphSeparatorCommand.h:
* editing/MergeIdenticalElementsCommand.cpp:
(WebCore::MergeIdenticalElementsCommand::doApply):
(WebCore::MergeIdenticalElementsCommand::doUnapply):
* editing/RemoveNodePreservingChildrenCommand.cpp:
(WebCore::RemoveNodePreservingChildrenCommand::doApply):
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplacementFragment::removeUnrenderedNodes):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
(WebCore::SimplifyMarkupCommand::pruneSubsequentAncestorsToRemove):
* editing/SimplifyMarkupCommand.h:
* editing/SpellChecker.h:
* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::executeApply):
(WebCore::SplitElementCommand::doUnapply):
* editing/WrapContentsInDummySpanCommand.cpp:
(WebCore::WrapContentsInDummySpanCommand::executeApply):
(WebCore::WrapContentsInDummySpanCommand::doUnapply):
* editing/mac/AlternativeTextUIController.h:
* fileapi/FileList.h:
* history/BackForwardList.h:
* history/HistoryItem.cpp:
(WebCore::HistoryItem::setRedirectURLs):
* history/HistoryItem.h:
* history/mac/HistoryItemMac.mm:
(WebCore::HistoryItem::setTransientProperty):
* html/FormController.h:
* html/HTMLAnchorElement.cpp:
* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::append):
* html/HTMLCollection.h:
* html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::checkValidity):
* html/HTMLFormControlElement.h:
* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::validateInteractively):
(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
* html/HTMLFormElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
(WebCore::HTMLMediaElement::platformTextTracks):
(WebCore::HTMLMediaElement::configureTextTrackGroup):
* html/HTMLMediaElement.h:
* html/HTMLPlugInImageElement.cpp:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::setLength):
* html/MediaController.cpp:
(MediaController::asyncEventTimerFired):
* html/MediaController.h:
* html/MediaFragmentURIParser.h:
* html/ValidationMessage.h:
* html/canvas/WebGLFramebuffer.h:
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::getAttachedShaders):
* html/canvas/WebGLRenderingContext.h:
* html/canvas/WebGLTexture.h:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLDocumentParser.h:
* html/parser/HTMLMetaCharsetParser.h:
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
* html/parser/HTMLResourcePreloader.h:
* html/parser/XSSAuditor.h:
* html/shadow/ContentDistributor.cpp:
(WebCore::ContentDistributor::ensureInsertionPointList):
(WebCore::ContentDistributor::distribute):
(WebCore::ContentDistributor::invalidate):
* html/shadow/ContentDistributor.h:
* html/shadow/MediaControlElements.cpp:
(WebCore::MediaControlClosedCaptionsTrackListElement::rebuildTrackListMenu):
(WebCore::MediaControlTextTrackContainerElement::updateDisplay):
* html/shadow/MediaControlElements.h:
* html/track/InbandGenericTextTrack.h:
* html/track/InbandWebVTTTextTrack.cpp:
(WebCore::InbandWebVTTTextTrack::newCuesParsed):
* html/track/LoadableTextTrack.cpp:
(WebCore::LoadableTextTrack::newCuesAvailable):
(WebCore::LoadableTextTrack::newRegionsAvailable):
* html/track/TextTrackCueList.h:
* html/track/TextTrackList.cpp:
(TextTrackList::invalidateTrackIndexesAfterTrack):
(TextTrackList::remove):
(TextTrackList::contains):
* html/track/TextTrackList.h:
* html/track/TrackListBase.cpp:
(TrackListBase::asyncEventTimerFired):
* html/track/TrackListBase.h:
* html/track/WebVTTParser.cpp:
(WebCore::WebVTTParser::getNewCues):
(WebCore::WebVTTParser::getNewRegions):
* html/track/WebVTTParser.h:
* inspector/ConsoleMessage.cpp:
(WebCore::ConsoleMessage::addToFrontend):
* inspector/ContentSearchUtils.cpp:
(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):
(WebCore::ContentSearchUtils::lineEndings):
(WebCore::ContentSearchUtils::searchInTextByLines):
* inspector/ContentSearchUtils.h:
* inspector/DOMPatchSupport.cpp:
(WebCore::DOMPatchSupport::patchNode):
(WebCore::DOMPatchSupport::diff):
(WebCore::DOMPatchSupport::innerPatchChildren):
* inspector/DOMPatchSupport.h:
* inspector/InjectedScript.cpp:
(WebCore::InjectedScript::getProperties):
(WebCore::InjectedScript::getInternalProperties):
(WebCore::InjectedScript::wrapCallFrames):
* inspector/InjectedScript.h:
* inspector/InjectedScriptHost.h:
* inspector/InspectorAgent.cpp:
(WebCore::InspectorAgent::enable):
* inspector/InspectorApplicationCacheAgent.cpp:
(WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
(WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
* inspector/InspectorApplicationCacheAgent.h:
* inspector/InspectorBaseAgent.h:
* inspector/InspectorCSSAgent.cpp:
(WebCore::SelectorProfile::toInspectorObject):
(WebCore::UpdateRegionLayoutTask::onTimer):
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::getComputedStyleForNode):
(WebCore::InspectorCSSAgent::getAllStyleSheets):
(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
(WebCore::InspectorCSSAgent::getNamedFlowCollection):
(WebCore::InspectorCSSAgent::buildArrayForRuleList):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
(WebCore::InspectorCSSAgent::buildArrayForRegions):
(WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
* inspector/InspectorCSSAgent.h:
* inspector/InspectorConsoleAgent.h:
* inspector/InspectorDOMAgent.cpp:
(WebCore::RevalidateStyleAttributeTask::onTimer):
(WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
(WebCore::InspectorDOMAgent::pushNodePathToFrontend):
(WebCore::InspectorDOMAgent::getEventListenersForNode):
(WebCore::InspectorDOMAgent::performSearch):
(WebCore::InspectorDOMAgent::getSearchResults):
(WebCore::InspectorDOMAgent::getAttributes):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
(WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
(WebCore::InspectorDOMAgent::styleAttributeInvalidated):
* inspector/InspectorDOMAgent.h:
* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
* inspector/InspectorDOMStorageAgent.h:
* inspector/InspectorDatabaseAgent.cpp:
(WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
* inspector/InspectorDatabaseAgent.h:
* inspector/InspectorDebuggerAgent.cpp:
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::searchInContent):
(WebCore::InspectorDebuggerAgent::setScriptSource):
(WebCore::InspectorDebuggerAgent::currentCallFrames):
* inspector/InspectorDebuggerAgent.h:
* inspector/InspectorHeapProfilerAgent.cpp:
(WebCore::InspectorHeapProfilerAgent::getProfileHeaders):
* inspector/InspectorHeapProfilerAgent.h:
* inspector/InspectorHistory.h:
* inspector/InspectorIndexedDBAgent.cpp:
* inspector/InspectorLayerTreeAgent.cpp:
(WebCore::InspectorLayerTreeAgent::layersForNode):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
(WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
* inspector/InspectorLayerTreeAgent.h:
* inspector/InspectorMemoryAgent.h:
* inspector/InspectorPageAgent.cpp:
(WebCore::buildArrayForCookies):
(WebCore::InspectorPageAgent::getCookies):
(WebCore::InspectorPageAgent::searchInResource):
(WebCore::InspectorPageAgent::searchInResources):
(WebCore::InspectorPageAgent::buildObjectForFrameTree):
* inspector/InspectorPageAgent.h:
* inspector/InspectorProfilerAgent.cpp:
(WebCore::InspectorProfilerAgent::getProfileHeaders):
* inspector/InspectorProfilerAgent.h:
* inspector/InspectorResourceAgent.h:
* inspector/InspectorRuntimeAgent.cpp:
(WebCore::InspectorRuntimeAgent::getProperties):
* inspector/InspectorRuntimeAgent.h:
* inspector/InspectorState.h:
* inspector/InspectorStyleSheet.cpp:
(WebCore::asCSSRuleList):
(WebCore::InspectorStyle::buildArrayForComputedStyle):
(WebCore::InspectorStyle::styleWithProperties):
(WebCore::selectorsFromSource):
(WebCore::InspectorStyleSheet::buildObjectForSelectorList):
(WebCore::InspectorStyleSheet::buildObjectForRule):
(WebCore::InspectorStyleSheet::lineEndings):
(WebCore::InspectorStyleSheet::buildArrayForRuleList):
(WebCore::InspectorStyleSheetForInlineStyle::lineEndings):
* inspector/InspectorStyleSheet.h:
* inspector/InspectorValues.cpp:
(WebCore::InspectorArrayBase::writeJSON):
* inspector/InspectorValues.h:
* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::reportExecutionContextCreation):
* inspector/ScriptCallStack.cpp:
(WebCore::ScriptCallStack::buildInspectorArray):
* inspector/ScriptCallStack.h:
* loader/CrossOriginPreflightResultCache.h:
* loader/DocumentLoader.cpp:
(WebCore::cancelAll):
(WebCore::setAllDefersLoading):
(WebCore::DocumentLoader::getSubresources):
* loader/DocumentLoader.h:
* loader/FormState.h:
* loader/FormSubmission.cpp:
(WebCore::FormSubmission::create):
* loader/ProgressTracker.h:
* loader/ResourceLoadScheduler.h:
* loader/TextTrackLoader.cpp:
(WebCore::TextTrackLoader::getNewCues):
(WebCore::TextTrackLoader::getNewRegions):
* loader/TextTrackLoader.h:
* loader/WorkerThreadableLoader.cpp:
(WebCore::workerGlobalScopeDidReceiveData):
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::removeResource):
(WebCore::ApplicationCache::dump):
* loader/appcache/ApplicationCache.h:
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::getOriginsWithCache):
* loader/archive/Archive.cpp:
(WebCore::Archive::clearAllSubframeArchives):
(WebCore::Archive::clearAllSubframeArchivesImpl):
* loader/archive/Archive.h:
(WebCore::Archive::subresources):
(WebCore::Archive::subframeArchives):
* loader/archive/ArchiveResourceCollection.cpp:
(WebCore::ArchiveResourceCollection::addAllResources):
* loader/archive/ArchiveResourceCollection.h:
* loader/archive/cf/LegacyWebArchive.cpp:
(WebCore::LegacyWebArchive::createPropertyListRepresentation):
(WebCore::LegacyWebArchive::create):
(WebCore::LegacyWebArchive::createFromSelection):
* loader/archive/cf/LegacyWebArchive.h:
* loader/archive/mhtml/MHTMLParser.h:
* loader/cache/CachedResource.h:
* loader/cache/CachedResourceLoader.h:
* loader/cache/MemoryCache.h:
* loader/icon/IconDatabase.cpp:
(WebCore::IconDatabase::notifyPendingLoadDecisions):
* loader/icon/IconDatabase.h:
* page/CaptionUserPreferencesMediaAF.cpp:
(WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu):
* page/CaptionUserPreferencesMediaAF.h:
* page/ChromeClient.h:
(WebCore::ChromeClient::didAssociateFormControls):
* page/Console.h:
* page/ContentSecurityPolicy.h:
* page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules):
* page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/DeviceController.h:
* page/EditorClient.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::handleTouchEvent):
* page/EventHandler.h:
* page/FrameView.cpp:
(WebCore::FrameView::serviceScriptedAnimations):
* page/Page.cpp:
(WebCore::Page::findStringMatchingRanges):
* page/Page.h:
* page/PageGroup.h:
* page/Performance.cpp:
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
* page/Performance.h:
* page/PerformanceEntryList.cpp:
(WebCore::PerformanceEntryList::appendAll):
* page/PerformanceEntryList.h:
* page/SecurityOriginHash.h:
* page/SecurityPolicy.cpp:
* page/SpeechInputResult.h:
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
* page/animation/AnimationControllerPrivate.h:
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
* page/animation/CompositeAnimation.h:
* page/scrolling/ScrollingStateNode.cpp:
(WebCore::ScrollingStateNode::appendChild):
* page/scrolling/ScrollingStateNode.h:
(WebCore::ScrollingStateNode::children):
* page/scrolling/ScrollingThread.cpp:
(WebCore::ScrollingThread::dispatchFunctionsFromScrollingThread):
* page/scrolling/ScrollingThread.h:
* page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::updateTreeFromStateNode):
* page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::appendChild):
* page/scrolling/ScrollingTreeNode.h:
* page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::syncChildPositions):
* platform/CrossThreadCopier.cpp:
* platform/CrossThreadCopier.h:
* platform/DragData.h:
* platform/MainThreadTask.h:
* platform/PODFreeListArena.h:
(WebCore::PODFreeListArena::freeObject):
(WebCore::PODFreeListArena::allocate):
* platform/PODIntervalTree.h:
* platform/PODRedBlackTree.h:
(WebCore::PODRedBlackTree::PODRedBlackTree):
* platform/PlatformSpeechSynthesizer.cpp:
(WebCore::PlatformSpeechSynthesizer::voiceList):
* platform/PlatformSpeechSynthesizer.h:
* platform/RunLoop.h:
* platform/ScrollView.cpp:
(WebCore::ScrollView::frameRectsChanged):
(WebCore::ScrollView::clipRectChanged):
(WebCore::ScrollView::setParentVisible):
(WebCore::ScrollView::show):
(WebCore::ScrollView::hide):
* platform/ScrollView.h:
* platform/SharedBuffer.h:
* platform/Supplementable.h:
(WebCore::Supplement::provideTo):
(WebCore::Supplementable::provideSupplement):
* platform/URL.cpp:
(WebCore::findHostnamesInMailToURL):
(WebCore::encodeHostnames):
* platform/audio/AudioBus.h:
* platform/audio/AudioDSPKernelProcessor.h:
* platform/audio/AudioResampler.h:
* platform/audio/DynamicsCompressor.h:
* platform/audio/DynamicsCompressorKernel.h:
* platform/audio/HRTFDatabase.h:
* platform/audio/HRTFKernel.h:
* platform/audio/MultiChannelResampler.h:
* platform/audio/Reverb.h:
* platform/audio/ReverbConvolver.h:
* platform/cf/SharedBufferCF.cpp:
(WebCore::SharedBuffer::copyBufferAndClear):
(WebCore::SharedBuffer::copySomeDataFromDataArray):
* platform/graphics/FloatPolygon.cpp:
(WebCore::FloatPolygon::FloatPolygon):
* platform/graphics/FloatPolygon.h:
* platform/graphics/FontCache.cpp:
(WebCore::FontCache::getCachedFontData):
(WebCore::FontCache::purgeInactiveFontData):
* platform/graphics/GlyphMetricsMap.h:
(WebCore::::locatePageSlowCase):
* platform/graphics/GlyphPageTreeNode.h:
* platform/graphics/GraphicsContext3D.h:
* platform/graphics/GraphicsLayer.cpp:
* platform/graphics/GraphicsLayer.h:
* platform/graphics/PlatformTextTrackMenu.h:
* platform/graphics/SimpleFontData.h:
* platform/graphics/WidthCache.h:
* platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::processLegacyClosedCaptionsTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
(WebCore::GraphicsLayerCA::fetchCloneLayers):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/LayerPool.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimation::setValues):
* platform/graphics/ca/mac/TileController.h:
* platform/graphics/cg/SubimageCacheWithTimer.h:
* platform/graphics/filters/CustomFilterParameterList.h:
* platform/graphics/filters/FilterEffect.h:
* platform/graphics/filters/FilterOperations.h:
(WebCore::FilterOperations::operations):
* platform/graphics/gpu/Texture.cpp:
(WebCore::Texture::Texture):
(WebCore::Texture::create):
* platform/graphics/gpu/Texture.h:
* platform/graphics/mac/ComplexTextController.h:
* platform/graphics/mac/SimpleFontDataCoreText.cpp:
(WebCore::SimpleFontData::getCFStringAttributes):
* platform/graphics/transforms/TransformOperations.h:
(WebCore::TransformOperations::operations):
* platform/ios/PasteboardIOS.mm:
(WebCore::documentFragmentWithRTF):
* platform/mac/PlatformSpeechSynthesizerMac.mm:
(-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
* platform/mediastream/MediaStreamDescriptor.h:
* platform/mediastream/MediaStreamSource.h:
* platform/mediastream/RTCConfiguration.h:
* platform/network/BlobRegistryImpl.h:
* platform/network/HTTPHeaderMap.h:
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::parseCacheControlDirectives):
(WebCore::parseCacheHeader):
* platform/network/cf/ResourceHandleCFNet.cpp:
(WebCore::clientCerts):
(WebCore::ResourceHandle::createCFURLConnection):
* platform/text/cf/HyphenationCF.cpp:
(WebCore::::createValueForNullKey):
(WebCore::::createValueForKey):
(WebCore::cfLocaleCache):
* plugins/PluginMainThreadScheduler.h:
* rendering/HitTestResult.h:
* rendering/InlineFlowBox.h:
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintContinuationOutlines):
(WebCore::RenderBlock::removeFromTrackedRendererMaps):
* rendering/RenderBlock.h:
* rendering/RenderButton.h:
* rendering/RenderCounter.cpp:
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::GridIterator::GridIterator):
* rendering/RenderGrid.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):
* rendering/RenderLayer.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::getRanges):
* rendering/RenderNamedFlowThread.h:
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::getRanges):
* rendering/RenderRegion.h:
* rendering/RenderView.cpp:
(WebCore::RenderView::selectionBounds):
(WebCore::RenderView::setSelection):
* rendering/RootInlineBox.h:
* rendering/shapes/PolygonShape.cpp:
(WebCore::computeShapePaddingBounds):
(WebCore::computeShapeMarginBounds):
* rendering/shapes/PolygonShape.h:
(WebCore::PolygonShape::PolygonShape):
* rendering/shapes/Shape.cpp:
(WebCore::createPolygonShape):
(WebCore::Shape::createShape):
* rendering/shapes/ShapeInfo.h:
* rendering/shapes/ShapeInterval.h:
* rendering/style/QuotesData.cpp:
(WebCore::QuotesData::create):
(WebCore::QuotesData::QuotesData):
* rendering/style/QuotesData.h:
* rendering/style/RenderStyle.cpp:
(WebCore::requireTransformOrigin):
(WebCore::RenderStyle::applyTransform):
* rendering/style/StyleGridData.h:
* rendering/svg/RenderSVGResourceGradient.h:
* rendering/svg/RenderSVGResourcePattern.h:
* rendering/svg/SVGResourcesCache.h:
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
* storage/StorageEventDispatcher.h:
* storage/StorageNamespaceImpl.h:
* storage/StorageThread.h:
* storage/StorageTracker.cpp:
(WebCore::StorageTracker::origins):
* storage/StorageTracker.h:
* svg/SVGAnimatedPath.cpp:
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
* svg/SVGAnimatedTypeAnimator.cpp:
(WebCore::SVGElementAnimatedProperties::SVGElementAnimatedProperties):
(WebCore::SVGAnimatedTypeAnimator::findAnimatedPropertiesForAttributeName):
* svg/SVGAnimatedTypeAnimator.h:
* svg/SVGDocumentExtensions.cpp:
(WebCore::SVGDocumentExtensions::startAnimations):
(WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
(WebCore::SVGDocumentExtensions::addPendingResource):
(WebCore::SVGDocumentExtensions::isElementPendingResources):
(WebCore::SVGDocumentExtensions::removeElementFromPendingResources):
(WebCore::SVGDocumentExtensions::setOfElementsReferencingTarget):
(WebCore::SVGDocumentExtensions::addElementReferencingTarget):
(WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget):
* svg/SVGDocumentExtensions.h:
* svg/SVGFontElement.h:
* svg/SVGGlyphMap.h:
* svg/SVGMarkerElement.cpp:
(WebCore::SVGMarkerElement::orientTypeAnimated):
* svg/SVGMarkerElement.h:
* svg/SVGPathSegList.h:
* svg/animation/SMILTimeContainer.h:
* svg/graphics/SVGImageCache.h:
* svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::addBuiltinEffects):
* svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
(WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
* svg/properties/SVGAnimatedListPropertyTearOff.h:
(WebCore::SVGAnimatedListPropertyTearOff::create):
* svg/properties/SVGAnimatedPropertyTearOff.h:
(WebCore::SVGAnimatedPropertyTearOff::create):
* svg/properties/SVGAnimatedStaticPropertyTearOff.h:
(WebCore::SVGAnimatedStaticPropertyTearOff::create):
* svg/properties/SVGAttributeToPropertyMap.cpp:
(WebCore::SVGAttributeToPropertyMap::animatedPropertiesForAttribute):
* svg/properties/SVGAttributeToPropertyMap.h:
* svg/properties/SVGStaticListPropertyTearOff.h:
(WebCore::SVGStaticListPropertyTearOff::create):
* svg/properties/SVGTransformListPropertyTearOff.h:
(WebCore::SVGTransformListPropertyTearOff::create):
(WebCore::SVGTransformListPropertyTearOff::createSVGTransformFromMatrix):
(WebCore::SVGTransformListPropertyTearOff::consolidate):
* workers/DefaultSharedWorkerRepository.h:
* workers/WorkerMessagingProxy.h:
* xml/XMLHttpRequestProgressEventThrottle.cpp:
(WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):
* xml/XMLHttpRequestProgressEventThrottle.h:
* xml/XPathNodeSet.cpp:
(WebCore::XPath::NodeSet::sort):
(WebCore::XPath::NodeSet::traversalSort):
* xml/XSLStyleSheet.h:
* xml/parser/XMLDocumentParserLibxml2.cpp:
2013-10-18 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org>
Cleaning warning messages from StyleResolveTree
https://bugs.webkit.org/show_bug.cgi?id=123030
Reviewed by Andreas Kling.
No new tests needed.
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::createRendererIfNeeded):
2013-10-18 Brady Eidson <beidson@apple.com>
Get rid of IDBFactoryBackendLevelDB and IDBTransactionBackendLevelDB in IDBDatabaseBackendLevelDB.
https://bugs.webkit.org/show_bug.cgi?id=123039
Reviewed by Anders Carlsson.
Add a few concepts to the interfaces to make this work:
* Modules/indexeddb/IDBFactoryBackendInterface.h:
* Modules/indexeddb/IDBTransactionBackendInterface.h:
(WebCore::IDBTransactionBackendInterface::id):
(WebCore::IDBTransactionBackendInterface::IDBTransactionBackendInterface):
Adapt to using Interface ptr’s instead of LevelDB ptr’s:
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp:
(WebCore::IDBDatabaseBackendLevelDB::create):
(WebCore::IDBDatabaseBackendLevelDB::IDBDatabaseBackendLevelDB):
(WebCore::IDBDatabaseBackendLevelDB::createObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::deleteObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::createIndex):
(WebCore::IDBDatabaseBackendLevelDB::deleteIndex):
(WebCore::IDBDatabaseBackendLevelDB::get):
(WebCore::IDBDatabaseBackendLevelDB::put):
(WebCore::IDBDatabaseBackendLevelDB::setIndexKeys):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
(WebCore::IDBDatabaseBackendLevelDB::openCursor):
(WebCore::IDBDatabaseBackendLevelDB::count):
(WebCore::IDBDatabaseBackendLevelDB::deleteRange):
(WebCore::IDBDatabaseBackendLevelDB::clear):
(WebCore::IDBDatabaseBackendLevelDB::transactionStarted):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinished):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndAbortFired):
(WebCore::IDBDatabaseBackendLevelDB::transactionFinishedAndCompleteFired):
(WebCore::IDBDatabaseBackendLevelDB::runIntVersionChangeTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp:
(WebCore::IDBObjectStoreBackendLevelDB::makeIndexWriters):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp:
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::commit):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
2013-10-18 Dean Jackson <dino@apple.com>
Unable to upload <img src="foo.svg"> as WebGL texture
https://bugs.webkit.org/show_bug.cgi?id=123035
Reviewed by Tim Horton.
If the HTMLImageElement passed to texture2D is an SVG
image, paint it first into a bitmap buffer and upload that.
Note that the SVG image still needs to have an intrinsic
or explicit size - see how the test case must set width and
height.
I also renamed the cache of ImageBuffers since it is
no longer only being used for video frames.
Test: fast/canvas/webgl/tex-image-and-sub-image-2d-with-svg-image.html
* html/canvas/WebGLRenderingContext.cpp:
(WebCore::WebGLRenderingContext::WebGLRenderingContext): Rename m_videoCache to m_generatedImageCache.
(WebCore::WebGLRenderingContext::drawImageIntoBuffer): New method that creates an ImageBuffer
of the appropriate size and renders into that.
(WebCore::WebGLRenderingContext::texImage2D): If we see an SVG image, render it first.
(WebCore::WebGLRenderingContext::videoFrameToImage): Renamed m_generatedImageCache.
(WebCore::WebGLRenderingContext::texSubImage2D): If we see an SVG image, render it first.
* html/canvas/WebGLRenderingContext.h: Renaming.
2013-10-18 Brady Eidson <beidson@apple.com>
Move IDBTransactionBackend operations to the IDBTransactionBackend itself..
https://bugs.webkit.org/show_bug.cgi?id=123028
Reviewed by Alexey Proskuryakov.
This gets rid of a big blob of LevelDB specific code from IDBDatabaseBackendLevelDB.cpp,
bringing us much closer to having it be cross platform.
* CMakeLists.txt:
* GNUmakefile.list.am:
* Modules/indexeddb/IDBTransactionBackendInterface.h: Added.
(WebCore::IDBTransactionBackendInterface::~IDBTransactionBackendInterface):
* Modules/indexeddb/leveldb/IDBCursorBackendLevelDB.cpp:
(WebCore::IDBCursorBackendLevelDB::CursorAdvanceOperation::perform): Update for new method signature.
(WebCore::IDBCursorBackendLevelDB::CursorIterationOperation::perform): Ditto.
(WebCore::IDBCursorBackendLevelDB::CursorPrefetchIterationOperation::perform): Ditto.
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.cpp: Move all operations into
IDBTransactionBackendLevelDBOperations, then start scheduling them using the new
IDBTransactionBackendInterface scheduling methods.
(WebCore::IDBDatabaseBackendLevelDB::createObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::deleteObjectStore):
(WebCore::IDBDatabaseBackendLevelDB::createIndex):
(WebCore::IDBDatabaseBackendLevelDB::deleteIndex):
(WebCore::IDBDatabaseBackendLevelDB::get):
(WebCore::IDBDatabaseBackendLevelDB::put):
(WebCore::IDBDatabaseBackendLevelDB::setIndexesReady):
(WebCore::IDBDatabaseBackendLevelDB::openCursor):
(WebCore::IDBDatabaseBackendLevelDB::count):
(WebCore::IDBDatabaseBackendLevelDB::deleteRange):
(WebCore::IDBDatabaseBackendLevelDB::clear):
(WebCore::IDBDatabaseBackendLevelDB::createTransaction):
(WebCore::IDBDatabaseBackendLevelDB::runIntVersionChangeTransaction):
* Modules/indexeddb/leveldb/IDBDatabaseBackendLevelDB.h: Move definitions of PendingOpenCall and
PendingDeleteCall to the header.
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::create):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::callbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::databaseCallbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::version):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::transactionId):
(WebCore::IDBDatabaseBackendLevelDB::PendingOpenCall::PendingOpenCall):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::create):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::callbacks):
(WebCore::IDBDatabaseBackendLevelDB::PendingDeleteCall::PendingDeleteCall):
* Modules/indexeddb/leveldb/IDBObjectStoreBackendLevelDB.cpp: Add a newly required include.
* Modules/indexeddb/leveldb/IDBTransactionCoordinatorLevelDB.cpp: Ditto.
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.cpp: Implement the new interface to
handle scheduling of operations in a cross platform manner, then rely on the new
IDBTransactionBackendLevelDBOperations classes for the actual operations.
(WebCore::IDBTransactionBackendLevelDB::create):
(WebCore::IDBTransactionBackendLevelDB::IDBTransactionBackendLevelDB):
(WebCore::IDBTransactionBackendLevelDB::abort):
(WebCore::IDBTransactionBackendLevelDB::taskTimerFired):
(WebCore::IDBTransactionBackendLevelDB::scheduleCreateObjectStoreOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteObjectStoreOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleVersionChangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCreateIndexOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteIndexOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleGetOperation):
(WebCore::IDBTransactionBackendLevelDB::schedulePutOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleSetIndexesReadyOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleOpenCursorOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleCountOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleDeleteRangeOperation):
(WebCore::IDBTransactionBackendLevelDB::scheduleClearOperation):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDB.h:
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.cpp: Added.
Move all the LevelDB transaction operations from IDBDatabaseBackendLevelDB to here.
(WebCore::CreateObjectStoreOperation::perform):
(WebCore::CreateIndexOperation::perform):
(WebCore::CreateIndexAbortOperation::perform):
(WebCore::DeleteIndexOperation::perform):
(WebCore::DeleteIndexAbortOperation::perform):
(WebCore::GetOperation::perform):
(WebCore::PutOperation::perform):
(WebCore::SetIndexesReadyOperation::perform):
(WebCore::OpenCursorOperation::perform):
(WebCore::CountOperation::perform):
(WebCore::DeleteRangeOperation::perform):
(WebCore::ClearOperation::perform):
(WebCore::DeleteObjectStoreOperation::perform):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::perform):
(WebCore::CreateObjectStoreAbortOperation::perform):
(WebCore::DeleteObjectStoreAbortOperation::perform):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::perform):
* Modules/indexeddb/leveldb/IDBTransactionBackendLevelDBOperations.h: Added.
(WebCore::CreateObjectStoreOperation::create):
(WebCore::CreateObjectStoreOperation::CreateObjectStoreOperation):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::DeleteObjectStoreOperation):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::create):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeOperation::VersionChangeOperation):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::CreateObjectStoreAbortOperation::CreateObjectStoreAbortOperation):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::DeleteObjectStoreAbortOperation):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::create):
(WebCore::IDBDatabaseBackendLevelDB::VersionChangeAbortOperation::VersionChangeAbortOperation):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexOperation::CreateIndexOperation):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::CreateIndexAbortOperation::CreateIndexAbortOperation):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexOperation::DeleteIndexOperation):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::DeleteIndexAbortOperation::DeleteIndexAbortOperation):
(WebCore::GetOperation::create):
(WebCore::GetOperation::GetOperation):
(WebCore::PutOperation::create):
(WebCore::PutOperation::PutOperation):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::SetIndexesReadyOperation::SetIndexesReadyOperation):
(WebCore::OpenCursorOperation::create):
(WebCore::OpenCursorOperation::OpenCursorOperation):
(WebCore::CountOperation::create):
(WebCore::CountOperation::CountOperation):
(WebCore::DeleteRangeOperation::create):
(WebCore::DeleteRangeOperation::DeleteRangeOperation):
(WebCore::ClearOperation::create):
(WebCore::ClearOperation::ClearOperation):
2013-10-18 Beth Dakin <bdakin@apple.com>
Rubber-banding is often not smooth on infinitely scrolling websites
https://bugs.webkit.org/show_bug.cgi?id=122985
Reviewed by Simon Fraser.
totalContentsSize is an important part of the calculation for
maximumScrollPosition(). This function is called repeatedly throughout the curve
of a rubber-band to determine the stretch amount. To keep the rubber-band
animation smooth, it should be allowed to finish its animation using the old
totalContentsSize. This patch does that by adding a new variable,
m_totalContentsSizeForRubberBand. This value should almost always be equivalent to
m_totalContentsSize. It will only vary if m_totalContentsSize has changed in the
middle of a rubber-band, and in that case, it will stay equivalent to the old
totalContentSize value until the rubber band animation finishes.
* page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
* page/scrolling/ScrollingTreeScrollingNode.h:
(WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
(WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
* page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
(WebCore::ScrollingTreeScrollingNodeMac::stopSnapRubberbandTimer):
(WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
2013-10-18 ChangSeok Oh <changseok.oh@collabora.com>
Unreviewed build fix for --no-svg option.
m_svgStyle of RenderStyle is guarded with the ENABLE_SVG flag.
* rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
2013-10-17 Brady Eidson <beidson@apple.com>
Cleanup the Modules group in the WebCore.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=123009
Rubberstamped by Antti Koivisto.
* WebCore.xcodeproj/project.pbxproj:
2013-10-18 Denis Nomiyama <d.nomiyama@samsung.com>
[ATK] Fix invalid signal to set objects to an unknown state "layout-complete"
https://bugs.webkit.org/show_bug.cgi?id=122970
Reviewed by Mario Sanchez Prada.
Removed an invalid signal to set objects to an unknown state
layout-complete. This signal was originally generated to notify DRT
and WKTR in case of page load complete.
It was replaced by ATK:AtkDocument:load-complete, which is already sent
by AXObjectCache::frameLoadingEventPlatformNotification().
There is no new test since the changes are covered by existing ones
(e.g. accessibility/loading-iframe-sends-notification.html).
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::AXObjectCache::postPlatformNotification): Removed an invalid
signal to set objects to an unknown state layout-complete.
2013-10-18 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Generate API documentation for GObject DOM bindings
https://bugs.webkit.org/show_bug.cgi?id=121538
Reviewed by Gustavo Noronha Silva.
* bindings/gobject/GNUmakefile.am: Add a explicit rule for all
.symbols file making them depend on the corresponding header file,
since the .symbols file is generated by the bindings generator.
2013-10-18 Mario Sanchez Prada <mario.prada@samsung.com>
[ATK] Simplify implementation of atk_text_get_text
https://bugs.webkit.org/show_bug.cgi?id=122644
Reviewed by Chris Fleizach.
Simplified code so we only call textUnderElement() directly once
and only when needed. Also, moved the specific code for ColorWell
objects up to the beginning of that function, so we don't do any
additional efforts like computing text ranges in those cases.
No new tests are needed, just to make sure that the current layout
and unit tests are still passing, which they are.
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(textForObject): Fixed a issue that got detected while working on
this patch, which was causing a '\n' to be artificially appended
at the end of text controls all the time.
(webkitAccessibleTextGetText): Simplified function.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::doAXStringForRange): Removed
the check that prevents from pass ranges exceeding the limits of
the element's text, since those will be checked anyway when
calling String::substring().
2013-10-18 Brendan Long <b.long@cablelabs.com>
[GStreamer][GTK] Add GRefPtr::outPtr()
https://bugs.webkit.org/show_bug.cgi?id=122996
Reviewed by Philippe Normand.
No new tests because this is just simplifying existing code.
* platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specialization for GstToc.
* platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
* platform/graphics/gstreamer/GStreamerGWorld.cpp: Use GRefPtr::outPtr() to simplify code.
(WebCore::GStreamerGWorld::enterFullscreen):
(WebCore::GStreamerGWorld::exitFullscreen):
(WebCore::GStreamerGWorld::removePlatformVideoSink):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: Same.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText):
(WebCore::MediaPlayerPrivateGStreamer::newTextSample):
(WebCore::MediaPlayerPrivateGStreamer::processTableOfContents):
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp: Same.
(WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
* platform/network/soup/ResourceHandleSoup.cpp: Same.
(WebCore::HostTLSCertificateSet::computeCertificateHash):
2013-10-17 Alexey Proskuryakov <ap@apple.com>
Don't add an include for return type of a [Custom] function in generated bindings code
https://bugs.webkit.org/show_bug.cgi?id=122972
Reviewed by Sam Weinig.
* bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): Don't.
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLSpace always has a MathMLTextElement.
<https://webkit.org/b/122992>
The renderer is never anonymous and always has a corresponding
MathMLTextElement. Overload element() with a tighter return type.
Also marked the class FINAL and made most methods private.
Reviewed by Antti Koivisto.
* rendering/mathml/RenderMathMLSpace.cpp:
(WebCore::RenderMathMLSpace::RenderMathMLSpace):
(WebCore::RenderMathMLSpace::updateFromElement):
* rendering/mathml/RenderMathMLSpace.h:
2013-10-17 Tim Horton <timothy_horton@apple.com>
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915
Reviewed by Anders Carlsson.
No new tests, just restoring old code.
Un-do part of the patch for bug 122915; we can't early-return
in the constructor, there's still more work to do.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
2013-10-17 Alexandru Chiculita <achicu@adobe.com>
Web Inspector: [CSS Regions] Crash when highlighting a node of a flow with no regions
https://bugs.webkit.org/show_bug.cgi?id=122993
Reviewed by Joseph Pecoraro.
Test: inspector-protocol/dom/highlight-flow-with-no-region.html
Even if a named flow has no regions the content of the flow will still have renderer objects created.
Removed the assumption that all renderers inside a RenderFlowThread will always have an enclosing RenderRegion.
* inspector/InspectorOverlay.cpp:
(WebCore::buildObjectForRendererFragments):
(WebCore::InspectorOverlay::buildObjectForHighlightedNode):
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLOperator always has a MathMLElement.
<https://webkit.org/b/122988>
Reviewed by Antti Koivisto.
The renderer is never anonymous and always has a corresponding
MathMLElement. Overload element() with a tighter return type.
Also marked the class FINAL and made most methods private.
2013-10-17 Nico Weber <thakis@chromium.org>
Fix three bugs in the equals() implementations for css gradients.
https://bugs.webkit.org/show_bug.cgi?id=122987
Reviewed by Andreas Kling.
1. Linear gradients were considered equal if the first gradient has no x and y
position and the second has no x but does have y.
2. Same as 1, for radial gradients. (This doesn't happen in practice as
CSSParser::parseRadialGradient rejects such input, so no test for this case.)
3. Radial gradients without x and y position weren't considered equal even if
they were.
* css/CSSGradientValue.cpp:
(WebCore::CSSLinearGradientValue::equals):
(WebCore::CSSRadialGradientValue::equals):
2013-10-17 Antoine Quint <graouts@apple.com>
Web Inspector: allow front-end to trigger the system beep sound to signal an error
https://bugs.webkit.org/show_bug.cgi?id=122955
Reviewed by Timothy Hatcher.
New beep() method exposed on InspectorFrontendHost calling into WebCore's systemBeep().
* inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::beep):
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
2013-10-17 Anders Carlsson <andersca@apple.com>
Remove PlatformCAAnimation::supportsValueFunction()
https://bugs.webkit.org/show_bug.cgi?id=122990
Reviewed by Tim Horton.
PlatformCAAnimation::supportsValueFunction always returns true now, so there's no need for it to exist anymore.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
2013-10-17 Andreas Kling <akling@apple.com>
CTTE: RenderMathMLFenced always has a MathMLInlineContainerElement.
<https://webkit.org/b/122986>
This renderer is never anonymous and always has a corresponding
MathMLInlineContainerElement. Overload element() with a tighter
return type.
Also marked the class FINAL and made most methods private.
Reviewed by Anders Carlsson.
2013-10-17 Myles C. Maxfield <mmaxfield@apple.com>
Comment AffineTransform::xScale() and yScale() to make their meanings clearer
https://bugs.webkit.org/show_bug.cgi?id=122981
Reviewed by Simon Fraser.
* platform/graphics/transforms/AffineTransform.h:
2013-10-17 Vivek Galatage <vivek.vg@samsung.com>
Remove unnecessary check for RenderLayer and rename ensureLayer to createLayer in RenderLayerModelObject.
https://bugs.webkit.org/show_bug.cgi?id=122928
Reviewed by Darin Adler.
No new tests due to code refactoring.
RenderLayerModelObject::styleDidChange invokes the ensureLayer() only in case of !layer().
Again checking for layer existence would be deemed redundant in ensureLayer.
Replacing it with an ASSERT(!m_layer) and also renaming it to createLayer.
Blink review URL: https://codereview.chromium.org/27246003/
* rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::createLayer):
(WebCore::RenderLayerModelObject::styleDidChange):
* rendering/RenderLayerModelObject.h:
2013-10-17 Tim Horton <timothy_horton@apple.com>
Remove PlatformCALayerMac workaround for <rdar://problem/7390716>
https://bugs.webkit.org/show_bug.cgi?id=122983
Reviewed by Simon Fraser.
Remove a workaround for a bug fixed in Lion.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::setSublayers):
(PlatformCALayerMac::removeAllSublayers):
(PlatformCALayerMac::adoptSublayers):
2013-10-17 Robert Hogan <robert@webkit.org>
"border-collapse: collapse;" for table removes part of its border (was: Border disappears when close to some elements)
https://bugs.webkit.org/show_bug.cgi?id=8914
Reviewed by David Hyatt.
The table section's side of a collapsed border won't get painted if there are no cells there to paint it. So instead
of relying solely on cells to paint the collapsed border paint the appropriate section of the border if there's no
cell to take care of it.
Tests: fast/table/paint-section-borders-without-cells-rtl.html
fast/table/paint-section-borders-without-cells-vertical-lr-rtl.html
fast/table/paint-section-borders-without-cells-vertical-lr.html
fast/table/paint-section-borders-without-cells-vertical-rl.html
fast/table/paint-section-borders-without-cells.html
* rendering/RenderTableSection.cpp:
(WebCore::RenderTableSection::paintRowGroupBorder):
(WebCore::RenderTableSection::offsetLeftForRowGroupBorder):
(WebCore::RenderTableSection::offsetTopForRowGroupBorder):
(WebCore::RenderTableSection::verticalRowGroupBorderHeight):
(WebCore::RenderTableSection::horizontalRowGroupBorderWidth):
(WebCore::RenderTableSection::paintRowGroupBorderIfRequired):
(WebCore::physicalBorderForDirection):
(WebCore::RenderTableSection::paintObject):
* rendering/RenderTableSection.h:
2013-10-17 Andreas Kling <akling@apple.com>
StyleRuleFoo::mutableProperties() should return a reference.
<https://webkit.org/b/122962>
The mutableProperties() functions always return objects, so make
them return MutableStylePropertySet&.
Also tweaked the StyleRuleCSSStyleDeclaration constructor to take
references to both the properties and the owner rule since both
are required.
Reviewed by Antti Koivisto.
2013-10-17 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Improve the performance of image valued shapes with large shape-margins
https://bugs.webkit.org/show_bug.cgi?id=122613
Reviewed by Andreas Kling.
The cost of computing the shape-margin boundary of an image-valued shape-outside
is now proportional to (2 * shape-margin + image.height) rather than
(2 * shape-margin * image.height). The performance improvement comes from skipping
sequences of rounded-rectangle intervals that will not contribute to the final
result. Each non-empty row in the original image contributes one rounded-rectangle
whose corner radius is shape-margin, height is 2 * shape-margin, and width is
2 * shape-margin plus the width of the limits of the intervals on the row.
Renamed private method RasterShape::getIntervals() to intervalsAt() to be a little
more consistent with WebKit naming conventions.
There are no new tests since is just an internal refactoring.
* rendering/shapes/RasterShape.cpp:
(WebCore::MarginIntervalGenerator::set): Changed the x1,x2 parameters to an IntShapeInterval.
(WebCore::RasterShapeIntervals::contains): Refactor for the getIntervals() => intervalsAt() rename.
(WebCore::RasterShapeIntervals::getIntervalX1Values): Ditto.
(WebCore::RasterShapeIntervals::getIncludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::getExcludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals): Performance tuning.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::intervalsAt): Renamed getIntervals().
(WebCore::RasterShapeIntervals::limitIntervalAt): Return the min/max limits of the intervals at Y.
* rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::isEmpty): Added.
2013-10-15 Philippe Normand <pnormand@igalia.com>
[GTK] Add URLMediaStream in the build
https://bugs.webkit.org/show_bug.cgi?id=122833
Reviewed by Carlos Garcia Campos.
* GNUmakefile.am: Add mediastream/gstreamer in include directories list.
* GNUmakefile.list.am: Add DOMURLMediaStream files in the build.
2013-10-17 Andreas Kling <akling@apple.com>
Use PassRef for constructing StylePropertySets.
<https://webkit.org/b/122948>
Make functions that construct StylePropertySets return PassRef
instead of PassRefPtr. Since they never return null, this gets rid
of the extra branch in ~PassRefPtr everywhere.
Also StyleRule* classes now hold a Ref<StylePropertySet>, codifying
the fact that they always have a property set.
Reviewed by Antti Koivisto.
2013-10-17 Andreas Kling <akling@apple.com>
DataRef<T> should use Ref<T> internally.
<https://webkit.org/b/122953>
DataRef is used to hold RenderStyle substructures, and due to the
way style inheritance is implemented, DataRef will always point to
a live object.
Codify this by making DataRef::m_data a Ref, and making all methods
that create substructure objects return PassRef.
Reviewed by Antti Koivisto.
2013-10-17 Mihnea Ovidenie <mihnea@adobe.com>
[CSS Regions] Anonymous nested regions
https://bugs.webkit.org/show_bug.cgi?id=119135
Reviewed by David Hyatt.
Tests: fast/regions/table-caption-as-region.html
fast/regions/table-cell-as-region.html
This patch allows any non-replaced block to behave like a region. When an element is styled with the
-webkit-flow-from property, instead of making the renderer a RenderRegion, we let the original
renderer be created the same way and we add a region as an anonymous child for the renderer.
The anonymous block child, modeled by the new RenderNamedFlowFragment class, will be responsible
for the fragmentation of the named flow thread content.
A RenderBlockFlow object will keep a reference to a RenderNamedFlowFragment(RenderRegion) inside its
rare data structures.
Contains code contributed by Catalin Badea.
* CMakeLists.txt:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.xcodeproj/project.pbxproj:
* dom/Element.cpp: Changed to take the anonymous region into account.
(WebCore::Element::renderRegion):
(WebCore::Element::webkitGetRegionFlowRanges):
* dom/WebKitNamedFlow.cpp: Ditto.
(WebCore::WebKitNamedFlow::firstEmptyRegionIndex):
(WebCore::WebKitNamedFlow::getRegionsByContent):
(WebCore::WebKitNamedFlow::getRegions):
* inspector/InspectorOverlay.cpp: Take into account the new model for regions, with an anonymous region inside a block.
(WebCore::buildObjectForRegionHighlight):
(WebCore::buildObjectForElementInfo):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::computeShapeSize): For a render named flow fragment, there is no need to recompute the shape inside
we can take it from the parent.
(WebCore::RenderBlock::renderName): Make the block that contains a render named flow fragment (region) report RenderRegion.
A future patch that will change this will need to rebase a lot of tests.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::insertedIntoTree): Create the anonymous region if needed (change of -webkit-flow-from determines Node reattach).
(WebCore::RenderBlockFlow::willBeDestroyed): Clean-up the anonymous region if necessary.
(WebCore::RenderBlockFlow::clearFloats): Small style change to make sure that check-webkit-style reports 0 failures on RenderBlockFlow.cpp.
(WebCore::RenderBlockFlow::layoutBlock):
(WebCore::RenderBlockFlow::styleDidChange): Update the style of the anonymous region too.
(WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded): Helper function to create the anonymous region
and to add it as a child to the block.
(WebCore::RenderBlockFlow::canHaveChildren):
(WebCore::RenderBlockFlow::canHaveGeneratedChildren):
(WebCore::RenderBlockFlow::namedFlowFragmentNeedsUpdate): Force a layout of the anonymous region if the
parent block has percentage height (similar to RenderBlock::updateBlockChildDirtyBitsBeforeLayout)
(WebCore::RenderBlockFlow::updateLogicalHeight): Update the logical height of anonymous region when the height of parent is updated.
(WebCore::RenderBlockFlow::setRenderNamedFlowFragment):
* rendering/RenderBlockFlow.h:
(WebCore::RenderBlockFlow::RenderBlockFlowRareData::RenderBlockFlowRareData):
(WebCore::RenderBlockFlow::renderNamedFlowFragment):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::createFor): Remove the direct creation of RenderRegion objects since they will be
created as anonymous children of block flow objects.
* rendering/RenderElement.h:
(WebCore::RenderElement::generatingElement): Account for anonymous region if necessary.
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent): Take anonymous region into account
and use the anonymous region parent offset/border.
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::shouldBeNormalFlowOnly): Check for style instead of isRenderRegion since
the parent of the anonymous region will get the layer.
* rendering/RenderListItem.cpp:
(WebCore::RenderListItem::insertedIntoTree): Call RenderBlockFlow method instead.
* rendering/RenderNamedFlowFragment.cpp: Added. Model the behaviour of the anonymous region.
Has RenderRegion as a base class.
(WebCore::RenderNamedFlowFragment::RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::~RenderNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::setStyleForNamedFlowFragment):
(WebCore::RenderNamedFlowFragment::styleDidChange):
(WebCore::RenderNamedFlowFragment::shouldHaveAutoLogicalHeight):
(WebCore::RenderNamedFlowFragment::maxPageLogicalHeight):
* rendering/RenderNamedFlowFragment.h: Added.
(WebCore::RenderNamedFlowFragment::isPseudoElementRegion):
(WebCore::RenderNamedFlowFragment::renderName):
(WebCore::toRenderNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::isRenderNamedFlowFragmentContainer):
* rendering/RenderObject.h:
(WebCore::RenderObject::isRenderNamedFlowFragment):
* rendering/RenderRegion.h:
* rendering/RenderTableCaption.cpp: Call RenderBlockFlow method instead.
(WebCore::RenderTableCaption::insertedIntoTree):
* rendering/RenderTreeAsText.cpp:
(WebCore::write):
(WebCore::writeRenderRegionList):
* rendering/shapes/ShapeInfo.h:
(WebCore::ShapeInfo::shapeSize):
* style/StyleResolveTree.cpp:
(WebCore::Style::elementInsideRegionNeedsRenderer):
2013-10-17 Krzysztof Czech <k.czech@samsung.com>
[EFL] Properly expose tables in accessibility
https://bugs.webkit.org/show_bug.cgi?id=122894
Reviewed by Chris Fleizach.
All tables should exposed as tables.
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
(WebCore::AccessibilityTable::addChildren):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::computeAccessibilityIsIgnored):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::computeAccessibilityIsIgnored):
2013-10-17 Brendan Long <b.long@cablelabs.com>
[GStreamer] Too many arguments for format in WebKitWebAudioSourceGStreamer.cpp
https://bugs.webkit.org/show_bug.cgi?id=122932
Reviewed by Philippe Normand.
No new tests because this just fixes a build warning.
* platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
(webKitWebAudioSrcLoop): Add another %s for the second part of the pad name.
2013-10-16 Tim Horton <timothy_horton@apple.com>
Attempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
The relevant conversion doesn't happen implicitly.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
2013-10-16 Tim Horton <timothy_horton@apple.com>
Attempt to fix the Windows build after http://trac.webkit.org/changeset/157547.
Apparently some Windows code uses setFrame and I missed it.
* platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
(WebCore::MediaPlayerPrivateFullscreenWindow::setRootChildLayer):
(WebCore::MediaPlayerPrivateFullscreenWindow::wndProc):
2013-10-16 Tim Horton <timothy_horton@apple.com>
Remote Layer Tree: Complete support for simple layer properties
https://bugs.webkit.org/show_bug.cgi?id=122933
Reviewed by Anders Carlsson.
No new tests, not yet testable.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setName):
Don't dump the CALayer pointer if we own a PlatformCALayerRemote.
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
Fix the visible tile wash (my fault!), and make it use setPosition and
setBounds instead of setFrame; while more convenient, it is the only
caller of setFrame, so we'll remove it.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::isRemote): Added.
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(nullActionsDictionary):
(toCAFilterType):
(PlatformCALayerMac::synchronouslyDisplayTilesInRect):
(PlatformCALayerMac::playerLayer):
Remove setFrame, fix some pointer sides.
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
* platform/graphics/ca/win/PlatformCALayerWin.h:
Remove setFrame.
2013-10-16 Andreas Kling <akling@apple.com>
Take RenderObjects out of the arena.
<https://webkit.org/b/122895>
Reviewed by Antti Koivisto.
Stop arena-allocating renderers so we can move forward on improving
render tree memory management. This will also allow rendering code
to take advantage of malloc optimizations.
Line boxes and BiDi runs remain in the arena for now.
2013-10-16 Roger Fong <roger_fong@apple.com>
[Windows] Speculative fix for test, media/video-canvas-drawing-output.html.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::createImageForTimeInRect):
2013-10-16 Tim Horton <timothy_horton@apple.com>
PlatformCALayer constructor should take layer type as an argument
https://bugs.webkit.org/show_bug.cgi?id=122915
Reviewed by Simon Fraser.
No new tests, just a minor refactoring.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::PlatformCALayer):
Add a LayerType argument.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::PlatformCALayerWin):
Use the new LayerType argument, and early-return in the case where we
are wrapping a custom PlatformLayer.
Drive-by un-indent the switch in the Mac version.
2013-10-15 Brady Eidson <beidson@apple.com>
Flesh out the DatabaseProcess (and launch it!)
https://bugs.webkit.org/show_bug.cgi?id=122884
Reviewed by Tim Horton.
* English.lproj/Localizable.strings: Add a localizable string.
* WebCore.xcodeproj/project.pbxproj: Export some more headers.
2013-10-16 Tim Horton <timothy_horton@apple.com>
RemoteLayerTree: Add support for more layer properties and transform layers
https://bugs.webkit.org/show_bug.cgi?id=122906
Reviewed by Anders Carlsson.
No new tests, this code is not yet testable.
* WebCore.exp.in:
Export some TextStream and TransformationMatrix stuff.
2013-10-16 KyungTae Kim <ktf.kim@samsung.com>
During editing, merge inline style with overriding other author styles
https://bugs.webkit.org/show_bug.cgi?id=122874
Reviewed by Ryosuke Niwa.
Inline styles need to override other author styles even on DoNotOverrideValues mode.
So, merge and override inline styles to other author styles before merging them to m_mutableStyle.
Test: editing/deleting/merge-div-with-inline-style.html
* editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
2013-10-16 peavo@outlook.com <peavo@outlook.com>
Emphasis marks has wrong color.
https://bugs.webkit.org/show_bug.cgi?id=122829
Reviewed by Antti Koivisto.
Tests: fast/text/text-emphasis.html.
fast/text/text-emphasis-expected.html.
Emphasis color should be set as fill color, not stroke color.
* rendering/TextPaintStyle.cpp:
(WebCore::updateGraphicsContext):
* rendering/TextPaintStyle.h:
2013-10-16 Antti Koivisto <antti@apple.com>
Move code for finding rendered character offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122892
Reviewed by Andreas Kling.
* rendering/RenderText.cpp:
(WebCore::RenderText::countRenderedCharacterOffsets):
(WebCore::RenderText::containsRenderedCharacterOffset):
Renamed for consistency.
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::countCharacterOffsets):
This used to be Position::renderedPosition.
2013-10-16 Andreas Kling <akling@apple.com>
RenderElement::removeChild() should take child as a reference.
<https://webkit.org/b/122888>
We can't remove a child without a child to remove.
Reviewed by Antti Koivisto.
2013-10-16 Antti Koivisto <antti@apple.com>
Move test for contained caret offset to RenderTextLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=122887
Reviewed by Andreas Kling.
* dom/Position.cpp:
(WebCore::Position::renderedOffset):
(WebCore::Position::isCandidate):
Remove isRenderedText, call RenderText::containsCaretOffset instead.
(WebCore::Position::isRenderedCharacter):
(WebCore::Position::rendersInDifferentPosition):
* dom/Position.h:
* dom/PositionIterator.cpp:
(WebCore::PositionIterator::isCandidate):
* rendering/InlineTextBox.cpp:
* rendering/InlineTextBox.h:
* rendering/RenderText.cpp:
(WebCore::RenderText::containsCharacterOffset):
(WebCore::RenderText::containsCaretOffset):
* rendering/RenderText.h:
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::containsOffset):
Combined implementations of Position::isRenderedCharacter and Position::isRenderedText.
* rendering/RenderTextLineBoxes.h:
Remove containsCaretOffset(), functionality is now in RenderTextLineBoxes::containsOffset.
2013-10-16 Andreas Kling <akling@apple.com>
RenderElement::isChildAllowed() should take const references.
<https://webkit.org/b/122870>
Reviewed by Anders Carlsson.
The isChildAllowed() functions expect non-null values to be passed,
so enforce this at compile-time.
Reordered some checks to do bit tests before virtual calls.
2013-10-15 Philippe Normand <pnormand@igalia.com>
[GStreamer] video info unset if upstream doesn't query allocation
https://bugs.webkit.org/show_bug.cgi?id=122834
Reviewed by Gustavo Noronha Silva.
* platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
(webkitVideoSinkRender): If the sink didn't process any allocation
query then use the configured source pad caps and don't rely on
invalid video info.
2013-10-16 Philippe Normand <pnormand@igalia.com>
[GStreamer] move Logging.h include to GStreamerUtilities.h
https://bugs.webkit.org/show_bug.cgi?id=122886
Reviewed by Gustavo Noronha Silva.
Include Logging.h from GStreamerUtilities.h so the modules using
the LOG_MEDIA macros don't need to bother, especially for Debug builds.
* platform/graphics/gstreamer/GStreamerUtilities.h:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
* platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
2013-10-16 Mark Rowe <mrowe@apple.com>
Fix the build after r157478.
Rubber-stamped by Tim Horton.
Due to the way WebCore.exp.in is used, it can't be used to export a differing set of symbols
for different architectures. We often work around this by tweaking code slightly to avoid
needing to export different symbols. However, in this case the symbol name itself encodes an
architecture-specific detail and there's no clear way to avoid the requirement to export it.
To deal with this case we turn to ld's support for wildcards in the symbol export list.
* WebCore.exp.in: Use wildcards in place of the number that represents by how much "this"
should be adjusted when calling through the vtable thunk. Also sort the remainder of the file.
* make-export-file-generator: Don't attempt to verify symbol names that contain wildcard characters.
2013-10-15 Tim Horton <timothy_horton@apple.com>
Two more exports for 32-bit build fix.
The duality of CGFloat means that we use a different
version of getRGBA (and the cast operator)
on 32-bit systems.
* WebCore.exp.in:
2013-10-15 Tim Horton <timothy_horton@apple.com>
Another shot at a build fix; apparently these
do need exporting for some reason, but are different
on 32-bit.
* WebCore.exp.in:
2013-10-15 Alexey Proskuryakov <ap@apple.com>
GenerateIsReachable=ImplContext is confusing
https://bugs.webkit.org/show_bug.cgi?id=122864
Reviewed by Geoffrey Garen.
Renamed to ImplWebGLRenderingContext.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):
* bindings/scripts/IDLAttributes.txt:
* html/canvas/EXTDrawBuffers.idl:
* html/canvas/EXTTextureFilterAnisotropic.idl:
* html/canvas/OESElementIndexUint.idl:
* html/canvas/OESStandardDerivatives.idl:
* html/canvas/OESTextureFloat.idl:
* html/canvas/OESTextureHalfFloat.idl:
* html/canvas/OESVertexArrayObject.idl:
* html/canvas/WebGLCompressedTextureATC.idl:
* html/canvas/WebGLCompressedTexturePVRTC.idl:
* html/canvas/WebGLCompressedTextureS3TC.idl:
* html/canvas/WebGLDebugRendererInfo.idl:
* html/canvas/WebGLDebugShaders.idl:
* html/canvas/WebGLDepthTexture.idl:
* html/canvas/WebGLLoseContext.idl:
* WebCore.xcodeproj/project.pbxproj: While at it, added OESElementIndexUint.idl
to Xcode project.
2013-10-15 Tim Horton <timothy_horton@apple.com>
Unreviewed build fix; I don't know how to export.
This may not help.
* WebCore.exp.in:
2013-10-15 Dean Jackson <dino@apple.com>
Add ENABLE_WEB_ANIMATIONS flag
https://bugs.webkit.org/show_bug.cgi?id=122871
Reviewed by Tim Horton.
Eventually might be http://dev.w3.org/fxtf/web-animations/
but this is just engine-internal work at the moment.
* Configurations/FeatureDefines.xcconfig:
2013-10-15 Tim Horton <timothy_horton@apple.com>
Add a PlatformCALayer subclass that proxies its property changes across the process boundary
https://bugs.webkit.org/show_bug.cgi?id=122773
Reviewed by Anders Carlsson.
No new tests, the new drawing area is not yet testable.
* WebCore.exp.in:
Export lots of GraphicsLayerCA stuff so we can inherit from it in WebKit2.
* WebCore.xcodeproj/project.pbxproj:
Make PlatformCAFilters.h a private header.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::initialize):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayer::create):
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::initialize):
* platform/graphics/ca/GraphicsLayerCA.h:
Defer creation of the main PlatformCALayer until just after the constructor is finished
so that GraphicsLayerCA subclasses can successfully override createPlatformCALayer.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::platformLayer):
Make platformLayer virtual so that subclasses which don't have PlatformLayers can override.
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
REGRESSION: Crash in XMLDocumentParser::startElementNs
https://bugs.webkit.org/show_bug.cgi?id=122817
Reviewed by Darin Adler.
Exit early in startElementNs when listeners and handlers of synchronous events such as load event
removes the inserted node inside parserAppendChild.
Test: fast/parser/xhtml-synchronous-detach-crash.html
* xml/parser/XMLDocumentParserLibxml2.cpp:
(WebCore::XMLDocumentParser::startElementNs):
2013-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove old frontend localizedStrings.js
https://bugs.webkit.org/show_bug.cgi?id=122846
Reviewed by Timothy Hatcher.
* Configurations/WebCore.xcconfig:
* English.lproj/localizedStrings.js: Removed.
* WebCore.xcodeproj/project.pbxproj:
Remove the file and references to it. We no longer need to exclude
localizedString.js from some builds.
2013-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove Windows old front-end related code
https://bugs.webkit.org/show_bug.cgi?id=122845
Reviewed by Brent Fulgham.
* WebCore.vcxproj/copyWebCoreResourceFiles.cmd:
2013-10-15 Morten Stenshorne <mstensho@opera.com>
Add support for the column-fill property
https://bugs.webkit.org/show_bug.cgi?id=117693
Reviewed by David Hyatt.
This is only supported in the (new) region based multicol implementation.
With column-fill support, a lot of multicol tests needed an update.
The old implementation behaved as if column-fill were 'auto', but the
initial value is 'balance', so now we need to be explicit about that.
For auto-height tests it doesn't really matter - such multicols are always
balanced anyway.
Tests: fast/multicol/newmulticol/fixed-height-fill-auto.html
fast/multicol/newmulticol/fixed-height-fill-balance.html
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
* css/CSSParser.cpp:
(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
* css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ColumnFill):
* css/CSSPropertyNames.in:
* css/CSSValueKeywords.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
* rendering/RenderMultiColumnBlock.h:
* rendering/style/RenderStyle.h:
* rendering/style/RenderStyleConstants.h:
* rendering/style/StyleMultiColData.cpp:
(WebCore::StyleMultiColData::StyleMultiColData):
(WebCore::StyleMultiColData::operator==):
* rendering/style/StyleMultiColData.h:
2013-10-15 Andreas Kling <akling@apple.com>
Skip unnecessary null check in RenderText::textLength().
<https://webkit.org/b/122841>
Reviewed by Antti Koivisto.
RenderText will never have a null String in m_text, so textLength()
can grab at the StringImpl directly, avoiding a null check.
2013-10-15 Andreas Kling <akling@apple.com>
FontGenericFamilies should not be ref-counted.
<https://webkit.org/b/122835>
Reviewed by Anders Carlsson.
FontGenericFamilies is singly-owned by Settings.
2013-10-15 Zoltan Horvath <zoltan@webkit.org>
[CSS Shapes] Move RenderBlock::layoutShapeInsideInfo into RenderBlock.cpp
http://bugs.webkit.org/show_bug.cgi?id=122843
Reviewed by Oliver Hunt.
Historically, layoutShapeInsideInfo was a static function in RenderBlockLineLayout, then it has changed to be a member of RenderBlock,
but at that time it hasn't been moved to RenderBlock.cpp. This patch moves it into RenderBlock.cpp next to the Shapes functions. I removed
an unnecessary CSS_SHAPES #ifdef as well from RenderBlock.cpp.
No new tests, no behavior change.
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::markShapeInsideDescendantsForLayout):
(WebCore::RenderBlock::layoutShapeInsideInfo):
* rendering/RenderBlockLineLayout.cpp:
2013-10-15 peavo@outlook.com <peavo@outlook.com>
[WinCairo] Build fails.
https://bugs.webkit.org/show_bug.cgi?id=122830
Reviewed by Brent Fulgham.
* platform/network/NetworkStorageSessionStub.cpp:
(WebCore::NetworkStorageSession::createPrivateBrowsingSession): Update to new return type.
2013-10-15 Andreas Kling <akling@apple.com>
FileIconLoader should not be ref-counted.
<https://webkit.org/b/122827>
FileIconLoader is singly-owned by FileInputType.
Reviewed by Antti Koivisto.
2013-10-15 Andreas Kling <akling@apple.com>
RenderText should cache RenderStyle in locals more.
<https://webkit.org/b/122823>
Reviewed by Antti Koivisto.
Now that fetching the RenderStyle has to go through the parent,
we should avoid unnecessary loads by caching style() in a local.
2013-10-15 Ryosuke Niwa <rniwa@webkit.org>
Remove redundant Document::getElementById
https://bugs.webkit.org/show_bug.cgi?id=122813
Reviewed by Andreas Kling.
Merge https://chromium.googlesource.com/chromium/blink/+/4e8f1c5316415614b84370c602beae4a1008299f
This function simply calls virtual TreeScope::getElementById and Document inherits from TreeScope.
* WebCore.exp.in:
* dom/Document.cpp:
* dom/Document.h:
2013-10-14 Santosh Mahto <santosh.ma@samsung.com>
in safari,the background-color of input[type="search"] can't work
https://bugs.webkit.org/show_bug.cgi?id=119967
Reviewed by Ryosuke Niwa.
When input type=search is styled with css background property then
it does not change the background-color of field. Its happening becasue
search field is not counted as styled control. Thus theme ignores the
css background property. With this patch search field is also counted as
styled control so background property reflects on search field.
Test: fast/forms/search/search-field-background-color.html
* rendering/RenderTheme.cpp:
(WebCore::RenderTheme::isControlStyled):Now search field is also
a styled control.
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
EventPath::updateTouchLists traverses through EventPath thrice
https://bugs.webkit.org/show_bug.cgi?id=122804
Reviewed by Benjamin Poulain.
Instead of traversing through EventPath for each TouchList, traverse through TouchList for every EventContext.
This paves our way to have one-pass traversal over EventPath, and evetually to remove EventContext altogether.
This change should also improve the cache hit rate since all Touch objects tend to be allocated at the same time
but this performance improvement is probably not observable.
* dom/EventContext.h:
* dom/EventDispatcher.cpp:
(WebCore::EventRelatedNodeResolver::EventRelatedNodeResolver): Added a new constructor that takes Touch and
and TouchListType. We need to store these two values in order to update EventContext later.
(WebCore::EventRelatedNodeResolver::touch): Added,
(WebCore::EventRelatedNodeResolver::touchListType): Added.
(WebCore::addRelatedNodeResolversForTouchList): Extracted from updateTouchListsInEventPath.
(WebCore::EventPath::updateTouchLists): Moved the loop over m_path here. Notice that the outer loop iterates
over m_path instead of touchList as done in updateTouchListsInEventPath. The inner loop goes through resolvers
and adds Touch objects each EventContext as needed.
2013-10-14 Alexey Proskuryakov <ap@apple.com>
Don't generate a wasteful isObservable check in isReachableFromOpaqueRoots
https://bugs.webkit.org/show_bug.cgi?id=122802
Reviewed by Mark Hahnenberg.
* bindings/scripts/CodeGeneratorJS.pm: (GenerateImplementation): Don't.
* bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
* bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
* bindings/scripts/test/JS/JSTestEventConstructor.cpp:
* bindings/scripts/test/JS/JSTestEventTarget.cpp:
* bindings/scripts/test/JS/JSTestException.cpp:
* bindings/scripts/test/JS/JSTestInterface.cpp:
* bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
* bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
* bindings/scripts/test/JS/JSTestObj.cpp:
* bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
* bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
* bindings/scripts/test/JS/JSTestTypedefs.cpp:
* bindings/scripts/test/JS/JSattribute.cpp:
* bindings/scripts/test/JS/JSreadonly.cpp:
Updated results.
2013-10-14 Samuel White <samuel_white@apple.com>
AX: fieldset should have GroupRole and legend should be description.
https://bugs.webkit.org/show_bug.cgi?id=122534
Reviewed by Chris Fleizach.
Changes fieldset to derive AXDescription from legend if one is available. Added
convenience method to AccessibilityObject to fetch element if available.
Test: accessibility/fieldset-element.html
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::canHaveChildren):
(WebCore::AccessibilityNodeObject::alternativeText):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::element):
(WebCore::AccessibilityObject::isARIAHidden):
(WebCore::AccessibilityObject::isDOMHidden):
(WebCore::AccessibilityObject::defaultObjectInclusion):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isHidden):
* accessibility/AccessibilitySlider.cpp:
(WebCore::AccessibilitySlider::getAttribute):
(WebCore::AccessibilitySlider::valueForRange):
(WebCore::AccessibilitySlider::maxValueForRange):
(WebCore::AccessibilitySlider::minValueForRange):
(WebCore::AccessibilitySlider::setValue):
(WebCore::AccessibilitySlider::inputElement):
* accessibility/AccessibilitySlider.h:
* accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
* html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::legend):
* html/HTMLFieldSetElement.h:
2013-10-14 Roger Fong <roger_fong@apple.com>
Windows select element doesn't draw RTL properly.
https://bugs.webkit.org/show_bug.cgi?id=122785.
Reviewed by Brent Fulgham.
Covered by fast/text/international/pop-up-button-text-alignment-and-direction.html.
Problems include the popup items not drawing on the right hand side and
not respecting the direction or the directional override styling of the option.
The selected element (drawn in the actual select element) also doesn't respect
the style settings of the selected menu option.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::paint):
2013-10-14 Roger Fong <roger_fong@apple.com>
[Windows] Unreviewed build fix.
* WebCore.vcxproj/WebCoreCommon.props:
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
Crash in WebCore::BidiResolver<WebCore::InlineIterator, WebCore::BidiRun>::createBidiRunsForLine
https://bugs.webkit.org/show_bug.cgi?id=122776
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/aca89bc4d984705a1f94b623dae0ab03e239a248
Fix modification of whitespace endpoints to not assume it's operating on RenderTexts
During line layout, we use midpoints to identify RenderObjects, or parts of
RenderObjects, that don't need InlineBoxes, usually because of collapsed whitespace.
Prior to actually creating BidiRuns (the precursor to InlineBoxes), we use
checkMidpoints to fix up our lineMidpointState to handle the case where we start
ignoring spaces in our line, but don't stop until somewhere on the following line.
Previously, this function assumed that the final midpoint (called an endpoint)
was a RenderText, but this assumption is wrong if we have a beginning midpoint
created by shouldSkipWhitespaceAfterStartObject (which handles inlines and list
markers) and no endpoint on that line. In that case, we'd instead adjust the
position backwards on the beginning midpoint, which would cause us to fail to
create an InlineBox for the inline or list marker. In the new test added, this
would actually trigger a crash due to an assumption when visually re-ordering
BidiRuns that a non-empty line would actually contain at least one such run.
Test: fast/text/whitespace/whitespace-and-margin-wrap-after-list-marker-crash.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::checkMidpoints):
2013-10-14 Ryosuke Niwa <rniwa@webkit.org>
Assertion failure in Range::processContentsBetweenOffsets
https://bugs.webkit.org/show_bug.cgi?id=122777
Reviewed by Darin Adler.
Merge https://chromium.googlesource.com/chromium/blink/+/c15de182774c7859c20d97126eb844ae97b792a4
This patch changes ASSERT statements for checking |endOffset| inbound in Range::processContentsBetweenOffsets()
to limit |endOffset|. This is necessary when DOMNodeRemovedFromDocument event handler splits text nodes,
Range::insertNode() on text node, in the range calling Range::deleteContents().
Test: fast/dom/Range/range-delete-contents-mutation-event-crash.html
* dom/Range.cpp:
(WebCore::Range::processContentsBetweenOffsets):
2013-10-14 Alexey Proskuryakov <ap@apple.com>
Add an empty window.crypto.webkitSubtle
https://bugs.webkit.org/show_bug.cgi?id=122778
Reviewed by Mark Hahnenberg.
Tests: security/crypto-subtle-gc-2.html
security/crypto-subtle-gc-3.html
security/crypto-subtle-gc.html
* DerivedSources.make: Process SubtleCrypto.idl.
* crypto: Added.
* WebCore.xcodeproj/project.pbxproj:
* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* GNUmakefile.list.am:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* bindings/js/JSSubtleCryptoCustom.cpp: Added. Empty for now, but we'll certainly
need custom bindings code here.
* crypto/SubtleCrypto.cpp: Added.
(WebCore::SubtleCrypto::SubtleCrypto):
(WebCore::SubtleCrypto::document):
* crypto/SubtleCrypto.h: Added.
* crypto/SubtleCrypto.idl: Added.
* page/Crypto.cpp:
(WebCore::Crypto::subtle):
* page/Crypto.h:
* page/Crypto.idl:
2013-10-14 Nick Diego Yamane <nick.yamane@openbossa.org>
Remove GestureEvent leftovers from WebCore
<https://webkit.org/b/122780>
Reviewed by Anders Carlsson.
- Removed some remaining references to PlatformGestureEvent, supposed to
be removed by r157316
- TOUCH_ADJUSTMENT should be reworked after GestureEvent feature
removal
* page/EventHandler.cpp:
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):
* page/EventHandler.h:
* platform/PlatformEvent.h:
* platform/ScrollAnimatorNone.cpp:
* platform/ScrollableArea.h:
2013-10-14 Nick Diego Yamane <nick.yamane@openbossa.org>
Build fix after r157366
http://bugs.webkit.org/show_bug.cgi?id=122783
When TOUCH_AJUSTMENT is enabled build fails due to some
refactors in TextRender functions.
Reviewed by Anders Carlsson.
* page/TouchAdjustment.cpp:
(WebCore::TouchAdjustment::appendContextSubtargetsForNode):
2013-10-14 Alexandru Chiculita <achicu@adobe.com>
The content of the DOM panel for iframes is not updated until the "onload" event
https://bugs.webkit.org/show_bug.cgi?id=122653
Reviewed by Darin Adler.
Test: http/tests/inspector-protocol/loading-iframe-document-node.html
Renamed InspectorDOMAgent::loadEventFired to InspectorDOMAgent::didCommitLoad and moved the call site
from InspectorInstrumentation::loadEventFiredImpl to InspectorInstrumentation::didCommitLoadImpl.
This is to make sure that it will invalidate the content of the iframe as soon as the frame navigates
to a different page. This way the new node can be retrieved as soon as the page has some content, and
not just when the page is fully loaded.
* inspector/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::didCommitLoad): Renamed from loadEventFired, as it is now called from
didCommitLoadImpl instead.
(WebCore::InspectorDOMAgent::frameDocumentUpdated): Updated comment to point to the new function name.
* inspector/InspectorDOMAgent.h:
* inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::loadEventFiredImpl): Removed call do InspectorDOMAgent.loadEventFired.
(WebCore::InspectorInstrumentation::didCommitLoadImpl): Added call to InspectorDOMAgent.didCommitLoad.
2013-10-14 Roger Fong <roger_fong@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=122774.
<rdar://problem/6138855>.
Reviewed by Brent Fulgham.
Add a field to keep track of hovered over index.
Use index to determine whether or not to use the existing selected index on the mouse down event.
* platform/win/PopupMenuWin.cpp:
(WebCore::PopupMenuWin::PopupMenuWin):
(WebCore::PopupMenuWin::show):
(WebCore::PopupMenuWin::wndProc):
* platform/win/PopupMenuWin.h:
2013-10-14 Tim Horton <timothy_horton@apple.com>
Virtualize PlatformCALayer
https://bugs.webkit.org/show_bug.cgi?id=122672
Reviewed by Anders Carlsson.
No new tests, just a refactoring.
* WebCore.exp.in:
setGeometryFlipped is on PlatformCALayerMac now.
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
Add PlatformCALayer.cpp, PlatformCALayerWin.h, and let VS do its
thing with some other files.
* WebCore.xcodeproj/project.pbxproj:
Add PlatformCALayer.cpp and PlatformCALayerMac.h.
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::AVFWrapper::platformLayer):
Make a PlatformCALayerWin explicitly.
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::createPlatformCALayer):
Added. Decide whether to make a PlatformCALayer{Mac, Win} based on the platform.
Later, we will decide between other subclasses based on other things.
(WebCore::GraphicsLayerCA::filtersCanBeComposited):
Do the same thing for filtersCanBeComposited.
(WebCore::GraphicsLayerCA::GraphicsLayerCA):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToMedia):
(WebCore::GraphicsLayerCA::setContentsToCanvas):
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
Use createPlatformCALayer instead of PlatformCALayer::create.
* platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
For now, use the PlatformCALayerMac version of filtersCanBeComposited,
since this code is heavily tied to having CALayers in the Web process.
* platform/graphics/ca/GraphicsLayerCA.h:
Include PlatformCALayer.h here so we can get the LayerType enum.
(NOTE-to-be-removed: if there's a better way to do this, I'm open to
suggestions; I couldn't puzzle out nested 'enum class' stuff).
Add the createPlatformCALayers.
* platform/graphics/ca/PlatformCAAnimation.h:
Friend the subclasses too.
* platform/graphics/ca/PlatformCALayer.cpp: Added.
(WebCore::PlatformCALayer::~PlatformCALayer):
Pull the shared part of the PlatformCALayer destructor out.
* platform/graphics/ca/PlatformCALayer.h:
(WebCore::PlatformCALayer::platformLayer):
(WebCore::PlatformCALayer::setOwner):
(WebCore::PlatformCALayer::PlatformCALayer):
Virtualize all the things. Move platform specific members to their new subclasses.
* platform/graphics/ca/mac/PlatformCALayerMac.h: Added.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
Move the PLATFORM(MAC) implementations from PlatformCALayer to PlatformCALayerMac.
(PlatformCALayer::platformCALayer):
The platformCALayer lookup function is static on PlatformCALayer, so it can't
be moved to the subclasses. It might be a good idea in the future to move towards
a platform-independent mechanism for looking up PlatformCALayers from PlatformLayers,
and to avoid needing to do this as often as we do now.
* platform/graphics/ca/win/CACFLayerTreeHost.cpp:
(WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
Move the PLATFORM(WIN) implementations from PlatformCALayer to PlatformCALayerWin.
(PlatformCALayerWin::create):
(PlatformCALayer::platformCALayer):
* platform/graphics/ca/win/PlatformCALayerWin.h: Added.
* platform/graphics/win/GraphicsContext3DWin.cpp:
(WebCore::GraphicsContext3D::GraphicsContext3D):
* platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
(WebCore::MediaPlayerPrivateQuickTimeVisualContext::createLayerForMovie):
Include PlatformCALayerWin.h and explicitly make PlatformCALayerWins here.
2013-10-14 Hugo Parente Lima <hugo.lima@openbossa.org>
[cmake] MediaControlsApple is used only by Efl port and is on CMakeLists.txt
https://bugs.webkit.org/show_bug.cgi?id=122772
Reviewed by Anders Carlsson.
* CMakeLists.txt: Removed MediaControlsApple.cpp
* PlatformEfl.cmake: Added MediaControlsApple.cpp
2013-10-14 Alexey Proskuryakov <ap@apple.com>
window.crypto doesn't preserve custom properties
https://bugs.webkit.org/show_bug.cgi?id=122770
Reviewed by Mark Hahnenberg.
Test: security/crypto-gc.html
Generate isReachableFromOpaqueRoots that makes Crypto live as long as the document
lives (because that's when it's observable through window object).
* page/Crypto.cpp:
(WebCore::Crypto::Crypto):
(WebCore::Crypto::~Crypto):
(WebCore::Crypto::document):
* page/Crypto.h:
(WebCore::Crypto::create):
Made Crypto a ContextDestructionObserver, so that it can report its document to bindings.
Removed ScriptWrappable, because it seems to have served no purpose in this class.
* page/Crypto.idl: Added GenerateIsReachable. Removed ImplementationLacksVTable,
because the class now has a vtable, and can be checked for bindings integrity.
* page/DOMWindow.cpp: (WebCore::DOMWindow::crypto): Pass a document when creating
crypto.
2013-10-14 Andreas Kling <akling@apple.com>
CTTE: NamedNodeMap always has a corresponding Element.
<https://webkit.org/b/122769>
Reviewed by Anders Carlsson.
Made NamedNodeMap::m_element a reference and remove an assertion
that it's never null.
2013-10-14 Andreas Kling <akling@apple.com>
REGRESSION(r157408): Crashes in RenderFullScreen::wrapRenderer().
Unreviewed crash fix for these two tests:
- fullscreen/full-screen-restrictions.html
- fullscreen/empty-anonymous-block-continuation-crash.html
* rendering/RenderFullScreen.cpp:
(RenderFullScreen::wrapRenderer):
Get the RenderArena from Document like we did before this patch.
2013-10-14 Hans Muller <hmuller@adobe.com>
[CSS Shapes] Image valued shape-outside shapes should update the layout after the image has been loaded
https://bugs.webkit.org/show_bug.cgi?id=122340
Reviewed by Simon Fraser.
Ensure that the an image-valued shape-outside layout is updated after the image has
been loaded.
Test: http/tests/css/css-image-valued-shape.html
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::imageChanged): Added code for the shape-outside case.
(WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Ditto.
* rendering/RenderElement.cpp:
(WebCore::RenderElement::~RenderElement): Ditto.
(WebCore::RenderElement::setStyle): Ditto.
2013-10-14 Andreas Kling <akling@apple.com>
Remove some silly null checks in Element/NamedNodeMap.
<https://webkit.org/b/122767>
Reviewed by Darin Adler.
Make shouldIgnoreAttributeCase() take a const Element&, exposing
some unnecessary null checks.
2013-10-14 Brent Fulgham <bfulgham@apple.com>
[Win] Build fix after r122737.
* dom/Node.h: Add explicit WebCore namespace to macro definition to work around
Visual Studio bug.
2013-10-14 Andreas Kling <akling@apple.com>
Pass Document directly to anonymous renderer constructors.
<https://webkit.org/b/122752>
Reviewed by Antti Koivisto.
Added separate constructors for creating anonymous renderers that
take a Document& instead of a null Element*/Text*.
Removed setDocumentForAnonymous() and all createAnonymous() helpers.
...and RenderObject::m_node is now a Node&, wohoo!
2013-10-13 Sam Weinig <sam@webkit.org>
CTTE: Add more node conversion helpers
https://bugs.webkit.org/show_bug.cgi?id=122737
Reviewed by Darin Adler.
- Factor NODE_TYPE_CASTS into TYPE_CASTS_BASE(ToClassName, FromClassName)
to allow for DOCUMENT_TYPE_CASTS.
- Replace more static_casts<>.
2013-10-14 Zan Dobersek <zdobersek@igalia.com>
Reintroduce PassRefPtr<Event> copy in ScopedEventQueue::dispatchEvent
https://bugs.webkit.org/show_bug.cgi?id=122742
Reviewed by Alexey Proskuryakov.
This is a follow-up to r157219 which introduced a workaround for the GCC's quirky behavior that
was resulting in crashes due to the PassRefPtr<Event> object passed to EventDispatcher::dispatchEvent
being copied and nullified first before retrieving the EventTarget of the Event object wrapped in that
PassRefPtr.
The implementation is now adjusted to first retrieve the pointer to the Event's EventTarget and store
it in a local variable. That variable is then passed as the first parameter to EventDispatcher::dispatchEvent,
and the PassRefPtr<Event> passed directly as the second parameter. Previously the pointer of that PassRefPtr
object was passed in, with a new PassRefPtr being created which would increase the reference count of the
ref-counted object. Passing in the original PassRefPtr avoids the unnecessary reference count increase by creating
a copy. That still nullifies the original PassRefPtr, but that's not a problem anymore.
* dom/ScopedEventQueue.cpp:
(WebCore::ScopedEventQueue::dispatchEvent):
2013-10-14 Bear Travis <betravis@adobe.com>
[CSS Shapes] Shape-Margin should be animatable
https://bugs.webkit.org/show_bug.cgi?id=122524
Reviewed by Darin Adler.
Mark content for relayout after shape-margin changes, and add shape-margin
to the list of animatable properties.
Tests: fast/shapes/shape-outside-floats/shape-outside-dynamic-shape-margin.html
fast/shapes/shape-outside-floats/shape-outside-shape-margin-animation.html
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Add
shape-margin to the map of animatable CSS properties.
* rendering/RenderBox.cpp:
(WebCore::RenderBox::updateShapeOutsideInfoAfterStyleChange): Compare shape-margins,
and mark dependent content for relayout if they have changed.
2013-10-14 Arvid Nilsson <anilsson@blackberry.com>
Don't crash after OpenGL robustness reset
https://bugs.webkit.org/show_bug.cgi?id=122750
Reviewed by George Staikos.
JIRA 517132.
Just log the incident and pretend like nothing happened.
No new tests, we don't have repeatable steps to reproduce a robustness
reset.
* platform/graphics/blackberry/LayerRenderer.cpp:
(WebCore::LayerRenderer::makeContextCurrent):
2013-10-14 Krzysztof Czech <k.czech@samsung.com>
[EFL] Buildfix after r157393
https://bugs.webkit.org/show_bug.cgi?id=122749
Reviewed by Andreas Kling.
Buildfix with error enumeration value 'CSS_FR' not handled in switch.
* css/CSSCalculationValue.cpp:
(WebCore::hasDoubleValue):
2013-10-14 Krzysztof Czech <k.czech@samsung.com>
[EFL] Present replaced objects with 0xFFFC character
https://bugs.webkit.org/show_bug.cgi?id=122744
Reviewed by Mario Sanchez Prada.
Replaced elements should be emitted in GTK/EFL and
marked their presence with the replacement character.
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::textIteratorBehaviorForTextRange):
2013-09-16 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] Implement support for <flex>
https://bugs.webkit.org/show_bug.cgi?id=115362
Reviewed by Andreas Kling.
From Blink r149134, r149480, r149532, r150287 and r156127 by <jchaffraix@chromium.org>
From Blink r157820 by <svillar@igalia.com>
Added support for flexible lengths ('fr' unit) in CSS Grid Layout
code. This requires the addition of GridLength class to
encapsulate the knowledge of <flex> to the grid layout code.
Also updated the algorithm that computes the layout. It increases
the value of 1fr based on the grid tracks' usedBreath to fraction
ratio (called normalizedFractionValue). This enables increasing
the fraction value while updating the available space to account
for processed grid tracks. The algorithm stops when we run out of
grid tracks or available space (one grid item has an intrinsic
size too big). This matches the specs to the letter for the known
available space case (both the unknown case and the interaction
with 'span' are left out of this patch).
Tests: fast/css-grid-layout/flex-and-minmax-content-resolution-columns.html
fast/css-grid-layout/flex-and-minmax-content-resolution-rows.html
fast/css-grid-layout/flex-content-resolution-columns.html
fast/css-grid-layout/flex-content-resolution-rows.html
* GNUmakefile.list.am: Added GridLength.h to the build system.
* Target.pri: Ditto.
* WebCore.vcxproj/WebCore.vcxproj: Ditto.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.
* css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridTrackBreadth): Replace Length by GridLength.
* css/CSSGrammar.y.in: Added FR support.
* css/CSSParser.cpp: Ditto.
(WebCore::CSSParser::parseGridBreadth):
(WebCore::CSSParser::detectNumberToken):
* css/CSSParserValues.cpp: Added FR support.
(WebCore::CSSParserValue::createCSSValue):
* css/CSSParserValues.h:
(WebCore::CSSParserString::operator[]):
(WebCore::CSSParserString::equalIgnoringCase):
* css/CSSPrimitiveValue.cpp: Added FR support.
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::customCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):
* css/CSSPrimitiveValue.h: Added a couple of missing const.
(WebCore::CSSPrimitiveValue::isFlex):
* css/StyleResolver.cpp: Added FR support.
(WebCore::createGridTrackBreadth):
(WebCore::createGridTrackSize):
* rendering/RenderGrid.cpp:
(WebCore::GridTrackForNormalization::GridTrackForNormalization):
New helper struct to ease the computation of track breadths with
flexible lengths.
(WebCore::GridTrackForNormalization::operator=):
(WebCore::RenderGrid::computePreferredTrackWidth): Replaced Length by GridLength.
(WebCore::RenderGrid::computedUsedBreadthOfGridTracks): Grow grid lines
having a fraction as the MaxTrackSizingFunction.
(WebCore::RenderGrid::computeUsedBreadthOfMinLength): Replaced Length by GridLength.
(WebCore::RenderGrid::computeUsedBreadthOfMaxLength): Ditto.
(WebCore::sortByGridNormalizedFlexValue):
(WebCore::RenderGrid::computeNormalizedFractionBreadth): Increase
the fraction value while updating the available space to account
for processed grid tracks.
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::distributeSpaceToTracks): Never shrink track sizes.
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
* rendering/RenderGrid.h:
* rendering/style/GridLength.h: Added.
(WebCore::GridLength::GridLength):
(WebCore::GridLength::isLength):
(WebCore::GridLength::isFlex):
(WebCore::GridLength::length):
(WebCore::GridLength::flex):
(WebCore::GridLength::setFlex):
(WebCore::GridLength::operator==):
* rendering/style/GridTrackSize.h: Replaced Length by GridLength.
(WebCore::GridTrackSize::length):
(WebCore::GridTrackSize::setLength):
(WebCore::GridTrackSize::minTrackBreadth):
(WebCore::GridTrackSize::maxTrackBreadth):
(WebCore::GridTrackSize::setMinMax):
(WebCore::GridTrackSize::hasMinOrMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMinTrackBreadth):
(WebCore::GridTrackSize::hasMinOrMaxContentMaxTrackBreadth):
(WebCore::GridTrackSize::hasMaxContentMaxTrackBreadth):
2013-10-14 peavo@outlook.com <peavo@outlook.com>
Broken text rendering when input field has selection.
https://bugs.webkit.org/show_bug.cgi?id=122716
Reviewed by Antti Koivisto.
Tests: fast/text/text-rendering-with-input-selection.html.
fast/text/text-rendering-with-input-selection-expected.html.
* rendering/InlineTextBox.cpp:
(WebCore::InlineTextBox::paint): Check that text has selection.
2013-10-14 Zalan Bujtas <zalan@apple.com>
Unexpected word wrapping for wrapped content then raw content.
https://bugs.webkit.org/show_bug.cgi?id=121130
Reviewed by Antti Koivisto.
When deciding whether a line is considered empty, we need to check if the current
object is fully responsible for the currently uncommitted width. It helps differentiating
<span></span><span>abcd</span> from <span>a</span><span>bcd</span>, where in the first
case when we hit the second <span> the line is still considered empty, as opposed to the
second example.
Test: fast/css/unexpected-word-wrapping-with-non-empty-spans.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::LineBreaker::nextSegmentBreak):
2013-10-14 Andreas Kling <akling@apple.com>
Be more efficient about passing RenderStyle to attachRenderTree().
<https://webkit.org/b/122743>
Reviewed by Antti Koivisto.
Have attachRenderTree() and createRendererTreeIfNeeded() pass the
RenderStyle in a PassRefPtr to avoid churning the ref count.
2013-10-14 Sergio Villar Senin <svillar@igalia.com>
[CSS Grid Layout] 2 span positions are not resolved correctly
https://bugs.webkit.org/show_bug.cgi?id=119717
Reviewed by Andreas Kling.
From Blink r155397 by <jchaffraix@chromium.org>
Test: fast/css-grid-layout/grid-item-bad-resolution-double-span.html
Two opposite 'span' or 'auto' positions should be resolved using
the auto placement algorithm. We were only checking for the 'auto'
case. This also covers the case of other positions that, according
to the spec, should be treated as 'auto'.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::resolveGridPositionsFromStyle):
2013-10-13 Andreas Kling <akling@apple.com>
Use RenderElement instead of RenderObject in more places.
<https://webkit.org/b/122734>
Reviewed by Antti Koivisto.
Convert some sites to use RenderElement (or type inference) instead
of RenderObject for less branchy code.
2013-10-13 Darin Adler <darin@apple.com>
Deprecate or remove deleteAllValues functions; there are only a few call sites left
https://bugs.webkit.org/show_bug.cgi?id=122738
Reviewed by Anders Carlsson.
* platform/blackberry/CookieMap.cpp:
(WebCore::CookieMap::deleteAllCookiesAndDomains):
* platform/network/blackberry/rss/RSSParserBase.cpp:
(WebCore::RSSFeed::clear):
* platform/win/WCDataObject.cpp:
(WebCore::WCDataObject::~WCDataObject):
Renamed deleteAllValues to deprecatedDeleteAllValues.
2013-10-13 Sam Weinig <sam@webkit.org>
Merge NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS
https://bugs.webkit.org/show_bug.cgi?id=122735
Reviewed by Antti Koivisto.
NODE_TYPE_CASTS and ELEMENT_TYPE_CASTS are identical. Let them become one
with one another.
2013-10-13 Andreas Kling <akling@apple.com>
Uncrashify Document::head() too. (Why am I even awake?)
2013-10-13 Andreas Kling <akling@apple.com>
REGRESSION(r157381): Make Document::body() crash less when there is no documentElement.
Unreviewed.
2013-10-13 Darin Adler <darin@apple.com>
Rewrite Document::body and Document::head in modern style, way clearer and shorter
https://bugs.webkit.org/show_bug.cgi?id=122717
Reviewed by Andreas Kling.
* dom/Document.cpp:
(WebCore::Document::body): Use iterator to make this way easier to read.
(WebCore::Document::head): Ditto.
* html/HTMLTagNames.in: Added generateTypeHelpers for body and head.
== Rolled over to ChangeLog-2013-10-13 ==