diff options
Diffstat (limited to 'Source/WebCore/ChangeLog')
-rw-r--r-- | Source/WebCore/ChangeLog | 17177 |
1 files changed, 17177 insertions, 0 deletions
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index d523cdb..8078751 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,17180 @@ +2011-02-13 Mark Rowe <mrowe@apple.com> + + Reviewed by Maciej Stachowiak. + + <rdar://problem/8995490> WebCoreAuthenticationClientAsChallengeSender doesn't implement some necessary methods. + + * platform/network/mac/AuthenticationMac.mm: + (-[WebCoreAuthenticationClientAsChallengeSender performDefaultHandlingForAuthenticationChallenge:]): + (-[WebCoreAuthenticationClientAsChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]): + +2011-02-13 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Andreas Kling. + + Repeating gradients drawn incorrectly + https://bugs.webkit.org/show_bug.cgi?id=53502 + + The 'forward-fill' logic for repeating gradients used the wrong + starting stop index (0 rather than the original first index), which + resulted in incorrect gradients if backwards-fill had already been + applied. + + Test: fast/gradients/css3-repeating-end-fill.html + + * css/CSSGradientValue.cpp: + (WebCore::CSSGradientValue::addStops): + +2011-02-13 Benjamin Poulain <benjamin.poulain@nokia.com> + + Reviewed by Andreas Kling. + + Unused variable result in RenderBlock::addOverflowFromFloats() + https://bugs.webkit.org/show_bug.cgi?id=54363 + + Remove the unused variable. + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::addOverflowFromFloats): + +2011-02-13 Cameron Zwarich <zwarich@apple.com> + + Reviewed by Anders Carlsson. + + WebCore fails to build with Clang's -Woverloaded-virtual + https://bugs.webkit.org/show_bug.cgi?id=54367 + + * loader/PingLoader.h: + (WebCore::PingLoader::didReceiveData): Change the method signature to match the signature + in the base class. + +2011-02-13 Nico Weber <thakis@chromium.org> + + Reviewed by Anders Carlsson. + + RenderBR::width() tries but fails to override RenderText::width() + https://bugs.webkit.org/show_bug.cgi?id=54301 + + The superclass method's signature changed, e.g. in + http://trac.webkit.org/changeset/57215, but the subclass was not + updated. + + * rendering/RenderBR.h: + (WebCore::RenderBR::width): + +2011-02-13 Andreas Kling <kling@webkit.org> + + Reviewed by Dirk Schulze. + + Canvas: 2d.fillStyle.parse.system.html fails + https://bugs.webkit.org/show_bug.cgi?id=39168 + + Based on previous work by Julien Chaffraix <jchaffraix@codeaurora.org> + and Jan Erik Hanssen <jhanssen@sencha.com> + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseColor): Changed the function to better match our + early return policy. Also we now return false when we don't parse the color. + This is needed for createFromString to fallback to using parseSystemColor. + + (WebCore::CSSParser::parseSystemColor): Made use of the RenderTheme to get + the system colors. + + * css/CSSParser.h: Added the new parseSystemColor method. + + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::setStrokeColor): Pass the document to createFromString. + (WebCore::CanvasRenderingContext2D::setFillColor): Ditto. + + * html/canvas/CanvasStyle.cpp: + (WebCore::parseColor): + (WebCore::parseColorOrCurrentColor): + (WebCore::CanvasStyle::createFromString): Try to parse the color using CSSParser::parseColor + and fall back to parseSystemColor if it did not work. + + * html/canvas/CanvasStyle.h: Added the new Document* parameter to createFromString. + +2011-02-13 Jeremy Moskovich <jeremy@chromium.org> + + Reviewed by Adam Barth. + + Add a compile-time option to completely disable WebArchive support. + https://bugs.webkit.org/show_bug.cgi?id=52712 + + Add an ENABLE(WEB_ARCHIVE) compile-time setting and use it for all WebArchive code. + + ArchiveResource and ArchiveResourceCollection are notably still compiled in. They are used + in Safari for functionality such as "Save Image As" and Image copy & paste independent of + WebArchive support. + + Ports Affected: + WebArchive support is currently enabled for all ports that define PLATFORM(CF) apart from Qt. + This patch preserves this behavior except that it also disables support in the Chromium port. + + No behavior changes so no new tests. + + * WebCore.gyp/WebCore.gyp: Don't compile LegacyWebArchive.cpp and friends. + * WebCore.pro: Don't compile ArchiveFactory.cpp in Qt port. + * loader/DocumentLoader.cpp: Surround WebArchive code with #ifdef. + (WebCore::DocumentLoader::commitLoad): + (WebCore::DocumentLoader::setupForReplaceByMIMEType): + (WebCore::DocumentLoader::archiveResourceForURL): + * loader/DocumentLoader.h: + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::loadURLIntoChildFrame): + (WebCore::FrameLoader::stopAllLoaders): + (WebCore::FrameLoader::finishedLoadingDocument): + * loader/FrameLoader.h: + * loader/ResourceLoader.cpp: + (WebCore::ResourceLoader::start): + * loader/archive/ArchiveFactory.cpp: Remove #ifdef since feature is now enabled/disabled wholesale. + (WebCore::archiveMIMETypes): + * page/Settings.cpp: + * page/Settings.h: + * platform/MIMETypeRegistry.cpp: + (WebCore::initializeSupportedNonImageMimeTypes): + +2011-02-13 Aparna Nandyal <aparna.nand@wipro.com> + + Reviewed by Andreas Kling. + + [Qt] QtWebKit does not properly handle D&D of a percent-encoded URL. + https://bugs.webkit.org/show_bug.cgi?id=53320 + + The encoding that was done is corrected in the fix. + Replaced the KURL encoding function with QUrl API. + + * platform/qt/DragDataQt.cpp: + (WebCore::DragData::asURL): + +2011-02-13 Leo Yang <leo.yang.c@gmail.com> + + Reviewed by Andreas Kling. + + Unnecessary call of containingBlock() in RenderBoxModelObject::relativePositionOffsetX() + https://bugs.webkit.org/show_bug.cgi?id=54351 + + We were calling containingBlock() twice if the left is not auto. We only need to call it + once because we can use 'cb' variable in the following line. + + No functionality change, no new tests. + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::relativePositionOffsetX): + +2011-02-13 Jarred Nicholls <jarred@sencha.com> + + Reviewed by Simon Fraser. + + getComputedStyle returns wrong value for margin-right + https://bugs.webkit.org/show_bug.cgi?id=13343 + + Matching IE, Firefox, and Opera behavior by returning the computed margin + values as specified, rather than the used/auto values (calculated via RenderBox). + Also CSS 2.1+ compliant by returning margin percentage as specified, if applicable. + Note: Firefox and Opera return calculated fixed lengths for percentage margins, IE + returns the specified percentage. + + Tests: fast/css/getComputedStyle/getComputedStyle-margin-auto.html + fast/css/getComputedStyle/getComputedStyle-margin-length.html + fast/css/getComputedStyle/getComputedStyle-margin-percentage.html + + * css/CSSComputedStyleDeclaration.cpp: + (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): + +2011-02-13 Adam Barth <abarth@webkit.org> + + Reviewed by Sam Weinig. + + crypto.getRandomValues should throw TYPE_MISMATCH_ERR + https://bugs.webkit.org/show_bug.cgi?id=54346 + + As requested by Sam. + + * page/Crypto.cpp: + (WebCore::Crypto::getRandomValues): + +2011-02-13 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=54349 + Inline some accessors in PrintContext + + No change in behavior, so no tests. + + * WebCore.exp.in: + * page/PrintContext.cpp: + * page/PrintContext.h: + (WebCore::PrintContext::pageCount): + (WebCore::PrintContext::pageRect): + Inline pageCount() and pageRect() to match pageRects(). + +2011-02-13 Sam Weinig <sam@webkit.org> + + Roll r78424 [Extra scrolling required when scrolling with a scroll wheel (Mighty Mouse)] back + in with fixes to make it work with render layers. + + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation): + (WebCore::ScrollAnimatorMac::adjustScrollXPositionIfNecessary): + (WebCore::ScrollAnimatorMac::adjustScrollYPositionIfNecessary): + (WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary): + (WebCore::ScrollAnimatorMac::immediateScrollToPoint): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::RenderLayer): + (WebCore::RenderLayer::contentsSize): + (WebCore::RenderLayer::visibleHeight): + (WebCore::RenderLayer::visibleWidth): + (WebCore::RenderLayer::updateScrollInfoAfterLayout): + * rendering/RenderLayer.h: + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::visibleHeight): + (WebCore::RenderListBox::visibleWidth): + * rendering/RenderListBox.h: + +2011-02-13 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Some Scrollbar functions assume an attached ScrollableArea but can be called without one + https://bugs.webkit.org/show_bug.cgi?id=54262 + + Make sure that all calls to the scrollable area are null checked. + + * platform/Scrollbar.cpp: + (WebCore::Scrollbar::autoscrollPressedPart): + (WebCore::Scrollbar::moveThumb): + (WebCore::Scrollbar::mouseMoved): + +2011-02-13 Sam Weinig <sam@webkit.org> + + Roll out r78424. It broke a bunch of tests. + + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation): + (WebCore::ScrollAnimatorMac::immediateScrollToPoint): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY): + * rendering/RenderLayer.cpp: + * rendering/RenderLayer.h: + (WebCore::RenderLayer::contentsSize): + * rendering/RenderListBox.cpp: + * rendering/RenderListBox.h: + +2011-02-12 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + WK2: Extra scrolling required when scrolling with a scroll wheel (Mighty Mouse) + <rdar://problem/8984760> + + When going down the smooth scroll path, constrained scrolls (such as those from a + Mighty Mouse) were being correctly constrained at the ScrollView level, but the + duplicate values being stored by the animator were not being constrained correctly. + + In order to implement the constraint at this level, more of the ScrollableArea's API + needed to be filled in for RenderLayer and RenderListBox. + + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation): Call immediateScrollToPoint to stay + consistent and get the desired behavior. + + (WebCore::ScrollAnimatorMac::adjustScrollXPositionIfNecessary): + (WebCore::ScrollAnimatorMac::adjustScrollYPositionIfNecessary): + (WebCore::ScrollAnimatorMac::adjustScrollPositionIfNecessary): + (WebCore::ScrollAnimatorMac::immediateScrollToPoint): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY): + Ensure that the scroll animators view of the current scroll position is the + same as the scrollable areas by correctly clamping the value. + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::contentsSize): Correct implementation + to use the scroll size, not the visible size. + (WebCore::RenderLayer::visibleHeight): + (WebCore::RenderLayer::visibleWidth): + * rendering/RenderLayer.h: + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::visibleHeight): + (WebCore::RenderListBox::visibleWidth): + * rendering/RenderListBox.h: + Add implementations for visibleHeight/visibleWidth. + +2011-02-12 Adam Barth <abarth@webkit.org> + + Reviewed by Sam Weinig. + + crypto.getRandomValues should support all integer array types + https://bugs.webkit.org/show_bug.cgi?id=54342 + + As discussed on whatwg, we should support all the integer array types. + + Test: security/crypto-random-values-types.html + + * page/Crypto.cpp: + (WebCore::Crypto::getRandomValues): + +2011-02-12 Adam Barth <abarth@webkit.org> + + Reviewed by Mark Rowe. + + Use /dev/urandom as the OSRandomSource on OS(DARWIN) + https://bugs.webkit.org/show_bug.cgi?id=54279 + + Update the ifdef. OS(UNIX) includes OS(DARWIN), so this change is + should be a NOP. + + * config.h: + +2011-02-11 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + [chromium] Allow turning off multisampling through web preference settings + https://bugs.webkit.org/show_bug.cgi?id=54321 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::create): Disable multisampling in WebGL if web reference says so. + * page/Settings.cpp: Add a flag for multisampling preference. + (WebCore::Settings::Settings): + (WebCore::Settings::setOpenGLMultisamplingEnabled): + * page/Settings.h: Ditto. + (WebCore::Settings::openGLMultisamplingEnabled): + +2011-02-12 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Tony Chang. + + Deploy EditingStyle in applyBlockStyle and applyInlineStyle + https://bugs.webkit.org/show_bug.cgi?id=53911 + + Deployed EditingStyle in ApplyStyleCommand::applyBlockStyle and ApplyStyleCommand::applyInlineStyle. + Extracted EditingStyle::extractAndRemoveTextDirection from applyInlineStyle. + Also added propertiesToInclude to the argument list of EditingStyle's constructor that takes Node* + so that splitAncestorsWithUnicodeBidi can call EditingStyle::textDirection to obtain the text direction. + + No new tests are added since this is a refactoring. + + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::doApply): Passes EditingStyle* to applyBlockStyle and applyInlineStyle. + (WebCore::ApplyStyleCommand::applyBlockStyle): Takes EditingStyle*. + (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): Changed the type of allowedDirection + from int to WritingDirection. Uses EditingStyle's textDirection to obtain the writing direction. + (WebCore::ApplyStyleCommand::applyInlineStyle): Takes EditingStyle*. + (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Allows style to be null; exit early instead. + (WebCore::ApplyStyleCommand::removeImplicitlyStyledElement): Asserts that style is not null. + (WebCore::ApplyStyleCommand::removeInlineStyle): Allows style to be null. + * editing/ApplyStyleCommand.h: Includes WritingDirection.h; prototype changes. + * editing/EditingStyle.cpp: + (WebCore::EditingStyle::EditingStyle): Added PropertiesToInclude to the argument. + (WebCore::EditingStyle::init): Supports PropertiesToInclude. + (WebCore::EditingStyle::extractAndRemoveTextDirection): Extracted from applyInlineStyle. + * editing/EditingStyle.h: + (WebCore::EditingStyle::create): Supports PropertiesToInclude. + +2011-02-12 Jochen Eisinger <jochen@chromium.org> + + Reviewed by Jeremy Orlow. + + Implement IDBObjectStore::clear + https://bugs.webkit.org/show_bug.cgi?id=54193 + + Test: storage/indexeddb/objectstore-clear.html + + * storage/IDBObjectStore.cpp: + (WebCore::IDBObjectStore::clear): + * storage/IDBObjectStore.h: + * storage/IDBObjectStore.idl: + * storage/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::clear): + (WebCore::doDelete): + (WebCore::IDBObjectStoreBackendImpl::clearInternal): + * storage/IDBObjectStoreBackendImpl.h: + * storage/IDBObjectStoreBackendInterface.h: + +2011-02-12 Adam Barth <abarth@webkit.org> + + Another attempt to fix the EFL build. Looks like we're missing one + more file. + + * CMakeLists.txt: + +2011-02-12 Adam Barth <abarth@webkit.org> + + Attempt to fix the EFL build. Apparently the CMake build had no + concept of ArrayBuffers. + + * CMakeLists.txt: + +2011-02-12 Ryosuke Niwa <rniwa@webkit.org> + + Unreviewed build fix. + + * dom/Range.cpp: + (WebCore::lengthOfContentsInNode): Replaced static const unsigned LengthOfContentsInNode. + (WebCore::Range::processContents): + (WebCore::Range::processContentsBetweenOffsets): + +2011-02-12 Adam Barth <abarth@webkit.org> + + CPP files belong in SOURCES not in HEADERS. There are more errors like + this for other disabled features, but I'm not fixing them in this + patch. + + * WebCore.pro: + +2011-02-12 Adam Barth <abarth@webkit.org> + + Apparently lines in .pro files need to be \-terminated. + + * WebCore.pro: + +2011-02-11 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Darin Adler. + + Extract a function to process contents for one node from Range::processContents + https://bugs.webkit.org/show_bug.cgi?id=54282 + + Extracted Range::processContentsBetweenOffsets, which process contents of a node + between two offsets. This function is used for the simple case where the start + and the end containers are of the same node, and to process start and end containers + in the complex case. + + When the function takes a non-null fragment (simple case), it appends the processed + contents to the fragment; character data and processing instruction's contents are copied + between the offsets, and descendants are copied for node of other types (not node itself). + + When the fragment is null (complex case), the function copies contents of character data, + processing instruction, and node of other types (including node itself). + + No new tests are added since this is a refactoring. + + * dom/Range.cpp: + (WebCore::highestAncestorUnderCommonRoot): Added. + (WebCore::Range::processContents): Calls highestAncestorUnderCommonRoot and + processContentsBetweenOffsets. + (WebCore::Range::processContentsBetweenOffsets): Added. + * dom/Range.h: + +2011-02-12 Adam Barth <abarth@webkit.org> + + Attempt to fix the Qt Windows build. + + * WebCore.pro: + +2011-02-12 Adam Barth <abarth@webkit.org> + + Reviewed by Kenneth Russell. + + Enable ArrayBuffers by default + https://bugs.webkit.org/show_bug.cgi?id=54310 + + As discussed on webkit-dev, ArrayBuffers are used by a bunch of + different APIs, implemented by Firefox, and appear to be stable. + Keeping them conditional is a large mantainance burden than it's worth. + + * DerivedSources.cpp: + * WebCore.vcproj/WebCore.vcproj: + * bindings/generic/RuntimeEnabledFeatures.h: + (WebCore::RuntimeEnabledFeatures::setWebGLEnabled): + * bindings/js/JSArrayBufferCustom.cpp: + * bindings/js/JSBindingsAllInOne.cpp: + * bindings/js/JSDOMWindowCustom.cpp: + * bindings/js/JSDataViewCustom.cpp: + * bindings/js/JSFloat32ArrayCustom.cpp: + * bindings/js/JSInt16ArrayCustom.cpp: + * bindings/js/JSInt32ArrayCustom.cpp: + * bindings/js/JSInt8ArrayCustom.cpp: + * bindings/js/JSUint16ArrayCustom.cpp: + * bindings/js/JSUint32ArrayCustom.cpp: + * bindings/js/JSUint8ArrayCustom.cpp: + * bindings/v8/custom/V8ArrayBufferCustom.cpp: + * bindings/v8/custom/V8ArrayBufferViewCustom.h: + * bindings/v8/custom/V8DataViewCustom.cpp: + * bindings/v8/custom/V8Float32ArrayCustom.cpp: + * bindings/v8/custom/V8Int16ArrayCustom.cpp: + * bindings/v8/custom/V8Int32ArrayCustom.cpp: + * bindings/v8/custom/V8Int8ArrayCustom.cpp: + * bindings/v8/custom/V8Uint16ArrayCustom.cpp: + * bindings/v8/custom/V8Uint32ArrayCustom.cpp: + * bindings/v8/custom/V8Uint8ArrayCustom.cpp: + * html/canvas/ArrayBuffer.cpp: + * html/canvas/ArrayBuffer.idl: + * html/canvas/ArrayBufferView.cpp: + * html/canvas/ArrayBufferView.idl: + * html/canvas/DataView.cpp: + * html/canvas/DataView.idl: + * html/canvas/Float32Array.cpp: + * html/canvas/Float32Array.idl: + * html/canvas/Int16Array.cpp: + * html/canvas/Int16Array.idl: + * html/canvas/Int32Array.cpp: + * html/canvas/Int32Array.idl: + * html/canvas/Int8Array.cpp: + * html/canvas/Int8Array.idl: + * html/canvas/Uint16Array.cpp: + * html/canvas/Uint16Array.idl: + * html/canvas/Uint32Array.cpp: + * html/canvas/Uint32Array.idl: + * html/canvas/Uint8Array.cpp: + * html/canvas/Uint8Array.idl: + * page/Crypto.cpp: + (WebCore::Crypto::getRandomValues): + * page/Crypto.h: + * page/Crypto.idl: + * page/DOMWindow.idl: + * workers/WorkerContext.idl: + +2011-02-11 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Darin Adler. + + Background image positioning on RTL text + https://bugs.webkit.org/show_bug.cgi?id=32862 + + When the style of InlineFlowBox is right-to-left, the strips should be rearranged in reverse order. + + Tests: fast/inline/inline-box-background-long-image.html + fast/inline/inline-box-background-repeat-x.html + fast/inline/inline-box-background-repeat-y.html + fast/inline/inline-box-background.html + + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::paintFillLayer): + +2011-02-11 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r78044. + http://trac.webkit.org/changeset/78044 + https://bugs.webkit.org/show_bug.cgi?id=54318 + + Broke Safari extensions (Requested by eseidel on #webkit). + + * platform/KURL.cpp: + (WebCore::KURL::parse): + +2011-02-11 Beth Dakin <bdakin@apple.com> + + Reviewed by Sam Weinig. + + Fix for <rdar://problem/8976456> Scrollbars for overflow + areas never appear for WKScrollbarPainter scrollers + + Call ScrollableArea::didAddVerticalScrollbar() and + ScrollableArea::willRemoveVerticalScrollbar() when + appropriate for RenderLayers. + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::setHasHorizontalScrollbar): + (WebCore::RenderLayer::setHasVerticalScrollbar): + +2011-02-11 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Barth. + + KURL should remove default port numbers when cannonicalizing urls (to match every other browser) + https://bugs.webkit.org/show_bug.cgi?id=54090 + + * platform/KURL.cpp: + (WebCore::isDefaultPortForScheme): + (WebCore::KURL::parse): + +2011-02-11 Mike Reed <reed@google.com> + + Reviewed by James Robinson. + + Need makeContextCurrent() called in prepareForSoftwareDraw(), in the case that skia's backend + is the gpu. This matches the pattern in GraphicsContext3DOpenGL.cpp + + No new tests. All existing canvas layouttests exercise this code path + + * platform/graphics/skia/PlatformContextSkia.cpp: + (WebCore::PlatformContextSkia::prepareForSoftwareDraw): + +2011-02-11 Adam Klein <adamk@chromium.org> + + Reviewed by Darin Adler. + + Check for empty scheme before accessing URLSchemeMaps in SchemeRegistry + https://bugs.webkit.org/show_bug.cgi?id=54304 + + This avoids potential crashes in HashMap, as WTF's StringHash doesn't + accept empty Strings. + + * platform/SchemeRegistry.cpp: + (WebCore::SchemeRegistry::shouldTreatURLSchemeAsNoAccess): + (WebCore::SchemeRegistry::shouldTreatURLSchemeAsSecure): + (WebCore::SchemeRegistry::shouldLoadURLSchemeAsEmptyDocument): + +2011-02-11 Adam Klein <adamk@chromium.org> + + Reviewed by Darin Fisher. + + [fileapi] Add support for filesystem: URI handling + https://bugs.webkit.org/show_bug.cgi?id=53529 + + There are two major parts to this patch: one is to add an + implementation of Entry.toURI to the FileSystem API. + The other is to implement security origin checking for this + new scheme. + + All changes are guarded by the FILE_SYSTEM feature. An accompanying + Chromium change, to support loading of filesystem: URIs, has recently + been submitted as Chromium r74082. + + Spec: + http://dev.w3.org/2009/dap/file-system/file-dir-sys.html#methods-2 + Proposed URI format, and discussion of security origin issues: + http://lists.w3.org/Archives/Public/public-webapps/2011JanMar/0218.html + + Tests: fast/filesystem/directory-entry-to-uri.html + fast/filesystem/file-entry-to-uri.html + fast/filesystem/filesystem-uri-origin.html + http/tests/security/filesystem-iframe-from-remote.html + + * fileapi/Entry.cpp: + (WebCore::Entry::toURI): + * fileapi/Entry.h: + * fileapi/Entry.idl: + - Added toURI method to the IDL, omitting the MIME type argument + specified in the spec as it will soon be removed. + * page/SecurityOrigin.cpp: + (WebCore::SecurityOrigin::SecurityOrigin): + - crack the filesystem: URI to get at the origin of the site + (WebCore::SecurityOrigin::canDisplay): + - canDisplay for filesystem: URIs is equivalent to canRequest + * platform/AsyncFileSystem.cpp: + (WebCore::AsyncFileSystem::create): + (WebCore::AsyncFileSystem::openFileSystem): + * platform/AsyncFileSystem.h: + (WebCore::AsyncFileSystem::type): + - Exposed filesystem type to allow toURI to use it as part of the + path. + (WebCore::AsyncFileSystem::AsyncFileSystem): + * platform/SchemeRegistry.cpp: + (WebCore::canDisplayOnlyIfCanRequestSchemes): + (WebCore::SchemeRegistry::canDisplayOnlyIfCanRequest): + (WebCore::SchemeRegistry::registerAsCanDisplayOnlyIfCanRequest): + - Generalized canDisplayOnlyIfCanRequest as it applies to both + filesystem: and blob: URIs. + * platform/SchemeRegistry.h: + +2011-02-11 Beth Dakin <bdakin@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/8961061> CrashTracer: [USER] + 1 crash at com.apple.WebCore: + -[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:] + 62 + + Must check for null _animator. + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterControllerDelegate scrollAnimatorDestroyed]): + (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]): + (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]): + (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac): + +2011-02-11 Chris Rogers <crogers@google.com> + + Reviewed by Kenneth Russell. + + Throw exception when AudioContext's createBuffer() fails to properly decode audio file data + https://bugs.webkit.org/show_bug.cgi?id=54158 + + No new tests since audio API is not yet implemented. + + * bindings/js/JSAudioContextCustom.cpp: + (WebCore::JSAudioContextConstructor::constructJSAudioContext): + (WebCore::JSAudioContext::createBuffer): + * bindings/v8/custom/V8AudioContextCustom.cpp: + (WebCore::V8AudioContext::createBufferCallback): + * platform/audio/chromium/AudioBusChromium.cpp: + (WebCore::createBusFromInMemoryAudioFile): + * webaudio/AudioContext.idl: + +2011-02-11 Mike Reed <reed@google.com> + + Reviewed by James Robinson. + + Fix toDataURL() to use device->readPixels() if need be, rather than always dereferencing + the address returned by getPixels() (as the device may not be backed by a CPU bitmap) + https://bugs.webkit.org/show_bug.cgi?id=54224 + + No new tests. Existing canvas tests exercise this... + fast/canvas/script-tests/canvas-createPattern-fillRect-shadow.html + + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::ImageBuffer::toDataURL): + +2011-02-11 Andrew Wason <rectalogic@rectalogic.com> + + Reviewed by David Levin. + + Files missing ENABLE_VIDEO #ifdef + https://bugs.webkit.org/show_bug.cgi?id=53390 + + No new tests. + + * html/canvas/WebGLRenderingContext.cpp: + * html/canvas/WebGLRenderingContext.h: + * html/canvas/WebGLRenderingContext.idl: + Wrap methods and declarations that use HTMLVideoElement + with #if ENABLE(VIDEO). + +2011-02-11 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r78331. + http://trac.webkit.org/changeset/78331 + https://bugs.webkit.org/show_bug.cgi?id=54295 + + This patch broke 11 tests in GTK bots (Requested by svillar on + #webkit). + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_get_name): + (webkit_accessible_detach): + +2011-02-11 Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk> + + Reviewed by Xan Lopez. + + [GDOM] Video element needs proper wrapping + https://bugs.webkit.org/show_bug.cgi?id=54231 + + Use the same strategy as the one used for the audio tag to wrap + video as well. No layout tests because this only adds API. + + * bindings/gobject/GNUmakefile.am: + * bindings/gobject/WebKitHTMLElementWrapperFactory.cpp: + (WebKit::createVideoWrapper): + (WebKit::createHTMLElementWrapper): + +2011-02-11 Dirk Schulze <krit@webkit.org> + + Reviewed by Andreas Kling. + + SVGStyledElement::fillAttributeToPropertyTypeMap triggers a clang warning (-Woverloaded-virtual) + https://bugs.webkit.org/show_bug.cgi?id=54259 + + Renamed fillAttributeToPropertyTypeMap with passed map to fillPassedAttributeToPropertyTypeMap to + avoid overloading a virtual function. + + No change of functionality. Just fixing a build warning, so no new tests. + + * svg/SVGAElement.cpp: + (WebCore::SVGAElement::fillAttributeToPropertyTypeMap): + * svg/SVGAltGlyphElement.cpp: + (WebCore::SVGAltGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGCircleElement.cpp: + (WebCore::SVGCircleElement::fillAttributeToPropertyTypeMap): + * svg/SVGClipPathElement.cpp: + (WebCore::SVGClipPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGEllipseElement.cpp: + (WebCore::SVGEllipseElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEBlendElement.cpp: + (WebCore::SVGFEBlendElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEColorMatrixElement.cpp: + (WebCore::SVGFEColorMatrixElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEComponentTransferElement.cpp: + (WebCore::SVGFEComponentTransferElement::fillAttributeToPropertyTypeMap): + * svg/SVGFECompositeElement.cpp: + (WebCore::SVGFECompositeElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEConvolveMatrixElement.cpp: + (WebCore::SVGFEConvolveMatrixElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEDisplacementMapElement.cpp: + (WebCore::SVGFEDisplacementMapElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEFloodElement.cpp: + (WebCore::SVGFEFloodElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEGaussianBlurElement.cpp: + (WebCore::SVGFEGaussianBlurElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEImageElement.cpp: + (WebCore::SVGFEImageElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEMergeElement.cpp: + (WebCore::SVGFEMergeElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEMorphologyElement.cpp: + (WebCore::SVGFEMorphologyElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEOffsetElement.cpp: + (WebCore::SVGFEOffsetElement::fillAttributeToPropertyTypeMap): + * svg/SVGFESpecularLightingElement.cpp: + (WebCore::SVGFESpecularLightingElement::fillAttributeToPropertyTypeMap): + * svg/SVGFETileElement.cpp: + (WebCore::SVGFETileElement::fillAttributeToPropertyTypeMap): + * svg/SVGFETurbulenceElement.cpp: + (WebCore::SVGFETurbulenceElement::fillAttributeToPropertyTypeMap): + * svg/SVGFilterElement.cpp: + (WebCore::SVGFilterElement::fillAttributeToPropertyTypeMap): + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + (WebCore::SVGFilterPrimitiveStandardAttributes::fillPassedAttributeToPropertyTypeMap): + * svg/SVGFilterPrimitiveStandardAttributes.h: + * svg/SVGFontElement.cpp: + (WebCore::SVGFontElement::fillAttributeToPropertyTypeMap): + * svg/SVGForeignObjectElement.cpp: + (WebCore::SVGForeignObjectElement::fillAttributeToPropertyTypeMap): + * svg/SVGGlyphElement.cpp: + (WebCore::SVGGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGGradientElement.cpp: + (WebCore::SVGGradientElement::fillPassedAttributeToPropertyTypeMap): + * svg/SVGGradientElement.h: + * svg/SVGImageElement.cpp: + (WebCore::SVGImageElement::fillAttributeToPropertyTypeMap): + * svg/SVGLineElement.cpp: + (WebCore::SVGLineElement::fillAttributeToPropertyTypeMap): + * svg/SVGLinearGradientElement.cpp: + (WebCore::SVGLinearGradientElement::fillAttributeToPropertyTypeMap): + * svg/SVGMarkerElement.cpp: + (WebCore::SVGMarkerElement::fillAttributeToPropertyTypeMap): + * svg/SVGMaskElement.cpp: + (WebCore::SVGMaskElement::fillAttributeToPropertyTypeMap): + * svg/SVGMissingGlyphElement.cpp: + (WebCore::SVGMissingGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGPathElement.cpp: + (WebCore::SVGPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGPatternElement.cpp: + (WebCore::SVGPatternElement::fillAttributeToPropertyTypeMap): + * svg/SVGPolyElement.cpp: + (WebCore::SVGPolyElement::fillAttributeToPropertyTypeMap): + * svg/SVGRadialGradientElement.cpp: + (WebCore::SVGRadialGradientElement::fillAttributeToPropertyTypeMap): + * svg/SVGRectElement.cpp: + (WebCore::SVGRectElement::fillAttributeToPropertyTypeMap): + * svg/SVGStopElement.cpp: + (WebCore::SVGStopElement::fillAttributeToPropertyTypeMap): + * svg/SVGStyledElement.cpp: + (WebCore::SVGStyledElement::fillPassedAttributeToPropertyTypeMap): + * svg/SVGStyledElement.h: + * svg/SVGStyledTransformableElement.cpp: + (WebCore::SVGStyledTransformableElement::fillPassedAttributeToPropertyTypeMap): + * svg/SVGStyledTransformableElement.h: + * svg/SVGSwitchElement.cpp: + (WebCore::SVGSwitchElement::fillAttributeToPropertyTypeMap): + * svg/SVGSymbolElement.cpp: + (WebCore::SVGSymbolElement::fillAttributeToPropertyTypeMap): + * svg/SVGTRefElement.cpp: + (WebCore::SVGTRefElement::fillAttributeToPropertyTypeMap): + * svg/SVGTSpanElement.cpp: + (WebCore::SVGTSpanElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextContentElement.cpp: + (WebCore::SVGTextContentElement::fillPassedAttributeToPropertyTypeMap): + * svg/SVGTextContentElement.h: + * svg/SVGTextElement.cpp: + (WebCore::SVGTextElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextPathElement.cpp: + (WebCore::SVGTextPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextPositioningElement.cpp: + (WebCore::SVGTextPositioningElement::fillPassedAttributeToPropertyTypeMap): + * svg/SVGTextPositioningElement.h: + * svg/SVGTitleElement.cpp: + (WebCore::SVGTitleElement::fillAttributeToPropertyTypeMap): + * svg/SVGUseElement.cpp: + (WebCore::SVGUseElement::fillAttributeToPropertyTypeMap): + * svg/SVGViewElement.cpp: + (WebCore::SVGViewElement::fillAttributeToPropertyTypeMap): + +2011-02-11 Andrey Adaikin <aandrey@google.com> + + Reviewed by Pavel Feldman. + + Web Inspector: [REGRESSION] click on error message in console doesn't scroll into view + https://bugs.webkit.org/show_bug.cgi?id=54089 + + * inspector/front-end/Drawer.js: + (WebInspector.Drawer.prototype.show.animationFinished): + (WebInspector.Drawer.prototype.show): + (WebInspector.Drawer.prototype.hide): + (WebInspector.Drawer.prototype.resize): + (WebInspector.Drawer.prototype.immediatelyFinishAnimation): + (WebInspector.Drawer.prototype._cancelAnimationIfNeeded): + (WebInspector.Drawer.prototype._animateDrawerHeight.animationFinished): + (WebInspector.Drawer.prototype._animateDrawerHeight): + (WebInspector.Drawer.prototype._statusBarDragging): + * inspector/front-end/inspector.js: + (WebInspector.animateStyle): + (WebInspector.animateStyle.forceComplete): + (WebInspector.animateStyle.cancel): + (WebInspector.showSourceLine): + +2011-02-10 Nate Chapin <japhet@chromium.org> + + Reviewed by Adam Barth. + + Make DocumentWriter a member of DocumentLoader + instead of FrameLoader. + https://bugs.webkit.org/show_bug.cgi?id=50489 + + Refactor, no new tests. + + * bindings/ScriptControllerBase.cpp: + (WebCore::ScriptController::executeIfJavaScriptURL): + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::explicitClose): + (WebCore::Document::lastModified): + (WebCore::Document::initSecurityContext): + (WebCore::Document::updateURLForPushOrReplaceState): + * dom/Document.h: + (WebCore::Document::setDocumentLoader): + (WebCore::Document::loader): + * html/MediaDocument.cpp: + (WebCore::MediaDocument::replaceMediaElementTimerFired): + * html/PluginDocument.cpp: + (WebCore::PluginDocumentParser::createDocumentStructure): + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::DocumentLoader): + (WebCore::DocumentLoader::finishedLoading): + (WebCore::DocumentLoader::commitData): + (WebCore::DocumentLoader::setupForReplaceByMIMEType): + (WebCore::DocumentLoader::setFrame): + * loader/DocumentLoader.h: + (WebCore::DocumentLoader::writer): + * loader/DocumentWriter.cpp: + (WebCore::DocumentWriter::begin): + * loader/DocumentWriter.h: + (WebCore::DocumentWriter::setFrame): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::FrameLoader): + (WebCore::FrameLoader::init): + (WebCore::FrameLoader::clear): + (WebCore::FrameLoader::receivedFirstData): + (WebCore::FrameLoader::transitionToCommitted): + (WebCore::FrameLoader::open): + (WebCore::FrameLoader::finishedLoadingDocument): + (WebCore::FrameLoader::addExtraFieldsToRequest): + * loader/FrameLoader.h: + (WebCore::FrameLoader::notifier): + * svg/graphics/SVGImage.cpp: + (WebCore::SVGImage::dataChanged): + +2011-02-10 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: make InspectorAgent own sub-agents, align agent creation/deletion routines. + https://bugs.webkit.org/show_bug.cgi?id=54227 + + * dom/Document.cpp: + (WebCore::Document::finishedParsing): + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::restoreInspectorStateFromCookie): + (WebCore::InspectorAgent::setFrontend): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::releaseFrontendLifetimeAgents): + (WebCore::InspectorAgent::didCommitLoad): + (WebCore::InspectorAgent::domContentLoadedEventFired): + (WebCore::InspectorAgent::loadEventFired): + (WebCore::InspectorAgent::startTimelineProfiler): + (WebCore::InspectorAgent::stopTimelineProfiler): + * inspector/InspectorAgent.h: + * inspector/InspectorCSSAgent.cpp: + * inspector/InspectorDOMAgent.cpp: + (WebCore::InspectorDOMAgent::InspectorDOMAgent): + (WebCore::InspectorDOMAgent::startListening): + (WebCore::InspectorDOMAgent::stopListening): + (WebCore::InspectorDOMAgent::mainDOMContentLoaded): + (WebCore::InspectorDOMAgent::loadEventFired): + * inspector/InspectorDOMAgent.h: + (WebCore::InspectorDOMAgent::create): + * inspector/InspectorDOMStorageAgent.cpp: + (WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent): + * inspector/InspectorDOMStorageAgent.h: + (WebCore::InspectorDOMStorageAgent::create): + * inspector/InspectorDOMStorageResource.h: + * inspector/InspectorDatabaseAgent.cpp: + (WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent): + (WebCore::InspectorDatabaseAgent::executeSQL): + (WebCore::InspectorDatabaseAgent::selectDatabase): + (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent): + * inspector/InspectorDatabaseAgent.h: + (WebCore::InspectorDatabaseAgent::FrontendProvider::create): + (WebCore::InspectorDatabaseAgent::FrontendProvider::~FrontendProvider): + (WebCore::InspectorDatabaseAgent::FrontendProvider::frontend): + (WebCore::InspectorDatabaseAgent::FrontendProvider::clearFrontend): + (WebCore::InspectorDatabaseAgent::FrontendProvider::FrontendProvider): + (WebCore::InspectorDatabaseAgent::create): + * inspector/InspectorDatabaseResource.cpp: + (WebCore::InspectorDatabaseResource::InspectorDatabaseResource): + (WebCore::InspectorDatabaseResource::bind): + * inspector/InspectorDatabaseResource.h: + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::domContentLoadedEventFiredImpl): + (WebCore::InspectorInstrumentation::loadEventFiredImpl): + * inspector/InspectorInstrumentation.h: + (WebCore::InspectorInstrumentation::domContentLoadedEventFired): + (WebCore::InspectorInstrumentation::loadEventFired): + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + (WebCore::InspectorState::mute): + (WebCore::InspectorState::updateCookie): + * inspector/InspectorState.h: + (WebCore::InspectorState::~InspectorState): + * inspector/InspectorTimelineAgent.cpp: + (WebCore::InspectorTimelineAgent::restore): + (WebCore::InspectorTimelineAgent::~InspectorTimelineAgent): + (WebCore::InspectorTimelineAgent::didCommitLoad): + (WebCore::InspectorTimelineAgent::setFrontend): + (WebCore::InspectorTimelineAgent::InspectorTimelineAgent): + * inspector/InspectorTimelineAgent.h: + (WebCore::InspectorTimelineAgent::create): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::dispatchLoadEvent): + +2011-02-11 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: command line API $0 regressed. + https://bugs.webkit.org/show_bug.cgi?id=54283 + + * inspector/InjectedScriptSource.js: + +2011-02-11 Janne Koskinen <janne.p.koskinen@digia.com> + + Reviewed by Andreas Kling. + + [Qt][S60] Vertical borders of buttons and frames are misaligned + https://bugs.webkit.org/show_bug.cgi?id=51169 + + Force anti-aliasing for lines and rects when using OpenVG backend on Symbian. + OpenVG cannot guarantee rendering to be on pixel in floating point co-ordinates + without anti-aliasing. Patch idea by Laszlo Agocs. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate): + +2011-02-11 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] events missing when a document is (re)loaded + https://bugs.webkit.org/show_bug.cgi?id=25831 + + Make sure webArea returns a proper name and that a signal + 'state-change::defunct' is emitted when detaching the wrapper. + + Test: platform/gtk/accessibility/document-reload-events.html + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_get_name): Returns the current document's title + as fallback mechanism for webArea objects. + (webkit_accessible_detach): Emit 'state-change::defunct' function + as soon as the wrapper is detached from the related core object. + +2011-02-11 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: command line's API inspect() is broken. + https://bugs.webkit.org/show_bug.cgi?id=54275 + + Test: inspector/command-line-api.html + + * inspector/InjectedScriptSource.js: + +2011-02-11 Adam Barth <abarth@webkit.org> + + Turns out window.crypto is supposed to be readonly. + + * page/DOMWindow.idl: + +2011-02-11 Adam Barth <abarth@webkit.org> + + Actually add Crypto.cpp to the Windows build. I'm terrible. + + * WebCore.vcproj/WebCore.vcproj: + +2011-02-11 Adam Barth <abarth@webkit.org> + + Attempt to fix the Windows build. Apparently we don't support + conditional attributes on functions. This patch makes the whole Crypto + interface conditional on ArrayBuffer support. + + * page/DOMWindow.idl: + * page/Crypto.cpp: + * page/Crypto.h: + * page/Crypto.idl: + +2011-02-10 Antti Koivisto <antti@apple.com> + + Reviewed by Dave Hyatt. + + Enable ancestor identifier filtering for tree building + https://bugs.webkit.org/show_bug.cgi?id=54241 + + Call CSSStyleSelector::push/popParent() during tree building too, fix up the parent + element stack as needed. + + This roughly halves the remaining time in style matching over a typical page load. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::pushParentStackFrame): + (WebCore::CSSStyleSelector::popParentStackFrame): + (WebCore::CSSStyleSelector::pushParent): + (WebCore::CSSStyleSelector::popParent): + * css/CSSStyleSelector.h: + (WebCore::CSSStyleSelector::ParentStackFrame::ParentStackFrame): + * dom/Document.h: + (WebCore::Document::styleSelectorIfExists): + * dom/Element.cpp: + (WebCore::Element::beginParsingChildren): + (WebCore::Element::finishParsingChildren): + * dom/Element.h: + +2011-02-10 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + WebKit should have a cryptographic RNG + https://bugs.webkit.org/show_bug.cgi?id=22049 + + Add crypto.getRandomValues. Yes, all these diffs are required to + expose a single function to the DOM. + + Test: security/crypto-random-values.html + + * Android.mk: + * CMakeLists.txt: + * DerivedSources.cpp: + * DerivedSources.make: + * ForwardingHeaders/wtf/CryptographicallyRandomNumber.h: Added. + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pri: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSDOMWindowCustom.cpp: + * bindings/v8/custom/V8DOMWindowCustom.cpp: + * config.h: + * page/Crypto.cpp: Added. + (WebCore::Crypto::Crypto): + (WebCore::Crypto::getRandomValues): + * page/Crypto.h: Added. + (WebCore::Crypto::create): + * page/Crypto.idl: Added. + * page/DOMWindow.cpp: + (WebCore::DOMWindow::clear): + (WebCore::DOMWindow::crypto): + * page/DOMWindow.h: + (WebCore::DOMWindow::optionalCrypto): + * page/DOMWindow.idl: + +2011-02-11 Ryuan Choi <ryuan.choi@samsung.com> + + Unreviewed build fix. + + [GTK] Build break with 2.18.3 + https://bugs.webkit.org/show_bug.cgi?id=54057 + + * platform/gtk/ScrollbarThemeGtk2.cpp: Include GtkVersioning.h + +2011-02-11 Cosmin Truta <ctruta@chromium.org> + + Reviewed by Adam Barth. + + Templatize KURLGooglePrivate::init + https://bugs.webkit.org/show_bug.cgi?id=53749 + + No new tests. Refactoring. + + * platform/KURLGoogle.cpp: + (WebCore::KURLGooglePrivate::init): + * platform/KURLGooglePrivate.h: + +2011-02-10 Andy Estes <aestes@apple.com> + + Reviewed by Eric Seidel. + + Convert ContainerNode::firstElementChild() to a free function. + https://bugs.webkit.org/show_bug.cgi?id=54269 + + No new tests. No change in behavior. + + It seemed incorrect to have a method on ContainerNode that had the + concept of an Element but couldn't return an Element*, but a method on + Element could not be called by holders of ContainerNodes or other + non-Element ContainerNode subclasses. A free function can both return + an Element* and be called by anyone with a ContainerNode*. + + * dom/ContainerNode.h: + (WebCore::ContainerNode::lastChild): + (WebCore::Node::lastChild): + * dom/Document.cpp: + (WebCore::Document::cacheDocumentElement): + * dom/Element.cpp: + (WebCore::Element::firstElementChild): + * dom/Element.h: + (WebCore::firstElementChild): + * html/parser/HTMLTreeBuilder.cpp: + (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): + +2011-02-10 Mads Ager <ager@chromium.org> + + Reviewed by Nate Chapin. + + [V8] Don't crash on exception getting event handler function + https://bugs.webkit.org/show_bug.cgi?id=54216 + + Check for exceptions when attempting to get the handleEvent property + of an event-handler object. + + Test: fast/dom/exception-getting-event-handler.html + + * bindings/v8/V8EventListener.cpp: + (WebCore::V8EventListener::getListenerFunction): + +2011-02-10 Naoki Takano <takano.naoki@gmail.com> + + Reviewed by James Robinson. + + [Chromium] Layout Test canvas/philip/tests/2d.composite.globalAlpha.fill.html with --accelerated-2d-canvas. + https://bugs.webkit.org/show_bug.cgi?id=53857 + + globalAlpha is not applied to fillPath() and fillRect(). + + Test: fast/canvas/2d.composite.globalAlpha.fillPath.html and canvas/philip/tests/2d.composite.globalAlpha.fill.html with --accelerated-2d-canvas. + + * platform/graphics/chromium/GLES2Canvas.cpp: + (WebCore::GLES2Canvas::State::applyAlpha): Append a new function to apply global alpha when fillRect() and fillPath() are called. + (WebCore::GLES2Canvas::fillRect): Global alpha is applied to m_fillColor. + (WebCore::GLES2Canvas::fillPath): Global alpha is applied to m_fillColor. + +2011-02-10 Andy Estes <aestes@apple.com> + + Reviewed by Adam Barth. + + Remove an unneeded argument from HTMLDocument::create(). + https://bugs.webkit.org/show_bug.cgi?id=54268 + + Now that HTMLTreeBuilder no longer uses a dummy HTMLDocument for + fragment parsing, there isn't a need to explicitly specify a baseURL + when constructing an HTMLDocument. We can remove the unneeded argument. + + Also fix some style issues in Document.h and HTMLDocument.h caught by + check-webkit-style. + + No new tests. No change in behavior. + + * dom/Document.cpp: + (WebCore::Document::Document): + * dom/Document.h: + * html/HTMLDocument.cpp: + (WebCore::HTMLDocument::HTMLDocument): + * html/HTMLDocument.h: + (WebCore::HTMLDocument::create): + +2011-02-10 Michael Saboff <msaboff@apple.com> + + Reviewed by Geoffrey Garen. + + Cached JavaScript Parser Data Being Left in Memory Cache + https://bugs.webkit.org/show_bug.cgi?id=54245 + + Added logic in CachedScript to clear SourceProviderCache data in + destroyDecodedData(). Added and changed CachedScript timeout to + act similar to CachedImage. Changed didAddClient to call super + class method instead of duplicating the logic in the derived + classes. + + * loader/cache/CachedImage.cpp: + (WebCore::CachedImage::didAddClient): + * loader/cache/CachedScript.cpp: + (WebCore::CachedScript::didAddClient): + (WebCore::CachedScript::allClientsRemoved): + (WebCore::CachedScript::script): + (WebCore::CachedScript::destroyDecodedData): + * loader/cache/CachedScript.h: + +2011-02-10 Cosmin Truta <ctruta@chromium.org> + + Reviewed by David Levin. + + Fix style in KURLGooglePrivate + https://bugs.webkit.org/show_bug.cgi?id=54228 + + Replace occurrences of NULL with 0, '\0' or null (as applicable), + to appease check-webkit-style. + + No new tests. This is a style fix. + + * platform/KURLGoogle.cpp: + * platform/KURLGooglePrivate.h: + +2011-02-10 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40% + https://bugs.webkit.org/show_bug.cgi?id=48719 + + The HTML5 fragment parsing algorithm specifies that a new Document + should be created to serve as the temporary parent of fragment nodes + during parsing. Document creation is expensive and accounts for ~38% of + the Peacekeeper DOM performance regression. Avoid the cost of creating + a dummy document by using the already-created DocumentFragment as the + root node during fragment parsing. + + With this patch, the regression in Peacekeeper from Safari 5.0.3 to ToT + is ~24%. + + Test: fast/parser/fragment-parser-doctype.html + + * dom/ContainerNode.h: + (WebCore::ContainerNode::firstElementChild): Add a method that returns + the first element-typed child from a ContainerNode. + * dom/Document.cpp: + (WebCore::Document::cacheDocumentElement): Call + ContainerNode::firstElementChild() to retrieve and cache the document + element. + * html/parser/HTMLConstructionSite.cpp: + (WebCore::HTMLConstructionSite::HTMLConstructionSite): Initialize the + root ContainerNode. + (WebCore::HTMLConstructionSite::detach): Clear the reference to the + root ContainerNode. + (WebCore::HTMLConstructionSite::insertHTMLHtmlStartTagBeforeHTML): + Attach the new element to the root ContainerNode. + (WebCore::HTMLConstructionSite::insertDoctype): Ditto. + (WebCore::HTMLConstructionSite::insertCommentOnDocument): Ditto. + * html/parser/HTMLConstructionSite.h: Store a pointer to a + ContainerNode that will be used as the root node for document parsing. + This node might or might not be the same as m_document. + * html/parser/HTMLTreeBuilder.cpp: + (WebCore::HTMLTreeBuilder::HTMLTreeBuilder): Initialize the + HTMLConstructionSite with the correct root ContainerNode based on + whether or not we're parsing a fragment. + (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): + Remove m_dummyDocumentForFragmentParsing. + (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): If the + fragment has a context element, store only the children of the root + element (HTML5 Section 10.4, Step 7). + * html/parser/HTMLTreeBuilder.h: + +2011-02-10 Beth Dakin <bdakin@apple.com> + + Reviewed by Oliver Hunt. + + Speculative fix for <rdar://problem/8971107> CrashTracer: 6 crashes + in WebProcess at com.apple.AppKit: + -[NSAnimation(NSInternal) _advanceTimeWithTimer:] + 154 + + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPartAnimation scrollAnimatorDestroyed]): + +2011-02-09 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + IndexedDB event targets need to ensure their wrappers aren't garbage collected + https://bugs.webkit.org/show_bug.cgi?id=54144 + + hasActivityPending should return true as long as it's possible that we'll + fire more event listeners on our event targets. It is still possible for + user generated events to run into problems, but I'm not sure how to address + that yet (or how big of a deal it is). + + There's really no way to test this deterministically. Testing by hand makes + it seem like this patch works as expected though. + + * storage/IDBCursorBackendImpl.cpp: + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::IDBDatabase): + (WebCore::IDBDatabase::~IDBDatabase): + (WebCore::IDBDatabase::hasPendingActivity): + (WebCore::IDBDatabase::stop): + * storage/IDBDatabase.h: + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::IDBRequest): + (WebCore::IDBRequest::hasPendingActivity): + (WebCore::IDBRequest::dispatchEvent): + (WebCore::IDBRequest::enqueueEvent): + * storage/IDBRequest.h: + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::finished): + (WebCore::IDBTransaction::hasPendingActivity): + (WebCore::IDBTransaction::dispatchEvent): + (WebCore::IDBTransaction::canSuspend): + (WebCore::IDBTransaction::contextDestroyed): + (WebCore::IDBTransaction::enqueueEvent): + * storage/IDBTransaction.h: + +2011-02-10 Ademar de Souza Reis Jr <ademar.reis@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] create pkg-config files for mingw + https://bugs.webkit.org/show_bug.cgi?id=54238 + + (mingw is mostly the same as unix) + + This change was applied in the Qt repository (qt/src/3rdparty/webkit), + so we should do the same here in QtWebKit. + + Patch by Mark Brand <mabrand@mabrand.nl>, reviewed (there) by + Oswald Buddenhagen <oswald.buddenhagen@nokia.com> + 45fe2dddc3a0677b9ec9fce09f07cd4129e37afa + + * WebCore.pro: + +2011-02-10 Andreas Kling <kling@webkit.org> + + Reviewed by Antti Koivisto. + + RenderStyle: Remove duplicate comparison of InheritedFlags::_text_transform + https://bugs.webkit.org/show_bug.cgi?id=54246 + + * rendering/style/RenderStyle.h: + +2011-02-10 Dirk Schulze <krit@webkit.org> + + Reviewed by Andreas Kling. + + SVG animation avoid unnecessary adjust for currentColor + https://bugs.webkit.org/show_bug.cgi?id=54243 + + At the moment we try to adjust every animation value for currentColor - independent of the animation type. + Since the value is a string and the target element may needs to get called by getElementById, this could + be an expensive and unnecessary operation. Also after we adjust for currentColor, we save the result back + as a string and parse it to Color afterwards again. + With the patch we just adjust an animation value, if we use color animation. The color won't get saved and + parsed as a string again. + + No change of functionality, no new tests. + + * svg/SVGAnimateElement.cpp: + (WebCore::adjustForCurrentColor): + (WebCore::SVGAnimateElement::calculateFromAndToValues): + (WebCore::SVGAnimateElement::calculateFromAndByValues): + * svg/SVGAnimationElement.cpp: + (WebCore::SVGAnimationElement::currentValuesForValuesAnimation): + (WebCore::SVGAnimationElement::startedActiveInterval): + +2011-02-10 Ademar de Souza Reis Jr <ademar.reis@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] Remove the use of deprecated qFindChildren() + https://bugs.webkit.org/show_bug.cgi?id=54232 + + This was applied on the Qt repository and affects QtWebKit there. + (13833beb641289c45faed337848d37280195aadc) + + The side effect of this change is that we won't be able to build + QtWebKit with MSVC 6, as it doesn't support member template functions + (not sure if that's possible today anyway). + + Original patch from Olivier Goffart <olivier.goffart@nokia.com>, with + review reported as being from the mailing list. + + The changes are result of the following commands: + + git grep -O"sed -i 's/qF\(indChildr*e*n*<[^>]*>\)(this,* */f\\1(/'" qFindChild + git grep -O"sed -i 's/qF\(indChildr*e*n*<[^>]*>\)(&\([^\(),]*\),* */\\2.f\\1(/'" qFindChild + git grep -O"sed -i 's/qF\(indChildr*e*n*<[^>]*>\)(\([^\(),]*()\),* */\\2->f\\1(/'" qFindChild + git grep -O"sed -i 's/qF\(indChildr*e*n*<[^>]*>\)(\([^\(),]*\):\([^\(),]*\),* */(\\2:\\3)->f\\1(/'" qFindChild + git grep -O"sed -i 's/qF\(indChildr*e*n*<[^>]*>\)(\([^\(),]*\),* */\\2->f\\1(/'" qFindChild + + * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp: + (WebCore::MediaPlayerPrivatePhonon::MediaPlayerPrivatePhonon): + +2011-02-10 Ademar de Souza Reis Jr <ademar.reis@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] Rename build target from "embedded" to "qpa" + https://bugs.webkit.org/show_bug.cgi?id=54233 + + This flag is used by Qt's configure script to enable a QPA build + ("QPA is a window system agnostic implementation of Qt" -- + previously known as lighthouse). + + On the Qt repository, this was changed by two commits: + + 13a0b4935900093607f2b3b7688e1452d22770fd + (from embedded to embedded_lite) + + 9716e12e0f5590ebc23ad9fb7ba75c6a3c5aadab + (from embedded_lite to qpa) + + * WebCore.pro: + +2011-02-10 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Incorporate algorithm for processing paths into GPU-renderable triangle meshes + https://bugs.webkit.org/show_bug.cgi?id=45521 + + Adding an implementation of Loop and Blinn's GPU accelerated path + rendering algorithm from GPU Gems 3. This implementation pays + particular attention to the efficiency of the curve subdivision + phase needed for correct rendering. It utilizes the OpenGL utility + library tessellator for triangulation of the interior of the + shape. The regions handled by Loop and Blinn's algorithm are + handled by the local triangulator previously incorporated. + + No tests yet; pixel tests will eventually be used to verify this + algorithm and prevent regressions. + + * platform/graphics/gpu/LoopBlinnPathProcessor.cpp: Added. + (WebCore::LoopBlinnPathProcessorImplementation::Segment::Segment): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::setup): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::kind): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::getPoint): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::next): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::prev): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::setNext): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::setPrev): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::contour): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::subdivide): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::boundingBox): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::numCrossingsForXRay): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::numberOfTriangles): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::getTriangle): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::numberOfInteriorVertices): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::getInteriorVertex): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::markedForSubdivision): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::setMarkedForSubdivision): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::toString): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::computeBoundingBox): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::Contour): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::add): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::subdivide): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::begin): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::end): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::isOrientedCounterClockwise): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::setIsOrientedCounterClockwise): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::boundingBox): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::fillSide): + (WebCore::LoopBlinnPathProcessorImplementation::Contour::setFillSide): + (WebCore::LoopBlinnPathProcessorImplementation::Segment::triangulate): + (WebCore::LoopBlinnPathProcessor::LoopBlinnPathProcessor): + (WebCore::LoopBlinnPathProcessor::~LoopBlinnPathProcessor): + (WebCore::LoopBlinnPathProcessor::process): + (WebCore::LoopBlinnPathProcessor::buildContours): + (WebCore::LoopBlinnPathProcessor::allSegmentsOverlappingY): + (WebCore::LoopBlinnPathProcessor::determineSidesToFill): + (WebCore::LoopBlinnPathProcessor::determineOrientation): + (WebCore::SweepData::SweepEvent::SweepEvent): + (WebCore::SweepData::SweepEvent::setup): + (WebCore::SweepData::SweepEvent::x): + (WebCore::SweepData::SweepEvent::entry): + (WebCore::SweepData::SweepEvent::interval): + (WebCore::SweepData::SweepEvent::operator<): + (WebCore::SweepData::trianglesOverlap): + (WebCore::LoopBlinnPathProcessor::subdivideCurves): + (WebCore::LoopBlinnPathProcessor::conditionallySubdivide): + (WebCore::LoopBlinnPathProcessor::subdivideCurvesSlow): + (WebCore::TessellationState::vertexCallback): + (WebCore::TessellationState::combineCallback): + (WebCore::TessellationState::edgeFlagCallback): + (WebCore::LoopBlinnPathProcessor::tessellateInterior): + * platform/graphics/gpu/LoopBlinnPathProcessor.h: Added. + +2011-02-10 Ademar de Souza Reis Jr <ademar.reis@openbossa.org> + + Reviewed by Andreas Kling. + + [Qt] Remove the use of deprecated qVariant* + https://bugs.webkit.org/show_bug.cgi?id=54229 + + This was applied on the Qt repository and affects QtWebKit there. + (633f3f45e5420663cf4ceadea79e62fea44cd2eb) + + The side effect of this change is that we won't be able to build + QtWebKit with MSVC 6, as it doesn't support member template functions + (not sure if it's possible today anyway). + + Original patch from Olivier Goffart <olivier.goffart@nokia.com>, with + review reported as being from the mailing list. + + The changes are result of the following commands: + + git grep -O"sed -i 's/qVariantValue</qvariant_cast</'" qVariantValue + git grep -O"sed -i 's/qVariantSetValue(\([^&*\(),]*\), */\\1.setValue(/'" qVariantSetValue + git grep -O"sed -i 's/qVariantSetValue *<\([^>]*\)> *(\([^&*\(),]*\), */\\2.setValue<\\1>(/'" qVariantSetValue + git grep -O"sed -i 's/qVariantCanConvert *<\([^>]*\)> *(\([^&*\(),]*\))/\\2.canConvert<\\1>()/g'" qVariantCanConvert + git grep -O"sed -i 's/qVariantCanConvert *<\([^>]*\)> *(\([^&*\(),]*([^&*\(),]*)\))/\\2.canConvert<\\1>()/g'" qVariantCanConvert + git grep -O"sed -i 's/qVariantFromValue\( *[(<]\)/QVariant::fromValue\\1/'" qVariantFromValue + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::convertValueToQVariant): + * platform/graphics/qt/MediaPlayerPrivateQt.cpp: + (WebCore::MediaPlayerPrivateQt::commitLoad): + +2011-02-10 Nico Weber <thakis@chromium.org> + + Reviewed by Darin Adler. + + Fix clang warning "WebCore::HTMLAreaElement::getRect' hides overloaded virtual function [-Woverloaded-virtual]" + https://bugs.webkit.org/show_bug.cgi?id=54221 + + The method name conflicts with ContainerNode::getRect() so rename it to + computeRect(). Rename getPath() to computePath() for consistency as + well. + + No intended functionality change, covered by existing tests. + + * accessibility/AccessibilityImageMapLink.cpp: + (WebCore::AccessibilityImageMapLink::elementRect): + * html/HTMLAreaElement.cpp: + (WebCore::HTMLAreaElement::computePath): + (WebCore::HTMLAreaElement::computeRect): + * html/HTMLAreaElement.h: + * page/SpatialNavigation.cpp: + (WebCore::virtualRectForAreaElementAndDirection): + * rendering/RenderImage.cpp: + (WebCore::RenderImage::paintFocusRing): + +2011-02-10 Alexis Menard <alexis.menard@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] Default focus ring is too wide + https://bugs.webkit.org/show_bug.cgi?id=51854 + + We now respect the outline property and html.css defines the outline of the focus + ring to be 5px. This is propagated until GraphicsContext::drawFocusRing which uses + it as the pen size. We should ignore the size and keep a default one. I also + reverted the SolidLine to DotLine so that the selection looks nicer. Chromium Skia, + CG Win, Haiku, WinCE ports also ignore the width. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::drawFocusRingForPath): + (WebCore::GraphicsContext::drawFocusRing): + +2011-02-10 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Gustavo Noronha Silva. + + [Soup] ResourceHandleSoup does not ever call didSendData for file uploads + https://bugs.webkit.org/show_bug.cgi?id=52090 + + Call didSendData as body data is uploaded to the server. This is necessary + for XHR upload events to function properly. + + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): Add two new members. + One to track the total amount of body data and one to track the total amount of + body data sent so far. + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::wroteBodyDataCallback): Added. + (WebCore::addFormElementsToSoupMessage): Split this out into a helper function. + Will now now sum the total amount of body data. + (WebCore::startHttp): Attach a wrote-body-data signal handler. + +2011-02-10 Bill Budge <bbudge@chromium.org> + + Reviewed by David Levin. + + Add fields to ResourceRequest and ResourceResponse in preparation for adding CORS support to AssociatedURLLoader. + https://bugs.webkit.org/show_bug.cgi?id=53925 + + * platform/network/chromium/ResourceRequest.cpp: + (WebCore::ResourceRequest::doPlatformCopyData): + (WebCore::ResourceRequest::doPlatformAdopt): + * platform/network/chromium/ResourceRequest.h: + (WebCore::ResourceRequest::ResourceRequest): + (WebCore::ResourceRequest::downloadToFile): + (WebCore::ResourceRequest::setDownloadToFile): + * platform/network/chromium/ResourceResponse.cpp: + (WebCore::ResourceResponse::doPlatformCopyData): + (WebCore::ResourceResponse::doPlatformAdopt): + * platform/network/chromium/ResourceResponse.h: + (WebCore::ResourceResponse::downloadFilePath): + (WebCore::ResourceResponse::setDownloadFilePath): + +2011-02-10 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + SVGAnimateElement needs information about the animated attribute type + https://bugs.webkit.org/show_bug.cgi?id=53442 + + For animations, we need to know the SVG property type for a XML attribute. A global static mapping between + attribute name and a type is not possible, since one attribute name can be bound to different property types: + x can be a SVGNumberList, a SVGNumber or a SVGLength. So we have to ask every target element, if it supports + the animated attribute and of which type it is. Just for CSS properties we can share an explicit mapping between + the name and the type. This is done in a static map in SVGStyledElement. All other mappings are stored in local static + HashMaps for all SVG elements with animated properties. These maps get filled once with the fillAttributeToPropertyTypeMap function + that needs to be included in every SVG element. The function is not virtual in base classes for performance reasons. + + No change of functionality, so no new test cases. + + * svg/SVGAElement.cpp: + (WebCore::SVGAElement::attributeToPropertyTypeMap): + (WebCore::SVGAElement::fillAttributeToPropertyTypeMap): + * svg/SVGAElement.h: + * svg/SVGAltGlyphElement.cpp: + (WebCore::SVGAltGlyphElement::attributeToPropertyTypeMap): + (WebCore::SVGAltGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGAltGlyphElement.h: + * svg/SVGAnimateElement.cpp: + (WebCore::SVGAnimateElement::determinePropertyType): + * svg/SVGCircleElement.cpp: + (WebCore::SVGCircleElement::attributeToPropertyTypeMap): + (WebCore::SVGCircleElement::fillAttributeToPropertyTypeMap): + * svg/SVGCircleElement.h: + * svg/SVGClipPathElement.cpp: + (WebCore::SVGClipPathElement::attributeToPropertyTypeMap): + (WebCore::SVGClipPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGClipPathElement.h: + * svg/SVGComponentTransferFunctionElement.cpp: + (WebCore::SVGComponentTransferFunctionElement::attributeToPropertyTypeMap): + (WebCore::SVGComponentTransferFunctionElement::fillAttributeToPropertyTypeMap): + * svg/SVGComponentTransferFunctionElement.h: + * svg/SVGCursorElement.cpp: + (WebCore::SVGCursorElement::attributeToPropertyTypeMap): + (WebCore::SVGCursorElement::fillAttributeToPropertyTypeMap): + * svg/SVGCursorElement.h: + * svg/SVGElement.cpp: + (WebCore::SVGElement::attributeToPropertyTypeMap): + (WebCore::SVGElement::animatedPropertyTypeForAttribute): + * svg/SVGElement.h: + (WebCore::SVGElement::fillAttributeToPropertyTypeMap): + * svg/SVGEllipseElement.cpp: + (WebCore::SVGEllipseElement::attributeToPropertyTypeMap): + (WebCore::SVGEllipseElement::fillAttributeToPropertyTypeMap): + * svg/SVGEllipseElement.h: + * svg/SVGFEBlendElement.cpp: + (WebCore::SVGFEBlendElement::attributeToPropertyTypeMap): + (WebCore::SVGFEBlendElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEBlendElement.h: + * svg/SVGFEColorMatrixElement.cpp: + (WebCore::SVGFEColorMatrixElement::attributeToPropertyTypeMap): + (WebCore::SVGFEColorMatrixElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEColorMatrixElement.h: + * svg/SVGFEComponentTransferElement.cpp: + (WebCore::SVGFEComponentTransferElement::attributeToPropertyTypeMap): + (WebCore::SVGFEComponentTransferElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEComponentTransferElement.h: + * svg/SVGFECompositeElement.cpp: + (WebCore::SVGFECompositeElement::attributeToPropertyTypeMap): + (WebCore::SVGFECompositeElement::fillAttributeToPropertyTypeMap): + * svg/SVGFECompositeElement.h: + * svg/SVGFEConvolveMatrixElement.cpp: + (WebCore::SVGFEConvolveMatrixElement::attributeToPropertyTypeMap): + (WebCore::SVGFEConvolveMatrixElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEConvolveMatrixElement.h: + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::attributeToPropertyTypeMap): + (WebCore::SVGFEDiffuseLightingElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEDiffuseLightingElement.h: + * svg/SVGFEDisplacementMapElement.cpp: + (WebCore::SVGFEDisplacementMapElement::attributeToPropertyTypeMap): + (WebCore::SVGFEDisplacementMapElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEDisplacementMapElement.h: + * svg/SVGFEFloodElement.cpp: + (WebCore::SVGFEFloodElement::attributeToPropertyTypeMap): + (WebCore::SVGFEFloodElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEFloodElement.h: + * svg/SVGFEGaussianBlurElement.cpp: + (WebCore::SVGFEGaussianBlurElement::attributeToPropertyTypeMap): + (WebCore::SVGFEGaussianBlurElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEGaussianBlurElement.h: + * svg/SVGFEImageElement.cpp: + (WebCore::SVGFEImageElement::attributeToPropertyTypeMap): + (WebCore::SVGFEImageElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEImageElement.h: + * svg/SVGFELightElement.cpp: + (WebCore::SVGFELightElement::attributeToPropertyTypeMap): + (WebCore::SVGFELightElement::fillAttributeToPropertyTypeMap): + * svg/SVGFELightElement.h: + * svg/SVGFEMergeElement.cpp: + (WebCore::SVGFEMergeElement::attributeToPropertyTypeMap): + (WebCore::SVGFEMergeElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEMergeElement.h: + * svg/SVGFEMergeNodeElement.cpp: + (WebCore::SVGFEMergeNodeElement::attributeToPropertyTypeMap): + (WebCore::SVGFEMergeNodeElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEMergeNodeElement.h: + * svg/SVGFEMorphologyElement.cpp: + (WebCore::SVGFEMorphologyElement::attributeToPropertyTypeMap): + (WebCore::SVGFEMorphologyElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEMorphologyElement.h: + * svg/SVGFEOffsetElement.cpp: + (WebCore::SVGFEOffsetElement::attributeToPropertyTypeMap): + (WebCore::SVGFEOffsetElement::fillAttributeToPropertyTypeMap): + * svg/SVGFEOffsetElement.h: + * svg/SVGFESpecularLightingElement.cpp: + (WebCore::SVGFESpecularLightingElement::attributeToPropertyTypeMap): + (WebCore::SVGFESpecularLightingElement::fillAttributeToPropertyTypeMap): + * svg/SVGFESpecularLightingElement.h: + * svg/SVGFETileElement.cpp: + (WebCore::SVGFETileElement::attributeToPropertyTypeMap): + (WebCore::SVGFETileElement::fillAttributeToPropertyTypeMap): + * svg/SVGFETileElement.h: + * svg/SVGFETurbulenceElement.cpp: + (WebCore::SVGFETurbulenceElement::attributeToPropertyTypeMap): + (WebCore::SVGFETurbulenceElement::fillAttributeToPropertyTypeMap): + * svg/SVGFETurbulenceElement.h: + * svg/SVGFilterElement.cpp: + (WebCore::SVGFilterElement::attributeToPropertyTypeMap): + (WebCore::SVGFilterElement::fillAttributeToPropertyTypeMap): + * svg/SVGFilterElement.h: + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + (WebCore::SVGFilterPrimitiveStandardAttributes::fillAttributeToPropertyTypeMap): + * svg/SVGFilterPrimitiveStandardAttributes.h: + * svg/SVGFontElement.cpp: + (WebCore::SVGFontElement::attributeToPropertyTypeMap): + (WebCore::SVGFontElement::fillAttributeToPropertyTypeMap): + * svg/SVGFontElement.h: + (WebCore::SVGFontElement::rendererIsNeeded): + * svg/SVGForeignObjectElement.cpp: + (WebCore::SVGForeignObjectElement::attributeToPropertyTypeMap): + (WebCore::SVGForeignObjectElement::fillAttributeToPropertyTypeMap): + * svg/SVGForeignObjectElement.h: + * svg/SVGGlyphElement.cpp: + (WebCore::SVGGlyphElement::attributeToPropertyTypeMap): + (WebCore::SVGGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGGlyphElement.h: + * svg/SVGGradientElement.cpp: + (WebCore::SVGGradientElement::fillAttributeToPropertyTypeMap): + * svg/SVGGradientElement.h: + * svg/SVGImageElement.cpp: + (WebCore::SVGImageElement::attributeToPropertyTypeMap): + (WebCore::SVGImageElement::fillAttributeToPropertyTypeMap): + * svg/SVGImageElement.h: + * svg/SVGLineElement.cpp: + (WebCore::SVGLineElement::attributeToPropertyTypeMap): + (WebCore::SVGLineElement::fillAttributeToPropertyTypeMap): + * svg/SVGLineElement.h: + * svg/SVGLinearGradientElement.cpp: + (WebCore::SVGLinearGradientElement::attributeToPropertyTypeMap): + (WebCore::SVGLinearGradientElement::fillAttributeToPropertyTypeMap): + * svg/SVGLinearGradientElement.h: + * svg/SVGMPathElement.cpp: + (WebCore::SVGMPathElement::attributeToPropertyTypeMap): + (WebCore::SVGMPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGMPathElement.h: + * svg/SVGMarkerElement.cpp: + (WebCore::SVGMarkerElement::attributeToPropertyTypeMap): + (WebCore::SVGMarkerElement::fillAttributeToPropertyTypeMap): + * svg/SVGMarkerElement.h: + * svg/SVGMaskElement.cpp: + (WebCore::SVGMaskElement::attributeToPropertyTypeMap): + (WebCore::SVGMaskElement::fillAttributeToPropertyTypeMap): + * svg/SVGMaskElement.h: + * svg/SVGMissingGlyphElement.cpp: + (WebCore::SVGMissingGlyphElement::attributeToPropertyTypeMap): + (WebCore::SVGMissingGlyphElement::fillAttributeToPropertyTypeMap): + * svg/SVGMissingGlyphElement.h: + * svg/SVGPathElement.cpp: + (WebCore::SVGPathElement::attributeToPropertyTypeMap): + (WebCore::SVGPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGPathElement.h: + * svg/SVGPatternElement.cpp: + (WebCore::SVGPatternElement::attributeToPropertyTypeMap): + (WebCore::SVGPatternElement::fillAttributeToPropertyTypeMap): + * svg/SVGPatternElement.h: + * svg/SVGPolyElement.cpp: + (WebCore::SVGPolyElement::attributeToPropertyTypeMap): + (WebCore::SVGPolyElement::fillAttributeToPropertyTypeMap): + * svg/SVGPolyElement.h: + * svg/SVGRadialGradientElement.cpp: + (WebCore::SVGRadialGradientElement::attributeToPropertyTypeMap): + (WebCore::SVGRadialGradientElement::fillAttributeToPropertyTypeMap): + * svg/SVGRadialGradientElement.h: + * svg/SVGRectElement.cpp: + (WebCore::SVGRectElement::attributeToPropertyTypeMap): + (WebCore::SVGRectElement::fillAttributeToPropertyTypeMap): + * svg/SVGRectElement.h: + * svg/SVGSVGElement.cpp: + (WebCore::SVGSVGElement::attributeToPropertyTypeMap): + (WebCore::SVGSVGElement::fillAttributeToPropertyTypeMap): + * svg/SVGSVGElement.h: + * svg/SVGScriptElement.cpp: + (WebCore::SVGScriptElement::attributeToPropertyTypeMap): + (WebCore::SVGScriptElement::fillAttributeToPropertyTypeMap): + * svg/SVGScriptElement.h: + * svg/SVGStopElement.cpp: + (WebCore::SVGStopElement::attributeToPropertyTypeMap): + (WebCore::SVGStopElement::fillAttributeToPropertyTypeMap): + * svg/SVGStopElement.h: + * svg/SVGStyledElement.cpp: + (WebCore::cssPropertyToTypeMap): + (WebCore::SVGStyledElement::animatedPropertyTypeForCSSProperty): + (WebCore::SVGStyledElement::fillAttributeToPropertyTypeMap): + * svg/SVGStyledElement.h: + * svg/SVGStyledTransformableElement.cpp: + (WebCore::SVGStyledTransformableElement::fillAttributeToPropertyTypeMap): + * svg/SVGStyledTransformableElement.h: + * svg/SVGSwitchElement.cpp: + (WebCore::SVGSwitchElement::attributeToPropertyTypeMap): + (WebCore::SVGSwitchElement::fillAttributeToPropertyTypeMap): + * svg/SVGSwitchElement.h: + * svg/SVGSymbolElement.cpp: + (WebCore::SVGSymbolElement::attributeToPropertyTypeMap): + (WebCore::SVGSymbolElement::fillAttributeToPropertyTypeMap): + * svg/SVGSymbolElement.h: + * svg/SVGTRefElement.cpp: + (WebCore::SVGTRefElement::attributeToPropertyTypeMap): + (WebCore::SVGTRefElement::fillAttributeToPropertyTypeMap): + * svg/SVGTRefElement.h: + * svg/SVGTSpanElement.cpp: + (WebCore::SVGTSpanElement::attributeToPropertyTypeMap): + (WebCore::SVGTSpanElement::fillAttributeToPropertyTypeMap): + * svg/SVGTSpanElement.h: + * svg/SVGTextContentElement.cpp: + (WebCore::SVGTextContentElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextContentElement.h: + * svg/SVGTextElement.cpp: + (WebCore::SVGTextElement::attributeToPropertyTypeMap): + (WebCore::SVGTextElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextElement.h: + * svg/SVGTextPathElement.cpp: + (WebCore::SVGTextPathElement::attributeToPropertyTypeMap): + (WebCore::SVGTextPathElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextPathElement.h: + * svg/SVGTextPositioningElement.cpp: + (WebCore::SVGTextPositioningElement::fillAttributeToPropertyTypeMap): + * svg/SVGTextPositioningElement.h: + * svg/SVGTitleElement.cpp: + (WebCore::SVGTitleElement::attributeToPropertyTypeMap): + (WebCore::SVGTitleElement::fillAttributeToPropertyTypeMap): + * svg/SVGTitleElement.h: + * svg/SVGUseElement.cpp: + (WebCore::SVGUseElement::attributeToPropertyTypeMap): + (WebCore::SVGUseElement::fillAttributeToPropertyTypeMap): + * svg/SVGUseElement.h: + * svg/SVGViewElement.cpp: + (WebCore::SVGViewElement::attributeToPropertyTypeMap): + (WebCore::SVGViewElement::fillAttributeToPropertyTypeMap): + * svg/SVGViewElement.h: + +2011-02-10 Alexis Menard <alexis.menard@nokia.com> + + Reviewed by Andreas Kling. + + Fix a Warning after removing FileSystem support for the inspector. + + * WebCore.pro: + +2011-02-10 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Anders Carlsson. + + AX: AX needs to stop using WebCoreViewFactory + https://bugs.webkit.org/show_bug.cgi?id=54153 + + WebKit2 no longer uses WebCoreViewFactory, which means that accessibility code needs + to get off of it and use WebCoreSystemInterface, like other clients. + + * WebCore.exp.in: + * accessibility/AXObjectCache.h: + * accessibility/mac/AXObjectCacheMac.mm: + (WebCore::AXObjectCache::handleFocusedUIElementChanged): + * accessibility/mac/AccessibilityObjectWrapper.h: + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper unregisterUniqueIdForUIElement]): + (CFAutoreleaseHelper): + (AXObjectIsTextMarker): + (AXObjectIsTextMarkerRange): + (AXTextMarkerRange): + (AXTextMarkerRangeStart): + (AXTextMarkerRangeEnd): + (textMarkerForVisiblePosition): + (-[AccessibilityObjectWrapper textMarkerForVisiblePosition:]): + (visiblePositionForTextMarker): + (-[AccessibilityObjectWrapper visiblePositionForTextMarker:]): + (visiblePositionForStartOfTextMarkerRange): + (visiblePositionForEndOfTextMarkerRange): + (textMarkerRangeFromMarkers): + (AXAttributeStringSetElement): + (-[AccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): + (textMarkerRangeFromVisiblePositions): + (-[AccessibilityObjectWrapper textMarkerRangeFromVisiblePositions:endPosition:]): + (-[AccessibilityObjectWrapper visiblePositionRangeForTextMarkerRange:]): + (-[AccessibilityObjectWrapper textMarkerRangeForSelection]): + (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]): + (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): + * editing/mac/SelectionControllerMac.mm: + (WebCore::accessibilityConvertScreenRect): + (WebCore::SelectionController::notifyAccessibilityForSelectionChange): + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + +2011-02-10 Alexis Menard <alexis.menard@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] In trunk with Qt Multimedia the full screen mode doesn't work. + https://bugs.webkit.org/show_bug.cgi?id=54201 + + Add files for the fullscreen video playback handling. It also fix + a missing header. + + * WebCore.pro: + +2011-02-09 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: Remove FileSystem support from the inspector. + https://bugs.webkit.org/show_bug.cgi?id=50695 + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * inspector/Inspector.idl: + * inspector/InspectorApplicationCacheAgent.cpp: + (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent): + (WebCore::InspectorApplicationCacheAgent::getApplicationCaches): + * inspector/InspectorApplicationCacheAgent.h: + * inspector/InspectorFileSystemAgent.cpp: Removed. + * inspector/InspectorFileSystemAgent.h: Removed. + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): + (WebCore::InspectorInstrumentation::willSendRequestImpl): + (WebCore::InspectorInstrumentation::markResourceAsCachedImpl): + (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): + (WebCore::InspectorInstrumentation::didReceiveResourceResponseImpl): + (WebCore::InspectorInstrumentation::didReceiveContentLengthImpl): + (WebCore::InspectorInstrumentation::didFinishLoadingImpl): + (WebCore::InspectorInstrumentation::didFailLoadingImpl): + (WebCore::InspectorInstrumentation::resourceRetrievedByXMLHttpRequestImpl): + (WebCore::InspectorInstrumentation::scriptImportedImpl): + (WebCore::InspectorInstrumentation::networkStateChangedImpl): + (WebCore::InspectorInstrumentation::updateApplicationCacheStatusImpl): + (WebCore::InspectorInstrumentation::retrieveResourceAgent): + * inspector/front-end/FileSystemView.js: Removed. + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.html: + +2011-02-10 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r78219. + http://trac.webkit.org/changeset/78219 + https://bugs.webkit.org/show_bug.cgi?id=54215 + + breaks editing/style/iframe-onload-crash.html on GTK 64-bit + Debug (Requested by philn-tp on #webkit). + + * dom/Document.h: + * dom/DocumentFragment.h: + * dom/Element.h: + * dom/Node.h: + * dom/Text.h: + * editing/htmlediting.cpp: + (WebCore::editingIgnoresContent): + (WebCore::canHaveChildrenForEditing): + * editing/htmlediting.h: + * html/HTMLBRElement.h: + * html/HTMLButtonElement.h: + * html/HTMLDataGridElement.h: + * html/HTMLFormControlElement.h: + * html/HTMLFrameElementBase.h: + * html/HTMLHRElement.h: + * html/HTMLImageElement.h: + * html/HTMLMeterElement.h: + * html/HTMLOutputElement.h: + * html/HTMLPlugInElement.h: + * html/HTMLProgressElement.h: + * wml/WMLBRElement.h: + * wml/WMLDoElement.h: + * wml/WMLImageElement.h: + * wml/WMLInputElement.h: + * wml/WMLSelectElement.h: + +2011-02-10 Andras Becsi <abecsi@webkit.org> + + Rubber-stamped by Csaba Osztrogonác. + + [Qt][V8] Fix the build. + + No new tests needed. + + * bindings/v8/WorkerContextExecutionProxy.cpp: add missing CString header. + * loader/cache/CachedScript.h: do not use extra qualification for base class enum. + +2011-02-10 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: [STYLES] Suggest CSS property values once Up/Down is pressed with an empty input + https://bugs.webkit.org/show_bug.cgi?id=54205 + + * inspector/front-end/CSSCompletions.js: + (WebInspector.CSSCompletions): + (WebInspector.CSSCompletions.prototype._firstIndexOfPrefix): + * inspector/front-end/CSSKeywordCompletions.js: + (WebInspector.CSSKeywordCompletions.forProperty): + * inspector/front-end/StylesSidebarPane.js: + (): + * inspector/front-end/TextPrompt.js: + (WebInspector.TextPrompt.prototype.complete): + +2011-02-10 Renata Hodovan <reni@webkit.org> + + Reviewed by Dirk Schulze. + + SVGFESpecularLightingElement doesn't support dynamic invalidation, when attributes change. + https://bugs.webkit.org/show_bug.cgi?id=54186 + + The dynamic changes are captured by the svgAttributeChange function, and invalidate the filter primitive if necessary. + + Tests: svg/dynamic-updates/SVGFESpecularLightingElement-dom-in-attr.html + svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularConstant-attr.html + svg/dynamic-updates/SVGFESpecularLightingElement-dom-specularExponent-attr.html + svg/dynamic-updates/SVGFESpecularLightingElement-dom-suraceScale-attr.html + svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-in-prop.html + svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularConstant-prop.html + svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-specularExponent-prop.html + svg/dynamic-updates/SVGFESpecularLightingElement-svgdom-suraceScale-prop.html + + * svg/SVGFESpecularLightingElement.cpp: + (WebCore::SVGFESpecularLightingElement::svgAttributeChanged): + * svg/SVGFESpecularLightingElement.h: + +2011-02-10 Andrey Adaikin <aandrey@google.com> + + Reviewed by Pavel Feldman. + + Web Inspector: Error messages are not displayed for the last line in a script + https://bugs.webkit.org/show_bug.cgi?id=54204 + + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype.addMessage): + (WebInspector.SourceFrame.prototype._addMessageToSource): + (WebInspector.SourceFrame.prototype._createConditionElement): + +2011-02-10 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Eric Seidel. + + Make canHaveChildrenForEditing more efficient + https://bugs.webkit.org/show_bug.cgi?id=53564 + + Improved the performance (1-2% in release and 20% in debug) by adding virtual member function + canContainRangeEndPoint to Node. It returns true whenever the associated node can have be a container + node for a position. + + As of this revision, canContainRangeEndPoint returns true on Document, DocumentFragment, Text nodes + and any elements except: + + HTML: applet, br, button, datagrid, embed, frame, frameset, hr, img, input, + meter, object, output, progress, and select. + + WML: br, do, img, input, and select. + + No new tests are added since this change cannot be tested directly. + + * dom/Document.h: + (WebCore::Document::canContainRangeEndPoint): Added; returns false. + * dom/DocumentFragment.h: + (WebCore::DocumentFragment::canContainRangeEndPoint): Added; returns true. + * dom/Element.h: + (WebCore::Element::canContainRangeEndPoint): Ditto. + * dom/Node.h: + (WebCore::Node::canContainRangeEndPoint): Added; returns false. + * dom/Text.h: + (WebCore::Text::canContainRangeEndPoint): Added; returns true. + * editing/htmlediting.cpp: Removed editingIgnoresContent and canHaveChildrenForEditing. + * editing/htmlediting.h: + (WebCore::editingIgnoresContent): Moved from htmlediting.cpp; made it inline. + (WebCore::canHaveChildrenForEditing): Ditto. + * html/HTMLBRElement.h: + (WebCore::HTMLBRElement::canContainRangeEndPoint): Added; returns false. + * html/HTMLButtonElement.h: + (WebCore::HTMLButtonElement::canContainRangeEndPoint): Ditto. + * html/HTMLDataGridElement.h: + (WebCore::HTMLDataGridElement::canContainRangeEndPoint): Ditto. + * html/HTMLFormControlElement.h: + (WebCore::HTMLFormControlElementWithState::canContainRangeEndPoint): Ditto. + * html/HTMLFrameElementBase.h: + (WebCore::HTMLFrameElementBase::canContainRangeEndPoint): Ditto. + * html/HTMLHRElement.h: + (WebCore::HTMLHRElement::canContainRangeEndPoint): Ditto. + * html/HTMLImageElement.h: + (WebCore::HTMLImageElement::canContainRangeEndPoint): Ditto. + * html/HTMLMeterElement.h: + (WebCore::HTMLMeterElement::canContainRangeEndPoint): Ditto. + * html/HTMLOutputElement.h: + (WebCore::HTMLOutputElement::canContainRangeEndPoint): Ditto. + * html/HTMLPlugInElement.h: + (WebCore::HTMLPlugInElement::canContainRangeEndPoint): Ditto. + * html/HTMLProgressElement.h: + (WebCore::HTMLProgressElement::canContainRangeEndPoint): Ditto. + * wml/WMLBRElement.h: + (WebCore::WMLBRElement::canContainRangeEndPoint): Ditto. + * wml/WMLDoElement.h: + (WebCore::WMLDoElement::canContainRangeEndPoint): Ditto. + * wml/WMLImageElement.h: + (WebCore::WMLImageElement::canContainRangeEndPoint): Ditto. + * wml/WMLInputElement.h: + (WebCore::WMLInputElement::canContainRangeEndPoint): Ditto. + * wml/WMLSelectElement.h: + (WebCore::WMLSelectElement::canContainRangeEndPoint): Ditto. + +2011-02-10 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: define interface per domain in Inspector.idl. + https://bugs.webkit.org/show_bug.cgi?id=54135 + + * inspector/CodeGeneratorInspector.pm: + * inspector/Inspector.idl: + +2011-02-10 Andrey Adaikin <aandrey@google.com> + + Reviewed by Pavel Feldman. + + Web Inspector: [regression] Fix syncing heights of the gutter and main panel lines, and add 2px padding-left + https://bugs.webkit.org/show_bug.cgi?id=54098 + + * inspector/front-end/TextViewer.js: + (WebInspector.TextViewer): + (WebInspector.TextViewer.prototype._updatePanelOffsets): + (WebInspector.TextViewer.prototype._syncScroll): + (WebInspector.TextViewer.prototype._syncDecorationsForLine): + (WebInspector.TextEditorChunkedPanel.prototype._totalHeight): + (WebInspector.TextEditorChunkedPanel.prototype.resize): + (WebInspector.TextEditorGutterPanel): + (WebInspector.TextEditorGutterChunk.prototype.set expanded): + (WebInspector.TextEditorGutterChunk.prototype.get height): + (WebInspector.TextEditorMainChunk.prototype.get height): + * inspector/front-end/textViewer.css: + (.webkit-line-content): + +2011-02-10 takano takumi <takano@apple.com> + + Reviewed by Dan Bernstein. + + A full-width character rotated leftward 90 degrees in text-combine + https://bugs.webkit.org/show_bug.cgi?id=54169 + + * rendering/RenderCombineText.cpp: + (WebCore::RenderCombineText::combineText): + - Fixed by resetting font's orientation to horizontal when we decided to make combined text. + Otherwise the text will be unexpectedly rotated in showGlyphsWithAdvances() in FontMac.mm. + +2011-02-10 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=50306 + <rdar://problem/8976152> REGRESSION: WebChromeClient::shouldReplaceWithGeneratedFileForUpload() + uses an initialized result value (breaks form submission with clang-built WebKit) + + No new test, because I can't reproduce the observable effect with my gcc build. + + * platform/network/FormData.cpp: (WebCore::FormData::appendKeyValuePairItems): Restore an + empty path check - an empty path was causing an exception in Foundation. + +2011-02-09 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Network & Resource panels make multiple requests for images with no content + https://bugs.webkit.org/show_bug.cgi?id=54085 + + - Added success parameter to resourceContent + - NetworkManager.requestContent() now returns empty for zero-length resources, null for errors + + * inspector/Inspector.idl: + * inspector/InspectorResourceAgent.cpp: + (WebCore::InspectorResourceAgent::resourceData): + (WebCore::InspectorResourceAgent::resourceContent): + * inspector/InspectorResourceAgent.h: + * inspector/front-end/NetworkManager.js: + (WebInspector.NetworkManager.prototype.requestContent): + * inspector/front-end/Resource.js: + (WebInspector.Resource.prototype.requestContent): + (WebInspector.Resource.prototype._contentURL): + +2011-02-10 Renata Hodovan <reni@webkit.org> + + Reviewed by Dirk Schulze. + + Move the light source implementations into their own files. + https://bugs.webkit.org/show_bug.cgi?id=53996 + + Splitting LightSource.cpp into 3 files. + + No new tests are added since this is a refactoring. + + * Android.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/filters/DistantLightSource.cpp: Added. + (WebCore::DistantLightSource::initPaintingData): + (WebCore::DistantLightSource::updatePaintingData): + (WebCore::DistantLightSource::setAzimuth): + (WebCore::DistantLightSource::setElevation): + (WebCore::DistantLightSource::externalRepresentation): + * platform/graphics/filters/LightSource.cpp: + * platform/graphics/filters/PointLightSource.cpp: Added. + (WebCore::PointLightSource::initPaintingData): + (WebCore::PointLightSource::updatePaintingData): + (WebCore::PointLightSource::setX): + (WebCore::PointLightSource::setY): + (WebCore::PointLightSource::setZ): + (WebCore::operator<<): + (WebCore::PointLightSource::externalRepresentation): + * platform/graphics/filters/SpotLightSource.cpp: Added. + (WebCore::SpotLightSource::initPaintingData): + (WebCore::SpotLightSource::updatePaintingData): + (WebCore::SpotLightSource::setX): + (WebCore::SpotLightSource::setY): + (WebCore::SpotLightSource::setZ): + (WebCore::SpotLightSource::setPointsAtX): + (WebCore::SpotLightSource::setPointsAtY): + (WebCore::SpotLightSource::setPointsAtZ): + (WebCore::SpotLightSource::setSpecularExponent): + (WebCore::SpotLightSource::setLimitingConeAngle): + (WebCore::operator<<): + (WebCore::SpotLightSource::externalRepresentation): + +2011-02-10 Avi Drissman <avi@google.com> + + Reviewed by Darin Fisher. + + <option> should implement the dir attribute. Mac Chromium version, followup to r76983, r77654. + https://bugs.webkit.org/show_bug.cgi?id=50969 + + Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html added in r76983. + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::updateFromElement): + * platform/chromium/PopupMenuChromium.h: + +2011-02-10 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Update the semantics of put() + https://bugs.webkit.org/show_bug.cgi?id=54102 + + Update the semantics of put: For object stores with auto increment, + it should be allowed to provide an explicit key, or an in-line key, + overriding the key generator mechanism. + + This reflects the spec changes suggested here: + http://www.w3.org/Bugs/Public/show_bug.cgi?id=11976 + + Extracting key-selection logic into its own function + to make it a bit easier on the eyes. + + * storage/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::selectKeyForPut): + (WebCore::IDBObjectStoreBackendImpl::putInternal): + * storage/IDBObjectStoreBackendImpl.h: + (WebCore::IDBObjectStoreBackendImpl::resetAutoIncrementKeyCache): + +2011-02-09 Antti Koivisto <antti@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=54103 + Implement fast path for matching simple selectors + + Implement a fast path for single and descendant selectors consisting + of id, class and tag selectors only. + + Selectors like this are marked on style selector initialization. When + encountered during style matching they are resolved using a fast path. + + Since selectors like this are very common this speeds up style matching + quite a bit (up to 50% on some sites according to Shark). + + * css/CSSStyleSelector.cpp: + (WebCore::RuleData::hasFastCheckableSelector): + (WebCore::RuleData::hasMultipartSelector): + (WebCore::RuleData::hasTopSelectorMatchingHTMLBasedOnRuleHash): + (WebCore::CSSStyleSelector::matchRulesForList): + (WebCore::CSSStyleSelector::checkSelector): + (WebCore::selectorTagMatches): + (WebCore::isFastCheckableSelector): + (WebCore::CSSStyleSelector::SelectorChecker::fastCheckSelector): + (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): + (WebCore::isSelectorMatchingHTMLBasedOnRuleHash): + (WebCore::RuleData::RuleData): + * css/CSSStyleSelector.h: + +2011-02-09 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION (r77101) box-shadow sometimes renders incorrectly + https://bugs.webkit.org/show_bug.cgi?id=54160 + + Fix an issue when ShadowBlur had a cached image buffer + that was larger than that of the current shadow being drawn, + and the current shadow was partially clipped out. + + In that situation endShadowLayer() would clip to the image + buffer, using the size of the buffer (as it must), but failed + to take into account the fact that we'd only cleared and painted + into a smaller section of the buffer. So we need to additionally + constrain the clip to cover only the valid part of the buffer. + + Test: fast/box-shadow/shadow-buffer-partial.html + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::endShadowLayer): + +2011-02-09 Beth Dakin <bdakin@apple.com> + + Reviewed by Maciej Stachowiak. + + Fix for <rdar://problem/8977051> CrashTracer: 8 crashes + in WebProcess at com.apple.WebCore: + -[ScrollbarPartAnimation setCurrentProgress:] + 364 + + The ScrollbarPartAnimation must be sent by reference! + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]): + +2011-02-09 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Darin Adler. + + REGRESSION(r76107): Crash in VisibleSelection::toNormalizedRange + https://bugs.webkit.org/show_bug.cgi?id=54053 + + The bug was caused by RenderBlock::positionForPoint's improperly returning a shadow node inside + RenderFileUploadControl for hit testing and VisibleSelection::toNormalizedRange's always assuming + the position variable "s" is not null. + + Fixed the bug by always returning a null position from RenderFileUploadControl::positionForPoint, + and also exiting early when either "s" or "e" is null in VisibleSelection::toNormalizedRange. + + Test: fast/forms/file-input-hit-test.html + + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::toNormalizedRange): + * rendering/RenderFileUploadControl.cpp: + (WebCore::RenderFileUploadControl::positionForPoint): + * rendering/RenderFileUploadControl.h: + +2011-02-09 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Overlay scrollbars crash used with a RenderListBox. + + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::layout): + (WebCore::RenderListBox::contentsSize): + (WebCore::RenderListBox::currentMousePosition): + (WebCore::RenderListBox::setHasVerticalScrollbar): + * rendering/RenderListBox.h: + Implement enough of the ScrollableArea interface to get things generally + working. + +2011-02-09 Beth Dakin <bdakin@apple.com> + + Reviewed by Simon Fraser. + + Fix for <rdar://problem/8966868> ScrollbarPainterDelegate + must return a layer if layer-backed to avoid crashing + + New virtual function scrollbarWillRenderIntoCompositingLayer() + on ScrollableArea. + * page/FrameView.h: + * platform/ScrollableArea.h: + (WebCore::ScrollableArea::scrollbarWillRenderIntoCompositingLayer): + * rendering/RenderLayer.h: + (WebCore::RenderLayer::scrollbarWillRenderIntoCompositingLayer): + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::scrollbarWillRenderIntoCompositingLayer): + * rendering/RenderListBox.h: + + Clean up unnecessary method declarations and call + scrollbarWillRenderIntoCompositingLayer() to deterine if + we need to return a layer. + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterDelegate layer]): + +2011-02-09 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Darin Adler. + + Replace static_cast<HTMLElement*> with toHTMLElement + https://bugs.webkit.org/show_bug.cgi?id=54117 + + No new tests since no new functionality was introduced. + + * accessibility/AccessibilityListBox.cpp: + (WebCore::AccessibilityListBox::addChildren): + * accessibility/AccessibilityMenuListPopup.cpp: + (WebCore::AccessibilityMenuListPopup::addChildren): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::accessibleNameForNode): + (WebCore::AccessibilityRenderObject::accessibilityDescription): + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_get_name): + (webkit_accessible_get_description): + * bindings/gobject/WebKitDOMBinding.cpp: + (WebKit::createWrapper): + (WebKit::kit): + * bindings/js/JSElementCustom.cpp: + (WebCore::toJSNewlyCreated): + * bindings/js/JSHTMLFrameSetElementCustom.cpp: + (WebCore::JSHTMLFrameSetElement::nameGetter): + * bindings/js/JSNodeCustom.cpp: + (WebCore::createWrapperInline): + * bindings/v8/custom/V8ElementCustom.cpp: + (WebCore::toV8): + * dom/Document.cpp: + (WebCore::Document::body): + * dom/Element.cpp: + (WebCore::Element::deprecatedCreateContextualFragment): + * dom/Range.cpp: + (WebCore::Range::createContextualFragment): + * editing/ApplyStyleCommand.cpp: + (WebCore::ApplyStyleCommand::applyBlockStyle): + (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange): + (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi): + (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): + (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle): + (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): + (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown): + (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): + (WebCore::ApplyStyleCommand::removeInlineStyle): + (WebCore::ApplyStyleCommand::shouldSplitTextElement): + (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded): + * editing/DeleteButtonController.cpp: + (WebCore::enclosingDeletableElement): + (WebCore::DeleteButtonController::show): + * editing/Editor.cpp: + (WebCore::Editor::setBaseWritingDirection): + * editing/InsertListCommand.cpp: + (WebCore::InsertListCommand::mergeWithNeighboringLists): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::negateStyleRulesThatAffectAppearance): + (WebCore::ReplaceSelectionCommand::handleStyleSpans): + (WebCore::ReplaceSelectionCommand::copyStyleToChildren): + * editing/SelectionController.cpp: + (WebCore::scanForForm): + (WebCore::SelectionController::currentForm): + * editing/htmlediting.cpp: + (WebCore::enclosingList): + (WebCore::enclosingListChild): + (WebCore::embeddedSublist): + (WebCore::appendedSublist): + * editing/markup.cpp: + (WebCore::StyledMarkupAccumulator::appendElement): + * html/HTMLCollection.cpp: + (WebCore::HTMLCollection::checkForNameMatch): + (WebCore::HTMLCollection::updateNameCache): + * html/HTMLElement.cpp: + (WebCore::HTMLElement::setOuterHTML): + (WebCore::HTMLElement::shadowAncestorOwnerForm): + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::formElementIndex): + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::setOption): + (WebCore::HTMLSelectElement::setLength): + * inspector/InspectorDOMAgent.cpp: + (WebCore::InspectorDOMAgent::getOuterHTML): + (WebCore::InspectorDOMAgent::setOuterHTML): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseMoveEvent): + * rendering/RenderMeter.cpp: + (WebCore::RenderMeter::createPart): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::createSubtreeIfNeeded): + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::createSubtreeIfNeeded): + +2011-02-09 Mike Reed <reed@google.com> + + Reviewed by Kenneth Russell. + + Use Skia's device->readPixels() when its bitmap claims to have no pixels, as this + handles the case when the device is backed by the GPU. + Patch developed by bsalomon@google.com + + No new tests. Existing canvas tests suffice + e.g. LayoutTests/canvas/philip/... + + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::getImageData): + (WebCore::ImageBuffer::getUnmultipliedImageData): + (WebCore::ImageBuffer::getPremultipliedImageData): + (WebCore::putImageData): + (WebCore::ImageBuffer::putUnmultipliedImageData): + (WebCore::ImageBuffer::putPremultipliedImageData): + +2011-02-09 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + document.close shouldn't affect non-script-created parsers + https://bugs.webkit.org/show_bug.cgi?id=53689 + + Tests: fast/frames/document-write-in-iframe-onload-3.html + fast/parser/iframe-onload-document-close-with-external-script-2.html + fast/parser/iframe-onload-document-close-with-external-script-3.html + fast/parser/iframe-onload-document-close-with-external-script.html + fast/parser/setTimeout-open.html + + Move our implementation of document.close closer to the spec by + introducing the notion of a script-created parser. This area of our + code is somewhat hairy. It might take a few more iterations before we + fully come up to spec. + + * dom/Document.cpp: + (WebCore::Document::setContent): + (WebCore::Document::open): + (WebCore::Document::cancelParsing): + (WebCore::Document::close): + - Over time, this method should converge to the spec. + (WebCore::Document::explicitClose): + - I'm not in love with this name. Somehow we want to differentiate + between Document closing itself and the document.close DOM + method. + (WebCore::Document::removePendingSheet): + * dom/Document.h: + * dom/ScriptableDocumentParser.cpp: + (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): + * dom/ScriptableDocumentParser.h: + (WebCore::ScriptableDocumentParser::setWasCreatedByScript): + (WebCore::ScriptableDocumentParser::wasCreatedByScript): + - General nonsense to keep track of whether the parser was created + by script. + * html/parser/HTMLDocumentParser.cpp: + (WebCore::HTMLDocumentParser::hasInsertionPoint): + - I'm not sure whether this part of the change is 100% correct. I + think our notion of the EOF character might be subtly different + from the notion in the spec. + * html/parser/HTMLInputStream.h: + (WebCore::HTMLInputStream::hasInsertionPoint): + - Remove FIXME because we're fixing that! + +2011-02-09 Abhishek Arya <inferno@chromium.org> + + Reviewed by James Robinson. + + [Chromium] Issue 72387: Integer bounds crash in LayerTilerChromium::resizeLayer + https://bugs.webkit.org/show_bug.cgi?id=54132 + + * platform/graphics/chromium/LayerTilerChromium.cpp: + (WebCore::LayerTilerChromium::resizeLayer): + +2011-02-09 Xiyuan Xia <xiyuan@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Use #f7f7f7 for select popup background on chromium/linux + https://bugs.webkit.org/show_bug.cgi?id=54115 + + No new tests since no behavior change. + + * css/themeChromiumLinux.css: + (select[size="1"] option): + +2011-02-09 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + REGRESSION(HTML 5): HTMLDocumentParser does not report html parse errors to the console + https://bugs.webkit.org/show_bug.cgi?id=41187 + + Wire up a basic HTML parse error message. There's a lot of room for + improvement in this area, but this is a start. + + No tests! See https://bugs.webkit.org/show_bug.cgi?id=54134 + + * html/parser/HTMLDocumentParser.h: + * html/parser/HTMLTreeBuilder.cpp: + (WebCore::HTMLTreeBuilder::parseError): + * html/parser/HTMLTreeBuilder.h: + +2011-02-09 Naoki Takano <takano.naoki@gmail.com> + + Reviewed by Kenneth Russell. + + [Chromium] Issue 58536: Fix Layout Test canvas/philip/tests/2d.imageData.put.alpha.html with --accelerated-2d-canvas. + https://bugs.webkit.org/show_bug.cgi?id=53757 + + This fix is for 2d.imageData.put.alpha.html with --accelerated-2d-canvas. No new tests. + + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::ImageBuffer::putUnmultipliedImageData): needs to call syncSoftwareCanvas() to sync between hardware and software. + (WebCore::ImageBuffer::putPremultipliedImageData): needs to call syncSoftwareCanvas() to sync between hardware and software. + + +2011-02-09 Chris Rogers <crogers@google.com> + + Reviewed by Kenneth Russell. + + Fix scaling and thread safety of FFTFrameFFTW + https://bugs.webkit.org/show_bug.cgi?id=54045 + + No new tests since audio API is not yet implemented. + + * platform/audio/FFTFrame.h: + * platform/audio/fftw/FFTFrameFFTW.cpp: + (WebCore::FFTFrame::FFTFrame): + (WebCore::FFTFrame::doFFT): + (WebCore::FFTFrame::doInverseFFT): + (WebCore::FFTFrame::initialize): + (WebCore::FFTFrame::cleanup): + (WebCore::FFTFrame::realData): + (WebCore::FFTFrame::imagData): + (WebCore::FFTFrame::fftwPlanForSize): + * platform/audio/mac/FFTFrameMac.cpp: + (WebCore::FFTFrame::initialize): + * platform/audio/mkl/FFTFrameMKL.cpp: + (WebCore::FFTFrame::initialize): + * webaudio/AudioContext.cpp: + (WebCore::AudioContext::AudioContext): + +2011-02-09 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + AX: accessibilityShouldUseUniqueId doesn't need to be in the core AX object + https://bugs.webkit.org/show_bug.cgi?id=54126 + + This is a Mac-only accessibility API concept and doesn't belong in the core AX object. + + * accessibility/AccessibilityObject.h: + (WebCore::AccessibilityObject::node): + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper accessibilityShouldUseUniqueId]): + +2011-02-09 Nebojsa Ciric <cira@chromium.org> + + Reviewed by Darin Fisher. + + Implements Locale object of JavaScript internationalization API proposal, as an + v8 extension. Extension code is hosted in v8 project (src/extensions/experimental/i18n-extension.{cc,h}) + and in this patch we just provide flags, tests and build rules for chromium port. + https://bugs.webkit.org/show_bug.cgi?id=49414 + + Test: fast/js/i18n-bindings-locale.html + + * WebCore.gyp/WebCore.gyp: + * bindings/generic/RuntimeEnabledFeatures.cpp: + (WebCore::RuntimeEnabledFeatures::experimentalI18NAPIEnabled): + * bindings/generic/RuntimeEnabledFeatures.h: + (WebCore::RuntimeEnabledFeatures::setExperimentalI18NAPIEnabled): + * bindings/v8/V8DOMWindowShell.cpp: + (WebCore::V8DOMWindowShell::createNewContext): + +2011-02-08 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Adler. + + REGRESSION(r71934): Shadow DOM nodes leak via relatedTarget + https://bugs.webkit.org/show_bug.cgi?id=52065 + + * dom/Node.cpp: + (WebCore::pullOutOfShadow): Added a helper to move a node to the outermost + boundary of shadow DOM. + (WebCore::Node::dispatchMouseEvent): Changed to use pullOutOfShadow. + +2011-02-09 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Darin Adler. + + Add convenience method toHTMLElement(Node*) + https://bugs.webkit.org/show_bug.cgi?id=54105 + + No new tests since no new functionality introduced. + + * html/HTMLElement.h: + (WebCore::toHTMLElement): + +2011-02-09 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fixed positioned elements at very top or bottom of page remain fixed but clip during rubber-banding + <rdar://problem/7615997> + https://bugs.webkit.org/show_bug.cgi?id=54054 + + Take the overhang into account when calculating position for elements with position: fixed. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::scrollXForFixedPosition): + (WebCore::ScrollView::scrollYForFixedPosition): + (WebCore::ScrollView::scrollOffsetForFixedPosition): + * platform/ScrollView.h: + * rendering/RenderView.cpp: + (WebCore::RenderView::mapLocalToContainer): + (WebCore::RenderView::mapAbsoluteToLocalPoint): + (WebCore::RenderView::computeRectForRepaint): + +2011-02-09 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dirk Schulze. + + Enhance ShadowBlur to tile inset box shadows + https://bugs.webkit.org/show_bug.cgi?id=51567 + + Add a tiling code path to ShadowBlur for rendering inset + box-shadows. + + Test: fast/box-shadow/inset-box-shadows.html + + * platform/graphics/ShadowBlur.cpp: + (WebCore::computeSliceSizesFromRadii): Compute the slice sizes + for the eight-piece shadow template. + (WebCore::ShadowBlur::templateSize): Compute the size of the template, + given the slice sizes. + (WebCore::ShadowBlur::drawRectShadow): Bail early if layerRect is empty + (which probably means we're clipped out). Call templateSize() and use + the result to decide whether to tile. + (WebCore::ShadowBlur::drawInsetShadow): New method for inset shadows. + (WebCore::ShadowBlur::drawRectShadowWithoutTiling): Code moved. + (WebCore::ShadowBlur::drawInsetShadowWithoutTiling): The non-tiling code + path for inset shadows. + (WebCore::ShadowBlur::drawInsetShadowWithTiling): Fill the shadow template + buffer, paint the non-blurred area of the destination, and then call drawLayerPieces() + to paint the eight-piece template image. + (WebCore::ShadowBlur::drawRectShadowWithTiling): Refactored code, now + shares the blurring code via blurAndColorShadowBuffer(), and the tiled template + drawing via drawLayerPieces(). + (WebCore::ShadowBlur::drawLayerPieces): Draw an eight-piece image from the + shadow template to the destination. + (WebCore::ShadowBlur::blurAndColorShadowBuffer): Blur the pixels in the image + buffer, and colorize them using the CompositeSourceIn operation. + * platform/graphics/ShadowBlur.h: + +2011-02-09 Jochen Eisinger <jochen@chromium.org> + + Reviewed by Adam Barth. + + Disable script elements when a CSP header is present + https://bugs.webkit.org/show_bug.cgi?id=53867 + + Tests: http/tests/security/contentSecurityPolicy/no-policy.html + http/tests/security/contentSecurityPolicy/script-src-in-iframe.html + http/tests/security/contentSecurityPolicy/script-src-none.html + http/tests/security/contentSecurityPolicy/script-src-redirect.html + + * html/parser/HTMLDocumentParser.cpp: + (WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc): + * html/parser/HTMLScriptRunner.cpp: + (WebCore::HTMLScriptRunner::requestPendingScript): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::didBeginDocument): + * loader/MainResourceLoader.cpp: + (WebCore::MainResourceLoader::didReceiveResponse): + * page/ContentSecurityPolicy.cpp: + (WebCore::ContentSecurityPolicy::ContentSecurityPolicy): + (WebCore::ContentSecurityPolicy::didReceiveHeader): + (WebCore::ContentSecurityPolicy::canLoadExternalScriptFromSrc): + * page/ContentSecurityPolicy.h: + +2011-02-09 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r78047. + + ContextMenu.cpp and ContextMenuItem.cpp have a USE(CROSS_PLATFORM_CONTEXT_MENUS), + so they shouldn't cause problems with correct preprocessor defines. + + * CMakeLists.txt: + +2011-02-09 Ilya Tikhonovsky <loislo@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: InspectorAgent should know nothing about InspectorController instance. + + https://bugs.webkit.org/show_bug.cgi?id=54100 + + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::restoreInspectorStateFromCookie): + (WebCore::InspectorAgent::disconnectFrontend): + * inspector/InspectorAgent.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::InspectorController): + (WebCore::InspectorController::disconnectFrontend): + (WebCore::InspectorController::restoreInspectorStateFromCookie): + +2011-02-09 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: source frame scroll position is not restored. + https://bugs.webkit.org/show_bug.cgi?id=54101 + + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype.show): + (WebInspector.SourceFrame.prototype.hide): + (WebInspector.SourceFrame.prototype.get scrollTop): + (WebInspector.SourceFrame.prototype.set scrollTop): + * inspector/front-end/TextViewer.js: + (WebInspector.TextViewer.prototype.get scrollTop): + (WebInspector.TextViewer.prototype.set scrollTop): + (WebInspector.TextViewer.prototype.get scrollLeft): + (WebInspector.TextViewer.prototype.set scrollLeft): + +2011-02-09 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: follow up on InspectorAgent split - + removing unnecessary methods from InspectorController. + https://bugs.webkit.org/show_bug.cgi?id=54093 + + * WebCore.exp.in: + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::stopUserInitiatedProfiling): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enabled): + (WebCore::InspectorAgent::showConsole): + * inspector/InspectorAgent.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::InspectorController): + (WebCore::InspectorController::didClearWindowObjectInWorld): + (WebCore::InspectorController::showConsole): + (WebCore::InspectorController::enabled): + (WebCore::InspectorController::inspectedPage): + * inspector/InspectorController.h: + * inspector/InspectorFrontendClientLocal.cpp: + +2011-02-07 Chris Marrin <cmarrin@apple.com> + + Reviewed by Simon Fraser. + + LayoutTests/animations/play-state.html has wrong behavior with accelerated compositing + https://bugs.webkit.org/show_bug.cgi?id=53513 + + The PlatformCAAnimation::create() function which took a pointer to another + PlatformCAAnimation was supposed to make a copy of that passed object. + But it was doing completely the wrong thing on Mac and was leaking an object + to boot. And the notion of copying an object using a static creation function + is wrong in the first place. So I changed it to a member copy() function + which would create a new PlatformCAAnimation which was a copy of 'this' and + return it. I changed the implementation on both Mac and Win to match. + + This problem was not caught by DRT, even there is a specific test for it. + That test just verifies that the higher level logic is working + properly, which it is. There's no practical way to find out if the + layer is currently animating. There is no logic which probes that + deeply into the layer mechanics. + + * platform/graphics/ca/GraphicsLayerCA.cpp: + * platform/graphics/ca/PlatformCAAnimation.h: + * platform/graphics/ca/mac/PlatformCAAnimationMac.mm: + * platform/graphics/ca/win/PlatformCAAnimationWin.cpp: + +2011-02-09 Lucas De Marchi <lucas.demarchi@profusion.mobi> + + Unreviewed build fix. + + [EFL] Remove double definition of ContextMenu. + https://bugs.webkit.org/show_bug.cgi?id=50762 + + When building with SHARED_CORE enabled, the symbols of ContextMenu + were both in webkit and webcore. This removes them from webcore and + shall be put back once the CROSS_PLATFORM_CONTEXT_MENUS is implemented + in EFL port. + + No new tests because no new functionality. + + * CMakeLists.txt: + +2011-02-09 Adam Roben <aroben@apple.com> + + Windows Production build fix + + * WebCore.vcproj/QTMovieWinCommon.vsprops: Link against + WebKitSystemInterface$(WebKitConfigSuffix).lib, not just WebKitSystemInterface.lib, so we + pick up the _debug variant when appropriate. + +2011-02-09 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Barth. + + Hostnames should cannonicalize to lowercase (to match every other browser) + https://bugs.webkit.org/show_bug.cgi?id=54084 + + * platform/KURL.cpp: + (WebCore::KURL::parse): + +2011-02-09 Peter Varga <pvarga@webkit.org> + + + Reviewed by Gavin Barraclough. + + Replace PCRE with Yarr in WebCore + https://bugs.webkit.org/show_bug.cgi?id=53496 + + No new tests needed. + + * Android.jscbindings.mk: + * CMakeLists.txt: + * ForwardingHeaders/pcre/pcre.h: Removed. + * ForwardingHeaders/yarr/Yarr.h: Added. + * ForwardingHeaders/yarr/YarrInterpreter.h: Added. + * ForwardingHeaders/yarr/YarrPattern.h: Added. + * WebCore.gyp/WebCore.gyp: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.vcproj/copyForwardingHeaders.cmd: + * platform/text/RegularExpression.cpp: + (WebCore::RegularExpression::Private::create): + (WebCore::RegularExpression::Private::Private): + (WebCore::RegularExpression::Private::compile): + (WebCore::RegularExpression::match): + +2011-02-09 Gyuyoung Kim <gyuyoung.kim@samsung.com> + + Reviewed by Eric Seidel. + + [EFL] Add dummy functions for HTML5 Video's control UI + https://bugs.webkit.org/show_bug.cgi?id=53906 + + In WebKit EFL, there are no implementations for HTML5 control UI. + First, dummy functions are added. + + * platform/efl/RenderThemeEfl.cpp: + (WebCore::RenderThemeEfl::extraMediaControlsStyleSheet): + (WebCore::RenderThemeEfl::formatMediaControlsCurrentTime): + (WebCore::RenderThemeEfl::paintMediaFullscreenButton): + (WebCore::RenderThemeEfl::paintMediaMuteButton): + (WebCore::RenderThemeEfl::paintMediaPlayButton): + (WebCore::RenderThemeEfl::paintMediaSeekBackButton): + (WebCore::RenderThemeEfl::paintMediaSeekForwardButton): + (WebCore::RenderThemeEfl::paintMediaSliderTrack): + (WebCore::RenderThemeEfl::paintMediaSliderThumb): + (WebCore::RenderThemeEfl::paintMediaVolumeSliderContainer): + (WebCore::RenderThemeEfl::paintMediaVolumeSliderTrack): + (WebCore::RenderThemeEfl::paintMediaVolumeSliderThumb): + (WebCore::RenderThemeEfl::paintMediaCurrentTime): + * platform/efl/RenderThemeEfl.h: + +2011-02-09 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Barth. + + Make WebKit's fragment cannonicalization match other browsers + https://bugs.webkit.org/show_bug.cgi?id=53850 + + This doesn't make us match perfectly, but it brings us closer. + + * platform/KURL.cpp: + (WebCore::appendEscapingBadChars): + (WebCore::escapeAndAppendFragment): + (WebCore::KURL::parse): + +2011-02-09 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Cursors should skip deleted entries + https://bugs.webkit.org/show_bug.cgi?id=53690 + + Add test to check that the cursor skips deleted entries. + + Test: storage/indexeddb/cursor-skip-deleted.html + + * storage/IDBCursorBackendImpl.cpp: + (WebCore::IDBCursorBackendImpl::currentRowExists): + (WebCore::IDBCursorBackendImpl::continueFunctionInternal): + * storage/IDBCursorBackendImpl.h: + +2011-02-08 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: script formatter should not create a worker for each script. + https://bugs.webkit.org/show_bug.cgi?id=54010 + + * inspector/front-end/ScriptFormatter.js: + (WebInspector.ScriptFormatter): + (WebInspector.ScriptFormatter.prototype._formatScript): + (WebInspector.ScriptFormatter.prototype._handleMessage): + (WebInspector.ScriptFormatter.prototype._handleError): + +2011-02-08 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: sync uglifyjs parser files. + https://bugs.webkit.org/show_bug.cgi?id=54003 + + * inspector/front-end/UglifyJS/parse-js.js: + * inspector/front-end/UglifyJS/process.js: + +2011-02-08 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Darin Adler. + + REGRESSION(71556,68059): queryCommandValue screws up background color at collapsed cursor + https://bugs.webkit.org/show_bug.cgi?id=53196 + + The bug was caused by Editor::selectionComputedStyle's modifying typing style without making a copy, + and its removing non-inheritable properties from the typing style. Fixed the bug by making a copy + before making the modification and not removing non-inheritable properties. + + Also fixed a bug in selectionStartCSSPropertyValue that it doesn't handle xx-small to -webkit-xxx-large + by extracting a function from StyleChange::extractTextStyles and calling it in both extractTextStyles + and selectionStartCSSPropertyValue. + + Test: editing/style/query-typing-style.html + + * editing/ApplyStyleCommand.cpp: + (WebCore::legacyFontSizeFromCSSValue): Extracted from StyleChange::extractTextStyles. + (WebCore::StyleChange::extractTextStyles): Calls legacyFontSizeFromCSSValue; this fixes the bug that + CSS values from xx-small through -webkit-xxx-large are not accounted. + * editing/ApplyStyleCommand.h: + * editing/Editor.cpp: + (WebCore::Editor::selectionStartCSSPropertyValue): Calls legacyFontSizeFromCSSValue. + (WebCore::Editor::selectionComputedStyle): Makes a copy before modifying typing style. + No longer calls removeNonEditingProperties on the copied typing style so that background-color property + is included when merged into the style. + +2011-02-08 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + REGRESSION (r76831): Subframes are printed blank + <rdar://problem/8945867> + + * page/FrameView.cpp: + (WebCore::FrameView::paintOverhangAreas): + Don't paint overhangs when printing. + +2011-02-07 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + Events should propagate through IDBDatabase (for IDBRequest and IDBTransaction) + https://bugs.webkit.org/show_bug.cgi?id=53975 + + The third change in the series of overhauling IndexedDB's event model to match + the spec (at least the version in our heads and bugs). + + Test: storage/indexeddb/transaction-event-propagation.html + + * bindings/v8/V8DOMWrapper.cpp: + (WebCore::V8DOMWrapper::convertEventTargetToV8Object): + * dom/Event.cpp: + (WebCore::Event::isIDBAbortEvent): + (WebCore::Event::isIDBCompleteEvent): + * dom/Event.h: + * dom/EventTarget.cpp: + (WebCore::EventTarget::toIDBDatabase): + * dom/EventTarget.h: + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::create): + (WebCore::IDBDatabase::IDBDatabase): + (WebCore::IDBDatabase::scriptExecutionContext): + (WebCore::IDBDatabase::eventTargetData): + (WebCore::IDBDatabase::ensureEventTargetData): + * storage/IDBDatabase.h: + (WebCore::IDBDatabase::toIDBDatabase): + (WebCore::IDBDatabase::refEventTarget): + (WebCore::IDBDatabase::derefEventTarget): + * storage/IDBDatabase.idl: + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::onSuccess): + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::backend): + (WebCore::IDBTransaction::db): + (WebCore::IDBTransaction::objectStore): + (WebCore::IDBTransaction::scriptExecutionContext): + (WebCore::IDBTransaction::dispatchEvent): + (WebCore::IDBTransaction::enqueueEvent): + * storage/IDBTransaction.h: + (WebCore::IDBTransaction::dispatchEvent): + +2011-02-08 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Add cache for GPU-accelerated path processing results + https://bugs.webkit.org/show_bug.cgi?id=45519 + + Adding a cache which holds the results of processing a path into + interior and exterior triangle meshes, according to the path + rendering algorithm from GPU Gems 3. No tests yet; will be tested + in conjunction with later code. + + * platform/graphics/gpu/LoopBlinnPathCache.cpp: Added. + (WebCore::LoopBlinnPathCache::LoopBlinnPathCache): + (WebCore::LoopBlinnPathCache::~LoopBlinnPathCache): + (WebCore::LoopBlinnPathCache::addVertex): + (WebCore::LoopBlinnPathCache::clear): + (WebCore::LoopBlinnPathCache::addInteriorVertex): + (WebCore::LoopBlinnPathCache::numberOfInteriorEdgeVertices): + (WebCore::LoopBlinnPathCache::interiorEdgeVertices): + (WebCore::LoopBlinnPathCache::addInteriorEdgeVertex): + * platform/graphics/gpu/LoopBlinnPathCache.h: Added. + (WebCore::LoopBlinnPathCache::numberOfVertices): + (WebCore::LoopBlinnPathCache::vertices): + (WebCore::LoopBlinnPathCache::texcoords): + (WebCore::LoopBlinnPathCache::numberOfInteriorVertices): + (WebCore::LoopBlinnPathCache::interiorVertices): + +2011-02-08 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Rename GraphicsContext3D::WebGLEnumType + https://bugs.webkit.org/show_bug.cgi?id=45708 + + * html/canvas/WebGLProgram.cpp: + (WebCore::WebGLProgram::getAttachedShader): + * html/canvas/WebGLProgram.h: + * platform/graphics/GraphicsContext3D.h: + +2011-02-08 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77980. + http://trac.webkit.org/changeset/77980 + https://bugs.webkit.org/show_bug.cgi?id=54043 + + "Crashes on Windows and Linux..." (Requested by leviw on + #webkit). + + * WebCore.exp.in: + * accessibility/AXObjectCache.cpp: + (WebCore::AXObjectCache::visiblePositionForTextMarkerData): + * accessibility/AccessibilityObject.cpp: + (WebCore::startOfStyleRange): + (WebCore::endOfStyleRange): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::visiblePositionForIndex): + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (objectAndOffsetUnignored): + * dom/Position.cpp: + (WebCore::Position::upstream): + (WebCore::Position::downstream): + * dom/Range.cpp: + (WebCore::Range::editingStartPosition): + * editing/Editor.cpp: + (WebCore::Editor::canDeleteRange): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::doApply): + * editing/SelectionController.cpp: + (WebCore::SelectionController::selectFrameElementInParentIfFullySelected): + (WebCore::SelectionController::setSelectedRange): + * editing/TextIterator.cpp: + (WebCore::TextIterator::shouldRepresentNodeOffsetZero): + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::deleteKeyPressed): + * editing/VisiblePosition.cpp: + (WebCore::VisiblePosition::VisiblePosition): + (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): + (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): + (WebCore::VisiblePosition::canonicalPosition): + (WebCore::VisiblePosition::characterAfter): + (WebCore::VisiblePosition::localCaretRect): + (WebCore::makeRange): + (WebCore::startVisiblePosition): + (WebCore::endVisiblePosition): + (WebCore::setStart): + (WebCore::setEnd): + (WebCore::isFirstVisiblePositionInNode): + (WebCore::isLastVisiblePositionInNode): + * editing/VisiblePosition.h: + * editing/htmlediting.cpp: + (WebCore::firstInSpecialElement): + (WebCore::lastInSpecialElement): + (WebCore::visiblePositionBeforeNode): + (WebCore::visiblePositionAfterNode): + * editing/visible_units.cpp: + (WebCore::startPositionForLine): + (WebCore::endPositionForLine): + (WebCore::previousLinePosition): + (WebCore::nextLinePosition): + (WebCore::startOfParagraph): + (WebCore::endOfParagraph): + (WebCore::endOfBlock): + (WebCore::startOfDocument): + (WebCore::endOfDocument): + (WebCore::logicalStartPositionForLine): + (WebCore::logicalEndPositionForLine): + * page/DOMSelection.cpp: + (WebCore::DOMSelection::collapse): + (WebCore::DOMSelection::setBaseAndExtent): + (WebCore::DOMSelection::setPosition): + (WebCore::DOMSelection::extend): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEventSingleClick): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::createVisiblePosition): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::visiblePositionForIndex): + * svg/SVGTextContentElement.cpp: + (WebCore::SVGTextContentElement::selectSubString): + +2011-02-08 Jia Pu <jpu@apple.com> + + Reviewed by Darin Adler. + + VisibleSelection::setWithoutValidation() should allow caret selection. + https://bugs.webkit.org/show_bug.cgi?id=53943 + + Test: editing/undo/undo-paste-when-caret-is-not-in-range.html + + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::setWithoutValidation): + +2011-02-08 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] Remove the last remnants of the Mozilla theme drawing code + https://bugs.webkit.org/show_bug.cgi?id=54035 + + Remove all Mozilla theme drawing code. + + No new tests. This change only removes dead code. + + * GNUmakefile.am: Remove Mozilla files from the source list. + * platform/gtk/RenderThemeGtk.h: Remove Mozilla-theme-drawing-related methods + and add m_colormap to hold the current colormap of the widgets. + * platform/gtk/RenderThemeGtk2.cpp: Remove Mozilla code. + (WebCore::RenderThemeGtk::platformInit): Ditto. + (WebCore::RenderThemeGtk::~RenderThemeGtk): Ditto. + (WebCore::RenderThemeGtk::gtkContainer): Ditto. + * platform/gtk/ScrollbarThemeGtk2.cpp: Ditto. + * platform/gtk/WidgetRenderingContext.cpp: Ditto. + (WebCore::WidgetRenderingContext::WidgetRenderingContext): Ditto. + * platform/gtk/WidgetRenderingContext.h: Ditto. + * platform/gtk/gtk2drawing.c: Removed. + * platform/gtk/gtkdrawing.h: Removed. + +2011-02-08 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Antti Koivisto. + + Crash when logging into gmail.com with frame flattening turned on. + https://bugs.webkit.org/show_bug.cgi?id=52449 + + Frame flattening algorithm requires that layout always starts from the main frame, since layout of + subframes impacts the layout of their parents. + There are places in the code that call view->layout() not on the main frame. + Instead of changing all the callsites, I changed FrameView::layout() + to force layout from the main frame if frame flattening is enabled. + In addition, postLayoutTasks can trigger relayout, so make it use the timer even more. + Move the call to SelectionController::updateAppearance() to performPostLayoutTasks(), + because calling the from layout() leads to a crash in pages that have a selection in an iframe. + + Tests: fast/frames/flattening/iframe-flattening-crash.html + fast/frames/flattening/iframe-flattening-selection-crash.html + + * page/FrameView.cpp: + (WebCore::FrameView::layout): + (WebCore::FrameView::performPostLayoutTasks): + +2011-02-08 Andy Estes <aestes@apple.com> + + Reviewed by Darin Adler. + + <rdar://problem/8913952> REGRESSION (r76301): 'plaintext-only' must be + a supported contentEditable mode. + https://bugs.webkit.org/show_bug.cgi?id=54041 + + * html/HTMLElement.cpp: + (WebCore::HTMLElement::setContentEditable): Setting the contentEditable + attribute to 'plaintext-only' should not throw an exception. + +2011-02-08 Dan Bernstein <mitz@apple.com> + + Reviewed by Simon Fraser. + + RenderRubyRun::m_beingDestroyed is redundant + https://bugs.webkit.org/show_bug.cgi?id=54042 + + * rendering/RenderRubyRun.cpp: + (WebCore::RenderRubyRun::RenderRubyRun): Removed intialization of m_beingDestroyed. + (WebCore::RenderRubyRun::removeChild): Use the base class beingDestroyed(). + * rendering/RenderRubyRun.h: + +2011-02-08 Levi Weintraub <leviw@chromium.org> + + Reviewed by Ryosuke Niwa. + + Stop instantiating legacy editing Positions in VisiblePosition + https://bugs.webkit.org/show_bug.cgi?id=52919 + + Changing VisiblePosition completely away from legacy positions. + + No new tests since this is functionaly equivalent. + + * WebCore.exp.in: Removing the legacy VisiblePosition constructor and + adding the PositionIsOffsetInAnchor symbol. If we must create VisiblePositions + outside of WebCore, they should be parent anchored. + * accessibility/AXObjectCache.cpp: + (WebCore::AXObjectCache::visiblePositionForTextMarkerData): + * accessibility/AccessibilityObject.cpp: + (WebCore::startOfStyleRange): + (WebCore::endOfStyleRange): + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::visiblePositionForIndex): + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (objectAndOffsetUnignored): + * dom/Position.cpp: + (WebCore::Position::upstream): Fixed to correctly respect PositionIsAfterAnchor + (WebCore::Position::downstream): ditto + * dom/Range.cpp: + (WebCore::Range::editingStartPosition): + * editing/Editor.cpp: + (WebCore::Editor::canDeleteRange): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::doApply): + * editing/SelectionController.cpp: + (WebCore::SelectionController::selectFrameElementInParentIfFullySelected): + (WebCore::SelectionController::setSelectedRange): + * editing/TextIterator.cpp: + (WebCore::TextIterator::shouldRepresentNodeOffsetZero): + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::deleteKeyPressed): + * editing/VisiblePosition.cpp: + (WebCore::VisiblePosition::leftVisuallyDistinctCandidate): + (WebCore::VisiblePosition::rightVisuallyDistinctCandidate): + (WebCore::VisiblePosition::canonicalPosition): + (WebCore::VisiblePosition::characterAfter): + (WebCore::VisiblePosition::localCaretRect): + (WebCore::makeRange): + (WebCore::startVisiblePosition): + (WebCore::endVisiblePosition): + (WebCore::setStart): + (WebCore::setEnd): + (WebCore::isFirstVisiblePositionInNode): + (WebCore::isLastVisiblePositionInNode): + * editing/VisiblePosition.h: + (WebCore::VisiblePosition::VisiblePosition): + * editing/htmlediting.cpp: + (WebCore::firstInSpecialElement): + (WebCore::lastInSpecialElement): + (WebCore::visiblePositionBeforeNode): + (WebCore::visiblePositionAfterNode): + * editing/visible_units.cpp: + (WebCore::startPositionForLine): + (WebCore::endPositionForLine): + (WebCore::previousLinePosition): + (WebCore::nextLinePosition): + (WebCore::startOfParagraph): + (WebCore::endOfParagraph): + (WebCore::endOfBlock): + (WebCore::startOfDocument): + (WebCore::endOfDocument): + (WebCore::logicalStartPositionForLine): + (WebCore::logicalEndPositionForLine): + * page/DOMSelection.cpp: + (WebCore::DOMSelection::collapse): + (WebCore::DOMSelection::setBaseAndExtent): + (WebCore::DOMSelection::setPosition): + (WebCore::DOMSelection::extend): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMousePressEventSingleClick): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::createVisiblePosition): + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::visiblePositionForIndex): + * svg/SVGTextContentElement.cpp: + (WebCore::SVGTextContentElement::selectSubString): + +2011-02-08 Michael Saboff <msaboff@apple.com> + + JSC::Bindings m_rootObject->isValid() assert fails when running layout tests + https://bugs.webkit.org/show_bug.cgi?id=53716 + + Changed ASSERT to be an if for the case where the RuntimeObject was + GC'ed before RootObject::invalidate is called. In that case there is + no need to remove the RuntimeObject from the RootObject. The isValid() + call will be false in this case, but the RuntimeObject has already + been removed from the RootObject. Added similar defensive code + in RootObject::removeRuntimeObject(). + + * bridge/jsc/BridgeJSC.cpp: + (JSC::Bindings::Instance::willDestroyRuntimeObject): + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::removeRuntimeObject): + +2011-02-08 Beth Dakin <bdakin@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/8953365> CrashTracer: 14 + crashes in WebProcess at com.apple.WebCore: + -[ScrollKnobAnimation setCurrentProgress:] + 258 + + This crash seems to happen when the animation is running + and a window is closed. If the ScrollAnimator is destroyed, + delegate calls for the animation can still run, so we have + to make sure we inform the delegates when the ScrollAnimator + is gone, and then we have to null-check it before we do + anything with it. + + Remove scrollbarPainterDelegate() since it's not used anymore. + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + + Add null-checks for _animator + (-[ScrollbarPartAnimation setCurrentProgress:]): + (-[ScrollbarPartAnimation scrollAnimatorDestroyed]): + (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]): + + New function to inform the delegates that the ScrollAnimator + is being destroyed. + (-[ScrollbarPainterDelegate scrollAnimatorDestroyed]): + (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac): + +2011-02-08 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Remove orphan code from old parser + https://bugs.webkit.org/show_bug.cgi?id=53984 + + This code appears to be unused. + + * html/HTMLParserErrorCodes.cpp: + * html/HTMLParserErrorCodes.h: + * html/HTMLParserQuirks.h: + * loader/EmptyClients.h: + * page/ChromeClient.h: + +2011-02-08 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Gustavo Noronha Silva. + + [GTK] Move scrollbar rendering out of gtk2drawing.c + https://bugs.webkit.org/show_bug.cgi?id=52836 + + Replace gtk2drawing.c scrollbar rendering with our own version. This + is the last use of the Mozilla theme drawing code. + + No new tests. This should not change the rendering of the default + theme. + + * platform/gtk/GtkVersioning.h: Add some more backported allocation setters. + * platform/gtk/RenderThemeGtk.h: Add a getter for the scrollbar widgets. + * platform/gtk/RenderThemeGtk2.cpp: Initialize and add getters for scrollbar widgets. + (WebCore::RenderThemeGtk::platformInit): Ditto. + (WebCore::RenderThemeGtk::gtkHScrollbar): Ditto. + (WebCore::RenderThemeGtk::gtkVScrollbar): Ditto. + * platform/gtk/ScrollbarThemeGtk.cpp: + (WebCore::ScrollbarThemeGtk::paint): We only repaint the scrolled + window background if we are repainting a button or the thumb. In that + case also repaint the track rect. + * platform/gtk/ScrollbarThemeGtk2.cpp: Port to WidgetRenderingContext. + (WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk): Ditto. + (WebCore::ScrollbarThemeGtk::updateThemeProperties): Ditto. + (WebCore::getWidgetForScrollbar): Ditto. + (WebCore::ScrollbarThemeGtk::paintTrackBackground): Ditto. + (WebCore::ScrollbarThemeGtk::paintScrollbarBackground): Ditto. + (WebCore::ScrollbarThemeGtk::paintThumb): Ditto. + (WebCore::ScrollbarThemeGtk::paintButton): Ditto. + * platform/gtk/WidgetRenderingContext.cpp: Ditto. + (WebCore::WidgetRenderingContext::gtkPaintBox): Added an option which + also adjusts a widget allocation according to the paint rect. This is + necessary to properly draw scrollbar buttons. + * platform/gtk/WidgetRenderingContext.h: Ditto. + +2011-02-08 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + Inset shadow with large offset renders incorrectly + https://bugs.webkit.org/show_bug.cgi?id=53882 + + Fix an issue with inset shadows, when the shadow offset + was larger than the box size. In this case we'd fail to + fill the box with the shadow color. + + Test: fast/box-shadow/inset-shadow-large-offset.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::areaCastingShadowInHole): Return a rect that covers the area + which contributes to the inset shadow. + + (WebCore::RenderBoxModelObject::paintBoxShadow): Use areaCastingShadowInHole() + to compute the outerRect. + +2011-02-08 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + drawElements should check if a buffer is bound to ELEMENT_ARRAY_BUFFER + https://bugs.webkit.org/show_bug.cgi?id=54017 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::drawElements): + +2011-01-28 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Adler. + + Change the rest of HTMLMediaElement shadow DOM parts to use shadowPseudoId. + https://bugs.webkit.org/show_bug.cgi?id=53190 + + This is the second part of refactoring the HTMLMediaElement to use new + shadow DOM. The changes are mainly mechanical, except for needing to + add a new method to RenderTheme, which indicates whether or not status + display is being used by it. Previously, we relied on existence of a cached + pseudo style. + + Refactoring, covered by existing tests. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): Removed now-unused enum values. + (WebCore::nameToPseudoTypeMap): Ditto. + (WebCore::CSSSelector::extractPseudoType): Ditto. + * css/CSSSelector.h: Ditto. + * html/shadow/MediaControls.cpp: + (WebCore::MediaControls::createPanel): Changed to use the newly-added MediaControlPanelElement. + (WebCore::MediaControls::createCurrentTimeDisplay): Changed to use the newly-added + MediaControlCurrentTimeDisplayElement. + (WebCore::MediaControls::createTimeRemainingDisplay): Changed to use the newly-added + MediaControlTimeRemainingDisplayElement. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlShadowRootElement::updateStyle): Changed to use the + standard style resolution. + (WebCore::MediaControlShadowRootElement::shadowPseudoId): Added. + (WebCore::MediaControlElement::MediaControlElement): Removed the switch statement + that is no longer necessary. + (WebCore::MediaControlElement::styleForElement): Changed to use the standard + style resolution. + (WebCore::MediaControlPanelElement::MediaControlPanelElement): Added. + (WebCore::MediaControlPanelElement::create): Added. + (WebCore::MediaControlPanelElement::displayType): Added. + (WebCore::MediaControlPanelElement::shadowPseudoId): Added. + (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): + Removed PseudoId constructor arg. + (WebCore::MediaControlTimelineContainerElement::rendererIsNeeded): + Changed to use the newly-plumbed usesMediaControlStatusDisplay helper. + (WebCore::MediaControlTimelineContainerElement::displayType): Added. + (WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Added. + (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): + Removed PseudoId constructor arg. + (WebCore::MediaControlVolumeSliderContainerElement::displayType): Added. + (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Added. + (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): + Removed PseudoId constructor arg. + (WebCore::MediaControlStatusDisplayElement::rendererIsNeeded): Changed to + use the newly-plumbed usesMediaControlStatusDisplay helper. + (WebCore::MediaControlStatusDisplayElement::displayType): Added. + (WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Added. + (WebCore::MediaControlTimeDisplayElement::MediaControlTimeDisplayElement): + Removed PseudoId constructor arg. + (WebCore::MediaControlTimeRemainingDisplayElement::create): Added. + (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Added. + (WebCore::MediaControlTimeRemainingDisplayElement::displayType): Added. + (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Added. + (WebCore::MediaControlCurrentTimeDisplayElement::create): Added. + (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Added. + (WebCore::MediaControlCurrentTimeDisplayElement::displayType): Added. + (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Added. + * rendering/MediaControlElements.h: Added/changed defs accordingly. + * rendering/RenderTheme.h: + (WebCore::RenderTheme::usesMediaControlStatusDisplay): Added. + * rendering/RenderThemeMac.h: Added def. + * rendering/RenderThemeMac.mm: + (WebCore::RenderThemeMac::usesMediaControlStatusDisplay): Added. + * rendering/style/RenderStyleConstants.h: Removed now-unused enum values. + +2011-02-08 Xiaomei Ji <xji@chromium.org> + + Reviewed by Dan Bernstein. + + Fix pop-up button text not rendered correctly according to its direction + in <option>. + https://bugs.webkit.org/show_bug.cgi?id=53642 + + In adjustInnerStyle(), if m_innerBlock's direction or unicode-bidi + changes, set it needs layout. + + Test: fast/text/international/pop-up-button-text-alignment-and-direction.html + + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::adjustInnerStyle): + +2011-02-08 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed build fix for Qt-minimal. + + * inspector/InspectorInstrumentation.h: + (WebCore::InspectorInstrumentation::hasFrontend): + +2011-02-02 Ilya Tikhonovsky <loislo@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: move InspectorController's methods from InspectorAgent to InspectorController. + + https://bugs.webkit.org/show_bug.cgi?id=53169 + + All the Inspector API for WebCore has two parts. + The first one is InspectorInstrumentation for WebCore. + The second is InspectorController for WebKit. + InspectorAgent was produced by renaming original InspectorController. + This patch extracts WebKit related methods from InspectorAgent to InspectorController. + + * WebCore.exp.in: + * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp: + * html/HTMLDocument.cpp: + (WebCore::HTMLDocument::createParser): + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::~InspectorAgent): + (WebCore::InspectorAgent::restoreInspectorStateFromCookie): + (WebCore::InspectorAgent::inspect): + (WebCore::InspectorAgent::handleMousePress): + (WebCore::InspectorAgent::didClearWindowObjectInWorld): + (WebCore::InspectorAgent::setFrontend): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::resourceAgent): + (WebCore::InspectorAgent::createFrontendLifetimeAgents): + (WebCore::InspectorAgent::releaseFrontendLifetimeAgents): + (WebCore::InspectorAgent::populateScriptObjects): + (WebCore::InspectorAgent::pushDataCollectedOffline): + (WebCore::InspectorAgent::restoreProfiler): + (WebCore::InspectorAgent::startTimelineProfiler): + (WebCore::PostWorkerNotificationToFrontendTask::performTask): + (WebCore::InspectorAgent::didOpenDatabase): + (WebCore::InspectorAgent::didUseDOMStorage): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::enabled): + * inspector/InspectorAgent.h: + (WebCore::InspectorAgent::frontend): + * inspector/InspectorController.cpp: + (WebCore::InspectorController::InspectorController): + (WebCore::InspectorController::~InspectorController): + (WebCore::InspectorController::setInspectorFrontendClient): + (WebCore::InspectorController::hasInspectorFrontendClient): + (WebCore::InspectorController::didClearWindowObjectInWorld): + (WebCore::InspectorController::startTimelineProfiler): + (WebCore::InspectorController::stopTimelineProfiler): + (WebCore::InspectorController::connectFrontend): + (WebCore::InspectorController::disconnectFrontend): + (WebCore::InspectorController::disconnectFrontendImpl): + (WebCore::InspectorController::show): + (WebCore::InspectorController::close): + (WebCore::InspectorController::restoreInspectorStateFromCookie): + (WebCore::InspectorController::evaluateForTestInFrontend): + (WebCore::InspectorController::drawNodeHighlight): + (WebCore::InspectorController::inspect): + (WebCore::InspectorController::enabled): + (WebCore::InspectorController::showPanel): + (WebCore::InspectorController::frontendLoaded): + (WebCore::InspectorController::timelineProfilerEnabled): + (WebCore::InspectorController::enableProfiler): + (WebCore::InspectorController::disableProfiler): + (WebCore::InspectorController::profilerEnabled): + (WebCore::InspectorController::debuggerEnabled): + (WebCore::InspectorController::showAndEnableDebugger): + (WebCore::InspectorController::disableDebugger): + (WebCore::InspectorController::startUserInitiatedProfiling): + (WebCore::InspectorController::stopUserInitiatedProfiling): + (WebCore::InspectorController::isRecordingUserInitiatedProfile): + (WebCore::InspectorController::setInspectorExtensionAPI): + (WebCore::InspectorController::resume): + (WebCore::InspectorController::hideHighlight): + (WebCore::InspectorController::dispatchMessageFromFrontend): + * inspector/InspectorController.h: + (WebCore::InspectorController::inspectorClient): + (WebCore::InspectorController::inspectedPage): + (WebCore::InspectorController::hasFrontend): + * inspector/InspectorFrontendClientLocal.cpp: + (WebCore::InspectorFrontendClientLocal::sendMessageToBackend): + * inspector/InspectorFrontendHost.cpp: + (WebCore::InspectorFrontendHost::setExtensionAPI): + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::didClearWindowObjectInWorldImpl): + (WebCore::InspectorInstrumentation::profilerEnabledImpl): + * inspector/InspectorInstrumentation.h: + (WebCore::InspectorInstrumentation::hasFrontend): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): + +2011-02-08 George Wright <gwright@rim.com> + + Reviewed by Adam Barth. + + https://bugs.webkit.org/show_bug.cgi?id=53949 + + Ensure that we pack the colour byte order correctly for Skia using + Skia's SkPackARGB32 function. + + * platform/image-decoders/ImageDecoder.h: + (WebCore::ImageFrame::setRGBA): + +2011-02-08 George Wright <gwright@rim.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=53951 + + Ensure we do not pass (-1, -1) sized rects to ImageBuffer but instead + pass the full image dimensions. + + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::drawImageBuffer): + +2011-02-08 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Add missing includes and forward declarations for DownloadBundle + https://bugs.webkit.org/show_bug.cgi?id=53881 + + * platform/network/cf/DownloadBundle.h: + * platform/network/win/DownloadBundleWin.cpp: + (WebCore::DownloadBundle::appendResumeData): + +2011-02-08 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Add missing include in WKCAImageQueue + https://bugs.webkit.org/show_bug.cgi?id=53890 + + * platform/graphics/win/WKCAImageQueue.cpp: + +2011-02-08 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Add missing includes and forward declarations for CFNetwork + https://bugs.webkit.org/show_bug.cgi?id=53883 + + * platform/network/cf/DNSCFNet.cpp: + * platform/network/cf/LoaderRunLoopCF.cpp: + * platform/network/cf/LoaderRunLoopCF.h: + * platform/network/cf/ProxyServerCFNet.cpp: + * platform/network/cf/SocketStreamHandle.h: + * platform/network/cf/SocketStreamHandleCFNet.cpp: + +2011-02-08 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r77870. + + * platform/DragImage.cpp: Enable createDragImageForLink for WinCE. + +2011-02-08 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: open network resource url in new tab upon double click. + https://bugs.webkit.org/show_bug.cgi?id=53930 + + * inspector/front-end/NetworkPanel.js: + (WebInspector.NetworkDataGridNode.prototype.createCells): + (WebInspector.NetworkDataGridNode.prototype._openInNewTab): + +2011-02-08 Yonathan Randolph <yonathan@gmail.com> + + Reviewed by Pavel Feldman. + + Web Inspector: $x: any node should work in optional context parameter. + https://bugs.webkit.org/show_bug.cgi?id=50138 + + * inspector/InjectedScriptSource.js: + +2011-02-08 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r77870. + + Remove the global namespace prefix from GlobalLock/GlobalUnlock. + + * platform/win/ClipboardUtilitiesWin.cpp: + +2011-02-08 Pavel Feldman <pfeldman@chromium.org> + + Not reviewed: re-apply r77924. + + Test: inspector/console-api-on-call-frame.html + + * inspector/InjectedScriptSource.js: + * inspector/front-end/ExtensionServer.js: + (WebInspector.ExtensionServer.prototype._onEvaluateOnInspectedPage): + +2011-02-08 Andreas Kling <kling@webkit.org> + + Reviewed by Tor Arne Vestbø. + + REGRESSION(r77312): Unbreak TiledBackingStore. + + Due to an off-by-one error, we were no longer rendering the + rightmost column and bottom row of tiles. + + Covered by tst_QGraphicsWebView::widgetsRenderingThroughCache(). + + * platform/graphics/TiledBackingStore.cpp: + (WebCore::TiledBackingStore::invalidate): + (WebCore::TiledBackingStore::updateTileBuffers): + (WebCore::TiledBackingStore::paint): + (WebCore::TiledBackingStore::createTiles): + +2011-02-08 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77924. + http://trac.webkit.org/changeset/77924 + https://bugs.webkit.org/show_bug.cgi?id=53997 + + Breaks inspector tests. (Requested by pfeldman on #webkit). + + * inspector/InjectedScriptSource.js: + (.): + (): + +2011-02-08 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [refacotring] merge InspectorAgent::willSendRequest() into InspectorResourceAgent + https://bugs.webkit.org/show_bug.cgi?id=53789 + - perform UserAgent override via InspectorInstrumentation + - move adding extra request headers to InspectorResourceAgent + - simplified things in InspectorState + + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::applyUserAgentOverride): + * inspector/InspectorAgent.h: + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::applyUserAgentOverrideImpl): + (WebCore::InspectorInstrumentation::willSendRequestImpl): + * inspector/InspectorInstrumentation.h: + (WebCore::InspectorInstrumentation::applyUserAgentOverride): + * inspector/InspectorResourceAgent.cpp: + (WebCore::InspectorResourceAgent::setExtraHeaders): + (WebCore::InspectorResourceAgent::willSendRequest): + * inspector/InspectorResourceAgent.h: + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + (WebCore::InspectorState::restoreFromInspectorCookie): + (WebCore::InspectorState::updateCookie): + (WebCore::InspectorState::setValue): + (WebCore::InspectorState::getBoolean): + (WebCore::InspectorState::getString): + (WebCore::InspectorState::getLong): + (WebCore::InspectorState::getObject): + * inspector/InspectorState.h: + (WebCore::InspectorState::setObject): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::userAgent): + +2011-02-08 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: do not hide scope variables with command line api. + https://bugs.webkit.org/show_bug.cgi?id=53497 + + Test: inspector/console-api-on-call-frame.html + + * inspector/InjectedScriptSource.js: + +2011-02-08 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: ignore cache upon reload via Ctrl(Cmd)+Shift+R. + https://bugs.webkit.org/show_bug.cgi?id=53914 + + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::reloadPage): + * inspector/InspectorAgent.h: + * inspector/front-end/AuditsPanel.js: + (WebInspector.AuditsPanel.prototype._reloadResources): + * inspector/front-end/ExtensionServer.js: + (WebInspector.ExtensionServer.prototype._onReload): + * inspector/front-end/inspector.js: + (WebInspector.documentKeyDown): + +2011-02-08 Antti Koivisto <antti@apple.com> + + Reviewed by Cameron Zwarich. + + Skip over sibling selectors when collecting descendant selector hashes + https://bugs.webkit.org/show_bug.cgi?id=53987 + + Skip instead of bailing out. This will allow optimizing some sibling selector cases. + + * css/CSSStyleSelector.cpp: + (WebCore::RuleData::RuleData): + (WebCore::RuleData::collectIdentifierHashes): + (WebCore::RuleData::collectDescendantSelectorIdentifierHashes): + * css/CSSStyleSelector.h: + +2011-02-07 Cris Neckar <cdn@chromium.org> + + Reviewed by Jian Li. + + Fix null deref in DOMURL + https://bugs.webkit.org/show_bug.cgi?id=53811 + + Test: fast/files/domurl-script-execution-context-crash.html + + * html/DOMURL.cpp: + (WebCore::DOMURL::DOMURL): + +2011-02-07 Mark Rowe <mrowe@apple.com> + + Fix the 32-bit build. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): Remove some extraneous characters. + (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): Ditto. + +2011-02-07 Xiyuan Xia <xiyuan@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Select popup box does not align with select button when appearance is not "menulist". + https://bugs.webkit.org/show_bug.cgi?id=53942 + + Added manual test select_webkit_appearance_off_popup_alignment.html. + + * manual-tests/select_webkit_appearance_off_popup_alignment.html: Added. + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::layout): + +2011-02-07 Aparna Nandyal <aparna.nand@wipro.com> + + Reviewed by Andreas Kling. + + [Qt] - Context menu needs "Copy" as well when the selected text is a link. + https://bugs.webkit.org/show_bug.cgi?id=40983 + + Added copy option for Qt platform if selection is a link. + Added a test in tst_qwebpage.cpp. + + * page/ContextMenuController.cpp: + (WebCore::ContextMenuController::populate): + +2011-02-07 Mike Reed <reed@google.com> + + Reviewed by Kenneth Russell. + + Add compile-time flag ENABLE(SKIA_GPU) to use Skia's gpu backend + when drawing <canvas>. Disabled by default. + + No new tests. existing canvas layouttests apply + + * platform/graphics/chromium/DrawingBufferChromium.cpp: + (WebCore::DrawingBuffer::publishToPlatformLayer): + * platform/graphics/skia/PlatformContextSkia.cpp: + (WebCore::GetGlobalGrContext): + (WebCore::PlatformContextSkia::isPrinting): + (WebCore::PlatformContextSkia::setSharedGraphicsContext3D): + (WebCore::PlatformContextSkia::syncSoftwareCanvas): + +2011-02-07 Jay Civelli <jcivelli@chromium.org> + + Reviewed by Darin Fisher. + + Removing unused code from PopupMenuChromium. + https://bugs.webkit.org/show_bug.cgi?id=53866 + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::layout): + (WebCore::PopupMenuChromium::show): + * platform/chromium/PopupMenuChromium.h: + +2011-02-07 Kenichi Ishibashi <bashi@chromium.org> + + Reviewed by Andreas Kling. + + HTMLOutputElement::childrenChanged() should call its base class childrenChanged() + https://bugs.webkit.org/show_bug.cgi?id=53791 + + Calls HTMLFormControlElement::childrenChanged() in HTMLOutputElement::childrenChanged(). + + Test: fast/dom/HTMLOutputElement/htmloutputelement-children-removed.html + + * html/HTMLOutputElement.cpp: + (WebCore::HTMLOutputElement::childrenChanged): Calls super class's + childrenChanged(). + +2011-02-07 Benjamin Poulain <ikipou@gmail.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] cookiesEnabled could create the cookieJar on the wrong thread. + https://bugs.webkit.org/show_bug.cgi?id=52289 + + Use the QtNAMThreadSafeProxy to make sure the cookie jar is created + in the same thread as the QNetworkAccessManager. + + * platform/network/qt/QtNAMThreadSafeProxy.cpp: + (WebCore::QtNAMThreadSafeProxy::QtNAMThreadSafeProxy): + (WebCore::QtNAMThreadSafeProxy::hasCookieJar): + * platform/network/qt/QtNAMThreadSafeProxy.h: + * platform/qt/CookieJarQt.cpp: + (WebCore::cookiesEnabled): + +2011-02-07 Alexey Marinichev <amarinichev@chromium.org> + + Reviewed by Kenneth Russell. + + Hook up WebGraphicsContext3D::setContextLostCallback. + https://bugs.webkit.org/show_bug.cgi?id=53722 + + Test: fast/canvas/webgl/context-lost.html, comment out the line with + extension.loseContext() and kill the GPU process "Lose context" + message shows up. + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContextLostCallback::WebGLRenderingContextLostCallback): + (WebCore::WebGLRenderingContextLostCallback::onContextLost): + (WebCore::WebGLRenderingContextLostCallback::~WebGLRenderingContextLostCallback): + (WebCore::WebGLRenderingContext::initializeNewContext): + (WebCore::WebGLRenderingContext::~WebGLRenderingContext): + * platform/graphics/GraphicsContext3D.h: + (WebCore::GraphicsContext3D::ContextLostCallback::~ContextLostCallback): + * platform/graphics/mac/GraphicsContext3DMac.mm: + (WebCore::GraphicsContext3D::setContextLostCallback): stub + * platform/graphics/qt/GraphicsContext3DQt.cpp: + (WebCore::GraphicsContext3D::setContextLostCallback): stub + +2011-02-07 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Eric Seidel. + + Add missing PaintInfo include in RenderThemeWin.cpp + https://bugs.webkit.org/show_bug.cgi?id=53885 + + * rendering/RenderThemeWin.cpp: + +2011-02-07 Qi Zhang <qi.2.zhang@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] enum QWebPage::WebAction doesn't have value QWebPage::CopyImageUrl + https://bugs.webkit.org/show_bug.cgi?id=52974 + + Add ContextMenuItemTagCopyImageUrlToClipboard into standard action but Qt platform specific. + + * page/ContextMenuController.cpp: + (WebCore::ContextMenuController::contextMenuItemSelected): + (WebCore::ContextMenuController::populate): + (WebCore::ContextMenuController::checkOrEnableIfNeeded): + * platform/ContextMenuItem.h: + * platform/LocalizationStrategy.h: + * platform/LocalizedStrings.cpp: + (WebCore::contextMenuItemTagCopyImageUrlToClipboard): + * platform/LocalizedStrings.h: + +2011-02-07 Kenichi Ishibashi <bashi@chromium.org> + + Reviewed by Kent Tamura. + + HTMLFormElement::formElementIndex() returns a bad index into a vector of form associated elements + https://bugs.webkit.org/show_bug.cgi?id=53970 + + Adds HTMLObjectElement::virtualForm() to make HTMLObjectElement::form() + return the right value. + + Test: fast/dom/HTMLObjectElement/form/nested-form-element.html + + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::virtualForm): Added. + * html/HTMLObjectElement.h: Added virtualForm(). + +2011-02-07 Ryosuke Niwa <rniwa@webkit.org> + + Unreviewed Leopard build fix. + + * WebCore.xcodeproj/project.pbxproj: let XCode have developmentRegion. + * platform/mac/DragImageMac.mm: + (WebCore::webkit_CGCeiling): Cast the return value of ceil to CGFloat. + +2011-02-07 Enrica Casucci <enrica@apple.com> + + Reviewed by Sam Weinig. + + Fixing a build break on Mac caused by http://trac.webkit.org/changeset/77874 + + When moving code from WebKit to WebCore we needed to move some additional + functions previously in NSStringExtras. + + * WebCore.xcodeproj/project.pbxproj: + * platform/mac/DragImageMac.mm: + (WebCore::fontFromNSFont): + (WebCore::canUseFastRenderer): + (WebCore::widthWithFont): + (WebCore::webkit_CGCeiling): + (WebCore::drawAtPoint): + (WebCore::drawDoubledAtPoint): + (WebCore::createDragImageForLink): + +2011-02-07 Lucas Forschler <lforschler@apple.com> + + Reviewed by Geoff Garen. + + Tr #2, Fix the Leopard 32bit debug build. + + No new tests required. + + * WebCore.xcodeproj/project.pbxproj: + * accessibility/AccessibilityAllInOne.cpp: + +2011-02-07 Beth Dakin <bdakin@apple.com> + + Reviewed by Sam Weinig. + + Fix for <rdar://problem/8946961> Fix repaint problems + with WKScrollbarPainter scrollers while resizing the window + + Remove setPainterForPainterController() and + removePainterFromPainterController() since they aren't + used anymore. + * platform/mac/ScrollAnimatorMac.h: + + Return early if they alpha hasn't changed. + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): + + If we're in a live resize, restore alpha to 1. + (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): + (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): + +2011-02-07 Beth Dakin <bdakin@apple.com> + + Reviewed by Eric Seidel. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=53950 + USE_WK_SCROLLBAR_PAINTER in ScrollbarThemeMac should be in + Platform.h instead + + Use hot new USE(WK_SCROLLBAR_PAINTER) from Platform.h rather + than the silly, old in-file #define. + + * platform/mac/ScrollbarThemeMac.mm: + (+[ScrollbarPrefsObserver appearancePrefsChanged:]): + (WebCore::updateArrowPlacement): + (WebCore::ScrollbarThemeMac::registerScrollbar): + (WebCore::ScrollbarThemeMac::scrollbarThickness): + (WebCore::ScrollbarThemeMac::usesOverlayScrollbars): + (WebCore::ScrollbarThemeMac::hasThumb): + (WebCore::ScrollbarThemeMac::minimumThumbLength): + (WebCore::ScrollbarThemeMac::paint): + +2011-02-07 Enrica Casucci <enrica@apple.com> + + Reviewed Adam Roben and Darin Adler. + + WebKit2: drag and drop support on Windows. + https://bugs.webkit.org/show_bug.cgi?id=52775 + <rdar://problem/8514409> + + * loader/EmptyClients.h: Removed createDragImageFromLink. + * page/DragClient.h: Ditto. + * page/DragController.cpp: + (WebCore::DragController::startDrag): changed call to createDragImageFromLink. + * platform/DragImage.h: + * platform/mac/DragImageMac.mm: + (WebCore::createDragImageForLink): Moved from DragClient. + * platform/win/ClipboardUtilitiesWin.cpp: Added a series of functions + to de-serialize the drag data from the map into an IDataObject. + (WebCore::getWebLocData): + (WebCore::texthtmlFormat): + (WebCore::createGlobalData): + (WebCore::getFullCFHTML): + (WebCore::urlWFormat): + (WebCore::urlFormat): + (WebCore::filenameWFormat): + (WebCore::filenameFormat): + (WebCore::htmlFormat): + (WebCore::smartPasteFormat): + (WebCore::getURL): + (WebCore::getPlainText): + (WebCore::getTextHTML): + (WebCore::ClipboardDataItem::ClipboardDataItem): + (WebCore::getStringData): + (WebCore::getUtf8Data): + (WebCore::getCFData): + (WebCore::setUCharData): + (WebCore::setCharData): + (WebCore::setCFData): + (WebCore::getClipboardMap): + (WebCore::getClipboardData): + (WebCore::setClipboardData): + * platform/win/ClipboardUtilitiesWin.h: + * platform/win/DragImageWin.cpp: Moved createDragImageForLink from DragClient + to a platform specific file in WebCore. It makes a lot more sense here, since + the drag image is always created in WebCore for all the other content types + except for links. + (WebCore::dragLabelFont): + (WebCore::createDragImageForLink): + * platform/win/WCDataObject.cpp: Added new way to + construct a WCDataObject from a DragDataMap. + (WebCore::WCDataObject::createInstance): + (WebCore::WCDataObject::clearData): + * platform/win/WCDataObject.h: + +2011-02-07 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77848. + http://trac.webkit.org/changeset/77848 + https://bugs.webkit.org/show_bug.cgi?id=53963 + + caused 6 test failures (Requested by othermaciej on #webkit). + + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): + +2011-02-04 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Add shaders for GPU accelerated path rendering + https://bugs.webkit.org/show_bug.cgi?id=45520 + + Refactored SolidFillShader and TexShader to call new + generateVertex() and generateFragment() methods on base Shader + class, and added support for the Loop/Blinn shaders. Refactored + Loop/Blinn shader classes to derive from Shader. + + Tested these changes with several of the IE9 Testdrive demos with + accelerated 2D canvas enabled, as well as a full layout test run + with --platform chromium-gpu. + + * platform/graphics/gpu/LoopBlinnShader.cpp: Added. + (WebCore::LoopBlinnShader::LoopBlinnShader): + (WebCore::LoopBlinnShader::use): + * platform/graphics/gpu/LoopBlinnShader.h: Added. + * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp: Added. + (WebCore::LoopBlinnSolidFillShader::create): + (WebCore::LoopBlinnSolidFillShader::LoopBlinnSolidFillShader): + (WebCore::LoopBlinnSolidFillShader::use): + * platform/graphics/gpu/LoopBlinnSolidFillShader.h: Added. + * platform/graphics/gpu/Shader.cpp: + (WebCore::Shader::affineTo4x4): + (WebCore::Shader::loadShader): + (WebCore::Shader::loadProgram): + (WebCore::Shader::generateVertex): + (WebCore::Shader::generateFragment): + * platform/graphics/gpu/Shader.h: + * platform/graphics/gpu/SolidFillShader.cpp: + (WebCore::SolidFillShader::create): + * platform/graphics/gpu/TexShader.cpp: + (WebCore::TexShader::TexShader): + (WebCore::TexShader::create): + +2011-02-07 Dan Bernstein <mitz@apple.com> + + Reviewed by Oliver Hunt. + + <rdar://problem/8946023> REGRESSION (r76674): SVG + BiDi text broken (text-intro-05-t.svg) + https://bugs.webkit.org/show_bug.cgi?id=53480 + + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): m_indexEnd should be an + offset into m_characters, not into the run’s characters. + * platform/graphics/mac/ComplexTextControllerATSUI.cpp: + (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Ditto. + +2011-02-07 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Add bundle API to get the background color of a frame + <rdar://problem/8962670> + https://bugs.webkit.org/show_bug.cgi?id=53952 + + * WebCore.exp.in: Add export. + +2011-02-07 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Darin Adler. + + Assertion failure in ~JSGlobalObject when loading apple.com HTML5 + transitions demo page + https://bugs.webkit.org/show_bug.cgi?id=53853 + + This was a long-standing bookkeeping bug uncovered by some heap refactoring. + + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::createImageBuffer): + * html/HTMLImageLoader.cpp: + (WebCore::HTMLImageLoader::notifyFinished): + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::dropProtection): Take the JSLock before + reporting extra cost to the JavaScriptCore heap, since all use of + JavaScriptCore is supposed to be guarded by JSLock. + +2011-02-07 Jian Li <jianli@chromium.org> + + Reviewed by David Levin. + + Intermittent crash in fast/files/read-blob-async.html on the GTK+ debug + bots + https://bugs.webkit.org/show_bug.cgi?id=53104 + + Covered by the existing tests. + + * fileapi/FileStreamProxy.cpp: + (WebCore::FileStreamProxy::startOnFileThread): + * platform/network/BlobRegistryImpl.cpp: + (WebCore::BlobRegistryImpl::createResourceHandle): + * platform/network/BlobResourceHandle.cpp: + (WebCore::BlobResourceHandle::BlobResourceHandle): + (WebCore::BlobResourceHandle::cancel): + (WebCore::delayedStartBlobResourceHandle): + (WebCore::BlobResourceHandle::start): Keep BlobResourceHandle alive + till the delay function is called. + (WebCore::BlobResourceHandle::doStart): + (WebCore::doNotifyFinish): + (WebCore::BlobResourceHandle::notifyFinish): Notify the client via the + standalone function to prevent the handle from being disposed immediately + by the client which will make the calls in the stack that're still bound + to the handle suffer. + * platform/network/BlobResourceHandle.h: + * platform/network/ResourceHandle.h: Change cancel() to virtual so that + BlobResourceHandle::cancel will be called when we abort a FileReader. + +2011-02-07 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77845. + http://trac.webkit.org/changeset/77845 + https://bugs.webkit.org/show_bug.cgi?id=53946 + + build failure (Requested by lforschler_ on #webkit). + + * WebCore.xcodeproj/project.pbxproj: + * accessibility/AccessibilityAllInOne.cpp: + +2011-02-07 Darin Adler <darin@apple.com> + + https://bugs.webkit.org/show_bug.cgi?id=53939 + fast/css/text-overflow-ellipsis.html failure after r77818/77819 + + * platform/text/TextCodecICU.cpp: + (WebCore::TextCodecICU::registerExtendedEncodingNames): + Add back the "utf8" synonym for "UTF-8". + +2011-02-07 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + Remove an unnecessary extra computeLogicalWidth() from line layout. + + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): + +2011-02-07 Lucas Forschler <lforschler@apple.com> + + Reviewed by Geoffrey Garen. + + Fix Leopard Intel Debug Build. + <rdar://problem/8953606> REGRESSION: Can't link WebCore on 32-bit Leopard (53681) + This could potentially break windows, since I had to change #include <filename> to #include "filename" + + * WebCore.xcodeproj/project.pbxproj: + * accessibility/AccessibilityAllInOne.cpp: + +2011-02-07 Sam Weinig <sam@webkit.org> + + Fix build. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): + (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar): + (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): + (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar): + +2011-02-07 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Add mechanism to inform the ScrollAnimator when Scrollbars are added + and removed. + + * platform/ScrollAnimator.h: + (WebCore::ScrollAnimator::didAddVerticalScrollbar): + (WebCore::ScrollAnimator::willRemoveVerticalScrollbar): + (WebCore::ScrollAnimator::didAddHorizontalScrollbar): + (WebCore::ScrollAnimator::willRemoveHorizontalScrollbar): + Make virtual to allow platform specific overrides. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::setHasHorizontalScrollbar): + (WebCore::ScrollView::setHasVerticalScrollbar): + Call new ScrollableArea functions. + + * platform/ScrollableArea.cpp: + (WebCore::ScrollableArea::didAddVerticalScrollbar): + (WebCore::ScrollableArea::willRemoveVerticalScrollbar): + (WebCore::ScrollableArea::didAddHorizontalScrollbar): + (WebCore::ScrollableArea::willRemoveHorizontalScrollbar): + * platform/ScrollableArea.h: + Pipe to ScrollAnimator. + + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar): + (WebCore::ScrollAnimatorMac::willRemoveVerticalScrollbar): + (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar): + (WebCore::ScrollAnimatorMac::willRemoveHorizontalScrollbar): + * platform/mac/ScrollbarThemeMac.h: + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::registerScrollbar): + (WebCore::ScrollbarThemeMac::unregisterScrollbar): + (WebCore::ScrollbarThemeMac::painterForScrollbar): + Move painter delegate registration to the new didAdd/willRemove functions. + +2011-02-07 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Missing text match markers with accelerated content + https://bugs.webkit.org/show_bug.cgi?id=53934 + + When doing the fake paint that recomputes the text match rects, we need to + flatten compositing layers, otherwise the rects won't be updated until the next paint call. + + (This worked by accident in WebKit1 because Safari calls -[NSWindow displayIfNeeded] on the containing + window before asking for the text match rects). + + * editing/Editor.cpp: + (WebCore::Editor::countMatchesForText): + +2011-02-07 Antti Koivisto <antti@apple.com> + + Reviewed by Andreas Kling. + + REGRESSION(r77740): CSSStyleSelector accessing deleted memory for svg/dom/use-transform.svg + https://bugs.webkit.org/show_bug.cgi?id=53900 + + Ignore link elements in shadow trees. + + * dom/Element.cpp: + (WebCore::StyleSelectorParentPusher::StyleSelectorParentPusher): + (WebCore::StyleSelectorParentPusher::~StyleSelectorParentPusher): + + Some asserts to catch cases like this. + + (WebCore::Element::attach): + (WebCore::Element::recalcStyle): + * html/HTMLLinkElement.cpp: + (WebCore::HTMLLinkElement::HTMLLinkElement): + (WebCore::HTMLLinkElement::process): + (WebCore::HTMLLinkElement::insertedIntoDocument): + (WebCore::HTMLLinkElement::removedFromDocument): + * html/HTMLLinkElement.h: + +2011-02-07 Darin Adler <darin@apple.com> + + Turn UTF-8 decoder off for now so we can look into failing tests + without leaving the tree red. + + * platform/text/TextCodecICU.cpp: + (WebCore::TextCodecICU::registerBaseEncodingNames): Reverting + earlier change so this can handle UTF-8. + (WebCore::TextCodecICU::registerBaseCodecs): Ditto. + (WebCore::TextCodecICU::registerExtendedEncodingNames): Ditto. + (WebCore::TextCodecICU::registerExtendedCodecs): Ditto. + * platform/text/TextCodecICU.h: Ditto. + * platform/text/TextEncodingRegistry.cpp: + (WebCore::buildBaseTextCodecMaps): Ditto. + (WebCore::extendTextCodecMaps): Ditto. + * platform/text/brew/TextCodecBrew.cpp: + (WebCore::TextCodecBrew::registerBaseEncodingNames): Ditto. + (WebCore::TextCodecBrew::registerBaseCodecs): Ditto. + (WebCore::TextCodecBrew::registerExtendedEncodingNames): Ditto. + (WebCore::TextCodecBrew::registerExtendedCodecs): Ditto. + * platform/text/brew/TextCodecBrew.h: Ditto. + * platform/text/gtk/TextCodecGtk.cpp: + (WebCore::TextCodecGtk::registerBaseEncodingNames): Ditto. + (WebCore::TextCodecGtk::registerBaseCodecs): Ditto. + * platform/text/wince/TextCodecWinCE.cpp: + (WebCore::TextCodecWinCE::registerBaseEncodingNames): Ditto. + (WebCore::TextCodecWinCE::registerBaseCodecs): Ditto. + (WebCore::TextCodecWinCE::registerExtendedEncodingNames): Ditto. + (WebCore::TextCodecWinCE::registerExtendedCodecs): Ditto. + * platform/text/wince/TextCodecWinCE.h: Ditto. + +2011-02-07 Anders Carlsson <andersca@apple.com> + + Reviewed by Maciej Stachowiak. + + Don't exclude overlay scrollers from the page overlay bounds + https://bugs.webkit.org/show_bug.cgi?id=53924 + + Export ScrollbarTheme::nativeTheme. + + * WebCore.exp.in: + +2011-02-07 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Crash in glDrawArrays with NaCl crystal model + https://bugs.webkit.org/show_bug.cgi?id=52831 + + * html/canvas/WebGLRenderingContext.cpp: Allocate large enough buffer for atttrib0 if it's enabled and not used. + (WebCore::WebGLRenderingContext::initVertexAttrib0): + (WebCore::WebGLRenderingContext::simulateVertexAttrib0): + * html/canvas/WebGLRenderingContext.h: + +2011-02-07 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + WAI-ARIA @aria-sort not exposed on rowheader and columnheader roles. + https://bugs.webkit.org/show_bug.cgi?id=53842 + + Test: platform/mac/accessibility/aria-sort.html + + * accessibility/AccessibilityObject.cpp: + (WebCore::AccessibilityObject::sortDirection): + * accessibility/AccessibilityObject.h: + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]): + (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): + * html/HTMLAttributeNames.in: + +2011-02-07 Darin Adler <darin@apple.com> + + Reviewed by Antti Koivisto. + + Add built-in decoder for UTF-8 for improved performance + https://bugs.webkit.org/show_bug.cgi?id=53898 + + Correct behavior is covered by existing tests. + + * Android.mk: Added TextCodecUTF8. + * CMakeLists.txt: Ditto. + * GNUmakefile.am: Ditto. + * WebCore.gypi: Ditto. + * WebCore.pro: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + + * platform/text/TextCodecICU.cpp: Removed registration of UTF-8 + since that's now handled by the built-in UTF-8 codec. + (WebCore::TextCodecICU::registerEncodingNames): Renamed to remove + the word "extended" since all codecs from ICU are now extended. + (WebCore::TextCodecICU::registerCodecs): Ditto. + * platform/text/TextCodecICU.h: Ditto. + + * platform/text/TextCodecUTF16.cpp: + (WebCore::TextCodecUTF16::decode): Added a FIXME about missing + error handling. + + * platform/text/TextCodecUTF8.cpp: Added. + * platform/text/TextCodecUTF8.h: Added. + + * platform/text/TextEncodingRegistry.cpp: + (WebCore::buildBaseTextCodecMaps): Added TextCodecUTF8, and + removed TextCodecICU, TextCodecBrew, and TextCodecWinCE. + (WebCore::extendTextCodecMaps): Updated names for + TextCodecICU and TextCodecWinCE. + + * platform/text/brew/TextCodecBrew.cpp: + (WebCore::TextCodecBrew::registerEncodingNames): Renamed to remove + the word "extended" since all codecs from Brew are now extended. + (WebCore::TextCodecBrew::registerCodecs): Ditto. + * platform/text/brew/TextCodecBrew.h: Ditto. + + * platform/text/gtk/TextCodecGtk.cpp: + (WebCore::TextCodecGtk::registerBaseEncodingNames): Removed + registration of UTF-8. It's questionable whether the other codecs + here are really basic. If we think they qualify, then we should + register them on other platforms, not just GTK. + (WebCore::TextCodecGtk::registerBaseCodecs): Ditto. + + * platform/text/wince/TextCodecWinCE.cpp: + (WebCore::getCodePage): Removed special case for UTF-8 since we + no longer use this codec for UTF-8. + (WebCore::TextCodecWinCE::registerEncodingNames): Renamed to remove + the word "extended" since all codecs from WinCE are now extended. + (WebCore::TextCodecWinCE::registerCodecs): Ditto. + * platform/text/wince/TextCodecWinCE.h: Ditto. + +2011-02-07 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Xan Lopez. + + [Gtk] atk_text_get_caret_offset fails for list items + https://bugs.webkit.org/show_bug.cgi?id=53436 + + Consider list item markers when calculating the offset. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_text_get_caret_offset): Adjust the offset + with the item marker's length for list items. + (webkit_accessible_text_set_caret_offset): Replace usage of + g_utf8_strlen() by calling to markerText.length(). + +2011-02-07 Yi Shen <yi.4.shen@nokia.com> + + Reviewed by Tor Arne Vestbø. + + [Qt] Fix LayoutTests/media/restore-from-page-cache.html + https://bugs.webkit.org/show_bug.cgi?id=53621 + + Changed the networkState to MediaPlayer::Loaded when + MediaPlayerPrivateQt has enough data. + + Test: media/restore-from-page-cache.html + + * platform/graphics/qt/MediaPlayerPrivateQt.cpp: + (WebCore::MediaPlayerPrivateQt::updateStates): + +2011-01-31 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: implement beautification of scripts inlined in html documents. + https://bugs.webkit.org/show_bug.cgi?id=52706 + + To beautify scripts inlined in html, we need to cut individual scripts, beautify them using UglifyJS library, and + finally paste them back to html. + + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * inspector/front-end/ScriptFormatter.js: + (WebInspector.ScriptFormatter): Implement formatting of scripts inlined in html. + (WebInspector.ScriptFormatter.prototype.formatContent.didFormatChunks): + (WebInspector.ScriptFormatter.prototype.formatContent): + (WebInspector.ScriptFormatter.prototype._splitContentIntoChunks): + (WebInspector.ScriptFormatter.prototype._formatChunks.didFormat): + (WebInspector.ScriptFormatter.prototype._formatChunks): + (WebInspector.ScriptFormatter.prototype._buildContentFromChunks): + (WebInspector.ScriptFormatter.prototype._formatScript.messageHandler): + (WebInspector.ScriptFormatter.prototype._formatScript): + * inspector/front-end/ScriptFormatterWorker.js: + (onmessage): + (buildMapping): + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrameContent): Use SourceFrameContent and FormattedSourceFrameContent to perform operations with line numbers. + * inspector/front-end/SourceFrameContent.js: Added. + (WebInspector.SourceFrameContent): Helper class, holds resource text and scripts layout + (WebInspector.SourceFrameContent.prototype.get scriptRanges): + (WebInspector.SourceFrameContent.prototype.locationToPosition): + (WebInspector.SourceFrameContent.prototype.positionToLocation): + (WebInspector.SourceFrameContent.prototype.scriptLocationForLineNumber): + (WebInspector.SourceFrameContent.prototype.scriptLocationForRange): + (WebInspector.SourceFrameContent.prototype.lineNumberToRange): + (WebInspector.SourceFrameContent.prototype._intersectingScriptRange): + (WebInspector): + (WebInspector.FormattedSourceFrameContent): Helper class, holds original and formatted versions of resource and mapping between them. + (WebInspector.FormattedSourceFrameContent.prototype.get text): + (WebInspector.FormattedSourceFrameContent.prototype.originalLocationToFormattedLocation): + (WebInspector.FormattedSourceFrameContent.prototype.scriptLocationForFormattedLineNumber): + (WebInspector.FormattedSourceFrameContent.prototype._convertPosition): + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.html: + +2011-02-07 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: "Reveal in elements panel" does not always work. + https://bugs.webkit.org/show_bug.cgi?id=53775 + + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView): + * inspector/front-end/ContextMenu.js: + (WebInspector.ContextMenu.prototype.show): + * inspector/front-end/ElementsPanel.js: + (WebInspector.ElementsPanel.prototype.switchToAndFocus): + * inspector/front-end/ElementsTreeOutline.js: + (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired.focusElement): + (WebInspector.ElementsTreeOutline.prototype._contextMenuEventFired): + * inspector/front-end/ObjectPropertiesSection.js: + (WebInspector.ObjectPropertyTreeElement.prototype.update): + (WebInspector.ObjectPropertyTreeElement.prototype._contextMenuEventFired): + * inspector/front-end/inspector.js: + (WebInspector.cancelSearch): + +2011-02-07 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Relative .. in URL paths shouldn't skip adjacent / characters + https://bugs.webkit.org/show_bug.cgi?id=53907 + + Our new behavior matches Firefox, Chrome, and IE. + + * platform/KURL.cpp: + (WebCore::copyPathRemovingDots): + +2011-02-07 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Antti Koivisto. + + WebKitTestRunner does not block remote resources or complain about them + https://bugs.webkit.org/show_bug.cgi?id=42139 + <rdar://problem/8183942> + + * Configurations/WebCore.xcconfig: Allow WebKitTestRunner to link + WebCore. + * WebCore.exp.in: Export a handful of KURL symbols. + +2011-02-06 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Darin Adler. + + OwnArraryPtr.h uses deleteOwnedPtr but doesn’t include OwnPtrCommon.h + https://bugs.webkit.org/show_bug.cgi?id=52867 + + * ForwardingHeaders/wtf/OwnArrayPtrCommon.h: Removed. + * bindings/v8/NPV8Object.cpp: + (WebCore::createValueListFromVariantArgs): Returns PassOwnArrayPtr<v8::Handle<v8::Value>> instead of + v8::Handle<v8::Value>*. + (_NPN_Invoke): Calls createValueListFromVariantArgs. + (_NPN_InvokeDefault): createValueListFromVariantArgs. + (_NPN_Construct): createValueListFromVariantArgs. + * bindings/v8/ScriptFunctionCall.cpp: + (WebCore::ScriptFunctionCall::call): Calls adoptArrayPtr. + (WebCore::ScriptFunctionCall::construct): Ditto. + (WebCore::ScriptCallback::call): + * bindings/v8/V8DOMWindowShell.cpp: + (WebCore::V8DOMWindowShell::createNewContext): Ditto. + * bindings/v8/V8NPObject.cpp: + (WebCore::npObjectInvokeImpl): Ditto + * bindings/v8/V8NodeFilterCondition.cpp: + (WebCore::V8NodeFilterCondition::acceptNode): Ditto, + * html/HTMLAreaElement.cpp: + (WebCore::HTMLAreaElement::parseMappedAttribute): Calls newCoordsArray. + * html/HTMLFrameSetElement.cpp: + (WebCore::HTMLFrameSetElement::parseMappedAttribute): Calls newLengthArray. + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::getAttachedShaders): Calls adoptArraYptr. + (WebCore::WebGLRenderingContext::simulateVertexAttrib0): Ditto. + (WebCore::WebGLRenderingContext::LRUImageBufferCache::LRUImageBufferCache): Dito. + * platform/Length.cpp: + (WebCore::newCoordsArray): Returns PassOwnArrayPtr<Length> instead of Length*. + (WebCore::newLengthArray): Returns PassOwnArrayPtr<Length> instead of Length*. + * platform/Length.h: Prototype changes. + * platform/graphics/ANGLEWebKitBridge.cpp: + (WebCore::ANGLEWebKitBridge::validateShaderSource): Calls adoptArrayPtr. + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::getDirtyRects): Ditto. + * platform/graphics/chromium/ComplexTextControllerLinux.cpp: + (WebCore::ComplexTextController::getNormalizedTextRun): Ditto. + * platform/graphics/chromium/HarfbuzzSkia.cpp: + (WebCore::glyphsToAdvances): Ditto. + (WebCore::canRender): Ditto. + * platform/graphics/gpu/Texture.cpp: + (WebCore::Texture::updateSubRect): Ditto. + * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: + (WebCore::GraphicsContext3D::paintRenderingResultsToCanvas): Ditto. + * platform/graphics/skia/PlatformContextSkia.cpp: + (WebCore::PlatformContextSkia::readbackHardwareToSoftware): Ditto. + * platform/graphics/wince/SharedBitmap.cpp: + (WebCore::SharedBitmap::to16bit): Ditto. + * platform/win/ContextMenuWin.cpp: + (WebCore::ContextMenu::getContextMenuItems): Ditto. + * platform/win/LoggingWin.cpp: + (WebCore::initializeWithUserDefault): Ditto. + * plugins/win/PluginPackageWin.cpp: + (WebCore::PluginPackage::fetchInfo): Ditto. + +2011-02-06 Kent Tamura <tkent@chromium.org> + + Unreviewed. + + * WebCore.xcodeproj/project.pbxproj: Run sort-xcode-project-file. + +2011-02-03 Dominic Cooney <dominicc@google.com> + + Reviewed by Dimitri Glazkov. + + Convert <keygen> option elements to a shadow DOM + https://bugs.webkit.org/show_bug.cgi?id=51379 + + Covered by existing tests e.g. fast/html/keygen.html, + html5lib/runner.html, etc. + + * css/html.css: + (form): Cleanup. + (keygen, select): Border radii should match so focus ring looks good. + (keygen::-webkit-keygen-select): No margin on the shadow element. + (select): Hoisting border radius to keygen, select rule. + * dom/SelectElement.cpp: + (WebCore::toSelectElement): keygen is no longer a select element. + * html/HTMLKeygenElement.cpp: Implements keygen shadow. + (WebCore::KeygenSelectElement::create): + (WebCore::KeygenSelectElement::shadowPseudoId): + (WebCore::KeygenSelectElement::KeygenSelectElement): + (WebCore::HTMLKeygenElement::HTMLKeygenElement): + (WebCore::HTMLKeygenElement::parseMappedAttribute): + (WebCore::HTMLKeygenElement::appendFormData): + (WebCore::HTMLKeygenElement::formControlType): + (WebCore::HTMLKeygenElement::reset): + (WebCore::HTMLKeygenElement::selectShadow): + * html/HTMLKeygenElement.h: keygen is no longer a select on C++ side. + (WebCore::HTMLKeygenElement::canStartSelection): + (WebCore::HTMLKeygenElement::isEnumeratable): + (WebCore::HTMLKeygenElement::isResettable): + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::ownerSelectElement): Only owned by selects. + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::HTMLSelectElement): Only 'select' tag name. + +2011-02-06 Benjamin Poulain <ikipou@gmail.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix coding style errors in ClipboardQt.h + https://bugs.webkit.org/show_bug.cgi?id=43520 + + Fix coding style: order of header and indentation. + + * platform/qt/ClipboardQt.h: + (WebCore::ClipboardQt::create): + (WebCore::ClipboardQt::clipboardData): + (WebCore::ClipboardQt::invalidateWritableData): + +2011-02-06 Antti Koivisto <antti@apple.com> + + Reviewed by Maciej Stachowiak. + + Use bloom filter for descendant selector filtering + https://bugs.webkit.org/show_bug.cgi?id=53880 + + Bloom filter is faster than a hash set in this kind of use. + + Shark thinks this speeds up style matching by ~30% on sites + with lots of descendant selectors. + + * ForwardingHeaders/wtf/BloomFilter.h: Added. + * css/CSSStyleSelector.cpp: + (WebCore::collectElementIdentifierHashes): + (WebCore::CSSStyleSelector::pushParent): + (WebCore::CSSStyleSelector::popParent): + (WebCore::CSSStyleSelector::fastRejectSelector): + (WebCore::RuleData::collectDescendantSelectorIdentifierHashes): + * css/CSSStyleSelector.h: + +2011-02-06 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Antti Koivisto. + + media/video-document-types.html sometimes crashes the WebProcess + https://bugs.webkit.org/show_bug.cgi?id=53884 + + No new tests. Already covered by media/video-document-types.html + + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::userCancelledLoad): Stop the load timer + when cancelling the load. + +2011-02-06 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Roben. + + [WIN] Use WCHAR instead of TCHAR + https://bugs.webkit.org/show_bug.cgi?id=53863 + + We always use the UNICODE versions of windows functions, so + the usage of TCHAR makes no sense and mixing them is bad style. + + * platform/graphics/win/IconWin.cpp: + (WebCore::Icon::createIconForFiles): + * platform/graphics/win/QTMovie.cpp: + * platform/graphics/win/QTMovieGWorld.cpp: + (QTMovieGWorld::fullscreenWndProc): + (QTMovieGWorld::enterFullscreen): + * platform/graphics/win/SimpleFontDataCGWin.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + * platform/graphics/win/SimpleFontDataWin.cpp: + * platform/graphics/wince/SimpleFontDataWinCE.cpp: + * platform/win/BString.cpp: + * platform/win/ClipboardWin.cpp: + (WebCore::filesystemPathFromUrlOrTitle): + (WebCore::createGlobalHDropContent): + (WebCore::createGlobalImageFileDescriptor): + * platform/win/ContextMenuWin.cpp: + * platform/win/CursorWin.cpp: + (WebCore::loadSharedCursor): + * platform/win/FileChooserWin.cpp: + (WebCore::FileChooser::basenameForWidth): + * platform/win/PopupMenuWin.cpp: + (WebCore::PopupMenuWin::popupClassName): + (WebCore::PopupMenuWin::show): + * platform/win/PopupMenuWin.h: + +2011-02-06 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + Replace FLT_MAX with std::numeric_limits + https://bugs.webkit.org/show_bug.cgi?id=53861 + + Also move EFL's userIdleTime from TemporaryLinkStubs into SystemTimeEfl. + + * html/NumberInputType.cpp: + * html/parser/HTMLParserIdioms.cpp: + (WebCore::parseToDoubleForNumberType): + * platform/brew/SystemTimeBrew.cpp: + (WebCore::userIdleTime): + * platform/efl/SystemTimeEfl.cpp: + (WebCore::userIdleTime): + * platform/efl/TemporaryLinkStubs.cpp: + * platform/graphics/ca/GraphicsLayerCA.cpp: + (WebCore::GraphicsLayerCA::setupAnimation): + * platform/win/SystemTimeWin.cpp: + (WebCore::userIdleTime): + * platform/wx/SystemTimeWx.cpp: + (WebCore::userIdleTime): + +2011-02-06 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [CMake] Add dependencies for Visual Studio projects + https://bugs.webkit.org/show_bug.cgi?id=53773 + + Add a JavaScriptCore dependecy to WebCore, so CMake can + generate the correct build order for the solution. + + * CMakeLists.txt: + +2011-02-06 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [CMake] Unify ENABLE_SVG sections + https://bugs.webkit.org/show_bug.cgi?id=53778 + + * CMakeLists.txt: + +2011-02-06 Andreas Kling <kling@webkit.org> + + Reviewed by Dirk Schulze. + + Refactor Font::normalizeSpaces() to avoid an extra String copy. + https://bugs.webkit.org/show_bug.cgi?id=53871 + + Have normalizeSpaces() take UChar*,length arguments instead of a + String, since all call sites were creating temporaries from these + components anyway. + + Font::normalizeSpaces() now always makes 1 String copy, + instead of 1 in the best case and 2 in the worst case. + + * platform/graphics/Font.cpp: + (WebCore::Font::normalizeSpaces): + * platform/graphics/Font.h: + * platform/graphics/qt/FontQt.cpp: + (WebCore::drawTextCommon): + (WebCore::Font::floatWidthForSimpleText): + (WebCore::Font::floatWidthForComplexText): + (WebCore::Font::offsetForPositionForSimpleText): + (WebCore::Font::offsetForPositionForComplexText): + (WebCore::Font::selectionRectForSimpleText): + (WebCore::Font::selectionRectForComplexText): + * svg/SVGFont.cpp: + (WebCore::SVGTextRunWalker::walk): + +2011-02-06 Andreas Kling <kling@webkit.org> + + Reviewed by Dirk Schulze. + + Fix potential buffer overrun in SVGTextRunWalker::walk() + https://bugs.webkit.org/show_bug.cgi?id=53870 + + A new String was created from a UChar* with a 'length' argument + that could be greater than the number of UChars available. + + * svg/SVGFont.cpp: + (WebCore::SVGTextRunWalker::walk): + +2011-02-05 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Remove unused parameter related to XSSAuditor + https://bugs.webkit.org/show_bug.cgi?id=53862 + + * WebCore.exp.in: + * bindings/ScriptControllerBase.cpp: + (WebCore::ScriptController::executeScript): + (WebCore::ScriptController::executeIfJavaScriptURL): + * bindings/ScriptControllerBase.h: + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::evaluateInWorld): + (WebCore::ScriptController::evaluate): + (WebCore::ScriptController::executeScriptInWorld): + * bindings/js/ScriptController.h: + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::evaluate): + * bindings/v8/ScriptController.h: + +2011-02-05 Adam Barth <abarth@webkit.org> + + Fix Qt build. + + * WebCore.pro: + +2011-02-05 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Delete XSSAuditor + https://bugs.webkit.org/show_bug.cgi?id=53859 + + The job of the XSSAuditor is now done by the XSSFilter. In the future, + we might rename XSSFilter to XSSAuditor. + + * Android.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/ScriptControllerBase.cpp: + (WebCore::ScriptController::executeIfJavaScriptURL): + * bindings/ScriptControllerBase.h: + * bindings/js/ScriptController.cpp: + (WebCore::ScriptController::ScriptController): + (WebCore::ScriptController::evaluateInWorld): + * bindings/js/ScriptController.h: + * bindings/js/ScriptEventListener.cpp: + (WebCore::createAttributeEventListener): + * bindings/v8/ScriptController.cpp: + (WebCore::ScriptController::ScriptController): + (WebCore::ScriptController::evaluate): + * bindings/v8/ScriptController.h: + * bindings/v8/ScriptEventListener.cpp: + (WebCore::createAttributeEventListener): + * dom/Document.cpp: + (WebCore::Document::implicitOpen): + (WebCore::Document::processBaseElement): + * dom/ScriptableDocumentParser.cpp: + (WebCore::ScriptableDocumentParser::ScriptableDocumentParser): + * dom/ScriptableDocumentParser.h: + * html/parser/HTMLDocumentParser.cpp: + (WebCore::HTMLDocumentParser::shouldLoadExternalScriptFromSrc): + * loader/SubframeLoader.cpp: + (WebCore::SubframeLoader::requestObject): + (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): + * page/XSSAuditor.cpp: Removed. + * page/XSSAuditor.h: Removed. + +2011-02-05 Anders Carlsson <andersca@apple.com> + + Reviewed by Darin Adler. + + Need a way to resize and scroll the page at the same time + https://bugs.webkit.org/show_bug.cgi?id=53814 + <rdar://problem/8498008> + + Export a function needed by WebKit2. + + * WebCore.exp.in: + +2011-02-05 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Use Document::encoding() instead of DocumentWriter::encoding() + https://bugs.webkit.org/show_bug.cgi?id=53398 + + This change makes the code more readable, when a subresource + inherits the character encoding of the document. + + * dom/ProcessingInstruction.cpp: + (WebCore::ProcessingInstruction::checkStyleSheet): + * dom/ScriptElement.cpp: + (WebCore::ScriptElement::scriptCharset): + * html/HTMLLinkElement.cpp: + (WebCore::HTMLLinkElement::process): + * loader/cache/CachedResourceLoader.cpp: + (WebCore::CachedResourceLoader::requestPreload): + * platform/network/FormDataBuilder.cpp: + (WebCore::FormDataBuilder::encodingFromAcceptCharset): + +2011-02-05 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Introduce URLString to represent a canonicalized URL represented by a string + https://bugs.webkit.org/show_bug.cgi?id=53847 + + Instead of using String all over the codebase to represent a URL, + instead we should have a type to represent a canonicalized URL in the + form of a string. This patch introduces that type. + + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.xcodeproj/project.pbxproj: + * platform/KURL.cpp: + (WebCore::KURL::KURL): + * platform/KURL.h: + (WebCore::KURL::urlString): + +2011-02-05 Robert Hogan <robert@webkit.org> + + Reviewed by Antonio Gomes. + + [Qt] Style widgets not rendering + https://bugs.webkit.org/show_bug.cgi?id=53849 + + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::hasValidClassId): x-qt-styled-widget is a valid class id too + +2011-02-05 Jochen Eisinger <jochen@chromium.org> + + Reviewed by Adam Barth. + + Add ContentSecurityPolicy object to Document and pass the X-WebKit-CSP header from the MainResourceLoader. + https://bugs.webkit.org/show_bug.cgi?id=53685 + + * WebCore.xcodeproj/project.pbxproj: + * dom/Document.h: + (WebCore::Document::contentSecurityPolicy): + * loader/MainResourceLoader.cpp: + (WebCore::MainResourceLoader::didReceiveResponse): + * page/ContentSecurityPolicy.cpp: + (WebCore::ContentSecurityPolicy::didReceiveHeader): + * page/ContentSecurityPolicy.h: + +2011-02-05 Eric Seidel <eric@webkit.org> + + Reviewed by Adam Barth. + + Safari should lowercase schemes in cannonicalized urls to match every other browser + https://bugs.webkit.org/show_bug.cgi?id=53848 + + We're clearly the odd man out here. See results from every browser at: + https://github.com/abarth/url-spec/blob/master/tests/gurl-results/by-browser.txt + + * platform/KURL.cpp: + (WebCore::KURL::parse): + - Just lowercase the scheme when copying. + +2011-02-05 Antti Koivisto <antti@apple.com> + + Reviewed by Dave Hyatt. + + Optimize matching of descendant selectors + https://bugs.webkit.org/show_bug.cgi?id=49876 + <rdar://problem/8772822> + + During style recalculation, maintain a filter of tags, ids and classes seen in ancestor elements. + Use the filter to quickly reject descendant and child selectors when doing style matching. + + This speeds up style recalculations 3-6x on many major web sites. + + * css/CSSStyleSelector.cpp: + (WebCore::RuleData::RuleData): + (WebCore::RuleData::descendantSelectorIdentifierHashes): + (WebCore::collectElementIdentifiers): + (WebCore::CSSStyleSelector::pushParent): + (WebCore::CSSStyleSelector::popParent): + (WebCore::CSSStyleSelector::fastRejectSelector): + (WebCore::CSSStyleSelector::matchRulesForList): + (WebCore::RuleData::collectDescendantSelectorIdentifierHashes): + * css/CSSStyleSelector.h: + (WebCore::CSSStyleSelector::ParentStackFrame::ParentStackFrame): + * dom/Element.cpp: + (WebCore::StyleSelectorParentPusher::StyleSelectorParentPusher): + (WebCore::StyleSelectorParentPusher::push): + (WebCore::StyleSelectorParentPusher::~StyleSelectorParentPusher): + (WebCore::Element::attach): + (WebCore::Element::recalcStyle): + +2011-02-05 Nate Chapin <japhet@chromium.org> + + Reviewed by Adam Barth. + + Refactor: NotificationCenter shouldn't hold its own copy of the ScriptExecutionContext* + when it inherits one from ActiveDOMObject. + https://bugs.webkit.org/show_bug.cgi?id=53815 + + * bindings/js/JSDesktopNotificationsCustom.cpp: + (WebCore::JSNotificationCenter::requestPermission): + * bindings/v8/custom/V8NotificationCenterCustom.cpp: + (WebCore::V8NotificationCenter::requestPermissionCallback): + * notifications/NotificationCenter.cpp: + (WebCore::NotificationCenter::NotificationCenter): + (WebCore::NotificationCenter::checkPermission): + (WebCore::NotificationCenter::requestPermission): + (WebCore::NotificationCenter::disconnectFrame): + * notifications/NotificationCenter.h: + (WebCore::NotificationCenter::createHTMLNotification): + (WebCore::NotificationCenter::createNotification): + +2011-02-04 Adam Barth <abarth@webkit.org> + + Reviewed by Maciej Stachowiak. + + Crash in WebCore::TextEncoding::decode below XSSFilter::init + https://bugs.webkit.org/show_bug.cgi?id=53837 + + Add missing null check. + + Test: http/tests/security/xssAuditor/non-block-javascript-url-frame.html + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::init): + +2011-02-04 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + Crashes in ShadowBlur via WebKit2 FindController + https://bugs.webkit.org/show_bug.cgi?id=53830 + + Fix a crash cause by re-entering ShadowBlur, and add assertions to + detect when it happens. + + The re-entrancy occurred when drawRectShadowWithTiling() filled + the interior of the shadow with fillRect() on the context + which still had the shadow state set. This would make another ShadowBlur + on the stack and call into the code again, potentially blowing away + the image buffer. + + Fix by turning off shadows in the destination context while we're + drawing the tiled shadow. The non-tiled code path already did this. + + Not testable because CSS shadows clip out the inside of the rect + being shadowed, and SVG uses fillPath, even for rects. + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ScratchBuffer::ScratchBuffer): + (WebCore::ScratchBuffer::getScratchBuffer): + (WebCore::ScratchBuffer::scheduleScratchBufferPurge): + (WebCore::ShadowBlur::ShadowBlur): + (WebCore::ShadowBlur::drawRectShadowWithTiling): + +2011-02-04 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Don't use a fixed size for search field icons + https://bugs.webkit.org/show_bug.cgi?id=50624 + + Use the parent input content box to make sure the icon fits in the + search field, scaling it down when needed. + + * platform/gtk/RenderThemeGtk.cpp: + (WebCore::paintGdkPixbuf): + (WebCore::getIconSizeForPixelSize): + (WebCore::adjustSearchFieldIconStyle): + (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationStyle): + (WebCore::centerRectVerticallyInParentInputElement): + (WebCore::RenderThemeGtk::paintSearchFieldResultsDecoration): + (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle): + (WebCore::RenderThemeGtk::paintSearchFieldCancelButton): + (WebCore::RenderThemeGtk::paintCapsLockIndicator): + (WebCore::RenderThemeGtk::paintMediaButton): + +2011-02-04 Hironori Bono <hbono@chromium.org> + + Reviewed by Adam Barth. + + [chromium] JPEG corruption + https://bugs.webkit.org/show_bug.cgi?id=53250 + + Same as gray-scale JPEGs, we convert the colors of CMYK JPEGs with color + profiles from CMYK to RGB twice and it causes color corruption. This + change suppresses the color profiles for CMYK JPEGs same as gray-scale + ones. + + Test: fast/images/cmyk-jpeg-with-color-profile.html + + * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: + (WebCore::JPEGImageReader::decode): + +2011-02-04 Xiyuan Xia <xiyuan@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Option text in select popup does not align with menulist button text + https://bugs.webkit.org/show_bug.cgi?id=53632 + + This makes clientPaddingLeft and clientPaddingRight return + the additional m_innerBlock's padding so that the popup item text + aligns with the menulist button text. + + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::clientPaddingLeft): + (WebCore::RenderMenuList::clientPaddingRight): + +2011-02-04 Anders Carlsson <andersca@apple.com> + + Reviewed by Sam Weinig and Beth Dakin. + + REGRESSION: Horizontal scrollbar thumbs leave artifacts over page content when scrolling vertically + <rdar://problem/8962457> + + * platform/ScrollView.cpp: + (WebCore::ScrollView::scrollContents): + Subtract scrollbars from the scroll view rect if overlay scrollers are enabled. + + * platform/ScrollableArea.cpp: + (WebCore::ScrollableArea::setScrollOffsetFromAnimation): + Make sure to invalidate both scrollbars if overlay scrollers are enabled. + +2011-02-04 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + PluginDocuments don't create widgets for plugins on back/forward + https://bugs.webkit.org/show_bug.cgi?id=53474 + + Long ago, PluginDocument always caused the HTMLEmbedElement to create + its widget synchronously during a post-layout task. Recently, however, + some changes to the HistroyController caused layout on back/forward to + become slightly more complicated (and added an extra level of recursion + to layout). This extra level of recursion triggered the "I've recursed + too many times" condition in the post-layout task queue, causing the + FrameView to run the remainder of the tasks asynchronously. + Unfortunately, that broke PluginDocument because it needs its the + HTMLEmbedElement's updateWidget task to run synchronously. + + This patch adds a mechanism for "kicking off" the pending post-layout + tasks synchronously (instead of waiting for the timer to fire). + PluginDocument then uses that facility to ensure that the + HTMLEmbedElement's updateWidget task happens. + + Test: plugins/plugin-document-back-forward.html + + * html/PluginDocument.cpp: + (WebCore::PluginDocumentParser::appendBytes): + * page/FrameView.cpp: + (WebCore::FrameView::flushAnyPendingPostLayoutTasks): + * page/FrameView.h: + +2011-02-04 Charlie Reis <creis@chromium.org> + + Reviewed by Mihai Parparita. + + Crash in WebCore::HistoryController::itemsAreClones + https://bugs.webkit.org/show_bug.cgi?id=52819 + + Avoids deleting the current HistoryItem while it is still in use. + Ensures that provisional items are committed for same document navigations. + Ensures that error pages are committed on back/forward navigations. + Also removes unneeded sanity checks used for diagnosing the problem. + + * loader/HistoryController.cpp: + * loader/HistoryController.h: + +2011-02-04 Carol Szabo <carol.szabo@nokia.com> + + Reviewed by David Hyatt. + + Code Changes. + + CSS 2.1 failure: content-* + https://bugs.webkit.org/show_bug.cgi?id=52126 + + Test: fast/css/counters/content-021.html + + * rendering/CounterNode.cpp: + (showCounterTree): + Made parameter const because it is supposed to be so. + * rendering/RenderCounter.cpp: + (WebCore::previousInPreOrder): + (WebCore::previousSiblingOrParent): + (WebCore::parentElement): + (WebCore::areRenderersElementsSiblings): + (WebCore::nextInPreOrder): + Added these local helper functions to help navigate the DOM tree + enriched with :before and :after pseudo elements. + (WebCore::planCounter): + Fixed bug that would create a repeat counter for second and + subsequent renderers associated with the same DOM element. + (WebCore::findPlaceForCounter): + (WebCore::makeCounterNode): + Changed to use the new tree navigation functions described above + instead of the Renderer Tree navigation functions. + (WebCore::RenderCounter::rendererSubtreeAttached): + (WebCore::RenderCounter::rendererStyleChanged): + Optimized to not bother about counters until the renderers are + finally attached. + (showRendererTree): + (showNodeTree): + Debug helper functions used to debug Counter bugs. + +2011-02-04 Dan Bernstein <mitz@apple.com> + + Typo fix. + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::containsJavaScriptURL): + +2011-02-04 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + Make an infinite loop introduced in r77454 finite. + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::containsJavaScriptURL): + +2011-02-04 Jer Noble <jer.noble@apple.com> + + Reviewed by Eric Carlson. + + Frame accurate seeking isn't always accurate + https://bugs.webkit.org/show_bug.cgi?id=52697 + + Test: media/video-frame-accurate-seek.html + + Make seeking slightly more accurate by rounding instead of truncating + when converting from seconds-in-float to time/timeScale. + + * platform/graphics/mac/MediaPlayerPrivateQTKit.mm: + (WebCore::MediaPlayerPrivateQTKit::createQTTime): + * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: + (WebCore::MediaPlayerPrivateQuickTimeVisualContext::mediaTimeForTimeValue): + * platform/graphics/win/QTMovie.cpp: + (QTMovie::setCurrentTime): + +2011-02-04 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + Second IndexedDB events overhaul patch + https://bugs.webkit.org/show_bug.cgi?id=53813 + + If an IDBRequest has a IDBTransaction, it should propogate + events through it. In order to do this, IDBRequest needs to + hold a transaction frontend object rather than a backend one. + + Test: storage/indexeddb/request-event-propagation.html + + * storage/IDBCursor.cpp: + (WebCore::IDBCursor::IDBCursor): + * storage/IDBCursor.h: + (WebCore::IDBCursor::create): + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::setSetVersionTransaction): + (WebCore::IDBDatabase::createObjectStore): + (WebCore::IDBDatabase::deleteObjectStore): + * storage/IDBDatabase.h: + * storage/IDBIndex.cpp: + (WebCore::IDBIndex::IDBIndex): + (WebCore::IDBIndex::openCursor): + (WebCore::IDBIndex::openKeyCursor): + (WebCore::IDBIndex::get): + (WebCore::IDBIndex::getKey): + * storage/IDBIndex.h: + (WebCore::IDBIndex::create): + * storage/IDBObjectStore.cpp: + (WebCore::IDBObjectStore::IDBObjectStore): + (WebCore::IDBObjectStore::get): + (WebCore::IDBObjectStore::add): + (WebCore::IDBObjectStore::put): + (WebCore::IDBObjectStore::deleteFunction): + (WebCore::IDBObjectStore::createIndex): + (WebCore::IDBObjectStore::deleteIndex): + (WebCore::IDBObjectStore::openCursor): + * storage/IDBObjectStore.h: + (WebCore::IDBObjectStore::create): + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::create): + (WebCore::IDBRequest::IDBRequest): + (WebCore::IDBRequest::resetReadyState): + (WebCore::IDBRequest::onSuccess): + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBRequest.h: + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::IDBTransaction): + (WebCore::IDBTransaction::objectStore): + (WebCore::IDBTransaction::contextDestroyed): + (WebCore::IDBTransaction::enqueueEvent): + * storage/IDBTransaction.h: + * storage/IDBTransaction.idl: + +2011-02-04 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + First step towards event propogation within IndexedDB + https://bugs.webkit.org/show_bug.cgi?id=53795 + + This is the first step towards implementing + http://www.w3.org/Bugs/Public/show_bug.cgi?id=11348 + within IndexedDB. I've created a method that knows how + to capture and bubble (based on Node's dispatchGenericEvent). + I've then changed IDBRequest to use it. + + The only functional change is that preventDefault now must + be called in error events to prevent the transaction from + being aborted. The tests reflect this change and there's one + specific test to look at this behavior. + + Test: storage/indexeddb/error-causes-abort-by-default.html + + * storage/IDBAbortEvent.cpp: + (WebCore::IDBAbortEvent::create): + (WebCore::IDBAbortEvent::IDBAbortEvent): + * storage/IDBAbortEvent.h: + * storage/IDBCompleteEvent.cpp: + (WebCore::IDBCompleteEvent::create): + (WebCore::IDBCompleteEvent::IDBCompleteEvent): + * storage/IDBCompleteEvent.h: + * storage/IDBErrorEvent.cpp: + (WebCore::IDBErrorEvent::IDBErrorEvent): + * storage/IDBEvent.cpp: + (WebCore::IDBEvent::IDBEvent): + (WebCore::IDBEvent::dispatch): + * storage/IDBEvent.h: + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBRequest.h: + * storage/IDBSuccessEvent.cpp: + (WebCore::IDBSuccessEvent::IDBSuccessEvent): + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::onAbort): + (WebCore::IDBTransaction::onComplete): + * storage/IDBTransaction.h: + (WebCore::IDBTransaction::backend): + * storage/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::taskTimerFired): + +2011-02-04 Daniel Cheng <dcheng@chromium.org> + + Reviewed by Dmitry Titov. + + Clone WebClipboard to be frame-specific. + https://bugs.webkit.org/show_bug.cgi?id=53727 + + For drop operations, Chrome currently snapshots the data and copies it + into the renderer process. As we add more supported drag data types, the + copy will become increasingly expensive. Instead, we'd like to snapshot + data in the browser to reduce the amount of data copied and to support + Blob in DataTransferItem. In order to allow this, we associated + WebClipboard with a frame so it can correctly route its IPCs to the + corresponding Chromium host. + + No new tests because no new functionality. + + * platform/chromium/ChromiumDataObject.cpp: + (WebCore::ChromiumDataObject::createReadable): + * platform/chromium/ChromiumDataObject.h: + * platform/chromium/ClipboardChromium.cpp: + (WebCore::ClipboardChromium::create): + * platform/chromium/PlatformBridge.h: + * platform/chromium/ReadableDataObject.cpp: + (WebCore::ReadableDataObject::create): + (WebCore::ReadableDataObject::ReadableDataObject): + (WebCore::ReadableDataObject::getData): + (WebCore::ReadableDataObject::urlTitle): + (WebCore::ReadableDataObject::htmlBaseUrl): + (WebCore::ReadableDataObject::filenames): + (WebCore::ReadableDataObject::ensureTypeCacheInitialized): + * platform/chromium/ReadableDataObject.h: + +2011-02-04 Jeremy Orlow <jorlow@chromium.org> + + Revert https://bugs.webkit.org/show_bug.cgi?id=53795 + + * storage/IDBAbortEvent.cpp: + (WebCore::IDBAbortEvent::create): + (WebCore::IDBAbortEvent::IDBAbortEvent): + * storage/IDBAbortEvent.h: + * storage/IDBCompleteEvent.cpp: + (WebCore::IDBCompleteEvent::create): + (WebCore::IDBCompleteEvent::IDBCompleteEvent): + * storage/IDBCompleteEvent.h: + * storage/IDBErrorEvent.cpp: + (WebCore::IDBErrorEvent::IDBErrorEvent): + * storage/IDBEvent.cpp: + (WebCore::IDBEvent::IDBEvent): + * storage/IDBEvent.h: + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBRequest.h: + * storage/IDBSuccessEvent.cpp: + (WebCore::IDBSuccessEvent::IDBSuccessEvent): + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::onAbort): + (WebCore::IDBTransaction::onComplete): + * storage/IDBTransaction.h: + * storage/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::taskTimerFired): + +2011-02-04 Martin Galpin <martin@66laps.com> + + Reviewed by David Levin. + + CORS origin header not set on GET when a preflight request is required. + https://bugs.webkit.org/show_bug.cgi?id=50773 + + Test: http/tests/xmlhttprequest/cross-origin-preflight-get.html + + * loader/DocumentThreadableLoader.cpp: + (WebCore::DocumentThreadableLoader::preflightSuccess): + Explicitly set the request origin after a preflight request succeeds. + +2011-02-04 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + First step towards event propogation within IndexedDB + https://bugs.webkit.org/show_bug.cgi?id=53795 + + This is the first step towards implementing + http://www.w3.org/Bugs/Public/show_bug.cgi?id=11348 + within IndexedDB. I've created a method that knows how + to capture and bubble (based on Node's dispatchGenericEvent). + I've then changed IDBRequest to use it. + + The only functional change is that preventDefault now must + be called in error events to prevent the transaction from + being aborted. The tests reflect this change and there's one + specific test to look at this behavior. + + Test: storage/indexeddb/error-causes-abort-by-default.html + + * storage/IDBAbortEvent.cpp: + (WebCore::IDBAbortEvent::create): + (WebCore::IDBAbortEvent::IDBAbortEvent): + * storage/IDBAbortEvent.h: + * storage/IDBCompleteEvent.cpp: + (WebCore::IDBCompleteEvent::create): + (WebCore::IDBCompleteEvent::IDBCompleteEvent): + * storage/IDBCompleteEvent.h: + * storage/IDBErrorEvent.cpp: + (WebCore::IDBErrorEvent::IDBErrorEvent): + * storage/IDBEvent.cpp: + (WebCore::IDBEvent::IDBEvent): + (WebCore::IDBEvent::dispatch): + * storage/IDBEvent.h: + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBRequest.h: + * storage/IDBSuccessEvent.cpp: + (WebCore::IDBSuccessEvent::IDBSuccessEvent): + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::onAbort): + (WebCore::IDBTransaction::onComplete): + * storage/IDBTransaction.h: + (WebCore::IDBTransaction::backend): + * storage/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::taskTimerFired): + +2011-02-04 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Csaba Osztrogonác. + + [Qt]REGRESSION(r76951): media/controls-without-preload.html fails + https://bugs.webkit.org/show_bug.cgi?id=53674 + + * css/mediaControlsQt.css: + +2011-02-04 Dan Bernstein <mitz@apple.com> + + Reviewed by Darin Adler and Dave Hyatt. + + <rdar://problem/8902704> Make ruby text size 50% by default + https://bugs.webkit.org/show_bug.cgi?id=53723 + + * css/html.css: + (ruby > rt): Changed the font-size from 60% to 50%. + +2011-02-04 Antti Koivisto <antti@apple.com> + + Reviewed by Dimitri Glazkov. + + https://bugs.webkit.org/show_bug.cgi?id=53610 + Regression: adjacent sibling selector not working as expected + <rdar://problem/8960033> + + https://bugs.webkit.org/show_bug.cgi?id=53574 + REGRESSION (r76012): :last-child:after not working as expected + <rdar://problem/8948643> + + Test for additional conditions in parent style that prevent sharing. + + Tests: fast/selectors/style-sharing-adjacent-selector.html + fast/selectors/style-sharing-last-child.html + + * css/CSSStyleSelector.cpp: + (WebCore::parentStylePreventsSharing): + (WebCore::CSSStyleSelector::locateSharedStyle): + +2011-02-04 Mark Mentovai <mark@chromium.org> + + Reviewed by Dimitri Glazkov. + + Chromium GYP build fix. + + When various settings were moved to webcore_prerequisites in r66364, + things that should have been direct_dependent_settings were not marked + as such. GYP 'defines', for example, make no sense on a 'none'-type + target such as webcore_prerequisites. It appears that it was intended + for these settings to be pushed to direct dependents, which would make + direct_dependent_settings correct. + + Losing the ChromiumWebCoreObjC defines on the Mac, for example, caused + http://crbug.com/71537, which at best causes Mac console log spew, and + at worst may result in Chromium's copy of WebCore using system + definitions of certain Objective-C classes at runtime, or vice-versa. + + The build now includes a postbuild step to prevent + http://crbug.com/71537 from regressing again. The build will fail upon + regression. + + https://bugs.webkit.org/show_bug.cgi?id=53630 + + * WebCore.gyp/WebCore.gyp: Move things in webcore_prerequisites into + direct_dependent_settings as needed, add the check_objc_rename + postbuild step. + * WebCore.gyp/mac/check_objc_rename.sh: Added. + +2011-02-04 Robert Hogan <robert@webkit.org> + + Reviewed by Darin Fisher. + + Move chromium iframe shim code to cross-platform file + https://bugs.webkit.org/show_bug.cgi?id=52594 + + Move Chromium code for identifying and cutting out + iframe shims from plugins to cross-platform utility file + IFrameShimSupport.cpp. + Amend PluginViewQt to use this code to handle shims correctly. + + * WebCore.gypi: Add Chromium support for IFrameShimSupport.cpp + * WebCore.pro: Add Qt support for IFrameShimSupport.cpp + * plugins/IFrameShimSupport.cpp: Added. + (WebCore::getObjectStack): + (WebCore::iframeIsAbovePlugin): + (WebCore::getPluginOcclusions): + * plugins/IFframeShimSupport.h: Added. + * plugins/qt/PluginViewQt.cpp: + (WebCore::PluginView::setNPWindowIfNeeded): + +2011-02-04 Xiaomei Ji <xji@chromium.org> + + Reviewed by David Levin. + + Implement "<option> should implement the dir attribute" for chromium port after r76983. + https://bugs.webkit.org/show_bug.cgi?id=50969 + + Use manual test Source/WebCore/manual-tests/pop-up-alignment-and-direction.html + added in r76983. + + * platform/chromium/PopupMenuChromium.cpp: Remove directionality hint from + <select> drop-down setting. + (WebCore::PopupListBox::paintRow): Use <option>'s directionality to paint + items in drop-down and pass-in bidi override flag when creating text run. + * platform/chromium/PopupMenuChromium.h: Remove directionalityHint from + PopupContainerSettings. + +2011-02-04 Jeremy Orlow <jorlow@chromium.org> + + Build fix from merge mistake. + + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::ensureEventTargetData): + +2011-02-04 Levi Weintraub <leviw@chromium.org> + + Reviewed by Darin Adler. + + Remove unneeded function declarations in comments in EditorClient.h + https://bugs.webkit.org/show_bug.cgi?id=53745 + + Removing unused commented out function declarations. No tests since this is just cleanup. + + * page/EditorClient.h: + +2011-02-03 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + Refactor IDBRequest and IDBTransaction a bit + https://bugs.webkit.org/show_bug.cgi?id=53565 + + There were a lot of subtle issues with the way IDBTransaction + and IDBRequest used to be written. This cleans a lot of them up + and largely simplifies the logic. Using EventQueue rather than + timers is one example of the simplification. + + * bindings/scripts/CodeGeneratorV8.pm: + * dom/EventQueue.cpp: + (WebCore::EventQueue::enqueueEvent): + (WebCore::EventQueue::dispatchEvent): + * storage/IDBCursor.cpp: + (WebCore::IDBCursor::continueFunction): + * storage/IDBRequest.cpp: + (WebCore::IDBRequest::create): + (WebCore::IDBRequest::IDBRequest): + (WebCore::IDBRequest::resetReadyState): + (WebCore::IDBRequest::onError): + (WebCore::IDBRequest::onSuccess): + (WebCore::IDBRequest::dispatchEvent): + (WebCore::IDBRequest::enqueueEvent): + (WebCore::IDBRequest::eventTargetData): + (WebCore::IDBRequest::ensureEventTargetData): + * storage/IDBRequest.h: + (WebCore::IDBRequest::dispatchEvent): + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::create): + (WebCore::IDBTransaction::IDBTransaction): + (WebCore::IDBTransaction::objectStore): + (WebCore::IDBTransaction::abort): + (WebCore::IDBTransaction::onAbort): + (WebCore::IDBTransaction::onComplete): + (WebCore::IDBTransaction::onTimeout): + (WebCore::IDBTransaction::canSuspend): + (WebCore::IDBTransaction::stop): + (WebCore::IDBTransaction::enqueueEvent): + (WebCore::IDBTransaction::eventTargetData): + (WebCore::IDBTransaction::ensureEventTargetData): + * storage/IDBTransaction.h: + +2011-02-01 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + Remove the timeout event from IndexedDB + https://bugs.webkit.org/show_bug.cgi?id=53521 + + Remove timeout and ontimeout from IDBTransaction per the spec. + + * WebCore.gypi: + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::transaction): + * storage/IDBDatabase.h: + (WebCore::IDBDatabase::transaction): + * storage/IDBDatabase.idl: + * storage/IDBDatabaseBackendImpl.cpp: + (WebCore::IDBDatabaseBackendImpl::setVersion): + (WebCore::IDBDatabaseBackendImpl::transaction): + * storage/IDBDatabaseBackendImpl.h: + * storage/IDBDatabaseBackendInterface.h: + * storage/IDBTimeoutEvent.cpp: Removed. + * storage/IDBTimeoutEvent.h: Removed. + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::IDBTransaction): + (WebCore::IDBTransaction::onAbort): + (WebCore::IDBTransaction::onComplete): + * storage/IDBTransaction.h: + * storage/IDBTransaction.idl: + * storage/IDBTransactionBackendImpl.cpp: + (WebCore::IDBTransactionBackendImpl::create): + (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl): + * storage/IDBTransactionBackendImpl.h: + * storage/IDBTransactionCallbacks.h: + +2011-02-04 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + AX: Can't set accessibility overridden attributes on web objects + https://bugs.webkit.org/show_bug.cgi?id=53725 + + accessibilitySetOverriddenValue does not work on AX objects from WebCore because + the right method needed to be overridden (accessibilitySupportsOverriddenAttributes). + Unfortunately, there's no way to test this from DRT, since AppKit returns the overridden + attribute only when an AX client asks for it through the AX frameworks. + + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper accessibilitySupportsOverriddenAttributes]): + +2011-02-03 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Kent Tamura. + + REGRESSION(r76147): Slider thumb is not repainted when let go outside of the slider track. + https://bugs.webkit.org/show_bug.cgi?id=53691 + + Test: fast/repaint/slider-thumb-drag-release.html + + * html/shadow/SliderThumbElement.cpp: + (WebCore::SliderThumbElement::stopDragging): Added dirtying the layout bit to ensure + that the thumb is repainted. + +2011-02-04 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Add "show more" data grid node and waiting message UI components. + https://bugs.webkit.org/show_bug.cgi?id=53763 + + - "show more" data grid node is used for on-demand population of + data grid contents (similar to DOM tree capability for limiting + displayed nodes count); + + - waiting message is used for informing user about long lasting + operations (with a possibility to cancel them). + + * English.lproj/localizedStrings.js: + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * inspector/front-end/PleaseWaitMessage.js: Added. + (WebInspector.PleaseWaitMessage): + * inspector/front-end/ShowMoreDataGridNode.js: Added. + (WebInspector.ShowMoreDataGridNode): + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.css: + (.data-grid button): + (.please-wait-msg): + * inspector/front-end/inspector.html: + +2011-02-04 Adele Peterson <adele@apple.com> + + Reviewed by Dan Bernstein. + + Fix for https://bugs.webkit.org/show_bug.cgi?id=53740 + <rdar://problem/8503629> Allow platforms to specify if the placeholder should be visible when text controls are focused + + Tests: + fast/forms/textarea-placeholder-visibility-1.html + fast/forms/textarea-placeholder-visibility-2.html + fast/forms/input-placeholder-visibility-1.html + fast/forms/input-placeholder-visibility-2.html + fast/forms/input-placeholder-visibility-3.html + + * html/HTMLFormControlElement.cpp: (WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible): + Add a check for shouldShowPlaceholderWhenFocused. + * html/HTMLTextAreaElement.cpp: (WebCore::HTMLTextAreaElement::updateValue): + Whenever the value is updated, we should also update placeholder visibility. + * rendering/RenderTheme.h: (WebCore::RenderTheme::shouldShowPlaceholderWhenFocused): + Make the default the same as the existing behavior. + * rendering/RenderThemeMac.h: + * rendering/RenderThemeMac.mm: (WebCore::RenderThemeMac::shouldShowPlaceholderWhenFocused): + Show placeholder when appropriate. + +2011-02-04 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: evaluate on hover does not work on a breakpoint. + https://bugs.webkit.org/show_bug.cgi?id=53768 + + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype._mouseHover): + +2011-02-04 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77625 and r77626. + http://trac.webkit.org/changeset/77625 + http://trac.webkit.org/changeset/77626 + https://bugs.webkit.org/show_bug.cgi?id=53765 + + It broke Windows builds (Requested by Ossy_ on #webkit). + + * Android.jscbindings.mk: + * CMakeLists.txt: + * ForwardingHeaders/pcre/pcre.h: Added. + * ForwardingHeaders/yarr/Yarr.h: Removed. + * ForwardingHeaders/yarr/YarrInterpreter.h: Removed. + * ForwardingHeaders/yarr/YarrPattern.h: Removed. + * WebCore.gyp/WebCore.gyp: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.vcproj/copyForwardingHeaders.cmd: + * platform/text/RegularExpression.cpp: + (WebCore::RegularExpression::Private::regexp): + (WebCore::RegularExpression::Private::compile): + (WebCore::RegularExpression::Private::Private): + (WebCore::RegularExpression::Private::create): + (WebCore::RegularExpression::Private::~Private): + (WebCore::RegularExpression::match): + +2011-02-04 Peter Varga <pvarga@webkit.org> + + Rubber-stamped by Csaba Osztrogonác. + + Replace PCRE with Yarr in WebCore + https://bugs.webkit.org/show_bug.cgi?id=53496 + + Speculative windows build fix. + + No new tests needed. + + * platform/text/RegularExpression.cpp: + +2011-02-04 Peter Varga <pvarga@webkit.org> + + + Reviewed by Gavin Barraclough. + + Replace PCRE with Yarr in WebCore + https://bugs.webkit.org/show_bug.cgi?id=53496 + + No new tests needed. + + * Android.jscbindings.mk: + * CMakeLists.txt: + * ForwardingHeaders/pcre/pcre.h: Removed. + * ForwardingHeaders/yarr/Yarr.h: Added. + * ForwardingHeaders/yarr/YarrInterpreter.h: Added. + * ForwardingHeaders/yarr/YarrPattern.h: Added. + * WebCore.gyp/WebCore.gyp: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.vcproj/copyForwardingHeaders.cmd: + * platform/text/RegularExpression.cpp: + (WebCore::RegularExpression::Private::create): + (WebCore::RegularExpression::Private::Private): + (WebCore::RegularExpression::Private::compile): + (WebCore::RegularExpression::match): + +2011-02-04 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: Network panel filtering is broken. + https://bugs.webkit.org/show_bug.cgi?id=53764 + + * inspector/front-end/NetworkPanel.js: + (WebInspector.NetworkPanel.prototype._sortItems): + (WebInspector.NetworkPanel.prototype._sortByTimeline): + (WebInspector.NetworkPanel.prototype._filter): + (WebInspector.NetworkPanel.prototype._updateOffscreenRows): + (WebInspector.NetworkDataGridNode.prototype.isFilteredOut): + (WebInspector.NetworkDataGridNode.prototype.get selectable): + (WebInspector.NetworkTotalGridNode.prototype.isFilteredOut): + (WebInspector.NetworkTotalGridNode.prototype.get selectable): + +2011-02-04 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: support overriding user agent strings + https://bugs.webkit.org/show_bug.cgi?id=51485 + + Test: http/tests/inspector/extensions-useragent.html + + * inspector/Inspector.idl: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::disconnectFrontend): + (WebCore::InspectorController::setUserAgentOverride): + (WebCore::InspectorController::userAgentOverride): + * inspector/InspectorController.h: + * inspector/front-end/ExtensionAPI.js: + (WebInspector.injectedExtensionAPI.InspectedWindow.prototype.reload): + * inspector/front-end/ExtensionServer.js: + (WebInspector.ExtensionServer.prototype._onReload): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::userAgent): + (WebCore::FrameLoader::applyUserAgent): + +2011-02-04 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: scripts panel displays wrong file name after reload. + https://bugs.webkit.org/show_bug.cgi?id=53761 + + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._resourceLoadingFinished): + +2011-02-03 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: remove settings related methods from InspectorClient + https://bugs.webkit.org/show_bug.cgi?id=53686 + + * WebCore.exp.in: + * inspector/CodeGeneratorInspector.pm: + * inspector/InspectorClient.h: + * inspector/InspectorFrontendClientLocal.cpp: + (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal): + (WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight): + (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight): + * inspector/InspectorFrontendClientLocal.h: ports that provide in-process implementation of the inspector front-end can + provide platform-specific settings accessor. + (WebCore::InspectorFrontendClientLocal::Settings::Settings): + (WebCore::InspectorFrontendClientLocal::Settings::~Settings): + (WebCore::InspectorFrontendClientLocal::Settings::inspectorAttachedHeight): + (WebCore::InspectorFrontendClientLocal::Settings::storeInspectorAttachedHeight): + * loader/EmptyClients.h: + +2011-02-03 Anton Muhin <antonm@chromium.org> + + Reviewed by Adam Barth. + + [v8] frame several more JS code invocations into v8::TryCatch + https://bugs.webkit.org/show_bug.cgi?id=53594 + + This patch is preemptive and adjusts v8 bindings code to forthcoming small change + in v8::ThrowException---currently sometimes exceptions thrown by this method + do not reach surrounding v8::TryCatch handler (see + http://code.google.com/p/v8/issues/detail?id=1072 and + http://codereview.chromium.org/6397011/). Therefore the goal of this patch + is to make forthcoming v8 roll as smooth as possible (alas, we'll still need + one rebaseline as of now.) + + * bindings/v8/V8Proxy.cpp: + (WebCore::V8Proxy::runScript): Do not rely on empty handle as a signal of exception, wrap into v8::TryCatch instead + * bindings/v8/V8WindowErrorHandler.cpp: + (WebCore::V8WindowErrorHandler::callListenerFunction): Ditto + +2011-02-03 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Dan Bernstein. + + WebKit2: Need WebKit2 equivalent of WebResourceLoadDelegate::willSendRequest in the Bundle + https://bugs.webkit.org/show_bug.cgi?id=52897 + <rdar://problem/8898294> + + * WebCore.exp.in: Add export now needed by WebKit2 + +2011-02-03 Victoria Kirst <vrk@google.com> + + Reviewed by James Robinson. + + Replaces float literals with uniform values in shader code + so that buggy drivers unable to parse float values in different + locales will not produce a pink video. + + [chromium] Fix pink video bug with gpu-acceleration enabled + https://bugs.webkit.org/show_bug.cgi?id=53568 + + * platform/graphics/chromium/VideoLayerChromium.cpp: + (WebCore::VideoLayerChromium::SharedValues::SharedValues): + (WebCore::VideoLayerChromium::drawYUV): + * platform/graphics/chromium/VideoLayerChromium.h: + (WebCore::VideoLayerChromium::SharedValues::signAdjLocation): + +2011-02-03 James Kozianski <koz@chromium.org> + + Reviewed by Dimitri Glazkov. + + Add navigator.registerProtocolHandler behind a flag. + https://bugs.webkit.org/show_bug.cgi?id=52609 + + This method is described in the HTML5 specification here, + http://dev.w3.org/html5/spec/Overview.html#dom-navigator-registerprotocolhandler + + This change is largely cribbed from B. Green's 29651 patches. It is + behind a flag so as not to break JS feature detection. + + New layout test fast/dom/registerProtocolHandler.html. + + * Configurations/FeatureDefines.xcconfig: + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::registerProtocolHandler): + * page/Chrome.cpp: + (WebCore::Chrome::registerProtocolHandler): + * page/Chrome.h: + * page/ChromeClient.h: + * page/Navigator.cpp: + (WebCore::verifyCustomHandlerURL): + (WebCore::verifyProtocolHandlerScheme): + (WebCore::Navigator::registerProtocolHandler): + * page/Navigator.h: + * page/Navigator.idl: + +2011-02-03 Brian Ryner <bryner@chromium.org> + + Reviewed by Darin Fisher. + + Add a field to the ResourceResponse for tracking the socket address + of the host that the resource was fetched from. Patch was originally + by Paul Marks. + https://bugs.webkit.org/show_bug.cgi?id=53699 + + * platform/network/chromium/ResourceResponse.cpp: + (WebCore::ResourceResponse::doPlatformCopyData): + (WebCore::ResourceResponse::doPlatformAdopt): + * platform/network/chromium/ResourceResponse.h: + (WebCore::ResourceResponse::socketAddress): + (WebCore::ResourceResponse::setSocketAddress): + +2011-02-03 Adam Langley <agl@chromium.org> + + Reviewed by Adam Barth. + + Plumb mixed script URL to FrameLoaderClient + https://bugs.webkit.org/show_bug.cgi?id=52384 + + Regressions covered by http/tests/security/mixedContent/* + + * loader/EmptyClients.h: + (WebCore::EmptyFrameLoaderClient::didRunInsecureContent): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::checkIfRunInsecureContent): + * loader/FrameLoaderClient.h: + +2011-02-03 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + REGRESSION: Artifacts on box-shadow corners in some cases + https://bugs.webkit.org/show_bug.cgi?id=53731 + + Fix overdrawing artifacts in ShadowBlur's tiling code path, + which show up in shadows using a color with alpha. + + Test: fast/box-shadow/shadow-tiling-artifact.html + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::drawRectShadowWithTiling): Ensure + that the inner rect that gets filled does not overlap with any + of the eight tiled areas by having the corner and side dimensions + be the same for contiguous areas. + +2011-02-03 Adam Barth <abarth@webkit.org> + + Reviewed by Alexey Proskuryakov. + + XSS Auditor is spinning inside decodeURLEscapeSequences() if there are + percent signs in large posted data + https://bugs.webkit.org/show_bug.cgi?id=53405 + + If the input string contains many non-% characters followed by a % + character that is not a valid URL escape sequence, then the old + algorithm would only advance the initial search by one character + (instead of jumping to just after the % character). That would cause + the algorithm to take N^2 time (in the number of characters before the + first % character). This patch just advances the search past the first + % character so we can start looking for next % character sooner. + + * platform/KURL.cpp: + (WebCore::decodeURLEscapeSequences): + +2011-02-03 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: click on a breakpoint highlights wrong line in source frame. + https://bugs.webkit.org/show_bug.cgi?id=53692 + + * inspector/front-end/BreakpointsSidebarPane.js: + (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._setupBreakpointElement): + +2011-02-03 Anton Muhin <antonm@chromium.org> + + Reviewed by Adam Barth. + + [v8] Bail out if to string conversion returned empty handle + https://bugs.webkit.org/show_bug.cgi?id=53687 + + This a temporary measure: actually one probably should never get empty handle + if there was no exception. The root cause is under investigation. + The bailout though allows Chromium not to crash---attempt to convert an empty + v8 hande into WebCore string crashes with invalid memory access. + + See http://code.google.com/p/chromium/issues/detail?id=71544 + + There is no known reduction expressible as a layout test so far. The crash found with automated testing tools. + + * bindings/v8/V8Binding.cpp: + (WebCore::v8NonStringValueToWebCoreString): Bail out on empty handle + * bindings/v8/V8Binding.h: + (WebCore::V8ParameterBase::prepareBase): Ditto + +2011-02-03 Adam Barth <abarth@webkit.org> + + Attempt to fix Chromium build. + + * html/parser/XSSFilter.cpp: + +2011-02-03 Dirk Pranke <dpranke@chromium.org> + + Unreviewed, rolling out r77562. + http://trac.webkit.org/changeset/77562 + https://bugs.webkit.org/show_bug.cgi?id=53630 + + broke chromium mac build + + * WebCore.gyp/WebCore.gyp: + * WebCore.gyp/mac/check_objc_rename.sh: Removed. + +2011-02-03 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSS Auditor severely affects loading performance after submitting a large form + https://bugs.webkit.org/show_bug.cgi?id=49845 + + Switch over from the XSSAuditor to the XSSFilter, improving performance + on this example. + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterToken): + * page/XSSAuditor.cpp: + (WebCore::XSSAuditor::isEnabled): + +2011-02-03 Dirk Pranke <dpranke@chromium.org> + + Unreviewed, rolling out r77567. + http://trac.webkit.org/changeset/77567 + https://bugs.webkit.org/show_bug.cgi?id=53468 + + broke chromium linux svg, canvas tests, possibly win also? + + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::getImageData): + (WebCore::ImageBuffer::getUnmultipliedImageData): + (WebCore::ImageBuffer::getPremultipliedImageData): + (WebCore::putImageData): + (WebCore::ImageBuffer::putUnmultipliedImageData): + (WebCore::ImageBuffer::putPremultipliedImageData): + +2011-02-02 MORITA Hajime <morrita@google.com> + + Reviewed by Dimitri Glazkov. + + Refactoring: <progress> should not use ShadowElement + https://bugs.webkit.org/show_bug.cgi?id=53583 + + - Introduced RenderIndicatorPart and RenderProgressBarValuePart + to be responsible for bar-part layout, + which adopted layout logic from ShadowBlockElement. + - ProgressBarValueElement is no longer a subclass of ShadowBlockElement. + - Remove dependency from RenderProgress to HTMLProgressElement and + ShadowBlockElement. + - The shadow tree is no longer removed on detach(). It becomes persistent. + This is now possible because the ShadowBlockElement dependency is gone. + - ::-webkit-appearance for -webkit-progress-bar-value is no longer referred. + That didn't make sense. + + * html/HTMLProgressElement.cpp: + (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded): + * html/HTMLProgressElement.h: + * html/shadow/ProgressBarValueElement.h: Added. + (WebCore::ProgressBarValueElement::ProgressBarValueElement): + (WebCore::ProgressBarValueElement::shadowPseudoId): + (WebCore::ProgressBarValueElement::createRenderer): + (WebCore::ProgressBarValueElement::create): + * rendering/RenderIndicator.cpp: + (WebCore::RenderIndicatorPart::RenderIndicatorPart): + (WebCore::RenderIndicatorPart::~RenderIndicatorPart): + (WebCore::RenderIndicatorPart::layout): + (WebCore::RenderIndicatorPart::styleDidChange): + * rendering/RenderIndicator.h: Added RenderIndicatorPart class + (WebCore::RenderIndicatorPart::originalVisibility): + (WebCore::RenderIndicatorPart::requiresForcedStyleRecalcPropagation): + (WebCore::RenderIndicatorPart::canHaveChildren): + * rendering/RenderProgress.cpp: + (WebCore::RenderProgressBarValuePart::preferredFrameRect): + (WebCore::RenderProgressBarValuePart::shouldBeHidden): + (WebCore::RenderProgress::updateFromElement): + (WebCore::RenderProgress::layoutParts): + (WebCore::RenderProgress::shouldHaveParts): + * rendering/RenderProgress.h: + (WebCore::RenderProgressBarValuePart::RenderProgressBarValuePart): + +2011-02-03 Jia Pu <jpu@apple.com> + + Reversion should not be marked as misspelled. + https://bugs.webkit.org/show_bug.cgi?id=53255 + + This patch includes fix for reported bug, and also some housekeeping changes. + + To implement desired behavior, we need: + 1. Add a new marker type, SpellCheckingExemption, since now we distingusish between text + that shouldn't be spellchecked and text shouldn't be autocorrected. + 2. Make sure that there is no pending correction panel when we enter markAllMisspellingsAndBadGrammarInRanges(). + Otherwise the spell checking code in that function may interfere with autocorrection. This + is achieved by explicitly applying pending correction when user types space, line break or + paragraph break. + + Housekeeping code changes include: + 1. Change manual-tests that were broken by relocated WebCore directory. + 2. Use TextIterator in various DocumentMarkerController functions instead of using + Node::traverseNextNode() directly. + 3. Allow passing multiple marker types into DocumentMarkerController::removeMarkers() and + DocumentMarkerController::hasMarkers() to improve clarity and efficiency. + 4. Fixes of minor bugs that were exposed previously. + + * WebCore.exp.in: Change signature of DocumentMarkerController::removeMarkers(). + + * dom/DocumentMarker.h: Added new marker type SpellCheckingExemption. + + * dom/DocumentMarkerController.cpp: + (WebCore::DocumentMarkerController::removeMarkers): Use TextIterator to scan the range to be + consistent with addMarker() function. Allow passing in multiple marker types in one call. + Added a boolean argument to specify the behavior when removing markers that partially + overlap the specified range. + (WebCore::DocumentMarkerController::removeMarkersFromMarkerMapVectorPair): Allow passing in + multiple marker types in one call. + (WebCore::DocumentMarkerController::hasMarkers): Use TextIterator to scan the range to be + consistent with addMarker() function. Allow passing in multiple marker types in one call. + + * dom/DocumentMarkerController.h: Allow passing in multiple marker types to removeMarkers() + and hasMarkers(). Added a boolean argument to removeMarkers() to specify the behavior when + removing markers that partially overlap the specified range. + + * editing/Editor.cpp: + (WebCore::markerTypesForAutocorrection): Add SpellCheckingExemption marker when apply correction. + (WebCore::markerTypesForReplacement): Ditto. + (WebCore::Editor::respondToChangedSelection): Reordered call to dismissCorrectionPanel() and + setSelection() to make sure there is no pending correction when entering + markAllMisspellingsAndBadGrammarInRanges(). + (WebCore::Editor::appliedEditing): Only remove CorrectionIndicator markers when the command + is a top level command to improve efficiency. + (WebCore::Editor::insertTextWithoutSendingTextEvent): Added code to applying pending correction. + (WebCore::Editor::insertLineBreak): Ditto. + (WebCore::Editor::insertParagraphSeparator): Ditto. + (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges): Don't mark mispelling if the + text carries SpellCheckingExemption marker. + (WebCore::Editor::correctionPanelTimerFired): Reset correction panel if the returned suggestion + from spellchecker is an empty string. + (WebCore::Editor::removeSpellAndCorrectionMarkersFromWordsToBeEdited): + Use new DocumentMarkerController::removeMarkers() to replace custom implemenation to improve + efficiency and readability. + (WebCore::Editor::applyCorrectionPanelInfo): Remove the code that set caret position after + applying correction, since it's unnecessary. Also, store pre-correction string together with + the marker for reversion panel to use. + (WebCore::Editor::applyAutocorrectionBeforeTypingIfAppropriate): Apply pending correction. + (WebCore::Editor::changeSelectionAfterCommand): Moved marker removal code to Editor::appliedEditing() + where we have access to EditCommand object. + + * editing/Editor.h: Added new function applyAutocorrectionAfterTypingIfAppropriate(). + + * manual-tests/autocorrection/autocorrection-cancelled-by-ESC.html: Change manual-tests that + were broken by relocated WebCore directory. + + * manual-tests/autocorrection/autocorrection-cancelled-by-typing-1.html: Ditto. + + * manual-tests/autocorrection/autocorrection-contraction.html: Ditto. + + * manual-tests/autocorrection/continue-typing-to-dismiss-reversion.html: Ditto. + + * manual-tests/autocorrection/delete-to-dismiss-reversion.html: Ditto. + + * manual-tests/autocorrection/delete-to-end-of-word-to-show-reversion.html: Ditto. + + * manual-tests/autocorrection/dismiss-multiple-guesses.html: Ditto. + + * manual-tests/autocorrection/move-to-end-of-word-to-show-reversion.html: Ditto. + + * manual-tests/autocorrection/select-from-multiple-guesses.html: Ditto. + + * manual-tests/autocorrection/spell-checking-after-reversion.html: Added. + + * manual-tests/autocorrection/type-whitespace-to-dismiss-reversion.html: Change manual-tests that + were broken by relocated WebCore directory. + + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::paintDocumentMarkers): Code clean-up to be more concise. + +2011-02-03 Abhishek Arya <inferno@chromium.org> + + Unreviewed, qt build fix. + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::removeFloatingObject): + +2011-02-03 Brian Salomon <bsalomon@google.com> + + Reviewed by James Robinson. + + Handle non-raster backed images in getUnmultipliedImageData() + https://bugs.webkit.org/show_bug.cgi?id=53468 + + No new tests. Existing canvas tests sufficient + LayoutTests/canvas/philip/... + + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::getImageData): + (WebCore::ImageBuffer::getUnmultipliedImageData): + (WebCore::ImageBuffer::getPremultipliedImageData): + (WebCore::putImageData): + (WebCore::ImageBuffer::putUnmultipliedImageData): + (WebCore::ImageBuffer::putPremultipliedImageData): + +2011-02-03 Abhishek Arya <inferno@chromium.org> + + Reviewed by James Robinson. + + Enforce more limits on root inline boxes height calculations. + https://bugs.webkit.org/show_bug.cgi?id=53729 + + Test: fast/overflow/overflow-height-float-not-removed-crash.html + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::removeFloatingObject): prevent logicalBottom to + become negative when logicalTop is INT_MAX. + (WebCore::RenderBlock::markLinesDirtyInBlockRange): when logicalBottom + is INT_MAX, we should dirty everything. So, we bail out to make + afterLowest equal to the lastRootBox() or lowestDirstLine. + +2011-02-03 David Levin <levin@chromium.org> + + Reviewed by Adam Barth and Oliver Hunt. + + Worker.importScript() should clean errors for cross origin imports. + https://bugs.webkit.org/show_bug.cgi?id=52871 + + Test: http/tests/workers/worker-importScriptsOnError.html + + * bindings/js/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::evaluate): Use sanitizeScriptError + to determine when to create a clean exception. + * bindings/v8/WorkerContextExecutionProxy.cpp: + (WebCore::WorkerContextExecutionProxy::evaluate): Ditto. + * dom/ScriptExecutionContext.cpp: + (WebCore::ScriptExecutionContext::sanitizeScriptError): Figure out + if the error needs to be cleaned up. + (WebCore::ScriptExecutionContext::dispatchErrorEvent): Extracted + sanitizeScriptError for use by other places. + * dom/ScriptExecutionContext.h: + * workers/WorkerContext.cpp: + (WebCore::WorkerContext::importScripts): Use the reponse url when + telling the evaluate where the script came fro. + * workers/WorkerScriptLoader.cpp: + (WebCore::WorkerScriptLoader::responseURL): Expose the url that + the script was loaded from (which may be different from url() due + to redirects). + (WebCore::WorkerScriptLoader::didReceiveResponse): Capture the reponse url. + * workers/WorkerScriptLoader.h: + +2011-02-03 Mark Mentovai <mark@chromium.org> + + Reviewed by Dimitri Glazkov. + + Chromium GYP build fix. + + When various settings were moved to webcore_prerequisites in r66364, + things that should have been direct_dependent_settings were not marked + as such. GYP 'defines', for example, make no sense on a 'none'-type + target such as webcore_prerequisites. It appears that it was intended + for these settings to be pushed to direct dependents, which would make + direct_dependent_settings correct. + + Losing the ChromiumWebCoreObjC defines on the Mac, for example, caused + http://crbug.com/71537, which at best causes Mac console log spew, and + at worst may result in Chromium's copy of WebCore using system + definitions of certain Objective-C classes at runtime, or vice-versa. + + The build now includes a postbuild step to prevent + http://crbug.com/71537 from regressing again. The build will fail upon + regression. + + https://bugs.webkit.org/show_bug.cgi?id=53630 + + * WebCore.gyp/WebCore.gyp: Move things in webcore_prerequisites into + direct_dependent_settings as needed, add the check_objc_rename + postbuild step. + * WebCore.gyp/mac/check_objc_rename.sh: Added. + +2011-02-03 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Make XSSFilter go fast by adding a SuffixTree + https://bugs.webkit.org/show_bug.cgi?id=53665 + + The SuffixTree lets us quickly reject snippets if the POST data is + large (because we can avoid a linear scan over the POST data). + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::init): + (WebCore::XSSFilter::isContainedInRequest): + * html/parser/XSSFilter.h: + +2011-02-03 Mihai Parparita <mihaip@chromium.org> + + Reviewed by Alexey Proskuryakov. + + REGRESSION (r77355): Page cache layout tests crash + https://bugs.webkit.org/show_bug.cgi?id=53648 + + Test: fast/events/pagehide-timeout.html + + Suspend active DOM objects after all pagehide event handlers have run, + otherwise it's possible for them to create more objects that weren't + getting suspended. + + * history/CachedFrame.cpp: + (WebCore::CachedFrame::CachedFrame): + +2011-02-03 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + SerializedScriptValue should not require v8 to create undefined and null values + https://bugs.webkit.org/show_bug.cgi?id=53730 + + Instead of creating a v8 type and passing that into the constructor, just use + the writer class directly. While I was at it, I cleaned up the code a bit too + by getting rid of the WireData/StringValue enum as I found that personally + confusing. + + This is necessary because these methods are called by IndexedDB in the browser + process where v8 is not spun up. + + No functionality changed and not possible to test. + + * bindings/v8/SerializedScriptValue.cpp: + (WebCore::SerializedScriptValue::createFromWire): + (WebCore::SerializedScriptValue::create): + (WebCore::SerializedScriptValue::nullValue): + (WebCore::SerializedScriptValue::undefinedValue): + (WebCore::SerializedScriptValue::release): + (WebCore::SerializedScriptValue::SerializedScriptValue): + * bindings/v8/SerializedScriptValue.h: + +2011-02-03 Beth Dakin <bdakin@apple.com> + + Reviewed by Sam Weinig. + + Fix for <rdar://problem/8944544> Ability to animate track + for WKPainter scrollers + + Two new WebKitSystemInterface functions. + * WebCore.exp.in: + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + + Use Scrollbar::convertFromContainingView() to return the right point. + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]): + + ScrollKnobAnimation is now ScrollbarPartAnimation. It can + now be used to animate the knob or the track. + (-[ScrollbarPartAnimation initWithScrollbarPainter:part:WebCore::scrollAnimator:WebCore::animateAlphaTo:duration:]): + (-[ScrollbarPartAnimation setCurrentProgress:]): + (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:part:WebCore::animateAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): + + Scrollbars need invalodating after the overlay state changes. + (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]): + +2011-02-03 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Scroll thumb jumps to top when resizing horizontally. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::updateScrollbars): Add call to update + the scrollbar's offset in the case where we may have created + a new scrollbar but have not changed the current position. + +2011-02-03 Justin Schuh <jschuh@chromium.org> + + Reviewed by Dirk Schulze. + + startAnimations should use a local, RefCounted Vector. + https://bugs.webkit.org/show_bug.cgi?id=53458 + + Test: svg/custom/use-animation-in-fill.html + + * svg/SVGDocumentExtensions.cpp: + (WebCore::SVGDocumentExtensions::startAnimations): + +2011-02-03 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSSFilter shouldn't bother to analyze pages without "injection" + characters in the request + https://bugs.webkit.org/show_bug.cgi?id=53664 + + If the request lacks these "injection" characters, then it's unlikely + that there's a reflective XSS attack happening. This hueristic lets us + avoid analyzing the vast majority of responses for XSS. Of course, the + hueristic isn't perfect. Because of this huerstic, we miss out on + injections into unquoted attributes. However, it's a trade-off that's + worked well in the XSSAuditor. + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::isRequiredForInjection): + (WebCore::XSSFilter::XSSFilter): + (WebCore::XSSFilter::init): + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::isContainedInRequest): + * html/parser/XSSFilter.h: + +2011-02-03 Vangelis Kokkevis <vangelis@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Fixing a compositor crash occurring on layers + without an associated RenderSurface. + https://bugs.webkit.org/show_bug.cgi?id=53679 + Regression was introduced by in r77425 + + Test: http://webkit.org/blog/386/3d-transforms/ doesn't crash + anymore. + + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::drawLayer): + +2011-02-03 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + <rdar://problem/8948788> Text emphasis marks have wrong orientation for vertical text + https://bugs.webkit.org/show_bug.cgi?id=53709 + + Covered by rendering of fast/text/emphasis-vertical.html + + * platform/graphics/mac/SimpleFontDataMac.mm: + (WebCore::SimpleFontData::scaledFontData): Give the scaled font the same orientation this font + has. + +2011-02-02 Levi Weintraub <leviw@chromium.org> + + Reviewed by Ryosuke Niwa. + + Moving cursor down in table cycles at the end of a row + https://bugs.webkit.org/show_bug.cgi?id=50012 + + Avoids a caret cycling issue with certain content (e.g. tables) found at the very + end of a document due to a bug in nextLeafWithSameEditability. + + Test: editing/selection/move-by-line-cycles-in-table.html + + * editing/visible_units.cpp: + (WebCore::nextLeafWithSameEditability): Properly avoid descending back into the + original leaf node. + +2011-02-03 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: remove dead code related to changes panel. + https://bugs.webkit.org/show_bug.cgi?id=53688 + + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * inspector/front-end/ChangesView.js: Removed. + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.css: + (#error-warning-count): + (#error-warning-count:hover): + (#error-count + #warning-count): + * inspector/front-end/inspector.html: + * inspector/front-end/inspector.js: + +2011-02-02 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Add notification of the end of a rubber band. + <rdar://problem/8940648> + + * WebCore.exp.in: + Add additional exprots. + + * page/ChromeClient.h: + (WebCore::ChromeClient::didCompleteRubberBandForMainFrame): + * page/FrameView.cpp: + (WebCore::FrameView::didCompleteRubberBand): + * page/FrameView.h: + * platform/ScrollView.cpp: + (WebCore::ScrollView::didCompleteRubberBand): + * platform/ScrollView.h: + Add hook. + + * platform/ScrollableArea.h: + (WebCore::ScrollableArea::inLiveResize): + (WebCore::ScrollableArea::maximumScrollPosition): + (WebCore::ScrollableArea::visibleWidth): + (WebCore::ScrollableArea::overhangAmount): + (WebCore::ScrollableArea::didCompleteRubberBand): + Reorganize and de-virtualize live resize notifications. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): + Call the new hook when the rubberband ends. + +2011-02-02 Evan Martin <evan@chromium.org> + + Reviewed by Tony Chang. + + [chromium] complex joining characters positioned in wrong place + https://bugs.webkit.org/show_bug.cgi?id=53637 + + Provide the correct font metrics to Harfbuzz related to the font design space. + There are used in some fonts for GPOS positioning. + + Test: platform/chromium-linux/fast/text/international/complex-joining-using-gpos.html + + * platform/graphics/chromium/ComplexTextControllerLinux.cpp: + (WebCore::ComplexTextController::setupFontForScriptRun): + (WebCore::ComplexTextController::allocHarfbuzzFont): + * platform/graphics/chromium/FontPlatformDataLinux.cpp: + (WebCore::FontPlatformData::FontPlatformData): + (WebCore::FontPlatformData::emSizeInFontUnits): + (WebCore::FontPlatformData::operator=): + * platform/graphics/chromium/FontPlatformDataLinux.h: + (WebCore::FontPlatformData::FontPlatformData): + +2011-02-02 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Kent Tamura. + + REGRESSION(r76147): Slider thumb position is not updated when value attribute is changed. + https://bugs.webkit.org/show_bug.cgi?id=53634 + + Test: fast/dom/HTMLInputElement/input-slider-update.html + + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::setValue): Added a call to InputType::valueChanged. + * html/InputType.cpp: + (WebCore::InputType::valueChanged): Added empty implementation. + * html/InputType.h: Added def. + * html/RangeInputType.cpp: + (WebCore::RangeInputType::valueChanged): Added implementation that dirties layout + bit on the thumb. + * html/RangeInputType.h: Added def. + +2011-02-02 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: do not share source frames between resources panel and scripts panel. + https://bugs.webkit.org/show_bug.cgi?id=53584 + + Currently, we show error messages only for resources. This change will allow showing error + messages in source frame even when resource is not available (eval scripts, inlined scripts). + + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView.prototype.addMessage): + (WebInspector.ConsoleView.prototype.clearMessages): + * inspector/front-end/ResourceView.js: + (WebInspector.ResourceView.recreateResourceView): + * inspector/front-end/ResourcesPanel.js: + (WebInspector.FrameResourceTreeElement.prototype._setBubbleText): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): + (WebInspector.ScriptsPanel.prototype.addConsoleMessage): + (WebInspector.ScriptsPanel.prototype.clearConsoleMessages): + (WebInspector.ScriptsPanel.prototype.reset): + (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): + (WebInspector.ScriptsPanel.prototype._sourceFrameForResource): + (WebInspector.ScriptsPanel.prototype._sourceFrameForScript): + +2011-02-03 Simon Fraser <simon.fraser@apple.com> + + Fix 32-bit builds. + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::blurLayerImage): + +2011-02-03 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Add reporting of JS heap size limit to 'console.memory'. + https://bugs.webkit.org/show_bug.cgi?id=53592 + + In JSC there is no limit, thus 'undefined' value is returned. + For V8, the limit reported by the VM is returned. + + * Android.jscbindings.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSBindingsAllInOne.cpp: + * bindings/js/JSMemoryInfoCustom.cpp: Added. + * bindings/js/ScriptGCEvent.cpp: + (WebCore::ScriptGCEvent::getHeapSize): + * bindings/js/ScriptGCEvent.h: + * bindings/v8/ScriptGCEvent.cpp: + (WebCore::ScriptGCEvent::getHeapSize): + * bindings/v8/ScriptGCEvent.h: + * inspector/InspectorTimelineAgent.cpp: + (WebCore::InspectorTimelineAgent::setHeapSizeStatistic): + * page/MemoryInfo.cpp: + (WebCore::MemoryInfo::MemoryInfo): + * page/MemoryInfo.h: + (WebCore::MemoryInfo::jsHeapSizeLimit): + * page/MemoryInfo.idl: + +2011-01-27 Philippe Normand <pnormand@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] LayoutTests/media/audio-mpeg4-supported.html fails + https://bugs.webkit.org/show_bug.cgi?id=53125 + + * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: + (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache. + +2011-02-03 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Sam Weinig. + + ShadowBlur radius for CSS shadows is slightly too big + https://bugs.webkit.org/show_bug.cgi?id=53660 + + If we follow SVG gaussian blur for CSS shadows, we can end up rendering + shadows that extend further than the CSS "blur radius", which results + in the shadows being truncated. + + Fix with a small fudge factor to reduce the kernel diameter slightly + for CSS shadows. + + Also more closely follow the algorithm described in the SVG spec + for computing the kernel size for different diameters, and clean up + some variable naming relating to the shadow bounds. + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::blurLayerImage): + (WebCore::ShadowBlur::drawRectShadowWithTiling): + +2011-02-01 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: introduce new api for managing JavaScript breakpoints. + https://bugs.webkit.org/show_bug.cgi?id=53235 + + Single protocol breakpoint (e.g. set by url) is mapped on zero or more VM breakpoints (set by sourceID). + removeJavaScriptBreakpoint(breakpointId) removes breakpoint and all linked VM breakpoints. + Since UI uses VM breakpoint location rather then protocol breakpoint location, all resolved breakpoints locations are passed to frontend. + + SourceFrame is now aware of whether breakpoint is resolved or not and may display it accordingly. + JavaScriptBreakpointsSidebarPane filters out breakpoints set on nonexistent scripts to avoid UI cluttering. + + * bindings/js/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::setBreakpoint): + (WebCore::ScriptDebugServer::removeBreakpoint): + * bindings/js/ScriptDebugServer.h: + * bindings/v8/DebuggerScript.js: + (): + * bindings/v8/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::setBreakpoint): + * bindings/v8/ScriptDebugServer.h: + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: clear breakpoints from inspector state when new frontend is created + (WebCore::InspectorAgent::restoreInspectorStateFromCookie): + (WebCore::InspectorAgent::populateScriptObjects): + (WebCore::InspectorAgent::restoreDebugger): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + * inspector/InspectorAgent.h: + * inspector/InspectorDebuggerAgent.cpp: manage relations between protocol breakpoints and VM breakpoints + (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent): + (WebCore::InspectorDebuggerAgent::inspectedURLChanged): + (WebCore::InspectorDebuggerAgent::setJavaScriptBreakpoint): + (WebCore::InspectorDebuggerAgent::setJavaScriptBreakpointBySourceId): + (WebCore::InspectorDebuggerAgent::removeJavaScriptBreakpoint): + (WebCore::InspectorDebuggerAgent::continueToLocation): + (WebCore::InspectorDebuggerAgent::resolveBreakpoint): + (WebCore::InspectorDebuggerAgent::getScriptSource): + (WebCore::InspectorDebuggerAgent::didParseSource): + (WebCore::InspectorDebuggerAgent::didPause): + * inspector/InspectorDebuggerAgent.h: + (WebCore::InspectorDebuggerAgent::Script::Script): + * inspector/InspectorValues.cpp: + (WebCore::InspectorValue::asNumber): + (WebCore::InspectorBasicValue::asNumber): + (WebCore::InspectorObject::remove): + * inspector/InspectorValues.h: + (WebCore::InspectorObject::getNumber): + (WebCore::InspectorObject::find): + * inspector/ScriptBreakpoint.h: + (WebCore::ScriptBreakpoint::ScriptBreakpoint): + * inspector/front-end/Breakpoint.js: + (WebInspector.Breakpoint): + (WebInspector.Breakpoint.prototype.addLocation): + * inspector/front-end/BreakpointManager.js: remove all stuff related to JavaScript breakpoints from here + (WebInspector.BreakpointManager): + (WebInspector.BreakpointManager.prototype._projectChanged): + (WebInspector.BreakpointManager.prototype._saveBreakpoints): + (WebInspector.BreakpointManager.prototype._validateBreakpoints): + * inspector/front-end/BreakpointsSidebarPane.js: + (WebInspector.JavaScriptBreakpointsSidebarPane): filter breakpoints set on nonexistent scripts to avoid ui cluttering + * inspector/front-end/DebuggerModel.js: + (WebInspector.DebuggerModel): pull all JavaScript from localStorage and push them to fronted when debugger is enabled, save resolved breakpoints data + * inspector/front-end/Script.js: + (WebInspector.Script.prototype.sourceLine): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._toggleDebugging): + * inspector/front-end/Settings.js: + (WebInspector.Settings): + * inspector/front-end/SourceFrame.js: handle resolved and unresolved breakpoints differently + * inspector/front-end/inspector.js: + +2011-02-03 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + small text which is scaled to be large renders pixelated + https://bugs.webkit.org/show_bug.cgi?id=12448 + + SVG <text> with font-size smaller or equal to 1 does not paint correctly + https://bugs.webkit.org/show_bug.cgi?id=14242 + + misplaced text in SVG + https://bugs.webkit.org/show_bug.cgi?id=17053 + + Don't render very small (but zoomed) text inside SVG + https://bugs.webkit.org/show_bug.cgi?id=19393 + + Tiny fonts scaled up end up too large in Safari + https://bugs.webkit.org/show_bug.cgi?id=20192 + + Stretched SVG Text has awful glyph spacing + https://bugs.webkit.org/show_bug.cgi?id=21774 + + REGRESSION (r72141?): svg/batik/text/smallFonts.svg failing on Leopard + https://bugs.webkit.org/show_bug.cgi?id=49846 + + [Gtk] Text height in zoomed SVG is 1px too high + https://bugs.webkit.org/show_bug.cgi?id=50313 + + SVG text smaller than 0.5px not displayed properly + https://bugs.webkit.org/show_bug.cgi?id=50528 + + When rendering text, we're selecting a font with a size, as specified in the markup. + This can lead to problems, if the context, where the text is rendered upon, is scaled. If a parent + element of the <text> defines a transform=".." or the outermost <svg> containing a viewBox the + problem becomes apparent. + + Consider following two snippets, which should render exactly the same: + <svg viewBox="0 0 100 100"><text x="25" y="50" font-size="25">test</text></svg> + <svg viewBox="0 0 1 1"><text x="0.25" y="0.5" font-size="0.25">test</text></svg> + + When selecting a font size below 0.5, FontCacheMac would request a font with size 0, + which AppKit turns into 12. This lead to huge text rendering, instead of small text on Mac. + Other platforms have different problems (Qt simply scales the font, leading to pixelation etc.) + + To fix this in a cross-platform fashion, we now always compute the final font size on screen, + remove any scaling from the context, draw the text using the scaled font size, then reapply + the context scale. This makes the example snippets above render exactly the same and fixes + numerous of bugs, present since years. As we're now heavily using floating-point font sizes + internally, depending on the scale of the document, it's very important to use the new + floating-point text metrics information (floatAscent/floatDescent/floatHeight) everywhere in SVG. + + Fixes existing tests: css3/zoom-coords.xhtml (cross-platform inconsistencies should be gone, mac now reports floatHeight values for SVG text height) + svg/hixie/text/003.html (no more pixelation) + svg/batik/text/smallFonts.svg (small fonts aren't rendered huge anymore on mac) + svg/hixie/viewbox/preserveAspectRatio/001.xml (bug 21774, no more awful spacing) + svg/zoom/page/zoom-zoom-coords.xhtml (cross-platform inconsistencies should be gone, inspired by bug 50313) + + Tests: svg/text/font-size-below-point-five-2.svg (reduction from bug 50528) + svg/text/font-size-below-point-five.svg (reduction from bug 50528) + svg/text/scaled-font.svg (reduction from bug 12448) + svg/text/small-fonts-2.svg (reduction from bug 14242) + svg/text/small-fonts-3.svg (reduction from bug 17053) + svg/text/small-fonts-in-html5.html (reduction from bug 19393) + svg/text/small-fonts.svg (reduction from bug 20192)) + + * rendering/svg/RenderSVGInlineText.cpp: Cache 'float scalingFactor' & 'Font scaledFont', whenever the on-screen representation changes. + * rendering/svg/RenderSVGInlineText.h: + * rendering/svg/RenderSVGText.cpp: Update scalingFactor/scaledFont, if necessary. + * rendering/svg/SVGInlineTextBox.cpp: Switch to new font rendering strategy. Always use scaledFont, and remove any context scale before drawing. + * rendering/svg/SVGInlineTextBox.h: + * rendering/svg/SVGTextLayoutEngineBaseline.cpp: Use floating-point metrics everywhere. + * rendering/svg/SVGTextMetrics.cpp: Ditto. + * rendering/svg/SVGTextMetrics.h: Ditto. + * rendering/svg/SVGTextQuery.cpp: Ditto. + * svg/SVGFont.cpp: Adjust stroke thickness, when drawing SVGFonts into a normalized context (no more scale). + * svg/SVGTextContentElement.cpp: Make <text> elements always dependant on window size changes in combination with viewBox set. + * svg/SVGTextPositioningElement.cpp: Remove now unnecessary code to determine wheter relative lengths are used as text attributes. + * svg/SVGTextPositioningElement.h: + +2011-02-03 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: resources panel doesn't show frames after reload. + https://bugs.webkit.org/show_bug.cgi?id=53430 + + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel.prototype.show): + (WebInspector.ResourcesPanel.prototype.loadEventFired): + (WebInspector.ResourcesPanel.prototype._initDefaultSelection): + (WebInspector.ResourcesPanel.prototype.reset): + (WebInspector.ResourcesPanel.prototype.clear): + * inspector/front-end/inspector.js: + (WebInspector.loadEventFired): + +2011-02-01 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Remove the *2 suffix from the CSS style-related protocol methods + https://bugs.webkit.org/show_bug.cgi?id=53492 + + * inspector/Inspector.idl: + * inspector/InspectorCSSAgent.cpp: + (WebCore::InspectorCSSAgent::getStylesForNode): + (WebCore::InspectorCSSAgent::getInlineStyleForNode): + (WebCore::InspectorCSSAgent::getComputedStyleForNode): + (WebCore::InspectorCSSAgent::getAllStyles): + (WebCore::InspectorCSSAgent::getStyleSheet): + (WebCore::InspectorCSSAgent::getStyleSheetText): + (WebCore::InspectorCSSAgent::setStyleSheetText): + (WebCore::InspectorCSSAgent::setPropertyText): + (WebCore::InspectorCSSAgent::toggleProperty): + (WebCore::InspectorCSSAgent::setRuleSelector): + (WebCore::InspectorCSSAgent::addRule): + * inspector/InspectorCSSAgent.h: + * inspector/front-end/AuditRules.js: + (WebInspector.AuditRules.UnusedCssRule.prototype.doRun): + * inspector/front-end/CSSStyleModel.js: + (WebInspector.CSSStyleModel.prototype.getStylesAsync): + (WebInspector.CSSStyleModel.prototype.getComputedStyleAsync): + (WebInspector.CSSStyleModel.prototype.getInlineStyleAsync): + (WebInspector.CSSStyleModel.prototype.setRuleSelector): + (WebInspector.CSSStyleModel.prototype.addRule): + (WebInspector.CSSStyleModel.prototype._styleSheetChanged): + (WebInspector.CSSStyleModel.prototype._onRevert): + (WebInspector.CSSStyleDeclaration.prototype.insertPropertyAt): + (WebInspector.CSSProperty.prototype.setText): + (WebInspector.CSSProperty.prototype.setDisabled): + (WebInspector.CSSStyleSheet.createForId): + (WebInspector.CSSStyleSheet.prototype.setText): + +2011-02-03 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter about data URLs + https://bugs.webkit.org/show_bug.cgi?id=53662 + + The XSS filter doesn't really make sense for data URLs because + everything in a "response" from a data URL was part of the request. + + Test: http/tests/security/xssAuditor/data-urls-work.html + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::init): + (WebCore::XSSFilter::filterToken): + +2011-02-02 Chris Evans <cevans@chromium.org> + + Reviewed by Darin Fisher. + + window.find() can fail when switching case sensitivity + https://bugs.webkit.org/show_bug.cgi?id=53654 + + Reset the pattern to a safe one when done, to avoid usearch_reset() + indirectly touching the old, stale text pointer. + + Test: fast/text/find-window.html + + * editing/TextIterator.cpp: + (WebCore::SearchBuffer::~SearchBuffer): leave a safe pattern buffer when done. + +2011-02-02 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter that <param> elements can contain URLs + https://bugs.webkit.org/show_bug.cgi?id=53652 + + When loading plugins for the <object> tag, we're "smart" enough to + reach into the <param> elements and pull out the URL in some cases. + This patch teaches the XSSFilter how to block injections into those + sorts of param elements. + + Fixes: + http/tests/security/xssAuditor/object-* + + * html/HTMLParamElement.cpp: + (WebCore::HTMLParamElement::isURLParameter): + (WebCore::HTMLParamElement::isURLAttribute): + (WebCore::HTMLParamElement::addSubresourceAttributeURLs): + * html/HTMLParamElement.h: + - Add a helper function so that HTMLParamElement can share the + ground truth for these names with the XSSFilter. + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterTokenInitial): + (WebCore::XSSFilter::filterParamToken): + * html/parser/XSSFilter.h: + +2011-02-02 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by David Levin. + + GCC compiler on ARM issues bogus warnings and fails to compile. + https://bugs.webkit.org/show_bug.cgi?id=53620 + + Despite warnings explicitly being disallowed (-Wno-uninitialized), + gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3 throws up the warnings like: + + "error: 'colorTransparent.unstatic.4909' may be used uninitialized in this function" + + The fix is to add an extra condition, which somehow pacifies the compiler. + + * css/CSSPrimitiveValue.cpp: + (WebCore::CSSPrimitiveValue::createColor): Added workaround conditions. + +2011-02-02 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter about X-XSS-Protection + https://bugs.webkit.org/show_bug.cgi?id=53640 + + This patch causes us to pass: + http/tests/security/xssAuditor/full-block-* + http/tests/security/xssAuditor/no-protection-script-tag.html + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::XSSFilter): + (WebCore::XSSFilter::init): + (WebCore::XSSFilter::filterToken): + * html/parser/XSSFilter.h: + +2011-02-02 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + When XSSFilter blocks JavaScript URLs, use a safe JavaScript URL + instead of the empty string + https://bugs.webkit.org/show_bug.cgi?id=53643 + + In a URL context, the empty string completes to the URL of the current + page, which causes these tests to go into an infinite loop. Instead, + we should use a "safe" JavaScript URL that does nothing. + + Fixes: + http/tests/security/xssAuditor/javascript-link* + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::eraseDangerousAttributesIfInjected): + +2011-02-02 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/8380506> REGRESSION (r61921): RTL text in <b> tag doesn't display in WebKit under certain conditions + https://bugs.webkit.org/show_bug.cgi?id=44942 + + Test: fast/text/bidi-embedding-pop-and-push-same-2.html + + * platform/text/BidiResolver.h: + (WebCore::::commitExplicitEmbedding): Changed to return a boolean indicating whether there was + a change to embedding levels. + (WebCore::::createBidiRunsForLine): If embedding levels did not change as a result of committing + the explicit embedding sequence, then runs were not added, and we should continue normally. + +2011-02-02 Sam Weinig <sam@webkit.org> + + Reviewed by Dan Bernstein. + + Fix miscalculation of the overhang area used for painting. We were + not correctly accounting for scrollbars resulting in an non-negative + overhang even when we weren't over the edge. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::calculateOverhangAreasForPainting): + +2011-02-02 Jeremy Orlow <jorlow@chromium.org> + + Reviewed by Nate Chapin. + + IDBTransaction and IDBRequest can be deleted while ScriptExecutionContext is iterating....which is bad + https://bugs.webkit.org/show_bug.cgi?id=52722 + + The solution is to change ScriptExecutionContext's destructor to iterate over + the list in a way that handles the mutations. This new method is destructive, + but that's OK since the object is going away. I've also added a several asserts. + + There should be no behavior change. + + * dom/ScriptExecutionContext.cpp: + (WebCore::ScriptExecutionContext::ScriptExecutionContext): + (WebCore::ScriptExecutionContext::~ScriptExecutionContext): + (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects): + (WebCore::ScriptExecutionContext::suspendActiveDOMObjects): + (WebCore::ScriptExecutionContext::resumeActiveDOMObjects): + (WebCore::ScriptExecutionContext::stopActiveDOMObjects): + (WebCore::ScriptExecutionContext::createdActiveDOMObject): + (WebCore::ScriptExecutionContext::destroyedActiveDOMObject): + * dom/ScriptExecutionContext.h: + * storage/IDBTransaction.cpp: + (WebCore::IDBTransaction::contextDestroyed): + * storage/IDBTransaction.h: + +2011-02-02 Mark Rowe <mrowe@apple.com> + + Build fix. + + * WebCore.exp.in: Remove some bogus symbols from the .exp.in file. + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::unregisterScrollbar): Look the object + up in the HashMap rather than relying on a local variable that doesn't + exist. + +2011-02-02 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter about JavaScript URLs + https://bugs.webkit.org/show_bug.cgi?id=53635 + + This patch teaches the XSSFilter to check for JavaScript URLs in + attribute values. If this approach has too many false positives, we + can restrict which attribute names we examine. + + Fixes these tests: + http/tests/security/xssAuditor/anchor-url-dom-write-location-javascript-URL.html + http/tests/security/xssAuditor/dom-write-location-javascript-URL.html + http/tests/security/xssAuditor/iframe-javascript-url* + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::containsJavaScriptURL): + (WebCore::XSSFilter::filterTokenInitial): + (WebCore::XSSFilter::eraseDangerousAttributesIfInjected): + * html/parser/XSSFilter.h: + +2011-02-02 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig, even though this is just a... + + ...build fix. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac): + +2011-02-02 Mark Rowe <mrowe@apple.com> + + Reviewed by Beth Dakin. + + <rdar://problem/8952012> Crash on launch inside scrollbar code. + + We need to ensure that we remove ourselves as the delegates of objects when we're going + away as failing to do this can lead to crashes if the lifetime of the other objects + is longer than ours. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::~ScrollAnimatorMac): + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::unregisterScrollbar): + +2011-02-02 Beth Dakin <bdakin@apple.com> + + Build fix. + + * WebCore.exp.in: + +2011-02-02 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r77397. + + * page/wince/FrameWinCE.cpp: + (WebCore::computePageRectsForFrame): + +2011-02-02 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r77398. + + * platform/graphics/wince/PlatformPathWinCE.cpp: + (WebCore::containsPoint): + (WebCore::inflateRectToContainPoint): + (WebCore::PlatformPath::addRect): + * platform/graphics/wince/SharedBitmap.cpp: + (WebCore::SharedBitmap::drawPattern): + * rendering/RenderThemeWinCE.cpp: + (WebCore::RenderThemeWinCE::paintMenuListButton): + (WebCore::RenderThemeWinCE::paintSearchFieldCancelButton): + (WebCore::RenderThemeWinCE::paintSliderTrack): + (WebCore::RenderThemeWinCE::paintMediaMuteButton): + (WebCore::RenderThemeWinCE::paintMediaPlayButton): + (WebCore::RenderThemeWinCE::paintMediaSeekBackButton): + (WebCore::RenderThemeWinCE::paintMediaSeekForwardButton): + +2011-02-02 Jian Li <jianli@chromium.org> + + Reviewed by Kenneth Russell. + + [V8] Accessing DataView with index of -1 returns 0, doesn't throw + https://bugs.webkit.org/show_bug.cgi?id=53559 + + Added test cases to cover this in fast/canvas/webgl/data-view-test.html. + + * html/canvas/DataView.h: + (WebCore::DataView::beyondRange): + +2011-02-02 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Add ChromeClient function to paint custom overhang areas. + https://bugs.webkit.org/show_bug.cgi?id=53639 + + * page/Chrome.cpp: + (WebCore::ChromeClient::paintCustomOverhangArea): + * page/ChromeClient.h: + Add ChromeClient function. + + * page/FrameView.cpp: + (WebCore::FrameView::paintOverhangAreas): + * page/FrameView.h: + Call out the the ChromeClient, call ScrollView base implementation + if the ChromeClient returns false. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::paintOverhangAreas): + * platform/ScrollView.h: + Add dirty rect for use when painting overhang areas. + +2011-02-02 Peter Kasting <pkasting@google.com> + + Not reviewed, build fix. + + Fix compile after r77427. + https://bugs.webkit.org/show_bug.cgi?id=53455 + + * platform/graphics/qt/ImageDecoderQt.cpp: + (WebCore::ImageDecoderQt::internalHandleCurrentImage): + * platform/image-decoders/ImageDecoder.cpp: + (WebCore::ImageFrame::operator=): + * platform/image-decoders/bmp/BMPImageReader.cpp: + (WebCore::BMPImageReader::decodeBMP): + * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: + (WebCore::JPEGImageDecoder::outputScanlines): + * platform/image-decoders/png/PNGImageDecoder.cpp: + (WebCore::PNGImageDecoder::rowAvailable): + * platform/image-decoders/webp/WEBPImageDecoder.cpp: + (WebCore::WEBPImageDecoder::decode): + +2011-02-02 Peter Kasting <pkasting@google.com> + + Reviewed by David Levin. + + Clean up ImageDecoder's comments (remove/trim/clarify). + https://bugs.webkit.org/show_bug.cgi?id=53455 + + This also renames or eliminates a couple of functions for clarity, and + switches a couple erroneous strncmp() calls to memcmp(). + + * platform/image-decoders/ImageDecoder.cpp: + (WebCore::ImageDecoder::create): + (WebCore::ImageFrame::clearPixelData): + (WebCore::ImageFrame::zeroFillPixelData): + (WebCore::ImageFrame::setSize): + * platform/image-decoders/ImageDecoder.h: + (WebCore::ImageFrame::originalFrameRect): + (WebCore::ImageFrame::setOriginalFrameRect): + (WebCore::ImageDecoder::ImageDecoder): + (WebCore::ImageDecoder::~ImageDecoder): + (WebCore::ImageDecoder::isSizeAvailable): + (WebCore::ImageDecoder::size): + (WebCore::ImageDecoder::setIgnoreGammaAndColorProfile): + (WebCore::ImageDecoder::clearFrameBufferCache): + (WebCore::ImageDecoder::isOverSize): + * platform/image-decoders/bmp/BMPImageReader.cpp: + (WebCore::BMPImageReader::processNonRLEData): + * platform/image-decoders/cg/ImageDecoderCG.cpp: + (WebCore::ImageFrame::setSize): + * platform/image-decoders/gif/GIFImageDecoder.cpp: + (WebCore::GIFImageDecoder::clearFrameBufferCache): + (WebCore::GIFImageDecoder::frameComplete): + (WebCore::GIFImageDecoder::initFrameBuffer): + * platform/image-decoders/jpeg/JPEGImageDecoder.h: + * platform/image-decoders/qt/ImageFrameQt.cpp: + (WebCore::ImageFrame::operator=): + (WebCore::ImageFrame::clearPixelData): + (WebCore::ImageFrame::zeroFillPixelData): + (WebCore::ImageFrame::setSize): + * platform/image-decoders/skia/ImageDecoderSkia.cpp: + (WebCore::ImageFrame::operator=): + (WebCore::ImageFrame::clearPixelData): + (WebCore::ImageFrame::zeroFillPixelData): + (WebCore::ImageFrame::setSize): + * platform/image-decoders/webp/WEBPImageDecoder.h: + +2011-02-02 Vangelis Kokkevis <vangelis@chromium.org> + + [chromium] Adding support for reflections to the accelerated + compositing path. + https://bugs.webkit.org/show_bug.cgi?id=53179 + + All layout tests in compositing/reflections generate correct + results with the exception of: + 1. nested-reflection-anchor-point.html : There appears to be + some issue with the layer transform math that I haven't been + able to track down yet. + 2. reflection-opacity.html : The current implementation applies + opacity before doing the reflection which makes this test + produce incorrect results. This will affect reflected layers + with opacity that overlap their original layer. FIXME comment + added in the code. + + Tests: Covered by existing layout tests in compositing/reflections. + Please see above for exceptions. + + * platform/graphics/chromium/GraphicsLayerChromium.cpp: + (WebCore::GraphicsLayerChromium::setReplicatedByLayer): + (WebCore::GraphicsLayerChromium::updateAnchorPoint): + * platform/graphics/chromium/GraphicsLayerChromium.h: + * platform/graphics/chromium/LayerChromium.cpp: + (WebCore::LayerChromium::LayerChromium): + * platform/graphics/chromium/LayerChromium.h: + (WebCore::LayerChromium::setReplicaLayer): + (WebCore::LayerChromium::replicaLayer): + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::updateLayersRecursive): + (WebCore::LayerRendererChromium::drawLayer): + * platform/graphics/chromium/RenderSurfaceChromium.cpp: + (WebCore::RenderSurfaceChromium::drawableContentRect): + (WebCore::RenderSurfaceChromium::drawSurface): + (WebCore::RenderSurfaceChromium::draw): + * platform/graphics/chromium/RenderSurfaceChromium.h: + (WebCore::RenderSurfaceChromium::drawTransform): + +2011-02-02 Xiyuan Xia <xiyuan@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Select popup with padding has white strip on right + https://bugs.webkit.org/show_bug.cgi?id=53602 + + No new tests as this change restores old behavior. + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupListBox::layout): + +2011-02-02 Beth Dakin <bdakin@apple.com> + + Reviewed by Mark Rowe. + + Fix for <rdar://problem/8950343> CrashTracer: [USER] + 1 crash in WebProcess at com.apple.WebCore: + WebCore::ScrollbarThemeMac::unregisterScrollbar + 22 + + It is possible for a Scrollbar's ScrollableArea to be null, + so we must null check. + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::registerScrollbar): + (WebCore::ScrollbarThemeMac::unregisterScrollbar): + +2011-02-02 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + bufferData and bufferSubData should generate INVALID_VALUE with negative input + https://bugs.webkit.org/show_bug.cgi?id=53626 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::bufferData): + (WebCore::WebGLRenderingContext::bufferSubData): + +2011-02-02 Jeff Miller <jeffm@apple.com> + + Reviewed by Darin Adler and Steve Falkenburg. + + Add DerivedSources.make to some Visual Studio projects + https://bugs.webkit.org/show_bug.cgi?id=53607 + + * WebCore.vcproj/WebCoreGenerated.vcproj: Add DerivedSources.make. + +2011-02-02 Cris Neckar <cdn@chromium.org> + + Reviewed by James Robinson. + + Refcount domwindows when dispatching device orientation events. + https://bugs.webkit.org/show_bug.cgi?id=53623 + + Test: fast/events/device-orientation-crash.html + + * dom/DeviceMotionController.cpp: + (WebCore::DeviceMotionController::timerFired): + (WebCore::DeviceMotionController::didChangeDeviceMotion): + * dom/DeviceMotionController.h: + * dom/DeviceOrientationController.cpp: + (WebCore::DeviceOrientationController::timerFired): + (WebCore::DeviceOrientationController::didChangeDeviceOrientation): + * dom/DeviceOrientationController.h: + +2011-02-02 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + A deleted object should never been bound again + https://bugs.webkit.org/show_bug.cgi?id=53604 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::checkObjectToBeBound): Helper function to bind* and useProgram. + (WebCore::WebGLRenderingContext::bindBuffer): Use checkObjectToBeBound. + (WebCore::WebGLRenderingContext::bindFramebuffer): Ditto. + (WebCore::WebGLRenderingContext::bindRenderbuffer): Ditto. + (WebCore::WebGLRenderingContext::bindTexture): Ditto, also check the target matching. + (WebCore::WebGLRenderingContext::deleteObject): Helper funtion to delete*. + (WebCore::WebGLRenderingContext::deleteBuffer): Use deleteObject. + (WebCore::WebGLRenderingContext::deleteFramebuffer): Ditto. + (WebCore::WebGLRenderingContext::deleteProgram): Ditto. + (WebCore::WebGLRenderingContext::deleteRenderbuffer): Ditto. + (WebCore::WebGLRenderingContext::deleteShader): Ditto. + (WebCore::WebGLRenderingContext::deleteTexture): Ditto. + (WebCore::WebGLRenderingContext::useProgram): Use checkObjectToBeBound. + * html/canvas/WebGLRenderingContext.h: + * html/canvas/WebGLTexture.h: + (WebCore::WebGLTexture::getTarget): Accessor to cached target. + +2011-02-02 Alejandro G. Castro <alex@igalia.com> + + Unreviewed Efl buildfix after r77399. + + * CMakeListsEfl.txt: + +2011-02-02 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Rename Typed Array subset to subarray + https://bugs.webkit.org/show_bug.cgi?id=53618 + + * html/canvas/Float32Array.cpp: + (WebCore::Float32Array::subarray): + * html/canvas/Float32Array.h: + * html/canvas/Float32Array.idl: + * html/canvas/Int16Array.cpp: + (WebCore::Int16Array::subarray): + * html/canvas/Int16Array.h: + * html/canvas/Int16Array.idl: + * html/canvas/Int32Array.cpp: + (WebCore::Int32Array::subarray): + * html/canvas/Int32Array.h: + * html/canvas/Int32Array.idl: + * html/canvas/Int8Array.cpp: + (WebCore::Int8Array::subarray): + * html/canvas/Int8Array.h: + * html/canvas/Int8Array.idl: + * html/canvas/TypedArrayBase.h: + (WebCore::TypedArrayBase::subarrayImpl): + * html/canvas/Uint16Array.cpp: + (WebCore::Uint16Array::subarray): + * html/canvas/Uint16Array.h: + * html/canvas/Uint16Array.idl: + * html/canvas/Uint32Array.cpp: + (WebCore::Uint32Array::subarray): + * html/canvas/Uint32Array.h: + * html/canvas/Uint32Array.idl: + * html/canvas/Uint8Array.cpp: + (WebCore::Uint8Array::subarray): + * html/canvas/Uint8Array.h: + * html/canvas/Uint8Array.idl: + +2011-02-02 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Add an empty file for Content Security Policy + https://bugs.webkit.org/show_bug.cgi?id=53573 + + Posting this as a separate patch because editing the build files is so + painful. + + * Android.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + +2011-02-02 Dan Winship <danw@gnome.org> + + Reviewed by Martin Robinson. + + [GTK] remove old data: URI handler, fix the SoupRequest-based one + to pass tests + https://bugs.webkit.org/show_bug.cgi?id=50885 + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::sendRequestCallback): Do content-type sniffing here for + non-HTTP requests. + (WebCore::startHTTPRequest): Rename to match WebKit style. + (WebCore::ResourceHandle::start): Pass everything except HTTP to + startNonHTTPRequest, letting the SoupRequester decide whether it's + supported or not. + (WebCore::startNonHTTPRequest): Remove some old pre-SoupRequester + code that was a no-op for file: URIs, but would break some data: + URIs. + +2011-02-02 Dimitri Glazkov <dglazkov@chromium.org> + + Update even more references to right() and bottom() in Chromium. Sheesh. + + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::getFramebufferPixels): Replaced bottom/right with maxY/maxX. + +2011-02-02 Alejandro G. Castro <alex@igalia.com> + + Unreviewed Gtk3 buildfix after r77286. + + https://bugs.webkit.org/show_bug.cgi?id=53520 + Remove the physical terminology from IntRect and FloatRect. + + * platform/gtk/RenderThemeGtk3.cpp: + (WebCore::RenderThemeGtk::paintMenuList): + +2011-02-02 Anders Carlsson <andersca@apple.com> + + Fix build. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::pinnedInDirection): + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=53619 + + Floats should not use physical terminology for their rects. Replace left/top with x/y and right/bottom + with maxX/maxY. This matches IntRect. + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::addOverflowFromFloats): + (WebCore::RenderBlock::flipFloatForWritingMode): + (WebCore::RenderBlock::paintFloats): + (WebCore::RenderBlock::selectionGaps): + (WebCore::RenderBlock::addOverhangingFloats): + (WebCore::RenderBlock::addIntrudingFloats): + (WebCore::RenderBlock::hitTestFloats): + (WebCore::RenderBlock::adjustForBorderFit): + * rendering/RenderBlock.h: + (WebCore::RenderBlock::FloatingObject::x): + (WebCore::RenderBlock::FloatingObject::maxX): + (WebCore::RenderBlock::FloatingObject::y): + (WebCore::RenderBlock::FloatingObject::maxY): + (WebCore::RenderBlock::FloatingObject::setX): + (WebCore::RenderBlock::FloatingObject::setY): + (WebCore::RenderBlock::logicalTopForFloat): + (WebCore::RenderBlock::logicalBottomForFloat): + (WebCore::RenderBlock::logicalLeftForFloat): + (WebCore::RenderBlock::logicalRightForFloat): + (WebCore::RenderBlock::setLogicalTopForFloat): + (WebCore::RenderBlock::setLogicalLeftForFloat): + (WebCore::RenderBlock::xPositionForFloatIncludingMargin): + (WebCore::RenderBlock::yPositionForFloatIncludingMargin): + +2011-02-02 Dimitri Glazkov <dglazkov@chromium.org> + + Update more references to right() and bottom() in Chromium Win. + + * platform/graphics/chromium/TransparencyWin.cpp: + (WebCore::TransparencyWin::compositeOpaqueComposite): Replaced bottom/right with maxY/maxX. + (WebCore::TransparencyWin::compositeTextComposite): Ditto. + * rendering/RenderThemeChromiumWin.cpp: + (WebCore::RenderThemeChromiumWin::paintMenuList): Ditto. + +2011-02-02 Adam Roben <aroben@apple.com> + + Encode/decode FormData and FormDataElement objects consistently + + Fixes <http://webkit.org/b/53615> <rdar://problem/8943346> WebKit2: Restoring session state + that contains form data fails (asserts in Debug build) + + To prevent this from interfering with WebKit2 testing, it's useful to get this into a build + now, even though we don't have an automated test for it yet. Writing a test is covered by + <http://webkit.org/b/53616>. + + Reviewed by Darin Adler. + + * history/HistoryItem.cpp: Bump the encoding version, since this patch changes how we encode + FormData objects. + + * platform/network/FormData.cpp: + (WebCore::decode): Decode the type from the Decoder, rather than getting it from the + default-constructed FormDataElement. Failing to do this meant that all future uses of the + Decoder would be reading from an unexpected part of the buffer (i.e., the next decode would + start by reading the uint32_t that we forgot to decode here, and so on). We already had code + to correctly set the FormDataElement's type based on this decoded type later in the + function. + (WebCore::FormData::encodeForBackForward): Encode m_identifier as an int64_t, since that + matches its type and how we decode it. + +2011-02-02 Dan Winship <danw@gnome.org> + + Reviewed by Martin Robinson. + + [GTK] drop soup cache stuff, which has been moved to libsoup + https://bugs.webkit.org/show_bug.cgi?id=50747 + + Use libsoup-based cache/requester API and remove the WebCore version + of this functionality. This has been pushed upstream fully. + + No new tests because this should not change functionality. + + * GNUmakefile.am: Update for removed files. + * platform/network/ResourceHandleInternal.h: + (WebCore::ResourceHandleInternal::ResourceHandleInternal): Update + type names, drop m_requester. + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ensureSessionIsInitialized): Add a SoupRequester to the + session. + (WebCore::parseDataUrl): + (WebCore::startHttp): Get the requester from the session rather + than using m_requester. + (WebCore::sendRequestCallback): + (WebCore::ResourceHandle::platformSetDefersLoading): + (WebCore::readCallback): + (WebCore::startGio): Update type names. + * platform/network/soup/cache/soup-directory-input-stream.c: Removed. + * platform/network/soup/cache/soup-directory-input-stream.h: Removed. + * platform/network/soup/cache/soup-http-input-stream.c: Removed. + * platform/network/soup/cache/soup-http-input-stream.h: Removed. + * platform/network/soup/cache/soup-request-data.c: Removed. + * platform/network/soup/cache/soup-request-data.h: Removed. + * platform/network/soup/cache/soup-request-file.c: Removed. + * platform/network/soup/cache/soup-request-file.h: Removed. + * platform/network/soup/cache/soup-request-http.c: Removed. + * platform/network/soup/cache/soup-request-http.h: Removed. + * platform/network/soup/cache/soup-request.c: Removed. + * platform/network/soup/cache/soup-request.h: Removed. + * platform/network/soup/cache/soup-requester.c: Removed. + * platform/network/soup/cache/soup-requester.h: Removed. + * platform/network/soup/cache/webkit/soup-cache-private.h: Removed. + * platform/network/soup/cache/webkit/soup-cache.c: Removed. + * platform/network/soup/cache/webkit/soup-cache.h: Removed. + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=53520 + + Remove physical accessors from IntRect and FloatRect. + + * page/FrameView.cpp: + (WebCore::FrameView::adjustPageHeightDeprecated): + * platform/graphics/FloatRect.h: + * platform/graphics/IntRect.h: + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=53614 + + Remove physical terminology from overflow. Replace with minX/maxX/minY/maxY. + + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::addBoxShadowVisualOverflow): + (WebCore::InlineFlowBox::addTextBoxVisualOverflow): + * rendering/InlineFlowBox.h: + (WebCore::InlineFlowBox::minYLayoutOverflow): + (WebCore::InlineFlowBox::maxYLayoutOverflow): + (WebCore::InlineFlowBox::minXLayoutOverflow): + (WebCore::InlineFlowBox::maxXLayoutOverflow): + (WebCore::InlineFlowBox::logicalLeftLayoutOverflow): + (WebCore::InlineFlowBox::logicalRightLayoutOverflow): + (WebCore::InlineFlowBox::logicalTopLayoutOverflow): + (WebCore::InlineFlowBox::logicalBottomLayoutOverflow): + (WebCore::InlineFlowBox::minYVisualOverflow): + (WebCore::InlineFlowBox::maxYVisualOverflow): + (WebCore::InlineFlowBox::minXVisualOverflow): + (WebCore::InlineFlowBox::maxXVisualOverflow): + (WebCore::InlineFlowBox::logicalLeftVisualOverflow): + (WebCore::InlineFlowBox::logicalRightVisualOverflow): + (WebCore::InlineFlowBox::logicalminYVisualOverflow): + (WebCore::InlineFlowBox::logicalmaxYVisualOverflow): + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::adjustLinePositionForPagination): + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::beforeSideVisualOverflowForLine): + (WebCore::RenderBlock::afterSideVisualOverflowForLine): + (WebCore::RenderBlock::beforeSideLayoutOverflowForLine): + (WebCore::RenderBlock::afterSideLayoutOverflowForLine): + * rendering/RenderBox.cpp: + (WebCore::RenderBox::scrollWidth): + (WebCore::RenderBox::scrollHeight): + * rendering/RenderBox.h: + (WebCore::RenderBox::minYLayoutOverflow): + (WebCore::RenderBox::maxYLayoutOverflow): + (WebCore::RenderBox::minXLayoutOverflow): + (WebCore::RenderBox::maxXLayoutOverflow): + (WebCore::RenderBox::logicalLeftLayoutOverflow): + (WebCore::RenderBox::logicalRightLayoutOverflow): + (WebCore::RenderBox::minYVisualOverflow): + (WebCore::RenderBox::maxYVisualOverflow): + (WebCore::RenderBox::minXVisualOverflow): + (WebCore::RenderBox::maxXVisualOverflow): + (WebCore::RenderBox::logicalLeftVisualOverflow): + (WebCore::RenderBox::logicalRightVisualOverflow): + * rendering/RenderInline.cpp: + (WebCore::RenderInline::linesVisualOverflowBoundingBox): + * rendering/RenderLayerCompositor.cpp: + (WebCore::RenderLayerCompositor::ensureRootPlatformLayer): + * rendering/RenderLineBoxList.cpp: + (WebCore::RenderLineBoxList::anyLineIntersectsRect): + (WebCore::RenderLineBoxList::lineIntersectsDirtyRect): + (WebCore::RenderLineBoxList::paint): + (WebCore::RenderLineBoxList::hitTest): + * rendering/RenderMarquee.cpp: + (WebCore::RenderMarquee::computePosition): + * rendering/RenderOverflow.h: + (WebCore::RenderOverflow::RenderOverflow): + (WebCore::RenderOverflow::minYLayoutOverflow): + (WebCore::RenderOverflow::maxYLayoutOverflow): + (WebCore::RenderOverflow::minXLayoutOverflow): + (WebCore::RenderOverflow::maxXLayoutOverflow): + (WebCore::RenderOverflow::minYVisualOverflow): + (WebCore::RenderOverflow::maxYVisualOverflow): + (WebCore::RenderOverflow::minXVisualOverflow): + (WebCore::RenderOverflow::maxXVisualOverflow): + (WebCore::RenderOverflow::setminYVisualOverflow): + (WebCore::RenderOverflow::visualOverflowRect): + (WebCore::RenderOverflow::move): + (WebCore::RenderOverflow::addVisualOverflow): + (WebCore::RenderOverflow::setVisualOverflow): + * rendering/RenderReplaced.cpp: + (WebCore::RenderReplaced::shouldPaint): + * rendering/RenderTable.cpp: + (WebCore::RenderTable::layout): + (WebCore::RenderTable::paint): + * rendering/RenderTableCell.cpp: + (WebCore::RenderTableCell::clippedOverflowRectForRepaint): + * rendering/RenderTreeAsText.cpp: + (WebCore::writeLayers): + * rendering/RenderView.cpp: + (WebCore::RenderView::docTop): + +2011-02-02 Steve Lacey <sjl@chromium.org> + + Reviewed by Eric Carlson. + + Implement basic media statistics on media elements. + https://bugs.webkit.org/show_bug.cgi?id=53322 + + * Configurations/FeatureDefines.xcconfig: + * GNUmakefile.am: + * features.pri: + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::webkitAudioBytesDecoded): + (WebCore::HTMLMediaElement::webkitVideoBytesDecoded): + * html/HTMLMediaElement.h: + * html/HTMLMediaElement.idl: + * html/HTMLVideoElement.cpp: + (WebCore::HTMLVideoElement::webkitDecodedFrames): + (WebCore::HTMLVideoElement::webkitDroppedFrames): + * html/HTMLVideoElement.h: + * html/HTMLVideoElement.idl: + * platform/graphics/MediaPlayer.cpp: + (WebCore::MediaPlayer::decodedFrames): + (WebCore::MediaPlayer::droppedFrames): + (WebCore::MediaPlayer::audioBytesDecoded): + (WebCore::MediaPlayer::videoBytesDecoded): + * platform/graphics/MediaPlayer.h: + * platform/graphics/MediaPlayerPrivate.h: + (WebCore::MediaPlayerPrivateInterface::decodedFrames): + (WebCore::MediaPlayerPrivateInterface::droppedFrames): + (WebCore::MediaPlayerPrivateInterface::audioBytesDecoded): + (WebCore::MediaPlayerPrivateInterface::videoBytesDecoded): + +2011-02-02 Luiz Agostini <luiz.agostini@openbossa.org> + + Reviewed by David Hyatt. + + More conversion from right()/bottom() to maxX()/maxY(). + + * page/qt/FrameQt.cpp: + (WebCore::Frame::dragImageForSelection): + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContext::roundToDevicePixels): + +2011-02-02 Kevin Ollivier <kevino@theolliviers.com> + + [wx] Build fixes for wxWebKit. + + * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: + (documentWrite): + * bindings/scripts/CodeGeneratorCPP.pm: + * page/wx/DragControllerWx.cpp: + (WebCore::DragController::dragOperation): + * platform/graphics/wx/FontCustomPlatformData.h: + * platform/graphics/wx/FontPlatformData.h: + (WebCore::FontPlatformData::widthVariant): + * platform/graphics/wx/FontPlatformDataWx.cpp: + (WebCore::FontPlatformData::computeHash): + * platform/graphics/wx/FontWx.cpp: + * platform/graphics/wx/GraphicsContextWx.cpp: + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::strokePath): + * platform/wx/RenderThemeWx.cpp: + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + More right()/bottom() to maxX()/maxY() conversion. + + * page/chromium/FrameChromium.cpp: + (WebCore::Frame::nodeImage): + (WebCore::Frame::dragImageForSelection): + +2011-02-02 Sam Weinig <sam@webkit.org> + + Fix windows clean build. + + * DerivedSources.make: + +2011-02-02 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Chromium] Landing detailed heap snapshots, part 2. + + https://bugs.webkit.org/show_bug.cgi?id=53606 + + Display progress while taking a snapshot, and hints while loading + and parsing. This is needed because taking detailed heap snapshots + takes time. + + * English.lproj/localizedStrings.js: + * inspector/front-end/DetailedHeapshotView.js: + (WebInspector.DetailedHeapshotProfileType.prototype.buttonClicked): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._reset): + (WebInspector.ProfilesPanel.prototype._addProfileHeader): + (WebInspector.ProfilesPanel.prototype.getProfiles): + (WebInspector.ProfilesPanel.prototype.loadHeapSnapshot): + (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot.doParse): + (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot): + (WebInspector.ProfilesPanel.prototype.takeHeapSnapshot): + (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress): + * inspector/front-end/SidebarTreeElement.js: + (WebInspector.SidebarTreeElement.prototype.refreshTitles): + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + More conversion from right()/bottom() to maxX()/maxY(). + + * platform/win/PopupMenuWin.cpp: + (WebCore::PopupMenuWin::calculatePositionAndSize): + (WebCore::PopupMenuWin::paint): + +2011-02-02 David Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + Removal of right()/bottom(). Replace with maxX() and maxY(). Still converting. Haven't removed yet. + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupContainer::layoutAndCalculateWidgetRect): + (WebCore::PopupListBox::scrollToRevealRow): + (WebCore::PopupListBox::layout): + * platform/graphics/FloatRect.h: + * platform/graphics/IntRect.h: + * platform/graphics/cairo/ImageBufferCairo.cpp: + (WebCore::getImageData): + (WebCore::putImageData): + * platform/graphics/chromium/GLES2Canvas.cpp: + (WebCore::GLES2Canvas::drawTexturedRect): + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::verticalScrollbarRect): + (WebCore::LayerRendererChromium::horizontalScrollbarRect): + (WebCore::LayerRendererChromium::setScissorToRect): + (WebCore::LayerRendererChromium::setDrawViewportRect): + * platform/graphics/chromium/LayerTilerChromium.cpp: + (WebCore::LayerTilerChromium::contentRectToTileIndices): + (WebCore::LayerTilerChromium::growLayerToContain): + * platform/graphics/gpu/TilingData.cpp: + (WebCore::TilingData::tileBoundsWithBorder): + (WebCore::TilingData::overlappedTileIndices): + * platform/graphics/qt/ImageBufferQt.cpp: + (WebCore::getImageData): + (WebCore::putImageData): + * platform/graphics/skia/FloatRectSkia.cpp: + (WebCore::FloatRect::operator SkRect): + * platform/graphics/skia/ImageBufferSkia.cpp: + (WebCore::getImageData): + (WebCore::putImageData): + * platform/graphics/skia/IntRectSkia.cpp: + (WebCore::IntRect::operator SkIRect): + (WebCore::IntRect::operator SkRect): + * platform/graphics/skia/PlatformContextSkia.cpp: + (WebCore::PlatformContextSkia::beginLayerClippedToImage): + * platform/graphics/win/GraphicsContextWin.cpp: + (WebCore::GraphicsContextPlatformPrivate::clip): + * platform/graphics/win/IntRectWin.cpp: + (WebCore::IntRect::operator RECT): + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::shapeAndPlaceItem): + * platform/graphics/wince/GraphicsContextWinCE.cpp: + (WebCore::roundRect): + (WebCore::mapRect): + (WebCore::TransparentLayerDC::TransparentLayerDC): + (WebCore::GraphicsContext::drawRect): + (WebCore::GraphicsContext::drawEllipse): + (WebCore::GraphicsContext::strokeArc): + (WebCore::GraphicsContext::clip): + (WebCore::GraphicsContext::clipOut): + (WebCore::GraphicsContext::strokeRect): + * platform/image-decoders/gif/GIFImageDecoder.cpp: + (WebCore::GIFImageDecoder::initFrameBuffer): + * platform/win/PopupMenuWin.cpp: + (WebCore::PopupMenuWin::calculatePositionAndSize): + (WebCore::PopupMenuWin::paint): + * plugins/win/PluginViewWin.cpp: + (WebCore::PluginView::updatePluginWidget): + (WebCore::PluginView::invalidateRect): + * rendering/RenderThemeSafari.cpp: + (WebCore::RenderThemeSafari::paintMenuListButtonGradients): + (WebCore::RenderThemeSafari::paintMenuListButton): + (WebCore::RenderThemeSafari::paintSliderTrack): + * rendering/RenderThemeWin.cpp: + (WebCore::RenderThemeWin::paintInnerSpinButton): + (WebCore::RenderThemeWin::paintMenuListButton): + +2011-02-02 Antti Koivisto <antti@apple.com> + + Reviewed by Maciej Stachowiak. + + Use Vector instead of a linked list for rules in CSSStyleSelector + https://bugs.webkit.org/show_bug.cgi?id=53581 + + - eliminate CSSRuleDataList, replace with Vector<RuleData> + - rename CSSRuleData -> RuleData and CSSRuleSet -> RuleSet + (these are selector internal classes, CSS prefix is better reserved for public ones). + - constify a bit + - shrink the vectors to fit after collecting the rules + + * css/CSSStyleSelector.cpp: + (WebCore::RuleData::RuleData): + (WebCore::RuleData::position): + (WebCore::RuleData::rule): + (WebCore::RuleData::selector): + (WebCore::RuleSet::disableAutoShrinkToFit): + (WebCore::RuleSet::getIDRules): + (WebCore::RuleSet::getClassRules): + (WebCore::RuleSet::getTagRules): + (WebCore::RuleSet::getPseudoRules): + (WebCore::RuleSet::getUniversalRules): + (WebCore::RuleSet::getPageRules): + (WebCore::collectSiblingRulesInDefaultStyle): + (WebCore::CSSStyleSelector::CSSStyleSelector): + (WebCore::loadFullDefaultStyle): + (WebCore::loadSimpleDefaultStyle): + (WebCore::loadViewSourceStyle): + (WebCore::CSSStyleSelector::matchRules): + (WebCore::CSSStyleSelector::matchRulesForList): + (WebCore::operator >): + (WebCore::operator <=): + (WebCore::CSSStyleSelector::sortMatchedRules): + (WebCore::CSSStyleSelector::matchUARules): + (WebCore::RuleSet::RuleSet): + (WebCore::RuleSet::~RuleSet): + (WebCore::RuleSet::addToRuleSet): + (WebCore::RuleSet::addRule): + (WebCore::RuleSet::addPageRule): + (WebCore::RuleSet::addRulesFromSheet): + (WebCore::RuleSet::addStyleRule): + (WebCore::collectIdsAndSiblingRulesFromList): + (WebCore::RuleSet::collectIdsAndSiblingRules): + (WebCore::shrinkMapVectorsToFit): + (WebCore::RuleSet::shrinkToFit): + (WebCore::CSSStyleSelector::matchPageRules): + (WebCore::CSSStyleSelector::matchPageRulesForList): + * css/CSSStyleSelector.h: + (WebCore::CSSStyleSelector::addMatchedRule): + +2011-02-02 Andrey Adaikin <aandrey@google.com> + + Reviewed by Pavel Feldman. + + Web Inspector: Use DIVs instead of TABLE in TextViewer + https://bugs.webkit.org/show_bug.cgi?id=53299 + + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype._createTextViewer): + (WebInspector.SourceFrame.prototype._mouseDown): + * inspector/front-end/TextViewer.js: + (WebInspector.TextViewer): + (WebInspector.TextViewer.prototype.set mimeType): + (WebInspector.TextViewer.prototype.revealLine): + (WebInspector.TextViewer.prototype.addDecoration): + (WebInspector.TextViewer.prototype.removeDecoration): + (WebInspector.TextViewer.prototype.markAndRevealRange): + (WebInspector.TextViewer.prototype.highlightLine): + (WebInspector.TextViewer.prototype.clearLineHighlight): + (WebInspector.TextViewer.prototype.freeCachedElements): + (WebInspector.TextViewer.prototype._handleKeyDown): + (WebInspector.TextViewer.prototype.editLine.finishEditing): + (WebInspector.TextViewer.prototype.editLine): + (WebInspector.TextViewer.prototype.beginUpdates): + (WebInspector.TextViewer.prototype.endUpdates): + (WebInspector.TextViewer.prototype.resize): + (WebInspector.TextViewer.prototype._textChanged): + (WebInspector.TextViewer.prototype._updatePanelOffsets): + (WebInspector.TextViewer.prototype._syncScroll): + (WebInspector.TextViewer.prototype._syncDecorationsForLine): + (WebInspector.TextEditorChunkedPanel): + (WebInspector.TextEditorChunkedPanel.prototype.set syncScrollListener): + (WebInspector.TextEditorChunkedPanel.prototype.get textModel): + (WebInspector.TextEditorChunkedPanel.prototype.addDecoration): + (WebInspector.TextEditorChunkedPanel.prototype.removeDecoration): + (WebInspector.TextEditorChunkedPanel.prototype.revealLine): + (WebInspector.TextEditorChunkedPanel.prototype.makeLineAChunk): + (WebInspector.TextEditorChunkedPanel.prototype.textChanged): + (WebInspector.TextEditorChunkedPanel.prototype.beginUpdates): + (WebInspector.TextEditorChunkedPanel.prototype.endUpdates): + (WebInspector.TextEditorChunkedPanel.prototype.resize): + (WebInspector.TextEditorChunkedPanel.prototype._scroll): + (WebInspector.TextEditorChunkedPanel.prototype._scheduleRepaintAll): + (WebInspector.TextEditorChunkedPanel.prototype._buildChunks): + (WebInspector.TextEditorChunkedPanel.prototype._repaintAll): + (WebInspector.TextEditorChunkedPanel.prototype._chunkNumberForLine): + (WebInspector.TextEditorChunkedPanel.prototype._chunkForLine): + (WebInspector.TextEditorGutterPanel): + (WebInspector.TextEditorGutterPanel.prototype.freeCachedElements): + (WebInspector.TextEditorGutterPanel.prototype._createNewChunk): + (WebInspector.TextEditorGutterPanel.prototype._expandChunks): + (WebInspector.TextEditorGutterChunk): + (WebInspector.TextEditorGutterChunk.prototype.get expanded): + (WebInspector.TextEditorGutterChunk.prototype.set expanded): + (WebInspector.TextEditorGutterChunk.prototype.get height): + (WebInspector.TextEditorGutterChunk.prototype._createRow): + (WebInspector.TextEditorMainPanel): + (WebInspector.TextEditorMainPanel.prototype.set syncDecorationsForLine): + (WebInspector.TextEditorMainPanel.prototype.set mimeType): + (WebInspector.TextEditorMainPanel.prototype.markAndRevealRange): + (WebInspector.TextEditorMainPanel.prototype.highlightLine): + (WebInspector.TextEditorMainPanel.prototype.clearLineHighlight): + (WebInspector.TextEditorMainPanel.prototype.freeCachedElements): + (WebInspector.TextEditorMainPanel.prototype._buildChunks): + (WebInspector.TextEditorMainPanel.prototype._createNewChunk): + (WebInspector.TextEditorMainPanel.prototype._expandChunks): + (WebInspector.TextEditorMainPanel.prototype._highlightDataReady): + (WebInspector.TextEditorMainPanel.prototype._paintLines): + (WebInspector.TextEditorMainPanel.prototype._paintLine): + (WebInspector.TextEditorMainPanel.prototype._releaseLinesHighlight): + (WebInspector.TextEditorMainPanel.prototype._getSelection): + (WebInspector.TextEditorMainPanel.prototype._restoreSelection): + (WebInspector.TextEditorMainPanel.prototype._selectionToPosition): + (WebInspector.TextEditorMainPanel.prototype._positionToSelection): + (WebInspector.TextEditorMainPanel.prototype._appendTextNode): + (WebInspector.TextEditorMainPanel.prototype._handleDomUpdates): + (WebInspector.TextEditorMainChunk): + (WebInspector.TextEditorMainChunk.prototype.addDecoration): + (WebInspector.TextEditorMainChunk.prototype.set expanded): + (WebInspector.TextEditorMainChunk.prototype.get height): + (WebInspector.TextEditorMainChunk.prototype.getExpandedLineRow): + (WebInspector.TextEditorMainChunk.prototype._createRow): + (WebInspector): + * inspector/front-end/textViewer.css: + (.text-editor-lines): + (.text-editor-contents): + (.text-editor-editable): + (.webkit-line-decorations): + (.webkit-line-number): + (.webkit-execution-line.webkit-line-content): + (.diff-container .webkit-added-line.webkit-line-content): + (.diff-container .webkit-removed-line.webkit-line-content): + (.diff-container .webkit-changed-line.webkit-line-content): + (.webkit-highlighted-line.webkit-line-content): + +2011-02-02 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Implement support for cursor updates + https://bugs.webkit.org/show_bug.cgi?id=53421 + + Implement support for cursor updates using the same pattern as cursor + deletes: forward the calls to the IDBObjectStoreBackend::put(). + The put() function's signature needs to be changed to allow for a + "cursor update mode". This makes the signature more clear anyway, + since it replaces the boolean parameter. + + Test: storage/indexeddb/cursor-update.html + + * storage/IDBCursor.idl: + * storage/IDBCursorBackendImpl.cpp: + (WebCore::IDBCursorBackendImpl::key): + (WebCore::IDBCursorBackendImpl::update): + * storage/IDBCursorBackendImpl.h: + * storage/IDBObjectStore.cpp: + (WebCore::IDBObjectStore::add): + (WebCore::IDBObjectStore::put): + * storage/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::put): + (WebCore::IDBObjectStoreBackendImpl::putInternal): + * storage/IDBObjectStoreBackendImpl.h: + * storage/IDBObjectStoreBackendInterface.h: + +2011-02-02 Naoki Takano <takano.naoki@gmail.com> + + Reviewed by Kent Tamura. + + Fix popup menu RTL bug introduced by Changeset 75982. + https://bugs.webkit.org/show_bug.cgi?id=53567 + + PopupMenuChromium::layout() calculates X position according to RTL or not. So Change the X position calculation in layoutAndCalculateWidgetRect(). + + No new tests. However we can check manually with select_dropdown_box_alignment.html, autofill_alignment.html, select_alignment.html, select_dropdown_box_alignment.html, autofill-popup-width-and-item-direction.html + + * platform/chromium/PopupMenuChromium.cpp: + (WebCore::PopupContainer::layoutAndCalculateWidgetRect): Fix calculation of x position, because layout() considers RTL. And change the parameter from both X and Y positions to only Y position. + (WebCore::PopupContainer::showPopup): Change the passing parameter. + (WebCore::PopupContainer::refresh): Change the passing parameter. + * platform/chromium/PopupMenuChromium.h: Change the parameter declaration. + +2011-02-02 Alejandro G. Castro <alex@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Fix dist compilation + https://bugs.webkit.org/show_bug.cgi?id=53579 + + * GNUmakefile.am: Added FontWidthVariant.h to the sources, it was + added in r77153. + +2011-02-02 Dai Mikurube <dmikurube@google.com> + + Reviewed by David Levin. + + Make mime type lookup in File::create(path) thread-safe + https://bugs.webkit.org/show_bug.cgi?id=47700 + + This patch introduces a new function MIMETypeRegistry::getMIMETypeForExtensionThreadSafe(). + The function is to be called as a thread-safe version of getMIMETypeForExtension() when + both FILE_SYSTEM and WORKERS are enabled. + + No tests for this patch. This patch itself doesn't change the behaviors. + For Chromium, it runs in the same way with getMIMETypeForExtensionThreadSafe(). + For the other platforms, it causes compilation error in case of enabled FILE_SYSTEM and WORKERS. + The compilation error would be a signal to implement getMIMETypeForExtensionThreadSafe() in these + platforms. Currently it doesn't happen since FILE_SYSTEM is not available in the other platforms. + + * platform/MIMETypeRegistry.cpp: Defined generic getMIMETypeForExtension() calling getMIMETypeForExtensionThreadSafe() for enabled FILE_SYSTEM and WORKERS. + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/MIMETypeRegistry.h: Declared getMIMETypeForExtensionThreadSafe() which should be implemented for each platform. + * platform/android/TemporaryLinkStubs.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/brew/MIMETypeRegistryBrew.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/chromium/MIMETypeRegistryChromium.cpp: Defined getMIMETypeForExtensionThreadSafe() for the case when FILE_SYSTEM and WORKERS are enabled. + (WebCore::MIMETypeRegistry::getMIMETypeForExtensionThreadSafe): + * platform/efl/MIMETypeRegistryEfl.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/gtk/MIMETypeRegistryGtk.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/haiku/MIMETypeRegistryHaiku.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/mac/MIMETypeRegistryMac.mm: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/qt/MIMETypeRegistryQt.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/win/MIMETypeRegistryWin.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/wince/MIMETypeRegistryWinCE.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + * platform/wx/MimeTypeRegistryWx.cpp: + (WebCore::MIMETypeRegistry::getMIMETypeForExtension): + +2011-02-01 Adam Barth <abarth@webkit.org> + + Reviewed by Alexey Proskuryakov. + + Improve readability of updateWidget by converting bool parameter to an enum + https://bugs.webkit.org/show_bug.cgi?id=53576 + + As requested on webkit-dev. + + * html/HTMLEmbedElement.cpp: + (WebCore::HTMLEmbedElement::updateWidget): + * html/HTMLEmbedElement.h: + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::updateWidget): + * html/HTMLMediaElement.h: + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::updateWidget): + * html/HTMLObjectElement.h: + * html/HTMLPlugInImageElement.cpp: + (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary): + * html/HTMLPlugInImageElement.h: + * page/FrameView.cpp: + (WebCore::FrameView::updateWidget): + +2011-02-01 James Robinson <jamesr@chromium.org> + + Reviewed by Adam Barth. + + [v8] Increase V8 native->js recursion limit to match document.write() recursion limit + https://bugs.webkit.org/show_bug.cgi?id=53566 + + A recursion limit of 22 is necessary to pass fast/dom/Document/document-write-recursion.html. + Other than being large enough for this one test case, this limit is arbitrary. + + * bindings/v8/V8Proxy.h: + +2011-02-01 Adam Barth <abarth@webkit.org> + + Reviewed by Andreas Kling. + + Remove useless comment + https://bugs.webkit.org/show_bug.cgi?id=53549 + + The reason for this parameter is captured in + plugins/netscape-plugin-setwindow-size.html, which is a better place to + capture it than in this comment (which otherwise just re-iterates the + name of the parameter). + + * html/HTMLPlugInImageElement.cpp: + (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary): + +2011-02-01 James Simonsen <simonjam@chromium.org> + + Reviewed by Tony Gentilcore. + + [WebTiming] Remove asserts that verify timestamp order + https://bugs.webkit.org/show_bug.cgi?id=53548 + + Covered by existing tests. + + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::stopLoading): Remove assert. + * page/DOMWindow.cpp: + (WebCore::DOMWindow::dispatchTimedEvent): Ditto. + +2011-02-01 Dimitri Glazkov <dglazkov@chromium.org> + + Add the 'default_targets' enclosure to the flags. + + * WebCore.gyp/WebCore.gyp: Did it. + +2011-02-01 Mihai Parparita <mihaip@chromium.org> + + Reviewed by James Robinson. + + Async event handlers should not fire within a modal dialog + https://bugs.webkit.org/show_bug.cgi?id=53202 + + Asychronous events that use EventQueue would currently fire while a + modal dialog (e.g. window.alert()) was up. Change EventQueue to use a + SuspendableTimer (which automatically gets suspended while dialogs are + up and in other cases where JS execution is not allowed). + + Test: fast/events/scroll-event-during-modal-dialog.html + + * dom/Document.cpp: + (WebCore::Document::Document): + * dom/EventQueue.cpp: + (WebCore::EventQueueTimer::EventQueueTimer): + (WebCore::EventQueueTimer::fired): + (WebCore::EventQueue::EventQueue): + (WebCore::EventQueue::enqueueEvent): + (WebCore::EventQueue::pendingEventTimerFired): + * dom/EventQueue.h: + (WebCore::EventQueue::create): + * page/SuspendableTimer.cpp: + (WebCore::SuspendableTimer::SuspendableTimer): + (WebCore::SuspendableTimer::suspend): + (WebCore::SuspendableTimer::resume): + * page/SuspendableTimer.h: + +2011-02-01 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + Change wrong PLATFORM(WIN) to USE(WININET) + https://bugs.webkit.org/show_bug.cgi?id=53547 + + * platform/network/ResourceHandle.h: + +2011-02-01 Beth Dakin <bdakin@apple.com> + + 32-bit build fix. + + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]): + +2011-01-25 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Gustavo Noronha Silva. + + [GTK] Two tests crash after r76555 + https://bugs.webkit.org/show_bug.cgi?id=53057 + + Instead of creating synchronous ResourceHandles manually, use the ::create factory. + This ensures that ::start() is not called when there is a scheduled failure and also + reduces code duplication. + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): Use the ::create factory method. + +2011-02-01 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Eric Seidel. + + [GTK] GObject DOM bindings do no support the CallWith attribute + https://bugs.webkit.org/show_bug.cgi?id=53331 + + Disable building GObject DOM bindings for IndexedDB because we do not support + the CallWith attribute at this time. + + * bindings/gobject/GNUmakefile.am: Disable building bindings for the IndexedDB API. + +2011-02-01 Darin Adler <darin@apple.com> + + Reviewed by Brady Eidson. + + Fix a couple loose ends from the back/forward tree encode/decode work + https://bugs.webkit.org/show_bug.cgi?id=53537 + + * history/HistoryItem.cpp: + (WebCore::HistoryItem::encodeBackForwardTreeNode): Remove extra copy of + original URL string; no need to encode it twice. + (WebCore::HistoryItem::decodeBackForwardTree): Ditto. + * history/HistoryItem.h: Removed declaration for function that is no + longer defined nor used. + +2011-02-01 Tony Chang <tony@chromium.org> + + Reviewed by Kent Tamura. + + [chromium] disable arm uninitialized variable warnings + https://bugs.webkit.org/show_bug.cgi?id=53553 + + We just got another error: + third_party/WebKit/Source/WebCore/css/CSSPrimitiveValue.cpp:123:error: + 'colorTransparent.unstatic.4879' may be used uninitialized in this + function + + * WebCore.gyp/WebCore.gyp: + +2011-02-01 chris reiss <christopher.reiss@nokia.com> + + Reviewed by Adam Barth. + + Self-replicating code makes Safari hang and eventually crash + https://bugs.webkit.org/show_bug.cgi?id=15123 + + + Here we are replicating the Firefox safeguard against + recursive document.write( ) 's. + + See https://bug197052.bugzilla.mozilla.org/attachment.cgi?id=293907 in bug + https://bugzilla.mozilla.org/show_bug.cgi?id=197052 . Firefox does two things - + a) imposes a recursion limit of 20 on document.write( ) and + b) once that limit is passed, panics all the way the call stack (rather than just returning one level.) + To see why this is necessary, consider the script : + + <script> + var t = document.body.innerHTML; + document.write(t); + </script> + + This will create a tree both broad and deep as the script keeps appending itself to the text. If + we just return one level after the recursion limit is reached, we still allow millions of copies to + duplicate (and execute). + + The recursion is fortunately depth-first, so as soon as we cross this limit, we panic up the callstack + to prevent this situation. (IE apparently does the same thing, with a lower recursion limit.) + + Test: fast/dom/Document/document-write-recursion.html + Test: fast/dom/Document/document-close-iframe-load.html + Test: fast/dom/Document/document-close-nested-iframe-load.html + + + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::write): + * dom/Document.h: + +2011-02-01 Johnny Ding <jnd@chromium.org> + + Reviewed by Darin Adler. + + Don't set user gesture in HTMLAnchorElement's click handler because the click handler can be triggered by untrusted event. + https://bugs.webkit.org/show_bug.cgi?id=53424 + + Test: fast/events/popup-blocked-from-untrusted-click-event-on-anchor.html + + * html/HTMLAnchorElement.cpp: + (WebCore::handleLinkClick): + +2011-02-01 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed Qt buildfix after r77286. + + https://bugs.webkit.org/show_bug.cgi?id=53520 + Remove the physical terminology from IntRect and FloatRect. + + * platform/graphics/TiledBackingStore.cpp: + (WebCore::TiledBackingStore::createTiles): + +2011-02-01 Sam Weinig <sam@webkit.org> + + Fix Mac production builds. + + * DerivedSources.make: + * WebCore.xcodeproj/project.pbxproj: + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollbarThemeMac.h: + +2011-02-01 Darin Adler <darin@apple.com> + + Reviewed by Chris Fleizach. + + REGRESSION: Removing focus from area element causes unwanted scrolling + https://bugs.webkit.org/show_bug.cgi?id=50169 + + Test: fast/images/imagemap-scroll.html + + * html/HTMLAreaElement.cpp: + (WebCore::HTMLAreaElement::setFocus): Added override. Calls the new + RenderImage::areaElementFocusChanged function. + (WebCore::HTMLAreaElement::updateFocusAppearance): Removed the code + here that calls setNeedsLayout on the image's renderer. This was an + attempt to cause repaint of the renderer, but this function does not + need to do that. Also changed this to use the imageElement function + to avoid repeating code. + + * html/HTMLAreaElement.h: Updated for above changes. + + * rendering/RenderImage.cpp: + (WebCore::RenderImage::paint): Updated for name change. + (WebCore::RenderImage::paintAreaElementFocusRing): Renamed this from + paintFocusRing, because it only paints area focus rings, and should + not be confused with paintFocusRing functions in other classes. Also + removed the unused style argument. Removed the code that used an + HTMLCollection to see if the focused area element is for this image + and instead just call imageElement on the area element. + (WebCore::RenderImage::areaElementFocusChanged): Added. Calls repaint. + + * rendering/RenderImage.h: Added a public areaElementFocusChanged + function for HTMLAreaElement to call. Made the paintFocusRing function + private, renamed it to paintAreaElementFocusRing, and removed its + unused style argument. + +2011-02-01 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r77286. + + * platform/graphics/wince/GraphicsContextWinCE.cpp: + (WebCore::TransparentLayerDC::TransparentLayerDC): + +2011-02-01 Chris Fleizach <cfleizach@apple.com> + + Reviewed by Darin Adler. + + AX: AXPosition of AXScrollArea is wrong + https://bugs.webkit.org/show_bug.cgi?id=53511 + + AccessibilityScrollView needed to return a valid documentFrameView() object. + At the same time, the code from document() should be consolidated in + AccessibilityObject, so all objects can use it. + + Test: platform/mac/accessibility/webkit-scrollarea-position.html + + * accessibility/AccessibilityObject.cpp: + (WebCore::AccessibilityObject::document): + * accessibility/AccessibilityObject.h: + * accessibility/AccessibilityScrollView.cpp: + (WebCore::AccessibilityScrollView::accessibilityHitTest): + (WebCore::AccessibilityScrollView::documentFrameView): + * accessibility/AccessibilityScrollView.h: + +2011-02-01 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + getUniform should support SAMPLER_2D or SAMPLER_CUBE + https://bugs.webkit.org/show_bug.cgi?id=52190 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::getUniform): + +2011-02-01 Zhenyao Mo <zmo@google.com> + + Reviewed by Darin Adler. + + Fix the incorrect usage of RetainPtr cases in GraphicsContext3DCG.cpp + https://bugs.webkit.org/show_bug.cgi?id=53531 + + With this fix, running WebGL conformance tests should no longer crash randomly. + + * platform/graphics/cg/GraphicsContext3DCG.cpp: + (WebCore::GraphicsContext3D::getImageData): + +2011-02-01 Dimitri Glazkov <dglazkov@chromium.org> + + One more Chromium build fix after r77286. + + * platform/chromium/ScrollbarThemeChromiumMac.mm: + (WebCore::ScrollbarThemeChromiumMac::paint): Changed to not use topLeft(). + +2011-02-01 Sam Weinig <sam@webkit.org> + + Fix the build for Beth. + + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]): + +2011-02-01 Sam Weinig <sam@webkit.org> + + Reviewed by Beth Dakin. + + Part 2 for <rdar://problem/8492788> + Adopt WKScrollbarPainterController + + Use header detection to define scrollbar painting controller #define. + + * WebCore.exp.in: + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollbarThemeMac.h: + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + +2011-02-01 David Hyatt <hyatt@apple.com> + + Reviewed by Oliver Hunt. + + https://bugs.webkit.org/show_bug.cgi?id=53520 + + Remove the physical terminology from IntRect and FloatRect. + + Now that we have flipped RenderBlocks for vertical-rl and horizontal-bt writing modes, + we need to update our terminology to be more accurate. + + I'm borrowing a page from AppKit here (which also supports flipped NSViews) and + renaming right() and bottom() to maxX() and maxY(). These terms remain accurate + even for flipped rectangles. + + * accessibility/AccessibilityRenderObject.cpp: + (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange): + * accessibility/mac/AccessibilityObjectWrapper.mm: + (-[AccessibilityObjectWrapper position]): + * dom/ClientRect.h: + (WebCore::ClientRect::right): + (WebCore::ClientRect::bottom): + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::convertLogicalToDevice): + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::normalizeRect): + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::drawElementTitle): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::adjustWindowRect): + * page/DragController.cpp: + (WebCore::dragLocForSelectionDrag): + * page/EventHandler.cpp: + (WebCore::EventHandler::sendContextMenuEventForKey): + * page/PrintContext.cpp: + (WebCore::PrintContext::computePageRectsWithPageSizeInternal): + (WebCore::PrintContext::pageNumberForElement): + * page/SpatialNavigation.cpp: + (WebCore::end): + (WebCore::areRectsFullyAligned): + (WebCore::areRectsMoreThanFullScreenApart): + (WebCore::below): + (WebCore::rightOf): + (WebCore::isRectInDirection): + (WebCore::entryAndExitPointsForDirection): + (WebCore::virtualRectForDirection): + * page/WindowFeatures.cpp: + (WebCore::WindowFeatures::WindowFeatures): + * platform/ScrollView.cpp: + (WebCore::ScrollView::wheelEvent): + * platform/Scrollbar.cpp: + (WebCore::Scrollbar::setFrameRect): + * platform/ScrollbarThemeComposite.cpp: + (WebCore::ScrollbarThemeComposite::splitTrack): + * platform/chromium/ScrollbarThemeChromium.cpp: + (WebCore::ScrollbarThemeChromium::paintTickmarks): + * platform/graphics/FloatQuad.h: + (WebCore::FloatQuad::FloatQuad): + * platform/graphics/FloatRect.cpp: + (WebCore::FloatRect::intersects): + (WebCore::FloatRect::contains): + (WebCore::FloatRect::intersect): + (WebCore::FloatRect::unite): + (WebCore::enclosingIntRect): + * platform/graphics/FloatRect.h: + (WebCore::FloatRect::maxX): + (WebCore::FloatRect::maxY): + (WebCore::FloatRect::contains): + * platform/graphics/IntRect.cpp: + (WebCore::IntRect::intersects): + (WebCore::IntRect::contains): + (WebCore::IntRect::intersect): + (WebCore::IntRect::unite): + * platform/graphics/IntRect.h: + (WebCore::IntRect::maxX): + (WebCore::IntRect::maxY): + (WebCore::IntRect::shiftXEdgeTo): + (WebCore::IntRect::shiftMaxXEdgeTo): + (WebCore::IntRect::shiftYEdgeTo): + (WebCore::IntRect::shiftMaxYEdgeTo): + (WebCore::IntRect::contains): + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::advance): + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::drawRect): + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::fillRect): + * platform/graphics/cg/ImageBufferCG.cpp: + (WebCore::getImageData): + (WebCore::putImageData): + * platform/graphics/cg/ImageCG.cpp: + (WebCore::BitmapImage::draw): + * platform/graphics/filters/FilterEffect.cpp: + (WebCore::FilterEffect::copyImageBytes): + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::adjustGlyphsAndAdvances): + * platform/graphics/mac/SimpleFontDataMac.mm: + (WebCore::SimpleFontData::platformBoundsForGlyph): + * platform/graphics/transforms/AffineTransform.cpp: + (WebCore::AffineTransform::mapRect): + * platform/graphics/win/FontCGWin.cpp: + (WebCore::drawGDIGlyphs): + * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp: + (WebCore::MediaPlayerPrivate::paint): + * platform/gtk/RenderThemeGtk.cpp: + (WebCore::centerRectVerticallyInParentInputElement): + * platform/mac/WidgetMac.mm: + (WebCore::Widget::paint): + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::addBoxShadowVisualOverflow): + (WebCore::InlineFlowBox::addTextBoxVisualOverflow): + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::selectionRect): + (WebCore::InlineTextBox::paint): + (WebCore::InlineTextBox::positionForOffset): + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::addOverflowFromChildren): + (WebCore::RenderBlock::paintChildren): + (WebCore::RenderBlock::paintEllipsisBoxes): + (WebCore::RenderBlock::inlineSelectionGaps): + (WebCore::RenderBlock::adjustPointToColumnContents): + (WebCore::RenderBlock::flipForWritingModeIncludingColumns): + (WebCore::RenderBlock::adjustForColumns): + * rendering/RenderBlock.h: + (WebCore::RenderBlock::FloatingObject::right): + (WebCore::RenderBlock::FloatingObject::bottom): + * rendering/RenderBox.cpp: + (WebCore::RenderBox::reflectedRect): + (WebCore::RenderBox::localCaretRect): + (WebCore::RenderBox::addShadowOverflow): + (WebCore::RenderBox::addLayoutOverflow): + (WebCore::RenderBox::visualOverflowRectForPropagation): + (WebCore::RenderBox::layoutOverflowRectForPropagation): + (WebCore::RenderBox::flipForWritingMode): + * rendering/RenderFrameSet.cpp: + (WebCore::RenderFrameSet::paintColumnBorder): + (WebCore::RenderFrameSet::paintRowBorder): + * rendering/RenderInline.cpp: + (WebCore::RenderInline::paintOutlineForLine): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::getRectToExpose): + (WebCore::cornerRect): + (WebCore::RenderLayer::positionOverflowControls): + (WebCore::RenderLayer::overflowBottom): + (WebCore::RenderLayer::overflowRight): + (WebCore::RenderLayer::paintResizer): + * rendering/RenderLineBoxList.cpp: + (WebCore::RenderLineBoxList::rangeIntersectsRect): + (WebCore::RenderLineBoxList::paint): + * rendering/RenderListItem.cpp: + (WebCore::RenderListItem::positionListMarker): + * rendering/RenderListMarker.cpp: + (WebCore::RenderListMarker::paint): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::repaintAfterLayoutIfNeeded): + * rendering/RenderOverflow.h: + (WebCore::RenderOverflow::RenderOverflow): + (WebCore::RenderOverflow::addLayoutOverflow): + (WebCore::RenderOverflow::addVisualOverflow): + (WebCore::RenderOverflow::setLayoutOverflow): + (WebCore::RenderOverflow::setVisualOverflow): + (WebCore::RenderOverflow::resetLayoutOverflow): + * rendering/RenderReplaced.cpp: + (WebCore::RenderReplaced::shouldPaint): + * rendering/RenderScrollbarTheme.cpp: + (WebCore::RenderScrollbarTheme::constrainTrackRectToTrackPieces): + * rendering/RenderTable.cpp: + (WebCore::RenderTable::paint): + * rendering/RenderTableCell.cpp: + (WebCore::RenderTableCell::paint): + * rendering/RenderTableSection.cpp: + (WebCore::RenderTableSection::paintObject): + * rendering/RenderText.cpp: + (WebCore::RenderText::absoluteQuads): + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::forwardEvent): + * rendering/RenderThemeMac.mm: + (WebCore::RenderThemeMac::paintMenuListButtonGradients): + (WebCore::RenderThemeMac::paintMenuListButton): + (WebCore::RenderThemeMac::paintSliderTrack): + * rendering/RenderView.cpp: + (WebCore::RenderView::computeRectForRepaint): + (WebCore::RenderView::docBottom): + (WebCore::RenderView::docRight): + * rendering/RootInlineBox.cpp: + (WebCore::RootInlineBox::paddedLayoutOverflowRect): + * rendering/svg/RenderSVGInlineText.cpp: + (WebCore::RenderSVGInlineText::localCaretRect): + +2011-02-01 Beth Dakin <bdakin@apple.com> + + Reviewed by Sam Weinig. + + Fix for <rdar://problem/8492788> Adopt WKScrollbarPainterController + + Lots of new WebCoreSystemInterface functions to export. + * WebCore.exp.in: + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + + Let the scrollAnimator know when the mouse has + moved anywhere inside the page, and when the mouse + has moved in or out of the window. + * page/EventHandler.cpp: + (WebCore::EventHandler::mouseMoved): + (WebCore::EventHandler::updateMouseEventTargetNode): + + Let the scrollAnimator know when the window has become + active or inactive. + * page/FocusController.cpp: + (WebCore::FocusController::setActive): + + Let the scrollAnimator know when all of these things + are happening. + * page/FrameView.cpp: + (WebCore::FrameView::setContentsSize): + (WebCore::FrameView::didMoveOnscreen): + (WebCore::FrameView::willMoveOffscreen): + (WebCore::FrameView::currentMousePosition): + (WebCore::FrameView::contentsResized): + + New functions called through WebKit2 that allow the + scrollAnimator to know when a live resize starts and ends. + (WebCore::FrameView::willStartLiveResize): + (WebCore::FrameView::willEndLiveResize): + * page/FrameView.h: + + New functions on ScrollAnimator that pass information + to the WKPainterController when we're using one. + * platform/ScrollAnimator.h: + (WebCore::ScrollAnimator::scrollableArea): + (WebCore::ScrollAnimator::contentAreaWillPaint): + (WebCore::ScrollAnimator::mouseEnteredContentArea): + (WebCore::ScrollAnimator::mouseExitedContentArea): + (WebCore::ScrollAnimator::mouseMovedInContentArea): + (WebCore::ScrollAnimator::willStartLiveResize): + (WebCore::ScrollAnimator::contentsResized): + (WebCore::ScrollAnimator::willEndLiveResize): + (WebCore::ScrollAnimator::contentAreaDidShow): + (WebCore::ScrollAnimator::contentAreaDidHide): + (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): + (WebCore::ScrollAnimatorMac::scrollbarPainterDelegate): + (WebCore::ScrollAnimatorMac::setPainterForPainterController): + (WebCore::ScrollAnimatorMac::removePainterFromPainterController): + (WebCore::ScrollAnimatorMac::notityPositionChanged): + (WebCore::ScrollAnimatorMac::contentAreaWillPaint): + (WebCore::ScrollAnimatorMac::mouseEnteredContentArea): + (WebCore::ScrollAnimatorMac::mouseExitedContentArea): + (WebCore::ScrollAnimatorMac::mouseMovedInContentArea): + (WebCore::ScrollAnimatorMac::willStartLiveResize): + (WebCore::ScrollAnimatorMac::contentsResized): + (WebCore::ScrollAnimatorMac::willEndLiveResize): + (WebCore::ScrollAnimatorMac::contentAreaDidShow): + (WebCore::ScrollAnimatorMac::contentAreaDidHide): + + Let the scrollAnimator know when this is happening. + * platform/ScrollView.cpp: + (WebCore::ScrollView::paint): + + New function lets the scrollAnimator get the current + mouse position. + * platform/ScrollView.h: + (WebCore::ScrollView::currentMousePosition): + + New function that returns the scrollAnimator when needed. + * platform/ScrollableArea.h: + (WebCore::ScrollableArea::scrollAnimator): + + Keep track of if we're in a live resize using a new memeber + variable. + * platform/mac/ScrollAnimatorMac.h: + (WebCore::ScrollAnimatorMac::inLiveResize): + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::view): + + New delegates for the WKPainter and WKPainterController + (-[ScrollbarPainterControllerDelegate initWithScrollAnimator:WebCore::]): + (-[ScrollbarPainterControllerDelegate contentAreaRectForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate inLiveResizeForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate mouseLocationInContentAreaForScrollerImpPair:]): + (-[ScrollbarPainterControllerDelegate scrollerImpPair:convertContentPoint:toScrollerImp:]): + (-[ScrollbarPainterControllerDelegate scrollerImpPair:setContentAreaNeedsDisplayInRect:]): + (-[ScrollbarPainterControllerDelegate scrollerImpPair:updateScrollerStyleForNewRecommendedScrollerStyle:]): + (-[ScrollKnobAnimation initWithScrollbarPainter:forScrollAnimator:WebCore::animateKnobAlphaTo:duration:]): + (-[ScrollKnobAnimation setCurrentProgress:]): + (-[ScrollbarPainterDelegate initWithScrollAnimator:WebCore::]): + (-[ScrollbarPainterDelegate convertRectToBacking:]): + (-[ScrollbarPainterDelegate convertRectFromBacking:]): + (-[ScrollbarPainterDelegate layer]): + (-[ScrollbarPainterDelegate setUpAnimation:scrollerPainter:animateKnobAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateKnobAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:animateTrackAlphaTo:duration:]): + (-[ScrollbarPainterDelegate scrollerImp:overlayScrollerStateChangedTo:]): + + Get the WKScrollbarPainterRefs to synch up with the + WKScrollbarPainterControllerRefs when appropriate + * platform/mac/ScrollbarThemeMac.h: + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::registerScrollbar): + (WebCore::ScrollbarThemeMac::unregisterScrollbar): + (WebCore::ScrollbarThemeMac::setNewPainterForScrollbar): + (WebCore::ScrollbarThemeMac::usesOverlayScrollbars): + + Implement ScrollableArea's virtual function contentsSize() for access + through the scrollAnimator. + * rendering/RenderLayer.h: + (WebCore::RenderLayer::contentsSize): + +2011-02-01 Carol Szabo <carol.szabo@nokia.com> + + Reviewed by David Hyatt. + + layoutTestController.counterValueForElementById does not return the correct value + https://bugs.webkit.org/show_bug.cgi?id=53037 + + Test: fast/css/counters/deep-before.html + + * rendering/RenderTreeAsText.cpp: + (WebCore::counterValueForElement): + Modified to use the newly available RenderObject::beforePseudoElement() + and RenderObject::afterPseudoElement() instead of the old imperfect + algorithm to find the before and after pseudo elements. + +2011-02-01 Anton Muhin <antonm@chromium.org> + + Reviewed by Adam Barth. + + Allow access for security origin same as this. + https://bugs.webkit.org/show_bug.cgi?id=53440 + + Hard to test as newly added path currently is never hit. + + * page/SecurityOrigin.cpp: + (WebCore::SecurityOrigin::canAccess): allow access if this == other + +2011-01-31 Oliver Hunt <oliver@apple.com> + + Reviewed by Geoffrey Garen. + + Update JSObject storage for new marking API + https://bugs.webkit.org/show_bug.cgi?id=53467 + + Update WebCore to handle new anonymous slot behaviour. + + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/WorkerScriptController.cpp: + (WebCore::WorkerScriptController::initScript): + * bindings/scripts/CodeGeneratorJS.pm: + +2011-02-01 Xiaomei Ji <xji@chromium.org> + + Reviewed by David Hyatt. + + Fix a text rendering problem when enclosing block is RTL and text runs + are in different directionality. + https://bugs.webkit.org/show_bug.cgi?id=34176 + + The problem happens in the following example scenario (ABC represents + Hebrew characters): + <div dir=rtl>this is a <span><span>test <span>ABC</span></span></span></div> + + The line consists of 3 text runs -- TextRun1 TextRun2 TextRun3. In which + TextRun1 and TextRun2's bidi level are 2, and TextRun3's bidi level is 1. + TextRun2 and TextRun3's least common ancestor is not a sibling of TextRun1. + + The visual bidi run order of the text runs is TextRun3 TextRun1 TextRun2. + + Inside RenderBlock::constructLine(), when RenderBlock::createLineBoxes() + creates InlineFlowBox for TextRun2, it should check an InlineFlowBox for + the run's render object's ancestor (not only its parent) has already + been constructed or has something following it on the line, in which + case, create a new box for TextRun2 instead of sharing the same box with + TextRun3. + + In other words, the following 2 div should render the same results + (ABC represents Hebrew characters). + <div dir=rtl>this is a <span><span>test <span>ABC</span></span></span></div> + <div dir=rtl>this is a <span>Test <span>ABC</span></span></div> + + Test: fast/dom/34176.html + + * rendering/RenderBlockLineLayout.cpp: + (WebCore::parentIsConstructedOrHaveNext): + (WebCore::RenderBlock::createLineBoxes): + +2011-02-01 Abhishek Arya <inferno@chromium.org> + + Reviewed by Dan Bernstein. + + Do not add a node in the document's stylesheet candidate node list if the + node is already removed from document. + https://bugs.webkit.org/show_bug.cgi?id=53441 + + Test: fast/css/stylesheet-candidate-nodes-crash.xhtml + + * dom/Document.cpp: + (WebCore::Document::addStyleSheetCandidateNode): + +2011-02-01 Dave Hyatt <hyatt@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=46422, make printing and pagination work + with vertical text. + + Change printing functions to check writing-mode and properly swap width and height + as needed. + + Fix the setScrollOrigin function so that the origin doesn't cause + scroll spasming during printing (this is only partially successful, but it's better + than it was). + + Rewrite computePageRects to handle both RTL documents properly as well as vertical + text documents properly. + + * WebCore.exp.in: + * page/FrameView.cpp: + (WebCore::FrameView::adjustViewSize): + (WebCore::FrameView::forceLayoutForPagination): + * page/PrintContext.cpp: + (WebCore::PrintContext::computePageRects): + (WebCore::PrintContext::computePageRectsWithPageSizeInternal): + (WebCore::PrintContext::computeAutomaticScaleFactor): + (WebCore::PrintContext::spoolPage): + (WebCore::PrintContext::spoolRect): + * page/PrintContext.h: + * page/mac/WebCoreFrameView.h: + * platform/ScrollView.cpp: + (WebCore::ScrollView::wheelEvent): + * platform/ScrollView.h: + * platform/mac/ScrollViewMac.mm: + (WebCore::ScrollView::platformSetScrollOrigin): + * rendering/RenderView.cpp: + (WebCore::RenderView::layout): + +2011-02-01 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Fix profiles reset to avoid clearing heap profiles in Chromium. + + https://bugs.webkit.org/show_bug.cgi?id=53500 + + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::resetFrontendProfiles): + +2011-02-01 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Chromium] Landing detailed heap snapshots, part 1. + + https://bugs.webkit.org/show_bug.cgi?id=53173 + + Adding code for accessing heap snapshot data and + performing graph calculations. + + * English.lproj/localizedStrings.js: + * inspector/front-end/HeapSnapshot.js: + (WebInspector.HeapSnapshotArraySlice): Helper class to avoid array contents copying. + (WebInspector.HeapSnapshotEdge): Wrapper for accessing graph edge properties. + (WebInspector.HeapSnapshotEdgeIterator): + (WebInspector.HeapSnapshotNode): Wrapper for accessing graph node properties. + (WebInspector.HeapSnapshotNodeIterator): + (WebInspector.HeapSnapshot): Wrapper for the heap snapshot. + (WebInspector.HeapSnapshotFilteredOrderedIterator): + (WebInspector.HeapSnapshotEdgesProvider): + (WebInspector.HeapSnapshotNodesProvider): + (WebInspector.HeapSnapshotPathFinder): + * inspector/front-end/HeapSnapshotView.js: + (WebInspector.HeapSnapshotView.prototype._convertSnapshot): + +2011-02-01 Adam Roben <aroben@apple.com> + + Fix linker warnings in Release_LTCG builds + + * WebCore.vcproj/WebCore.vcproj: Exclude EventNames.cpp and EventTarget.cpp from all + configurations, since they get pulled in via DOMAllInOne.cpp. + +2011-02-01 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: [Chromium] Wrongly labelled context-menu item for links in Web Inspector's side-pane + https://bugs.webkit.org/show_bug.cgi?id=53482 + + * English.lproj/localizedStrings.js: + * inspector/front-end/ElementsPanel.js: + (WebInspector.ElementsPanel.prototype.populateHrefContextMenu): + * inspector/front-end/inspector.js: + (WebInspector.resourceForURL): + (WebInspector.openLinkExternallyLabel): + +2011-02-01 Anton Muhin <antonm@chromium.org> + + Reviewed by Adam Barth. + + Propagate parent document security origin to newly create Document XML response + https://bugs.webkit.org/show_bug.cgi?id=53444 + + Covered by the existing tests. + + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::responseXML): + +2011-02-01 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Rollout r77230 which caused many layout tests + crashes on Chromium Debug bots. + + Async event handlers should not fire within a modal dialog + https://bugs.webkit.org/show_bug.cgi?id=53202 + + * dom/Document.cpp: + (WebCore::Document::Document): + * dom/EventQueue.cpp: + (WebCore::EventQueue::EventQueue): + (WebCore::EventQueue::enqueueEvent): + (WebCore::EventQueue::pendingEventTimerFired): + * dom/EventQueue.h: + +2011-02-01 Zoltan Herczeg <zherczeg@webkit.org> + + Reviewed by Dirk Schulze. + + LightElement changes does not require relayout. + https://bugs.webkit.org/show_bug.cgi?id=53232 + + When an attribute of a LightElement changes, it + send an update message to the lighting filters + to update its corresponding LightSource objects, + and repaint the filters. + + Duplicated 'id' attributes removed from svg-filter-animation.svg. + + Existing dynamic-update tests covers this feature. + + 5x speedup on manual-tests/svg-filter-animation.svg + + * manual-tests/svg-filter-animation.svg: + * platform/graphics/filters/DistantLightSource.h: + * platform/graphics/filters/FEDiffuseLighting.cpp: + (WebCore::FEDiffuseLighting::setLightingColor): + (WebCore::FEDiffuseLighting::setSurfaceScale): + (WebCore::FEDiffuseLighting::setDiffuseConstant): + (WebCore::FEDiffuseLighting::setKernelUnitLengthX): + (WebCore::FEDiffuseLighting::setKernelUnitLengthY): + * platform/graphics/filters/FEDiffuseLighting.h: + * platform/graphics/filters/LightSource.cpp: + (WebCore::PointLightSource::setX): + (WebCore::PointLightSource::setY): + (WebCore::PointLightSource::setZ): + (WebCore::SpotLightSource::setX): + (WebCore::SpotLightSource::setY): + (WebCore::SpotLightSource::setZ): + (WebCore::SpotLightSource::setPointsAtX): + (WebCore::SpotLightSource::setPointsAtY): + (WebCore::SpotLightSource::setPointsAtZ): + (WebCore::SpotLightSource::setSpecularExponent): + (WebCore::SpotLightSource::setLimitingConeAngle): + (WebCore::DistantLightSource::setAzimuth): + (WebCore::DistantLightSource::setElevation): + (WebCore::LightSource::setAzimuth): + (WebCore::LightSource::setElevation): + (WebCore::LightSource::setX): + (WebCore::LightSource::setY): + (WebCore::LightSource::setZ): + (WebCore::LightSource::setPointsAtX): + (WebCore::LightSource::setPointsAtY): + (WebCore::LightSource::setPointsAtZ): + (WebCore::LightSource::setSpecularExponent): + (WebCore::LightSource::setLimitingConeAngle): + * platform/graphics/filters/LightSource.h: + * platform/graphics/filters/PointLightSource.h: + * platform/graphics/filters/SpotLightSource.h: + * rendering/svg/RenderSVGResourceFilter.cpp: + (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute): + (WebCore::SVGFEDiffuseLightingElement::lightElementAttributeChanged): + (WebCore::SVGFEDiffuseLightingElement::build): + (WebCore::SVGFEDiffuseLightingElement::findLightElement): + (WebCore::SVGFEDiffuseLightingElement::findLight): + * svg/SVGFEDiffuseLightingElement.h: + * svg/SVGFELightElement.cpp: + (WebCore::SVGFELightElement::svgAttributeChanged): + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute): + * svg/SVGFilterPrimitiveStandardAttributes.h: + +2011-02-01 Roland Steiner <rolandsteiner@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files + https://bugs.webkit.org/show_bug.cgi?id=53289 + + Moving the nested class DocumentOrderedMap from Document into separate files, + updating code where necessary. + + No new tests. (refactoring) + + * Android.mk: + * CMakeLists.txt: + * GNUMakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * dom/Document.cpp: + (WebCore::Document::getElementById): + (WebCore::Document::getImageMap): + * dom/Document.h: + * dom/DocumentOrderedMap.cpp: Added. + (WebCore::keyMatchesId): + (WebCore::keyMatchesMapName): + (WebCore::keyMatchesLowercasedMapName): + (WebCore::DocumentOrderedMap::clear): + (WebCore::DocumentOrderedMap::add): + (WebCore::DocumentOrderedMap::remove): + (WebCore::DocumentOrderedMap::get): + (WebCore::DocumentOrderedMap::getElementById): + (WebCore::DocumentOrderedMap::getElementByMapName): + (WebCore::DocumentOrderedMap::getElementByLowercasedMapName): + * dom/DocumentOrderedMap.h: Added. + (WebCore::DocumentOrderedMap::contains): + (WebCore::DocumentOrderedMap::containsMultiple): + * dom/DOMAllInOne.cpp: + +2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [Gtk] atk_text_set_caret_offset fails for list items + https://bugs.webkit.org/show_bug.cgi?id=53388 + + Allow using text ranges across list items. + + * accessibility/gtk/AccessibilityObjectAtk.cpp: + (WebCore::AccessibilityObject::allowsTextRanges): Add list items + to the list of accessibility objects supporting text ranges. + +2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] character range extents is off when the end of a wrapped line is included + https://bugs.webkit.org/show_bug.cgi?id=53323 + + Fixed wrong calculation getting the range extents. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_text_get_range_extents): Removed '+1' since the + requested interval shouldn't include the last character. + +2011-02-01 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Caret Offset is one off at the end of wrapped lines + https://bugs.webkit.org/show_bug.cgi?id=53300 + + Consider linebreaks as special cases. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (objectAndOffsetUnignored): In order to avoid getting wrong values + when around linebreaks, we need to workaround this by explicitly + avoiding those '\n' text nodes from affecting the result of + calling to TextIterator:rangeLength(). + +2011-02-01 Roland Steiner <rolandsteiner@chromium.org> + + Unreviewed, rolling out r77229. + http://trac.webkit.org/changeset/77229 + https://bugs.webkit.org/show_bug.cgi?id=53289 + + revert mysterious build breakage + + * Android.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * dom/DOMAllInOne.cpp: + * dom/Document.cpp: + (WebCore::Document::DocumentOrderedMap::clear): + (WebCore::Document::DocumentOrderedMap::add): + (WebCore::Document::DocumentOrderedMap::remove): + (WebCore::Document::DocumentOrderedMap::get): + (WebCore::keyMatchesId): + (WebCore::Document::getElementById): + (WebCore::keyMatchesMapName): + (WebCore::keyMatchesLowercasedMapName): + (WebCore::Document::getImageMap): + * dom/Document.h: + (WebCore::Document::DocumentOrderedMap::contains): + (WebCore::Document::DocumentOrderedMap::containsMultiple): + * dom/DocumentOrderedMap.cpp: Removed. + * dom/DocumentOrderedMap.h: Removed. + +2011-02-01 Mihai Parparita <mihaip@chromium.org> + + Reviewed by James Robinson. + + Async event handlers should not fire within a modal dialog + https://bugs.webkit.org/show_bug.cgi?id=53202 + + Asychronous events that use EventQueue would currently fire while a + modal dialog (e.g. window.alert()) was up. Change EventQueue to use a + SuspendableTimer (which automatically gets suspended while dialogs are + up and in other cases where JS execution is not allowed). + + Test: fast/events/scroll-event-during-modal-dialog.html + + * dom/Document.cpp: + (WebCore::Document::Document): + * dom/EventQueue.cpp: + (WebCore::EventQueueTimer::EventQueueTimer): + (WebCore::EventQueueTimer::fired): + (WebCore::EventQueue::EventQueue): + (WebCore::EventQueue::enqueueEvent): + (WebCore::EventQueue::pendingEventTimerFired): + * dom/EventQueue.h: + (WebCore::EventQueue::create): + +2011-02-01 Roland Steiner <rolandsteiner@chromium.org> + + Reviewed by Dimitri Glazkov. + + Bug 53289 - DOM: Move DocumentOrderedMap from Document into separate files + https://bugs.webkit.org/show_bug.cgi?id=53289 + + Moving the nested class DocumentOrderedMap from Document into separate files, + updating code where necessary. + + No new tests. (refactoring) + + * Android.mk: + * CMakeLists.txt: + * GNUMakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * dom/Document.cpp: + (WebCore::Document::getElementById): + (WebCore::Document::getImageMap): + * dom/Document.h: + * dom/DocumentOrderedMap.cpp: Added. + (WebCore::keyMatchesId): + (WebCore::keyMatchesMapName): + (WebCore::keyMatchesLowercasedMapName): + (WebCore::DocumentOrderedMap::clear): + (WebCore::DocumentOrderedMap::add): + (WebCore::DocumentOrderedMap::remove): + (WebCore::DocumentOrderedMap::get): + (WebCore::DocumentOrderedMap::getElementById): + (WebCore::DocumentOrderedMap::getElementByMapName): + (WebCore::DocumentOrderedMap::getElementByLowercasedMapName): + * dom/DocumentOrderedMap.h: Added. + (WebCore::DocumentOrderedMap::contains): + (WebCore::DocumentOrderedMap::containsMultiple): + * dom/DOMAllInOne.cpp: + +2011-02-01 Naoki Takano <takano.naoki@gmail.com> + + Reviewed by Darin Fisher. + + [Chromium] Autofill should work with HTML5 form elements + https://bugs.webkit.org/show_bug.cgi?id=51809 + http://crbug.com/65654 + + No new tests, because this fix is for Chromium project and hard to test only in WebKit project. + + * html/InputType.h: Insert comment for canSetSuggestedValue(). + * html/TextFieldInputType.cpp: + (WebCore::TextFieldInputType::canSetSuggestedValue): Implemented to return always true for that all text filed inputs can be completed. + * html/TextFieldInputType.h: Declare canSetSuggestedValue(). + * html/TextInputType.cpp: Delete canSetSuggestedValue() not to return true anymore. + * html/TextInputType.h: Delete canSetSuggestedValue() not to return true anymore. + +2011-02-01 Kent Tamura <tkent@chromium.org> + + Reviewed by Dan Bernstein. + + REGRESSION (r65062): Safari loops forever under WebCore::plainTextToMallocAllocatedBuffer() + https://bugs.webkit.org/show_bug.cgi?id=53272 + + * editing/TextIterator.cpp: + (WebCore::TextIterator::handleTextBox): Pass the appropriate renderer to emitText(). + +2011-01-31 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Maciej Stachowiak. + + https://bugs.webkit.org/show_bug.cgi?id=53466 + Move WebKit2 to printing via API methods + + * WebCore.exp.in: Export IntRect::scale(). + +2011-01-31 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Adam Barth. + + Remove obsolete comment after r41871 + https://bugs.webkit.org/show_bug.cgi?id=53406 + + * dom/Document.h: + +2011-01-31 Simon Fraser <simon.fraser@apple.com> + + Fix according to reviewer comments: can just use Color::black now. + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::drawInsetShadow): + (WebCore::ShadowBlur::drawRectShadowWithoutTiling): + +2011-01-31 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Sam Weinig. + + Clean up ShadowBlur + https://bugs.webkit.org/show_bug.cgi?id=53472 + + Some minor ShadowBlur cleanup. + + * platform/graphics/ShadowBlur.h: + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::ShadowBlur): Use m_blurRadius rather than the radius + paramter. + (WebCore::ShadowBlur::adjustBlurRadius): Renamed from adjustBlurDistance. + (WebCore::ShadowBlur::calculateLayerBoundingRect): Rename layerFloatRect to + layerRect. Make frameSize a float. + (WebCore::ShadowBlur::beginShadowLayer): This now takes a precomputed + layerRect rather than calling calculateLayerBoundingRect() to compute + it itself, since we were calling calculateLayerBoundingRect() twice. + (WebCore::ShadowBlur::drawRectShadow): Optimize to call calculateLayerBoundingRect() + only once. The shadowRect variable was unused, so two return paths could be + collapsed into one. + (WebCore::ShadowBlur::drawInsetShadow): Call calculateLayerBoundingRect() before + beginShadowLayer() now. + (WebCore::ShadowBlur::drawRectShadowWithoutTiling): The layerRect gets passed in. + We always used alpha=1, so no need to pass that in. + (WebCore::ShadowBlur::drawRectShadowWithTiling): We always used alpha=1, so no need to + pass that in. Move shadowRect down to first use. + ShadowBlur::clipBounds() was unused. + +2011-01-31 No'am Rosenthal <noam.rosenthal@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] QWebElements example from QtWebKit Bridge documentation does not work at all + https://bugs.webkit.org/show_bug.cgi?id=46748 + + This problem disappears when we register QWebElement using qRegisterMetaType, which we now do in QtInstance. + Added a regression test to tst_QWebFrame. + + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtInstance::QtInstance): + +2011-01-27 MORITA Hajime <morrita@google.com> + + Reviewed by Dimitri Glazkov. + + Convert <progress> shadow DOM to a DOM-based shadow. + https://bugs.webkit.org/show_bug.cgi?id=50660 + + * Removed RenderProgress::m_valuePart, moved the shadow node + to the shadow root of HTMLProgressElement. + * Removed hard-coded pseudo ID for -webkit-progress-bar-value. + ProgressBarValueElement is defined only for overriding + shadowPseudoId(). + + No new tests. No behavioral change. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): + (WebCore::nameToPseudoTypeMap): + (WebCore::CSSSelector::extractPseudoType): + * css/CSSSelector.h: + * html/HTMLProgressElement.cpp: + (WebCore::ProgressBarValueElement::ProgressBarValueElement): + (WebCore::ProgressBarValueElement::shadowPseudoId): + (WebCore::ProgressBarValueElement::create): + (WebCore::ProgressBarValueElement::detach): + (WebCore::HTMLProgressElement::parseMappedAttribute): + (WebCore::HTMLProgressElement::attach): + (WebCore::HTMLProgressElement::valuePart): + (WebCore::HTMLProgressElement::didElementStateChange): + (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded): + * html/HTMLProgressElement.h: + * rendering/RenderProgress.cpp: + (WebCore::RenderProgress::~RenderProgress): + (WebCore::RenderProgress::updateFromElement): + (WebCore::RenderProgress::layoutParts): + (WebCore::RenderProgress::shouldHaveParts): + (WebCore::RenderProgress::valuePart): + * rendering/RenderProgress.h: + * rendering/style/RenderStyleConstants.h: + +2011-01-31 Charlie Reis <creis@chromium.org> + + Reviewed by Mihai Parparita. + + Add sanity check to help diagnose bug 52819 + https://bugs.webkit.org/show_bug.cgi?id=53402 + + Crash early if the children of fromItem look invalid. + + * loader/HistoryController.cpp: + +2011-01-31 Kalle Vahlman <kalle.vahlman@movial.com> + + Reviewed by Andreas Kling. + + [Qt] canvas.drawImage(HTMLVideoElement) doesn't work with Qt Multimedia backend + https://bugs.webkit.org/show_bug.cgi?id=53325 + + Reimplement paintCurrentFrameInContext() rather than delegate the + rendering to paint() to make sure we really do get the video frame + content into the GraphicsContext, regardless of accelerated + compositing and the video scene state. + + * platform/graphics/qt/MediaPlayerPrivateQt.cpp: + (WebCore::MediaPlayerPrivateQt::paintCurrentFrameInContext): + * platform/graphics/qt/MediaPlayerPrivateQt.h: + +2011-01-31 Emil A Eklund <eae@chromium.org> + + Reviewed by Darin Adler. + + Setting "selected" attribute to false should have no effect in single line <select> + https://bugs.webkit.org/show_bug.cgi?id=52436 + + Change SelectElement::setSelectedIndex to select the first selectable + option when the select state of all options is set to false as required + by the HTML5 specification. + + Test: fast/dom/HTMLSelectElement/selected-false.html + + * dom/SelectElement.cpp: + (WebCore::SelectElement::setSelectedIndex): + +2011-01-31 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: Console source references need a left-margin + https://bugs.webkit.org/show_bug.cgi?id=53308 + + * inspector/front-end/inspector.css: + (.console-message-url): Added a 4px margin on the left. + +2011-01-31 Carol Szabo <carol.szabo@nokia.com> + + Reviewed by David Hyatt. + + Code Changes only. + + It is needlessly expensive to find the generating node from an anonymous renderer of a pseudoelement. + https://bugs.webkit.org/show_bug.cgi?id=53024 + + No new tests. No change in functionality + + * rendering/RenderObject.h: + (WebCore::RenderObject::before): + (WebCore::RenderObject::after): + (WebCore::RenderObject::generatingNode): + Added new accessors for the use of the CSS 2.1 counters code + (mainlyly) + * rendering/RenderObjectChildList.cpp: + (WebCore::beforeAfterContainer): + (WebCore::RenderObjectChildList::invalidateCounters): + (WebCore::RenderObjectChildList::before): + (WebCore::RenderObjectChildList::after): + Refactored the code to take advantage of the new accessors. + (WebCore::RenderObjectChildList::updateBeforeAfterContent): + Changed to store the generating node in the :before and :after + renderers. + * rendering/RenderObjectChildList.h: + +2011-01-31 Krithigassree Sambamurthy <krithigassree.sambamurthy@nokia.com> + + Reviewed by David Hyatt. + + Add background-clip to background shorthand + https://bugs.webkit.org/show_bug.cgi?id=52080 + + Added background-clip to background-shorthand. Also made changes to + include webkitMaskClip to the mask shorthand to keep both in sync. + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseValue): + (WebCore::CSSParser::parseFillShorthand): + +2011-01-31 Darin Adler <darin@apple.com> + + Reviewed by Adele Peterson. + + WKView should support scrollPageDown:, scrollPageUp:, scrollToBeg and other similar selectors + https://bugs.webkit.org/show_bug.cgi?id=53460 + + * editing/EditorCommand.cpp: + (WebCore::executeScrollPageBackward): Added. + (WebCore::executeScrollPageForward): Added. + (WebCore::executeScrollToBeginningOfDocument): Added. + (WebCore::executeScrollToEndOfDocument): Added. + (WebCore::createCommandMap): Added the four commands above to the map. + +2011-01-31 Dan Bernstein <mitz@apple.com> + + Reviewed by Adele Peterson. + + Inter-ideograph justification should apply to hiragana and katakana as well + https://bugs.webkit.org/show_bug.cgi?id=53464 + + Changed the test for expansion opportunities from isCJKIdeograph() to isCJKIdeographOrSymbol(). + + * platform/graphics/Font.cpp: + (WebCore::Font::expansionOpportunityCount): + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::advance): + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::adjustGlyphsAndAdvances): + +2011-01-31 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by James Robinson. + + REGRESSION(r76951): Appearance of media controls changed slightly on Qt/Chromium ports + https://bugs.webkit.org/show_bug.cgi?id=53314 + + Fixes media/controls-strict.html on Chromium. + + * css/mediaControlsChromium.css: + (audio::-webkit-media-controls-timeline, video::-webkit-media-controls-timeline): + Added proper box-sizing to avoid differences between strict/quirks mode. + +2011-01-31 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Validation message bubble shouldn't inherit text-security style + https://bugs.webkit.org/show_bug.cgi?id=53457 + + No new tests because the validation message feature depends on timers + and is enabled only in Chromium port. + + * css/html.css: + (::-webkit-validation-bubble): Reset -webkit-text-security. + +2011-01-31 Michael Saboff <msaboff@apple.com> + + Reviewed by Geoffrey Garen. + + Potentially Unsafe HashSet of RuntimeObject* in RootObject definition + https://bugs.webkit.org/show_bug.cgi?id=53271 + + Reapplying this patch again. + The removal of this patch in <http://trac.webkit.org/changeset/77125> + as part of https://bugs.webkit.org/show_bug.cgi?id=53418, + removed the both the first (failing) patch (r76893) and this fixed + patch (r76969). This patch includes slight changes necessitated by + r77151. + + Reapplying this patch with the change that the second ASSERT in + RootObject::removeRuntimeObject was changed to use + .uncheckedGet() instead of the failing .get(). The object in question + could be in the process of being GC'ed. The get() call will not return + such an object while the uncheckedGet() call will return the (unsafe) + object. This is the behavior we want. + + Precautionary change. + Changed RootObject to use WeakGCMap instead of HashSet. + Found will looking for another issue, but can't produce a test case + that is problematic. THerefore there aren't any new tests. + + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + (JSC::Bindings::RootObject::addRuntimeObject): + (JSC::Bindings::RootObject::removeRuntimeObject): + * bridge/runtime_root.h: + +2011-01-31 Andreas Kling <kling@webkit.org> + + Unbreak Qt build after r77151. + + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtInstance::removeCachedMethod): + (JSC::Bindings::QtInstance::markAggregate): + +2011-01-31 takano takumi <takano@apple.com> + + Reviewed by Dave Hyatt. + + Implement text-combine rendering code + https://bugs.webkit.org/show_bug.cgi?id=50621 + + Test: fast/text/international/text-combine-image-test.html + + * Android.mk: Added RenderCombineText.cpp/h + * CMakeLists.txt: Added RenderCombineText.cpp/h + * GNUmakefile.am: Added RenderCombineText.cpp/h + * WebCore.exp.in: + * WebCore.gypi: Added RenderCombineText.cpp/h + * WebCore.pro: Added RenderCombineText.cpp/h + * WebCore.vcproj/WebCore.vcproj: Added RenderCombineText.cpp/h + * WebCore.xcodeproj/project.pbxproj: Added RenderCombineText.cpp/h + * css/CSSFontFaceSource.cpp: + (WebCore::CSSFontFaceSource::getFontData): + - Added fontDescription.widthVariant to SimpleFontData creation. + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): + - Changed to set "Unique" flag to RenderStyle in case of TextCombine. + * dom/Text.cpp: + (WebCore::Text::createRenderer): + - Changed to create RenderCombineText in case of TextCombine. + * loader/cache/CachedFont.cpp: + (WebCore::CachedFont::platformDataFromCustomData): + - Added FontWidthVariant as an argument for FontPlatformData creation. + * loader/cache/CachedFont.h: + - Ditto. + * platform/graphics/Font.h: + (WebCore::Font::widthVariant): + - The accessor to FontWidthVariant member variable. + * platform/graphics/FontCache.cpp: + - Made cache to incorporate FontWidthVariant value. + (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): + (WebCore::FontPlatformDataCacheKey::operator==): + (WebCore::computeHash): + (WebCore::FontCache::getCachedFontPlatformData): + * platform/graphics/FontDescription.h: + - Add a member variable that holds a width variant - none, half-width, third-width, and quarter-width. + (WebCore::FontDescription::FontDescription): + (WebCore::FontDescription::widthVariant): + (WebCore::FontDescription::setWidthVariant): + (WebCore::FontDescription::operator==): + * platform/graphics/FontWidthVariant.h: Added. + * platform/graphics/cairo/FontCustomPlatformData.h: + - Changed to carry FontWidthVariant value. + * platform/graphics/cocoa/FontPlatformData.h: + - Changed to carry FontWidthVariant value. + (WebCore::FontPlatformData::FontPlatformData): + (WebCore::FontPlatformData::widthVariant): + (WebCore::FontPlatformData::hash): + (WebCore::FontPlatformData::operator==): + * platform/graphics/cocoa/FontPlatformDataCocoa.mm: + (WebCore::FontPlatformData::FontPlatformData): + - Changed to carry FontWidthVariant value. + (WebCore::FontPlatformData::operator=): + - Ditto. + (WebCore::mapFontWidthVariantToCTFeatureSelector): + - A function to map a FontWidthVariant value to a CoreText's text spacing feature selector. + (WebCore::FontPlatformData::ctFont): + - Changed to create CTFont with text spacing variant based on FontWidthVariant. + * platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Changed to carry FontWidthVariant value. + * platform/graphics/haiku/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Changed to carry FontWidthVariant value. + * platform/graphics/haiku/FontCustomPlatformData.h: + * platform/graphics/mac/FontCacheMac.mm: + (WebCore::FontCache::createFontPlatformData): + - Changed to carry FontWidthVariant value. + * platform/graphics/mac/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Changed to carry FontWidthVariant value. + * platform/graphics/mac/FontCustomPlatformData.h: + - Ditto. + * platform/graphics/mac/GlyphPageTreeNodeMac.cpp: + (WebCore::shouldUseCoreText): + - Changed to skip CT path when width variant is specified. + * platform/graphics/pango/FontCustomPlatformDataPango.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/qt/FontCustomPlatformData.h: + - Ditto. + * platform/graphics/qt/FontCustomPlatformDataQt.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/skia/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/skia/FontCustomPlatformData.h: + - Ditto. + * platform/graphics/win/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/win/FontCustomPlatformData.h: + - Ditto. + * platform/graphics/win/FontCustomPlatformDataCairo.cpp: + - Ditto. + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/win/FontCustomPlatformDataCairo.h: + - Ditto. + * platform/graphics/wince/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/wince/FontCustomPlatformData.h: + - Ditto. + * platform/graphics/wx/FontCustomPlatformData.cpp: + (WebCore::FontCustomPlatformData::fontPlatformData): + - Ditto. + * platform/graphics/wx/FontCustomPlatformData.h: + - Ditto. + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::paint): + - In case of RenderCombineText, we don't rotate text even in vertical writing. Also, we render original text + instead of text returned from text(). + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): + - Made to call RenderCombinedText's prepareTextCombine() here. + * rendering/RenderBlockLineLayout.cpp: + (WebCore::textWidth): + - Made to always use the render object's width() in case of TextCombine. + (WebCore::RenderBlock::findNextLineBreak): + - Made to call RenderCombinedText's prepareTextCombine() here. + * rendering/RenderCombineText.cpp: Added. A subclass of RenderText. + (WebCore::RenderCombineText::RenderCombineText): + (WebCore::RenderCombineText::styleDidChange): + - Clear the flag that indicated the font has been prepared for combining. The font will be reinitialized in + the next call of RenderBlock::findNextLineBreak(). + (WebCore::RenderCombineText::setTextInternal): + - Ditto. + (WebCore::RenderCombineText::width): + - Returns 1-em width in case of font combine. + (WebCore::RenderCombineText::adjustTextOrigin): + - Adjust drawing origin point in case of font combine. + (WebCore::RenderCombineText::charactersToRender): + - Return original text instead of current text in case of font combine. + (WebCore::RenderCombineText::combineText): + - This function tries to pack passed text with; 1) the current font as is, 2) the font created + from the descriptor with half-width variant specified, 3) the font with third-width variant, 4) the font + with quarter-width variant. + - If a suitable font successfully found, replace the current font with the new font. If no appropriate font found, + we give up text-combine as the CSS spec describes. + - If a new font found, we replace the text with 0xFFFC. This is needed for a combined text block to be able to + behave like a single character against text decorations. + * rendering/RenderCombineText.h: Added. + (WebCore::RenderCombineText::isCombined): + (WebCore::RenderCombineText::combinedTextWidth): + - Returns 1-em width in case of font combine. + (WebCore::RenderCombineText::renderName): + (WebCore::toRenderCombineText): + * rendering/RenderText.cpp: + (WebCore::RenderText::widthFromCache): + - Made to call RenderCombineText's combinedTextWidth when the text is combined. + * rendering/RenderingAllInOne.cpp: Added RenderCombineText.cpp + * rendering/style/RenderStyle.h: + (WebCore::InheritedFlags::hasTextCombine): + - Added for a quick test of TextCombine. + +2011-01-31 Oliver Hunt <oliver@apple.com> + + Convert markstack to a slot visitor API + https://bugs.webkit.org/show_bug.cgi?id=53219 + + rolling r77098, r77099, r77100, r77109, and + r77111 back in, along with a few more Qt fix attempts. + + * ForwardingHeaders/runtime/WriteBarrier.h: Added. + * WebCore.exp.in: + * bindings/js/DOMWrapperWorld.h: + (WebCore::DOMWrapperWorld::globalData): + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::markDOMNodesForDocument): + (WebCore::markDOMObjectWrapper): + (WebCore::markDOMNodeWrapper): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::markChildren): + (WebCore::JSDOMGlobalObject::setInjectedScript): + (WebCore::JSDOMGlobalObject::injectedScript): + * bindings/js/JSDOMGlobalObject.h: + (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + (WebCore::DialogHandler::dialogCreated): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::JSDOMWindowShell): + (WebCore::JSDOMWindowShell::setWindow): + (WebCore::JSDOMWindowShell::markChildren): + (WebCore::JSDOMWindowShell::unwrappedObject): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::window): + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/JSDeviceMotionEventCustom.cpp: + (WebCore::createAccelerationObject): + (WebCore::createRotationRateObject): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::jsFunction): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::setAll): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + (WebCore::JSJavaScriptCallFrame::scopeType): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::markAggregate): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + * bindings/js/JSNodeFilterCustom.cpp: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::restore): + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/js/SerializedScriptValue.cpp: + (WebCore::CloneDeserializer::putProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/qt/qt_class.cpp: + (JSC::Bindings::QtClass::fallbackObject): + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtInstance::QtInstance): + (JSC::Bindings::QtInstance::removeCachedMethod): + (JSC::Bindings::QtInstance::markAggregate): + * bridge/qt/qt_instance.h: + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): + (JSC::Bindings::QtRuntimeMetaMethod::markChildren): + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + * bridge/qt/qt_runtime.h: + * dom/Document.h: + +2011-01-31 Dan Winship <danw@gnome.org> + + Reviewed by Gustavo Noronha Silva. + + wss (websockets ssl) support for gtk via new gio TLS support + https://bugs.webkit.org/show_bug.cgi?id=50344 + + Update to use GPollableOutputStream and GTlsConnection to + implement wss URLs + + * platform/network/soup/SocketStreamHandle.h: + * platform/network/soup/SocketStreamHandleSoup.cpp: + (WebCore::SocketStreamHandle::SocketStreamHandle): + (WebCore::SocketStreamHandle::connected): + (WebCore::SocketStreamHandle::platformSend): + (WebCore::SocketStreamHandle::beginWaitingForSocketWritability): + (WebCore::writeReadyCallback): + +2011-01-31 Abhishek Arya <inferno@chromium.org> + + Reviewed by Dimitri Glazkov. + + Check the textarea node still exists in document before casting + it to HTMLTextAreaElement. + https://bugs.webkit.org/show_bug.cgi?id=53429 + + Test: fast/forms/textarea-node-removed-from-document-crash.html + + * rendering/RenderTextControlMultiLine.cpp: + (WebCore::RenderTextControlMultiLine::~RenderTextControlMultiLine): + +2011-01-27 Abhishek Arya <inferno@chromium.org> + + Reviewed by Dave Hyatt. + + If beforeChild is wrapped in an anonymous table section, we need to + go the parent to find it and use it before adding childs to table. + https://bugs.webkit.org/show_bug.cgi?id=53276 + + We need to make sure that beforeChild's parent is "this" before calling + RenderBox::addChild. The previous condition in while is too restrictive + and fails to calculate the right beforeChild value when its display + style is table caption. + Test: fast/table/before-child-non-table-section-add-table-crash.html + + * rendering/RenderTable.cpp: + (WebCore::RenderTable::addChild): + +2011-01-31 Shane Stephens <shanestephens@google.com> + + Reviewed by Simon Fraser. + + AffineTransform::translateRight incorrectly computes a translateLeft. + https://bugs.webkit.org/show_bug.cgi?id=52551 + + Removed translateRight and converted all uses to perform standard + matrix multiplication. + + No new tests because patch doesn't modify functionality. + + * platform/graphics/transforms/AffineTransform.cpp: + * platform/graphics/transforms/AffineTransform.h: + (WebCore::AffineTransform::translation): + * rendering/svg/RenderSVGResourceMarker.cpp: + (WebCore::RenderSVGResourceMarker::localToParentTransform): + * rendering/svg/RenderSVGRoot.cpp: + (WebCore::RenderSVGRoot::localToRepaintContainerTransform): + (WebCore::RenderSVGRoot::localToParentTransform): + * rendering/svg/RenderSVGViewportContainer.cpp: + (WebCore::RenderSVGViewportContainer::localToParentTransform): + * rendering/svg/SVGTextLayoutEngine.cpp: + (WebCore::SVGTextLayoutEngine::finalizeTransformMatrices): + +2011-01-31 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [Gtk] atk_text_set_caret_offset returns True even when it is unsuccessful + https://bugs.webkit.org/show_bug.cgi?id=53389 + + Return FALSE when not able to set the caret at the specified offset. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (webkit_accessible_text_set_caret_offset): Return FALSE when the + range created is NULL and adjust offset to account for list markers. + +2011-01-28 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: copy HAR to clipboard instead of saving blob on export. + https://bugs.webkit.org/show_bug.cgi?id=53328 + + * inspector/front-end/NetworkPanel.js: + (WebInspector.NetworkPanel.prototype._exportAll): + (WebInspector.NetworkPanel.prototype._exportResource): + +2011-01-30 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Timothy Hatcher. + + Web Inspector: speed up network panel rendering. + https://bugs.webkit.org/show_bug.cgi?id=53397 + + * inspector/front-end/DataGrid.js: + (WebInspector.DataGrid.prototype.get scrollContainer): + * inspector/front-end/NetworkPanel.js: + (WebInspector.NetworkPanel.prototype.elementsToRestoreScrollPositionsFor): + (WebInspector.NetworkPanel.prototype._positionSummaryBar): + (WebInspector.NetworkPanel.prototype._createTable): + (WebInspector.NetworkPanel.prototype._exportResource): + (WebInspector.NetworkPanel.prototype._onScroll): + * inspector/front-end/networkPanel.css: + (.network-sidebar .data-grid.small tr.offscreen): + (.network-sidebar .data-grid tr.offscreen): + (.network-sidebar .data-grid tr.offscreen td): + +2011-01-31 Peter Varga <pvarga@webkit.org> + + Reviewed by Andreas Kling. + + Remove wrec from WebCore + https://bugs.webkit.org/show_bug.cgi?id=53298 + + No new tests needed. + + * Android.jscbindings.mk: + * ForwardingHeaders/wrec/WREC.h: Removed. + * WebCore.vcproj/WebCore.vcproj: + * WebCore.vcproj/copyForwardingHeaders.cmd: + +2011-01-31 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76969. + http://trac.webkit.org/changeset/76969 + https://bugs.webkit.org/show_bug.cgi?id=53418 + + "It is causing crashes in GTK+ and Leopard bots" (Requested by + alexg__ on #webkit). + + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + (JSC::Bindings::RootObject::addRuntimeObject): + (JSC::Bindings::RootObject::removeRuntimeObject): + * bridge/runtime_root.h: + +2011-01-31 Antti Koivisto <antti@apple.com> + + Not reviewed. + + Spelling. + + * css/CSSSelectorList.h: + (WebCore::CSSSelectorList::next): + +2011-01-31 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Fix Chromium compilation on Linux. + + * platform/graphics/ShadowBlur.cpp: added PLATFORM(CHROMIUM) guard + * platform/graphics/ShadowBlur.h: added missing ColorSpace.h header include + +2011-01-31 Yury Semikhatsky <yurys@chromium.org> + + Unreviewed. Fix Chromium compilation on Mac broken by r77101. + + * WebCore.gypi: add ShadowBlur.{h,cpp} to the gypi file. + +2011-01-31 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Yury Semikhatsky. + + WebInspector: Change button title from "Clear CPU profiles" to "Clear all profiles". + + https://bugs.webkit.org/show_bug.cgi?id=53309 + + * English.lproj/localizedStrings.js: + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel): + +2011-01-31 Carlos Garcia Campos <cgarcia@igalia.com> + + Unreviewed, fix the build with current GTK+ 3.x. + + * plugins/gtk/gtk2xtbin.c: + * plugins/gtk/gtk2xtbin.h: + +2011-01-30 Kenichi Ishibashi <bashi@google.com> + + Reviewed by Kent Tamura. + + Dangling form associated elements should not be registered on the document + https://bugs.webkit.org/show_bug.cgi?id=53223 + + Adds insertedIntoDocument() and remvoedFromDocument() to + FormAssociatedElement class to register the element on the document + if and only if it actually inserted into (removed from) the document. + + Test: fast/forms/dangling-form-element-crash.html + + * html/FormAssociatedElement.cpp: + (WebCore::FormAssociatedElement::insertedIntoDocument): Added. + (WebCore::FormAssociatedElement::removedFromDocument): Ditto. + (WebCore::FormAssociatedElement::insertedIntoTree): Don't register + the element to a document. + (WebCore::FormAssociatedElement::removedFromTree): Don't unregister + the element from a document. + * html/FormAssociatedElement.h: + * html/HTMLFormControlElement.cpp: + (WebCore::HTMLFormControlElement::insertedIntoDocument): Added. + (WebCore::HTMLFormControlElement::removedFromDocument): Ditto. + * html/HTMLFormControlElement.h: + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::insertedIntoDocument): Calls + FormAssociatedElement::insertedIntoDocument(). + (WebCore::HTMLObjectElement::removedFromDocument): Calls + FormAssociatedElement::removedFromDocument(). + +2011-01-30 Csaba Osztrogonác <ossy@webkit.org> + + Unreviewed, rolling out r77098, r77099, r77100, r77109, and + r77111. + http://trac.webkit.org/changeset/77098 + http://trac.webkit.org/changeset/77099 + http://trac.webkit.org/changeset/77100 + http://trac.webkit.org/changeset/77109 + http://trac.webkit.org/changeset/77111 + https://bugs.webkit.org/show_bug.cgi?id=53219 + + Qt build is broken + + * ForwardingHeaders/runtime/WriteBarrier.h: Removed. + * WebCore.exp.in: + * bindings/js/DOMWrapperWorld.h: + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::markDOMNodesForDocument): + (WebCore::markDOMObjectWrapper): + (WebCore::markDOMNodeWrapper): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::markChildren): + (WebCore::JSDOMGlobalObject::setInjectedScript): + (WebCore::JSDOMGlobalObject::injectedScript): + * bindings/js/JSDOMGlobalObject.h: + (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + (WebCore::DialogHandler::dialogCreated): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::JSDOMWindowShell): + (WebCore::JSDOMWindowShell::setWindow): + (WebCore::JSDOMWindowShell::markChildren): + (WebCore::JSDOMWindowShell::unwrappedObject): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::window): + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/JSDeviceMotionEventCustom.cpp: + (WebCore::createAccelerationObject): + (WebCore::createRotationRateObject): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::jsFunction): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::setAll): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + (WebCore::JSJavaScriptCallFrame::scopeType): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::markAggregate): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + * bindings/js/JSNodeFilterCustom.cpp: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::restore): + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/js/SerializedScriptValue.cpp: + (WebCore::CloneDeserializer::putProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtInstance::QtInstance): + (JSC::Bindings::QtInstance::removeCachedMethod): + (JSC::Bindings::QtInstance::markAggregate): + * bridge/qt/qt_instance.h: + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): + (JSC::Bindings::QtRuntimeMetaMethod::markChildren): + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + * bridge/qt/qt_runtime.h: + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + * bridge/runtime_root.h: + * dom/Document.h: + +2011-01-30 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77107. + http://trac.webkit.org/changeset/77107 + https://bugs.webkit.org/show_bug.cgi?id=53412 + + Caused 5 new form-related test crashes (Requested by smfr on + #webkit). + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): + (WebCore::nameToPseudoTypeMap): + (WebCore::CSSSelector::extractPseudoType): + * css/CSSSelector.h: + * html/HTMLProgressElement.cpp: + (WebCore::HTMLProgressElement::parseMappedAttribute): + (WebCore::HTMLProgressElement::attach): + * html/HTMLProgressElement.h: + * rendering/RenderProgress.cpp: + (WebCore::RenderProgress::~RenderProgress): + (WebCore::RenderProgress::updateFromElement): + (WebCore::RenderProgress::layoutParts): + (WebCore::RenderProgress::shouldHaveParts): + * rendering/RenderProgress.h: + * rendering/style/RenderStyleConstants.h: + +2011-01-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Sam Weinig. + + Enhance ShadowBlur to render inset box shadows + https://bugs.webkit.org/show_bug.cgi?id=51567 + + Use ShadowBlur for inset box-shadows with CG. It + currently lacks a tiled version, but is still much + faster than CG shadows. + + Test: fast/box-shadow/inset-box-shadow-radius.html + + * platform/graphics/ShadowBlur.cpp: + * platform/graphics/ShadowBlur.h: New method for inset + shadows. + (WebCore::ShadowBlur::drawInsetShadow): + + * platform/graphics/GraphicsContext.cpp: #ifdef out + fillRectWithRoundedHole() for CG. + + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::fillRectWithRoundedHole): If there's + a shadow with a radius > 0, use ShadowBlur. + +2011-01-28 Kenneth Russell <kbr@google.com> + + Reviewed by Chris Marrin. + + WebGL shows PNG Textures with indexed colors too dark + https://bugs.webkit.org/show_bug.cgi?id=47477 + + Properly handle indexed PNG images by re-rendering them as RGBA + images before upload. Verified with this layout test and the test + cases from bugs 47477 and 53269. + + * platform/graphics/cg/GraphicsContext3DCG.cpp: + (WebCore::GraphicsContext3D::getImageData): + +2011-01-27 MORITA Hajime <morrita@google.com> + + Reviewed by Dimitri Glazkov. + + Convert <progress> shadow DOM to a DOM-based shadow. + https://bugs.webkit.org/show_bug.cgi?id=50660 + + * Removed RenderProgress::m_valuePart, moved the shadow node + to the shadow root of HTMLProgressElement. + * Removed hard-coded pseudo ID for -webkit-progress-bar-value. + ProgressBarValueElement is defined only for overriding + shadowPseudoId(). + + No new tests. No behavioral change. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): + (WebCore::nameToPseudoTypeMap): + (WebCore::CSSSelector::extractPseudoType): + * css/CSSSelector.h: + * html/HTMLProgressElement.cpp: + (WebCore::ProgressBarValueElement::ProgressBarValueElement): + (WebCore::ProgressBarValueElement::shadowPseudoId): + (WebCore::ProgressBarValueElement::create): + (WebCore::HTMLProgressElement::parseMappedAttribute): + (WebCore::HTMLProgressElement::attach): + (WebCore::HTMLProgressElement::valuePart): + (WebCore::HTMLProgressElement::didElementStateChange): + (WebCore::HTMLProgressElement::createShadowSubtreeIfNeeded): + * html/HTMLProgressElement.h: + * rendering/RenderProgress.cpp: + (WebCore::RenderProgress::~RenderProgress): + (WebCore::RenderProgress::updateFromElement): + (WebCore::RenderProgress::layoutParts): + (WebCore::RenderProgress::shouldHaveParts): + (WebCore::RenderProgress::valuePart): + * rendering/RenderProgress.h: + * rendering/style/RenderStyleConstants.h: + +2011-01-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Ariya Hidayat. + + Enhance ShadowBlur to render inset box shadows; Part 1. + https://bugs.webkit.org/show_bug.cgi?id=51567 + + Add a new method to GraphicsContext to render a rect with a rounded hole, + for use by inset box-shadow code. Knowledge that we're rendering a rounded + hole will enable ShadowBlur to be used here in future. + + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::fillRectWithRoundedHole): + * platform/graphics/GraphicsContext.h: + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintBoxShadow): + +2011-01-23 MORITA Hajime <morrita@google.com> + + Reviewed by Eric Seidel. + + REGRESSION: Inset shadow with too large border radius misses rounded corner. + https://bugs.webkit.org/show_bug.cgi?id=52800 + + The refactoring on r76083 broke the invariant between border + IntRect and its radii because RoundedIntRect::setRect() is called + after getRoundedInnerBorderWithBorderWidths(), which enforces the + invariant. Th rounded-rect clipping code verifies the invariant, + and discard the invalid radii, that results broken paintings. + + This change moved setRect() before + getRoundedInnerBorderWithBorderWidths() not to modify the valid + RoundedIntRect value. + + Test: fast/box-shadow/inset-with-extraordinary-radii-and-border.html + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintBoxShadow): + +2011-01-30 Simon Fraser <simon.fraser@apple.com> + + Attempt to fix Windows build by adding ShadowBlur.cpp/h to the + vcproj. + + * WebCore.vcproj/WebCore.vcproj: + +2011-01-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + -webkit-box-shadow causes awful scroll/resize/redraw performance + https://bugs.webkit.org/show_bug.cgi?id=22102 + + Use ShadowBlur for CG, whe rendering shadows on rects and + rounded rects outside of canvas. + + CG shadows with a radius of more than 8px do not render + correctly. We preserve this incorrect rendering by compensating + for it when rending -webkit-box-shadow. Calls that should use + this deprecated radius behavior now use setLegacyShadow(). + + Test: fast/box-shadow/box-shadow-transformed.html + + * html/canvas/CanvasRenderingContext2D.cpp: Use setLegacyShadow() + for canvas, to indicate that it should use the deprecated radius + behavior. + (WebCore::CanvasRenderingContext2D::setAllAttributesToDefault): Ditto. + (WebCore::CanvasRenderingContext2D::setShadow): Ditto. + (WebCore::CanvasRenderingContext2D::applyShadow): Ditto. + + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::setLegacyShadow): Set the m_state.shadowsUseLegacyRadius bit. + + * platform/graphics/GraphicsContext.h: + (WebCore::GraphicsContextState::GraphicsContextState): Add a + shadowsUseLegacyRadius bit to the state. + + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::radiusToLegacyRadius): Map from the actual radius to one + that approximates CG behavior. + (WebCore::hasBlurredShadow): Helper that returns true if we have a shadow + with a non-zero blur radius. + (WebCore::GraphicsContext::fillRect): Use ShadowBlur if not canvas. + (WebCore::GraphicsContext::fillRoundedRect): Ditto. + (WebCore::GraphicsContext::setPlatformShadow): Comment. + + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintBoxShadow): Call setLegacyShadow() + for -webkit-box-shadow. + + * platform/graphics/ShadowBlur.cpp: + (WebCore::ShadowBlur::calculateLayerBoundingRect): Fix some pixel crack issues + by rounding up the blur radius. + (WebCore::ShadowBlur::drawRectShadow): Ditto + (WebCore::ShadowBlur::drawRectShadowWithTiling): Ditto. + +2011-01-30 Oliver Hunt <oliver@apple.com> + + Try to fix Qt build (again). + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + +2011-01-30 Oliver Hunt <oliver@apple.com> + + Try to fix Qt build. + + * bridge/qt/qt_instance.cpp: + (JSC::Bindings::QtInstance::QtInstance): + (JSC::Bindings::QtInstance::removeCachedMethod): + (JSC::Bindings::QtInstance::markAggregate): + * bridge/qt/qt_instance.h: + +2011-01-30 Oliver Hunt <oliver@apple.com> + + Convert markstack to a slot visitor API + https://bugs.webkit.org/show_bug.cgi?id=53219 + + rolling r77006 and r77020 back in. + + * ForwardingHeaders/runtime/WriteBarrier.h: Added. + * WebCore.exp.in: + * bindings/js/DOMWrapperWorld.h: + (WebCore::DOMWrapperWorld::globalData): + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::markDOMNodesForDocument): + (WebCore::markDOMObjectWrapper): + (WebCore::markDOMNodeWrapper): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::markChildren): + (WebCore::JSDOMGlobalObject::setInjectedScript): + (WebCore::JSDOMGlobalObject::injectedScript): + * bindings/js/JSDOMGlobalObject.h: + (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + (WebCore::DialogHandler::dialogCreated): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::JSDOMWindowShell): + (WebCore::JSDOMWindowShell::setWindow): + (WebCore::JSDOMWindowShell::markChildren): + (WebCore::JSDOMWindowShell::unwrappedObject): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::window): + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/JSDeviceMotionEventCustom.cpp: + (WebCore::createAccelerationObject): + (WebCore::createRotationRateObject): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::jsFunction): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::setAll): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + (WebCore::JSJavaScriptCallFrame::scopeType): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::markAggregate): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + * bindings/js/JSNodeFilterCustom.cpp: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::restore): + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/js/SerializedScriptValue.cpp: + (WebCore::CloneDeserializer::putProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): + (JSC::Bindings::QtRuntimeMetaMethod::markChildren): + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + * bridge/qt/qt_runtime.h: + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + * bridge/runtime_root.h: + * dom/Document.h: + +2011-01-30 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Sam Weinig. + + Make ContextShadow code cross-platform + https://bugs.webkit.org/show_bug.cgi?id=51312 + + Add a new class, ShadowBlur, that contains most of the + code from ContextShadow, but is fully cross-platform. + It depends on one new method, GraphicsContext::clipBounds(), + which platforms will have to implement. + + Add ShadowBlur to the Mac Xcode project, but don't use it + anywhere yet. + + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/GraphicsContext.cpp: + (WebCore::GraphicsContext::clipBounds): + * platform/graphics/GraphicsContext.h: + * platform/graphics/ShadowBlur.cpp: Added. + (WebCore::roundUpToMultipleOf32): + (WebCore::ScratchBuffer::ScratchBuffer): + (WebCore::ScratchBuffer::getScratchBuffer): + (WebCore::ScratchBuffer::scheduleScratchBufferPurge): + (WebCore::ScratchBuffer::timerFired): + (WebCore::ScratchBuffer::clearScratchBuffer): + (WebCore::ScratchBuffer::shared): + (WebCore::ShadowBlur::ShadowBlur): + (WebCore::ShadowBlur::blurLayerImage): + (WebCore::ShadowBlur::adjustBlurDistance): + (WebCore::ShadowBlur::calculateLayerBoundingRect): + (WebCore::ShadowBlur::beginShadowLayer): + (WebCore::ShadowBlur::endShadowLayer): + (WebCore::ShadowBlur::drawRectShadow): + (WebCore::ShadowBlur::drawRectShadowWithoutTiling): + (WebCore::ShadowBlur::drawRectShadowWithTiling): + (WebCore::ShadowBlur::clipBounds): + * platform/graphics/ShadowBlur.h: Added. + (WebCore::ShadowBlur::setShadowsIgnoreTransforms): + (WebCore::ShadowBlur::shadowsIgnoreTransforms): + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::clipBounds): + +2011-01-29 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + CSS3 gradients with em-based stops fail to repaint when font size changes + https://bugs.webkit.org/show_bug.cgi?id=51845 + + Mark as uncacheable gradidients whose color stops depend on font size, + and don't attempt to put these into CSSImageGeneratorValue's image cache. + This means we return a new gradient each time, which is fairly cheap, and + fixes repaint issues under changing font size. + + Test: fast/repaint/gradients-em-stops-repaint.html + + * css/CSSGradientValue.cpp: + (WebCore::CSSGradientValue::image): + (WebCore::CSSGradientValue::isCacheable): + * css/CSSGradientValue.h: + +2011-01-29 Geoffrey Garen <ggaren@apple.com> + + Undo try to fix the Qt build. + + My guess didn't work. + + * WebCore.pro: + +2011-01-29 Geoffrey Garen <ggaren@apple.com> + + Try to fix the Qt build. + + * WebCore.pro: Added platform/text/CharacterNames.h. + +2011-01-28 Geoffrey Garen <ggaren@apple.com> + + Reviewed by Maciej Stachowiak. + + Some more Heap cleanup. + https://bugs.webkit.org/show_bug.cgi?id=53357 + + Updated for JavaScriptCore changes. + + * bindings/js/ScriptGCEvent.cpp: + (WebCore::ScriptGCEvent::getHeapSize): + +2011-01-29 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Fix XSSFilter crash when extracting the source for a token twice + https://bugs.webkit.org/show_bug.cgi?id=53368 + + Previously, it was unsafe to extract the source for the same token + twice because the HTMLSourceTracker would advance its internal + representation of the SegmentedString. This patch introduces a cache + to make calling HTMLSourceTracker::sourceForToken multiple times safe. + + * html/parser/HTMLSourceTracker.cpp: + (WebCore::HTMLSourceTracker::end): + (WebCore::HTMLSourceTracker::sourceForToken): + * html/parser/HTMLSourceTracker.h: + +2011-01-29 Maciej Stachowiak <mjs@apple.com> + + Reviewed by Dan Bernstein. + + Fix fat build for both 32-bit and 64-bit under llvm-gcc 4.2 + https://bugs.webkit.org/show_bug.cgi?id=53386 + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::elasticDeltaForReboundDelta): + (WebCore::scrollWheelMultiplier): + (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): + (WebCore::ScrollAnimatorMac::beginScrollGesture): + (WebCore::roundTowardZero): + (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): + +2011-01-29 Daniel Bates <dbates@rim.com> + + Reviewed by Maciej Stachowiak. + + Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files + https://bugs.webkit.org/show_bug.cgi?id=53382 + + Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source. + So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source. + Therefore, we should remove such references. + + * CMakeLists.txt: + +2011-01-29 Sam Weinig <sam@webkit.org> + + Reviewed by Jon Honeycutt. + + Fix 32-bit build on the Mac. + + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::roundTowardZero): + (WebCore::roundToDevicePixelTowardZero): + Use floats instead of doubles to avoid double-to-float conversion + issues. + +2011-01-29 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Adam Barth. + + Use clampToInteger() functions in a few places + https://bugs.webkit.org/show_bug.cgi?id=53363 + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::applyProperty): Use clampToInteger() for z-index. + (WebCore::CSSStyleSelector::createTransformOperations): Use clampToPositiveInteger(). + * platform/graphics/transforms/PerspectiveTransformOperation.cpp: Ditto. + (WebCore::PerspectiveTransformOperation::blend): Ditto. + +2011-01-29 Patrick Gansterer <paroga@webkit.org> + + Reviewed by David Kilzer. + + Move CharacterNames.h into WTF directory + https://bugs.webkit.org/show_bug.cgi?id=49618 + + * ForwardingHeaders/wtf/unicode/CharacterNames.h: Added. + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * accessibility/AccessibilityObject.cpp: + * accessibility/AccessibilityRenderObject.cpp: + * bindings/cpp/WebDOMHTMLDocumentCustom.cpp: + * bindings/js/JSHTMLDocumentCustom.cpp: + * dom/Position.cpp: + * dom/SelectElement.cpp: + * editing/CompositeEditCommand.cpp: + * editing/Editor.cpp: + * editing/HTMLInterchange.cpp: + * editing/InsertTextCommand.cpp: + * editing/MarkupAccumulator.cpp: + * editing/TextIterator.cpp: + * editing/VisibleSelection.cpp: + * editing/htmlediting.cpp: + * editing/htmlediting.h: + * editing/markup.cpp: + * html/FTPDirectoryDocument.cpp: + * html/HTMLFormControlElement.cpp: + * html/parser/HTMLTreeBuilder.cpp: + * loader/appcache/ManifestParser.cpp: + * platform/chromium/PopupMenuChromium.cpp: + * platform/graphics/Font.h: + * platform/graphics/FontFastPath.cpp: + * platform/graphics/GlyphPageTreeNode.cpp: + * platform/graphics/StringTruncator.cpp: + * platform/graphics/mac/ComplexTextController.cpp: + * platform/graphics/mac/ComplexTextControllerATSUI.cpp: + * platform/graphics/wince/GraphicsContextWinCE.cpp: + * platform/mac/PasteboardMac.mm: + * platform/text/TextCodecICU.cpp: + * platform/text/mac/TextCodecMac.cpp: + * platform/text/transcoder/FontTranscoder.cpp: + * rendering/RenderBlockLineLayout.cpp: + * rendering/RenderFlexibleBox.cpp: + * rendering/RenderListMarker.cpp: + * rendering/RenderText.cpp: + * rendering/RenderTextControl.cpp: + * rendering/RenderTreeAsText.cpp: + * rendering/break_lines.cpp: + * rendering/mathml/RenderMathMLOperator.h: + * websockets/WebSocketHandshake.cpp: + * wml/WMLTableElement.cpp: + +2011-01-29 Dan Winship <danw@gnome.org> + + Reviewed by Xan Lopez. + + [GTK] Remove HAVE_LIBSOUP_2_29_90 conditionals; we depend on + libsoup 2.33.1 now. + https://bugs.webkit.org/show_bug.cgi?id=50675 + + * platform/network/soup/CookieJarSoup.cpp: + (WebCore::defaultCookieJar): + (WebCore::setCookies): + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::prepareForURL): + (WebCore::restartedCallback): + (WebCore::startHttp): + * platform/network/soup/ResourceRequestSoup.cpp: + (WebCore::ResourceRequest::updateSoupMessage): + (WebCore::ResourceRequest::toSoupMessage): + (WebCore::ResourceRequest::updateFromSoupMessage): + +2011-01-29 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSSFilter should replace URLs with about:blank instead of the empty string + https://bugs.webkit.org/show_bug.cgi?id=53370 + + Using the empty string will make the URL complete to the current + document's URL, which isn't really what we want. Instead, we want to + use about:blank, which is safe. + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterObjectToken): + (WebCore::XSSFilter::filterEmbedToken): + +2011-01-29 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSSFilter should pass xssAuditor/script-tag-addslashes* + https://bugs.webkit.org/show_bug.cgi?id=53365 + + We need to canonicalize strings to avoid being tricked by addslashes. + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::isNonCanonicalCharacter): + - This function is copied from the XSSAuditor (with some tweaks). + We'll eventually remove the XSSAuditor once we've got XSSFilter + working properly. + (WebCore::HTMLNames::canonicalize): + (WebCore::HTMLNames::decodeURL): + (WebCore::XSSFilter::isContainedInRequest): + +2011-01-29 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSSFilter should pass xssAuditor/script-tag-with-source-same-host.html + and xssAuditor/script-tag-post-* + https://bugs.webkit.org/show_bug.cgi?id=53364 + + We're supposed to allow loading same-origin resources even if they + appear as part of the request. + + Also, we're supposed to look at the POST data too. :) + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::eraseAttributeIfInjected): + (WebCore::XSSFilter::isSameOriginResource): + - Copy/paste from XSSAuditor::isSameOriginResource. We'll + eventually remove the XSSAuditor version when XSSFilter is done. + * html/parser/XSSFilter.h: + +2011-01-29 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + XSSFilter should pass 16 of the xssAuditor/script-tag* tests + https://bugs.webkit.org/show_bug.cgi?id=53362 + + Turns out we need to replace the src attribute of script tags with + about:blank to avoid loading the main document URL as a script. Also, + move misplaced return statement that was triggering the console message + too often. + + * html/parser/HTMLToken.h: + (WebCore::HTMLToken::appendToAttributeValue): + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterScriptToken): + (WebCore::XSSFilter::eraseAttributeIfInjected): + * html/parser/XSSFilter.h: + +2011-01-28 Jon Honeycutt <jhoneycutt@apple.com> + + Downloads in WK2 on Windows should write resume data to bundle + https://bugs.webkit.org/show_bug.cgi?id=53282 + <rdar://problem/8753077> + + Reviewed by Alice Liu. + + * WebCore.vcproj/WebCore.vcproj: + Added new files to project. + + * platform/network/cf/DownloadBundle.h: Added. + * platform/network/win/DownloadBundleWin.cpp: Added. + (WebCore::DownloadBundle::magicNumber): + Moved from WebKit's WebDownload so that WebKit and WebKit2 can share + it. + (WebCore::DownloadBundle::fileExtension): + Ditto. + (WebCore::DownloadBundle::appendResumeData): + Ditto - but modified to return bool rather than HRESULT and to clean up + whitespace. + (WebCore::DownloadBundle::extractResumeData): + Ditto - modified to clean up whitespace. + +2011-01-29 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77050. + http://trac.webkit.org/changeset/77050 + https://bugs.webkit.org/show_bug.cgi?id=53371 + + Caused a crash in Chromium's test_shell_tests (Requested by + rniwa on #webkit). + + * html/parser/HTMLTreeBuilder.cpp: + (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): + (WebCore::HTMLTreeBuilder::FragmentParsingContext::document): + (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): + * html/parser/HTMLTreeBuilder.h: + +2011-01-28 Eric Seidel <eric@webkit.org> + + Reviewed by Darin Adler. + + HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40% + https://bugs.webkit.org/show_bug.cgi?id=48719 + + It's unclear exactly what the Peacekeeper benchmark is testing, + because I haven't found a way to run it myself. + + However, I constructed a benchmark which shows at least one possible slow point. + The HTML5 spec talks about creating a new document for every time we use + the fragment parsing algorithm. Document() it turns out, it a huge bloated + mess, and the constructor and destructor do a huge amount of work. + To avoid constructing (or destructing) documents for each innerHTML call, + this patch adds a shared dummy document used by all innerHTML calls. + + This patch brings us from 7x slower than Safari 5 on tiny-innerHTML + to only 1.5x slower than Safari 5. I'm sure there is more work to do here. + + Saving a shared Document like this is error prone. Currently + DummyDocumentFactory::releaseDocument() calls removeAllChildren() + in an attempt to clear the Document's state. However it's possible + that that call is not sufficient and we'll have future bugs here. + + * html/parser/HTMLTreeBuilder.cpp: + (WebCore::DummyDocumentFactory::createDummyDocument): + (WebCore::DummyDocumentFactory::releaseDocument): + (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext): + (WebCore::HTMLTreeBuilder::FragmentParsingContext::document): + (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished): + * html/parser/HTMLTreeBuilder.h: + +2011-01-28 Johnny Ding <jnd@chromium.org> + + Reviewed by Adam Barth. + + Gesture API: Don't use current gesture status to set "forceUserGesture" parameter when calling ScriptController::executeScript. + The "forceUserGesture" parameter should be only set when you are definitely sure that the running script is from a hyper-link. + https://bugs.webkit.org/show_bug.cgi?id=53244 + + Test: fast/events/popup-blocked-from-iframe-src.html + + * bindings/ScriptControllerBase.cpp: + (WebCore::ScriptController::executeIfJavaScriptURL): + +2011-01-28 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Gavin Barraclough. + + Add various clampToInt() methods to MathExtras.h + https://bugs.webkit.org/show_bug.cgi?id=52910 + + Use clampToInteger() from MathExtras.h + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseCounter): + +2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r77006 and r77020. + http://trac.webkit.org/changeset/77006 + http://trac.webkit.org/changeset/77020 + https://bugs.webkit.org/show_bug.cgi?id=53360 + + "Broke Windows tests" (Requested by rniwa on #webkit). + + * ForwardingHeaders/runtime/WriteBarrier.h: Removed. + * WebCore.exp.in: + * bindings/js/DOMWrapperWorld.h: + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::markDOMNodesForDocument): + (WebCore::markDOMObjectWrapper): + (WebCore::markDOMNodeWrapper): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::markChildren): + (WebCore::JSDOMGlobalObject::setInjectedScript): + (WebCore::JSDOMGlobalObject::injectedScript): + * bindings/js/JSDOMGlobalObject.h: + (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + (WebCore::DialogHandler::dialogCreated): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::JSDOMWindowShell): + (WebCore::JSDOMWindowShell::setWindow): + (WebCore::JSDOMWindowShell::markChildren): + (WebCore::JSDOMWindowShell::unwrappedObject): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::window): + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/JSDeviceMotionEventCustom.cpp: + (WebCore::createAccelerationObject): + (WebCore::createRotationRateObject): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::jsFunction): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::setAll): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + (WebCore::JSJavaScriptCallFrame::scopeType): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::markAggregate): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + * bindings/js/JSNodeFilterCustom.cpp: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::restore): + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/js/SerializedScriptValue.cpp: + (WebCore::CloneDeserializer::putProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): + (JSC::Bindings::QtRuntimeMetaMethod::markChildren): + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + * bridge/qt/qt_runtime.h: + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + * bridge/runtime_root.h: + * dom/Document.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + XSSFilter should log to the console when it blocks something + https://bugs.webkit.org/show_bug.cgi?id=53354 + + This patch refactors a bunch of methods in XSSFilter to return a bool + indicating whether they blocked anything. Using this bool, we decide + whether to log to the console. We're using the same log message as the + XSSAuditor, but it seems likely we can improve this message in the + future (especially by piping in the correct line number, which is now + accessible via the parser). + + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::isNameOfInlineEventHandler): + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::filterTokenInitial): + (WebCore::XSSFilter::filterTokenAfterScriptStartTag): + (WebCore::XSSFilter::filterScriptToken): + (WebCore::XSSFilter::filterObjectToken): + (WebCore::XSSFilter::filterEmbedToken): + (WebCore::XSSFilter::filterAppletToken): + (WebCore::XSSFilter::filterMetaToken): + (WebCore::XSSFilter::filterBaseToken): + (WebCore::XSSFilter::eraseInlineEventHandlersIfInjected): + * html/parser/XSSFilter.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Wire up settings->xssAuditorEnabled to XSSFilter + https://bugs.webkit.org/show_bug.cgi?id=53345 + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::XSSFilter): + (WebCore::XSSFilter::filterToken): + * html/parser/XSSFilter.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter about <meta> and <base> tags + https://bugs.webkit.org/show_bug.cgi?id=53339 + + I'm not 100% sure we need to block <meta http-equiv>, but it seems + prudent given how powerful that attribute is. We definitely need to + block injection of <base href> because that can redirect script tags + that use relative URLs. + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::filterMetaToken): + (WebCore::XSSFilter::filterBaseToken): + * html/parser/XSSFilter.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter about <applet> + https://bugs.webkit.org/show_bug.cgi?id=53338 + + HTML5 is pretty light on information about how the <applet> tag works. + According to this site: + + http://download.oracle.com/javase/1.4.2/docs/guide/misc/applet.html + + The "code" and "object" attributes are the essential attributes for + determining which piece of Java to run. We might need to expand to the + codebase and archive attributes at some point, but hopefully code and + object will be sufficient. + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::filterAppletToken): + * html/parser/XSSFilter.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach the XSSFilter about object and embed tags + https://bugs.webkit.org/show_bug.cgi?id=53336 + + For <object> and <embed>, we filter out attribute values that either + indicate which piece of media to load or which plugin to load. In a + perfect world, we'd only need to filter out the URLs of the media, but + some plug-ins (like Flash) have lots of fun places you can hide the + URL (e.g., the "movie" <param>). + + * html/parser/XSSFilter.cpp: + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::filterScriptToken): + (WebCore::XSSFilter::filterObjectToken): + (WebCore::XSSFilter::filterEmbedToken): + (WebCore::XSSFilter::eraseAttributeIfInjected): + * html/parser/XSSFilter.h: + +2011-01-28 Oliver Hunt <oliver@apple.com> + + Fix Qt build. + + * bridge/qt/qt_runtime.cpp: + (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod): + (JSC::Bindings::QtRuntimeMetaMethod::markChildren): + (JSC::Bindings::QtRuntimeMetaMethod::connectGetter): + (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter): + * bridge/qt/qt_runtime.h: + +2011-01-28 Antti Koivisto <antti@apple.com> + + Reviewed by Simon Fraser. + + CSS styles are shared based on uninitialized property values + https://bugs.webkit.org/show_bug.cgi?id=53285 + + Null test. + + * dom/NamedNodeMap.cpp: + (WebCore::NamedNodeMap::mappedMapsEquivalent): + +2011-01-27 Oliver Hunt <oliver@apple.com> + + Reviewed by Geoffrey Garen. + + Convert markstack to a slot visitor API + https://bugs.webkit.org/show_bug.cgi?id=53219 + + Update WebCore to the new marking apis, correct bindings + codegen. + + * ForwardingHeaders/runtime/WriteBarrier.h: Added. + * WebCore.exp.in: + * bindings/js/DOMWrapperWorld.h: + (WebCore::DOMWrapperWorld::globalData): + * bindings/js/JSAudioConstructor.cpp: + (WebCore::JSAudioConstructor::JSAudioConstructor): + * bindings/js/JSDOMBinding.cpp: + (WebCore::markDOMNodesForDocument): + (WebCore::markDOMObjectWrapper): + (WebCore::markDOMNodeWrapper): + * bindings/js/JSDOMGlobalObject.cpp: + (WebCore::JSDOMGlobalObject::markChildren): + (WebCore::JSDOMGlobalObject::setInjectedScript): + (WebCore::JSDOMGlobalObject::injectedScript): + * bindings/js/JSDOMGlobalObject.h: + (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData): + (WebCore::getDOMConstructor): + * bindings/js/JSDOMWindowCustom.cpp: + (WebCore::JSDOMWindow::setLocation): + (WebCore::DialogHandler::dialogCreated): + * bindings/js/JSDOMWindowShell.cpp: + (WebCore::JSDOMWindowShell::JSDOMWindowShell): + (WebCore::JSDOMWindowShell::setWindow): + (WebCore::JSDOMWindowShell::markChildren): + (WebCore::JSDOMWindowShell::unwrappedObject): + * bindings/js/JSDOMWindowShell.h: + (WebCore::JSDOMWindowShell::window): + (WebCore::JSDOMWindowShell::setWindow): + * bindings/js/JSEventListener.cpp: + (WebCore::JSEventListener::JSEventListener): + (WebCore::JSEventListener::markJSFunction): + * bindings/js/JSEventListener.h: + (WebCore::JSEventListener::jsFunction): + * bindings/js/JSHTMLDocumentCustom.cpp: + (WebCore::JSHTMLDocument::setAll): + * bindings/js/JSImageConstructor.cpp: + (WebCore::JSImageConstructor::JSImageConstructor): + * bindings/js/JSImageDataCustom.cpp: + (WebCore::toJS): + * bindings/js/JSJavaScriptCallFrameCustom.cpp: + (WebCore::JSJavaScriptCallFrame::scopeChain): + (WebCore::JSJavaScriptCallFrame::scopeType): + * bindings/js/JSNodeFilterCondition.cpp: + (WebCore::JSNodeFilterCondition::markAggregate): + (WebCore::JSNodeFilterCondition::acceptNode): + * bindings/js/JSNodeFilterCondition.h: + * bindings/js/JSNodeFilterCustom.cpp: + * bindings/js/JSOptionConstructor.cpp: + (WebCore::JSOptionConstructor::JSOptionConstructor): + * bindings/js/JSSQLResultSetRowListCustom.cpp: + (WebCore::JSSQLResultSetRowList::item): + * bindings/js/ScriptCachedFrameData.cpp: + (WebCore::ScriptCachedFrameData::restore): + * bindings/js/ScriptObject.cpp: + (WebCore::ScriptGlobalObject::set): + * bindings/js/SerializedScriptValue.cpp: + (WebCore::CloneDeserializer::putProperty): + * bindings/scripts/CodeGeneratorJS.pm: + * dom/Document.h: + +2011-01-28 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Keyboard scrolling doesn’t work in WebKit2 + <rdar://problem/8909672> + + * platform/mac/ScrollAnimatorMac.mm: + (-[ScrollAnimationHelperDelegate convertSizeToBacking:]): + (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]): + Add additional necessary delegate methods. + +2011-01-29 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Re-land this patch with the missing null check that caused crashes in layout tests. + + Changing cursor style has no effect until the mouse moves + https://bugs.webkit.org/show_bug.cgi?id=14344 + rdar://problem/7563712 + + No tests added because we don't have infrastructure for testing actual cursor + changes (as opposed to cursor style computation) at this time. We might add it later. + + * page/EventHandler.cpp: + (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added. + * page/EventHandler.h: Ditto. + + * rendering/RenderObject.cpp: + (WebCore::areNonIdenticalCursorListsEqual): Added. + (WebCore::areCursorsEqual): Added. + (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if + cursor styles changed. + +2011-01-28 Justin Schuh <jschuh@chromium.org> + + Reviewed by Eric Seidel. + + We should hold RefPtrs to SVG font faces + https://bugs.webkit.org/show_bug.cgi?id=53270 + + Test: svg/custom/use-multiple-on-nested-disallowed-font.html + + * css/CSSFontFaceSource.cpp: + (WebCore::CSSFontFaceSource::getFontData): + * css/CSSFontFaceSource.h: + * svg/SVGFontFaceElement.cpp: + (WebCore::SVGFontFaceElement::associatedFontElement): + * svg/SVGFontFaceElement.h: + +2011-01-28 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + uniformN*v should generate INVALID_VALUE of the array size is not a multiple of N + https://bugs.webkit.org/show_bug.cgi?id=53306 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::validateUniformMatrixParameters): + +2011-01-28 Tom Sepez <tsepez@chromium.org> + + Reviewed by Eric Seidel. + + NULL pointer crash in TextIterator::handleTextBox() + https://bugs.webkit.org/show_bug.cgi?id=53267 + + Test: fast/css/rtl-nth-child-first-letter-crash.html + + * editing/TextIterator.cpp: + (WebCore::TextIterator::handleTextBox): + +2011-01-28 Adrienne Walker <enne@google.com> + + Reviewed by Kenneth Russell. + + [chromium] Remove a spurious diagnostic CRASH check. + https://bugs.webkit.org/show_bug.cgi?id=52379 + + * platform/graphics/chromium/LayerTilerChromium.cpp: + (WebCore::LayerTilerChromium::invalidateRect): + +2011-01-28 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + <rdar://problem/4761512> <select> can't display right-to-left (rtl) languages + https://bugs.webkit.org/show_bug.cgi?id=19785 + + Changed <select> pop-up menus on Mac OS X Snow Leopard and later to have their items aligned in the + direction corresponding to the writing direction of the <select> element, with the checkmarks + on the "start" side, and use the <option>'s writing direction rather than "natural". Made the + pop-up button match the menu by adding a Chrome boolean function, selectItemAlignmentFollowsMenuWritingDirection(), + which returns true for this pop-up behavior. + + * loader/EmptyClients.h: + (WebCore::EmptyChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added. + * manual-tests/pop-up-alignment-and-direction.html: Added. + * page/Chrome.cpp: + (WebCore::Chrome::selectItemAlignmentFollowsMenuWritingDirection): Added. Calls through to the + client. + * page/Chrome.h: + * page/ChromeClient.h: + * platform/PopupMenuStyle.h: + (WebCore::PopupMenuStyle::PopupMenuStyle): Added hasTextDirectionOverride parameter and member + variable initialization. + (WebCore::PopupMenuStyle::hasTextDirectionOverride): Added this accessor. + * platform/mac/PopupMenuMac.mm: + (WebCore::PopupMenuMac::populate): Set the pop-up's layout direction and items' text alignment + to match the menu's writing direction. Set items' writing direction and direction override + according to their styles. + * rendering/RenderMenuList.cpp: + (WebCore::RenderMenuList::RenderMenuList): Removed unncesaary initialization of a smart pointer. + (WebCore::RenderMenuList::adjustInnerStyle): If the alignment of items in the menu follows the + menu's writing direction, use that alignment for the button as well. Also in this mode, use the + item's writing direction and override setting. + (WebCore::RenderMenuList::setTextFromOption): Store the option element's style. + (WebCore::RenderMenuList::itemStyle): Pass the text direction override value. + (WebCore::RenderMenuList::menuStyle): Ditto. Also use the button's direction, not the inner text's. + * rendering/RenderMenuList.h: + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::menuStyle): Pass the text direction override value. + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Teach XSSFilter how to filter <script> elements + https://bugs.webkit.org/show_bug.cgi?id=53279 + + This patch adds the ability for the XSSFilter to block injected + <script> elements. Handling script elements is slightly subtle because + these elements act very differently depending on whether they have a + src attribute. + + In the "src case", which check whether the src attribute was present in + the request. In the "non-src case", we check whether the start tag and + the body of the script element was included in the request. Checking + for the whole start tag means we miss out on some attribute splitting + attacks inside of script tags, but that doesn't seem like that big a + deal. + + This patch also introduces some amount of state into the XSSFilter + because inline script elements span multiple tokens. There's a lot of + tuning and optimization left in these cases, some of which I've noted + with FIXMEs. + + To test this patch, I played around with some of the existing + XSSAuditor tests. Hopefully I'll be able to run the test suite more + systematically in the future. + + * html/parser/HTMLToken.h: + (WebCore::HTMLToken::eraseCharacters): + (WebCore::HTMLToken::eraseValueOfAttribute): + * html/parser/XSSFilter.cpp: + (WebCore::HTMLNames::hasName): + (WebCore::HTMLNames::findAttributeWithName): + (WebCore::HTMLNames::isNameOfScriptCarryingAttribute): + (WebCore::XSSFilter::XSSFilter): + (WebCore::XSSFilter::filterToken): + (WebCore::XSSFilter::filterTokenAfterScriptStartTag): + (WebCore::XSSFilter::filterScriptToken): + (WebCore::XSSFilter::snippetForRange): + (WebCore::XSSFilter::snippetForAttribute): + * html/parser/XSSFilter.h: + +2011-01-28 Adam Barth <abarth@webkit.org> + + Reviewed by Daniel Bates. + + Sketch out new XSS filter design (disabled by default) + https://bugs.webkit.org/show_bug.cgi?id=53205 + + This patch adds a basic sketch of the new XSS filter design. Rather + than watching scripts as they execute, in this design, we watch tokens + emitted by the tokenizer. We then map the tokens directly back into + input characters, which lets us skip all the complicated logic related + to HTML entities and double-decoding of JavaScript URLs. + + This patch contains only the bare essentially machinery. I'll add more + in future patches and eventually remove the previous code once this + code is up and running correctly. + + * Android.mk: + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * html/parser/HTMLDocumentParser.cpp: + (WebCore::HTMLDocumentParser::HTMLDocumentParser): + (WebCore::HTMLDocumentParser::pumpTokenizer): + (WebCore::HTMLDocumentParser::sourceForToken): + * html/parser/HTMLDocumentParser.h: + * html/parser/XSSFilter.cpp: Added. + * html/parser/XSSFilter.h: Added. + +2011-01-28 Michael Saboff <msaboff@apple.com> + + Reviewed by Geoffrey Garen. + + Potentially Unsafe HashSet of RuntimeObject* in RootObject definition + https://bugs.webkit.org/show_bug.cgi?id=53271 + + Reapplying this patch with the change that the second ASSERT in + RootObject::removeRuntimeObject was changed to use + .uncheckedGet() instead of the failing .get(). The object in question + could be in the process of being GC'ed. The get() call will not return + such an object while the uncheckedGet() call will return the (unsafe) + object. This is the behavior we want. + + Precautionary change. + Changed RootObject to use WeakGCMap instead of HashSet. + Found will looking for another issue, but can't produce a test case + that is problematic. THerefore there aren't any new tests. + + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + (JSC::Bindings::RootObject::addRuntimeObject): + (JSC::Bindings::RootObject::removeRuntimeObject): + * bridge/runtime_root.h: + +2011-01-28 Adam Roben <aroben@apple.com> + + Notify CACFLayerTreeHost when the context is flushed + + LegacyCACFLayerTreeHost was keeping this a secret, which meant that WebCore's animation + timers were never starting. + + Fixes <http://webkit.org/b/53302> [Windows 7 Release Tests] changesets 76853, 76856, and + 76858 broke ~36 animations, compositing, and transitions tests + + Reviewed by Sam Weinig. + + * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: + (WebCore::LegacyCACFLayerTreeHost::contextDidChange): Call up to the base class after we + start our render timer. + +2011-01-28 Antti Koivisto <antti@apple.com> + + Reviewed by Dan Bernstein. + + Remove dead code that tried to map from CSS values to parser values + https://bugs.webkit.org/show_bug.cgi?id=53318 + + * css/CSSFunctionValue.cpp: + * css/CSSFunctionValue.h: + * css/CSSPrimitiveValue.cpp: + * css/CSSPrimitiveValue.h: + * css/CSSValue.h: + * css/CSSValueList.cpp: + * css/CSSValueList.h: + +2011-01-28 Enrica Casucci <enrica@apple.com> + + Reviewed by Adam Roben. + + Some drag and drop tests fail since r76824 + https://bugs.webkit.org/show_bug.cgi?id=53304 + + There were '||' instead of '&&' in the checks for valid + clipboard content. + + * platform/win/ClipboardWin.cpp: + (WebCore::ClipboardWin::getData): + (WebCore::ClipboardWin::types): + (WebCore::ClipboardWin::files): + +2011-01-28 Martin Robinson <mrobinson@igalia.com> + + [GTK] AudioProcessingEvent.h and JSJavaScriptAudioNode.h: No such file or directory + https://bugs.webkit.org/show_bug.cgi?id=52889 + + Build fix for WebAudio. Include WebAudio source files on the source + list when WebAudio is enabled. + + * GNUmakefile.am: Include missing source files. + +2011-01-28 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + Add basic rubber banding support + <rdar://problem/8219429> + https://bugs.webkit.org/show_bug.cgi?id=53277 + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleGestureEvent): + Pass gesture events to the FrameView. + + * platform/ScrollAnimator.cpp: + (WebCore::ScrollAnimator::handleGestureEvent): + * platform/ScrollAnimator.h: + Add stubbed out implementation. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::ScrollView): + (WebCore::ScrollView::overhangAmount): + (WebCore::ScrollView::wheelEvent): + * platform/ScrollView.h: + * platform/ScrollableArea.cpp: + (WebCore::ScrollableArea::ScrollableArea): + (WebCore::ScrollableArea::handleGestureEvent): + * platform/ScrollableArea.h: + (WebCore::ScrollableArea::constrainsScrollingToContentEdge): + (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge): + Move constrains scrolling bit to ScrollableArea from ScrollView. + + (WebCore::ScrollableArea::contentsSize): + (WebCore::ScrollableArea::overhangAmount): + Add additional virtual functions for information needed by the animator. + + * platform/mac/ScrollAnimatorMac.h: + * platform/mac/ScrollAnimatorMac.mm: + (WebCore::ScrollAnimatorMac::ScrollAnimatorMac): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX): + (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY): + (WebCore::elasticDeltaForTimeDelta): + (WebCore::elasticDeltaForReboundDelta): + (WebCore::reboundDeltaForElasticDelta): + (WebCore::scrollWheelMultiplier): + (WebCore::ScrollAnimatorMac::handleWheelEvent): + (WebCore::ScrollAnimatorMac::handleGestureEvent): + (WebCore::ScrollAnimatorMac::pinnedInDirection): + (WebCore::ScrollAnimatorMac::allowsVerticalStretching): + (WebCore::ScrollAnimatorMac::allowsHorizontalStretching): + (WebCore::ScrollAnimatorMac::smoothScrollWithEvent): + (WebCore::ScrollAnimatorMac::beginScrollGesture): + (WebCore::ScrollAnimatorMac::endScrollGesture): + (WebCore::ScrollAnimatorMac::snapRubberBand): + (WebCore::roundTowardZero): + (WebCore::roundToDevicePixelTowardZero): + (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired): + Implement basic rubber banding. + +2011-01-28 Dan Bernstein <mitz@apple.com> + + Reviewed by Anders Carlsson. + + Changing unicode-bidi doesn’t force layout + https://bugs.webkit.org/show_bug.cgi?id=53311 + + Test: fast/dynamic/unicode-bidi.html + + * rendering/style/RenderStyle.cpp: + (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ. + +2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Kent Tamura. + + Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId. + https://bugs.webkit.org/show_bug.cgi?id=53122 + + This is the first step in converting HTMLMediaElement to the new shadow DOM. + + Should not regress any existing tests. No observable change in behavior. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors. + (WebCore::nameToPseudoTypeMap): Ditto. + (WebCore::CSSSelector::extractPseudoType): Ditto. + * css/CSSSelector.h: Ditto. + * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement, + which is now replaced with virtual shadowPseudoId on each corresponding class. + (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline. + (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set + display type in constructor. + (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added + to disambiguate from the MediaControlMuteButtonElement. + (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added. + (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added. + (WebCore::MediaControlSeekForwardButtonElement::create): Added. + (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added. + (WebCore::MediaControlSeekBackButtonElement::create): Added. + (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added. + (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlTimelineElement::shadowPseudoId): Added. + (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added. + (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added. + * rendering/MediaControlElements.h: + (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added. + (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added. + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::createMuteButton): Changed to use new constructor. + (WebCore::RenderMedia::createSeekBackButton): Ditto. + (WebCore::RenderMedia::createSeekForwardButton): Ditto. + (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto. + * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used. + +2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Eric Carlson. + + Split MediaControls out of RenderMedia. + https://bugs.webkit.org/show_bug.cgi?id=53252 + + Near-mechanical moving of stuff, no change in behavior, thus no new tests. + + * Android.mk: Added MediaControls to build system. + * CMakeLists.txt: Ditto. + * GNUmakefile.am: Ditto. + * WebCore.gypi: Ditto. + * WebCore.pro: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * html/HTMLMediaElement.cpp: + (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls. + * html/shadow/MediaControls.cpp: Copied all controls-related methods from + Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. + * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls. + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls. + (WebCore::RenderMedia::destroy): Changed to use MediaControls. + (WebCore::RenderMedia::styleDidChange): Ditto. + (WebCore::RenderMedia::layout): Ditto. + (WebCore::RenderMedia::updateFromElement): Ditto. + * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which + is only used by sub-class RenderVideo. + (WebCore::RenderMedia::controls): Added. + * rendering/RenderVideo.cpp: + (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement(). + (WebCore::RenderVideo::calculateIntrinsicSize): Ditto. + (WebCore::RenderVideo::paintReplaced): Ditto. + (WebCore::RenderVideo::updatePlayer): Ditto. + (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto. + (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto. + +2011-01-28 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: allow remote debugging with front-end + served from the cloud. + https://bugs.webkit.org/show_bug.cgi?id=53303 + + * inspector/front-end/inspector.js: + +2011-01-28 Aparna Nandyal <aparna.nand@wipro.com> + + Reviewed by Andreas Kling. + + Setting value of m_PressedPos to make scrolling smooth + + Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler. + https://bugs.webkit.org/show_bug.cgi?id=51349 + + The value of m_PressedPos was getting set before moveThumb() call + in all other scenarios except when "Scroll Here" option is used. + Hence scrolling with this option was not as expected even in cases + where scrolling was happening. The thumb would move in unexpected + direction. m_PressedPos is now set to pressed position so delta is + calculated. + Unable to write a test case as the test needs to click on "Scroll + Here" option of context sensitive menu and QTest is unable to do it. + Besides no new functionality introduced. + + * platform/qt/ScrollbarQt.cpp: + (WebCore::Scrollbar::contextMenu): + +2011-01-28 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Extensions API] add JSON schema for extensions API + https://bugs.webkit.org/show_bug.cgi?id=53236 + + * inspector/front-end/ExtensionAPISchema.json: Added. + +2011-01-27 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Remove _LENGTH enumerants + https://bugs.webkit.org/show_bug.cgi?id=53259 + + * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH. + (WebCore::WebGLRenderingContext::getProgramParameter): + (WebCore::WebGLRenderingContext::getShaderParameter): + * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH. + +2011-01-28 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: syntax highlight inline JS and CSS in HTML resources + https://bugs.webkit.org/show_bug.cgi?id=30831 + + * inspector/front-end/SourceHTMLTokenizer.js: + (WebInspector.SourceHTMLTokenizer): + (WebInspector.SourceHTMLTokenizer.prototype.set line): + (WebInspector.SourceHTMLTokenizer.prototype.nextToken): + * inspector/front-end/SourceHTMLTokenizer.re2js: + +2011-01-28 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword + https://bugs.webkit.org/show_bug.cgi?id=53295 + + Select the current word suffix before switching to the next suggestion. + + * inspector/front-end/StylesSidebarPane.js: + (): + +2011-01-28 Alejandro G. Castro <alex@igalia.com> + + Reviewed by Xan Lopez. + + [GTK] Fix dist compilation for the release + https://bugs.webkit.org/show_bug.cgi?id=53290 + + * GNUmakefile.am: Added inspector files to the extra dist. + +2011-01-28 Ilya Sherman <isherman@chromium.org> + + Reviewed by Andreas Kling. + + Const-correct HTMLSelectElement and WebSelectElement + https://bugs.webkit.org/show_bug.cgi?id=53293 + + * html/HTMLSelectElement.cpp: + (WebCore::HTMLSelectElement::value): const. + * html/HTMLSelectElement.h: + +2011-01-28 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76893. + http://trac.webkit.org/changeset/76893 + https://bugs.webkit.org/show_bug.cgi?id=53287 + + It made some tests crash on GTK and Qt debug bots (Requested + by Ossy on #webkit). + + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + (JSC::Bindings::RootObject::addRuntimeObject): + (JSC::Bindings::RootObject::removeRuntimeObject): + * bridge/runtime_root.h: + +2011-01-27 Greg Coletta <greg.coletta@nokia.com> + + Reviewed by Laszlo Gombos. + + Get rid of prefix header dependency for WebKit2 build system + https://bugs.webkit.org/show_bug.cgi?id=50174 + + Guard EmptyProtocalDefinitions.h to make sure it's not included twice. + + * platform/mac/EmptyProtocolDefinitions.h: + +2011-01-27 Abhishek Arya <inferno@chromium.org> + + Reviewed by Dan Bernstein. + + Recalc table sections if needed before calculating the first line + box baseline. + https://bugs.webkit.org/show_bug.cgi?id=53265 + + When we try to calculate the baseline position of a table cell, + we recurse through all the child sibling boxes (when children are + non inline) and add their first linebox baseline values. If one of + the children is a table with pending section recalc, we will access + wrong table section values. We recalc table sections if it is needed. + + Test: fast/table/recalc-section-first-body-crash-main.html + + * rendering/RenderTable.cpp: + (WebCore::RenderTable::firstLineBoxBaseline): + +2011-01-27 Adrienne Walker <enne@google.com> + + Reviewed by Kenneth Russell. + + [chromium] Add CRASH calls to further debug tiled compositor memcpy crash. + https://bugs.webkit.org/show_bug.cgi?id=52379 + + Test: LayoutTests/compositing (to verify these weren't triggered) + + * platform/graphics/chromium/LayerTilerChromium.cpp: + (WebCore::LayerTilerChromium::invalidateRect): + (WebCore::LayerTilerChromium::update): + +2011-01-27 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact + https://bugs.webkit.org/show_bug.cgi?id=53242 + + * inspector/front-end/StylesSidebarPane.js: + (WebInspector.StylePropertyTreeElement.prototype): + +2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76891. + http://trac.webkit.org/changeset/76891 + https://bugs.webkit.org/show_bug.cgi?id=53280 + + Makes every layout test crash (Requested by othermaciej on + #webkit). + + * page/EventHandler.cpp: + * page/EventHandler.h: + * rendering/RenderObject.cpp: + (WebCore::RenderObject::styleDidChange): + +2011-01-27 Ryosuke Niwa <rniwa@webkit.org> + + Unreviewed, rolling out r76839. + http://trac.webkit.org/changeset/76839 + https://bugs.webkit.org/show_bug.cgi?id=49744 + + broke pixel tests + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::localCaretRect): + +2011-01-27 Emil A Eklund <eae@chromium.org> + + Reviewed by Darin Adler. + + contentEditable formatBlock crashes on divs with contenteditable="false" + https://bugs.webkit.org/show_bug.cgi?id=53263 + + Check if editableRootForPosition returns null for position. + + Test: editing/execCommand/format-block-contenteditable-false.html + + * editing/FormatBlockCommand.cpp: + (WebCore::FormatBlockCommand::formatRange): + +2011-01-27 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Darin Adler. + + Remove RenderMedia members that aren't used. + https://bugs.webkit.org/show_bug.cgi?id=53245 + + Refactoring, no change in behavior, so no new tests. + + * rendering/RenderMedia.h: Removed unused member variables. + +2011-01-27 Michael Saboff <msaboff@apple.com> + + Reviewed by Darin Adler. + + Potentially Unsafe HashSet of RuntimeObject* in RootObject definition + https://bugs.webkit.org/show_bug.cgi?id=53271 + + Precautionary change. + Changed RootObject to use WeakGCMap instead of HashSet. + Found will looking for another issue, but can't produce a test case + that is problematic. THerefore there aren't any new tests. + + * bridge/runtime_root.cpp: + (JSC::Bindings::RootObject::invalidate): + (JSC::Bindings::RootObject::addRuntimeObject): + (JSC::Bindings::RootObject::removeRuntimeObject): + * bridge/runtime_root.h: + +2011-01-27 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Rename Typed Array slice() to subset() + https://bugs.webkit.org/show_bug.cgi?id=53273 + + * bindings/js/JSArrayBufferViewHelper.h: + (WebCore::constructArrayBufferView): + * bindings/v8/custom/V8ArrayBufferViewCustom.h: + (WebCore::constructWebGLArray): + * html/canvas/Float32Array.cpp: + (WebCore::Float32Array::subset): + * html/canvas/Float32Array.h: + * html/canvas/Float32Array.idl: + * html/canvas/Int16Array.cpp: + (WebCore::Int16Array::subset): + * html/canvas/Int16Array.h: + * html/canvas/Int16Array.idl: + * html/canvas/Int32Array.cpp: + (WebCore::Int32Array::subset): + * html/canvas/Int32Array.h: + * html/canvas/Int32Array.idl: + * html/canvas/Int8Array.cpp: + (WebCore::Int8Array::subset): + * html/canvas/Int8Array.h: + * html/canvas/Int8Array.idl: + * html/canvas/TypedArrayBase.h: + (WebCore::TypedArrayBase::subsetImpl): + * html/canvas/Uint16Array.cpp: + (WebCore::Uint16Array::subset): + * html/canvas/Uint16Array.h: + * html/canvas/Uint16Array.idl: + * html/canvas/Uint32Array.cpp: + (WebCore::Uint32Array::subset): + * html/canvas/Uint32Array.h: + * html/canvas/Uint32Array.idl: + * html/canvas/Uint8Array.cpp: + (WebCore::Uint8Array::subset): + * html/canvas/Uint8Array.h: + * html/canvas/Uint8Array.idl: + +2011-01-27 Darin Adler <darin@apple.com> + + Reviewed by Dan Bernstein. + + Changing cursor style has no effect until the mouse moves + https://bugs.webkit.org/show_bug.cgi?id=14344 + rdar://problem/7563712 + + No tests added because we don't have infrastructure for testing actual cursor + changes (as opposed to cursor style computation) at this time. We might add it later. + + * page/EventHandler.cpp: + (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added. + * page/EventHandler.h: Ditto. + + * rendering/RenderObject.cpp: + (WebCore::areNonIdenticalCursorListsEqual): Added. + (WebCore::areCursorsEqual): Added. + (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if + cursor styles changed. + +2011-01-27 Leo Yang <leo.yang@torchmobile.com.cn> + + Reviewed by Dirk Schulze. + + SVG Use Cycle is not detected + https://bugs.webkit.org/show_bug.cgi?id=52544 + + We should check if SVGUseElement::buildInstanceTree finds problem + for every child node. If it finds problem for any children we must + return immediately because otherwise the foundProblem variable may + be rewritten to false. + + Test: svg/custom/recursive-use2.svg + + * svg/SVGUseElement.cpp: + (WebCore::SVGUseElement::buildInstanceTree): + +2011-01-27 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call + https://bugs.webkit.org/show_bug.cgi?id=53054 + + Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match. + +2011-01-27 Yi Shen <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com> + + Reviewed by Andreas Kling. + + [Qt] Add fullscreen media control button for html video + https://bugs.webkit.org/show_bug.cgi?id=51543 + + Implement media control fullscreen button for QtWebKit html5 video. + + * css/mediaControlsQt.css: + (video::-webkit-media-controls-fullscreen-button): + * platform/qt/RenderThemeQt.cpp: + (WebCore::RenderThemeQt::paintMediaFullscreenButton): + +2011-01-27 Nate Chapin <japhet@chromium.org> + + Reviewed by Adam Barth. + + Remove FrameLoader::url() and update callers to use + Document::url(). + https://bugs.webkit.org/show_bug.cgi?id=41165 + + Refactor, no new tests. + + * WebCore.exp.in: + * dom/Document.cpp: + (WebCore::Document::processHttpEquiv): + (WebCore::Document::removePendingSheet): + * history/CachedFrame.cpp: + (WebCore::CachedFrameBase::CachedFrameBase): + * history/PageCache.cpp: + (WebCore::logCanCacheFrameDecision): + (WebCore::PageCache::canCachePageContainingThisFrame): + * html/HTMLFrameElementBase.cpp: + (WebCore::HTMLFrameElementBase::isURLAllowed): + * html/HTMLPlugInImageElement.cpp: + (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL): + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::inspectedURL): + * inspector/InspectorResourceAgent.cpp: + (WebCore::buildObjectForFrame): + * loader/DocumentWriter.cpp: + (WebCore::DocumentWriter::replaceDocument): + (WebCore::DocumentWriter::deprecatedFrameEncoding): + * loader/FrameLoader.cpp: + * loader/FrameLoader.h: + * loader/HistoryController.cpp: + (WebCore::HistoryController::updateForStandardLoad): + (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList): + (WebCore::HistoryController::updateForSameDocumentNavigation): + * loader/NavigationScheduler.cpp: + (WebCore::ScheduledHistoryNavigation::fire): + (WebCore::NavigationScheduler::scheduleLocationChange): + (WebCore::NavigationScheduler::scheduleRefresh): + * page/FrameView.cpp: + (WebCore::FrameView::updateControlTints): + * page/Location.cpp: + (WebCore::Location::url): + (WebCore::Location::setProtocol): + (WebCore::Location::setHost): + (WebCore::Location::setHostname): + (WebCore::Location::setPort): + (WebCore::Location::setPathname): + (WebCore::Location::setSearch): + (WebCore::Location::setHash): + (WebCore::Location::reload): + * page/Page.cpp: + (WebCore::Page::goToItem): + +2011-01-27 Stephen White <senorblanco@chromium.org> + + Reviewed by Darin Adler. + + Fix performance regression in ImageQualityController::objectDestroyed(). + https://bugs.webkit.org/show_bug.cgi?id=52645 + + In r72282, I inadvertently introduced this regression by using a + linear search through the hash map on object destruction. This was + because the hash key consisted of both object pointer and layer id, + but on object destruction we only know the object pointer, requiring + a search to find all the layers. + By replacing the hash map with two nested hash maps, where the outer key + is the object and the inner key is the layer, we can find all the + relevant data for an object in one hash lookup. + + * rendering/RenderBoxModelObject.cpp: + Replace the (object,layer)->size HashMap with object->layer and + layer->size HashMaps. + (WebCore::ImageQualityController::isEmpty): + Implement isEmpty() for the outer HashMap. + (WebCore::ImageQualityController::removeLayer): + When a layer is removed, remove it from the inner hash map. + (WebCore::ImageQualityController::set): + Implement set(): if the inner map exists, set the layer->size tuple + directly. If not, create a new inner map, set the tuple, and insert + it in the outer map. + (WebCore::ImageQualityController::objectDestroyed): + Look up the object in the outer map only. + (WebCore::ImageQualityController::highQualityRepaintTimerFired): + Cosmetic changes for the renamed now-outer hash map. + (WebCore::ImageQualityController::shouldPaintAtLowQuality): + Do both outer and inner hash map lookups. Call set() to add/update + entries to the hash maps. keyDestroyed() is now removeLayer(). + (WebCore::imageQualityController): + Make the ImageQualityController a file-static global, so it can be + created and destroyed on the fly. + (WebCore::RenderBoxModelObject::~RenderBoxModelObject): + If there is no ImageQualityController, don't call objectDestroyed(). + If it's empty, delete it. + * rendering/RenderImage.cpp: + (WebCore::RenderImage::paintIntoRect): + Also pass the Image* as the (void*) layer, since 0 is not a valid + HashMap key. + +2011-01-27 Adrienne Walker <enne@google.com> + + Reviewed by James Robinson. + + [chromium] Tiled compositor crashes if compositing turned off mid-paint + https://bugs.webkit.org/show_bug.cgi?id=53198 + + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::drawLayers): + * platform/graphics/chromium/LayerTilerChromium.cpp: + (WebCore::LayerTilerChromium::update): + (WebCore::LayerTilerChromium::draw): + +2011-01-27 Carol Szabo <carol.szabo@nokia.com> + + Reviewed by David Hyatt. + + A corrupted counter tree is created when renderers are added to the + tree bypassing RenderObject::addChild + https://bugs.webkit.org/show_bug.cgi?id=51270 + + No new tests. This patch reimplements the fix for bugs 43812 and + 51637 and hence all tests are already there as part of the original + fixes for those bugs. + + * rendering/RenderCounter.cpp: + (WebCore::findPlaceForCounter): + Removed old workaround as this patch hopefully fixes the real + problem. + * rendering/RenderObject.cpp: + (WebCore::RenderObject::addChild): + Removed call to counter updater as it was moved to a lower level. + (WebCore::RenderObject::destroy): + Moved attached counter nodes destruction to after the node is + removed from the tree. + * rendering/RenderObjectChildList.cpp: + (WebCore::RenderObjectChildList::removeChildNode): + (WebCore::RenderObjectChildList::appendChildNode): + (WebCore::RenderObjectChildList::insertChildNode): + Added notifications to the Counter system such that the + CounterForest reflects the changes to the RendererTree. + * rendering/RenderWidget.cpp: + (WebCore::RenderWidget::destroy): + Applied the same changes as for RenderObject::destroy() + since RenderObject::destroy() is not called from here. + +2011-01-27 Adam Roben <aroben@apple.com> + + Add WKCACFViewLayerTreeHost + + This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render. + + Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use + WKCACFView for rendering + + * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a + non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window, + so we need a non-empty window to perform a valid test. + (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then + fall back to a LegacyCACFLayerTreeHost. + (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the + context flush from here... + (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to + call this function whenever changes are flushed to the context. + + * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange. + + * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: + (WebCore::LegacyCACFLayerTreeHost::createRenderer): + (WebCore::LegacyCACFLayerTreeHost::resize): + Changed to use flushContext instead of flushing the context manually so that we will always + notify the base class when the context gets flushed. + + (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the + base class will know what happened. Moved code to schedule a render from here... + (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here. + + * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange. + + * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added. + (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides + WKCACFView, isn't present, bail. Otherwise allocate and return a new host. + (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members. + (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously + marked that we needed to do so, and flush the context if our layer's bounds have changed. + (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to + contextDidChange. + (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering + (if we didn't already), then call up to the base class. + (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the + view's layer, and hook up our "context did change" callback. + (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next + time we paint. + (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is + able to render or not. + (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down + to the view. + (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view. + (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto. + (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right + size, then call up to the base class. + (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty + rects, then ask it to draw. + + * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h. + +2011-01-27 Adam Roben <aroben@apple.com> + + Move LegacyCACFLayerTreeHost into its own files + + More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost + should use WKCACFView for rendering + + Reviewed by Simon Fraser. + + * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files. + + * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added. + * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added. + +2011-01-27 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r76824. + + * platform/wince/DragDataWinCE.cpp: + (WebCore::DragData::dragDataMap): + +2011-01-27 Adam Roben <aroben@apple.com> + + Split CACFLayerTreeHost into base and derived classes + + The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch + will add a new derived class that replaces the D3D code with a different rendering API. + + For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a + little smaller. A later patch will move it to its own source files. + + Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost + should use WKCACFView for rendering + + Reviewed by Simon Fraser. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before + destroying the host, as that is now the API contract that clients must fulfill. + (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator. + (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the + new initialize function to perform initialization that has to happen after the vtable has + been set up. + + (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost): + (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): + (WebCore::LegacyCACFLayerTreeHost::initializeContext): + (WebCore::CACFLayerTreeHost::initialize): + Moved some initialization code from the CACFLayerTreeHost constructor into these new + functions. + + (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from + ~CACFLayerTreeHost. + (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this + point (which would be too late, since we won't be able to call into the derived class's + virtual functions), just assert that it has already been cleared (or was never set in the + first place). + (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from + CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing + CACFLayerTreeHost's data members directly. + + (WebCore::LegacyCACFLayerTreeHost::destroyRenderer): + (WebCore::CACFLayerTreeHost::destroyRenderer): + Moved some code to the new LegacyCACFLayerTreeHost function. + + (WebCore::LegacyCACFLayerTreeHost::resize): + (WebCore::LegacyCACFLayerTreeHost::renderTimerFired): + Moved these functions to LegacyCACFLayerTreeHost. + + (WebCore::LegacyCACFLayerTreeHost::paint): + (WebCore::CACFLayerTreeHost::paint): + Moved some code to the new LegacyCACFLayerTreeHost function. + + (WebCore::LegacyCACFLayerTreeHost::render): + (WebCore::LegacyCACFLayerTreeHost::renderSoon): + Moved these functions to LegacyCACFLayerTreeHost. + + (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context + from here... + (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function. + + (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time + to this new function... + (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here. + + (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry): + (WebCore::LegacyCACFLayerTreeHost::resetDevice): + Moved these functions to LegacyCACFLayerTreeHost. + + * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some + members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more + logically, and added some getters used by LegacyCACFLayerTreeHost. + +2011-01-27 Adam Roben <aroben@apple.com> + + Move CACFLayerTreeHostClient to its own header file + + Rubber-stamped by Steve Falkenburg. + + * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way + with the file. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include. + + * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient. + + * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added. + + * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here + from the header file. + + * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes + with more specific ones, plus a forward-declaration. + +2011-01-27 James Simonsen <simonjam@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Simplify small caps logic in complex text on linux + https://bugs.webkit.org/show_bug.cgi?id=53207 + + Test: fast/text/atsui-multiple-renderers.html + fast/text/atsui-small-caps-punctuation-size.html + + * platform/graphics/chromium/ComplexTextControllerLinux.cpp: + (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes. + (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above. + +2011-01-27 Adam Barth <abarth@webkit.org> + + In which I attempt to fix the EFL build. + + * CMakeLists.txt: + +2011-01-25 Levi Weintraub <leviw@chromium.org> + + Reviewed by Darin Adler. + + Adding border and padding to the calculation of the local caret rect for RenderBoxes. + Corrected for mistake in r76625 + + Undo moves caret to invalid position + https://bugs.webkit.org/show_bug.cgi?id=49744 + + Tests: editing/selection/caret-painting-after-paste-undo-rtl.html + editing/selection/caret-painting-after-paste-undo.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::localCaretRect): + +2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76825. + http://trac.webkit.org/changeset/76825 + https://bugs.webkit.org/show_bug.cgi?id=53256 + + "caused crashes on GTK and chromium" (Requested by rniwa on + #webkit). + + * rendering/RenderBoxModelObject.cpp: + (WebCore::ImageQualityController::keyDestroyed): + (WebCore::ImageQualityController::objectDestroyed): + (WebCore::ImageQualityController::highQualityRepaintTimerFired): + (WebCore::ImageQualityController::shouldPaintAtLowQuality): + (WebCore::imageQualityController): + (WebCore::RenderBoxModelObject::~RenderBoxModelObject): + +2011-01-27 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Generalize the mechanism view-source uses to remember the source for an HTMLToken + https://bugs.webkit.org/show_bug.cgi?id=53200 + + Currently view-source tracks the source associated with each HTMLToken. + We want to re-use this mechanism for the new XSS auditor. This patch + moves this code into its own class so it can be shared between the + view-source parser and the general HTML parser. This patch also add + support for tracking the source of tokens that span document.write + boundaries. + + No functional change. This code change is somewhat tested by our + view-source layout tests. + + * Android.mk: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + - Fun with updating build files. + * html/parser/HTMLDocumentParser.cpp: + (WebCore::HTMLDocumentParser::pumpTokenizer): + - Teach HTMLDocumentParser to track the source for HTMLTokens. + Currently, this information isn't used, but it will be shortly. + I ran the HTML parser benchmark and this change didn't have a + measurable effect. + * html/parser/HTMLDocumentParser.h: + - Composite in the HTMLSourceTracker. + * html/parser/HTMLSourceTracker.cpp: Added. + (WebCore::HTMLSourceTracker::HTMLSourceTracker): + (WebCore::HTMLSourceTracker::start): + (WebCore::HTMLSourceTracker::end): + - This function should eventualy be folded into HTMLTokenizer. + (WebCore::HTMLSourceTracker::sourceForToken): + * html/parser/HTMLSourceTracker.h: Added. + * html/parser/HTMLToken.h: + - Now HTMLTokens always have a start index of zero. To do the job + of the old start index, this patch introduces the notion of a + baseOffset. Unlike the start index (which was used as the base + offset for all the other indicies), the baseOffset can change + over the lifetime of the token. We need the flexibility to + change the offset for tokens that span document.write boundaries. + Values are now normalized to zero-offset when stored. + (WebCore::HTMLToken::clear): + (WebCore::HTMLToken::setBaseOffset): + (WebCore::HTMLToken::end): + (WebCore::HTMLToken::beginAttributeName): + (WebCore::HTMLToken::endAttributeName): + (WebCore::HTMLToken::beginAttributeValue): + (WebCore::HTMLToken::endAttributeValue): + * html/parser/HTMLViewSourceParser.cpp: + - Updates the HTMLViewSourceParser to use the new + HTMLSourceTracker. + (WebCore::HTMLViewSourceParser::pumpTokenizer): + (WebCore::HTMLViewSourceParser::append): + (WebCore::HTMLViewSourceParser::sourceForToken): + - This function now just calls through to HTMLSourceTracker. + * html/parser/HTMLViewSourceParser.h: + * platform/text/SegmentedString.cpp: + (WebCore::SegmentedString::currentColumn): + (WebCore::SegmentedString::setCurrentPosition): + * platform/text/SegmentedString.h: + (WebCore::SegmentedString::numberOfCharactersConsumed): + - We need to handle the general case now. The "slow" version + doesn't turn out to be any slower in practice anyway. + +2011-01-27 Sam Weinig <sam@webkit.org> + + Fix all the builds. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::paintOverhangAreas): Add parameters. + +2011-01-27 Sam Weinig <sam@webkit.org> + + Reviewed by Dave Hyatt. + + Add ability to do an unconstrained scroll on a ScrollView + https://bugs.webkit.org/show_bug.cgi?id=53249 + + * platform/ScrollView.cpp: + (WebCore::ScrollView::ScrollView): + Initialize m_constrainsScrollingToContentEdge to true. + + (WebCore::ScrollView::setScrollOffset): + Only constrain the offset if the m_constrainsScrollingToContentEdge is set. + + (WebCore::ScrollView::updateScrollbars): + Simplify expression converting an IntSize to an IntPoint. + + (WebCore::ScrollView::paint): + Paint the overhang if there is any. + + (WebCore::ScrollView::calculateOverhangAreasForPainting): + Calculate the overhang in viewport coordinates for painting. + + * platform/ScrollView.h: + (WebCore::ScrollView::constrainsScrollingToContentEdge): + (WebCore::ScrollView::setConstrainsScrollingToContentEdge): + Add bit to control whether the scroll position should be constrained + to the content edge when set. + + * platform/ScrollbarThemeComposite.cpp: + (WebCore::usedTotalSize): + (WebCore::ScrollbarThemeComposite::thumbPosition): + (WebCore::ScrollbarThemeComposite::thumbLength): + * platform/mac/ScrollbarThemeMac.mm: + (WebCore::ScrollbarThemeMac::paint): + Improve calculations of thumb size and position to take overhang into account. + +2011-01-27 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + SVG animation of Paths with segments of different coordinate modes on begin and end + https://bugs.webkit.org/show_bug.cgi?id=52984 + + At the moment we just support SVG path animations, if the number of segments on the given start path + is the same as the number of segments on the given end path. But a segment on a given position must be identical + on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical. + If MoveToRel is on the second position on the start path a MoveToRel must be on the second position + of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel + in the start path, we can use MoveToAbs on the same position in the end path. + + This patch fixes the blending code to follow the spec here. It was necessary to track the current position of + both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back + to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the + animation. + + Tests: svg/animations/animate-path-animation-Cc-Ss.html + svg/animations/animate-path-animation-Ll-Vv-Hh.html + svg/animations/animate-path-animation-Qq-Tt.html + svg/animations/animate-path-animation-cC-sS-inverse.html + svg/animations/animate-path-animation-lL-vV-hH-inverse.html + svg/animations/animate-path-animation-qQ-tT-inverse.html + + * svg/SVGPathBlender.cpp: + (WebCore::blendFloatPoint): + (WebCore::blendAnimatedFloat): + (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat): + (WebCore::SVGPathBlender::blendAnimatedFloatPoint): + (WebCore::SVGPathBlender::blendMoveToSegment): + (WebCore::SVGPathBlender::blendLineToSegment): + (WebCore::SVGPathBlender::blendLineToHorizontalSegment): + (WebCore::SVGPathBlender::blendLineToVerticalSegment): + (WebCore::SVGPathBlender::blendCurveToCubicSegment): + (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment): + (WebCore::SVGPathBlender::blendCurveToQuadraticSegment): + (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment): + (WebCore::SVGPathBlender::blendArcToSegment): + (WebCore::coordinateModeOfCommand): + (WebCore::isSegmentEqual): + (WebCore::SVGPathBlender::blendAnimatedPath): + (WebCore::SVGPathBlender::cleanup): + * svg/SVGPathBlender.h: + +2011-01-27 Cris Neckar <cdn@chromium.org> + + Reviewed by Dimitri Glazkov. + + Clear the parent on a css keyframe's m_style when removing it from the stylesheet. + https://bugs.webkit.org/show_bug.cgi?id=52320 + + Test: fast/css/css-keyframe-style-crash.html + + * css/CSSRuleList.cpp: + (WebCore::CSSRuleList::deleteRule): + * css/WebKitCSSKeyframesRule.cpp: + (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule): + +2011-01-27 Rob Buis <rwlbuis@gmail.com> + + Reviewed by Kent Tamura. + + Color changes to option elements in a select multiple aren't drawn immediately + https://bugs.webkit.org/show_bug.cgi?id=49790 + + Redirect style changes on <option> element to the owner <select> element. + + Test: fast/repaint/select-option-background-color.html + + * html/HTMLOptionElement.cpp: + (WebCore::HTMLOptionElement::setRenderStyle): + +2011-01-19 Stephen White <senorblanco@chromium.org> + + Reviewed by Darin Adler. + + Fix performance regression in ImageQualityController::objectDestroyed(). + https://bugs.webkit.org/show_bug.cgi?id=52645 + + In r72282, I inadvertently introduced this regression by using a + linear search through the hash map on object destruction. This was + because the hash key consisted of both object pointer and layer id, + but on object destruction we only know the object pointer, requiring + a search to find all the layers. + By replacing the hash map with two nested hash maps, where the outer key + is the object and the inner key is the layer, we can find all the + relevant data for an object in one hash lookup. + + * rendering/RenderBoxModelObject.cpp: + Replace the (object,layer)->size HashMap with object->layer and + layer->size HashMaps. + (WebCore::ImageQualityController::isEmpty): + Implement isEmpty() for the outer HashMap. + (WebCore::ImageQualityController::removeLayer): + When a layer is removed, remove it from the inner hash map. + (WebCore::ImageQualityController::set): + Implement set(): if the inner map exists, set the layer->size tuple + directly. If not, create a new inner map, set the tuple, and insert + it in the outer map. + (WebCore::ImageQualityController::objectDestroyed): + Look up the object in the outer map only. + (WebCore::ImageQualityController::highQualityRepaintTimerFired): + Cosmetic changes for the renamed now-outer hash map. + (WebCore::ImageQualityController::shouldPaintAtLowQuality): + Do both outer and inner hash map lookups. Call set() to add/update + entries to the hash maps. keyDestroyed() is now removeLayer(). + (WebCore::imageQualityController): + Make the ImageQualityController a file-static global, so it can be + created and destroyed on the fly. + (WebCore::RenderBoxModelObject::~RenderBoxModelObject): + If there is no ImageQualityController, don't call objectDestroyed(). + If it's empty, delete it. + + +2011-01-26 Enrica Casucci <enrica@apple.com> + + Reviewed by Darin Adler and Adam Roben. + + WebKit2: add support for drag and drop on Windows + https://bugs.webkit.org/show_bug.cgi?id=52775 + <rdar://problem/8514409> + + On Windows the access to the content being dragged is + provided via the IDataObject interface that is made available + to the window that registers itself as drop target. + Since this interface cannot be accessed from the WebProcess, + in every call to one of the methods of the IDropTarget interface + we serialize the content of the drag clipboard and send it over to + the WebProcess. + The bulk of this patch consists in the refactoring needed in DragData + and ClipboardWin classes to extract the data from the serialized object. + + * platform/DragData.cpp: + * platform/DragData.h: + * platform/win/ClipboardUtilitiesWin.cpp: + (WebCore::getWebLocData): + (WebCore::getURL): + (WebCore::getPlainText): + (WebCore::getTextHTML): + (WebCore::getCFHTML): + (WebCore::fragmentFromFilenames): + (WebCore::containsFilenames): + (WebCore::fragmentFromHTML): + (WebCore::containsHTML): + (WebCore::getClipboardData): + * platform/win/ClipboardUtilitiesWin.h: + * platform/win/ClipboardWin.cpp: + (WebCore::Clipboard::create): + (WebCore::ClipboardWin::ClipboardWin): + (WebCore::ClipboardWin::getData): + (WebCore::ClipboardWin::types): + (WebCore::ClipboardWin::files): + (WebCore::ClipboardWin::hasData): + * platform/win/ClipboardWin.h: + (WebCore::ClipboardWin::create): + * platform/win/DragDataWin.cpp: + (WebCore::DragData::DragData): + (WebCore::DragData::containsURL): + (WebCore::DragData::dragDataMap): + (WebCore::DragData::asURL): + (WebCore::DragData::containsFiles): + (WebCore::DragData::asFilenames): + (WebCore::DragData::containsPlainText): + (WebCore::DragData::asPlainText): + (WebCore::DragData::canSmartReplace): + (WebCore::DragData::containsCompatibleContent): + (WebCore::DragData::asFragment): + +2011-01-27 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Space characters in source document interfere with reported caret offset + https://bugs.webkit.org/show_bug.cgi?id=53033 + + Calculate caret offset from rendered text instead of from node contents. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (objectAndOffsetUnignored): Calculate the caret offset based only + on positions and ranges, instead of using the computed offset in + the container node. + +2011-01-26 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=53197 + <rdar://problem/8895682> Make WebKit2 printing asynchronous + + * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before. + + * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same + transformation as spoolPages does for consistency. + +2011-01-27 David Grogan <dgrogan@google.com> + + Reviewed by Jeremy Orlow. + + initial support for close() in indexeddb backend + https://bugs.webkit.org/show_bug.cgi?id=53150 + + Test: storage/indexeddb/transaction-after-close.html + + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::IDBDatabase): + (WebCore::IDBDatabase::transaction): + (WebCore::IDBDatabase::close): + * storage/IDBDatabase.h: + * storage/IDBDatabase.idl: + * storage/IDBDatabaseBackendImpl.cpp: + (WebCore::IDBDatabaseBackendImpl::transaction): + (WebCore::IDBDatabaseBackendImpl::close): + +2011-01-27 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + SVG animation doesn't support calcMode discrete for number and color values. + https://bugs.webkit.org/show_bug.cgi?id=53189 + + Add support for calcMode discrete on number and color animation. + + Tests: svg/animations/animate-color-calcMode-discrete.html + svg/animations/animate-number-calcMode-discrete.html + + * svg/SVGAnimateElement.cpp: + (WebCore::SVGAnimateElement::calculateAnimatedValue): + +2011-01-26 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + shaderSource needs to preserve original source + https://bugs.webkit.org/show_bug.cgi?id=52833 + + Test: fast/canvas/webgl/gl-getshadersource.html + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH. + (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call. + (WebCore::WebGLRenderingContext::shaderSource): Cache the source. + * html/canvas/WebGLShader.cpp: Cache shader source. + (WebCore::WebGLShader::WebGLShader): + * html/canvas/WebGLShader.h: Ditto. + (WebCore::WebGLShader::getSource): + (WebCore::WebGLShader::setSource): + +2011-01-27 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r76743. + + * platform/graphics/wince/FontWinCE.cpp: + (WebCore::TextRunComponent::TextRunComponent): + +2011-01-27 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code. + https://bugs.webkit.org/show_bug.cgi?id=53234 + + * inspector/front-end/ScopeChainSidebarPane.js: + (WebInspector.ScopeChainSidebarPane): + (WebInspector.ScopeChainSidebarPane.prototype.update): + +2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76789. + http://trac.webkit.org/changeset/76789 + https://bugs.webkit.org/show_bug.cgi?id=53238 + + Broke GTK layout tests (Requested by podivilov on #webkit). + + * inspector/front-end/ScopeChainSidebarPane.js: + (WebInspector.ScopeChainSidebarPane): + (WebInspector.ScopeChainSidebarPane.prototype.update): + +2011-01-27 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: store all settings related to the agents on the frontend side + https://bugs.webkit.org/show_bug.cgi?id=53174 + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.exp.in: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/ScriptDebugServer.cpp: + * bindings/js/ScriptDebugServer.h: + * bindings/js/ScriptProfiler.cpp: + * bindings/js/ScriptProfiler.h: + * bindings/v8/ScriptDebugServer.cpp: + * bindings/v8/ScriptDebugServer.h: + * bindings/v8/ScriptProfiler.cpp: + * bindings/v8/ScriptProfiler.h: + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored + on the front-end side and will be pushed to the backend when the frontend is loaded. + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::restoreDebugger): + (WebCore::InspectorAgent::restoreProfiler): + (WebCore::InspectorAgent::enableProfiler): + (WebCore::InspectorAgent::disableProfiler): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::disableDebugger): + * inspector/InspectorAgent.h: + * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only + if the front-end was opened during current browser session and XHR logging is turned on + there. + (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): + (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): + * inspector/InspectorDebuggerAgent.cpp: + * inspector/InspectorDebuggerAgent.h: + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): + (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::InspectorProfilerAgent): + (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): + * inspector/InspectorSettings.cpp: Removed. + * inspector/InspectorSettings.h: Removed. + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + * inspector/InspectorState.h: + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared): + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): + (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction): + (WebInspector.ConsoleView.prototype._handleContextMenuEvent): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._toggleProfiling): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._toggleDebugging): + * inspector/front-end/Settings.js: + (WebInspector.Settings): + * inspector/front-end/inspector.js: + +2011-01-27 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code. + https://bugs.webkit.org/show_bug.cgi?id=53234 + + * inspector/front-end/ScopeChainSidebarPane.js: + (WebInspector.ScopeChainSidebarPane): + (WebInspector.ScopeChainSidebarPane.prototype.update): + +2011-01-27 Alexander Pavlov <apavlov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL + https://bugs.webkit.org/show_bug.cgi?id=53171 + + * inspector/front-end/inspector.js: + (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only) + +2011-01-27 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + [V8] Crash in WebCore::addMessageToConsole + https://bugs.webkit.org/show_bug.cgi?id=53227 + + * bindings/v8/V8Proxy.cpp: check that the Frame where the error + occured still has a page before getting a console object from it. + (WebCore::V8Proxy::reportUnsafeAccessTo): + +2011-01-27 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Remove IDBCallbacks::onSuccess() used for null values. + https://bugs.webkit.org/show_bug.cgi?id=53178 + + Remove the IDBCallbacks::onSuccess() function that was used for + null values, and replace such calls with calls to + IDBCallBacks::onSuccess(SerializedScriptValue::nullValue()) + instead. + + No new functionality, so no new tests. + + * storage/IDBCallbacks.h: + * storage/IDBCursorBackendImpl.cpp: + (WebCore::IDBCursorBackendImpl::updateInternal): + (WebCore::IDBCursorBackendImpl::continueFunctionInternal): + * storage/IDBIndexBackendImpl.cpp: + (WebCore::IDBIndexBackendImpl::openCursorInternal): + * storage/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::deleteInternal): + (WebCore::IDBObjectStoreBackendImpl::openCursorInternal): + * storage/IDBRequest.cpp: + * storage/IDBRequest.h: + +2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76773. + http://trac.webkit.org/changeset/76773 + https://bugs.webkit.org/show_bug.cgi?id=53230 + + breaks multiple GTK media tests (Requested by philn-tp on + #webkit). + + * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: + (WebCore::mimeTypeCache): + +2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76770. + http://trac.webkit.org/changeset/76770 + https://bugs.webkit.org/show_bug.cgi?id=53229 + + Some inspector tests fail (Requested by yurys on #webkit). + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.exp.in: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): + * bindings/js/ScriptDebugServer.h: + * bindings/js/ScriptProfiler.cpp: + (WebCore::ScriptProfiler::isProfilerAlwaysEnabled): + * bindings/js/ScriptProfiler.h: + * bindings/v8/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled): + * bindings/v8/ScriptDebugServer.h: + * bindings/v8/ScriptProfiler.cpp: + (WebCore::ScriptProfiler::isProfilerAlwaysEnabled): + * bindings/v8/ScriptProfiler.h: + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::restoreDebugger): + (WebCore::InspectorAgent::restoreProfiler): + (WebCore::InspectorAgent::ensureSettingsLoaded): + (WebCore::InspectorAgent::enableProfiler): + (WebCore::InspectorAgent::disableProfiler): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::disableDebugger): + * inspector/InspectorAgent.h: + (WebCore::InspectorAgent::settings): + * inspector/InspectorConsoleAgent.cpp: + (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): + (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled): + * inspector/InspectorDebuggerAgent.h: + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): + (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::InspectorProfilerAgent): + (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): + * inspector/InspectorSettings.cpp: Added. + (WebCore::InspectorSettings::InspectorSettings): + (WebCore::InspectorSettings::getBoolean): + (WebCore::InspectorSettings::setBoolean): + (WebCore::InspectorSettings::getLong): + (WebCore::InspectorSettings::setLong): + (WebCore::InspectorSettings::registerBoolean): + (WebCore::InspectorSettings::registerLong): + * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h. + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + * inspector/InspectorState.h: + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged): + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): + (WebInspector.ConsoleView.prototype._handleContextMenuEvent): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._toggleProfiling): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._toggleDebugging): + * inspector/front-end/Settings.js: + (WebInspector.Settings): + * inspector/front-end/inspector.js: + +2011-01-26 Philippe Normand <pnormand@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] LayoutTests/media/audio-mpeg4-supported.html fails + https://bugs.webkit.org/show_bug.cgi?id=53125 + + * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: + (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache. + +2011-01-26 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: store all settings related to the agents on the frontend side + https://bugs.webkit.org/show_bug.cgi?id=53174 + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.exp.in: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored + on the front-end side and will be pushed to the backend when the frontend is loaded. + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::restoreDebugger): + (WebCore::InspectorAgent::restoreProfiler): + (WebCore::InspectorAgent::enableProfiler): + (WebCore::InspectorAgent::disableProfiler): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::disableDebugger): + * inspector/InspectorAgent.h: + * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only + if the front-end was opened during current browser session and XHR logging is turned on + there. + (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): + (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl): + (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl): + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::enable): + (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): + * inspector/InspectorProfilerAgent.h: + * inspector/InspectorSettings.cpp: Removed. + * inspector/InspectorSettings.h: Removed. + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + * inspector/InspectorState.h: + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared): + (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher): + (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction): + (WebInspector.ConsoleView.prototype._handleContextMenuEvent): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._toggleProfiling): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._toggleDebugging): + * inspector/front-end/Settings.js: + (WebInspector.Settings): + * inspector/front-end/inspector.js: + +2011-01-27 Dan Bernstein <mitz@apple.com> + + Reviewed by Sam Weinig. + + REGRESSION (r76743): Uneven spacing in right-to-left justified text + https://bugs.webkit.org/show_bug.cgi?id=53225 + + Fixes failure in fast/text/atsui-spacing-features.html + + There was an inconsistency between rendering code and font code in the interpretation of + 'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of + visual order rather than logical. + + * platform/graphics/Font.cpp: + (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to + iterate in visual order accordingly. + * platform/graphics/Font.h: + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount(). + (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion + condition with respect to the first character, which is the trailing character in visual order. + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to + expansionOpportunityCount(). + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto. + +2011-01-26 Adam Roben <aroben@apple.com> + + Don't create the Direct3D device before it's first needed + + We only need the device once we decide to render. There's no point in creating it before + then. + + Reviewed by Sam Weinig. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here. + We already have code to create it when we first try to draw. + (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's + bounds so that the bounds will take effect the next time we render (which could be just + after this function returns). + +2011-01-26 Adam Roben <aroben@apple.com> + + Add assertions that CACFLayerTreeHost gains and loses an HWND only once + + CACFLayerTreeHost doesn't support any other use pattern. + + Reviewed by Sam Weinig. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member. + (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window, + to having a window, to not having a window just once over the lifetime of this object. + + * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state. + +2011-01-26 Adam Roben <aroben@apple.com> + + Notify layers that their animations have started when we flush the context, not when we + render + + r76372 separated context flushing from rendering, but this bit of code got left behind. + + Reviewed by Sam Weinig. + + * platform/graphics/ca/win/CACFLayerTreeHost.cpp: + (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to + notifyAnimationsStarted. + (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to + notifyAnimationsStarted after we flush the context. + (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed + to call PlatformCALayer::animationStarted rather than calling through to the client + directly. + + * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted. + +2011-01-26 Adam Roben <aroben@apple.com> + + Small cleanup in MediaPlayerPrivateFullscreenWindow + + Reviewed by Sam Weinig. + + * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: + (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved + code here from close(), since this was the only place that called it after the following + change to createWindow. + (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the + case where we had already created the window with an assertion that we have not already done + so. Our single caller (FullscreenVideoController) did not require this behavior. + + * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView. + +2011-01-26 Sam Weinig <sam@webkit.org> + + Reviewed by Adam Roben. + + Move ScrollView scroll wheel code to ScrollAnimator. + + * platform/ScrollAnimator.cpp: + (WebCore::ScrollAnimator::handleWheelEvent): + * platform/ScrollAnimator.h: + Moved implementation of handleWheelEvent from ScrollView::wheelEvent. + + * platform/ScrollView.cpp: + (WebCore::ScrollView::wheelEvent): + Call down to the ScrollableArea. + + * platform/ScrollableArea.cpp: + (WebCore::ScrollableArea::handleWheelEvent): + Call down to the ScrollAnimator. + + * platform/ScrollableArea.h: + (WebCore::ScrollableArea::scrollPosition): + (WebCore::ScrollableArea::minimumScrollPosition): + (WebCore::ScrollableArea::maximumScrollPosition): + (WebCore::ScrollableArea::visibleContentRect): + (WebCore::ScrollableArea::visibleHeight): + (WebCore::ScrollableArea::visibleWidth): + Add functions needed to implement wheel event in the animator. + +2011-01-26 David Kilzer <ddkilzer@apple.com> + + <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork + <rdar://problem/8821760> + + Reviewed by Antti Koivisto. + + This adds support for HTTP pipelining in CFNetwork, but does not + enable it. To enable it post-SnowLeopard, use this command: + + defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES + + Once enabled, it is possible to force the same load priority + (high) to be sent to CFNetwork to allow WebCore to handle the + scheduling: + + defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES + + * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and + _wkSetHTTPPipeliningPriority. + + * loader/DocumentThreadableLoader.cpp: + (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight): + Copy the priority to preflightRequest. + + * loader/ResourceLoadScheduler.cpp: + (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code + at the end of the method to use an early return. + + * loader/cache/CachedResourceRequest.cpp: + (WebCore::CachedResourceRequest::load): Set the priority on the + ResourceRequest object based on the priority of the + CachedResourceRequest before calling + ResourceLoadScheduler::scheduleSubresourceLoad(). + + * loader/icon/IconLoader.cpp: + (WebCore::IconLoader::startLoading): Create a ResourceRequest + object and set its priority to ResourceLoadPriorityLow before + passing it to ResourceLoadScheduler::scheduleSubresourceLoad(). + + * platform/mac/WebCoreSystemInterface.h: + (wkGetHTTPPipeliningPriority): Added. + (wkSetHTTPPipeliningPriority): Added. + * platform/mac/WebCoreSystemInterface.mm: + (wkGetHTTPPipeliningPriority): Added. + (wkSetHTTPPipeliningPriority): Added. + + * platform/network/ResourceRequestBase.cpp: + (WebCore::ResourceRequestBase::adopt): Set m_priority when + adopting a CrossThreadResourceRequestData. + (WebCore::ResourceRequestBase::copyData): Set m_priority when + creating a CrossThreadResourceRequestData. + (WebCore::ResourceRequestBase::priority): Added. + (WebCore::ResourceRequestBase::setPriority): Added. + (WebCore::equalIgnoringHeaderFields): Priorities must match when + comparing two ResourceRequest objects. + + * platform/network/ResourceRequestBase.h: + (WebCore::ResourceRequestBase::ResourceRequestBase): Set default + priority of new objects to ResourceLoadPriorityLow. + (WebCore::ResourceRequestBase::priority): Added declaration. + (WebCore::ResourceRequestBase::setPriority): Added declaration. + (WebCore::isHTTPPipeliningEnabled): Added. + (WebCore::shouldUseHTTPPipeliningPriority): Added. + + * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that + Mac OS X and Windows share code. + (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always + set the HTTP connection count per host, but return an + 'unlimited' value when using HTTP pipelining. This method used + to be defined in ResourceRequestMac.mm for Mac OS X. + (WebCore::readBooleanPreference): Added. Helper method for + reading boolean user defaults. + (WebCore::isHTTPPipeliningEnabled): Returns value of user + default key WebKitEnableHTTPPipelining, or false if not set. + (WebCore::shouldUseHTTPPipeliningPriority): Returns value of + user default key WebKitForceHTTPPipeliningPriorityHigh, or false + if not set. + * platform/network/cf/ResourceRequestCFNet.h: Updated so that + Mac OS X and Windows share code. Fixed indentation. + (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added. + (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added. + + * platform/network/mac/ResourceRequestMac.mm: + (WebCore::ResourceRequest::doUpdatePlatformRequest): Update + HTTP pipelining priority on NSMutableFURLRequest object. + (WebCore::ResourceRequest::doUpdateResourceRequest): Update + m_priority from the NSURLRequest object. + (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed. + Code is now shared with Windows in ResourceRequestCFNet.cpp. + +2011-01-26 Beth Dakin <bdakin@apple.com> + + Reviewed by Darin Adler. + + Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics + when using WKScrollbars. + + New WebKitSystemInterface Functionality. + * WebCore.exp.in: + * platform/mac/WebCoreSystemInterface.h: + * platform/mac/WebCoreSystemInterface.mm: + + Some of the terrible static arrays are now only needed in the + old non-WK code, so they are if-def'd now. + * platform/mac/ScrollbarThemeMac.mm: + + Just patching this function in a better way than I did + before. + (WebCore::updateArrowPlacement): + + Call into WK for the right values. + (WebCore::ScrollbarThemeMac::scrollbarThickness): + (WebCore::ScrollbarThemeMac::hasThumb): + (WebCore::ScrollbarThemeMac::minimumThumbLength): + + Return false if there are no buttons. + (WebCore::ScrollbarThemeMac::hasButtons): + + Return an empty IntRect if there are not buttons. + (WebCore::buttonRepaintRect): + +2011-01-26 Sam Weinig <sam@webkit.org> + + Reviewed by Maciej Stachowiak. + + Add events to represent the start/end of a gesture scroll + https://bugs.webkit.org/show_bug.cgi?id=53215 + + * WebCore.exp.in: + Add new file. + + * WebCore.xcodeproj/project.pbxproj: + Add new file. + + * page/EventHandler.cpp: + (WebCore::EventHandler::handleGestureEvent): + * page/EventHandler.h: + Add entry point for handling gesture events. + + * platform/PlatformGestureEvent.h: Added. + (WebCore::PlatformGestureEvent::PlatformGestureEvent): + (WebCore::PlatformGestureEvent::type): + (WebCore::PlatformGestureEvent::position): + (WebCore::PlatformGestureEvent::globalPosition): + (WebCore::PlatformGestureEvent::timestamp): + Add platform agnostic representation of a gesture event. + +2011-01-26 Dan Bernstein <mitz@apple.com> + + Reviewed by Dave Hyatt. + + <rdar://problem/8446709> Allow inter-ideograph justification for CJK + https://bugs.webkit.org/show_bug.cgi?id=53184 + + Tests: fast/text/justify-ideograph-complex.html + fast/text/justify-ideograph-simple.html + fast/text/justify-ideograph-vertical.html + + * html/canvas/CanvasRenderingContext2D.cpp: + (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter + passed to the TextRun constructor and added the trailingExpansionBehavior parameter. + * platform/graphics/Font.cpp: + (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities + for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists + before the first character. On return, isAfterExpansion says whether an expansion opportunity + exists after the last character. + * platform/graphics/Font.h: + * platform/graphics/GlyphBuffer.h: + (WebCore::GlyphBuffer::expandLastAdvance): Added. + * platform/graphics/TextRun.h: + (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors. + Renamed padding to expansion. + (WebCore::TextRun::expansion): Renamed padding() to this. + (WebCore::TextRun::allowsTrailingExpansion): Added this accessor. + * platform/graphics/WidthIterator.cpp: + (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount() + and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing + expansion. + (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs. + (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance() + can expand the last advance if it is followed by a CJK ideograph. + * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace + to m_expansionPerOpportunity. + * platform/graphics/chromium/FontChromiumWin.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/chromium/FontLinux.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/efl/FontEfl.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/gtk/FontGtk.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/haiku/FontHaiku.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use + Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion + opportunity but the run disallows trailing expansion. + (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization + of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs. + * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace + to m_expansionPerOpportunity. + * platform/graphics/mac/FontMac.mm: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/qt/FontQt.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/win/FontWin.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/win/UniscribeController.cpp: + (WebCore::UniscribeController::UniscribeController): Updated for rename. + * platform/graphics/wince/FontWinCE.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * platform/graphics/wx/FontWx.cpp: + (WebCore::Font::canExpandAroundIdeographsInComplexText): Added. + * rendering/EllipsisBox.cpp: + (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor. + (WebCore::EllipsisBox::selectionRect): Ditto. + (WebCore::EllipsisBox::paintSelection): Ditto. + * rendering/InlineBox.h: + (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion. + (WebCore::InlineBox::expansion): Renamed toAdd() to this. + * rendering/InlineTextBox.cpp: + (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor. + (WebCore::InlineTextBox::paint): Ditto. + (WebCore::InlineTextBox::paintSelection): Ditto. + (WebCore::InlineTextBox::paintCompositionBackground): Ditto. + (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto. + (WebCore::InlineTextBox::paintTextMatchMarker): Ditto. + (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto. + (WebCore::InlineTextBox::offsetForPosition): Ditto. + (WebCore::InlineTextBox::positionForOffset): Ditto. + * rendering/InlineTextBox.h: + (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this. + (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this + is not the last leaf box on the line. + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts + in a vector instead of computing them twice. Discard the trailing expansion opportunity in the + last text box. + * rendering/RenderFileUploadControl.cpp: + (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor. + (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto. + * rendering/RenderListBox.cpp: + (WebCore::RenderListBox::updateFromElement): Ditto. + (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter. + * rendering/RenderTextControl.cpp: + (WebCore::RenderTextControl::getAvgCharWidth): Ditto. + (WebCore::RenderTextControl::paintPlaceholder): Ditto. + * rendering/svg/SVGInlineTextBox.cpp: + (WebCore::SVGInlineTextBox::constructTextRun): Ditto. + +2011-01-26 Andy Estes <aestes@apple.com> + + Rubber-stamped by Darin Adler. + + Inline HTMLObjectElement::hasValidClassId(). + + * html/HTMLObjectElement.cpp: + (WebCore::HTMLObjectElement::hasValidClassId): + +2011-01-26 Evan Martin <evan@chromium.org> + + Reviewed by Tony Chang. + + [chromium] crash on getBoundingClientRect in complex text + https://bugs.webkit.org/show_bug.cgi?id=53199 + + Use the correct array bound; we want the number of characters processed by + the shaper, not the longest continuous script run length. + + Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html + + * platform/graphics/chromium/ComplexTextControllerLinux.cpp: + (WebCore::ComplexTextController::nextScriptRun): + * platform/graphics/chromium/ComplexTextControllerLinux.h: + (WebCore::ComplexTextController::numCodePoints): + +2011-01-26 Emil A Eklund <eae@chromium.org> + + Reviewed by Alexey Proskuryakov. + + Remove cached document reference from CSSStyleSheet and XSLStyleSheet. + https://bugs.webkit.org/show_bug.cgi?id=52084 + + Test: fast/dom/css-delete-doc.html + + * css/CSSMediaRule.cpp: + (WebCore::CSSMediaRule::insertRule): + (WebCore::CSSMediaRule::deleteRule): + * css/CSSStyleSheet.cpp: + (WebCore::CSSStyleSheet::CSSStyleSheet): + (WebCore::CSSStyleSheet::document): + * css/CSSStyleSheet.h: + * xml/XSLStyleSheet.h: + (WebCore::XSLStyleSheet::parentStyleSheet): + * xml/XSLStyleSheetLibxslt.cpp: + (WebCore::XSLStyleSheet::XSLStyleSheet): + (WebCore::XSLStyleSheet::cachedResourceLoader): + (WebCore::XSLStyleSheet::setParentStyleSheet): + (WebCore::XSLStyleSheet::ownerDocument): + * xml/XSLStyleSheetQt.cpp: + (WebCore::XSLStyleSheet::XSLStyleSheet): + (WebCore::XSLStyleSheet::cachedResourceLoader): + (WebCore::XSLStyleSheet::ownerDocument): + +2011-01-25 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Kent Tamura. + + Reduce ref-count churn in shadowPseudoId. + https://bugs.webkit.org/show_bug.cgi?id=53136 + + Refactoring, so no new tests. + + * dom/Element.h: + (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString& + * html/ValidationMessage.cpp: + (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto. + * html/shadow/SliderThumbElement.cpp: + (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file. + * html/shadow/SliderThumbElement.h: Ditto. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto. + (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto. + (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto. + (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto. + * rendering/MediaControlElements.h: Ditto. + +2011-01-26 Dave Hyatt <hyatt@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text. + + Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl. + + * css/html.css: + Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those + elements work properly. + + * rendering/InlineFlowBox.cpp: + (WebCore::InlineFlowBox::placeBoxesInBlockDirection): + Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk + in some cases (causing lines to all stack on top of one another). + + * rendering/InlineTextBox.h: + (WebCore::InlineTextBox::calculateBoundaries): + Fix calculateBoundaries to be physical rather than logical. + + * rendering/LayoutState.cpp: + (WebCore::LayoutState::addForcedColumnBreak): + * rendering/LayoutState.h: + Rename childY to childLogicalOffset. + + * rendering/RenderBlock.cpp: + (WebCore::RenderBlock::layoutBlock): + (WebCore::RenderBlock::addOverflowFromChildren): + (WebCore::RenderBlock::addOverflowFromFloats): + (WebCore::RenderBlock::collapseMargins): + (WebCore::RenderBlock::estimateLogicalTopPosition): + (WebCore::RenderBlock::layoutBlockChild): + (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded): + (WebCore::RenderBlock::paintColumnRules): + (WebCore::RenderBlock::paintColumnContents): + (WebCore::RenderBlock::paintFloats): + (WebCore::RenderBlock::selectionGaps): + (WebCore::RenderBlock::removeFloatingObjectsBelow): + (WebCore::RenderBlock::addOverhangingFloats): + (WebCore::RenderBlock::hitTestFloats): + (WebCore::RenderBlock::hitTestColumns): + (WebCore::RenderBlock::calcColumnWidth): + (WebCore::RenderBlock::desiredColumnWidth): + (WebCore::RenderBlock::columnRectAt): + (WebCore::RenderBlock::layoutColumns): + (WebCore::RenderBlock::adjustPointToColumnContents): + (WebCore::RenderBlock::adjustRectForColumns): + (WebCore::RenderBlock::flipForWritingModeIncludingColumns): + (WebCore::RenderBlock::adjustForColumns): + (WebCore::RenderBlock::adjustForBorderFit): + (WebCore::RenderBlock::nextPageLogicalTop): + (WebCore::RenderBlock::applyBeforeBreak): + (WebCore::RenderBlock::applyAfterBreak): + (WebCore::RenderBlock::adjustForUnsplittableChild): + (WebCore::RenderBlock::adjustLinePositionForPagination): + * rendering/RenderBlock.h: + (WebCore::RenderBlock::logicalRightOffsetForContent): + (WebCore::RenderBlock::logicalLeftOffsetForContent): + (WebCore::RenderBlock::leftForFloatIncludingMargin): + (WebCore::RenderBlock::topForFloatIncludingMargin): + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::layoutInlineChildren): + (WebCore::RenderBlock::determineStartPosition): + Reworking of all the RenderBlock column functions to support flipping and vertical modes. + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::offsetFromContainer): + (WebCore::RenderBox::flipForWritingModeIncludingColumns): + Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts. + + * rendering/RenderBox.h: + (WebCore::RenderBox::clientLogicalBottom): + Fix a bug in clientLogicalBottom where it didn't add in the right border/padding. + + * rendering/RenderFlexibleBox.cpp: + (WebCore::RenderFlexibleBox::layoutBlock): + Better terminology for pagination. + + * rendering/RenderInline.cpp: + (WebCore::RenderInline::offsetFromContainer): + (WebCore::RenderInline::mapLocalToContainer): + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::paintChildLayerIntoColumns): + (WebCore::RenderLayer::hitTestChildLayerColumns): + (WebCore::RenderLayer::localBoundingBox): + (WebCore::RenderLayer::boundingBox): + Patch painting in RenderLayers to be vertical-text-aware. + + * rendering/RenderObject.cpp: + (WebCore::RenderObject::mapLocalToContainer): + Add code to be flipped block-aware with columns. + + * rendering/RenderTable.cpp: + (WebCore::RenderTable::layout): + * rendering/RenderTableRow.cpp: + (WebCore::RenderTableRow::layout): + * rendering/RenderTableSection.cpp: + (WebCore::RenderTableSection::layoutRows): + Fix pagination to use better terminology. + + * rendering/RenderText.cpp: + (WebCore::RenderText::absoluteQuads): + (WebCore::RenderText::absoluteQuadsForRange): + Fix a bug where vertical text wasn't taken into account. + +2011-01-26 Dimitri Glazkov <dglazkov@chromium.org> + + Unreviewed, rolling out r76719. + http://trac.webkit.org/changeset/76719 + https://bugs.webkit.org/show_bug.cgi?id=53122 + + Broke a bunch of media tests in Chromium/Qt/GTK. + +2011-01-26 Tony Chang <tony@chromium.org> + + Reviewed by Ryosuke Niwa. + + [gtk] strip NUL characters when copying text/html on GTK+ + https://bugs.webkit.org/show_bug.cgi?id=52508 + + Putting NUL characters in the text/html clipboard doesn't work in + WebKit GTK+ (the pasted value is truncated at the NUL). Since we're + already stripping this character for plain text (for Windows), strip + it in text/html too. + + * editing/MarkupAccumulator.h: mark function as virtual + * editing/markup.cpp: + (WebCore::StyledMarkupAccumulator::appendString): + (WebCore::StyledMarkupAccumulator::takeResults): strip nulls + +2011-01-26 Mario Sanchez Prada <msanchez@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Reliable crash with getTextAtOffset() + https://bugs.webkit.org/show_bug.cgi?id=53131 + + Properly calculate length in bytes for a UTF8 substring. + + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: + (utf8Substr): Use character instead of bytes as units to + calculate the length in bytes for the UTF8 string. + +2011-01-25 Dimitri Glazkov <dglazkov@chromium.org> + + Reviewed by Kent Tamura. + + Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId. + https://bugs.webkit.org/show_bug.cgi?id=53122 + + This is the first step in converting HTMLMediaElement to the new shadow DOM. + + Should not regress any existing tests. No observable change in behavior. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors. + (WebCore::nameToPseudoTypeMap): Ditto. + (WebCore::CSSSelector::extractPseudoType): Ditto. + * css/CSSSelector.h: Ditto. + * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement, + which is now replaced with virtual shadowPseudoId on each corresponding class. + (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline. + (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set + display type in constructor. + (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added + to disambiguate from the MediaControlMuteButtonElement. + (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added. + (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added. + (WebCore::MediaControlSeekForwardButtonElement::create): Added. + (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added. + (WebCore::MediaControlSeekBackButtonElement::create): Added. + (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added. + (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added. + (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlTimelineElement::shadowPseudoId): Added. + (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added. + (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as + constructor argument. + (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added. + * rendering/MediaControlElements.h: + (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added. + (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added. + * rendering/RenderMedia.cpp: + (WebCore::RenderMedia::createMuteButton): Changed to use new constructor. + (WebCore::RenderMedia::createSeekBackButton): Ditto. + (WebCore::RenderMedia::createSeekForwardButton): Ditto. + (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto. + * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used. + +2011-01-26 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Fix multisampling support in DrawingBuffer + https://bugs.webkit.org/show_bug.cgi?id=53154 + + In DrawingBuffer's multisampling code path, fixed enum usage and a + bug where it would incorrectly redefine the depth and stencil + buffers. Hooked up multisampling code path in Chromium port. + + Tested manually with some accelerated 2D canvas content. + Multisampling isn't being switched on for the accelerated 2D + canvas at the current time because it will increase fill rate + requirements and cause a large number of rebaselines. + + * platform/graphics/Extensions3D.h: + * platform/graphics/chromium/DrawingBufferChromium.cpp: + (WebCore::DrawingBuffer::publishToPlatformLayer): + * platform/graphics/chromium/Extensions3DChromium.h: + * platform/graphics/gpu/DrawingBuffer.cpp: + (WebCore::DrawingBuffer::create): + (WebCore::DrawingBuffer::reset): + * platform/graphics/opengl/Extensions3DOpenGL.cpp: + (WebCore::Extensions3DOpenGL::supports): + +2011-01-26 Tony Chang <tony@chromium.org> + + Unreviewed. + + [chromium] revert r68310 because of race conditions detected by tsans + https://bugs.webkit.org/show_bug.cgi?id=53185 + + Causes stability problems for Chromium, http://crbug.com/70589 + + * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp: + (WebCore::SQLiteFileSystem::registerSQLiteVFS): + +2011-01-26 Justin Schuh <jschuh@chromium.org> + + Reviewed by Adam Barth. + + Make fireEventsAndUpdateStyle use stack local vectors. + https://bugs.webkit.org/show_bug.cgi?id=46760 + + Test: animations/animation-add-events-in-handler.html + + * page/animation/AnimationController.cpp: + (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle): + +2011-01-26 Nate Chapin <japhet@chromium.org> + + Reviewed by Adam Barth. + + Remove m_URL from FrameLoader and depend on Document::url() + instead. FrameLoader::url() will be removed in a followup patch. + https://bugs.webkit.org/show_bug.cgi?id=41165 + + Refactor only, no new tests. + + * WebCore.exp.in: + * dom/Document.cpp: + (WebCore::Document::Document): + (WebCore::Document::updateURLForPushOrReplaceState): + * loader/DocumentWriter.cpp: + (WebCore::DocumentWriter::begin): + * loader/FrameLoader.cpp: + (WebCore::FrameLoader::iconURL): + (WebCore::FrameLoader::didOpenURL): + (WebCore::FrameLoader::didExplicitOpen): + (WebCore::FrameLoader::receivedFirstData): + (WebCore::FrameLoader::url): + (WebCore::FrameLoader::setOutgoingReferrer): + (WebCore::FrameLoader::startIconLoader): + (WebCore::FrameLoader::commitIconURLToIconDatabase): + (WebCore::FrameLoader::finishedParsing): + (WebCore::FrameLoader::checkIfDisplayInsecureContent): + (WebCore::FrameLoader::checkIfRunInsecureContent): + (WebCore::FrameLoader::updateFirstPartyForCookies): + (WebCore::FrameLoader::loadInSameDocument): + (WebCore::FrameLoader::commitProvisionalLoad): + (WebCore::FrameLoader::open): + (WebCore::FrameLoader::shouldScrollToAnchor): + * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer(). + +2011-01-25 Brian Weinstein <bweinstein@apple.com> + + Reviewed by Antti Koivisto. + + Crashes loading pages when cancelling subresource loads through WebKit + https://bugs.webkit.org/show_bug.cgi?id=53123 + <rdar://problem/8914361> + + Fix a crash that happened when cancelling subresource loads through WebKit. + + When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource + can be called recursively on the same function, either leading to infinite recursion, or deleting + an object when it is not done being used. + + The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when + CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously). + + Test: fast/loader/willSendRequest-null-for-preload.html + + * loader/DocumentLoader.cpp: + (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame + if our new URL is non-null. + * loader/cache/CachedResourceLoader.cpp: + (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer. + (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this + function was called synchronously + from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously, + so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous. + (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests. + (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector, + so use Deque methods. + * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque. + +2011-01-25 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: evaluate in console may not work when window.console is substituted or deleted. + https://bugs.webkit.org/show_bug.cgi?id=53072 + + Test: inspector/console-substituted.html + + * inspector/InjectedScriptSource.js: + (.): + +2011-01-26 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [cairo] Use CAIRO_OPERATOR_DARKEN when available + https://bugs.webkit.org/show_bug.cgi?id=53084 + + Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of + CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10. + + * platform/graphics/cairo/CairoUtilities.cpp: + (WebCore::toCairoOperator): + +2011-01-26 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: visualize \n in strings as unicode cr + symbol in stack variables sidebar. + https://bugs.webkit.org/show_bug.cgi?id=53162 + + * inspector/front-end/ObjectPropertiesSection.js: + (WebInspector.ObjectPropertyTreeElement.prototype.update): + +2011-01-26 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: size is wrong for cached resources in Network panel + - Set the size for 304/not modified resources from cached resource. + - Add response headers size to resource transfer size. + https://bugs.webkit.org/show_bug.cgi?id=52886 + + * inspector/InspectorResourceAgent.cpp: + (WebCore::InspectorResourceAgent::didReceiveResponse): + * inspector/front-end/Resource.js: + (WebInspector.Resource): + (WebInspector.Resource.prototype.get transferSize): + (WebInspector.Resource.prototype.set responseHeaders): + (WebInspector.Resource.prototype._headersSize): + (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType): + +2011-01-26 Carol Szabo <carol.szabo@nokia.com> + + Reviewed by Simon Hausmann. + + Fixed TiledBacking store to take into account new dirty regions caused by + paint time layouts. + + Flawed rendering design for QtWebKit resulting in artifacts being displayed + https://bugs.webkit.org/show_bug.cgi?id=49184 + + There are no new tests as this patch aims at fixing flicker that + happen randomly, mostly on slow hardware, thus are hard to reproduce + consistently in an automated test. + + This patch does not fully address the said bug but it is a step in the + right direction. A full solution to the bug, as currently perceived, + requires either a Qt GUI API change, a performance hit for QtWebKit, + or a hack, until a full solution is provided this patch is progress. + + * platform/graphics/TiledBackingStore.cpp: + (WebCore::TiledBackingStore::updateTileBuffers): + Changed to take into account newly dirtied areas created during + tile update initiated layouts during the same update. + +2011-01-26 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [SKIA] Remove "current path" of GraphicsContext + https://bugs.webkit.org/show_bug.cgi?id=53124 + + * platform/graphics/GraphicsContext.h: + * platform/graphics/skia/GraphicsContextSkia.cpp: + (WebCore::GraphicsContext::clipPath): + (WebCore::GraphicsContext::fillPath): + (WebCore::GraphicsContext::strokePath): + * platform/graphics/skia/PathSkia.cpp: + (WebCore::Path::strokeBoundingRect): + * platform/graphics/skia/PlatformContextSkia.cpp: + * platform/graphics/skia/PlatformContextSkia.h: + +2011-01-26 Zalan Bujtas <zbujtas@gmail.com> + + Reviewed by Andreas Kling. + + [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3. + + QPainterPath returns angle values with the origo being at the top left corner, + we need to account for this in normalAngleAtLength(). + This Regressed with r66979. + + No new tests as this is already covered by ACID3. + + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::normalAngleAtLength): + +2011-01-26 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: live edit does not update source snippet. + https://bugs.webkit.org/show_bug.cgi?id=53097 + + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): + +2011-01-26 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'. + https://bugs.webkit.org/show_bug.cgi?id=53018 + + * inspector/InjectedScript.cpp: + (WebCore::InjectedScript::evaluate): + (WebCore::InjectedScript::evaluateOnCallFrame): + (WebCore::InjectedScript::getCompletions): + (WebCore::InjectedScript::getCompletionsOnCallFrame): + * inspector/InjectedScript.h: + * inspector/InjectedScriptSource.js: + (.): + * inspector/Inspector.idl: + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): + (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame): + * inspector/InspectorDebuggerAgent.h: + * inspector/InspectorRuntimeAgent.cpp: + (WebCore::InspectorRuntimeAgent::evaluate): + (WebCore::InspectorRuntimeAgent::getCompletions): + * inspector/InspectorRuntimeAgent.h: + * inspector/front-end/ConsoleView.js: + (WebInspector.ConsoleView.prototype.completions): + (WebInspector.ConsoleView.prototype.evalInInspectedWindow): + (WebInspector.ConsoleView.prototype._enterKeyPressed): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper): + (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame): + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype._showPopup): + * inspector/front-end/WatchExpressionsSidebarPane.js: + (WebInspector.WatchExpressionsSection.prototype.update): + +2011-01-26 Hironori Bono <hbono@chromium.org> + + Reviewed by Kent Tamura. + + A speculative fix for Bug 52422 - [chromium] More crash in + FontFallbackList::determinePitch(const Font* font) + https://bugs.webkit.org/show_bug.cgi?id=52422 + + My previous change may not work on non-US Windows whose system fonts + have localized aliases matching to the system locale because of a + font-name mismatch in createFontIndirectAndGetWinName(). This change + tries all the fonts installed in a PC and returns the first font that we + can create without errors. + + * platform/graphics/chromium/FontCacheChromiumWin.cpp: + (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData): + Added a struct used for getLastResortFallbackFontProc(). + (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies(). + (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font. + +2011-01-26 James Robinson <jamesr@chromium.org> + + Reviewed by Nate Chapin. + + Add a DOMTimeStamp parameter to the requestAnimationFrame callback + https://bugs.webkit.org/show_bug.cgi?id=53142 + + This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more + closely match mozilla's proposal. This is useful if the page has multiple imperative animations + and wants to ensure that they all remain synchronized. If each callback used Date.now() to + update its animation state, they would potentially be out of sync with each other. If they use + the timestamp then all callbacks for the same "frame" will update to the same state. + + Test: fast/animation/request-animation-frame-timestamps.html + + * bindings/scripts/CodeGeneratorV8.pm: + * bindings/scripts/test/V8/V8TestCallback.cpp: + (WebCore::V8TestCallback::callbackWithClass2Param): + * dom/Document.cpp: + (WebCore::Document::serviceScriptedAnimations): + * dom/Document.h: + * dom/RequestAnimationFrameCallback.h: + * dom/RequestAnimationFrameCallback.idl: + * page/FrameView.cpp: + (WebCore::FrameView::serviceScriptedAnimations): + * page/FrameView.h: + +2011-01-25 Yuzo Fujishima <yuzo@google.com> + + Unreviewed attempt to fix compilation error for Chromium Clang. + + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::advance): + +2011-01-25 Ned Holbrook <nholbrook@apple.com> + + Reviewed by Dan Bernstein. + + ComplexTextController incorrectly conflates string length and range of indexes + https://bugs.webkit.org/show_bug.cgi?id=52760 + + Test: fast/text/offsetForPosition-complex-fallback.html + + * platform/graphics/mac/ComplexTextController.cpp: + (WebCore::ComplexTextController::offsetForPosition): + (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): + (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic): + (WebCore::ComplexTextController::advance): + * platform/graphics/mac/ComplexTextController.h: + (WebCore::ComplexTextController::ComplexTextRun::create): + (WebCore::ComplexTextController::ComplexTextRun::indexEnd): + * platform/graphics/mac/ComplexTextControllerATSUI.cpp: + (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): + * platform/graphics/mac/ComplexTextControllerCoreText.cpp: + (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): + (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): + +2011-01-25 Sam Weinig <sam@webkit.org> + + Reviewed by David Hyatt. + + Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area + https://bugs.webkit.org/show_bug.cgi?id=53048 + + Test: fast/overflow/overflow-rtl-vertical-origin.html + + * rendering/RenderLayer.cpp: + (WebCore::RenderLayer::scrollPosition): + (WebCore::RenderLayer::updateScrollInfoAfterLayout): + Take the scroll origin into account when calculating scrollbars in more places. + +2011-01-25 Steve Falkenburg <sfalken@apple.com> + + Windows production build fix. + Use correct configuration-specific path in makefile. + + * WebCore.vcproj/WebCore.make: + +2011-01-25 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Radio button group state is not restored correctly + https://bugs.webkit.org/show_bug.cgi?id=50442 + + Fixes a bug that radio button states are not restored correctly in + a case that non-first radio button in a group is checked. + + If "checked" attribute is present, the radio button is checked and + other radio buttons in the group are unchecked. This behavior + disturbs form state restoring. This patch changes this behavior so + that the "checked" attribute handling is delayed after form state + restoring. + + Test: fast/forms/state-restore-radio-group.html + + * html/HTMLFormControlElement.h: + Make finishParsingChildren() protected so that HTMLInpuElement can call it. + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::HTMLInputElement): + - Add createdByParser parameter. + - Initialize m_stateRestored and m_parsingInProgress. + (WebCore::HTMLInputElement::create): Sync with the constructor. + (WebCore::HTMLInputElement::restoreFormControlState): + Set m_stateRestored in order to refer it in finishParsingChildren(). + (WebCore::HTMLInputElement::parseMappedAttribute): + Don't call setChecked() during parsing. Move setNeedsValidityCheck() + to setChecked(). + (WebCore::HTMLInputElement::finishParsingChildren): + Call setChecked() if form state is not restored. + (WebCore::HTMLInputElement::setChecked): + Move setNeedsValidityCheck() from parseMappedAttribute() because + finishParsingChildren() also needs to call setNeedsValidityCheck(). + * html/HTMLInputElement.h: + - Remove the default value of HTMLFormElement* of the HTMLInputElement + constructor, and add createdByParser parameter. + - Introduce m_parsingInProgress and m_stateRestored. + * html/HTMLIsIndexElement.cpp: + (WebCore::HTMLIsIndexElement::HTMLIsIndexElement): + Sync with the HTMLInputElement constructor change. + * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser flag. + * rendering/MediaControlElements.cpp: + (WebCore::MediaControlInputElement::MediaControlInputElement): + Sync with the HTMLInputElement constructor change. + * rendering/ShadowElement.cpp: + (WebCore::ShadowInputElement::ShadowInputElement): ditto. + * rendering/ShadowElement.h: + (WebCore::ShadowElement::ShadowElement): ditto. + +2011-01-25 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + HTMLFormElement::checkValidity() returns incorrect result if 'invalid' events are canceled. + https://bugs.webkit.org/show_bug.cgi?id=52565 + + * html/HTMLFormElement.cpp: + (WebCore::HTMLFormElement::validateInteractively): + Check checkInvalidControlsAndCollectUnhandled() result instead of + checking emptiness of unhandled invalid controls list. + (WebCore::HTMLFormElement::checkValidity): ditto. + (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled): + Renamed from collectUnhandledInvalidControls(). + Returns true if there is any invalid control regardless of event canceling. + * html/HTMLFormElement.h: Rename collectUnhandledInvalidControls() to + checkInvalidControlsAndCollectUnhandled(). + +2011-01-25 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Range and number inputs should reject increment and decrement by + keyboard or mouse wheel if they are disabled or read-only + https://bugs.webkit.org/show_bug.cgi?id=53151 + + * html/RangeInputType.cpp: + (WebCore::RangeInputType::handleKeydownEvent): Check disabled() and readOnly(). + * html/TextFieldInputType.cpp: + (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): ditto. + (WebCore::TextFieldInputType::handleWheelEventForSpinButton): ditto. + +2011-01-25 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + API to support localized numbers for <input type=number> + https://bugs.webkit.org/show_bug.cgi?id=45730 + + Introduce platform/text/LocalizedNumber.h, and + LocalizedNumberNone.cpp, which is an empty implementation of the + functions in LocalizedNumber.h. We use LocalizedNumberNone.cpp in + all platforms for now. + + A string in a type=number field is parsed as a localized number + first. If the parsing fails, it is parsed as the HTML5 number. + + We introduce HTMLInputElement::visibleValue(). It represents a value + which should be drawn by a renderer. HTMLInputElement::value() always + returns a number formatted for HTML5, and visibleValue() may return a + localized number. + + No new tests because this doesn't change any behavior. + + * Android.mk: Add LocalizedNumber.h and/or LocalizedNumberNone.cpp. + * CMakeLists.txt: ditto. + * GNUmakefile.am: ditto. + * WebCore.gypi: ditto. + * WebCore.pro: ditto. + * WebCore.vcproj/WebCore.vcproj: ditto. + * WebCore.xcodeproj/project.pbxproj: ditto. + * dom/InputElement.h: Add visibleValue(). + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::visibleValue): Added. Just call InputType::visibleValue(). + * html/HTMLInputElement.h: Declare visibleValue(). + * html/InputType.cpp: + (WebCore::InputType::visibleValue): Add the default implementation of + visibleValue(), which returns HTMLInputElement::value(). + * html/InputType.h: Add declarations. + * html/NumberInputType.cpp: + (WebCore::isHTMLNumberCharacter): Renamed from isNumberCharacter(). + (WebCore::isNumberCharacter): Calls isLocalizedNumberCharacter() and isHTMLNumberCharacter(). + (WebCore::NumberInputType::visibleValue): + Returns a localized number string produced by formatLocalizedNumber(). + (WebCore::NumberInputType::isAcceptableValue): Calls parseLocalizedNumber(). + (WebCore::NumberInputType::sanitizeValue): Calls parseLocalizedNumber(). + * html/NumberInputType.h: Add declarations. + * platform/text/LocalizedNumber.h: Added. + * platform/text/LocalizedNumberNone.cpp: Added. + (WebCore::parseLocalizedNumber): + (WebCore::formatLocalizedNumber): + (WebCore::isLocalizedNumberCharacter): + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::updateFromElement): + Calls InputElement::visibleValue() instead of value(). + * wml/WMLInputElement.h: + (WebCore::WMLInputElement::visibleValue): Added. It just calls value(). + +2011-01-25 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=53143 + Add IntRectHash + + * WebCore.xcodeproj/project.pbxproj: + * platform/graphics/IntRectHash.h: Added. + + * platform/graphics/IntSizeHash.h: Don't do "using WebCore::IntSize"! + +2011-01-25 Ilya Sherman <isherman@chromium.org> + + Reviewed by Ryosuke Niwa. + + Remove trailing whitespace in HTMLInputElement.cpp + https://bugs.webkit.org/show_bug.cgi?id=53152 + + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::updateCheckedRadioButtons): + (WebCore::HTMLInputElement::applyStep): + (WebCore::HTMLInputElement::updateFocusAppearance): + (WebCore::HTMLInputElement::mapToEntry): + (WebCore::HTMLInputElement::setAutofilled): + (WebCore::HTMLInputElement::willMoveToNewOwnerDocument): + (WebCore::HTMLInputElement::didMoveToNewOwnerDocument): + +2011-01-25 Mike Reed <reed@google.com> + + Reviewed by James Robinson. + + DrawingBufer::reset() today checks if the new size is the same as its + m_size, and if so, returns immediately. This does not match the + semantics of <canvas>, which wants to clear its contents anytime the + size is specified. + https://bugs.webkit.org/show_bug.cgi?id=53149 + + Test: Covered by existing <canvas> tests using gpu. + + * platform/graphics/chromium/DrawingBufferChromium.cpp: + (WebCore::DrawingBuffer::DrawingBuffer): + * platform/graphics/gpu/DrawingBuffer.cpp: + (WebCore::DrawingBuffer::reset): + +2011-01-25 Cris Neckar <cdn@chromium.org> + + Reviewed by Adam Barth. + + Add a hashset of DOMURLs to ScriptExecutionContext to track back references. + https://bugs.webkit.org/show_bug.cgi?id=53038 + + Test: fast/dom/window-domurl-crash.html + + * dom/ScriptExecutionContext.cpp: + (WebCore::ScriptExecutionContext::~ScriptExecutionContext): + (WebCore::ScriptExecutionContext::createdDomUrl): + (WebCore::ScriptExecutionContext::destroyedDomUrl): + * dom/ScriptExecutionContext.h: + (WebCore::ScriptExecutionContext::domUrls): + * html/DOMURL.cpp: + (WebCore::DOMURL::DOMURL): + (WebCore::DOMURL::~DOMURL): + (WebCore::DOMURL::contextDestroyed): + * html/DOMURL.h: + (WebCore::DOMURL::scriptExecutionContext): + +2011-01-23 Antti Koivisto <antti@apple.com> + + Reviewed by Darin Adler. + + https://bugs.webkit.org/show_bug.cgi?id=52983 + Eliminate m_tagHistory pointer from CSSSelector + + Keep the component selectors in the array in CSSSelectorList instead + of maintaining a linked list between them. This allows eliminating + m_tagHistory pointer, shrinking CSSSelector by 25% (selection performance + seems to improve some too due to better locality). + + * WebCore.xcodeproj/project.pbxproj: + + Make CSSSelector.h a private header. + + * css/CSSGrammar.y: + + Use CSSParserSelector during parsing to keep the tag history in + a linked list. This is flattened to an array after parsing. + Use accessors for setting selector values. + Use OwnPtr in selector vector. + + * css/CSSPageRule.cpp: + (WebCore::CSSPageRule::CSSPageRule): + * css/CSSPageRule.h: + (WebCore::CSSPageRule::create): + + Simplify. + + * css/CSSParser.cpp: + (WebCore::CSSParser::~CSSParser): + (WebCore::CSSParser::createFloatingSelector): + (WebCore::CSSParser::sinkFloatingSelector): + (WebCore::CSSParser::createStyleRule): + (WebCore::CSSParser::updateSpecifiersWithElementName): + (WebCore::CSSParser::createPageRule): + * css/CSSParser.h: + (WebCore::CSSParser::reusableSelectorVector): + + CSSSelector -> CSSParserSelector. + Use OwnPtr in selector vector. + + * css/CSSParserValues.cpp: + (WebCore::CSSParserSelector::CSSParserSelector): + (WebCore::CSSParserSelector::~CSSParserSelector): + * css/CSSParserValues.h: + (WebCore::CSSParserSelector::releaseSelector): + (WebCore::CSSParserSelector::setTag): + (WebCore::CSSParserSelector::setValue): + (WebCore::CSSParserSelector::setAttribute): + (WebCore::CSSParserSelector::setArgument): + (WebCore::CSSParserSelector::setSimpleSelector): + (WebCore::CSSParserSelector::setMatch): + (WebCore::CSSParserSelector::setRelation): + (WebCore::CSSParserSelector::setForPage): + (WebCore::CSSParserSelector::pseudoType): + (WebCore::CSSParserSelector::isUnknownPseudoElement): + (WebCore::CSSParserSelector::isSimple): + (WebCore::CSSParserSelector::tagHistory): + (WebCore::CSSParserSelector::setTagHistory): + + Linked list used during parsing. + Avoid recursive destruction. + + * css/CSSSelector.cpp: + (WebCore::CSSSelector::extractPseudoType): + (WebCore::CSSSelector::operator==): + (WebCore::CSSSelector::selectorText): + (WebCore::CSSSelector::setSimpleSelector): + * css/CSSSelector.h: + (WebCore::CSSSelector::CSSSelector): + (WebCore::CSSSelector::~CSSSelector): + (WebCore::CSSSelector::tagHistory): + (WebCore::CSSSelector::tag): + (WebCore::CSSSelector::value): + (WebCore::CSSSelector::setTag): + (WebCore::CSSSelector::isLastInTagHistory): + (WebCore::CSSSelector::setNotLastInTagHistory): + (WebCore::CSSSelector::RareData::RareData): + (WebCore::CSSSelector::RareData::~RareData): + (WebCore::CSSSelector::createRareData): + (WebCore::CSSSelector::setValue): + + Remove m_tagHistory. + Keep m_value in the union with the rare data pointer instead. + Make m_value and m_tag private, implement accessors. + Add a new bit to indicate end of the tag history (multipart selector). + Eliminate complex destruction. Selectors are now deleted as an array or by a CSSParserSelector chain. + + * css/CSSSelectorList.cpp: + (WebCore::CSSSelectorList::adoptSelectorVector): + + Flatten everything to an array. + + (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()): + * css/CSSSelectorList.h: + (WebCore::CSSSelectorList::hasOneSelector): + (WebCore::CSSSelectorList::next): + + Skip over the subparts of multipart selectors to find the next selector. + + * css/CSSStyleRule.h: + (WebCore::CSSStyleRule::adoptSelectorVector): + + CSSSelector -> CSSParserSelector. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector): + (WebCore::CSSRuleSet::addRule): + (WebCore::collectIdsAndSiblingRulesFromList): + (WebCore::CSSStyleSelector::matchPageRulesForList): + * dom/Node.cpp: + (WebCore::Node::querySelector): + * dom/SelectorNodeList.cpp: + (WebCore::createSelectorNodeList): + + Use accessors. + +2011-01-25 James Simonsen <simonjam@chromium.org> + + Reviewed by Tony Chang. + + [Chromium] Support small caps in complex text on linux + https://bugs.webkit.org/show_bug.cgi?id=53051 + + * platform/graphics/chromium/ComplexTextControllerLinux.cpp: + (WebCore::ComplexTextController::nextScriptRun): Break runs at small caps boundaries. + (WebCore::ComplexTextController::setupFontForScriptRun): Setup small caps font data if needed. + * platform/graphics/chromium/ComplexTextControllerLinux.h: Store small caps text in separate string. + +2011-01-25 Steve Falkenburg <sfalken@apple.com> + + Rubber-stamped by Adam Roben. + + Windows production build fix. + Use correct environment variable escaping + + * WebCore.vcproj/WebCore.make: + +2011-01-25 Adam Barth <abarth@webkit.org> + + Reviewed by Eric Seidel. + + Empty URLs are never display isolated + https://bugs.webkit.org/show_bug.cgi?id=53053 + + This check mirrors the check in the local case. There isn't a good way + to test this with a LayoutTest, but it is tested in Chromium (where + this registry is used). + + * platform/SchemeRegistry.cpp: + (WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated): + +2011-01-25 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Pipe a timestamp down into the PlatformWheelEvent for the Mac. + https://bugs.webkit.org/show_bug.cgi?id=53111 + + * platform/PlatformWheelEvent.h: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): + (WebCore::PlatformWheelEvent::timestamp): + Add timestamp member. + + * platform/mac/WheelEventMac.mm: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): + Initialize the timestamp from the event. + +2011-01-25 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76625. + http://trac.webkit.org/changeset/76625 + https://bugs.webkit.org/show_bug.cgi?id=53119 + + "incorrect pixel test results" (Requested by rniwa on + #webkit). + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::localCaretRect): + +2011-01-25 Patrick Gansterer <paroga@webkit.org> + + Unreviewed WinCE build fix for r76614. + + * platform/FileSystem.h: + +2011-01-21 Levi Weintraub <leviw@chromium.org> + + Reviewed by Darin Adler. + + Adding border and padding to the calculation of the local caret rect for RenderBoxes. + + Undo moves caret to invalid position + https://bugs.webkit.org/show_bug.cgi?id=49744 + + Tests: editing/selection/caret-painting-after-paste-undo-rtl.html + editing/selection/caret-painting-after-paste-undo.html + + * rendering/RenderBox.cpp: + (WebCore::RenderBox::localCaretRect): + +2011-01-25 Sam Weinig <sam@webkit.org> + + Reviewed by Anders Carlsson. + + Add hasPreciseScrollingDeltas bit to PlatformWheelEvent on the Mac. + https://bugs.webkit.org/show_bug.cgi?id=53107 + + * platform/PlatformWheelEvent.h: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): + (WebCore::PlatformWheelEvent::hasPreciseScrollingDeltas): + * platform/mac/WheelEventMac.mm: + (WebCore::PlatformWheelEvent::PlatformWheelEvent): + +2011-01-20 Jer Noble <jer.noble@apple.com> + + Reviewed by Eric Carlson. + + REGRESSION (r72119): Audio never plays on Star Wars intro animation + https://bugs.webkit.org/show_bug.cgi?id=52467 + + QuickTime's eat/m4a movie importer compontent doesn't list audio/m4a as a mime + type which it supports, though it handles .m4a files just fine. Change the way + we build the list of supported MIME Types through a new WebKitSystemInterface + function. + + Caused by r72119, which adds system-specific extension->MIME entries to the cache + before global entries, and the system-specific entries include QuickTime's registry + entries which contain the audio/m4a MIME type, while its components do not. + + Test: media/audio-mpeg4-supported.html + + * WebCore.vcproj/QTMovieWinCommon.vsprops: + * platform/graphics/win/QTMovie.cpp: + (getMIMETypeCallBack): + (initializeSupportedTypes): + (QTMovie::countSupportedTypes): gSupportedTypes is now a CFArrayRef. + (QTMovie::getSupportedType): Ditto. + +2011-01-25 Hans Wennborg <hans@chromium.org> + + Reviewed by Jeremy Orlow. + + IndexedDB: Remove PlatformBridge::idbShutdown() + https://bugs.webkit.org/show_bug.cgi?id=53077 + + Since Chromium r72157, this is not used anymore. The previous use was + to signal to the embedder that IndexedDB was shutting down, but we + agreed it is better if the embedder keeps track of that itself. + + No new tests: this does not change any functionality. + + * platform/chromium/PlatformBridge.h: + * storage/IDBFactoryBackendInterface.cpp: + * storage/IDBFactoryBackendInterface.h: + (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface): + * storage/chromium/IDBFactoryBackendInterface.cpp: + +2011-01-25 Darin Adler <darin@apple.com> + + Reviewed by Anders Carlsson. + + WebKit is using CSBackupSetItemExcluded incorrectly + https://bugs.webkit.org/show_bug.cgi?id=53095 + rdar://problem/8790540 + + * loader/icon/IconDatabase.cpp: + (WebCore::IconDatabase::performOpenInitialization): Added code to + exclude the database from backup one time, and record inside the + database that this has been done. + (WebCore::IconDatabase::wasExcludedFromBackup): Added. + (WebCore::IconDatabase::setWasExcludedFromBackup): Added. + * loader/icon/IconDatabase.h: Added new functions above. + + * platform/FileSystem.cpp: + (WebCore::canExcludeFromBackup): Added. + (WebCore::excludeFromBackup): Added. + + * platform/FileSystem.h: Added canExcludeFromBackup, excludeFromBackup, + and pathAsURL functions. Cleaned up ifdefs and comments a bit and sorted + things alphabetically, particularly platform-specific sections. + + * platform/cf/FileSystemCF.cpp: + (WebCore::pathAsURL): Added. + + * platform/mac/FileSystemMac.mm: + (WebCore::canExcludeFromBackup): Added. + (WebCore::excludeFromBackup): Added. + + * platform/network/cf/FormDataStreamCFNet.cpp: + (WebCore::advanceCurrentStream): Changed to call pathAsURL. + * platform/network/mac/FormDataStreamMac.mm: + (WebCore::advanceCurrentStream): Ditto. + +2011-01-25 Helder Correia <helder@sencha.com> + + Reviewed by Dirk Schulze. + + REGRESSION(75139): SVG gradients are not applied to texts + https://bugs.webkit.org/show_bug.cgi?id=52531 + + CGContextConcatCTM should use the CGLayer context, not the + GraphicsContext. Also, the CTM needs to be adjusted (translated). + This fixes SVG text gradient fill. + + Test: svg/css/composite-shadow-text.svg + + * platform/graphics/cg/GraphicsContextCG.cpp: + (WebCore::GraphicsContext::fillRect): + +2011-01-25 Benjamin Kalman <kalman@chromium.org> + + Reviewed by Ryosuke Niwa. + + Cannot extend or modify forward by word over a non-contenteditable region + https://bugs.webkit.org/show_bug.cgi?id=53070 + + Test: editing/selection/extend-forward-by-word-over-non-editable.html + + Change all instances of honorEditableBoundaryAtOrAfter to honorEditableBoundaryAtOrBefore and vice versa in the + functions which determine the end/start of words/lines/sentences in visible_units.cpp. + + This fixes the bug where moving forwards by a word over a non-contenteditable region would place the cursor + inside that region, and then get moved back to the start of the word due to honorEditableBoundaryAtOrBefore. + The cursor is now moved to the end of the region (which is effectively a noop in this case). + + * editing/visible_units.cpp: Change all instances of honorEditableBoundaryAtOrAfter to + honorEditableBoundaryAtOrBefore and vice versa. + (WebCore::previousWordPosition): + (WebCore::nextWordPosition): + (WebCore::startOfLine): + (WebCore::endOfLine): + (WebCore::previousSentencePosition): + (WebCore::nextSentencePosition): + (WebCore::logicalStartOfLine): + (WebCore::logicalEndOfLine): + +2011-01-25 Yael Aharon <yael.aharon@nokia.com> + + Unreviewed build fix. + After r76466, efsrv.lib is used unconditionally. + Don't guard it with ENABLE_NETSCAPE_PLUGIN_API. + + * WebCore.pro: + +2011-01-24 Zhenyao Mo <zmo@google.com> + + Reviewed by Kenneth Russell. + + Style cleanup for WebGLRenderingContext + https://bugs.webkit.org/show_bug.cgi?id=52352 + + * html/canvas/WebGLBuffer.cpp: + * html/canvas/WebGLBuffer.h: + * html/canvas/WebGLObject.cpp: + * html/canvas/WebGLProgram.cpp: + * html/canvas/WebGLRenderbuffer.cpp: + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::create): + (WebCore::WebGLRenderingContext::blendFunc): + (WebCore::WebGLRenderingContext::createShader): + (WebCore::WebGLRenderingContext::deleteBuffer): + (WebCore::WebGLRenderingContext::deleteShader): + (WebCore::WebGLRenderingContext::deleteTexture): + (WebCore::WebGLRenderingContext::disableVertexAttribArray): + (WebCore::WebGLRenderingContext::validateIndexArrayPrecise): + (WebCore::WebGLRenderingContext::validateRenderingState): + (WebCore::WebGLRenderingContext::enableVertexAttribArray): + (WebCore::WebGLRenderingContext::getUniform): + (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects): + * html/canvas/WebGLRenderingContext.h: + * html/canvas/WebGLShader.cpp: + * html/canvas/WebGLTexture.cpp: + * html/canvas/WebGLUniformLocation.cpp: + * html/canvas/WebGLUniformLocation.h: + +2011-01-24 Chris Marrin <cmarrin@apple.com> + + Reviewed by Eric Seidel. + + Change ENABLE_3D_CANVAS to ENABLE_WEBGL + https://bugs.webkit.org/show_bug.cgi?id=53041 + + * Configurations/FeatureDefines.xcconfig: + * DerivedSources.cpp: + * GNUmakefile.am: + * WebCore.pro: + * bindings/generic/RuntimeEnabledFeatures.h: + * bindings/js/JSArrayBufferCustom.cpp: + * bindings/js/JSCanvasRenderingContextCustom.cpp: + (WebCore::toJS): + * bindings/js/JSDOMWindowCustom.cpp: + * bindings/js/JSDataViewCustom.cpp: + * bindings/js/JSDocumentCustom.cpp: + * bindings/js/JSFloat32ArrayCustom.cpp: + * bindings/js/JSHTMLCanvasElementCustom.cpp: + (WebCore::JSHTMLCanvasElement::getContext): + * bindings/js/JSInt16ArrayCustom.cpp: + * bindings/js/JSInt32ArrayCustom.cpp: + * bindings/js/JSInt8ArrayCustom.cpp: + * bindings/js/JSUint16ArrayCustom.cpp: + * bindings/js/JSUint32ArrayCustom.cpp: + * bindings/js/JSUint8ArrayCustom.cpp: + * bindings/js/JSWebGLRenderingContextCustom.cpp: + * bindings/js/JSXMLHttpRequestCustom.cpp: + (WebCore::JSXMLHttpRequest::markChildren): + (WebCore::JSXMLHttpRequest::send): + (WebCore::JSXMLHttpRequest::response): + * bindings/v8/custom/V8ArrayBufferCustom.cpp: + * bindings/v8/custom/V8ArrayBufferViewCustom.h: + * bindings/v8/custom/V8DataViewCustom.cpp: + * bindings/v8/custom/V8DocumentCustom.cpp: + (WebCore::V8Document::getCSSCanvasContextCallback): + * bindings/v8/custom/V8Float32ArrayCustom.cpp: + * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp: + (WebCore::V8HTMLCanvasElement::getContextCallback): + * bindings/v8/custom/V8Int16ArrayCustom.cpp: + * bindings/v8/custom/V8Int32ArrayCustom.cpp: + * bindings/v8/custom/V8Int8ArrayCustom.cpp: + * bindings/v8/custom/V8Uint16ArrayCustom.cpp: + * bindings/v8/custom/V8Uint32ArrayCustom.cpp: + * bindings/v8/custom/V8Uint8ArrayCustom.cpp: + * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: + * bindings/v8/custom/V8XMLHttpRequestCustom.cpp: + (WebCore::V8XMLHttpRequest::responseAccessorGetter): + (WebCore::V8XMLHttpRequest::sendCallback): + * features.pri: + * html/HTMLCanvasElement.cpp: + (WebCore::HTMLCanvasElement::getContext): + (WebCore::HTMLCanvasElement::reset): + * html/HTMLCanvasElement.h: + * html/canvas/ArrayBuffer.cpp: + * html/canvas/ArrayBuffer.idl: + * html/canvas/ArrayBufferView.cpp: + * html/canvas/ArrayBufferView.idl: + * html/canvas/DataView.cpp: + * html/canvas/DataView.idl: + * html/canvas/Float32Array.cpp: + * html/canvas/Float32Array.idl: + * html/canvas/Int16Array.cpp: + * html/canvas/Int16Array.idl: + * html/canvas/Int32Array.cpp: + * html/canvas/Int32Array.idl: + * html/canvas/Int8Array.cpp: + * html/canvas/Int8Array.idl: + * html/canvas/OESStandardDerivatives.cpp: + * html/canvas/OESStandardDerivatives.idl: + * html/canvas/OESTextureFloat.cpp: + * html/canvas/OESTextureFloat.idl: + * html/canvas/Uint16Array.cpp: + * html/canvas/Uint16Array.idl: + * html/canvas/Uint32Array.cpp: + * html/canvas/Uint32Array.idl: + * html/canvas/Uint8Array.cpp: + * html/canvas/Uint8Array.idl: + * html/canvas/WebGLActiveInfo.idl: + * html/canvas/WebGLBuffer.cpp: + * html/canvas/WebGLBuffer.idl: + * html/canvas/WebGLContextAttributes.cpp: + * html/canvas/WebGLContextAttributes.idl: + * html/canvas/WebGLContextEvent.idl: + * html/canvas/WebGLExtension.cpp: + * html/canvas/WebGLFramebuffer.cpp: + * html/canvas/WebGLFramebuffer.idl: + * html/canvas/WebGLGetInfo.cpp: + * html/canvas/WebGLObject.cpp: + * html/canvas/WebGLProgram.cpp: + * html/canvas/WebGLProgram.idl: + * html/canvas/WebGLRenderbuffer.cpp: + * html/canvas/WebGLRenderbuffer.idl: + * html/canvas/WebGLRenderingContext.cpp: + * html/canvas/WebGLRenderingContext.idl: + * html/canvas/WebGLShader.cpp: + * html/canvas/WebGLShader.idl: + * html/canvas/WebGLTexture.cpp: + * html/canvas/WebGLTexture.idl: + * html/canvas/WebGLUniformLocation.cpp: + * html/canvas/WebGLUniformLocation.idl: + * html/canvas/WebKitLoseContext.cpp: + * html/canvas/WebKitLoseContext.idl: + * page/DOMWindow.idl: + * platform/graphics/ANGLEWebKitBridge.cpp: + * platform/graphics/GraphicsContext3D.cpp: + * platform/graphics/cg/GraphicsContext3DCG.cpp: + * platform/graphics/gpu/DrawingBuffer.cpp: + * platform/graphics/gpu/mac/DrawingBufferMac.mm: + * platform/graphics/mac/GraphicsContext3DMac.mm: + * platform/graphics/mac/WebGLLayer.mm: + * platform/graphics/opengl/Extensions3DOpenGL.cpp: + * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: + * platform/graphics/qt/Extensions3DQt.cpp: + * platform/graphics/qt/GraphicsContext3DQt.cpp: + * platform/graphics/qt/GraphicsLayerQt.cpp: + (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl): + (WebCore::GraphicsLayerQtImpl::paint): + (WebCore::GraphicsLayerQtImpl::flushChanges): + * platform/graphics/qt/GraphicsLayerQt.h: + * platform/graphics/skia/GraphicsContext3DSkia.cpp: + * platform/graphics/texmap/GraphicsLayerTextureMapper.h: + * rendering/RenderLayerBacking.cpp: + (WebCore::isAcceleratedCanvas): + (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): + (WebCore::RenderLayerBacking::containsPaintedContent): + (WebCore::RenderLayerBacking::contentChanged): + * webaudio/AudioBuffer.cpp: + * webaudio/AudioBuffer.idl: + * webaudio/RealtimeAnalyser.cpp: + * webaudio/RealtimeAnalyser.h: + * webaudio/RealtimeAnalyserNode.h: + * webaudio/RealtimeAnalyserNode.idl: + * xml/XMLHttpRequest.cpp: + (WebCore::XMLHttpRequest::setResponseType): + (WebCore::XMLHttpRequest::clearResponse): + (WebCore::XMLHttpRequest::didReceiveData): + * xml/XMLHttpRequest.h: + +2011-01-25 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Chromium] Prepare for landing of detailed heap snapshots. + + - Introduce Preferences.detailedHeapProfiles flag for controlling + querying of detailed heap snapshots. + - Add boilerplate code for the new view. + - Factor out common code. + + https://bugs.webkit.org/show_bug.cgi?id=52624 + + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * bindings/js/ScriptProfiler.h: + (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl): + (WebCore::ScriptProfiler::takeHeapSnapshot): + * bindings/v8/ScriptProfiler.cpp: + (WebCore::ScriptProfiler::takeHeapSnapshot): + * bindings/v8/ScriptProfiler.h: + (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl): + * inspector/Inspector.idl: + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::takeHeapSnapshot): + * inspector/InspectorProfilerAgent.h: + * inspector/front-end/DetailedHeapshotView.js: Added. + (WebInspector.DetailedHeapshotView): + (WebInspector.DetailedHeapshotView.prototype.get statusBarItems): + (WebInspector.DetailedHeapshotView.prototype.get profile): + (WebInspector.DetailedHeapshotView.prototype.set profile): + (WebInspector.DetailedHeapshotView.prototype.show): + (WebInspector.DetailedHeapshotView.prototype.hide): + (WebInspector.DetailedHeapshotProfileType): + (WebInspector.DetailedHeapshotProfileType.prototype.get buttonTooltip): + (WebInspector.DetailedHeapshotProfileType.prototype.get buttonStyle): + (WebInspector.DetailedHeapshotProfileType.prototype.buttonClicked): + (WebInspector.DetailedHeapshotProfileType.prototype.get welcomeMessage): + (WebInspector.DetailedHeapshotProfileType.prototype.createSidebarTreeElementForProfile): + (WebInspector.DetailedHeapshotProfileType.prototype.createView): + * inspector/front-end/HeapSnapshot.js: Added. + (WebInspector.HeapSnapshotEdgesIterator): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get done): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get isElement): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get isHidden): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get name): + (WebInspector.HeapSnapshotEdgesIterator.prototype.next): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get node): + (WebInspector.HeapSnapshotEdgesIterator.prototype.get nodeIndex): + (WebInspector.HeapSnapshotEdgesIterator.prototype._getNameOrIndex): + (WebInspector.HeapSnapshotEdgesIterator.prototype._getType): + (WebInspector.HeapSnapshotNodeWrapper): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get edges): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get edgesCount): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get instancesCount): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get isHidden): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get name): + (WebInspector.HeapSnapshotNodeWrapper.prototype.get selfSize): + (WebInspector.HeapSnapshotNodeWrapper.prototype._getName): + (WebInspector.HeapSnapshotNodeWrapper.prototype._getEdges): + (WebInspector.HeapSnapshotNodeWrapper.prototype._getType): + (WebInspector.HeapSnapshot): + (WebInspector.HeapSnapshot.prototype._init): + (WebInspector.HeapSnapshot.prototype.get rootEdges): + * inspector/front-end/HeapSnapshotView.js: + (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked): + * inspector/front-end/ProfilesPanel.js: + (WebInspector.ProfilesPanel.prototype._setRecordingProfile): + (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress): + (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile): + (WebInspector.ProfilerDispatcher.prototype.reportHeapSnapshotProgress): + * inspector/front-end/Settings.js: + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.html: + * inspector/front-end/inspector.js: + (WebInspector._createPanels): + +2011-01-25 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: remove "attached" state related methods from InspectorAgent + https://bugs.webkit.org/show_bug.cgi?id=53086 + + * WebCore.exp.in: + * inspector/InspectorAgent.cpp: + * inspector/InspectorAgent.h: + * inspector/InspectorFrontendClientLocal.cpp: + (WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight): + (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight): + * inspector/InspectorSettings.cpp: + (WebCore::InspectorSettings::InspectorSettings): + * inspector/InspectorSettings.h: + +2011-01-25 Qi Zhang <qi.2.zhang@nokia.com> + + Reviewed by Laszlo Gombos. + + [Symbian] RVCT fails to compile [U|I]nt[8|16|32]Array.h + https://bugs.webkit.org/show_bug.cgi?id=51873 + + Replace the using declaration, because it doesn't compile on RVCT, and WINSCW has the same issue. + No new functionality so no new tests. + + * html/canvas/Int32Array.h: + (WebCore::Int32Array::set): + * html/canvas/Int8Array.h: + (WebCore::Int8Array::set): + * html/canvas/Uint16Array.h: + (WebCore::Uint16Array::set): + * html/canvas/Uint32Array.h: + (WebCore::Uint32Array::set): + * html/canvas/Uint8Array.h: + (WebCore::Uint8Array::set): + +2011-01-25 Zoltan Herczeg <zherczeg@webkit.org> + + Reviewed by Dirk Schulze. + + Repaint SVG elements with filter instead of relayout where possible + https://bugs.webkit.org/show_bug.cgi?id=52200 + + This patch allows repainting of filters, when their + attribute changes does not require relayout. + + Existing dynamic-update tests cover this feature. + + * platform/graphics/filters/FilterEffect.cpp: + (WebCore::FilterEffect::clearResult): Clearing the currently stored image + before repainting. + * platform/graphics/filters/FilterEffect.h: + * rendering/RenderObject.h: + (WebCore::RenderObject::isSVGResourceFilter): Not only the filter primitives, + but filters should also be detected to allow safe testing and casting. + * rendering/svg/RenderSVGResourceFilter.cpp: + (WebCore::RenderSVGResourceFilter::buildPrimitives): Passing the renderer. + (WebCore::RenderSVGResourceFilter::applyResource): + determineFilterPrimitiveSubregion does not require the filter anymore. + (WebCore::RenderSVGResourceFilter::postApplyResource): Repaint + if lastEffect->hasResult() is false. + (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged): + Searching for all FilterEffects, whose created by the current FilterElement, + and clearing all resulting images depending on those FilterEffects. + * rendering/svg/RenderSVGResourceFilter.h: + (WebCore::RenderSVGResourceFilter::isSVGResourceFilter): + * rendering/svg/RenderSVGResourceFilterPrimitive.cpp: + (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion): + The filter argument is unnecessary anymore. But is is still kept as a static + member, since the primitive renderer still does not know about the + FilterEffect objects. + * rendering/svg/RenderSVGResourceFilterPrimitive.h: + (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive): + (WebCore::RenderSVGResourceFilterPrimitive::primitiveAttributeChanged): + Calls RenderSVGResourceFilter::primitiveAttributeChanged. + * svg/SVGFEDiffuseLightingElement.cpp: + (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute): + Setting the new attribute value for each FilterEffect. + (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): + * svg/SVGFEDiffuseLightingElement.h: + Calling primitiveAttributeChanged. + * svg/SVGFilterPrimitiveStandardAttributes.cpp: + (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute): + This function will be removed when all FilterElement implements + their setFilterEffectAttribute + * svg/SVGFilterPrimitiveStandardAttributes.h: + (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged): + * svg/graphics/filters/SVGFilterBuilder.cpp: + (WebCore::SVGFilterBuilder::appendEffectToEffectReferences): The + renderers are assigned to the filter effects. + (WebCore::SVGFilterBuilder::clearEffects): + (WebCore::SVGFilterBuilder::clearResultsRecursive): Recursively + clearing the result images for those filters, whose depend on + the starting filter. + * svg/graphics/filters/SVGFilterBuilder.h: + (WebCore::SVGFilterBuilder::effectReferences): 'get' is unnecessary + (WebCore::SVGFilterBuilder::effectByRenderer): returns the + FilterEffect belongs to this RenderObject. + +2011-01-25 Dirk Schulze <krit@webkit.org> + + Reviewed by Nikolas Zimmermann. + + SVG is missing to-animation support for Path + https://bugs.webkit.org/show_bug.cgi?id=52982 + + SVG was missing 'to' animation support for SVG paths. Even the fallback to discrete + animation did not work and an assert was thrown, because of the missing m_fromPath. + This also influences a test of the W3C test suite. Subtest 2 of animate-elem-83-t.svg passes now. + + Test: svg/animations/animate-path-to-animation.html + + * svg/SVGAnimateElement.cpp: + (WebCore::SVGAnimateElement::calculateAnimatedValue): Take the value of the last SVGAnimateElement for + m_fromPath, since 'to' animations are accumulative. + (WebCore::SVGAnimateElement::calculateFromAndToValues): Added support for 'to' animations. + (WebCore::SVGAnimateElement::resetToBaseValue): Set m_animatedPath on the first animation element to baseVal. + * svg/SVGPathByteStream.h: + (WebCore::SVGPathByteStream::copySVGPathByteStream): Return copy of current byte stream. + +2011-01-25 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: bind resources to URLs upon adding them into the tree. + https://bugs.webkit.org/show_bug.cgi?id=53013 + + * inspector/front-end/AuditRules.js: + (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback): + * inspector/front-end/CSSStyleModel.js: + (WebInspector.CSSStyleModel.prototype._styleSheetChanged.callback): + (WebInspector.CSSStyleModel.prototype._styleSheetChanged): + * inspector/front-end/DebuggerModel.js: + (WebInspector.DebuggerModel.prototype._parsedScriptSource): + * inspector/front-end/NetworkManager.js: + (WebInspector.NetworkManager.prototype._processCachedResources): + (WebInspector.NetworkManager.prototype.inflightResourceForURL): + (WebInspector.NetworkDispatcher): + (WebInspector.NetworkDispatcher.prototype.willSendRequest): + (WebInspector.NetworkDispatcher.prototype.markResourceAsCached): + (WebInspector.NetworkDispatcher.prototype.didReceiveResponse): + (WebInspector.NetworkDispatcher.prototype.didReceiveContentLength): + (WebInspector.NetworkDispatcher.prototype.didFinishLoading): + (WebInspector.NetworkDispatcher.prototype.didFailLoading): + (WebInspector.NetworkDispatcher.prototype.willSendWebSocketHandshakeRequest): + (WebInspector.NetworkDispatcher.prototype.didReceiveWebSocketHandshakeResponse): + (WebInspector.NetworkDispatcher.prototype.didCloseWebSocket): + (WebInspector.NetworkDispatcher.prototype._appendRedirect): + (WebInspector.NetworkDispatcher.prototype._startResource): + (WebInspector.NetworkDispatcher.prototype._finishResource): + (WebInspector.NetworkDispatcher.prototype._createResource): + * inspector/front-end/ResourceTreeModel.js: + (WebInspector.ResourceTreeModel.prototype.addResourceToFrame): + (WebInspector.ResourceTreeModel.prototype._bindResourceURL): + (WebInspector.ResourceTreeModel.prototype._clearResources): + (WebInspector.ResourceTreeModel.prototype._unbindResourceURL): + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel.prototype.canShowSourceLine): + (WebInspector.ResourcesPanel.prototype.showSourceLine): + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._parsedScriptSource): + (WebInspector.ScriptsPanel.prototype._addScript): + +2011-01-25 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + Introduce FontMetrics abstraction + https://bugs.webkit.org/show_bug.cgi?id=51456 + + Use accurate floating-point metrics for SVG Font calculations instead of casting float -> integer. + This hopefully fixes differences between 32/64 bit bots. + + Needs new layout test results for several platforms, which need to be taken from the bots landing afterwards. + + * platform/graphics/SimpleFontData.cpp: + (WebCore::SimpleFontData::SimpleFontData): + (WebCore::SimpleFontData::initCharWidths): + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: debugger and browser debugger agents should manage sticky breakpoints independently. + https://bugs.webkit.org/show_bug.cgi?id=52999 + + * inspector/Inspector.idl: + * inspector/InspectorAgent.cpp: + (WebCore::InspectorAgent::didCommitLoad): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::inspectedURLWithoutFragment): + * inspector/InspectorAgent.h: + * inspector/InspectorBrowserDebuggerAgent.cpp: + (WebCore::InspectorBrowserDebuggerAgent::setAllBrowserBreakpoints): + (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged): + (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint): + * inspector/InspectorBrowserDebuggerAgent.h: + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent): + (WebCore::InspectorDebuggerAgent::setAllJavaScriptBreakpoints): + (WebCore::InspectorDebuggerAgent::inspectedURLChanged): + (WebCore::InspectorDebuggerAgent::restoreBreakpoints): + * inspector/InspectorDebuggerAgent.h: + * inspector/InspectorState.cpp: + (WebCore::InspectorState::InspectorState): + * inspector/InspectorState.h: + * inspector/front-end/BreakpointManager.js: + (WebInspector.BreakpointManager): + (WebInspector.BreakpointManager.prototype._projectChanged): + (WebInspector.BreakpointManager.prototype._saveBreakpoints): + (WebInspector.BreakpointManager.prototype._pushBreakpointsToBackend): + +2011-01-25 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Crash in some pages containing flash + https://bugs.webkit.org/show_bug.cgi?id=53016 + + Flash plugin can produce X errors that are handled by the GDK X + error handler, which exits the process. Since we don't want to + crash due to flash bugs, we install a custom error handler to show + a warning when a X error happens without aborting. + + * plugins/gtk/PluginPackageGtk.cpp: + (WebCore::webkitgtkXError): + (WebCore::PluginPackage::load): + +2011-01-25 Carlos Garcia Campos <cgarcia@igalia.com> + + Reviewed by Martin Robinson. + + [GTK] Implement spin buttons in RenderThemeGtk + https://bugs.webkit.org/show_bug.cgi?id=51454 + + Paint inner up/down buttons for spin button elements when building + with GTK+ 3.x. + + Test results will land with the GTK+ 2.x version of this patch. + + * platform/gtk/RenderThemeGtk.h: + * platform/gtk/RenderThemeGtk2.cpp: + (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): + (WebCore::RenderThemeGtk::paintInnerSpinButton): + * platform/gtk/RenderThemeGtk3.cpp: + (WebCore::spinButtonArrowSize): + (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle): + (WebCore::paintSpinArrowButton): + (WebCore::RenderThemeGtk::paintInnerSpinButton): + +2011-01-24 Mihai Parparita <mihaip@chromium.org> + + Unreviewed. Missed move of one m_deleted use to be outside NDEBUG block + in r76575. + + * loader/cache/CachedResource.cpp: + (WebCore::CachedResource::~CachedResource): + +2011-01-24 Mihai Parparita <mihaip@chromium.org> + + Reviewed by Tony Chang. + + Add runtime checks for invariants in memory cache + https://bugs.webkit.org/show_bug.cgi?id=53059 + + To help track down bug 53045, add some CRASH calls in addition to + ASSERTs, so that we can track down failures in reliability bots. + + Just some checks, no new tests necessary. + + * css/CSSImageValue.cpp: + (WebCore::CSSImageValue::cachedImage): + * loader/cache/CachedResource.h: + * loader/cache/CachedResource.cpp: + (WebCore::CachedResource::~CachedResource): + +2011-01-24 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Dan Bernstein. + + Leaking CSSRuleDataList objects + https://bugs.webkit.org/show_bug.cgi?id=53062 + + Fix leaked CSSRuleDataLists added to the m_pseudoRules hash. + + * css/CSSStyleSelector.cpp: + (WebCore::CSSRuleSet::~CSSRuleSet): + +2011-01-24 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Eric Seidel. + + Refcount Images used in rendering code + https://bugs.webkit.org/show_bug.cgi?id=52701 + + Change StyleImage::image(RenderObject*, const IntSize&) and + CSSImageGeneratorValue::image(RenderObject*, const IntSize&) to + return PassRefPtr<Image>, and adjust other code accordingly. + + This allows us to return one-time images, for example for CSS gradients + whose appearance may change depending on factors other than the renderer + and the destination size. + + * css/CSSCanvasValue.cpp: + (WebCore::CSSCanvasValue::image): + * css/CSSCanvasValue.h: + * css/CSSGradientValue.cpp: + (WebCore::CSSGradientValue::image): + * css/CSSGradientValue.h: + * css/CSSImageGeneratorValue.h: + * rendering/RenderBoxModelObject.cpp: + (WebCore::RenderBoxModelObject::paintFillLayerExtended): + (WebCore::RenderBoxModelObject::paintNinePieceImage): + * rendering/RenderImage.cpp: + (WebCore::RenderImage::paintReplaced): + (WebCore::RenderImage::paintIntoRect): + * rendering/RenderImageResource.h: + (WebCore::RenderImageResource::image): + * rendering/RenderImageResourceStyleImage.h: + (WebCore::RenderImageResourceStyleImage::image): + * rendering/RenderListMarker.cpp: + (WebCore::RenderListMarker::paint): + * rendering/style/StyleCachedImage.cpp: + (WebCore::StyleCachedImage::image): + * rendering/style/StyleCachedImage.h: + * rendering/style/StyleGeneratedImage.cpp: + (WebCore::StyleGeneratedImage::image): + * rendering/style/StyleGeneratedImage.h: + * rendering/style/StyleImage.h: + * rendering/style/StylePendingImage.h: + (WebCore::StylePendingImage::image): + * rendering/svg/RenderSVGImage.cpp: + (WebCore::RenderSVGImage::paint): + +2011-01-24 Tony Chang <tony@chromium.org> + + Unreviewed, round ascent and descent to match old code. + + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + +2011-01-24 Simon Fraser <simon.fraser@apple.com> + + Reviewed by Chris Marrin. + + perspective() transform function should take lengths + https://bugs.webkit.org/show_bug.cgi?id=52683 + + The argument to the perspective() transform function should + be a Length, rather than a bare number. Bare numbers are still + accepted (and treated as px), but this behavior is deprecated. + + Test: animations/3d/transform-perspective.html + transforms/3d/general/3dtransform-values.html + + * css/CSSParser.cpp: + (WebCore::CSSParser::parseTransform): Check the units for the perspective() + function. Allow bare numbers for backwards compatibility. + * css/CSSStyleSelector.cpp: + (WebCore::CSSStyleSelector::createTransformOperations): Convert + value to Length. + * platform/graphics/transforms/PerspectiveTransformOperation.cpp: + (WebCore::clampToPostiveInteger): Helper. + (WebCore::PerspectiveTransformOperation::blend): Blend via Lengths. + * platform/graphics/transforms/PerspectiveTransformOperation.h: + (WebCore::PerspectiveTransformOperation::create): double -> Length. + (WebCore::PerspectiveTransformOperation::perspective): Ditto. + (WebCore::PerspectiveTransformOperation::isIdentity): Ditto. + (WebCore::PerspectiveTransformOperation::apply): Ditto. + (WebCore::PerspectiveTransformOperation::PerspectiveTransformOperation): Assert + that the Length is a fixed type. + +2011-01-24 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + [Windows] Textfield <input>s have different widths. + https://bugs.webkit.org/show_bug.cgi?id=48405 + + - Apply the padding override for type=text to other textfield types too. + - Reset margin value of outer spin button, which is not used in Windows. + - Don't add inner spin button width to the preferred text field width. + Text fields should have the identical widths regardless of the + existence of spin buttons. + + Test: fast/forms/input-widths.html + + * css/themeWin.css: + (input[type="week"]): + (input[type="week"]:disabled): + (input[type="search"]::-webkit-search-cancel-button): + (input::-webkit-outer-spin-button): + * rendering/RenderTextControlSingleLine.cpp: + (WebCore::RenderTextControlSingleLine::preferredContentWidth): + Don't add inner spin button width to the preferred width. + +2011-01-24 Kent Tamura <tkent@chromium.org> + + Reviewed by Dimitri Glazkov. + + Some bugs of search cancel button and spin button about state change in + an event handler. + https://bugs.webkit.org/show_bug.cgi?id=46950 + + Fix the following problems: + * Type=search field didn't release event capturing + * Assertion failure when an input field with spin buttons was changed + to another type on focus event. + * A input field with spin button didn't release event capturing when it + was changed to another type on focus event. + + Tests: fast/forms/input-number-change-type-on-focus.html + fast/forms/search-hide-cancel-on-cancel.html + + * rendering/TextControlInnerElements.cpp: + (WebCore::SearchFieldCancelButtonElement::defaultEventHandler): + - Make the variable 'input' RefPtr. It makes the code simpler. + - Remove visibility check on mouseup event. We should release capturing + anyway because the cancel button may be invisible if JavaScript code + called by the focus event removes the input value. + (WebCore::SpinButtonElement::detach): + - Release capturing on detach because it is possible that a spin button + node is detached while it is capturing events. + (WebCore::SpinButtonElement::defaultEventHandler): + Take a reference to this and check renderer() after some functions which + may run JavaScript code. + (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): + Make the variable 'input' RefPtr to align other functions in this file. + (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): ditto. + * rendering/TextControlInnerElements.h: Declare SpinButtonElement::detach(). + +2011-01-24 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Ojan Vafai. + + Inserting multiple whitespace using text composition (IME) should insert interleaved nbsp and whitespace. + https://bugs.webkit.org/show_bug.cgi?id=52781 + + The bug was caused by stringWithRebalancedWhitespace's replacing the space at the beginning of a paragraph + and the end of a paragraph by a non-breaking space after it replaced two consecutive spaces by a space and + non-breaking space pattern, thereby replacing more spaces by non-breaking spaces than needed. + + Rewrote the function using Vector<UChar> to fix the bug. New function no longer calls String::replace + multiple times but instead it traverses through the string and replaces a space that immediately follows + another space or appears at the beginning of a paragraph or at the end of a paragraph by a non-break space. + + * editing/CompositeEditCommand.cpp: + * editing/htmlediting.cpp: + (WebCore::stringWithRebalancedWhitespace): Written. + * editing/htmlediting.h: + (WebCore::isWhitespace): Removed from CompositeEditCommand.cpp + +2011-01-24 Kenneth Russell <kbr@google.com> + + Reviewed by James Robinson. + + Web Audio API: port FFTFrame to FFTW + https://bugs.webkit.org/show_bug.cgi?id=52989 + + Ported FFTFrame class to the open-source FFTW library. Tested with + unit tests from Chris Rogers. Made preliminary changes to GYP + files for conditional compilation of these files; will need to be + adjusted once FFTW is integrated as third-party source. + + * WebCore.gyp/WebCore.gyp: + * WebCore.gypi: + * platform/audio/FFTFrame.h: + * platform/audio/fftw: Added. + * platform/audio/fftw/FFTFrameFFTW.cpp: Added. + (WebCore::FFTFrame::FFTFrame): + (WebCore::FFTFrame::~FFTFrame): + (WebCore::FFTFrame::multiply): + (WebCore::FFTFrame::doFFT): + (WebCore::FFTFrame::doInverseFFT): + (WebCore::FFTFrame::cleanup): + (WebCore::FFTFrame::realData): + (WebCore::FFTFrame::imagData): + (WebCore::FFTFrame::fftwPlanForSize): + +2011-01-24 Anders Carlsson <andersca@apple.com> + + Reviewed by Dan Bernstein. + + Reset the page scale factor on standard frame loads + https://bugs.webkit.org/show_bug.cgi?id=53058 + <rdar://problem/8908844> + + Add a symbol needed by WebKit2. + + * WebCore.exp.in: + +2011-01-24 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Eric Seidel. + + Stop instantiating legacy editing positions in InsertTextCommand, MoveSelectionCommand, + ReplaceSelectionCommand, SelectionController, SpellChecker, TypingCommand, and markup.cpp + https://bugs.webkit.org/show_bug.cgi?id=52676 + + Stop instantiating legacy editing positions in the following files. + + * editing/InsertTextCommand.cpp: + (WebCore::InsertTextCommand::prepareForTextInsertion): + (WebCore::InsertTextCommand::performTrivialReplace): + (WebCore::InsertTextCommand::input): + (WebCore::InsertTextCommand::insertTab): + * editing/MoveSelectionCommand.cpp: + (WebCore::MoveSelectionCommand::doApply): + * editing/ReplaceSelectionCommand.cpp: + (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): + (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded): + (WebCore::ReplaceSelectionCommand::doApply): + (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR): + (WebCore::ReplaceSelectionCommand::performTrivialReplace): + * editing/SelectionController.cpp: + (WebCore::SelectionController::setSelectionFromNone): + * editing/SpellChecker.cpp: + (WebCore::SpellChecker::didCheck): + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::makeEditableRootEmpty): + (WebCore::TypingCommand::deleteKeyPressed): + (WebCore::TypingCommand::forwardDeleteKeyPressed): + * editing/markup.cpp: + (WebCore::StyledMarkupAccumulator::appendText): + (WebCore::StyledMarkupAccumulator::serializeNodes): + (WebCore::highestAncestorToWrapMarkup): + (WebCore::createMarkup): + +2011-01-24 Peter Kasting <pkasting@google.com> + + Reviewed by Darin Adler. + + Roll back r67261 ("Don't fire onclick on middle clicks") due to + regressions. + https://bugs.webkit.org/show_bug.cgi?id=46733 + + * html/HTMLAnchorElement.cpp: + (WebCore::isLinkClick): + * html/HTMLInputElement.cpp: + (WebCore::HTMLInputElement::preDispatchEventHandler): + (WebCore::HTMLInputElement::postDispatchEventHandler): + (WebCore::HTMLInputElement::defaultEventHandler): + * page/EventHandler.cpp: + (WebCore::EventHandler::handleMouseDoubleClickEvent): + (WebCore::EventHandler::handleMouseReleaseEvent): + +2011-01-24 Martin Robinson <mrobinson@igalia.com> + + Reviewed by Eric Seidel. + + [GTK] Many DOM XHTML tests time out + https://bugs.webkit.org/show_bug.cgi?id=52553 + + Properly handle the situation where a synchronous load fails before the inner + event loop has started. In this case, we simply do not run the inner event loop, + or else it will block indefinitely (since no GIO or libsoup callbacks will fire). + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::ResourceHandle::loadResourceSynchronously): Bail out of a synchronous + load if it fails up front. + +2011-01-24 Zhenyao Mo <zmo@google.com> + + Reviewed by Eric Seidel. + + Cleanup WebGLGetInfo and related get*Parameter helpers in WebGLRenderingContext + https://bugs.webkit.org/show_bug.cgi?id=52338 + + Removed the long/unsigned long types and corresponding get functions + and use int/unsigned int instead. + + * bindings/js/JSWebGLRenderingContextCustom.cpp: + (WebCore::toJS): + * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp: + (WebCore::toV8Object): + * html/canvas/WebGLGetInfo.cpp: + (WebCore::WebGLGetInfo::WebGLGetInfo): + (WebCore::WebGLGetInfo::getInt): + (WebCore::WebGLGetInfo::getUnsignedInt): + * html/canvas/WebGLGetInfo.h: + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::getBufferParameter): + (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter): + (WebCore::WebGLRenderingContext::getParameter): + (WebCore::WebGLRenderingContext::getProgramParameter): + (WebCore::WebGLRenderingContext::getRenderbufferParameter): + (WebCore::WebGLRenderingContext::getShaderParameter): + (WebCore::WebGLRenderingContext::getTexParameter): + (WebCore::WebGLRenderingContext::getUniform): + (WebCore::WebGLRenderingContext::getVertexAttrib): + (WebCore::WebGLRenderingContext::getIntParameter): + (WebCore::WebGLRenderingContext::getUnsignedIntParameter): + * html/canvas/WebGLRenderingContext.h: + +2011-01-24 Zhenyao Mo <zmo@google.com> + + Reviewed by Darin Adler. + + Remove sizeInBytes from GraphicsContext3D's various implementations + https://bugs.webkit.org/show_bug.cgi?id=52339 + + * html/canvas/WebGLRenderingContext.cpp: + (WebCore::WebGLRenderingContext::sizeInBytes): + * platform/graphics/GraphicsContext3D.h: + * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp: + * platform/graphics/qt/GraphicsContext3DQt.cpp: + +2011-01-24 Adam Roben <aroben@apple.com> + + Windows Production build fix + + * WebCore.vcproj/WebCore.make: Update for move of WebCore into Source. + +2011-01-24 Anton Muhin <antonm@chromium.org> + + Reviewed by Nate Chapin. + + [v8] Refactoring: extract IntrusiveDOMWrapperMap into a seprate class and files. + https://bugs.webkit.org/show_bug.cgi?id=52911 + + Plain refactoring, covered by the existing tests. + + * WebCore.gypi: IntrusiveDOMWrapperMap.h added. + * bindings/v8/DOMDataStore.cpp: IntrusiveDOMWrapperMap is moved out of DOMDataStore class. + * bindings/v8/DOMDataStore.h: IntrusiveDOMWrapperMap is moved out of DOMDataStore class. + * bindings/v8/IntrusiveDOMWrapperMap.h: Added. + (WebCore::ChunkedTable::ChunkedTable): + (WebCore::ChunkedTable::add): + (WebCore::ChunkedTable::remove): + (WebCore::ChunkedTable::clear): + (WebCore::ChunkedTable::visit): + (WebCore::ChunkedTable::Chunk::Chunk): + (WebCore::ChunkedTable::clearEntries): + (WebCore::ChunkedTable::visitEntries): + (WebCore::IntrusiveDOMWrapperMap::IntrusiveDOMWrapperMap): + (WebCore::IntrusiveDOMWrapperMap::get): + (WebCore::IntrusiveDOMWrapperMap::set): + (WebCore::IntrusiveDOMWrapperMap::contains): + (WebCore::IntrusiveDOMWrapperMap::visit): + (WebCore::IntrusiveDOMWrapperMap::removeIfPresent): + (WebCore::IntrusiveDOMWrapperMap::clear): + (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::move): + (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::clear): + (WebCore::IntrusiveDOMWrapperMap::ChunkedTableTraits::visit): + * bindings/v8/StaticDOMDataStore.h: include added. + +2011-01-24 Shane Stephens <shanestephens@google.com> + + Reviewed by Chris Marrin. + + TransformationMatrix multiply operations apply operands in wrong order. + https://bugs.webkit.org/show_bug.cgi?id=52780 + + Rename TranformationMatrix::multLeft into multiply (the method does a multRight, + not a multLeft). + + Remove TransformationMatrix::multiply, which was actually doing a multLeft. + + Fix TransformationMatrix::operator* and operator*= such that the operand is + applied to the right-hand side of the matrix that the method is called on. + i.e., previously "a * b" used to compute "b * a", and "a *= b" used to store + "b * a" in "a". This has now been fixed so "a * b" computes "a * b" and + "a *= b" stores "a * b" in "a". + + Convert all call sites for these methods to provide operands in the correct order. + + No new tests as patch adds no new functionality. + + * css/WebKitCSSMatrix.cpp: + (WebCore::WebKitCSSMatrix::multiply): + * platform/graphics/transforms/Matrix3DTransformOperation.h: + (WebCore::Matrix3DTransformOperation::apply): + * platform/graphics/transforms/MatrixTransformOperation.h: + (WebCore::MatrixTransformOperation::apply): + * platform/graphics/transforms/TransformationMatrix.cpp: + (WebCore::TransformationMatrix::scaleNonUniform): + (WebCore::TransformationMatrix::scale3d): + (WebCore::TransformationMatrix::rotate3d): + (WebCore::TransformationMatrix::skew): + (WebCore::TransformationMatrix::applyPerspective): + (WebCore::TransformationMatrix::multiply): + (WebCore::TransformationMatrix::recompose): + * platform/graphics/transforms/TransformationMatrix.h: + (WebCore::TransformationMatrix::operator*=): + (WebCore::TransformationMatrix::operator*): + * rendering/RenderLayer.cpp: + (WebCore::transparencyClipBox): + * rendering/RenderObject.cpp: + (WebCore::RenderObject::getTransformFromContainer): + * rendering/TransformState.cpp: + (WebCore::TransformState::applyTransform): + (WebCore::HitTestingTransformState::applyTransform): + +2011-01-24 Andrei Popescu <andreip@google.com> + + Reviewed by Nate Chapin. + + IndexedDatabase methods should not take arguments of type OptionsObject + https://bugs.webkit.org/show_bug.cgi?id=53012 + + This patch reverts all IDB methods, except IDBDatabase::createObjectStore and + IDBObjectStore::createIndex, to using a plain list of arguments instead of + grouping the various parameters inside a single OptionsObject argument. + This decision was made on public-webapps@w3.org mailing list. + + We also add support (v8 only for now) for passing DOMStringList objects as arguments to native + methods. The code for obtaining a DOMStringList object from a JS array of strings existed already + in OptionsObject.cpp, I just copied it to V8Bindings.cpp and taught the v8 code generator how to + use it. + + * bindings/scripts/CodeGeneratorV8.pm: + * bindings/v8/V8Binding.cpp: + (WebCore::v8ValueToWebCoreDOMStringList): + * bindings/v8/V8Binding.h: + * storage/IDBDatabase.cpp: + (WebCore::IDBDatabase::transaction): + * storage/IDBDatabase.h: + (WebCore::IDBDatabase::transaction): + * storage/IDBDatabase.idl: + * storage/IDBIndex.cpp: + (WebCore::IDBIndex::openCursor): + (WebCore::IDBIndex::openKeyCursor): + * storage/IDBIndex.h: + (WebCore::IDBIndex::openCursor): + (WebCore::IDBIndex::openKeyCursor): + * storage/IDBIndex.idl: + * storage/IDBObjectStore.cpp: + (WebCore::IDBObjectStore::openCursor): + * storage/IDBObjectStore.h: + (WebCore::IDBObjectStore::openCursor): + * storage/IDBObjectStore.idl: + +2011-01-24 Pavel Feldman <pfeldman@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: extract dispatch API from network manager. + https://bugs.webkit.org/show_bug.cgi?id=53009 + + * WebCore.xcodeproj/project.pbxproj: + * inspector/front-end/NetworkManager.js: + (WebInspector.NetworkManager): + (WebInspector.NetworkManager.prototype.reset): + (WebInspector.NetworkManager.prototype.requestContent): + (WebInspector.NetworkManager.prototype._processCachedResources): + (WebInspector.NetworkDispatcher): + (WebInspector.NetworkDispatcher.prototype._updateResourceWithRequest): + (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse): + (WebInspector.NetworkDispatcher.prototype._updateResourceWithCachedResource): + (WebInspector.NetworkDispatcher.prototype.identifierForInitialRequest): + (WebInspector.NetworkDispatcher.prototype.willSendRequest): + (WebInspector.NetworkDispatcher.prototype.didReceiveResponse): + (WebInspector.NetworkDispatcher.prototype.didLoadResourceFromMemoryCache): + (WebInspector.NetworkDispatcher.prototype.didCommitLoadForFrame): + (WebInspector.NetworkDispatcher.prototype.didCreateWebSocket): + (WebInspector.NetworkDispatcher.prototype._appendRedirect): + (WebInspector.NetworkDispatcher.prototype._startResource): + (WebInspector.NetworkDispatcher.prototype._updateResource): + (WebInspector.NetworkDispatcher.prototype._finishResource): + (WebInspector.NetworkDispatcher.prototype._addFramesRecursively): + (WebInspector.NetworkDispatcher.prototype._dispatchEventToListeners): + (WebInspector.NetworkDispatcher.prototype._createResource): + * inspector/front-end/Resource.js: + (WebInspector.Resource.prototype._innerRequestContent): + * inspector/front-end/ResourceTreeModel.js: + (WebInspector.ResourceTreeModel): + (WebInspector.ResourceTreeModel.prototype.reset): + (WebInspector.ResourceTreeModel.prototype.unbindResourceURL): + +2011-01-24 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [JSC] remove ScriptDebugServer::pageCreated + https://bugs.webkit.org/show_bug.cgi?id=53007 + + It's impossible to create "provisional" inspector for pages which are + not yet created so there is no need to listen for page creation in ScriptDebugServer. + + * bindings/js/ScriptDebugServer.cpp: + * bindings/js/ScriptDebugServer.h: + * page/Page.cpp: + (WebCore::Page::Page): + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [REGRESSION] AppCache view on resources panel is broken. + https://bugs.webkit.org/show_bug.cgi?id=53002 + + + * inspector/front-end/ApplicationCacheItemsView.js: + (WebInspector.ApplicationCacheItemsView.prototype._update): + * inspector/front-end/DOMAgent.js: + (WebInspector.ApplicationCacheDispatcher.getApplicationCachesAsync): + +2011-01-24 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Fix warnings about unregistering an invalid timer + https://bugs.webkit.org/show_bug.cgi?id=53006 + + The ShadowBuffer's purge timer ID was initialized with 0 which lead + to us calling QObject::killTimer(0), causing some qWarnings. + + * platform/graphics/qt/ContextShadowQt.cpp: + (WebCore::ShadowBuffer::ShadowBuffer): + (WebCore::ShadowBuffer::schedulePurge): + +2011-01-21 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: [Chromium] Fix heap snapshot table sorting. + + Fix table sorting to avoid qsort instability artefacts. + + https://bugs.webkit.org/show_bug.cgi?id=52914 + + * inspector/front-end/HeapSnapshotView.js: + (WebInspector.HeapSnapshotView.prototype._sortData): + (WebInspector.HeapSnapshotDataGridList.propertyComparator.comparator): + (WebInspector.HeapSnapshotDataGridList.propertyComparator): + +2011-01-24 Mikhail Naganov <mnaganov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: Find duplicate strings in localizedStrings.js, update it. + + https://bugs.webkit.org/show_bug.cgi?id=53005 + + * English.lproj/localizedStrings.js: + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Unreviewed, build fix for r76509. + + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::setBreakpoint): + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Unreviewed, build fix for r76509. + + * bindings/js/ScriptDebugServer.h: + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Yury Semikhatsky. + + Web Inspector: set breakpoints by line:column. + https://bugs.webkit.org/show_bug.cgi?id=52615 + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::setBreakpoint): + (WebCore::ScriptDebugServer::removeBreakpoint): + (WebCore::ScriptDebugServer::hasBreakpoint): + (WebCore::ScriptDebugServer::clearBreakpoints): + * bindings/js/ScriptDebugServer.h: + * bindings/v8/DebuggerScript.js: + (): + * bindings/v8/ScriptDebugServer.cpp: + (WebCore::ScriptDebugServer::setBreakpoint): + * bindings/v8/ScriptDebugServer.h: + * inspector/Inspector.idl: + * inspector/InspectorBrowserDebuggerAgent.cpp: + (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint): + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::setStickyBreakpoint): + (WebCore::InspectorDebuggerAgent::setBreakpoint): + (WebCore::InspectorDebuggerAgent::restoreBreakpoint): + (WebCore::InspectorDebuggerAgent::didParseSource): + * inspector/InspectorDebuggerAgent.h: + * inspector/ScriptBreakpoint.cpp: Removed. + * inspector/ScriptBreakpoint.h: + (WebCore::ScriptBreakpoint::ScriptBreakpoint): + * inspector/front-end/Breakpoint.js: + (WebInspector.Breakpoint): + (WebInspector.Breakpoint.prototype.get url): + * inspector/front-end/BreakpointManager.js: + (WebInspector.JavaScriptBreakpoint.prototype._serializeToJSON): + * inspector/front-end/DebuggerModel.js: + (WebInspector.DebuggerModel.prototype.continueToLine): + (WebInspector.DebuggerModel.prototype.setBreakpoint): + (WebInspector.DebuggerModel.prototype._breakpointSetOnBackend): + (WebInspector.DebuggerDispatcher.prototype.breakpointResolved): + +2011-01-24 Peter Beverloo <peter@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: recognize application/x-font-woff as a valid mime-type. + https://bugs.webkit.org/show_bug.cgi?id=52977 + + No new tests. + + * inspector/front-end/inspector.js: + +2011-01-24 Pavel Podivilov <podivilov@chromium.org> + + Unreviewed, fix for r76497. + + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel.prototype.show): + +2011-01-24 Andreas Kling <kling@webkit.org> + + Reviewed by Tor Arne Vestbø. + + [Qt] Use rad2deg() from WTF instead of rolling our own. + https://bugs.webkit.org/show_bug.cgi?id=52993 + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContext::rotate): + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::addArc): + +2011-01-24 Sergio Villar Senin <svillar@igalia.com> + + Reviewed by Martin Robinson. + + [Gtk] ResourceHandleSoup: do not wait for streams to close to issue didFinishLoading + https://bugs.webkit.org/show_bug.cgi?id=52885 + + No new tests as it does not change functionality. We will not wait for + the the input stream to close to issue didFinishLoading to + WebCore. We expect a subtle performance improvement with this + patch when loading complex web pages, as we wouldn't have to wait + for the stream to close (which involves creating a thread among + other things). + + * platform/network/soup/ResourceHandleSoup.cpp: + (WebCore::closeCallback): + (WebCore::readCallback): + +2011-01-21 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: eliminate SourceView and ScriptView classes. + https://bugs.webkit.org/show_bug.cgi?id=52896 + + SourceView and ScriptView delegate everything to SourceFrame and should be eliminated. + + * WebCore.gypi: + * WebCore.vcproj/WebCore.vcproj: + * inspector/front-end/GoToLineDialog.js: + (WebInspector.GoToLineDialog.prototype._highlightSelectedLine): + * inspector/front-end/ResourceView.js: + (WebInspector.ResourceView.createResourceView): + (WebInspector.ResourceView.resourceViewTypeMatchesResource): + (WebInspector.SourceFrameContentProviderForResource): Moved from SourceView. + * inspector/front-end/ResourcesPanel.js: + (WebInspector.ResourcesPanel.prototype.show): + (WebInspector.ResourcesPanel.prototype._applyDiffMarkup): + (WebInspector.FrameResourceTreeElement.prototype._errorsWarningsUpdated): + * inspector/front-end/ScriptView.js: Removed. + * inspector/front-end/ScriptsPanel.js: + (WebInspector.ScriptsPanel.prototype._scriptSourceChanged): + (WebInspector.ScriptsPanel.prototype._sourceFrameForScriptOrResource): + (WebInspector.ScriptsPanel.prototype._showScriptOrResource): + (WebInspector.ScriptsPanel.prototype._setPauseOnExceptions): + (WebInspector.ScriptsPanel.prototype._formatScript): + (WebInspector.SourceFrameContentProviderForScript): Moved from ScriptView. + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame): + (WebInspector.SourceFrame.prototype.show): + (WebInspector.SourceFrame.prototype.hide): + (WebInspector.SourceFrame.prototype.hasContent): + (WebInspector.SourceFrame.prototype._createTextViewer): + (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches): + (WebInspector.SourceFrame.prototype.performSearch): + * inspector/front-end/SourceView.js: Removed. + * inspector/front-end/WebKit.qrc: + * inspector/front-end/inspector.html: + +2011-01-24 Andras Becsi <abecsi@webkit.org> + + Reviewed by Csaba Osztrogonác. + + [Qt] Move project files into Source + https://bugs.webkit.org/show_bug.cgi?id=52891 + + No new tests needed. + + * WebCore.pri: + * WebCore.pro: + +2011-01-24 Kent Tamura <tkent@chromium.org> + + Unreviewed, trivial fix. + + Fix a Chromium-only assertion failure by r76491. + https://bugs.webkit.org/show_bug.cgi?id=38982 + + Separate icon loading from the FileChooser constructor in order to avoid + ref() before adoptRef(). + + * platform/FileChooser.cpp: + (WebCore::FileChooser::FileChooser): + (WebCore::FileChooser::initialize): + (WebCore::FileChooser::create): + * platform/FileChooser.h: + +2011-01-24 MORITA Hajime <morrita@google.com> + + Reviewed by Kent Tamura. + + TextControlInnerElement::m_shadowParent should be removed. + https://bugs.webkit.org/show_bug.cgi?id=52998 + + No new tests. No behavioral change. + + * rendering/TextControlInnerElements.cpp: + (WebCore::TextControlInnerElement::TextControlInnerElement): + * rendering/TextControlInnerElements.h: + +2011-01-24 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Pavel Feldman. + + REGRESSION (r72895): console.trace crashes + https://bugs.webkit.org/show_bug.cgi?id=52981 + + - Use local RefPtr variable for accessing PassRefPtr arguments to make sure the PassRefPtr has + non-null value. + - Use PassRefPtr for objects whos ownership is passed to the inspector. + + * GNUmakefile.am: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * inspector/InspectorConsoleInstrumentation.h: Added. Extract inline methods called from the console into their + own header to reduce compilation time of other classes that depend on the inspector instrumentation. + (WebCore::InspectorInstrumentation::addMessageToConsole): + (WebCore::InspectorInstrumentation::consoleCount): + (WebCore::InspectorInstrumentation::startConsoleTiming): + (WebCore::InspectorInstrumentation::stopConsoleTiming): + (WebCore::InspectorInstrumentation::consoleMarkTimeline): + (WebCore::InspectorInstrumentation::addStartProfilingMessageToConsole): + (WebCore::InspectorInstrumentation::addProfile): + (WebCore::InspectorInstrumentation::profilerEnabled): + (WebCore::InspectorInstrumentation::getCurrentUserInitiatedProfileName): + * inspector/InspectorDatabaseInstrumentation.h: Added. Extract inline methods called from the datanase code into their + own header to reduce compilation time of other classes that depend on the inspector instrumentation. + (WebCore::InspectorInstrumentation::didOpenDatabase): + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::addMessageToConsoleImpl): + (WebCore::InspectorInstrumentation::consoleCountImpl): + (WebCore::InspectorInstrumentation::stopConsoleTimingImpl): + (WebCore::InspectorInstrumentation::consoleMarkTimelineImpl): + (WebCore::InspectorInstrumentation::addProfileImpl): + (WebCore::InspectorInstrumentation::didOpenDatabaseImpl): + * inspector/InspectorInstrumentation.h: + * page/Console.cpp: use RefPtr local variable instead of accessing PassRefPtr argument directly. + (WebCore::Console::addMessage): + (WebCore::Console::trace): + (WebCore::Console::count): + (WebCore::Console::markTimeline): + (WebCore::Console::profileEnd): + (WebCore::Console::timeEnd): + (WebCore::Console::group): + (WebCore::Console::groupCollapsed): + * storage/Database.cpp: + (WebCore::Database::openDatabase): + +2010-01-24 Kent Tamura <tkent@chromium.org> + + Reviewed by Darin Fisher. + + [Chromium] Support icon loading for <input type=file> + https://bugs.webkit.org/show_bug.cgi?id=38982 + + An icon data in Chromium port is represented as WebCore::Image. We + don't need OS-specific code anymore. + + * WebCore.gypi: + * platform/graphics/Icon.h: + (WebCore::Icon::create): Add Chromium-specific factory. + * platform/graphics/chromium/IconChromium.cpp: Added. + * platform/graphics/chromium/IconChromiumLinux.cpp: Removed. + * platform/graphics/chromium/IconChromiumMac.cpp: Removed. + * platform/graphics/chromium/IconChromiumWin.cpp: Removed. + * platform/graphics/chromium/PlatformIcon.h: + +2011-01-21 Pavel Podivilov <podivilov@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: move search functions from SourceView to SourceFrame. + https://bugs.webkit.org/show_bug.cgi?id=52895 + + This is the last step before eliminating SourceView and ScriptView since + this classes just delegate everything to SourceFrame. + + * inspector/front-end/SourceFrame.js: + (WebInspector.SourceFrame.prototype.set visible): + (WebInspector.SourceFrame.prototype._clearLineHighlight): + (WebInspector.SourceFrame.prototype._createTextViewer): + (WebInspector.SourceFrame.prototype.performSearch.doFindSearchMatches): + (WebInspector.SourceFrame.prototype.performSearch): + (WebInspector.SourceFrame.prototype.searchCanceled): + (WebInspector.SourceFrame.prototype.jumpToFirstSearchResult): + (WebInspector.SourceFrame.prototype.jumpToLastSearchResult): + (WebInspector.SourceFrame.prototype.jumpToNextSearchResult): + (WebInspector.SourceFrame.prototype.jumpToPreviousSearchResult): + (WebInspector.SourceFrame.prototype.showingFirstSearchResult): + (WebInspector.SourceFrame.prototype.showingLastSearchResult): + (WebInspector.SourceFrame.prototype._jumpToSearchResult): + * inspector/front-end/SourceView.js: + (WebInspector.SourceView.prototype.hide): + (WebInspector.SourceView.prototype.searchCanceled): + (WebInspector.SourceView.prototype.performSearch): + (WebInspector.SourceView.prototype.jumpToFirstSearchResult): + (WebInspector.SourceView.prototype.jumpToLastSearchResult): + (WebInspector.SourceView.prototype.jumpToNextSearchResult): + (WebInspector.SourceView.prototype.jumpToPreviousSearchResult): + (WebInspector.SourceView.prototype.showingFirstSearchResult): + (WebInspector.SourceView.prototype.showingLastSearchResult): + (WebInspector.SourceView.prototype.clearMessages): + +2011-01-24 Sheriff Bot <webkit.review.bot@gmail.com> + + Unreviewed, rolling out r76463. + http://trac.webkit.org/changeset/76463 + https://bugs.webkit.org/show_bug.cgi?id=52993 + + It broke canvas/philip/tests/2d.path.stroke.skew.html + (Requested by Ossy on #webkit). + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContext::rotate): + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::addArc): + +2011-01-23 Andrey Kosyakov <caseq@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: summary bar is not resized properly with the rest of network panel + https://bugs.webkit.org/show_bug.cgi?id=52881 + + * inspector/front-end/NetworkPanel.js: + (WebInspector.NetworkPanel.prototype.updateSidebarWidth): + (WebInspector.NetworkPanel.prototype._positionSummaryBar): + (WebInspector.NetworkPanel.prototype._toggleGridMode): + +2011-01-19 MORITA Hajime <morrita@google.com> + + Reviewed by Ryosuke Niwa. + + Space and tab characters "sent" by an input method give totally different results than typing them directly + https://bugs.webkit.org/show_bug.cgi?id=5241 + + * Introduced TextEvent::InputTypeComposition and TypingCommand::TextCompositionType to + distinguish text input which is originated by composition. + * Generalized rebalanceWhitespaceAt() to rebalanceWhitespaceOnTextSubstring() to rebalancing + range of string on text node, instead of surrounding part of that. + + Test: editing/inserting/insert-composition-whitespace.html + + * dom/TextEvent.h: + (WebCore::TextEvent::isComposition): + * dom/TextEventInputType.h: Added TextEventInputComposition as a member of TextEvent::InputType + * editing/CompositeEditCommand.cpp: + (WebCore::containsOnlyWhitespace): + (WebCore::CompositeEditCommand::shouldRebalanceLeadingWhitespaceFor): + (WebCore::CompositeEditCommand::canRebalance): + (WebCore::CompositeEditCommand::rebalanceWhitespaceAt): + (WebCore::CompositeEditCommand::rebalanceWhitespaceOnTextSubstring): Added: A generalized version of rebalanceWhitespaceAt(), which takes a range inside Text string. + * editing/CompositeEditCommand.h: + * editing/Editor.cpp: + (WebCore::Editor::insertTextForConfirmedComposition): Added. + (WebCore::Editor::insertTextWithoutSendingTextEvent): + (WebCore::Editor::confirmComposition): Now uses insertTextForConfirmedComposition(). + (WebCore::Editor::setComposition): + * editing/Editor.h: + * editing/InsertTextCommand.cpp: + (WebCore::InsertTextCommand::input): + * editing/InsertTextCommand.h: + * editing/TypingCommand.cpp: + (WebCore::TypingCommand::TypingCommand): + (WebCore::TypingCommand::insertText): + (WebCore::TypingCommand::insertTextRunWithoutNewlines): + * editing/TypingCommand.h: Added TypingCommand::m_compositionType and TypingCommand::TextCompositionType + (WebCore::TypingCommand::setCompositionType): Added. + (WebCore::TypingCommand::create): + +2011-01-23 Mark Rowe <mrowe@apple.com> + + Follow-up to r76477. + + Fix the scripts that detect problematic code such as static initializers + and destructors, weak vtables, inappropriate files in the framework wrappers, + and public headers including private headers. These had all been broken + since the projects were moved in to the Source directory as the paths to the + scripts were not updated at that time. + + Stop copying an IDL file in to the framework wrapper. Doing that doesn't even make sense. + + * WebCore.xcodeproj/project.pbxproj: + +2011-01-23 Mark Rowe <mrowe@apple.com> + + Build fix after r76459. + + Static member variables or globals of types that have constructors or destructors are bad as + they generate static initializers and destructors. This is code that is run either at link time + when the library is loaded in to memory or at application termination time. Both of these are + terrible for performance and are thus outlawed in WebKit code. + + The typical solution is to replace the static member or global with a function that allocates + the necessary variable on the heap. The variable is leaked to prevent it from being destroyed + at application termination time. The DEFINE_STATIC_LOCAL macro wraps this in to a concise little + package, but sadly fails to work in this case due to the type containing multiple template + parameters. + + * inspector/InspectorInstrumentation.cpp: + (WebCore::InspectorInstrumentation::inspectorAgents): + * inspector/InspectorInstrumentation.h: + (WebCore::InspectorInstrumentation::bindInspectorAgent): + (WebCore::InspectorInstrumentation::unbindInspectorAgent): + (WebCore::InspectorInstrumentation::inspectorAgentForPage): + +2011-01-21 Vangelis Kokkevis <vangelis@chromium.org> + + Reviewed by Kenneth Russell. + + [chromium] Add support for -webkit-mask properties to the + accelerated compositing path. + https://bugs.webkit.org/show_bug.cgi?id=49780 + + Tests: Existing tests in LayoutTests/compositing/masks + + * platform/graphics/chromium/ContentLayerChromium.cpp: + (WebCore::ContentLayerChromium::draw): + (WebCore::ContentLayerChromium::unreserveContentsTexture): + (WebCore::ContentLayerChromium::bindContentsTexture): + * platform/graphics/chromium/ContentLayerChromium.h: + * platform/graphics/chromium/GraphicsLayerChromium.cpp: + (WebCore::GraphicsLayerChromium::setMaskLayer): + * platform/graphics/chromium/GraphicsLayerChromium.h: + * platform/graphics/chromium/LayerChromium.cpp: + (WebCore::LayerChromium::LayerChromium): + * platform/graphics/chromium/LayerChromium.h: + (WebCore::LayerChromium::setMaskLayer): + (WebCore::LayerChromium::maskLayer): + (WebCore::LayerChromium::unreserveContentsTexture): + (WebCore::LayerChromium::bindContentsTexture): + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::updateLayersRecursive): + * platform/graphics/chromium/LayerTexture.cpp: + (WebCore::LayerTexture::bindTexture): + * platform/graphics/chromium/RenderSurfaceChromium.cpp: + (WebCore::RenderSurfaceChromium::SharedValues::SharedValues): + (WebCore::RenderSurfaceChromium::SharedValues::~SharedValues): + (WebCore::RenderSurfaceChromium::RenderSurfaceChromium): + (WebCore::RenderSurfaceChromium::draw): + * platform/graphics/chromium/RenderSurfaceChromium.h: + (WebCore::RenderSurfaceChromium::SharedValues::maskShaderProgram): + (WebCore::RenderSurfaceChromium::SharedValues::maskShaderSamplerLocation): + (WebCore::RenderSurfaceChromium::SharedValues::maskShaderMaskSamplerLocation): + (WebCore::RenderSurfaceChromium::SharedValues::maskShaderMatrixLocation): + (WebCore::RenderSurfaceChromium::SharedValues::maskShaderAlphaLocation): + +2011-01-23 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Darin Adler. + + Use WTF::StringHasher in WebCore + https://bugs.webkit.org/show_bug.cgi?id=52934 + + * loader/appcache/ApplicationCacheStorage.cpp: + (WebCore::urlHostHash): + * platform/LinkHash.cpp: + (WebCore::visitedLinkHashInline): + * platform/cf/BinaryPropertyList.cpp: + (WebCore::IntegerArrayHash::hash): + * platform/graphics/wx/FontPlatformDataWx.cpp: + (WebCore::FontPlatformData::computeHash): + * platform/network/ProtectionSpaceHash.h: + (WebCore::ProtectionSpaceHash::hash): + +2011-01-23 Patrick Gansterer <paroga@webkit.org> + + Reviewed by David Kilzer. + + Add an overload to base64Encode with String output + https://bugs.webkit.org/show_bug.cgi?id=50122 + + This change removes duplicated code. + + * inspector/InspectorResourceAgent.cpp: + (WebCore::InspectorResourceAgent::resourceContentBase64): + * page/DOMWindow.cpp: + (WebCore::DOMWindow::btoa): + * platform/graphics/skia/FontCustomPlatformData.cpp: + (WebCore::createUniqueFontName): + * platform/graphics/win/FontCustomPlatformData.cpp: + (WebCore::createUniqueFontName): + * platform/graphics/wince/FontCustomPlatformData.cpp: + (WebCore::createUniqueFontName): + * platform/network/cf/ResourceHandleCFNet.cpp: + (WebCore::encodeBasicAuthorization): + * platform/network/mac/ResourceHandleMac.mm: + (WebCore::encodeBasicAuthorization): + * platform/text/Base64.cpp: + (WebCore::base64Encode): + * platform/text/Base64.h: + (WebCore::base64Encode): + * platform/wince/KeygenWinCE.cpp: + (WebCore::WebCore::signedPublicKeyAndChallengeString): + +2011-01-23 Patrick Gansterer <paroga@webkit.org> + + Reviewed by David Kilzer. + + Add String::containsOnlyLatin1() + https://bugs.webkit.org/show_bug.cgi?id=52979 + + Use String::containsOnlyLatin1() instead of isSafeToConvertCharList(). + + * page/DOMWindow.cpp: + (WebCore::DOMWindow::btoa): + (WebCore::DOMWindow::atob): + +2011-01-23 Patrick Gansterer <paroga@webkit.org> + + Reviewed by Andreas Kling. + + [CMake] Add missing CodeGenerator dependencies + https://bugs.webkit.org/show_bug.cgi?id=52976 + + * CMakeLists.txt: + +2011-01-23 Yael Aharon <yael.aharon@nokia.com> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt][Symbian] Fix --minimal build + https://bugs.webkit.org/show_bug.cgi?id=52839 + + Some of the plugins' functionality is reimplemented in + Symbian specific files. + Some of this functionality should be compiled in even if + the guard NETSCAPE_PLUGIN_API is turned off. + This patch moves that functionality out of the + NETSCAPE_PLUGIN_API guard. + + Build fix so no new tests. + + * WebCore.pro: + * plugins/symbian/PluginPackageSymbian.cpp: + +2011-01-23 Andreas Kling <kling@webkit.org> + + Reviewed by Tor Arne Vestbø. + + [Qt] Use rad2deg() from WTF instead of rolling our own. + + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::GraphicsContext::rotate): + * platform/graphics/qt/PathQt.cpp: + (WebCore::Path::addArc): + +2011-01-23 Kenneth Rohde Christiansen <kenneth@webkit.org> + + Reviewed by Andreas Kling. + + Viewport meta: Always adjust device dimensions to the device pixel ratio. + + * dom/ViewportArguments.cpp: + (WebCore::computeViewportAttributes): + +2011-01-23 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + Don't scale absolute geometry specified by viewport meta tag. + + * dom/ViewportArguments.cpp: + (WebCore::computeViewportAttributes): + +2011-01-23 Ilya Tikhonovsky <loislo@chromium.org> + + Unreviewed build fix. + + Web Inspector: looks like efl doesn't regenerate InspectorBackendDispatcher. + + Touch Inspector.idl. + + * inspector/Inspector.idl: + +2011-01-22 Ilya Tikhonovsky <loislo@chromium.org> + + Reviewed by Pavel Feldman. + + Web Inspector: next step in splitting InspectorController. + + Splitting InspectorController is a bit tricky process. + + As a first step I'll do the next things: + 1) rename existing InspectorController to InspectorAgent; + 2) s/nspectorController/nspectorAgent/g everywhere in WebCore/inspector but InspectorInstrumentation; + 3) create a fake InspectorController derived from the InspectorAgent for the rest of WebCore and WebKit; + + The second step is a migration of a small set of functions described in bug 52510 from InspectorAgent to InspectorController. + + As far as the second step will have significant changes in the functions' implementation I'll do it as a separate patch. + + https://bugs.webkit.org/show_bug.cgi?id=52955 + + * CMakeLists.txt: + * GNUmakefile.am: + * WebCore.exp.in: + * WebCore.gypi: + * WebCore.pro: + * WebCore.vcproj/WebCore.vcproj: + * WebCore.xcodeproj/project.pbxproj: + * bindings/js/JSInjectedScriptHostCustom.cpp: + (WebCore::JSInjectedScriptHost::nodeForId): + (WebCore::JSInjectedScriptHost::selectDOMStorage): + * bindings/v8/custom/V8InjectedScriptHostCustom.cpp: + (WebCore::V8InjectedScriptHost::nodeForIdCallback): + * inspector/CodeGeneratorInspector.pm: + * inspector/InjectedScriptHost.cpp: + (WebCore::InjectedScriptHost::InjectedScriptHost): + (WebCore::InjectedScriptHost::clearConsoleMessages): + (WebCore::InjectedScriptHost::databaseForId): + (WebCore::InjectedScriptHost::selectDatabase): + (WebCore::InjectedScriptHost::selectDOMStorage): + (WebCore::InjectedScriptHost::injectedScriptForMainFrame): + (WebCore::InjectedScriptHost::inspectorDOMAgent): + (WebCore::InjectedScriptHost::frontend): + (WebCore::InjectedScriptHost::didCreateWorker): + (WebCore::InjectedScriptHost::didDestroyWorker): + * inspector/InjectedScriptHost.h: + (WebCore::InjectedScriptHost::create): + (WebCore::InjectedScriptHost::inspectorAgent): + (WebCore::InjectedScriptHost::disconnectController): + * inspector/InspectorAgent.cpp: Copied from Source/WebCore/inspector/InspectorController.cpp. + (WebCore::InspectorAgent::InspectorAgent): + (WebCore::InspectorAgent::~InspectorAgent): + (WebCore::InspectorAgent::inspectedPageDestroyed): + (WebCore::InspectorAgent::enabled): + (WebCore::InspectorAgent::inspectorStartsAttached): + (WebCore::InspectorAgent::setInspectorStartsAttached): + (WebCore::InspectorAgent::setInspectorAttachedHeight): + (WebCore::InspectorAgent::inspectorAttachedHeight): + (WebCore::InspectorAgent::searchingForNodeInPage): + (WebCore::InspectorAgent::restoreInspectorStateFromCookie): + (WebCore::InspectorAgent::inspect): + (WebCore::InspectorAgent::focusNode): + (WebCore::InspectorAgent::highlight): + (WebCore::InspectorAgent::highlightDOMNode): + (WebCore::InspectorAgent::highlightFrame): + (WebCore::InspectorAgent::hideHighlight): + (WebCore::InspectorAgent::mouseDidMoveOverElement): + (WebCore::InspectorAgent::handleMousePress): + (WebCore::InspectorAgent::setInspectorFrontendClient): + (WebCore::InspectorAgent::didClearWindowObjectInWorld): + (WebCore::InspectorAgent::setSearchingForNode): + (WebCore::InspectorAgent::connectFrontend): + (WebCore::InspectorAgent::show): + (WebCore::InspectorAgent::showPanel): + (WebCore::InspectorAgent::close): + (WebCore::InspectorAgent::disconnectFrontend): + (WebCore::InspectorAgent::resourceAgent): + (WebCore::InspectorAgent::releaseFrontendLifetimeAgents): + (WebCore::InspectorAgent::populateScriptObjects): + (WebCore::InspectorAgent::pushDataCollectedOffline): + (WebCore::InspectorAgent::restoreDebugger): + (WebCore::InspectorAgent::restoreProfiler): + (WebCore::InspectorAgent::unbindAllResources): + (WebCore::InspectorAgent::didCommitLoad): + (WebCore::InspectorAgent::mainResourceFiredDOMContentEvent): + (WebCore::InspectorAgent::mainResourceFiredLoadEvent): + (WebCore::InspectorAgent::isMainResourceLoader): + (WebCore::InspectorAgent::willSendRequest): + (WebCore::InspectorAgent::ensureSettingsLoaded): + (WebCore::InspectorAgent::startTimelineProfiler): + (WebCore::InspectorAgent::stopTimelineProfiler): + (WebCore::PostWorkerNotificationToFrontendTask::create): + (WebCore::PostWorkerNotificationToFrontendTask::PostWorkerNotificationToFrontendTask): + (WebCore::PostWorkerNotificationToFrontendTask::performTask): + (WebCore::InspectorAgent::postWorkerNotificationToFrontend): + (WebCore::InspectorAgent::didCreateWorker): + (WebCore::InspectorAgent::didDestroyWorker): + (WebCore::InspectorAgent::didOpenDatabase): + (WebCore::InspectorAgent::getCookies): + (WebCore::InspectorAgent::buildArrayForCookies): + (WebCore::InspectorAgent::buildObjectForCookie): + (WebCore::InspectorAgent::deleteCookie): + (WebCore::InspectorAgent::didUseDOMStorage): + (WebCore::InspectorAgent::didCreateWebSocket): + (WebCore::InspectorAgent::willSendWebSocketHandshakeRequest): + (WebCore::InspectorAgent::didReceiveWebSocketHandshakeResponse): + (WebCore::InspectorAgent::didCloseWebSocket): + (WebCore::InspectorAgent::isRecordingUserInitiatedProfile): + (WebCore::InspectorAgent::startUserInitiatedProfiling): + (WebCore::InspectorAgent::stopUserInitiatedProfiling): + (WebCore::InspectorAgent::profilerEnabled): + (WebCore::InspectorAgent::enableProfiler): + (WebCore::InspectorAgent::disableProfiler): + (WebCore::InspectorAgent::showAndEnableDebugger): + (WebCore::InspectorAgent::enableDebugger): + (WebCore::InspectorAgent::disableDebugger): + (WebCore::InspectorAgent::resume): + (WebCore::InspectorAgent::setAllBrowserBreakpoints): + (WebCore::InspectorAgent::evaluateForTestInFrontend): + (WebCore::InspectorAgent::didEvaluateForTestInFrontend): + (WebCore::quadToPath): + (WebCore::drawOutlinedQuad): + (WebCore::drawOutlinedQuadWithClip): + (WebCore::drawHighlightForBox): + (WebCore::drawHighlightForLineBoxesOrSVGRenderer): + (WebCore::convertFromFrameToMainFrame): + (WebCore::frameToMainFrameOffset): + (WebCore::InspectorAgent::drawNodeHighlight): + (WebCore::InspectorAgent::drawElementTitle): + (WebCore::InspectorAgent::openInInspectedWindow): + (WebCore::InspectorAgent::addScriptToEvaluateOnLoad): + (WebCore::InspectorAgent::removeAllScriptsToEvaluateOnLoad): + (WebCore::InspectorAgent::setInspectorExtensionAPI): + (WebCore::InspectorAgent::inspectedURL): + (WebCore::InspectorAgent::reloadPage): + (WebCore::InspectorAgent::setExtraHeaders): + * inspector/InspectorAgent.h: Copied from Source/WebCore/inspector/InspectorController.h. + (WebCore::InspectorAgent::inspectorBackendDispatcher): + (WebCore::InspectorAgent::inspectorClient): + (WebCore::InspectorAgent::injectedScriptHost): + (WebCore::InspectorAgent::inspectedPage): + (WebCore::InspectorAgent::hideDOMNodeHighlight): + (WebCore::InspectorAgent::hideFrameHighlight): + (WebCore::InspectorAgent::frontend): + (WebCore::InspectorAgent::inspectorController): + (WebCore::InspectorAgent::inspectorAgent): + (WebCore::InspectorAgent::consoleAgent): + (WebCore::InspectorAgent::cssAgent): + (WebCore::InspectorAgent::domAgent): + (WebCore::InspectorAgent::injectedScriptAgent): + (WebCore::InspectorAgent::runtimeAgent): + (WebCore::InspectorAgent::timelineAgent): + (WebCore::InspectorAgent::databaseAgent): + (WebCore::InspectorAgent::domStorageAgent): + (WebCore::InspectorAgent::fileSystemAgent): + (WebCore::InspectorAgent::browserDebuggerAgent): + (WebCore::InspectorAgent::debuggerAgent): + (WebCore::InspectorAgent::profilerAgent): + (WebCore::InspectorAgent::applicationCacheAgent): + (WebCore::InspectorAgent::hasInspectorFrontendClient): + (WebCore::InspectorAgent::hasFrontend): + (WebCore::InspectorAgent::startProfiling): + (WebCore::InspectorAgent::stopProfiling): + (WebCore::InspectorAgent::debuggerEnabled): + (WebCore::InspectorAgent::state): + (WebCore::InspectorAgent::settings): + * inspector/InspectorApplicationCacheAgent.cpp: + (WebCore::InspectorApplicationCacheAgent::InspectorApplicationCacheAgent): + (WebCore::InspectorApplicationCacheAgent::getApplicationCaches): + * inspector/InspectorApplicationCacheAgent.h: + * inspector/InspectorBrowserDebuggerAgent.cpp: + (WebCore::InspectorBrowserDebuggerAgent::InspectorBrowserDebuggerAgent): + (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged): + (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint): + (WebCore::InspectorBrowserDebuggerAgent::setDOMBreakpoint): + (WebCore::InspectorBrowserDebuggerAgent::removeDOMBreakpoint): + (WebCore::InspectorBrowserDebuggerAgent::willInsertDOMNode): + (WebCore::InspectorBrowserDebuggerAgent::willRemoveDOMNode): + (WebCore::InspectorBrowserDebuggerAgent::willModifyDOMAttr): + (WebCore::InspectorBrowserDebuggerAgent::descriptionForDOMEvent): + (WebCore::InspectorBrowserDebuggerAgent::pauseOnNativeEventIfNeeded): + (WebCore::InspectorBrowserDebuggerAgent::willSendXMLHttpRequest): + * inspector/InspectorBrowserDebuggerAgent.h: + (WebCore::InspectorBrowserDebuggerAgent::create): + * inspector/InspectorConsoleAgent.cpp: + (WebCore::InspectorConsoleAgent::InspectorConsoleAgent): + (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent): + (WebCore::InspectorConsoleAgent::clearConsoleMessages): + (WebCore::InspectorConsoleAgent::addMessageToConsole): + (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest): + (WebCore::InspectorConsoleAgent::didReceiveResponse): + (WebCore::InspectorConsoleAgent::didFailLoading): + (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled): + (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled): + (WebCore::InspectorConsoleAgent::addConsoleMessage): + * inspector/InspectorConsoleAgent.h: + * inspector/InspectorController.cpp: + (WebCore::InspectorController::InspectorController): + * inspector/InspectorController.h: + * inspector/InspectorDatabaseAgent.cpp: + * inspector/InspectorDebuggerAgent.cpp: + (WebCore::InspectorDebuggerAgent::create): + (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent): + (WebCore::InspectorDebuggerAgent::~InspectorDebuggerAgent): + (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame): + (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame): + (WebCore::InspectorDebuggerAgent::currentCallFrames): + * inspector/InspectorDebuggerAgent.h: + * inspector/InspectorFileSystemAgent.cpp: + (WebCore::InspectorFileSystemAgentCallbacks::didOpenFileSystem): + (WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent): + (WebCore::InspectorFileSystemAgent::stop): + (WebCore::InspectorFileSystemAgent::getFileSystemPathAsync): + (WebCore::InspectorFileSystemAgent::didGetFileSystemPath): + (WebCore::InspectorFileSystemAgent::didGetFileSystemError): + * inspector/InspectorFileSystemAgent.h: + (WebCore::InspectorFileSystemAgent::create): + * inspector/InspectorFrontendHost.cpp: + (WebCore::InspectorFrontendHost::setExtensionAPI): + * inspector/InspectorProfilerAgent.cpp: + (WebCore::InspectorProfilerAgent::create): + (WebCore::InspectorProfilerAgent::InspectorProfilerAgent): + (WebCore::InspectorProfilerAgent::addProfileFinishedMessageToConsole): + (WebCore::InspectorProfilerAgent::addStartProfilingMessageToConsole): + (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling): + (WebCore::InspectorProfilerAgent::stopUserInitiatedProfiling): + * inspector/InspectorProfilerAgent.h: + +2011-01-22 Chris Rogers <crogers@google.com> + + Rubber-stamped by Anders Carlsson. + + Fix FFTFrameStub to compile properly + https://bugs.webkit.org/show_bug.cgi?id=52969 + + No new tests since this is a build fix. + + * platform/audio/FFTFrameStub.cpp: + (WebCore::FFTFrame::FFTFrame): + +2011-01-22 Andrei Popescu <andreip@google.com> + + Reviewed by Jeremy Orlow. + + IndexedDB corrupts data on disk + https://bugs.webkit.org/show_bug.cgi?id=52890 + + We need to store the SerializedScriptValues on disk in a BLOB column rather than TEXT. + Test: storage/indexeddb/data-corruption.html + + * platform/sql/SQLiteStatement.cpp: + (WebCore::SQLiteStatement::bindBlob): + (WebCore::SQLiteStatement::getColumnBlobAsString): + (WebCore::SQLiteStatement::getColumnBlobAsVector): + * platform/sql/SQLiteStatement.h: + * storage/IDBCursorBackendImpl.cpp: + (WebCore::IDBCursorBackendImpl::loadCurrentRow): + * storage/IDBFactoryBackendImpl.cpp: + (WebCore::runCommands): + (WebCore::createTables): + (WebCore::createMetaDataTable): + (WebCore::migrateDatabase): + * storage/IDBObjectStoreBackendImpl.cpp: + (WebCore::IDBObjectStoreBackendImpl::getInternal): + (WebCore::putObjectStoreData): + +2011-01-22 Nikolas Zimmermann <nzimmermann@rim.com> + + Not reviewed. Fix WinCE build. + + * platform/graphics/wince/GraphicsContextWinCE.cpp: + (WebCore::GraphicsContext::drawText): + * rendering/RenderThemeWinCE.cpp: + (WebCore::RenderThemeWinCE::adjustMenuListButtonStyle): + +2011-01-22 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + REGRESSION: Vertical line metrics incorrect + https://bugs.webkit.org/show_bug.cgi?id=52960 + + SimpleFontDataMac.mm contains a hack to modifiy lineGap/descent for the 'Hiragino' font. + That didn't influence the lineSpacing so far, but does now, causing regressions. + + Restore old line spacing behaviour to fix the regression. + Covered by existing fast/blockflow, fast/repaint and fast/text/international test cases. + + * platform/graphics/FontMetrics.h: + (WebCore::FontMetrics::FontMetrics): + (WebCore::FontMetrics::floatLineSpacing): + (WebCore::FontMetrics::setLineSpacing): + (WebCore::FontMetrics::lineSpacing): + (WebCore::FontMetrics::reset): + * platform/graphics/SimpleFontData.cpp: + (WebCore::SimpleFontData::SimpleFontData): + * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/chromium/SimpleFontDataLinux.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/freetype/SimpleFontDataFreeType.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/haiku/SimpleFontDataHaiku.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/mac/SimpleFontDataMac.mm: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/pango/SimpleFontDataPango.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/qt/SimpleFontDataQt.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataCGWin.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataCairoWin.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataWin.cpp: + (WebCore::SimpleFontData::initGDIFont): + * platform/graphics/wince/SimpleFontDataWinCE.cpp: + (WebCore::SimpleFontData::platformInit): + * platform/graphics/wx/SimpleFontDataWx.cpp: + (WebCore::SimpleFontData::platformInit): + +2011-01-22 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] fast/backgrounds/svg-as-mask.html fails + https://bugs.webkit.org/show_bug.cgi?id=52906 + + Transparency layers should start out with in SourceOver mode with + alpha 1.0 (modeled after CGContextBeginTransparencyLayer.) + + * platform/graphics/qt/TransparencyLayer.h: + (WebCore::TransparencyLayer::TransparencyLayer): + +2011-01-22 Nikolas Zimmermann <nzimmermann@rim.com> + + Not reviewed. + + Introduce FontMetrics abstraction + https://bugs.webkit.org/show_bug.cgi?id=51456 + + Fix Chromium/Win build. + + * platform/graphics/chromium/UniscribeHelperTextRun.cpp: s/->/./ + (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): + +2011-01-21 Nikolas Zimmermann <nzimmermann@rim.com> + + Reviewed by Dirk Schulze. + + Introduce FontMetrics abstraction + https://bugs.webkit.org/show_bug.cgi?id=51456 + + Encapsulate ascent/descent/lineHeight/lineGap methods in a single FontMetrics class, instead of + having to define them in both Font & SimpleFontData. Changed to store floating point values + as default, in order to get accurate information for small sized fonts. All these methods + now have floating-point and integer versions. Whenever an integer variant of these functions + is called, lroundf() is used to round the value. + + This makes it possible to support small font-sizes for SVG in a follow-up patch, as well + as fixing rounding issues when using SVG Fonts. + + Shouldn't affect existing tests. + + * GNUmakefile.am: Add FontMetrics.h to build. + * WebCore.gypi: Ditto. + * WebCore.pro: Ditto. + * WebCore.vcproj/WebCore.vcproj: Ditto. + * WebCore.xcodeproj/project.pbxproj: Ditto. + * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. + (baselinePositionForAccessibilityRenderObject): + * css/CSSPrimitiveValue.cpp: + (WebCore::CSSPrimitiveValue::computeLengthDouble): + * html/canvas/CanvasRenderingContext2D.cpp: Ditto. + (WebCore::CanvasRenderingContext2D::drawTextInternal): + * inspector/InspectorController.cpp: Ditto. + (WebCore::InspectorController::drawElementTitle): + * platform/chromium/PopupMenuChromium.cpp: Ditto. + (WebCore::PopupListBox::paintRow): + (WebCore::PopupListBox::getRowHeight): + * platform/graphics/Font.h: Remove ascent/descent/height/lineGap/lineSpacing/xHeight/unitsPerEm accessor... + (WebCore::Font::fontMetrics): ... and only expose a single FontMetrics object here. + * platform/graphics/FontFastPath.cpp: Use fontMetrics() to query metrics information. + (WebCore::Font::emphasisMarkAscent): + (WebCore::Font::emphasisMarkDescent): + (WebCore::Font::emphasisMarkHeight): + (WebCore::Font::floatWidthForSimpleText): + * platform/graphics/FontMetrics.h: Added. + (WebCore::FontMetrics::FontMetrics): Creates a FontMetrics object, stored in SimpleFontData. + (WebCore::FontMetrics::unitsPerEm): Returns an unsigned describing the unitsPerEm. + (WebCore::FontMetrics::setUnitsPerEm): Sets the unitsPerEm value. + (WebCore::FontMetrics::floatAscent): Returns the stored m_ascent float. + (WebCore::FontMetrics::setAscent): Sets the stored m_ascent float. + (WebCore::FontMetrics::floatDescent): Returns the stored m_descent float. + (WebCore::FontMetrics::setDescent): Sets the stored m_descent float. + (WebCore::FontMetrics::floatHeight): Returns floatAscent() + floatDescent(). + (WebCore::FontMetrics::floatLineGap): Returns the stored m_lineGap float. + (WebCore::FontMetrics::setLineGap): Sets the stored m_lineGap float. + (WebCore::FontMetrics::floatLineSpacing): Returns the stored m_lineSpacing float. + (WebCore::FontMetrics::setLineSpacing): Sets the stored m_lineSpacing float. + (WebCore::FontMetrics::xHeight): Returns the stored m_xHeight float (no integer version available, hence no 'float' prefix). + (WebCore::FontMetrics::setXHeight): Sets the stored m_xHeight float. + (WebCore::FontMetrics::ascent): Returns a rounded version of ascent(). + (WebCore::FontMetrics::descent): Ditto (for descent). + (WebCore::FontMetrics::height): Returns ascent() + descent(). + (WebCore::FontMetrics::lineGap): Returns a rounded version of lineGap(). + (WebCore::FontMetrics::lineSpacing): Ditto (for lineSpacing). + (WebCore::FontMetrics::reset): Nulls all members, used only by the platform variants of SimpleFontData. + * platform/graphics/SimpleFontData.cpp: Adapt SVG Fonts code, to initialize the FontMetrics object, as the m_ascent/etc.. members are gone. + (WebCore::SimpleFontData::SimpleFontData): + (WebCore::SimpleFontData::initCharWidths): + * platform/graphics/SimpleFontData.h: Remove ascent/descent/height/lineSpacing/lineGap/xHeight/unitsPerEm accessors, and members, just store a FontMetrics object and expose it. + (WebCore::SimpleFontData::fontMetrics): + (WebCore::SimpleFontData::avgCharWidth): + * platform/graphics/chromium/FontChromiumWin.cpp: Use fontMetrics() to query font metrics. + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::estimateTextBounds): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareGlyphPainter::drawGlyphs): + (WebCore::TransparencyAwareFontPainter::TransparencyAwareUniscribePainter::estimateTextBounds): + (WebCore::Font::drawComplexText): + * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp: Adapt platform code, to initialize the FontMetrics object. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/chromium/SimpleFontDataLinux.cpp: Ditto. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/chromium/UniscribeHelperTextRun.cpp: Use fontMetrics() to query font metrics. + (WebCore::UniscribeHelperTextRun::UniscribeHelperTextRun): + (WebCore::UniscribeHelperTextRun::nextWinFontData): + * platform/graphics/freetype/SimpleFontDataFreeType.cpp: Adapt platform code, to initialize the FontMetrics object. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/haiku/SimpleFontDataHaiku.cpp: Ditto. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/mac/FontComplexTextMac.cpp: Use fontMetrics() to query font metrics. + (WebCore::Font::floatWidthForComplexText): + * platform/graphics/mac/FontMac.mm: Ditto. + (WebCore::showGlyphsWithAdvances): + * platform/graphics/mac/SimpleFontDataMac.mm: Adapt platform code, to initialize the FontMetrics object. + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformCharWidthInit): + * platform/graphics/pango/SimpleFontDataPango.cpp: Ditto. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/qt/SimpleFontDataQt.cpp: Ditto. (+ Switch to QFontMetricsF to get floating-point accurancy.) + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/FontCGWin.cpp: Use fontMetrics() to query font metrics. + (WebCore::drawGDIGlyphs): + * platform/graphics/win/FontWin.cpp: Ditto. + (WebCore::Font::floatWidthForComplexText): + * platform/graphics/win/SimpleFontDataCGWin.cpp: Adapt platform code, to initialize the FontMetrics object. + (WebCore::SimpleFontData::platformInit): + (WebCore::SimpleFontData::platformBoundsForGlyph): + * platform/graphics/win/SimpleFontDataCairoWin.cpp: Ditto. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/win/SimpleFontDataWin.cpp: Ditto. + (WebCore::SimpleFontData::initGDIFont): + * platform/graphics/wince/GraphicsContextWinCE.cpp: Use fontMetrics() to query font metrics. + (WebCore::GraphicsContext::drawText): + * platform/graphics/wince/SimpleFontDataWinCE.cpp: Adapt platform code, to initialize the FontMetrics object. + (WebCore::SimpleFontData::platformInit): + * platform/graphics/wx/SimpleFontDataWx.cpp: Ditto. + (WebCore::SimpleFontData::platformInit): + * platform/win/PopupMenuWin.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. + (WebCore::PopupMenuWin::calculatePositionAndSize): + (WebCore::PopupMenuWin::paint): + * rendering/EllipsisBox.cpp: Ditto. + (WebCore::EllipsisBox::paint): + (WebCore::EllipsisBox::nodeAtPoint): + * rendering/InlineBox.cpp: Ditto. + (WebCore::InlineBox::logicalHeight): + * rendering/InlineFlowBox.cpp: Ditto. + (WebCore::verticalPositionForBox): + (WebCore::InlineFlowBox::computeLogicalBoxHeights): + (WebCore::InlineFlowBox::placeBoxesInBlockDirection): + * rendering/InlineTextBox.cpp: Ditto. + (WebCore::InlineTextBox::paint): + (WebCore::InlineTextBox::paintDecoration): + (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): + (WebCore::InlineTextBox::paintCompositionUnderline): + * rendering/RenderBlock.cpp: Ditto. + (WebCore::RenderBlock::baselinePosition): + (WebCore::RenderBlock::firstLineBoxBaseline): + (WebCore::RenderBlock::lastLineBoxBaseline): + * rendering/RenderBox.cpp: Ditto. + (WebCore::RenderBox::localCaretRect): + * rendering/RenderEmbeddedObject.cpp: Ditto. + (WebCore::RenderEmbeddedObject::paintReplaced): + * rendering/RenderImage.cpp: Ditto. + (WebCore::RenderImage::setImageSizeForAltText): + (WebCore::RenderImage::paintReplaced): + * rendering/RenderInline.cpp: Ditto. + (WebCore::RenderInline::baselinePosition): + * rendering/RenderListBox.cpp: Ditto. + (WebCore::RenderListBox::paintItemForeground): + (WebCore::RenderListBox::itemHeight): + * rendering/RenderListMarker.cpp: Ditto. + (WebCore::RenderListMarker::paint): + (WebCore::RenderListMarker::layout): + (WebCore::RenderListMarker::computePreferredLogicalWidths): + (WebCore::RenderListMarker::updateMargins): + (WebCore::RenderListMarker::getRelativeMarkerRect): + * rendering/RenderTextControl.cpp: Ditto. + (WebCore::RenderTextControl::paintPlaceholder): + * rendering/RenderTextControlSingleLine.cpp: Ditto. + (WebCore::RenderTextControlSingleLine::createInnerTextStyle): + * rendering/RenderThemeWin.cpp: Ditto. + (WebCore::RenderThemeWin::adjustMenuListButtonStyle): + * rendering/mathml/RenderMathMLFraction.cpp: Ditto. + (WebCore::RenderMathMLFraction::baselinePosition): + * rendering/style/RenderStyle.h: Add "const FontMetrics& fontMetrics() const" accessor. + (WebCore::InheritedFlags::fontMetrics): + (WebCore::InheritedFlags::computedLineHeight): + * rendering/svg/RenderSVGInlineText.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. + (WebCore::RenderSVGInlineText::positionForPoint): + * rendering/svg/SVGInlineTextBox.cpp: Ditto. + (WebCore::SVGInlineTextBox::selectionRectForTextFragment): + (WebCore::positionOffsetForDecoration): + (WebCore::SVGInlineTextBox::paintDecorationWithStyle): + (WebCore::SVGInlineTextBox::paintTextWithShadows): + (WebCore::SVGInlineTextBox::calculateBoundaries): + * rendering/svg/SVGTextLayoutEngineBaseline.cpp: Ditto. + (WebCore::SVGTextLayoutEngineBaseline::calculateBaselineShift): + (WebCore::SVGTextLayoutEngineBaseline::calculateAlignmentBaselineShift): + (WebCore::SVGTextLayoutEngineBaseline::calculateGlyphAdvanceAndOrientation): + * rendering/svg/SVGTextLayoutEngineSpacing.cpp: Ditto. + (WebCore::SVGTextLayoutEngineSpacing::calculateSVGKerning): + * rendering/svg/SVGTextMetrics.cpp: Ditto. + (WebCore::SVGTextMetrics::SVGTextMetrics): + * rendering/svg/SVGTextQuery.cpp: Ditto. + (WebCore::calculateGlyphBoundaries): + * svg/SVGFontFaceElement.cpp: + (WebCore::SVGFontFaceElement::unitsPerEm): Rename defaultUnitsPerEm global to gDefaultUnitsPerEm. + * svg/SVGLength.cpp: Use style->fontMetrics() instead of style->font() to access the metrics. + (WebCore::SVGLength::convertValueFromUserUnitsToEXS): + (WebCore::SVGLength::convertValueFromEXSToUserUnits): + +2011-01-22 Ryosuke Niwa <rniwa@webkit.org> + + Reviewed by Eric Seidel. + + Stop instantiating legacy editing positions in VisibleSelection, visible_units.cpp, Frame, and RenderBlock + https://bugs.webkit.org/show_bug.cgi?id=52759 + + Stopped instantiating legacy editing positions in the following files. + + * editing/VisibleSelection.cpp: + (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries): + * editing/visible_units.cpp: + (WebCore::previousBoundary): + (WebCore::previousLinePosition): + (WebCore::nextLinePosition): + (WebCore::startOfBlock): + * page/Frame.cpp: + (WebCore::Frame::visiblePositionForPoint): + * rendering/RenderBlock.cpp: Removed RenderBlock::positionForRenderer because it was not called anywhere. + * rendering/RenderBlock.h: Ditto. + +2011-01-22 Adrienne Walker <enne@google.com> + + Reviewed by James Robinson. + + [chromium] Fix compositor repaints for offscreen fixed elements + https://bugs.webkit.org/show_bug.cgi?id=52681 + + The fast path scrolling was clipping offscreen invalidations. + Additionally, the compositor was ignoring all invalidations that were + entirely out of the content rect. + + Test: compositing/ to verify this caused no regressions. + Tested fix manually in browser as I could not generate a LayoutTest that reproduced the bug in run-webkit-tests. + + * page/FrameView.cpp: + (WebCore::FrameView::scrollContentsFastPath): + * platform/graphics/chromium/LayerRendererChromium.cpp: + (WebCore::LayerRendererChromium::invalidateRootLayerRect): + +2011-01-22 Alexey Proskuryakov <ap@apple.com> + + Reviewed by Dan Bernstein. + + https://bugs.webkit.org/show_bug.cgi?id=52951 + WebKit2 generates a bad PDF for cross process messaging + + * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Use a correct offset to actually + draw inside the requested rectangle. + +2011-01-21 Yury Semikhatsky <yurys@chromium.org> + + Reviewed by Adam Barth. + + Regression: new window.onerror() implementation leaks cross-origin Javascript errors + https://bugs.webkit.org/show_bug.cgi?id=52903 + + In case of an exception in a script from different domain only generic message + will be passed to window.onerror hander. + + Tests: http/tests/security/cross-origin-script-window-onerror-redirected.html + http/tests/security/cross-origin-script-window-onerror.html + + * bindings/js/CachedScriptSourceProvider.h: use URL from the resource response to make sure we do all + cross origin checks agains real script URL, not the original URL which may have resulted in a sequence + of redirects to different domains. + (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider): + * bindings/v8/ScriptSourceCode.h: same for v8. + (WebCore::ScriptSourceCode::url): + * dom/ScriptExecutionContext.cpp: + (WebCore::ScriptExecutionContext::dispatchErrorEvent): in case the error occurred in a script we cannot + access provide concise "Script error." message without any information about the error source. This is + what Firefox does in this case. + +2011-01-21 Andreas Kling <kling@webkit.org> + + Reviewed by Kenneth Rohde Christiansen. + + [Qt] Always set composition mode through GraphicsContext + https://bugs.webkit.org/show_bug.cgi?id=52940 + + GraphicsContext tracks the current composition mode so we should + never call through to the QPainter directly. + + * platform/graphics/GraphicsContext.h: + * platform/graphics/qt/GraphicsContextQt.cpp: + (WebCore::toQtCompositionMode): Changed this method to a static inline + since it's only used by GraphicsContextQt.cpp now. + + * platform/graphics/qt/ImageQt.cpp: + (WebCore::Image::drawPattern): + (WebCore::BitmapImage::draw): + +2011-01-21 Dan Bernstein <mitz@apple.com> + + Reviewed by Adele Peterson. + + Inconsistent handling of no-break space in justification logic + https://bugs.webkit.org/show_bug.cgi?id=52938 + + Test: fast/text/justify-nbsp.html + + * rendering/RenderBlockLineLayout.cpp: + (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Count no-break space as a + space when computing the distribution of space between text boxes on the line. + 2011-01-21 Charlie Reis <creis@chromium.org> Reviewed by Darin Fisher. |