Timeline


and

05/07/15: Today

01:26 Changeset [183921] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WTF

[GTK] Clean up RunLoop implementation
https://bugs.webkit.org/show_bug.cgi?id=144729

Reviewed by Carlos Garcia Campos.

Clean up the RunLoop implementation for the GTK port,
removing unnecessary methods and using simpler variable names.

Nested GMainLoops in RunLoop::run() are now created for the
RunLoop's GMainContext, and not for the default context (enforced
through the null argument to g_main_loop_new()).

  • wtf/RunLoop.h:
  • wtf/gtk/RunLoopGtk.cpp:

(WTF::RunLoop::RunLoop):
(WTF::RunLoop::~RunLoop):
(WTF::RunLoop::run):
(WTF::RunLoop::stop):
(WTF::RunLoop::wakeUp):
(WTF::RunLoop::TimerBase::start):
(WTF::RunLoop::innermostLoop): Deleted.
(WTF::RunLoop::pushNestedMainLoop): Deleted.
(WTF::RunLoop::popNestedMainLoop): Deleted.

01:09 Changeset [183920] by yoav@yoav.ws
  • 3 edits
    4 adds in trunk

Fix <script srcset> being loaded by the preloader.
https://bugs.webkit.org/show_bug.cgi?id=144675

Reviewed by Darin Adler.

Source/WebCore:

Fix HTMLPreloadScanner to make sure that srcset is only loaded
when it is present on an <img>.

Tests: http/tests/loading/preload-script-src.html

http/tests/loading/preload-script-srcset-ignored.html

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):

LayoutTests:

Add preloader tests to make sure that <script src> is preloaded,
and <script srcset> is not.

  • http/tests/loading/preload-script-src-expected.txt: Added.
  • http/tests/loading/preload-script-src.html: Added.
  • http/tests/loading/preload-script-srcset-ignored-expected.txt: Added.
  • http/tests/loading/preload-script-srcset-ignored.html: Added.
01:02 Changeset [183919] by carlosgc@webkit.org
  • 3 edits in trunk/Source/WebKit2

[GTK] Remove dock button from Web Inspector window
https://bugs.webkit.org/show_bug.cgi?id=144728

Reviewed by Sergio Villar Senin.

We added the dock buttons to the headerbar, because they were
removed from the inspector toolbar, but with the new tabbed
design, the dock buttons are back in the toolbar and look redundant.

  • UIProcess/WebInspectorProxy.h:
  • UIProcess/gtk/WebInspectorProxyGtk.cpp:

(WebKit::WebInspectorProxy::createInspectorWindow):
(WebKit::WebInspectorProxy::platformAttachAvailabilityChanged):
(WebKit::WebInspectorProxy::dockButtonClicked): Deleted.

00:09 Changeset [183918] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Add missing type traits specialization for PlatformDisplayWayland
https://bugs.webkit.org/show_bug.cgi?id=144671

Reviewed by Carlos Garcia Campos.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

Add missing type traits specialization for the PlatformDisplayWayland
class via the SPECIALIZE_TYPE_TRAITS_PLATFORM_DISPLAY macro.

05/06/15: Yesterday

23:53 Changeset [183917] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

23:51 Changeset [183916] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.32

New tag.

23:20 Changeset [183915] by ap@apple.com
  • 2 edits in trunk/Tools

iOS build fix attempt

Link WebKitTestRunnerApp to WebKit, now that we don't have WebKit2.

  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
23:13 Changeset [183914] by yoav@yoav.ws
  • 1 edit
    7 adds in trunk/LayoutTests

Add srcset preloader tests
https://bugs.webkit.org/show_bug.cgi?id=144674

Reviewed by Darin Adler.

Add several preloader tests making sure that the when srcset is being preloaded,
the right resource is fetched, and the other resource is not.

  • http/tests/loading/preload-img-src-expected.txt: Added.
  • http/tests/loading/preload-img-src.html: Added.
  • http/tests/loading/preload-img-srcset-expected.txt: Added.
  • http/tests/loading/preload-img-srcset-sizes-expected.txt: Added.
  • http/tests/loading/preload-img-srcset-sizes.html: Added.
  • http/tests/loading/preload-img-srcset.html: Added.
  • http/tests/resources/checkPreload.js: Added.

(checkForPreload):

23:07 Changeset [183913] by rego@igalia.com
  • 3 edits
    4 adds in trunk

[CSS Grid Layout] Mark grid shorthands as layout dependent
https://bugs.webkit.org/show_bug.cgi?id=144687

Reviewed by Darin Adler.

Source/WebCore:

grid-template and grid shorthands were not marked us layout dependent,
so you can end up calling them before the grid has been laid out and
you'll get a crash at valueForGridTrackList() because of trackPositions
won't be initialized yet.

Tests: fast/css-grid-layout/grid-shorthand-computed-style-crash.html

fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::isLayoutDependent): Add the grid shorthands only if the object
is a RenderGrid as otherwise it's not needed (using the same condition
for grid-template-columns and grid-template-rows properties too).

LayoutTests:

  • fast/css-grid-layout/grid-shorthand-computed-style-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-shorthand-computed-style-crash.html: Added.
  • fast/css-grid-layout/grid-template-shorthand-computed-style-crash-expected.txt: Added.
  • fast/css-grid-layout/grid-template-shorthand-computed-style-crash.html: Added.
22:15 Changeset [183912] by rniwa@webkit.org
  • 5 edits in trunk

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:
21:56 Changeset [183911] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit2

[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):

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

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):

20:23 Changeset [183909] by dbates@webkit.org
  • 15 edits in trunk/Source

[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.

20:19 Changeset [183908] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

[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):

20:04 Changeset [183907] by commit-queue@webkit.org
  • 9 edits in trunk/Source

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.

19:53 Changeset [183906] by bfulgham@apple.com
  • 13 edits
    8 adds in trunk

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.
19:32 Changeset [183905] by mattbaker@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

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.

19:09 Changeset [183904] by mmaxfield@apple.com
  • 8 edits in trunk/Source/WebCore

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):

18:23 Changeset [183903] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[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:
17:59 Changeset [183902] by mattbaker@apple.com
  • 2 edits in trunk/Tools

Unreviewed, updated my list of email addresses.

  • Scripts/webkitpy/common/config/contributors.json:
17:28 Changeset [183901] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

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):

17:26 Changeset [183900] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

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

16:42 Changeset [183899] by jonlee@apple.com
  • 2 edits in trunk/Source/WebCore

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.
16:32 Changeset [183898] by beidson@apple.com
  • 4 edits in trunk/Source/WebKit2

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):

16:14 Changeset [183897] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

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.

16:05 Changeset [183896] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

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.

15:55 Changeset [183895] by jonlee@apple.com
  • 6 edits in trunk

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.
15:46 Changeset [183894] by dino@apple.com
  • 5 edits
    2 adds in trunk

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.
15:35 Changeset [183893] by cdumez@apple.com
  • 2 edits in trunk/Source/WebKit2

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):

15:32 Changeset [183892] by achristensen@apple.com
  • 6 edits
    1 add in trunk/Source/WebCore

[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.

15:14 Changeset [183891] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

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.

14:50 Changeset [183890] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

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):

14:36 Changeset [183889] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

14:02 Changeset [183888] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

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.

14:00 Changeset [183887] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

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.

13:52 Changeset [183886] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Fix the build.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

  • platform/spi/cocoa/QuartzCoreSPI.h:
13:40 Changeset [183885] by hyatt@apple.com
  • 10 edits in trunk/Source/WebCore

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.

13:34 Changeset [183884] by ap@apple.com
  • 3 edits in trunk/Tools

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.

13:32 Changeset [183883] by mmaxfield@apple.com
  • 13 edits
    1 copy
    14 adds in trunk

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.
12:26 Changeset [183882] by achristensen@apple.com
  • 2 edits in trunk/Tools

Fix api tests after r183877.

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):
Generate all DFAs before compiling them.

12:02 Changeset [183881] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[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.

11:44 Changeset [183880] by ap@apple.com
  • 4 edits in trunk/Tools

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:
11:37 Changeset [183879] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

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.

10:52 Changeset [183878] by mrobinson@webkit.org
  • 8 edits in trunk

[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.
10:51 Changeset [183877] by commit-queue@webkit.org
  • 10 edits in trunk

[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):

10:47 Changeset [183876] by mrobinson@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed GTK+ gardening

  • platform/gtk/TestExpectations: Remove a couple expectations tests.
  • platform/gtk/editing/execCommand/nsresponder-outdent-expected.txt:
10:31 Changeset [183875] by antti@apple.com
  • 5 edits in trunk/Source

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.

10:10 Changeset [183874] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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):

10:02 Changeset [183873] by ap@apple.com
  • 5 edits in trunk/LayoutTests

Update expectations for fast/forms/button-line-height.html

  • TestExpectations:
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:
09:50 Changeset [183872] by commit-queue@webkit.org
  • 5 edits
    1 delete in trunk/Source/JavaScriptCore

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

09:42 Changeset [183871] by rniwa@webkit.org
  • 8 edits in trunk/Source

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:]):

09:36 Changeset [183870] by jberlin@webkit.org
  • 2 edits in trunk/Source/WebCore

More build fixing.

  • page/mac/TextIndicatorWindow.mm:
09:25 Changeset [183869] by jberlin@webkit.org
  • 2 edits in trunk/Source/WebCore

32-bit build fix after r183859 and r183860.

  • page/mac/TextIndicatorWindow.mm:

Autosynthesis isn't available for our 32-bit builds.

09:06 Changeset [183868] by carlosgc@webkit.org
  • 19 edits in trunk/Source/WebCore

[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:
05:55 Changeset [183867] by commit-queue@webkit.org
  • 5 edits in trunk/Source

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.

04:59 Changeset [183866] by youenn.fablet@crf.canon.fr
  • 10 edits
    2 moves in trunk/Source/WebCore

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:
02:12 Changeset [183865] by carlosgc@webkit.org
  • 4 edits in trunk

[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:
01:17 Changeset [183864] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/WebKit2

[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.

00:06 Changeset [183863] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

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.

00:02 Changeset [183862] by nvasilyev@apple.com
  • 2 edits in trunk/LayoutTests

LayoutTests/fast/forms/button-line-height.html is broken on non-Mac/non-iOS ports
https://bugs.webkit.org/show_bug.cgi?id=144673

05/05/15:

23:55 Changeset [183861] by ap@apple.com
  • 3 edits in trunk/Source/WebKit2

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.

23:46 Changeset [183860] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

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.

23:26 Changeset [183859] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

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.

23:23 Changeset [183858] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebCore

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:
23:21 Changeset [183857] by zandobersek@gmail.com
  • 10 edits in trunk/Source/WebCore

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:
23:17 Changeset [183856] by zandobersek@gmail.com
  • 10 edits in trunk/Source/WebCore

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.

23:14 Changeset [183855] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

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.

23:11 Changeset [183854] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

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.

22:57 Changeset [183853] by commit-queue@webkit.org
  • 5 edits in trunk

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:
22:56 Changeset [183852] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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):

22:52 Changeset [183851] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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):

22:39 Changeset [183850] by rego@igalia.com
  • 5 edits in trunk

[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.

21:57 Changeset [183849] by zalan@apple.com
  • 2 edits in trunk/Source/WebCore

Remove unused RenderLayerBacking::hasContentsLayer().
https://bugs.webkit.org/show_bug.cgi?id=144658

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/RenderLayerBacking.h:
21:39 Changeset [183848] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

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:
20:39 Changeset [183847] by fpizlo@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

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):

19:10 Changeset [183846] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • Platform/mac/LayerHostingContext.mm:

(WebKit::LayerHostingContext::setFencePort):

18:12 Changeset [183845] by achristensen@apple.com
  • 3 edits in trunk/Source/WebCore

[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.

17:21 Changeset [183844] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix the build.

  • UIProcess/mac/WKViewLayoutStrategy.mm:

(-[WKViewDynamicSizeWithMinimumViewSizeLayoutStrategy updateLayout]):

16:48 Changeset [183843] by roger_fong@apple.com
  • 4 edits in trunk

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:
16:44 Changeset [183842] by jdiggs@igalia.com
  • 2 edits
    2 adds
    2 deletes in trunk/LayoutTests

[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.
16:39 Changeset [183841] by timothy_horton@apple.com
  • 34 edits
    2 adds in trunk

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.

16:35 Changeset [183840] by bfulgham@apple.com
  • 2 edits in trunk/Source/WebCore

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.

16:22 Changeset [183839] by roger_fong@apple.com
  • 3 edits in trunk/Source/WebCore

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):

16:08 Changeset [183838] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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):

16:03 Changeset [183837] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[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):

15:58 Changeset [183836] by achristensen@apple.com
  • 5 edits in trunk

[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.

15:44 Changeset [183835] by zalan@apple.com
  • 3 edits
    2 adds in trunk

Navigating to www.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.
15:31 Changeset [183834] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

15:25 Changeset [183833] by bfulgham@apple.com
  • 2 edits in trunk/Tools

Unreviewed test fix after r183798.

  • DumpRenderTree/win/AccessibilityUIElementWin.cpp:

(convertToDRTLabel): Mimic behavior of Mac accessibility output
so we can share results.

15:20 Changeset [183832] by achristensen@apple.com
  • 8 edits in trunk

[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):

15:01 Changeset [183831] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

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.

14:31 Changeset [183830] by agomez@igalia.com
  • 114 edits in trunk/Source/WebInspectorUI

[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.
14:29 Changeset [183829] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

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.

14:19 Changeset [183828] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[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.

14:01 Changeset [183827] by utatane.tea@gmail.com
  • 2 edits in trunk/Tools

Unreviewed. Make myself a WebKit reviewer.

  • Scripts/webkitpy/common/config/contributors.json:
13:50 Changeset [183826] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

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.

13:42 Changeset [183825] by fpizlo@apple.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

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):

13:41 WebInspector edited by andrey.sikilyavyy@mail.ru
(diff)
13:14 Changeset [183824] by bfulgham@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed logging fix.

  • page/WheelEventTestTrigger.cpp:

(WebCore::WheelEventTestTrigger::triggerTestTimerFired): Fix typo in logging channel.

13:12 Changeset [183823] by bfulgham@apple.com
  • 2 edits
    9 adds in trunk/LayoutTests

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.
12:35 Changeset [183822] by jdiggs@igalia.com
  • 2 edits in trunk/Tools

[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):

11:11 Changeset [183821] by timothy@apple.com
  • 13 edits in trunk/Source/WebInspectorUI

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.

11:02 Changeset [183820] by roger_fong@apple.com
  • 4 edits in trunk

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.

10:59 Changeset [183819] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

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):

10:27 Changeset [183818] by achristensen@apple.com
  • 7 edits in trunk

[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.

10:12 Changeset [183817] by achristensen@apple.com
  • 9 edits in trunk

[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:
09:59 Changeset [183816] by timothy@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

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.

09:37 Changeset [183815] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

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".
09:36 Changeset [183814] by ossy@webkit.org
  • 2 edits in trunk/LayoutTests

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:
09:34 Changeset [183813] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

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):

09:34 Changeset [183812] by basile_clement@apple.com
  • 20 edits
    3 adds in trunk

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):

09:27 Changeset [183811] by ap@apple.com
  • 5 edits in trunk/Source/WebKit2

Crashes in SandboxExtension::consumePermanently when uploading
https://bugs.webkit.org/show_bug.cgi?id=144611
rdar://problem/10156710

Reviewed by Darin Adler.

This only fixes the crashes, uploading still won't work.
Added null checks and some logging that may help us get to the root cause eventually.

  • Shared/SandboxExtension.h:

(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):

  • Shared/mac/SandboxExtensionMac.mm:

(WebKit::SandboxExtension::createHandle):
(WebKit::SandboxExtension::createHandleForReadWriteDirectory):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didChooseFilesForOpenPanel):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::extendSandboxForFileFromOpenPanel):

09:22 Changeset [183810] by ossy@webkit.org
  • 2 edits in trunk/Source/WebKit/win

Unreviewed WinCairo buildfix after r183807.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::initialize):
(AcceleratedCompositingContext::acceleratedCompositingAvailable):

09:13 Changeset [183809] by ossy@webkit.org
  • 3 edits in trunk/Source/WebCore

Unreviewed, speculative WinCairo buildfix after r183807.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
09:10 Changeset [183808] by akling@apple.com
  • 3 edits in trunk/LayoutTests

Fix up fast/performance/performance-now-crash-on-navigated-window.html after r183795.

Unreviewed fix for the bots. Since performance.now doesn't bail out and return 0 in
disconnected frames anymore, we have to adjust the expectations. This test was all
about catching a crash anyway.

  • fast/performance/performance-now-crash-on-navigated-window-expected.txt:
  • fast/performance/performance-now-crash-on-navigated-window.html:
08:48 Changeset [183807] by ossy@webkit.org
  • 19 edits
    4 deletes in trunk/Source

Remove TextureMapperImageBuffer
https://bugs.webkit.org/show_bug.cgi?id=143561

Reviewed by Žan Doberšek.

Source/WebCore:

  • CMakeLists.txt:
  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • PlatformWinCairo.cmake:
  • platform/graphics/GraphicsContext3DPrivate.cpp:

(WebCore::GraphicsContext3DPrivate::paintToTextureMapper):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::paintToTextureMapper):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):

  • platform/graphics/texmap/BitmapTextureImageBuffer.cpp: Removed.
  • platform/graphics/texmap/BitmapTextureImageBuffer.h: Removed.
  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::createTexture):

  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::setFilters):

  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::TextureMapper::create):
(WebCore::TextureMapper::TextureMapper):

  • platform/graphics/texmap/TextureMapper.h:

(WebCore::TextureMapper::accelerationMode): Deleted.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):

  • platform/graphics/texmap/TextureMapperImageBuffer.cpp: Removed.
  • platform/graphics/texmap/TextureMapperImageBuffer.h: Removed.
  • platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:

(WebCore::CompositingCoordinator::CompositingCoordinator):

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:

(WebCore::GraphicsLayer::supportsContentsTiling):
(WebCore::CoordinatedGraphicsLayer::setShouldSupportContentsTiling): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:

Source/WebKit2:

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext):

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::setNativeSurfaceHandleForCompositing):

08:20 Changeset [183806] by agomez@igalia.com
  • 1 edit
    13 adds in trunk/Source/WebInspectorUI

[GTK] Web Inspector: New Images added in r183339, r183338, r183332, r183323, r182660, and r182186
https://bugs.webkit.org/show_bug.cgi?id=144329

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/gtk/Console.svg: Added.
  • UserInterface/Images/gtk/Debugger.svg: Added.
  • UserInterface/Images/gtk/Elements.svg: Added.
  • UserInterface/Images/gtk/Gear.svg: Added.
  • UserInterface/Images/gtk/NewTab.svg: Added.
  • UserInterface/Images/gtk/NewTabPlus.svg: Added.
  • UserInterface/Images/gtk/ReloadToolbar.svg: Added.
  • UserInterface/Images/gtk/SearchResults.svg: Added.
  • UserInterface/Images/gtk/Storage.svg: Added.
  • UserInterface/Images/gtk/Timeline.svg: Added.
  • UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg: Added.
  • UserInterface/Images/gtk/ToggleLeftSidebar.svg: Added.
  • UserInterface/Images/gtk/ToggleRightSidebar.svg: Added.
08:15 Changeset [183805] by jfernandez@igalia.com
  • 17 edits
    2 adds in trunk

[CSS Box Alignment] Upgrade align-content parsing to CSS3 Box Alignment spec
https://bugs.webkit.org/show_bug.cgi?id=144443

Reviewed by Darin Adler.

Source/WebCore:

Upgrade the align-content property to the last CSS3 Box
Alignment specification. As it uses a different enumeration for
Positional and Distribution alignment, it implies some changes in
the FlexibleBox implementation.

Test: css3/parse-align-content.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveContentAlignmentAuto):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSParser.cpp:

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

  • css/CSSPropertyNames.in:
  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::initialAlignContentOffset):
(WebCore::alignContentSpaceBetweenChildren):
(WebCore::RenderFlexibleBox::alignFlexLines):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::resolveContentAlignment):
(WebCore::RenderStyle::resolveContentJustification):

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

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

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Tests to verify the align-content parsing logic. The new Box Alignment spec
requires some changes in the flexbox tests.

  • css3/flexbox/css-properties-expected.txt:
  • css3/flexbox/css-properties.html:
  • css3/parse-align-content-expected.txt: Added.
  • css3/parse-align-content.html: Added.
06:43 Changeset [183804] by agomez@igalia.com
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

[GTK] Web Inspector: icons for console.info() messages
https://bugs.webkit.org/show_bug.cgi?id=144461

Reviewed by Joseph Pecoraro.

  • UserInterface/Images/gtk/Debug.svg: Added.
  • UserInterface/Images/gtk/Info.svg: Added.
  • UserInterface/Images/gtk/Log.svg: Added.
06:23 Changeset [183803] by youenn.fablet@crf.canon.fr
  • 8 edits
    2 adds in trunk

streams/readable-stream.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=144455

Reviewed by Darin Adler.

Source/WebCore:

Changed the link between readadable stream and controller.
Controller ref()/deref() now increments/decrements its stream ref counter.
This ensures that even if JS scripts do not keep track of the readable stream,
the readable stream will not be disposed as long as the JS script has access to its controller.

Test: streams/readable-stream-gc.html

  • Modules/streams/ReadableStreamController.h:

(WebCore::ReadableStreamController::ReadableStreamController):
(WebCore::ReadableStreamController::ref):
(WebCore::ReadableStreamController::deref):
(WebCore::ReadableStreamController::create): Deleted.
(WebCore::ReadableStreamController::stream): Deleted.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::close):
(WebCore::JSReadableStreamController::enqueue):
(WebCore::JSReadableStreamController::error):

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::ReadableStreamJSSource::~ReadableStreamJSSource):
(WebCore::ReadableStreamJSSource::start):
(WebCore::ReadableJSStream::jsController):

  • bindings/js/ReadableStreamJSSource.h:

LayoutTests:

Moved flaky test to streams/readable-stream-gc.html.
Updated flaky test to check that the controller methods work well even if readable stream reference is lost by script.

  • streams/readable-stream-expected.txt:
  • streams/readable-stream-gc-expected.txt: Added.
  • streams/readable-stream-gc.html: Added.
  • streams/readable-stream.html:
06:14 Changeset [183802] by commit-queue@webkit.org
  • 3 edits
    6 adds in trunk/LayoutTests

[GTK] Gardening 4th May
https://bugs.webkit.org/show_bug.cgi?id=144571

Unreviewed.

Patch by Marcos Chavarría Teijeiro <chavarria1991@gmail.com> on 2015-05-05

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/forms/color/input-appearance-color-expected.png: Added.
  • platform/gtk/fast/forms/color/input-appearance-color-expected.txt:
  • platform/gtk/fast/regions/region-overflow-break-expected.html: Added.
  • platform/gtk/fast/regions/scrolling/wheel-scroll-abspos-expected.html: Added.
  • platform/gtk/fast/regions/scrolling/wheel-scroll-expected.html: Added.
  • platform/gtk/fast/text/font-kerning-expected.html: Added.
02:27 WebKitGTK/2.8.x edited by berto@igalia.com
(diff)
01:20 Changeset [183801] by carlosgc@webkit.org
  • 3 edits in trunk/Source/WebKit2

[SOUP] Network Cache: IOChannel operations are not sent to the right thread
https://bugs.webkit.org/show_bug.cgi?id=144542

Reviewed by Darin Adler.

We are ignoring the given WorkQueue and running the async
operations in the current thread. Check the given WorkQueue
instead and schedule the operation to the given queue. If the
given queue is nullptr, which means the operation should be run in
the main context, the operation is run directly if the current
context is the main one or sent to the main context using a
GMainLoopSource.

Fixes crashes due to asserts when running disk-cache layout tests
in a Debug build.

  • NetworkProcess/cache/NetworkCacheIOChannel.h:
  • NetworkProcess/cache/NetworkCacheIOChannelSoup.cpp:

(WebKit::NetworkCache::runTaskInQueue):
(WebKit::NetworkCache::IOChannel::read):
(WebKit::NetworkCache::IOChannel::readSync):
(WebKit::NetworkCache::IOChannel::write):

01:16 Changeset [183800] by carlosgc@webkit.org
  • 4 edits
    2 adds in trunk

[GTK] Async operations running in the WorkQueue thread should schedule their sources to the WorkQueue main lopp
https://bugs.webkit.org/show_bug.cgi?id=144541

Reviewed by Žan Doberšek.

Source/WTF:

They are currently sent to the main thread run loop, because we
are not setting the WorkQueue main context as the default one in
the worker thread.

  • wtf/gtk/WorkQueueGtk.cpp:

(WTF::WorkQueue::platformInitialize): Call
g_main_context_push_thread_default() to set the WorkQueue main
context as the default of the thread before running the main loop,
and g_main_context_pop_thread_default() when the main loop quits.

Tools:

Add a test case to WorkQueue unit test, to check that sources of
asynchronous IO operations running in the WorkQueue thread are
dispatched by the WorkQueue main loop.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WTF/gtk/WorkQueueGtk.cpp: Added.

(TestWebKitAPI::TEST):

00:49 Changeset [183799] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Small cleanup in RenderText::computePreferredLogicalWidths()
https://bugs.webkit.org/show_bug.cgi?id=144615

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-05-05
Reviewed by Simon Fraser.

A little bit of cleanup before I tackle dependent widths in this function.

No new tests because there is no behavior change.

  • rendering/RenderText.cpp:

(WebCore::RenderText::computePreferredLogicalWidths):

00:39 Changeset [183798] by jdiggs@igalia.com
  • 16 edits in trunk

[ATK] AX: figure out platform difference for ATK to make accessibility/table-cell-display-block.html work
https://bugs.webkit.org/show_bug.cgi?id=143083

Reviewed by Chris Fleizach.

Source/WebCore:

The main platform difference was that ATK was mapping the td element to
the accessible table cell, and the render block resulting from the style
wound up being the cell parent. In contrast, AX API was mapping the cell
element to an AXGroup which was a child of the AXCell. Rather than try to
bend yet another case to the will of our individual platforms' table needs,
it made more sense to clean up the code that is competing and move toward
more platform-unified handling. This is the first step in that direction,
with ATK moving closer toward the WebCore/AX API mapping.

No new tests. Instead, modified and fixed the test which was being skipped
for GTK, and also updated the expectations of some Mac tests whose FIXMEs
should now be fixed.

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::supportsRequiredAttribute):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::determineAccessibilityRole):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(createAccessibilityRoleMap):

LayoutTests:

  • accessibility/roles-computedRoleString-expected.txt: Updated to reflect fixed FIXME.
  • accessibility/roles-computedRoleString.html: Updated to reflect fixed FIXME.
  • accessibility/table-cell-display-block-expected.txt: Modified to be more platform agnostic.
  • accessibility/table-cell-display-block.html: Modified to be more platform agnostic.
  • platform/efl/accessibility/table-detection-expected.txt: Updated to reflect mapping change.
  • platform/gtk/TestExpectations: Unskip failing test from opening report.
  • platform/gtk/accessibility/table-detection-expected.txt: Updated to reflect mapping change.
  • platform/mac/accessibility/rowheader-outside-table-role-expected.txt: Updated to reflect mapping change.
  • platform/mac/accessibility/rowheader-outside-table-role.html: Updated to reflect mapping change.

05/04/15:

23:57 Changeset [183797] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Videos on apple.com flash when touching to show or hide the controls
https://bugs.webkit.org/show_bug.cgi?id=144598

Reviewed by Eric Carlson.

The apple.com site will add a "selection" rectangle atop a playing video when it recieves a touchstart
event. The default media controls use touchstart to signal the controls to become visible. Stop the touch
from propagating down to the page in this case.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.handleWrapperTouchStart):

22:22 Changeset [183796] by bfulgham@apple.com
  • 2 edits in trunk/Tools

Correct '--show-webview' option for Tiled Drawing tests
https://bugs.webkit.org/show_bug.cgi?id=144621

Reviewed by Simon Fraser.

The scrolling thread/tiled drawing tests recreate the standard test runner web view. My earlier patch did not make
sure that the state of the '--show-webview' option was propagated to this additional view creation routine.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformConfigureViewForTest): Include the value of the 'shouldShowWebView' state in the
WKMutableDictionary passed to the 'ensureViewSupportsOptions' method.

21:49 Changeset [183795] by akling@apple.com
  • 4 edits in trunk/Source/WebCore

Record the reference time when Performance is constructed.
<https://webkit.org/b/144616>

Reviewed by Geoffrey Garen.

This is a merge of Blink's r156613 by simonjam@chromium.org.

Cache a copy of the DocumentLoader's reference timestamp when constructing
the Performance object. That way we don't have to jump through a bunch of scary
hoops to access it when now() is called later on.

  • page/Performance.cpp:

(WebCore::Performance::Performance):
(WebCore::Performance::now): Deleted.

  • page/Performance.h:
21:29 Changeset [183794] by simon.fraser@apple.com
  • 4 edits in trunk

Fix assertions in WK1 tests after r183777.

Source/WebCore:

Two issues with the original change:

If not in compositing mode, we shouldn't schedule layer flushes, since
Document::documentWillSuspendForPageCache() only only calls cancelCompositingLayerUpdate()
if in compositing mode.

Second, RenderLayerCompositor::rootBackgroundTransparencyChanged() never stored the
new color, resulting in too many triggered compositing updates.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged):

LayoutTests:

Behavior difference with the change to RenderLayerCompositor::rootBackgroundTransparencyChanged().

  • platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt:
21:24 Changeset [183793] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix stale comment.

  • tests/mozilla/js1_5/Array/regress-101964.js:
21:16 Changeset [183792] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

  • tests/mozilla/js1_5/Array/regress-101964.js: 500ms isn't enough in debug mode. We don't care how long this takes so long as we run it to completion. I've raised the limit much higher.
20:51 Changeset [183791] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Rubber stamped by Mark Lam.

  • tests/mozilla/js1_5/Array/regress-101964.js: Mozilla may have cared about this being fast a decade ago (or more), but we don't care. We've consistently found that an array implementation that punishes this case to get speed on common-case array accesses is better. This should fix some test failures on the bots.
20:35 Changeset [183790] by commit-queue@webkit.org
  • 8 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r183789.
https://bugs.webkit.org/show_bug.cgi?id=144620

Causing flakiness on exceptionFuzz tests locally on 32-bit
build (Requested by saamyjoon on #webkit).

Reverted changeset:

"Global functions should be initialized as JSFunctions in byte
code"
https://bugs.webkit.org/show_bug.cgi?id=144178
http://trac.webkit.org/changeset/183789

20:27 Changeset [183789] by saambarati1@gmail.com
  • 8 edits in trunk/Source/JavaScriptCore

Global functions should be initialized as JSFunctions in byte code
https://bugs.webkit.org/show_bug.cgi?id=144178

Reviewed by Geoffrey Garen.

This patch makes the initialization of global functions more explicit by
moving initialization into bytecode. It also prepares JSC for having ES6
style lexical scoping because initializing global functions in bytecode
easily allows global functions to be initialized with the proper scope that
will have access to global lexical variables. Global lexical variables
should be visible to global functions but don't live on the global object.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedProgramCodeBlock::visitChildren):

  • bytecode/UnlinkedCodeBlock.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::BytecodeGenerator):

  • bytecompiler/BytecodeGenerator.h:
  • runtime/Executable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::addGlobalVar):
(JSC::JSGlobalObject::addFunction):

  • runtime/JSGlobalObject.h:
20:22 Changeset [183788] by zalan@apple.com
  • 7 edits in trunk/Source/WebCore

RenderWidget::setWidgetGeometry() can end up destroying *this*.
https://bugs.webkit.org/show_bug.cgi?id=144601

Reviewed by Andreas Kling.

This is a speculative fix to ensure we don't crash on an invalid *this* renderer
while flattening the current iframe.
Calling RenderWidget::setWidgetGeometry() can result in destroying the current renderer.
While it is not a issue in case of normal layout flow as widget positions are updated at post layout,
frame flattening initiates this action in the middle of layout.
This patch re-introduces refcount model for RenderWidgets so that the renderer is protected during layout
when frame flattening is in use.

  • rendering/RenderFrameBase.cpp:

(WebCore::RenderFrameBase::layoutWithFlattening): Let's be paranoid about child view.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::destroy):

  • rendering/FrameView.cpp:

(WebCore::FrameView::layout):

  • rendering/RenderView.h:
  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::~RenderWidget):

  • rendering/RenderWidget.h:

(WebCore::RenderWidget::ref):
(WebCore::RenderWidget::deref):

19:40 Changeset [183787] by fpizlo@apple.com
  • 12 edits
    1 add in trunk

Large array shouldn't be slow
https://bugs.webkit.org/show_bug.cgi?id=144617

Reviewed by Geoffrey Garen.

PerformanceTests:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

  • LongSpider/hash-map.js: Added.

(HashMap):
(HashMap.):
(.get var):

Source/JavaScriptCore:

Decouple MIN_SPARSE_ARRAY_INDEX, which is the threshold for storing to the sparse map when
you're already using ArrayStorage mode, from the minimul array length required to use
ArrayStorage in a new Array(length) allocation.

Lift the array allocation length threshold to something very high. If this works, we'll
probably remove that threshold entirely.

This is a 27% speed-up on JetStream/hash-map. Because run-jsc-benchmarks still can't run
JetStream as a discrete suite, this adds hash-map to LongSpider so that we run it somewhere
for now.

  • dfg/DFGCallArrayAllocatorSlowPathGenerator.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNewArrayWithSize):

  • runtime/ArrayConventions.h:
  • runtime/JSArray.h:

(JSC::JSArray::create):

  • runtime/JSGlobalObject.h:

(JSC::constructEmptyArray):

Tools:

Add the hash-map benchmark to LongSpider. LongSpider was already not a perfect match of
SunSpider. It's not an official benchmark. It contains benchmarks that are relatively
long-running. So, hash-map sort of belongs here.

  • Scripts/run-jsc-benchmarks:
18:00 Changeset [183786] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Always expand initial top level DOM tree nodes when not including the root (frame views)
https://bugs.webkit.org/show_bug.cgi?id=144607

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

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype.update):

17:37 Changeset [183785] by utatane.tea@gmail.com
  • 5 edits
    1 add in trunk/Source/JavaScriptCore

Add backed intrinsics to private functions exposed with private symbols in global object
https://bugs.webkit.org/show_bug.cgi?id=144545

Reviewed by Darin Adler.

Math.abs and Math.floor have ASM intrinsics And it is further accelerated in DFG/FTL layers.
This patch adds intrinsic to private functions exposed with private symbols in global object,
@floor and @abs.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalPrivateFuncAbs): Deleted.
(JSC::globalPrivateFuncFloor): Deleted.

  • runtime/MathObject.cpp:
  • runtime/MathObject.h:
  • tests/stress/array-from-abs-and-floor.js: Added.

(target1):
(target2):
(target3):

17:37 Changeset [183784] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

WebKit always goes through LaunchServices for main frame navigation actions
https://bugs.webkit.org/show_bug.cgi?id=144608

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Defined

_WKNavigationActionPolicyAllowWithoutTryingAppLink.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::decidePolicyForNavigationAction): If the policy
is _WKNavigationActionPolicyAllowWithoutTryingAppLink, don’t go through tryAppLink.

17:16 Changeset [183783] by commit-queue@webkit.org
  • 17 edits
    2 adds in trunk

AX: setting focus via accessibility object needs to set isSynchronizing in resulting selection intent
https://bugs.webkit.org/show_bug.cgi?id=144489

Patch by Doug Russell <d_russell@apple.com> on 2015-05-04
Reviewed by Chris Fleizach.

Resolves infinite looping when navigating rapidly between controls with the search API and then focusing
on the returned control.
Remove isSynchronizing flag from AXTextStateChangeIntent and put it on AXObjectCache.
Move AXTextStateChangeIntent logic in AccessibilityRenderObject into a helper method.
Call new AXTextStateChangeIntent helper from AccessibilityRenderObject::setFocus().
Add support for setSelectedVisibleTextRange() in accessibility tests.

Source/WebCore:

Test: platform/mac/accessibility/selection-sync.html

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::showIntent):
(WebCore::AXObjectCache::setTextSelectionIntent):
(WebCore::AXObjectCache::setIsSynchronizingSelection):
(WebCore::AXObjectCache::postTextStateChangeNotification):

  • accessibility/AXObjectCache.h:
  • accessibility/AXTextStateChangeIntent.h:

(WebCore::AXTextStateChangeIntent::AXTextStateChangeIntent):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::setTextSelectionIntent):
(WebCore::AccessibilityRenderObject::setSelectedTextRange):
(WebCore::AccessibilityRenderObject::setFocused):
(WebCore::AccessibilityRenderObject::setSelectedVisiblePositionRange):
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange): Deleted.

  • accessibility/mac/AXObjectCacheMac.mm:

(WebCore::AXObjectCache::postTextStateChangePlatformNotification):

Tools:

  • DumpRenderTree/AccessibilityUIElement.cpp:

(setSelectedVisibleTextRangeCallback):
(AccessibilityUIElement::setSelectedVisibleTextRange):
(AccessibilityUIElement::getJSClass):
(AccessibilityUIElement::textMarkerForIndex): Deleted.

  • DumpRenderTree/AccessibilityUIElement.h:
  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):
(WTR::AccessibilityUIElement::setSelectedTextRange): Deleted.

  • WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
  • WebKitTestRunner/InjectedBundle/Bindings/AccessibilityUIElement.idl:
  • WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::AccessibilityUIElement::setSelectedVisibleTextRange):

LayoutTests:

  • platform/mac/accessibility/selection-sync-expected.txt: Added.
  • platform/mac/accessibility/selection-sync.html: Added.
17:08 Changeset [183782] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Audio-only files should not have a device picker
https://bugs.webkit.org/show_bug.cgi?id=144606
<rdar://problem/20806387>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.hasVideo): New.
(Controller.prototype.updateFullscreenButtons): Use hasVideo.
(Controller.prototype.updateHasVideo): Ditto.
(Controller.prototype.updateWirelessTargetAvailable): Don't show the target picker button
unless a file has video.

16:58 Changeset [183781] by cdumez@apple.com
  • 6 edits
    3 adds in trunk

Crash at com.apple.WebKit.WebContent at com.apple.WebCore: WebCore::createWindow + 185
https://bugs.webkit.org/show_bug.cgi?id=144597
<rdar://problem/20361579>

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/dom/Window/window-open-activeWindow-null-frame.html

In our implementation of window.open(), we make sure that the window
which window.open() is called has a frame. However, we did not have the
same check for the activeDOMWindow (i.e. the lexicalGlobalObject) causing
us to crash in WebCore::createWindow() when dereferencing it.

This patch updates WebCore::createWindow() takes a reference to the
openerFrame instead of a pointer to make it clear the implementation
expects it to be non-null. A null check is then added for the frame
at the call site: DOMWindow::createWindow().

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • loader/FrameLoader.cpp:

(WebCore::isDocumentSandboxed):
(WebCore::FrameLoader::submitForm):
(WebCore::createWindow):
Take a reference to openerFrame instead of a pointer as the
implementation expects it to be non-null.

  • loader/FrameLoader.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):
Add null check for activeFrame before passing it to
WebCore::createWindow().

LayoutTests:

Add a layout test to cover the case where window.open() is called on a
window that is different than the activeDOMWindow and where the
activeDOMWindow does not have a frame.

  • fast/dom/Window/resources/test-frame.html: Added.
  • fast/dom/Window/window-open-activeWindow-null-frame-expected.txt: Added.
  • fast/dom/Window/window-open-activeWindow-null-frame.html: Added.
16:51 Changeset [183780] by enrica@apple.com
  • 5 edits in trunk/Source/WebKit2

[iOS WK2] editorState should include information about selection clipping rectangle.
https://bugs.webkit.org/show_bug.cgi?id=144603
rdar://problem/20521252

Reviewed by Chris Dumez.

Adding selectionClipRect to the post-layout portion of EditorState.
This way we can compute the selection clipping rectangle based on
up-to-date information instead of using the rectangle provided when
then element was first focused.

  • Shared/EditorState.cpp:

(WebKit::EditorState::PostLayoutData::encode):
(WebKit::EditorState::PostLayoutData::decode):

  • Shared/EditorState.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _selectionClipRect]):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::platformEditorState):

16:46 Changeset [183779] by ossy@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[cmake] ARM related build system cleanup
https://bugs.webkit.org/show_bug.cgi?id=144566

Reviewed by Darin Adler.

  • CMakeLists.txt:
16:42 Changeset [183778] by dino@apple.com
  • 5 edits in trunk/Source/WebCore

Create a named CSS property for system colors
https://bugs.webkit.org/show_bug.cgi?id=144423

Follow-up comments from Darin Adler.

  • rendering/RenderThemeIOS.h: Cache a Color rather than an RGBA32.
  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::systemColor): Use "add" to avoid multiple hits on the HashMap, and
cache invalid responses so that we don't have to keep looking for non-existent colors.

  • rendering/RenderThemeMac.h: Same as iOS.
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::systemColor):

16:31 Changeset [183777] by simon.fraser@apple.com
  • 5 edits
    2 adds in trunk

display:none iframes cause repeated compositing flushing
https://bugs.webkit.org/show_bug.cgi?id=144529

Reviewed by Darin Adler.

Source/WebCore:

FrameView::updateLayoutAndStyleIfNeededRecursive() only forces layout on rendered
frames, by virtue of using its Widget children which are FrameViews.

However, FrameView::flushCompositingStateIncludingSubframes() iterated over
all frames, and return false if any subframe needed layout. Thus, if it saw
non-rendered frames (which are never laid out), it would return false,
which causes the CFRunLoopObserver that drives flushing to run again.

Fix by having FrameView::flushCompositingStateIncludingSubframes() only check
rendered frames, using FrameTree::traverseNextRendered() (which needs to be public).

Also change FrameView::needsStyleRecalcOrLayout() and FrameView::updateLayoutAndStyleIfNeededRecursive()
to fetch the list of FrameViews using FrameTree's nextRenderedSibling(), rather than using
the Widget tree, since we'd like to eventually remove Widgets, and using the Frame
tree matches flushCompositingStateIncludingSubframes() and other code.

Test: compositing/iframes/display-none-subframe.html

  • page/FrameTree.h:
  • page/FrameView.cpp:

(WebCore::FrameView::flushCompositingStateIncludingSubframes):
(WebCore::FrameView::needsStyleRecalcOrLayout):
(WebCore::FrameView::renderedChildFrameViews): Helper that returns a vector
of Ref<FrameView>s for rendered frames only.
(WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive):

  • page/FrameView.h:

LayoutTests:

Test with a display:none iframe that triggers a single compositing flush,
then counts how many occur in 10ms.

  • compositing/iframes/display-none-subframe-expected.txt: Added.
  • compositing/iframes/display-none-subframe.html: Added.
16:10 Changeset [183776] by cdumez@apple.com
  • 3 edits in trunk/Source/WebCore

Unreviewed. Fix build with SECURITY_ASSERTIONS enabled.
<rdar://problem/20653104>

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::ScriptExecutionContext):
(WebCore::ScriptExecutionContext::canSuspendActiveDOMObjectsForPageCache):
(WebCore::ScriptExecutionContext::suspendActiveDOMObjects):
(WebCore::ScriptExecutionContext::resumeActiveDOMObjects):

  • dom/ScriptExecutionContext.h:
15:53 Changeset [183775] by simon.fraser@apple.com
  • 10 edits
    2 adds in trunk

Fix updating of tiled backing opaquenss when the page background color changes
https://bugs.webkit.org/show_bug.cgi?id=144600
rdar://problem/20723035

Reviewed by Tim Horton.

Source/WebCore:

RenderLayerCompositor makes the page tiles opaque or not based on the result of
viewHasTransparentBackground(), which consults the view transparency, and
FrameView::documentBackgroundColor(). documentBackgroundColor() in turn is based
on the root and/or body background colors.

We thus need to re-evaluate whether page tiles are opaque when any of these inputs
change, but were failing to do so for the FrameView's baseBackgroundColor, and
the page root background color.

Fix by having FrameView::setBaseBackgroundColor(), and RenderBox::styleDidChange()
(for the root) trigger a compositing update when necessary.

Added setViewBaseBackgroundColor() on Internals for testing.

Test: platform/mac-wk2/tiled-drawing/background-transparency-toggle.html

  • page/FrameView.cpp:

(WebCore::FrameView::setTransparent): Use the isViewForDocumentInFrame() helper.
(WebCore::FrameView::setBaseBackgroundColor): Bail if we're not the view for the
frame's document, and trigger a compositing update check if the alpha changed.
(WebCore::FrameView::isViewForDocumentInFrame): Helper that checks to see if
this FrameView is associated with the Document being displayed in the FrameView's
Frame. This returns false when we're setting up a new FrameView (its Frame still
points to the old document, so renderView() returns the RenderView for the Frame's
existing Document).

  • page/FrameView.h:
  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange): Have the compositor check to see if it needs
to do an update.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::rootBackgroundTransparencyChanged): If the result
of documentBackgroundColor() changed in alpha since the last time, trigger a compositing
update.

  • rendering/RenderLayerCompositor.h:
  • testing/Internals.cpp:

(WebCore::Internals::setViewBaseBackgroundColor):

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

LayoutTests:

Test that dumps layers with various baseBackgroundColor and body background color
combinations.

  • platform/mac-wk2/tiled-drawing/background-transparency-toggle-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/background-transparency-toggle.html: Added.
15:14 Changeset [183774] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Crash in -[WebCALayerHostWrapper resolveBounds]
https://bugs.webkit.org/show_bug.cgi?id=144595

Reviewed by Eric Carlson.

It is possible for a WebCALayorHostWrapper to outlive the WebVideoFullscreenModel to which it refers,
since the model pointer is bare, rather than a RefPtr. The reference to the model must be invalidated
before the model is destroyed.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::cleanupFullscreenInternal):

14:42 Changeset [183773] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

Fix the test after r183758 since shouldNotBe is not supported in the standalone testing.

  • js/class-syntax-default-constructor-expected.txt:
  • js/script-tests/class-syntax-default-constructor.js:
13:46 Changeset [183772] by bfulgham@apple.com
  • 2 edits in trunk/Tools

[Win] Implement the "--show-webview" option for Windows
https://bugs.webkit.org/show_bug.cgi?id=144589

Reviewed by Alex Christensen.

Add another runtime flag (--show-webview) that causes DumpRenderTree
to draw its view on-screen, rather than the standard offscreen mode.

  • DumpRenderTree/win/DumpRenderTree.cpp:

(createWebViewAndOffscreenWindow): Honor the 'showWebView' flag.
(initializeGlobalsFromCommandLineOptions): Recognize the new
command-line argument, and set the global 'showWebView' state if
appropriate.

13:44 Changeset [183771] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Unreviewed, rolling out r183661.
https://bugs.webkit.org/show_bug.cgi?id=144594

Caused ~3.5MB regression on membuster(!) (Requested by kling_
on #webkit).

Reverted changeset:

"Decrease minimum Vector size."
https://bugs.webkit.org/show_bug.cgi?id=144453
http://trac.webkit.org/changeset/183661

13:42 Changeset [183770] by rniwa@webkit.org
  • 15 edits
    2 adds in trunk

Toggling underline or strike through affects each other
https://bugs.webkit.org/show_bug.cgi?id=27818

Reviewed by Darin Adler.

Source/WebCore:

This patch introduces a new mechanism to apply and remove text decorations. This is necessary because text
decorations are always additive and we can't differentiate whether we're adding or removing a text decoration.
Conceptually, we need four values for text decorations: adding underline, removing underline, adding
line-through, and removing line-through but we have only three: underline, line-through, none.

After this patch, there are three mechanism by which text decorations states are kept tracked. While applying
or removing text decorations, we use newly added m_underlineChange and m_strikeThroughChange in EditingStyle.
For the typing style, we use -webkit-text-decorations-in-effect to store the state since we need to preserve
every type of text decorations such as overline in addition to underline and line-through. Once applied, all
text decorations should be expressed in terms of the standard text-decoration property.

Test: editing/execCommand/toggle-mixed-text-decorations.html

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::applyBlockStyle):
(WebCore::ApplyStyleCommand::removeCSSStyle): conflictsWithInlineStyleOfElement now creates a new inline style
instead of a list of properties to remove.
(WebCore::ApplyStyleCommand::addBlockStyle):
(WebCore::ApplyStyleCommand::applyInlineStyleChange): Merge inline styles instead of adding as string.
Otherwise it would generate style content attribute with multiple text-decoration properties.

  • editing/EditingStyle.cpp:

(WebCore::HTMLElementEquivalent::matches):
(WebCore::HTMLElementEquivalent::propertyExistsInStyle): Takes an EditingStyle instead of StyleProperties.
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
(WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent):
(WebCore::HTMLTextDecorationEquivalent::propertyExistsInStyle): Respect newly added m_strikeThroughChange and
m_underlineChange in EditingStyle.
(WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle): Ditto.
(WebCore::HTMLTextDecorationEquivalent::changeInStyle): Added. Retrieves the change enum for the associated
type of text-decoration (underline or strike through).
(WebCore::HTMLAttributeEquivalent::matches):
(WebCore::HTMLAttributeEquivalent::valueIsPresentInStyle):
(WebCore::EditingStyle::EditingStyle): Initialize m_underlineChange and m_strikeThroughChange. Also use the
delegating constructor elsewhere. Also added the missing call to extractFontSizeDelta() in the variant that
takes CSSPropertyID and String, and added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::isEmpty): Return false when m_underlineChange and m_strikeThroughChange are not "none".
(WebCore::applyTextDecorationChangeToValueList): Added.
(WebCore::EditingStyle::overrideTypingStyleAt): Added. Used by Editor::computeAndSetTypingStyle to set a new
typing style. Resolve m_underlineChange and m_strikeThroughChange into -webkit-text-decorations-in-effect.
(WebCore::EditingStyle::clear): Clear m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::copy): Copy m_underlineChange and m_strikeThroughChange.
(WebCore::textDecorationValueList): Added.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement): Now takes a pointer to MutableStyleProperties
instead of a vector. This was necessary we can't simply remove text-decoration property in ApplyStyleCommand's
removeCSSStyle as that would result in unrelated text decorations also getting removed. Also added the code
for m_underlineChange and m_strikeThroughChange. Only removing text decoration changes can cause a conflict
since text decorations are always additive.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfElement): Check isEmpty() instead of the nullity of
m_mutableStyle to respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
(WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
(WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode): Respect the values of m_underlineChange and
m_strikeThroughChange. Here, the style is considered present if it has text decorations that are being added.
(WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
(WebCore::elementMatchesAndPropertyIsNotInInlineStyleDecl): Takes EditingStyle instead of StyleProperties to
respect m_underlineChange and m_strikeThroughChange.
(WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
(WebCore::mergeTextDecorationValues):
(WebCore::EditingStyle::mergeStyle): Make a copy of CSSValueList before modifying it since CSSValueList's are
shared with other immutable StyleProperties.
(WebCore::StyleChange::StyleChange): Set m_applyUnderline, m_applyLineThrough, and m_cssStyle if either
m_underlineChange or m_strikeThroughChange are TextDecorationChange::Add in EditingStyle if the current position
doesn't already have the matching style.
(WebCore::StyleChange::operator==): Moved from the header file. Also added the logic to compare m_cssStyle now
that it's a StyleProperties instead of String.

  • editing/EditingStyle.h: Added TextDecorationChange.

(WebCore::EditingStyle::create): Added a variant that takes CSSPropertyID and CSSValueID.
(WebCore::EditingStyle::conflictsWithInlineStyleOfElement):
(WebCore::EditingStyle::setUnderlineChange): Added.
(WebCore::EditingStyle::underlineChange): Added.
(WebCore::EditingStyle::setStrikeThroughChange): Added.
(WebCore::EditingStyle::strikeThroughChange): Added.
(WebCore::StyleChange::cssStyle): Now returns StyleProperties* instead of String so that ApplyStyleCommand's
applyInlineStyleChange could merge inline styles instead of just appending it to the end.
(WebCore::StyleChange::operator==): Moved into the cpp file.

  • editing/Editor.cpp:

(WebCore::Editor::applyStyle): Added. This variant takes EditingStyle instead of StyleProperties.
(WebCore::Editor::applyStyleToSelection): Ditto.
(WebCore::Editor::computeAndSetTypingStyle): Added a variant for EditingStyle. Also use overrideTypingStyleAt
to set -webkit-text-decorations-in-effect based on m_underlineChange and m_strikeThroughChange

  • editing/Editor.h:
  • editing/EditorCommand.cpp:

(WebCore::applyCommandToFrame):
(WebCore::isStylePresent): Extracted from executeToggleStyle.
(WebCore::executeApplyStyle):
(WebCore::executeToggleStyle):
(WebCore::executeToggleStyleInList): Deleted.
(WebCore::textDecorationChangeForToggling): Added. Used in executeStrikethrough and executeUnderline.
(WebCore::executeStrikethrough):
(WebCore::executeUnderline):

Source/WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _setTypingStyle:withUndoAction:]):

LayoutTests:

Added a regression test and rebaselined various tests as explained below.

  • editing/execCommand/script-tests/toggle-style-2.js: The order in which u and strike elements appear have switched.
  • editing/execCommand/script-tests/toggle-text-decorations.js: Ditto for line-through and overline.
  • editing/execCommand/toggle-mixed-text-decorations-expected.txt: Added.
  • editing/execCommand/toggle-mixed-text-decorations.html: Added.
  • editing/execCommand/toggle-style-2-expected.txt: Rebaselined.
  • editing/execCommand/toggle-text-decorations-expected.txt: Rebaselined.
  • editing/undo/remove-css-property-and-remove-style-expected.txt: The order in which color and font-weight properties

appear have switched.

13:42 Changeset [183769] by akling@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Optimize WeakBlock's "reap" and "visit" operations.
<https://webkit.org/b/144585>

Reviewed by Geoffrey Garen.

WeakBlock was using Heap::isLive(void*) to determine the liveness of weak pointees.
That function was really written with conservative roots marking in mind, and will do a bunch
of sanity and bounds checks.

For weaks, we know that the pointer will have been a valid cell pointer into a block
of appropriate cell size, so we can skip a lot of the checks.

We now keep a pointer to the MarkedBlock in each WeakBlock. That way we no longer have to do
MarkedBlock::blockFor() for every single cell when iterating.

Note that a WeakBlock's MarkedBlock pointer becomes null when we detach a logically empty
WeakBlock from its WeakSet and transfer ownership to Heap. At that point, the block will never
be pointing to any live cells, and the only operation that will run on the block is sweep().

Finally, MarkedBlock allows liveness queries in three states: Marked, Retired, and Allocated.
In Allocated state, all cells are reported as live. This state will reset to Marked on next GC.
This patch uses that knowledge to avoid branching on the MarkedBlock's state for every cell.

This is a ~3x speedup of visit() and a ~2x speedup of reap() on Dromaeo/dom-modify, netting
what looks like a 1% speedup locally.

  • heap/MarkedBlock.cpp:

(JSC::MarkedBlock::MarkedBlock): Pass *this to the WeakSet's ctor.

  • heap/MarkedBlock.h:

(JSC::MarkedBlock::isMarkedOrNewlyAllocated): Added, stripped-down version of isLive() when the
block's state is known to be either Marked or Retired.

(JSC::MarkedBlock::isAllocated): Added, tells WeakBlock it's okay to skip reap/visit since isLive()
would report that all cells are live anyway.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Stash a MarkedBlock* on each WeakBlock.

(JSC::WeakBlock::visit):
(JSC::WeakBlock::reap): Optimized these two to avoid a bunch of pointer arithmetic and branches.

  • heap/WeakBlock.h:

(JSC::WeakBlock::disconnectMarkedBlock): Added.

  • heap/WeakSet.cpp:

(JSC::WeakSet::sweep): Call the above when removing a WeakBlock from WeakSet and transferring
ownership to Heap until it can die peacefully.

(JSC::WeakSet::addAllocator):

  • heap/WeakSet.h:

(JSC::WeakSet::WeakSet): Give WeakSet a MarkedBlock& for passing on to WeakBlocks.

13:36 Changeset [183768] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=144536

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.closed):
(WebInspector.DebuggerSidebarPanel.prototype._addIssuesForSourceCode):
(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
(WebInspector.DebuggerSidebarPanel.prototype._resourceAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
(WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):

  • UserInterface/Views/DebuggerTabContentView.js:

(WebInspector.DebuggerTabContentView):

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView):

13:36 Changeset [183767] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Fix build breakage caused by API deprecation
https://bugs.webkit.org/show_bug.cgi?id=144593

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Suppress warnings.

13:34 Changeset [183766] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION: Web Inspector: FrameTreeElement does not folders properly when loading a page
https://bugs.webkit.org/show_bug.cgi?id=144535

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/FolderizedTreeElement.js:

(WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Fix an exception if not in a tree.
(WebInspector.FolderizedTreeElement.prototype.prepareToPopulate):
(WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue):

13:27 Changeset [183765] by cdumez@apple.com
  • 6 edits
    4 adds in trunk

REGRESSION (r178156): CSS Parser incorrectly rejects valid calc() in padding-right property
https://bugs.webkit.org/show_bug.cgi?id=144584
<rdar://problem/20796829>

Reviewed by Darin Adler.

Source/WebCore:

The CSS parser was rejecting calculated values at parsing time if it
considered the value was negative and the CSS property did not allow
negative values. However, doing so at this point will not always work
because we don't necessarily know the font-size yet (for e.g. for
calc(0.5em - 2px). Also, rejecting negative calculated values is not
the right behavior as the the specification. The specification says
we should clamp:
http://dev.w3.org/csswg/css-values-3/#calc-range

This patch updates validateCalculationUnit() to stop marking the value
as invalid if it is negative. Instead, let the CSSCalcValue's permitted
range clamp the value as needed.

This bug was causing the bottom graphic on aldentrio.com to not be
rendered properly.

Test: fast/css/negative-calc-values.html

fast/css/padding-calc-value.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::validateCalculationUnit):

LayoutTests:

  • fast/css/negative-calc-values-expected.txt: Added.
  • fast/css/negative-calc-values.html: Added.

Add a layout test that assigns negative calc() values to properties
whose values cannot be negative to verify that values are clamped as
per the specification:
http://dev.w3.org/csswg/css-values-3/#calc-range

  • fast/css/padding-calc-value-expected.txt: Added.
  • fast/css/padding-calc-value.html: Added.

Add a layout test to test that using calc(.5em - 2px) for padding-right
CSS property works as intended. It used to be resolved as 0px instead
of "2*font-size - 2px".

  • fast/css/text-shadow-calc-value-expected.txt:
  • fast/css/text-shadow-calc-value.html:

Update test to match what the specification says:
http://dev.w3.org/csswg/css-values-3/#calc-range
"width: calc(5px - 10px);" is equivalent to "width: 0px;" since widths
smaller than 0px are not allowed.

13:22 Changeset [183764] by timothy@apple.com
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow closing and reopening the Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=144520

Reviewed by Joseph Pecoraro.

  • UserInterface/Base/Main.js:

(WebInspector._updateNewTabButtonState):

  • UserInterface/Controllers/TimelineManager.js:

(WebInspector.TimelineManager): No need for a delay now. Call reset().
(WebInspector.TimelineManager.prototype.reset):
(WebInspector.TimelineManager.delayedWork): Deleted.

  • UserInterface/Views/ContentBrowserTabContentView.js:

(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.closed):

  • UserInterface/Views/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/NewTabContentView.js:

(WebInspector.NewTabContentView): Added Timelines.

  • UserInterface/Views/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.closed): Added. Fixed leak.

  • UserInterface/Views/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView.prototype.closed):

  • UserInterface/Views/SearchTabContentView.js:

(WebInspector.SearchTabContentView.prototype.closed): Deleted. Made generic
in ContentBrowserTabContentView.prototype.closed.

  • UserInterface/Views/TabBrowser.js:

(WebInspector.TabBrowser.prototype._tabBarItemSelected): Fix a potential exception
when selectedTabBarItem is null.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype.closed):
(WebInspector.TimelineSidebarPanel._recordingCreated): Call _addRecording.
(WebInspector.TimelineSidebarPanel._addRecording): Added.

  • UserInterface/Views/TimelineTabContentView.js:

(WebInspector.TimelineTabContentView):

13:11 Changeset [183763] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Allocation sinking is prohibiting the creation of phis between a Phantom object and its materialization
https://bugs.webkit.org/show_bug.cgi?id=144587

Rubber stamped by Filip Pizlo.

When sinking object allocations, we ensure in
determineMaterializationPoints that whenever an allocation is
materialized on a path to a block, it is materialized in all such
paths. Thus when running the SSA calculator to place Phis in
placeMaterializationPoints, we can't encounter a situation where some
Upsilons are referring to a materialization while others are referring
to the phantom object.

This replaces the code that was adding a materialization late in
placeMaterializationPoints to handle that case by an assertion that it
does not happen, which will make
https://bugs.webkit.org/show_bug.cgi?id=143073 easier to implement.

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::placeMaterializationPoints):

12:33 Changeset [183762] by timothy@apple.com
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Switching recordings in the Timeline navigation bar is broken
https://bugs.webkit.org/show_bug.cgi?id=144519

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._hierarchicalPathComponentWasSelected): Use revealAndSelect
on the TreeElement instead of showing the representedObject directly. This fixes an exception in
TimelineRecordingContentView where it wouldn't be initialized with the TimelineSidebarPanel extra argument.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview.prototype.get visibleDuration): Fix an annoying assert. We show the view
early in construction, before it is in the document. Future updateLayout calls work and fix this.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView.prototype.shown): Call _currentContentViewDidChange
to trigger the sidebar to update when this recording view is shown.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel.prototype._recordingsTreeElementSelected): Moved code from here...
(WebInspector.TimelineSidebarPanel.prototype._recordingSelected): ... to here. Take two different paths
to state restoration here. If the view existed before, use its state. If now, use the current state that
is captured by the cookie logic and explicitly restore it.

12:28 Changeset [183761] by joepeck@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. Fix lint error on mac-wk1.

  • platform/mac-wk1/TestExpectations:
12:27 Changeset [183760] by ap@apple.com
  • 2 edits in trunk/LayoutTests

storage/indexeddb/mozilla/cursor-update-updates-indexes.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=144590

  • platform/mac-wk2/TestExpectations: Marking as such.
12:23 Changeset [183759] by rniwa@webkit.org
  • 5 edits in trunk

Extending undefined in class syntax should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=144284

Reviewed by Darin Adler.

Source/JavaScriptCore:

The bug was caused by op_eq_null evaluating to true when compared to undefined.
Explicitly check op_eq_undefined first to detect the case where we're extending undefined.

We also had bogus test cases checked in class-syntax-extends.html. This patch also fixes them.

  • bytecompiler/NodesCodegen.cpp:

(JSC::ClassExprNode::emitBytecode):

LayoutTests:

Fixed the expectation for extending undefined and removed irrelevant test cases for extending undefined
since we'll never get to instantiate these classes now.

  • js/class-syntax-extends-expected.txt:
  • js/script-tests/class-syntax-extends.js:
12:22 Changeset [183758] by rniwa@webkit.org
  • 3 edits in trunk/LayoutTests

ES6 classes: Invalid test for constructor property
https://bugs.webkit.org/show_bug.cgi?id=144278

Reviewed by Darin Adler.

Fixed the test. The constructors of two distinct classes should definitely be distinct.

  • js/class-syntax-default-constructor-expected.txt:
  • js/script-tests/class-syntax-default-constructor.js:
12:21 Changeset [183757] by rniwa@webkit.org
  • 5 edits in trunk

new super should be a syntax error
https://bugs.webkit.org/show_bug.cgi?id=144282

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

Disallow "new super" as ES6 spec doesn't allow this.

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseMemberExpression):

LayoutTests:

Rebaselined the test.

  • js/class-syntax-super-expected.txt:
  • js/script-tests/class-syntax-super.js:
12:17 Changeset [183756] by simon.fraser@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/images/animated-gif-body-outside-viewport.html on Windows. It
started failing after r183732, but like the other fast/images/animated-gif* tests,
it's sensitive to window display timing. These tests were already skipped for Mac
WK1, probably because we disable window autodisplay on the Mac.

  • platform/win/TestExpectations:
11:51 Changeset [183755] by antti@apple.com
  • 6 edits in trunk/Source/WebKit2

Network Cache: Support time based cache clearing
https://bugs.webkit.org/show_bug.cgi?id=144568
<rdar://problem/19769820>

Reviewed by Andreas Kling.

Support clearing cache entries newer than given time only.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::deleteDumpFile):
(WebKit::NetworkCache::Storage::traverse):

Also fix thread safety of traverse handler function.

(WebKit::NetworkCache::Cache::clear):

Also add completion handler to support the API properly.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::clear):

  • NetworkProcess/cache/NetworkCacheStorage.h:
  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::clearNSURLCache):

Factor to a function.

(WebKit::NetworkProcess::clearDiskCache):

11:47 Changeset [183754] by saambarati1@gmail.com
  • 4 edits in trunk/Source/JavaScriptCore

JSCallbackObject does not maintain symmetry between accesses for getOwnPropertySlot and put
https://bugs.webkit.org/show_bug.cgi?id=144265

Reviewed by Geoffrey Garen.

JSCallbackObject will defer to a parent's implementation of getOwnPropertySlot
for a static function if the parent has that property slot. JSCallbackObject::put
did not maintain this symmetry of also calling ::put on the parent if the parent
has the property. We should ensure that this symmetry exists.

  • API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::put):

  • API/tests/testapi.c:
  • API/tests/testapi.js:

(globalStaticFunction2):
(this.globalStaticFunction2):
(iAmNotAStaticFunction):
(this.iAmNotAStaticFunction):

11:45 Changeset [183753] by akling@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Make ExecState::vm() branchless in release builds.
<https://webkit.org/b/144586>

Reviewed by Geoffrey Garen.

Avoid null checking the ExecState's callee() before getting the
VM from it. The code was already dereferencing it anyway, since we
know it's not gonna be null.

  • runtime/JSCellInlines.h:

(JSC::ExecState::vm):

11:37 Changeset [183752] by basile_clement@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Object allocation not sinking properly through CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=144465

Reviewed by Filip Pizlo.

Currently, sinking an allocation through a CheckStructure will
completely ignore all structure checking, which is obviously wrong.

A CheckStructureImmediate node type was present for that purpose, but
the CheckStructures were not properly replaced. This ensures that
CheckStructure nodes are replaced by CheckStructureImmediate nodes when
sunk through, and that structure checking happens correctly.

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCheckStructureImmediate): Added.
(JSC::DFG::Node::hasStructureSet):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

(JSC::DFG::ObjectAllocationSinkingPhase::promoteSunkenFields):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileCheckStructure):
(JSC::FTL::LowerDFGToLLVM::compileCheckStructureImmediate):
(JSC::FTL::LowerDFGToLLVM::checkStructure):

  • tests/stress/sink_checkstructure.js: Added.

(foo):

11:26 Changeset [183751] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebCore

[Mac] Show wireless playback placard even when an element has custom controls
https://bugs.webkit.org/show_bug.cgi?id=144548

Reviewed by Brent Fulgham.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.shouldHaveAnyUI): Return true when playing to wireless target.
(Controller.prototype.reconnectControls): Add controls when playing to wireless target.
(Controller.prototype.setPlaying): Return early when there is no 'controls' attribute.
(Controller.prototype.showControls): Ditto.
(Controller.prototype.updateWirelessPlaybackStatus): Call updateBase when playing to wireless
target to ensure that controls have been set up.
(Controller.prototype.handleWirelessPlaybackChange): Call reconnectControls when playing
to wireless target when there is no 'controls' attribute.
(Controller.prototype.showInlinePlaybackPlaceholderOnly): New.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Call configureMediaControls.
(WebCore::HTMLMediaElement::configureMediaControls): Require controls when playing
to wireless target.
(WebCore::HTMLMediaElement::configureTextTrackDisplay): Remove some unhelpful, noisy, logging.

11:24 Changeset [183750] by mitz@apple.com
  • 2 edits in trunk/Source/WebCore

Fixed the build.

  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker): Moved off of a deprecated
method to a non-deprecated equivalent.

10:27 Changeset [183749] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r183570): jslib-traverse-jquery is 22% slower
https://bugs.webkit.org/show_bug.cgi?id=144476

Reviewed by Sam Weinig.

jslib-traverse-jquery is now 31% faster than its unregressed baseline.

The jQuery algorithm for sorting DOM nodes is so pathologically slow that,
to my knowledge, the topic of how to optimize it is not covered in any
literature about sorting.

On the slowest jQuery sorting test -- prevAll -- our new
Array.prototype.sort, compared to its predecessor, performed 12% fewer
comparisons and requireed 10X less overhead per comparison. Yet, it was
slower.

It was slower because it inadvertantly increased the average cost of the
comparison function by 2X. jQuery uses compareDocumentPosition to compare
DOM nodes, and compareDocumentPosition(a, b) is O(N) in the distance
required to traverse backwards from b to a. In prevAll, we encounter the
worst case for merge sort of compareDocumentPosition: A long list of DOM
nodes in mostly reverse order. In this case, merge sort will sequentially
compareDocumentPosition(a, b), where a is not reachable backwards from
b, and therefore compareDocumentPosition will traverse the whole sibling
list.

The solution is simple enough: Call compareDocumentPosition(b, a) instead.

This is a pretty silly thing to do, but it is harmless, and jQuery is
popular, so let's do it.

We do not risk suffering the same problem in reverse when sorting a long
list of DOM nodes in forward order. (We still have a 37% speedup on the
nextAll benchmark.) The reason is that merge sort performs 2X fewer
comparisons when the list is already sorted, so we can worry less about
the cost of each comparison.

A fully principled soultion to this problem would probably do something
like Python's timsort, which special-cases ordered ranges to perform
only O(n) comparisons. But that would contradict our original
goal of just having something simple that works.

Another option is for elements to keep a compareDocumentPosition cache,
like a node list cache, which allows you to determine the absolute
position of a node using a hash lookup. I will leave this as an exercise
for kling.

  • builtins/Array.prototype.js:

(sort.merge): Compare in an order that is favorable to a comparator
that calls compareDocumentPosition.

10:25 Changeset [183748] by jfernandez@igalia.com
  • 25 edits
    5 adds in trunk

[CSS Box Alignment] Upgrade justify-content parsing to CSS3 Box Alignment spec.
https://bugs.webkit.org/show_bug.cgi?id=144442

Reviewed by David Hyatt.

Upgrade the justify-content property to the last CSS3 Box
Alignment specification. It defines a different enumeration for
Positional and Distribution alignment, which requires changes in
the FlexibleBox implementation.

Source/WebCore:

A new parsing function has been implemented to replace the basic
keyword IDs validation. Because of the complexity of the new
values, a new CSSPrimitiveValue derived class has been defined
which simplifies considerably the parsing logic.

We will follow the same approach than for Self Alignment, defining
a single class to hold all the related alignment data. This makes
possible to use a StyleBuilderConverter function instead of custom
builder functions for these properties.

Test: css3/parse-justify-content.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::resolveContentAlignmentAuto):
(WebCore::valueForContentPositionAndDistributionWithOverflowAlignment):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::valueForItemPositionWithOverflowAlignment): Deleted.

  • css/CSSContentDistributionValue.cpp: Added.

(WebCore::CSSContentDistributionValue::CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::~CSSContentDistributionValue):
(WebCore::CSSContentDistributionValue::customCSSText):
(WebCore::CSSContentDistributionValue::equals):

  • css/CSSContentDistributionValue.h: Added.

(WebCore::CSSContentDistributionValue::create):
(WebCore::CSSContentDistributionValue::distribution):
(WebCore::CSSContentDistributionValue::position):
(WebCore::CSSContentDistributionValue::overflow):

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):
(WebCore::isKeywordPropertyID):
(WebCore::CSSParser::parseValue):
(WebCore::isContentDistributionKeyword):
(WebCore::isContentPositionKeyword):
(WebCore::isAlignmentOverflowKeyword):
(WebCore::CSSParser::parseContentDistributionOverflowPosition):
(WebCore::CSSParser::parseItemPositionOverflowPosition):
(WebCore::CSSParser::parseLegacyPosition): Deleted.

  • css/CSSParser.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContentPosition):
(WebCore::CSSPrimitiveValue::operator ContentDistributionType):
(WebCore::CSSPrimitiveValue::operator EFlexDirection): Deleted.

  • css/CSSPropertyNames.in:
  • css/CSSValue.cpp:

(WebCore::CSSValue::equals):
(WebCore::CSSValue::cssText):
(WebCore::CSSValue::destroy):

  • css/CSSValue.h:

(WebCore::CSSValue::isContentDistributionValue):
(WebCore::CSSValue::isWebKitCSSFilterValue): Deleted.

  • css/CSSValueKeywords.in:
  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertContentAlignmentData):
(WebCore::StyleBuilderConverter::convertSelfOrDefaultAlignmentData): Deleted.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::initialJustifyContentOffset):
(WebCore::justifyContentSpaceBetweenChildren):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):

  • rendering/RenderFullScreen.cpp:

(WebCore::createFullScreenStyle):

  • rendering/mathml/RenderMathMLScripts.cpp:

(WebCore::RenderMathMLScripts::fixAnonymousStyleForSubSupPair):
(WebCore::RenderMathMLScripts::fixAnonymousStyles):

  • rendering/style/RenderStyle.h:
  • rendering/style/RenderStyleConstants.h:
  • rendering/style/StyleContentAlignmentData.h: Added.

(WebCore::StyleContentAlignmentData::StyleContentAlignmentData):
(WebCore::StyleContentAlignmentData::setPosition):
(WebCore::StyleContentAlignmentData::setDistribution):
(WebCore::StyleContentAlignmentData::setOverflow):
(WebCore::StyleContentAlignmentData::position):
(WebCore::StyleContentAlignmentData::distribution):
(WebCore::StyleContentAlignmentData::overflow):
(WebCore::StyleContentAlignmentData::operator==):
(WebCore::StyleContentAlignmentData::operator!=):

  • rendering/style/StyleRareNonInheritedData.cpp:

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

  • rendering/style/StyleRareNonInheritedData.h:

LayoutTests:

Some minor changes in some Flexbox related test cases for adapting
them to the new parsing logic. New layout tests, not Flexbox
specific, to verify the parsing of the new values.

  • css3/flexbox/css-properties.html:
  • css3/parse-justify-content-expected.txt: Added.
  • css3/parse-justify-content.html: Added.
09:57 WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
09:22 Changeset [183747] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Compile error in sharedEGLDisplay() method.
https://bugs.webkit.org/show_bug.cgi?id=144563

Reviewed by Alex Christensen.

The PlatformDisplay type is undefined.

  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay):

08:35 Changeset [183746] by zandobersek@gmail.com
  • 23 edits in trunk/Source

[WTF] Remove Functional.h inclusions
https://bugs.webkit.org/show_bug.cgi?id=144400

Reviewed by Darin Adler.

Source/WebCore:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebCore.

  • Modules/mediastream/MediaStreamTrack.cpp:
  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
  • Modules/mediastream/UserMediaRequest.cpp:
  • page/scrolling/ScrollingTree.h:
  • page/scrolling/ios/ScrollingCoordinatorIOS.mm:
  • page/scrolling/mac/ScrollingCoordinatorMac.mm:
  • platform/MemoryPressureHandler.cpp:
  • platform/UserActivity.h: Include the <objc/objc.h> header that was previously

indirectly included through Functional.h.

  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
  • platform/mac/SoftLinking.h: Unconditionally include the <objc/runtime.h> header

that was previously included for the Mac port through Functional.h.

Source/WebKit2:

Remove unnecessary inclusions of the <wtf/Functional.h> header in WebKit2.

  • Platform/IPC/unix/ConnectionUnix.cpp:
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm: Import the <objc/runtime.h>

header that was previously indirectly included through the Functional.h header.

  • WebProcess/WebPage/DrawingArea.cpp:

Source/WTF:

Remove most of the Functional.h header inclusions. The header is preserved
since it's still used by older versions of Safari, and for the callOnMainThread()
stub in DeprecatedSymbolsUsedBySafari.mm.

  • wtf/MainThread.cpp:
  • wtf/RunLoop.h:
  • wtf/WorkQueue.cpp:
  • wtf/WorkQueue.h:
  • wtf/efl/DispatchQueueEfl.h:
  • wtf/efl/DispatchQueueWorkItemEfl.h:
08:20 Changeset [183745] by ossy@webkit.org
  • 2 edits in trunk/Tools

Remove dead code from TestInvocationCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=144564

Reviewed by Gyuyoung Kim.

Only EFL and GTK port use TestInvocationCairo.cpp, there isn't other platform.

  • WebKitTestRunner/cairo/TestInvocationCairo.cpp:

(WTR::TestInvocation::dumpPixelsAndCompareWithExpected):

07:40 WebKitGTK/Gardening/Calendar edited by chavarria1991@gmail.com
(diff)
06:30 Changeset [183744] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

[Streams API] Refactor ReadableJSStream and ReadableStreamJSSource
https://bugs.webkit.org/show_bug.cgi?id=144387

Reviewed by Darin Adler.

Made ReadableStreamReader a private class of ReadableJSStream.
Simplified ReadableJSStream construction so that binding constructor does not need to know about ReadableStreamJSSource.

No functional change, existing tests cover the changes.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::source): Added to implement jsSource(), needed by ReadableJSStream.

  • bindings/js/JSReadableStreamCustom.cpp:

(WebCore::constructJSReadableStream): Simplified to not have to handle source creation.

  • bindings/js/ReadableStreamJSSource.cpp:

(WebCore::ReadableStreamJSSource::globalObject): Helper function to be used in other future methods.
(WebCore::ReadableStreamJSSource::start):
(WebCore::ReadableJSStream::create):
(WebCore::ReadableJSStream::createReader):
(WebCore::ReadableJSStream::jsSource):
(WebCore::ReadableJSStream::Reader::create):
(WebCore::ReadableJSStream::Reader::Reader):

  • bindings/js/ReadableStreamJSSource.h:
04:20 Changeset [183743] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] Add libnotify in gtk install-dependencies
https://bugs.webkit.org/show_bug.cgi?id=144379

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-05-04
Reviewed by Csaba Osztrogonác.

  • gtk/install-dependencies:
03:04 Changeset [183742] by ossy@webkit.org
  • 1 edit
    1 delete in trunk/Source/WebCore

Remove move-js-headers.sh
https://bugs.webkit.org/show_bug.cgi?id=144323

Reviewed by Daniel Bates.

move-js-headers.sh was only used by the Wx port, which has been removed from trunk long ago.

  • move-js-headers.sh: Removed.
01:51 Changeset [183741] by ossy@webkit.org
  • 2 edits in trunk

[cmake] Disable GNU Gold linker on Cortex A53
https://bugs.webkit.org/show_bug.cgi?id=144382

Reviewed by Carlos Garcia Campos.

  • Source/cmake/OptionsCommon.cmake:
01:42 Changeset [183740] by ossy@webkit.org
  • 4 edits in trunk/Source

[ARM] Don't compare unsigned chars to EOF (-1)
https://bugs.webkit.org/show_bug.cgi?id=144439

Reviewed by Geoffrey Garen.

Source/WebCore:

  • platform/linux/MemoryPressureHandlerLinux.cpp:

(WebKit::nextToken): Don't cast return value of fgetc() to char.

Source/WebKit2:

  • Shared/linux/WebMemorySamplerLinux.cpp:

(WebKit::nextToken): Don't cast return value of fgetc() to char.

01:37 Changeset [183739] by rego@igalia.com
  • 3 edits
    2 adds in trunk

[CSS Grid Layout] Wrong computed style for named grid lines in implicit tracks
https://bugs.webkit.org/show_bug.cgi?id=144449

Reviewed by Sergio Villar Senin.

Source/WebCore:

If there're implicit tracks then trackPositions is bigger than
trackSizes, so we need to use the proper index to append the trailing
<ident>s in valueForGridTrackList().

Test: fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForGridTrackList):

LayoutTests:

  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt: Added.
  • fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html: Added.
01:22 Changeset [183738] by ossy@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[cmake] Fix generate-js-builtins related incremental build issue
https://bugs.webkit.org/show_bug.cgi?id=144094

Reviewed by Michael Saboff.

  • CMakeLists.txt: Generated JSCBuiltins.<cpp|h> should depend on Source/JavaScriptCore/builtins directory.

Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.

  • DerivedSources.make:

Pass input directory to generate-js-builtins instead of Source/JavaScriptCore/builtins/*.js.

  • generate-js-builtins: Accept input files and input directory too.
00:52 Changeset [183737] by antti@apple.com
  • 11 edits
    4 deletes in trunk/Source/WebKit2

Remove NetworkResourceLoadScheduler
https://bugs.webkit.org/show_bug.cgi?id=144550

Reviewed by Sam Weinig.

It doesn't really do anything.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
(WebKit::NetworkConnectionToWebProcess::performSynchronousLoad):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::getNetworkProcessStatistics):

  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::networkResourceLoadScheduler): Deleted.

  • NetworkProcess/NetworkResourceLoadScheduler.cpp: Removed.
  • NetworkProcess/NetworkResourceLoadScheduler.h: Removed.
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):

  • NetworkProcess/NetworkResourceLoader.h:

(WebKit::NetworkResourceLoader::create):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::initializeNetworkSettings):

Moved from NetworkResourceLoadSchedulerMac.mm.

(WebKit::NetworkProcess::platformInitializeNetworkProcessCocoa):

  • NetworkProcess/mac/NetworkResourceLoadSchedulerMac.mm: Removed.
  • NetworkProcess/soup/NetworkResourceLoadSchedulerSoup.cpp: Removed.
  • WebKit2.xcodeproj/project.pbxproj:

05/03/15:

22:16 Changeset [183736] by ap@apple.com
  • 2 edits in trunk/Source/WebKit2

Crash in SandboxExtension::consume when uploading iWork -tef documents to iCloud
https://bugs.webkit.org/show_bug.cgi?id=144509
rdar://problem/18731910

Reviewed by Daniel Bates.

No test, because testRunner.beginDragWithFiles doesn't work in WKTR, and making
it work is hard.

  • Shared/BlobDataFileReferenceWithSandboxExtension.cpp:

(WebKit::BlobDataFileReferenceWithSandboxExtension::prepareForFileAccess):
(WebKit::BlobDataFileReferenceWithSandboxExtension::revokeFileAccess):

18:20 Changeset [183735] by gyuyoung.kim@webkit.org
  • 42 edits in trunk/Source/WebCore

Purge PassRefPtr in WebCore/html
https://bugs.webkit.org/show_bug.cgi?id=144543

Reviewed by Andreas Kling.

Change PassRefPtr in create() factory functions with Ref. In some functions,
it returns RefPtr when it might have a chance to return nullptr.

No new tests, no behavior changes.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::sendError):

  • html/DOMFormData.h:

(WebCore::DOMFormData::create):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerCreateResourceLoader):

  • html/HTMLMediaElement.h:
  • html/MediaError.h:

(WebCore::MediaError::create):

  • html/MediaKeyError.h:

(WebCore::MediaKeyError::create):

  • html/canvas/CanvasGradient.h:
  • html/canvas/CanvasProxy.cpp:

(WebCore::CanvasProxy::create):

  • html/canvas/CanvasProxy.h:
  • html/canvas/WebGLActiveInfo.h:

(WebCore::WebGLActiveInfo::create):

  • html/canvas/WebGLContextAttributes.h:
  • html/canvas/WebGLContextGroup.h:
  • html/canvas/WebGLProgram.h:
  • html/canvas/WebGLQuery.h:
  • html/canvas/WebGLRenderbuffer.h:
  • html/canvas/WebGLSampler.h:
  • html/canvas/WebGLShader.h:
  • html/canvas/WebGLShaderPrecisionFormat.h:
  • html/canvas/WebGLSync.h:
  • html/canvas/WebGLTexture.h:
  • html/canvas/WebGLTransformFeedback.h:
  • html/canvas/WebGLUniformLocation.h:
  • html/canvas/WebGLVertexArrayObjectOES.h:
  • html/shadow/ImageControlsRootElement.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

  • html/shadow/ImageControlsRootElement.h:
  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlPanelElement::create):
(WebCore::MediaControlPanelEnclosureElement::create):
(WebCore::MediaControlOverlayEnclosureElement::create):
(WebCore::MediaControlTimelineContainerElement::create):
(WebCore::MediaControlVolumeSliderContainerElement::create):
(WebCore::MediaControlStatusDisplayElement::create):
(WebCore::MediaControlPanelMuteButtonElement::create):
(WebCore::MediaControlVolumeSliderMuteButtonElement::create):
(WebCore::MediaControlPlayButtonElement::create):
(WebCore::MediaControlOverlayPlayButtonElement::create):
(WebCore::MediaControlSeekForwardButtonElement::create):
(WebCore::MediaControlSeekBackButtonElement::create):
(WebCore::MediaControlRewindButtonElement::create):
(WebCore::MediaControlReturnToRealtimeButtonElement::create):
(WebCore::MediaControlToggleClosedCaptionsButtonElement::create):
(WebCore::MediaControlClosedCaptionsContainerElement::create):
(WebCore::MediaControlClosedCaptionsTrackListElement::create):
(WebCore::MediaControlTimelineElement::create):
(WebCore::MediaControlPanelVolumeSliderElement::create):
(WebCore::MediaControlFullscreenVolumeSliderElement::create):
(WebCore::MediaControlFullscreenButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMinButtonElement::create):
(WebCore::MediaControlFullscreenVolumeMaxButtonElement::create):
(WebCore::MediaControlTimeRemainingDisplayElement::create):
(WebCore::MediaControlCurrentTimeDisplayElement::create):

  • html/shadow/MediaControlElements.h:
  • html/shadow/MediaControlsApple.h:

(WebCore::MediaControlsAppleEventListener::create):

  • html/shadow/MeterShadowElement.h:

(WebCore::MeterInnerElement::create):
(WebCore::MeterBarElement::create):
(WebCore::MeterValueElement::create):

  • html/shadow/ProgressShadowElement.h:

(WebCore::ProgressInnerElement::create):
(WebCore::ProgressBarElement::create):
(WebCore::ProgressValueElement::create):

  • html/shadow/mac/ImageControlsRootElementMac.cpp:

(WebCore::ImageControlsRootElement::maybeCreate):

  • html/track/TextTrackCueList.h:

(WebCore::TextTrackCueList::create):

  • html/track/VTTCue.cpp:

(WebCore::VTTCue::create):

  • html/track/VTTCue.h:

(WebCore::VTTCue::create):

  • html/track/VTTRegion.h:
  • html/track/VideoTrack.h:
  • html/track/VideoTrackList.h:
  • html/track/WebVTTElement.cpp:

(WebCore::WebVTTElement::create):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTParser.h:
  • platform/graphics/MediaPlayer.h:

(WebCore::MediaPlayerClient::mediaPlayerCreateResourceLoader):

16:58 Changeset [183734] by simon.fraser@apple.com
  • 5 edits in trunk/Source

Make some static data const
https://bugs.webkit.org/show_bug.cgi?id=144552

Reviewed by Andreas Kling.
Source/JavaScriptCore:

Turn characterSetInfo into const data.

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.h:

Source/WebCore:

Turn baseTable and shiftTable into const data.

  • platform/graphics/FormatConverter.cpp:
15:55 Changeset [183733] by timothy@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Exception under ContentViewContainer _disassociateFromContentView
https://bugs.webkit.org/show_bug.cgi?id=144546

Reviewed by Brian Burg.

  • UserInterface/Views/ContentViewContainer.js:

(WebInspector.ContentViewContainer.prototype.showContentView):
Make sure to pass the ContentView to _disassociateFromContentView. Also negate the result
of the _backForwardList.some(), since we don't want to dissociate if the content view is
still in the back-forward list.

09:10 Changeset [183732] by simon.fraser@apple.com
  • 5 edits
    3 adds in trunk

Assertion failure (!needsLayout()) loading inkedmag.com
https://bugs.webkit.org/show_bug.cgi?id=144528
rdar://problem/20788681

Reviewed by Darin Adler.

Source/WebCore:

When animated GIFs get into catch-up mode, which is common on inkedmag.com,
BitmapImage::advanceAnimation() can synchronously call it's observer's
animationAdvanced(). This could cause RenderImage::repaintOrMarkForLayout()
to repaint or mark itself as needing layout in the middle of painting.
If painting multiple tiles, this could occur when painting the first tile,
and then painting the second tile would assert in RenderView::paint().

It's always wrong to synchronously call the observer when advancing
the animation, since this happens when painting, and you can't repaint
when painting. The long comment and call to startAnimation(DoNotCatchUp)
was required to explain and work around this, but it's simpler to just
advance the animation on a zero-delay timer.

Special handling is required for the case where internalAdvanceAnimation()
is catching up, and reaches the end of a non-repeating image; there, we
have to set a flag and do the notify on a zero-delay timer.

Lots of comment cleanup.

Test: fast/images/set-needs-layout-in-painting.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::BitmapImage):
(WebCore::BitmapImage::startTimer): Utility to create and start the timer.
(WebCore::BitmapImage::repetitionCount):
(WebCore::BitmapImage::startAnimation): Early return in the DoNotCatchUp clause.
If skipping, and internalAdvanceAnimation() returns false (meaning it must have
reached the end), then queue up a notify. Change the normal behavior to just
start the timer.
(WebCore::BitmapImage::stopAnimation):
(WebCore::BitmapImage::internalAdvanceAnimation): Notify if the flag is set.

  • platform/graphics/BitmapImage.h:
  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint): Add a SetLayoutNeededForbiddenScope to
detect setNeedsLayouts when painting replaced elements, including images.

LayoutTests:

Test that sleeps for a while to force an image into catchup mode.

  • fast/images/resources/spinner.gif: Added.
  • fast/images/set-needs-layout-in-painting-expected.txt: Added.
  • fast/images/set-needs-layout-in-painting.html: Added.
08:20 Changeset [183731] by carlosgc@webkit.org
  • 14 edits
    2 moves
    5 adds in trunk/Source

[GTK][EFL] Unify platform display handling
https://bugs.webkit.org/show_bug.cgi?id=144517

Reviewed by Martin Robinson.

Source/WebCore:

There are several places were we are handling the X display
connection:

  • GLContext::sharedX11Display() creates a new connection.
  • X11Helper::nativeDisplay() creates a new connection.
  • BackingStoreBackendCairoX11 uses the GTK+ shared connection.
  • NetscapePlugin::x11HostDisplay() uses the GTK+/ecore shared connection
  • The rest of the GTK+ code uses the shared GTK+ connection

And then we also have WaylandDisplay and the code to check if the
current display is wayland or X11.
We could unify all these to share the same connection to reduce
the amount of ifdefs and ensure a single connection. That will
also allow us to use "smart pointers" for the X resources that
need a Display* to be freed.

  • PlatformEfl.cmake: Add new files to compilation.
  • PlatformGTK.cmake: Move some files to WebCore_SOURCES sinc ethey

don't use GTK+ anymore, and add new files to compilation.

  • platform/graphics/GLContext.cpp:

(WebCore::GLContext::cleanupActiveContextsAtExit): Remove the
custom X11 connection.
(WebCore::GLContext::createContextForWindow): Check if the shared
display is Wayland to create a EGL context in such case.

  • platform/graphics/PlatformDisplay.cpp: Added.

(WebCore::PlatformDisplay::createPlatformDisplay): Creates the
shared display, using the GTK+/ecore shared connection.
(WebCore::PlatformDisplay::sharedDisplay): Return the shared display.

  • platform/graphics/PlatformDisplay.h: Added.
  • platform/graphics/egl/GLContextEGL.cpp:

(WebCore::sharedEGLDisplay): Use PlatformDisplay::sharedDisplay()
to get the native display.
(WebCore::GLContextEGL::createPixmapContext): Ditto.

  • platform/graphics/glx/GLContextGLX.cpp:

(WebCore::GLContextGLX::createWindowContext): Ditto.
(WebCore::GLContextGLX::createPbufferContext): Ditto.
(WebCore::GLContextGLX::createPixmapContext): Ditto.
(WebCore::GLContextGLX::createContext): Ditto.
(WebCore::GLContextGLX::~GLContextGLX): Ditto.
(WebCore::GLContextGLX::defaultFrameBufferSize): Ditto.
(WebCore::GLContextGLX::makeContextCurrent): Ditto.
(WebCore::GLContextGLX::swapBuffers): Ditto.
(WebCore::GLContextGLX::cairoDevice): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext): Ditto.

  • platform/graphics/surfaces/glx/X11Helper.cpp:

(WebCore::X11Helper::nativeDisplay): Ditto.

  • platform/graphics/wayland/PlatformDisplayWayland.cpp: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.cpp.

(WebCore::PlatformDisplayWayland::globalCallback):
(WebCore::PlatformDisplayWayland::globalRemoveCallback):
(WebCore::PlatformDisplayWayland::create): Renamed instance() as
create() since the single instance is now handled by PlatformDisplay.
(WebCore::PlatformDisplayWayland::PlatformDisplayWayland):
(WebCore::PlatformDisplayWayland::createSurface):
(WebCore::PlatformDisplayWayland::createSharingGLContext):

  • platform/graphics/wayland/PlatformDisplayWayland.h: Renamed from Source/WebCore/platform/graphics/wayland/WaylandDisplay.h.
  • platform/graphics/x11/PlatformDisplayX11.cpp: Added.

(WebCore::PlatformDisplayX11::PlatformDisplayX11):
(WebCore::PlatformDisplayX11::~PlatformDisplayX11):

  • platform/graphics/x11/PlatformDisplayX11.h: Added.
  • platform/gtk/GtkUtilities.cpp:

(WebCore::getDisplaySystemType): Deleted.

  • platform/gtk/GtkUtilities.h:

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseRealize): Use PlatformDisplay::sharedDisplay()
to checkt the display type.
(webkitWebViewBaseCreateWebPage): Ditto.

  • UIProcess/cairo/BackingStoreCairo.cpp:

(WebKit::BackingStore::createBackend): Pass the native X11 shared
display to BackingStoreBackendCairoX11.

  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::NetscapePlugin::x11HostDisplay): Return the native X11
shared display.

03:30 blue1.jpg attached to SquirrelFish by smartmiltoys@gmail.com
[http://kdkraftupwnkitchen.tumblr.com/
03:14 Changeset [183730] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix Debug build with NETWORK_CACHE enabled and CACHE_PARTITIONING disabled.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::store):

02:54 Changeset [183729] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] API tests crashing on debug builds due to extra unref
https://bugs.webkit.org/show_bug.cgi?id=144508

Reviewed by Mario Sanchez Prada.

The problem is that we were assuming that when a new DOMWindow is
created, the DOM object cache was notified about the previous
DOMWindow being destroyed before objects for the new DOMWindow are
added to the cache. However, that's not always the case and we
only create a DOMWindowObserver for the first DOMWindow. We need
to keep a pointer to the DOMWindow being observed to clear() the
cache and create a new DOMWindowObserver when it changes in the
Frame.

Fixes crashes in several unit tests in debug builds.

  • bindings/gobject/DOMObjectCache.cpp:
00:48 Changeset [183728] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/frames/flattening/crash-remove-iframe-during-object-beforeload.html
https://bugs.webkit.org/show_bug.cgi?id=144540

00:13 Changeset [183727] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Remove timer alignment logging that I added earler today.

  • page/Settings.cpp: (WebCore::Settings::setDOMTimerAlignmentInterval):
Note: See TracTimeline for information about the timeline view.