Timeline



Sep 2, 2013:

11:06 PM Changeset in webkit [154969] by Lucas Forschler
  • 6 edits
    24 copies in branches/safari-537-branch

Merged r154785. <rdar://problem/14664586>

11:02 PM Changeset in webkit [154968] by Darin Adler
  • 2 edits in trunk/Source/WebCore
  • inspector/InspectorProfilerAgent.cpp:

(WebCore::InspectorProfilerAgent::removeProfile): Fix braces here; a review
comment I forgot to address in my last check-in.

11:00 PM Changeset in webkit [154967] by Darin Adler
  • 39 edits in trunk/Source

Cut down on double hashing and code needlessly using hash table iterators
https://bugs.webkit.org/show_bug.cgi?id=120611

Reviewed by Andreas Kling.

Source/WebCore:

Some of these changes are primarily code cleanup, but others could provide
a small code size and speed improvement by avoiding extra hashing.

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::Watchers::find): Use get instead of find.
(WebCore::Geolocation::Watchers::remove): Use take instead of find.
(WebCore::Geolocation::makeCachedPositionCallbacks): Use the return
value from remove to avoid hashing twice.

  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::addAutomaticPullNode): Use the return value from
add to avoid hashing twice.
(WebCore::AudioContext::removeAutomaticPullNode): Use the return value
from remove to avoid hashing twice.

  • Modules/webaudio/AudioNodeInput.cpp:

(WebCore::AudioNodeInput::connect): Use the return value from add to avoid
hashing twice.
(WebCore::AudioNodeInput::disconnect): Use the return value from remove
to avoid hashing twice.

  • Modules/webaudio/AudioParam.cpp:

(WebCore::AudioParam::connect): Use the return value from add to avoid
hashing twice.
(WebCore::AudioParam::disconnect): Use the return value from remove to
avoid hashing twice.

  • bridge/NP_jsobject.cpp:

(ObjectMap::remove): Use remove instead of find/remove.

  • dom/Node.cpp:

(WebCore::Node::~Node): Use the return value from remove instead of
find/remove.

  • inspector/InspectorProfilerAgent.cpp:

(WebCore::InspectorProfilerAgent::removeProfile): Remove needless
calls to contains.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::removeSubresourceLoader): Use the return
value from remove instead of find/remove.

  • loader/ResourceLoadScheduler.cpp:

(WebCore::ResourceLoadScheduler::HostInformation::remove): Use the
return value from remove to avoid hashing twice.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::disassociateDocumentLoader): Use
remove instead of find/remove.
(WebCore::ApplicationCacheGroup::cacheDestroyed): Removed a needless
call to contains to avoid hashing twice. It's fine to do the check
for an empty hash table unconditionally.

  • page/DOMWindow.cpp:

(WebCore::addUnloadEventListener): Eliminated a local variable for clarity.
(WebCore::removeUnloadEventListener): Ditto. Also use remove instead
of find/remove.
(WebCore::removeAllUnloadEventListeners): Ditto. Also use removeAll instead
of find/removeAll.
(WebCore::addBeforeUnloadEventListener): Ditto.
(WebCore::removeBeforeUnloadEventListener): Ditto.
(WebCore::removeAllBeforeUnloadEventListeners): Ditto.

  • page/FrameView.cpp:

(WebCore::FrameView::removeViewportConstrainedObject): Use the return
value from remove to avoid hashing twice.
(WebCore::FrameView::removeScrollableArea): Use the return value from
remove instead of find/remove.
(WebCore::FrameView::containsScrollableArea): Use && instead of an if
statement in a way that is idiomatic for this kind of function.

  • page/Page.cpp:

(WebCore::Page::addRelevantRepaintedObject): Use the return value from
remove instead of find/remove.

  • page/PageGroup.cpp:

(WebCore::PageGroup::removeUserScriptsFromWorld): Use remove instead
of find/remove.
(WebCore::PageGroup::removeUserStyleSheetsFromWorld): Use the return
value from remove instead of find/remove.

  • page/PerformanceUserTiming.cpp:

(WebCore::clearPeformanceEntries): Removed a needless call to contains.

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::removeClient): Use the return value
from remove instead of find/remove.
(WebCore::DisplayRefreshMonitorManager::displayDidRefresh): Use remove
instead of find/remove.

  • platform/graphics/blackberry/LayerRenderer.cpp:

(WebCore::LayerRenderer::removeLayer): Use the return value from remove
instead of find/remove.

  • platform/win/WindowMessageBroadcaster.cpp:

(WebCore::WindowMessageBroadcaster::removeListener): Use remove instead
of find/remove. It's fine to do the check for an empty hash table unconditionally.

  • plugins/PluginDatabase.cpp:

(WebCore::PluginDatabase::removeDisabledPluginFile): Use the return value
from remove instead of find/remove.

  • rendering/style/StyleCustomFilterProgramCache.cpp:

(WebCore::StyleCustomFilterProgramCache::lookup): Use get instead of find.
(WebCore::StyleCustomFilterProgramCache::add): Use contains instead of find
in an assertion.
(WebCore::StyleCustomFilterProgramCache::remove): Use remove instead of
find/remove.

  • svg/SVGCursorElement.cpp:

(WebCore::SVGCursorElement::removeClient): Use the return value from remove
instead of find/remove.

  • svg/SVGDocumentExtensions.cpp:

(WebCore::SVGDocumentExtensions::removeResource): Removed an unneeded call
to contains.
(WebCore::SVGDocumentExtensions::removeAllTargetReferencesForElement): Use
remove instead of find/remove. It's fine to do the check for an empty hash
table unconditionally.
(WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Use
remove instead of find/remove. Also removed unhelpful assertions. One is
already done by HashMap, and the other is just checking a basic invariant
of every HashMap that doesn't need to be checked.

  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::removeClientFromCache): Removed an unneeded call
to contains.

  • svg/properties/SVGAnimatedProperty.cpp:

(WebCore::SVGAnimatedProperty::~SVGAnimatedProperty): Use the version of
remove that takes an iterator rather than the one that takes a key, so
we don't need to redo the hashing.

Source/WebKit2:

  • Platform/CoreIPC/Connection.cpp:

(CoreIPC::Connection::waitForMessage): Use take instead of find/remove.

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::removePageGroup): Use the return value from remove
instead of find/remove.

  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:

(WebKit::GeolocationPermissionRequestManager::cancelRequestForGeolocation):
(WebKit::GeolocationPermissionRequestManager::didReceiveGeolocationPermissionDecision):
Use take instead of find/remove.

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::frameDidFinishLoading): Use take instead of find/remove.
(WebKit::NetscapePlugin::frameDidFail): Use take instead of find/remove.

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::removeItem): Use take instead of find/remove.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didFinishCheckingText): Use take instead of get/remove so we
hash only once.
(WebKit::WebPage::didCancelCheckingText): Ditto.
(WebKit::WebPage::stopExtendingIncrementalRenderingSuppression): Use the return
value from remove instead of contains/remove so we hash only once.

Source/WTF:

Double hashing is common in code that needs to combine a remove with some
action to only be done if the code is removed. The only way to avoid it is
to write code using find and a hash table iterator. To help with this, add
a boolean return value to remove functions to indicate if anything was removed.

Double hashing also happens in code that does a get followed by a remove.
The take function is helpful in this case. To help with this, add a takeFirst
funciton to ListHashSet.

  • wtf/HashCountedSet.h:

(WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
that the HashCountedSet::remove function already has.

  • wtf/HashMap.h:

(WTF::HashMap::remove): Added a boolean return value, true if something was removed.

  • wtf/HashSet.h:

(WTF::HashSet::remove): Ditto.

  • wtf/RefPtrHashMap.h:

(WTF::RefPtrHashMap::remove): Ditto.

  • wtf/ListHashSet.h:

(WTF::ListHashSet::takeFirst): Added.
(WTF::ListHashSet::takeLast): Added.
(WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.

  • wtf/WTFThreadData.h:

(JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
the code in this function.

1:30 PM Changeset in webkit [154966] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WTF

Remove duplicate entries found by Xcode in WTF project

Platform.h was duplicated in r111778 after being added in
r111504.

A dangling reference to Ref.h was added in r154962.

  • WTF.xcodeproj/project.pbxproj: Remove duplicate entries for

Platform.h and Ref.h.

1:10 PM Changeset in webkit [154965] by akling@apple.com
  • 41 edits in trunk/Source/WebCore

Generate isFooElement() functions from tagname data.
<https://webkit.org/b/120584>

Reviewed by Antti Koivisto.

Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
This also outputs an isElementOfType<T> check for the Element iterators.

Removed all the hand-written isFooElement() functions that only checked tag name.

  • html/HTMLTagNames.in:
  • svg/svgtags.in:

Added "generateTypeChecks" attribute as appropriate.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:

Added to build systems based on how HTMLNames.h was done.
We're just outputting an additional header file in the generated code directory
so I suspect most ports will just pick this up automagically.

  • dom/make_names.pl:

(defaultTagPropertyHash):
(printLicenseHeader):
(printTypeChecks):
(printTypeChecksHeaderFile):

Generate a separate file for each namespace with isFooElement() helpers for
elements with "generateTypeChecks" attribute set.

12:41 PM Changeset in webkit [154964] by akling@apple.com
  • 1 edit
    1 add in trunk/Source/WTF

Actually add Ref.h

11:55 AM Changeset in webkit [154963] by Darin Adler
  • 21 edits in trunk

[Mac] No need for HardAutorelease, which is same as CFBridgingRelease
https://bugs.webkit.org/show_bug.cgi?id=120569

Reviewed by Andy Estes.

Source/JavaScriptCore:

  • API/JSValue.mm:

(valueToString): Use CFBridgingRelease.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(AXTextMarkerRange):
(AXTextMarkerRangeStart):
(AXTextMarkerRangeEnd):
(textMarkerForVisiblePosition):
Use CFBridgingRelease.

  • platform/mac/KURLMac.mm:

(WebCore::KURL::operator NSURL *): Use CFBridgingRelease.
(WebCore::KURL::createCFURL): Get rid of needless local variable.

  • platform/mac/WebCoreNSURLExtras.mm:

(WebCore::mapHostNameWithRange):
(WebCore::URLWithData):
(WebCore::userVisibleString):

  • platform/text/mac/StringImplMac.mm:

(WTF::StringImpl::operator NSString *):
Use CFBridgingRelease.

Source/WebKit/mac:

  • Misc/WebNSFileManagerExtras.mm:

(-[NSFileManager _webkit_startupVolumeName]): Removed some unneeded locals.
Got rid of the pointless ref/leakRef/HardAutorelease dance, and replaced it
with a [[x copy] autorelease].

  • Misc/WebNSURLExtras.mm:

(-[NSURL _web_URLWithLowercasedScheme]): Use CFBridgingRelease, and got rid
of unneeded type casts.

  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage preferredLocalizationName]): Use CFBridgingRelease.

  • WebView/WebPDFRepresentation.mm:

(-[WebPDFRepresentation convertPostScriptDataSourceToPDF:]): Ditto.

  • WebView/WebView.mm:

(+[WebView _setCacheModel:]): Use CFBridgingRelease and got rid of unneeded
type cast.

Source/WebKit2:

  • Platform/mac/StringUtilities.mm:

(WebKit::nsStringFromWebCoreString): Use CFBridgingRelease. Also
changed condition to be a little cleaner and use a constant string for empty
strings as well as null strings.

  • UIProcess/API/mac/WKBrowsingContextController.mm:

(autoreleased): Switched from autorelease to CFBridgingRelease for strings,
which eliminates a type cast and makes this work under GC, although I don't
think we should compile WebKit2 for GC.

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:

(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
Use CFBridgingRelease.

Source/WTF:

  • wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.

Deleted HardAutorelease.
(wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
(wtfCallIMP): Ditto.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dump): Use CFBridgingRelease.

11:50 AM Changeset in webkit [154962] by akling@apple.com
  • 68 edits in trunk/Source

Ref: A smart pointer for the reference age.
<https://webkit.org/b/120570>

Reviewed by Antti Koivisto.

Source/WebCore:

Use Ref<T> for various stack guards where null checking isn't needed.

Source/WTF:

Add a very simple simple Ref<T> smart pointer class that is never null.
It's initialized by passing a T& to the constructor and cannot be assigned to.

operator-> is not overloaded, to prevent unsafe-looking code.
The value is extracted by "T& get()", since C++ does not let you override operator.()

  • wtf/Ref.h:
10:05 AM Changeset in webkit [154961] by akling@apple.com
  • 6 edits in trunk/Source/WebCore

Simplify DocumentType handling.
<https://webkit.org/b/120529>

Reviewed by Antti Koivisto.

Removed the insertedInto()/removedFrom() handlers from DocumentType.

Document no longer keeps a pointer to its doctype node, it was only used for the
document.doctype DOM API, which now just looks through the list of (<=2) children.

The ENABLE(LEGACY_VIEWPORT_ADAPTION) hunk from Document::setDocType() was moved
into Document::childrenChanged().

We no longer clear the style resolver on doctype insertion/removal since it
doesn't actually affect style anyway.

Also made doctype() return a PassRefPtr<DocumentType> instead of a raw pointer.

  • dom/Document.cpp:

(WebCore::Document::dispose):
(WebCore::Document::doctype):
(WebCore::Document::childrenChanged):

  • dom/Document.h:
  • dom/DocumentType.cpp:
  • dom/DocumentType.h:
  • editing/markup.cpp:

(WebCore::documentTypeString):

8:44 AM Changeset in webkit [154960] by commit-queue@webkit.org
  • 10 edits in trunk

<https://webkit.org/b/98350> [GTK] accessibility/aria-invalid.html times out

Patch by Anton Obzhirov <Anton Obzhirov> on 2013-09-02
Reviewed by Mario Sanchez Prada.

Source/WebCore:

The patch exposes aria-invalid attribute to ATK.

  • accessibility/atk/AXObjectCacheAtk.cpp:

(WebCore::AXObjectCache::postPlatformNotification):
Added emitting state-change signal for aria-invalid event.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(webkitAccessibleGetAttributes):
Added aria-invalid attribute.

Tools:

Added few mappings in DumpRenderTree and WebKitTestRunner for aria-invalid in order to get the tests run properly.

  • DumpRenderTree/atk/AccessibilityCallbacksAtk.cpp:

(axObjectEventListener):
Added mapping for invalid-entry event parameter.

  • DumpRenderTree/atk/AccessibilityUIElementAtk.cpp:

(coreAttributeToAtkAttribute):
Added mapping to aria-invalid.
(AccessibilityUIElement::stringAttributeValue):

  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::coreAttributeToAtkAttribute):
Added mapping to aria-invalid.

LayoutTests:

Unskipped accessibility/aria-invalid.html which is passing now.

  • platform/gtk/TestExpectations: Removed passing test.
  • platform/gtk-wk2/TestExpectations: Added test timing out in WK2 only.
8:43 AM Changeset in webkit [154959] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r154909): caused many crashes on Qt WK2, EFL WK2
https://bugs.webkit.org/show_bug.cgi?id=120600

Reviewed by Andreas Kling.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:

(CoreIPC::::decode): keyTime should be double here too.

8:22 AM Changeset in webkit [154958] by akling@apple.com
  • 41 edits in trunk/Source/WebCore

Unreviewed, rolling out r154955.
http://trac.webkit.org/changeset/154955
https://bugs.webkit.org/show_bug.cgi?id=120605

broke xcode4 build :| (Requested by kling on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2013-09-02

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/make_names.pl:

(defaultTagPropertyHash):
(printLicenseHeader):

  • html/HTMLAnchorElement.h:

(WebCore::isHTMLAnchorElement):
(WebCore::HTMLAnchorElement):

  • html/HTMLAreaElement.h:

(WebCore::isHTMLAreaElement):
(WebCore::HTMLAreaElement):

  • html/HTMLAudioElement.h:

(WebCore::isHTMLAudioElement):

  • html/HTMLBaseElement.h:

(WebCore::isHTMLBaseElement):
(WebCore::HTMLBaseElement):

  • html/HTMLCanvasElement.h:

(WebCore::isHTMLCanvasElement):

  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.h:

(WebCore::isHTMLFieldSetElement):
(WebCore::HTMLFieldSetElement):

  • html/HTMLFormElement.h:

(WebCore::isHTMLFormElement):

  • html/HTMLFrameSetElement.h:

(WebCore::isHTMLFrameSetElement):
(WebCore::HTMLFrameSetElement):

  • html/HTMLImageElement.h:

(WebCore::isHTMLImageElement):

  • html/HTMLInputElement.h:

(WebCore::isHTMLInputElement):

  • html/HTMLLabelElement.h:

(WebCore::isHTMLLabelElement):
(WebCore::HTMLLabelElement):

  • html/HTMLLegendElement.h:

(WebCore::isHTMLLegendElement):
(WebCore::HTMLLegendElement):

  • html/HTMLMapElement.h:

(WebCore::isHTMLMapElement):

  • html/HTMLMeterElement.h:

(WebCore::isHTMLMeterElement):

  • html/HTMLOptGroupElement.h:

(WebCore::isHTMLOptGroupElement):

  • html/HTMLOptionElement.h:

(WebCore::isHTMLOptionElement):

  • html/HTMLParamElement.h:

(WebCore::isHTMLParamElement):
(WebCore::HTMLParamElement):

  • html/HTMLProgressElement.h:

(WebCore::isHTMLProgressElement):

  • html/HTMLScriptElement.h:

(WebCore::isHTMLScriptElement):

  • html/HTMLSourceElement.h:

(WebCore::isHTMLSourceElement):
(WebCore::HTMLSourceElement):

  • html/HTMLStyleElement.h:

(WebCore::isHTMLStyleElement):
(WebCore::HTMLStyleElement):

  • html/HTMLTableElement.h:

(WebCore::isHTMLTableElement):

  • html/HTMLTableRowElement.h:

(WebCore::isHTMLTableRowElement):
(WebCore::HTMLTableRowElement):

  • html/HTMLTagNames.in:
  • html/HTMLTextAreaElement.h:

(WebCore::isHTMLTextAreaElement):

  • html/HTMLTitleElement.h:

(WebCore::isHTMLTitleElement):
(WebCore::HTMLTitleElement):

  • html/HTMLTrackElement.h:

(WebCore::isHTMLTrackElement):
(WebCore::HTMLTrackElement):

  • svg/SVGElement.h:
  • svg/SVGFontElement.h:

(WebCore::isSVGFontElement):

  • svg/SVGFontFaceElement.h:

(WebCore::isSVGFontFaceElement):
(WebCore::SVGFontFaceElement):

  • svg/SVGForeignObjectElement.h:

(WebCore::isSVGForeignObjectElement):
(WebCore::SVGForeignObjectElement):

  • svg/SVGImageElement.h:

(WebCore::isSVGImageElement):

  • svg/SVGScriptElement.h:

(WebCore::isSVGScriptElement):

  • svg/svgtags.in:
8:17 AM Changeset in webkit [154957] by Antti Koivisto
  • 68 edits in trunk/Source/WebCore

Clean up ContainerNode::childrenChanged
https://bugs.webkit.org/show_bug.cgi?id=120599

Reviewed by Andreas Kling.

  • Make childrenChanged take a single struct argument instead of a long list of arguments.
  • Use enum instead of childCountDelta. It was always -1, 0, 1 or the total number of children (in case of removing them all).
  • Remove use of Node*, give the change range as Elements.
  • Related cleanups.
  • dom/Attr.cpp:

(WebCore::Attr::childrenChanged):

  • dom/Attr.h:
  • dom/CharacterData.cpp:

(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::dispatchModifiedEvent):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::insertBefore):
(WebCore::ContainerNode::notifyChildInserted):
(WebCore::ContainerNode::notifyChildRemoved):

Add private helpers for setting up the struct.

(WebCore::ContainerNode::parserInsertBefore):
(WebCore::ContainerNode::replaceChild):
(WebCore::ContainerNode::removeChild):
(WebCore::ContainerNode::parserRemoveChild):
(WebCore::ContainerNode::removeChildren):
(WebCore::ContainerNode::appendChild):
(WebCore::ContainerNode::parserAppendChild):
(WebCore::ContainerNode::childrenChanged):
(WebCore::ContainerNode::updateTreeAfterInsertion):

  • dom/ContainerNode.h:
  • dom/Document.cpp:

(WebCore::Document::childrenChanged):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::checkForSiblingStyleChanges):

Clean up and simplify. Since we now get element range automatically we don't need to compute it.

(WebCore::Element::childrenChanged):
(WebCore::Element::finishParsingChildren):

  • dom/Element.h:
  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::childrenChanged):

  • dom/ShadowRoot.h:
  • html/HTMLElement.cpp:

(WebCore::HTMLElement::childrenChanged):
(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):

Try to keep the existing behavior. This code needs more cleanup to be sane. It shouldn't operate on Nodes
as it only really cares about Elements.

  • html/HTMLElement.h:
  • html/HTMLFieldSetElement.cpp:

(WebCore::HTMLFieldSetElement::childrenChanged):

  • html/HTMLFieldSetElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::childrenChanged):

  • html/HTMLObjectElement.h:
  • html/HTMLOptGroupElement.cpp:

(WebCore::HTMLOptGroupElement::childrenChanged):

  • html/HTMLOptGroupElement.h:
  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::childrenChanged):

  • html/HTMLOptionElement.h:
  • html/HTMLOutputElement.cpp:

(WebCore::HTMLOutputElement::childrenChanged):

  • html/HTMLOutputElement.h:
  • html/HTMLScriptElement.cpp:

(WebCore::HTMLScriptElement::childrenChanged):

  • html/HTMLScriptElement.h:
  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::childrenChanged):

  • html/HTMLSelectElement.h:
  • html/HTMLStyleElement.cpp:

(WebCore::HTMLStyleElement::childrenChanged):

  • html/HTMLStyleElement.h:
  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::childrenChanged):

  • html/HTMLTextAreaElement.h:
  • html/HTMLTitleElement.cpp:

(WebCore::HTMLTitleElement::childrenChanged):

  • html/HTMLTitleElement.h:
  • html/shadow/InsertionPoint.cpp:

(WebCore::InsertionPoint::childrenChanged):

  • html/shadow/InsertionPoint.h:
  • svg/SVGClipPathElement.cpp:

(WebCore::SVGClipPathElement::childrenChanged):

  • svg/SVGClipPathElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::childrenChanged):

  • svg/SVGElement.h:
  • svg/SVGFELightElement.cpp:

(WebCore::SVGFELightElement::childrenChanged):

  • svg/SVGFELightElement.h:
  • svg/SVGFilterElement.cpp:

(WebCore::SVGFilterElement::childrenChanged):

  • svg/SVGFilterElement.h:
  • svg/SVGFilterPrimitiveStandardAttributes.cpp:

(WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged):

  • svg/SVGFilterPrimitiveStandardAttributes.h:
  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::childrenChanged):

  • svg/SVGFontFaceElement.h:
  • svg/SVGFontFaceFormatElement.cpp:

(WebCore::SVGFontFaceFormatElement::childrenChanged):

  • svg/SVGFontFaceFormatElement.h:
  • svg/SVGFontFaceSrcElement.cpp:

(WebCore::SVGFontFaceSrcElement::childrenChanged):

  • svg/SVGFontFaceSrcElement.h:
  • svg/SVGFontFaceUriElement.cpp:

(WebCore::SVGFontFaceUriElement::childrenChanged):

  • svg/SVGFontFaceUriElement.h:
  • svg/SVGGradientElement.cpp:

(WebCore::SVGGradientElement::childrenChanged):

  • svg/SVGGradientElement.h:
  • svg/SVGMarkerElement.cpp:

(WebCore::SVGMarkerElement::childrenChanged):

  • svg/SVGMarkerElement.h:
  • svg/SVGMaskElement.cpp:

(WebCore::SVGMaskElement::childrenChanged):

  • svg/SVGMaskElement.h:
  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::childrenChanged):

  • svg/SVGPatternElement.h:
  • svg/SVGScriptElement.cpp:

(WebCore::SVGScriptElement::childrenChanged):

  • svg/SVGScriptElement.h:
  • svg/SVGStyleElement.cpp:

(WebCore::SVGStyleElement::childrenChanged):

  • svg/SVGStyleElement.h:
  • svg/SVGTitleElement.cpp:

(WebCore::SVGTitleElement::childrenChanged):

  • svg/SVGTitleElement.h:
8:15 AM Changeset in webkit [154956] by kadam@inf.u-szeged.hu
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening. Skip some failing tests.

  • platform/qt/TestExpectations:
8:12 AM Changeset in webkit [154955] by akling@apple.com
  • 41 edits in trunk/Source/WebCore

Generate isFooElement() functions from tagname data.
<https://webkit.org/b/120584>

Reviewed by Antti Koivisto.

Add a "generateTypeChecks" attribute that can be used in HTMLTagNames.in & friends.
If present, isFooElement() style helpers will be added to HTMLElementTypeChecks.h.
This also outputs an isElementOfType<T> check for the Element iterators.

Removed all the hand-written isFooElement() functions that only checked tag name.

  • html/HTMLTagNames.in:
  • svg/svgtags.in:

Added "generateTypeChecks" attribute as appropriate.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:

Added to build systems based on how HTMLNames.h was done.
We're just outputting an additional header file in the generated code directory
so I suspect most ports will just pick this up automagically.

  • dom/make_names.pl:

(defaultTagPropertyHash):
(printLicenseHeader):
(printTypeChecks):
(printTypeChecksHeaderFile):

Generate a separate file for each namespace with isFooElement() helpers for
elements with "generateTypeChecks" attribute set.

8:03 AM Changeset in webkit [154954] by krit@webkit.org
  • 6 edits
    4 adds in trunk

Use edgeMode=duplicate for blurring on filter() function
https://bugs.webkit.org/show_bug.cgi?id=120590

Reviewed by Antti Koivisto.

Source/WebCore:

Filters on the CSS Image function filter() are not allowed to extend the
dimension of the input image. This causes weird results on blurring an image,
where the fading on the edges is clipped at the half of the fading.
We shouldn't fade edges at all and use the edgeMode=duplicate instead.
This will duplicate the pixel value on the nearest edge of the input image
instead of taking transparent black and results in nice blurred images with
sharp edges.

Spec: http://dev.w3.org/fxtf/filters/#blurEquivalent

Test: fast/filter-image/filter-image-blur.html

  • css/CSSFilterImageValue.cpp: Pass consumer information to the renderer.

(WebCore::CSSFilterImageValue::image):

  • rendering/FilterEffectRenderer.cpp: Set edgeMode for feGaussianBlur to

'duplicate' or 'none' depending on the consumer.

(WebCore::FilterEffectRenderer::build):

  • rendering/FilterEffectRenderer.h: Add enumeration to differ between the

different consumers of the renderer.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Pass consumer

information to the renderer.

LayoutTests:

Added test to check that filter(<image>, blur(<value>)) takes
the edgeMode 'duplicate' instead of none.

  • fast/filter-image/filter-image-blur-expected.html: Added.
  • fast/filter-image/filter-image-blur.html: Added.
  • fast/filter-image/resources/svg-blur.svg: Added.
  • fast/filter-image/resources/svg-noblur.svg: Added.
7:40 AM Changeset in webkit [154953] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/gtk

[ATK] Leak: Leaks in testatk.c
https://bugs.webkit.org/show_bug.cgi?id=118675

Patch by Brian Holt <brian.holt@samsung.com> on 2013-09-02
Reviewed by Mario Sanchez Prada.

Fixed memory leaks by matching ref calls with unrefs.

  • tests/testatk.c:

(testWebkitAtkCaretOffsets):
(testWebkitAtkCaretOffsetsAndExtranousWhiteSpaces):
(testWebkitAtkGetTextAtOffset):
(testWebkitAtkGetTextAtOffsetNewlines):
(testWebkitAtkGetTextAtOffsetTextarea):
(testWebkitAtkGetTextAtOffsetTextInput):
(testWebkitAtkGetTextInParagraphAndBodySimple):
(testWebkitAtkGetTextInParagraphAndBodyModerate):
(testWebkitAtkTextAttributes):
(testWebkitAtkTextSelections):
(testWebkitAtkListsOfItems):

7:37 AM Changeset in webkit [154952] by zarvai@inf.u-szeged.hu
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening.
https://bugs.webkit.org/show_bug.cgi?id=120595

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-09-02

  • platform/qt/TestExpectations: Skipping failing xss-DENIED tests.
5:48 AM Changeset in webkit [154951] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Save md5 correctly when jhbuildPath doesn't exist yet
https://bugs.webkit.org/show_bug.cgi?id=120548

Patch by Nick Diego Yamane <nick.yamane@openbossa.org> on 2013-09-02
Reviewed by Gustavo Noronha Silva.

After r152605, Md5 for jhbuild files are saved before the update
process, this prevents the script to restart update from scratch
when initial checkouts fail. However it causes an issue when builddir
(or builddir/Dependencies) doesn't exist yet. In that case the
saveJhbuildMd5 function fails to create md5 files.
This patch adds a checking for the jhbuildPath and creates it if
necessary before trying to open the md5 files.

  • Scripts/update-webkit-libs-jhbuild:

(saveJhbuildMd5):

5:41 AM Changeset in webkit [154950] by mario@webkit.org
  • 2 edits in trunk/Tools

Unreviewed. Move myself to the reviewers list.

  • Scripts/webkitpy/common/config/contributors.json:

Sep 1, 2013:

11:36 PM Changeset in webkit [154949] by ap@apple.com
  • 9 edits
    4 adds in trunk

[WK2][Mac] Drag and drop tests interfere with user's UI
https://bugs.webkit.org/show_bug.cgi?id=120538

Reviewed by Dan Bernstein.

This makes running WebKit2 regression tests locally more viable. The patch doesn't
fix drag and drop tests to work as expected, I posted some thought about that in
<https://bugs.webkit.org/show_bug.cgi?id=68552>.

  • WebKitTestRunner/EventSenderProxy.h: (WTR::EventSenderProxy::position):
  • WebKitTestRunner/TestController.h: (WTR::TestController::eventSenderProxy): Expose a way to get current mouse position from anywhere in WKTR code.
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj: Added new files.
  • WebKitTestRunner/mac/EventSenderProxy.mm: (WTR::EventSenderProxy::mouseUp): Copied a FIXME comment from DumpRenderTree.
  • WebKitTestRunner/mac/PlatformWebViewMac.mm: (-[TestRunnerWKView dragImage:at:offset:event:pasteboard:source:slideBack:]): Override drag initiation, using a custom NSDraggingInfo implementation.
  • WebKitTestRunner/mac/TestControllerMac.mm: (WTR::TestController::platformInitialize): Replace NSEvent with a custom class.
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.h: Added.
  • WebKitTestRunner/mac/WebKitTestRunnerDraggingInfo.mm: Added.
  • WebKitTestRunner/mac/WebKitTestRunnerEvent.h: Added.
  • WebKitTestRunner/mac/WebKitTestRunnerEvent.mm: Added. Largely a copy of DumpRenderTree classes, modified to not use global variables. We should consider making these variables static in EventSenderProxy though, as it's strange that mouse state in WKTR is reset between tests without WebKit ever being told about that.
9:53 PM Changeset in webkit [154948] by krit@webkit.org
  • 8 edits
    9 adds in trunk

Source/WebCore: Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582

Add 'edgeMode' attribute to the SVGFEGaussianBlur element. This attribute
allows users to define the behavior on edges with the values 'none' where
pixel values outside the input image are treated as transparent black. (The
current blurring behavior.) 'duplicate' which repeats the values on the
nearest edge and 'warp', which takes the pixel of the opposite site of
the input image.
Beside the attribute, this patch implements the behavior of 'duplicate'.

http://dev.w3.org/fxtf/filters/#feGaussianBlurEdgeModeAttribute

Reviewed by Rob Buis.

Tests: svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html

svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html
svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg
svg/filters/svg-gaussianblur-edgeMode-duplicate.svg

  • platform/graphics/filters/FEGaussianBlur.cpp:

(WebCore::FEGaussianBlur::FEGaussianBlur):
(WebCore::FEGaussianBlur::create):
(WebCore::FEGaussianBlur::edgeMode):
(WebCore::FEGaussianBlur::setEdgeMode):
(WebCore::boxBlur):
(WebCore::FEGaussianBlur::platformApplyGeneric):
(WebCore::FEGaussianBlur::determineAbsolutePaintRect):

  • platform/graphics/filters/FEGaussianBlur.h:
  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):

  • svg/SVGFEGaussianBlurElement.cpp:

(WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
(WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
(WebCore::SVGFEGaussianBlurElement::parseAttribute):
(WebCore::SVGFEGaussianBlurElement::svgAttributeChanged):
(WebCore::SVGFEGaussianBlurElement::build):

  • svg/SVGFEGaussianBlurElement.h:
  • svg/SVGFEGaussianBlurElement.idl:

LayoutTests: Add edgeMode attribtue.

Add 'edgeMode' attribute to SVGFEGaussianBlur
https://bugs.webkit.org/show_bug.cgi?id=120582

Added DOM and SVGDOM tests for the attribute 'edgeMode'.
Also added a reftest to test edgeMode='duplicate'.

Reviewed by Rob Buis.

  • platform/mac/svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.png: Added.
  • svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr-expected.txt: Added.
  • svg/dynamic-updates/SVGFEGaussianBlurElement-dom-edgeMode-attr.html: Added.
  • svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop-expected.txt: Added.
  • svg/dynamic-updates/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.html: Added.
  • svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-dom-edgeMode-attr.js: Added.

(repaintTest):

  • svg/dynamic-updates/script-tests/SVGFEGaussianBlurElement-svgdom-edgeMode-prop.js: Added.

(repaintTest):

  • svg/filters/svg-gaussianblur-edgeMode-duplicate-expected.svg: Added.
  • svg/filters/svg-gaussianblur-edgeMode-duplicate.svg: Added.
1:04 PM Changeset in webkit [154947] by akling@apple.com
  • 9 edits in trunk/Source/WebCore

EventHandler::m_frame should be a Frame&.
<https://webkit.org/b/120580>

Reviewed by Darin Adler.

EventHandler is tied to the lifetime of its frame, so let m_frame be a Frame&.
A handful of null checks and assertions removed.

12:23 PM Changeset in webkit [154946] by Darin Adler
  • 2 edits in trunk/Source/WebCore

Fix a mistake in my recent pasteboard/editor refactoring that was causing tests to fail.

  • editing/mac/EditorMac.mm:

(WebCore::getImage): One place this said cachedImage but it should have said tentativeCachedImage.

12:12 PM Changeset in webkit [154945] by Darin Adler
  • 6 edits in trunk/Source/WebCore

HitTestResult should have innerNonSharedElement
https://bugs.webkit.org/show_bug.cgi?id=120579

Reviewed by Andreas Kling.

  • editing/Editor.cpp:

(WebCore::Editor::copyImage): Call HitTestResult member function version of
innerNonSharedElement instead of a local function that does it.

  • page/Chrome.cpp:

(WebCore::Chrome::setToolTip): Use innerNonSharedElement instead of getting
the node and checking if it's an input element. Also added some missing braces.

  • page/EventHandler.cpp:

(WebCore::EventHandler::selectClosestWordFromHitTestResult): Use targetNode for
local variables instead of innerNode to match the HitTestResult function name.
(WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent): Ditto.
(WebCore::EventHandler::handleMousePressEventTripleClick): Ditto.
(WebCore::EventHandler::handleMousePressEventSingleClick): Ditto.
(WebCore::EventHandler::handleMousePressEvent): Ditto.

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::innerElement): Rewrote so there there is no loop.
(WebCore::HitTestResult::innerNonSharedElement): Ditto.

  • rendering/HitTestResult.h: Added innerNonSharedElement. Generally speaking,

we'd like to avoid using Node unless there is some real need.

10:12 AM Changeset in webkit [154944] by calvaris@igalia.com
  • 7 edits
    2 adds in trunk

Volume slider value should be 0 when audio is muted
https://bugs.webkit.org/show_bug.cgi?id=120553

Reviewed by Eric Carlson.

Source/WebCore:

Fixed the problem of showing a non empty slider when audio is
muted.

Test: media/volume-bar-empty-when-muted.html.

  • html/shadow/MediaControls.cpp:

(WebCore::MediaControls::reset): Use setSliderVolume.
(WebCore::MediaControls::changedVolume): Use setSliderVolume.
(WebCore::MediaControls::setSliderVolume): Added to set the volume
to 0 when muted and to its value otherwise.

  • html/shadow/MediaControls.h: Added setSliderVolume.
  • html/shadow/MediaControlsApple.cpp:

(WebCore::MediaControlsApple::reset): Used setSliderVolume and
setFullscreenSliderVolume.
(WebCore::MediaControlsApple::changedVolume): Used
setFullscreenSliderVolume.
(WebCore::MediaControlsApple::setFullscreenSliderVolume): Added to
set the volume to 0 when muted and to its value otherwise.

  • html/shadow/MediaControlsApple.h: Added setFullscreenSliderVolume
  • html/shadow/MediaControlsBlackBerry.cpp:

(WebCore::MediaControlsBlackBerry::reset): Used setSliderVolume.

LayoutTests:

Added test to check if the volume slider value is 0 when the
element is muted even if volume is set to something else.

  • media/volume-bar-empty-when-muted-expected.txt: Added.
  • media/volume-bar-empty-when-muted.html: Added.
7:57 AM Changeset in webkit [154943] by akling@apple.com
  • 12 edits in trunk/Source/WebCore

Give EditCommand a protected Frame& getter.
<https://webkit.org/b/120574>

Reviewed by Darin Adler.

EditCommand is only created for documents that are attached to a Frame,
we already ASSERTed as much in the EditCommand constructor.

This patch adds a "Frame& EditCommand::frame()" helper, so EditCommand
and its subclasses don't have to fumble around with pointers.

6:53 AM Changeset in webkit [154942] by commit-queue@webkit.org
  • 11 edits in trunk/LayoutTests

Web Inspector: A little more test cleanup
https://bugs.webkit.org/show_bug.cgi?id=120575

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-09-01
Reviewed by Timothy Hatcher.

Give tests names and remove unnecessary script type attributes.

  • inspector-protocol/debugger/removeBreakpoint-expected.txt:
  • inspector-protocol/debugger/removeBreakpoint.html:
  • inspector-protocol/debugger/setBreakpoint-autoContinue-expected.txt:
  • inspector-protocol/debugger/setBreakpoint-autoContinue.html:
  • inspector-protocol/debugger/setBreakpoint-column-expected.txt:
  • inspector-protocol/debugger/setBreakpoint-column.html:
  • inspector-protocol/debugger/setBreakpoint-condition-expected.txt:
  • inspector-protocol/debugger/setBreakpoint-condition.html:
  • inspector-protocol/debugger/setBreakpoint-expected.txt:
  • inspector-protocol/debugger/setBreakpoint.html:
4:23 AM Changeset in webkit [154941] by calvaris@igalia.com
  • 6 edits in trunk/LayoutTests

Fixed typo in media/video-volume-slider.html
https://bugs.webkit.org/show_bug.cgi?id=120578

Unreviewed.

  • media/video-volume-slider.html: Fixed typo.
  • platform/gtk/media/video-volume-slider-expected.png:
  • platform/gtk/media/video-volume-slider-expected.txt:
  • platform/mac/media/video-volume-slider-expected.png:
  • platform/mac/media/video-volume-slider-expected.txt: New

baselines.

3:33 AM Changeset in webkit [154940] by Antti Koivisto
  • 13 edits
    1 add in trunk/Source/WebCore

Add element ancestor iterator
https://bugs.webkit.org/show_bug.cgi?id=120563

Reviewed by Andreas Kling.

This patch adds ancestor iterators. They iterate over elements parent chain up to the root.

To iterate over Element ancestors:

auto ancestors = elementAncestors(this);
for (auto it = ancestors.begin(), end = ancestors.end(); it != end; ++it) {

Element& element = *it;
...

To iterate over Element ancestors including the current element:

auto lineage = elementLineage(this);
for (auto it = lineage.begin(), end = lineage.end(); it != end; ++it) {

Element& element = *it;
...


To iterate over ancestors of a specific Element subclass:

auto htmlAncestors = ancestorsOfType<HTMLElement>(this);
for (auto it = htmlAncestors.begin(), end = htmlAncestors.end(); it != end; ++it) {

HTMLElement& htmlElement = *it;
...


To iterate over ancestors of a specific Element subclass including the current element:

auto htmlLineage = lineageOfType<HTMLElement>(this);
for (auto it = htmlLineage.begin(), end = htmlLineage.end(); it != end; ++it) {

HTMLElement& htmlElement = *it;
...


The patch also uses the new types in a few places.

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::mouseButtonListener):
(WebCore::AccessibilityNodeObject::labelForElement):

  • dom/ElementAncestorIterator.h: Added.

(WebCore::::ElementAncestorIterator):
(WebCore::::operator):
(WebCore::::ElementAncestorConstIterator):
(WebCore::::ElementAncestorIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementAncestorConstIteratorAdapter):
(WebCore::elementLineage):
(WebCore::elementAncestors):
(WebCore::ancestorsOfType):

  • dom/ElementIterator.h:

(WebCore::findElementAncestorOfType):
(WebCore::::traverseAncestor):
(WebCore::=):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):

  • html/HTMLFieldSetElement.h:

(WebCore::isHTMLFieldSetElement):
(WebCore::HTMLFieldSetElement):

  • html/HTMLFrameSetElement.cpp:

(WebCore::HTMLFrameSetElement::findContaining):

  • html/HTMLFrameSetElement.h:

(WebCore::HTMLFrameSetElement):

  • html/HTMLInputElement.h:

(WebCore::isHTMLInputElement):
(WebCore::toHTMLInputElement):

  • html/HTMLLegendElement.cpp:

(WebCore::HTMLLegendElement::associatedControl):

Aug 31, 2013:

11:26 PM Changeset in webkit [154939] by Darin Adler
  • 7 edits in trunk/Source/WebCore

Refactor URL and image writing so layer-violating parts are in Editor, not Pasteboard (Mac-only at first)
https://bugs.webkit.org/show_bug.cgi?id=120573

Reviewed by Andreas Kling.

  • editing/Editor.cpp:

(WebCore::Editor::copy): Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.
(WebCore::Editor::copyURL): Use writeURLToPasteboard instead of Pasteboard::writeURL on Mac.
(WebCore::innerNonSharedElement): Added. Used in copyImage.
(WebCore::Editor::copyImage): Use innerNonSharedElement instead of innerNonSharedNode.
Use writeImageToPasteboard instead of Pasteboard::writeImage on Mac.

  • editing/Editor.h: Add new functions, writeURLToPasteboard and writeImageToPasteboard,

both Mac-only for now.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::pasteWithPasteboard): Removed unneeded "m_frame.editor()" round trip that
was left behind in this function.
(WebCore::getImage): Added. Helper used by writeImageToPasteboard.
(WebCore::Editor::writeURLToPasteboard): Added. Sets up PasteboardURL and then calls
Pasteboard::write with it.
(WebCore::Editor::writeImageToPasteboard): Added. Sets up PasteboardImage and then calls
Pasteboard::write with it.

  • page/DragController.cpp:

(WebCore::DragController::startDrag): Use Editor::writeURLToPasteboard instead of
Pasteboard::writeURL on Mac.

  • platform/Pasteboard.h: Added PasteboardURL and PasteboardImage structures.

Declare write functions for PasteboardWebContent, PasteboardURL, and PasteboardImage.
Guard writeURL and writeImage with !PLATFORM(MAC).

  • platform/mac/PasteboardMac.mm:

(WebCore::writeURLForTypes): Changed this to take a PasteboardURL.
(WebCore::Pasteboard::write): Renamed writeURL and writeImage to this. Refactor both
to take PasteboardURL and PasteboardImage arguments.
(WebCore::fileWrapper): Renamed from fileWrapperForImage since the fact that this is
for an image is now clear from its argument, a PasteboardImage.
(WebCore::writeFileWrapperAsRTFDAttachment): Changed this function to use early return.

10:30 PM Changeset in webkit [154938] by akling@apple.com
  • 69 edits in trunk/Source/WebCore

EditCommand constructors should take Document&.
<https://webkit.org/b/120566>

Reviewed by Darin Adler.

Let EditCommand's and all subclass constructors take Document& instead of Document*.
EditCommand::document() now returns a Document&.

Added Editor::document() which returns Editor::frame().document() after asserting
that it's non-null, to make passing a Document& from Editor functions easier.

10:29 PM Changeset in webkit [154937] by akling@apple.com
  • 42 edits in trunk/Source/WebCore

Make more use of toRenderFoo(RenderObject&) cast helpers.
<https://webkit.org/b/120565>

Reviewed by Darin Adler.

To make amends for putting ugly toRenderFoo(&renderer) casts everywhere,
here's a patch that switches a bunch of code over to using reference-based casts.

I removed pointer-based casts altogether for these renderers:

  • RenderBR
  • RenderCombineText
  • RenderListMarker
  • RenderVideo
  • RenderView
10:04 PM Changeset in webkit [154936] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

warning: unused parameter ‘renderingMode' in ImageBufferCairo.cpp:94
https://bugs.webkit.org/show_bug.cgi?id=120543

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-08-31
Reviewed by Darin Adler.

Fixing warning by adding ASSERT_UNUSED.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::ImageBuffer):

7:02 PM Changeset in webkit [154935] by fpizlo@apple.com
  • 13 edits in trunk/Source/JavaScriptCore

CodeBlock refactoring broke profile dumping
https://bugs.webkit.org/show_bug.cgi?id=120551

Reviewed by Michael Saboff.

Fix the bug, and did a big clean-up of how Executable returns CodeBlocks. A lot
of the problems we have with code like CodeBlock::baselineVersion() is that we
were trying *way too hard* to side-step the fact that Executable can't return a
CodeBlock*. Previously it could only return CodeBlock&, so if it didn't have a
CodeBlock yet, you were screwed. And if you didn't know, or weren't sure, if it
did have a CodeBlock, you were really going to have a bad time. Also it really
bugs me that the methods were called generatedBytecode(). In all other contexts
if you ask for a CodeBlock, then method to call is codeBlock(). So I made all
of those changes.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::baselineVersion):
(JSC::ProgramCodeBlock::replacement):
(JSC::EvalCodeBlock::replacement):
(JSC::FunctionCodeBlock::replacement):
(JSC::CodeBlock::globalObjectFor):

  • bytecode/CodeOrigin.cpp:

(JSC::InlineCallFrame::hash):

  • dfg/DFGOperations.cpp:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITCode.h:

(JSC::JITCode::isExecutableScript):
(JSC::JITCode::isLowerTier):

  • jit/JITStubs.cpp:

(JSC::lazyLinkFor):
(JSC::DEFINE_STUB_FUNCTION):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::traceFunctionPrologue):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::installCode):

  • runtime/Executable.h:

(JSC::EvalExecutable::codeBlock):
(JSC::ProgramExecutable::codeBlock):
(JSC::FunctionExecutable::eitherCodeBlock):
(JSC::FunctionExecutable::codeBlockForCall):
(JSC::FunctionExecutable::codeBlockForConstruct):
(JSC::FunctionExecutable::codeBlockFor):

  • runtime/FunctionExecutableDump.cpp:

(JSC::FunctionExecutableDump::dump):

5:21 PM Changeset in webkit [154934] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

warning: unused parameter point and area in EwkView.cpp:1390
https://bugs.webkit.org/show_bug.cgi?id=120545

Patch by Santosh Mahto <santosh.ma@samsung.com> on 2013-08-31
Reviewed by Darin Adler.

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::didFindZoomableArea): Added UNUSED_PARAM.

2:56 PM Changeset in webkit [154933] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Fix typo in r154931 that caused assertions in continuation tests.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paint):

2:05 PM Changeset in webkit [154932] by rwlbuis@webkit.org
  • 4 edits in trunk

XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
https://bugs.webkit.org/show_bug.cgi?id=120490

Reviewed by Ryosuke Niwa.

Source/WebCore:

Retain the key of the namespaces map by using AtomicString as key instead of AtomicStringImpl*.

  • editing/MarkupAccumulator.h:

LayoutTests:

Unskip these previously failing tests.

11:34 AM Changeset in webkit [154931] by akling@apple.com
  • 42 edits in trunk/Source/WebCore

InlineBox::renderer() and pals should return references.
<https://webkit.org/b/120562>

Reviewed by Antti Koivisto.

Make InlineBox::renderer() and its friends return references instead of pointers.
Every box always has a renderer, so this clears up any ambiguity, and a number of
weird assertions in SVG code.

Made InlineBox::m_renderer private so subclasses have to go through renderer().
The next step will be to replace renderer() with tightly-typed accessors where
applicable (e.g InlineTextBox's renderer is always a RenderText.)

Also added reference versions of these RenderObject casts:

  • toRenderBox()
  • toRenderBlock()
  • toRenderInline()
  • toRenderSVGInlineText()
8:18 AM Changeset in webkit [154930] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Remove unused variable in LayerTreeHost
https://bugs.webkit.org/show_bug.cgi?id=118950

Patch by Jae Hyun Park <jae.park@company100.net> on 2013-08-31
Reviewed by Anders Carlsson.

m_waitingForUIProcess has been renamed to m_isWaitingForRenderer as of
r152183, and it is a private variable in CoordinatedLayerTreeHost. Thus,
we don't need m_waitingForUIProcess in LayerTreeHost.

  • WebProcess/WebPage/LayerTreeHost.h:
7:14 AM Changeset in webkit [154929] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

PostAttachCallbackDisabler should take a ContainerNode&.
<https://webkit.org/b/120560>

Reviewed by Antti Koivisto.

Let PostAttachCallbackDisabler take a reference and remove an ugly assertion.

  • dom/ContainerNode.h:

(WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
(WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • style/StyleResolveTree.cpp:

(WebCore::Style::attachRenderTree):

7:12 AM Changeset in webkit [154928] by Antti Koivisto
  • 28 edits
    2 moves in trunk/Source/WebCore

Rename ChildIterator -> ElementChildIterator, DescendantIterator -> ElementDescendantIterator
https://bugs.webkit.org/show_bug.cgi?id=120561

Reviewed by Andreas Kling.

New names are more descriptive and consistent. They also put related iterator files close by in file lists.
The types are always used with auto so longer names don't make them any clumsier to use.

For simplicity included all Element iterator types from ElementIterator.h so it is the only file that has
to be included by the clients.

  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/AccessibilityNodeObject.cpp:
  • accessibility/AccessibilityRenderObject.cpp:
  • accessibility/AccessibilityTable.cpp:
  • css/CSSFontFaceSource.cpp:
  • dom/ChildIterator.h: Removed.
  • dom/DescendantIterator.h: Removed.
  • dom/Document.cpp:
  • dom/ElementChildIterator.h: Copied from Source/WebCore/dom/ChildIterator.h.

(WebCore::::ElementChildIterator):
(WebCore::::operator):
(WebCore::::ElementChildConstIterator):
(WebCore::::ElementChildIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementChildConstIteratorAdapter):
(WebCore::elementChildren):
(WebCore::childrenOfType):

  • dom/ElementDescendantIterator.h: Copied from Source/WebCore/dom/DescendantIterator.h.

(WebCore::::ElementDescendantIterator):
(WebCore::::operator):
(WebCore::::ElementDescendantConstIterator):
(WebCore::::ElementDescendantIteratorAdapter):
(WebCore::::begin):
(WebCore::::end):
(WebCore::::ElementDescendantConstIteratorAdapter):
(WebCore::elementDescendants):
(WebCore::descendantsOfType):

  • dom/ElementIterator.h:
  • dom/Node.cpp:
  • dom/TreeScope.cpp:
  • editing/ApplyStyleCommand.cpp:
  • editing/markup.cpp:
  • html/HTMLAppletElement.cpp:
  • html/HTMLFieldSetElement.cpp:
  • html/HTMLLabelElement.cpp:
  • html/HTMLMapElement.cpp:
  • html/HTMLMediaElement.cpp:
  • html/HTMLObjectElement.cpp:
  • loader/PlaceholderDocument.cpp:
  • rendering/FilterEffectRenderer.cpp:
  • style/StyleResolveTree.cpp:
  • svg/SVGElement.cpp:
  • svg/SVGSVGElement.cpp:
  • svg/animation/SMILTimeContainer.cpp:
  • svg/graphics/SVGImage.cpp:
7:07 AM Changeset in webkit [154927] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

Don't do document style recalc unless there's a RenderView.
<https://webkit.org/b/120558>

Reviewed by Antti Koivisto.

There's no sense in computing style for a Document that has no RenderView.
Checking this before continuing also lets us know that there's a Frame & FrameView
present, simplifying some things later on.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

6:04 AM Changeset in webkit [154926] by Antti Koivisto
  • 7 edits
    1 move
    1 add in trunk/Source/WebCore

Add common base for element iterators
https://bugs.webkit.org/show_bug.cgi?id=120557

Reviewed by Andreas Kling.

Add ElementIterator and use it as the base for child and descendant iterators. The only difference is the definition of operator++.

Also renamed DescendantIteratorAssertions to ElementIteratorAssertions.

  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/ChildIterator.h:

(WebCore::::ChildIterator):
(WebCore::::operator):
(WebCore::::ChildConstIterator):
(WebCore::::begin):
(WebCore::::end):

  • dom/DescendantIterator.h:

(WebCore::::DescendantIterator):
(WebCore::::operator):
(WebCore::::DescendantConstIterator):

  • dom/DescendantIteratorAssertions.h: Removed.
  • dom/ElementIterator.h: Added.

(WebCore::::ElementIterator):
(WebCore::::traverseNext):
(WebCore::::traversePrevious):
(WebCore::::traverseNextSibling):
(WebCore::::traversePreviousSibling):
(WebCore::::operator):
(WebCore::=):
(WebCore::::ElementConstIterator):

  • dom/ElementIteratorAssertions.h: Copied from Source/WebCore/dom/DescendantIteratorAssertions.h.

(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
(WebCore::ElementIteratorAssertions::domTreeHasMutated):
(WebCore::ElementIteratorAssertions::dropEventDispatchAssertion):

Aug 30, 2013:

7:16 PM Changeset in webkit [154925] by Simon Fraser
  • 2 edits in trunk/LayoutTests

Fix the Mac results.

  • platform/mac/compositing/video/video-object-fit-expected.txt:
6:10 PM Changeset in webkit [154924] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Windows] Build fix after r154921.

AVFoundationCF uses an internal wrapper object around the C-API. The call point
in the original patch was inside the wrapper, which did not (yet) provide
a method implementation.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::updateVideoLayerGravity):

5:24 PM Changeset in webkit [154923] by Brent Fulgham
  • 2 edits in trunk/Tools

[Windows] Unreviewed build fix.

  • win/AssembleBuildLogs/AssembleLogs.cmd: Make sure WebInspectorUI build output is reported

from the build machines.

5:22 PM Changeset in webkit [154922] by Brent Fulgham
  • 5 edits
    1 delete in trunk/Source

Source/WebInspectorUI: [Windows] Correct windows build. Get rid of unnecessary pre-build step. We don't build anything
in this project, just copy some files into the WebKit resource folder. This was fooling the
build system into thinking something failed, resulting in a build error.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove reference to WebInspectorUIPreBuild.cmd
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
  • WebInspectorUI.vcxproj/WebInspectorUIPreBuild.cmd: Removed.

Source/WebKit: [Windows] Unreviewed build correction.
Update project dependencies so that build logs on machines will include output from the
WebInspectorUI project.

  • WebKit.vcxproj/WebKit.sln:
5:14 PM Changeset in webkit [154921] by Simon Fraser
  • 23 edits
    9 adds in trunk

Video with object-fit: cover can spill outside the box
https://bugs.webkit.org/show_bug.cgi?id=52103

Source/WebCore:

Reviewed by Dean Jackson.

object-fit on renderers which use accelerated compositing needs special
treatment.

For directly composited images, and video, GraphicsLayer needs to know
both the size of the content layer, and also a rectangle at which this
should be clipped (because, for the first time, that content layer can be
larger than the renderer's content box).

AVFoundation would always aspect-ratio fit video by default, so plumb
through MediaPlayer a way to override that when object-fit requires it.

Added a LAYER_TREE_INCLUDES_CONTENT_LAYERS enum to the layerTreeAsText()
flags so we can dump content layers for testing.

Tests: compositing/images/direct-image-object-fit.html

compositing/reflections/direct-image-object-fit-reflected.html
compositing/video/video-object-fit.html

  • page/Frame.h: New LayerTreeFlagsIncludeContentLayers flag.
  • platform/graphics/GraphicsLayer.h: New flag.
  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::shouldMaintainAspectRatio):
(WebCore::MediaPlayer::setShouldMaintainAspectRatio):

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::shouldMaintainAspectRatio):
(WebCore::MediaPlayerPrivateInterface::setShouldMaintainAspectRatio):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:

(WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
(WebCore::MediaPlayerPrivateAVFoundation::setShouldMaintainAspectRatio):

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::updateVideoLayerGravity):
(WebCore::AVFWrapper::platformLayer):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):

  • platform/graphics/ca/GraphicsLayerCA.cpp: We need a new m_contentsClippingLayer to

clip the contents layer, which only gets created when necessary. It has to be cloned
for reflections.
(WebCore::GraphicsLayerCA::willBeDestroyed):
(WebCore::GraphicsLayerCA::setContentsRect):
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateSublayerList):
(WebCore::GraphicsLayerCA::updateContentsImage):
(WebCore::GraphicsLayerCA::updateContentsMediaLayer):
(WebCore::GraphicsLayerCA::updateContentsCanvasLayer):
(WebCore::GraphicsLayerCA::updateContentsColorLayer):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties):
(WebCore::GraphicsLayerCA::ensureCloneLayers):
(WebCore::GraphicsLayerCA::removeCloneLayers):
(WebCore::GraphicsLayerCA::fetchCloneLayers):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderLayerBacking.cpp: Need to push both the contentsRect and

the contentsClippingRect down to the GraphicsLayers. Most of the time they
are the same, unless object-fit makes them different.
(WebCore::RenderLayerBacking::resetContentsRect):
(WebCore::RenderLayerBacking::positionOverflowControlsLayers):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
(WebCore::RenderLayerBacking::updateImageContents):
(WebCore::RenderLayerBacking::contentsBox):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::layerTreeAsText):

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::updatePlayer):

  • testing/Internals.cpp:

(WebCore::Internals::layerTreeAsText):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

Reviewed by Dean Jackson.

Test cases for directly composited image with object-fit, the same with
reflections, and one with video.

Tests dump content GraphicsLayers, so have platform-specific results.

  • compositing/images/direct-image-object-fit-expected.txt: Added.
  • compositing/images/direct-image-object-fit.html: Added.
  • compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
  • compositing/reflections/direct-image-object-fit-reflected.html: Added.
  • compositing/video/video-object-fit-expected.txt: Added.
  • compositing/video/video-object-fit.html: Added.
  • media/video-object-fit-change.html: Fixed
  • platform/mac/TestExpectations: Unskip two tests.
  • platform/mac/compositing/images/direct-image-object-fit-expected.txt: Added.
  • platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt: Added.
  • platform/mac/compositing/video/video-object-fit-expected.txt: Added.
4:57 PM Changeset in webkit [154920] by oliver@apple.com
  • 2 edits in trunk/LayoutTests

Fix expected output

4:45 PM Changeset in webkit [154919] by Brent Fulgham
  • 4 edits in trunk/Source

Source/WebInspectorUI: [Windows] Build correction after dependency change.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Remove circular dependency on

WebKit, and control this at the solution level. The prior change broke external
builders.

Source/WebKit: [Windows] Unreviewed build fix after r154917

  • WebKit.vcxproj/WebKit.sln: Establish build dependency from WebInspectorUI against

WebKit. Remove reverse dependency.

4:34 PM Changeset in webkit [154918] by dino@apple.com
  • 2 edits in trunk/LayoutTests

http://webkit.org/b/120490
Skip some XML namespace serialization tests temporarily.

fast/dom/XMLSerializer-attribute-namespace-prefix-conflicts.html
fast/dom/XMLSerializer-same-prefix-different-namespaces-conflict.html
fast/dom/XMLSerializer-setAttributeNS-namespace-no-prefix.html
svg/custom/xlink-prefix-generation-in-attributes.html

4:13 PM Changeset in webkit [154917] by Brent Fulgham
  • 2 edits in trunk/Source/WebInspectorUI

[Windows] Unreviewed build gardening.

  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: Adjust build dependencies so

that WebInspectorUI 'builds' after WebKit so that the expected resource directory
structure is always in place.

3:55 PM Changeset in webkit [154916] by oliver@apple.com
  • 11 edits
    12 adds in trunk

Implement ES6 Set class
https://bugs.webkit.org/show_bug.cgi?id=120549

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

We simply reuse the MapData type from JSMap making the
it much simpler.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::setStructure):

  • runtime/JSSet.cpp: Added.

(JSC::JSSet::visitChildren):
(JSC::JSSet::finishCreation):

  • runtime/JSSet.h: Added.

(JSC::JSSet::createStructure):
(JSC::JSSet::create):
(JSC::JSSet::mapData):
(JSC::JSSet::JSSet):

  • runtime/SetConstructor.cpp: Added.

(JSC::SetConstructor::finishCreation):
(JSC::callSet):
(JSC::constructSet):
(JSC::SetConstructor::getConstructData):
(JSC::SetConstructor::getCallData):

  • runtime/SetConstructor.h: Added.

(JSC::SetConstructor::create):
(JSC::SetConstructor::createStructure):
(JSC::SetConstructor::SetConstructor):

  • runtime/SetPrototype.cpp: Added.

(JSC::SetPrototype::finishCreation):
(JSC::getMapData):
(JSC::setProtoFuncAdd):
(JSC::setProtoFuncClear):
(JSC::setProtoFuncDelete):
(JSC::setProtoFuncForEach):
(JSC::setProtoFuncHas):
(JSC::setProtoFuncSize):

  • runtime/SetPrototype.h: Added.

(JSC::SetPrototype::create):
(JSC::SetPrototype::createStructure):
(JSC::SetPrototype::SetPrototype):

LayoutTests:

Add tests

  • fast/js/basic-set-expected.txt: Added.
  • fast/js/basic-set.html: Added.
  • fast/js/script-tests/basic-set.js: Added.

(set new):
(otherString.string_appeared_here.set add):
(try.set forEach):
(set forEach):
(set gc):

3:51 PM Changeset in webkit [154915] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Windows] Update to incorporate additional suggestions
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Darin Adler

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Add

notes as to why AVFoundationCF needs this extra method call.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: Use OVERRIDE
  • rendering/RenderVideo.cpp: Replace ternary operator with logical &&.
3:37 PM Changeset in webkit [154914] by Brent Fulgham
  • 9 edits in trunk/Source/WebCore

[Windows] Vide element in page always uses non-hw accelerated mode.
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Darin Adler

This patch is unfortunately larger than my original idea, but seems to make the
layout system happier. Instead of switching into composited mode when building
the media player, we now build the original layout tree with compositing active
if the underlying media element requires it. The AVFoundationCF player needs to
have the compositor available at construction time so it can attach to the
rendering device. Otherwise it falls back to CPU-only mode.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::requiresImmediateCompositing): Added

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::requiresImmediateCompositing): Added

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Added

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

(WebCore::MediaPlayerPrivateAVFoundationCF::requiresImmediateCompositing):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForVideo): Uses new
'requiresImmediateCompositing' to short-circuit check for whether a
compositor is required.

  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::requiresImmediateCompositing):

  • rendering/RenderVideo.h:
3:12 PM Changeset in webkit [154913] by Lucas Forschler
  • 5 edits in branches/safari-537-branch/Source

Versioning.

3:10 PM Changeset in webkit [154912] by Lucas Forschler
  • 1 copy in tags/Safari-537.66

New Tag.

2:43 PM Changeset in webkit [154911] by Joseph Pecoraro
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544

Take 2, remove some more runAfterPendingDispatches which were somehow
causing WebKit 2 tests to fail. This requires us to be a bit more
careful when running the pending handlers as well.

Unreviewed test fix.

  • inspector/storage-panel-dom-storage-update.html:
2:42 PM Changeset in webkit [154910] by Joseph Pecoraro
  • 18 edits
    1 copy
    2 moves
    9 adds in trunk

Web Inspector: Breakpoints should have Automatically Continue Option
https://bugs.webkit.org/show_bug.cgi?id=120187

Reviewed by Timothy Hatcher.

Source/WebCore:

Tests: inspector-protocol/debugger/removeBreakpoint.html

inspector-protocol/debugger/setBreakpoint-autoContinue.html
inspector-protocol/debugger/setBreakpoint-column.html
inspector-protocol/debugger/setBreakpoint-condition.html
inspector-protocol/debugger/setBreakpoint.html

  • inspector/Inspector.json:

Convert the "condition" argument of setBreakpoint and setBreakpointByUrl
to a BreakpointOptions object with optional properties. One of which
is "condition" and a new option "autoContinue".

  • bindings/js/ScriptDebugServer.h:
  • bindings/js/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::hasBreakpoint):
(WebCore::ScriptDebugServer::pauseIfNeeded):
Automatically continue if the breakpoint was hit and has autoContinue.

  • inspector/InspectorDebuggerAgent.h:
  • inspector/InspectorDebuggerAgent.cpp:

(WebCore::buildObjectForBreakpointCookie):
(WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
(WebCore::InspectorDebuggerAgent::setBreakpoint):
(WebCore::InspectorDebuggerAgent::continueToLocation):
(WebCore::InspectorDebuggerAgent::didParseSource):

  • inspector/ScriptBreakpoint.h:

(WebCore::ScriptBreakpoint::ScriptBreakpoint):
Handle the new incoming BreakpointOptions type, and set the
autoContinue state on ScriptBreakpoints.

  • inspector/front-end/DebuggerModel.js:

(WebInspector.DebuggerModel.prototype.setBreakpointByURL):
(WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
Update old front-end to be compatible with the new API.

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Breakpoint.css:

(#edit-breakpoint-popoover-auto-continue):
Misc. changes for UI.

  • UserInterface/Breakpoint.js:

(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get autoContinue):
(WebInspector.Breakpoint.prototype.set autoContinue):
(WebInspector.Breakpoint.prototype.get options):
(WebInspector.Breakpoint.prototype.get info):
General maintenance of the autoContinue state.

(WebInspector.Breakpoint.prototype._popoverToggleEnabledCheckboxChanged):
(WebInspector.Breakpoint.prototype._popoverToggleAutoContinueCheckboxChanged):
(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):
Edit Breakpoint UI for setting autoContinue state.

  • UserInterface/InspectorBackend.js:

(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype._supports):
Extension to check if a BackendCommands method supports a particular param.

  • UserInterface/DebuggerManager.js:

(WebInspector.DebuggerManager):
(WebInspector.DebuggerManager.prototype._setBreakpoint):

  • UserInterface/InspectorBackendCommands.js:

Change to backend agent calls for the new protocol API.

LayoutTests:

  • http/tests/inspector-protocol/resources/InspectorTest.js:

(InspectorTest.checkForError):
Helper for checking for, and logging, protocol error responses.

  • inspector/debugger/set-breakpoint.html:

Update this test for the protocol change.

  • inspector-protocol/debugger/removeBreakpoint-expected.txt: Added.
  • inspector-protocol/debugger/removeBreakpoint.html: Added.
  • inspector-protocol/debugger/resources/breakpoint.js: Added.
  • inspector-protocol/debugger/setBreakpoint-autoContinue-expected.txt: Added.
  • inspector-protocol/debugger/setBreakpoint-autoContinue.html: Added.
  • inspector-protocol/debugger/setBreakpoint-column.html: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint.html.
  • inspector-protocol/debugger/setBreakpoint-column.txt: Renamed from LayoutTests/inspector-protocol/debugger/column-breakpoint-expected.txt.
  • inspector-protocol/debugger/setBreakpoint-condition-expected.txt: Added.
  • inspector-protocol/debugger/setBreakpoint-condition.html: Added.
  • inspector-protocol/debugger/setBreakpoint-expected.txt: Added.
  • inspector-protocol/debugger/setBreakpoint.html: Added.

Protocol tests for setting breakpoints. These test different aspects of
the Debugger domain (setBreakpoint variants and removeBreakpoint).

2:32 PM Changeset in webkit [154909] by dino@apple.com
  • 7 edits in trunk/Source/WebCore

Animations should use double for key values, not floats
https://bugs.webkit.org/show_bug.cgi?id=120547

Reviewed by Simon Fraser.

Merge https://chromium.googlesource.com/chromium/blink/+/71de046541c77120874b9bff82958ee9e0e20c7c

Some files have been renamed in the Blink port, and they have made some
improvements, but I took what applied to us.

All our existing tests passed.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation):

  • css/WebKitCSSKeyframeRule.cpp:

(WebCore::StyleKeyframe::parseKeyString):

  • css/WebKitCSSKeyframeRule.h:

(WebCore::StyleKeyframe::getKeys):

  • platform/graphics/GraphicsLayer.h:

(WebCore::AnimationValue::keyTime):
(WebCore::AnimationValue::AnimationValue):
(WebCore::FloatAnimationValue::create):
(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::create):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::create):
(WebCore::FilterAnimationValue::FilterAnimationValue):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::startAnimation):

  • rendering/style/KeyframeList.h:

(WebCore::KeyframeValue::KeyframeValue):
(WebCore::KeyframeValue::key):
(WebCore::KeyframeValue::setKey):

1:17 PM Changeset in webkit [154908] by commit-queue@webkit.org
  • 22 edits
    1 copy
    37 adds in trunk

Source/WebCore: [GStreamer] support in-band text tracks
https://bugs.webkit.org/show_bug.cgi?id=103771

Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.

Tests: New tests added because existing tests were too specific.

media/track/in-band/track-in-band-kate-ogg-cues-added-once.html
media/track/in-band/track-in-band-kate-ogg-kind.html
media/track/in-band/track-in-band-kate-ogg-language.html
media/track/in-band/track-in-band-kate-ogg-mode.html
media/track/in-band/track-in-band-kate-ogg-style.html
media/track/in-band/track-in-band-kate-ogg-track-order.html
media/track/in-band/track-in-band-srt-mkv-cues-added-once.html
media/track/in-band/track-in-band-srt-mkv-kind.html
media/track/in-band/track-in-band-srt-mkv-language.html
media/track/in-band/track-in-band-srt-mkv-mode.html
media/track/in-band/track-in-band-srt-mkv-style.html
media/track/in-band/track-in-band-srt-mkv-track-order.html

  • CMakeLists.txt: Add InbandTextTrackPrivateGStreamer, InbandGenericTextTrack, InbandWebVTTTextTrack, and TextCombinerGStreamer files.
  • GNUmakefile.list.am: Same.
  • PlatformEfl.cmake: Same.
  • Target.pri: Same.
  • WebCore.vcxproj/WebCore.vcxproj: Same.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Same.
  • WebCore.xcodeproj/project.pbxproj: Same.
  • html/track/InbandGenericTextTrack.cpp: Split out code for handling generic cues.

(WebCore::GenericTextTrackCueMap::GenericTextTrackCueMap): Move from InbandTextTrack.
(WebCore::GenericTextTrackCueMap::~GenericTextTrackCueMap): Same.
(WebCore::GenericTextTrackCueMap::add): Same.
(WebCore::GenericTextTrackCueMap::find): Same.
(WebCore::GenericTextTrackCueMap::remove): Same.
(WebCore::InbandGenericTextTrack::create): Same.
(WebCore::InbandGenericTextTrack::updateCueFromCueData): Same.
(WebCore::InbandGenericTextTrack::addGenericCue): Same.
(WebCore::InbandGenericTextTrack::updateGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeGenericCue): Same.
(WebCore::InbandGenericTextTrack::removeCue): Same.
(WebCore::InbandGenericTextTrack::InbandGenericTextTrack): Empty.
(WebCore::InbandGenericTextTrack::~InbandGenericTextTrack): Empty.

  • html/track/InbandGenericTextTrack.h: Copied from Source/WebCore/html/track/InbandTextTrack.h.

The only addition is the ASSERT_NOT_REACHED() for WebVTT cues.

  • html/track/InbandTextTrack.cpp: Add label and language changed callbacks.

(WebCore::InbandTextTrack::create): Return a generic or WebVTT text track based on the private CueFormat.
(WebCore::InbandTextTrack::labelChanged): Added.
(WebCore::InbandTextTrack::languageChanged): Added.

  • html/track/InbandTextTrack.h: Add label and language changed callbacks.
  • html/track/InbandWebVTTTextTrack.cpp: Added, based on InbandTextTrack.

(WebCore::InbandWebVTTTextTrack::create): Same.
(WebCore::InbandWebVTTTextTrack::InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::~InbandWebVTTTextTrack): Empty.
(WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): Sends data to a WebVTTParser.
(WebCore::InbandWebVTTTextTrack::newCuesParsed): Adds cues when WebVTTParser parses them.
(WebCore::InbandWebVTTTextTrack::fileFailedToParse): Prints a warning when WebVTTParser has a problem.

  • html/track/InbandWebVTTTextTrack.h: Added.
  • platform/graphics/InbandTextTrackPrivate.h:

(WebCore::InbandTextTrackPrivate::cueFormat): For determining if the track will have generic or WebVTT cues.
(WebCore::InbandTextTrackPrivate::InbandTextTrackPrivate): Pass CueFormat in the constructor.

  • platform/graphics/InbandTextTrackPrivateClient.h: Same.
  • platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:

(WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Pass CueFormat (Generic) to InbandTextTrackPrivate.

  • platform/graphics/gstreamer/GRefPtrGStreamer.cpp: Add GRefPtr specializations for GstSample and GstEvent.
  • platform/graphics/gstreamer/GRefPtrGStreamer.h: Same.
  • platform/graphics/gstreamer/GStreamerUtilities.h: Add WARN_MEDIA_MESSAGE.
  • platform/graphics/gstreamer/GStreamerVersioning.h: Add a function to check GStreamer version at runtime.
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: Added.

(WebCore::textTrackPrivateEventCallback): Watches for tag and stream start events.
(WebCore::textTrackPrivateSampleTimeoutCallback): See notifyTrackOfSample();
(WebCore::textTrackPrivateStreamTimeoutCallback): See notifyTrackOfStreamChanged();
(WebCore::textTrackPrivateTagsChangeTimeoutCallback): See notifyTrackOfTagsChanged();
(WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer): Initializes tags and stream and sets up event callback.
(WebCore::InbandTextTrackPrivateGStreamer::~InbandTextTrackPrivateGStreamer): Calls disconnect:
(WebCore::InbandTextTrackPrivateGStreamer::disconnect): Removes signal handlers and frees some memory.
(WebCore::InbandTextTrackPrivateGStreamer::handleSample): Adds samples to a list and sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::streamChanged): Sets up callback.
(WebCore::InbandTextTrackPrivateGStreamer::tagsChanged): Same.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfSample): Parses all queued samples with WebVTTParser.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfStreamChanged): Keeps track of current stream.
(WebCore::InbandTextTrackPrivateGStreamer::notifyTrackOfTagsChanged): Sets label and language from tags.

  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h: Added.

(WebCore::InbandTextTrackPrivateGStreamer::create): Basic RefPtr create function.
(WebCore::InbandTextTrackPrivateGStreamer::pad): Returns the pad this track is associated with (used
to determine if a playbin text stream has already been associated with a text track).
(WebCore::InbandTextTrackPrivateGStreamer::setIndex): Sets the track index (used for sorting).
(WebCore::InbandTextTrackPrivateGStreamer::streamId): Returns the stream ID (used to handle new samples).

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::mediaPlayerPrivateTextChangedCallback): Called for playbin "text-changed" event. See textChanged().
(WebCore::mediaPlayerPrivateTextChangeTimeoutCallback): See notifyPlayerOfText().
(WebCore::mediaPlayerPrivateNewTextSampleCallback): See newTextSample().
(WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer): Initialize m_textTimerHandler.
(WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer): Disconnect text tracks (they don't necessarily
get freed here, since a script could hold a reference).
(WebCore::MediaPlayerPrivateGStreamer::textChanged): Setup callback for notifyPlayerOfText.
(WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Create text tracks.
(WebCore::MediaPlayerPrivateGStreamer::newTextSample): Handle new samples by giving them to a text track
with a matching stream. This method is syncryonous because we need to get the stream start sticky event
immediately.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp: Added. This element forwards buffers from all

of its input pads, but also converts plain text to WebVTT as needed.
(webkit_text_combiner_init): Setup internal funnel.
(webkitTextCombinerPadEvent): If the caps are plain text make sure we have a webvttenv, otherwise connect
directly to the funnel.
(webkitTextCombinerRequestNewPad): Setup ghostpad and event callback.
(webkitTextCombinerReleasePad): Release pad and optional associated webvttenc.
(webkit_text_combiner_class_init): Setup pad templates and request/release pad functions.
(webkitTextCombinerNew): Returns a new WebKitTextCombiner.

  • platform/graphics/gstreamer/TextCombinerGStreamer.h: Added.
  • platform/graphics/gstreamer/TextSinkGStreamer.cpp: Added.

(webkit_text_sink_init): Set sync=false.
(webkitTextSinkGetProperty): Ignore sync property.
(webkitTextSinkSetProperty): Same.
(webkitTextSinkQuery): Ignore position and duration queries, forward everything else to appsink.
(webkit_text_sink_class_init): Setup property and query functions.
(webkitTextSinkNew): Return a new WebKitTextSink.

  • platform/graphics/gstreamer/TextSinkGStreamer.h: Added.

LayoutTests: <https://webkit.org/b/103771> [GStreamer] support in-band text tracks

Patch by Brendan Long <b.long@cablelabs.com> on 2013-08-30
Reviewed by Eric Carlson.

  • media/content/counting-subtitled-kate.ogv: Added.
  • media/content/counting-subtitled-srt.mkv: Added.
  • media/in-band-cues.js: Added.
  • media/track/in-band/track-in-band-kate-ogg-cues-added-once-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-cues-added-once.html: Added.
  • media/track/in-band/track-in-band-kate-ogg-kind-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-kind.html: Added.
  • media/track/in-band/track-in-band-kate-ogg-language-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-language.html: Added.
  • media/track/in-band/track-in-band-kate-ogg-mode-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-mode.html: Added.
  • media/track/in-band/track-in-band-kate-ogg-style-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-style.html: Added.
  • media/track/in-band/track-in-band-kate-ogg-track-order-expected.txt: Added.
  • media/track/in-band/track-in-band-kate-ogg-track-order.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-cues-added-once-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-cues-added-once.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-kind-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-kind.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-language-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-language.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-mode-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-mode.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-style-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-style.html: Added.
  • media/track/in-band/track-in-band-srt-mkv-track-order-expected.txt: Added.
  • media/track/in-band/track-in-band-srt-mkv-track-order.html: Added.
  • platform/mac/TestExpectations: Skip MKV and OGG tests.
1:01 PM Changeset in webkit [154907] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Web Inspector: inspector/storage-panel-dom-storage-update.html is flakey on the bots
https://bugs.webkit.org/show_bug.cgi?id=120544

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-08-30
Reviewed by Dean Jackson.

Explicitly listen for events instead of running callbacks after a delay.

  • inspector/storage-panel-dom-storage-update.html:
12:29 PM Changeset in webkit [154906] by krit@webkit.org
  • 35 edits
    3 adds in trunk

Animate CSS Image filter() function
https://bugs.webkit.org/show_bug.cgi?id=119938

Reviewed by Simon Fraser.

Source/WebCore:

With this patch, the new introduced CSS Image function filter() can be
animated. According to the spec, just filter functions can be
interpolated.

The patch also prepares StyleImage blending for interpolation of other
generated images like gradients or cross-fade().

http://dev.w3.org/fxtf/filters/#interpolating-filter-image

Test: fast/filter-image/filter-image-animation.html

  • css/CSSComputedStyleDeclaration.cpp: Reuse the code that creates a

CSSValueList from ComputeStyle logic.

(WebCore::valueForPixel):

For StyleRules we want to have not-adjusted length values.

(WebCore::ComputedStyleExtractor::valueForShadow):

Add argument to switch between adjusted and not-adjusted length.

(WebCore::ComputedStyleExtractor::valueForFilter):

Ditto.

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSFilterImageValue.h: Add helper functions

for animating filters. We need to pass the FilterOperations for
the image generation and the CSSValueList for StyleRule.

(WebCore::CSSFilterImageValue::filterOperations):
(WebCore::CSSFilterImageValue::setFilterOperations):
(WebCore::CSSFilterImageValue::cachedImage):

  • page/animation/CSSPropertyAnimation.cpp:

Add animation code to support animations between two filter()
function values.

(WebCore::blendFilterOperations):
(WebCore::blendFunc):
(WebCore::filterBlend):

  • rendering/style/StyleGeneratedImage.h: Add helper functions.

(WebCore::CSSFilterImageValue::imageValue):

LayoutTests:

Add tests to test animation between two filter() function values.
Furthermore, extended animation-test-helpers.js to parse all kind of CSS
image function where we support animations. CSS Image function can be
deeply nested as well now:

-wekit-filter(-webkit-cross-fade(url(a.png), url(b.png), 50%), sepia(0.5))

Even the 50% can now be checked with a tolerance. If we should ever support
animations on nested CSS Images, the new code in animation-test-helpers.js
is prepared for it.

Fixed a bunch of tests that passed by accident or needed an update to the new
infrastructure.

  • animations/resources/animation-test-helpers.js:

(parseCSSImage): For parsing of all kind of supported CSS Image functions.

Currently supported: -webkit-cross-fade, -webkit-filter, url, none
Still missing: linear and radial gradients (can not be animated yet).
CSS Image functions are allowed to be nested as deep JS allows.

(parseCrossFade): Add parsing of input CSS images.
(parseFilterImage): Parse -webkit-filter image function as well as input images.
(parseFilterFunctionList): Parse filter function list. We now parse the

function name as well. Added rudimentary support for drop-shadow and url.

(parseDeprecatedCustomFilterFunction): Special case old syntax of custom

filter function. Shall be removed in the future.

(compareCSSImages): Compares all kind (even deep nested) CSS images.
(compareFilterFunctions): Now compare filter function names as well.
(comparePropertyValue): Use new compareCSSImages function.

  • fast/filter-image/filter-image-animation-expected.txt: Added.
  • fast/filter-image/filter-image-animation.html: Added.
12:21 PM Changeset in webkit [154905] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Make sure remove CachedResourceClient when destructing IconLoader
https://bugs.webkit.org/show_bug.cgi?id=120541

Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.

It's a good practice to call CachedResource::removeClient(client)
when the client is being destructed. We need to do this for InconLoader
to prevent m_resource from keeping dangling client in case m_resource
is referenced by someone else in the future.

Found by code inspection. Just a defensive enhancement no new tests.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::~IconLoader):

11:58 AM Changeset in webkit [154904] by hmuller@adobe.com
  • 10 edits
    1 delete in trunk/Source/WebCore

[CSS Shapes] Redefine the ShapeIntervals class as a template
https://bugs.webkit.org/show_bug.cgi?id=120381

Reviewed by Alexandru Chiculita.

No new tests, this was just an internal refactoring.

The existing ShapeIntervals class has been converted into a template whose
type specifies the type of the interval's x1 and x2 horizontal endpoints
(formerly float). There were several other minor changes, all in the realm
of refactoring:

  • The original type was a struct with public x1 and x2 fields. It's now a class

with x1 and x2 accessors. ASSERTS are now used to maintain the x2 >= x1 invariant.
In the original code the invariant was not checked.

  • The logical comparison operators have been overloaded for ShapeInterval.

This obviates the IntervalX1Comparator class which has been removed.

  • The names of the global ShapeInterval Vector set operation methods have been

changed to reflect the fact that they're now members of the template class,
rather than globals.

PolygonShape.cpp depended on the ShapeInterval class. In the one or two places
where an interval's x1 or x1 fields had been set explicitly, ShapeInterval::set()
is now used to set both fields. This also enables the invariant check mentioned
earlier. The other changes to this class are syntatic, to account for the ShapeInterval
class's changes.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/shapes/PolygonShape.cpp:

(WebCore::appendIntervalX):
(WebCore::computeXIntersections):
(WebCore::computeOverlappingEdgeXProjections):
(WebCore::PolygonShape::getExcludedIntervals):
(WebCore::PolygonShape::getIncludedIntervals):

  • rendering/shapes/PolygonShape.h:
  • rendering/shapes/ShapeInterval.cpp: Removed.
  • rendering/shapes/ShapeInterval.h: The entire implementation is now here.

(WebCore::ShapeInterval::ShapeInterval):
(WebCore::ShapeInterval::x1):
(WebCore::ShapeInterval::x2):
(WebCore::ShapeInterval::set):
(WebCore::ShapeInterval::overlaps):
(WebCore::ShapeInterval::intersect):
(WebCore::ShapeInterval::sortVector):
(WebCore::ShapeInterval::uniteVectors):
(WebCore::ShapeInterval::intersectVectors):
(WebCore::ShapeInterval::subtractVectors):
(WebCore::operator==):
(WebCore::operator!=):
(WebCore::operator< ):
(WebCore::operator> ):
(WebCore::operator<=):
(WebCore::operator>=):

11:43 AM Changeset in webkit [154903] by Antti Koivisto
  • 20 edits in trunk/Source/WebCore

Use Element& in StyleResolveTree
https://bugs.webkit.org/show_bug.cgi?id=120540

Reviewed by Andreas Kling.

  • dom/ContainerNode.cpp:

(WebCore::attachChild):
(WebCore::detachChild):

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):
(WebCore::Document::createRenderTree):
(WebCore::Document::detach):

  • dom/Element.cpp:

(WebCore::Element::lazyReattach):
(WebCore::Element::updateExistingPseudoElement):
(WebCore::Element::createPseudoElementIfNeeded):
(WebCore::disconnectPseudoElement):

  • dom/ShadowRoot.cpp:

(WebCore::ShadowRoot::setResetStyleInheritance):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::parseAttribute):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::parseAttribute):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::renderFallbackContent):

  • html/HTMLPlugInImageElement.cpp:

(WebCore::HTMLPlugInImageElement::willRecalcStyle):
(WebCore::HTMLPlugInImageElement::documentWillSuspendForPageCache):
(WebCore::HTMLPlugInImageElement::documentDidResumeFromPageCache):
(WebCore::HTMLPlugInImageElement::restartSnapshottedPlugIn):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::parseAttribute):
(WebCore::HTMLSelectElement::parseMultipleAttribute):

  • html/HTMLViewSourceDocument.cpp:

(WebCore::HTMLViewSourceDocument::createContainingTable):
(WebCore::HTMLViewSourceDocument::addSpanWithClassName):
(WebCore::HTMLViewSourceDocument::addLine):
(WebCore::HTMLViewSourceDocument::finishLine):
(WebCore::HTMLViewSourceDocument::addBase):
(WebCore::HTMLViewSourceDocument::addLink):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::executeTask):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::callTheAdoptionAgency):

  • html/shadow/InsertionPoint.cpp:

(WebCore::InsertionPoint::willAttachRenderers):
(WebCore::InsertionPoint::willDetachRenderers):

  • loader/PlaceholderDocument.cpp:

(WebCore::PlaceholderDocument::createRenderTree):

  • style/StyleResolveTree.cpp:

(WebCore::Style::attachChildren):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachRenderTree):
(WebCore::Style::resolveLocal):
(WebCore::Style::updateTextStyle):
(WebCore::Style::resolveShadowTree):
(WebCore::Style::resolveTree):

Documents only ever have one child element. Remove the loop.

(WebCore::Style::detachRenderTreeInReattachMode):
(WebCore::Style::reattachRenderTree):

  • style/StyleResolveTree.h:
  • svg/SVGTests.cpp:

(WebCore::SVGTests::handleAttributeChange):

  • xml/XMLErrors.cpp:

(WebCore::XMLErrors::insertErrorMessageBlock):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::startElementNs):

11:30 AM Changeset in webkit [154902] by oliver@apple.com
  • 9 edits in trunk/Source

Make JSValue bool conversion less dangerous
https://bugs.webkit.org/show_bug.cgi?id=120505

Reviewed by Darin Adler.

Source/JavaScriptCore:

Replaces JSValue::operator bool() with a operator UnspecifiedBoolType* as
we do elsewhere. Then fix the places where terrible type coercion was
happening. All of the changes made had no fundamental behavioural impact
as they were coercion results that were ignored (returning undefined
after an exception).

  • dfg/DFGOperations.cpp:
  • interpreter/CallFrame.h:

(JSC::ExecState::hadException):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::operator UnspecifiedBoolType*):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval):

  • runtime/PropertyDescriptor.cpp:

(JSC::PropertyDescriptor::equalTo)

Source/WTF:

Make LIKELY and UNLIKELY macros coerce to bool before
passing to expect.

  • wtf/Compiler.h:
11:16 AM Changeset in webkit [154901] by akling@apple.com
  • 7 edits in trunk/Source/WebCore

Document style resolve should take Document&.
<https://webkit.org/b/120534>

Reviewed by Darin Adler.

Tweak Style::resolveTree(Document*) and Style::resolveForDocument(Document*) to take Document& instead.

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::process):

  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

  • style/StyleResolveForDocument.h:
  • style/StyleResolveTree.cpp:

(WebCore::Style::resolveTree):

  • style/StyleResolveTree.h:
11:02 AM Changeset in webkit [154900] by Darin Adler
  • 5 edits in trunk/Source/WebCore

[Mac] No need for Pasteboard::getDataSelection
https://bugs.webkit.org/show_bug.cgi?id=120536

Reviewed by Anders Carlsson.

  • editing/Editor.h: Added some Mac-only private member functions.
  • editing/mac/EditorMac.mm:

(WebCore::Editor::selectionInWebArchiveFormat): Added.
(WebCore::Editor::adjustedSelectionRange): Added.
(WebCore::attributedStringForRange): Added.
(WebCore::dataInRTFDFormat): Added.
(WebCore::dataInRTFFormat): Added.
(WebCore::Editor::dataSelectionForPasteboard): Moved the implementation
of Pasteboard::getDataSelection here, refactoring to share code with the
writeSelectionToPasteboard function.
(WebCore::Editor::writeSelectionToPasteboard): Refactored to share code
with the new function above.

  • platform/Pasteboard.h: Removed getDataSelection. One less layering violation.
  • platform/mac/PasteboardMac.mm: Ditto.
11:00 AM Changeset in webkit [154899] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] [WK2] TestWebKitWebView snapshot fails
https://bugs.webkit.org/show_bug.cgi?id=120404

Patch by Brian Holt <brian.holt@samsung.com> on 2013-08-30
Reviewed by Darin Adler.

Fixed the snapshot test failure caused by GTK no longer allowing
widgets to resize. Instead, resize the WebView by resizing the
window and waiting for the event to complete asynchronously.

  • UIProcess/API/gtk/tests/WebViewTest.cpp:

(WebViewTest::resizeView):

10:58 AM Changeset in webkit [154898] by timothy@apple.com
  • 1 edit in trunk/Source/WebInspectorUI/ChangeLog

Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.

https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases

Reviewed by Joseph Pecoraro.

  • UserInterface/CodeMirrorAdditions.js:

(alterNumber): Remove near zero check.

10:58 AM Changeset in webkit [154897] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Only modify numbers if they are identified by CodeMirror as a number.

https://bugs.webkit.org/show_bug.cgi?id=120484

<rdar://problem/13877085> REGRESSION: Alt-up and Alt-down don't work when cursor is in unit
<rdar://problem/13058697> PARITY: Option-Up arrow in "translate3d" should not modify number to make" translate4d"

Reviewed by Joseph Pecoraro.

  • UserInterface/CodeMirrorAdditions.js:

(CodeMirror.prototype.alterNumberInRange): Correctly preserve the selection, even if it differs from
the range passed in.
(alterNumber): Find number tokens and pass those to alterNumberInRange.
(alterNumber.findNumberToken): Added. Helper.

10:51 AM Changeset in webkit [154896] by rwlbuis@webkit.org
  • 15 edits in trunk

SVG error parsing empty path
https://bugs.webkit.org/show_bug.cgi?id=78980

Reviewed by Darin Adler.

Source/WebCore:

According to the spec (http://www.w3.org/TR/SVG/paths.html#PathData), path 'd' attribute can be empty.
No error should be reported in this case.

  • svg/SVGPathParser.cpp:

(WebCore::SVGPathParser::parsePathDataFromSource):

  • svg/SVGPathUtilities.cpp:

(WebCore::buildPathFromString):
(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildPathFromByteStream):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildStringFromSVGPathSegList):
(WebCore::buildSVGPathByteStreamFromString):
(WebCore::buildAnimatedSVGPathByteStream):
(WebCore::addToSVGPathByteStream):

LayoutTests:

Adapt fuzz-path-parser.html and dynamic-empty-path.svg to also test empty paths.
Adjust expectations to not expect an error message for empty paths.

  • platform/gtk/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/gtk/svg/custom/dynamic-empty-path-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/qt/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • platform/qt/svg/custom/dynamic-empty-path-expected.txt:
  • svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt:
  • svg/custom/dynamic-empty-path-expected.txt:
  • svg/dom/fuzz-path-parser-expected.txt:
  • svg/dom/fuzz-path-parser.html: also test empty path
  • svg/dom/path-parser-expected.txt:
  • svg/dom/script-tests/path-parser.js: also test empty path
10:50 AM Changeset in webkit [154895] by Csaba Osztrogonác
  • 6 edits in trunk/Source/WebKit2

Add USE(PROTECTION_SPACE_AUTH_CALLBACK) guards to canAuthenticateAgainstProtectionSpace()
https://bugs.webkit.org/show_bug.cgi?id=120351

Reviewed by Darin Adler.

  • NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
  • NetworkProcess/AsynchronousNetworkLoaderClient.h:
  • NetworkProcess/NetworkLoaderClient.h:
  • NetworkProcess/SynchronousNetworkLoaderClient.cpp:
  • NetworkProcess/SynchronousNetworkLoaderClient.h:
10:46 AM Changeset in webkit [154894] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Try to fix CSS_VARIABLES and CSS_DEVICE_ADAPTATION builds.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::resolveVariables):

10:43 AM Changeset in webkit [154893] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r154891.
http://trac.webkit.org/changeset/154891
https://bugs.webkit.org/show_bug.cgi?id=120539

broke the mac build (Requested by Ossy on #webkit).

Patch by Commit Queue <commit-queue@webkit.org> on 2013-08-30

  • platform/network/SynchronousLoaderClient.h:
10:02 AM Changeset in webkit [154892] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Cleaning errorDescriptionForValue after r154839
https://bugs.webkit.org/show_bug.cgi?id=120531

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-30
Reviewed by Darin Adler.

Changed the assert to ASSERT_NOT_REACHED, now that r154839 has landed. errorDescriptionForValue
can assert again that the parameterized JSValue is !isEmpty().

  • runtime/ExceptionHelpers.cpp:

(JSC::errorDescriptionForValue):

9:45 AM Changeset in webkit [154891] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Add USE(CFNETWORK) guard to SynchronousLoaderClient::didReceiveAuthenticationChallengedidReceiveAuthenticationChallenge()
https://bugs.webkit.org/show_bug.cgi?id=120532

Reviewed by Darin Adler.

  • platform/network/SynchronousLoaderClient.h:
9:44 AM Changeset in webkit [154890] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Windows] Video inside page always uses non-hardware accelerated playback
https://bugs.webkit.org/show_bug.cgi?id=120448

Reviewed by Eric Carlson.

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Check for
D3D device. If it doesn't exist, switch to compositing mode and try again.

9:40 AM Changeset in webkit [154889] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Possible dangling CachedResourceClient of StyleRuleImport and XSLImportRule
https://bugs.webkit.org/show_bug.cgi?id=120479

Patch by Leo Yang <leoyang@blackberry.com> on 2013-08-30
Reviewed by Darin Adler.

In StyleRuleImport::requestStyleSheet() and XSLImportRule::loadSheet() we
didn't call removeClient() for m_cachedSheet before assigning m_cachedSheet
a new value. This could leave the client as a client of the old cached
sheet and dangling after the client is deleted. Fix them by calling removeClient()
before assigning m_cacheSheet a new value.

Found by code inspection. Seems no way to test it automatically.

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::requestStyleSheet):

  • xml/XSLImportRule.cpp:

(WebCore::XSLImportRule::loadSheet):

9:39 AM Changeset in webkit [154888] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Fix unused parameter warning in graphics/cairo/GraphicsContextCairo.cpp file.
https://bugs.webkit.org/show_bug.cgi?id=120524

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::fillRectWithRoundedHole):

9:18 AM Changeset in webkit [154887] by akling@apple.com
  • 18 edits in trunk/Source/WebCore

StyleResolver & friends should use Document&.
<https://webkit.org/b/120527>

Reviewed by Antti Koivisto.

Document&-ify StyleResolver, ElementRuleCollector and SelectorChecker.

9:07 AM Changeset in webkit [154886] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Windows] Unreviewed build correction after r154835. Only seen when doing a
full (clean) rebuild.

  • DerivedSources.cpp: Remove reference to deleted JSHTMLDialogElement.cpp
8:28 AM Changeset in webkit [154885] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Fix, remove unused parameter in UIProcess/WebColorPicker.cpp.
https://bugs.webkit.org/show_bug.cgi?id=120525

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

  • UIProcess/WebColorPicker.cpp:

(WebKit::WebColorPicker::showColorPicker):

8:25 AM Changeset in webkit [154884] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Resolve unused parameter warning in WebPlatformStrategies.cpp
https://bugs.webkit.org/show_bug.cgi?id=120515

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

  • WebProcess/WebPage/TapHighlightController.cpp:

(WebKit::TapHighlightController::drawRect):

8:25 AM Changeset in webkit [154883] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120516

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

8:24 AM Changeset in webkit [154882] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Resolve unused parameter warning in FindController.cpp
https://bugs.webkit.org/show_bug.cgi?id=120407

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Darin Adler.

  • accessibility/atk/WebKitAccessibleInterfaceText.cpp:

(wordAtPositionForAtkBoundary):

8:21 AM Changeset in webkit [154881] by a.bah@samsung.com
  • 3 edits
    2 adds in trunk

setAttributeNode() does not set the new value to an existing attribute if specified attribute is in a different case.
https://bugs.webkit.org/show_bug.cgi?id=120293

Reviewed by Darin Adler.

Source/WebCore:

setAttributeNode() performs a case-insensitive search for an existing
attribute. If an existing attribute is found, it retrieves the index of
such an attribute. For setting the attribute's new value, we call upon
setAttributeInternal() to which both the index as well as the name of
the attribute is passed.
The name passed to this method is the same as the one passed to the
setAttributeNode() API from the webpage and thus can be in any case.

However, setAttributeInternal() uses this name to get the corresponding
existing attribute node. Since this retrieval is not case-insensitive,
the existing node is not returned and thus the new value is not set on
the existing node.
We should instead use the passed index and use that to retrieve the
existing node.

Note that obtaining the attribute's value using getAttributeNode() would
still return the correct value, i.e. the new one.

Also, this change shall make our behavior similar to that of FF and IE.

Test: fast/dom/Element/setAttributeNode-for-existing-attribute.html

  • dom/Element.cpp:

(WebCore::Element::setAttributeInternal):
If the passed index is not equal to attributeNotFound, we use that index
to retrieve the existing attribute.

LayoutTests:

  • fast/dom/Element/setAttributeNode-for-existing-attribute-expected.txt: Added.
  • fast/dom/Element/setAttributeNode-for-existing-attribute.html: Added.

Layout testcase for verifying that the new attribute value is set properly
if an existing attribute with the same name exists.

7:58 AM Changeset in webkit [154880] by akling@apple.com
  • 2 edits in trunk/Source/WebKit/win

Windows build fix for Document& Node::document().

  • DOMCoreClasses.cpp:

(DOMNode::createInstance):

7:57 AM Changeset in webkit [154879] by kadam@inf.u-szeged.hu
  • 2 edits in trunk/LayoutTests

[Qt] Skip failing grammar checking test.
Unreviewed gardening.

  • platform/qt/TestExpectations:
7:31 AM Changeset in webkit [154878] by mikhail.pozdnyakov@intel.com
  • 2 edits in trunk/Source/WebCore

SimpleClassVectorTraits shall be used for RuleData
https://bugs.webkit.org/show_bug.cgi?id=120526

Reviewed by Andreas Kling.

Whereas RuleData is POD type and whereas there are quite a lot of Vector<RuleData> occurrences in the code,
it makes sense to use SimpleClassVectorTraits for RuleData and hence to allow using more efficient mem functions
in vectors.

  • css/RuleSet.h:
7:30 AM Changeset in webkit [154877] by akling@apple.com
  • 350 edits in trunk/Source

Node::document() should return a reference.
<https://webkit.org/b/120496>

Reviewed by Antti Koivisto.

Now that orphan DocumentType nodes also have document pointers, it's no longer
possible to have a null Node::document().

Cement this by making document() return a reference, and remove the various
null checks exposed by this.

6:40 AM Changeset in webkit [154876] by kadam@inf.u-szeged.hu
  • 1 edit
    18 adds in trunk/LayoutTests

[Qt] Added platform specific expected files after r15470 and r154780.
Unreviewed gardening.

  • platform/qt-wk1/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
  • platform/qt-wk1/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
  • platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.png: Added.
  • platform/qt-wk1/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/ancestor-clipped-in-paginated-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/clipped-in-paginated-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-columns-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-columns-vertical-rl-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-in-paginated-rl-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-lr-paginated-repaint-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-nested-columns-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/composited-rl-paginated-repaint-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/hittest-composited-in-paginated-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/rotated-in-paginated-expected.txt: Added.
  • platform/qt-wk2/compositing/columns/untransformed-composited-in-paginated-expected.txt: Added.
  • platform/qt-wk2/compositing/repaint/repaint-on-layer-grouping-change-expected.txt: Added.
5:58 AM Changeset in webkit [154875] by commit-queue@webkit.org
  • 12 edits
    13 adds in trunk

Source/WebCore: [CSS Masking] -webkit-mask-repeat: space does not work
Added the space option to background-repeat and -webkit-mask-repeat.
With the property value 'space', the background or mask image gets repeated as often as it fits within the background positioning
area. The repeated images are spaced equally to fill the unused area.
https://bugs.webkit.org/show_bug.cgi?id=119324

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.

Tests: css3/background/background-repeat-space-border.html

css3/background/background-repeat-space-content.html
css3/background/background-repeat-space-padding.html
css3/masking/mask-repeat-space-border.html
css3/masking/mask-repeat-space-content.html
css3/masking/mask-repeat-space-padding.html

  • platform/graphics/GeneratorGeneratedImage.cpp:

(WebCore::GeneratorGeneratedImage::drawPattern): Passed the space values to the image buffer.

  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled): Added the space values when computing the location of the tile.

  • platform/graphics/Image.h: Added the space property.

(WebCore::Image::spaceSize):
(WebCore::Image::setSpaceSize):

  • platform/graphics/ImageBuffer.h: Added the space property.

(WebCore::ImageBuffer::spaceSize):
(WebCore::ImageBuffer::setSpaceSize):

  • platform/graphics/cg/ImageBufferCG.cpp: Passed the space values when copying an image.

(WebCore::ImageBuffer::copyImage):

  • platform/graphics/cg/ImageCG.cpp: Added the space values when creating a platform pattern.

(WebCore::Image::drawPattern):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended): Computed the space values on x and y axis.
(WebCore::getSpace):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry): Pass the space values to the Image class.

  • rendering/RenderBoxModelObject.h: Added the space property.

(WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize):
(WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize):

  • svg/graphics/SVGImage.cpp: Passed the space property to the created image.

(WebCore::SVGImage::drawPatternForContainer):

  • svg/graphics/SVGImageForContainer.cpp: Passed the space property to the image property.

(WebCore::SVGImageForContainer::drawPattern):

LayoutTests: [CSS Masking] -webkit-mask-repeat: space does not work
Added tests to verify correct usage of background-repeat: space and mask-repeat: space.
Added one test for each possible mask/background clip: border, padding and content
https://bugs.webkit.org/show_bug.cgi?id=119324

Patch by Andrei Parvu <parvu@adobe.com> on 2013-08-30
Reviewed by Dirk Schulze.

  • css3/background/background-repeat-space-border-expected.html: Added.
  • css3/background/background-repeat-space-border.html: Added.
  • css3/background/background-repeat-space-content-expected.html: Added.
  • css3/background/background-repeat-space-content.html: Added.
  • css3/background/background-repeat-space-padding-expected.html: Added.
  • css3/background/background-repeat-space-padding.html: Added.
  • css3/masking/mask-repeat-space-border-expected.html: Added.
  • css3/masking/mask-repeat-space-border.html: Added.
  • css3/masking/mask-repeat-space-content-expected.html: Added.
  • css3/masking/mask-repeat-space-content.html: Added.
  • css3/masking/mask-repeat-space-padding-expected.html: Added.
  • css3/masking/mask-repeat-space-padding.html: Added.
5:56 AM Changeset in webkit [154874] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Resolve unused parameter warning in WKBundlePageOverlay.cpp
https://bugs.webkit.org/show_bug.cgi?id=120521

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-30
Reviewed by Andreas Kling.

  • WebProcess/InjectedBundle/API/c/WKBundlePageOverlay.cpp:

(WKBundlePageOverlayFractionFadedIn):

5:33 AM Changeset in webkit [154873] by Antti Koivisto
  • 4 edits in trunk/Source/WebCore

Remove AttachContext
https://bugs.webkit.org/show_bug.cgi?id=120518

Reviewed by Andreas Kling.

This type is not useful anymore. Just pass the precomputed style to attachRenderTree and reattach-or-not flag to detachRenderTree.

  • style/StyleResolveTree.cpp:

(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::attachChildren):
(WebCore::Style::attachShadowRoot):
(WebCore::Style::attachRenderTree):
(WebCore::Style::detachChildren):
(WebCore::Style::detachShadowRoot):
(WebCore::Style::detachRenderTree):
(WebCore::Style::reattachRenderTree):
(WebCore::Style::resolveLocal):

  • style/StyleResolveTree.h:
5:13 AM Changeset in webkit [154872] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Qt] Remove qt-5.0-wk2 from the baseline search paths because the migration of expectations to qt-wk2 is done.
https://bugs.webkit.org/show_bug.cgi?id=120464

Patch by Gabor Abraham <abrhm@inf.u-szeged.hu> on 2013-08-30
Reviewed by Jocelyn Turcotte.

  • Scripts/webkitpy/port/qt.py:

(QtPort._search_paths):

  • Scripts/webkitpy/port/qt_unittest.py:

(QtPortTest):

2:34 AM Changeset in webkit [154871] by commit-queue@webkit.org
  • 12 edits
    5 deletes in trunk

Unreviewed, rolling out r154826.
http://trac.webkit.org/changeset/154826
https://bugs.webkit.org/show_bug.cgi?id=120517

Still breaks icloud.com (Requested by mwenge_ on #webkit).

Source/WebCore:

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):

  • rendering/RenderBox.h:

(WebCore::RenderBox::intrinsicSize):

  • rendering/RenderButton.h:
  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::RenderListBox):
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::computeLogicalHeight):

  • rendering/RenderListBox.h:
  • rendering/RenderMenuList.h:
  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computePreferredLogicalWidths):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::computeLogicalHeight):

  • rendering/RenderTextControl.h:

LayoutTests:

  • fast/replaced/intrinsic-button-and-input-height-expected.txt: Removed.
  • fast/replaced/intrinsic-button-and-input-height.html: Removed.
  • fast/replaced/width-and-height-of-positioned-replaced-elements.html: Removed.
  • platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.png: Removed.
  • platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Removed.
2:29 AM Changeset in webkit [154870] by Antti Koivisto
  • 13 edits in trunk/Source

Remove code behind ENABLE(DIALOG_ELEMENT)
https://bugs.webkit.org/show_bug.cgi?id=120467

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/blackberry:

  • WebCoreSupport/AboutDataEnableFeatures.in:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Aug 29, 2013:

11:57 PM Changeset in webkit [154869] by g.czajkowski@samsung.com
  • 13 edits in trunk/LayoutTests

TEST COMPLETE does not appear at the end of spellchecking tests
https://bugs.webkit.org/show_bug.cgi?id=120405

Reviewed by Alexey Proskuryakov.

Fix this by setting 'jsTestIsAsync = true' and calling finishJSTest()
when the asynchronous spellchecking tests end.

  • editing/spelling/grammar-markers-hidpi.html:
  • editing/spelling/grammar-markers.html:

Those have a correct output. However, remove unnecessary notifyDone due to
finishJSTest() already calls it.

  • editing/spelling/grammar-paste-expected.txt:
  • editing/spelling/grammar-paste.html:
  • editing/spelling/script-tests/spellcheck-paste.js:
  • editing/spelling/spellcheck-async-expected.txt:
  • editing/spelling/spellcheck-async.html:
  • editing/spelling/spellcheck-paste-expected.txt:
  • editing/spelling/spellcheck-queue-expected.txt:
  • editing/spelling/spellcheck-queue.html:

Change waitUntilDone() to 'jsTestIsAsync = true'
and notifyDone() to finishJSTest().

  • editing/spelling/spellcheck-input-search-crash-expected.txt:
  • editing/spelling/spellcheck-input-search-crash.html:

Call 'test()' before js-test-post.js to ensure right order of messages.

10:01 PM Changeset in webkit [154868] by rniwa@webkit.org
  • 9 edits in trunk/Source/WebCore

Unduplicate the code to convert between VisiblePosition and index
https://bugs.webkit.org/show_bug.cgi?id=120506

Reviewed by Darin Adler.

Encapsulate the conversion between VisiblePosition and index into indexForVisiblePosition
and visiblePositionForIndexUsingCharacterIterator. It's unfortunate that these two functions
are different from the two other existing functions of similar names but we've at least
confined problems into a single cpp file now.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::visiblePositionForIndex):
(WebCore::AccessibilityRenderObject::indexForVisiblePosition):

  • editing/Editor.cpp:

(WebCore::findFirstMarkable):

  • editing/htmlediting.cpp:

(WebCore::indexForVisiblePosition):
(WebCore::visiblePositionForIndexUsingCharacterIterator):

  • editing/htmlediting.h:
  • html/HTMLTextFormControlElement.cpp:

(WebCore::hasVisibleTextArea):
(WebCore::HTMLTextFormControlElement::setSelectionRange):
(WebCore::HTMLTextFormControlElement::indexForVisiblePosition):
(WebCore::HTMLTextFormControlElement::visiblePositionForIndex):

  • html/HTMLTextFormControlElement.h:
  • rendering/RenderTextControl.cpp:
  • rendering/RenderTextControl.h:
8:30 PM Changeset in webkit [154867] by fpizlo@apple.com
  • 5 edits in trunk

Just linking LLVM into JSC causes all plugin tests to fail
https://bugs.webkit.org/show_bug.cgi?id=113915

Tools:

Reviewed by Oliver Hunt.

Hide all LLVM symbols. This should prevent us from exporting LLVM's overrides for
raise/abort/assert_rtn.

  • Scripts/configure-llvm:

WebKitLibraries:

Reviewed by Oliver Hunt.

Updated the binary drops to r189627 of llvm.org, and used the new configure-llvm that does CPPFLAGS=-fvisibility=hidden.

  • LLVMIncludesMountainLion.tar.bz2:
  • LLVMLibrariesMountainLion.tar.bz2:
7:43 PM Changeset in webkit [154866] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

De-bork Qt build.

  • Target.pri:
7:15 PM Changeset in webkit [154865] by ryuan.choi@samsung.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix attempt for Windows.

Renamed JSMapConstructor and JSMapPrototype.

7:08 PM Changeset in webkit [154864] by ryuan.choi@samsung.com
  • 6 edits in trunk/Source/JavaScriptCore

Fix build break after r154861
https://bugs.webkit.org/show_bug.cgi?id=120503

Reviewed by Geoffrey Garen.

Unreviewed build fix attempt for GTK, Qt Windows and CMake based ports.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • Target.pri:
  • runtime/MapData.h:

(JSC::MapData::KeyType::KeyType):

6:21 PM Changeset in webkit [154863] by akling@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

CodeBlock: LLIntCallLinkInfo vector can be sized-to-fit at creation.
<https://webkit.org/b/120487>

Reviewed by Oliver Hunt.

CodeBlock::m_llintCallLinkInfos never changes size after creation, so make it a Vector
instead of a SegmentedVector. Use resizeToFit() instead of grow() since we know the
exact amount of space needed.

  • bytecode/CodeBlock.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::shrinkToFit):

6:10 PM Changeset in webkit [154862] by oliver@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix issues found by MSVC (which also happily fixes an unintentional pessimisation)

5:55 PM Changeset in webkit [154861] by oliver@apple.com
  • 13 edits
    11 adds in trunk

Implement ES6 Map object
https://bugs.webkit.org/show_bug.cgi?id=120333

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Implement support for the ES6 Map type and related classes.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • heap/CopyToken.h: Add a new token to track copying the backing store
  • runtime/CommonIdentifiers.h: Add new identifiers
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:

Add new structures and prototypes

  • runtime/JSMap.cpp: Added.
  • runtime/JSMap.h: Added.

New JSMap class to represent a Map instance

  • runtime/MapConstructor.cpp: Added.
  • runtime/MapConstructor.h: Added.

The Map constructor

  • runtime/MapData.cpp: Added.
  • runtime/MapData.h: Added.

The most interesting data structure. The roughly corresponds
to the ES6 notion of MapData. It provides the core JSValue->JSValue
map implementation. We implement it using 2 hashtables and a flat
table. Due to the different semantics of string comparisons vs.
all others we need have one map keyed by String and the other by
generic JSValue. The actual table is represented more or less
exactly as described in the ES6 draft - a single contiguous list of
key/value pairs. The entire map could be achieved with just this
table, however we need the HashMaps in order to maintain O(1) lookup.

Deleted values are simply cleared as the draft says, however the
implementation compacts the storage on copy as long as the are no
active iterators.

  • runtime/MapPrototype.cpp: Added.
  • runtime/MapPrototype.h: Added.

Implement Map prototype functions

  • runtime/VM.cpp:

Add new structures.

LayoutTests:

Tests

  • fast/js/basic-map-expected.txt: Added.
  • fast/js/basic-map.html: Added.
  • fast/js/script-tests/basic-map.js: Added.
5:39 PM Changeset in webkit [154860] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[Mac] Web Inspector: inspector/storage-panel-dom-storage-update.html fails
https://bugs.webkit.org/show_bug.cgi?id=116241

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-08-29
Reviewed by Darin Adler.

  • platform/mac/TestExpectations:
5:27 PM Changeset in webkit [154859] by rniwa@webkit.org
  • 3 edits in trunk/Source/WebCore

Avoid Node references from AXObjectCache from leaking
https://bugs.webkit.org/show_bug.cgi?id=120501

Reviewed by Darin Adler.

Merge https://chromium.googlesource.com/chromium/blink/+/454f31497613b6d0fbcfb0df757254b64a177c06
without any tests since we don't have the same infrastructure to detect leaks in WebKit.

A real world example of this would be selecting an <option> item inside frame by keyboard. The node will not be deref()-ed until the topDocument() is detached.

The issue was that AccessibilityMenuListOption is created in childrenChanged()
hook called when its RenderObject is being destroyed. This patch modifies AccessibilityMenuListPopup so it won't create AccessibilityMenuListOption if its
element is already detached.

  • accessibility/AccessibilityMenuListPopup.cpp:

(WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):

  • rendering/RenderMenuList.cpp:

(WebCore::RenderMenuList::didUpdateActiveOption):

5:23 PM Changeset in webkit [154858] by Simon Fraser
  • 33 edits
    37 adds in trunk

Implement object-fit CSS property
https://bugs.webkit.org/show_bug.cgi?id=52040

Source/WebCore:

Reviewed by Antti Koivisto, Sam Weinig.

Merge object-fit patch from Blink r156535, which started as a patch
by me.

Since then, the spec has gone to CR. This patch is an
implementation of object-fit as described in
http://www.w3.org/TR/2012/CR-css3-images-20120417/#object-fit

Object-fit is used to maintain the aspect ratio of replaced content
within its content box. All object-fit values but the initial one
('fill') will always ensure that the aspect ratio is retained, in
different ways (fit inside the content box, cover the content box, or
use intrinsic size). Painting is always clipped against the content
box, regardless of the 'overflow' property.

Tests: fast/css/object-fit/object-fit-canvas.html

fast/css/object-fit/object-fit-embed.html
fast/css/object-fit/object-fit-grow-landscape.html
fast/css/object-fit/object-fit-grow-portrait.html
fast/css/object-fit/object-fit-img-svg.html
fast/css/object-fit/object-fit-img-svg2.html
fast/css/object-fit/object-fit-img.html
fast/css/object-fit/object-fit-input-image.html
fast/css/object-fit/object-fit-object.html
fast/css/object-fit/object-fit-shrink.html
fast/css/object-fit/object-fit-video-poster.html
fast/css/parsing-object-fit.html
http/tests/css/object-fit-delayed-img-svg.html
media/video-object-fit-change.html
media/video-object-fit.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EObjectFit):

  • css/CSSProperty.cpp:

(WebCore::CSSProperty::isInheritedProperty):

  • css/CSSPropertyNames.in:
  • css/CSSValueKeywords.in:
  • css/DeprecatedStyleBuilder.cpp:

(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::applyProperty):

  • css/html.css:

(video): Set object-fit to 'contain'. This is how VIDEO elements
work, apparently.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::imageSizeForRenderer):

  • loader/cache/CachedImage.h:
  • platform/graphics/LayoutSize.h:

(WebCore::fitLayoutSizeToAspectRatio): New function to grow or shrink
in one dimension to fit to the aspect ratio.

  • rendering/RenderHTMLCanvas.cpp:

(WebCore::RenderHTMLCanvas::paintReplaced): Apply object-fit and
clip if necessary.

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::imageDimensionsChanged): Update intrinsic
size properly, and recalculate the inner content rectangle (the
exact area occupied by the replaced content) again if appropriate.
(WebCore::RenderImage::paintReplaced): Apply object-fit and clip
if necessary.
(WebCore::RenderImage::foregroundIsKnownToBeOpaqueInRect):
object-fit may leave parts of the content box empty, in which case
it won't be fully obscured.
(WebCore::RenderImage::layout):

  • rendering/RenderImage.h:
  • rendering/RenderImageResource.cpp:

(WebCore::RenderImageResource::intrinsicSize): Need this to
differentiate between intrinsic and extrinsic size for SVG images.

  • rendering/RenderImageResource.h:
  • rendering/RenderImageResourceStyleImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::replacedContentRect): Return the
rectangle occupied by the replaced content. This will be identical
to the content box if object-fit is 'fill', but will typically be
something else for other values.

  • rendering/RenderReplaced.h:
  • rendering/RenderVideo.cpp:

(WebCore::RenderVideo::videoBox): Not much left to do here, with
the new RenderReplaced::replacedContentRect() method in place.
(WebCore::RenderVideo::paintReplaced): Apply object-fit and clip
if necessary.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresRepaint):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleRareNonInheritedData.cpp:

(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator==):

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Reviewed by Antti Koivisto, Sam Weinig.

Tests for object-fit.

  • fast/css/object-fit/object-fit-canvas-expected.html: Added.
  • fast/css/object-fit/object-fit-canvas.html: Added.
  • fast/css/object-fit/object-fit-embed-expected.html: Added.
  • fast/css/object-fit/object-fit-embed.html: Added.
  • fast/css/object-fit/object-fit-grow-landscape-expected.html: Added.
  • fast/css/object-fit/object-fit-grow-landscape.html: Added.
  • fast/css/object-fit/object-fit-grow-portrait-expected.html: Added.
  • fast/css/object-fit/object-fit-grow-portrait.html: Added.
  • fast/css/object-fit/object-fit-img-expected.html: Added.
  • fast/css/object-fit/object-fit-img-svg-expected.html: Added.
  • fast/css/object-fit/object-fit-img-svg.html: Added.
  • fast/css/object-fit/object-fit-img-svg2-expected.html: Added.
  • fast/css/object-fit/object-fit-img-svg2.html: Added.
  • fast/css/object-fit/object-fit-img.html: Added.
  • fast/css/object-fit/object-fit-input-image-expected.html: Added.
  • fast/css/object-fit/object-fit-input-image.html: Added.
  • fast/css/object-fit/object-fit-object-expected.html: Added.
  • fast/css/object-fit/object-fit-object.html: Added.
  • fast/css/object-fit/object-fit-shrink-expected.html: Added.
  • fast/css/object-fit/object-fit-shrink.html: Added.
  • fast/css/object-fit/object-fit-video-poster-expected.html: Added.
  • fast/css/object-fit/object-fit-video-poster.html: Added.
  • fast/css/parsing-object-fit-expected.txt: Added.
  • fast/css/parsing-object-fit.html: Added.
  • fast/css/resources/circle.svg: Added.
  • fast/css/resources/circle2.svg: Added.
  • fast/css/resources/circles-landscape-small.png: Added.
  • fast/css/resources/circles-landscape.png: Added.
  • fast/css/resources/circles-portrait-small.png: Added.
  • fast/css/resources/circles-portrait.png: Added.
  • http/tests/css/object-fit-delayed-img-svg-expected.html: Added.
  • http/tests/css/object-fit-delayed-img-svg.html: Added.
  • media/video-object-fit-change-expected.html: Added.
  • media/video-object-fit-change.html: Added.
  • media/video-object-fit-expected.html: Added.
  • media/video-object-fit.html: Added.
  • platform/mac/TestExpectations:
5:10 PM Changeset in webkit [154857] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

new-run-webkit-tests does not respect --no-sample-on-timeout switch
https://bugs.webkit.org/show_bug.cgi?id=120491

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-08-29
Reviewed by Darin Adler.

  • Scripts/webkitpy/port/server_process.py:

(ServerProcess._handle_timeout):

5:07 PM Changeset in webkit [154856] by timothy_horton@apple.com
  • 3 edits
    2 adds in trunk

SVG clipping, masking, and gradients-on-text do not respect the device scale factor
https://bugs.webkit.org/show_bug.cgi?id=120377
<rdar://problem/14777944>

Reviewed by Simon Fraser.

Tests: svg/custom/masking-clipping-hidpi.svg

calculateTransformationToOutermostCoordinateSystem should include the page's
device scale factor in its transform.

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):

Add a test that ensures that when deviceScaleFactor=2, masks, clipping,
gradients, and patterns are rendered @2x.

  • svg/custom/masking-clipping-hidpi-expected.svg: Added.
  • svg/custom/masking-clipping-hidpi.svg: Added.
4:59 PM Changeset in webkit [154855] by Chris Fleizach
  • 5 edits
    2 adds in trunk

AX: Crash when VoiceOver reference a TextMarker from an iframe that has been removed
https://bugs.webkit.org/show_bug.cgi?id=120318

Reviewed by Darin Adler.

Source/WebCore:

These crashes occur because an AXTextMarker is retrieved that reference a Node in an iframe.
The iframe goes away, but when it tries to clean up and remove that Node from the InUse cache,
the document() tree has already been detached, so it never clears the actual InUse cache.

The fix here is to pre-emptively clean up any nodes in the document going away when the frame is about to disconnect.

I'm removing the clearAXObjectCache() at the disconnectOwnerElement because it

1) Cleared the AXObjectCache for the iframe document (which is always empty -- only the top level doc maintains the cache), because

the document() tree had already been detached... so it essentially did nothing.

2) And if it did work, we wouldn't want this behavior -- that is to say, when an iframe goes away, we don't want to clear the entire cache for all

the other documents (there's even an existing layout test to verify this behavior).

Test: platform/mac/accessibility/stale-textmarker-crash.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::clearTextMarkerNodesInUse):

  • accessibility/AXObjectCache.h:
  • page/Frame.cpp:

(WebCore::Frame::disconnectOwnerElement):

LayoutTests:

  • platform/mac/accessibility/stale-textmarker-crash-expected.txt: Added.
  • platform/mac/accessibility/stale-textmarker-crash.html: Added.
4:45 PM Changeset in webkit [154854] by fpizlo@apple.com
  • 14 edits
    4 adds in trunk/Source/JavaScriptCore

Teach DFG::Worklist and its clients that it may be reused for different kinds of compilations
https://bugs.webkit.org/show_bug.cgi?id=120489

Reviewed by Geoffrey Garen.

If the baseline JIT hits an OSR entry trigger into the DFG and we already have a
DFG compilation but we've also started one or more FTL compilations, then we
shouldn't get confused. Previously we would have gotten confused because we would
see an in-process deferred compile (the FTL compile) and also an optimized
replacement (the DFG code).

If the baseline JIT hits an OSR entry trigger into the DFG and we previously
did two things in this order: triggered a tier-up compilation from the DFG into
the FTL, and then jettisoned the DFG code because it exited a bunch, then we
shouldn't be confused by the presence of an in-process deferred compile (the FTL
compile). Previously we would have waited for that compile to finish; but the more
sensible thing to do is to let it complete and then invalidate it, while at the
same time enqueueing a DFG compile to create a new, more valid, DFG code block.

If the DFG JIT hits a loop OSR entry trigger (into the FTL) and it has already
triggered an FTL compile for replacement, then it should fire off a second compile
instead of thinking that it can wait for that one to finish. Or vice-versa. We
need to allow for two FTL compiles to be enqueued at the same time (one for
replacement and one for OSR entry in a loop).

Then there's also the problem that DFG::compile() is almost certainly going to be
the hook for triggering both DFG compiles and the two kinds of FTL compiles, but
right now there is no way to tell it which one you want.

This fixes these problems and removes a bunch of potential confusion by making the
key for a compile in the DFG::Worklist be a CompilationMode (one of DFGMode,
FTLMode, or FTLForOSREntryMode). That mode is also passed to DFG::compile().

Awkwardly, this still leaves us in a no DFG->FTL tier-up situation - so
DFG::compile() is always passed DFGMode and then it might do an FTL compile if
possible. Fixing that is a bigger issue for a later changeset.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::checkIfOptimizationThresholdReached):

  • dfg/DFGCompilationKey.cpp: Added.

(JSC::DFG::CompilationKey::dump):

  • dfg/DFGCompilationKey.h: Added.

(JSC::DFG::CompilationKey::CompilationKey):
(JSC::DFG::CompilationKey::operator!):
(JSC::DFG::CompilationKey::isHashTableDeletedValue):
(JSC::DFG::CompilationKey::profiledBlock):
(JSC::DFG::CompilationKey::mode):
(JSC::DFG::CompilationKey::operator==):
(JSC::DFG::CompilationKey::hash):
(JSC::DFG::CompilationKeyHash::hash):
(JSC::DFG::CompilationKeyHash::equal):

  • dfg/DFGCompilationMode.cpp: Added.

(WTF::printInternal):

  • dfg/DFGCompilationMode.h: Added.
  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::key):

  • dfg/DFGPlan.h:
  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::enqueue):
(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::runThread):

  • dfg/DFGWorklist.h:
  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

4:36 PM Changeset in webkit [154853] by Brent Fulgham
  • 5 edits in trunk/Source/JavaScriptCore

[Windows] Unreviewed build fix after r154847.
If you are going to exclude promises, actually exclude the build components.

  • interpreter/CallFrame.h: Exclude promise declarations
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::reset): Exclude promise code.
(JSC::JSGlobalObject::visitChildren): Ditto.

  • runtime/VM.cpp: Ditto.

(JSC::VM::VM):
(JSC::VM::~VM):

  • runtime/VM.h:
4:31 PM Changeset in webkit [154852] by Brent Fulgham
  • 3 edits in trunk/WebKitLibraries

[Windows] Unreviewed build fix after r154847.

  • win/tools/vsprops/FeatureDefines.props: Add missing definition for ENABLE_PROMISES
  • win/tools/vsprops/FeatureDefinesCairo.props: Ditto
4:18 PM Changeset in webkit [154851] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Make incrementing and decrementing numbers by 0.1 require the control key, and not near zero numbers.

https://bugs.webkit.org/show_bug.cgi?id=120492
<rdar://problem/13738935> Incrementing and decrementing numbers near zero is annoying compared to earlier releases

Reviewed by Joseph Pecoraro.

  • UserInterface/CodeMirrorAdditions.js:

(alterNumber): Remove near zero check.

4:06 PM Changeset in webkit [154850] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Windows] More unreviewed gardening of project file.
Move css files inline with related source code.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
4:00 PM Changeset in webkit [154849] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Scrolling text with FCC does not work while composing an email
https://bugs.webkit.org/show_bug.cgi?id=120493

Patch by Jacky Jiang <zhajiang@blackberry.com> on 2013-08-29
Reviewed by Rob Buis.
Internally reviewed by Gen Mak and Konrad Piascik.

JIRA 468007
m_cannotScrollIfHasFloatLayoutSizeRoundingError was true which prevented
FCC scrolling.
TransformedActualVisibleSize is quite different in email compose card
than browser. In this case, the issue was caused by transformedActualVisibleSize(768, 750)
which was not the actual visible size of the webkit part of the Cascades
view when keyboard popped up. We usually don't do keyboard adaptation for
windowless page clients; therefore, there will be no viewport change of
WebKit.
To fix the bug, we can ignore the windowless page clients.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::hasFloatLayoutSizeRoundingError):

3:56 PM Changeset in webkit [154848] by Lucas Forschler
  • 2 edits in branches/safari-537.60-branch/Source/WebKit/win

Merge fix for <rdar://problem/14871160>.

3:54 PM Changeset in webkit [154847] by weinig@apple.com
  • 33 edits in trunk

.: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Source/autotools/SetupWebKitFeatures.m4:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:
  • runtime/JSGlobalObject.cpp:
  • runtime/JSGlobalObject.h:
  • runtime/JSPromise.cpp:
  • runtime/JSPromise.h:
  • runtime/JSPromiseCallback.cpp:
  • runtime/JSPromiseCallback.h:
  • runtime/JSPromiseConstructor.cpp:
  • runtime/JSPromiseConstructor.h:
  • runtime/JSPromisePrototype.cpp:
  • runtime/JSPromisePrototype.h:
  • runtime/JSPromiseResolver.cpp:
  • runtime/JSPromiseResolver.h:
  • runtime/JSPromiseResolverConstructor.cpp:
  • runtime/JSPromiseResolverConstructor.h:
  • runtime/JSPromiseResolverPrototype.cpp:
  • runtime/JSPromiseResolverPrototype.h:

Source/WebCore: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2: Add ENABLE gaurds for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Configurations/FeatureDefines.xcconfig:

Source/WTF: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • wtf/FeatureDefines.h:

Tools: Add ENABLE guards for Promises
https://bugs.webkit.org/show_bug.cgi?id=120488

Reviewed by Andreas Kling.

  • Scripts/webkitperl/FeatureList.pm:
  • qmake/mkspecs/features/features.pri:
3:47 PM Changeset in webkit [154846] by msaboff@apple.com
  • 1 edit
    3 adds in trunk/LayoutTests

REGRESSION (r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark
https://bugs.webkit.org/show_bug.cgi?id=120080

Rubber stamped by Oliver Hunt.

Added layout test that crashes without the fix in bug 120080.

  • fast/js/lazy-create-arguments-from-get-by-val-expected.txt: Added.
  • fast/js/lazy-create-arguments-from-get-by-val.html: Added.
  • fast/js/script-tests/lazy-create-arguments-from-get-by-val.js: Added.
3:41 PM Changeset in webkit [154845] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix FTL build.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::callCheck):

2:20 PM Changeset in webkit [154844] by kov@webkit.org
  • 5 edits in releases/WebKitGTK/webkit-2.2

Unreviewed. Update NEWS and Versions.m4 for 2.1.90.1 release.

.:

  • Source/autotools/Versions.m4: bump to 2.1.90.1.
  • configure.ac: Add webkit_patch_version to AC_INIT call.

Sources/WebKit/gtk:

  • NEWS: Add release notes.
2:20 PM Changeset in webkit [154843] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

Inspector: Use a bit of RefPtr::release() in generated code.
<https://webkit.org/b/120485>

Reviewed by Darin Adler.

Just something I spotted while reading InspectorBackendDispatcher.cpp.
Avoid 3 cases of reference count churnery.

  • inspector/CodeGeneratorInspectorStrings.py:
2:12 PM Changeset in webkit [154842] by dino@apple.com
  • 2 edits in trunk/LayoutTests

XMLSerializer-attribute-namespace-prefix-conflicts can't produce reliable results
https://bugs.webkit.org/show_bug.cgi?id=120490

Marking as [ Pass Failure ] for the moment.

1:52 PM Changeset in webkit [154841] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Should enable WebGL by default on MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=120420

Patch by Andre Moreira Magalhaes <Andre Moreira Magalhaes> on 2013-08-29
Reviewed by Gustavo Noronha Silva.

Enable WebGL by default on MiniBrowser.

  • MiniBrowser/gtk/main.c:

(main):

1:48 PM Changeset in webkit [154840] by Christophe Dumez
  • 15 edits
    2 adds in trunk

According to DOM4, all DocType nodes should have a document
https://bugs.webkit.org/show_bug.cgi?id=99244

Reviewed by Darin Adler.

Source/WebCore:

Doctypes now always have a node document and can be moved across document boundaries as per
the latest DOM4 specification:
http://dom.spec.whatwg.org/#dom-domimplementation-createdocumenttype
http://dom.spec.whatwg.org/#dom-node-ownerdocument

This means that DOMImplementation.createDocumentType() now sets the ownerDocument of the
new DocumentType Node to the associated document of the current "context" object. In
DOM4, all nodes have a document at all times. DocumentType nodes can now be moved across
document boundaries so that the node can be added to a Document after being created.

This means we will no longer need to special case DocumentType nodes in the code and
Node::document() can no longer return NULL, which means that we'll be able to remove
NULL checks in call sites.

Firefox stable and since recently Blink already follow DOM4 here while IE10 does not (yet).

Test: fast/dom/createDocumentType-ownerDocument.html

  • dom/ContainerNode.cpp:

(WebCore::checkAcceptChild):

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocumentType):
(WebCore::DOMImplementation::createDocument):

  • dom/Node.h:

(WebCore::Node::document):

LayoutTests:

Add layout test to check that DocumentType Nodes have a document after being
created. Also update a few existing test cases to reflect this change.

  • fast/dom/DOMImplementation/createDocument-with-used-doctype-expected.txt:
  • fast/dom/DOMImplementation/createDocument-with-used-doctype.html:
  • fast/dom/DOMImplementation/resources/createDocument-with-used-doctype-frame.html:
  • fast/dom/XMLSerializer-doctype2-expected.txt:
  • fast/dom/XMLSerializer-doctype2.html:
  • fast/dom/createDocumentType-ownerDocument-expected.txt: Added.
  • fast/dom/createDocumentType-ownerDocument.html: Added.
  • fast/dom/move-nodes-across-documents.html:
  • fast/dom/node-iterator-with-doctype-root-expected.txt:
  • fast/dom/node-iterator-with-doctype-root.html:
  • fast/events/dispatch-event-no-document-expected.txt:
  • fast/events/dispatch-event-no-document.html:
1:35 PM Changeset in webkit [154839] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r153222, 32-bit): NULL JSValue() seen when running peacekeeper benchmark.
https://bugs.webkit.org/show_bug.cgi?id=120080

Patch by Julien Brianceau <jbriance@cisco.com> on 2013-08-29
Reviewed by Michael Saboff.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_get_argument_by_val): Revert changes introduced by r153222 in this function.

1:30 PM Changeset in webkit [154838] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Kill code that became dead after http://trac.webkit.org/changeset/154833

Rubber stamped by Oliver Hunt.

  • dfg/DFGDriver.h:
1:27 PM Changeset in webkit [154837] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

CodeBlock's magic for scaling tier-up thresholds should be more reusable
https://bugs.webkit.org/show_bug.cgi?id=120486

Reviewed by Oliver Hunt.

Removed the counterValueForBlah() methods and exposed the reusable scaling logic
as a adjustedCounterValue() method.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::adjustedCounterValue):
(JSC::CodeBlock::optimizeAfterWarmUp):
(JSC::CodeBlock::optimizeAfterLongWarmUp):
(JSC::CodeBlock::optimizeSoon):

  • bytecode/CodeBlock.h:
  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::handleExitCounts):

1:09 PM Changeset in webkit [154836] by Darin Adler
  • 7 edits in trunk/Source/WebCore

Pasteboard::writeSelection violates layering (first step, fixes it for Mac platform only)
https://bugs.webkit.org/show_bug.cgi?id=120483

Reviewed by Anders Carlsson.

  • editing/Editor.cpp:

(WebCore::Editor::cut): Added some comments. Use the new writeSelectionToPasteboard
function on Mac instead of Pasteboard::writeSelection.
(WebCore::Editor::copy): Ditto.

  • editing/Editor.h: Removed an old unused Mac-only writeSelectionToPasteboard function

that was a cover that called through to Pasteboard::writeSelectionForTypes. Added a new
Mac-only writeSelectionToPasteboard function that is destined to become cross-platform soon.

  • editing/mac/EditorMac.mm:

(WebCore::Editor::writeSelectionToPasteboard): Added. Uses a new pattern where the Editor
puts all the data into a structure called PasteboardWebContent then calls the Pasteboard to
do the work. The platform-specific aspect of PasteboardWebContent is what formats are needed
for each platform.

  • page/DragController.cpp:

(WebCore::DragController::startDrag): Added some comments. Use the new writeSelectionToPasteboard
function on Mac instead of Pasteboard::writeSelection.

  • platform/Pasteboard.h: Remove some unneeded forward declarations. Added comments for all functions

that don't belong in this class because they are layering violations; this becomes the to do list for
the project we are beginning here. Added the new PasteboardWebContent structure, empty on all platforms
except for Mac for now. Removed writeSelectionForTypes, a Mac-only function that is no longer used.
Added setTypes and writeAfterSettingTypes, the two halves of the future function named writeWebContent.
Put the writeSelection function inside a "not Mac" if statement. Later to be deleted entirely.

  • platform/mac/PasteboardMac.mm: Removed now-unneeded selectionPasteboardTypes,

Pasteboard::writeSelectionForTypes, and writeSelection functions.
(WebCore::Pasteboard::setTypes): Added. First half of writing web content to the pasteboard.
(WebCore::Pasteboard::writeAfterSettingTypes): Added. Second half of writing web content to the pasteboard.

1:06 PM Changeset in webkit [154835] by Antti Koivisto
  • 29 edits
    5 deletes in trunk/Source/WebCore

Remove code behind ENABLE(DIALOG_ELEMENT)
https://bugs.webkit.org/show_bug.cgi?id=120467

Reviewed by Darin Adler.

It is incomplete and no one is building it.

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/generic/RuntimeEnabledFeatures.cpp:
  • bindings/generic/RuntimeEnabledFeatures.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::adjustRenderStyle):

  • css/html.css:
  • dom/ContextFeatures.cpp:
  • dom/ContextFeatures.h:
  • dom/Document.cpp:
  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::removedFrom):
(WebCore::Element::setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries):

  • dom/Element.h:

(WebCore::Element::isDisabledFormControl):

  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):

  • html/HTMLDialogElement.cpp: Removed.
  • html/HTMLDialogElement.h: Removed.
  • html/HTMLDialogElement.idl: Removed.
  • html/HTMLElementsAllInOne.cpp:
  • html/HTMLTagNames.in:
  • rendering/RenderDialog.cpp: Removed.
  • rendering/RenderDialog.h: Removed.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::rebuildZOrderLists):
(WebCore::RenderLayer::collectLayers):

  • rendering/RenderLayer.h:
  • rendering/RenderObject.h:

(WebCore::RenderObject::isCounter):

  • rendering/RenderingAllInOne.cpp:
  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):

  • testing/InternalSettings.h:
12:45 PM Changeset in webkit [154834] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Reverting a change that was made in https://bugs.webkit.org/show_bug.cgi?id=120472.

  • media/track/track-cue-rendering-on-resize-expected.txt:
12:28 PM Changeset in webkit [154833] by fpizlo@apple.com
  • 18 edits
    2 moves in trunk/Source/JavaScriptCore

CodeBlock::prepareForExecution() is silly
https://bugs.webkit.org/show_bug.cgi?id=120453

Reviewed by Oliver Hunt.

Instead of saying:

codeBlock->prepareForExecution(stuff, BaselineJIT, more stuff)


we should just say:

JIT::compile(stuff, codeBlock, more stuff);


And similarly for the LLInt and DFG.

This kills a bunch of code, since CodeBlock::prepareForExecution() is just a
wrapper that uses the JITType argument to call into the appropriate execution
engine, which is what the user wanted to do in the first place.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:
  • bytecode/CodeBlock.h:
  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:

(JSC::DFG::tryCompile):

  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::globalWorklist):

  • dfg/DFGWorklist.h:
  • jit/JIT.cpp:

(JSC::JIT::privateCompile):

  • jit/JIT.h:

(JSC::JIT::compile):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • llint/LLIntEntrypoint.cpp: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.cpp.

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):
(JSC::LLInt::setEntrypoint):

  • llint/LLIntEntrypoint.h: Copied from Source/JavaScriptCore/llint/LLIntEntrypoints.h.
  • llint/LLIntEntrypoints.cpp: Removed.
  • llint/LLIntEntrypoints.h: Removed.
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::prepareForExecutionImpl):

12:15 PM Changeset in webkit [154832] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix slider thumb event handling to use local, not absolute coordinates
https://bugs.webkit.org/show_bug.cgi?id=120480

Reviewed by Darin Adler.

SliderThumbElement::setPositionFromPoint() did all of its coordinate
math by mapping renderer rects into absolute coordinates, which was
unnecessary and expensive.

Fix by doing all the math in the coordinate space of the input's
renderer. This simplified the code. Also, currentPosition
was computed but unused, so was removed.

No behavior change. Tested by fast/forms/range/slider-transformed.html

  • html/shadow/SliderThumbElement.cpp:

(WebCore::SliderThumbElement::setPositionFromPoint):

12:15 PM Changeset in webkit [154831] by Simon Fraser
  • 2 edits in trunk/Tools

Add a Command-R shortcut in MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=120442

Reviewed by Dean Jackson.

Add a "Reload Page" item to the View menu with a Command-R
shortcut.

  • MiniBrowser/mac/MainMenu.xib:
12:07 PM Changeset in webkit [154830] by zandobersek@gmail.com
  • 6 edits in trunk/Source

[Automake] libWebCoreDOM.la could use a better name
https://bugs.webkit.org/show_bug.cgi?id=120232

Reviewed by Martin Robinson.

Source/WebCore:

  • bindings/gobject/GNUmakefile.am: Rename the libWebCoreDOM library to libGObjectDOMBindings.

Source/WebKit/gtk:

  • GNUmakefile.am: libWebCoreDOM has a new name - libGObjectDOMBindings.

Source/WebKit2:

  • GNUmakefile.am: libWebCoreDOM has a new name - libGObjectDOMBindings.
11:58 AM Changeset in webkit [154829] by Joseph Pecoraro
  • 14 edits
    1 copy
    10 moves
    3 adds
    5 deletes in trunk/LayoutTests

Web Inspector: Consolidate inspector-protocol tests into domains
https://bugs.webkit.org/show_bug.cgi?id=120450

Reviewed by Timothy Hatcher.

Move around tests and clean them up in the process.

  • http/tests/inspector-protocol/resources/protocol-test.js:
  • inspector-protocol/css/getSupportedCSSProperties-expected.txt: Renamed from LayoutTests/inspector-protocol/css-getSupportedCSSProperties-expected.txt.
  • inspector-protocol/css/getSupportedCSSProperties.html: Renamed from LayoutTests/inspector-protocol/css-getSupportedCSSProperties.html.
  • inspector-protocol/dom/focus-expected.txt: Renamed from LayoutTests/inspector-protocol/dom-focus-expected.txt.
  • inspector-protocol/dom/focus.html: Renamed from LayoutTests/inspector-protocol/dom-focus.html.
  • inspector-protocol/dom/request-child-nodes-depth-expected.txt: Renamed from LayoutTests/inspector-protocol/dom-request-child-nodes-depth-expected.txt.
  • inspector-protocol/dom/request-child-nodes-depth.html: Renamed from LayoutTests/inspector-protocol/dom-request-child-nodes-depth.html.
  • inspector-protocol/heap-profiler/heap-snapshot-with-detached-dom-tree.html:
  • inspector-protocol/heap-profiler/heap-snapshot-with-event-listener.html:
  • inspector-protocol/heap-profiler/take-heap-snapshot.html:
  • inspector-protocol/nmi-webaudio-expected.txt: Removed.
  • inspector-protocol/nmi-webaudio-leak-test-expected.txt: Removed.
  • inspector-protocol/nmi-webaudio-leak-test.html: Removed.
  • inspector-protocol/nmi-webaudio.html: Removed.
  • inspector-protocol/page/frameScheduledNavigation.html:
  • inspector-protocol/page/frameStartedLoading.html:
  • inspector-protocol/page/resources/blank.html: Renamed from LayoutTests/inspector-protocol/resources/blank.html.
  • inspector-protocol/page/setEmulatedMedia-expected.txt: Renamed from LayoutTests/inspector-protocol/media-query-listener-exception-expected.txt.
  • inspector-protocol/page/setEmulatedMedia.html: Renamed from LayoutTests/inspector-protocol/media-query-listener-exception.html.
  • inspector-protocol/resources/audio-context.html: Removed.
  • inspector-protocol/runtime/getProperties-expected.txt: Renamed from LayoutTests/inspector-protocol/runtime-getProperties-expected.txt.
  • inspector-protocol/runtime/getProperties.html: Renamed from LayoutTests/inspector-protocol/runtime-getProperties.html.
  • platform/efl/TestExpectations:
  • platform/gtk-wk1/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/qt/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
11:58 AM Changeset in webkit [154828] by Joseph Pecoraro
  • 38 edits
    1 copy
    4 adds in trunk

Web Inspector: Download Web Archive of Inspected Page
https://bugs.webkit.org/show_bug.cgi?id=119774

Reviewed by Timothy Hatcher.

Source/WebCore:

Add PageAgent.archive which will return a Base-64 encoded web archive
when successful. In order to then allow saving non-string files, extend
InspectorFrontendHost.save to allow for Base-64 encoded data.

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::archive):

  • inspector/InspectorPageAgent.h:

Introduce and implement PageAgent.archive. Create a Web Archive of the
page's main frame.

  • inspector/InspectorFrontendClient.h:
  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::save):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::save):

  • inspector/InspectorFrontendHost.h:
  • inspector/InspectorFrontendHost.idl:

Extend InspectorFrontendHost.save to include a base64Encoded param.

  • inspector/front-end/FileManager.js:
  • inspector/front-end/InspectorFrontendHostStub.js:

(.WebInspector.InspectorFrontendHostStub.prototype.save):
Misc. updates to the old inspector for function changes.

Source/WebInspectorUI:

  • UserInterface/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._saveDataToFile):
Allow a custom save handler which will do all the work.

  • UserInterface/DOMTreeContentView.js:

(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.get supportsSave):
(WebInspector.DOMTreeContentView.prototype.get saveData.saveHandler):
(WebInspector.DOMTreeContentView.prototype.get saveData):
Allow Save keyboard shortcut to download an archive viewing the DOM Tree.

  • UserInterface/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype._updateStatus):

  • UserInterface/FrameTreeElement.js:

(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.updateStatusForMainFrame):
(WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders):
(WebInspector.FrameTreeElement.prototype._reloadPageClicked):
(WebInspector.FrameTreeElement.prototype._downloadButtonClicked):
(WebInspector.FrameTreeElement.prototype._updateDownloadButton):
(WebInspector.FrameTreeElement.prototype._pageArchiveStarted):
(WebInspector.FrameTreeElement.prototype._pageArchiveEnded):
Move handling of main frame TreeElement buttons to FrameTreeElement.
Add a Download button, and enable/disable it appropriately.

  • UserInterface/ResourceTreeElement.css:
  • UserInterface/TreeElementStatusButton.css: Copied from Source/WebInspectorUI/UserInterface/ResourceTreeElement.css.

(.item > .status > .status-button):
(.item > .status > .status-button > svg *):
(.item.selected > .status > .status-button > svg *):
(.item.selected > .status > .status-button:active > svg *):
(.item > .status > .status-button.disabled > svg *):
(.item.selected > .status > .status-button.disabled > svg *):

  • UserInterface/TreeElementStatusButton.js: Added.

(WebInspector.TreeElementStatusButton):
(WebInspector.TreeElementStatusButton.prototype.get element):
(WebInspector.TreeElementStatusButton.prototype.get hidden):
(WebInspector.TreeElementStatusButton.prototype.set hidden):
(WebInspector.TreeElementStatusButton.prototype.get enabled):
(WebInspector.TreeElementStatusButton.prototype.set enabled):
(WebInspector.TreeElementStatusButton.prototype._clicked):
Make buttons in the TreeElement status a generic class to share styling
and handling of the buttons. New "disabled" state with even more
transparent is used when the page is downloading.

  • UserInterface/Main.html:
  • UserInterface/Main.js:

(WebInspector.archiveMainFrame):
(WebInspector.canArchiveMainFrame):
Generic API for archiving the page and determining if you can archive it.

  • UserInterface/InspectorBackendCommands.js:
  • UserInterface/InspectorFrontendHostStub.js:

(.WebInspector.InspectorFrontendHostStub.prototype.save):

  • UserInterface/Images/DownloadArrow.svg: Added.
  • Localizations/en.lproj/localizedStrings.js:

Misc. updates and new files.

Source/WebKit/mac:

Update to support InspectorFrontendHost.save's new base64Encoded
parameter. It means the incoming content is binary data, not a string.

  • WebCoreSupport/WebInspectorClient.h:
  • WebCoreSupport/WebInspectorClient.mm:

(WebInspectorFrontendClient::save):

Source/WebKit2:

Update to support InspectorFrontendHost.save's new base64Encoded
parameter. It means the incoming content is binary data, not a string.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::save):

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/WebInspectorProxy.messages.in:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformSave):

  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::platformSave):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformSave):

  • UIProcess/qt/WebInspectorProxyQt.cpp:

(WebKit::WebInspectorProxy::platformSave):

  • WebProcess/WebCoreSupport/WebInspectorFrontendClient.cpp:

(WebKit::WebInspectorFrontendClient::save):

  • WebProcess/WebCoreSupport/WebInspectorFrontendClient.h:
  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::save):

  • WebProcess/WebPage/WebInspector.h:

LayoutTests:

  • inspector-protocol/page/archive-expected.txt: Added.
  • inspector-protocol/page/archive.html: Added.
11:43 AM Changeset in webkit [154827] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: fixed broken non-DFG build.
https://bugs.webkit.org/show_bug.cgi?id=120481.

Not reviewed.

  • interpreter/StackIterator.h:
11:38 AM Changeset in webkit [154826] by robert@webkit.org
  • 12 edits
    5 adds in trunk

Positioned Replaced Elements That Aren't RenderReplaced get Incorrect Width
https://bugs.webkit.org/show_bug.cgi?id=93735

Reviewed by David Hyatt.

Source/WebCore:

Replaced elements that aren't RenderReplaced aren't |isReplaced| and don't have an
intrinsic height or width. This causes them to go down the wrong height and width computation
path in RenderBox when they are absolute positioned.

The notion of |isReplaced| is entwined with the notion of being |isInline| so it isn't really
possible to make them isReplaced without re-wiring a lot of code. So instead use an ad-hoc definition
of isReplacedElement in RenderBox to bring all replaced elements into the height and width calculation.
To make sure we get the right height and width in there, give non-RenderReplaced replaced renderers
the helpers for returning their approximation of intrinsic height and width.

The initial attempt at landing this patch had to be rolled out because it used LayoutUnit() for default
intrinsic height of some replaced elements and this made the layout of the elements unstable in some sites.
The fix for this issue is captured in intrinsic-button-and-input-height.html.

Tests: fast/replaced/intrinsic-button-and-input-height.html

fast/replaced/width-and-height-of-positioned-replaced-elements.html

  • rendering/RenderBox.cpp:

(WebCore::isReplacedElement):
(WebCore::RenderBox::computePositionedLogicalWidth):
(WebCore::RenderBox::computePositionedLogicalHeight):

  • rendering/RenderBox.h:

(WebCore::RenderBox::intrinsicSize):

  • rendering/RenderButton.h:
  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::computePreferredLogicalWidths):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::RenderListBox):
(WebCore::RenderListBox::computePreferredLogicalWidths):
(WebCore::RenderListBox::computeLogicalHeight):

  • rendering/RenderListBox.h:
  • rendering/RenderMenuList.h:
  • rendering/RenderReplaced.h:
  • rendering/RenderSlider.cpp:

(WebCore::RenderSlider::computePreferredLogicalWidths):

  • rendering/RenderTextControl.cpp:

(WebCore::RenderTextControl::RenderTextControl):
(WebCore::RenderTextControl::computeLogicalHeight):

  • rendering/RenderTextControl.h:

LayoutTests:

  • fast/replaced/intrinsic-button-and-input-height-expected.txt: Added.
  • fast/replaced/intrinsic-button-and-input-height.html: Added.
  • fast/replaced/width-and-height-of-positioned-replaced-elements.html: Added.
  • platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.png: Added.
  • platform/qt/fast/replaced/width-and-height-of-positioned-replaced-elements-expected.txt: Added.
11:28 AM Changeset in webkit [154825] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Windows] Unreviewed gardening. Add missing *.css files from project.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
11:25 AM Changeset in webkit [154824] by fpizlo@apple.com
  • 35 edits
    4 adds
    2 deletes in trunk/Source/JavaScriptCore

CodeBlock compilation and installation should be simplified and rationalized
https://bugs.webkit.org/show_bug.cgi?id=120326

Reviewed by Oliver Hunt.

Rolling r154804 back in after fixing no-LLInt build.

Previously Executable owned the code for generating JIT code; you always had
to go through Executable. But often you also had to go through CodeBlock,
because ScriptExecutable couldn't have virtual methods, but CodeBlock could.
So you'd ask CodeBlock to do something, which would dispatch through a
virtual method that would select the appropriate Executable subtype's method.
This all meant that the same code would often be duplicated, because most of
the work needed to compile something was identical regardless of code type.
But then we tried to fix this, by having templatized helpers in
ExecutionHarness.h and JITDriver.h. The result was that if you wanted to find
out what happened when you asked for something to be compiled, you'd go on a
wild ride that started with CodeBlock, touched upon Executable, and then
ricocheted into either ExecutionHarness or JITDriver (likely both).

Another awkwardness was that for concurrent compiles, the DFG::Worklist had
super-special inside knowledge of what JITStubs.cpp's cti_optimize would have
done once the compilation finished.

Also, most of the DFG JIT drivers assumed that they couldn't install the
JITCode into the CodeBlock directly - instead they would return it via a
reference, which happened to be a reference to the JITCode pointer in
Executable. This was super weird.

Finally, there was no notion of compiling code into a special CodeBlock that
wasn't used for handling calls into an Executable. I'd like this for FTL OSR
entry.

This patch solves these problems by reducing all of that complexity into just
three primitives:

  • Executable::newCodeBlock(). This gives you a new code block, either for call or for construct, and either to serve as the baseline code or the optimized code. The new code block is then owned by the caller; Executable doesn't register it anywhere. The new code block has no JITCode and isn't callable, but it has all of the bytecode.


  • CodeBlock::prepareForExecution(). This takes the CodeBlock's bytecode and produces a JITCode, and then installs the JITCode into the CodeBlock. This method takes a JITType, and always compiles with that JIT. If you ask for JITCode::InterpreterThunk then you'll get JITCode that just points to the LLInt entrypoints. Once this returns, it is possible to call into the CodeBlock if you do so manually - but the Executable still won't know about it so JS calls to that Executable will still be routed to whatever CodeBlock is associated with the Executable.


  • Executable::installCode(). This takes a CodeBlock and makes it the code-for- entry for that Executable. This involves unlinking the Executable's last CodeBlock, if there was one. This also tells the GC about any effect on memory usage and does a bunch of weird data structure rewiring, since Executable caches some of CodeBlock's fields for the benefit of virtual call fast paths.


This functionality is then wrapped around three convenience methods:

  • Executable::prepareForExecution(). If there is no code block for that Executable, then one is created (newCodeBlock()), compiled (CodeBlock::prepareForExecution()) and installed (installCode()).


  • CodeBlock::newReplacement(). Asks the Executable for a new CodeBlock that can serve as an optimized replacement of the current one.


  • CodeBlock::install(). Asks the Executable to install this code block.


This patch allows me to kill *a lot* of code and to remove a lot of
specializations for functions vs. not-functions, and a lot of places where we
pass around JITCode references and such. ExecutionHarness and JITDriver are
both gone. Overall this patch has more red than green.

It also allows me to work on FTL OSR entry and tier-up:

  • FTL tier-up: this will involve DFGOperations.cpp asking the DFG::Worklist to do some compilation, but it will require the DFG::Worklist to do something different than what JITStubs.cpp would want, once the compilation finishes. This patch introduces a callback mechanism for that purpose.


  • FTL OSR entry: this will involve creating a special auto-jettisoned CodeBlock that is used only for FTL OSR entry. The new set of primitives allows for this: Executable can vend you a fresh new CodeBlock, and you can ask that CodeBlock to compile itself with any JIT of your choosing. Or you can take that CodeBlock and compile it yourself. Previously the act of producing a CodeBlock-for-optimization and the act of compiling code for it were tightly coupled; now you can separate them and you can create such auto-jettisoned CodeBlocks that are used for a one-shot OSR entry.
  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::prepareForExecutionImpl):
(JSC::CodeBlock::prepareForExecution):
(JSC::CodeBlock::prepareForExecutionAsynchronously):
(JSC::CodeBlock::install):
(JSC::CodeBlock::newReplacement):
(JSC::FunctionCodeBlock::jettisonImpl):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::hasBaselineJITProfiling):

  • bytecode/DeferredCompilationCallback.cpp: Added.

(JSC::DeferredCompilationCallback::DeferredCompilationCallback):
(JSC::DeferredCompilationCallback::~DeferredCompilationCallback):

  • bytecode/DeferredCompilationCallback.h: Added.
  • dfg/DFGDriver.cpp:

(JSC::DFG::tryCompile):

  • dfg/DFGDriver.h:

(JSC::DFG::tryCompile):

  • dfg/DFGFailedFinalizer.cpp:

(JSC::DFG::FailedFinalizer::finalize):
(JSC::DFG::FailedFinalizer::finalizeFunction):

  • dfg/DFGFailedFinalizer.h:
  • dfg/DFGFinalizer.h:
  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGJITFinalizer.h:
  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::notifyReady):
(JSC::DFG::Plan::finalizeWithoutNotifyingCallback):
(JSC::DFG::Plan::finalizeAndNotifyCallback):

  • dfg/DFGPlan.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::runThread):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalize):
(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:
  • heap/Heap.h:

(JSC::Heap::isDeferred):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITDriver.h: Removed.
  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):

  • jit/JITToDFGDeferredCompilationCallback.cpp: Added.

(JSC::JITToDFGDeferredCompilationCallback::JITToDFGDeferredCompilationCallback):
(JSC::JITToDFGDeferredCompilationCallback::~JITToDFGDeferredCompilationCallback):
(JSC::JITToDFGDeferredCompilationCallback::create):
(JSC::JITToDFGDeferredCompilationCallback::compilationDidBecomeReadyAsynchronously):
(JSC::JITToDFGDeferredCompilationCallback::compilationDidComplete):

  • jit/JITToDFGDeferredCompilationCallback.h: Added.
  • llint/LLIntEntrypoints.cpp:

(JSC::LLInt::setFunctionEntrypoint):
(JSC::LLInt::setEvalEntrypoint):
(JSC::LLInt::setProgramEntrypoint):

  • llint/LLIntEntrypoints.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/CommonSlowPaths.cpp:
  • runtime/CompilationResult.cpp:

(WTF::printInternal):

  • runtime/CompilationResult.h:
  • runtime/Executable.cpp:

(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):

  • runtime/Executable.h:

(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor):
(JSC::ExecutableBase::offsetOfNumParametersFor):
(JSC::ScriptExecutable::prepareForExecution):
(JSC::FunctionExecutable::jettisonOptimizedCodeFor):

  • runtime/ExecutionHarness.h: Removed.
11:01 AM Changeset in webkit [154823] by psolanki@apple.com
  • 3 edits in trunk/Source/WebCore

SharedBuffer m_segments and m_dataArray must be exclusive
https://bugs.webkit.org/show_bug.cgi?id=77715

Patch by Pratik Solanki <pratik.solanki@gmail.com> on 2013-08-29
Reviewed by Benjamin Poulain.

When USE(NETWORK_CFDATA_ARRAY_CALLBACK) is enabled, we use m_dataArray to hold the incoming
data. We do not use m_segments. Since they are exclusive in practice, do not define or use
m_segments when NETWORK_CFDATA_ARRAY_CALLBACK is enabled.

No new tests because no functional changes.

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::append):
(WebCore::SharedBuffer::clear):
(WebCore::SharedBuffer::copy):
(WebCore::SharedBuffer::buffer):
(WebCore::SharedBuffer::getSomeData):

  • platform/SharedBuffer.h:
10:54 AM Changeset in webkit [154822] by commit-queue@webkit.org
  • 8 edits
    7 moves
    1 add in trunk/LayoutTests

Web Inspector: Consolidate inspector-protocol Debugger tests
https://bugs.webkit.org/show_bug.cgi?id=120449

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2013-08-29
Reviewed by Timothy Hatcher.

Move the tests, and clean-up their syntax a bit to be more
consistent, readable, and compact.

  • inspector-protocol/debugger/column-breakpoint.html:
  • inspector-protocol/debugger/pause-dedicated-worker-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-pause-dedicated-worker-expected.txt.
  • inspector-protocol/debugger/pause-dedicated-worker.html: Renamed from LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html.
  • inspector-protocol/debugger/resources/dedicated-worker.js: Renamed from LayoutTests/inspector-protocol/resources/dedicated-worker.js.
  • inspector-protocol/debugger/setVariableValue-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-setVariableValue-expected.txt.
  • inspector-protocol/debugger/setVariableValue.html: Renamed from LayoutTests/inspector-protocol/debugger-setVariableValue.html.
  • inspector-protocol/debugger/terminate-dedicated-worker-while-paused-expected.txt: Renamed from LayoutTests/inspector-protocol/debugger-terminate-dedicated-worker-while-paused-expected.txt.
  • inspector-protocol/debugger/terminate-dedicated-worker-while-paused.html: Renamed from LayoutTests/inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/qt/TestExpectations:
  • platform/win/TestExpectations:
  • platform/wincairo/TestExpectations:
10:41 AM Changeset in webkit [154821] by mark.lam@apple.com
  • 9 edits
    1 delete in trunk/Source/JavaScriptCore

Change StackIterator to not require writes to the JS stack.
https://bugs.webkit.org/show_bug.cgi?id=119657.

Reviewed by Geoffrey Garen.

  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • interpreter/CallFrame.h:
  • Removed references to StackIteratorPrivate.h.
  • interpreter/StackIterator.cpp:

(JSC::StackIterator::numberOfFrames):
(JSC::StackIterator::gotoFrameAtIndex):
(JSC::StackIterator::gotoNextFrame):
(JSC::StackIterator::resetIterator):
(JSC::StackIterator::find):
(JSC::StackIterator::readFrame):
(JSC::StackIterator::readNonInlinedFrame):

  • Reads in the current CallFrame's data for non-inlined frames.

(JSC::inlinedFrameOffset):

  • Convenience function to compute the inlined frame offset based on the CodeOrigin. If the offset is 0, then we're looking at the physical frame. Otherwise, it's an inlined frame.

(JSC::StackIterator::readInlinedFrame):

  • Determines the inlined frame's caller frame. Will read in the caller frame if it is also an inlined frame i.e. we haven't reached the outer most frame yet. Otherwise, will call readNonInlinedFrame() to read on the outer most frame. This is based on the old StackIterator::Frame::logicalFrame().

(JSC::StackIterator::updateFrame):

  • Reads the data of the caller frame of the current one. This function is renamed and moved from the old StackIterator::Frame::logicalCallerFrame(), but is now simplified because it delegates to the readInlinedFrame() to get the caller for inlined frames.

(JSC::StackIterator::Frame::arguments):

  • Fixed to use the inlined frame versions of Arguments::create() and Arguments::tearOff() when the frame is an inlined frame.

(JSC::StackIterator::Frame::print):
(debugPrintCallFrame):
(debugPrintStack):

  • Because sometimes, we want to see the whole stack while debugging.
  • interpreter/StackIterator.h:

(JSC::StackIterator::Frame::argumentCount):
(JSC::StackIterator::Frame::callerFrame):
(JSC::StackIterator::Frame::callee):
(JSC::StackIterator::Frame::scope):
(JSC::StackIterator::Frame::codeBlock):
(JSC::StackIterator::Frame::bytecodeOffset):
(JSC::StackIterator::Frame::inlinedFrameInfo):
(JSC::StackIterator::Frame::isJSFrame):
(JSC::StackIterator::Frame::isInlinedFrame):
(JSC::StackIterator::Frame::callFrame):
(JSC::StackIterator::Frame::Frame):
(JSC::StackIterator::Frame::~Frame):

  • StackIterator::Frame now caches commonly used accessed values from the CallFrame. It still delegates argument queries to the CallFrame.

(JSC::StackIterator::operator*):
(JSC::StackIterator::operator->):
(JSC::StackIterator::operator!=):
(JSC::StackIterator::operator++):
(JSC::StackIterator::end):
(JSC::StackIterator::operator==):

  • interpreter/StackIteratorPrivate.h: Removed.
10:35 AM Changeset in webkit [154820] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

[iOS] Upstream changes to WebCore/style
https://bugs.webkit.org/show_bug.cgi?id=120173

Reviewed by Darin Adler.

  • style/StyleResolveTree.cpp:

(WebCore::Style::elementImplicitVisibility): Added; specific to iOS.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::CheckForVisibilityChangeOnRecalcStyle): Added; specific to iOS.
(WebCore::Style::CheckForVisibilityChangeOnRecalcStyle::~CheckForVisibilityChangeOnRecalcStyle): Added; specific to iOS.
(WebCore::Style::resolveTree): Modified to instantiate CheckForVisibilityChangeOnRecalcStyle when building on iOS.

10:23 AM Changeset in webkit [154819] by a.renevier@samsung.com
  • 12 edits in trunk/Source

[cairo] canvas drawing on itself doesn't work with accelerated canvas
https://bugs.webkit.org/show_bug.cgi?id=118808

Reviewed by Martin Robinson.

Source/WebCore:

When copying an accelerated image, we try to get its dimensions with
cairo_image_surface_get_width/cairo_image_surface_get_height. As
surface is not an image, this returns width and height of 0.

Many other places use cairo_image_surface_get although the surface may
be a gl surface.

This patch fixes those issues by implementing a cairoSurfaceSize
helper that returns the surface size whatever type it is.

It use cairo_surface_create_similar instead of
cairo_image_surface_create in copyCairoImageSurface. It also calls
cairo_paint in encodeImage when a drawing over a black background is
needed.

It copies the surface to an image surface if needed in extractImage.

No new tests. Covered by existing tests.

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::draw):
(WebCore::BitmapImage::checkForSolidColor):

  • platform/graphics/cairo/CairoUtilities.cpp:

(WebCore::copyCairoImageSurface):
(WebCore::cairoSurfaceSize):

  • platform/graphics/cairo/CairoUtilities.h:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

  • platform/graphics/gtk/GdkCairoUtilities.cpp:

(cairoSurfaceToGdkPixbuf):

  • platform/graphics/gtk/GdkCairoUtilities.h:
  • platform/graphics/gtk/ImageBufferGtk.cpp:

(WebCore::encodeImage):

  • platform/graphics/gtk/ImageGtk.cpp:

(WebCore::BitmapImage::getGdkPixbuf):

  • platform/gtk/DragIcon.cpp:

(WebCore::DragIcon::setImage):

Source/WebKit/gtk:

Change cairoImageSurfaceToGdkPixbuf to cairoSurfaceToGdkPixbuf.

  • webkit/webkitfavicondatabase.cpp:

(getIconPixbufSynchronously):

10:22 AM Changeset in webkit [154818] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] [WK2] TestWebKitWebView page-visibility fails
https://bugs.webkit.org/show_bug.cgi?id=120406

Patch by Brian Holt <brian.holt@samsung.com> on 2013-08-29
Reviewed by Gustavo Noronha Silva.

Removed the webkit prefix for document visibility properties.

  • UIProcess/API/gtk/tests/TestWebKitWebView.cpp:

(testWebViewPageVisibility):

10:03 AM Changeset in webkit [154817] by commit-queue@webkit.org
  • 11 edits in trunk

Source/JavaScriptCore: VM::throwException() crashes reproducibly in testapi with !ENABLE(JIT)
https://bugs.webkit.org/show_bug.cgi?id=120472

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-29
Reviewed by Filip Pizlo.

With the JIT disabled, interpreterThrowInCaller was attempting to throw an error,
but the topCallFrame was not set yet. By passing the error object into interpreterThrowInCaller
throwException can be called when topCallFrame is set.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPathsExceptions.cpp:

(JSC::CommonSlowPaths::interpreterThrowInCaller):

  • runtime/CommonSlowPathsExceptions.h:

Renamed genericThrow -> genericUnwind, because this function no longer has the ability
to throw errors. It unwinds the stack in order to report them.

  • dfg/DFGOperations.cpp:
  • jit/JITExceptions.cpp:

(JSC::genericUnwind):
(JSC::jitThrowNew):
(JSC::jitThrow):

  • jit/JITExceptions.h:
  • llint/LLIntExceptions.cpp:

(JSC::LLInt::doThrow):

LayoutTests: VM::throwException() crashes reproducibly in testapi with !ENABLE(JIT)
https://bugs.webkit.org/show_bug.cgi?id=120472

Patch by Chris Curtis <chris_curtis@apple.com> on 2013-08-29
Reviewed by Filip Pizlo.
An error that was not being reported before is now caught and being reported.

  • media/track/track-cue-rendering-on-resize-expected.txt:
9:56 AM Changeset in webkit [154816] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[Windows] Unreviewed build fix after r154809

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: Remove two no-longer-existing

export symbols.

9:41 AM Changeset in webkit [154815] by simon.pena@samsung.com
  • 20 edits in trunk/LayoutTests

Follow-up to r154810 and r154810: Missing tests and fix one misplaced call to setCaptionDisplayMode
https://bugs.webkit.org/show_bug.cgi?id=120474

Reviewed by Eric Carlson.

I previously used a regular expression that didn't catch all the tests needing this
update. Additionally, in one of them I put the setCaptionDisplayMode in the wrong place,
before the function was defined by video-test.js. This new patch addresses all of that.

  • media/track/media-element-enqueue-event-crash.html:
  • media/track/regions-webvtt/text-track-cue-region-attribute.html:
  • media/track/regions-webvtt/text-track-region-parser.html:
  • media/track/track-add-remove-cue.html:
  • media/track/track-cue-mutable-fragment.html:
  • media/track/track-cue-mutable-text.html:
  • media/track/track-cue-mutable.html:
  • media/track/track-cue-negative-timestamp.html:
  • media/track/track-cue-rendering-on-resize.html:
  • media/track/track-cues-cuechange.html:
  • media/track/track-cues-enter-exit.html:
  • media/track/track-cues-missed.html:
  • media/track/track-cues-pause-on-exit.html:
  • media/track/track-cues-seeking.html:
  • media/track/track-cues-sorted-before-dispatch.html:
  • media/track/track-default-attribute.html:
  • media/track/track-load-from-element-readyState.html:
  • media/track/track-mode-disabled-crash.html:
  • media/track/track-remove-quickly.html:
9:41 AM Changeset in webkit [154814] by commit-queue@webkit.org
  • 35 edits
    2 adds
    4 deletes in trunk/Source/JavaScriptCore

Unreviewed, rolling out r154804.
http://trac.webkit.org/changeset/154804
https://bugs.webkit.org/show_bug.cgi?id=120477

Broke Windows build (assumes LLInt features not enabled on
this build) (Requested by bfulgham on #webkit).

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::linkIncomingCall):
(JSC::CodeBlock::unlinkIncomingCalls):
(JSC::CodeBlock::reoptimize):
(JSC::ProgramCodeBlock::replacement):
(JSC::EvalCodeBlock::replacement):
(JSC::FunctionCodeBlock::replacement):
(JSC::ProgramCodeBlock::compileOptimized):
(JSC::ProgramCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::EvalCodeBlock::compileOptimized):
(JSC::EvalCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::FunctionCodeBlock::compileOptimized):
(JSC::FunctionCodeBlock::replaceWithDeferredOptimizedCode):
(JSC::ProgramCodeBlock::jitCompileImpl):
(JSC::EvalCodeBlock::jitCompileImpl):
(JSC::FunctionCodeBlock::jitCompileImpl):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::jitType):
(JSC::CodeBlock::jitCompile):

  • bytecode/DeferredCompilationCallback.cpp: Removed.
  • bytecode/DeferredCompilationCallback.h: Removed.
  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
(JSC::DFG::tryFinalizePlan):

  • dfg/DFGDriver.h:

(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):
(JSC::DFG::tryFinalizePlan):

  • dfg/DFGFailedFinalizer.cpp:

(JSC::DFG::FailedFinalizer::finalize):
(JSC::DFG::FailedFinalizer::finalizeFunction):

  • dfg/DFGFailedFinalizer.h:
  • dfg/DFGFinalizer.h:
  • dfg/DFGJITFinalizer.cpp:

(JSC::DFG::JITFinalizer::finalize):
(JSC::DFG::JITFinalizer::finalizeFunction):

  • dfg/DFGJITFinalizer.h:
  • dfg/DFGOSRExitPreparation.cpp:

(JSC::DFG::prepareCodeOriginForOSRExit):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::finalize):

  • dfg/DFGPlan.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::runThread):

  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalize):
(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLJITFinalizer.h:
  • heap/Heap.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):

  • jit/JITDriver.h: Added.

(JSC::jitCompileIfAppropriateImpl):
(JSC::jitCompileFunctionIfAppropriateImpl):
(JSC::jitCompileIfAppropriate):
(JSC::jitCompileFunctionIfAppropriate):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):

  • jit/JITToDFGDeferredCompilationCallback.cpp: Removed.
  • jit/JITToDFGDeferredCompilationCallback.h: Removed.
  • llint/LLIntEntrypoints.cpp:

(JSC::LLInt::getFunctionEntrypoint):
(JSC::LLInt::getEvalEntrypoint):
(JSC::LLInt::getProgramEntrypoint):

  • llint/LLIntEntrypoints.h:

(JSC::LLInt::getEntrypoint):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::setUpCall):

  • runtime/ArrayPrototype.cpp:

(JSC::isNumericCompareFunction):

  • runtime/CommonSlowPaths.cpp:
  • runtime/CompilationResult.cpp:

(WTF::printInternal):

  • runtime/CompilationResult.h:
  • runtime/Executable.cpp:

(JSC::EvalExecutable::compileOptimized):
(JSC::EvalExecutable::jitCompile):
(JSC::EvalExecutable::compileInternal):
(JSC::EvalExecutable::replaceWithDeferredOptimizedCode):
(JSC::ProgramExecutable::compileOptimized):
(JSC::ProgramExecutable::jitCompile):
(JSC::ProgramExecutable::compileInternal):
(JSC::ProgramExecutable::replaceWithDeferredOptimizedCode):
(JSC::FunctionExecutable::compileOptimizedForCall):
(JSC::FunctionExecutable::compileOptimizedForConstruct):
(JSC::FunctionExecutable::jitCompileForCall):
(JSC::FunctionExecutable::jitCompileForConstruct):
(JSC::FunctionExecutable::produceCodeBlockFor):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeForCall):
(JSC::FunctionExecutable::compileForConstructInternal):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeForConstruct):

  • runtime/Executable.h:

(JSC::ExecutableBase::offsetOfJITCodeWithArityCheckFor):
(JSC::ExecutableBase::offsetOfNumParametersFor):
(JSC::ExecutableBase::catchRoutineFor):
(JSC::EvalExecutable::compile):
(JSC::ProgramExecutable::compile):
(JSC::FunctionExecutable::compileForCall):
(JSC::FunctionExecutable::compileForConstruct):
(JSC::FunctionExecutable::compileFor):
(JSC::FunctionExecutable::compileOptimizedFor):
(JSC::FunctionExecutable::replaceWithDeferredOptimizedCodeFor):
(JSC::FunctionExecutable::jitCompileFor):

  • runtime/ExecutionHarness.h: Added.

(JSC::prepareForExecutionImpl):
(JSC::prepareFunctionForExecutionImpl):
(JSC::installOptimizedCode):
(JSC::prepareForExecution):
(JSC::prepareFunctionForExecution):
(JSC::replaceWithDeferredOptimizedCode):

9:20 AM Changeset in webkit [154813] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Buildfix after r154806 for !ENABLE(CSS_REGIONS) platforms.
https://bugs.webkit.org/show_bug.cgi?id=120461

Patch by Tamas Czene <tczene@inf.u-szeged.hu> on 2013-08-29
Reviewed by Csaba Osztrogonác.

moveToFlowThreadIfNeeded() is used only inside of ENABLE(CSS_REGIONS)
block (and only once), so it should be guarded too.

  • style/StyleResolveTree.cpp:
8:47 AM Changeset in webkit [154812] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

BUILD FIX (r154778): AXSearchFieldCancelButtonText() is not defined on iOS

See: AX: Cancel button in search field not accessible.
<https://webkit.org/b/120322>

Fixes the following build error:

In file included from Source/WebCore/accessibility/AccessibilityAllInOne.cpp:44:
Source/WebCore/accessibility/AccessibilitySearchFieldButtons.cpp:46:12: error: use of undeclared identifier 'AXSearchFieldCancelButtonText'

return AXSearchFieldCancelButtonText();


1 error generated.

  • accessibility/AccessibilitySearchFieldButtons.cpp:

(WebCore::AccessibilitySearchFieldCancelButton::accessibilityDescription):
Return String() instead of calling AXSearchFieldCancelButtonText() on iOS.

8:32 AM Changeset in webkit [154811] by simon.pena@samsung.com
  • 6 edits in trunk/LayoutTests

[GTK] Unreviewed gardening. Rebaselining after r154479 and r154702

  • platform/gtk/editing/deleting/delete-br-004-expected.txt: Rebaseline after r154479.
  • platform/gtk/editing/deleting/delete-br-005-expected.txt: Ditto.
  • platform/gtk/editing/deleting/delete-br-006-expected.txt: Ditto.
  • platform/gtk/editing/selection/5057506-2-expected.txt: Rebaseline after r154702.
  • platform/gtk/editing/selection/5057506-expected.txt: Ditto.
7:40 AM Changeset in webkit [154810] by simon.pena@samsung.com
  • 16 edits in trunk/LayoutTests

Add setCaptionDisplayMode('Automatic') to remaining tests with track 'default' attribute after r154527
https://bugs.webkit.org/show_bug.cgi?id=120471

Reviewed by Eric Carlson.

As done in r154527, some LayoutTests with track 'default' attribute
need the caption mode set to automatic.

  • media/track/track-css-all-cues.html:
  • media/track/track-css-cue-lifetime.html:
  • media/track/track-css-matching-default.html:
  • media/track/track-css-matching-lang.html:
  • media/track/track-css-matching-timestamps.html:
  • media/track/track-css-matching.html:
  • media/track/track-css-property-whitelist.html:
  • media/track/track-css-user-override.html:
  • media/track/track-cue-container-rendering-position.html:
  • media/track/track-cue-nothing-to-render.html:
  • media/track/track-cue-rendering-on-resize.html:
  • media/track/track-cue-rendering-rtl.html:
  • media/track/track-cue-rendering-snap-to-lines-not-set.html:
  • media/track/track-cue-rendering-with-padding.html:
  • media/track/track-cue-rendering.html:
7:04 AM WebKitGTK/Chroot edited by eocanha@igalia.com
(diff)
7:02 AM Changeset in webkit [154809] by Antti Koivisto
  • 18 edits
    2 deletes in trunk/Source/WebCore

Remove NodeRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=120466

Reviewed by Andreas Kling.

Switch the few remaining clients of this class to call the underlying code directly.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.exp.in:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.xcodeproj/project.pbxproj:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::initForStyleResolve):

  • dom/DOMAllInOne.cpp:
  • dom/Node.cpp:
  • dom/Node.h:


Remove Node::parentNodeForRenderingAndStyle(). Make clients invoke NodeRenderingTraversal::parent() directly.

  • dom/NodeRenderingContext.cpp: Removed.
  • dom/NodeRenderingContext.h: Removed.
  • dom/ShadowRoot.h:
  • dom/Text.cpp:
  • dom/Text.h:
  • dom/TreeScope.cpp:
  • dom/TreeScope.h:


Remove virtual TreeScope::resetStyleInheritance. Make clients cast to ShadowRoot when needed.

  • html/HTMLSummaryElement.cpp:

(WebCore::HTMLSummaryElement::detailsElement):

  • style/StyleResolveTree.cpp:

(WebCore::Style::createTextRendererIfNeeded):

For consistency switch resetStyleInheritance check to use parentNode() instead of renderingParentNode. This matches the NodeRenderingTraversal implementation.
This difference is probably not testable in current trunk.

(WebCore::Style::resolveTree):

6:41 AM Changeset in webkit [154808] by g.czajkowski@samsung.com
  • 2 edits in trunk/LayoutTests

[GTK] Skip grammar checking tests.
Unreviewed gardening after r154675.

  • platform/gtk/TestExpectations:

Skip failing tests after r154675 until GTK+ implements
grammar checking feature.

5:35 AM Changeset in webkit [154807] by berto@igalia.com
  • 2 edits in trunk/Tools

[GTK] Update apt dependency list
https://bugs.webkit.org/show_bug.cgi?id=120399

Reviewed by Philippe Normand.

Remove bogus package gail-3.0, add xfonts-utils (needed by
xorg-xserver) and switch to the latest versions of libtiff and
libjpeg.

  • gtk/install-dependencies:
5:25 AM Changeset in webkit [154806] by Antti Koivisto
  • 9 edits in trunk/Source/WebCore

Move element renderer creation out of NodeRenderingContext
https://bugs.webkit.org/show_bug.cgi?id=120461

Reviewed by Andreas Kling.

Move NodeRenderingContext::createRendererIfNeeded() and the related utility functions to StyleResolveTree.

Tighten typing and constness. Refactor sligthly to be more understandable.

  • dom/Element.cpp:

(WebCore::Element::shouldMoveToFlowThread):

  • dom/Element.h:
  • dom/NodeRenderingContext.cpp:

(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):

  • dom/NodeRenderingContext.h:
  • dom/PseudoElement.h:
  • style/StyleResolveTree.cpp:

(WebCore::Style::nextSiblingRenderer):
(WebCore::Style::shouldCreateRenderer):
(WebCore::Style::elementInsideRegionNeedsRenderer):
(WebCore::Style::moveToFlowThreadIfNeeded):
(WebCore::Style::createRendererIfNeeded):
(WebCore::Style::attachRenderTree):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::shouldMoveToFlowThread):

  • svg/SVGElement.h:
Note: See TracTimeline for information about the timeline view.