WebKit-https.git
7 years agoOccasional assertion failure under recommendedScrollbarStyleDidChange()
timothy_horton@apple.com [Tue, 11 Nov 2014 21:39:46 +0000 (21:39 +0000)]
Occasional assertion failure under recommendedScrollbarStyleDidChange()
https://bugs.webkit.org/show_bug.cgi?id=138604
<rdar://problem/18855914>

Reviewed by Beth Dakin.

It is possible for AppKit to install tracking areas into our view
behind our back, but we have code that depends on knowing exactly
the set of tracking areas installed on WKView.

Make this more robust by keeping a reference to the tracking area we
use for many things and manipulating that instead of making assumptions
about the total set of tracking areas on WKView.

* UIProcess/API/mac/WKView.mm:
(-[WKView _primaryTrackingArea]):
(-[WKView _replacePrimaryTrackingArea:]):
Provide a 'primary' tracking area setter/getter.

(-[WKView initWithFrame:context:configuration:webView:]):
Keep a reference to the original tracking area installed at initialization time.

* UIProcess/API/mac/WKViewInternal.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::recommendedScrollbarStyleDidChange):
Instead of walking the set of tracking areas, make use of the fact that
we know exactly which tracking area we installed, and uninstall just that
one, and replace it with our newly-built one.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175973 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFinish moving CTFontGetVerticalGlyphsForCharacters and CTLineCreateWithUniCharProvide...
mmaxfield@apple.com [Tue, 11 Nov 2014 21:37:03 +0000 (21:37 +0000)]
Finish moving CTFontGetVerticalGlyphsForCharacters and CTLineCreateWithUniCharProvider out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138623

Reviewed by Geoff Garen.

Source/WebCore:

No new tests because there is no behavior change.

* WebCore.exp.in:
* WebCore.order:
* platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
(WebCore::GlyphPage::fill):
* platform/graphics/mac/SimpleFontDataMac.mm:
(WebCore::SimpleFontData::canRenderCombiningCharacterSequence):
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/spi/cocoa/CoreTextSPI.h:

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebKit.order:

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175972 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed Mountain Lion build fix
mmaxfield@apple.com [Tue, 11 Nov 2014 21:21:45 +0000 (21:21 +0000)]
Unreviewed Mountain Lion build fix

* platform/spi/cocoa/CoreTextSPI.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175971 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r175852.
commit-queue@webkit.org [Tue, 11 Nov 2014 21:13:59 +0000 (21:13 +0000)]
Unreviewed, rolling out r175852.
https://bugs.webkit.org/show_bug.cgi?id=138626

Broke PLT by introducing a crash. (Requested by rniwa on
#webkit).

Reverted changeset:

"Lazily create HTMLInputElement's inputType and shadow
subtree"
https://bugs.webkit.org/show_bug.cgi?id=138524
http://trac.webkit.org/changeset/175852

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175970 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd a respondsToSelector check to dismissActionMenuPopovers
timothy_horton@apple.com [Tue, 11 Nov 2014 20:56:20 +0000 (20:56 +0000)]
Add a respondsToSelector check to dismissActionMenuPopovers
​https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>

Reviewed by Beth Dakin.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController dismissActionMenuPopovers]):
Avoid calling this wherever it doesn't exist.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175969 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRegression(r175947): Caused assertions in debug builds
cdumez@apple.com [Tue, 11 Nov 2014 20:41:50 +0000 (20:41 +0000)]
Regression(r175947): Caused assertions in debug builds
https://bugs.webkit.org/show_bug.cgi?id=138620

Reviewed by Benjamin Poulain.

In HTMLCollection::traverseForward(), traversedCount was incremented 1
time too many when hitting the end of the collection (i.e. element
becomes null). Doing a partial revert.

No new tests, already covered by existing tests.

* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::traverseForward):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoHandle cases in StackVisitor::Frame::existingArguments() when lexicalEnvironment...
commit-queue@webkit.org [Tue, 11 Nov 2014 20:36:11 +0000 (20:36 +0000)]
Handle cases in StackVisitor::Frame::existingArguments() when lexicalEnvironment and/or unmodifiedArgumentsRegister is not set up yet
https://bugs.webkit.org/show_bug.cgi?id=138543

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-11
Reviewed by Geoffrey Garen.

Exception fuzzing may may raise exceptions in places where they would be
otherwise impossible. Therefore, a callFrame may lack activation even if
the codeBlock signals need of activation. Also, even if codeBlock
signals the use of arguments, the unmodifiedArgumentsRegister may not be
initialized yet (neither locally nor in lexicalEnvironment).

If codeBlock()->needsActivation() is false, unmodifiedArgumentsRegister
is already checked for Undefined. This patch applies the same check when
the condition is true (and also checks whether
callFrame()->hasActivation()).

* interpreter/CallFrame.h:
(JSC::ExecState::hasActivation):
Moved to interpreter/CallFrameInlines.h.
* interpreter/CallFrameInlines.h:
(JSC::CallFrame::hasActivation):
Fixed to verify that the JSValue returned by uncheckedActivation() is a
cell.
* interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::existingArguments):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175967 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDataDetectors' menu items aren't presented in the telephone number menu
timothy_horton@apple.com [Tue, 11 Nov 2014 20:12:02 +0000 (20:12 +0000)]
DataDetectors' menu items aren't presented in the telephone number menu
https://bugs.webkit.org/show_bug.cgi?id=138602
<rdar://problem/18866308>

Reviewed by Beth Dakin.

We currently round-trip the DataDetectors telephone number NSMenuItems
through the very-lossy WebContextMenuItemData, for no real reason.
We should avoid this so that DataDetectors' actual NSMenuItems are
presented in the final menu, so that they can adjust their items after
providing them to us.

* Platform/mac/MenuUtilities.h:
* Platform/mac/MenuUtilities.mm:
(WebKit::menuItemTitleForTelephoneNumber): Deleted.
Stop adjusting the menu item titles, as they come correct now.

(WebKit::menuItemsForTelephoneNumber): Deleted.
(WebKit::menuForTelephoneNumber):
Return a fully-formed menu for the single telephone number case.

* UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu):
Present the fully-formed menu, without round-tripping through
WebContextMenuItemData, because we do not need to hand the items to
the context menu client (and indeed, were not), and because this
allows us to use the exact items returned by DataDetectors, so they
can keep ahold of the items that we actually present.

* UIProcess/PageClient.h:
* UIProcess/mac/PageClientImpl.h:
* UIProcess/mac/PageClientImpl.mm:
(WebKit::PageClientImpl::showPlatformContextMenu):
Add a Mac-only PageClient function for presenting a NSMenu at a
WKView-relative point.

* English.lproj/Localizable.strings:
Remove a now-unused localized string.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175966 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Frame Flattening] ASSERT(transaction->view == &view()) fails in RenderBlock::removeF...
dbates@webkit.org [Tue, 11 Nov 2014 19:38:37 +0000 (19:38 +0000)]
[Frame Flattening] ASSERT(transaction->view == &view()) fails in RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction()
https://bugs.webkit.org/show_bug.cgi?id=138615
<rdar://problem/18928487>

Reviewed by David Hyatt.

Source/WebCore:

Fixes an issue where we always expected that the RenderView associated with the RenderBlock called in
RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction() is the same as the RenderView associated with
the top transaction in the UpdateScrollInfoAfterLayoutTransaction stack regardless of frame flattening. This
expectation is only true when frame flattening is disabled.

Test: fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update.html

* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction):

LayoutTests:

Add a test that causes an assertion failure in affected builds.

* fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update-expected.txt: Added.
* fast/frames/flattening/iframe-flattening-inside-flexbox-with-delayed-scroll-update.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175965 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdopt DDActionContext menu type SPI
timothy_horton@apple.com [Tue, 11 Nov 2014 19:18:58 +0000 (19:18 +0000)]
Adopt DDActionContext menu type SPI
https://bugs.webkit.org/show_bug.cgi?id=138603
<rdar://problem/18867627>

Reviewed by Anders Carlsson.

* platform/spi/mac/DataDetectorsSPI.h:
Add the new SPI.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _defaultMenuItemsForDataDetectedText]):
Use the new SPI instead of WKSI.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175964 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoData Detectors popovers should be dismissed upon scrolling
timothy_horton@apple.com [Tue, 11 Nov 2014 19:17:11 +0000 (19:17 +0000)]
Data Detectors popovers should be dismissed upon scrolling
https://bugs.webkit.org/show_bug.cgi?id=138600
<rdar://problem/18932770>

Reviewed by Beth Dakin.

* platform/spi/mac/DataDetectorsSPI.h:
Adjust the SPI header.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController prepareForMenu:withEvent:]):
Dismiss popovers when we start preparing another menu.

(-[WKActionMenuController dismissActionMenuPopovers]):
Use the new DataDetectors SPI.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175963 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoLocalize strings for action menus
timothy_horton@apple.com [Tue, 11 Nov 2014 19:14:07 +0000 (19:14 +0000)]
Localize strings for action menus
https://bugs.webkit.org/show_bug.cgi?id=138591
<rdar://problem/18815343>

Reviewed by Dan Bates.

* English.lproj/Localizable.strings:
Add a bunch of localizable strings.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
Make use of the new strings.

* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController _showTextIndicator]):
(-[WKActionMenuController _hideTextIndicator]):
(-[WKActionMenuController _createActionMenuItemForTag:]):
Make use of the new strings.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175962 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCleanup from r175379
mmaxfield@apple.com [Tue, 11 Nov 2014 19:13:06 +0000 (19:13 +0000)]
Cleanup from r175379
https://bugs.webkit.org/show_bug.cgi?id=138616

Reviewed by Simon Fraser.

Source/WebCore:

No new tests because there is no behavior change.

* WebCore.exp.in:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebKit.order:

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175961 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove CTFontTransformGlyphs out from WKSI
mmaxfield@apple.com [Tue, 11 Nov 2014 18:59:53 +0000 (18:59 +0000)]
Move CTFontTransformGlyphs out from WKSI
https://bugs.webkit.org/show_bug.cgi?id=138599

Reviewed by Simon Fraser.

Source/WebCore:

No new tests because there is no behavior change.

* WebCore.exp.in:
* WebCore.order:
* platform/graphics/SimpleFontData.cpp:
(WebCore::SimpleFontData::applyTransforms):
* platform/graphics/SimpleFontData.h:
* platform/ios/WebCoreSystemInterfaceIOS.mm:
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:
* platform/spi/cocoa/CoreTextSPI.h:

Source/WebKit/mac:

* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebKit.order:

Source/WebKit2:

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* mac/WebKit2.order:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175960 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMore iOS build fix.
mitz@apple.com [Tue, 11 Nov 2014 18:17:38 +0000 (18:17 +0000)]
More iOS build fix.

* WebView/WebHTMLViewInternal.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175956 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoiOS build fix.
mitz@apple.com [Tue, 11 Nov 2014 17:59:03 +0000 (17:59 +0000)]
iOS build fix.

* WebView/WebHTMLView.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175954 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse std::unique_ptr<>|std::make_unique_ptr in RenderThemeEfl::ThemePartCacheEntry...
gyuyoung.kim@samsung.com [Tue, 11 Nov 2014 17:53:32 +0000 (17:53 +0000)]
Use std::unique_ptr<>|std::make_unique_ptr in RenderThemeEfl::ThemePartCacheEntry::create()
https://bugs.webkit.org/show_bug.cgi?id=138558

Reviewed by Anders Carlsson.

This patch removes PassOwnPtr and OwnPtr in RenderThemeEfl::ThemePartCacheEntry::create().
It would be good if we also remove create() factory function though, in this case, it is
a little hard to remove it since the create() factory function does many works to create
a ThemePartCacheEntry instance. Thus this patch just replaces PassOwnPtr|OwnPtr with
std::unique_ptr<> and std::make_unique<> in RenderThemeEfl::ThemePartCacheEntry::create().

Besides the theme entries have been maintained by Eina_List*. Unfortunately it doesn't support
std::unique_ptr<> yet. Thus the Eina_List* should be replaced with Vector<std::unique_ptr<>>
so that m_partCache has ownship of all EFL theme entries. This patch tries to keep original
cache algorithm based on Vector class.

No new tests, no behavior changes.

* platform/efl/RenderThemeEfl.cpp:
(WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
(WebCore::RenderThemeEfl::getThemePartFromCache):
* platform/efl/RenderThemeEfl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175953 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMinor tweaks to HTMLCollection
darin@apple.com [Tue, 11 Nov 2014 17:35:29 +0000 (17:35 +0000)]
Minor tweaks to HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=138556

Reviewed by Chris Dumez.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
Update for namedElements function that now returns a Vector; also use
a new style for loop to iterate it.

* bindings/js/JSHTMLAllCollectionCustom.cpp: Removed some unneeded includes.
(WebCore::namedItems): Updated name to match WebKit coding style, and also
updated to use the return value from namedItems, which now returns a Vector.
(WebCore::callHTMLAllCollection): Updated for namedItems name change.
Also removed explicit Node* type from result of namedItemWithIndex, since that
function now returns a more specific type.
(WebCore::JSHTMLAllCollection::nameGetter): Update for namedItems name change.
(WebCore::JSHTMLAllCollection::item): Ditto.
(WebCore::JSHTMLAllCollection::namedItem): Ditto.

* bindings/js/JSHTMLFormControlsCollectionCustom.cpp: Removed some unneeded includes.
(WebCore::namedItems): Updated name to match WebKit coding style, and also
updated to use the return value from namedItems, which now returns a Vector.
(WebCore::JSHTMLFormControlsCollection::nameGetter): Update for namedItems name change.
(WebCore::JSHTMLFormControlsCollection::namedItem): Ditto.

* bindings/js/JSHTMLFormElementCustom.cpp:
(WebCore::JSHTMLFormElement::nameGetter): Updated to use the return value from
namedItems, which now returns a Vector.

* html/HTMLAllCollection.cpp:
(WebCore::HTMLAllCollection::HTMLAllCollection): Marked the constructor inline,
since it's only used in one place, the create function.
(WebCore::HTMLAllCollection::~HTMLAllCollection): Deleted. No need to have an
explicit destructor since there's nothing special to implement, and includers of
the header file have everything they ened to compile the compiler-generated one.
(WebCore::HTMLAllCollection::namedItemWithIndex): Changed return type to Element.

* html/HTMLAllCollection.h: Removed unneeded explicit declaration of destructor.
Chagned return type of namedItemWithIndex to Element.

* html/HTMLCollection.cpp:
(WebCore::HTMLCollection::rootTypeFromCollectionType): Marked this inline. Also
changed this to be a static member function so it can use the RootType enum, which
is now private to the class.
(WebCore::isMatchingHTMLElement): Marked this function static so it will get
internal linkage.
(WebCore::isMatchingElement): Ditto.
(WebCore::previousElement): Marked this function inline since it's called in only
one place. Changed argument type to a reference since it can never be null.
(WebCore::HTMLCollection::iterateForPreviousElement): Changed argument name and
also updated for above changes.
(WebCore::firstMatchingElement): Marked this function static so it will get
internal linkage.
(WebCore::nextMatchingElement): Ditto. Changed argument type to a reference
since it can never be null.
(WebCore::HTMLCollection::item): Changed return type to Element.
(WebCore::nameShouldBeVisibleInDocumentAll): Added an overload that takes an
Element. This streamlines the code below that calls it so it fits on one line.
(WebCore::firstMatchingChildElement): Marked this function static so it will get
internal linkage.
(WebCore::nextMatchingSiblingElement): Ditto. Changed argument type to a reference
since it can never be null.
(WebCore::HTMLCollection::usesCustomForwardOnlyTraversal): Moved here from the
header since, although it's marked inline, it's only used inside this file.
(WebCore::HTMLCollection::traverseForward): Restructured the code a little bit
to make the function smaller and possibly easier to read. This does add one
redundant null check, but it seems OK to do that.
(WebCore::HTMLCollection::collectionTraverseBackward): Tweaked foramtting a bit.
(WebCore::HTMLCollection::namedItem): Changed return type to Element. Tightened
the code that calls nameShouldBeVisibleInDocumentAll so it fits better on one line.
Changed code that handles m_shouldOnlyIncludeDirectChildren to use a nested if
instead of an && since it makes the code a little easier to read.
(WebCore::HTMLCollection::updateNamedElementCache): Tweaked code a little bit,
using shorter variable names, and using references instead of pointers. Also removed
the call to didPopulate, since setNamedItemCache now takes care of that.
(WebCore::HTMLCollection::namedItems): Changed to return a Vector instead of
appending to an existing one. Also use reserveInitialCapacity and uncheckedAppend
for better performance. Added a FIXME, because there seems to be something wrong
here about this being non-virtual. Made other small tweaks to streamline the code.
(WebCore::HTMLCollection::customElementAfter): Moved this here from the header.
There is no reason to need to inline this.

* html/HTMLCollection.h: Removed unneeded includes. Moved function bodies out
of the class definitions so the class definitions are easier to read. Made some
functions that were formerly public or protected be private instead. Added a call
to didPopulate to setNamedItemCache so the callers don't have to do it.

* html/HTMLFormControlsCollection.cpp:
(WebCore::HTMLFormControlsCollection::namedItem): Changed return value to Element.
Tweaked coding style a little bit.
(WebCore::HTMLFormControlsCollection::updateNamedElementCache): Rearranged to
simplify a bit. Don't build the foundInputElements set when the owner is not a
form element, since we don't use the set in that case. Use shorter variable names,
and modern for loops. Also removed the call to didPopulate, since setNamedItemCache
now takes care of that.

* html/HTMLFormControlsCollection.h: Removed some uneeded forward declarations.
Updated return type for namedItem, and also made the override private.

* html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::namedElements): Changed to return a Vector and updated
function name accordingly.
* html/HTMLFormElement.h: Ditto.

* html/HTMLNameCollection.h: Removed a stray blank line.

* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::namedItem): Changed return value to Element.
(WebCore::HTMLSelectElement::item): Ditto.
* html/HTMLSelectElement.h: Ditto.

* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::appendChildSnapOffsets): Rewrote loop as a for loop rather than a while
loop. Removed unwanted use of children()->collectionBegin() to get the first element
child of an HTMLElement. This function uses a mix of DOM and rendering functions that
is probably incorrect, but I did not tackle fixing that at this time.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[Mac] WebCore includes unused cursor image resources
mitz@apple.com [Tue, 11 Nov 2014 17:22:11 +0000 (17:22 +0000)]
[Mac] WebCore includes unused cursor image resources
https://bugs.webkit.org/show_bug.cgi?id=138605

Reviewed by Anders Carlsson.

* Resources/aliasCursor.png: Removed.
* Resources/cellCursor.png: Removed.
* Resources/contextMenuCursor.png: Removed.
* Resources/copyCursor.png: Removed.
* Resources/eastResizeCursor.png: Removed.
* Resources/eastWestResizeCursor.png: Removed.
* Resources/helpCursor.png: Removed.
* Resources/linkCursor.png: Removed.
* Resources/moveCursor.png: Removed.
* Resources/noDropCursor.png: Removed.
* Resources/noneCursor.png: Removed.
* Resources/northEastResizeCursor.png: Removed.
* Resources/northEastSouthWestResizeCursor.png: Removed.
* Resources/northResizeCursor.png: Removed.
* Resources/northSouthResizeCursor.png: Removed.
* Resources/northWestResizeCursor.png: Removed.
* Resources/northWestSouthEastResizeCursor.png: Removed.
* Resources/progressCursor.png: Removed.
* Resources/southEastResizeCursor.png: Removed.
* Resources/southResizeCursor.png: Removed.
* Resources/southWestResizeCursor.png: Removed.
* Resources/verticalTextCursor.png: Removed.
* Resources/waitCursor.png: Removed.
* Resources/westResizeCursor.png: Removed.
* Resources/zoomInCursor.png: Removed.
* Resources/zoomOutCursor.png: Removed.

* WebCore.xcodeproj/project.pbxproj: Removed references to the above files.

* platform/mac/CursorMac.mm:
(WebCore::Cursor::ensurePlatformCursor): For Help, Cell, ZoomIn and ZoomOut, don’t check
for a nil return value from wkCursor(), which can’t occur in any supported configuration.
For None, create a cursor with an empty NSImage instead of loading a transparent image from
the file system.
(WebCore::createNamedCursor): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175941 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r175844.
gyuyoung.kim@samsung.com [Tue, 11 Nov 2014 17:16:02 +0000 (17:16 +0000)]
Unreviewed, rolling out r175844.

Win debug build has broken since r175844.

Reverted changeset:

"Use std::unique_ptr<> and std::make_unique<> in WebCore"
https://bugs.webkit.org/show_bug.cgi?id=138560
http://trac.webkit.org/changeset/175844

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175939 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoQt/Chromium remnants in MediaPlayer
commit-queue@webkit.org [Tue, 11 Nov 2014 16:54:02 +0000 (16:54 +0000)]
Qt/Chromium remnants in MediaPlayer
https://bugs.webkit.org/show_bug.cgi?id=138611

Patch by Philippe Normand <pnormand@igalia.com> on 2014-11-11
Reviewed by Jer Noble.

* platform/graphics/MediaPlayer.h: Remove unused Qt/Chromium stuff.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175937 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove '-webkit-marquee-speed' CSS property to the new StyleBuilder
cdumez@apple.com [Tue, 11 Nov 2014 16:31:44 +0000 (16:31 +0000)]
Move '-webkit-marquee-speed' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138595

Reviewed by Antti Koivisto.

Move '-webkit-marquee-speed' CSS property from DeprecatedStyleBuilder
to the new StyleBuilder by adding a new MarqueeSpeed Converter.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyMarqueeSpeed::applyValue): Deleted.
(WebCore::ApplyPropertyMarqueeSpeed::createHandler): Deleted.
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertMarqueeSpeed):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175932 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Unskip now passing http tests
commit-queue@webkit.org [Tue, 11 Nov 2014 16:29:23 +0000 (16:29 +0000)]
[EFL] Unskip now passing http tests
https://bugs.webkit.org/show_bug.cgi?id=137694

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-11-11
Reviewed by Csaba Osztrogonác.

* platform/efl/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175931 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[CSS Grid Layout] Limit the size of explicit/implicit grid
svillar@igalia.com [Tue, 11 Nov 2014 16:26:06 +0000 (16:26 +0000)]
[CSS Grid Layout] Limit the size of explicit/implicit grid
https://bugs.webkit.org/show_bug.cgi?id=136217

Reviewed by Andreas Kling.

Source/WebCore:

A recent change in the specs allow us to set a limit (maximum
size) for both the explicit and implicit grids so we can protect
ourselves from absurdly huge grid specifications. It was decided
to use the recommended limit which is 1 million.

This means that we can remove the old limitation for the number of
repetitions in repeat(). Instead we now clamp the number of
repetitions to the maximum value that allow us to have the maximum
number of whole repetitions without exceeding the track number
limit.

* WebCore.xcodeproj/project.pbxproj:
* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTrackRepeatFunction): Replaced the
old limit by the new one.
* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeItemsOnGrid): Use the amount of tracks
provided by GridResolvedPosition.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.
* rendering/style/GridCoordinate.h:
(WebCore::GridSpan::GridSpan):
* rendering/style/GridResolvedPosition.cpp:
(WebCore::GridResolvedPosition::explicitGridColumnCount): Bring
the static function back to life.
(WebCore::GridResolvedPosition::explicitGridRowCount): Ditto.
(WebCore::explicitGridSizeForSide):
* rendering/style/GridResolvedPosition.h:

Tools:

Added a new unit test for the CSS parser. Right now it only checks
that we properly clamp the maximum number of tracks on a grid to a
maximum of 1 million.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/CSSParser.cpp: Added.
(TestWebKitAPI::computeNumberOfTracks): Helper function.
(TestWebKitAPI::TEST): Added a
CSSPropertyParserTest.GridTrackLimits test case.

LayoutTests:

Removed as they are now part of the WebCore's CSSParser.cpp unit
test. The reason why it was moved there is because the test would
require huge (~1000000 tracks) grid allocations, making the test
quite slow specially on Debug builds.

* fast/css-grid-layout/grid-element-repeat-max-repetitions-expected.txt: Removed.
* fast/css-grid-layout/grid-element-repeat-max-repetitions.html: Removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175930 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Unreviewed EFL gardening after r174233.
jinwoo7.song@samsung.com [Tue, 11 Nov 2014 13:13:07 +0000 (13:13 +0000)]
[EFL] Unreviewed EFL gardening after r174233.

* platform/efl/css2.1/t0905-c5525-fltcont-00-d-g-expected.txt:
* platform/efl/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
* platform/efl/css2.1/t1602-c546-txt-align-00-b-expected.txt:
* platform/efl/fast/multicol/float-avoidance-expected.txt:
* platform/efl/fast/multicol/overflow-across-columns-expected.txt:
* platform/efl/fast/multicol/overflow-across-columns-percent-height-expected.txt:
* platform/efl/fast/multicol/overflow-unsplittable-expected.txt:
* platform/efl/fast/multicol/positive-leading-expected.txt:
* platform/efl/fast/multicol/vertical-lr/float-avoidance-expected.txt:
* platform/efl/fast/multicol/vertical-rl/float-avoidance-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-1-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-10-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-2-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-3-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-4-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-5-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-6-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-7-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-8-expected.txt:
* platform/efl/fast/repaint/line-flow-with-floats-9-expected.txt:
* platform/efl/fast/text/hyphenate-character-expected.txt:
* platform/efl/fast/text/hyphens-expected.txt:
* platform/efl/fast/text/justified-selection-at-edge-expected.txt:
* platform/efl/fast/text/justify-nbsp-expected.txt: Added.
* platform/efl/fast/text/trailing-white-space-2-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tbody_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/x_td_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tfoot_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/x_th_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/x_thead_align_justify-expected.txt:
* platform/efl/tables/mozilla/marvin/x_tr_align_justify-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175909 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCSS4 Selectors: Add multiple pseudo elements support to :matches
utatane.tea@gmail.com [Tue, 11 Nov 2014 11:14:06 +0000 (11:14 +0000)]
CSS4 Selectors: Add multiple pseudo elements support to :matches
https://bugs.webkit.org/show_bug.cgi?id=138214

Reviewed by Benjamin Poulain.

Source/WebCore:

In this patch, we implement (multiple) pseudo elements support to :matches.
Currently, we implemented it in css/SelectorChecker and there's no CSS JIT implementation.

And we change the semantics of pseudo element selector behavior.
Previously when pseudo element selector appeared in the non-rightmost
fragment, it was ignored. This patch changes it to unmatched.

* css/SelectorChecker.cpp:
(WebCore::SelectorChecker::CheckingContextWithStatus::CheckingContextWithStatus):
(WebCore::SelectorChecker::match):
(WebCore::hasScrollbarPseudoElement):
(WebCore::SelectorChecker::matchRecursively):
(WebCore::SelectorChecker::checkOne):
(WebCore::SelectorChecker::matchSelectorList):
* css/SelectorChecker.h:
(WebCore::SelectorChecker::MatchResult::matches):
(WebCore::SelectorChecker::MatchResult::updateWithMatchType):
(WebCore::SelectorChecker::MatchResult::fails):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::addPseudoClassType):
(WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
(WebCore::SelectorCompiler::constructFragments):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
* rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setHasPseudoStyles):
* rendering/style/RenderStyleConstants.h:
(WebCore::PseudoIdSet::PseudoIdSet):
(WebCore::PseudoIdSet::fromMask):
(WebCore::PseudoIdSet::has):
(WebCore::PseudoIdSet::add):
(WebCore::PseudoIdSet::merge):
(WebCore::PseudoIdSet::operator &):
(WebCore::PseudoIdSet::operator |):
(WebCore::PseudoIdSet::operator bool):
(WebCore::PseudoIdSet::data):

LayoutTests:

* fast/selectors/pseudo-element-in-non-rightmost-fragments-expected.html: Added.
* fast/selectors/pseudo-element-in-non-rightmost-fragments.html: Added.
In this test, we ensure that pseudo elements selector in the
non-rightmost fragments becomes unmatched.
* fast/selectors/pseudo-element-inside-matches-expected.html: Added.
* fast/selectors/pseudo-element-inside-matches.html: Added.
* fast/selectors/ignore-pseudo-element-inside-non-rightmost-fragments-expected.txt: Added.
* fast/selectors/ignore-pseudo-element-inside-non-rightmost-fragments.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175889 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agowebkitpy test fix after r175867
evab.u-szeged@partner.samsung.com [Tue, 11 Nov 2014 10:44:08 +0000 (10:44 +0000)]
webkitpy test fix after r175867
https://bugs.webkit.org/show_bug.cgi?id=138607

Reviewed by Philippe Normand.

* Scripts/webkitpy/port/linux_get_crash_log_unittest.py:
(GDBCrashLogGeneratorTest.test_generate_crash_log):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175887 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAnother assertion fix for debug builds after r175846.
akling@apple.com [Tue, 11 Nov 2014 09:21:18 +0000 (09:21 +0000)]
Another assertion fix for debug builds after r175846.

generateByIdStub() can now be called with an empty prototype chain
if kind == GetUndefined, so tweak the assertion to cover that.

* jit/Repatch.cpp:
(JSC::generateByIdStub):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175880 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agowebkitpy: demangle C++ symbols from crash log stderr
philn@webkit.org [Tue, 11 Nov 2014 09:04:19 +0000 (09:04 +0000)]
webkitpy: demangle C++ symbols from crash log stderr
https://bugs.webkit.org/show_bug.cgi?id=138565

Reviewed by Alexey Proskuryakov.

* Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator.generate_crash_log): Process stderr output
with c++filt.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175868 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] fix up the GDB backtrace report tool
philn@webkit.org [Tue, 11 Nov 2014 09:01:40 +0000 (09:01 +0000)]
[GTK] fix up the GDB backtrace report tool
https://bugs.webkit.org/show_bug.cgi?id=138564

Reviewed by Carlos Garcia Campos.

* Scripts/webkitpy/port/gtk.py:
(GtkPort._get_crash_log): Match the process name reported by the
driver with the GTK port WebProcess executable filename.
* Scripts/webkitpy/port/linux_get_crash_log.py:
(GDBCrashLogGenerator._get_gdb_output): Invoke gdb for the crashed
program.
(GDBCrashLogGenerator.generate_crash_log): Use %E in the core
pattern to workaround the 16 characters size limit of %e.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175867 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoLazily create HTMLInputElement's inputType and shadow subtree
cdumez@apple.com [Tue, 11 Nov 2014 07:19:53 +0000 (07:19 +0000)]
Lazily create HTMLInputElement's inputType and shadow subtree
https://bugs.webkit.org/show_bug.cgi?id=138524

Reviewed by Ryosuke Niwa.

When an HTMLInputElement was created by the parser, we would first call
HTMLInputElement::create(), then call Element::parserSetAttributes() on
the constructed input. With the previous implementation, this was a bit
inefficient because HTMLInputElement::create() would construct a
TextInputType inputType (as this is the default) as well as its
corresponding shadow subtree. Then, parserSetAttributes() would often
set the |type| attribute and would need to destroy this input type as
well as its subtree if the new |type| is not 'text', to create a new
inputType / shadow subtree of the right type. The profiler showed that
this was fairly expensive.

To improve this, this patch delays the inputType / shadow subtree
creation when the HTMLInputElement is constructed by the parser, until
the attributes are actually set by the parser. This way, we directly
create an inputType / shadow subtree of the right type.

I see a 1.4% speed up on speedometer (73.95 -> 75.0).

No new tests, no behavior change.

* dom/Element.cpp:
(WebCore::Element::parserSetAttributes):
(WebCore::Element::parserDidFinishParsingAttributes):
* dom/Element.h:
* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::HTMLInputElement):
(WebCore::HTMLInputElement::create):
(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::runPostTypeUpdateTasks):
(WebCore::HTMLInputElement::ensureInputType):
(WebCore::HTMLInputElement::parseAttribute):
(WebCore::HTMLInputElement::parserDidFinishParsingAttributes):
* html/HTMLInputElement.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175852 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix possible crash when closing the web inspector
simon.fraser@apple.com [Tue, 11 Nov 2014 06:11:49 +0000 (06:11 +0000)]
Fix possible crash when closing the web inspector
https://bugs.webkit.org/show_bug.cgi?id=138597
rdar://problem/18872688

Reviewed by Andreas Kling.

I reported a crash when reloading a page after inspecting it, possibly caused by
r172864. Speculatively fix by null-checking the main frame.

* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::~WebInspectorClient):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175851 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: Update Esprima, remove WebInspector.Esprima global.
jonowells@apple.com [Tue, 11 Nov 2014 04:58:25 +0000 (04:58 +0000)]
Web Inspector: Update Esprima, remove WebInspector.Esprima global.
https://bugs.webkit.org/show_bug.cgi?id=138579

Reviewed by Timothy Hatcher.

Update esprima.js file to be unchanged by removing WebInspector.Esprima global object. Move esprima.js include
so that all external libraries load before the WebInspector namespace is declared in the combined Main.js.

* UserInterface/External/Esprima/esprima.js: File updated, no changes made.
* UserInterface/Main.html: esprima.js script tag moved up with other externals.
* UserInterface/Models/ScriptSyntaxTree.js: WebInspector.Esprima changed to esprima
(WebInspector.ScriptSyntaxTree):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175850 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAssertion fix for debug builds after r175846.
akling@apple.com [Tue, 11 Nov 2014 04:32:16 +0000 (04:32 +0000)]
Assertion fix for debug builds after r175846.

PropertySlot::slotBase() will assert if the slot is unset, so reorder
the tests to check for isCacheableValue() first.

* jit/Repatch.cpp:
(JSC::tryCacheGetByID):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175849 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSource/WebCore:
benjamin@webkit.org [Tue, 11 Nov 2014 03:49:08 +0000 (03:49 +0000)]
Source/WebCore:
Add parsing support for the extended :nth-last-child(An+B of selector-list) defined
https://bugs.webkit.org/show_bug.cgi?id=138520

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.

Add parsing for :nth-last-child(An+B of selector-list). The selector is defined
in CSS Selectors Level 4: http://dev.w3.org/csswg/selectors4/#the-nth-last-child-pseudo

Tests: fast/css/parsing-css-nth-last-child-of-1.html
       fast/css/parsing-css-nth-last-child-of-2.html
       fast/css/parsing-css-nth-last-child-of-3.html
       fast/css/parsing-css-nth-last-child-of-4.html

* css/CSSGrammar.y.in:
* css/CSSParser.cpp:
(WebCore::CSSParser::detectFunctionTypeToken):
* css/CSSSelector.cpp:
(WebCore::CSSSelector::selectorText):

LayoutTests:
Add parsing support for the extended :nth-last-child(An+B of selector-list)
https://bugs.webkit.org/show_bug.cgi?id=138520

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10
Reviewed by Andreas Kling.

All the tests are variations of the existing tests for :nth-child(An+B of selector-list).

* fast/css/css-selector-text-expected.txt:
* fast/css/css-selector-text.html:
* fast/css/css-set-selector-text-expected.txt:
* fast/css/css-set-selector-text.html:
* fast/css/parsing-css-nth-last-child-of-1-expected.txt: Added.
* fast/css/parsing-css-nth-last-child-of-1.html: Added.
* fast/css/parsing-css-nth-last-child-of-2-expected.txt: Added.
* fast/css/parsing-css-nth-last-child-of-2.html: Added.
* fast/css/parsing-css-nth-last-child-of-3-expected.txt: Added.
* fast/css/parsing-css-nth-last-child-of-3.html: Added.
* fast/css/parsing-css-nth-last-child-of-4-expected.txt: Added.
* fast/css/parsing-css-nth-last-child-of-4.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175848 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSource/WebCore:
commit-queue@webkit.org [Tue, 11 Nov 2014 03:25:36 +0000 (03:25 +0000)]
Source/WebCore:
SVG foreign objects do not inherit the container coordinates system if they are repainted.
https://bugs.webkit.org/show_bug.cgi?id=138481.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.

If a foreign object is included in an SVG, it should inherit the coordinates system
of the container if it is repainted. The foreign object is actually redrawn in the
CSS coordinates system regardless of the transformation that may be applied to the
container.

The bug is RenderSVG* classes use computeFloatRectForRepaint(), but the rest of the
render classes use computeRectForRepaint(). RenderSVGForeignObject::computeRectForRepaint()
was not defined, so we end up hitting RenderObject::computeRectForRepaint() for
a RenderSVGTransformableContainer and completely miss the transform.

Tests: svg/transforms/svg-transform-foreign-object-repaint.html

Implement RenderSVGForeignObject::computeRectForRepaint() so we can apply the
container transformation on the SVG foreign object repaint rectangle.
* rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::computeRectForRepaint):
* rendering/svg/RenderSVGForeignObject.h:

LayoutTests:
SVG foreign objects do not inherit the container coordinates system if they are repainted..
https://bugs.webkit.org/show_bug.cgi?id=138481.

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2014-11-10
Reviewed by Simon Fraser.

Ensure the repaint rectangle of the SVG foreign object is calculated correctly
when the container element has transformation.

* svg/transforms/svg-transform-foreign-object-repaint-expected.png: Added.
* svg/transforms/svg-transform-foreign-object-repaint-expected.txt: Added.
* svg/transforms/svg-transform-foreign-object-repaint.html: Added.

Re-baseline these tests since the render tree dumping uses renderer.absoluteClippedOverflowRect()
in writePositionAndStyle() to get the object rectangle so this issue only affects test output.

* svg/zoom/page/zoom-foreign-content-expected.txt:
* platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175847 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoThe JIT should cache property lookup misses.
akling@apple.com [Tue, 11 Nov 2014 03:10:13 +0000 (03:10 +0000)]
The JIT should cache property lookup misses.
<https://webkit.org/b/135578>

Source/JavaScriptCore:

Add support for inline caching of missed property lookups.
Previously this would banish us to C++ slow path.

It's implemented as a simple GetById cache that returns jsUndefined()
as long as the Structure chain check passes. There's no DFG exploitation
of this knowledge in this patch.

Test: js/regress/undefined-property-access.js (~5.5x speedup)

Reviewed by Filip Pizlo.

* bytecode/PolymorphicGetByIdList.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeForStubInfo):

    Add GetByIdAccess::SimpleMiss so we can communicate to the DFG that
    the access has been cached.

* jit/Repatch.cpp:
(JSC::toString):
(JSC::kindFor):
(JSC::generateByIdStub):
(JSC::tryCacheGetByID):
(JSC::tryBuildGetByIDList):

    Added a GetUndefined stub kind, just a simple "store jsUndefined()" snippet.
    Use this to cache missed lookups, piggybacking mostly on the GetValue kind.

* runtime/PropertySlot.h:
(JSC::PropertySlot::isUnset):

    Exposed the unset state so PropertySlot can communicate that lookup failed.

LayoutTests:

Add a JSRegress test for caching of property lookup misses.
There are three subtests:

    1. Pure speed test.
    2. Test for when a property previously cached as missing suddenly
       appears on the object.
    3. Same as (2), but it appears on the prototype.

The test runs ~5.5x faster with the optimization.

Reviewed by Filip Pizlo.

* js/regress/script-tests/undefined-property-access.js: Added.
(foo):
(bar):
(baz):
* js/regress/undefined-property-access-expected.txt: Added.
* js/regress/undefined-property-access.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175846 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd scope operand to op_create_lexical_environment
msaboff@apple.com [Tue, 11 Nov 2014 03:05:25 +0000 (03:05 +0000)]
Add scope operand to op_create_lexical_environment
https://bugs.webkit.org/show_bug.cgi?id=138588

Reviewed by Geoffrey Garen.

Added a second operand to op_create_lexical_environment that contains the scope register
to update.  Note that the DFG relies on operationCreateActivation() to update the
scope register since we can't issue a set() with a non-local, non-argument register.
This is temporary until the scope register is allocated as a local.

* bytecode/BytecodeList.json:
* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
Added the scope register operand.

* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::BytecodeGenerator):
Filled in the scope register operand.

* jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_create_lexical_environment):
* jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_create_lexical_environment):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
* llint/LowLevelInterpreter32_64.asm:
* llint/LowLevelInterpreter64.asm:
Set the scope register with the result of the appropriate create activation slow call.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175845 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse std::unique_ptr<> and std::make_unique<> in WebCore
gyuyoung.kim@samsung.com [Tue, 11 Nov 2014 01:47:36 +0000 (01:47 +0000)]
Use std::unique_ptr<> and std::make_unique<> in WebCore
https://bugs.webkit.org/show_bug.cgi?id=138560

Reviewed by Chris Dumez.

Clean up unused OwnPtr.h and PassOwnPtr.h and use std::unique_ptr.

No new tests, no behavior changes.

* Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
* dom/ContainerNode.h:
* dom/ElementIteratorAssertions.h:
(WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
* dom/ElementRareData.h:
* page/DragController.h:
* rendering/RenderView.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175844 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoTest that complext and fast text codepaths measure the same width
mmaxfield@apple.com [Tue, 11 Nov 2014 01:37:18 +0000 (01:37 +0000)]
Test that complext and fast text codepaths measure the same width
https://bugs.webkit.org/show_bug.cgi?id=138581

Reviewed by Simon Fraser.

* fast/text/space-width-expected.html: Added.
* fast/text/space-width.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175843 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWK1: Support default actions for editable text with misspelled word
bdakin@apple.com [Tue, 11 Nov 2014 01:21:50 +0000 (01:21 +0000)]
WK1: Support default actions for editable text with misspelled word
https://bugs.webkit.org/show_bug.cgi?id=138590
-and corresponding-
rdar://problem/18877506

Reviewed by Tim Horton.

Source/WebCore:

* WebCore.exp.in:

Source/WebKit/mac:

If there are misspelled word suggestions for editable text, create a new type of
menu with a spelling suggestion sub-menu.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForEditableTextWithSuggestions:]):
(-[WebActionMenuController _changeSelectionToSuggestion:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
* WebView/WebHTMLView.mm:
(-[WebHTMLView _changeSpellingToWord:]):
* WebView/WebHTMLViewInternal.h:
* WebView/WebUIDelegatePrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175842 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agohttp tests should not use shared temporary files
ap@apple.com [Tue, 11 Nov 2014 01:16:15 +0000 (01:16 +0000)]
http tests should not use shared temporary files
https://bugs.webkit.org/show_bug.cgi?id=138583

Reviewed by Tim Horton.

Made some of the scripts that write to files take a path argument, and made others
more strictly serve only one test.

This way, we don't race for any files.

* http/tests/appcache/fail-on-update-2.html:
* http/tests/appcache/fallback.html:
* http/tests/appcache/main-resource-fallback-for-network-error-crash.html:
* http/tests/appcache/main-resource-hash.html:
* http/tests/appcache/main-resource-redirect.html:
* http/tests/appcache/multi-fallback.html:
* http/tests/appcache/non-html.xhtml:
* http/tests/appcache/offline-access.html:
* http/tests/appcache/online-whitelist.html:
* http/tests/appcache/remove-cache.html:
* http/tests/appcache/resources/counter.php: Removed.
* http/tests/appcache/resources/fail-on-update-2.php:
* http/tests/appcache/resources/fail-on-update.php:
* http/tests/appcache/resources/main-resource-redirect-frame.php:
* http/tests/appcache/resources/main-resource-redirect.manifest:
* http/tests/appcache/resources/non-html.manifest:
* http/tests/appcache/resources/offline-access-frame.html:
* http/tests/appcache/resources/offline-access.js:
* http/tests/appcache/resources/offline-access.manifest:
* http/tests/appcache/resources/online-whitelist.manifest:
* http/tests/appcache/resources/online-whitelist.php: Copied from LayoutTests/http/tests/appcache/resources/counter.php.
* http/tests/appcache/resources/remove-cache-frame-2.html:
* http/tests/appcache/resources/remove-cache-frame.html:
* http/tests/appcache/resources/remove-cache.php: Copied from LayoutTests/http/tests/appcache/resources/fail-on-update.php.
* http/tests/appcache/resources/update-cache.php: Copied from LayoutTests/http/tests/appcache/resources/versioned-manifest.php.
* http/tests/appcache/resources/versioned-manifest.php: Removed.
* http/tests/appcache/update-cache.html:
* http/tests/cache/network-error-during-revalidation.html:
* http/tests/cache/post-redirect-get.php:
* http/tests/cache/post-with-cached-subresources.php:
* http/tests/cache/reload-main-resource.php:
* http/tests/cache/resources/network-error-during-revalidation-frame.html:
* http/tests/cache/resources/partitioned-cache-echo-state.php:
* http/tests/cache/resources/partitioned-cache-loader.html:
* http/tests/cache/resources/post-image-to-verify.php:
* http/tests/cache/resources/reload-main-resource-iframe.php:
* http/tests/cache/stopped-revalidation.html:
* http/tests/cache/subresource-fragment-identifier.html:
* http/tests/css/border-image-loading.html:
* http/tests/css/css-image-loading.html:
* http/tests/css/mask-image-loading.html:
* http/tests/css/reflection-mask-image-loading.html:
* http/tests/css/resources/request-logging.js:
* http/tests/loading/preload-img-test.html:
* http/tests/local/link-stylesheet-load-order-preload.html:
* http/tests/local/link-stylesheet-load-order.html:
* http/tests/misc/link-rel-prefetch-and-subresource.html:
* http/tests/resources/network-simulator.php:
* http/tests/resources/tripmine.php: Removed.
* http/tests/xmlhttprequest/access-control-preflight-async-header-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-async-header-denied.html:
* http/tests/xmlhttprequest/access-control-preflight-async-method-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html:
* http/tests/xmlhttprequest/access-control-preflight-async-not-supported-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html:
* http/tests/xmlhttprequest/access-control-preflight-headers-async.html:
* http/tests/xmlhttprequest/access-control-preflight-headers-sync.html:
* http/tests/xmlhttprequest/access-control-preflight-sync-header-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-header-denied.html:
* http/tests/xmlhttprequest/access-control-preflight-sync-method-denied-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-method-denied.html:
* http/tests/xmlhttprequest/access-control-preflight-sync-not-supported-expected.txt:
* http/tests/xmlhttprequest/access-control-preflight-sync-not-supported.html:
* http/tests/xmlhttprequest/redirect-cross-origin-tripmine.html:
* http/tests/xmlhttprequest/resources/access-control-preflight-denied-xsrf.php:
* http/tests/xmlhttprequest/resources/no-custom-header.php:
* http/tests/xmlhttprequest/resources/redirect-cross-origin-tripmine.php: Copied from LayoutTests/http/tests/resources/tripmine.php.
* http/tests/xmlhttprequest/state-after-network-error.html:
* http/tests/xmlhttprequest/xmlhttprequest-responseURL-expected.txt:
* http/tests/xmlhttprequest/xmlhttprequest-responseURL.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175841 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: Add infrastructure for eslint based static analyzer
jonowells@apple.com [Tue, 11 Nov 2014 00:39:11 +0000 (00:39 +0000)]
Web Inspector: Add infrastructure for eslint based static analyzer
https://bugs.webkit.org/show_bug.cgi?id=137890

Reviewed by Timothy Hatcher.

Fix to previous patch to add AnalyzerManager and AnalyzerMessage classes. Changed Main.html to include ESLint.js
before Main.js in the combined resources.

* UserInterface/Base/Main.js:
* UserInterface/Controllers/AnalyzerManager.js: Added.
(WebInspector.AnalyzerManager):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode.):
(set WebInspector.AnalyzerManager.prototype.getAnalyzerMessagesForSourceCode):
(set WebInspector.AnalyzerManager.prototype.set get sourceCodeCanBeAnalyzed):
(set WebInspector.AnalyzerManager.prototype._handleSourceCodeContentDidChange):
* UserInterface/Main.html:
* UserInterface/Models/AnalyzerMessage.js: Added.
(WebInspector.AnalyzerMessage):
(WebInspector.AnalyzerMessage.prototype.get sourceCodeLocation):
(WebInspector.AnalyzerMessage.prototype.get sourceCode):
(WebInspector.AnalyzerMessage.prototype.get text):
(WebInspector.AnalyzerMessage.prototype.get ruleIdentifier):
* UserInterface/Models/SourceCode.js:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175838 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWK1: Support default actions for editable whitespace
bdakin@apple.com [Tue, 11 Nov 2014 00:04:56 +0000 (00:04 +0000)]
WK1: Support default actions for editable whitespace
https://bugs.webkit.org/show_bug.cgi?id=138586
-and corresponding-
rdar://problem/18932048

Reviewed by Tim Horton.

New menu type. Just wants paste.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController _defaultMenuItemsForWhitespaceInEditableArea:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
* WebView/WebUIDelegatePrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175837 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove unnecessary null check in FrameSelection::nodeWillBeRemoved()
cdumez@apple.com [Tue, 11 Nov 2014 00:02:57 +0000 (00:02 +0000)]
Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
https://bugs.webkit.org/show_bug.cgi?id=138578

Reviewed by Andreas Kling.

Remove unnecessary null check in FrameSelection::nodeWillBeRemoved()
and turn the argument into a reference to make it clear it cannot be
null.

No new tests, no behavior change.

* dom/ContainerNode.cpp:
(WebCore::ContainerNode::willRemoveChild):
* dom/Document.cpp:
(WebCore::Document::nodeChildrenWillBeRemoved):
(WebCore::Document::nodeWillBeRemoved):
* dom/Document.h:
* dom/NodeIterator.cpp:
(WebCore::NodeIterator::nodeWillBeRemoved):
(WebCore::NodeIterator::updateForNodeRemoval):
* dom/NodeIterator.h:
* dom/Range.cpp:
(WebCore::Range::insertNode):
(WebCore::boundaryNodeWillBeRemoved):
(WebCore::Range::nodeWillBeRemoved):
* dom/Range.h:
* dom/RangeBoundaryPoint.h:
(WebCore::RangeBoundaryPoint::setToBeforeChild):
* editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::updatePositionForNodeRemovalPreservingChildren):
* editing/CompositeEditCommand.h:
* editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNode):
(WebCore::DeleteSelectionCommand::handleGeneralDelete):
(WebCore::DeleteSelectionCommand::removeRedundantBlocks):
* editing/FrameSelection.cpp:
(WebCore::removingNodeRemovesPosition):
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::FrameSelection::nodeWillBeRemoved):
(WebCore::FrameSelection::respondToNodeModification):
* editing/FrameSelection.h:
* editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
* editing/htmlediting.cpp:
(WebCore::updatePositionForNodeRemoval):
* editing/htmlediting.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::nodeWillBeRemoved):
* page/EventHandler.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175836 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWhitespace action menus aren't working properly
bdakin@apple.com [Mon, 10 Nov 2014 23:55:56 +0000 (23:55 +0000)]
Whitespace action menus aren't working properly
https://bugs.webkit.org/show_bug.cgi?id=138585
-and corresponding-
rdar://problem/18933586

Reviewed by Tim Horton.

Treat the whitespace menu as a text menu.
* UIProcess/mac/WKActionMenuController.mm:
(-[WKActionMenuController isMenuForTextContent]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175835 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd test for fix of REGRESSION (r174985-174986): Site display disappears
msaboff@apple.com [Mon, 10 Nov 2014 23:23:49 +0000 (23:23 +0000)]
Add test for fix of REGRESSION (r174985-174986): Site display disappears
https://bugs.webkit.org/show_bug.cgi?id=138470

Reviewed by Geoffrey Garen.

This checks that document.write() and document.writeln() are cached and the same instance
is always returned.

* js/dom/document-write-functions-cached-expected.txt: Added.
* js/dom/document-write-functions-cached.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175834 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix the build when CSS Selectors Level 4 is disabled
benjamin@webkit.org [Mon, 10 Nov 2014 22:48:10 +0000 (22:48 +0000)]
Fix the build when CSS Selectors Level 4 is disabled
https://bugs.webkit.org/show_bug.cgi?id=138533

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-11-10

* css/CSSSelector.cpp:
(WebCore::appendArgumentList):
* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementLinkMatching):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175833 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWK1: Support default actions for editable text
bdakin@apple.com [Mon, 10 Nov 2014 22:36:21 +0000 (22:36 +0000)]
WK1: Support default actions for editable text
https://bugs.webkit.org/show_bug.cgi?id=138580
-and corresponding-
rdar://problem/18877497

Reviewed by Tim Horton.

New menu type, and new action type for paste.

* WebView/WebActionMenuController.mm:
(-[WebActionMenuController isMenuForTextContent]):
(-[WebActionMenuController willOpenMenu:withEvent:]):
(-[WebActionMenuController _defaultMenuItemsForEditableText:]):
(-[WebActionMenuController _paste:]):
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):
* WebView/WebUIDelegatePrivate.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175832 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWK1: Text is getting selected even when an action menu fails to invoke
bdakin@apple.com [Mon, 10 Nov 2014 22:12:01 +0000 (22:12 +0000)]
WK1: Text is getting selected even when an action menu fails to invoke
https://bugs.webkit.org/show_bug.cgi?id=138576
-and corresponding-
rdar://problem/18931330

Reviewed by Tim Horton.

Selection changes should happen in willOpenMenu: instead of prepareForMenu:
* WebView/WebActionMenuController.h:
* WebView/WebActionMenuController.mm:
(-[WebActionMenuController prepareForMenu:withEvent:]):
(-[WebActionMenuController willOpenMenu:withEvent:]):

_selectLookupText no longer needs to return a BOOL indicating success or failure.
(-[WebActionMenuController _selectLookupText]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

Pass willOpenMenu: on to the controller.
* WebView/WebView.mm:
(-[WebView willOpenMenu:withEvent:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175831 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSupport throttling of DOMTimers using nested setTimeout() calls
cdumez@apple.com [Mon, 10 Nov 2014 22:05:52 +0000 (22:05 +0000)]
Support throttling of DOMTimers using nested setTimeout() calls
https://bugs.webkit.org/show_bug.cgi?id=138262

Reviewed by Gavin Barraclough.

Extend DOMTimers throttling support to timers that are using nested
setTimeout() calls instead of a setInterval(). To achieve this, this
patch introduces a NestedTimersMap singleton class where nested timers
are added, and for which we potentially update the next firing time,
after the parent timer is done executing.

I have verified this helps on ebay.com for example, which has timers
interacting with non-visible plugins that are scheduled using nested
setTimeout() calls with a frequency of 150 / 200 ms.

This is a second take on r175441, which caused intermittent crashes.
This time, nested timers are removed from the NestedTimersMap when
DOMTimer::removeById() is called. It would be unsafe to use the nested
timer afterwards because we don't hold a strong reference to it and
the ScriptExecutionContext is unref'ing the DOMTimer when
ScriptExecutionContext::removeTimeout() is called from
DOMTimer::removeById().

* page/DOMTimer.cpp:
(WebCore::NestedTimersMap::NestedTimersMap):
(WebCore::NestedTimersMap::~NestedTimersMap):
(WebCore::NestedTimersMap::add):
(WebCore::NestedTimersMap::remove):
(WebCore::NestedTimersMap::begin):
(WebCore::NestedTimersMap::end):
(WebCore::DOMTimer::install):
(WebCore::DOMTimer::removeById):
(WebCore::DOMTimer::fired):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175830 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, moved myself to the list of committers.
conrad_shultz@apple.com [Mon, 10 Nov 2014 22:01:59 +0000 (22:01 +0000)]
Unreviewed, moved myself to the list of committers.

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

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EME][Mac] Add a systemCode to distinguish when no expired sessions were found in...
jer.noble@apple.com [Mon, 10 Nov 2014 21:48:01 +0000 (21:48 +0000)]
[EME][Mac] Add a systemCode to distinguish when no expired sessions were found in response to a "keyrelease" message.
https://bugs.webkit.org/show_bug.cgi?id=138199

Reviewed by Eric Carlson.

Clients may want to be able to distinguish between cases where expired session data is not supported, and when
those data are supported, but none are found.

* platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
(WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175828 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[iOS WK2] Scroll deceleration rate is wrong
simon.fraser@apple.com [Mon, 10 Nov 2014 21:39:02 +0000 (21:39 +0000)]
[iOS WK2] Scroll deceleration rate is wrong
https://bugs.webkit.org/show_bug.cgi?id=138574
rdar://problem/18715303

Reviewed by Benjamin Poulain.

The CSS Snap Points code incorrectly set the WKScrollView's deceleration rate,
overriding the custom value that UIWebScrollView sets.

Fix by having WKScrollView store the custom rate at init time, and
using that value in -scrollViewWillBeginDragging:.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView scrollViewWillBeginDragging:]):
* UIProcess/ios/WKScrollView.h:
* UIProcess/ios/WKScrollView.mm:
(-[WKScrollView initWithFrame:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175827 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoREGRESSION(r174823): Several tests fail due to canplaythrough firing before tracks...
jer.noble@apple.com [Mon, 10 Nov 2014 20:43:50 +0000 (20:43 +0000)]
REGRESSION(r174823): Several tests fail due to canplaythrough firing before tracks are available
https://bugs.webkit.org/show_bug.cgi?id=137882

Reviewed by Eric Carlson.

Source/WebCore:

For HLS streams with only one video, audio, or text track, there will be no media selection group
for that media characteristic. When culling out AVPlayerItemTracks in tracksDidChange(), do not skip
tracks for which there is no matching AVMediaSelectionGroup.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasLoadedMediaSelectionGroups): Refactored.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForLegibleMedia): Call above.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForAudibleMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::safeMediaSelectionGroupForVisualMedia): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange):

LayoutTests:

* platform/mac/TestExpectations:
* platform/mac/http/tests/media/hls/video-controls-live-stream-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175826 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSpeculative build fix.
bdakin@apple.com [Mon, 10 Nov 2014 20:39:24 +0000 (20:39 +0000)]
Speculative build fix.

* WebView/WebActionMenuController.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175825 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, rolling out r175813.
commit-queue@webkit.org [Mon, 10 Nov 2014 20:33:33 +0000 (20:33 +0000)]
Unreviewed, rolling out r175813.
https://bugs.webkit.org/show_bug.cgi?id=138573

Breaks complex text layout spacing (Requested by litherum on
#webkit).

Reverted changeset:

"[OSX] Some words are placed on top of each other in complex
text layout"
https://bugs.webkit.org/show_bug.cgi?id=138348
http://trac.webkit.org/changeset/175813

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175824 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRolling out failed build fix
bdakin@apple.com [Mon, 10 Nov 2014 20:31:53 +0000 (20:31 +0000)]
Rolling out failed build fix
http://trac.webkit.org/changeset/175819

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175823 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoReset WebPageProxy's isPlayingAudio state after web process crash or page invalidation.
adachan@apple.com [Mon, 10 Nov 2014 20:31:49 +0000 (20:31 +0000)]
Reset WebPageProxy's isPlayingAudio state after web process crash or page invalidation.
https://bugs.webkit.org/show_bug.cgi?id=138559

Reviewed by Andreas Kling.

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetState):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175822 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAction menu initialization should be moved to _commonInitializationWithFrameName
bdakin@apple.com [Mon, 10 Nov 2014 20:25:13 +0000 (20:25 +0000)]
Action menu initialization should be moved to _commonInitializationWithFrameName
https://bugs.webkit.org/show_bug.cgi?id=138572
-and corresponding-
rdar://problem/18929733

Reviewed by Tim Horton.

* WebView/WebView.mm:
(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView _initWithFrame:frameName:groupName:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175821 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSpeculative build fix.
bdakin@apple.com [Mon, 10 Nov 2014 20:18:32 +0000 (20:18 +0000)]
Speculative build fix.

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175820 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSpeculative build fix.
bdakin@apple.com [Mon, 10 Nov 2014 20:15:42 +0000 (20:15 +0000)]
Speculative build fix.

* WebCore.exp.in:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175819 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[iOS WK2] Layers with negative z position disapear behind the page tiles
simon.fraser@apple.com [Mon, 10 Nov 2014 20:03:44 +0000 (20:03 +0000)]
[iOS WK2] Layers with negative z position disapear behind the page tiles
https://bugs.webkit.org/show_bug.cgi?id=138571
rdar://problem/18873480

Reviewed by Dean Jackson.

Some crufty iOS-only code in RenderLayerBacking::parentForSublayers() caused us to fail
to use the m_childContainmentLayer as the ancestor for descendants, so layers with
negative z position would get depth-sorted behind the tiles.

Fix by removing that code.

This should have been detected by compositing/tile-cache-must-flatten.html, but
testing infrastructure suck prevented us from doing so.

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::parentForSublayers):
* rendering/RenderLayerBacking.h: Just some nullptr cleanup.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175818 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove 'resize' CSS property to the new StyleBuilder
cdumez@apple.com [Mon, 10 Nov 2014 19:56:20 +0000 (19:56 +0000)]
Move 'resize' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138550

Reviewed by Andreas Kling.

No new tests, no behavior change.

Move 'resize' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder by adding a new 'Resize' Converter function.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyResize::applyValue): Deleted.
(WebCore::ApplyPropertyResize::createHandler): Deleted.
* css/StyleBuilderConverter.h:
(WebCore::StyleBuilderConverter::convertResize):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175817 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoSpeculative build fix.
bdakin@apple.com [Mon, 10 Nov 2014 19:35:40 +0000 (19:35 +0000)]
Speculative build fix.

* editing/DictionaryLookup.h:
* editing/DictionaryLookup.mm:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175816 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove 'text-indent' CSS property to the new StyleBuilder
cdumez@apple.com [Mon, 10 Nov 2014 19:34:11 +0000 (19:34 +0000)]
Move 'text-indent' CSS property to the new StyleBuilder
https://bugs.webkit.org/show_bug.cgi?id=138547

Reviewed by Andreas Kling.

Move 'text-indent' CSS property from DeprecatedStyleBuilder to the new
StyleBuilder, by using custom code.

No new tests, no behavior change.

* css/CSSPropertyNames.in:
* css/DeprecatedStyleBuilder.cpp:
(WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
(WebCore::ApplyPropertyTextIndent::applyInheritValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyInitialValue): Deleted.
(WebCore::ApplyPropertyTextIndent::applyValue): Deleted.
(WebCore::ApplyPropertyTextIndent::createHandler): Deleted.
* css/StyleBuilderConverter.h:
* css/StyleBuilderCustom.h:
(WebCore::StyleBuilderFunctions::applyInheritTextIndent):
(WebCore::StyleBuilderFunctions::applyInitialTextIndent):
(WebCore::StyleBuilderFunctions::applyValueTextIndent):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175815 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWK1: Support default actions for read-only text
bdakin@apple.com [Mon, 10 Nov 2014 19:19:52 +0000 (19:19 +0000)]
WK1: Support default actions for read-only text
https://bugs.webkit.org/show_bug.cgi?id=138552
-and corresponding-
rdar://problem/18877483

Reviewed by Tim Horton.

Source/WebCore:

WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.

* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* editing/DictionaryLookup.h: Added.
* editing/DictionaryLookup.mm: Added.
(WebCore::isPositionInRange):
(WebCore::shouldUseSelection):
(WebCore::rangeExpandedAroundPositionByCharacters):
(WebCore::rangeForDictionaryLookupForSelection):
(WebCore::rangeForDictionaryLookupAtHitTestResult):
* platform/mac/WebCoreSystemInterface.h:
* platform/mac/WebCoreSystemInterface.mm:

Source/WebKit/mac:

New WKSystemInterface functions that WebCore needs to use.
* WebCoreSupport/WebSystemInterface.mm:
(InitWebCoreSystemInterface):

WebActionMenuController now keeps an ivar for the WebCore::HitTestResult. This
makes a lot of things easier.
* WebView/WebActionMenuController.h:
* WebView/WebActionMenuController.mm:

Perform the hit test ourselves instead of calling into WebView so that we can more
easily save the WebCore::HitTestResult for ourselves.
(-[WebActionMenuController performHitTestAtPoint:]):

Clear selection for non-text menus.
(-[WebActionMenuController prepareForMenu:withEvent:]):

Re-set the _type here just to be safe.
(-[WebActionMenuController didCloseMenu:withEvent:]):

Moving this method to be next to the link actions so they can be within a pragma
mark.
(-[WebActionMenuController _defaultMenuItemsForLink:]):

New method for default text actions — lookup and copy.
(-[WebActionMenuController _defaultMenuItemsForText:]):
(-[WebActionMenuController _copySelection:]):
(-[WebActionMenuController _lookupText:]):

If there is not already a selection, invoking the action menu on text should
select the lookup text.
(-[WebActionMenuController _selectLookupText]):
(performDictionaryLookupForSelection):
(performDictionaryLookupForRange):

Handle text now.
(-[WebActionMenuController _createActionMenuItemForTag:withHitTestResult:]):
(-[WebActionMenuController _defaultMenuItemsForHitTestResult:]):

New enum values.
* WebView/WebUIDelegatePrivate.h:

Pass didCloseMenu on to the controller.
* WebView/WebView.mm:
(-[WebView didCloseMenu:withEvent:]):

Source/WebKit2:

WK1 now needs to do a lot of dictionary lookup operations that it did not
previously have to handle. So this patch takes a lot of that functionality, which
was implemented as static functions in WebPageMac for WK2 and moves it into
WebCore.

* WebProcess/WebCoreSupport/mac/WebSystemInterface.mm:
(InitWebCoreSystemInterface):
* WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::performDictionaryLookupForRange):
(WebKit::isPositionInRange): Deleted.
(WebKit::shouldUseSelection): Deleted.
(WebKit::rangeExpandedAroundPositionByCharacters): Deleted.
(WebKit::rangeForDictionaryLookupForSelection): Deleted.
(WebKit::rangeForDictionaryLookupAtHitTestResult): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[OSX] Some words are placed on top of each other in complex text layout
mmaxfield@apple.com [Mon, 10 Nov 2014 18:55:08 +0000 (18:55 +0000)]
[OSX] Some words are placed on top of each other in complex text layout
https://bugs.webkit.org/show_bug.cgi?id=138348

Reviewed by Simon Fraser.

Source/WebCore:

Some complex text layouts have lots of diacritics being placed all over the place.
CoreText sometimes compensates for this by adjusting the advances of the glyphs
throughout the string to make glyphs appear in the correct place. This means that
we can't naively cache the width of a space character; instead, we must obey
CoreText when it gives us an advance for a space.

Test: fast/text/large-space-width-complex.html

* platform/graphics/mac/ComplexTextController.cpp:
(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

Updating tests to not use cached space width.

* fast/text/large-space-width-complex-expected.html: Added.
* fast/text/large-space-width-complex.html: Added.
* fast/text/resources/NotoNastaliqUrduDraft.ttf: Added.
* platform/mac-mavericks/fast/text/emphasis-expected.png:
* platform/mac-mavericks/fast/text/emphasis-expected.txt: This test is orthogonal to space widths.
* platform/mac-mountainlion/fast/text/emphasis-expected.png:
* platform/mac-mountainlion/fast/text/emphasis-expected.txt:
* platform/mac/fast/text/emphasis-expected.png:
* platform/mac/fast/text/emphasis-expected.txt:
* platform/mac/fast/text/sticky-typesetting-features-expected.png:
* platform/mac/fast/text/sticky-typesetting-features-expected.txt: Ditto.
* platform/mac/fast/writing-mode/text-orientation-basic-expected.png:
* platform/mac/fast/writing-mode/text-orientation-basic-expected.txt: This test actually is improved with
this patch. Instead of a weirdly wide space width, the two words are spaced appropriately now.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175813 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[iOS] wireless playback placeholder UI doesn't always draw
eric.carlson@apple.com [Mon, 10 Nov 2014 18:35:17 +0000 (18:35 +0000)]
[iOS] wireless playback placeholder UI doesn't always draw
https://bugs.webkit.org/show_bug.cgi?id=138548

While it is important to only listen for the 'webkitplaybacktargetavailabilitychanged' event
when we are displaying inline controls because listening for it increases power consumption,
we should always listen for the 'webkitcurrentplaybacktargetiswirelesschanged' event because
it controls whether or not we draw the placeholder UI which is always visible during wireless
playback.

Reviewed by Brent Fulgham.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.addVideoListeners): Always listen for the
    'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.removeVideoListeners): Always stop listening for the
    'webkitcurrentplaybacktargetiswirelesschanged' event.
(ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Call updateControls so we update
    the type of controls rendered and start listening for wireless target changes immediately.
(ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): Don't start and stop
    listening for 'webkitcurrentplaybacktargetiswirelesschanged', we should always listen for it.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175812 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoiOS build fix.
mitz@apple.com [Mon, 10 Nov 2014 18:04:27 +0000 (18:04 +0000)]
iOS build fix.

* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::createLayer):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175811 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove BloomFilter size limit
antti@apple.com [Mon, 10 Nov 2014 17:05:28 +0000 (17:05 +0000)]
Remove BloomFilter size limit
https://bugs.webkit.org/show_bug.cgi?id=138549

Reviewed by Andreas Kling.

* wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175810 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCrash in WebCore::Node::getFlag
ossy@webkit.org [Mon, 10 Nov 2014 16:20:43 +0000 (16:20 +0000)]
Crash in WebCore::Node::getFlag
https://bugs.webkit.org/show_bug.cgi?id=137961

Reviewed by Antti Koivisto.

Source/WebCore:

* editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyBlockStyle): Null pointer check added.

LayoutTests:

* editing/execCommand/crash-137961-expected.txt: Added.
* editing/execCommand/crash-137961.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175809 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Fix the test font path after r175555.
ossy@webkit.org [Mon, 10 Nov 2014 15:37:29 +0000 (15:37 +0000)]
[EFL] Fix the test font path after r175555.

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-11-10
Reviewed by Csaba Osztrogonác.

* WebKitTestRunner/PlatformEfl.cmake: Dependencies -> DependenciesEFL

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175808 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoASSERTION FAILED: !object || !object->parent()->isRuby() || is<RenderRubyRun>(*object...
mihnea@adobe.com [Mon, 10 Nov 2014 14:58:52 +0000 (14:58 +0000)]
ASSERTION FAILED: !object || !object->parent()->isRuby() || is<RenderRubyRun>(*object) || (object->isInline() && (object->isBeforeContent() || object->isAfterContent())) || (object->isAnonymous() && ... ) in WebCore::isAnonymousRubyInlineBlock
https://bugs.webkit.org/show_bug.cgi?id=137958

Reviewed by Chris Dumez.

Source/WebCore:

When a ruby element, with block behavior, dynamically changes its style
from multicol to without multicol, we have to remove its special children,
RenderMultiColumnFlowThread and RenderMultiColumnSet, the normal way using
the method in RenderBlockFlow base class. This patch adds both
RenderMultiColumnFlowThread and RenderMultiColumnSet to the list of RenderRuby
children removed normally and adds a new function - isRubyChildForNormalRemove -
to test the condition and use it in the assertion in RenderRuby*::removeChild
method.

Test: fast/multicol/newmulticol/ruby-from-multicol-to-auto.html

* rendering/RenderRuby.cpp:
(WebCore::isRubyChildForNormalRemove):
(WebCore::RenderRubyAsInline::removeChild):
(WebCore::RenderRubyAsBlock::removeChild):

LayoutTests:

* fast/multicol/newmulticol/ruby-from-multicol-to-auto-expected.txt: Added.
* fast/multicol/newmulticol/ruby-from-multicol-to-auto.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175807 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[WK2] Use C++ lambdas in IPC::Connection
zandobersek@gmail.com [Mon, 10 Nov 2014 12:29:57 +0000 (12:29 +0000)]
[WK2] Use C++ lambdas in IPC::Connection
https://bugs.webkit.org/show_bug.cgi?id=138018

Reviewed by Anders Carlsson.

Replace uses of WTF::bind() in the IPC::Connection class with C++11 lambdas.

* Platform/IPC/Connection.cpp:
(IPC::Connection::SyncMessageState::processIncomingMessage):
(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):
(IPC::Connection::invalidate):
(IPC::Connection::sendMessage):
(IPC::Connection::processIncomingMessage):
(IPC::Connection::enqueueIncomingMessage):
* Platform/IPC/mac/ConnectionMac.mm:
(IPC::Connection::initializeDeadNameSource):
(IPC::Connection::receiveSourceEventHandler):
* Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::open):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Add missing test results since r169631, r174992
commit-queue@webkit.org [Mon, 10 Nov 2014 10:48:30 +0000 (10:48 +0000)]
[EFL] Add missing test results since r169631, r174992
https://bugs.webkit.org/show_bug.cgi?id=138502

Patch by Sanghyup Lee <sh53.lee@samsung.com> on 2014-11-10
Reviewed by Gyuyoung Kim.

* platform/efl/accessibility/aria-inherits-presentational-expected.txt: Added.
* platform/efl/accessibility/css-content-attribute-expected.txt: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175805 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoEnable Cortex-A53-specific code paths by default if core is detected.
commit-queue@webkit.org [Mon, 10 Nov 2014 10:38:09 +0000 (10:38 +0000)]
Enable Cortex-A53-specific code paths by default if core is detected.
https://bugs.webkit.org/show_bug.cgi?id=138499

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Csaba Osztrogonác.

On ARM64/Linux, check /proc/cpuinfo for CPU part 0xd03 (signaling
Cortex-A53) and set the initial value of WTF_CPU_ARM64_CORTEXA53 to true
if found.

Since on ARM64/Linux the part number that cpuinfo reports depends on
the core the query is run on, the check is bound to and executed on the
available cores one by one.

* Source/cmake/OptionsCommon.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175804 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Remove unnecessary version check from OptionsEfl.cmake
evab.u-szeged@partner.samsung.com [Mon, 10 Nov 2014 09:09:44 +0000 (09:09 +0000)]
[EFL] Remove unnecessary version check from OptionsEfl.cmake
https://bugs.webkit.org/show_bug.cgi?id=138498

Reviewed by Csaba Osztrogonác.

* Source/cmake/OptionsEfl.cmake:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175803 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix 'noreturn' function does return warning in LLVMOverrides.cpp
commit-queue@webkit.org [Mon, 10 Nov 2014 08:00:36 +0000 (08:00 +0000)]
Fix 'noreturn' function does return warning in LLVMOverrides.cpp
https://bugs.webkit.org/show_bug.cgi?id=138306

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-09
Reviewed by Filip Pizlo.

Adding NO_RETURN where needed.

* llvm/library/LLVMExports.cpp:
(initializeAndGetJSCLLVMAPI):
* llvm/library/LLVMOverrides.cpp:
* llvm/library/LLVMTrapCallback.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175802 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix the exception fuzz helper to generate targets in the correct range
commit-queue@webkit.org [Mon, 10 Nov 2014 07:59:26 +0000 (07:59 +0000)]
Fix the exception fuzz helper to generate targets in the correct range
https://bugs.webkit.org/show_bug.cgi?id=138544

Patch by Akos Kiss <akiss@inf.u-szeged.hu> on 2014-11-10
Reviewed by Filip Pizlo.

Currently, the script generates exception fuzz targets in the range of
0..($checkCount-1). However, target 0 is never hit, while target 1 is
always outside of the outermost try block of the tests, which therefore
prints unexpected output and results in false failures when fired at.
Additionally, target $checkCount is never generated.

This patch fixes the script to generate targets in the range of
2..$checkCount.

* Scripts/jsc-stress-test-helpers/js-exception-fuzz:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175801 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[EFL] Remove GamepadDeviceEfl::create()
gyuyoung.kim@samsung.com [Mon, 10 Nov 2014 06:52:30 +0000 (06:52 +0000)]
[EFL] Remove GamepadDeviceEfl::create()
https://bugs.webkit.org/show_bug.cgi?id=138553

Reviewed by Darin Adler.

As a step to use std::unique_ptr<> and std::make_unique<>, this patch removes GamepadDeviceEfl::create().
Instead we use std::make_unique<>.

No new tests, no behavior changes.

* platform/efl/GamepadsEfl.cpp:
(WebCore::GamepadsEfl::registerDevice):
(WebCore::GamepadDeviceEfl::create): Deleted.
(WebCore::GamepadsEfl::unregisterDevice): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175800 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoRemove create() factory function in FooAnimationValue classes
gyuyoung.kim@samsung.com [Mon, 10 Nov 2014 06:46:54 +0000 (06:46 +0000)]
Remove create() factory function in FooAnimationValue classes
https://bugs.webkit.org/show_bug.cgi?id=138206

Reviewed by Darin Adler.

As a step to use std::unique_ptr and std::make_unique, this patch removes create()
factory function in FooAnimationValue classes. As this changes, FooAnimationValue::create()
are changed to std::make_unique<>.

Source/WebCore:

No new tests, no behavior changes.

* platform/graphics/GraphicsLayer.cpp:
(WebCore::KeyframeValueList::insert):
* platform/graphics/GraphicsLayer.h:
(WebCore::FloatAnimationValue::FloatAnimationValue):
(WebCore::TransformAnimationValue::TransformAnimationValue):
(WebCore::FilterAnimationValue::FilterAnimationValue):
(WebCore::FloatAnimationValue::create): Deleted.
(WebCore::TransformAnimationValue::create): Deleted.
(WebCore::FilterAnimationValue::create): Deleted.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::startAnimation):
(WebCore::RenderLayerBacking::startTransition):

Source/WebKit2:

* Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp:
(IPC::ArgumentCoder<GraphicsLayerAnimation>::decode):
* WebProcess/WebCoreSupport/WebInspectorClient.cpp:
(WebKit::WebInspectorClient::showPaintRect):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175799 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agomake-passwords-json.py should generarate everything needed for testing
ossy@webkit.org [Mon, 10 Nov 2014 06:11:47 +0000 (06:11 +0000)]
make-passwords-json.py should generarate everything needed for testing
https://bugs.webkit.org/show_bug.cgi?id=138503

Reviewed by Ryosuke Niwa.

* BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py:
Renamed from make-passwords-json.py to be able included from mastercfg_unittest.py.
Additionally generate auth.json, credentials.cfg and committers.cfg too.
(create_mock_slave_passwords_dict): Moved from mastercfg_unittest.py
* BuildSlaveSupport/build.webkit.org-config/mastercfg_unittest.py:
(BuildBotConfigLoader._mock_open): Use make_passwords_json.create_mock_slave_passwords_dict() to avoid duplication.
(BuildBotConfigLoader._create_mock_passwords_dict): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUnreviewed, fix typo in r175796.
cdumez@apple.com [Mon, 10 Nov 2014 05:48:35 +0000 (05:48 +0000)]
Unreviewed, fix typo in r175796.

Rename areEssentialEqualAsFloat to areEssentiallyEqualAsFloat.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentiallyEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::areEssentialEqualAsFloat): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175797 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoAdd a more correct way to compare floating point numbers and use it
cdumez@apple.com [Mon, 10 Nov 2014 00:21:56 +0000 (00:21 +0000)]
Add a more correct way to compare floating point numbers and use it
https://bugs.webkit.org/show_bug.cgi?id=138527

Reviewed by Darin Adler.

Source/WebCore:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

No new tests, no behavior change.

* page/DOMTimer.cpp:
(WebCore::DOMTimer::updateTimerIntervalIfNecessary):
* platform/graphics/FloatQuad.cpp:
(WebCore::FloatQuad::isRectilinear):
* platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius):
* platform/graphics/FloatSize.h:
(WebCore::areEssentiallyEqual):
(WebCore::withinEpsilon): Deleted.

Source/WebKit/mac:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

* WebView/WebHTMLView.mm:
(-[WebHTMLView _adjustedBottomOfPageWithTop:bottom:limit:]):

Source/WebKit2:

Use the new WTF::areEssentuallyEqual() utility function from MathExtras.h
to compare floating-point numbers.

* UIProcess/API/Cocoa/WKWebView.mm:
(withinEpsilon):
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::withinEpsilon):

* UIProcess/API/Cocoa/WKWebView.mm:
(areEssentiallyEqualAsFloat):
(-[WKWebView _didCommitLayerTree:]):
(withinEpsilon): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.cpp:
(WebKit::PageViewportController::updateMinimumScaleToFit):
(WebKit::fuzzyCompare): Deleted.
* UIProcess/CoordinatedGraphics/PageViewportController.h:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::areEssentialEqualAsFloat):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::withinEpsilon): Deleted.

Source/WTF:

To compare floating point numbers in the code base, we would often rely
on the following check:
std::abs(a - b) <= std::numeric_limits<T>::epsilon()

However, this is not correct for arbitrary floating point values, and
will fail for values that are not close to zero.

This patch introduces a WTF::areEssentiallyEqual() templated function
that can only be called with floating point types and relies on the
following formula from [1][2] that defines u as being "essentially
equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e

[1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of
    Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998.
    229-45.
[2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html

* wtf/MathExtras.h:
(WTF::safeFPDivision):
(WTF::areEssentiallyEqual):
(WTF::withinEpsilon): Deleted.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175796 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoPut bug link at the start of the line.
simon.fraser@apple.com [Sun, 9 Nov 2014 19:46:24 +0000 (19:46 +0000)]
Put bug link at the start of the line.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175795 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoImplement round-rect clipping on video elements
simon.fraser@apple.com [Sun, 9 Nov 2014 19:42:17 +0000 (19:42 +0000)]
Implement round-rect clipping on video elements
https://bugs.webkit.org/show_bug.cgi?id=138537
rdar://problem/9534399

Reviewed by Darin Adler.
Source/WebCore:

Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.

Test: compositing/video/video-border-radius.html

* WebCore.exp.in:
* platform/graphics/FloatRoundedRect.cpp:
(WebCore::FloatRoundedRect::Radii::isUniformCornerRadius): Returns true if all
corner radii are the same, and have equal widths and heights.
* platform/graphics/FloatRoundedRect.h: Allow construction without an explicit
rect.
* platform/graphics/GraphicsLayer.cpp:
(WebCore::GraphicsLayer::GraphicsLayer): nullptr goodness.
(showGraphicsLayerTree): Print contents layers when debugging.
* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::contentsClippingRect): Make this take a FloatRoundedRect.
(WebCore::GraphicsLayer::setContentsClippingRect):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsClippingRect):
(WebCore::GraphicsLayerCA::setContentsToSolidColor):
(WebCore::GraphicsLayerCA::setContentsToImage):
(WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateClippingStrategy): Determines whether we can simply
use corner-radius on the existing contentsClippingLayer, or whether we have to
create a shape layer to use as a mask.
(WebCore::GraphicsLayerCA::updateContentsRects): We have to add/remove the shape layer
based on the rounded rect radii. Calls updateClippingStrategy() on the clipping layer,
and also updates clones accordingly.
(WebCore::dumpInnerLayer):
(WebCore::GraphicsLayerCA::dumpAdditionalProperties): Dump all the inner layers
(requiring on test rebaseline), including the new shape and backdrop layers.
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCALayer.h: Add a new shape layer type.
* platform/graphics/ca/mac/PlatformCALayerMac.h: Support for corner radius and
a rounded rect shape mask.
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::PlatformCALayerMac):
(PlatformCALayerMac::clone):
(PlatformCALayerMac::setMask):
(PlatformCALayerMac::cornerRadius):
(PlatformCALayerMac::setCornerRadius):
(PlatformCALayerMac::shapeRoundedRect):
(PlatformCALayerMac::setShapeRoundedRect):
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::cornerRadius):
(PlatformCALayerWin::setCornerRadius):
(PlatformCALayerWin::shapeRoundedRect):
(PlatformCALayerWin::setShapeRoundedRect):
* platform/graphics/ca/win/PlatformCALayerWin.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::resetContentsRect): Use getRoundedInnerBorderFor() to get
the rounded rect used to clip contents.
(WebCore::RenderLayerBacking::positionOverflowControlsLayers): Push a FloatRoundedRect for the contents clip,
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor): Ditto.
(WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage): Ditto.
(WebCore::RenderLayerBacking::updateImageContents): Get the rounded rect clip.
* rendering/RenderLayerBacking.h: nullptr.

Source/WebKit2:

Support border-radius on video and other layers with composited contents,
by pushing a FloatRoundedRect onto the GraphicsLayer as the contentsClippingRect,
and, on Mac, using layer corner-radius or a CAShapeLayer mask.

* Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FloatRoundedRect>::encode):
(IPC::ArgumentCoder<FloatRoundedRect>::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/RemoteLayerBackingStore.mm: New shape layer type.
(WebKit::RemoteLayerBackingStore::drawInContext):
* Shared/mac/RemoteLayerTreePropertyApplier.mm:
(WebKit::applyPropertiesToLayer): Apply corner-radius and shape path.
* Shared/mac/RemoteLayerTreeTransaction.h: Prettify the flags. Yes, I prefer this style.
* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTransaction::LayerProperties::LayerProperties):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::encode):
(WebKit::RemoteLayerTreeTransaction::LayerProperties::decode):
(WebKit::RemoteLayerTreeTextStream::operator<<):
(WebKit::dumpChangedLayers):
(WebKit::RemoteLayerTreeTransaction::description):
* UIProcess/ios/RemoteLayerTreeHostIOS.mm:
(+[WKShapeView layerClass]): Make UIViews with a CAShapeLayer layer class.
(WebKit::RemoteLayerTreeHost::createLayer):
* UIProcess/mac/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::createLayer):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::updateClonedLayerProperties):
(WebKit::isEquivalentLayer):
(WebKit::PlatformCALayerRemote::setMask):
(WebKit::PlatformCALayerRemote::setClonedLayer):
(WebKit::PlatformCALayerRemote::cornerRadius):
(WebKit::PlatformCALayerRemote::setCornerRadius):
(WebKit::PlatformCALayerRemote::shapeRoundedRect):
(WebKit::PlatformCALayerRemote::setShapeRoundedRect):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:

LayoutTests:

Test that uses clip() to compare a bit of rounded-rect video in the corner.
Rebaselined test that dumped contents layers.

* compositing/video/video-border-radius-expected.html: Added.
* compositing/video/video-border-radius.html: Added.
* platform/mac/compositing/reflections/direct-image-object-fit-reflected-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175794 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years ago[GTK] generate-gtkdoc should ignore invalid files
carlosgc@webkit.org [Sun, 9 Nov 2014 18:27:56 +0000 (18:27 +0000)]
[GTK] generate-gtkdoc should ignore invalid files
https://bugs.webkit.org/show_bug.cgi?id=138542

Reviewed by Darin Adler.

* gtk/generate-gtkdoc:
(files_to_ignore.file_should_be_ignored): Return True to ignore
invalid files.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175793 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix various cases of incorrect cross-thread capture of non-thread-safe RefCounted
darin@apple.com [Sun, 9 Nov 2014 17:25:21 +0000 (17:25 +0000)]
Fix various cases of incorrect cross-thread capture of non-thread-safe RefCounted
https://bugs.webkit.org/show_bug.cgi?id=138539

Reviewed by Alexey Proskuryakov.

* Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
(WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect): Use StringCapture
instead of isolatedCopy, to avoid a problem where the original thread does its deref
after passing the string to the other thread.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Peer::didClose): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::connect): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::send): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::close): Ditto.
(WebCore::WorkerThreadableWebSocketChannel::Bridge::fail): Ditto.

* dom/Document.cpp:
(WebCore::Document::addConsoleMessage): Pass a StringCapture when creating
AddConsoleMessageTask. Same reason as above, but in a different context.
(WebCore::Document::addMessage): Ditto.

* dom/ScriptExecutionContext.h: Changed AddConsoleMessageTask to take and
capture a StringCapture rather than a String, for the same reason as above.

* fileapi/AsyncFileStream.cpp:
(WebCore::AsyncFileStream::write): Use URLCapture instead of trying to use
StringCapture on a URL, since that doesn't preserve the validity flag.

* loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge): Use StringCapture.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFail): Ditto.
(WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck): Ditto.

* platform/URL.h: Added URLCapture.

* platform/network/FormData.cpp:
(WebCore::appendBlobResolved): Remove incorrect pointless code that creates a new URL
from an existing URL with the ParsedURLString constructor.

* workers/DefaultSharedWorkerRepository.cpp: Fixed code that was trying to copy a URL
by copying a string to instead just use URL::copy. The comment claimed that URL::copy
is not thread safe, but that claim is incorrect.
(WebCore::SharedWorkerProxy::postExceptionToWorkerObject): Use StringCapture.
(WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::DefaultSharedWorkerRepository::getProxy): Use URL::copy.

* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::addConsoleMessage): Use StringCapture.
(WebCore::WorkerGlobalScope::addMessage): Ditto.
* workers/WorkerMessagingProxy.cpp:
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject): Ditto.
(WebCore::WorkerMessagingProxy::sendMessageToInspector): Ditto.
(WebCore::WorkerMessagingProxy::postMessageToPageInspector): Ditto.

* workers/WorkerRunLoop.cpp:
(WebCore::WorkerRunLoop::postTaskAndTerminate): Make a Task with make_unique
rather than with Task::create. Removed an extra isolatedCopy, unneeded because
the Task constructor already does an isolatedCopy.
(WebCore::WorkerRunLoop::postTaskForMode): Ditto.
(WebCore::WorkerRunLoop::Task::create): Deleted.

* workers/WorkerRunLoop.h: Removed unneeded create function and explicit
public empty destructor.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175792 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoUse is<>() / downcast<>() for HTMLCollection subclasses
cdumez@apple.com [Sun, 9 Nov 2014 17:21:51 +0000 (17:21 +0000)]
Use is<>() / downcast<>() for HTMLCollection subclasses
https://bugs.webkit.org/show_bug.cgi?id=138541

Reviewed by Sam Weinig.

Use is<>() / downcast<>() for HTMLCollection subclasses for
safety and consistency with the rest of the code base.

No new tests, no behavior change.

* bindings/gobject/WebKitDOMPrivate.cpp:
(WebKit::wrap):
* html/HTMLAllCollection.h:
* html/HTMLCollection.cpp:
(WebCore::isMatchingHTMLElement):
(WebCore::isMatchingElement):
* html/HTMLCollection.h:
* html/HTMLFormControlsCollection.h:
* html/HTMLNameCollection.h:
* html/HTMLOptionsCollection.h:
* html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::options):
* html/HTMLTableRowsCollection.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175791 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove _ignoresNonWheelMouseEvents implementation to WKView(Private)
commit-queue@webkit.org [Sun, 9 Nov 2014 10:12:14 +0000 (10:12 +0000)]
Move _ignoresNonWheelMouseEvents implementation to WKView(Private)
https://bugs.webkit.org/show_bug.cgi?id=138487

Patch by Conrad Shultz <conrad_shultz@apple.com> on 2014-11-09
Reviewed by Dan Bernstein.

Relocate some methods that should have been in a category implementation.

* UIProcess/API/mac/WKView.mm:
(-[WKView _setIgnoresNonWheelMouseEvents:]):
(-[WKView _ignoresNonWheelMouseEvents]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175790 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agohttp/tests/xmlhttprequest/cross-origin-cookie-storage.html fails with PPT.
ap@apple.com [Sun, 9 Nov 2014 06:32:47 +0000 (06:32 +0000)]
http/tests/xmlhttprequest/cross-origin-cookie-storage.html fails with PPT.

This test used to pass because some previous test leaked a cookie. Now that we
clear cookies between tests, it fails, and will fail until we implement testRunner.setAlwaysAcceptCookies.

* platform/mac-wk2/TestExpectations:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoCall faster HTMLElement::hasTagName() in HTMLCollection
cdumez@apple.com [Sun, 9 Nov 2014 05:59:52 +0000 (05:59 +0000)]
Call faster HTMLElement::hasTagName() in HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=138529

Reviewed by Darin Adler.

Call faster HTMLElement::hasTagName() in HTMLCollection instead of
slower Node::hasTagName() by restructuring the code a bit to
distinguish collection that deal only with HTMLElements from others.

No new tests, no behavior change.

* html/HTMLCollection.cpp:
(WebCore::isMatchingHTMLElement):
(WebCore::isMatchingElement):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175788 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoMove isEmptyValue() logic from HTMLInputElement to TextFieldInputType
cdumez@apple.com [Sun, 9 Nov 2014 05:46:59 +0000 (05:46 +0000)]
Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
https://bugs.webkit.org/show_bug.cgi?id=138538

Reviewed by Darin Adler.

Move isEmptyValue() logic from HTMLInputElement to TextFieldInputType
as this only makes sense for text field input types.

No new tests, no behavior change.

* html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::isEmptyValue):
* html/InputType.cpp:
(WebCore::InputType::isEmptyValue):
* html/InputType.h:
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::isEmptyValue):
* html/TextFieldInputType.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175787 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoFix Ember.js warnings the new perf dashboard
rniwa@webkit.org [Sun, 9 Nov 2014 03:21:13 +0000 (03:21 +0000)]
Fix Ember.js warnings the new perf dashboard
https://bugs.webkit.org/show_bug.cgi?id=138531

Reviewed by Darin Adler.

Fixed various warnings.

* public/v2/app.js:
(App.InteractiveChartComponent._relayoutDataAndAxes): We can't use "rem". Use this._rem as done for x.
* public/v2/data.js:
(PrivilegedAPI._post): Removed the superfluous console.log.
(CommitLogs.fetchForTimeRange): Ditto.
* public/v2/index.html: Added tbody as required by the HTML specification.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175786 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agohttp/tests/navigation/redirect-on-back-updates-history-item.html leaks a cookie
ap@apple.com [Sun, 9 Nov 2014 03:18:40 +0000 (03:18 +0000)]
http/tests/navigation/redirect-on-back-updates-history-item.html leaks a cookie
https://bugs.webkit.org/show_bug.cgi?id=138507

Reviewed by Pratik Solanki.

* http/tests/navigation/resources/redirect-updates-history-item-done.html:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175785 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoWeb Inspector: decouple child element folderization logic from FrameTreeElement
commit-queue@webkit.org [Sun, 9 Nov 2014 03:17:40 +0000 (03:17 +0000)]
Web Inspector: decouple child element folderization logic from FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=138364

Patch by Matt Baker <mattbaker@apple.com> on 2014-11-08
Reviewed by Timothy Hatcher.

Created FolderizedTreeElement base class, which FrameTreeElement now inherits via SourceCodeTreeElement.
FolderizedTreeElement uses settings provided by derived classes for labeling subfolders and to determine
folder membership for child items.

* UserInterface/Base/Main.js:
(WebInspector.canArchiveMainFrame):
* UserInterface/Main.html:
* UserInterface/Models/LayoutTimelineRecord.js:
(WebInspector.LayoutTimelineRecord.displayNameForEventType):
(WebInspector.LayoutTimelineRecord.EventType.displayName): Deleted.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.typeFromMIMEType):
(WebInspector.Resource.displayNameForType):
(WebInspector.Resource.prototype.get syntheticMIMEType):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.Type.fromMIMEType): Deleted.
(WebInspector.Resource.Type.displayName): Deleted.
* UserInterface/Models/SourceMapResource.js:
(WebInspector.SourceMapResource):
* UserInterface/Views/FolderizedTreeElement.js: Added.
(WebInspector.FolderizedTreeElement):
(WebInspector.FolderizedTreeElement.prototype.get groupedIntoFolders):
(WebInspector.FolderizedTreeElement.prototype.set folderSettingsKey):
(WebInspector.FolderizedTreeElement.prototype.registerFolderizeSettings):
(WebInspector.FolderizedTreeElement.prototype.set removeChildren):
(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.addRepresentedObjectToNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype.removeChildForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype.compareChildTreeElements):
(WebInspector.FolderizedTreeElement.prototype.updateParentStatus):
(WebInspector.FolderizedTreeElement.prototype._clearNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._removeRepresentedObjectFromNewChildQueue):
(WebInspector.FolderizedTreeElement.prototype._addTreeElement):
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
(WebInspector.FolderizedTreeElement.prototype._insertFolderTreeElement):
(WebInspector.FolderizedTreeElement.prototype._insertChildTreeElement):
(WebInspector.FolderizedTreeElement.prototype._removeTreeElement):
(WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._folderTreeElementExpandedStateChange):
(WebInspector.FolderizedTreeElement.prototype._settingsForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders.pushCategory):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
* UserInterface/Views/FrameTreeElement.js:
(.this):
(WebInspector.FrameTreeElement.prototype.updateSourceMapResources):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.compareChildTreeElements):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._mainResourceDidChange):
(WebInspector.FrameTreeElement.prototype._resourceWasAdded):
(WebInspector.FrameTreeElement.prototype._resourceWasRemoved):
(WebInspector.FrameTreeElement.prototype._childFrameWasAdded):
(WebInspector.FrameTreeElement.prototype._childFrameWasRemoved):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasAdded):
(WebInspector.FrameTreeElement.prototype._childContentFlowWasRemoved):
(WebInspector.FrameTreeElement.prototype._rootDOMNodeInvalidated):
(WebInspector.FrameTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype.removeChildren): Deleted.
(WebInspector.FrameTreeElement.prototype._updateParentStatus): Deleted.
(WebInspector.FrameTreeElement.prototype._addRepresentedObjectToNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._removeRepresentedObjectFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._populateFromNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._clearNewChildQueue): Deleted.
(WebInspector.FrameTreeElement.prototype._addChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._removeChildForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._addTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareTreeElementsByMainTitle): Deleted.
(WebInspector.FrameTreeElement.prototype._insertFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._compareResourceTreeElements): Deleted.
(WebInspector.FrameTreeElement.prototype._insertResourceTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._removeTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._folderNameForResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject.createFolderTreeElement): Deleted.
(WebInspector.FrameTreeElement.prototype._parentTreeElementForRepresentedObject): Deleted.
(WebInspector.FrameTreeElement.prototype._folderTreeElementExpandedStateChange): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushResourceType): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders.pushCategory): Deleted.
(WebInspector.FrameTreeElement.prototype._shouldGroupIntoFolders): Deleted.
* UserInterface/Views/LayoutTimelineDataGridNode.js:
(WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/LayoutTimelineView.js:
(WebInspector.LayoutTimelineView): Deleted.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView): Deleted.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshResourceType):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/SourceCodeTreeElement.js:
(WebInspector.SourceCodeTreeElement):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.createColumnScopeBar):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement):
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175784 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDelete cookies between tests
ap@apple.com [Sun, 9 Nov 2014 03:17:02 +0000 (03:17 +0000)]
Delete cookies between tests
https://bugs.webkit.org/show_bug.cgi?id=138528

Reviewed by Sam Weinig.

Source/WebKit/mac:

* WebView/WebPreferences.mm: (+[WebPreferences _clearNetworkLoaderSession]):
* WebView/WebPreferencesPrivate.h:
Added an SPI for DumpRenderTree.

Tools:

* DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebPreferencesToConsistentValues):
* WebKitTestRunner/TestController.cpp:
(WTR::TestController::resetPreferencesToConsistentValues):
Do it.

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
Added a FIXME.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175783 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoReplace FileThread class with a single function
darin@apple.com [Sun, 9 Nov 2014 01:01:22 +0000 (01:01 +0000)]
Replace FileThread class with a single function
https://bugs.webkit.org/show_bug.cgi?id=138282

Reviewed by Alexey Proskuryakov.

Source/WebCore:

* CMakeLists.txt: Removed FileThread.cpp.

* WebCore.vcxproj/WebCore.vcxproj: Removed FileThread.cpp/.h.
* WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
* WebCore.xcodeproj/project.pbxproj: Ditto.

* bindings/generic/ActiveDOMCallback.cpp: Removed unneeded includes.
* dom/ActiveDOMObject.cpp: Ditto.

* fileapi/AsyncFileStream.cpp:
(WebCore::callOnFileThread): Added. Implements the file thread.
(WebCore::AsyncFileStream::AsyncFileStream): Take a reference to the client.
Make m_internals. Use the destroyed flag instead of trickier techniques to
handle stopping. Once the stream is destroyed, there will be no further callbacks.
(WebCore::AsyncFileStream::~AsyncFileStream): Added assertions and merged in the
stop behavior here. This class no longer requires an explicit stop function.
(WebCore::AsyncFileStream::perform): Added. Helper used for all the operations
below. Takes a function that performs an operation and then returns a client
callback function. Respects the m_stopped boolean on the file thread (so we
don't do extra operations) and on the client thread (so we are guaranteed not
to get any client callbacks even if the file thread was partway through an
operation).
(WebCore::AsyncFileStream::getSize): Changed to use the perform function.
(WebCore::AsyncFileStream::openForRead): Ditto. Also fixed reference count
thread safety issue by capturing a StringCapture rather than a String.
(WebCore::AsyncFileStream::openForWrite): Ditto.
(WebCore::AsyncFileStream::close): Changed to use callOnFileThread.
(WebCore::AsyncFileStream::read): Changed to use the perform function.
(WebCore::AsyncFileStream::write): Ditto. Also fixed reference count
thread safety issue by capturing a StringCapture rather than a URL.
(WebCore::AsyncFileStream::truncate): Ditto.

* fileapi/AsyncFileStream.h: Removed use of RefCounted since we only need
single ownership. Removed the stop function, since we can now stop when
the stream is destroyed since we have single ownership. Made a new Internals
object to handle destruction while operations are still going on the file thread.

* fileapi/FileThread.cpp: Removed.
* fileapi/FileThread.h: Removed.

* loader/ResourceLoader.cpp: Removed unneeded include.

* platform/FileStream.cpp:
(WebCore::FileStream::~FileStream): Merged the stop function in here.

* platform/FileStream.h: Removed use of RefCounted since we only need
single ownership. Removed the empty start function. Removed the stop function,
since we can now stop when the stream is destroyed since we have single ownership.

* platform/FileStreamClient.h: Removed unneeded didStart and didStop.

* platform/network/BlobResourceHandle.cpp:
(WebCore::BlobResourceHandle::BlobResourceHandle): Use make_unique to make the
stream objects instead of custom create functions.
(WebCore::BlobResourceHandle::~BlobResourceHandle): Removed now-unneeded code
to call stop functions. Destroying the objects now takes care of the this, and
that's done by the unique_ptrs.
(WebCore::BlobResourceHandle::cancel): Removed the rest of the code to stop the
m_asyncStream, keeping only the code that sets it to null. That now stops the
stream by destroying it.

* platform/network/BlobResourceHandle.h: Use std::unique_ptr rather than
RefPtr for the file stream objects.

* storage/StorageThread.h: Tweaked formatting of std::function<void()> to
match the format used elsewhere in WebKit.

Source/WebKit:

* WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
Removed exports of obsolete threading functions.

Source/WTF:

* wtf/MessageQueue.h: Made queue work on any type and not require wrapping
everything in a unique_ptr.

* wtf/Threading.cpp:
(WTF::threadEntryPoint): Changed to use a std::function instead of a function pointer.
(WTF::createThread): Add a version that takes a std::function. Reimplemented the
old version using lambdas. Removed the obsolete versions that were there just to support
binary compatibility with very old versions of Safari.

* wtf/Threading.h: Removed an incorrect license header that covers code that was long ago
moved to a different file. Changed createThread to take a std::function instead of a function
pointer and data pointer. Moved internal functions after public functions.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

7 years agoDon't try to schedule a GraphicsLayer flush when propagating changes to replicas...
simon.fraser@apple.com [Sat, 8 Nov 2014 23:50:43 +0000 (23:50 +0000)]
Don't try to schedule a GraphicsLayer flush when propagating changes to replicas inside a flush
https://bugs.webkit.org/show_bug.cgi?id=138532

Reviewed by Dan Bernstein.

When changing masks on replica layers with certain layer configurations,
it was possible to hit an assertion that a flush was being scheduled when already
flushing, via propagateLayerChangeToReplicas(). Fix by passing the scheduleFlush
flag along.

Not testable with current GraphicsLayer configurations.

* platform/graphics/ca/GraphicsLayerCA.cpp:
* platform/graphics/ca/GraphicsLayerCA.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@175781 268f45cc-cd09-0410-ab3c-d52691b4dbfc