Timeline



May 1, 2014:

11:23 PM Changeset in webkit [168157] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

More 32-bit build fixes.

  • Misc/WebSharingServicePickerController.mm:

(-[WebSharingServicePickerController sharingService:didShareItems:]):

11:17 PM Changeset in webkit [168156] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.33.1/Source

Versioning.

11:15 PM Changeset in webkit [168155] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.33.1

New tag.

10:55 PM Changeset in webkit [168154] by mitz@apple.com
  • 1 edit in trunk/Source/bmalloc/ChangeLog

Added Radar link to the last ChangeLog entry.

10:55 PM Changeset in webkit [168153] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Temporarily "fix" the 32-bit build.

  • Misc/WebSharingServicePickerController.mm:

This will fail miserably at runtime, but we shouldn't ever get here in a 32-bit process.

10:53 PM Changeset in webkit [168152] by mitz@apple.com
  • 2 edits in trunk/Source/bmalloc

Fixed production builds for the iOS Simulator.

  • Configurations/bmalloc.xcconfig: Include INSTALL_PATH_PREFIX in

PRIVATE_HEADERS_FOLDER_PATH when installing.

10:49 PM Changeset in webkit [168151] by ryuan.choi@samsung.com
  • 6 edits in trunk/Source/WebCore

Remove TiledBackingStore stuff from Frame
https://bugs.webkit.org/show_bug.cgi?id=132458

Reviewed by Andreas Kling.

Although TiledBackingStore is using for the CoordinatedGraphics,
CoordinatedGraphics does not use tiledBackingStore of Frame.

This patch removed TiledBackingStore related code of the Frame.

  • page/Frame.cpp:

(WebCore::Frame::Frame):
(WebCore::Frame::setView):
(WebCore::Frame::setTiledBackingStoreEnabled): Deleted.
(WebCore::Frame::tiledBackingStorePaintBegin): Deleted.
(WebCore::Frame::tiledBackingStorePaint): Deleted.
(WebCore::Frame::tiledBackingStorePaintEnd): Deleted.
(WebCore::Frame::tiledBackingStoreContentsRect): Deleted.
(WebCore::Frame::tiledBackingStoreVisibleRect): Deleted.
(WebCore::Frame::tiledBackingStoreBackgroundColor): Deleted.

  • page/Frame.h:

(WebCore::Frame::tiledBackingStore): Deleted.

  • page/FrameView.cpp:

(WebCore::FrameView::repaintContentRectangle):

  • page/Settings.cpp:

(WebCore::Settings::Settings):
(WebCore::Settings::setTiledBackingStoreEnabled): Deleted.

  • page/Settings.h:

(WebCore::Settings::tiledBackingStoreEnabled): Deleted.

10:19 PM Changeset in webkit [168150] by ap@apple.com
  • 3 edits in trunk/LayoutTests

REGRESSION(r125251): It made svg/custom/use-instanceRoot-as-event-target.xhtml assert and flakey
https://bugs.webkit.org/show_bug.cgi?id=93812

This is most likely fixed, unmarking the test.

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
9:28 PM Changeset in webkit [168149] by bshafiei@apple.com
  • 2 edits in tags/Safari-538.30.3/WebKitLibraries

Merged r168143.

9:23 PM Changeset in webkit [168148] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

Migrate all uses of DeviceMotionController and DeviceOrientationController to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=132461

Unreviewed build fix.

No new tests.

  • dom/Document.cpp:

(WebCore::Document::Document):

  • dom/Document.h:
  • platform/ios/DeviceMotionClientIOS.h:

(WebCore::DeviceMotionClientIOS::create): Deleted.

  • platform/ios/DeviceOrientationClientIOS.h:

(WebCore::DeviceOrientationClientIOS::create): Deleted.

9:12 PM Changeset in webkit [168147] by bshafiei@apple.com
  • 5 edits in tags/Safari-538.30.3/Source

Versioning.

9:09 PM Changeset in webkit [168146] by bshafiei@apple.com
  • 1 copy in tags/Safari-538.30.3

New tag.

8:31 PM Changeset in webkit [168145] by beidson@apple.com
  • 4 edits in trunk/Source/WebKit/mac

Update service picker API usage.
<rdar://problem/16772674> and https://bugs.webkit.org/show_bug.cgi?id=132452

Reviewed by Tim Horton.

  • Misc/WebSharingServicePickerController.h:
  • Misc/WebSharingServicePickerController.mm:

(-[WebSharingServicePickerController didShareImageData:confirmDataIsValidTIFFData:]):

Factor out a common "didShare" handler that optionally validates whether the data represents an image.

(-[WebSharingServicePickerController sharingService:didShareItems:]): Update API usage, including marshalling

on off-main thread call back to the main thread.

  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::contextMenuForEvent): Update API usage.

7:28 PM Changeset in webkit [168144] by gyuyoung.kim@samsung.com
  • 48 edits in trunk/Source/WebCore

Convert OwnPtr and PassOwnPtr uses to std::unique_ptr in Supplement
https://bugs.webkit.org/show_bug.cgi?id=132165

Reviewed by Darin Adler.

According to convert from PassOwnPtr to std::unique_ptr, provideTo() callers also begin
to use std::make_unique.

  • Modules/battery/BatteryController.cpp:

(WebCore::provideBatteryTo):

  • Modules/battery/BatteryController.h:
  • Modules/battery/NavigatorBattery.cpp:

(WebCore::NavigatorBattery::from):

  • Modules/gamepad/NavigatorGamepad.cpp:

(WebCore::NavigatorGamepad::from):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::provideGeolocationTo):

  • Modules/geolocation/GeolocationController.h:
  • Modules/geolocation/NavigatorGeolocation.cpp:

(WebCore::NavigatorGeolocation::from):

  • Modules/indexeddb/DOMWindowIndexedDatabase.cpp:

(WebCore::DOMWindowIndexedDatabase::from):

  • Modules/indexeddb/PageGroupIndexedDatabase.cpp:

(WebCore::PageGroupIndexedDatabase::from):

  • Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:

(WebCore::WorkerGlobalScopeIndexedDatabase::from):

  • Modules/mediastream/UserMediaController.cpp:

(WebCore::provideUserMediaTo):
(WebCore::UserMediaController::create): Deleted.

  • Modules/mediastream/UserMediaController.h:
  • Modules/navigatorcontentutils/NavigatorContentUtils.cpp:

(WebCore::provideNavigatorContentUtilsTo):
(WebCore::NavigatorContentUtils::create): Deleted.

  • Modules/navigatorcontentutils/NavigatorContentUtils.h:
  • Modules/notifications/DOMWindowNotifications.cpp:

(WebCore::DOMWindowNotifications::from):

  • Modules/notifications/NotificationController.cpp:

(WebCore::provideNotification):
(WebCore::NotificationController::create): Deleted.

  • Modules/notifications/NotificationController.h:
  • Modules/notifications/WorkerGlobalScopeNotifications.cpp:

(WebCore::WorkerGlobalScopeNotifications::from):

  • Modules/proximity/DeviceProximityController.cpp:

(WebCore::provideDeviceProximityTo):
(WebCore::DeviceProximityController::create): Deleted.

  • Modules/proximity/DeviceProximityController.h:
  • Modules/quota/DOMWindowQuota.cpp:

(WebCore::DOMWindowQuota::from):

  • Modules/quota/NavigatorStorageQuota.cpp:

(WebCore::NavigatorStorageQuota::from):

  • Modules/quota/WorkerNavigatorStorageQuota.cpp:

(WebCore::WorkerNavigatorStorageQuota::from):

  • Modules/speech/DOMWindowSpeechSynthesis.cpp:

(WebCore::DOMWindowSpeechSynthesis::from):

  • Modules/speech/SpeechRecognitionController.cpp:

(WebCore::provideSpeechRecognitionTo):

  • Modules/vibration/Vibration.cpp:

(WebCore::provideVibrationTo):
(WebCore::Vibration::create): Deleted.

  • Modules/vibration/Vibration.h:
  • dom/DeviceMotionController.cpp:

(WebCore::provideDeviceMotionTo):
(WebCore::DeviceMotionController::create): Deleted.

  • dom/DeviceMotionController.h:
  • dom/DeviceOrientationController.cpp:

(WebCore::provideDeviceOrientationTo):
(WebCore::DeviceOrientationController::create): Deleted.

  • dom/DeviceOrientationController.h:
  • page/SpeechInput.cpp:

(WebCore::provideSpeechInputTo):
(WebCore::SpeechInput::create): Deleted.

  • page/SpeechInput.h:
  • platform/Supplementable.h:

(WebCore::Supplement::provideTo):
(WebCore::Supplementable::provideSupplement):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::from):

6:45 PM Changeset in webkit [168143] by Brent Fulgham
  • 2 edits in trunk/WebKitLibraries

Correct case of environment variables in auto-version.sh scripts
https://bugs.webkit.org/show_bug.cgi?id=132455

Reviewed by Dean Jackson.

Although we have historically used RC_PROJECTSOURCEVERSION in our scripts,
the actual environment variable is RC_ProjectSourceVersion. Old versions of
Cygwin converted this to all-caps by default, but this is no longer the case.
We need to use the proper case to avoid build failures.

  • win/tools/scripts/auto-version.sh: Although we have historically coded

this as 'RC_PROJECTSOURCEVERSION', it is actually 'RC_ProjectSourceVersion'.

6:40 PM Changeset in webkit [168142] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (WebKit2) Need to support Learn button.
https://bugs.webkit.org/show_bug.cgi?id=132454
<rdar://problem/16778889>

Reviewed by Benjamin Poulain.

For traditional Chinese we support the ability to add shortcuts
for typing. This is done by pressing the Learn button on the system
menu. This patch adds the necessary code to canPerformAction to enable
the button when appropriate as well as the implementation of the action
itself.
It also adds a check for the Replace button not to be shown when the
selection only contains CJ characters.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _addShortcut:]):
(-[WKContentView canPerformAction:withSender:]):

6:28 PM Changeset in webkit [168141] by Lucas Forschler
  • 3 edits in tags/Safari-538.33/Source/WebCore

Merged r168113.

6:26 PM Changeset in webkit [168140] by Lucas Forschler
  • 5 edits in tags/Safari-538.33

Merged r168088.

6:21 PM Changeset in webkit [168139] by ryuan.choi@samsung.com
  • 7 edits in trunk

[EFL][WK1] Drop ewk_view_setting_tiled_backingstore APIs
https://bugs.webkit.org/show_bug.cgi?id=132240

Reviewed by Anders Carlsson.

Source/WebKit/efl:
Since we moved to use TextureMapper, this option is meaningless now.
Removed ewk_view_setting_tiled_backing_store_enabled_{get|set} and related codes.

  • ewk/ewk_view.cpp:

(ewk_view_setting_tiled_backing_store_enabled_set): Deleted.
(ewk_view_setting_tiled_backing_store_enabled_get): Deleted.

  • ewk/ewk_view.h:
  • tests/test_ewk_view.cpp:

(TEST_F): Deleted.

Tools:
Removed ewk_view_setting_tiled_backingstore related code.

  • DumpRenderTree/efl/DumpRenderTreeChrome.cpp:

(DumpRenderTreeChrome::createView):
(shouldUseTiledBackingStore): Deleted.

  • EWebLauncher/main.c:

(windowCreate):
(parseUserArguments):

5:34 PM Changeset in webkit [168138] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit

Support OS-version-specific install paths for WebKit.framework
https://bugs.webkit.org/show_bug.cgi?id=132448
<rdar://problem/16784932>

Reviewed by Dan Bernstein.

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Add a build step to put a symlink in place from PrivateFrameworks to Frameworks.

Source/WebKit/mac:

  • WebKitLegacy/WebKit.m:

Add version specific install names.

5:28 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
5:04 PM Changeset in webkit [168137] by akling@apple.com
  • 3 edits in trunk/Source/WebCore

HTMLMediaElement: Remove two unnecessary virtual overrides.
<https://webkit.org/b/132445>

Now that ENABLE_PLUGIN_PROXY_FOR_VIDEO is gone, we can remove
these overrides:

  • defaultEventHandler()
  • willRespondToMouseClickEvents()

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp:
  • html/HTMLMediaElement.h:
4:59 PM Changeset in webkit [168136] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

ViewportConfiguration::minimumScale() uses the initial scale as initial value
https://bugs.webkit.org/show_bug.cgi?id=132451
<rdar://problem/16780111>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-01
Reviewed by Enrica Casucci.

  • page/ViewportConfiguration.cpp:

(WebCore::ViewportConfiguration::minimumScale):
The initial minimum scale was set to the initial scale, preventing some pages from zooming
out.

4:59 PM Changeset in webkit [168135] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Tweak the extended background exclusion for MobileSafari
https://bugs.webkit.org/show_bug.cgi?id=132449

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-01
Reviewed by Beth Dakin.

Some tweaks for Mobile:
-Use UIViews instead of CALayers to have the same animation timing as the top views.
-The left extended background insets should not exclude the top and bottom insets.

Since this code is in the middle of 2 hot paths, also added some performance tweaks.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
In the normal case, we do not have extended background exclusion. To avoid creating a background view, we use
the scrollview to render the background.
The separate background view is created lazily if needed.

(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView _frameOrBoundsChanged]):
(updateTopAndBottomExtendedBackgroundExclusionIfNecessary):
This create the top and bottom extended background view as needed and update their frames for the current insets.

(-[WKWebView _setObscuredInsets:]):
(-[WKWebView _setExtendedBackgroundExclusionInsets:]):
When an exclusion inset is needed, create a view for it, transfer the color from the ScrollView, and reset the color
of the scrollview.

4:55 PM Changeset in webkit [168134] by Lucas Forschler
  • 132 edits
    2 copies
    4 deletes in tags/Safari-538.33

Rollout of r168047.

4:53 PM Changeset in webkit [168133] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168058.

4:52 PM Changeset in webkit [168132] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168061.

4:52 PM Changeset in webkit [168131] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168062.

4:49 PM Changeset in webkit [168130] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168071.

4:48 PM Changeset in webkit [168129] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168072.

4:48 PM Changeset in webkit [168128] by Lucas Forschler
  • 2 edits in tags/Safari-538.33/Source/WebKit

Rollout of r168073.

4:19 PM Changeset in webkit [168127] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix for !ENABLE(BLOB) builds.

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):

4:09 PM Changeset in webkit [168126] by ap@apple.com
  • 23 edits in trunk/Source

Move size computation for Blob constructor into BlobRegistryImpl
https://bugs.webkit.org/show_bug.cgi?id=132439

Reviewed by Sam Weinig.

Source/WebCore:

  • Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):

Don't pass the size, anyone who cares can get it from BlobData.

  • bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):

Updated for BlobBuilder changes.

  • fileapi/Blob.cpp: (WebCore::Blob::Blob):
  • fileapi/Blob.h: (WebCore::Blob::create):

No longer take a precomputed size with BlobData, BlobRegistry will compute it as
part of registration.

  • fileapi/File.h:
  • fileapi/File.cpp:

(WebCore::File::File): Don't pass a size (that's unknown anyway).
(WebCore::File::captureSnapshot): Deleted. Finally, only the registry is responsible
for snapshot tracking now (I doubt that either new or old code is particularly compliant).

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURL):

  • fileapi/ThreadableBlobRegistry.h:

Plumbing to make this version of registerBlobURL return a size. I may make size
calculation lazy and the function async later, but this is needed to move the behavior
to the right place first.

  • fileapi/WebKitBlobBuilder.h:
  • fileapi/WebKitBlobBuilder.cpp:

(WebCore::BlobBuilder::BlobBuilder):
(WebCore::BlobBuilder::append):
(WebCore::BlobBuilder::appendBytesData):
(WebCore::BlobBuilder::finalize):
(WebCore::BlobBuilder::getBlob): Deleted.
Don't track sizes or modification times, registry will do that with appropriate laziness.
Cleaned up the API - now that BlobBuilder is not exposed to JS as an object, it
does not need to be reusable.

  • platform/network/BlobRegistry.h: Made this version of registerBlobURL return a size.
  • platform/network/BlobRegistryImpl.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems): Assert that length computations are accurate.
(WebCore::BlobRegistryImpl::registerBlobURL): Compute a size to return, and record
modification time as necessary.

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Don't pass the

size, which can be computed from data. Soon, I want to add a constructor that doesn't
require wrapping a single Vector as BlobData to construct a Blob.

Source/WebKit2:
Plumbing to make this version of registerBlobURL synchronous for now.
I expect to make it async again when data structures on client side are simplified.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURL):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURL):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURL):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
3:54 PM Changeset in webkit [168125] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] audio and video should automatically play to active external device
https://bugs.webkit.org/show_bug.cgi?id=132428

Reviewed by Jer Noble.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set

AVPlayer.usesExternalPlaybackWhileExternalScreenIsActive.

3:53 PM Changeset in webkit [168124] by Beth Dakin
  • 2 edits in trunk/Source/WebKit2

REGRESSION(168053): Repro crash navigating to another page after selecting phone
numbers on a page
https://bugs.webkit.org/show_bug.cgi?id=132444
-and corresponding-
<rdar://problem/16787285>

Reviewed by Darin Adler.

Missing null-check.

  • WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:

(WebKit::TelephoneNumberOverlayController::drawRect):

3:03 PM Changeset in webkit [168123] by andersca@apple.com
  • 8 edits in trunk/Source/WebKit2

Remove WKBundleSetShouldTrackVisitedLinks and associate code
https://bugs.webkit.org/show_bug.cgi?id=132441

Reviewed by Sam Weinig.

  • WebProcess/InjectedBundle/API/c/WKBundle.cpp:

(WKBundleSetShouldTrackVisitedLinks): Deleted.

  • WebProcess/InjectedBundle/API/c/WKBundlePrivate.h:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setShouldTrackVisitedLinks): Deleted.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::addVisitedLink):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::setShouldTrackVisitedLinks): Deleted.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::shouldTrackVisitedLinks): Deleted.

2:57 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
2:53 PM Changeset in webkit [168122] by andersca@apple.com
  • 8 edits in trunk

window.testRunner.keepWebHistory() should update the UI process state
https://bugs.webkit.org/show_bug.cgi?id=132440

Reviewed by Dan Bernstein.

Source/WebKit2:

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetAddsVisitedLinks):
(WKPageSetAddsVisitedLinks):

  • UIProcess/API/C/WKPagePrivate.h:

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::postSetAddsVisitedLinks):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.h:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::keepWebHistory):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::invoke):
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

2:44 PM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
2:00 PM Changeset in webkit [168121] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span elements doesn't work
https://bugs.webkit.org/show_bug.cgi?id=132066

Reviewed by Oliver Hunt.

Make a new SelectionIterator struct that knows how to drill into and out of
column span placeholders. Also change spans to be selection roots (in the painting
sense).

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::selectionGaps):

  • rendering/RenderView.cpp:

(WebCore::SelectionIterator::SelectionIterator):
(WebCore::SelectionIterator::checkForSpanner):
(WebCore::SelectionIterator::current):
(WebCore::SelectionIterator::next):
(WebCore::RenderView::subtreeSelectionBounds):
(WebCore::RenderView::repaintSubtreeSelection):
(WebCore::RenderView::setSubtreeSelection):

1:56 PM Changeset in webkit [168120] by fpizlo@apple.com
  • 3 edits in trunk/Source/WebKit2

Roll out r60161.

Rubber stamped by Mark Hahnenberg.

This breaks our debugging workflow.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::decode):

  • UIProcess/mac/WebContextMac.mm:

(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebContext::platformInitializeWebProcess):

1:56 PM Changeset in webkit [168119] by Simon Fraser
  • 9 edits
    6 adds in trunk

Don't always make backing store for -webkit-backface-visibility:hidden
https://bugs.webkit.org/show_bug.cgi?id=132420

Reviewed by Sam Weinig.

Source/WebCore:
Previously, -webkit-backface-visibility:hidden unconditionally created
compositing layers with backing store. This results in high memory use
on pages with this style applied to many elements (a cargo-cult "optimization").

Fix by only having -webkit-backface-visibility:hidden create compositing layers
if some ancestor has a 3D transform. That's the only scenario in which the
element can be flipped around to reveal the back side, so the only time we need
to do compositing for this property. In future, we could be smarter, and only
consider 3D transforms in the current preserve-3d context.

Tests: compositing/backing/backface-visibility-in-3dtransformed.html

compositing/backing/backface-visibility-in-transformed.html
compositing/backing/backface-visibility.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::RenderLayer):
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::hitTestLayer):

  • rendering/RenderLayer.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingLayer):
(WebCore::RenderLayerCompositor::requiresOwnBackingStore):
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):

  • rendering/RenderLayerCompositor.h:

LayoutTests:
Dump layers for elements with backface-visibility: hidden with various types
of ancestors.

  • compositing/backing/backface-visibility-expected.txt: Added.
  • compositing/backing/backface-visibility-in-3dtransformed-expected.txt: Added.
  • compositing/backing/backface-visibility-in-3dtransformed.html: Added.
  • compositing/backing/backface-visibility-in-transformed-expected.txt: Added.
  • compositing/backing/backface-visibility-in-transformed.html: Added.
  • compositing/backing/backface-visibility.html: Added.
  • inspector-protocol/layers/layers-anonymous.html: Don't use backface-visibility

for force a layer.

1:39 PM Changeset in webkit [168118] by andersca@apple.com
  • 21 edits in trunk/Source/WebKit2

WKWebView doesn't track visited links (for visited link coloring)
https://bugs.webkit.org/show_bug.cgi?id=132438
<rdar://problem/16704519>

Reviewed by Dan Bernstein.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/API/APIHistoryClient.h:

(API::HistoryClient::addsVisitedLinks):
(API::HistoryClient::shouldTrackVisitedLinks): Deleted.

  • UIProcess/API/C/WKContext.cpp:

(WKContextSetHistoryClient):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _addsVisitedLinks]):
(-[WKWebView _setAddsVisitedLinks:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView initWithFrame:context:configuration:webView:]):

  • UIProcess/Cocoa/HistoryClient.h:
  • UIProcess/Cocoa/HistoryClient.mm:

(WebKit::HistoryClient::shouldTrackVisitedLinks): Deleted.

  • UIProcess/VisitedLinkProvider.cpp:

(WebKit::VisitedLinkProvider::addVisitedLinkHashFromPage):

  • UIProcess/VisitedLinkProvider.h:
  • UIProcess/VisitedLinkProvider.messages.in:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::setHistoryClient):
(WebKit::WebContext::createNewWebProcess):

  • UIProcess/WebContext.h:

(WebKit::WebContext::processes):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::addsVisitedLinks):
(WebKit::WebPageProxy::setAddsVisitedLinks):

  • WebProcess/WebPage/VisitedLinkTableController.cpp:

(WebKit::VisitedLinkTableController::addVisitedLink):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeWebProcess):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
1:32 PM Changeset in webkit [168117] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] The highlight view needs to be in WKWebView coordinates
https://bugs.webkit.org/show_bug.cgi?id=132435
<rdar://problem/16708861>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-05-01
Reviewed by Tim Horton.

_UIHighlightView needs to be in WKWebView coordinates so that it render unscaled for any page scale factor.
The view needs to be a child of WKContentView so that it moves/scales with the page.

To fix the issue, add an inverse transform root layer for the hightlight, and scale the coordinates to their
inverse scaled counterpart.

The scale is not updated live with the scaling of WKContentView but that should be fine since the view disappear
on any scaling operation (and I would prefer not add live painting during scaling animation).

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

(-[WKContentView cleanupInteraction]):
(-[WKContentView _didGetTapHighlightForRequest:color:WebCore::quads:WebCore::topLeftRadius:WebCore::topRightRadius:WebCore::bottomLeftRadius:WebCore::bottomRightRadius:WebCore::]):
(-[WKContentView _cancelInteraction]):

1:03 PM Changeset in webkit [168116] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

JavaScriptCore fails to build with some versions of clang
https://bugs.webkit.org/show_bug.cgi?id=132436

Reviewed by Anders Carlsson.

  • runtime/ArgumentsIteratorConstructor.cpp: Since we call

putDirectWithoutTransition, and it calls putWillGrowOutOfLineStorage,
and both are marked inline, it's valid for the compiler to decide
to inline both and emit neither in the binary. Therefore, we need
both inline definitions to be available in the translation unit at
compile time, or we'll try to link against a function that doesn't exist.

12:24 PM Changeset in webkit [168115] by achristensen@apple.com
  • 6 edits
    80 adds
    24 deletes in trunk/Source

Finish updating ANGLE.
https://bugs.webkit.org/show_bug.cgi?id=132434

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

  • ANGLE.xcodeproj/project.pbxproj:

Removed Uniform.cpp which is no longer in ANGLE.

  • changes.diff:

Added more changes from ANGLE which are already included in WebKit.

Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af. Long list of changes omitted.

Source/WebCore:

  • CMakeLists.txt:

Removed Uniform.cpp which is no longer in ANGLE.

12:23 PM Changeset in webkit [168114] by matthew_hanson@apple.com
  • 11 edits in tags/Safari-538.33

Rollout r167964.

12:10 PM Changeset in webkit [168113] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (new multi-column): WebKit2.ResizeReversePaginatedWebView fails on debug bots
https://bugs.webkit.org/show_bug.cgi?id=132429

Reviewed by Alexey Proskuryakov.

Make sure to get the column count directly from the column set.
I was returning the theoretical column count from the flow thread,
and that wasn't the right value.

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

(WebCore::RenderView::pageCount):

12:02 PM Changeset in webkit [168112] by Brent Fulgham
  • 6 edits
    2 adds in trunk

Fix handling of attributes prior to compiling shader
https://bugs.webkit.org/show_bug.cgi?id=132430

Reviewed by Dean Jackson.

Source/WebCore:
WebGL programs that called bindAttribLocations prior to compiling shader sources
would perform the bind using the non-hashed symbol name, but would later create
the attributes as hashed names. Consequently, the program would refer to
attributes that were never actually part of any shader, resulting in some amazing
display artifacts.

This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
program the proper name that will be used when the shader is eventually compiled,
allowing the WebGL program to link against the proper symbol after compiling and
linking completes.

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::generateHashedName): Function uses the ANGLE hashing
function to generate correct symbol.
(WebCore::GraphicsContext3D::mappedSymbolName): If we haven't compiled shaders yet, look
in our set of potentially unused attributes.
(WebCore::GraphicsContext3D::originalSymbolName): Ditto, for reverse lookup.

Source/WTF:
WebGL programs that called bindAttribLocations prior to compiling shader sources
would perform the bind using the non-hashed symbol name, but would later create
the attributes as hashed names. Consequently, the program would refer to
attributes that were never actually part of any shader, resulting in some amazing
display artifacts.

This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
program the proper name that will be used when the shader is eventually compiled,
allowing the WebGL program to link against the proper symbol after compiling and
linking completes.

  • wtf/HexNumber.h:

(WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter.

LayoutTests:

  • fast/canvas/webgl/gl-bind-attrib-location-before-compile-test-expected.txt: Added.
  • fast/canvas/webgl/gl-bind-attrib-location-before-compile-test.html: Added.
11:49 AM Changeset in webkit [168111] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Subpixel rendering: Make selection gaps painting subpixel aware.
https://bugs.webkit.org/show_bug.cgi?id=132169

Reviewed by Simon Fraser.

Push selection gaps painting to device pixel boundaries instead of integral CSS pixel positions.

Source/WebCore:
Test: fast/inline/hidpi-selection-gap-on-subpixel-position.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::blockSelectionGap):
(WebCore::RenderBlock::logicalLeftSelectionGap):
(WebCore::RenderBlock::logicalRightSelectionGap):

LayoutTests:

  • fast/inline/hidpi-selection-gap-on-subpixel-position-expected.html: Added.
  • fast/inline/hidpi-selection-gap-on-subpixel-position.html: Added. : &nbsp is needed to make

this test pass on WK2. Font rendering reports differences. 0.9 transparency is added so that
text selection code does modify the color's alpha channel and I can properly match it.

11:31 AM Changeset in webkit [168110] by ggaren@apple.com
  • 2 edits in trunk/Source/WTF

Link against bmalloc in production builds
https://bugs.webkit.org/show_bug.cgi?id=132413

Reviewed by Sam Weinig.

Production builders have been configured to handle this, so let's build
it.

  • Configurations/WTF.xcconfig:
11:20 AM Changeset in webkit [168109] by ddkilzer@apple.com
  • 7 edits in trunk

Really remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
<http://webkit.org/b/132432>

Reviewed by Tim Horton.

.:

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:
  • Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO as build option.

Source/WebCore:

  • platform/graphics/wince/MediaPlayerPrivateWinCE.h: Remove

methods and ivar in ENABLE(PLUGIN_PROXY_FOR_VIDEO).

Tools:

  • Scripts/webkitperl/FeatureList.pm: Remove support for

--plugin-proxy-for-video switch.

10:48 AM Changeset in webkit [168108] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

[CSS Grid Layout] Clamping the number of repetitions in repeat()
https://bugs.webkit.org/show_bug.cgi?id=131023

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-05-01
Reviewed by Brent Fulgham.

Source/WebCore:
The ED suggests now to be able to clamp the number of repetitions when
using the repeat() function, taking precautions about excessive memory
usage.

The implemented max repetitions is 10K.

Test: fast/css-grid-layout/grid-element-repeat-max-repetitions.html

  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridTrackRepeatFunction):

LayoutTests:
Test to ensure the number of repetitions used in the repeat() function
is clamped to 10K.

  • fast/css-grid-layout/grid-element-repeat-max-repetitions-expected.txt: Added.
  • fast/css-grid-layout/grid-element-repeat-max-repetitions.html: Added.
10:26 AM Changeset in webkit [168107] by commit-queue@webkit.org
  • 11 edits in trunk

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

Memory improvements should not regress memory usage (Requested
by olliej on #webkit).

Reverted changeset:

"Don't hold on to parameter BindingNodes forever"
https://bugs.webkit.org/show_bug.cgi?id=132360
http://trac.webkit.org/changeset/167964

9:42 AM Changeset in webkit [168106] by ap@apple.com
  • 2 edits in trunk/LayoutTests

fast/multicol/fixed-stack.html failing since introduction.
https://bugs.webkit.org/show_bug.cgi?id=132421

9:38 AM Changeset in webkit [168105] by matthew_hanson@apple.com
  • 7 edits
    2 copies in branches/safari-537.76-branch

Merge r167295.

9:25 AM Changeset in webkit [168104] by matthew_hanson@apple.com
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r166736.

9:06 AM Changeset in webkit [168103] by matthew_hanson@apple.com
  • 3 edits
    4 copies in branches/safari-537.76-branch

Merge r167480.

8:55 AM Changeset in webkit [168102] by matthew_hanson@apple.com
  • 2 edits in branches/safari-537.76-branch/Source/WebCore

Merge r167524.

8:48 AM Changeset in webkit [168101] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix trivial debug-only race-that-crashes in CallLinkStatus and explain why the remaining races are totally awesome
https://bugs.webkit.org/show_bug.cgi?id=132427

Reviewed by Mark Hahnenberg.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):

8:46 AM Changeset in webkit [168100] by matthew_hanson@apple.com
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r167672.

8:43 AM Changeset in webkit [168099] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[MSE] Seeking between two buffered ranges enquues incorrect buffers.
https://bugs.webkit.org/show_bug.cgi?id=132416

Reviewed by Eric Carlson.

std::equal_range(begin, end, value) will return an empty range if equal values cannot
be found. But the range is not necessarily [end, end). It may be some other value n,
such that the empty range is [n, n). Check to see if the returned range is empty in
findSampleContainingPresentationTime() and its reverse version, and if so, explicitly
return presentationEnd() or reversePresentationEnd() respectively.

Drive-by fix: make the comparator functions take const& arguments to minimize object
creation.

  • Modules/mediasource/SampleMap.cpp:

(WebCore::SampleIsLessThanMediaTimeComparator::operator()):
(WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):
(WebCore::SampleMap::findSampleContainingPresentationTime):
(WebCore::SampleMap::reverseFindSampleContainingPresentationTime):

8:39 AM Changeset in webkit [168098] by matthew_hanson@apple.com
  • 4 edits in branches/safari-537.76-branch

Merge r167569 (committing on behalf of Dana Burkart.)

8:34 AM Changeset in webkit [168097] by commit-queue@webkit.org
  • 128 edits
    20 adds in trunk/LayoutTests

[GTK] Unreviewed GTK gardening.
Rebaseline affected tests by the new multi-column mode that was
enabled on r168046, and later modified on r168076 and r168088.

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-01

  • platform/gtk/TestExpectations: Include two new flaky tests after

the new multi-colum mode and remove expectations for the ones that
now pass.

  • platform/gtk/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/gtk/fast/block/float/float-not-removed-from-next-sibling4-expected.png:
  • platform/gtk/fast/block/float/float-not-removed-from-next-sibling4-expected.txt:
  • platform/gtk/fast/borders/border-antialiasing-expected.txt:
  • platform/gtk/fast/line-grid/line-grid-inside-columns-expected.txt:
  • platform/gtk/fast/line-grid/line-grid-into-columns-expected.txt:
  • platform/gtk/fast/multicol/block-axis-horizontal-bt-expected.txt:
  • platform/gtk/fast/multicol/block-axis-horizontal-tb-expected.txt:
  • platform/gtk/fast/multicol/block-axis-vertical-lr-expected.txt:
  • platform/gtk/fast/multicol/block-axis-vertical-rl-expected.txt:
  • platform/gtk/fast/multicol/border-padding-pagination-expected.png:
  • platform/gtk/fast/multicol/border-padding-pagination-expected.txt:
  • platform/gtk/fast/multicol/client-rects-expected.png:
  • platform/gtk/fast/multicol/client-rects-expected.txt:
  • platform/gtk/fast/multicol/client-rects-spanners-complex-expected.txt: Added.
  • platform/gtk/fast/multicol/client-rects-spanners-expected.txt: Added.
  • platform/gtk/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/column-count-with-rules-expected.txt:
  • platform/gtk/fast/multicol/column-rules-expected.png:
  • platform/gtk/fast/multicol/column-rules-expected.txt:
  • platform/gtk/fast/multicol/column-rules-stacking-expected.png:
  • platform/gtk/fast/multicol/column-rules-stacking-expected.txt:
  • platform/gtk/fast/multicol/columns-shorthand-parsing-expected.txt:
  • platform/gtk/fast/multicol/float-avoidance-expected.txt:
  • platform/gtk/fast/multicol/float-multicol-expected.png:
  • platform/gtk/fast/multicol/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-empty-lines-expected.txt:
  • platform/gtk/fast/multicol/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/layers-in-multicol-expected.txt:
  • platform/gtk/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/gtk/fast/multicol/margin-collapse-expected.txt:
  • platform/gtk/fast/multicol/max-height-columns-block-expected.png:
  • platform/gtk/fast/multicol/max-height-columns-block-expected.txt:
  • platform/gtk/fast/multicol/nested-columns-expected.png:
  • platform/gtk/fast/multicol/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.png: Added.
  • platform/gtk/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/gtk/fast/multicol/overflow-across-columns-expected.txt:
  • platform/gtk/fast/multicol/overflow-across-columns-percent-height-expected.png:
  • platform/gtk/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/gtk/fast/multicol/overflow-unsplittable-expected.png:
  • platform/gtk/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/gtk/fast/multicol/paginate-block-replaced-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-bt-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-lr-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-rl-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/BottomToTop-tb-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-bt-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/LeftToRight-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-lr-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/LeftToRight-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-rl-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/LeftToRight-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/LeftToRight-tb-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/LeftToRight-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-bt-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-lr-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-rl-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/RightToLeft-tb-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-bt-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/TopToBottom-bt-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-lr-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/TopToBottom-lr-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-rl-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/TopToBottom-rl-expected.txt:
  • platform/gtk/fast/multicol/pagination/TopToBottom-tb-expected.png: Added.
  • platform/gtk/fast/multicol/pagination/TopToBottom-tb-expected.txt:
  • platform/gtk/fast/multicol/positioned-split-expected.txt:
  • platform/gtk/fast/multicol/positive-leading-expected.png:
  • platform/gtk/fast/multicol/positive-leading-expected.txt:
  • platform/gtk/fast/multicol/scrolling-overflow-expected.txt:
  • platform/gtk/fast/multicol/shadow-breaking-expected.png:
  • platform/gtk/fast/multicol/shadow-breaking-expected.txt:
  • platform/gtk/fast/multicol/shrink-to-column-height-for-pagination-expected.png: Added.
  • platform/gtk/fast/multicol/shrink-to-column-height-for-pagination-expected.txt:
  • platform/gtk/fast/multicol/single-line-expected.txt:
  • platform/gtk/fast/multicol/span/anonymous-before-child-parent-crash-expected.png:
  • platform/gtk/fast/multicol/span/anonymous-before-child-parent-crash-expected.txt:
  • platform/gtk/fast/multicol/span/anonymous-split-block-crash-expected.png:
  • platform/gtk/fast/multicol/span/anonymous-split-block-crash-expected.txt:
  • platform/gtk/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/gtk/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.png:
  • platform/gtk/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
  • platform/gtk/fast/multicol/span/clone-flexbox-expected.txt:
  • platform/gtk/fast/multicol/span/clone-summary-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.png:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-expected.png:
  • platform/gtk/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/gtk/fast/multicol/span/span-as-nested-inline-block-child-expected.txt:
  • platform/gtk/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/gtk/fast/multicol/table-margin-collapse-expected.txt:
  • platform/gtk/fast/multicol/table-vertical-align-expected.txt:
  • platform/gtk/fast/multicol/unsplittable-inline-block-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/border-padding-pagination-expected.png:
  • platform/gtk/fast/multicol/vertical-lr/border-padding-pagination-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/column-count-with-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/column-rules-expected.png:
  • platform/gtk/fast/multicol/vertical-lr/column-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-avoidance-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/nested-columns-expected.png:
  • platform/gtk/fast/multicol/vertical-lr/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/vertical-lr/unsplittable-inline-block-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/border-padding-pagination-expected.png:
  • platform/gtk/fast/multicol/vertical-rl/border-padding-pagination-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/column-count-with-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/column-rules-expected.png:
  • platform/gtk/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-avoidance-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/float-paginate-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/nested-columns-expected.png:
  • platform/gtk/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/rule-style-expected.txt:
  • platform/gtk/fast/multicol/vertical-rl/unsplittable-inline-block-expected.txt:
  • platform/gtk/fast/overflow/paged-x-div-expected.txt:
  • platform/gtk/fast/overflow/paged-x-div-with-column-gap-expected.txt:
  • platform/gtk/fast/overflow/paged-x-on-root-expected.txt:
  • platform/gtk/fast/overflow/paged-x-with-column-gap-expected.txt:
  • platform/gtk/fast/overflow/paged-y-div-expected.txt:
  • platform/gtk/fast/overflow/paged-y-on-root-expected.txt:
  • platform/gtk/fast/repaint/multicol-repaint-expected.png:
  • platform/gtk/fast/repaint/multicol-repaint-expected.txt:
8:27 AM Changeset in webkit [168096] by matthew_hanson@apple.com
  • 6 edits
    2 copies in branches/safari-537.76-branch

Merge r166650.

6:31 AM Changeset in webkit [168095] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Subpixel rendering: Inline text selection painting should not snap to integral CSS pixel position.
https://bugs.webkit.org/show_bug.cgi?id=132164

Reviewed by Darin Adler.

Inline text selection painting now snaps to device pixels. It uses the same rounding logic as
other painting functions.

Source/WebCore:
Test: fast/inline/hidpi-select-inline-on-subpixel-position.html

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::paintSelection):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintSelection):
(WebCore::alignSelectionRectToDevicePixels): Deleted.

  • rendering/InlineTextBox.h:

LayoutTests:

  • fast/inline/hidpi-select-inline-on-subpixel-position-expected.html: Added.
  • fast/inline/hidpi-select-inline-on-subpixel-position.html: Added.
5:42 AM Changeset in webkit [168094] by ryuan.choi@samsung.com
  • 9 edits in trunk/Source

[EFL] There are many warnings with software backend
https://bugs.webkit.org/show_bug.cgi?id=132422

Reviewed by Gyuyoung Kim.

Source/WebCore:
ecore_evas_gl_x11_window_get should be called when only engine is opengl_x11.

This patch refactors not to call unnecessary API by checking engine type.
In addition, removed unnecessary isUsingEcoreX().

  • platform/efl/EflScreenUtilities.cpp:

(WebCore::applyFallbackCursor):
(WebCore::getEcoreXWindow):
(WebCore::isUsingEcoreX): Deleted.

  • platform/efl/EflScreenUtilities.h:

Source/WebKit/efl:

  • ewk/ewk_view.cpp:

(_ewk_view_priv_new):
(ewk_view_cursor_set):

Source/WebKit2:

  • UIProcess/API/efl/EwkView.cpp:

(EwkView::updateCursor):
(EwkView::transformToScreen):

Source/WTF:

  • wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef
5:09 AM WebKitGTK/KeepingTheTreeGreen edited by clopez@igalia.com
(diff)
2:57 AM Changeset in webkit [168093] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

<rdar://problem/16780403> REGRESSION: Plugin tests failing on Mac/WebKit1.

  • WebKit.xcodeproj/project.pbxproj: Keep the WebKitPluginHost.app symlink in

WebKit.framework for now.

1:33 AM Changeset in webkit [168092] by cabanier@adobe.com
  • 6 edits in trunk

Calling createPattern with a broken image must throw an invalidstate error
https://bugs.webkit.org/show_bug.cgi?id=132407

Reviewed by Dirk Schulze.

Source/WebCore:
Per the WebIDL spec, passing non-finite parameter to a method that
takes doubles, should generate a type error.

Tests:

  • canvas/philip/tests/2d.imageData.create2.nonfinite.html:
  • fast/canvas/canvas-2d-imageData-create-nonfinite.html:
  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::createImageData):

LayoutTests:

  • canvas/philip/tests/2d.imageData.create2.nonfinite.html:
  • fast/canvas/canvas-2d-imageData-create-nonfinite-expected.txt:
  • fast/canvas/resources/canvas-2d-imageData-create-nonfinite.js:
12:37 AM Changeset in webkit [168091] by matthew_hanson@apple.com
  • 7 edits
    4 deletes in tags/Safari-538.33

Rollout r167889.

12:17 AM Changeset in webkit [168090] by akling@apple.com
  • 2 edits in trunk/LayoutTests

Skip fast/multicol/fixed-stack.html
<https://webkit.org/b/132421>

12:05 AM Changeset in webkit [168089] by matthew_hanson@apple.com
  • 28 edits
    1 copy in tags/Safari-538.33/Source

Merge r168085.

Apr 30, 2014:

11:44 PM Changeset in webkit [168088] by hyatt@apple.com
  • 5 edits in trunk

REGRESSION (r168046): [New Multicolumn] LeftToRight-rl.html (and all the other reversed/block-axis pagination tests) fail
https://bugs.webkit.org/show_bug.cgi?id=132419

Reviewed by Andreas Kling.

Source/WebCore:

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
Don't flip here. The old code needed to do that, but the new code doesn't.

LayoutTests:

  • platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png:
11:38 PM Changeset in webkit [168087] by matthew_hanson@apple.com
  • 5 edits in trunk/Source

Versioning.

11:04 PM Changeset in webkit [168086] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-538.33

New Tag.

10:49 PM Changeset in webkit [168085] by ap@apple.com
  • 28 edits
    1 copy in trunk/Source

Roll out fix for https://bugs.webkit.org/show_bug.cgi?id=131637:
Clean up unnecessary methods in the BackForwardClient interface

It broke a regression test and an API test.

Source/WebCore:

  • WebCore.exp.in:
  • history/BackForwardClient.h:

(WebCore::BackForwardClient::backItem):
(WebCore::BackForwardClient::currentItem):
(WebCore::BackForwardClient::forwardItem):

  • history/BackForwardController.cpp:

(WebCore::BackForwardController::BackForwardController):

  • history/BackForwardController.h:

(WebCore::BackForwardController::client):

  • history/BackForwardList.cpp:

(WebCore::BackForwardList::BackForwardList):
(WebCore::BackForwardList::close):

  • history/BackForwardList.h:

(WebCore::BackForwardList::create):
(WebCore::BackForwardList::page):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::PageClients::PageClients):

  • page/Page.h:

Source/WebKit/efl:

  • ewk/ewk_history.cpp:

(ewk_history_clear):
(ewk_history_new):
(ewk_history_free):

  • ewk/ewk_view.cpp:

(_ewk_view_priv_new):
(ewk_view_history_enable_get):
(ewk_view_history_enable_set):
(ewk_view_history_get):

Source/WebKit/mac:

  • History/WebBackForwardList.mm:

(-[WebBackForwardList initWithBackForwardList:]):
(-[WebBackForwardList init]):
(-[WebBackForwardList dealloc]):
(-[WebBackForwardList finalize]):
(-[WebBackForwardList setPageCacheSize:]):
(-[WebBackForwardList pageCacheSize]):

  • History/WebBackForwardListInternal.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::canCachePage):

  • WebView/WebFrameView.mm:

(-[WebFrameView keyDown:keyDown:]):

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView initWithCoder:]):
(-[WebView encodeWithCoder:]):
(-[WebView backForwardList]):
(-[WebView setMaintainsBackForwardList:]):

Source/WebKit/win:

  • WebBackForwardList.cpp:

(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::~WebBackForwardList):
(WebBackForwardList::createInstance):

  • WebBackForwardList.h:
  • WebView.cpp:

(WebView::backForwardList):
(WebView::canGoBack):
(WebView::canGoForward):
(WebView::loadBackForwardListFromOtherView):

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:

(WebKit::InjectedBundleBackForwardList::clear):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
(WebKit::WebBackForwardListProxy::addItem):
(WebKit::WebBackForwardListProxy::goToItem):
(WebKit::WebBackForwardListProxy::itemAtIndex):
(WebKit::WebBackForwardListProxy::backListCount):
(WebKit::WebBackForwardListProxy::forwardListCount):
(WebKit::WebBackForwardListProxy::close):
(WebKit::WebBackForwardListProxy::clear):

  • WebProcess/WebPage/WebBackForwardListProxy.h:

(WebKit::WebBackForwardListProxy::create):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Copied from Source/WebKit2/WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm.
9:48 PM Changeset in webkit [168084] by beidson@apple.com
  • 4 edits in trunk/Source/WebKit2

Only reveal selection service UI after a short delay.
<rdar://problem/16777346> and https://bugs.webkit.org/show_bug.cgi?id=132418

Reviewed by Sam Weinig.

  • WebProcess/WebPage/SelectionOverlayController.cpp:

(WebKit::SelectionOverlayController::SelectionOverlayController):
(WebKit::SelectionOverlayController::destroyOverlay): Also stop the hover timer.
(WebKit::SelectionOverlayController::selectionRectsDidChange): Mark the highlight as dirty.
(WebKit::SelectionOverlayController::hoverTimerFired): If the mouse is still over the highlight,

set the visible flag and setNeedsDisplay().

  • WebProcess/WebPage/SelectionOverlayController.h:
  • WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:

(WebKit::SelectionOverlayController::drawRect): Recreate the highlight if it exists but

is marked as dirty. After doing that, possibly reset the hover timer.
Also, only performing the actual drawing if the visible flag is set.

(WebKit::SelectionOverlayController::mouseEvent): If the mouse moves on or off the highlight,

start or stop the hover timer accordingly.

(WebKit::SelectionOverlayController::mouseHoverStateChanged): Handle starting/stopping the

hover timer.

(WebKit::SelectionOverlayController::clearHighlight): Deleted.

9:20 PM Changeset in webkit [168083] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Kernel sysctl interface hw.activecpu don't exists on Linux.
https://bugs.webkit.org/show_bug.cgi?id=132286

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-04-30
Reviewed by Filip Pizlo.

  • Scripts/run-jsc-stress-tests: Redirect stderr to null when

calling sysctl over hw.activecpu

7:46 PM Changeset in webkit [168082] by Simon Fraser
  • 4 edits
    2 deletes in trunk/Source/WebCore

More iOS build fixing. MediaPlayerPrivateIOS is defunct and can be removed.
Fix some build errors in other media files.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/MediaPlayer.cpp:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/ios/MediaPlayerPrivateIOS.h: Removed.
  • platform/graphics/ios/MediaPlayerPrivateIOS.mm: Removed.
7:46 PM Changeset in webkit [168081] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix the iOS build, which no longer needs these calls
to enter/exitFullscreen.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::parseAttribute):

7:44 PM Changeset in webkit [168080] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS][WK2] Animated resize incorrectly assumes the layout width is the same as the view width
https://bugs.webkit.org/show_bug.cgi?id=132373
<rdar://problem/16762178>

Reviewed by Tim Horton.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _beginAnimatedResizeWithUpdates:]):
Fix a couple of bugs when the left/right obscured insets change, and/or when the minimum layout size
is narrower than the view itself.

In order:
-We need to perfom and update if the insets change since the unobscuredRect will also change.
-The min/max zoom scale should be based on the minimum layout size, that's the definition of minimum layout size

in scrollview coordinate :)

-The old web view width in content coordinate could be narrower than the old view bounds if there are left or right

insets.

7:19 PM Changeset in webkit [168079] by Simon Fraser
  • 50 edits in trunk/Source

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
https://bugs.webkit.org/show_bug.cgi?id=132396

Reviewed by Eric Carlson.

Source/JavaScriptCore:

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

  • Configurations/FeatureDefines.xcconfig:
  • WebCore.exp.in:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::canShareStyleWithElement):

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • editing/TextIterator.cpp:

(WebCore::isRendererReplacedElement):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::parseAttribute):

  • html/HTMLMediaElement.h:

(WebCore::HTMLMediaElement::setNeedWidgetUpdate): Deleted.

  • html/HTMLMediaSession.cpp:

(WebCore::HTMLMediaSession::showPlaybackTargetPicker):
(WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
(WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):

  • html/HTMLVideoElement.cpp:

(WebCore::HTMLVideoElement::createElementRenderer):
(WebCore::HTMLVideoElement::didAttachRenderers):
(WebCore::HTMLVideoElement::parseAttribute):
(WebCore::HTMLVideoElement::setDisplayMode):

  • html/shadow/MediaControlElements.cpp:

(WebCore::MediaControlTextTrackContainerElement::updateSizes):

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.

  • loader/EmptyClients.h:
  • loader/FrameLoaderClient.h:
  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadPlugin):
(WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): Deleted.

  • loader/SubframeLoader.h:
  • page/FrameView.cpp:

(WebCore::FrameView::updateEmbeddedObject):

  • page/Settings.cpp:

(WebCore::Settings::setVideoPluginProxyEnabled): Deleted.

  • page/Settings.h:

(WebCore::Settings::isVideoPluginProxyEnabled): Deleted.

  • platform/graphics/GraphicsLayerClient.h:

(WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Deleted.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::installedMediaEngines):
(WebCore::MediaPlayer::MediaPlayer):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::NullMediaPlayerPrivate::deliverNotification): Deleted.
(WebCore::NullMediaPlayerPrivate::setMediaPlayerProxy): Deleted.
(WebCore::NullMediaPlayerPrivate::setControls): Deleted.
(WebCore::MediaPlayer::deliverNotification): Deleted.
(WebCore::MediaPlayer::setMediaPlayerProxy): Deleted.
(WebCore::MediaPlayer::setControls): Deleted.

  • platform/graphics/MediaPlayer.h:
  • platform/graphics/MediaPlayerPrivate.h:

(WebCore::MediaPlayerPrivateInterface::deliverNotification): Deleted.
(WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Deleted.
(WebCore::MediaPlayerPrivateInterface::setControls): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::updateGeometry):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Deleted.

  • platform/graphics/ca/GraphicsLayerCA.h:
  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::canHaveChildren):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): Deleted.

  • rendering/RenderLayerBacking.h:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForVideo):

Source/WebKit/mac:

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

  • Configurations/FeatureDefines.xcconfig:
  • Plugins/WebPluginContainerPrivate.h:
  • Plugins/WebPluginController.h:
  • Plugins/WebPluginController.mm:

(-[WebPluginController dealloc]):
(-[WebPluginController plugInsAreRunning]):
(-[WebPluginController stopAllPlugins]):
(-[WebPluginController stopPluginsForPageCache]):
(-[WebPluginController restorePluginsFromCache]):
(-[WebPluginController addPlugin:]):
(-[WebPluginController destroyPlugin:]):
(-[WebPluginController destroyAllPlugins]):
(-[NSView isMediaPlugInProxyView]): Deleted.
(-[NSView setIsMediaPlugInProxyView:]): Deleted.
(-[WebPluginController mediaPlugInProxyViewCreated:]): Deleted.
(+[WebPluginController pluginViewHidden:]): Deleted.
(mediaProxyClient): Deleted.
(-[WebPluginController _webPluginContainerSetMediaPlayerProxy:forElement:]): Deleted.
(-[WebPluginController _webPluginContainerPostMediaPlayerNotification:forElement:]): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(pluginView):

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):
(-[WebView _videoProxyPluginForMIMEType:]): Deleted.

  • WebView/WebViewInternal.h:

Source/WebKit2:

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

  • Configurations/FeatureDefines.xcconfig:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.
(WebKit::WebFrameLoaderClient::hideMediaPlayerProxyPlugin): Deleted.
(WebKit::WebFrameLoaderClient::showMediaPlayerProxyPlugin): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

Source/WTF:

Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

  • wtf/FeatureDefines.h:
7:15 PM Changeset in webkit [168078] by Simon Fraser
  • 4 edits
    3 adds in trunk

[iOS WK2] Some accerated overflow-scroll doesn't scroll correctly
https://bugs.webkit.org/show_bug.cgi?id=132375

Reviewed by Tim Horton.

Source/WebCore:
We set the size of the scrolling layer (which becomes the bounds of
the UIScrollView) to a non-pixel-snapped padding box size, but the
size of the contents layer is an integral-snapped scroll size.
This would result in a fractional difference between the two, which
makes us thing that the element is scrollable when it really is not.

Fix by setting the size of the scroll layer to pixel snapped client size,
which is what we also use for scrollability computation.

Added some FIXMEs in code that requires pixel snapping.

Also use #if PLATFORM(IOS)/#else to bracket some code that never runs on iOS
but tries to do something similar to iOS-only code.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

LayoutTests:
New test that dumps compositing layers on iOS so we can see the sizes of the
scroll layers that get created.

  • compositing/overflow/subpixel-overflow-expected.txt: Added.
  • compositing/overflow/subpixel-overflow.html: Added.
  • platform/ios-sim/compositing/overflow/subpixel-overflow-expected.txt: Added.
  • platform/mac/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:

This is a progression; the old code failed to take the scrollbar width into
account, and the new code does.

7:15 PM Changeset in webkit [168077] by Simon Fraser
  • 13 edits in trunk/LayoutTests

Rebaseline compositing/overflow tests for iOS.

  • platform/ios-sim/compositing/overflow/composited-scrolling-creates-a-stacking-container-expected.txt:
  • platform/ios-sim/compositing/overflow/composited-scrolling-paint-phases-expected.txt:
  • platform/ios-sim/compositing/overflow/content-gains-scrollbars-expected.txt:
  • platform/ios-sim/compositing/overflow/fixed-position-ancestor-clip-expected.txt:
  • platform/ios-sim/compositing/overflow/overflow-scroll-expected.txt:
  • platform/ios-sim/compositing/overflow/overflow-scrollbar-layers-expected.txt:
  • platform/ios-sim/compositing/overflow/remove-overflow-crash2-expected.txt:
  • platform/ios-sim/compositing/overflow/scrollbar-painting-expected.txt:
  • platform/ios-sim/compositing/overflow/scrolling-content-clip-to-viewport-expected.txt:
  • platform/ios-sim/compositing/overflow/scrolling-without-painting-expected.txt:
  • platform/ios-sim/compositing/overflow/textarea-scroll-touch-expected.txt:
  • platform/ios-sim/compositing/overflow/updating-scrolling-content-expected.txt:
7:12 PM Changeset in webkit [168076] by hyatt@apple.com
  • 35 edits
    2 adds in trunk

REGRESSION (r168046): [New Multicolumn] Painting order is wrong for columns and fixed positioned elements
https://bugs.webkit.org/show_bug.cgi?id=132377

Reviewed by Simon Fraser.

Source/WebCore:
Added fast/multicol/fixed-stack.html

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::shouldBeSelfPaintingLayer):
(WebCore::RenderLayer::shouldBeNormalFlowOnly):
Change the flow thread layer for multicolumn layout to be normal flow only and to
stay self-painting. This has the effect of keeping the flow thread layer grouped
with the enclosing multicolumn layer, and this keeps the paint order correct when
compositing kicks in (or when something would otherwise try to get between the
two layers).

LayoutTests:

  • compositing/columns/composited-nested-columns-expected.txt:
  • fast/multicol/fixed-stack-expected.html: Added.
  • fast/multicol/fixed-stack.html: Added.
  • fast/multicol/flipped-blocks-border-after-expected.txt:
  • fast/multicol/progression-reverse-expected.txt:
  • fast/multicol/single-line-expected.txt:
  • fast/multicol/vertical-lr/rules-with-border-before-expected.txt:
  • fast/multicol/vertical-rl/rule-style-expected.txt:
  • fast/multicol/vertical-rl/rules-with-border-before-expected.txt:
  • platform/mac/fast/multicol/client-rects-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-expected.txt:
  • platform/mac/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/float-paginate-complex-expected.txt:
  • platform/mac/fast/multicol/layers-in-multicol-expected.txt:
  • platform/mac/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/mac/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/mac/fast/multicol/table-vertical-align-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
6:47 PM Changeset in webkit [168075] by eric.carlson@apple.com
  • 14 edits in trunk/Source

[iOS] do not pause video when entering background while playing to external device
https://bugs.webkit.org/show_bug.cgi?id=132374

Reviewed by Jer Noble.

Source/WebCore:

  • WebCore.exp.in: Update beginInterruption signature.
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canOverrideBackgroundPlaybackRestriction): New, return true when

playing to external device.

  • html/HTMLMediaElement.h:
  • platform/audio/MediaSession.cpp:

(WebCore::MediaSession::beginInterruption): Add interruption type to beginInterruption.

  • platform/audio/MediaSession.h:
  • platform/audio/MediaSessionManager.cpp:

(WebCore::MediaSessionManager::beginInterruption): Ditto.
(WebCore::MediaSessionManager::applicationWillEnterBackground): Ditto.
(WebCore::MediaSessionManager::systemWillSleep): Ditto.

  • platform/audio/MediaSessionManager.h:
  • platform/audio/ios/AudioDestinationIOS.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(-[WebMediaSessionHelper interruption:]): Ditto.

  • platform/audio/mac/AudioDestinationMac.h: Make most methods private. Add

canOverrideBackgroundPlaybackRestriction. Add missing overrides.

  • testing/Internals.cpp:

(WebCore::Internals::beginMediaSessionInterruption): Pass interruption type.

Source/webkit:

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
6:18 PM Changeset in webkit [168074] by beidson@apple.com
  • 12 edits
    2 adds in trunk/Source/WebKit2

If there are no services available, do not show the service controls UI
<rdar://problem/16735665> and https://bugs.webkit.org/show_bug.cgi?id=132410

Reviewed by Tim Horton.

Add a lightweight class that lazily polls the appropriate APIs for whether or not appropriate services
are installed and usable on the system:

  • UIProcess/mac/ServicesController.h: Added.

(WebKit::ServicesController::imageServicesExist):
(WebKit::ServicesController::selectionServicesExist):

  • UIProcess/mac/ServicesController.mm: Added.

(WebKit::ServicesController::shared):
(WebKit::ServicesController::ServicesController):
(WebKit::ServicesController::refreshExistingServices):
(WebKit::ServicesController::refreshExistingServicesTimerFired):

Add "image services exist" and "selection services exist" parameters:

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):
(WebKit::WebContext::refreshExistingServices): Called when the context menu proxy realizes that

services no longer exist.

  • UIProcess/WebContext.h:

Each WebProcess hangs on to its own copy of the flags for whether or not the services exist:

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess):
(WebKit::WebProcess::initializeWebProcess):
(WebKit::WebProcess::setEnabledServices):

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::imageServicesExist):
(WebKit::WebProcess::selectionServicesExist):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu): If the menu creation failed, the set of services

on the system must have changed. So ask the WebContext to refresh them.

  • WebProcess/WebPage/SelectionOverlayController.cpp:

(WebKit::SelectionOverlayController::selectionRectsDidChange): If services don't exist, don't create an

overlay (and destroy any existing overlay!)

  • WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:

(WebKit::SelectionOverlayController::drawRect): If services don't exist, don't draw, and destroy the overlay.

  • WebProcess/WebProcess.messages.in:
  • WebKit2.xcodeproj/project.pbxproj:
6:04 PM Changeset in webkit [168073] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Try yet again to fix the build.

  • WebKit.xcodeproj/project.pbxproj:
5:53 PM Changeset in webkit [168072] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Another build fix attempt.

  • WebKit.xcodeproj/project.pbxproj:
5:44 PM Changeset in webkit [168071] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix the iOS build.

  • WebKit.xcodeproj/project.pbxproj:
5:27 PM Changeset in webkit [168070] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

https://bugs.webkit.org/show_bug.cgi?id=132415
Fix snapshotting on WebKit2

Reviewed by Geoff Garen

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

  • Use a VisibilityToken to keep the process runnable.
5:23 PM Changeset in webkit [168069] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix PageVisibility on iOS
https://bugs.webkit.org/show_bug.cgi?id=132393

Rubber stamped by Tim Horton

  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewVisibleOrOccluded):
(WebKit::PageClientImpl::isVisuallyIdle):

  • m_contentView -> m_webView
5:17 PM Changeset in webkit [168068] by matthew_hanson@apple.com
  • 1 edit
    2 copies in branches/safari-537.76-branch/LayoutTests

Merge r166645.

5:12 PM Changeset in webkit [168067] by Manuel Rego Casasnovas
  • 7 edits in trunk/Source/WebCore

Unreviewed, rolling out r167879 and r167942.
https://bugs.webkit.org/show_bug.cgi?id=132408

OrderIterator changes caused regressions in flexbox (Requested
by rego on #webkit).

We're keeping the new layout test introduced in r167942
(fast/flexbox/order-iterator-crash.html) to avoid similar
regressions in the future.

Reverted changesets:

"OrderIterator refactoring to avoid extra loops"
https://bugs.webkit.org/show_bug.cgi?id=119061
http://trac.webkit.org/changeset/167879

"REGRESSION (r167879): Heap-use-after-free in
WebCore::RenderFlexibleBox"
https://bugs.webkit.org/show_bug.cgi?id=132337
http://trac.webkit.org/changeset/167942

5:08 PM Changeset in webkit [168066] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

Cursor gets thinner on empty lines.
https://bugs.webkit.org/show_bug.cgi?id=132411
<rdar://problem/15994556>

Reviewed by Benjamin Poulain.

RenderLineBreak::localCaretRect should not define
locally the constant caretWidth, but use the one from
RenderObject.h which knows about the differences between
iOS and the other platforms.

  • rendering/RenderLineBreak.cpp:

(WebCore::RenderLineBreak::localCaretRect):

4:58 PM Changeset in webkit [168065] by Simon Fraser
  • 3 edits in trunk

Make sure the "All" targets build WebKitLegacy, rather than WebKit.

Reviewed by Dan Bernstein/Anders Carlsson.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
4:48 PM Changeset in webkit [168064] by Lucas Forschler
  • 1 edit in branches/safari-537.76-branch/Source/WebCore/html/HTMLSelectElement.cpp

Merge 2nd have of <rdar://problem/16701836>.

4:45 PM Changeset in webkit [168063] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] Add a SPI to exclude the extended background from some areas of WKWebView
https://bugs.webkit.org/show_bug.cgi?id=132406
<rdar://problem/16762197>

Reviewed by Beth Dakin.

Move the extended background to a separate layer bellow the UIScrollView.

The geometry of that layer is then changed based on ExtendedBackgroundExclusionInsets
as needed.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):
(-[WKWebView _updateScrollViewBackground]):
(-[WKWebView _frameOrBoundsChanged]):
(-[WKWebView _setExtendedBackgroundExclusionInsets:]):
(-[WKWebView _extendedBackgroundExclusionInsets]):
(-[WKWebView pageExtendedBackgroundColor]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
4:32 PM Changeset in webkit [168062] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Another build fix attempt.

  • WebKit.xcodeproj/project.pbxproj:

Remove headers if it seems like the WKWebViewPrivate header imports itself.

4:21 PM Changeset in webkit [168061] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Another build fix.

  • WebKit.xcodeproj/project.pbxproj:

Remove WK headers from WebKit.framework as well when WebKitLegacy WK headers are encountered.

4:17 PM Changeset in webkit [168060] by vjaquez@igalia.com
  • 6 edits in trunk/Source/WebCore

[GStreamer] Use GstMetaVideo
https://bugs.webkit.org/show_bug.cgi?id=132247

Reviewed by Philippe Normand.

In WebKitVideoSink we announce the usage of GstMetaVideo, but we do
not use it when handling the video frames. This might break
some decoders and filters that rely on buffer's meta, rather
that in the caps structures.

This patch enables the use of GstMetaVideo through the GstVideoFrame
API. And it is used everywhere the buffer mapping is required.

Also this patch changes to nullptr where zeros were used.

Also, compile conditionally the video buffer conversion when it is
ARGB/BGRA, since it is only required for the Cairo backend.

No new tests, already covered by current tests.

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::getVideoSizeAndFormatFromCaps): init the GstVideoInfo before
used and remove caps fixate check since it is done by
gst_video_info_from_caps().

  • platform/graphics/gstreamer/ImageGStreamer.h:
  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp:

(ImageGStreamer::ImageGStreamer): use GstVideoFrame for buffer mapping
and unmapping.
(ImageGStreamer::~ImageGStreamer): ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): ditto.
(WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
return nullptr if failed.

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkRender): rely on GstVideoInfo rather than on the
caps. Use GstVideoFrame for buffer mapping and unmapping. Add guards
for buffer transformation, since it's only used by Cairo.
(webkitVideoSinkDispose): remove glib version guards.
(webkitVideoSinkSetCaps): update the value of the private
GstVideoInfo.

4:16 PM Changeset in webkit [168059] by vjaquez@igalia.com
  • 5 edits in trunk/Source

[GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
https://bugs.webkit.org/show_bug.cgi?id=132390

Reviewed by Philippe Normand.

Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
remove, in GTK+ and GST, the existing glib version guards.

Source/WebCore:
No new tests, already covered by current tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkitVideoSinkDispose):
(webkitVideoSinkFinalize): Deleted.

Source/WTF:
This code was rollback from r149879 because Qt MIPS used it. But since
Qt is gone, it is safe to remove now.

  • wtf/gobject/GRefPtr.cpp:

(WTF::refGPtr): Deleted.
(WTF::derefGPtr): Deleted.

4:07 PM Changeset in webkit [168058] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix the build.

  • WebKit.xcodeproj/project.pbxproj:

Remove old WK forwarding headers from WebKitLegacy.

4:00 PM Changeset in webkit [168057] by Simon Fraser
  • 3 edits in trunk

Let Xcode have its way with the WebKit workspace.

  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source (target WebProcess).xcscheme:
  • WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme:
4:00 PM Changeset in webkit [168056] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix build error when building for iOS simulator.

  • UIProcess/ios/ProcessAssertion.mm:
3:57 PM Changeset in webkit [168055] by achristensen@apple.com
  • 208 edits
    44 adds
    3 deletes in trunk/Source

Updated ANGLE.
https://bugs.webkit.org/show_bug.cgi?id=132367
<rdar://problem/16211451>

Reviewed by Dean Jackson.

Source/ThirdParty/ANGLE:

  • ANGLE.plist:

Updated and xml encoded.

  • ANGLE.xcodeproj/project.pbxproj:

Added needed new source files.

  • changes.diff:

Added to keep track of differences between WebKit's copy of ANGLE and the master repository.

Updated ANGLE source files to e7a453a5bd76705ccb151117fa844846d4aa90af. Long list of changes omitted.

Source/WebCore:

  • CMakeLists.txt

Fixed ANGLE compiling with the update.

  • platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:

(WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
Removed SH_MAP_LONG_VARIABLE_NAMES which is no longer defined in ANGLE.
See https://chromium.googlesource.com/angle/angle/+/3cdfcce86b38ef31a0afd71855887193a7924468

  • platform/graphics/opengl/Extensions3DOpenGLES.h:
  • platform/graphics/opengl/Extensions3DOpenGLES.cpp:

Updated type names from ANGLE.

3:52 PM Changeset in webkit [168054] by ap@apple.com
  • 16 edits in trunk/Source

Move Blob.slice() implementation into BlobRegistryImpl
https://bugs.webkit.org/show_bug.cgi?id=132402

Reviewed by Anders Carlsson.

Source/WebCore:
Part or centralizing the responsibility for file size tracking.

  • fileapi/Blob.cpp:

(WebCore::Blob::Blob):
(WebCore::Blob::slice): Deleted.

  • fileapi/Blob.h:

(WebCore::Blob::slice):

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::registerBlobURL):
(WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
(WebCore::registerBlobURLTask): Deleted.
(WebCore::registerBlobURLFromTask): Deleted.

  • fileapi/ThreadableBlobRegistry.h:
  • platform/network/BlobRegistry.h:
  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems):
(WebCore::BlobRegistryImpl::registerBlobURLForSlice):
(WebCore::BlobRegistryImpl::blobSize):

  • platform/network/BlobRegistryImpl.h:

Source/WebKit2:

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::registerBlobURLForSlice):

  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::registerBlobURLForSlice):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:

(WebKit::BlobRegistryProxy::registerBlobURLForSlice):

  • WebProcess/FileAPI/BlobRegistryProxy.h:
3:45 PM Changeset in webkit [168053] by Beth Dakin
  • 3 edits in trunk/Source/WebKit2

Phone number data detection UI is offset for iframes, pages with topContentInset
https://bugs.webkit.org/show_bug.cgi?id=132372
-and corresponding-
<rdar://problem/16651235>

Reviewed by Tim Horton.

Make the overlay an OverlayType::Document, which will keep everything relative to
the main Document’s coordinates.

  • WebProcess/WebPage/TelephoneNumberOverlayController.cpp:

(WebKit::TelephoneNumberOverlayController::createOverlayIfNeeded):

Make frames work by converting to the main document’s coordinate space.

  • WebProcess/WebPage/mac/TelephoneNumberOverlayControllerMac.mm:

(WebKit::TelephoneNumberOverlayController::drawRect):

3:44 PM Changeset in webkit [168052] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed build fix after r168041.

  • WebCore.exp.in: Add missing iOS exports.
3:22 PM Changeset in webkit [168051] by fpizlo@apple.com
  • 7 edits
    1 add in trunk/Source/JavaScriptCore

Argument flush formats should not be presumed to be JSValue since 'this' is weird
https://bugs.webkit.org/show_bug.cgi?id=132404

Reviewed by Michael Saboff.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCurrentBlock): Don't assume that arguments are flushed as JSValue. Use the logic for locals instead.

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile): SetArgument "changes" the format because before this we wouldn't know we had arguments.

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile): Ditto.

  • dfg/DFGValueSource.cpp:

(JSC::DFG::ValueSource::dumpInContext): Make this easier to dump.

  • dfg/DFGValueSource.h:

(JSC::DFG::ValueSource::operator!): Make this easier to dump because Operands<T> uses T::operator!().

  • ftl/FTLOSREntry.cpp:

(JSC::FTL::prepareOSREntry): This had a useful assertion for everything except 'this'.

  • tests/stress/strict-to-this-int.js: Added.

(foo):
(Number.prototype.valueOf):
(test):

3:10 PM Changeset in webkit [168050] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Unnecessary explicit initialization of LayoutUnit from r167985.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
Darin points out that I can just use “/2” instead of “/LayoutUnit(2.0)”.

3:05 PM Changeset in webkit [168049] by Beth Dakin
  • 3 edits in trunk/Source/WebCore

Always-visible scrollbars continuously repaint after non-momentum scrollling
https://bugs.webkit.org/show_bug.cgi?id=132403
-and corresponding-
<rdar://problem/16553878>

Reviewed by Simon Fraser.

No longer universally opt into presentation value mode whenever the scroll
position changes on the scrolling thread. We really only want it for momentum
scrolls, and this will ensure that we always set it to NO once we have set it to
YES.

  • page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:

(WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
(WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

Expose shouldUsePresentationValue.

  • platform/mac/NSScrollerImpDetails.h:
3:03 PM Changeset in webkit [168048] by roger_fong@apple.com
  • 22 edits in trunk/LayoutTests

Enable snapshot tests on mac wk2.
https://bugs.webkit.org/show_bug.cgi?id=131871.
Reviewed by Darin Adler.

  • platform/mac-wk2/TestExpectations:
  • platform/mac-wk2/plugins/snapshotting/autoplay-dominant-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/autoplay-plugin-blocked-by-image-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/autoplay-plugin-blocked-by-image-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/autoplay-similar-to-dominant-after-delay-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/autoplay-similar-to-dominant-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/quicktime-plugin-snapshotted-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/restart-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/set-plugin-size-to-tiny-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/simple-expected.txt:
  • platform/mac-wk2/plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image-expected.txt:
  • plugins/snapshotting/autoplay-dominant.html:
  • plugins/snapshotting/autoplay-plugin-blocked-by-image.html:
  • plugins/snapshotting/autoplay-plugin-mostly-blocked-by-image.html:
  • plugins/snapshotting/autoplay-similar-to-dominant-after-delay.html:
  • plugins/snapshotting/autoplay-similar-to-dominant.html:
  • plugins/snapshotting/quicktime-plugin-snapshotted.html:
  • plugins/snapshotting/restart.html:
  • plugins/snapshotting/set-plugin-size-to-tiny.html:
  • plugins/snapshotting/simple.html:
  • plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html:
3:02 PM Changeset in webkit [168047] by andersca@apple.com
  • 132 edits
    2 copies
    1 move
    1 add
    1 delete in trunk

Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework
https://bugs.webkit.org/show_bug.cgi?id=132399
<rdar://problem/15920046>

Reviewed by Dan Bernstein.

Source/WebCore:
Allow WebKitLegacy to link against WebCore.

  • Configurations/WebCore.xcconfig:

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Add a new build target that builds the legacy WebKit API in WebKitLegacy.framework. This framework
is then re-exported by WebKit.framework, and its headers are copied to WebKit.framework. All the WebKitLegacy
headers are made private, and the MigrateHeadersFromWebKitLegacy.make Makefile will copy all the headers specified
in WEBKIT_PUBLIC_HEADERS to WebKit/Headers.

Source/WebKit/ios:
Import WebKitLegacy headers instead of WebKit headers.

  • DefaultDelegates/WebDefaultFormDelegate.h:
  • DefaultDelegates/WebDefaultFrameLoadDelegate.m:
  • DefaultDelegates/WebDefaultResourceLoadDelegate.m:
  • DefaultDelegates/WebDefaultUIKitDelegate.h:
  • Misc/WebGeolocationProviderIOS.h:
  • Misc/WebNSStringExtrasIPhone.h:
  • WebCoreSupport/WebFrameIOS.h:
  • WebCoreSupport/WebFrameIOS.mm:
  • WebCoreSupport/WebFrameIPhone.h:
  • WebCoreSupport/WebSelectionRect.h:
  • WebCoreSupport/WebVisiblePosition.h:
  • WebView/WebPDFViewIOS.h:
  • WebView/WebPDFViewIOS.mm:
  • WebView/WebPDFViewIPhone.h:
  • WebView/WebPDFViewPlaceholder.h:
  • WebView/WebPDFViewPlaceholder.mm:
  • WebView/WebPlainWhiteView.h:
  • WebView/WebUIKitDelegate.h:

Source/WebKit/mac:

  • Carbon/CarbonUtils.h:
  • Carbon/HIViewAdapter.h:
  • Carbon/HIWebView.h:

Import WebKitLegacy headers instead of WebKit headers.

  • Configurations/WebKit.xcconfig:

Move the definitions needed for building WebKitLegacy.framework to WebKitLegacy.xcconfig and
add the relevant definitions needed for re-exporting WebKitLegacy.framework.

  • Configurations/WebKitLegacy.xcconfig:

Add definitions needed for building the "old" WebKit API as WebKitLegacy.framework.

  • DOM/WebDOMOperations.h:
  • DOM/WebDOMOperations.mm:
  • DOM/WebDOMOperationsInternal.h:
  • DOM/WebDOMOperationsPrivate.h:
  • DefaultDelegates/WebDefaultContextMenuDelegate.h:
  • DefaultDelegates/WebDefaultContextMenuDelegate.mm:
  • DefaultDelegates/WebDefaultEditingDelegate.m:
  • History/WebBackForwardListInternal.h:
  • History/WebBackForwardListPrivate.h:
  • History/WebHistoryItemPrivate.h:
  • History/WebHistoryPrivate.h:
  • History/WebURLsWithTitles.m:

Import WebKitLegacy headers instead of WebKit headers.

  • MigrateHeaders.make:

Update header paths now that all WebKitLegacy headers are private.
Remove migration of WebKit2 headers, that is done by MigrateHeadersFromWebKitLegacy.make now.

  • Misc/WebCoreStatistics.h:
  • Misc/WebDownload.h:
  • Misc/WebDownload.mm:
  • Misc/WebDownloadInternal.h:
  • Misc/WebElementDictionary.mm:
  • Misc/WebIconDatabasePrivate.h:
  • Misc/WebKit.h:
  • Misc/WebKitErrors.m:
  • Misc/WebKitErrorsPrivate.h:
  • Misc/WebKitNSStringExtras.mm:
  • Misc/WebLocalizableStrings.mm:
  • Misc/WebNSDataExtras.m:
  • Misc/WebNSDictionaryExtras.m:
  • Misc/WebNSEventExtras.m:
  • Misc/WebNSFileManagerExtras.mm:
  • Misc/WebNSImageExtras.m:
  • Misc/WebNSPasteboardExtras.mm:
  • Misc/WebNSViewExtras.h:
  • Misc/WebNSViewExtras.m:
  • Panels/WebAuthenticationPanel.m:
  • Panels/WebPanelAuthenticationHandler.m:
  • Plugins/Hosted/HostedNetscapePluginStream.h:
  • Plugins/Hosted/NetscapePluginInstanceProxy.h:
  • Plugins/Hosted/WebKitPluginAgent.defs:
  • Plugins/Hosted/WebKitPluginAgentReply.defs:
  • Plugins/Hosted/WebKitPluginClient.defs:
  • Plugins/Hosted/WebKitPluginHost.defs:
  • Plugins/Hosted/WebKitPluginHostTypes.defs:
  • Plugins/WebBaseNetscapePluginView.mm:
  • Plugins/WebBasePluginPackage.h:
  • Plugins/WebBasePluginPackage.mm:
  • Plugins/WebNetscapeContainerCheckPrivate.h:
  • Plugins/WebNetscapePluginEventHandlerCocoa.h:
  • Plugins/WebNetscapePluginStream.h:
  • Plugins/WebNetscapePluginView.h:
  • Plugins/WebNetscapePluginView.mm:
  • Plugins/WebPlugin.h:
  • Plugins/WebPluginController.h:
  • Plugins/WebPluginDatabase.h:
  • Plugins/WebPluginPackage.h:
  • Plugins/WebPluginPackage.mm:
  • Plugins/WebPluginViewFactory.h:
  • Plugins/WebPluginViewFactoryPrivate.h:
  • Plugins/npapi.mm:
  • Storage/WebDatabaseManagerPrivate.h:
  • WebCoreSupport/WebContextMenuClient.mm:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebCoreSupport/WebFrameNetworkingContext.mm:
  • WebCoreSupport/WebGeolocationClient.mm:
  • WebCoreSupport/WebInspectorClient.mm:
  • WebCoreSupport/WebJavaScriptTextInputPanel.m:
  • WebCoreSupport/WebKeyGenerator.mm:
  • WebInspector/WebInspectorPrivate.h:
  • WebInspector/WebNodeHighlight.h:
  • WebInspector/WebNodeHighlightView.h:

Import WebKitLegacy headers instead of WebKit headers.

  • WebKitLegacy/MigrateHeadersFromWebKitLegacy.make: Added.

New makefile that handles copying WebKitLegacy headers to the WebKit framework, rewriting WebKitLegacy
imports to WebKit imports. (On iOS the WebKit headers just forward to the relevant WebKitLegacy headers).
On OS X, this also handles copying WebKit2 headers to the WebKit framework, rewriting WebKit2 imports to WebKit imports
and getting rid of C SPI imports.

  • WebKitLegacy/MigrateHeadersToLegacy.make: Removed.

This is no longer needed.

  • WebKitLegacy/WebKit.h: Added.

New umbrella header that imports the modern API if available, as well as the legacy API (using WebKit/WebKitLegacy.h).

  • WebKitLegacy/WebKit.m:

This is an empty file so we'll have something to link.

  • WebKitLegacy/WebKitPrivate.h:

New SPI header that imports the private headers of the modern API.

  • WebView/WebDataSource.h:
  • WebView/WebDataSource.mm:
  • WebView/WebDataSourcePrivate.h:
  • WebView/WebDelegateImplementationCaching.h:
  • WebView/WebDocument.h:
  • WebView/WebDocumentInternal.h:
  • WebView/WebDocumentPrivate.h:
  • WebView/WebEditingDelegate.h:
  • WebView/WebEditingDelegatePrivate.h:
  • WebView/WebFrameLoadDelegate.h:
  • WebView/WebFrameLoadDelegatePrivate.h:
  • WebView/WebFramePrivate.h:
  • WebView/WebFrameView.h:
  • WebView/WebFrameViewInternal.h:
  • WebView/WebFrameViewPrivate.h:
  • WebView/WebHTMLRepresentation.h:
  • WebView/WebHTMLRepresentation.mm:
  • WebView/WebHTMLRepresentationPrivate.h:
  • WebView/WebHTMLView.h:
  • WebView/WebHTMLView.mm:
  • WebView/WebHTMLViewPrivate.h:
  • WebView/WebPDFView.h:
  • WebView/WebPolicyDelegatePrivate.h:
  • WebView/WebPreferencesPrivate.h:
  • WebView/WebResourcePrivate.h:
  • WebView/WebUIDelegate.h:
  • WebView/WebUIDelegatePrivate.h:
  • WebView/WebView.h:
  • WebView/WebView.mm:
  • WebView/WebViewPrivate.h:

Import WebKitLegacy headers instead of WebKit headers.

  • migrate-headers.sh:

Derived sources are put in DerivedSources/WebKitLegacy now.

Tools:

  • Scripts/check-for-webkit-framework-include-consistency:

Allos WAK headers in WebKitLegacy as well as WebKit.

  • TestWebKitAPI/Tests/WebKit2Cocoa/Download.mm:
  • TestWebKitAPI/Tests/WebKit2Cocoa/Navigation.mm:

Update header imports.

2:53 PM Changeset in webkit [168046] by hyatt@apple.com
  • 171 edits in trunk

[New Multicolumn] Enable new multi-column mode
https://bugs.webkit.org/show_bug.cgi?id=131825

Reviewed by Simon Fraser.

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):

Source/WebKit2:

  • Shared/WebPreferencesStore.h:

LayoutTests:

  • compositing/columns/composited-columns-expected.txt:
  • compositing/columns/composited-in-paginated-writing-mode-rl-expected.txt:
  • compositing/columns/composited-nested-columns-expected.txt:
  • compositing/columns/hittest-composited-in-paginated-expected.txt:
  • fast/dom/Element/getBoundingClientRect-expected.txt:
  • fast/dom/Element/getBoundingClientRect.html:
  • fast/multicol/flipped-blocks-border-after-expected.txt:
  • fast/multicol/pagination-h-horizontal-bt-expected.txt:
  • fast/multicol/pagination-h-horizontal-tb-expected.txt:
  • fast/multicol/pagination-h-vertical-lr-expected.txt:
  • fast/multicol/pagination-h-vertical-rl-expected.txt:
  • fast/multicol/pagination-v-horizontal-bt-expected.txt:
  • fast/multicol/pagination-v-horizontal-tb-expected.txt:
  • fast/multicol/pagination-v-vertical-lr-expected.txt:
  • fast/multicol/pagination-v-vertical-rl-expected.txt:
  • fast/multicol/progression-reverse-expected.txt:
  • fast/multicol/single-line-expected.txt:
  • fast/multicol/span/before-child-anonymous-column-block-expected.txt:
  • fast/multicol/span/generated-child-split-flow-crash-expected.txt:
  • fast/multicol/vertical-lr/rules-with-border-before-expected.txt:
  • fast/multicol/vertical-rl/rule-style-expected.txt:
  • fast/multicol/vertical-rl/rules-with-border-before-expected.txt:
  • platform/mac/css3/unicode-bidi-isolate-basic-expected.png:
  • platform/mac/css3/unicode-bidi-isolate-basic-expected.txt:
  • platform/mac/fast/block/float/float-not-removed-from-next-sibling4-expected.png:
  • platform/mac/fast/block/float/float-not-removed-from-next-sibling4-expected.txt:
  • platform/mac/fast/borders/border-antialiasing-expected.png:
  • platform/mac/fast/borders/border-antialiasing-expected.txt:
  • platform/mac/fast/line-grid/line-align-left-edges-expected.png:
  • platform/mac/fast/line-grid/line-align-right-edges-expected.png:
  • platform/mac/fast/line-grid/line-grid-contains-value-expected.png:
  • platform/mac/fast/line-grid/line-grid-floating-expected.png:
  • platform/mac/fast/line-grid/line-grid-inside-columns-expected.png:
  • platform/mac/fast/line-grid/line-grid-inside-columns-expected.txt:
  • platform/mac/fast/line-grid/line-grid-into-columns-expected.png:
  • platform/mac/fast/line-grid/line-grid-into-columns-expected.txt:
  • platform/mac/fast/line-grid/line-grid-into-floats-expected.png:
  • platform/mac/fast/line-grid/line-grid-positioned-expected.png:
  • platform/mac/fast/multicol/block-axis-horizontal-bt-expected.txt:
  • platform/mac/fast/multicol/block-axis-horizontal-tb-expected.txt:
  • platform/mac/fast/multicol/block-axis-vertical-lr-expected.txt:
  • platform/mac/fast/multicol/block-axis-vertical-rl-expected.txt:
  • platform/mac/fast/multicol/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/border-padding-pagination-expected.txt:
  • platform/mac/fast/multicol/client-rects-expected.png:
  • platform/mac/fast/multicol/client-rects-expected.txt:
  • platform/mac/fast/multicol/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/column-rules-expected.png:
  • platform/mac/fast/multicol/column-rules-expected.txt:
  • platform/mac/fast/multicol/column-rules-stacking-expected.txt:
  • platform/mac/fast/multicol/columns-shorthand-parsing-expected.txt:
  • platform/mac/fast/multicol/float-avoidance-expected.txt:
  • platform/mac/fast/multicol/float-multicol-expected.txt:
  • platform/mac/fast/multicol/float-paginate-complex-expected.txt:
  • platform/mac/fast/multicol/float-paginate-empty-lines-expected.txt:
  • platform/mac/fast/multicol/float-paginate-expected.txt:
  • platform/mac/fast/multicol/layers-in-multicol-expected.png:
  • platform/mac/fast/multicol/layers-in-multicol-expected.txt:
  • platform/mac/fast/multicol/layers-split-across-columns-expected.txt:
  • platform/mac/fast/multicol/margin-collapse-expected.txt:
  • platform/mac/fast/multicol/max-height-columns-block-expected.png:
  • platform/mac/fast/multicol/max-height-columns-block-expected.txt:
  • platform/mac/fast/multicol/nested-columns-expected.png:
  • platform/mac/fast/multicol/nested-columns-expected.txt:
  • platform/mac/fast/multicol/overflow-across-columns-expected.txt:
  • platform/mac/fast/multicol/overflow-across-columns-percent-height-expected.txt:
  • platform/mac/fast/multicol/overflow-unsplittable-expected.txt:
  • platform/mac/fast/multicol/paginate-block-replaced-expected.txt:
  • platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.txt:
  • platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.txt:
  • platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.txt:
  • platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.txt:
  • platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.txt:
  • platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.txt:
  • platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png:
  • platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.txt:
  • platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.txt:
  • platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.txt:
  • platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.txt:
  • platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.txt:
  • platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.txt:
  • platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.txt:
  • platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.txt:
  • platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.txt:
  • platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.txt:
  • platform/mac/fast/multicol/positioned-split-expected.txt:
  • platform/mac/fast/multicol/positive-leading-expected.txt:
  • platform/mac/fast/multicol/scrolling-overflow-expected.png:
  • platform/mac/fast/multicol/scrolling-overflow-expected.txt:
  • platform/mac/fast/multicol/shadow-breaking-expected.png:
  • platform/mac/fast/multicol/shadow-breaking-expected.txt:
  • platform/mac/fast/multicol/shrink-to-column-height-for-pagination-expected.txt:
  • platform/mac/fast/multicol/span/anonymous-before-child-parent-crash-expected.png:
  • platform/mac/fast/multicol/span/anonymous-before-child-parent-crash-expected.txt:
  • platform/mac/fast/multicol/span/anonymous-split-block-crash-expected.png:
  • platform/mac/fast/multicol/span/anonymous-split-block-crash-expected.txt:
  • platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/mac/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.png:
  • platform/mac/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.txt:
  • platform/mac/fast/multicol/span/clone-flexbox-expected.txt:
  • platform/mac/fast/multicol/span/clone-summary-expected.txt:
  • platform/mac/fast/multicol/span/generated-child-split-flow-crash-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.txt:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.txt:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.txt:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.png:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.txt:
  • platform/mac/fast/multicol/span/span-as-nested-inline-block-child-expected.txt:
  • platform/mac/fast/multicol/span/span-margin-collapsing-expected.txt:
  • platform/mac/fast/multicol/table-margin-collapse-expected.txt:
  • platform/mac/fast/multicol/table-vertical-align-expected.txt:
  • platform/mac/fast/multicol/unsplittable-inline-block-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.png:
  • platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/column-rules-expected.png:
  • platform/mac/fast/multicol/vertical-lr/column-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-multicol-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/float-paginate-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/nested-columns-expected.png:
  • platform/mac/fast/multicol/vertical-lr/nested-columns-expected.txt:
  • platform/mac/fast/multicol/vertical-lr/unsplittable-inline-block-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.png:
  • platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/column-rules-expected.png:
  • platform/mac/fast/multicol/vertical-rl/column-rules-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-multicol-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/float-paginate-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/nested-columns-expected.png:
  • platform/mac/fast/multicol/vertical-rl/nested-columns-expected.txt:
  • platform/mac/fast/multicol/vertical-rl/unsplittable-inline-block-expected.txt:
  • platform/mac/fast/overflow/paged-x-div-expected.png:
  • platform/mac/fast/overflow/paged-x-div-expected.txt:
  • platform/mac/fast/overflow/paged-x-div-with-column-gap-expected.png:
  • platform/mac/fast/overflow/paged-x-div-with-column-gap-expected.txt:
  • platform/mac/fast/overflow/paged-x-on-root-expected.png:
  • platform/mac/fast/overflow/paged-x-on-root-expected.txt:
  • platform/mac/fast/overflow/paged-x-with-column-gap-expected.png:
  • platform/mac/fast/overflow/paged-x-with-column-gap-expected.txt:
  • platform/mac/fast/overflow/paged-y-div-expected.png:
  • platform/mac/fast/overflow/paged-y-div-expected.txt:
  • platform/mac/fast/overflow/paged-y-on-root-expected.png:
  • platform/mac/fast/overflow/paged-y-on-root-expected.txt:
  • platform/mac/fast/repaint/multicol-repaint-expected.png:
  • platform/mac/fast/repaint/multicol-repaint-expected.txt:
2:48 PM Changeset in webkit [168045] by Simon Fraser
  • 10 edits
    1 copy
    2 moves
    2 adds
    3 deletes in trunk/Tools

[iOS WK2] Add test URL to crash reports for the UI process, clean up project
https://bugs.webkit.org/show_bug.cgi?id=131954

Reviewed by Darin Adler.

WebKitTestRunner was adding application-specific information to crash reports
to log the test path, but only in the web process. Fix it to also do this
for the UI process, for both iOS and OS X.

Moved InjectedBundlePageMac.mm to InjectedBundlePageCocoa.mm and compile it for
both iOS and OS X.

Factored crash reprorter-related code into CrashReporterInfo, and call it from
a new TestController::platformWillRunTest() function on Mac and iOS.

Also remove Xcode-added unit test junk from the project.

  • WebKitTestRunner/InjectedBundle/cocoa/InjectedBundlePageCocoa.mm: Copied from Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundlePageIOS.mm.

(WTR::InjectedBundlePage::platformDidStartProvisionalLoadForFrame):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::runTest):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::url):

  • WebKitTestRunner/TestInvocation.h:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/WebKitTestRunnerAppTests/WebKitTestRunnerAppTests-Info.plist: Removed.
  • WebKitTestRunner/WebKitTestRunnerAppTests/WebKitTestRunnerAppTests.m: Removed.
  • WebKitTestRunner/WebKitTestRunnerAppTests/en.lproj/InfoPlist.strings: Removed.
  • WebKitTestRunner/cocoa/CrashReporterInfo.h: Renamed from Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundlePageIOS.mm.
  • WebKitTestRunner/cocoa/CrashReporterInfo.mm: Renamed from Tools/WebKitTestRunner/InjectedBundle/mac/InjectedBundlePageMac.mm.

(WTR::testPathFromURL):
(WTR::setCrashReportApplicationSpecificInformationToURL):

  • WebKitTestRunner/efl/TestControllerEfl.cpp:

(WTR::TestController::platformWillRunTest):

  • WebKitTestRunner/gtk/TestControllerGtk.cpp:

(WTR::TestController::platformWillRunTest):

  • WebKitTestRunner/ios/TestControllerIOS.mm:

(WTR::TestController::platformWillRunTest):
(WTR::TestController::setHidden):

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::TestController::platformWillRunTest):

2:48 PM Changeset in webkit [168044] by Simon Fraser
  • 2 edits in trunk/Tools

Fix DRT assertion about mock scrollbars, which doesn't apply to iOS.

Reviewed by Tim Horton.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetWebPreferencesToConsistentValues):
(prepareConsistentTestingEnvironment):

2:27 PM Changeset in webkit [168043] by hyatt@apple.com
  • 8 edits in trunk/Source/WebCore

[New Multicolumn] ASSERTs in fast/dynamic/continuation-detach-crash.html
https://bugs.webkit.org/show_bug.cgi?id=132392

Reviewed by Dean Jackson.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::setRegionRangeForBox):
Add ASSERTs in case we ever try to set regions from the wrong flow thread
as part of the box's region range.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
Add a bunch of code that handles the discovery of a span from an outer flow thread
being inserted into an inner flow thread. This forces us to delete that placeholder
and shift the outer spanning content into the inner flow thread in order to get a new
mapping/placeholder created in the inner flow thread.

(WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
Tighten this code to use the parent() just in case we change the invariant of
parent = containingBlock later.

  • rendering/RenderMultiColumnFlowThread.h:

Add a static guard when shifting a spanner to prevent the outer flow thread from
thinking the spanner belongs to it when it gets punted out of the inner flow thread.
A better long-term solution might be to make the spanner map global instead of
per-flow thread.

  • rendering/RenderMultiColumnSpannerPlaceholder.cpp:

(WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):

  • rendering/RenderMultiColumnSpannerPlaceholder.h:

Cache the flow thread so that we can get back to it in order to detect if the
placeholder belongs to us or not.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::insertedIntoTree):
Notifications from insertedIntoTree are problematic, since this can be called during
the layout of the outer flow thread for content inside an inner flow thread that is
not getting a layout yet. This makes the currentFlowThread in the flow thread controller
inaccurate, so we have to add code to clear it out and put it back.

1:47 PM Changeset in webkit [168042] by Chris Fleizach
  • 7 edits
    3 adds in trunk

AX: Make "contenteditable" regions into AXTextAreas
https://bugs.webkit.org/show_bug.cgi?id=132379

Reviewed by Mario Sanchez Prada.

Source/WebCore:
Make contenteditable regions into AXTextAreas. This will allow for a more standardized
interface for interaction with assistive technologies.

Test: accessibility/content-editable-as-textarea.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):
(WebCore::AccessibilityRenderObject::selectedText):
(WebCore::AccessibilityRenderObject::selectedTextRange):
(WebCore::AccessibilityRenderObject::renderObjectIsObservable):
(WebCore::AccessibilityRenderObject::determineAccessibilityRole):
(WebCore::AccessibilityRenderObject::ariaSelectedTextRange): Deleted.

  • accessibility/AccessibilityRenderObject.h:

LayoutTests:

  • accessibility/content-editable-as-textarea.html: Added.
  • platform/mac-mountainlion/accessibility/content-editable-as-textarea-expected.txt: Added.
  • platform/mac/accessibility/content-editable-as-textarea-expected.txt: Added.
1:42 PM Changeset in webkit [168041] by Brian Burg
  • 28 edits
    1 delete in trunk/Source

Clean up unnecessary methods in the BackForwardClient interface
https://bugs.webkit.org/show_bug.cgi?id=131637

Reviewed by Andreas Kling.

Source/WebCore:
Demote back/current/forwardItem and iOS-specific methods from the
BackForwardClient interface. Convert the class to not be refcounted.

No new tests, no behavior was changed.

  • WebCore.exp.in:
  • history/BackForwardClient.h:

(WebCore::BackForwardClient::~BackForwardClient): Deleted.
(WebCore::BackForwardClient::backItem): Deleted.
(WebCore::BackForwardClient::currentItem): Deleted.
(WebCore::BackForwardClient::forwardItem): Deleted.

  • history/BackForwardController.cpp:

(WebCore::BackForwardController::BackForwardController):

  • history/BackForwardController.h: Take ownership of the passed BackForwardClient.

(WebCore::BackForwardController::client): Return a reference.

  • history/BackForwardList.h: Remove the Page field, since it isn't used any more.

(WebCore::BackForwardList::create): Deleted.

  • page/Page.h: Remove RefPtr from PageClient.
  • page/Page.cpp:

(WebCore::PageClients::PageClients): Initialize client to nullptr.

Source/WebKit/efl:
Remove uses of reference counting for BackForwardList.
Use references to BackForwardClient instead of pointers.
Stop using BackForwardClient::page() since it was removed.

  • ewk/ewk_history.cpp:

(ewk_history_clear):
(ewk_history_new):
(ewk_history_free):

  • ewk/ewk_view.cpp:

(_ewk_view_priv_new):
(ewk_view_history_enable_get):
(ewk_view_history_enable_set):
(ewk_view_history_get):

Source/WebKit/mac:
BackForwardClient instances now have ownership lifetime semantics, so
WebBackForwardList now explicitly deletes its inner BackForwardList.

Convert uses of WebCore::BackForwardList through backForward().client() to
accept references instead of pointers.

Use BackForwardController methods rather than directly operating with the
BackForwardClient where possible.

Remove page cache-related methods that are not used anywhere and that call
BackForwardClient::page(), which is removed by this change.

  • History/WebBackForwardList.mm:

(-[WebBackForwardList initWithBackForwardList:]):
(-[WebBackForwardList init]):
(-[WebBackForwardList dealloc]):
(-[WebBackForwardList finalize]):
(-[WebBackForwardList setPageCacheSize]): Deleted.
(-[WebBackForwardList pageCacheSize]): Deleted.
(-[WebBackForwardList itemAtIndex:]): Deleted.

  • History/WebBackForwardListInternal.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::canCachePage):

  • WebView/WebFrameView.mm:

(-[WebFrameView keyDown:keyDown:]):

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView initWithCoder:]):
(-[WebView encodeWithCoder:]):
(-[WebView backForwardList]):
(-[WebView setMaintainsBackForwardList:]):

Source/WebKit/win:
Remove uses of reference counting for BackForwardList.
Use BackForwardController instead of BackForwardClient where possible.

  • WebBackForwardList.cpp:

(WebBackForwardList::WebBackForwardList):
(WebBackForwardList::~WebBackForwardList):
(WebBackForwardList::createInstance):

  • WebBackForwardList.h:
  • WebView.cpp:

(WebView::backForwardList):
(WebView::canGoBack):
(WebView::canGoForward):
(WebView::loadBackForwardListFromOtherView):

Source/WebKit2:
Remove stubs for iOS-specific methods in the BackForwardClient interface.

Construct a WebBackForwardListProxy directly, and make the WebCore page
own the BackForwardClient instance. Convert uses of backForward().client()
to accept references instead of raw pointers.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:

(WebKit::InjectedBundleBackForwardList::clear):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp: Store a reference to

WebCore::Page instead of a pointer.
(WebKit::WebBackForwardListProxy::WebBackForwardListProxy):
(WebKit::WebBackForwardListProxy::create): Deleted.
(WebKit::WebBackForwardListProxy::addItem):
(WebKit::WebBackForwardListProxy::goToItem):
(WebKit::WebBackForwardListProxy::itemAtIndex):
(WebKit::WebBackForwardListProxy::backListCount):
(WebKit::WebBackForwardListProxy::forwardListCount):
(WebKit::WebBackForwardListProxy::close):
(WebKit::WebBackForwardListProxy::clear):
(WebKit::WebBackForwardListProxy::isActive):

  • WebProcess/WebPage/WebBackForwardListProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Removed.
1:30 PM Changeset in webkit [168040] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: clean up and decompose InspectorBackend functionality
https://bugs.webkit.org/show_bug.cgi?id=132387

Reviewed by Joseph Pecoraro.

Aside from renaming variables and other minor cleanup, this patch
changes the following:

When calling a command, only store callback data when a callback is passed.
Use explicit model objects for the agent, event, enum, and commands.
Separate the agent models from encoding and decoding of JSON messages.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.registerEnum):
(InspectorBackendClass.prototype.registerEvent):
(InspectorBackendClass.prototype.registerDomainDispatcher):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._agentForDomain):
(InspectorBackendClass.prototype._registerSentCommand):
(InspectorBackendClass.prototype._dispatchCallback):
(InspectorBackendClass.prototype._dispatchEvent):
(InspectorBackendClass.prototype._invokeCommand):
(InspectorBackendClass.prototype._reportProtocolError):
(InspectorBackend.Agent):
(InspectorBackend.Agent.prototype.get domainName):
(InspectorBackend.Agent.prototype.set dispatcher):
(InspectorBackend.Agent.prototype.addEnum):
(InspectorBackend.Agent.prototype.addCommand):
(InspectorBackend.Agent.prototype.addEvent):
(InspectorBackend.Agent.prototype.getEvent):
(InspectorBackend.Agent.prototype.dispatchEvent):
(InspectorBackend.Command):
(InspectorBackend.Command.create):
(InspectorBackend.Command.prototype.get qualifiedName):
(InspectorBackend.Command.prototype.get commandName):
(InspectorBackend.Command.prototype.get callSignature):
(InspectorBackend.Command.prototype.get replySignature):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype.supports):
(InspectorBackend.Command.prototype._invokeWithArguments):
(InspectorBackend.Event):
(InspectorBackend.Enum):
(InspectorBackendClass.prototype.callback): Deleted.
(InspectorBackendClass.prototype._registerPendingResponse): Deleted.
(InspectorBackendClass.prototype._invokeMethod): Deleted.
(InspectorBackendClass.prototype._getAgent): Deleted.
(InspectorBackendClass.prototype.reportProtocolError): Deleted.
(InspectorBackendCommand): Deleted.
(InspectorBackendCommand.create): Deleted.
(InspectorBackendCommand.prototype.invoke): Deleted.
(InspectorBackendCommand.prototype.supports): Deleted.
(InspectorBackendCommand.prototype._invokeWithArguments): Deleted.

1:00 PM Changeset in webkit [168039] by andersca@apple.com
  • 2 edits in trunk/Tools

check-for-inappropriate-macros-in-external-headers should get the product name, not the project name
https://bugs.webkit.org/show_bug.cgi?id=132397

Reviewed by Dan Bernstein.

  • Scripts/check-for-inappropriate-macros-in-external-headers:
12:52 PM Changeset in webkit [168038] by barraclough@apple.com
  • 14 edits
    2 adds in trunk/Source/WebKit2

Fix PageVisibility on iOS
https://bugs.webkit.org/show_bug.cgi?id=132393

Reviewed by Andreas Kling.

Currently page visibility API doesn't work correctly on WK2 iOS for a few reasons,
the most significant of which being that the moment a WKWebView leaves the window
we'll suspend the content process, which removes the possibility for any notification
to be delivered. This patch addresses this issue, by allowing the process to run for
long enough for the notification to be delivered.

1) Introduce a new class, ProcessThrottler, to encapsulate the process suspension logic.
2) WebPageProxy uses ProcessThrottler::VisibilityToken to communicate visibility to the throttler.
3) WebPageProxy tracks pending didUpdateViewState messages to detect when the view state update in

the web content process has completed.

4) Distiguish between 'Background' and 'Suspended' states in the ProcessAssertion.

  • Shared/ChildProcessProxy.h:
    • moved m_assertion to NetworkProcessProxy / WebProcessProxy.
  • UIProcess/Network/NetworkProcessProxy.h:
    • added m_assertion.
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • initialize VisibilityToken state.

(WebKit::WebPageProxy::reattachToWebProcess):

  • reinitialize VisibilityToken state.

(WebKit::WebPageProxy::viewStateDidChange):

  • update VisibilityToken, increment m_pendingViewStateUpdates as necessary.

(WebKit::WebPageProxy::updateVisibilityToken):

  • update the VisibiliyToken based on page visibility, and whether an update is still pending.

(WebKit::WebPageProxy::didUpdateViewState):

  • detect when a view state change has completed in the web process, and update throttle state as necessary.
  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::didUpdateViewState): Deleted.

  • moved to .cpp.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::WebProcessProxy):

  • initialize m_throttler.

(WebKit::WebProcessProxy::didFinishLaunching):

  • notify the PageThrottler of the new connection.
  • UIProcess/WebProcessProxy.h:

(WebKit::WebProcessProxy::throttler):

  • added accessor.

(WebKit::WebProcessProxy::updateProcessState): Deleted.

  • moved trottling login to ProcessThrottler.
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::isViewWindowActive):
(WebKit::PageClientImpl::isViewFocused):
(WebKit::PageClientImpl::isViewVisible):
(WebKit::PageClientImpl::isViewVisibleOrOccluded):

  • these should only be true when the view is in a window.

(WebKit::PageClientImpl::isVisuallyIdle):

  • this should only be true when the view is not in a window.
  • UIProcess/ios/ProcessAssertion.h:
  • UIProcess/ios/ProcessAssertion.mm:

(WebKit::flagsForState):

  • map from enum -> BKSAssertion flags values.

(WebKit::ProcessAssertion::ProcessAssertion):

  • use flagsForState (add support for Suspended state).

(WebKit::ProcessAssertion::setState):

  • use flagsForState (add support for Suspended state).
  • UIProcess/ios/ProcessThrottler.h: Added.

(WebKit::ProcessThrottler::VisibilityToken::visibility):

  • accessor.

(WebKit::ProcessThrottler::VisibilityToken::setVisibility):

  • update Visibility value; update the token as necessary.

(WebKit::ProcessThrottler::ProcessThrottler):

  • constructor; does not take an assention until didConnnectToProcess is called.

(WebKit::ProcessThrottler::visibilityToken):

  • create a VisibilityToken.

(WebKit::ProcessThrottler::didConnnectToProcess):

  • take an assertion.

(WebKit::ProcessThrottler::weakPtr):

  • create a weak pointer, used for references from VisibilityToken to the throttler.

(WebKit::ProcessThrottler::assertionState):

  • determine the correct AssertionState for the process, based on current visibility.

(WebKit::ProcessThrottler::updateAssertion):

  • update assertion, called in response to visibility change.
  • UIProcess/ios/ProcessThrottler.mm: Added.

(WebKit::ProcessThrottler::VisibilityToken::VisibilityToken):

  • constructor.

(WebKit::ProcessThrottler::VisibilityToken::~VisibilityToken):

  • set visibility to hidden to reset.

(WebKit::ProcessThrottler::VisibilityToken::hideTimerFired):

  • automatically decay from Hiding -> Hidden on a timeout.

(WebKit::ProcessThrottler::VisibilityToken::setVisibilityInternal):

  • update counters tracking visibility in ProcessThrottler.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView didMoveToWindow]):

  • This affects all view state flags, not just the 'InWindow' state. If the view moves out of a window request a reply from the WebContent - we use this to detect when the page visibility event has completed.
  • UIProcess/ios/WebProcessProxyIOS.mm:

(WebKit::WebProcessProxy::updateProcessState): Deleted.

  • removed.
  • WebKit2.xcodeproj/project.pbxproj:
    • added new files.
12:47 PM Changeset in webkit [168037] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Preemptive header fixes for when WebKit.framework is going to provide the modern API
https://bugs.webkit.org/show_bug.cgi?id=132394

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKBrowsingContextPolicyDelegate.h:

(NS_ENUM):
Delete WKNavigationType for now. Ultimately the entire delegate should be removed.

  • UIProcess/API/Cocoa/WKPreferences.h:

Add a header guard so we can avoid importing WKPreferences.h more than once.

  • WebKit2.xcodeproj/project.pbxproj:

_WKScriptWorld.h should be private, not public.
WKScriptMessagePrivate.h and WKUserContentControllerPrivate.h should be private, not project.

12:42 PM Changeset in webkit [168036] by Brent Fulgham
  • 4 edits in trunk/Source/WebCore

[Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
https://bugs.webkit.org/show_bug.cgi?id=132320

Reviewed by Eric Carlson.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-text-track-container .hidden): Added.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
new 'updateCaptionsContainer'.
(WebCore::HTMLMediaElement::updateCaptionContainer): Added.

  • html/HTMLMediaElement.h:
12:29 PM Changeset in webkit [168035] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Web Inspector: Ensure UIProcess checks in to webinspectord after spawning a WebProcess
https://bugs.webkit.org/show_bug.cgi?id=132389

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2014-04-30
Reviewed by Timothy Hatcher.

We aggregate WebProcess WebView's under the UIProcess. If the UIProcess
didn't connect to webinspectord these WebViews would have remained
hidden. Always have the UIProcess connect to webinspectord when it
spawns a WebProcess and may have a child process holding views that
it ultimately owns and should display under the UIProcess name.

  • UIProcess/WebContext.cpp:

(WebKit::WebContext::createNewWebProcess):

12:29 PM Changeset in webkit [168034] by Lucas Forschler
  • 6 edits
    1 copy in branches/safari-537.76-branch

Merge r167211. <rdar://problem/16701806>

12:00 PM Changeset in webkit [168033] by Alan Bujtas
  • 2 edits in trunk/Source/WebKit2

[iOS]Subpixel rendering: Extra line of pixels next to the YouTube loading indicator.
https://bugs.webkit.org/show_bug.cgi?id=132391

Reviewed by Simon Fraser.

CG and GraphicsContext clipping should use the same coordinates. Snapping either one
while leaving the other unsnapped results in clipping mismatch and that may produce
unpainted areas.

Not testable.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

10:50 AM Changeset in webkit [168032] by ap@apple.com
  • 12 edits in trunk/Source

https://bugs.webkit.org/show_bug.cgi?id=132363
Make Blob RawData immutable

Reviewed by Anders Carlsson.

Source/WebCore:

  • Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):

Create RawData in one step.

  • WebCore.exp.in: Don't export a constructor that we no longer have (and the new one is inline).
  • fileapi/Blob.cpp: Removed entirely dead code.
  • fileapi/WebKitBlobBuilder.cpp:
  • fileapi/WebKitBlobBuilder.h:

Updated to collect data in a plain Vector, so that we don't have to modify RawData.
Removed FIXMEs about renaming - there used to be a BlobBuilder exposed to JS, but
now this is just a helper to implement JS Blob constructor. We should probably
still rename it, but not how the FIXME suggested.

  • platform/network/BlobData.cpp:

(WebCore::BlobDataItem::detachFromCurrentThread): RawData::detachFromCurrentThread()
was a no-op.
(WebCore::BlobDataHandle::BlobDataHandle): Deleted. This was entirely dead code.
(WebCore::BlobDataHandle::~BlobDataHandle): Ditto.

  • platform/network/BlobData.h: Made RawData immutable.
  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob):

Create RawData in one step.

Source/WebKit2:

  • Shared/FileAPI/BlobRegistrationData.cpp: (WebKit::BlobRegistrationData::decode):

Create RawData in one step.

10:41 AM Changeset in webkit [168031] by ddkilzer@apple.com
  • 1 edit
    2 copies
    1 delete in trunk/LayoutTests

Move iphone-simulator test results landed in r167402 to the correct directory

  • platform/ios-sim/media/media-document-controls-size-expected.txt: Renamed from LayoutTests/platform/iphone-simulator/media/media-document-controls-size-expected.txt.
  • platform/ios-sim/media/media-document-controls-size.html: Renamed from LayoutTests/platform/iphone-simulator/media/media-document-controls-size.html.
10:30 AM Changeset in webkit [168030] by Lucas Forschler
  • 6 edits
    1 delete in branches/safari-537.76-branch

Rollout of r168020.

10:26 AM Changeset in webkit [168029] by weinig@apple.com
  • 3 edits in trunk/Source/WebKit/mac

[iOS] -[WebHTMLView selectionImageForcingBlackText:] returns blank image on iOS
https://bugs.webkit.org/show_bug.cgi?id=132359

Reviewed by Darin Adler.

  • WebView/WebHTMLView.mm:

(imageFromRect):
(selectionImage):
(-[WebHTMLView selectionImageForcingBlackText:selectionImageForcingBlackText:]):
Bring back the old FrameSnapshottingMac code for drawing the selection image as drag code for this
is still unimplemented on iOS.

  • WebView/WebView.mm:

(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):
Set the page scale for "simple HTML documents" (this is already done for the all other documents),
to ensure that the snapshot is the correct size.

9:55 AM Changeset in webkit [168028] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Followup to: Handle selection services menu.
<rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::setupServicesMenu): Remove an ASSERT from previous version of the patch

that landed. I’d forgotten to add this stray change to my staging area.

9:55 AM Changeset in webkit [168027] by Martin Robinson
  • 4 edits in trunk

[GTK] Make it easier to run CMake for downstreams
https://bugs.webkit.org/show_bug.cgi?id=132370

Reviewed by Carlos Garcia Campos.

.:

  • Source/cmake/OptionsGTK.cmake: Turn PRODUCTION_MODE into DEVELOPER_MODE.

Tools:

  • Scripts/webkitdirs.pm:

(generateBuildSystemFromCMakeProject): Pass -DDEVELOPER_MODE when building
the GTK+ port.

9:45 AM Changeset in webkit [168026] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.2.7

Tagging the WebKitGTK+ 2.2.7 release

9:43 AM Changeset in webkit [168025] by ap@apple.com
  • 2 edits in trunk/LayoutTests

compositing/repaint/repaint-on-layer-grouping-change.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=132385

  • platform/mac/TestExpectations: Marked as such.
9:42 AM Changeset in webkit [168024] by hyatt@apple.com
  • 2 edits in trunk/Source/WebCore

[New Multicolumn] Region offset not factored in when mapping to local coords
https://bugs.webkit.org/show_bug.cgi?id=132383

Reviewed by Anders Carlsson.

Make sure to cache the offset of the multicolumn set from its parent and then
add that in to the translation offset.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):

8:52 AM Changeset in webkit [168023] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.2

Unreviewed. Update NEWS and Versions.m4 for 2.2.7 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Add release notes.
8:03 AM Changeset in webkit [168022] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merged r166049. <rdar://problem/16701945>

7:45 AM Changeset in webkit [168021] by Lucas Forschler
  • 3 edits in branches/safari-537.76-branch/Source/WebCore

Merged r167278. <rdar://problem/16701788>

7:42 AM Changeset in webkit [168020] by Lucas Forschler
  • 6 edits
    1 copy in branches/safari-537.76-branch

Merged r167211. <rdar://problem/16701806>

7:29 AM Changeset in webkit [168019] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r167167. <rdar://problem/16701836>

7:25 AM Changeset in webkit [168018] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merged r167135. <rdar://problem/16701888>

7:23 AM Changeset in webkit [168017] by Lucas Forschler
  • 4 edits
    2 copies in branches/safari-537.76-branch

Merge r167093. <rdar://problem/16701798>

7:12 AM Changeset in webkit [168016] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r167092. <rdar://problem/16701793>

7:08 AM Changeset in webkit [168015] by Lucas Forschler
  • 2 edits in branches/safari-537.76-branch/Source/WebKit2

Merge r166810. <rdar://problem/16701862>

7:05 AM Changeset in webkit [168014] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r166601. <rdar://problem/16701781>

7:02 AM Changeset in webkit [168013] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge 166457. <rdar://problem/16701904>

6:59 AM Changeset in webkit [168012] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge 166428. <rdar://problem/16701982>

6:51 AM Changeset in webkit [168011] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Move removeEquivalentProperties functions to EditingStyle
https://bugs.webkit.org/show_bug.cgi?id=131093

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-04-30
Reviewed by Csaba Osztrogonác.

A follow-up to r167967. Use single line declaration for template methods.

  • editing/EditingStyle.h:
6:48 AM Changeset in webkit [168010] by Lucas Forschler
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r166236. <rdar://problem/16701937>

6:30 AM Changeset in webkit [168009] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r167795 - [GTK] Plugin process crashes with GTK2 windowed plugins
https://bugs.webkit.org/show_bug.cgi?id=132127

Reviewed by Martin Robinson.

It happens sometimes because the socket is used before the plug
has been added. A runtime critical warnings is shown and it
sometimes ends up crashing.

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

(WebKit::NetscapePlugin::platformPostInitializeWindowed): Do not
show the plug widget until the socket is connected.

3:44 AM Changeset in webkit [168008] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r167656 - [GTK] Crash after getting web view context property with g_object_get
https://bugs.webkit.org/show_bug.cgi?id=131983

Reviewed by Philippe Normand.

The problem is that the getter is using g_value_take_object() and
the default context is destroyed when the caller releases its ref.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewGetProperty): Use g_value_set_object() instead of
g_value_take_object().

3:41 AM Changeset in webkit [168007] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r166304 - REGRESSION(r162679): Poster image visible under the video
https://bugs.webkit.org/show_bug.cgi?id=130783

Reviewed by Simon Fraser.

In the listed revision, we started checking for isRenderImage()
instead of isImage(). RenderMedias return 'true' for the first
but 'false' for the second. Change the if() statement to check
for isRenderMedia() in addition to !isRenderImage().

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::isDirectlyCompositedImage):

3:36 AM WebKitGTK/KeepingTheTreeGreen edited by ltilve@igalia.com
(diff)
3:34 AM Changeset in webkit [168006] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r166090 - Source/WebCore: Fix a crash when assigning an object to document.location
https://bugs.webkit.org/show_bug.cgi?id=130213

Reviewed by Geoffrey Garen.

Convert location to string before we make use the document.
This prevents us from attempting to navigate a frame that
has already been removed.

Test: fast/dom/navigation-with-sideeffects-crash.html

  • bindings/js/JSDocumentCustom.cpp:

(WebCore::JSDocument::location):
(WebCore::JSDocument::setLocation):

LayoutTests: Fix semantics of JS execution when assigning an object to document.location
https://bugs.webkit.org/show_bug.cgi?id=130213

Reviewed by Geoffrey Garen.

  • fast/dom/navigation-with-sideeffects-expected.txt: Added.
  • fast/dom/navigation-with-sideeffects.html: Added.
3:21 AM Changeset in webkit [168005] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r165921 - Crash with long selector list
https://bugs.webkit.org/show_bug.cgi?id=123006

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/css/long-selector-list-crash.html

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):
(WebCore::CSSSelectorList::adoptSelectorVector):
(WebCore::CSSSelectorList::operator=):

  • css/StyleRule.cpp:

(WebCore::StyleRule::create):

Add a bunch of asserts.

(WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):

This could produce a zero-length selector list.

LayoutTests:

  • fast/css/long-selector-list-crash-expected.txt: Added.
  • fast/css/long-selector-list-crash.html: Added.
3:16 AM Changeset in webkit [168004] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/JavaScriptCore

Merge r165902 - Update type of local vars to match the type of String length.
<https://webkit.org/b/130077>

Reviewed by Geoffrey Garen.

  • runtime/JSStringJoiner.cpp:

(JSC::JSStringJoiner::join):

3:13 AM Changeset in webkit [168003] by Carlos Garcia Campos
  • 5 edits
    4 adds in releases/WebKitGTK/webkit-2.2

Merge r165821 - Mutating rules returned by getMatchedCSSRules can result in crash
https://bugs.webkit.org/show_bug.cgi?id=130209

Source/WebCore:

Reviewed by Andreas Kling.

The non-standard getMatchedCSSRules API returns CSSStyleRule objects that don't
have parent stylesheet pointer (as we don't know which sheet the rule originated from).
Mutating the rule via such wrapper can lead to crashes later as we fail to invalidate
the underlying stylesheet.

Fix by disallowing mutation of style rules that don't have parent sheet pointer. CSSStyleRule
has two mutable properties selectorText and style. The latter gives back CSSStyleDeclaration.
This patch disallows mutations in both cases for CSSStyleRules that don't have parent stylesheet
pointer.

While it is technically possible to have CSSRules that are legitimately disconnected
from stylesheet (by removing rule from sheet while holding a reference to it) it never
makes sense to mutate such rule as there is no way to do anything with it afterwards.

Tests: fast/css/getMatchedCSSProperties-rule-mutation.html

fast/css/getMatchedCSSRules-crash.html

  • css/CSSStyleRule.cpp:

(WebCore::CSSStyleRule::setSelectorText):

Bail out if parent stylesheet is null.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setCssText):
(WebCore::PropertySetCSSStyleDeclaration::setProperty):
(WebCore::PropertySetCSSStyleDeclaration::removeProperty):
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):

Allow StyleRuleCSSStyleDeclaration subclass cancel the mutation via
boolean return value from willMutate.

(WebCore::StyleRuleCSSStyleDeclaration::willMutate):

Disallow mutation if the owning CSSStyleRule is null or has null stylesheet.

(WebCore::StyleRuleCSSStyleDeclaration::didMutate):

We never get here with null rule or stylesheet anymore.

  • css/PropertySetCSSStyleDeclaration.h:

(WebCore::PropertySetCSSStyleDeclaration::willMutate):

LayoutTests:

Reviewed by Andreas Kling.

  • fast/css/getMatchedCSSProperties-rule-mutation-expected.txt: Added.
  • fast/css/getMatchedCSSProperties-rule-mutation.html: Added.
  • fast/css/getMatchedCSSRules-crash-expected.txt: Added.
  • fast/css/getMatchedCSSRules-crash.html: Added.
2:48 AM Changeset in webkit [168002] by Carlos Garcia Campos
  • 5 edits
    3 adds in releases/WebKitGTK/webkit-2.2

Merge r165339 - SerializedScriptValue may move Identifiers between worlds
https://bugs.webkit.org/show_bug.cgi?id=129979

Reviewed by Andreas Kling.

Source/WebCore:

Test: fast/workers/worker-copy-shared-blob-url.html

Don't use Strings to store blob URLs as String's may be Identifiers
and they can only exist in one world/thread at a time.

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::put):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneDeserializer::deserializeString):
(WebCore::SerializedScriptValue::addBlobURL):
(WebCore::SerializedScriptValue::SerializedScriptValue):

  • bindings/js/SerializedScriptValue.h:

LayoutTests:

Add test cases

  • fast/workers/resources/worker-copy-shared-blob-url-worker.js: Added.

(count.0.onmessage):

  • fast/workers/worker-copy-shared-blob-url-expected.txt: Added.
  • fast/workers/worker-copy-shared-blob-url.html: Added.
2:36 AM Changeset in webkit [168001] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r165145 - ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
https://bugs.webkit.org/show_bug.cgi?id=129753
<rdar://problem/12069835>

Reviewed by Alexey Proskuryakov.

Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
app cache doesn't contain a manifest resource.

For some reason an app cache for a web site may be partially written to disk. In particular, the
app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
and hence have been unable to create such an app cache. We were able to reproduce this issue using
an app cache database file that was provided by a person that was affected by this issue.

No test included because it's not straightforward to write a test for this change.

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
expression into two assertion expressions to make it straightforward to identify the failing sub-expression
on failure.

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
(WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
have a manifest resource.
(WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
(WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
ApplicationCacheStorage::deleteCacheGroupRecord().

  • loader/appcache/ApplicationCacheStorage.h:
2:33 AM Changeset in webkit [168000] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.2

Merge r165138 - Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
<http://webkit.org/b/129751>
<rdar://problem/16237965>

Reviewed by Jon Honeycutt.

Merged from Blink (patch by Yuta Kitamura):
https://src.chromium.org/viewvc/blink?revision=168160&view=revision
http://crbug.com/345005

The root cause is CompositeEditCommand::moveParagraphWithClones() passing
two positions |start| and |end| which do not follow the document order,
i.e. in some situations |start| is located after |end| because of
the difference in affinity.

This patch fixes this crash by normalizing |end| to |start| in such situations.
It also adds an ASSERT that checks the relationship between |start| and |end|.

Source/WebCore:

Test: editing/execCommand/format-block-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
(WebCore::CompositeEditCommand::moveParagraphWithClones):

  • editing/CompositeEditCommand.h:

LayoutTests:

  • editing/execCommand/format-block-crash-expected.txt: Added.
  • editing/execCommand/format-block-crash.html: Added.
  • editing/execCommand/resources/format-block-crash-iframe.html: Added.
2:30 AM Changeset in webkit [167999] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r164933 - Ensure keySplines is valid in SMIL animations
<http://webkit.org/b/129547>
<rdar://problem/15676128>

Reviewed by Darin Adler.

Merged from Blink (patch by Philip Rogers):
https://src.chromium.org/viewvc/blink?revision=156452&view=revision
http://crbug.com/276111

This patch fixes a crash in SMIL animations when keySplines are not
specified. The SMIL spec is clear on this:
http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
"If there are any errors in the keyTimes specification (bad values,
too many or too few values), the animation will have no effect."

This patch simply checks that keyTimes is not empty. Previously,
splinesCount was set to be m_keySplines.size() + 1 in
SVGAnimationElement.cpp; this patch changes splinesCount to be equal
to m_keySplines.size() to make the logic easier to follow and to
match other checks in SVGAnimationElement::startedActiveInterval.

Source/WebCore:

Test: svg/animations/animate-keysplines-crash.html

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):

LayoutTests:

  • svg/animations/animate-keysplines-crash-expected.txt: Added.
  • svg/animations/animate-keysplines-crash.html: Added.
2:26 AM Changeset in webkit [167998] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r164876 - Properly clear m_logicallyLastRun to remove use-after-free possibility
https://bugs.webkit.org/show_bug.cgi?id=129489

Reviewed by David Hyatt.

A use-after-free issue was caught in Blink because m_logicallyLastRun
is not cleared when the item it points to is deleted. Clearing it
turns the use-after-free into a segfault, and prevents any future
use-after-frees from happening.

  • platform/text/BidiRunList.h:

(WebCore::BidiRunList<Run>::deleteRuns):

2:23 AM Changeset in webkit [167997] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WTF

Merge r164408 - Crash in WTF::StringBuilder::append()

https://bugs.webkit.org/show_bug.cgi?id=125817
<rdar://problem/15671883>

Reviewed by Oliver Hunt.

  • wtf/text/StringBuilder.cpp:

(WTF::expandedCapacity):
Ensure that we return a new capacity of at least 'requiredLength' in
the case where requiredLength is large. Also, use unsigned rather than
size_t for the parameters and the return value, as callers pass
unsigned arguments and treat the result as an unsigned int.

2:20 AM Changeset in webkit [167996] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r164367 - Do not dispatch change event twice in single step action
https://bugs.webkit.org/show_bug.cgi?id=116936
<rdar://problem/16086828>

Reviewed by Ryosuke Niwa.

Merged from Blink (patch by Kent Tamura):
https://src.chromium.org/viewvc/blink?view=rev&revision=151175

Source/WebCore:

Test: fast/forms/number/number-type-update-by-change-event.html

  • html/InputType.cpp:

(WebCore::InputType::stepUpFromRenderer):

LayoutTests:

  • fast/forms/number/number-type-update-by-change-event-expected.txt: Added.
  • fast/forms/number/number-type-update-by-change-event.html: Added.
2:15 AM Changeset in webkit [167995] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r164204 - Ensure that removing an iframe from the DOM tree disconnects its Frame.
<https://webkit.org/b/128889>
<rdar://problem/15671221>

Merged from Blink (patch by Adam Klein):
https://src.chromium.org/viewvc/blink?revision=156174&view=revision

Source/WebCore:

SubframeLoadingDisabler wasn't catching the case when an <iframe> was,
in its unload handler, removed and re-added to the same parent.
Fix this by using a count of SubframeLoadingDisablers that are on the
stack for a given root, rather than a simple boolean.

Test: fast/frames/reattach-in-unload.html

  • html/HTMLFrameOwnerElement.h:

(WebCore::SubframeLoadingDisabler::disabledSubtreeRoots):

LayoutTests:

  • fast/frames/reattach-in-unload-expected.txt: Added.
  • fast/frames/reattach-in-unload.html: Added.
1:57 AM Changeset in webkit [167994] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.2

Merge r164170 - ASSERT_WITH_SECURITY_IMPLICATION in WebCore::toElement
https://bugs.webkit.org/show_bug.cgi?id=128810

Patch by Renata Hodovan <rhodovan.u-szeged@partner.samsung.com> on 2014-02-15
Reviewed by Ryosuke Niwa.

Source/WebCore:

Make CompositeEditCommand::cloneParagraphUnderNewElement() to work when |outerNode|
doesn't contain |start|.

Before this patch, CompositeEditCommand::cloneParagraphUnderNewElement() tried to copy
ancestry nodes from |start| to Document node when |start| position isn't in |outerNode|. This
patch changes CompositeEditCommand::cloneParagraphUnderNewElement() to copy |start| to
|outerNode| only if |outerNode| contains |start| position.

Merged from Blink https://src.chromium.org/viewvc/blink?revision=161762&view=revision by yosin@chromium.org.

Test: editing/execCommand/indent-with-uneditable-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):

LayoutTests:

  • editing/execCommand/indent-with-uneditable-crash-expected.txt: Added.
  • editing/execCommand/indent-with-uneditable-crash.html: Added.
1:54 AM Changeset in webkit [167993] by Manuel Rego Casasnovas
  • 7 edits in trunk/Source

[CSS Grid Layout] Enable runtime feature by default
https://bugs.webkit.org/show_bug.cgi?id=132189

Reviewed by Benjamin Poulain.

Source/WebCore:

  • page/Settings.in: Set cssGridLayoutEnabled to true.

Source/WebKit/mac:

  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]): Remove unneeded changes that
enable/disable the runtime feature depending on the compilation flag.
And set it to true by default.

Source/WebKit2:

  • Shared/WebPreferencesStore.h: Remove unneeded changes that

enable/disable the runtime feature depending on the compilation flag.
And set it to true by default.

  • UIProcess/gtk/ExperimentalFeatures.cpp: Set it to true by default.
1:37 AM Changeset in webkit [167992] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r167128 - wk2-gtk does not display anything
https://bugs.webkit.org/show_bug.cgi?id=125558

Reviewed by Martin Robinson.

Remove fcntl call to set access mode flags on the duplicated files
descriptor. Those flags are ignored in Linux and make fcntl to
fail in FreeBSD. We should handle the case where the passed
protection is ReadOnly.
Thanks to Raphael Kubo da Costa who proposed the solution.

  • Platform/unix/SharedMemoryUnix.cpp:

(WebKit::SharedMemory::createHandle):
(WebKit::accessModeFile): Deleted.

1:35 AM Changeset in webkit [167991] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r167116 - [GTK][WK2] Move Vector objects into WebEditorClient::executePendingEditorCommands() invocations
https://bugs.webkit.org/show_bug.cgi?id=131454

Reviewed by Carlos Garcia Campos.

  • WebProcess/WebCoreSupport/WebEditorClient.h:
  • WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:

(WebKit::WebEditorClient::executePendingEditorCommands): Take a const reference of the Vector
object to avoid unnecessary copies. Also deploy two range-based for loops and efficiently move
the Editor::Command objects into the other Vector.

1:29 AM Changeset in webkit [167990] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Unreviewed. [GTK] Plugin process crashes when loading totem plugin
https://bugs.webkit.org/show_bug.cgi?id=131357

Make Netscape browser functions static to avoid conflicts with
plugins defining those functions as well.

  • GNUmakefile.list.am: Do not build npapi.cpp.
  • plugins/PluginPackage.cpp:

(WebCore::pluginViewForInstance):
(WebCore::NPN_MemAlloc):
(WebCore::NPN_MemFree):
(WebCore::NPN_MemFlush):
(WebCore::NPN_ReloadPlugins):
(WebCore::NPN_RequestRead):
(WebCore::NPN_GetURLNotify):
(WebCore::NPN_GetURL):
(WebCore::NPN_PostURLNotify):
(WebCore::NPN_PostURL):
(WebCore::NPN_NewStream):
(WebCore::NPN_Write):
(WebCore::NPN_DestroyStream):
(WebCore::NPN_UserAgent):
(WebCore::NPN_Status):
(WebCore::NPN_InvalidateRect):
(WebCore::NPN_InvalidateRegion):
(WebCore::NPN_ForceRedraw):
(WebCore::NPN_GetValue):
(WebCore::NPN_SetValue):
(WebCore::NPN_GetJavaEnv):
(WebCore::NPN_GetJavaPeer):
(WebCore::NPN_PushPopupsEnabledState):
(WebCore::NPN_PopPopupsEnabledState):
(WebCore::NPN_PluginThreadAsyncCall):
(WebCore::NPN_GetValueForURL):
(WebCore::NPN_SetValueForURL):
(WebCore::NPN_GetAuthenticationInfo):
(WebCore::NPN_PopUpContextMenu):

  • plugins/PluginPackage.h:

(WebCore::PluginPackage::browserFuncs): Add accessor to browser
function pointers.

  • plugins/PluginView.cpp:

(WebCore::PluginView::stop): Use browser function pointers instead
of NPN wrappers that are now private.
(WebCore::PluginView::getValueForURL): Ditto.

1:23 AM Changeset in webkit [167989] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r167883 - [GTK] Crash in debug build with removing windowed plugin child widgets from the view
https://bugs.webkit.org/show_bug.cgi?id=132252

Reviewed by Philippe Normand.

It crashes due to an assert in HashTable that checks the iterators
validity. The problem is that we are iterating the children map
and the callback called on every iteration might modify the map,
making the iterators invalid. This happens when the WebView is
destroyed, GtkContainer calls gtk_container_foreach() with
gtk_widget_destroy as callback. When a widget inside a container
is destroyed, it's removed from the container, and in our case,
the child widget is removed from the map. This fixes several
crashes when running layout tests in debug bot.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContainerForall): Use copyKeysToVector() instead
of using a range iterator for the map keys and check in every
iteration that the child widget from the keys vector is still
present in the map before calling the callback.

1:23 AM Changeset in webkit [167988] by Manuel Rego Casasnovas
  • 3 edits in trunk/Source/WebCore

[CSS Grid Layout] Wrap some specific grid code under compilation flag
https://bugs.webkit.org/show_bug.cgi?id=132341

Reviewed by Benjamin Poulain.

Some static variables in RenderBox are only used for CSS Grid Layout code. Wrap them and the related methods
under ENABLE_CSS_GRID_LAYOUT compilation flag.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed):
(WebCore::RenderBox::containingBlockLogicalWidthForContent):
(WebCore::RenderBox::containingBlockLogicalHeightForContent):
(WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):

  • rendering/RenderBox.h:
1:16 AM Changeset in webkit [167987] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.2/Source/WebKit2

Merge r166574 - [GTK] Don't copy the ResourceResponse object in webkitWebViewDecidePolicy
https://bugs.webkit.org/show_bug.cgi?id=131015

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewDecidePolicy): Avoid copying the ResourceResponce object returned by webkitURIResponseGetResourceResponse.
That function already returns a reference, so the return value should be stored accordingly.

1:07 AM Changeset in webkit [167986] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.2/Source/WebCore

Merge r166480 - [GTK] [TextureMapper] Weird brightness with some videos with acceletared compositing
https://bugs.webkit.org/show_bug.cgi?id=130665

Reviewed by Martin Robinson.

When we uploaded a video texture to the mapper we were not
considering that some videos could be decoded into a format
without alpha component. Now we check if the video has alpha and
if it does not, we remove the alpha flag when retrieving the
texture from the pool. For this, the method to get the texture
from the pool was modified to receive the flags, that is mapped to
have alpha by default in order not to break any other existing
code.

Though we have a problem with AC in WTR and that makes it
currently not testable, no new tests are needed because once this
is fixed the current test set suffices to detect a possible
regression in this.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Check
the video format and decide if the texture shall be pulled with
alpha support or not.

  • platform/graphics/texmap/TextureMapper.cpp:

(WebCore::TextureMapper::acquireTextureFromPool): Use the flags
when resetting the texture.

  • platform/graphics/texmap/TextureMapper.h:

(WebCore::BitmapTexture::Flag::None): Added with 0x00.
(WebCore::TextureMapper::acquireTextureFromPool): Added flag
parameter to set up the texture with the default for including
alpha channel.

12:08 AM Changeset in webkit [167985] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Wrong units used in offset calculation from r167961.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
I accidentally mixed and matches LayoutUnits with Ints in offset calculation here.
It should all just be in LayoutUnits.

Apr 29, 2014:

10:52 PM Changeset in webkit [167984] by Brian Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: reduce per-protocol method function creation in InspectorBackend
https://bugs.webkit.org/show_bug.cgi?id=130701

Reviewed by Timothy Hatcher.

Instead of creating 4 bound functions for every backend method on startup, we
can share common functionality on the InspectorBackendCommand prototype. This
also splits the various client-facing protocol introspection mechanisms from
the message encoding/decoding code.

We use a workaround to make the command instances themselves callable as well
as having .invoke, .promise, and .supports. InspectorAgent.methodName returns a
trampoline function that performs the default method invocation. The trampoline's
proto is patched to point to InspectorBackendClass.prototype, and the command
instance is saved in the closure and on the trampoline function itself.

  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass.prototype._registerPendingResponse):
(InspectorBackendClass.prototype._invokeMethod):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.registerEvent):
(InspectorBackendCommand):
(.callable):
(InspectorBackendCommand.create):
(InspectorBackendCommand.prototype.invoke):
(InspectorBackendCommand.prototype.promise):
(InspectorBackendCommand.prototype.supports):
(InspectorBackendCommand.prototype._invokeWithArguments):
(InspectorBackendClass.prototype._wrap): Deleted.
(InspectorBackendClass.prototype._invoke): Deleted.
(InspectorBackendClass.prototype._promise): Deleted.
(InspectorBackendClass.prototype._supports): Deleted.
(InspectorBackendClass.prototype._sendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._wrapCallbackAndSendMessageObject): Deleted.
(InspectorBackendClass.prototype.sendMessageObjectToBackend): Deleted.

10:42 PM Changeset in webkit [167983] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Unreviewed, rolling out r167962 and r167975.
https://bugs.webkit.org/show_bug.cgi?id=132376

Mysteriously broke many tests (Requested by ap on #webkit).

Reverted changesets:

"[Mac, iOS] Support caption activation via JS
webkitHasClosedCaptions method"
https://bugs.webkit.org/show_bug.cgi?id=132320
http://trac.webkit.org/changeset/167962

"Unreviewed test fix after r167962."
http://trac.webkit.org/changeset/167975

10:15 PM Changeset in webkit [167982] by hyatt@apple.com
  • 3 edits in trunk/Source/WebCore

[New Multicolumn] Multiple tests assert in RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=132285

Reviewed by Simon Fraser.

Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
geometry map gets the right offsets. This is really only relevant for the
geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::offsetFromContainer):

  • rendering/RenderMultiColumnFlowThread.h:
9:54 PM Changeset in webkit [167981] by Stephanie Lewis
  • 2 edits in trunk/Tools

<rdar://problem/16765765> Use JSON::PP in perl scripts instead of JSON.

Rubber stamped by Jessie Berlin.

JSON.pm was removed from our tools setup.

  • Scripts/generate-coverage-data:
9:03 PM Changeset in webkit [167980] by benjamin@webkit.org
  • 4 edits in trunk/Source

[iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
https://bugs.webkit.org/show_bug.cgi?id=132368

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-29
Reviewed by Simon Fraser.

Source/WebCore:

  • platform/graphics/ca/mac/TileController.mm:

(WebCore::TileController::TileController):
The initial device scale factor was initialized to 1. We were returning the wrong zoomedOutContentsScale() and
contentsScale() on retina devices until the next successful scale update.

Source/WebKit2:

  • WebProcess/WebPage/mac/PlatformCALayerRemote.cpp:

(WebKit::PlatformCALayerRemote::PlatformCALayerRemote):
PlatformCALayerRemote always initialized the content scale to 1. Since contentsScale is supposed to reflect
zoomScale * deviceScaleFactor, the value should be 2.

This was causing bugs whenever the page scale factor was 1/2 on retina device (device scale factor = 2).

When the page is initialized, GraphicsLayerCA::updateContentsScale(0.5) computes a contentsScale of 1. There is an early
return on if (contentsScale == m_layer->contentsScale()). Since PlatformCALayerRemote->contentsScale() was incorreclty
returning one, we were leaving the tile backing unmodified.

Later, when the transaction is commited, the tile backing would still be default initialized and would render everything
at the wrong scale.

8:36 PM Changeset in webkit [167979] by ap@apple.com
  • 3 edits in trunk/Source/WebCore

Remove an unused override of BlobRegistryImpl::appendStorageItems
https://bugs.webkit.org/show_bug.cgi?id=132365

Reviewed by Andreas Kling.

  • platform/network/BlobRegistryImpl.cpp:

(WebCore::BlobRegistryImpl::appendStorageItems): Deleted.

  • platform/network/BlobRegistryImpl.h:
8:34 PM Changeset in webkit [167978] by hyatt@apple.com
  • 2 edits in trunk/LayoutTests

Fix test up so that it looks the same as it did before my landing in r167965.

  • fast/multicol/mixed-positioning-stacking-order.html:
7:52 PM Changeset in webkit [167977] by eric.carlson@apple.com
  • 4 edits in trunk/Source

[Mac] tag the video layers with descriptive name to aid debugging
https://bugs.webkit.org/show_bug.cgi?id=132371

Reviewed by Darin Adler.

Source/WebCore:

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Set the AVPlayerLayer

name in a debug build.

Source/WebKit2:

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::enterFullscreenForNode): Set the

fullscreen host layer name in a debug build.

6:53 PM Changeset in webkit [167976] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK][cmake] CMake variable (non)expansion causing 'File name too long' build error.
https://bugs.webkit.org/show_bug.cgi?id=132244

Patch by Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> on 2014-04-29
Reviewed by Martin Robinson.

Removing quotes around include directory variable ${WebCore_INCLUDE_DIRECTORIES} in
the include_directories cmake macro enables the variable to be expanded correctly.

No tests created as this fixes a platform specific build issue.

  • PlatformGTK.cmake:
6:09 PM Changeset in webkit [167975] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

Unreviewed test fix after r167962.

  • Modules/mediacontrols/mediaControlsApple.css:

(.hidden): Use common '.hidden' class for controls.
(video::-webkit-media-text-track-container .hidden): Deleted.

6:04 PM Changeset in webkit [167974] by beidson@apple.com
  • 15 edits in trunk/Source

Handle selection services menu.
<rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit2:
Add members for the relevant info for showing a service menu for a selection:

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::controlledDataIsEditable):

  • Shared/ContextMenuContextData.h:

(WebKit::ContextMenuContextData::ContextMenuContextData):
(WebKit::ContextMenuContextData::controlledSelectionData):
(WebKit::ContextMenuContextData::needsServicesMenu):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::replaceSelectionWithPasteboardData): Changed to allow for multiple types on the overridden pasteboard.
(WebKit::WebPageProxy::showSelectionServiceMenu):

Update the services menu code to know the difference between an image service and a selection service:

  • UIProcess/mac/WebContextMenuProxyMac.h:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKSharingServicePickerDelegate sharingServicePicker:sharingServicesForItems:mask:proposedSharingServices:]):
(-[WKSharingServicePickerDelegate sharingService:willShareItems:]):
(-[WKSharingServicePickerDelegate sharingService:didShareItems:]):
(WebKit::WebContextMenuProxyMac::contextMenuItemSelected):
(WebKit::WebContextMenuProxyMac::setupServicesMenu):
(WebKit::WebContextMenuProxyMac::clearServicesMenu):
(WebKit::WebContextMenuProxyMac::populate):
(WebKit::WebContextMenuProxyMac::showContextMenu):
(WebKit::WebContextMenuProxyMac::setupImageServicesMenu): Deleted.
(WebKit::WebContextMenuProxyMac::clearImageServicesMenu): Deleted.

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp:

(WebKit::WebPasteboardOverrides::getDataForOverride):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::replaceSelectionWithPasteboardData): Changed to allow for multiple types on the overridden pasteboard.
(WebKit::WebPage::handleSelectionServiceClick): Pass the relevant selection data through to the UIProcess as RTFD data.

  • WebProcess/WebPage/mac/SelectionOverlayControllerMac.mm:

(WebKit::SelectionOverlayController::handleClick): Notify the WebPage of the click.

5:36 PM Changeset in webkit [167973] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Removing unused argument in InlineFlowBox::placeBoxesInInlineDirection()
https://bugs.webkit.org/show_bug.cgi?id=132369

Reviewed by Darin Adler.

This was not caught by our compiler because placeBoxesInInlineDirection()
is mutually-recursive with placeBoxRangeInInlineDirection().

No new tests are necessary because there should be no behavior change.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
(WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):

  • rendering/InlineFlowBox.h:
  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):

5:34 PM Changeset in webkit [167972] by matthew_hanson@apple.com
  • 3 edits
    2 copies in branches/safari-537.76-branch

Merge r160010.

5:11 PM Changeset in webkit [167971] by commit-queue@webkit.org
  • 9 edits in trunk

[WinCairo] Switch video from GStreamer to Media Foundation.
https://bugs.webkit.org/show_bug.cgi?id=132358

Patch by Alex Christensen <achristensen@webkit.org> on 2014-04-29
Reviewed by Brent Fulgham.

Source/WebCore:

  • WebCore.vcxproj/WebCore.vcxproj:

Removed dependencies on GStreamer.

Source/WebKit:

  • WebKit.vcxproj/WebKit/WebKit.vcxproj:

Removed dependencies on GStreamer.

Source/WTF:

  • WTF.vcxproj/WTF.vcxproj:

Removed dependencies on GStreamer.

  • wtf/Platform.h:

Use Media Foundation instead of GStreamer and GLib.

Websites/webkit.org:

  • building/tools.html:

Removed requirement of installing GStreamer.

4:53 PM Changeset in webkit [167970] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Remove some PLATFORM(IOS) #ifdefs related to hasAcceleratedTouchScrolling()
https://bugs.webkit.org/show_bug.cgi?id=132353

Reviewed by Tim Horton & Darin Adler.

Minor cleanup and refactoring to remove #idefs.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollTo): No need for this #ifdef, usesCompositedScrolling()
gives the right answser already.
(WebCore::RenderLayer::visibleContentRectInternal): Use showsOverflowControls() to
avoid #ifdef.
(WebCore::RenderLayer::invalidateScrollbarRect): Ditto.
(WebCore::RenderLayer::invalidateScrollCornerRect): Ditto.
(WebCore::RenderLayer::verticalScrollbarWidth): Ditto.
(WebCore::RenderLayer::horizontalScrollbarHeight): Ditto.
(WebCore::RenderLayer::showsOverflowControls): Return false on iOS.
(WebCore::RenderLayer::paintOverflowControls): Ditto.
(WebCore::RenderLayer::calculateClipRects): Ditto.

  • rendering/RenderLayer.h:
  • rendering/RenderLayerBacking.cpp:

(WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
Just #ifdef in side of this function rather than having two similar functions.
(WebCore::RenderLayerBacking::shouldClipCompositedBounds):
(WebCore::hasNonZeroTransformOrigin):
(WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Use a local bool
to reduce #ifdefs.
(WebCore::layerOrAncestorIsTransformedOrScrolling): Deleted.

4:53 PM Changeset in webkit [167969] by Simon Fraser
  • 6 edits
    2 deletes in trunk

Remove Settings::compositedScrollingForFramesEnabled
https://bugs.webkit.org/show_bug.cgi?id=132352

Reviewed by Andreas Kling.

Source/WebCore:
The usesCompositedScrolling setting was only used by Chromium, so
remove it and associated code.

  • page/FrameView.cpp:

(WebCore::FrameView::usesCompositedScrolling): Deleted.

  • page/FrameView.h:
  • page/Settings.in:
  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::updateScrollLayerPosition):

LayoutTests:

  • compositing/iframes/iframe-composited-scrolling-expected.txt: Removed.
  • compositing/iframes/iframe-composited-scrolling.html: Removed.
4:40 PM Changeset in webkit [167968] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

<rdar://problem/16745596> [Cocoa] Crash when invoking a method with an unsigned parameter on a remote object
https://bugs.webkit.org/show_bug.cgi?id=132366

Reviewed by Anders Carlsson.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocation): Handle the 'I' type code. Interpret the 'q' and 'Q' type codes in an
architecture-independent manner.
(decodeInvocationArguments): Ditto.

4:34 PM Changeset in webkit [167967] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Move removeEquivalentProperties functions to EditingStyle
https://bugs.webkit.org/show_bug.cgi?id=131093

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-04-29
Reviewed by Darin Adler.

Moved the removeEquivalentProperties functions
from StyleProperties to EditingStyle class.

  • css/StyleProperties.cpp:

(WebCore::MutableStyleProperties::removeEquivalentProperties): Deleted.

  • css/StyleProperties.h:
  • editing/EditingStyle.cpp:

(WebCore::EditingStyle::removeStyleAddedByNode):
(WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::EditingStyle::removeEquivalentProperties):
(WebCore::extractPropertiesNotIn):

  • editing/EditingStyle.h:
4:20 PM Changeset in webkit [167966] by Lucas Forschler
  • 7 edits
    4 deletes in tags/Safari-538.32

Rollout r167889

3:59 PM Changeset in webkit [167965] by hyatt@apple.com
  • 94 edits in trunk

[New Multicolumn] Implement support for compositing
https://bugs.webkit.org/show_bug.cgi?id=132298

Source/WebCore:

Reviewed by Simon Fraser.

  • rendering/RenderLayer.cpp:

(WebCore::accumulateOffsetTowardsAncestor):
Add in a case for the new columns that calls into the multi-column flow thread
to get an offset to adjust by.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
Make sure this code only runs for named flow threads.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::canBeComposited):
Turn on compositing support for in-flow RenderFlowThreads instead of always returning
false

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
Changed this function to fix a couple of bugs exposed by compositing/columns tests. Its
end goal is the same, but the approach is improved.

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::endFlow):
Don't pad out to a multiple of column height. You can't flip around a flow thread
to get back to accurate physical coordinates if bogus padding is introduced. This
seemed to have no effect on any layout tests when removed, so I don't think it
was really serving any useful purpose.

(WebCore::RenderMultiColumnSet::columnTranslationForOffset):
Don't factor in the overall flow thread portion, since this is handled by the callers
now.

(WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):

  • rendering/RenderMultiColumnSet.h:

Change this function to be ASSERT_NOT_REACHED(), since we want to know if someone calls
it. It only runs for named flow thread compositing code, so it would be a mistake if
this ever gets invoked.

LayoutTests:

Reviewed by Simon Fraser.

Minor pixel test changes based off how we flip now.

  • platform/mac/fast/multicol/block-axis-horizontal-bt-expected.png:
  • platform/mac/fast/multicol/block-axis-horizontal-tb-expected.png:
  • platform/mac/fast/multicol/block-axis-vertical-lr-expected.png:
  • platform/mac/fast/multicol/block-axis-vertical-rl-expected.png:
  • platform/mac/fast/multicol/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
  • platform/mac/fast/multicol/client-rects-spanners-expected.txt:
  • platform/mac/fast/multicol/column-break-with-balancing-expected.png:
  • platform/mac/fast/multicol/column-count-with-rules-expected.png:
  • platform/mac/fast/multicol/column-rules-expected.png:
  • platform/mac/fast/multicol/column-rules-stacking-expected.png:
  • platform/mac/fast/multicol/columns-shorthand-parsing-expected.png:
  • platform/mac/fast/multicol/float-avoidance-expected.png:
  • platform/mac/fast/multicol/float-multicol-expected.png:
  • platform/mac/fast/multicol/float-paginate-complex-expected.png:
  • platform/mac/fast/multicol/float-paginate-empty-lines-expected.png:
  • platform/mac/fast/multicol/float-paginate-expected.png:
  • platform/mac/fast/multicol/layers-in-multicol-expected.png:
  • platform/mac/fast/multicol/layers-split-across-columns-expected.png:
  • platform/mac/fast/multicol/margin-collapse-expected.png:
  • platform/mac/fast/multicol/max-height-columns-block-expected.png:
  • platform/mac/fast/multicol/nested-columns-expected.png:
  • platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
  • platform/mac/fast/multicol/overflow-across-columns-expected.png:
  • platform/mac/fast/multicol/overflow-across-columns-percent-height-expected.png:
  • platform/mac/fast/multicol/overflow-unsplittable-expected.png:
  • platform/mac/fast/multicol/paginate-block-replaced-expected.png:
  • platform/mac/fast/multicol/pagination/BottomToTop-bt-expected.png:
  • platform/mac/fast/multicol/pagination/BottomToTop-lr-expected.png:
  • platform/mac/fast/multicol/pagination/BottomToTop-rl-expected.png:
  • platform/mac/fast/multicol/pagination/BottomToTop-tb-expected.png:
  • platform/mac/fast/multicol/pagination/LeftToRight-bt-expected.png:
  • platform/mac/fast/multicol/pagination/LeftToRight-lr-expected.png:
  • platform/mac/fast/multicol/pagination/LeftToRight-rl-expected.png:
  • platform/mac/fast/multicol/pagination/LeftToRight-tb-expected.png:
  • platform/mac/fast/multicol/pagination/RightToLeft-bt-expected.png:
  • platform/mac/fast/multicol/pagination/RightToLeft-lr-expected.png:
  • platform/mac/fast/multicol/pagination/RightToLeft-rl-expected.png:
  • platform/mac/fast/multicol/pagination/RightToLeft-tb-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-bt-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-lr-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-rl-expected.png:
  • platform/mac/fast/multicol/pagination/TopToBottom-tb-expected.png:
  • platform/mac/fast/multicol/positioned-split-expected.png:
  • platform/mac/fast/multicol/positive-leading-expected.png:
  • platform/mac/fast/multicol/scrolling-overflow-expected.png:
  • platform/mac/fast/multicol/shadow-breaking-expected.png:
  • platform/mac/fast/multicol/single-line-expected.png:
  • platform/mac/fast/multicol/span/anonymous-before-child-parent-crash-expected.png:
  • platform/mac/fast/multicol/span/anonymous-split-block-crash-expected.png:
  • platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.png:
  • platform/mac/fast/multicol/span/anonymous-style-inheritance-expected.txt:
  • platform/mac/fast/multicol/span/clone-anonymous-block-non-inline-child-crash-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-complex-splitting-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-generated-content-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-child-property-removal-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-dynamic-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-expected.png:
  • platform/mac/fast/multicol/span/span-as-immediate-columns-child-removal-expected.png:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-dynamic-expected.png:
  • platform/mac/fast/multicol/span/span-as-nested-columns-child-expected.png:
  • platform/mac/fast/multicol/span/span-as-nested-inline-block-child-expected.png:
  • platform/mac/fast/multicol/span/span-margin-collapsing-expected.png:
  • platform/mac/fast/multicol/table-margin-collapse-expected.png:
  • platform/mac/fast/multicol/table-vertical-align-expected.png:
  • platform/mac/fast/multicol/unsplittable-inline-block-expected.png:
  • platform/mac/fast/multicol/vertical-lr/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/vertical-lr/column-break-with-balancing-expected.png:
  • platform/mac/fast/multicol/vertical-lr/column-count-with-rules-expected.png:
  • platform/mac/fast/multicol/vertical-lr/column-rules-expected.png:
  • platform/mac/fast/multicol/vertical-lr/float-avoidance-expected.png:
  • platform/mac/fast/multicol/vertical-lr/float-multicol-expected.png:
  • platform/mac/fast/multicol/vertical-lr/float-paginate-complex-expected.png:
  • platform/mac/fast/multicol/vertical-lr/float-paginate-expected.png:
  • platform/mac/fast/multicol/vertical-lr/nested-columns-expected.png:
  • platform/mac/fast/multicol/vertical-lr/unsplittable-inline-block-expected.png:
  • platform/mac/fast/multicol/vertical-rl/border-padding-pagination-expected.png:
  • platform/mac/fast/multicol/vertical-rl/column-break-with-balancing-expected.png:
  • platform/mac/fast/multicol/vertical-rl/column-count-with-rules-expected.png:
  • platform/mac/fast/multicol/vertical-rl/column-rules-expected.png:
  • platform/mac/fast/multicol/vertical-rl/float-avoidance-expected.png:
  • platform/mac/fast/multicol/vertical-rl/float-multicol-expected.png:
  • platform/mac/fast/multicol/vertical-rl/float-paginate-complex-expected.png:
  • platform/mac/fast/multicol/vertical-rl/float-paginate-expected.png:
  • platform/mac/fast/multicol/vertical-rl/nested-columns-expected.png:
  • platform/mac/fast/multicol/vertical-rl/unsplittable-inline-block-expected.png:
3:31 PM FTLJIT edited by fpizlo@apple.com
(diff)
3:23 PM Changeset in webkit [167964] by oliver@apple.com
  • 11 edits in trunk

Source/JavaScriptCore: Don't hold on to parameterBindingNodes forever
https://bugs.webkit.org/show_bug.cgi?id=132360

Reviewed by Geoffrey Garen.

Don't keep the parameter nodes anymore. Instead we store the
original parameter string and reparse whenever we actually
need them. Because we only actually need them for compilation
this only results in a single extra parse.

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::generateFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):
(JSC::UnlinkedFunctionExecutable::visitChildren):
(JSC::UnlinkedFunctionExecutable::finishCreation):
(JSC::UnlinkedFunctionExecutable::paramString):
(JSC::UnlinkedFunctionExecutable::parameters):
(JSC::UnlinkedFunctionExecutable::parameterCount): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedFunctionExecutable::create):
(JSC::UnlinkedFunctionExecutable::parameterCount):
(JSC::UnlinkedFunctionExecutable::parameters): Deleted.
(JSC::UnlinkedFunctionExecutable::finishCreation): Deleted.

  • parser/ASTBuilder.h:

(JSC::ASTBuilder::ASTBuilder):
(JSC::ASTBuilder::setFunctionBodyParameters):

  • parser/Nodes.h:

(JSC::FunctionBodyNode::parametersStartOffset):
(JSC::FunctionBodyNode::parametersEndOffset):
(JSC::FunctionBodyNode::setParameterLocation):

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseFunctionInfo):
(JSC::parseParameters):

  • parser/Parser.h:

(JSC::parse):

  • parser/SourceCode.h:

(JSC::SourceCode::subExpression):

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::setFunctionBodyParameters):

LayoutTests: Don't hold on to parameter BindingNodes forever
https://bugs.webkit.org/show_bug.cgi?id=132360

Reviewed by Geoffrey Garen.

We don't regenerate the parameter string anymore, so these tests now
match the original input.

  • js/destructuring-assignment-expected.txt:
3:21 PM Changeset in webkit [167963] by mhahnenberg@apple.com
  • 12 edits
    1 add in trunk/Source

JSProxies should be cacheable
https://bugs.webkit.org/show_bug.cgi?id=132351

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:
Whenever we encounter a proxy in an inline cache we should try to cache on the
proxy's target instead of giving up.

This patch adds support for a simple "recursive" inline cache if the base object
we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses
are the only ones to benefit from this right now.

This is performance neutral on the benchmarks we track. Currently we won't
cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.

  • jit/Repatch.cpp:

(JSC::generateByIdStub):
(JSC::tryBuildGetByIDList):
(JSC::tryCachePutByID):
(JSC::tryBuildPutByIdList):

  • jsc.cpp:

(GlobalObject::finishCreation):
(functionCreateProxy):

  • runtime/IntendedStructureChain.cpp:

(JSC::IntendedStructureChain::isNormalized):

  • runtime/JSCellInlines.h:

(JSC::JSCell::isProxy):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::finishCreation):

  • runtime/JSProxy.h:

(JSC::JSProxy::createStructure):
(JSC::JSProxy::targetOffset):

  • runtime/JSType.h:
  • runtime/Operations.h:

(JSC::isPrototypeChainNormalized):

  • runtime/Structure.h:

(JSC::Structure::isProxy):

  • tests/stress/proxy-inline-cache.js: Added.

(cacheOnTarget.getX):
(cacheOnTarget):
(cacheOnPrototypeOfTarget.getX):
(cacheOnPrototypeOfTarget):
(dontCacheOnProxyInPrototypeChain.getX):
(dontCacheOnProxyInPrototypeChain):
(dontCacheOnTargetOfProxyInPrototypeChainOfTarget.getX):
(dontCacheOnTargetOfProxyInPrototypeChainOfTarget):

Source/WebCore:
No new tests.

Whenever we encounter a proxy in an inline cache we should try to cache on the
proxy's target instead of giving up.

This patch adds support for a simple "recursive" inline cache if the base object
we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses
are the only ones to benefit from this right now.

This is performance neutral on the benchmarks we track. Currently we won't
cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.

  • bindings/js/JSDOMWindowShell.h:

(WebCore::JSDOMWindowShell::createStructure):

3:19 PM Changeset in webkit [167962] by Brent Fulgham
  • 6 edits in trunk/Source/WebCore

[Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
https://bugs.webkit.org/show_bug.cgi?id=132320

Reviewed by Eric Carlson.

  • Modules/mediacontrols/mediaControlsApple.css:

(video::-webkit-media-text-track-container .hidden): Added.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
new 'updateCaptionsContainer'.
(WebCore::HTMLMediaElement::updateCaptionContainer): Added.

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

(WebCore::MediaControlTextTrackContainerElement::hide): Use CSS class .hidden instead of
hard-coded "display:none".
(WebCore::MediaControlTextTrackContainerElement::show): Ditto.

  • html/shadow/MediaControlElements.h:
3:14 PM Changeset in webkit [167961] by roger_fong@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't immediately snapshot plugin to allow for proper dominant plugin detection.
https://bugs.webkit.org/show_bug.cgi?id=132294.
<rdar://problem/16745679>

Reviewed by Dean Jackson.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::didInitializePlugin):
Instead of immediately setting the display state to DisplaySnapshot,
put it on a timer to let the page fully layout and get hit test properly.

3:10 PM Changeset in webkit [167960] by roger_fong@apple.com
  • 5 edits
    6 adds in trunk

Plugins hidden by images should autoplay.
https://bugs.webkit.org/show_bug.cgi?id=132222.
<rdar://problem/16653536>

Reviewed by Jon Lee and Darin Adler.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::determinePrimarySnapshottedPlugIn):
If the image on top of the plugin is similarly sized and similarly positioned as the plugin rect,
set the plugin to autoplay. This is assuming that the previous snapshot checks have passed as well.

  • WebCore.exp.in: Add exports needed by WK2.
  • platform/mac-wk2/plugins/snapshotting/autoplay-plugin-blocked-by-image-expected.txt: Added.
  • platform/mac-wk2/plugins/snapshotting/autoplay-plugin-mostly-blocked-by-image-expected.txt: Added.
  • platform/mac-wk2/plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image-expected.txt: Added.
  • plugins/snapshotting/autoplay-plugin-blocked-by-image.html: Added.
  • plugins/snapshotting/autoplay-plugin-mostly-blocked-by-image.html: Added.
  • plugins/snapshotting/snapshot-plugin-not-quite-blocked-by-image.html: Added.
3:07 PM Changeset in webkit [167959] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix cloop build.

  • wtf/Platform.h:
3:02 PM Changeset in webkit [167958] by fpizlo@apple.com
  • 12 edits in trunk

Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
https://bugs.webkit.org/show_bug.cgi?id=112840

Rubber stamped by Geoffrey Garen.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:
It already has a lot of tests.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/build-jsc: Enable it on Mac.
  • Scripts/build-webkit: Enable it on Mac.
  • Scripts/export-llvm-build: Make it slightly easier to export the build if you've done a "make install".
2:58 PM Changeset in webkit [167957] by Lucas Forschler
  • 1 edit in trunk/Tools/Scripts/webkitpy/common/checkout/scm/svn.py

Fix check-webkit-style after r167926.

2:54 PM Changeset in webkit [167956] by beidson@apple.com
  • 21 edits
    2 adds in trunk/Source

Change Image Controls replacement to use selection and paste
<rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992

Reviewed by Tim Horton.

Source/WebCore:

  • WebCore.exp.in: Remove deleted symbol.
  • html/shadow/mac/ImageControlsButtonElementMac.cpp:

(WebCore::ImageControlsButtonElementMac::defaultEventHandler):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::showImageControlsMenu): Select the image element

before showing the menu.

(WebCore::ContextMenuController::replaceControlledImage): Deleted.

  • page/ContextMenuController.h:

Source/WebKit/mac:

  • Misc/WebSharingServicePickerController.mm:

(-[WebSharingServicePickerController sharingService:didShareItems:]): Write the

replacement data to a special pasteboard, then replace the current selection from
that pasteboard.

Source/WebKit2:
Add a "pasteboard override" mechanism which allows WebKit to keep pasteboard content local
to the WebProcess and access it there without having to message up to the UI process:

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.cpp: Added.

(WebKit::WebPasteboardOverrides::sharedPasteboardOverrides):
(WebKit::WebPasteboardOverrides::WebPasteboardOverrides):
(WebKit::WebPasteboardOverrides::addOverride):
(WebKit::WebPasteboardOverrides::removeOverride):
(WebKit::WebPasteboardOverrides::overriddenTypes):
(WebKit::WebPasteboardOverrides::getDataForOverride):

  • WebProcess/WebCoreSupport/WebPasteboardOverrides.h: Added.

Change the pasteboard strategy to consult the pasteboard overrides before consulting the native pasteboard:

  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:

(WebKit::WebPlatformStrategies::getTypes):
(WebKit::WebPlatformStrategies::bufferForType):

Add "replaceSelectionWithPasteboardData" which uses the new pasteboard overrides mechanism
and then has WebCore perform the replacement:

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::replaceSelectionPasteboardName):
(WebKit::WebPage::replaceSelectionWithPasteboardData):

  • UIProcess/mac/WebPageProxyMac.mm:

(WebKit::WebPageProxy::replaceSelectionWithPasteboardData):

  • UIProcess/mac/WebContextMenuProxyMac.h:

(WebKit::WebContextMenuProxyMac::page):

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKSharingServicePickerDelegate sharingService:didShareItems:]): Use "replaceSelectionWithPasteboardData".
(WebKit::WebContextMenuProxyMac::WebContextMenuProxyMac):
(WebKit::WebContextMenuProxyMac::replaceControlledImage): Deleted.

Remain other remnants of "replaceControlledImage":

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::replaceControlledImage): Deleted.

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::replaceControlledImage): Deleted.

  • WebProcess/WebPage/WebContextMenu.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::replaceControlledImage): Deleted.

  • WebKit2.xcodeproj/project.pbxproj:
1:51 PM Changeset in webkit [167955] by Brian Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: DataGrid columns should be objects not Maps
https://bugs.webkit.org/show_bug.cgi?id=129383

Reviewed by Timothy Hatcher.

This reverts an earlier conversion to maps, so that column properties
(which rarely change) can be optimized.

String literals for column properties have been preserved so columns
can be easily converted into objects with methods.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGrid.prototype.autoSizeColumns):
(WebInspector.DataGrid.prototype.set var):
(WebInspector.DataGrid.prototype.set if):
(WebInspector.DataGrid.prototype.insertColumn):
(WebInspector.DataGrid.prototype.removeColumn.get this):
(WebInspector.DataGrid.prototype.removeColumn):
(WebInspector.DataGrid.prototype.columnWidthsMap):
(WebInspector.DataGrid.prototype.applyColumnWidthsMap):
(WebInspector.DataGrid.prototype._collapseColumnGroupWithCell):
(WebInspector.DataGridNode.prototype.createCell.get if):
(WebInspector.DataGridNode.prototype.createCell):
(WebInspector.DataGrid.prototype.get length): Deleted.

  • UserInterface/Views/ProbeSetDataGrid.js:

(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged.get this):
(WebInspector.ProbeSetDataGrid.prototype._probeExpressionChanged):

  • UserInterface/Views/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters.scopeBar.this.columns.get string_appeared_here):
(WebInspector.TimelineDataGrid.prototype.treeElementMatchesActiveScopeFilters):

1:33 PM Changeset in webkit [167954] by akling@apple.com
  • 4 edits in trunk/LayoutTests

REGRESSION (r167906?): js/dom/basic-weakmap.html is much more flaky than before
<https://webkit.org/b/132322>

Remove the part of js/dom/basic-weakmap.html that expects deterministic behavior
from our non-deterministic GC.

Rubber-stamped by Phil Pizlo.

  • TestExpectations:
  • js/dom/basic-weakmap-expected.txt:
  • js/dom/script-tests/basic-weakmap.js:
1:28 PM Changeset in webkit [167953] by msaboff@apple.com
  • 2 edits in trunk/Source/WTF

For DARWIN platforms, use system temporary directory for DataLog output
https://bugs.webkit.org/show_bug.cgi?id=132346

Reviewed by Geoffrey Garen.

Added code to call confstr() to access the process's temporary directory to use that
location instead of /tmp/. Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR.

  • wtf/DataLog.cpp:

(WTF::initializeLogFileOnce):

1:25 PM Changeset in webkit [167952] by Lucas Forschler
  • 8 edits
    2 copies in tags/Safari-538.32

Merged r167942.

12:47 PM Changeset in webkit [167951] by ggaren@apple.com
  • 5 edits in trunk

String.prototype.trim removes U+200B from strings.
https://bugs.webkit.org/show_bug.cgi?id=130184

Reviewed by Michael Saboff.

Source/JavaScriptCore:

  • runtime/StringPrototype.cpp:

(JSC::trimString):
(JSC::isTrimWhitespace): Deleted.

LayoutTests:

  • js/script-tests/string-trim.js:
  • js/string-trim-expected.txt:
12:23 PM Changeset in webkit [167950] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
https://bugs.webkit.org/show_bug.cgi?id=111613
<rdar://problem/13407093>

  • platform/mac/TestExpectations: Remove test expectation, now that the bug is fixed.
11:56 AM Changeset in webkit [167949] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Build fix.

  • DatabaseProcess/ios/DatabaseProcessIOS.mm:
11:20 AM Changeset in webkit [167948] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Zombifying sweep should ignore retired blocks.
<https://webkit.org/b/132344>

Reviewed by Mark Hahnenberg.

By definition, retired blocks do not have "dead" objects, or at least
none that we know of yet until the next marking phase has been run
over it. So, we should not be sweeping them (even for zombie mode).

  • heap/Heap.cpp:

(JSC::Heap::zombifyDeadObjects):

  • heap/MarkedSpace.cpp:

(JSC::MarkedSpace::zombifySweep):

  • heap/MarkedSpace.h:

(JSC::ZombifySweep::operator()):

11:09 AM Changeset in webkit [167947] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r167906?): js/dom/basic-weakmap.html is much more flaky than before
https://bugs.webkit.org/show_bug.cgi?id=132322

Mark the test as flaky.

10:54 AM Changeset in webkit [167946] by ap@apple.com
  • 10 edits
    1 copy
    2 adds in trunk/Source/WebKit2

[WK2] DatabaseProcess should be sandboxed
https://bugs.webkit.org/show_bug.cgi?id=132324
<rdar://problem/15961708>

Reviewed by Darin Adler.

  • Configurations/WebKit2.xcconfig: Added the profile to the list of files skipped

on iOS.

  • DatabaseProcess/DatabaseProcess.cpp: (WebKit::DatabaseProcess::initializeDatabaseProcess):

Consume a sandbox extension for IndexedDB directory (which we get with initialization
message after entering sandbox).

  • DatabaseProcess/ios: Added.
  • DatabaseProcess/ios/DatabaseProcessIOS.mm: Copied from Source/WebKit2/DatabaseProcess/mac/DatabaseProcessMac.mm.

Separated from Mac version to match how other processes are implemented.

  • DatabaseProcess/mac/DatabaseProcessMac.mm: (WebKit::DatabaseProcess::initializeProcessName):

Removed ifdefs.

  • DatabaseProcess/mac/com.apple.WebKit.Databases.sb.in: Added.
  • DerivedSources.make: Generate the profile from .sb.in.
  • Shared/Databases/DatabaseProcessCreationParameters.cpp:

(WebKit::DatabaseProcessCreationParameters::encode):
(WebKit::DatabaseProcessCreationParameters::decode):

  • Shared/Databases/DatabaseProcessCreationParameters.h:

Added a sandbox extension for indexedDatabaseDirectory.

  • Shared/SecurityOriginData.h: Added an unrelated FIXME.
  • UIProcess/WebContext.cpp: (WebKit::WebContext::ensureDatabaseProcess): Create

a sandbox extension for indexedDatabaseDirectory.

  • WebKit2.xcodeproj/project.pbxproj: Added new files.
10:45 AM Changeset in webkit [167945] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Fix bit rot in zombie mode heap code.
<https://webkit.org/b/132342>

Reviewed by Mark Hahnenberg.

Need to enter a DelayedReleaseScope before doing a sweep.

  • heap/Heap.cpp:

(JSC::Heap::zombifyDeadObjects):

10:42 AM Changeset in webkit [167944] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Remove workaround for <rdar://problem/16578727>.
https://bugs.webkit.org/show_bug.cgi?id=132338

Reviewed by Darin Adler.

Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::enterFullscreen):

10:41 AM Changeset in webkit [167943] by zandobersek@gmail.com
  • 36 edits in trunk/Source/WebCore

ScriptExecutionContext::Task should work well with C++11 lambdas
https://bugs.webkit.org/show_bug.cgi?id=129795

Reviewed by Darin Adler.

Instead of having classes that subclass ScriptExecutionContext::Task and override
the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
which would contain the code currently kept in the performTask() methods.

This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
cleanup tasks, the Task object can be implicitly constructed by using the initializer list
constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
object in the std::function wrapper, along with a boolean member that indicates whether the
task is of cleanup nature.

  • Modules/quota/StorageErrorCallback.cpp:

(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
(WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.

  • Modules/quota/StorageErrorCallback.h:

(WebCore::StorageErrorCallback::CallbackTask::create): Deleted.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):
(WebCore::Database::runTransaction):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::DerefContextTask::create): Deleted.
(WebCore::DerefContextTask::performTask): Deleted.
(WebCore::DerefContextTask::isCleanupTask): Deleted.
(WebCore::DerefContextTask::DerefContextTask): Deleted.
(WebCore::callTransactionErrorCallback): Deleted.
(WebCore::DeliverPendingCallbackTask::create): Deleted.
(WebCore::DeliverPendingCallbackTask::performTask): Deleted.
(WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseCreationCallbackTask::create): Deleted.
(WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.

  • Modules/webdatabase/DatabaseSync.cpp:

(WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • bindings/js/JSCallbackData.h:

(WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
(WebCore::DeleteCallbackDataTask::create): Deleted.
(WebCore::DeleteCallbackDataTask::performTask): Deleted.
(WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.

  • bindings/js/JSDOMGlobalObjectTask.cpp:

(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
(WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
(WebCore::JSGlobalObjectTask::performTask): Deleted.

  • bindings/js/JSDOMGlobalObjectTask.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueTaskToEventLoop):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):

  • bindings/scripts/CodeGeneratorJS.pm:
  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::~JSTestCallback):
(GenerateCallbackImplementation):

  • dom/CrossThreadTask.h:

(WebCore::CrossThreadTask1::performTask):
(WebCore::CrossThreadTask2::performTask):
(WebCore::CrossThreadTask3::performTask):
(WebCore::CrossThreadTask4::performTask):
(WebCore::CrossThreadTask5::performTask):
(WebCore::CrossThreadTask6::performTask):
(WebCore::CrossThreadTask7::performTask):
(WebCore::CrossThreadTask8::performTask):
(WebCore::createCallbackTask):
(WebCore::CrossThreadTask1::create): Deleted.
(WebCore::CrossThreadTask2::create): Deleted.
(WebCore::CrossThreadTask3::create): Deleted.
(WebCore::CrossThreadTask4::create): Deleted.
(WebCore::CrossThreadTask5::create): Deleted.
(WebCore::CrossThreadTask6::create): Deleted.
(WebCore::CrossThreadTask7::create): Deleted.
(WebCore::CrossThreadTask8::create): Deleted.

  • dom/Document.cpp:

(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
(WebCore::Document::postTask):
(WebCore::Document::pendingTasksTimerFired):
(WebCore::PerformTaskContext::PerformTaskContext): Deleted.
(WebCore::Document::didReceiveTask): Deleted.

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
(WebCore::ScriptExecutionContext::timerAlignmentInterval):
(WebCore::ProcessMessagesSoonTask::create): Deleted.
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
(WebCore::ScriptExecutionContext::Task::~Task): Deleted.

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::Task::Task):
(WebCore::ScriptExecutionContext::Task::performTask):
(WebCore::ScriptExecutionContext::Task::isCleanupTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.

  • dom/StringCallback.cpp:

(WebCore::StringCallback::scheduleCallback):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::postListenerTask):
(WebCore::CallCacheListenerTask::create): Deleted.
(WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.

  • workers/DefaultSharedWorkerRepository.cpp:

(WebCore::SharedWorkerProxy::postTaskToLoader):
(WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
(WebCore::SharedWorkerConnectTask::create): Deleted.
(WebCore::SharedWorkerConnectTask::performTask): Deleted.

  • workers/WorkerEventQueue.cpp:

(WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::dispatch):
(WebCore::WorkerEventQueue::enqueueEvent):
(WebCore::WorkerEventQueue::cancelEvent):
(WebCore::WorkerEventQueue::close):

  • workers/WorkerEventQueue.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::close):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.

  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskToLoader):
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::workerThreadCreated):
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
(WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
(WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
(WebCore::WorkerMessagingProxy::reportPendingActivity):
(WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::MessageWorkerTask::create): Deleted.
(WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
(WebCore::MessageWorkerTask::performTask): Deleted.
(WebCore::WorkerExceptionTask::create): Deleted.
(WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
(WebCore::WorkerExceptionTask::performTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
(WebCore::WorkerTerminateTask::create): Deleted.
(WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
(WebCore::WorkerTerminateTask::performTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::create): Deleted.
(WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::create): Deleted.
(WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::create): Deleted.
(WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::postTask):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
(WebCore::WorkerRunLoop::Task::create):
(WebCore::WorkerRunLoop::Task::performTask):
(WebCore::WorkerRunLoop::Task::Task):

  • workers/WorkerRunLoop.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
(WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::create): Deleted.
(WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.

10:34 AM Changeset in webkit [167942] by Manuel Rego Casasnovas
  • 8 edits
    2 adds in trunk

REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
https://bugs.webkit.org/show_bug.cgi?id=132337

Reviewed by Simon Fraser.

From Blink r154582 by <jchaffraix@chromium.org>

Source/WebCore:
This is a regression from the changes in OrderIterator. The issue is
that we don't invalidate our iterator when a child is removed. This
means that we could hold onto free'd memory until the next layout
when we will recompute the iterator.

The solution is simple: just clear the memory when we remove a child.

Note that RenderGrid is not impacted by this bug as we don't use the
iterator outside layout yet, but if we do it at some point the very same
problem will arise, so the same treatment was applied to the class.

Test: fast/flexbox/order-iterator-crash.html

  • rendering/OrderIterator.cpp:

(WebCore::OrderIterator::invalidate): Clear m_children Vector.

  • rendering/OrderIterator.h:

(WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
invalidate() method.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::removeChild): Invalidate m_orderIterator.

  • rendering/RenderFlexibleBox.h: Add removeChild() signature.
  • rendering/RenderGrid.cpp: Invalidate m_orderIterator.

(WebCore::RenderGrid::removeChild):

  • rendering/RenderGrid.h: Add removeChild() header.

LayoutTests:
Add new layout test to check that removing a child doesn't cause a crash
in OrderIterator.

  • fast/flexbox/order-iterator-crash-expected.txt: Added.
  • fast/flexbox/order-iterator-crash.html: Added.
10:28 AM Changeset in webkit [167941] by enrica@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix after http://trac.webkit.org/changeset/167937.
Unreviewed.

  • rendering/RenderThemeIOS.mm:

(WebCore::RenderThemeIOS::adjustButtonStyle):

9:56 AM Changeset in webkit [167940] by aestes@apple.com
  • 9 edits in trunk/Source/WebKit2

[iOS] Introduce -didNotHandleTapAsClickAtPoint: to WKUIDelegatePrivate
https://bugs.webkit.org/show_bug.cgi?id=132316

Reviewed by Darin Adler.

One WebKit2 client is interested to know if a tap was not handled by an element that responds to clicks.
Introduce a new, private WKUIDelegate method telling it that a tap at a location was not handled as a click on
an element.

  • UIProcess/API/APIUIClient.h:

(API::UIClient::didNotHandleTapAsClick):

  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didNotHandleTapAsClick):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didNotHandleTapAsClick):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleTap): Sent Messages::WebPageProxy::DidNotHandleTapAsClick if the tap wasn't handled, no
node responded to the click event, or the responding node wasn't an element.

9:50 AM Changeset in webkit [167939] by weinig@apple.com
  • 2 edits in trunk/Tools

REGRESSION (r167751): svn-create-patch is very slow
https://bugs.webkit.org/show_bug.cgi?id=132300

Reviewed by Alexey Proskuryakov.

  • Scripts/svn-create-patch:

Change default behavior of svn-create-patch to no longer run the style checker. It can still be run
by calling svn-create-patch --style.

9:40 AM Changeset in webkit [167938] by hmuller@adobe.com
  • 6 edits in trunk

[CSS Shapes] off-by-one error in Shape::createRasterShape()
https://bugs.webkit.org/show_bug.cgi?id=132154

Reviewed by Bem Jones-Bey.

Source/WebCore:
This is a port of a patch for a bug that was reported by and fixed in Blink by
David Vest: https://codereview.chromium.org/237123002/. Shape::createRasterShape()
now consistently reports "end-point exclusive" intervals. Before the patch
an entire row of pixels was above the shape-image-threshold, the interval's end
index was reported as image.width. Now it's image.width + 1, which is consistent
with the way the end index is reported if the last above threshold pixel is within
an image row.

Two existing tests were revised to account for this change.

  • rendering/shapes/RasterShape.cpp:

(WebCore::RasterShape::getExcludedIntervals):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

LayoutTests:
Change two tests that had incorrect X values to account for the off-by-one
in Shape::createRasterShape().

  • fast/shapes/shape-outside-floats/shape-outside-insert-svg-shape.html:
  • fast/shapes/shape-outside-floats/shape-outside-linear-gradient-expected.html:
9:36 AM Changeset in webkit [167937] by Bem Jones-Bey
  • 24 edits
    2 adds in trunk/Source/WebCore

Wrap CSS length conversion arguments in an object
https://bugs.webkit.org/show_bug.cgi?id=131552

Reviewed by Andreas Kling.

This patch introduces a class CSSToLengthConversionData to wrap the
data required to convert CSS lengths to Lengths. This simplifies the
plumbing that goes on whenever we need to resolve CSS lengths and
makes it easier to update the arguments needed for resolving these (in
particular adding a RenderView for resolving viewport units at style
recalc time; removing the computingFontSize bool also appears
possible).

Note that the zoom argument, which was previously a float in some
places and a double in others is now a float.

This is a port of a Blink patch by timloh@chromium.org.

No new tests, no behavior change.

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

(WebCore::convertToLength):
(WebCore::convertToLengthSize):
(WebCore::convertToCenterCoordinate):
(WebCore::cssValueToBasicShapeRadius):
(WebCore::basicShapeForValue):

  • css/BasicShapeFunctions.h:
  • css/CSSCalculationValue.cpp:

(WebCore::CSSCalcValue::computeLengthPx):
(WebCore::determineCategory):

  • css/CSSCalculationValue.h:

(WebCore::CSSCalcValue::createCalculationValue):

  • css/CSSGradientValue.cpp:

(WebCore::CSSGradientValue::addStops):
(WebCore::positionFromValue):
(WebCore::CSSGradientValue::computeEndPoint):
(WebCore::CSSLinearGradientValue::createGradient):
(WebCore::CSSRadialGradientValue::resolveRadius):
(WebCore::CSSRadialGradientValue::createGradient):

  • css/CSSGradientValue.h:
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeLength):
(WebCore::CSSPrimitiveValue::computeLengthDouble):

  • css/CSSPrimitiveValue.h:
  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::convertToLength):

  • css/CSSToLengthConversionData.cpp: Added.

(WebCore::CSSToLengthConversionData::zoom):

  • css/CSSToLengthConversionData.h: Added.

(WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
(WebCore::CSSToLengthConversionData::style):
(WebCore::CSSToLengthConversionData::rootStyle):
(WebCore::CSSToLengthConversionData::computingFontSize):
(WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):

  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::CSSToStyleMap):
(WebCore::CSSToStyleMap::mapFillSize):
(WebCore::CSSToStyleMap::mapFillXPosition):
(WebCore::CSSToStyleMap::mapFillYPosition):
(WebCore::CSSToStyleMap::mapNinePieceImageQuad):

  • css/CSSToStyleMap.h:

(WebCore::CSSToStyleMap::CSSToStyleMap): Deleted.

  • css/DeprecatedStyleBuilder.cpp:

(WebCore::ApplyPropertyAuto::applyValue):
(WebCore::ApplyPropertyClip::convertToLength):
(WebCore::ApplyPropertyLength::applyValue):
(WebCore::ApplyPropertyBorderRadius::applyValue):
(WebCore::ApplyPropertyComputeLength::applyValue):
(WebCore::ApplyPropertyFontSize::applyValue):
(WebCore::csstoLengthConversionDataWithTextZoomFactor):
(WebCore::ApplyPropertyMarqueeIncrement::applyValue):
(WebCore::ApplyPropertyLineHeight::applyValue):
(WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
(WebCore::ApplyPropertyWordSpacing::applyValue):
(WebCore::ApplyPropertyPageSize::mmLength):
(WebCore::ApplyPropertyPageSize::inchLength):
(WebCore::ApplyPropertyPageSize::applyValue):
(WebCore::ApplyPropertyVerticalAlign::applyValue):
(WebCore::ApplyPropertyClipPath::applyValue):
(WebCore::ApplyPropertyShape::applyValue):
(WebCore::ApplyPropertyTextIndent::applyValue):

  • css/MediaQueryEvaluator.cpp:

(WebCore::colorMediaFeatureEval):
(WebCore::color_indexMediaFeatureEval):
(WebCore::monochromeMediaFeatureEval):
(WebCore::orientationMediaFeatureEval):
(WebCore::aspect_ratioMediaFeatureEval):
(WebCore::device_aspect_ratioMediaFeatureEval):
(WebCore::device_pixel_ratioMediaFeatureEval):
(WebCore::resolutionMediaFeatureEval):
(WebCore::gridMediaFeatureEval):
(WebCore::computeLength):
(WebCore::device_heightMediaFeatureEval):
(WebCore::device_widthMediaFeatureEval):
(WebCore::heightMediaFeatureEval):
(WebCore::widthMediaFeatureEval):
(WebCore::min_colorMediaFeatureEval):
(WebCore::max_colorMediaFeatureEval):
(WebCore::min_color_indexMediaFeatureEval):
(WebCore::max_color_indexMediaFeatureEval):
(WebCore::min_monochromeMediaFeatureEval):
(WebCore::max_monochromeMediaFeatureEval):
(WebCore::min_aspect_ratioMediaFeatureEval):
(WebCore::max_aspect_ratioMediaFeatureEval):
(WebCore::min_device_aspect_ratioMediaFeatureEval):
(WebCore::max_device_aspect_ratioMediaFeatureEval):
(WebCore::min_device_pixel_ratioMediaFeatureEval):
(WebCore::max_device_pixel_ratioMediaFeatureEval):
(WebCore::min_heightMediaFeatureEval):
(WebCore::max_heightMediaFeatureEval):
(WebCore::min_widthMediaFeatureEval):
(WebCore::max_widthMediaFeatureEval):
(WebCore::min_device_heightMediaFeatureEval):
(WebCore::max_device_heightMediaFeatureEval):
(WebCore::min_device_widthMediaFeatureEval):
(WebCore::max_device_widthMediaFeatureEval):
(WebCore::min_resolutionMediaFeatureEval):
(WebCore::max_resolutionMediaFeatureEval):
(WebCore::animationMediaFeatureEval):
(WebCore::transitionMediaFeatureEval):
(WebCore::transform_2dMediaFeatureEval):
(WebCore::transform_3dMediaFeatureEval):
(WebCore::view_modeMediaFeatureEval):
(WebCore::video_playable_inlineMediaFeatureEval):
(WebCore::hoverMediaFeatureEval):
(WebCore::pointerMediaFeatureEval):
(WebCore::MediaQueryEvaluator::eval):

  • css/SVGCSSStyleSelector.cpp:

(WebCore::StyleResolver::applySVGProperty):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::State::clear):
(WebCore::StyleResolver::State::initForStyleResolve):
(WebCore::StyleResolver::convertToIntLength):
(WebCore::StyleResolver::convertToFloatLength):
(WebCore::createGridTrackBreadth):
(WebCore::StyleResolver::applyProperty):
(WebCore::StyleResolver::createFilterOperations):

  • css/StyleResolver.h:

(WebCore::StyleResolver::State::setStyle):
(WebCore::StyleResolver::State::cssToLengthConversionData):

  • css/TransformFunctions.cpp:

(WebCore::convertToFloatLength):
(WebCore::transformsForValue):

  • css/TransformFunctions.h:
  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::setMatrixValue):

  • rendering/RenderThemeIOS.mm:

(WebCore::applyCommonButtonPaddingToStyle):
(WebCore::RenderThemeIOS::adjustButtonStyle):

9:17 AM Changeset in webkit [167936] by zoltan@webkit.org
  • 8 edits in trunk

[CSS Shapes] complex calc args for inset round vanish
https://bugs.webkit.org/show_bug.cgi?id=132293

Reviewed by Bem Jones-Bey.

Source/WebCore:
In order to use calc in the rounded parameters for inset shapes, we need
to pass RenderStyle for the value creation as we did for the width arguments.
Without taking RenderStyle into account, we hit an assert not reache
in CSSPrimitiveValue::init in the debug builds.

I've added new parsing test.

  • css/BasicShapeFunctions.cpp:

(WebCore::valueForBasicShape):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::create):

  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createValue):

LayoutTests:

  • fast/shapes/parsing/parsing-shape-outside-expected.txt:
  • fast/shapes/parsing/parsing-test-utils.js:
9:16 AM Changeset in webkit [167935] by zoltan@webkit.org
  • 5 edits in trunk

[CSS Shapes] complex calc values for shape-margin return null for computed style
https://bugs.webkit.org/show_bug.cgi?id=132313

Reviewed by Bem Jones-Bey.

Source/WebCore:
We need to pass RenderStyle* to the cssValuePool when parsing
shape-margin in order to use calc() as a parameter.

I've added the new test case to parsing-shape-margin.html

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::propertyValue):

LayoutTests:

  • fast/shapes/parsing/parsing-shape-margin.html:
9:15 AM Changeset in webkit [167934] by Chris Fleizach
  • 6 edits
    2 adds in trunk

AX: Row span info is wrong for table cells when a footer section is placed above a body section
https://bugs.webkit.org/show_bug.cgi?id=131832

Reviewed by Mario Sanchez Prada.

Source/WebCore:
If a <footer> section is placed before the body, it renders AX row information and order incorrectly.
This also affects ARIA tables because they add their children by looking at renderer children, instead
interrogating the RenderTable directly.

Test: accessibility/table-with-footer-section-above-body.html

  • accessibility/AccessibilityARIAGrid.cpp:

(WebCore::AccessibilityARIAGrid::addTableCellChild):
(WebCore::AccessibilityARIAGrid::addChildren):

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::addChildrenFromSection):

  • accessibility/AccessibilityTable.h:
  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::columnIndexRange):

LayoutTests:

  • accessibility/table-with-footer-section-above-body-expected.txt: Added.
  • accessibility/table-with-footer-section-above-body.html: Added.
9:04 AM Changeset in webkit [167933] by Chris Fleizach
  • 4 edits in trunk

AX: SpeechSynthesisUtterance cannot addEventListener
https://bugs.webkit.org/show_bug.cgi?id=132321

Reviewed by Mario Sanchez Prada.

Source/WebCore:
Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.

  • Modules/speech/SpeechSynthesisUtterance.idl:

LayoutTests:

  • platform/mac/fast/speechsynthesis/speech-synthesis-speak.html:
8:17 AM Changeset in webkit [167932] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Generate Eclipse project + ninja build for GTK+ if Eclipse in available in the PATH
https://bugs.webkit.org/show_bug.cgi?id=132190

Patch by Enrique Ocaña González <eocanha@igalia.com> on 2014-04-29
Reviewed by Gustavo Noronha Silva.

  • Scripts/webkitdirs.pm:

(canUseEclipse): Test if Eclipse is in the path. This is the same method used to test

if ninja is in the path.

(generateBuildSystemFromCMakeProject): Use the eclipse generator if possible, fallback

to the previous ninja generator if not.

8:01 AM Changeset in webkit [167931] by hmuller@adobe.com
  • 4 edits
    2 adds in trunk

[CSS Shapes] shape-outside polygon fails when first vertex is 0,0
https://bugs.webkit.org/show_bug.cgi?id=132132

Reviewed by Bem Jones-Bey.

Source/WebCore:
ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
they're no longer used.

The polygon algorithm for computing excluded intervals now ignores horizontal
edges. It also ignores edges whose lower vertex matches the top of the line, if
the edge's Y direction is upwards (away from the top of the line). The rationale
for this was explained here:
http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html

Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html

  • rendering/shapes/PolygonShape.cpp:

(WebCore::OffsetPolygonEdge::clippedEdgeXRange):
(WebCore::PolygonShape::getExcludedIntervals):

  • rendering/shapes/ShapeInterval.h:

(WebCore::ShapeInterval::ShapeInterval):
(WebCore::ShapeInterval::isUndefined):
(WebCore::ShapeInterval::x1):
(WebCore::ShapeInterval::x2):
(WebCore::ShapeInterval::width):
(WebCore::ShapeInterval::isEmpty):
(WebCore::ShapeInterval::setX1):
(WebCore::ShapeInterval::setX2):
(WebCore::ShapeInterval::overlaps):
(WebCore::ShapeInterval::contains):
(WebCore::ShapeInterval::unite):

LayoutTests:

  • fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex-expected.html: Added.
  • fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html: Added.
7:54 AM Changeset in webkit [167930] by abucur@adobe.com
  • 13 edits
    20 adds in trunk

[CSS Regions] Fix getClientRects() for content nodes
https://bugs.webkit.org/show_bug.cgi?id=117407

Reviewed by David Hyatt.

Source/WebCore:
This patch modifies getClientRects() to return a list of fragments
for a fragmented box instead of a single rectangle positioned inside
the region where the box center would appear.

The approach is to split the border box of the element in regions using
the layout positioning. Then each fragment is mapped to the view coordinates
and the result added to the list of rectangles. To preserve the originating
region when mapping the fragment through the ancestor tree I've introduced
the concept of a current region. The current region is stored inside a
CurrentRenderRegionMaintainer object, created whenever an algorithm needing
it needs to run. When the maintainer is destroyed, the cleanup is made
automatically. The RenderFlowThread holds a pointer to this structure for
easy access.

Tests: fast/regions/cssom/client-rects-fixed-content.html

fast/regions/cssom/client-rects-forced-breaks.html
fast/regions/cssom/client-rects-inline-complex.html
fast/regions/cssom/client-rects-inline.html
fast/regions/cssom/client-rects-nested-regions.html
fast/regions/cssom/client-rects-positioned.html
fast/regions/cssom/client-rects-relative-position.html
fast/regions/cssom/client-rects-simple-block.html
fast/regions/cssom/client-rects-transforms.html
fast/regions/cssom/client-rects-unsplittable-float.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::absoluteQuads): Split the box in fragments.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::absoluteQuads): Split the box in fragments.

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::RenderFlowThread):
(WebCore::RenderFlowThread::mapFromFlowToRegion):
(WebCore::RenderFlowThread::mapLocalToContainer):
(WebCore::RenderFlowThread::currentRegion):

  • rendering/RenderFlowThread.h:
  • rendering/RenderNamedFlowFragment.cpp:

(WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion): Get
the fragments for this box in the region.

  • rendering/RenderNamedFlowFragment.h:
  • rendering/RenderNamedFlowThread.cpp:

(WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Virtual function
that can be used to implement fragments to client rects mapping.

  • rendering/RenderNamedFlowThread.h:
  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::rectFlowPortionForBox): Small change to correctly
map empty rectangles to containers.
(WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
(WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):

  • rendering/RenderRegion.h:

(WebCore::RenderRegion::absoluteQuadsForBoxInRegion):
(WebCore::CurrentRenderRegionMaintainer::region):

LayoutTests:
Tests verifying getClientRects works correctly in different situations.

  • fast/regions/cssom/client-rects-fixed-content-expected.txt: Added.
  • fast/regions/cssom/client-rects-fixed-content.html: Added.
  • fast/regions/cssom/client-rects-forced-breaks-expected.txt: Added.
  • fast/regions/cssom/client-rects-forced-breaks.html: Added.
  • fast/regions/cssom/client-rects-inline-complex-expected.txt: Added.
  • fast/regions/cssom/client-rects-inline-complex.html: Added.
  • fast/regions/cssom/client-rects-inline-expected.txt: Added.
  • fast/regions/cssom/client-rects-inline.html: Added.
  • fast/regions/cssom/client-rects-nested-regions-expected.txt: Added.
  • fast/regions/cssom/client-rects-nested-regions.html: Added.
  • fast/regions/cssom/client-rects-positioned-expected.txt: Added.
  • fast/regions/cssom/client-rects-positioned.html: Added.
  • fast/regions/cssom/client-rects-relative-position-expected.txt: Added.
  • fast/regions/cssom/client-rects-relative-position.html: Added.
  • fast/regions/cssom/client-rects-simple-block-expected.txt: Added.
  • fast/regions/cssom/client-rects-simple-block.html: Added.
  • fast/regions/cssom/client-rects-transforms-expected.txt: Added.
  • fast/regions/cssom/client-rects-transforms.html: Added.
  • fast/regions/cssom/client-rects-unsplittable-float-expected.txt: Added.
  • fast/regions/cssom/client-rects-unsplittable-float.html: Added.
  • fast/regions/resources/helper.js:

(testClientRects): Function that compares the actual client rects for an
element to a list of expected client rects.

7:06 AM Changeset in webkit [167929] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

LLINT loadisFromInstruction doesn't need special case for big endians
https://bugs.webkit.org/show_bug.cgi?id=132330

Patch by Tomas Popela <tpopela@redhat.com> on 2014-04-29
Reviewed by Mark Lam.

The change introduced in r167076 was wrong. We should not apply the offset
adjustment on loadisFromInstruction usage as the instruction
(UnlinkedInstruction) is declared as an union (i.e. with the int32_t
operand variable). The offset of the other union members will be the
same as the offset of the first one, that is 0. The behavior here is the
same on little and big endian architectures. Thus we don't need
special case for big endians.

  • llint/LowLevelInterpreter.asm:
5:38 AM Changeset in webkit [167928] by abucur@adobe.com
  • 7 edits
    2 adds in trunk

Store the containing region map inside the flow thread
https://bugs.webkit.org/show_bug.cgi?id=131647

Reviewed by Mihnea Ovidenie.

Source/WebCore:
The patch moves the containing region map inside the flow thread where
it can be better handled in case the region chain changes and the map
needs to be cleared.

As a result of this move we are able to also cleanup the lines region
information of a block flow when it is removed from the tree.

Test: fast/regions/inline-strike-through.html

  • rendering/InlineFlowBox.h:

(WebCore::InlineFlowBox::InlineFlowBox):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::removeFlowChildInfo):
(WebCore::RenderFlowThread::invalidateRegions):
(WebCore::RenderFlowThread::removeLineRegionInfo):
(WebCore::RenderFlowThread::checkLinesConsistency):
(WebCore::RenderFlowThread::containingRegionMap):

  • rendering/RenderFlowThread.h:
  • rendering/RootInlineBox.cpp:

(WebCore::containingRegionMap):
(WebCore::RootInlineBox::~RootInlineBox):
(WebCore::RootInlineBox::paint):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::clearContainingRegion):
(WebCore::RootInlineBox::setContainingRegion):

LayoutTests:
Add a test that verifies the containing region map is properly cleared
when the region chain changes.

  • fast/regions/inline-strike-through-expected.txt: Added.
  • fast/regions/inline-strike-through.html: Added.
4:42 AM Changeset in webkit [167927] by ryuan.choi@samsung.com
  • 2 edits in trunk/LayoutTests

Unreviewed EFL gardening.

Removed remaining editing/pasteboard which are already skipped.

  • platform/efl/TestExpectations:
3:19 AM Changeset in webkit [167926] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

check-webkit-style should understand --git-index
https://bugs.webkit.org/show_bug.cgi?id=125364

Patch by Jozsef Berta <jberta.u-szeged@partner.samsung.com> on 2014-04-29
Reviewed by Csaba Osztrogonác.

  • Scripts/webkitpy/common/checkout/scm/git.py:

(Git.create_patch): The command now supports the --cached option.

  • Scripts/webkitpy/style/main.py:

(CheckWebKitStyle.main): Passing the --git-index option.

  • Scripts/webkitpy/style/optparser.py:

(CommandOptionValues.init): The git-index option is switched off by default.
(CommandOptionValues.eq): Equality check for the new option.
(ArgumentParser._create_option_parser):Adding the --git-index option
(ArgumentParser.parse):

  • Scripts/webkitpy/style/optparser_unittest.py: New tests for the --git-index option

(CommandOptionValuesTest.test_init):
(CommandOptionValuesTest.test_eq):

2:34 AM Changeset in webkit [167925] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Flagged some tests.
1:47 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
1:44 AM Changeset in webkit [167924] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK][WK2] Avoid Vector copies in WebViewBaseInputMethodFilter::setPreedit()
https://bugs.webkit.org/show_bug.cgi?id=132323

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebViewBaseInputMethodFilter.cpp:

(WebKit::WebViewBaseInputMethodFilter::setPreedit): Inline the Vector object construction into
the WebPageProxy::setComposition() call to avoid extra Vector copies and moves.

12:23 AM element iterators.pdf attached to 2014 Meeting Pointers and Iterators by Antti Koivisto

Apr 28, 2014:

9:20 PM Changeset in webkit [167923] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

<rdar://problem/16750708> REGRESSION (r159358): Crash in InjectedBundleHitTestResult::frame
https://bugs.webkit.org/show_bug.cgi?id=132318

Reviewed by Andy Estes.

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::PolicyClient::decidePolicyForNavigationAction): Fixed a typo: set
the source frame, not the destination frame.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction): Changed to get the
frame for the action not from a hit test result, because some link activation actions are
not mouse events, but rather from the event’s target.

8:10 PM Changeset in webkit [167922] by mhahnenberg@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Simplify tryCacheGetById
https://bugs.webkit.org/show_bug.cgi?id=132314

Reviewed by Oliver Hunt and Filip Pizlo.

This is neutral across all benchmarks we track, although it looks like a wee 0.5% progression on sunspider.

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID): If we fail to cache on self, we just repatch to call tryBuildGetByIDList next time.

7:29 PM Changeset in webkit [167921] by benjamin@webkit.org
  • 3 edits
    2 adds in trunk

SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
https://bugs.webkit.org/show_bug.cgi?id=132311

Reviewed by Andreas Kling.

Source/WebCore:
In two cases, the parent register was never returned to the register allocator:
-Non filtering selectors (the early return).
-Non marking selectors (at the moment: only querySelector API).

Unfortunately, generateElementIsNthChild() makes function call, which forces us to do this manual allocation
of the parentElement register. Long term, I want RegisterAllocator and FunctionCall to have a special type for that.

Test: fast/selectors/several-nth-child.html

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):

LayoutTests:

  • fast/selectors/several-nth-child-expected.txt: Added.
  • fast/selectors/several-nth-child.html: Added.
6:58 PM Changeset in webkit [167920] by commit-queue@webkit.org
  • 3 edits
    4 adds in trunk

CSS JIT: backtracking with current / parent element for child
https://bugs.webkit.org/show_bug.cgi?id=132057

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-04-28
Reviewed by Benjamin Poulain.

Calculate appropriate backtracking start height from the closest
descendant. And at first, we use it for a simple optimization.

  1. When backtracking start height equals to current height, we

can simply jump to a descendant element check phase.

  1. When backtracking start height equals to current height + 1, we

can simply jump to a descendant element traversing phase.

We can apply this optimization to fragments with adjacent combinators.
But, in the meantime, we start to implement it for a fragment with
child combinator.

Source/WebCore:

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
(WebCore::SelectorCompiler::TagNamePattern::TagNamePattern):
(WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
(WebCore::SelectorCompiler::solveBacktrackingAction):
(WebCore::SelectorCompiler::equalTagNames):
(WebCore::SelectorCompiler::equalTagNamePatterns):
(WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
(WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
(WebCore::SelectorCompiler::requiresAdjacentTail):
(WebCore::SelectorCompiler::requiresDescendantTail):
(WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentNode):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

LayoutTests:

  • fast/selectors/backtracking-child-combinator-with-tail-expected.txt: Added.
  • fast/selectors/backtracking-child-combinator-with-tail.html: Added.
  • fast/selectors/backtracking-child-combinator-without-tail-expected.txt: Added.
  • fast/selectors/backtracking-child-combinator-without-tail.html: Added.
6:54 PM Changeset in webkit [167919] by Lucas Forschler
  • 5 edits in trunk/Source

Versioning.

6:52 PM Changeset in webkit [167918] by Lucas Forschler
  • 1 copy in tags/Safari-538.32

New Tag.

6:36 PM Changeset in webkit [167917] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION(r153142) ASSERT from CodeBlock::dumpBytecode dumping String Switch Jump Tables
https://bugs.webkit.org/show_bug.cgi?id=132315

Reviewed by Mark Hahnenberg.

Used the StringImpl version of utf8() instead of creating a String first.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

6:30 PM Changeset in webkit [167916] by benjamin@webkit.org
  • 11 edits in trunk/Source

[iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
https://bugs.webkit.org/show_bug.cgi?id=132307

Source/WebCore:

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-28
Reviewed by Simon Fraser.

  • WebCore.exp.in:

Source/WebKit2:
<rdar://problem/16031704>

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-28
Reviewed by Simon Fraser.

Restore the scroll position and scale on back-forward by restoring the values from HistoryItem.
This covers the common cases, see <rdar://problem/16031704>.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:WebKit::]):
(-[WKWebView _didCommitLoadForMainFrame]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLoadForMainFrame]):
Get rid of the old code restoring the scroll position. This is now done by the WebProcess.

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
Update the scrolling tree after invoking didCommitLayerTree() on the WebPageProxy.

WKContentView and WKWebView states are updated in response to didCommitLayerTree(), the content size
and scale in particular are set there.

After that, the content size/scale is in the same state as the layerTree update, and we can scroll
the content as needed.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:

(WebKit::WebFrameLoaderClient::restoreViewState):
iOS WebKit1 uses a custom restoreViewState(), do the same for WebKit2 since the generic code is #ifdefed out.
This is also necessary for the main frame's state update.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::restorePageState):
Restore the scale and position of the main frame. For now, we assume m_userHasChangedPageScaleFactor is set otherwise
the initial-scale would override the restored value. We will need to fix that, the value should probably be saved with
the history.

6:13 PM Changeset in webkit [167915] by ryuan.choi@samsung.com
  • 4 edits in trunk/LayoutTests

Unreviewed EFL gardening.

Skip editing/pasteboard which EFL port does not support.

  • platform/efl-wk1/TestExpectations:
  • platform/efl-wk2/TestExpectations:
  • platform/efl/TestExpectations:
5:46 PM Changeset in webkit [167914] by benjamin@webkit.org
  • 3 edits in trunk/Source/WebKit2

[iOS][WK2] iOS fix after r167867
https://bugs.webkit.org/show_bug.cgi?id=132302

Patch by Benjamin Poulain <bpoulain@apple.com> on 2014-04-28
Reviewed by Simon Fraser.

iOS Touch Points uses "phase" for describing the touch points state for historical reasons.
This patch adds state() as a synonym for phase, and revert r167893.

  • Shared/WebEvent.h:

(WebKit::WebPlatformTouchPoint::state):

  • UIProcess/WebPageProxy.cpp:

(WebKit::areAllTouchPointsReleased):

5:31 PM Changeset in webkit [167913] by msaboff@apple.com
  • 6 edits in trunk/Tools

Crash in platform/mac/accessibility/table-visible-rows.html
https://bugs.webkit.org/show_bug.cgi?id=132146

Reviewed by Filip Pizlo.

Instead of creating a local JSValueRef array on the stack and passing that to
JSObjectMakeArray(), changed to create an empty JSArray and then populate the
values using the JSObjectSetPropertyAtIndex() API.

  • DumpRenderTree/AccessibilityUIElement.cpp:

(elementsForRangeCallback):
(convertElementsToObjectArray):

  • DumpRenderTree/mac/TestRunnerMac.mm:

(originsArrayToJS):

  • WebKitTestRunner/InjectedBundle/EventSendingController.cpp:

(WTR::EventSendingController::contextClick):

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::stringArrayToJS):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::convertElementsToObjectArray):

4:23 PM Changeset in webkit [167912] by aestes@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix a transcription error from r167901.

When addressing Darin's review feedback, I moved the iteration of dataArray from
QuickLookDocumentData::append() to WebQuickLookHandleClient::didReceiveDataArray(),
but I forgot to update the context argument to CFArrayApplyFunction() accordingly.

  • WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.cpp:

(WebKit::WebQuickLookHandleClient::didReceiveDataArray):

4:19 PM Changeset in webkit [167911] by Beth Dakin
  • 2 edits in trunk/Source/WebCore

Scrollbars do not update properly when topContentInset changes dynamically
https://bugs.webkit.org/show_bug.cgi?id=132309
-and corresponding-
<rdar://problem/16642232>

Reviewed by Tim Horton.

It is not sufficient to do a layout and call updateScrollbars(). We must also call
RenderLayerCompositor::frameViewDidChangeSize() in order to properly adjust the
size and position of all of the scrolling-related layers.

  • page/FrameView.cpp:

(WebCore::FrameView::topContentInsetDidChange):

3:35 PM Changeset in webkit [167910] by hyatt@apple.com
  • 4 edits in trunk/Source/WebCore

[New Multicolumn] event.offsetX/offsetY don't work correctly
https://bugs.webkit.org/show_bug.cgi?id=132284

Reviewed by Simon Fraser.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
Change the code here to only trigger for CSS Regions and not for
multi-column. Add a FIXME pointing out that the code is broken even for
CSS regions.

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
Override mapAbsoluteToLocalPoint in order to guess a region and attempt
to translate the point from that region to the flow thread local coordinate
space.

(WebCore::RenderMultiColumnFlowThread::physicalTranslationFromRegionToFlow):

  • rendering/RenderMultiColumnFlowThread.h:

New helper function that just wraps calling the region's logical translation
function and converting to/from physical coordinates.

3:00 PM Changeset in webkit [167909] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2 iOS] Need to show title in the action sheet for images not inside an anchor element.
https://bugs.webkit.org/show_bug.cgi?id=132304
<rdar://problem/16535227>

Reviewed by Benjamin Poulain.

If the image in not inside an anchor tag, we must use the title attribute as
title for the action sheet.

  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant _createSheetWithElementActions:showLinkTitle:]):

2:54 PM Changeset in webkit [167908] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

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

the change was rolled out, roll out the new expectations as
well (Requested by thorton on #webkit).

Reverted changeset:

"Unreviewed. Updating one bindings test baseline after
r167855."
http://trac.webkit.org/changeset/167857

2:17 PM Changeset in webkit [167907] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Use the animated version of setHighlighted on NSButtonCell where available
https://bugs.webkit.org/show_bug.cgi?id=132295
<rdar://problem/16747240>

Reviewed by Beth Dakin.

Like setState, there is an animated version of setHighlighted available.

  • platform/mac/ThemeMac.mm:

(WebCore::updateStates): Use private version of _setHighlighted where possible.

2:14 PM Changeset in webkit [167906] by fpizlo@apple.com
  • 4 edits in trunk

Source/JavaScriptCore: The LLInt is awesome and it should get more of the action.

Rubber stamped by Geoffrey Garen.

5% speed-up on JSBench and no meaningful regressions. Should be a PLT/DYE speed-up also.

  • runtime/Options.h:

Tools: Make sure that the coverage of our tests doesn't change much if we change the thresholds now and in the future, but making
"no-cjit" runs force the old-school threshold.

Rubber stamped by Mark Hahnenberg.

  • Scripts/run-jsc-stress-tests:
2:07 PM Changeset in webkit [167905] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

WebKit2 View Gestures (Swipe): Discard snapshots made with a different view size/pixel density
https://bugs.webkit.org/show_bug.cgi?id=132115

Reviewed by Simon Fraser.

We shouldn't try to use snapshots if they no longer match the destination view size.
To do this, we need an accurate understanding of the topContentInset, both for the Web view,
and for any custom views, because we don't want to include the inset area in the snapshot,
and we don't want to reject snapshots that differ from the current view only because they have an inset or not.

  • UIProcess/API/Cocoa/WKViewPrivate.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView _takeViewSnapshot]):
(-[WKView _setCustomSwipeViewsTopContentInset:]):
Add and plumb through a topContentInset property to apply to the custom swipe views.
For simplicitly's sake in the multi-view case, it is applied in window coordinates,
so clients will have to do conversions if necessary.
Don't include the top content inset in the snapshot that is taken.

  • UIProcess/mac/ViewGestureController.h:

(WebKit::ViewGestureController::setCustomSwipeViewsTopContentInset):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::ViewGestureController):
(WebKit::ViewGestureController::windowRelativeBoundsForCustomSwipeViews):
Apply the aforementioned custom swipe view top content inset.

(WebKit::ViewGestureController::determineSnapshotLayerParent):
(WebKit::ViewGestureController::determineLayerAdjacentToSnapshotForParent):
Factor these out of beginSwipeGesture.

(WebKit::ViewGestureController::retrieveSnapshotForItem):
Don't return a snapshot if the current deviceScaleFactor doesn't match that
at which the snapshot was taken, or if the size of the snapshot doesn't match
the unobscured part of the snapshot layer (the layer's size sans top content inset).

(WebKit::layerGeometryFlippedToRoot): Added.
Determine whether geometry flipping occurs between a layer and the root of the tree it is in.

(WebKit::ViewGestureController::applyDebuggingPropertiesToSwipeViews):
Factor out debugging layer properties, and add some borders and backgrounds to our layers.
I switched to invert instead of blur because blur makes the borders hard to use.

(WebKit::ViewGestureController::beginSwipeGesture):
Add an additional layer, the swipeLayer, which is the parent of the swipeSnapshotLayer.
We use this layer to compensate for geometry flipping, since we don't necessarily
know the structure of the layer tree ahead of time when inserting snapshots into the
client's layer tree, in the custom swipe view case.
The swipe layer is always the full size of the view, including topContentInset, and
has a white background in order to fill in that space. The snapshot layer is the size
of the view *excluding* the topContentInset, which should match the size of the snapshot image
itself (and we reject the image and just paint white if this is not the case).

(WebKit::ViewGestureController::handleSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):
Move and remove the new swipeLayer.

  • UIProcess/mac/ViewSnapshotStore.h:
  • UIProcess/mac/ViewSnapshotStore.mm:

(WebKit::ViewSnapshotStore::recordSnapshot):
Store the deviceScaleFactor at the time the snapshot was taken.
Fix a bug where the count of snapshots with live images was too high
because we were failing to decrement it when replacing a snapshot of
an existing item with a fresh one.

1:55 PM Changeset in webkit [167904] by commit-queue@webkit.org
  • 35 edits in trunk/Source/WebCore

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

Broke the windows build (Requested by bfulgham on #webkit).

Reverted changeset:

"ScriptExecutionContext::Task should work well with C++11
lambdas"
https://bugs.webkit.org/show_bug.cgi?id=129795
http://trac.webkit.org/changeset/167855

1:50 PM Changeset in webkit [167903] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

WK2 iOS: crash when handling a synthetic keyboard event.
https://bugs.webkit.org/show_bug.cgi?id=132296
<rdar://problem/16469726>

Reviewed by Benjamin Poulain.

Adding a null check, since synthetic keyboard events do not
have a corresponding platform event. We already do this on OS X.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::handleEditingKeyboardEvent):

1:39 PM Changeset in webkit [167902] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] install-dependencies should also install ruby-json and ruby-highline
https://bugs.webkit.org/show_bug.cgi?id=132292

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-04-28
Reviewed by Philippe Normand.

  • gtk/install-dependencies: Install ruby json and highline packages.
1:02 PM Changeset in webkit [167901] by aestes@apple.com
  • 15 edits
    5 copies
    1 add in trunk/Source

[iOS] Implement WebQuickLookHandleClient for WebKit2
https://bugs.webkit.org/show_bug.cgi?id=132157

Reviewed by Darin Adler.

Source/WebCore:

  • WebCore.exp.in: Exported QuickLookHandle::previewUTI().
  • platform/network/ios/QuickLook.h:
  • platform/network/ios/QuickLook.mm:

(WebCore::QuickLookHandle::previewFileName): Changed to return a WTF::String.
(WebCore::QuickLookHandle::previewUTI): Added.

Source/WebKit2:

  • Shared/API/Cocoa/_WKNSFileManagerExtras.h: Added.
  • Shared/API/Cocoa/_WKNSFileManagerExtras.mm: Added.

(+[NSFileManager _web_createTemporaryFileForQuickLook:]): Called WebCore::createTemporaryFileForQuickLook().

  • Shared/ios/QuickLookDocumentData.cpp: Added.

(WebKit::QuickLookDocumentData::QuickLookDocumentData):
(WebKit::QuickLookDocumentData::append): Appened each CFDataRef to m_data and added their sizes to m_size.
(WebKit::QuickLookDocumentData::decodedData): Returned the combined CFDataRef created by decode().
Named this method 'decodedData' to indicate that it should only be called on objects populated by decode().
(WebKit::QuickLookDocumentData::clear): Cleared m_data and reset m_size to 0.
(WebKit::QuickLookDocumentData::encode): Implemented a custom encoding function to avoid having to combine
m_data into contiguous memory at encoding time. Encoded m_size then sequentially encoded each member of m_data.
(WebKit::QuickLookDocumentData::decode): Decoded the byte stream into a single CFDataRef. Eagerly copied the
decoded data rather than using a DataReference since we know this will outlive the decoder.

  • Shared/ios/QuickLookDocumentData.h: Added.
  • UIProcess/API/APILoaderClient.h:

(API::LoaderClient::didStartLoadForQuickLookDocumentInMainFrame):
(API::LoaderClient::didFinishLoadForQuickLookDocumentInMainFrame):

  • UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:
  • UIProcess/Cocoa/NavigationState.h:
  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::setNavigationDelegate):
(WebKit::NavigationState::LoaderClient::didStartLoadForQuickLookDocumentInMainFrame):
(WebKit::NavigationState::LoaderClient::didFinishLoadForQuickLookDocumentInMainFrame):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::didStartLoadForQuickLookDocumentInMainFrame):
(WebKit::WebPageProxy::didFinishLoadForQuickLookDocumentInMainFrame):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:

(WebKit::WebFrameLoaderClient::didCreateQuickLookHandle):

  • WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.cpp: Added.

(WebKit::WebQuickLookHandleClient::WebQuickLookHandleClient): Sent DidStartLoadForQuickLookDocumentInMainFrame
to WebPageProxy.
(WebKit::WebQuickLookHandleClient::didReceiveDataArray): Appended dataArray to m_data.
(WebKit::WebQuickLookHandleClient::didFinishLoading): Sent DidFinishLoadForQuickLookDocumentInMainFrame to
WebPageProxy and then cleared m_data.
(WebKit::WebQuickLookHandleClient::didFail): Cleared m_data.

  • WebProcess/WebCoreSupport/ios/WebQuickLookHandleClient.h: Added.

(WebKit::WebQuickLookHandleClient::create):

1:01 PM Changeset in webkit [167900] by rniwa@webkit.org
  • 2 edits
    1 add in trunk/LayoutTests

Layout Test fast/events/shadow-event-path[-2].html is failing
https://bugs.webkit.org/show_bug.cgi?id=132238

Add the file that was supposed to be committed in r167840.

12:57 PM Changeset in webkit [167899] by Chris Fleizach
  • 2 edits in trunk/Source/WebCore

REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
https://bugs.webkit.org/show_bug.cgi?id=111613

Reviewed by Mark Lam.

I think it's possible that didFinishSpeaking ends up calling directly back into start speaking, and the utterance reference
we were holding can get cleared, so protecting this should avoid a few asserts.

  • platform/mock/PlatformSpeechSynthesizerMock.cpp:

(WebCore::PlatformSpeechSynthesizerMock::speakingFinished):

12:56 PM Changeset in webkit [167898] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r167845): ASSERT(!m_renderView.needsLayout()) in svg/custom/bug79798.html
https://bugs.webkit.org/show_bug.cgi?id=132297

  • platform/wk2/TestExpectations:

Skip the test.

12:01 PM Changeset in webkit [167897] by fpizlo@apple.com
  • 22 edits in trunk/Source

GC should be able to remove things from the DFG worklist and cancel on-going compilations if it knows that the compilation would already be invalidated
https://bugs.webkit.org/show_bug.cgi?id=132166

Reviewed by Oliver Hunt and Mark Hahnenberg.

The GC can aid type inference by removing structures that are dead and jettisoning
code that relies on those structures. This can dramatically accelerate type inference
for some tricky programs.

Unfortunately, we previously pinned any structures that enqueued compilations depended
on. This means that if you're on a machine that only runs a single compilation thread
and where compilations are relatively slow, you have a high chance of large numbers of
structures being pinned during any GC since the compilation queue is likely to be full
of random stuff.

This comprehensively fixes this issue by allowing the GC to remove compilation plans
if the things they depend on are dead, and to even cancel safepointed compilations.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::shouldImmediatelyAssumeLivenessDuringScan):
(JSC::CodeBlock::isKnownToBeLiveDuringGC):
(JSC::CodeBlock::finalizeUnconditionally):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::shouldImmediatelyAssumeLivenessDuringScan): Deleted.

  • dfg/DFGDesiredIdentifiers.cpp:

(JSC::DFG::DesiredIdentifiers::DesiredIdentifiers):

  • dfg/DFGDesiredIdentifiers.h:
  • dfg/DFGDesiredWatchpoints.h:
  • dfg/DFGDesiredWeakReferences.cpp:

(JSC::DFG::DesiredWeakReferences::DesiredWeakReferences):

  • dfg/DFGDesiredWeakReferences.h:
  • dfg/DFGGraphSafepoint.cpp:

(JSC::DFG::GraphSafepoint::GraphSafepoint):

  • dfg/DFGGraphSafepoint.h:
  • dfg/DFGPlan.cpp:

(JSC::DFG::Plan::Plan):
(JSC::DFG::Plan::compileInThread):
(JSC::DFG::Plan::compileInThreadImpl):
(JSC::DFG::Plan::notifyCompiling):
(JSC::DFG::Plan::notifyCompiled):
(JSC::DFG::Plan::notifyReady):
(JSC::DFG::Plan::checkLivenessAndVisitChildren):
(JSC::DFG::Plan::isKnownToBeLiveDuringGC):
(JSC::DFG::Plan::cancel):
(JSC::DFG::Plan::visitChildren): Deleted.

  • dfg/DFGPlan.h:
  • dfg/DFGSafepoint.cpp:

(JSC::DFG::Safepoint::Result::~Result):
(JSC::DFG::Safepoint::Result::didGetCancelled):
(JSC::DFG::Safepoint::Safepoint):
(JSC::DFG::Safepoint::~Safepoint):
(JSC::DFG::Safepoint::checkLivenessAndVisitChildren):
(JSC::DFG::Safepoint::isKnownToBeLiveDuringGC):
(JSC::DFG::Safepoint::cancel):
(JSC::DFG::Safepoint::visitChildren): Deleted.

  • dfg/DFGSafepoint.h:

(JSC::DFG::Safepoint::Result::Result):

  • dfg/DFGWorklist.cpp:

(JSC::DFG::Worklist::compilationState):
(JSC::DFG::Worklist::waitUntilAllPlansForVMAreReady):
(JSC::DFG::Worklist::removeAllReadyPlansForVM):
(JSC::DFG::Worklist::completeAllReadyPlansForVM):
(JSC::DFG::Worklist::visitWeakReferences):
(JSC::DFG::Worklist::removeDeadPlans):
(JSC::DFG::Worklist::runThread):
(JSC::DFG::Worklist::visitChildren): Deleted.

  • dfg/DFGWorklist.h:
  • ftl/FTLCompile.cpp:

(JSC::FTL::compile):

  • ftl/FTLCompile.h:
  • heap/CodeBlockSet.cpp:

(JSC::CodeBlockSet::rememberCurrentlyExecutingCodeBlocks):

  • heap/Heap.cpp:

(JSC::Heap::markRoots):
(JSC::Heap::visitCompilerWorklistWeakReferences):
(JSC::Heap::removeDeadCompilerWorklistEntries):
(JSC::Heap::visitWeakHandles):
(JSC::Heap::collect):
(JSC::Heap::visitCompilerWorklists): Deleted.

  • heap/Heap.h:
11:45 AM Changeset in webkit [167896] by beidson@apple.com
  • 5 edits in trunk/Source/WebKit2

Hide service controls for selection behind a runtime switch
<rdar://problem/16736616> and https://bugs.webkit.org/show_bug.cgi?id=132291

Reviewed by Tim Horton.

  • Shared/WebPreferencesStore.h:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:

(WebKit::WebEditorClient::selectionRectsDidChange): Do nothing if the UI is disabled.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::updatePreferences):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::serviceControlsEnabled):

11:05 AM Changeset in webkit [167895] by commit-queue@webkit.org
  • 7 edits
    2 deletes in trunk

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

broke a newmulticol test (spanner-nested-dynamic) (Requested
by thorton on #webkit).

Reverted changeset:

"Store the containing region map inside the flow thread"
https://bugs.webkit.org/show_bug.cgi?id=131647
http://trac.webkit.org/changeset/167871

10:57 AM Changeset in webkit [167894] by commit-queue@webkit.org
  • 9 edits in trunk/Source

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

caused crashes+timeouts+layout test failures described in the
bug (Requested by thorton on #webkit).

Reverted changeset:

"Coalesce responses on network process side"
https://bugs.webkit.org/show_bug.cgi?id=132229
http://trac.webkit.org/changeset/167853

10:38 AM Changeset in webkit [167893] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

Fix the iOS buld.

  • UIProcess/WebPageProxy.cpp:

(WebKit::areAllTouchPointsReleased):

10:28 AM Changeset in webkit [167892] by Simon Fraser
  • 2 edits in trunk/Source/WebKit2

[iOS WK2] Make subview rebuilding more incremental
https://bugs.webkit.org/show_bug.cgi?id=132162
<rdar://problem/16718916>

Reviewed by Sam Weinig.

Previously we did bulk replacement of subviews, but that triggers
UIKit to send spurious will/DidMoveToWindow messages, which can
interfere with UIScrollView scrolling.

Make _web_setSubviews more incremental, only removing
deleted subviews, adding new ones, and moving existing ones
into the correct order.

  • Shared/mac/RemoteLayerTreePropertyApplier.mm:

(-[UIView _web_setSubviews:]):

10:28 AM Changeset in webkit [167891] by Simon Fraser
  • 4 edits in trunk/Source

[iOS WK2] flickery scrolling with overflow-scrolling:touch
https://bugs.webkit.org/show_bug.cgi?id=132150

Source/WebCore:

Reviewed by Tim Horton.

Fix typo in a comment.

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):

Source/WebKit2:
<rdar://problem/16683006>

Reviewed by Tim Horton.

Maintain a flag that tells us if the user is interacting
with the UIScrollView, and while set, don't clobber the contentOffset
via scrolling tree updates.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(-[WKOverflowScrollViewDelegate initWithScrollingTreeNode:WebKit::]):
(-[WKOverflowScrollViewDelegate scrollViewWillBeginDragging:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDragging:willDecelerate:]):
(-[WKOverflowScrollViewDelegate scrollViewDidEndDecelerating:]): We need this one,
not scrollViewDidEndScrollingAnimation:, to detect the end of decleration.
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateAfterChildren):
(-[WKOverflowScrollViewDelegate scrollViewDidEndScrollingAnimation:]): Deleted.

10:27 AM Changeset in webkit [167890] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[X11] Add missing case for mime type application/x-webkit-test-netscape
https://bugs.webkit.org/show_bug.cgi?id=132278

Patch by Krzysztof Wolanski <k.wolanski@samsung.com> on 2014-04-28
Reviewed by Darin Adler.

Case for x-webkit-test-netscape has been omitted along with r167759.

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::initialize):

10:26 AM Changeset in webkit [167889] by mhahnenberg@apple.com
  • 7 edits
    4 adds in trunk

Deleting properties poisons objects
https://bugs.webkit.org/show_bug.cgi?id=131551

Reviewed by Oliver Hunt.

Source/JavaScriptCore:
This is ~3% progression on Dromaeo with a ~6% progression on the jslib portion of Dromaeo in particular.

  • runtime/JSPropertyNameIterator.cpp:

(JSC::JSPropertyNameIterator::create):

  • runtime/PropertyMapHashTable.h:

(JSC::PropertyTable::hasDeletedOffset):
(JSC::PropertyTable::hadDeletedOffset): If we ever had deleted properties we can no longer cache offsets when
iterating properties because we're required to iterate properties in insertion order.

  • runtime/Structure.cpp:

(JSC::Structure::Structure):
(JSC::Structure::materializePropertyMap): We now re-use deleted properties when materializing the property map.
(JSC::Structure::removePropertyTransition): We allow up to 5 deletes for a particular path through the tree of
Structure transitions. After that, we convert to an uncacheable dictionary like we used to. We don't cache
delete transitions, but we allow transitioning from them.
(JSC::Structure::changePrototypeTransition):
(JSC::Structure::despecifyFunctionTransition):
(JSC::Structure::attributeChangeTransition):
(JSC::Structure::toDictionaryTransition):
(JSC::Structure::preventExtensionsTransition):
(JSC::Structure::addPropertyWithoutTransition):
(JSC::Structure::removePropertyWithoutTransition):
(JSC::Structure::pin): Now does only what it says it does--marks the property table as pinned.
(JSC::Structure::pinAndPreventTransitions): More descriptive version of what the old pin() was doing.

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setEnumerationCache):
(JSC::Structure::hadDeletedOffsets):
(JSC::Structure::propertyTable):
(JSC::Structure::checkOffsetConsistency): Rearranged variables to be more sensible.

  • tests/stress/for-in-after-delete.js: Added.

(foo):

LayoutTests:
New JS regress test. We're ~3.5x faster on this microbenchmark now.

  • js/regress/delete-a-few-properties-then-get-by-id-expected.txt: Added.
  • js/regress/delete-a-few-properties-then-get-by-id.html: Added.
  • js/regress/script-tests/delete-a-few-properties-then-get-by-id.js: Added.

(MyObject):
(foo):

10:11 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
10:09 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
9:24 AM WebKitGTK/KeepingTheTreeGreen edited by calvaris@igalia.com
(diff)
8:59 AM Changeset in webkit [167888] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Flagged some tests.
8:18 AM Changeset in webkit [167887] by Martin Robinson
  • 2 edits in trunk/Source/WebCore

[GTK] Builtin cursors do not properly handle transparency
https://bugs.webkit.org/show_bug.cgi?id=131866

Reviewed by Gustavo Noronha Silva.

Tested by ManualTests/cursor.html.

  • platform/gtk/CursorGtk.cpp:

(WebCore::createNamedCursor): Instead of interpreting the source bitmap as an A1 image, use
it as a 1-bit black and white image. We do this by:

  1. Painting the result to a full color image with transparency instead of an alpha-only surface.
  2. Masking a white background using the cursor alpha surface.
  3. Painting the black parts of the cursor by painting the source surface, where black pixels will be interpreted as full opaque pixels.
8:06 AM Changeset in webkit [167886] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening.

  • platform/gtk/TestExpectations: Flagged some tests.
7:27 AM Changeset in webkit [167885] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit2

[WK2][X11] NetscapePluginModule::scanPlugin() should write UTF-8 strings to stdout
https://bugs.webkit.org/show_bug.cgi?id=132245

Reviewed by Carlos Garcia Campos.

NetscapePluginModule::scanPlugin(), in the helper writeLine function, takes each character
of the given string and writes it out as a UChar, doing two fputc calls for each byte of the
16-bit type.

This fails badly with characters with integer value less than 256 as the most significant byte
of the UChar is written out as a null character. This effectively chops the output that's gathered
in the UIProcess and is parsed in PluginProcessProxy::scanPlugin().

To avoid all this, the UTF-8 encoding of the string is written out in the PluginProcess, and
String::fromUTF8() is called in the UIProcess to properly decode the received string.

  • Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:

(WebKit::writeCharacter):
(WebKit::writeLine):
(WebKit::writeByte): Deleted.

  • UIProcess/Plugins/unix/PluginProcessProxyUnix.cpp:

(WebKit::PluginProcessProxy::scanPlugin):

7:24 AM Changeset in webkit [167884] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GTK][WK2] Missing return statement in webkit_plugin_get_description()
https://bugs.webkit.org/show_bug.cgi?id=132263

Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitPlugin.cpp:

(webkit_plugin_get_description): Actually return the data of the cached
plugin description CString.

4:10 AM Changeset in webkit [167883] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Crash in debug build with removing windowed plugin child widgets from the view
https://bugs.webkit.org/show_bug.cgi?id=132252

Reviewed by Philippe Normand.

It crashes due to an assert in HashTable that checks the iterators
validity. The problem is that we are iterating the children map
and the callback called on every iteration might modify the map,
making the iterators invalid. This happens when the WebView is
destroyed, GtkContainer calls gtk_container_foreach() with
gtk_widget_destroy as callback. When a widget inside a container
is destroyed, it's removed from the container, and in our case,
the child widget is removed from the map. This fixes several
crashes when running layout tests in debug bot.

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContainerForall): Use copyKeysToVector() instead
of using a range iterator for the map keys and check in every
iteration that the child widget from the keys vector is still
present in the map before calling the callback.

3:57 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
3:50 AM Changeset in webkit [167882] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Adding failure expectations for 6
failing and flaky tests. Removed 1.

  • platform/gtk/TestExpectations:
2:35 AM Changeset in webkit [167881] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Review media bugs flags
https://bugs.webkit.org/show_bug.cgi?id=132246

Reviewed by Philippe Normand.

  • platform/gtk/TestExpectations: Review flags of the GTK media

bugs.

1:29 AM Changeset in webkit [167880] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Update GObject DOM bindings symbols file.

  • bindings/gobject/webkitdom.symbols: Add missing symbols.
1:27 AM Changeset in webkit [167879] by Manuel Rego Casasnovas
  • 6 edits in trunk/Source/WebCore

OrderIterator refactoring to avoid extra loops
https://bugs.webkit.org/show_bug.cgi?id=119061

Reviewed by Darin Adler.

This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
(RenderBox) and the index of this child. In addition, OrderIterator code is simplified.

It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
on a patch from Blink r153971 by <jchaffraix@chromium.org>.

Current implementation is O(number of children * number of order values). Now it will just do a sort operation
and then a regular loop. So if you have different order values in a flexbox or grid the performance will
improve.

Comparing results of perf-tests:

  • Layout/auto-grid-lots-of-data: ~0.5% worse.
  • Layout/fixed-grid-lots-of-data: ~0.5% worse.
  • Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
  • Layout/flexbox-lots-of-data: ~5% better.

No new tests, already covered by current tests.

  • rendering/OrderIterator.cpp:

(WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
(WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
(WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
(WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
(WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
child with non default order value.
(WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
m_allChildrenHaveDefaultOrderValue accordingly.
(WebCore::OrderIterator::OrderIterator): Deleted.
(WebCore::OrderIterator::setOrderValues): Deleted.
(WebCore::OrderIterator::reset): Deleted.

  • rendering/OrderIterator.h:

(WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
(WebCore::OrderIterator::currentChild): Deleted.

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
(WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
(WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.

  • rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().

1:16 AM Changeset in webkit [167878] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Patch by Zan Dobersek <zdobersek@igalia.com> on 2014-04-28
Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

  • css/CSSParser.cpp:

(WebCore::filterProperties):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::asText):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):

1:12 AM Changeset in webkit [167877] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
https://bugs.webkit.org/show_bug.cgi?id=131685

Reviewed by Darin Adler.

Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
bounds checks which are not necessary as long as a CSSPropertyID value is used.

  • css/CSSParser.cpp:

(WebCore::filterProperties):

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::asText):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::CascadedProperties::hasProperty):
(WebCore::StyleResolver::CascadedProperties::set):

1:06 AM Changeset in webkit [167876] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebCore

[GTK] TextTrack kind and mode attributes are enums since r166180
https://bugs.webkit.org/show_bug.cgi?id=132228

Reviewed by Martin Robinson.

We don't support enum values yet in GObject DOM bindings, but they
are internally strings anyway, so we can keep the old
implementations using strings as custom functions until we
properly support enums.

  • bindings/gobject/WebKitDOMCustom.cpp:

(webkit_dom_text_track_get_kind):
(webkit_dom_text_track_get_mode):
(webkit_dom_text_track_set_mode):

  • bindings/gobject/WebKitDOMCustom.h:
  • bindings/gobject/WebKitDOMCustom.symbols:
1:03 AM Changeset in webkit [167875] by Carlos Garcia Campos
  • 6 edits in trunk/Source/WebCore

[GTK] TextTrack::addCue can raise an exception since r163974
https://bugs.webkit.org/show_bug.cgi?id=132227

Reviewed by Martin Robinson.

webkit_dom_text_track_add_cue() now receives a GError paramater
which is an API break. Add
webkit_dom_text_track_add_cue_with_error and keep
webkit_dom_text_track_add_cue as deprecated to keep API
compatibility.

  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_text_track_add_cue):

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols:
  • bindings/gobject/webkitdom.symbols:
  • bindings/scripts/CodeGeneratorGObject.pm:

(GetEffectiveFunctionName):

12:57 AM Changeset in webkit [167874] by Carlos Garcia Campos
  • 9 edits in trunk/Source/WebCore

[GTK] TextTrackCue API changed in r163649
https://bugs.webkit.org/show_bug.cgi?id=132226

Reviewed by Martin Robinson.

TextTrackCue is now a base class and part of its API was moved to
the derived class VTTCue. Update the GObject DOM bindings to keep
backwards compatibility.

  • PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
  • bindings/gobject/WebKitDOMDeprecated.cpp:

(webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
favor of VTTCue API.
(webkit_dom_text_track_cue_get_vertical): Ditto.
(webkit_dom_text_track_cue_set_vertical): Ditto.
(webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
(webkit_dom_text_track_cue_get_line): Ditto.
(webkit_dom_text_track_cue_set_line): Ditto.
(webkit_dom_text_track_cue_get_position): Ditto.
(webkit_dom_text_track_cue_set_position): Ditto.
(webkit_dom_text_track_cue_get_size): Ditto.
(webkit_dom_text_track_cue_set_size): Ditto.
(webkit_dom_text_track_cue_get_align): Ditto.
(webkit_dom_text_track_cue_set_align): Ditto.
(webkit_dom_text_track_cue_get_text): Ditto.
(webkit_dom_text_track_cue_set_text): Ditto.

  • bindings/gobject/WebKitDOMDeprecated.h:
  • bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
  • bindings/gobject/WebKitDOMPrivate.cpp:

(WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
base class to generate DataCue or VTTCue objects.

  • bindings/gobject/WebKitDOMPrivate.h:
  • bindings/gobject/webkitdom.symbols: Add DataCue symbols.
  • bindings/scripts/CodeGeneratorGObject.pm:

(IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.

12:51 AM Changeset in webkit [167873] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] GObject introspection links to installed libs when using jhbuild
https://bugs.webkit.org/show_bug.cgi?id=132220

Reviewed by Martin Robinson.

The problem is that gobject-introspection is linking the temporary
binaries adding the library paths present LDFLAGS environment
variable first, taking precedence over the libraries in the build
dir. Since the libraries paths of the dependencies are already
correctly deduced by gobject-introspection using ldd, we can
just unset the LDFLAGS variable before calling g-ir-scanner to
make sure the libraries in the build dir take predence.

  • PlatformGTK.cmake:

Apr 27, 2014:

11:15 PM Changeset in webkit [167872] by ryuan.choi@samsung.com
  • 4 edits in trunk

[EFL] Remove indexedDB's dependency on leveldb and disable indexedDB
https://bugs.webkit.org/show_bug.cgi?id=132176

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

.:
EFL port will use sqlite to support indexedDB. So, this patch removes levelDB dependency for now.

  • Source/cmake/OptionsEfl.cmake:

Tools:
EFL port will use sqlite to support indexedDB. So, this patch removes levelDB dependency
and turn off indexedDB feature until the sqlite implementation is introduced.

  • Scripts/webkitperl/FeatureList.pm:
10:52 PM Changeset in webkit [167871] by abucur@adobe.com
  • 7 edits
    2 adds in trunk

Store the containing region map inside the flow thread
https://bugs.webkit.org/show_bug.cgi?id=131647

Reviewed by Mihnea Ovidenie.

Source/WebCore:
The patch moves the containing region map inside the flow thread where
it can be better handled in case the region chain changes and the map
needs to be cleared.

As a result of this move we are able to also cleanup the lines region
information of a block flow when it is removed from the tree.

Test: fast/regions/inline-strike-through.html

  • rendering/InlineFlowBox.h:

(WebCore::InlineFlowBox::InlineFlowBox):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::addOverflowFromInlineChildren):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::removeFlowChildInfo):
(WebCore::RenderFlowThread::invalidateRegions):
(WebCore::RenderFlowThread::removeLineRegionInfo):
(WebCore::RenderFlowThread::checkLinesConsistency):
(WebCore::RenderFlowThread::containingRegionMap):

  • rendering/RenderFlowThread.h:
  • rendering/RootInlineBox.cpp:

(WebCore::containingRegionMap):
(WebCore::RootInlineBox::~RootInlineBox):
(WebCore::RootInlineBox::paint):
(WebCore::RootInlineBox::containingRegion):
(WebCore::RootInlineBox::clearContainingRegion):
(WebCore::RootInlineBox::setContainingRegion):

LayoutTests:
Add a test that verifies the containing region map is properly cleared
when the region chain changes.

  • fast/regions/inline-strike-through-expected.txt: Added.
  • fast/regions/inline-strike-through.html: Added.
9:19 PM Changeset in webkit [167870] by Darin Adler
  • 5 edits
    2 adds in trunk

REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
https://bugs.webkit.org/show_bug.cgi?id=132241
rdar://problem/16501924

Reviewed by Andreas Kling.

Source/WebCore:
Test: fast/text/simple-lines-hover-underline.html

Checked that this does not hurt performance by running the
run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.

  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
getting at the data member directly.
(WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
(WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
(WebCore::RenderBlockFlow::lineCount): Ditto.
(WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
(WebCore::RenderBlockFlow::hasLines): Ditto.
(WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
(WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
createLineBoxes function.
(WebCore::RenderBlockFlow::createLineBoxes): Ditto.

  • rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.

Added a private createLineBoxes function.

LayoutTests:

  • fast/text/simple-lines-hover-underline-expected.html: Added.
  • fast/text/simple-lines-hover-underline.html: Added.
  • fast/text/simple-lines-hover.html: Removed an unneeded style element with a style rule that

does nothing.

9:07 PM Changeset in webkit [167869] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
https://bugs.webkit.org/show_bug.cgi?id=132239
<rdar://problem/16192842>

Reviewed by Darin Adler.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scalePage):
The change in r167864 broke iOS animated resize, because it was depending on
the dynamic size update code not running if the scale wasn't going to change.
So, as a band-aid we should bail from doing that work if the scales aren't different.
In the long term we should try to untangle this code and make it less platform dependent.

7:37 PM Changeset in webkit [167868] by commit-queue@webkit.org
  • 10 edits in trunk

[MediaStream] .ended shouldn't be part of MediaStream IDL
https://bugs.webkit.org/show_bug.cgi?id=132104

Patch by Praveen R Jadhav <praveen.j@samsung.com> on 2014-04-27
Reviewed by Eric Carlson.

Source/WebCore:
.ended attribute is spec'ed out of MediaStream IDL. Instead, .active
is introduced to handle more scenarios. This patch replaces all 'ended'
attribute calls with corresponding 'active' attributes.

MediaStream-add-remove-tracks.html is updated.

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::addTrack): Replaced ended() with active().
(WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
is retained which propagates oninactive event.
(WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
(WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
(WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
(WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
(WebCore::MediaStream::ended): Deleted.
(WebCore::MediaStream::setEnded): Deleted.
(WebCore::MediaStream::streamDidEnd): Deleted.

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/MediaStream.idl:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
with setActive().

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::MediaStreamPrivate):
(WebCore::MediaStreamPrivate::setActive): Updated comment from bug
https://bugs.webkit.org/show_bug.cgi?id=131973
(WebCore::MediaStreamPrivate::setEnded): Deleted.

  • platform/mediastream/MediaStreamPrivate.h:

(WebCore::MediaStreamPrivate::ended): Deleted.

LayoutTests:
.ended is not part of MediaStream IDL. Updated test case.

  • fast/mediastream/MediaStream-add-remove-tracks-expected.txt:
  • fast/mediastream/MediaStream-add-remove-tracks.html:
7:09 PM Changeset in webkit [167867] by eunmi15.lee@samsung.com
  • 2 edits in trunk/Source/WebKit2

TouchEvent is not handled after releasing any point among touched points.
https://bugs.webkit.org/show_bug.cgi?id=132043

Reviewed by Benjamin Poulain.

Handle TouchEvent until all touched points are released by setting
trackingTouchEvents variable to false when all points are released.

  • UIProcess/WebPageProxy.cpp:

(WebKit::areAllTouchPointsReleased):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):

6:55 PM Changeset in webkit [167866] by ap@apple.com
  • 4 edits in trunk/Source/WebKit2

Don't use DispatchMessageEvenWhenWaitingForSyncReply for messages from NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=132144

Reviewed by Darin Adler.

  • NetworkProcess/AsynchronousNetworkLoaderClient.cpp:

(WebKit::AsynchronousNetworkLoaderClient::willSendRequest):
(WebKit::AsynchronousNetworkLoaderClient::canAuthenticateAgainstProtectionSpace):
Dont use the IPC::DispatchMessageEvenWhenWaitingForSyncReply flag. It's not needed,
almost never works in NetworkProcess, but may cause trouble if it did.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::NetworkConnectionToWebProcess): Removed
setOnlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage()
function call, because there are no more any messages in NetworkProcess it could affect.

  • Platform/IPC/Connection.cpp: (IPC::Connection::dispatchMessage): Added a FIXME

for an unrelated bug Anders and myself noticed while looking into this.

4:13 PM Changeset in webkit [167865] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] -[WKWebProcessPlugInController parameters] returns nil if no parameters have been set yet
https://bugs.webkit.org/show_bug.cgi?id=132223

Reviewed by Sam Weinig.

  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::bundleParameters): Create the WKWebProcessBundleParameters if
needed.

3:47 PM Changeset in webkit [167864] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

REGRESSION (r164702): Double tap doesn't stay under the new element once the animation finishes
https://bugs.webkit.org/show_bug.cgi?id=132239
<rdar://problem/16192842>

Reviewed by Sam Weinig.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::scalePage):
The early-return added to WebPage::scalePage breaks callers who depend
on being able to call scalePage() with the same scale but a different
origin and having that change take effect.

Page::setPageScaleFactor already has the requisite logic, so move
the early return down after that call, and guard only notification
of page scale changes.

3:28 PM Changeset in webkit [167863] by aestes@apple.com
  • 8 edits
    1 delete in trunk/Source

[iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
https://bugs.webkit.org/show_bug.cgi?id=132215

Reviewed by Dan Bernstein.

Source/WebCore:

  • WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
  • platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
  • platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.

(WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo): Called QuickLookHandle::create() directly.

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/ios/WebResourceLoaderIOS.mm: Removed.
2:33 PM Changeset in webkit [167862] by timothy_horton@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (167840): Layout Test fast/events/shadow-event-path[-2].html is failing

Mark as failing until the shared JS file can be recovered.

1:43 PM Changeset in webkit [167861] by weinig@apple.com
  • 16 edits in trunk/Source

[iOS WebKit2] Add support for text autosizing
<rdar://problem/16545245>
https://bugs.webkit.org/show_bug.cgi?id=132237

Reviewed by Tim Horton.

../WebCore:
Move text autosizing width from Frame to Page, as it is a Page level concept.

  • WebCore.exp.in:
  • page/Frame.cpp:

(WebCore::Frame::textAutosizingWidth): Deleted.
(WebCore::Frame::setTextAutosizingWidth): Deleted.

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

(WebCore::FrameView::layout):

  • page/Page.cpp:

(WebCore::Page::Page):

  • page/Page.h:

(WebCore::Page::textAutosizingWidth):
(WebCore::Page::setTextAutosizingWidth):

../WebKit/mac:

  • WebView/WebFrame.mm:

(-[WebFrame _setTextAutosizingWidth:]):
Forward setting of the text autosizing width to the Page.

../WebKit2:

  • Shared/WebPageCreationParameters.cpp:

(WebKit::WebPageCreationParameters::encode):
(WebKit::WebPageCreationParameters::decode):

  • Shared/WebPageCreationParameters.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::creationParameters):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::textAutosizingWidth):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
Pass the text autosizing width from the UIProcess to WebProcess.

1:42 PM Changeset in webkit [167860] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

WebKit2 View Gestures (Zoom): Pages with 'background-attachment: fixed' don't behave correctly when zoomed
https://bugs.webkit.org/show_bug.cgi?id=132225
<rdar://problem/15729975>

Reviewed by Darin Adler.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::layerForTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::shadowLayerForTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::adjustTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::commitTransientZoom):
(WebKit::TiledCoreAnimationDrawingArea::applyTransientZoomToPage):
Factor out code to choose which layer (and shadow layer) to apply the transient zoom to.
If we have a contentsContainmentLayer (because we have composited background-attachment: fixed),
it applies page scale, so we should apply the transient zoom to that layer
instead of the RenderView's main GraphicsLayer.

12:47 PM Changeset in webkit [167859] by psolanki@apple.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed. iOS build fix.

  • UIProcess/ios/SmartMagnificationController.h:
11:32 AM Changeset in webkit [167858] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Adding failure expectations for 6 failing reference tests.

  • platform/gtk/TestExpectations:
10:03 AM Changeset in webkit [167857] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Unreviewed. Updating one bindings test baseline after r167855.

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::~JSTestCallback):

9:06 AM Changeset in webkit [167856] by Darin Adler
  • 9 edits in trunk/Source/WebCore

Webpages can trigger loads with invalid URLs
https://bugs.webkit.org/show_bug.cgi?id=132224
rdar://problem/16697142

Reviewed by Alexey Proskuryakov.

Invalid URLs can be a way to trick the user about what website they
are looking at. Still trying to figure out a good way to regression-test this.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
the navigation scheduler.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData): Ditto.

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
than a string.
(WebCore::ScheduledURLNavigation::url): Ditto.
(WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
(WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
(WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
(WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
prevents navigation to any URL that is invalid, except for JavaScript URLs,
which need not be valid.
(WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
(WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
String. Also got rid of empty string check since empty URLs are also invalid,
and so shouldScheduleNavigation will take care of it.
(WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.

  • loader/NavigationScheduler.h: Take URL instead of String. Also removed some

unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
already noncopyable because it has a reference for a data member, and the
disabler doesn't have any real reason to be noncopyable.

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
String to the NavigationScheduler.

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow): Ditto.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
of a String.

  • page/SecurityOrigin.h: Updated for above change.
7:07 AM Changeset in webkit [167855] by zandobersek@gmail.com
  • 35 edits in trunk/Source/WebCore

ScriptExecutionContext::Task should work well with C++11 lambdas
https://bugs.webkit.org/show_bug.cgi?id=129795

Reviewed by Darin Adler.

Instead of having classes that subclass ScriptExecutionContext::Task and override
the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
which would contain the code currently kept in the performTask() methods.

This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
cleanup tasks, the Task object can be implicitly constructed by using the initializer list
constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
object in the std::function wrapper, along with a boolean member that indicates whether the
task is of cleanup nature.

  • Modules/quota/StorageErrorCallback.cpp:

(WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
(WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.

  • Modules/quota/StorageErrorCallback.h:

(WebCore::StorageErrorCallback::CallbackTask::create): Deleted.

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::~Database):
(WebCore::Database::runTransaction):
(WebCore::Database::scheduleTransactionCallback):
(WebCore::DerefContextTask::create): Deleted.
(WebCore::DerefContextTask::performTask): Deleted.
(WebCore::DerefContextTask::isCleanupTask): Deleted.
(WebCore::DerefContextTask::DerefContextTask): Deleted.
(WebCore::callTransactionErrorCallback): Deleted.
(WebCore::DeliverPendingCallbackTask::create): Deleted.
(WebCore::DeliverPendingCallbackTask::performTask): Deleted.
(WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.

  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::openDatabase):
(WebCore::DatabaseCreationCallbackTask::create): Deleted.
(WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
(WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.

  • Modules/webdatabase/DatabaseSync.cpp:

(WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
(WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.

  • Modules/webdatabase/SQLCallbackWrapper.h:

(WebCore::SQLCallbackWrapper::clear):
(WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
(WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:

(WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
(WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
(WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
(WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
(WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
(WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):

  • Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
  • Modules/websockets/WorkerThreadableWebSocketChannel.cpp:

(WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
(WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
(WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
(WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.

  • Modules/websockets/WorkerThreadableWebSocketChannel.h:
  • bindings/js/JSCallbackData.h:

(WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
(WebCore::DeleteCallbackDataTask::create): Deleted.
(WebCore::DeleteCallbackDataTask::performTask): Deleted.
(WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.

  • bindings/js/JSDOMGlobalObjectTask.cpp:

(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
(WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
(WebCore::JSGlobalObjectTask::performTask): Deleted.

  • bindings/js/JSDOMGlobalObjectTask.h:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::queueTaskToEventLoop):

  • bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation):

  • dom/CrossThreadTask.h:

(WebCore::CrossThreadTask1::performTask):
(WebCore::CrossThreadTask2::performTask):
(WebCore::CrossThreadTask3::performTask):
(WebCore::CrossThreadTask4::performTask):
(WebCore::CrossThreadTask5::performTask):
(WebCore::CrossThreadTask6::performTask):
(WebCore::CrossThreadTask7::performTask):
(WebCore::CrossThreadTask8::performTask):
(WebCore::createCallbackTask):
(WebCore::CrossThreadTask1::create): Deleted.
(WebCore::CrossThreadTask2::create): Deleted.
(WebCore::CrossThreadTask3::create): Deleted.
(WebCore::CrossThreadTask4::create): Deleted.
(WebCore::CrossThreadTask5::create): Deleted.
(WebCore::CrossThreadTask6::create): Deleted.
(WebCore::CrossThreadTask7::create): Deleted.
(WebCore::CrossThreadTask8::create): Deleted.

  • dom/Document.cpp:

(WebCore::Document::addConsoleMessage):
(WebCore::Document::addMessage):
(WebCore::Document::postTask):
(WebCore::Document::pendingTasksTimerFired):
(WebCore::PerformTaskContext::PerformTaskContext): Deleted.
(WebCore::Document::didReceiveTask): Deleted.

  • dom/Document.h:
  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
(WebCore::ScriptExecutionContext::timerAlignmentInterval):
(WebCore::ProcessMessagesSoonTask::create): Deleted.
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
(WebCore::ScriptExecutionContext::Task::~Task): Deleted.

  • dom/ScriptExecutionContext.h:

(WebCore::ScriptExecutionContext::Task::Task):
(WebCore::ScriptExecutionContext::Task::performTask):
(WebCore::ScriptExecutionContext::Task::isCleanupTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
(WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.

  • dom/StringCallback.cpp:

(WebCore::StringCallback::scheduleCallback):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::postListenerTask):
(WebCore::CallCacheListenerTask::create): Deleted.
(WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.

  • workers/DefaultSharedWorkerRepository.cpp:

(WebCore::SharedWorkerProxy::postTaskToLoader):
(WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
(WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
(WebCore::DefaultSharedWorkerRepository::connectToWorker):
(WebCore::SharedWorkerConnectTask::create): Deleted.
(WebCore::SharedWorkerConnectTask::performTask): Deleted.

  • workers/WorkerEventQueue.cpp:

(WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
(WebCore::WorkerEventQueue::EventDispatcher::dispatch):
(WebCore::WorkerEventQueue::enqueueEvent):
(WebCore::WorkerEventQueue::cancelEvent):
(WebCore::WorkerEventQueue::close):

  • workers/WorkerEventQueue.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::close):
(WebCore::WorkerGlobalScope::postTask):
(WebCore::WorkerGlobalScope::addConsoleMessage):
(WebCore::WorkerGlobalScope::addMessage):
(WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.

  • workers/WorkerGlobalScope.h:
  • workers/WorkerLoaderProxy.h:
  • workers/WorkerMessagingProxy.cpp:

(WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
(WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
(WebCore::WorkerMessagingProxy::postTaskToLoader):
(WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
(WebCore::WorkerMessagingProxy::workerThreadCreated):
(WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
(WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
(WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
(WebCore::WorkerMessagingProxy::postMessageToPageInspector):
(WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
(WebCore::WorkerMessagingProxy::reportPendingActivity):
(WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
(WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
(WebCore::MessageWorkerTask::create): Deleted.
(WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
(WebCore::MessageWorkerTask::performTask): Deleted.
(WebCore::WorkerExceptionTask::create): Deleted.
(WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
(WebCore::WorkerExceptionTask::performTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
(WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
(WebCore::WorkerTerminateTask::create): Deleted.
(WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
(WebCore::WorkerTerminateTask::performTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::create): Deleted.
(WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
(WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::create): Deleted.
(WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
(WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::create): Deleted.
(WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
(WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.

  • workers/WorkerMessagingProxy.h:
  • workers/WorkerRunLoop.cpp:

(WebCore::WorkerRunLoop::postTask):
(WebCore::WorkerRunLoop::postTaskAndTerminate):
(WebCore::WorkerRunLoop::postTaskForMode):
(WebCore::WorkerRunLoop::Task::create):
(WebCore::WorkerRunLoop::Task::performTask):
(WebCore::WorkerRunLoop::Task::Task):

  • workers/WorkerRunLoop.h:
  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::stop):
(WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
(WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::create): Deleted.
(WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
(WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.

6:40 AM Changeset in webkit [167854] by zandobersek@gmail.com
  • 44 edits in trunk/Source/WebKit2

Move cross-port WebKit2 code to std::unique_ptr
https://bugs.webkit.org/show_bug.cgi?id=129670

Reviewed by Darin Adler.

Replace uses of OwnPtr, PassOwnPtr in cross-port WebKit2 code with std::unique_ptr.

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.cpp:

(WebKit::UniqueIDBDatabaseBackingStoreSQLite::createIndex):

  • DatabaseProcess/IndexedDB/sqlite/UniqueIDBDatabaseBackingStoreSQLite.h:
  • NetworkProcess/NetworkProcess.h:

(WebKit::NetworkProcess::addSupplement):

  • NetworkProcess/SynchronousNetworkLoaderClient.cpp:

(WebKit::SynchronousNetworkLoaderClient::didReceiveBuffer):

  • NetworkProcess/SynchronousNetworkLoaderClient.h:
  • Platform/IPC/Connection.cpp:

(IPC::Connection::dispatchWorkQueueMessageReceiverMessage):

  • Platform/IPC/Connection.h:
  • Platform/IPC/MessageReceiver.h:
  • Platform/Module.h:
  • Platform/WorkQueue.h:
  • Platform/efl/ModuleEfl.cpp:

(WebKit::Module::load):

  • Platform/mac/LayerHostingContext.mm:
  • Shared/APIURL.h:
  • Shared/Network/CustomProtocols/CustomProtocolManager.h:
  • Shared/Plugins/NPRemoteObjectMap.cpp:
  • Shared/ShareableBitmap.h:
  • UIProcess/DrawingAreaProxyImpl.h:
  • UIProcess/InspectorServer/WebSocketServer.cpp:

(WebKit::WebSocketServer::didAcceptConnection):
(WebKit::WebSocketServer::didCloseWebSocketServerConnection):

  • UIProcess/InspectorServer/WebSocketServer.h:
  • UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp:

(WebKit::connectionCallback):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::createDownloadProxy):

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Notifications/WebNotificationManagerProxy.h:
  • UIProcess/Plugins/WebPluginSiteDataManager.cpp:

(WebKit::WebPluginSiteDataManager::getSitesWithData):
(WebKit::WebPluginSiteDataManager::clearSiteData):
(WebKit::WebPluginSiteDataManager::didGetSitesWithDataForAllPlugins):
(WebKit::WebPluginSiteDataManager::didClearSiteDataForAllPlugins):

  • UIProcess/Plugins/WebPluginSiteDataManager.h:
  • UIProcess/Storage/StorageManager.cpp:

(WebKit::callCallbackFunction):
(WebKit::StorageManager::getOriginsInternal):

  • UIProcess/WebPageProxy.cpp:

(WebKit::ExceededDatabaseQuotaRecords::areBeingProcessed):
(WebKit::ExceededDatabaseQuotaRecords::createRecord):
(WebKit::ExceededDatabaseQuotaRecords::add):
(WebKit::ExceededDatabaseQuotaRecords::next):
(WebKit::WebPageProxy::handleMouseEvent):
(WebKit::WebPageProxy::handleWheelEvent):
(WebKit::WebPageProxy::processNextQueuedWheelEvent):
(WebKit::WebPageProxy::internalShowContextMenu):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::createDownloadProxy):

  • UIProcess/WebProcessProxy.h:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:

(WebKit::PluginDestructionProtector::PluginDestructionProtector):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:

(WebKit::NetscapePluginStream::deliverData):

  • WebProcess/Plugins/Netscape/NetscapePluginStream.h:
  • WebProcess/Plugins/PluginProcessConnectionManager.h:
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::initialize):
(WebKit::PluginProxy::didCreatePluginInternal):
(WebKit::PluginProxy::didFailToCreatePluginInternal):

  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::createWebEvent):
(WebKit::PluginView::handleEvent):

  • WebProcess/Plugins/PluginView.h:
  • WebProcess/WebCoreSupport/WebPopupMenu.h:
  • WebProcess/WebPage/EventDispatcher.cpp:

(WebKit::EventDispatcher::EventDispatcher):

  • WebProcess/WebPage/EventDispatcher.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::beginPrinting):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebProcess.h:

(WebKit::WebProcess::addSupplement):

4:53 AM Changeset in webkit [167853] by Antti Koivisto
  • 9 edits in trunk/Source

Coalesce responses on network process side
https://bugs.webkit.org/show_bug.cgi?id=132229

Reviewed by Andreas Kling.

Source/WebCore:

  • WebCore.exp.in:

Source/WebKit2:

To reduce IPC we should coalesce response data in the network process and send it over with single IPC call.

  • NetworkProcess/AsynchronousNetworkLoaderClient.cpp:

(WebKit::AsynchronousNetworkLoaderClient::AsynchronousNetworkLoaderClient):
(WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
(WebKit::AsynchronousNetworkLoaderClient::didReceiveBuffer):
(WebKit::AsynchronousNetworkLoaderClient::didFinishLoading):
(WebKit::AsynchronousNetworkLoaderClient::didFail):
(WebKit::AsynchronousNetworkLoaderClient::dispatchPartialCoalescedResponse):
(WebKit::AsynchronousNetworkLoaderClient::clearCoalescedResponse):
(WebKit::AsynchronousNetworkLoaderClient::responseCoalesceTimerFired):

Coalesce the response. Completed response is sent on didFinishLoading. If the coalesce timer fires
before that the data accumulated so far is dispatched.

  • NetworkProcess/AsynchronousNetworkLoaderClient.h:
  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.cpp:

(WebKit::WebResourceLoader::didReceiveCompleteResponse):

  • WebProcess/Network/WebResourceLoader.h:
  • WebProcess/Network/WebResourceLoader.messages.in:


Add a new message type that covers didReceiveResponse, didReceiveBuffer and didFinishLoading in a single message.

1:15 AM Changeset in webkit [167852] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

Roll out changes not part of the patch reviewed for Bug 132089
<http://webkit.org/b/132089>

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):

Note: See TracTimeline for information about the timeline view.