REGRESSION (r165356): Issues with Japanese text input
https://bugs.webkit.org/show_bug.cgi?id=137719
rdar://problem/18431952
rdar://problem/18483741

Reviewed by Darin Adler.

* WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::didChangeSelection):
In sync code path, ensure consistent message delivery order by adding
a DispatchMessageEvenWhenWaitingForSyncReply flag. This way, delayed
EditorStateChanged messages won't confuse UI process.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174708 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Unreviewed build fix after r174698

* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174709 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Unreviewed build fix after r174698 and r174709.

* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
* platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::supportsKeySystem):
(WebCore::AVFWrapper::shouldWaitForLoadingOfResource):
* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
New perf dashboard should have an ability to search commits by a keyword
https://bugs.webkit.org/show_bug.cgi?id=137675

Reviewed by Geoffrey Garen.

/api/commits/ now accepts query parameters to search a commit by a keyword. Its output format changed to
include "authorEmail" and "authorName" directly as columns instead of including an "author" object.
This API change allows fetch_commits_between to generate results without processing Postgres query results.

In the front end side, we've added a search pane in pane controller, and the interactive chart component
now has a concept of highlighted items which is used to indicate commits found by the search pane.

* public/api/commits.php:
(main): Extract query parameters: keyword, from, and to and use that to fetch appropriate commits.
(fetch_commits_between): Moved some code from main. Now takes a search term as the third argument.
We look for a commit if its author name or email contains the keyword or if its revision matches the keyword.
(format_commit): Renamed from format_commits. Now only formats one commit.

* public/include/db.php:
(Database::query_and_fetch_all): Now returns array() when the query results is empty (instead of false).

* public/v2/app.css: Renamed .close-button to .icon-button since it's used by a search button as well.

* public/v2/app.js:
(App.Pane.searchCommit): Added. Finds the commits by a search term and assigns 'highlightedItems',
which is a hash table that contains highlighted items' measurements' ids as keys.
(App.PaneController.actions.toggleSearch): Toggles the visibility of the search pane. Also sets
the default commit repository.
(App.PaneController.actions.searchCommit): Delegates the work to App.Pane.searchCommit.
(App.InteractiveChartComponent._constructGraphIfPossible): Fixed a bug that we weren't removing old this._dots.
Added the code to initialize this._highlights.
(App.InteractiveChartComponent._updateDimensionsIfNeeded): Updates dimensions of highlight lines.
(App.InteractiveChartComponent._updateHighlightPositions): Added. Ditto.
(App.InteractiveChartComponent._highlightedItemsChanged): Adds vertical lines for highlighted items and deletes
the existing lines for the old highlighted items.
(App.CommitsViewerComponent.commitsChanged): Updated the code per JSON API change mentioned above.
Also fixed a bug that the code tries to update the commits viewer even if the viewer had already been destroyed. 

* public/v2/chart-pane.css: Added style for the search pane and the search button.

* public/v2/data.js: Turned FetchCommitsForTimeRange into a class: CommitLogs.
(CommitLogs): Added.
(CommitLogs.fetchForTimeRange): Renamed from FetchCommitsForTimeRange. Takes a search term as an argument.
(CommitLogs._cachedCommitsBetween): Extracted from FetchCommitsForTimeRange.
(CommitLogs._cacheConsecutiveCommits): Ditto.
(FetchCommitsForTimeRange._cachedCommitsByRepository): Deleted.
(Measurement.prototype.commitTimeForRepository): Extracted from formattedRevisions.
(Measurement.prototype.formattedRevisions): Uses formattedRevisions. Deleted the unused code for commitTime.

* public/v2/index.html: Added the search pane and the search button. Also removed the unused attribute binding
for showingDetails since this property is no longer used.

* public/v2/manifest.js:
(App.Manifest.repositories): Added.
(App.Manifest.repositoriesWithReportedCommits): Ditto. Used by App.PaneController.actions.toggleSearch to find
the default repository to search.
(App.Manifest._fetchedManifest): Populates repositories and repositoriesWithReportedCommits.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174711 268f45cc-cd09-0410-ab3c-d52691b4dbfc
URLs that start with http:/// and https:/// lose two slashes when parsed, causing assertion failure and inconsistent behavior
https://bugs.webkit.org/show_bug.cgi?id=137718

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Added cases to fast/loader/url-parse-1.html.

* platform/URL.cpp:
(WebCore::URL::parse): In hierarchical schemes other than file:, ignore any additional
slashes after the ://, as prescribed by the authority-ignore-slashes state in the current
URL spec.

LayoutTests:

* fast/loader/url-parse-1-expected.txt: Updated results.
* fast/loader/url-parse-1.html: Added a few test cases.
* fast/url/file-http-base-expected.txt: Updated results.
* fast/url/host-expected.txt: Ditto.
* fast/url/invalid-urls-utf8-expected.txt: Ditto.
* fast/url/relative-expected.txt: Ditto.
* fast/url/standard-url-expected.txt: Ditto.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174712 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Win] Unreviewed build fix after r174710.

* platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::createSession):



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174713 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use is<>() / downcast<>() for RenderInline
https://bugs.webkit.org/show_bug.cgi?id=137704

Reviewed by Darin Adler.

Use is<>() / downcast<>() for RenderInline and clean up the surrounding
code.

No new tests, no behavior change.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::firstChildInContinuation):
* editing/SimplifyMarkupCommand.cpp:
(WebCore::SimplifyMarkupCommand::doApply):
* inspector/InspectorOverlay.cpp:
(WebCore::buildRendererHighlight):
* page/FrameView.cpp:
(WebCore::FrameView::paintContents):
* rendering/InlineFlowBox.cpp:
(WebCore::InlineFlowBox::removeLineBoxFromRenderObject):
(WebCore::InlineFlowBox::extractLineBoxFromRenderObject):
(WebCore::InlineFlowBox::attachLineBoxToRenderObject):
(WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
(WebCore::InlineFlowBox::nodeAtPoint):
(WebCore::InlineFlowBox::paint):
* rendering/InlineIterator.h:
(WebCore::bidiFirstSkippingEmptyInlines):
* rendering/LayoutState.cpp:
(WebCore::LayoutState::LayoutState):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::paintObject):
(WebCore::RenderBlock::inlineElementContinuation):
(WebCore::RenderBlock::addFocusRingRects):
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::willBeDestroyed):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
* rendering/RenderBlockFlow.h:
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForSegment):
(WebCore::RenderBlockFlow::layoutLineBoxes):
* rendering/RenderBox.cpp:
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
(WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
(WebCore::RenderBox::computePositionedLogicalWidthUsing):
(WebCore::RenderBox::computePositionedLogicalWidthReplaced):
(WebCore::RenderBox::layoutOverflowRectForPropagation):
* rendering/RenderBoxModelObject.cpp:
(WebCore::accumulateInFlowPositionOffsets):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::willBeRemovedFromTree):
* rendering/RenderElement.h:
(WebCore::RenderElement::dirtyLinesFromChangedChild):
* rendering/RenderFlowThread.cpp:
(WebCore::RenderFlowThread::addRegionsOverflowFromChild):
* rendering/RenderInline.cpp:
(WebCore::RenderInline::willBeDestroyed):
(WebCore::RenderInline::updateAlwaysCreateLineBoxes):
(WebCore::RenderInline::clippedOverflowRectForRepaint):
* rendering/RenderInline.h:
* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
* rendering/RenderLineBoxList.h:
* rendering/RenderNamedFlowThread.cpp:
(WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
* rendering/RenderObject.cpp:
(WebCore::RenderObject::insertedIntoTree):
* rendering/RenderRegion.cpp:
(WebCore::RenderRegion::overflowRectForFlowThreadPortion):
(WebCore::RenderRegion::visualOverflowRectForBox):
(WebCore::RenderRegion::visualOverflowRectForBoxForPropagation):
* rendering/RenderRegion.h:
* rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::willBeDestroyed):
* rendering/RenderTextLineBoxes.cpp:
(WebCore::RenderTextLineBoxes::removeAllFromParent):
(WebCore::RenderTextLineBoxes::dirtyRange):
* rendering/line/BreakingContextInlineHeaders.h:
(WebCore::inlineLogicalWidth):
(WebCore::BreakingContext::handleEmptyInline):
* rendering/line/LineInlineHeaders.h:
(WebCore::requiresLineBox):
(WebCore::setStaticPositions):
* rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::paint):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174714 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use is<>() / downcast<>() for PlatformCAAnimation subclasses
https://bugs.webkit.org/show_bug.cgi?id=137722

Reviewed by Simon Fraser.

Use is<>() / downcast<>() for PlatformCAAnimation subclasses and clean
up the surrounding code.

Source/WebCore:

No new tests, no behavior change.

* page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::Highlight::fadeIn):
(WebCore::ServicesOverlayController::Highlight::fadeOut):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::moveOrCopyLayerAnimation):
(WebCore::GraphicsLayerCA::updateAnimations):
(WebCore::GraphicsLayerCA::setAnimationOnLayer):
(WebCore::GraphicsLayerCA::pauseCAAnimationOnLayer):
* platform/graphics/ca/GraphicsLayerCA.h:
* platform/graphics/ca/PlatformCAAnimation.h:
* platform/graphics/ca/PlatformCALayer.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.h:
* platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
(PlatformCAAnimationMac::copy):
(PlatformCAAnimationMac::copyTimingFunctionFrom):
(PlatformCAAnimationMac::copyFromValueFrom):
(PlatformCAAnimationMac::copyToValueFrom):
(PlatformCAAnimationMac::copyValuesFrom):
(PlatformCAAnimationMac::copyKeyTimesFrom):
(PlatformCAAnimationMac::copyTimingFunctionsFrom):
* platform/graphics/ca/mac/PlatformCALayerMac.h:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayerMac::addAnimationForKey):
* platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimationWin::copy):
(PlatformCAAnimationWin::copyTimingFunctionFrom):
(PlatformCAAnimationWin::copyFromValueFrom):
(PlatformCAAnimationWin::copyToValueFrom):
(PlatformCAAnimationWin::copyValuesFrom):
(PlatformCAAnimationWin::copyKeyTimesFrom):
(PlatformCAAnimationWin::copyTimingFunctionsFrom):
* platform/graphics/ca/win/PlatformCAAnimationWin.h:
* platform/graphics/ca/win/PlatformCALayerWin.cpp:
(PlatformCALayerWin::addAnimationForKey):
* platform/graphics/ca/win/PlatformCALayerWin.h:

Source/WebKit2:

* WebProcess/WebPage/mac/PlatformCAAnimationRemote.h:
* WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:
(WebKit::PlatformCAAnimationRemote::copy):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionFrom):
(WebKit::PlatformCAAnimationRemote::copyFromValueFrom):
(WebKit::PlatformCAAnimationRemote::copyToValueFrom):
(WebKit::PlatformCAAnimationRemote::copyValuesFrom):
(WebKit::PlatformCAAnimationRemote::copyKeyTimesFrom):
(WebKit::PlatformCAAnimationRemote::copyTimingFunctionsFrom):
* WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:
(WebKit::PlatformCALayerRemote::addAnimationForKey):
(WebKit::PlatformCALayerRemote::animationStarted):
* WebProcess/WebPage/mac/PlatformCALayerRemote.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174715 268f45cc-cd09-0410-ab3c-d52691b4dbfc
REGRESSION (Safari 7.1/8.0): Border-radius and overflow hidden renders incorrectly.
https://bugs.webkit.org/show_bug.cgi?id=137205

Reviewed by Simon Fraser.

Child layer should not reset radius clipping behaviour.

Source/WebCore:

Test: fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects):

LayoutTests:

* fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping-expected.html: Added.
* fast/layers/parent-clipping-overflow-is-overwritten-by-child-clipping.html: Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174716 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[Mac] Fix inefficiencies in ResourceResponse::platformLazyInit(InitLevel)
https://bugs.webkit.org/show_bug.cgi?id=137721

Reviewed by Geoffrey Garen.

There were several inefficiencies with the Mac implementation of
ResourceResponse::platformLazyInit(InitLevel):
1. We end up initializing uncommon fields even if called with
   'CommonFieldsOnly' initLevel.
2. If called with 'AllFields' initLevel (and if currently
   uninitialized), we end up populating m_httpHeaderFields twice, once
   with only the common headers, then a second time with ALL the
   headers. We can skip the common-header case in this case to avoid
   wasting CPU time.

This patch addresses both inefficiencies and cleans up the code a
little bit to reduce variable scope and to use fast enumeration of
header names.

As a result, we spend almost twice as little time in platformLazyInit()
when loading msn.com (~30ms -> ~18ms).

No new tests, no behavior change.

* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::platformLazyInit):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174717 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove unused jobs table
https://bugs.webkit.org/show_bug.cgi?id=137724

Reviewed by Daniel Bates.

Removed jobs table in the database as well as related code.

* init-database.sql:
* public/admin/jobs.php: Removed.
* public/admin/tests.php:
* public/include/admin-header.php:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@174718 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][EFL] Fix the problem that threads created by a DispatchQueueEfl are not destroyed
even after the DispatchQueueEfl has been destructed
https://bugs.webkit.org/show_bug.cgi?id=137195

Patch by Joonghun Park <jh718.park@samsung.com> on 2014-10-14
Reviewed by Gyuyoung Kim.

Linux and Unix System's pthreads are created in joinable state by default.
If threads aren't destructed explicitly, it will be still live
until process which created the thread is dead.
Besides it may cause out of capacity range of thread creation in a process.
It is one of hidden defects.
This patch calls detachThread() to detach thread immediately after it is created.
So the thread can be destroyed as soon as the thread's ThreadContext::function()
returns.

* Platform/efl/DispatchQueueEfl.cpp:
(DispatchQueue::ThreadContext::start):

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