WebKit-https.git
4 years agoToT WebKit crashes while loading ES6 compatibility table
rniwa@webkit.org [Thu, 7 May 2015 05:15:56 +0000 (05:15 +0000)]
ToT WebKit crashes while loading ES6 compatibility table
https://bugs.webkit.org/show_bug.cgi?id=144726

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

The bug was caused by parseClass superfluously avoiding to build up the string after seeing {.

Always build the identifier here as it could be a method name.

* parser/Parser.cpp:
(JSC::Parser<LexerType>::parseClass):

LayoutTests:

Added new test cases.

* js/class-syntax-string-and-numeric-names-expected.txt:
* js/script-tests/class-syntax-string-and-numeric-names.js:

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

4 years ago[WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped...
jer.noble@apple.com [Thu, 7 May 2015 04:56:11 +0000 (04:56 +0000)]
[WK2][Fullscreen] Elements whose children extend beyond their bounds are clipped in fullscreen mode.
https://bugs.webkit.org/show_bug.cgi?id=144716

Reviewed by Darin Adler.

We create a mask animation for the transition between windowed and fullscreen modes, on the
assumption that the element being taken into fullscreen mode does not have visible children
who extend beyond that elements bounds. This assumption breaks down in the case where div
with absolutely positioned children is taken fullscreen. While we can't necessarily make the
transition look correct in this case, we can remove the mask after the transition completes.

* UIProcess/mac/WKFullScreenWindowController.mm:
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
* WebProcess/MediaCache/WebMediaKeyStorageManager.cpp:
(WebKit::removeAllMediaKeyStorageForOriginPath):

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

4 years agoFix a build break on EFL debug build
commit-queue@webkit.org [Thu, 7 May 2015 04:46:07 +0000 (04:46 +0000)]
Fix a build break on EFL debug build
https://bugs.webkit.org/show_bug.cgi?id=144654

Patch by Jinwoo Jeong <jw00.jeong@samsung.com> on 2015-05-06
Reviewed by Gyuyoung Kim.

No new tests, just build fix.

* Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:
(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):
(WebKit::CoordinatedGraphicsScene::paintToGraphicsContext):

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

4 years ago[iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
dbates@webkit.org [Thu, 7 May 2015 03:23:57 +0000 (03:23 +0000)]
[iOS][WK2] Pause/resume database thread when UIProcess enters/leaves the background
https://bugs.webkit.org/show_bug.cgi?id=144657
<rdar://problem/18894598>

Reviewed by Andy Estes.

Source/WebCore:

Export WebCore functionality to pause and resume the database thread so that we can
make use of this functionality from WebKit2.

* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseServer::setPauseAllDatabases().
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::setPauseAllDatabases): Added; turns around and calls
DatabaseTracker::tracker().setDatabasesPaused() to pause or resume the database thread.
For now, we guard this call with PLATFORM(IOS). We'll look to remove this guard once
we fix <https://bugs.webkit.org/show_bug.cgi?id=144660>.
* Modules/webdatabase/DatabaseServer.h:

Source/WebKit2:

Pause and resume the database thread when the UIProcess enters and leaves the background,
respectively, so that we avoid WebProcess termination due to holding a locked SQLite
database file when the WebProcess is suspended. This behavior matches the analagous
behavior in Legacy WebKit.

* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationDidEnterBackground:]): Call WebPageProxy::applicationDidEnterBackground()
when the UIProcess enters the background.
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidEnterBackground): Added; notify the WebProcess to pause the database thread.
We temporarily take out background assertion on the WebProcess before sending this notification to ensure that the
WebProcess is running to receive it. We'll release this assertion when the WebProcess replies that it received the
notification.
* WebProcess/WebCoreSupport/WebDatabaseManager.cpp:
(WebKit::WebDatabaseManager::setPauseAllDatabases): Added; turns around and calls DatabaseManager::setPauseAllDatabases().
* WebProcess/WebCoreSupport/WebDatabaseManager.h:
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in: Add message ApplicationDidEnterBackground(). Also,
add empty lines to help demarcate this message and the other UIKit application lifecycle-related
messages from the rest of the list of messages.
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::applicationWillEnterForeground): Resume the database thread.
(WebKit::WebPage::applicationDidEnterBackground): Pause the database thread.

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

4 years ago[EFL] ewk_view_page_contents_get() API test is flaky
ryuan.choi@navercorp.com [Thu, 7 May 2015 03:19:42 +0000 (03:19 +0000)]
[EFL] ewk_view_page_contents_get() API test is flaky
https://bugs.webkit.org/show_bug.cgi?id=144683

Reviewed by Gyuyoung Kim.

Callback of WKPageGetContentsAsMHTMLData contains WKData which does not contain null terminated character.

* UIProcess/API/efl/ewk_view.cpp: Pass the data of string instead of WKData directly.
(ewkViewPageContentsAsMHTMLCallback):

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

4 years agoWeb Inspector: Docking Toolbar Buttons do not respect Docking Availability
commit-queue@webkit.org [Thu, 7 May 2015 03:04:32 +0000 (03:04 +0000)]
Web Inspector: Docking Toolbar Buttons do not respect Docking Availability
https://bugs.webkit.org/show_bug.cgi?id=144714

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-06
Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.updateDockingAvailability):
(WebInspector._updateDockNavigationItems):
Update the Toolbar UI based on docking availability.
Assume docking is unavailable by default.

* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setDockingUnavailable):
Add back this API as the backend may be calling it when
docking availability changes. This just calls out to
global WebInspector functions to update the Toolbar UI.

* UserInterface/Base/Test.js:
(WebInspector.updateDockedState):
(WebInspector.updateDockingAvailability):
Do nothing in tests.

Source/WebKit2:

* UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::createInspectorPage):
(WebKit::WebInspectorProxy::attachAvailabilityChanged):
* WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::setDockingUnavailable):
* WebProcess/WebPage/WebInspectorUI.h:
* WebProcess/WebPage/WebInspectorUI.messages.in:
When docking availability changes, inform the inspector page
so it can respond by updating its UI.

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

4 years agoScroll-snap points do not handle margins and padding propertly
bfulgham@apple.com [Thu, 7 May 2015 02:53:00 +0000 (02:53 +0000)]
Scroll-snap points do not handle margins and padding propertly
https://bugs.webkit.org/show_bug.cgi?id=144647
<rdar://problem/20829473>

Reviewed by Simon Fraser.

Source/WebCore:

The calculation of scroll snap points was incorrect because it did not account for margins or padding.
This was fixed by using the "paddingBoxRect" to represent the overall size of the view area, and
subtracting the relevant padding when computing the size of the scroll snap offsets.

Extend testing internals with accessor methods to retrieve string representations of the scroll snap
offsets and scroll snap coordinates computed during layout. These values are used in the new
'css3/scroll-snap/scroll-snap-offsets-and-coordinates.html' test.

New tests:
* css3/scroll-snap/scroll-snap-offsets-and-coordinates.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html: Added.

* css/LengthFunctions.h: Expose the 'valueForLength' method so we can use it in WebCoreTestSupport.
* dom/Node.h: Expose the 'renderBox' method so we can use it in WebCoreTestSupport.
* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::appendChildSnapOffsets): Use 'contentBoxRect' for overall size, so that we don't use padding
as part of our offset calculations.
(WebCore::updateSnapOffsetsForScrollableArea): Ditto.
* rendering/RenderBox.h: Expose 'canBeScrolledAndHasScrollableArea' for use in WebCoreTestSupport.
* rendering/style/RenderStyle.h: Expose 'scrollSnapCoordinates' for use in WebCoreTestSupport.
* testing/Internals.cpp:
(WebCore::appendOffsets): Helper function.
(WebCore::Internals::scrollSnapOffsets): Added.
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Add new scroll-snap tests that cover elements with borders, padding, and rotation. Also correct the
cause of the 'scroll-snap-mandatory-overflow.html' test flakiness by making sure the mouse is always
inside the element when starting new wheel gestures.

Also add a new 'generic' test that confirms that we have expected results for scroll-snap coordinates
and calculated scroll-snap-offset values.

* css3/scroll-snap/scroll-snap-offsets.html: Added.
* platform/mac-wk2/TestExpectations: Remove flakiness annotation for scroll-snap-mandatory-overflow.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html:
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-borders.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html:
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-padding.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-rotated.html: Added.

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

4 years agoWeb Inspector: The text in the left pane overlaps the "Filter Time Events" field...
mattbaker@apple.com [Thu, 7 May 2015 02:32:57 +0000 (02:32 +0000)]
Web Inspector: The text in the left pane overlaps the "Filter Time Events" field in the Timeline after the Web Inspector is resized
https://bugs.webkit.org/show_bug.cgi?id=144720

Reviewed by Timothy Hatcher.

* UserInterface/Views/FilterBar.css:
(.filter-bar):
(.filter-bar > .navigation-bar):
(.filter-bar > input[type="search"]):
(.filter-bar > .navigation-bar > .item): Deleted.
Filter bar now has opaque background and height updated to the ubiquitous 29px.

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

4 years agoClean up TextRun constructors
mmaxfield@apple.com [Thu, 7 May 2015 02:09:26 +0000 (02:09 +0000)]
Clean up TextRun constructors
https://bugs.webkit.org/show_bug.cgi?id=144712

Reviewed by Zalan Bujtas.

This patch uses constructor forwarding to make TextRun's constructors much simpler. It then
updates the implementations of RenderBlock::constructTextRun() to be more consistent with
TextRun (via using StringViews).

No new tests because there is no behavior change.

* mathml/MathMLMencloseElement.cpp:
(WebCore::MathMLMencloseElement::longDivLeftPadding):
* platform/graphics/TextRun.h:
(WebCore::TextRun::TextRun):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::constructTextRun):
(WebCore::constructTextRunInternal): Deleted.
* rendering/RenderBlock.h:
* rendering/RenderEmbeddedObject.cpp:
(WebCore::RenderEmbeddedObject::paintReplaced):
(WebCore::RenderEmbeddedObject::unavailablePluginIndicatorBounds):
(WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
* rendering/svg/SVGTextMetricsBuilder.cpp:
(WebCore::SVGTextMetricsBuilder::SVGTextMetricsBuilder):
* platform/win/DragImageWin.cpp:
(WebCore::createDragImageForLink):

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

4 years ago[WK2] Simplify AsyncRequestImpl::ArgumentType parameters
commit-queue@webkit.org [Thu, 7 May 2015 01:23:12 +0000 (01:23 +0000)]
[WK2] Simplify AsyncRequestImpl::ArgumentType parameters
https://bugs.webkit.org/show_bug.cgi?id=144689

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-05-06
Reviewed by Darin Adler.

Remove duplicated typename and ::type from AsyncRequestImpl related
function parameters.

* Shared/AsyncRequest.h:

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

4 years agoUnreviewed, updated my list of email addresses.
mattbaker@apple.com [Thu, 7 May 2015 00:59:05 +0000 (00:59 +0000)]
Unreviewed, updated my list of email addresses.

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

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

4 years agoRename URL::copy() to URL::isolatedCopy() to match String.
commit-queue@webkit.org [Thu, 7 May 2015 00:28:22 +0000 (00:28 +0000)]
Rename URL::copy() to URL::isolatedCopy() to match String.
https://bugs.webkit.org/show_bug.cgi?id=144684

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-06
Reviewed by Darin Adler.

No new tests, no behavior change.

* Modules/websockets/WebSocketHandshake.cpp:
(WebCore::WebSocketHandshake::setURL):
(WebCore::WebSocketHandshake::httpURLForAuthenticationAndCookies):
* fileapi/ThreadableBlobRegistry.cpp:
(WebCore::BlobRegistryContext::BlobRegistryContext):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::PreloadRequest):
* html/parser/XSSAuditor.cpp:
(WebCore::XSSAuditor::init):
* platform/CrossThreadCopier.cpp:
(WebCore::URL>::copy):
* platform/URL.cpp:
(WebCore::URL::isolatedCopy):
(WebCore::URL::copy): Deleted.
* platform/URL.h:
(WebCore::URLCapture::URLCapture):
* platform/network/BlobPart.h:
(WebCore::BlobPart::detachFromCurrentThread):
* platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::copyData):
* platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::copyData):
* workers/WorkerThread.cpp:
(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):

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

4 years agoUnreviewed, rolling out r183894.
commit-queue@webkit.org [Thu, 7 May 2015 00:26:48 +0000 (00:26 +0000)]
Unreviewed, rolling out r183894.
https://bugs.webkit.org/show_bug.cgi?id=144719

crashes on mavericks (Requested by dino on #webkit).

Reverted changeset:

"Handle backdrop views that have to tile"
https://bugs.webkit.org/show_bug.cgi?id=142317
http://trac.webkit.org/changeset/183894

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

4 years agoCoreTextSPI.h uses wrong version number to denote Yosemite
jonlee@apple.com [Wed, 6 May 2015 23:42:45 +0000 (23:42 +0000)]
CoreTextSPI.h uses wrong version number to denote Yosemite
https://bugs.webkit.org/show_bug.cgi?id=144701

Reviewed by Dean Jackson.

* platform/spi/cocoa/CoreTextSPI.h: Should 101000 not 10100.

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

4 years agoAddition review followup for:
beidson@apple.com [Wed, 6 May 2015 23:32:59 +0000 (23:32 +0000)]
Addition review followup for:
Crash executing null AsyncRequest in IDB code.
<rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715

Reviewed by Darin Adler.

This patch adds a layer on top of the UniqueIDBDatabase request map to catch this coding mistake in the future.

 * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::didCompleteBoolRequest): Get rid of the ASSERT and the temporary variable,
  make it a single line which reads better.
(WebKit::UniqueIDBDatabase::didPutRecordInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didGetRecordFromBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didOpenCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didAdvanceCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didIterateCursorInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didCountInBackingStore): Ditto.
(WebKit::UniqueIDBDatabase::didDeleteRangeInBackingStore): Ditto.
* DatabaseProcess/IndexedDB/UniqueIDBDatabase.h: Ditto.

Add the class AsyncRequestMap which shadows a HashMap but does aggressive runtime checks
in ::take() to make sure the same request was not dispatched twice in a row, and makes sure we
never try to execute a null AsyncRequest by way of a RELEASE_ASSERT.
* Shared/AsyncRequest.h:
(WebKit::AsyncRequestMap::AsyncRequestMap):
(WebKit::AsyncRequestMap::take):
(WebKit::AsyncRequestMap::add):
(WebKit::AsyncRequestMap::clear):
(WebKit::AsyncRequestMap::values):

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

4 years agoSane chain and string watchpoints should be set in FixupPhase or the backend rather...
fpizlo@apple.com [Wed, 6 May 2015 23:14:14 +0000 (23:14 +0000)]
Sane chain and string watchpoints should be set in FixupPhase or the backend rather than WatchpointCollectionPhase
https://bugs.webkit.org/show_bug.cgi?id=144665

Reviewed by Michael Saboff.

This is a step towards getting rid of WatchpointCollectionPhase. It's also a step towards
extending SaneChain to all indexing shapes.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.
(JSC::DFG::FixupPhase::checkArray): Clarify the need for checking the structure. We often forget why we do this instead of always using CheckArray.
* dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetByValOnString): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.
* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle): Remove some code.
(JSC::DFG::WatchpointCollectionPhase::handleStringGetByVal): Deleted.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileStringCharAt): Set the watchpoints here so that we don't need a case in WatchpointCollectionPhase.

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

4 years agoCrash executing null AsyncRequest in IDB code.
beidson@apple.com [Wed, 6 May 2015 23:05:38 +0000 (23:05 +0000)]
Crash executing null AsyncRequest in IDB code.
<rdar://problem/18854856> and https://bugs.webkit.org/show_bug.cgi?id=144715

Reviewed by Darin Adler.

When UniqueIDBDatabase fails to execute an operation on the database work queue it usually
dispatches an AsyncRequest ID back to the main thread with an error callback.

For two of its operations it would then also dispatch the success callback.

In those cases the main thread would first take the AsyncRequest for the error callback out
of a map and then execute it.

It would then try to take the same AsyncRequest out of the map again, fail to do so, then
execute a null AsyncRequest.

This patch fixes the two functions to not dispatch both an error and success callback.

* DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
(WebKit::UniqueIDBDatabase::countInBackingStore): Return after dispatching the error callback.
(WebKit::UniqueIDBDatabase::deleteRangeInBackingStore): Ditto.

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

4 years agoExpose more font weights for -apple-system
jonlee@apple.com [Wed, 6 May 2015 22:55:09 +0000 (22:55 +0000)]
Expose more font weights for -apple-system
https://bugs.webkit.org/show_bug.cgi?id=144707

Reviewed by Dean Jackson.

Source/WebCore:

Update to platform/mac/fast/text/systemFont.html

* platform/graphics/mac/FontCacheMac.mm:
(WebCore::toNSFontWeight): New static method to map font weights to NSFontWeight constants available on
Yosemite and later.
(WebCore::fontWithFamily): Request the system font with a mapped weight on Yosemite and later.
* platform/spi/mac/NSFontSPI.h: Add [NSFont systemFontWithSize:weight:], and the proper NSFontWeight
constants.

LayoutTests:

* platform/mac/fast/text/systemFont.html: Update test to include font weights for -apple-system.
* platform/mac/fast/text/systemFont-expected.txt: Update expectations.

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

4 years agoHandle backdrop views that have to tile
dino@apple.com [Wed, 6 May 2015 22:46:01 +0000 (22:46 +0000)]
Handle backdrop views that have to tile
https://bugs.webkit.org/show_bug.cgi?id=142317
<rdar://problem/20049088>

Reviewed by Simon Fraser.

Source/WebCore:

Make sure backdrop layers don't tile. If they are big
enough, we'll leave it to the platform compositor to handle.

This also fixes a bug where if a layer changed from a backdrop
type to a tiled type, it would still retain its custom appearance
and we'd try to add children to the wrong layer.

Test: compositing/media-controls-bar-appearance-big.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Check if
a layer needs a backdrop before checking if it needs to tile.

Source/WebKit2:

Add some better logging for custom appearance.

* Shared/mac/RemoteLayerTreeTransaction.mm:
(WebKit::RemoteLayerTreeTextStream::operator<<):

LayoutTests:

A test that creates some backdrop views, then makes them
big enough that it would trigger tiling (which we don't want
to happen).

* compositing/media-controls-bar-appearance-big-expected.txt: Added.
* compositing/media-controls-bar-appearance-big.html: Added.

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

4 years agoDisable network cache efficacy logging
cdumez@apple.com [Wed, 6 May 2015 22:35:26 +0000 (22:35 +0000)]
Disable network cache efficacy logging
https://bugs.webkit.org/show_bug.cgi?id=144703
<rdar://problem/20439143>

Reviewed by Andreas Kling.

Disable network cache efficacy logging by default as we have sufficient
data for now.

* UIProcess/Cocoa/WebProcessPoolCocoa.mm:
(WebKit::registerUserDefaultsIfNeeded):

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

4 years ago[WinCairo] Compile error due to undefined symbols after r183868
achristensen@apple.com [Wed, 6 May 2015 22:32:36 +0000 (22:32 +0000)]
[WinCairo] Compile error due to undefined symbols after r183868
https://bugs.webkit.org/show_bug.cgi?id=144692

Patch by Carlos Garcia Campos  <cgarcia@igalia.com> and Per Arne Vollan <peavo@outlook.com> on 2015-05-06
Reviewed by Alex Christensen.

Speculative build fix. Add dummy PlatformDisplayWin.

* PlatformWinCairo.cmake: Add PlatformDisplay.cpp to compilation.
* platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::createPlatformDisplay):
* platform/graphics/PlatformDisplay.h:
* platform/graphics/win/PlatformDisplayWin.h:
Add stubs to compile.
* WebCore.vcxproj/WebCore.vcxproj
* WebCore.vcxproj/WebCore.vcxproj.filters
Add new files to Windows build.

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

4 years agoAvoid copies in scrollOffsetForFixedPosition() and inline it.
hyatt@apple.com [Wed, 6 May 2015 22:14:34 +0000 (22:14 +0000)]
Avoid copies in scrollOffsetForFixedPosition() and inline it.
https://bugs.webkit.org/show_bug.cgi?id=144709

Reviewed by Simon Fraser.

* page/FrameView.cpp:
(WebCore::FrameView::frameScaleFactor):
Added so that scrollOffsetForFixedPosition() can be inlined without having to
reference Frame's implementation.

(WebCore::FrameView::scrollOffsetForFixedPosition): Deleted.
Moved this to the header.

* page/FrameView.h:
Inline scrollOffsetForFixedPosition() and get rid of all the copying
it was doing.

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

4 years agoPerf dashboard treats Speedometer and JetStream as smaller is better
rniwa@webkit.org [Wed, 6 May 2015 21:50:11 +0000 (21:50 +0000)]
Perf dashboard treats Speedometer and JetStream as smaller is better
https://bugs.webkit.org/show_bug.cgi?id=144711

Reviewed by Chris Dumez.

Added the support for "Score" metric.

* public/js/helper-classes.js:
(PerfTestRuns):
* public/v2/data.js:
(RunsData.unitFromMetricName):
(RunsData.isSmallerBetter):

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

4 years agoFix the build.
timothy_horton@apple.com [Wed, 6 May 2015 21:36:02 +0000 (21:36 +0000)]
Fix the build.

* UIProcess/mac/WKViewLayoutStrategy.mm:
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

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

4 years agoNo way to get a WKWebProcessPlugInFrame’s parent frame
mitz@apple.com [Wed, 6 May 2015 21:02:44 +0000 (21:02 +0000)]
No way to get a WKWebProcessPlugInFrame’s parent frame
https://bugs.webkit.org/show_bug.cgi?id=144705

Reviewed by Sam Weinig.

* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame _parentFrame]): Added this getter.
* WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFramePrivate.h: Declared new
_parentFrame property.

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

4 years agoRenderLayer::currentTransform computes a pixel snapped rect it doesn't use.
hyatt@apple.com [Wed, 6 May 2015 21:00:01 +0000 (21:00 +0000)]
RenderLayer::currentTransform computes a pixel snapped rect it doesn't use.
https://bugs.webkit.org/show_bug.cgi?id=144708

Reviewed by Simon Fraser.

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

Only compute a pixel snapped rect if we actually end up needing it. The common case
is that this rect is not needed, so pushing it inside the two if statements
speeds up the common case.

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

4 years agoFix the build.
timothy_horton@apple.com [Wed, 6 May 2015 20:52:15 +0000 (20:52 +0000)]
Fix the build.

* UIProcess/mac/WKViewLayoutStrategy.mm:
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

* platform/spi/cocoa/QuartzCoreSPI.h:

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

4 years agoOptimize topLeftLocationOffset() addition in updateLayerPosition
hyatt@apple.com [Wed, 6 May 2015 20:40:53 +0000 (20:40 +0000)]
Optimize topLeftLocationOffset() addition in updateLayerPosition
https://bugs.webkit.org/show_bug.cgi?id=144704

Reviewed by Dean Jackson.

* page/FrameView.cpp:
(WebCore::FrameView::FrameView):
* page/FrameView.h:
Move the hasFlippedBlocks bit to FrameView instead of RenderView. Works better for inlining
the check in any renderer header, and it also makes more sense conceptually, since the RenderView
itself could be a flipped block.

* rendering/RenderBox.cpp:
(WebCore::RenderBox::layoutOverflowRectForPropagation):
Change over to the FrameView bit.

* rendering/RenderBox.h:
(WebCore::RenderBox::applyTopLeftLocationOffset):
Add a new inlined function that can apply the top left location offset to a point without
multiple LayoutSize creations and copies. It invokes a helper for flipping that is not
inlined only in the case where actual flipped blocks exist in the render tree.

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::updateFromStyle):
Set the bit on the FrameView now instead of the RenderView.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPosition):
Call the new applyTopLeftLocationOffset function so that the point can have offsets added
in without any extra copies.

(WebCore::RenderLayer::calculateClipRects):
* rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::rangeIntersectsRect):
Switch over to the bit on the FrameView.

* rendering/RenderView.cpp:
(WebCore::RenderView::RenderView):
* rendering/RenderView.h:
Get rid of the bit on the RenderView.

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

4 years agoDo not link tools to WebKit2.framework
ap@apple.com [Wed, 6 May 2015 20:34:51 +0000 (20:34 +0000)]
Do not link tools to WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144699

Unreviewed build fix.

* TestWebKitAPI/Configurations/TestWebKitAPI.xcconfig:
* WebKitTestRunner/Configurations/WebKitTestRunner.xcconfig:
These linked to WebKit2 in two ways, eliminating the other one.

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

4 years agoIntroducing the Platform Abstraction Layer (PAL)
mmaxfield@apple.com [Wed, 6 May 2015 20:32:42 +0000 (20:32 +0000)]
Introducing the Platform Abstraction Layer (PAL)
https://bugs.webkit.org/show_bug.cgi?id=143358

Reviewed by Simon Fraser.

.:

* WebKit.xcworkspace/contents.xcworkspacedata: Add it to the workspace.

Source/JavaScriptCore:

* Configurations/FeatureDefines.xcconfig: Updated

Source/PAL:

Introduce a new top-level folder and static library. This is intended to be
the destination for code that currently resides in WebCore/platform. Code
will be moved from that folder into PAL file by file. Separating this
platform code into its own static library enforces layering, as well as
encourages/aids unit testing of this platform code.

This commit only creates a single symbol which is not required to build
WebKit. The reason for this is so that we can get all build issues ironed
out before requiring PAL.

For more information, see
https://lists.webkit.org/pipermail/webkit-dev/2015-March/027303.html

* PAL.xcodeproj/project.pbxproj: Added.
* Makefile: Added. Standard Makefile.
* config.h: Added. Standard header.
* PALPrefix.h: Added. Copied from WebCore.
* graphics/Foo.h: Added. Header.
* graphics/Foo.cpp: Added.
(foo): Placeholder symbol.
* Configurations/Base.xcconfig: Added. Standard config files
* Configurations/DebugRelease.xcconfig: Added. Standard config files
* Configurations/PAL.xcconfig: Added. Standard config files

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj: Let the project know about the .a
* Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit/mac:

* Configurations/FeatureDefines.xcconfig: Updated

Source/WebKit2:

* Configurations/FeatureDefines.xcconfig: Updated

Tools:

* Scripts/build-webkit: Add it to build-webkit.

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

4 years agoFix api tests after r183877.
achristensen@apple.com [Wed, 6 May 2015 19:26:15 +0000 (19:26 +0000)]
Fix api tests after r183877.

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
Generate all DFAs before compiling them.

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

4 years ago[iOS] remove some unnecessary iOS-only media code
eric.carlson@apple.com [Wed, 6 May 2015 19:02:02 +0000 (19:02 +0000)]
[iOS] remove some unnecessary iOS-only media code
https://bugs.webkit.org/show_bug.cgi?id=144697
<rdar://problem/20229914>

Reviewed by Jer Noble.

* html/HTMLAttributeNames.in: Remove data-youtube-id.

* platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Remove dataYouTubeID.

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

4 years agoDo not link tools to WebKit2.framework
ap@apple.com [Wed, 6 May 2015 18:44:15 +0000 (18:44 +0000)]
Do not link tools to WebKit2.framework
https://bugs.webkit.org/show_bug.cgi?id=144699

Reviewed by Tim Horton.

* MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:

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

4 years agoOptimize relativePositionOffset() to avoid doing unnecessary work
hyatt@apple.com [Wed, 6 May 2015 18:37:51 +0000 (18:37 +0000)]
Optimize relativePositionOffset() to avoid doing unnecessary work
https://bugs.webkit.org/show_bug.cgi?id=144698

Reviewed by Simon Fraser.

* rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::relativePositionOffset):

Patch relativePositionOffset to avoid doing unnecessary work in the common case where
all values of top/left/right/bottom are either auto or fixed. We no longer fetch
containingBlock() into a local always, but instead just invoke the function only
when necessary.

Also avoid computing the percentage-relative maximum for the top/right/bottom/left lengths
when they are fixed values, since that maximum won't be examined at all.

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

4 years ago[FreeType] Vertical CJK glyphs should not be rendered with synthetic oblique
mrobinson@webkit.org [Wed, 6 May 2015 17:52:43 +0000 (17:52 +0000)]
[FreeType] Vertical CJK glyphs should not be rendered with synthetic oblique
https://bugs.webkit.org/show_bug.cgi?id=144612

Reviewed by Darin Adler.

Source/WebCore:

No new tests. This causes fast/text/international/synthesized-italic-vertical.html to pass.

* platform/graphics/Font.cpp:
(WebCore::Font::nonSyntheticItalicFont): Compile this method for Cairo as well.
* platform/graphics/FontCascadeFonts.cpp:
(WebCore::FontCascadeFonts::glyphDataForSystemFallback): When searching for the system fallback,
ensure that we do not use synthetic oblique when rendering vertical CJK glyphs.
(WebCore::FontCascadeFonts::glyphDataForNormalVariant): Extend the CJK fix to Cairo ports.
* platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::setSyntheticOblique): Added this helper method, because
Freetype/Cairo ports needs to be able to recreate the scaled font matrix when the
synthetic oblique settings changes.
* platform/graphics/freetype/FontPlatformData.h: Rename initializeWithFontFace to buildScaledFont.
Remove the now unused m_horizontalOrientationMatrix member.
(WebCore::FontPlatformData::setSyntheticOblique): Added the helper here as well.
* platform/graphics/freetype/FontPlatformDataFreeType.cpp:
(WebCore::FontPlatformData::FontPlatformData): Calculate whether or not to use synthetic oblique here,
before buildScaledFont is called. Call buildScaledFont instead of initializeWithFontFace.
(WebCore::FontPlatformData::operator=):
(WebCore::FontPlatformData::buildScaledFont): Renamed from initializeWithFontFace, does
the same thing, except calculate whether or not to use synthetic oblique. Instead just
reads the value.
(WebCore::FontPlatformData::setOrientation): Instead of adjusting the font matrix, recreate
the entire font.
(WebCore::FontPlatformData::setSyntheticOblique): Added.
(WebCore::rotateCairoMatrixForVerticalOrientation): Deleted.
(WebCore::FontPlatformData::initializeWithFontFace): Deleted.

LayoutTests:

* platform/gtk/TestExpectations: Remove expectation for failing test.

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

4 years ago[Content Extensions] Test splitting NFAs by max NFA size.
commit-queue@webkit.org [Wed, 6 May 2015 17:51:07 +0000 (17:51 +0000)]
[Content Extensions] Test splitting NFAs by max NFA size.
https://bugs.webkit.org/show_bug.cgi?id=144659

Patch by Alex Christensen <achristensen@webkit.org> on 2015-05-06
Reviewed by Darin Adler.

Source/WebCore:

* WebCore.xcodeproj/project.pbxproj:
* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
* contentextensions/CombinedURLFilters.h:
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/DFABytecodeCompiler.h:
* contentextensions/DFABytecodeInterpreter.h:
Make maxNFASize a parameter so we can test it with small values.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:
(TestWebKitAPI::createNFAs):

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

4 years agoUnreviewed GTK+ gardening
mrobinson@webkit.org [Wed, 6 May 2015 17:47:32 +0000 (17:47 +0000)]
Unreviewed GTK+ gardening

* platform/gtk/TestExpectations: Remove a couple expectations tests.
* platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt:

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

4 years agoREGRESSION (r183467): Unable to start downloads in private browsing mode
antti@apple.com [Wed, 6 May 2015 17:31:12 +0000 (17:31 +0000)]
REGRESSION (r183467): Unable to start downloads in private browsing mode
https://bugs.webkit.org/show_bug.cgi?id=144533

Reviewed by Darin Adler.

Source/WebCore:

If willSendRequest delegate mutated the request we would lose the requester field value from the original.

No test runner support for mutating requests.

* platform/network/cf/ResourceRequestCFNet.cpp:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

    This needs to keep the requester too.

* platform/network/cocoa/ResourceRequestCocoa.mm:
(WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.

    Share implementations.

Source/WebKit/mac:

* WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::dispatchWillSendRequest):

    Use updateFromDelegatePreservingOldProperties (like WK2) instead of doing the same thing manually.

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

4 years agoDon't allocate a StringImpl for every Number JSValue in JSON.stringify().
akling@apple.com [Wed, 6 May 2015 17:10:38 +0000 (17:10 +0000)]
Don't allocate a StringImpl for every Number JSValue in JSON.stringify().
<https://webkit.org/b/144676>

Reviewed by Darin Adler.

We were creating a new String for every number JSValue passing through the JSON stringifier.
These StringImpl allocations were dominating one of the Kraken JSON benchmarks.
Optimize this by using StringBuilder::appendECMAScriptNumber() which uses a stack buffer
for the conversion instead.

13% progression on Kraken/json-stringify-tinderbox.

* runtime/JSONObject.cpp:
(JSC::Stringifier::appendStringifiedValue):

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

4 years agoUpdate expectations for fast/forms/button-line-height.html
ap@apple.com [Wed, 6 May 2015 17:02:47 +0000 (17:02 +0000)]
Update expectations for fast/forms/button-line-height.html

* TestExpectations:
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/win/TestExpectations:

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

4 years agoUnreviewed, rolling out r183847.
commit-queue@webkit.org [Wed, 6 May 2015 16:50:19 +0000 (16:50 +0000)]
Unreviewed, rolling out r183847.
https://bugs.webkit.org/show_bug.cgi?id=144691

Caused many assertion failures (Requested by ap on #webkit).

Reverted changeset:

"GC has trouble with pathologically large array allocations"
https://bugs.webkit.org/show_bug.cgi?id=144609
http://trac.webkit.org/changeset/183847

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

4 years agoToggling underline on font panel removes strike through
rniwa@webkit.org [Wed, 6 May 2015 16:42:33 +0000 (16:42 +0000)]
Toggling underline on font panel removes strike through
https://bugs.webkit.org/show_bug.cgi?id=144670
<rdar://problem/3790443>

Reviewed by Darin Adler.

Source/WebCore:

* editing/EditingStyle.cpp:
(WebCore::EditingStyle::EditingStyle): Added a variant that takes CSSStyleDeclaration.
* editing/EditingStyle.h:
(WebCore::EditingStyle::create): Ditto.
* editing/Editor.cpp:
(WebCore::Editor::applyStyleToSelection): Takes Ref<EditingStyle>&& instead of RefPtr<EditingStyle>&&.
* editing/Editor.h:
* editing/EditorCommand.cpp:
(WebCore::applyCommandToFrame): Ditto.
(WebCore::executeStrikethrough):
(WebCore::executeUnderline):

Source/WebKit/mac:

Use setStrikeThroughChange and setUnderlineChange added in r183770 to toggle underline and strike through.

* WebView/WebHTMLView.mm:
(-[WebHTMLView _applyEditingStyleToSelection:withUndoAction:]):
(-[WebHTMLView _styleForAttributeChange:]):
(-[WebHTMLView changeAttributes:]):

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

4 years agoMore build fixing.
jberlin@webkit.org [Wed, 6 May 2015 16:36:25 +0000 (16:36 +0000)]
More build fixing.

* page/mac/TextIndicatorWindow.mm:

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

4 years ago32-bit build fix after r183859 and r183860.
jberlin@webkit.org [Wed, 6 May 2015 16:25:09 +0000 (16:25 +0000)]
32-bit build fix after r183859 and r183860.

* page/mac/TextIndicatorWindow.mm:
Autosynthesis isn't available for our 32-bit builds.

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

4 years ago[EGL] Move EGLDisplay handling to PlatformDisplay and remove PlatformDisplay definiti...
carlosgc@webkit.org [Wed, 6 May 2015 16:06:30 +0000 (16:06 +0000)]
[EGL] Move EGLDisplay handling to PlatformDisplay and remove PlatformDisplay definition from GLDefs.h
https://bugs.webkit.org/show_bug.cgi?id=144685

Reviewed by Martin Robinson.

The EGL display is also initialized in multiple places, and could
be unified in PlatformDisplay. Remove the PlatformDisplay
definition from platform/graphics/opengl/GLDefs.h to avoid conflicts.

* platform/graphics/PlatformDisplay.cpp:
(WebCore::PlatformDisplay::PlatformDisplay): Initialize m_eglDisplay.
(WebCore::PlatformDisplay::~PlatformDisplay): Call terminateEGLDisplay().
(WebCore::PlatformDisplay::eglDisplay): Lazy intialize the EGL
display and return it.
(WebCore::PlatformDisplay::initializeEGLDisplay):
(WebCore::PlatformDisplay::terminateEGLDisplay):
* platform/graphics/PlatformDisplay.h:
* platform/graphics/egl/GLContextEGL.cpp:
(WebCore::sharedEGLDisplay): Use PlatformDisplay::eglDisplay().
* platform/graphics/opengl/GLDefs.h: Remove unneeded definitions.
* platform/graphics/opengl/GLPlatformSurface.cpp:
(WebCore::GLPlatformSurface::GLPlatformSurface): Remove
m_sharedDisplay member, PlatformDisplay::sharedDisplay() can be used instead.
(WebCore::GLPlatformSurface::sharedDisplay): Deleted.
* platform/graphics/opengl/GLPlatformSurface.h:
* platform/graphics/surfaces/egl/EGLConfigSelector.h: Use
EGLDisplay instead of PlatformDisplay.
* platform/graphics/surfaces/egl/EGLContext.cpp:
(WebCore::EGLOffScreenContext::initialize): Use PlatformDisplay::eglDisplay().
* platform/graphics/surfaces/egl/EGLHelper.cpp: Remove the
EGLDisplayConnection clas and use PlatformDisplay instead.
(WebCore::EGLHelper::eglDisplay):
(WebCore::EGLHelper::currentDisplay):
(WebCore::EGLDisplayConnection::EGLDisplayConnection): Deleted.
(WebCore::EGLDisplayConnection::~EGLDisplayConnection): Deleted.
(WebCore::EGLDisplayConnection::display): Deleted.
(WebCore::EGLDisplayConnection::terminate): Deleted.
* platform/graphics/surfaces/egl/EGLHelper.h:
* platform/graphics/surfaces/egl/EGLSurface.cpp:
(WebCore::EGLTransportSurface::EGLTransportSurface): Use EGLHelper::eglDisplay().
(WebCore::EGLTransportSurface::destroy): Ditto.
(WebCore::EGLOffScreenSurface::EGLOffScreenSurface): Ditto.
(WebCore::EGLOffScreenSurface::destroy): Ditto.
* platform/graphics/surfaces/egl/EGLXSurface.cpp:
(WebCore::EGLWindowTransportSurface::EGLWindowTransportSurface):
Use PlatformDisplay::eglDisplay().
(WebCore::EGLWindowTransportSurface::swapBuffers): Ditto.
(WebCore::EGLPixmapSurface::EGLPixmapSurface): Ditto.
* platform/graphics/surfaces/glx/GLXContext.cpp:
(WebCore::GLXOffScreenContext::initialize): Use X11Helper::nativeDisplay().
* platform/graphics/surfaces/glx/GLXSurface.cpp:
(WebCore::GLXTransportSurface::GLXTransportSurface): Do not use m_sharedDisplay.
(WebCore::GLXOffScreenSurface::initialize): Ditto.
* platform/graphics/wayland/PlatformDisplayWayland.cpp:
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland): Call
PlatformDisplay::initializeEGLDisplay() to insialize the EGL display.
* platform/graphics/wayland/PlatformDisplayWayland.h:
* platform/graphics/x11/PlatformDisplayX11.cpp:
(WebCore::PlatformDisplayX11::initializeEGLDisplay): Override
PlatformDisplay::initializeEGLDisplay() to initialize the
m_eglDisplay member.
* platform/graphics/x11/PlatformDisplayX11.h:

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

4 years agoWeb Inspector: DOMStorage exception and issue with sessionStorage
commit-queue@webkit.org [Wed, 6 May 2015 12:55:20 +0000 (12:55 +0000)]
Web Inspector: DOMStorage exception and issue with sessionStorage
https://bugs.webkit.org/show_bug.cgi?id=144646

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-06
Reviewed by Timothy Hatcher.

Source/WebCore:

* inspector/InspectorDOMStorageAgent.cpp:
(WebCore::InspectorDOMStorageAgent::findStorageArea):
Return session storage if the identifier says not local storage.

Source/WebInspectorUI:

* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView):
(WebInspector.DOMStorageContentView.prototype._populate):
(WebInspector.DOMStorageContentView.prototype.reset): Deleted.
Always have the datagrid be available with a default sort.

(WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
(WebInspector.DOMStorageContentView.prototype._sortDataGrid):
Simplify and correct the order.

(WebInspector.DOMStorageContentView.prototype.cleanup):
Cleanup some uses of delete.

* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.sortNodesImmediately):
Provide a way to sort immediately without a visible delay.

(WebInspector.DataGrid.prototype._sortNodesCallback):
Cleanup some dead code to simplify sorting.

(WebInspector.DataGridNode.prototype._attach):
When sorting, the children list does not match the child node list,
so ensure that placeholder nodes are added to the end.

(WebInspector.PlaceholderDataGridNode.prototype.makeNormal):
Cleanup some uses of delete.

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

4 years agoMove ReadableStreamJSSource.h/.cpp to ReadableJSStream.h/.cpp
youenn.fablet@crf.canon.fr [Wed, 6 May 2015 11:59:41 +0000 (11:59 +0000)]
Move ReadableStreamJSSource.h/.cpp to ReadableJSStream.h/.cpp
https://bugs.webkit.org/show_bug.cgi?id=144567

Reviewed by Darin Adler.

In addition to renaming ReadableStreamJSSource.h/.cpp, ReadableStreamJSSource is now made a private class of
ReadableJSStream, called ReadableJSStream::Source.
Made some minor refactoring (passing some ExecState by ref and not by pointer).
No functional change, existing tests cover the changes.

* bindings/js/JSReadableStreamCustom.cpp:
* bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableJSStream::Source::create):
(WebCore::ReadableJSStream::Source::Source):
(WebCore::ReadableJSStream::Source::~Source):
(WebCore::ReadableJSStream::Source::globalObject):
(WebCore::ReadableJSStream::Source::start):
(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::ReadableJSStream):
* bindings/js/ReadableJSStream.h:

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

4 years ago[GTK][WK2] The WebKit network disk cache is not enabled
carlosgc@webkit.org [Wed, 6 May 2015 09:12:39 +0000 (09:12 +0000)]
[GTK][WK2] The WebKit network disk cache is not enabled
https://bugs.webkit.org/show_bug.cgi?id=142821

Reviewed by Martin Robinson.

Source/WebKit2:

Enable NetworkCache for the GTK+ port.

* config.h:

LayoutTests:

Unskip http/tests/cache/disk-cache tests.

* platform/gtk/TestExpectations:

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

4 years ago[EFL] Remove redudant condition in ViewClientEfl::didChangeViewportAttributes
ryuan.choi@navercorp.com [Wed, 6 May 2015 08:17:31 +0000 (08:17 +0000)]
[EFL] Remove redudant condition in ViewClientEfl::didChangeViewportAttributes
https://bugs.webkit.org/show_bug.cgi?id=144672

Reviewed by Gyuyoung Kim.

ViewClientEfl::didChangeViewportAttributes is always called when fixed layout is disabled.

* UIProcess/efl/ViewClientEfl.cpp:
(WebKit::ViewClientEfl::didChangeViewportAttributes):
Removes condition that checks whether fixed layout is enabled.

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

4 years agoWeb Inspector: SourceCodeTextEditor shows "undefined" instead of resource content...
commit-queue@webkit.org [Wed, 6 May 2015 07:06:54 +0000 (07:06 +0000)]
Web Inspector: SourceCodeTextEditor shows "undefined" instead of resource content when pausing during resource load
https://bugs.webkit.org/show_bug.cgi?id=144662

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-06
Reviewed by Timothy Hatcher.

* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackend.Command.prototype.promise):
Start standardizing on rejecting Promises with Error objects.

* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype._protocolError):
When there is a protocol error, show a nice UI string for the error.

(WebInspector.ResourceContentView.prototype._contentAvailable):
(WebInspector.ResourceContentView.prototype._contentError):
(WebInspector.ResourceContentView.prototype._hasContent):
Whenever we hit an error case in ResourceContentView, check to make sure
that a subclass hasn't already populated the content view with content.
This can happen when a TextResourceContentView populates a Resource with
Script content while paused, because the Resource content would be
unavailable. We check that content has loaded by checking that the
indeterminate spinner is no longer showing.

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

4 years agoLayoutTests/fast/forms/button-line-height.html is broken on non-Mac/non-iOS ports
nvasilyev@apple.com [Wed, 6 May 2015 07:02:36 +0000 (07:02 +0000)]
LayoutTests/fast/forms/button-line-height.html is broken on non-Mac/non-iOS ports
https://bugs.webkit.org/show_bug.cgi?id=144673

* TestExpectations: Skip broken test.

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

4 years agoNetworkResourceLoader::cleanup() should clear ResourceHandle client pointer.
ap@apple.com [Wed, 6 May 2015 06:55:16 +0000 (06:55 +0000)]
NetworkResourceLoader::cleanup() should clear ResourceHandle client pointer.
https://bugs.webkit.org/show_bug.cgi?id=144641
rdar://problem/20250960

Reviewed by David Kilzer.

* NetworkProcess/NetworkResourceLoader.cpp: (WebKit::NetworkResourceLoader::cleanup):
Clear the client pointer.

* Shared/Authentication/AuthenticationManager.cpp:
(WebKit::AuthenticationManager::useCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
Updated comments, which were not accurate, at least on Mac.

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

4 years agoREGRESSION (r183517): Yellow find-in-page highlight gets stuck forever
timothy_horton@apple.com [Wed, 6 May 2015 06:46:30 +0000 (06:46 +0000)]
REGRESSION (r183517): Yellow find-in-page highlight gets stuck forever
https://bugs.webkit.org/show_bug.cgi?id=144651
<rdar://problem/20755722>

* page/mac/TextIndicatorWindow.mm:
Fix an incorrectly-applied review comment.

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

4 years agoREGRESSION (r183517): Yellow find-in-page highlight gets stuck forever
timothy_horton@apple.com [Wed, 6 May 2015 06:26:24 +0000 (06:26 +0000)]
REGRESSION (r183517): Yellow find-in-page highlight gets stuck forever
https://bugs.webkit.org/show_bug.cgi?id=144651
<rdar://problem/20755722>

Reviewed by Dan Bernstein.

* page/mac/TextIndicatorWindow.h:
* page/mac/TextIndicatorWindow.mm:
(WebCore::TextIndicatorWindow::clearTextIndicator):
(WebCore::TextIndicatorWindow::setTextIndicator):
(WebCore::TextIndicatorWindow::closeWindow):
(WebCore::TextIndicatorWindow::startFadeOut):
We can't keep m_fadingOut on TextIndicatorWindow, since it is reused.
Keep it on the WebTextIndicatorView instead.

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

4 years agoAdd missing vtable override specifiers under Source/WebCore/html
zandobersek@gmail.com [Wed, 6 May 2015 06:23:24 +0000 (06:23 +0000)]
Add missing vtable override specifiers under Source/WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=144578

Reviewed by Daniel Bates.

Update virtual method overrides under Source/WebCore/html
which are missing the override specifier.

* html/canvas/WebGL2RenderingContext.h:
* html/canvas/WebGLRenderingContext.h:
* html/track/InbandTextTrack.h:
* html/track/TrackListBase.h:

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

4 years agoAdd missing vtable override specifiers under Source/WebCore/rendering
zandobersek@gmail.com [Wed, 6 May 2015 06:21:20 +0000 (06:21 +0000)]
Add missing vtable override specifiers under Source/WebCore/rendering
https://bugs.webkit.org/show_bug.cgi?id=144570

Reviewed by Darin Adler.

Update virtual method overrides under Source/WebCore/rendering
which are missing the override specifiers.

* rendering/InlineTextBox.h:
(WebCore::InlineTextBox::calculateBoundaries): Deleted.
* rendering/RenderFlowThread.h:
* rendering/RenderMedia.h:
(WebCore::RenderMedia::shadowControlsNeedCustomLayoutMetrics): Deleted.
* rendering/RenderMultiColumnSet.h:
* rendering/RenderRegion.h:
* rendering/RenderRegionSet.h:
* rendering/RenderThemeGtk.h:
* rendering/mathml/RenderMathMLOperator.h:
* rendering/svg/RenderSVGBlock.h:

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

4 years agoAdd missing vtable override specifiers under Source/WebCore/Modules
zandobersek@gmail.com [Wed, 6 May 2015 06:17:02 +0000 (06:17 +0000)]
Add missing vtable override specifiers under Source/WebCore/Modules
https://bugs.webkit.org/show_bug.cgi?id=144569

Reviewed by Darin Adler.

Update virtual method overrides under Source/WebCore/Modules
which are missing the override specifier.

* Modules/mediasource/SourceBuffer.h:
* Modules/mediastream/MediaStreamTrack.h:
* Modules/mediastream/RTCVoidRequestImpl.h:
* Modules/webaudio/AudioContext.h:
(WebCore::AudioContext::mediaType): Deleted.
(WebCore::AudioContext::presentationType): Deleted.
(WebCore::AudioContext::canReceiveRemoteControlCommands): Deleted.
(WebCore::AudioContext::didReceiveRemoteControlCommand): Deleted.
(WebCore::AudioContext::overrideBackgroundPlaybackRestriction): Deleted.
* Modules/webaudio/MediaStreamAudioDestinationNode.h:
* Modules/webaudio/MediaStreamAudioSourceNode.h:
* Modules/webaudio/WaveShaperDSPKernel.h:
* Modules/websockets/WebSocketChannel.h:
(WebCore::WebSocketChannel::refThreadableWebSocketChannel): Deleted.
(WebCore::WebSocketChannel::derefThreadableWebSocketChannel): Deleted.
* Modules/websockets/WorkerThreadableWebSocketChannel.h:
(WebCore::WorkerThreadableWebSocketChannel::refThreadableWebSocketChannel): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::derefThreadableWebSocketChannel): Deleted.

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

4 years agoEventHandler::m_eventHandlerWillResetCapturingMouseEventsElement is incorrectly initi...
zandobersek@gmail.com [Wed, 6 May 2015 06:14:51 +0000 (06:14 +0000)]
EventHandler::m_eventHandlerWillResetCapturingMouseEventsElement is incorrectly initialized
https://bugs.webkit.org/show_bug.cgi?id=144583

Reviewed by Daniel Bates.

* page/EventHandler.cpp:
(WebCore::EventHandler::EventHandler): The
m_eventHandlerWillResetCapturingMouseEventsElement is a boolean,
so initialize it to false, instead of to nullptr.

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

4 years agoViews get stuck with viewScale < 1 after switching from DynamicSizeWithMinimumViewSiz...
timothy_horton@apple.com [Wed, 6 May 2015 06:11:39 +0000 (06:11 +0000)]
Views get stuck with viewScale < 1 after switching from DynamicSizeWithMinimumViewSize to ViewSize
https://bugs.webkit.org/show_bug.cgi?id=144656

Reviewed by Dan Bernstein.

* UIProcess/mac/WKViewLayoutStrategy.mm:
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]):
Reset the viewScale when we leave the DynamicSizeWithMinimumViewSize strategy.

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

4 years agoRemove the remaining vestiges of SVG feature define
commit-queue@webkit.org [Wed, 6 May 2015 05:57:56 +0000 (05:57 +0000)]
Remove the remaining vestiges of SVG feature define
https://bugs.webkit.org/show_bug.cgi?id=144655

Patch by daegyu lee <daegyu.lee@navercorp.com> on 2015-05-05
Reviewed by Alexey Proskuryakov.

Tools:

* Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

* win/tools/vsprops/FeatureDefines.props:
* win/tools/vsprops/FeatureDefinesCairo.props:

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

4 years agoPutGlobalVar shouldn't have an unconditional store barrier
fpizlo@apple.com [Wed, 6 May 2015 05:56:43 +0000 (05:56 +0000)]
PutGlobalVar shouldn't have an unconditional store barrier
https://bugs.webkit.org/show_bug.cgi?id=133104

Reviewed by Benjamin Poulain.

We don't need a store barrier on PutGlobalVar if the value being stored can be
speculated to not be a cell.

* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):

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

4 years agoCopiedBlock::reportLiveBytes() should be totally cool with oversize blocks
fpizlo@apple.com [Wed, 6 May 2015 05:52:52 +0000 (05:52 +0000)]
CopiedBlock::reportLiveBytes() should be totally cool with oversize blocks
https://bugs.webkit.org/show_bug.cgi?id=144667

Reviewed by Andreas Kling.

We are now calling this method for oversize blocks. It had an assertion that indirectly
implied that the block is not oversize, because it was claiming that the number of live
bytes should be smaller than the non-oversize-block size.

* heap/CopiedBlockInlines.h:
(JSC::CopiedBlock::reportLiveBytes):

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

4 years ago[CSS Grid Layout] grid-template-areas should accept none value
rego@igalia.com [Wed, 6 May 2015 05:39:02 +0000 (05:39 +0000)]
[CSS Grid Layout] grid-template-areas should accept none value
https://bugs.webkit.org/show_bug.cgi?id=144624

Reviewed by Darin Adler.

Source/WebCore:

Default value for grid-template-areas property is "none":
http://dev.w3.org/csswg/css-grid/#propdef-grid-template-areas

Currently if you set the property to "none" from JavaScript, the value
doesn't get reseted and it keeps the old value.

Update fast/css-grid-layout/grid-template-areas-get-set.html adding a
new test case.

* css/CSSParser.cpp:
(WebCore::CSSParser::parseGridTemplateAreas): Add support to parse
"none" successfully.

LayoutTests:

* fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
* fast/css-grid-layout/grid-template-areas-get-set.html: Add new test
case to check "none" support.

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

4 years agoRemove unused RenderLayerBacking::hasContentsLayer().
zalan@apple.com [Wed, 6 May 2015 04:57:41 +0000 (04:57 +0000)]
Remove unused RenderLayerBacking::hasContentsLayer().
https://bugs.webkit.org/show_bug.cgi?id=144658

Reviewed by Simon Fraser.

No change in functionality.

* rendering/RenderLayerBacking.h:

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

4 years agoFix tests after r183770 on non-Mac ports. These tests are expecting Mac editing behavior.
rniwa@webkit.org [Wed, 6 May 2015 04:39:57 +0000 (04:39 +0000)]
Fix tests after r183770 on non-Mac ports. These tests are expecting Mac editing behavior.

* editing/execCommand/strikethroughSelection.html:
* editing/execCommand/toggle-mixed-text-decorations.html:

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

4 years agoGC has trouble with pathologically large array allocations
fpizlo@apple.com [Wed, 6 May 2015 03:39:20 +0000 (03:39 +0000)]
GC has trouble with pathologically large array allocations
https://bugs.webkit.org/show_bug.cgi?id=144609

Reviewed by Mark Lam.

* heap/Heap.cpp:
(JSC::Heap::updateObjectCounts): Make this code less confusing.
* heap/SlotVisitorInlines.h:
(JSC::SlotVisitor::copyLater): The early return for isOversize() was the bug. We still need to report these bytes as live. Otherwise the GC doesn't know that it owns this memory.
* jsc.cpp: Add size measuring hooks to write the largeish test.
(GlobalObject::finishCreation):
(functionGCAndSweep):
(functionFullGC):
(functionEdenGC):
(functionHeapSize):
* tests/stress/new-array-storage-array-with-size.js: Fix this so that it actually allocates ArrayStorage arrays and tests the thing it was supposed to test.
* tests/stress/new-largeish-contiguous-array-with-size.js: Added. This tests what the other test accidentally started testing, but does so without running your system out of memory.
(foo):
(test):

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

4 years agoFix the build.
timothy_horton@apple.com [Wed, 6 May 2015 02:10:43 +0000 (02:10 +0000)]
Fix the build.

* Platform/mac/LayerHostingContext.mm:
(WebKit::LayerHostingContext::setFencePort):

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

4 years ago[Content Extensions] Limit NFA size.
achristensen@apple.com [Wed, 6 May 2015 01:12:49 +0000 (01:12 +0000)]
[Content Extensions] Limit NFA size.
https://bugs.webkit.org/show_bug.cgi?id=144649

Reviewed by Benjamin Poulain.

* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
Add a maximum NFA size to ensure that we do not use too much memory when compiling.
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
Remove debugging code that doesn't compile any more.

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

4 years agoFix the build.
timothy_horton@apple.com [Wed, 6 May 2015 00:21:47 +0000 (00:21 +0000)]
Fix the build.

* UIProcess/mac/WKViewLayoutStrategy.mm:
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

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

4 years agoUnreviewed. Some assertion failures in compositing code after r183820.
roger_fong@apple.com [Tue, 5 May 2015 23:48:24 +0000 (23:48 +0000)]
Unreviewed. Some assertion failures in compositing code after r183820.
https://bugs.webkit.org/show_bug.cgi?id=144630.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):
* platform/mac/TestExpectations:

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

4 years ago[GTK] platform/gtk/accessibility/unknown-roles-not-exposed.html is flaky
jdiggs@igalia.com [Tue, 5 May 2015 23:44:40 +0000 (23:44 +0000)]
[GTK] platform/gtk/accessibility/unknown-roles-not-exposed.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=74493

Reviewed by Chris Fleizach.

Make the test more reliable by searching for a child with an unknown role
rather than depending on an exact hierarchy. This makes the test applicable
to other platforms as at least Efl and Mac also do not expose children with
unknown roles, so it's now part of the shared accessibility tests.

* accessibility/unknown-roles-not-exposed-expected.txt: Added.
* accessibility/unknown-roles-not-exposed.html: Added.
* platform/gtk/TestExpectations: Removed skipped test.
* platform/gtk/accessibility/unknown-roles-not-exposed-expected.txt: Removed.
* platform/gtk/accessibility/unknown-roles-not-exposed.html: Removed.

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

4 years agoAdd a layout mode for computing fixed layout size from a minimum size
timothy_horton@apple.com [Tue, 5 May 2015 23:39:06 +0000 (23:39 +0000)]
Add a layout mode for computing fixed layout size from a minimum size
https://bugs.webkit.org/show_bug.cgi?id=144610
<rdar://problem/19790341>

Reviewed by Simon Fraser.

Add a layout mode where WebKit determines the layout size with a set of
(still in flux) heuristics, trying hard to keep the page usable below a
particular client-defined threshold view size.

This can mean that WebKit will start scaling down the page inside the view
to make the whole page fit, using the viewScale mechanism.

* UIProcess/API/C/WKLayoutMode.h:
* UIProcess/API/Cocoa/_WKLayoutMode.h:
Add the new layout mode, and documentation for the two complicated ones.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _layoutMode]):
(-[WKWebView _setLayoutMode:]):
(-[WKWebView _setViewScale:]):
(-[WKWebView _setMinimumViewSize:]):
(-[WKWebView _minimumViewSize]):
* UIProcess/API/Cocoa/WKWebViewPrivate.h:
Forward the layoutMode and viewScale parameters to WKView if we have one.

* UIProcess/API/Cocoa/WKViewPrivate.h:
* UIProcess/API/mac/WKView.mm:
(-[WKView dealloc]):
(-[WKView viewWillStartLiveResize]):
(-[WKView viewDidEndLiveResize]):
(-[WKView setFrameSize:]):
(-[WKView initWithFrame:processPool:configuration:webView:]):
(-[WKView disableFrameSizeUpdates]):
(-[WKView enableFrameSizeUpdates]):
(-[WKView frameSizeUpdatesDisabled]):
(-[WKView _layoutMode]):
(-[WKView _setLayoutMode:]):
(-[WKView _setViewScale:]):
(-[WKView _setMinimumViewSize:]):
(-[WKView _minimumViewSize]):
Store the minimum view size, and update the fixed layout size if needed.

(-[WKView _updateAutomaticallyComputedFixedLayoutSize]): Deleted.
(-[WKView _setAutomaticallyComputesFixedLayoutSizeFromViewScale:]): Deleted.
(-[WKView _automaticallyComputesFixedLayoutSizeFromViewScale]): Deleted.
Store the WKLayoutMode on the WKViewLayoutStrategy instead of having a
bunch of things like _automaticallyComputesFixedLayoutSizeFromViewScale.

* UIProcess/API/mac/WKViewInternal.h:

* UIProcess/mac/WKViewLayoutStrategy.h: Added.
* UIProcess/mac/WKViewLayoutStrategy.mm: Added.
(+[WKViewLayoutStrategy layoutStrategyWithPage:view:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:mode:]):
(-[WKViewLayoutStrategy willDestroyView:]):
(-[WKViewLayoutStrategy layoutMode]):
(-[WKViewLayoutStrategy updateLayout]):
(-[WKViewLayoutStrategy disableFrameSizeUpdates]):
(-[WKViewLayoutStrategy enableFrameSizeUpdates]):
(-[WKViewLayoutStrategy frameSizeUpdatesDisabled]):
(-[WKViewLayoutStrategy didChangeViewScale]):
(-[WKViewLayoutStrategy didChangeMinimumViewSize]):
(-[WKViewLayoutStrategy willStartLiveResize]):
(-[WKViewLayoutStrategy didEndLiveResize]):
(-[WKViewLayoutStrategy didChangeFrameSize]):
(-[WKViewLayoutStrategy willChangeLayoutStrategy]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:mode:]):
(-[WKViewViewSizeLayoutStrategy updateLayout]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:mode:]):
(-[WKViewFixedSizeLayoutStrategy updateLayout]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy updateLayout]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeViewScale]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy didChangeFrameSize]):
Move the existing layout strategies from WKView into WKViewLayoutStrategy subclasses.

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy initWithPage:view:mode:]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeMinimumViewSize]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willStartLiveResize]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didEndLiveResize]):
While in live resize with the new layout mode, disable frame size updates.
The new layout mode will do a live scale during part of the resize, and
we don't always want to send the new view size to the Web process.

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy didChangeFrameSize]):
(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy willChangeLayoutStrategy]):
While in the new layout mode, maintain the viewScale as the minimum of the
scale required to fit the current view frame size inside the minimumViewSize.
If no scaling is required, carry on as usual, pushing the new view frame size
to the DrawingArea and on to the Web process.
If scaling is required, apply a transform to the view in the UI process,
until the live resize completes, in which case we send a fenced viewScale
adjustment to the Web process (so that the tiles paint at the new viewScale
synchronized with the removal of the transform in the UI process).

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::scaleViewFenced):
* UIProcess/WebPageProxy.h:
* WebProcess/WebPage/DrawingArea.h:
(WebKit::DrawingArea::addFence):
(WebKit::DrawingArea::acceleratedAnimationDidEnd): Deleted.
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::scaleViewAndUpdateGeometryFenced):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
* WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
(WebKit::TiledCoreAnimationDrawingArea::addFence):
Add scaleViewAndUpdateGeometryFenced and the ability to install CoreAnimation fences on
TiledCoreAnimationDrawingArea's CAContext.

Add the ability to send updateGeometry out-of-band, so that
we can send it synchronously inside the message along with the CA fence.
We have to both change the viewScale and updateGeometry simultaneously
in the same CA commit that we install the fence into, in order to ensure
that there is no flash.

* platform/spi/cocoa/QuartzCoreSPI.h:
Add some SPI.

* MiniBrowser/mac/BrowserWindow.xib:
* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController toggleUseMinimumViewSize:]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController toggleUseMinimumViewSize:]):
Add a optional toolbar item to toggle a minimum view size of 1024x0.

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

4 years agoiOS] Scroll snap points trigger reentrant layout
bfulgham@apple.com [Tue, 5 May 2015 23:35:41 +0000 (23:35 +0000)]
iOS] Scroll snap points trigger reentrant layout
https://bugs.webkit.org/show_bug.cgi?id=144644
<rdar://problem/20366547>

Reviewed by Simon Fraser.

Covered by scroll-snap-mandatory.html test.

We had an iOS code path in 'appendChildSnapOffsets' that used offsetLeft and offsetTop. This code
was sometimes called during layout, which triggered a reentrant layout call, resulting in a debug
assertion.

* page/scrolling/AxisScrollSnapOffsets.cpp:
(WebCore::appendChildSnapOffsets): Remove iOS codepath.

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

4 years agoBlurry media control icons on non retina displays.
roger_fong@apple.com [Tue, 5 May 2015 23:22:39 +0000 (23:22 +0000)]
Blurry media control icons on non retina displays.
https://bugs.webkit.org/show_bug.cgi?id=144638.
<rdar://problem/20526166>

Reviewed by Dean Jackson.

* Modules/mediacontrols/mediaControlsApple.css:
Adjust fullscreen buttons so that they look good on both 1x and 2x displays.
(audio::-webkit-media-controls-fullscreen-button):
(audio::-webkit-media-controls-fullscreen-button.exit):
(audio::-webkit-media-controls-fullscreen-button:active):
(audio::-webkit-media-controls-panel button.exit:active):
Handle wireless playback picker button background in mediaControlsApple.js
(audio::-webkit-media-controls-wireless-playback-picker-button):
(audio::-webkit-media-controls-wireless-playback-picker-button.playing): Deleted.

* Modules/mediacontrols/mediaControlsApple.js:
Update wireless playback picker button based on display type.
(Controller.prototype.UIString):
(Controller.prototype.handleReadyStateChange):
(Controller.prototype.updateWirelessTargetPickerButton):
(Controller.prototype.updateWirelessPlaybackStatus):

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

4 years agoWeb Inspector: Crash under WebCore::domWindowFromExecState reloading page with inspec...
commit-queue@webkit.org [Tue, 5 May 2015 23:08:10 +0000 (23:08 +0000)]
Web Inspector: Crash under WebCore::domWindowFromExecState reloading page with inspector open
https://bugs.webkit.org/show_bug.cgi?id=144636

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2015-05-05
Reviewed by Mark Lam.

This ensures we create an InjectedScript for the execution context
(frame) preventing the global object / exec state from getting garbage
collected before we remove it from our map.

* inspector/PageRuntimeAgent.cpp:
(WebCore::PageRuntimeAgent::notifyContextCreated):

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

4 years ago[iOS] AirPlay placeholder in inline videos uses Helvetica or Times, should be system...
dino@apple.com [Tue, 5 May 2015 23:03:32 +0000 (23:03 +0000)]
[iOS] AirPlay placeholder in inline videos uses Helvetica or Times, should be system font
https://bugs.webkit.org/show_bug.cgi?id=144643

Reviewed by Brent Fulgham.

The Airplay placard should use "-apple-system" as a font-family.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-wireless-playback-status):

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

4 years ago[Content Extensions] Release input NSString when finished copying it.
achristensen@apple.com [Tue, 5 May 2015 22:58:07 +0000 (22:58 +0000)]
[Content Extensions] Release input NSString when finished copying it.
https://bugs.webkit.org/show_bug.cgi?id=144642

Reviewed by Brian Weinstein.

Source/WebKit2:

* UIProcess/API/Cocoa/_WKUserContentExtensionStore.h:
* UIProcess/API/Cocoa/_WKUserContentExtensionStore.mm:
(-[_WKUserContentExtensionStore compileContentExtensionForIdentifier:encodedContentExtension:completionHandler:]):

Tools:

* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest):
Use alloc and initWithContentsOfURL to prevent over-releasing an autoreleased object.

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

4 years agoNavigating to www.apple.com hits assertion in WebCore::TextIteratorCopyableText:...
zalan@apple.com [Tue, 5 May 2015 22:44:30 +0000 (22:44 +0000)]
Navigating to apple.com hits assertion in WebCore::TextIteratorCopyableText::set()
https://bugs.webkit.org/show_bug.cgi?id=144629
rdar://problem/20689877

Reviewed by Andreas Kling.

This patch ensures that we don't emit empty text for the text iterator.
In TextIterator::handleTextNode before emitting a string, certain characters (\n \t) need to
be replaced with space. When such character is found, we emit the string we've processed so far and
handle the replacement during the next callback.
When the first character in the string needs replacing, there's nothing to emit. However if we don't
handle at least one character, TextIterator::advance believes that processing is done and never calls
TextIterator::handleTextNode back with the rest of the string.

Source/WebCore:

Test: fast/text/simple-line-layout-innerText-with-newline.html

* editing/TextIterator.cpp:
(WebCore::isNewLineOrTabCharacter):
(WebCore::TextIterator::handleTextNode):

LayoutTests:

* fast/text/simple-line-layout-innerText-with-newline-expected.html: Added.
* fast/text/simple-line-layout-innerText-with-newline.html: Added.

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

4 years agoUnreviewed test fix after r183798.
bfulgham@apple.com [Tue, 5 May 2015 22:25:27 +0000 (22:25 +0000)]
Unreviewed test fix after r183798.

* DumpRenderTree/win/AccessibilityUIElementWin.cpp:
(convertToDRTLabel): Mimic behavior of Mac accessibility output
so we can share results.

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

4 years ago[Content Extensions] Use less memory to store the json input.
achristensen@apple.com [Tue, 5 May 2015 22:20:34 +0000 (22:20 +0000)]
[Content Extensions] Use less memory to store the json input.
https://bugs.webkit.org/show_bug.cgi?id=144604

Reviewed by Benjamin Poulain.

Source/WebCore:

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionCompiler.h:
(WebCore::ContentExtensions::loadEncodedRules):
Don't copy strings as much or keep them alive after done using them.

Source/WebKit2:

* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::compiledToFile):
(API::UserContentExtensionStore::compileContentExtension):
* UIProcess/API/APIUserContentExtensionStore.h:
Don't copy strings as much or keep them alive after done using them.

Tools:

* MiniBrowser/mac/ExtensionManagerWindowController.m:
(-[ExtensionManagerWindowController add:]):
* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::InMemoryCompiledContentExtension::createFromFilter):
* WebKitTestRunner/mac/TestControllerMac.mm:
(WTR::TestController::platformConfigureViewForTest):

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

4 years agoPrevent recursive calls to show target picker menu.
eric.carlson@apple.com [Tue, 5 May 2015 22:01:42 +0000 (22:01 +0000)]
Prevent recursive calls to show target picker menu.
https://bugs.webkit.org/show_bug.cgi?id=144637
<rdar://problem/20824726>

Reviewed by Jer Noble.

* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h: Add m_showingMenu.
* platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Do nothing if the menu
is already showing.

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

4 years ago[GTK] Web Inspector: Further optimize SVG images
agomez@igalia.com [Tue, 5 May 2015 21:31:14 +0000 (21:31 +0000)]
[GTK] Web Inspector: Further optimize SVG images
https://bugs.webkit.org/show_bug.cgi?id=144441

SVG images optimized with a combination of sed replacements, the
usage of the scour tool (http://www.codedread.com/scour/) and a
forked version of the svgo tool (https://github.com/tanty/svgo).

Also, added the class attribute to the shape elements following
the convention used in Apple's images.

Reviewed by Joseph Pecoraro.

* UserInterface/Images/gtk/BackArrow.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionAdd.svg: Optimized.
* UserInterface/Images/gtk/BreakpointActionRemove.svg: Optimized.
* UserInterface/Images/gtk/BreakpointButton.svg: Optimized.
* UserInterface/Images/gtk/BreakpointInactiveButton.svg: Optimized.
* UserInterface/Images/gtk/Breakpoints.svg: Optimized.
* UserInterface/Images/gtk/Checkers.svg: Optimized.
* UserInterface/Images/gtk/Circle.svg: Optimized.
* UserInterface/Images/gtk/Close.svg: Optimized.
* UserInterface/Images/gtk/CloseLarge.svg: Optimized.
* UserInterface/Images/gtk/CloseWhite.svg: Optimized.
* UserInterface/Images/gtk/ContentFlow.svg: Optimized.
* UserInterface/Images/gtk/Crosshair.svg: Optimized.
* UserInterface/Images/gtk/DOMCharacterData.svg: Optimized.
* UserInterface/Images/gtk/DOMComment.svg: Optimized.
* UserInterface/Images/gtk/DOMDocument.svg: Optimized.
* UserInterface/Images/gtk/DOMDocumentType.svg: Optimized.
* UserInterface/Images/gtk/DOMElement.svg: Optimized.
* UserInterface/Images/gtk/DOMNode.svg: Optimized.
* UserInterface/Images/gtk/DOMTextNode.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleSmallOpen.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyClosed.svg: Optimized.
* UserInterface/Images/gtk/DisclosureTriangleTinyOpen.svg: Optimized.
* UserInterface/Images/gtk/DockBottom.svg: Optimized.
* UserInterface/Images/gtk/DockRight.svg: Optimized.
* UserInterface/Images/gtk/DownloadArrow.svg: Optimized.
* UserInterface/Images/gtk/Error.svg: Optimized.
* UserInterface/Images/gtk/Errors.svg: Optimized.
* UserInterface/Images/gtk/ErrorsEnabled.svg: Optimized.
* UserInterface/Images/gtk/EventListener.svg: Optimized.
* UserInterface/Images/gtk/Exception.svg: Optimized.
* UserInterface/Images/gtk/Eye.svg: Optimized.
* UserInterface/Images/gtk/FilterFieldGlyph.svg: Optimized.
* UserInterface/Images/gtk/ForwardArrow.svg: Optimized.
* UserInterface/Images/gtk/Function.svg: Optimized.
* UserInterface/Images/gtk/GoToArrow.svg: Optimized.
* UserInterface/Images/gtk/HierarchicalNavigationItemChevron.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner1.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner10.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner11.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner12.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner2.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner3.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner4.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner5.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner6.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner7.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner8.svg: Optimized.
* UserInterface/Images/gtk/IndeterminateProgressSpinner9.svg: Optimized.
* UserInterface/Images/gtk/Issues.svg: Optimized.
* UserInterface/Images/gtk/IssuesEnabled.svg: Optimized.
* UserInterface/Images/gtk/LayerBorders.svg: Optimized.
* UserInterface/Images/gtk/Locked.svg: Optimized.
* UserInterface/Images/gtk/Logs.svg: Optimized.
* UserInterface/Images/gtk/Native.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTrash.svg: Optimized.
* UserInterface/Images/gtk/NavigationItemTypes.svg: Optimized.
* UserInterface/Images/gtk/PaintFlashing.svg: Optimized.
* UserInterface/Images/gtk/Pause.svg: Optimized.
* UserInterface/Images/gtk/PausedBreakpoint.svg: Optimized.
* UserInterface/Images/gtk/Pencil.svg: Optimized.
* UserInterface/Images/gtk/Plus.svg: Optimized. Text element
converted into a shape.
* UserInterface/Images/gtk/PseudoElement.svg: Optimized.
* UserInterface/Images/gtk/Record.svg: Optimized.
* UserInterface/Images/gtk/Reflection.svg: Optimized.
* UserInterface/Images/gtk/ReloadFull.svg: Optimized.
* UserInterface/Images/gtk/ReplayPauseButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Optimized.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Optimized.
* UserInterface/Images/gtk/Request.svg: Optimized.
* UserInterface/Images/gtk/Resources.svg: Optimized.
* UserInterface/Images/gtk/Response.svg: Optimized.
* UserInterface/Images/gtk/ResultLine.svg: Optimized.
* UserInterface/Images/gtk/Resume.svg: Optimized.
* UserInterface/Images/gtk/ShadowDOM.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorDownArrow.svg: Optimized.
* UserInterface/Images/gtk/SortIndicatorUpArrow.svg: Optimized.
* UserInterface/Images/gtk/SplitToggleUp.svg: Optimized.
* UserInterface/Images/gtk/StepInto.svg: Optimized.
* UserInterface/Images/gtk/StepOut.svg: Optimized.
* UserInterface/Images/gtk/StepOver.svg: Optimized.
* UserInterface/Images/gtk/Stop.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleAuthor.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInherited.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInheritedElement.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleInspector.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUser.svg: Optimized.
* UserInterface/Images/gtk/StyleRuleUserAgent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordAnimation.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordConsoleProfile.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordEvent.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordLayout.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordPaint.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordProbeSampled.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordScriptEvaluated.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordStyle.svg: Optimized.
* UserInterface/Images/gtk/TimelineRecordTimer.svg: Optimized.
* UserInterface/Images/gtk/TypeBoolean.svg: Optimized.
* UserInterface/Images/gtk/TypeNull.svg: Optimized.
* UserInterface/Images/gtk/TypeNumber.svg: Optimized.
* UserInterface/Images/gtk/TypeObject.svg: Optimized.
* UserInterface/Images/gtk/TypeRegex.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeString.svg: Optimized.
* UserInterface/Images/gtk/TypeSymbol.svg: Optimized. Removed
mistaken extra shape.
* UserInterface/Images/gtk/TypeUndefined.svg: Optimized.
* UserInterface/Images/gtk/Undock.svg: Optimized.
* UserInterface/Images/gtk/UpDownArrows.svg: Optimized.
* UserInterface/Images/gtk/UserInputPrompt.svg: Optimized.
* UserInterface/Images/gtk/UserInputPromptPrevious.svg: Optimized.
* UserInterface/Images/gtk/UserInputResult.svg: Optimized.
* UserInterface/Images/gtk/Warning.svg: Optimized.

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

4 years agoUse system blue for Airplay Glyph
dino@apple.com [Tue, 5 May 2015 21:29:20 +0000 (21:29 +0000)]
Use system blue for Airplay Glyph
https://bugs.webkit.org/show_bug.cgi?id=144614

There was a typo in the last commit.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-optimized-fullscreen-button): Transition duration should be 250ms.

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

4 years ago[iOS] Use system blue for Airplay Glyph
dino@apple.com [Tue, 5 May 2015 21:19:25 +0000 (21:19 +0000)]
[iOS] Use system blue for Airplay Glyph
https://bugs.webkit.org/show_bug.cgi?id=144614

Reviewed by Eric Carlson.

Revert to using masks for the glyphs in the media controls,
which allows us to:
- use the system blue color when Airplay is active <rdar://problem/20245297>
- fade out from the active state <rdar://problem/20245487>
- allow the play button to give touch feedback <rdar://problem/17849930>

While those are three separate bugs, they all get addressed by
this single change.

* Modules/mediacontrols/mediaControlsiOS.css:
(audio::-webkit-media-controls-optimized-fullscreen-button):
(audio::-webkit-media-controls-optimized-fullscreen-button:active):
(video::-webkit-media-controls-play-button):
(video::-webkit-media-controls-play-button.paused):
(video::-webkit-media-controls-fullscreen-button):
(video::-webkit-media-controls-wireless-playback-picker-button):
(video::-webkit-media-controls-wireless-playback-picker-button.playing):
(video::-webkit-media-controls-optimized-fullscreen-button):
(video::-webkit-media-controls-play-button:active): Deleted.
(video::-webkit-media-controls-play-button.paused:active): Deleted.
(video::-webkit-media-controls-fullscreen-button:active): Deleted.
(video::-webkit-media-controls-wireless-playback-picker-button:active): Deleted.

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

4 years agoUnreviewed. Make myself a WebKit reviewer.
utatane.tea@gmail.com [Tue, 5 May 2015 21:01:22 +0000 (21:01 +0000)]
Unreviewed. Make myself a WebKit reviewer.

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

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

4 years agoOnly autoplay videos should not automatically play to playback target
eric.carlson@apple.com [Tue, 5 May 2015 20:50:02 +0000 (20:50 +0000)]
Only autoplay videos should not automatically play to playback target
https://bugs.webkit.org/show_bug.cgi?id=144633

Reviewed by Jer Noble.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement): Set RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Remove
RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaElement::mediaState): Set ExternalDeviceAutoPlayCandidate if playback
was started from a user gesture, even if the video loops and/or doesn't have audio.

* html/HTMLMediaSession.h: Define RequireUserGestureToAutoplayToExternalDevice.
(WebCore::HTMLMediaSession::hasBehaviorRestriction): New.

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

4 years agoFTL SwitchString slow case creates duplicate switch cases
fpizlo@apple.com [Tue, 5 May 2015 20:42:44 +0000 (20:42 +0000)]
FTL SwitchString slow case creates duplicate switch cases
https://bugs.webkit.org/show_bug.cgi?id=144634

Reviewed by Geoffrey Garen.

The problem of duplicate switches is sufficiently annoying that I fixed the issue and also
added mostly-debug-only asserts to catch such issues earlier.

* bytecode/CallVariant.cpp:
(JSC::variantListWithVariant): Assertion to prevent similar bugs.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::switchStringRecurse): Assertion to prevent similar bugs.
(JSC::FTL::LowerDFGToLLVM::switchStringSlow): This is the bug.
* jit/BinarySwitch.cpp:
(JSC::BinarySwitch::BinarySwitch): Assertion to prevent similar bugs.
* jit/Repatch.cpp:
(JSC::linkPolymorphicCall): Assertion to prevent similar bugs.
* tests/stress/ftl-switch-string-slow-duplicate-cases.js: Added. This tests the FTL SwitchString bug. It was previously crashing every time.
(foo):
(cat):

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

4 years agoUnreviewed logging fix.
bfulgham@apple.com [Tue, 5 May 2015 20:14:07 +0000 (20:14 +0000)]
Unreviewed logging fix.

* page/WheelEventTestTrigger.cpp:
(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Fix typo in logging channel.

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

4 years agoAdd overflow scroll-snap tests
bfulgham@apple.com [Tue, 5 May 2015 20:12:10 +0000 (20:12 +0000)]
Add overflow scroll-snap tests
https://bugs.webkit.org/show_bug.cgi?id=144591

Reviewed by Simon Fraser.

* platform/mac-wk2/TextExpectations: Mark overflow test as flaky while I investigate.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/horizontal-mainframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/resources/vertical-mainframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-destination-lock-up.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-iframe.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-overflow.html: Added.

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

4 years ago[GTK] r183783 breaks build
jdiggs@igalia.com [Tue, 5 May 2015 19:35:21 +0000 (19:35 +0000)]
[GTK] r183783 breaks build
https://bugs.webkit.org/show_bug.cgi?id=144632

Reviewed by Martin Robinson.

Return false rather than nullptr for unimplemented AccessibilityUIElement::setSelectedVisibleTextRange

* WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

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

4 years agoREGRESSION: Web Inspector: no way to navigate to a resource/source location from...
timothy@apple.com [Tue, 5 May 2015 18:11:50 +0000 (18:11 +0000)]
REGRESSION: Web Inspector: no way to navigate to a resource/source location from overview timeline view
https://bugs.webkit.org/show_bug.cgi?id=144539

Reviewed by Brian Burg.

* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.set status): Call didChange() so the onchange event fires. This allows
TimelineSidebarPanel to update the status element when it goes from a spinner to empty for ResourceTreeElements.
(WebInspector.GeneralTreeElement.prototype.onattach): Don't call _updateStatusElement, just append it if needed.
Calling _updateStatusElement caused DOMNodeFragments as status elements to be appended a second time and fail.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.NetworkTimelineView.prototype.treeElementSelected):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
(WebInspector.NetworkTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
(WebInspector.OverviewTimelineView.prototype._treeElementDeselected): Deleted.
(WebInspector.OverviewTimelineView.prototype._treeElementSelected): Deleted.
(WebInspector.OverviewTimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
(WebInspector.OverviewTimelineView.prototype._closeStatusButtonClicked): Deleted.
* UserInterface/Views/RenderingFrameTimelineView.js:
(WebInspector.RenderingFrameTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.RenderingFrameTimelineView.prototype.showContentViewForTreeElement):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent): Don't show a go-to arrow in the Domain column.
(WebInspector.ResourceTimelineDataGridNode.prototype._goToResource): Deleted.
* UserInterface/Views/ScriptTimelineView.js:
(WebInspector.ScriptTimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.showContentViewForTreeElement):
(WebInspector.ScriptTimelineView.prototype.treeElementSelected):
* UserInterface/Views/TimelineRecordTreeElement.js:
(WebInspector.TimelineRecordTreeElement.prototype.get sourceCodeLocation):
* UserInterface/Views/TimelineSidebarPanel.css:
(.sidebar > .panel.navigation.timeline .item:hover:not(.selected) .status .close.status-button):
(.sidebar > .panel.navigation.timeline:not(.timeline-recording-content-view-showing) .status .go-to-arrow.status-button):
(.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .status .close.status-button):
* UserInterface/Views/TimelineSidebarPanel.js:
(WebInspector.TimelineSidebarPanel.prototype.treeElementAddedOrChanged): Added.
(WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
(WebInspector.TimelineSidebarPanel.prototype._treeElementGoToArrowWasClicked): Added.
(WebInspector.TimelineSidebarPanel.prototype._treeElementCloseButtonClicked): Added.
* UserInterface/Views/TimelineView.js:
(WebInspector.TimelineView):
(WebInspector.TimelineView.prototype.canShowContentViewForTreeElement):
(WebInspector.TimelineView.prototype.showContentViewForTreeElement):
(WebInspector.TimelineView.prototype.treeElementDeselected):
(WebInspector.TimelineView.prototype.treeElementSelected):
(WebInspector.TimelineView.prototype.needsLayout):
(WebInspector.TimelineView.prototype._closeStatusButtonClicked): Deleted.
(WebInspector.TimelineView.prototype._updateTreeElementWithCloseButton): Deleted.
* UserInterface/Views/TreeElementStatusButton.css:
(.item > .status > .status-button): Fix an alignment issue with close and go-to arrows being side-by-side.
Does not happen in the final patch because they are mutually exclusive, but still good to fix.

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

4 years agoMedia control volume slider is opaque.
roger_fong@apple.com [Tue, 5 May 2015 18:02:09 +0000 (18:02 +0000)]
Media control volume slider is opaque.
https://bugs.webkit.org/show_bug.cgi?id=144470.
<rdar://problem/20770350>

Rubberstamped by Simon Fraser.

* Modules/mediacontrols/mediaControlsApple.css:
(audio::-webkit-media-controls-panel):
Don't create a stacking context just for the controls.
Doing so causes the mix-blend-mode on the volume box to fail.

* platform/mac/TestExpectations:
Some tests generate assertion failures after this change, though the tests pass in release.
Marking them as crashing in debug for now.
Tracking failures here: https://bugs.webkit.org/show_bug.cgi?id=144630.

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

4 years agoFix debug builds after r183812
basile_clement@apple.com [Tue, 5 May 2015 17:59:33 +0000 (17:59 +0000)]
Fix debug builds after r183812
https://bugs.webkit.org/show_bug.cgi?id=144300

Rubber stamped by Andreas Kling and Filip Pizlo.

hasObjectMaterializationData() didn't treat MaterializeCreateActivation
as having materialization data, which was causing an assertion failure when
sinking CreateActivations on debug builds.

* dfg/DFGNode.h:
(JSC::DFG::Node::hasObjectMaterializationData):

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

4 years ago[Content Extensions] Combine NFAs properly and free memory as we compile.
achristensen@apple.com [Tue, 5 May 2015 17:27:41 +0000 (17:27 +0000)]
[Content Extensions] Combine NFAs properly and free memory as we compile.
https://bugs.webkit.org/show_bug.cgi?id=144485

Reviewed by Benjamin Poulain.

Source/WebCore:

This patch correctly combines all regular expressions with a common prefix up to
the last quantified term into the same NFA.  It also deletes the prefix tree as it
creates NFAs, thus reducing the maximum memory used when compiling.

* contentextensions/CombinedURLFilters.cpp:
(WebCore::ContentExtensions::CombinedURLFilters::isEmpty):
(WebCore::ContentExtensions::CombinedURLFilters::addPattern):
(WebCore::ContentExtensions::generateNFAForSubtree):
(WebCore::ContentExtensions::CombinedURLFilters::processNFAs):
(WebCore::ContentExtensions::CombinedURLFilters::clear): Deleted.
* contentextensions/CombinedURLFilters.h:
* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionsDebugging.h:

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:
(TestWebKitAPI::TEST_F):
Added tests for correctly splitting up NFAs with unquantified terms after quantified terms.
Added tests for deep NFAs.

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

4 years ago[Content Extensions] Use less memory when writing byte code to file
achristensen@apple.com [Tue, 5 May 2015 17:12:36 +0000 (17:12 +0000)]
[Content Extensions] Use less memory when writing byte code to file
https://bugs.webkit.org/show_bug.cgi?id=144602

Reviewed by Darin Adler.

Source/WebCore:

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
* contentextensions/ContentExtensionCompiler.h:
Compile one DFA at a time so we don't need to keep all the bytecode in memory at the same time.
* contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpret):
Jumps are now relative to the current DFA because we don't know about other DFAs that
have been compiling when linking the DFA bytecode.  This will also make the DFA bytecode
easier to minimize because more of the values are small in the DFAs after the first DFA.
* platform/FileSystem.h:

Source/WebKit2:

* UIProcess/API/APIUserContentExtensionStore.cpp:
(API::decodeContentExtensionMetaData):
(API::writeDataToFile):
(API::compiledToFile):
(API::createExtension):
Compile and write each DFA to file, then come back and write the header when finalizing.
Also don't copy the DFA bytecode. This way, we don't need to keep more than one DFA's
bytecode in memory at a time.

Tools:

* TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

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

4 years agoWeb Inspector: Fix some issues with Search tabs
timothy@apple.com [Tue, 5 May 2015 16:59:31 +0000 (16:59 +0000)]
Web Inspector: Fix some issues with Search tabs
https://bugs.webkit.org/show_bug.cgi?id=144531

Reviewed by Darin Adler.

* UserInterface/Views/ContentView.js:
(WebInspector.ContentView):
(WebInspector.ContentView.isViewable):
Support DOMSearchMatchObject and SourceCodeSearchMatchObject representedObjects. These are usually
handled at a higher level, but cookie restoring requires ContentView to handle them.

* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.selectAndRevealDOMNode):
(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):
Don't allow restoring the previous selected node when another not has already been selected.

* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Allow Script objects to be shown in the Search tab.

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

4 years agoWeb Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attrib...
timothy@apple.com [Tue, 5 May 2015 16:37:58 +0000 (16:37 +0000)]
Web Inspector: Source/WebInspectorUI/UserInterface/Images/Logs.svg has unknown attribute "fille"
https://bugs.webkit.org/show_bug.cgi?id=144627

Reviewed by Darin Adler.

* UserInterface/Images/Logs.svg: Change "fille" to "fill".

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

4 years agoUnreviewed gardening, unskip passing compositing tests since USE_NATIVE_XDISPLAY=1
ossy@webkit.org [Tue, 5 May 2015 16:36:27 +0000 (16:36 +0000)]
Unreviewed gardening, unskip passing compositing tests since USE_NATIVE_XDISPLAY=1
is set on the EFL bots and mark the remaining failing compositing tests properly.

* platform/efl/TestExpectations:

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

4 years agoMake all FrameLoadState data members private.
commit-queue@webkit.org [Tue, 5 May 2015 16:34:35 +0000 (16:34 +0000)]
Make all FrameLoadState data members private.
https://bugs.webkit.org/show_bug.cgi?id=144562

Patch by Sungmann Cho <sungmann.cho@navercorp.com> on 2015-05-05
Reviewed by Darin Adler.

Previously, all of the data members in FrameLoadState were public and accessed directly
from outside the class. But these should all be private as noted in FrameLoadState.h
for better encapsulation.

No new tests, no behavior change.

* UIProcess/API/C/WKFrame.cpp:
(WKFrameGetFrameLoadState):
* UIProcess/FrameLoadState.h:
(WebKit::FrameLoadState::state):
(WebKit::FrameLoadState::url):
(WebKit::FrameLoadState::provisionalURL):
(WebKit::FrameLoadState::unreachableURL):
* UIProcess/WebFrameProxy.h:
(WebKit::WebFrameProxy::url):
(WebKit::WebFrameProxy::provisionalURL):
(WebKit::WebFrameProxy::unreachableURL):

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

4 years agoAllow CreateActivation sinking
basile_clement@apple.com [Tue, 5 May 2015 16:34:21 +0000 (16:34 +0000)]
Allow CreateActivation sinking
https://bugs.webkit.org/show_bug.cgi?id=144300

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This pursues the work started in
https://bugs.webkit.org/show_bug.cgi?id=144016 to expand the set of
allocations we are able to sink by allowing sinking of CreateActivation
node.

This is achieved by following closely the way NewObject is currently
sunk: we add a new PhantomCreateActivation node to record the initial
position of the CreateActivation node, new ClosureVarPLoc promoted heap
locations to keep track of the variables put in the activation, and a
new MaterializeCreateActivation node to allocate and populate the sunk
activation.

* dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
* dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
* dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
* dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
* dfg/DFGNode.cpp:
(JSC::DFG::Node::convertToPutClosureVarHint):
* dfg/DFGNode.h:
(JSC::DFG::Node::convertToPhantomCreateActivation):
(JSC::DFG::Node::isActivationAllocation):
(JSC::DFG::Node::isPhantomActivationAllocation):
(JSC::DFG::Node::isPhantomAllocation):
* dfg/DFGNodeType.h:
* dfg/DFGObjectAllocationSinkingPhase.cpp:
(JSC::DFG::ObjectAllocationSinkingPhase::lowerNonReadingOperationsOnPhantomAllocations):
(JSC::DFG::ObjectAllocationSinkingPhase::handleNode):
(JSC::DFG::ObjectAllocationSinkingPhase::createMaterialize):
(JSC::DFG::ObjectAllocationSinkingPhase::populateMaterialize):
* dfg/DFGPredictionPropagationPhase.cpp:
(JSC::DFG::PredictionPropagationPhase::propagate):
* dfg/DFGPromotedHeapLocation.cpp:
(WTF::printInternal):
* dfg/DFGPromotedHeapLocation.h:
* dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
* dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
* dfg/DFGValidate.cpp:
(JSC::DFG::Validate::validateCPS):
* ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileMaterializeCreateActivation):
* ftl/FTLOperations.cpp:
(JSC::FTL::operationMaterializeObjectInOSR):
* tests/stress/activation-sink-osrexit.js: Added.
(bar):
(foo.set result):
* tests/stress/activation-sink.js: Added.
(bar):

LayoutTests:

Add a performance test for activation allocation sinking.

* js/regress/script-tests/sink-huge-activation.js: Added.
(bar):
(foo):

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