Timeline
Sep 2, 2013:
- 11:06 PM Changeset in webkit [154969] by
-
- 6 edits24 copies in branches/safari-537-branch
Merged r154785. <rdar://problem/14664586>
- 11:02 PM Changeset in webkit [154968] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 1 edit1 add in trunk/Source/WTF
Actually add Ref.h
- 11:55 AM Changeset in webkit [154963] by
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 2 edits in trunk/LayoutTests
[Qt] Unreviewed gardening. Skip some failing tests.
- platform/qt/TestExpectations:
- 8:12 AM Changeset in webkit [154955] by
-
- 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
-
- 6 edits4 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
-
- 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
-
- 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
-
- 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
-
- 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
-
- 9 edits4 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
-
- 8 edits9 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
-
- 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
-
- 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
-
- 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
-
- 7 edits2 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
-
- 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
-
- 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
-
- 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
-
- 13 edits1 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):