WebKit-https.git
4 years agoCaps lock indicator should not be shown in read-only or disabled field
dbates@webkit.org [Wed, 3 Jun 2015 22:35:44 +0000 (22:35 +0000)]
Caps lock indicator should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145612
<rdar://problem/21227454>

Reviewed by Darin Adler.

.:

* ManualTests/password-caps-lock-should-not-show-in-read-only-field.html: Added.
* ManualTests/password-caps-lock-should-not-show-when-field-becomes-disabled.html: Added.
* ManualTests/password-caps-lock-should-not-show-when-field-becomes-read-only.html: Added.

Source/WebCore:

* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledAttributeChanged): Update caps lock indicator state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawCapsLockIndicator): Do not draw the caps lock indicator
when the field is read-only or disabled.

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

4 years agoCrash in GraphicsContext3D::getInternalFramebufferSize
dino@apple.com [Wed, 3 Jun 2015 22:32:40 +0000 (22:32 +0000)]
Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

If we are in an unitialized or lost state, don't try to access the context.

In order to test this, I added an Internal setting that always
forces WebGL into a pending state.

Test: fast/canvas/webgl/useWhilePending.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.
* page/Settings.cpp: New Internal setting for forcing a pending policy.
(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):
* page/Settings.h:
(WebCore::Settings::isForcePendingWebGLPolicy):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

Attemps to use a WebGL context while it is in the pending state.

* fast/canvas/webgl/useWhilePending-expected.txt: Added.
* fast/canvas/webgl/useWhilePending.html: Added.

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

4 years agoAutoFill button should not be shown in read-only or disabled field
dbates@webkit.org [Wed, 3 Jun 2015 22:29:38 +0000 (22:29 +0000)]
AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

Update expected result for Windows that I inadvertently modified in <http://trac.webkit.org/changeset/185166>.

* platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:

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

4 years ago[iOS] Skip compositing/layer-creation/zoomed-clip-intersection.html
zalan@apple.com [Wed, 3 Jun 2015 22:00:28 +0000 (22:00 +0000)]
[iOS] Skip compositing/layer-creation/zoomed-clip-intersection.html
eventSender.scalePageBy() needs to be implemented.

Unreviewed garderning.

* platform/ios-simulator/TestExpectations:

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

4 years agoWebKit2.TextFieldDidBeginAndEndEditing is flaky on Mac
dbates@webkit.org [Wed, 3 Jun 2015 21:43:27 +0000 (21:43 +0000)]
WebKit2.TextFieldDidBeginAndEndEditing is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=145616

Skip the test on Mac for now to avoid having the bots turn red due to the flakiness
of the test. Further investigation is needed.

* TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:
* TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp:

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

4 years agoDefine WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS on iOS
andersca@apple.com [Wed, 3 Jun 2015 21:21:29 +0000 (21:21 +0000)]
Define WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS on iOS
https://bugs.webkit.org/show_bug.cgi?id=145615
Part of rdar://problem/17380856.

Reviewed by Dan Bernstein.

* postprocess-headers.sh:

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

4 years agoUse modern for-loops in WebCore/page.
commit-queue@webkit.org [Wed, 3 Jun 2015 20:52:42 +0000 (20:52 +0000)]
Use modern for-loops in WebCore/page.
https://bugs.webkit.org/show_bug.cgi?id=145455

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-06-03
Reviewed by Darin Adler.

No new tests, no behavior changes.

* page/Chrome.cpp:
(WebCore::Chrome::notifyPopupOpeningObservers):
* page/ContentSecurityPolicy.cpp:
(WebCore::CSPSourceList::matches):
(WebCore::CSPDirectiveList::gatherReportURIs):
(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::isAllowedByAll):
(WebCore::isAllowedByAllWithState):
(WebCore::isAllowedByAllWithContext):
(WebCore::isAllowedByAllWithURL):
(WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):
(WebCore::ContentSecurityPolicy::allowPluginType):
(WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
(WebCore::ContentSecurityPolicy::gatherReportURIs):
* page/ContextMenuController.cpp:
(WebCore::ContextMenuController::populate):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::getMatchedCSSRules):
* page/DeviceController.cpp:
(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):
* page/EventHandler.cpp:
(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleTouchEvent):
* page/FocusController.cpp:
(WebCore::FocusController::setIsVisibleAndActiveInternal):
* page/Frame.cpp:
(WebCore::Frame::orientationChanged):
(WebCore::Frame::injectUserScriptsForWorld):
* page/FrameView.cpp:
(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::serviceScriptedAnimations):
(WebCore::FrameView::trackedRepaintRectsAsText):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::notifyWidgets):
* page/Page.cpp:
(WebCore::networkStateChanged):
(WebCore::Page::stringToViewMode):
(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):
(WebCore::Page::refreshPlugins):
(WebCore::Page::lockAllOverlayScrollbarsToHidden):
(WebCore::Page::pluginViews):
(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::setIsVisibleInternal):
* page/PageGroup.cpp:
(WebCore::PageGroup::captionPreferencesChanged):
* page/PageGroupLoadDeferrer.cpp:
(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
(WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
* page/PageSerializer.cpp:
(WebCore::PageSerializer::serializeFrame):
* page/Performance.cpp:
(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):
* page/PerformanceResourceTiming.cpp:
(WebCore::passesTimingAllowCheck):
* page/PerformanceUserTiming.cpp:
(WebCore::convertToEntrySequence):
* page/SecurityPolicy.cpp:
(WebCore::SecurityPolicy::isAccessWhiteListed):
* page/UserContentURLPattern.cpp:
(WebCore::UserContentURLPattern::matchesPatterns):
* page/WindowFeatures.cpp:
(WebCore::WindowFeatures::parseDialogFeatures):
* page/animation/AnimationController.cpp:
(WebCore::AnimationControllerPrivate::updateAnimations):
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
(WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::AnimationControllerPrivate::numberOfActiveAnimations):
* page/animation/CSSPropertyAnimation.cpp:
(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):
* page/scrolling/AsyncScrollingCoordinator.cpp:
(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):
* page/scrolling/ScrollingCoordinator.cpp:
(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):

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

4 years agoAutoFill button should not be shown in read-only or disabled field
dbates@webkit.org [Wed, 3 Jun 2015 20:44:56 +0000 (20:44 +0000)]
AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

Reviewed by Darin Adler.

Source/WebCore:

Fixes an issue where the AutoFill button is shown in a read-only or disabled
field. We should not show the AutoFill button in such cases.

Tests: fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html
       fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html
       fast/forms/auto-fill-button/input-auto-fill-button.html
       fast/forms/auto-fill-button/input-disabled-auto-fill-button.html
       fast/forms/auto-fill-button/input-readonly-auto-fill-button.html
       fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html

* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::disabledAttributeChanged): Update AutoFill button state.
(WebCore::TextFieldInputType::readonlyAttributeChanged): Ditto.
(WebCore::TextFieldInputType::shouldDrawAutoFillButton): Do not draw AutoFill button
when the field is disabled or read-only.

LayoutTests:

Add tests to ensure that we do no show the AutoFill button in a read-only or disabled field.

Additionally, create directory LayoutTests/fast/forms/auto-fill-button and move existing test
LayoutTests/fast/forms/input-auto-fill-button.html and associated test results into this directory
or the platform-specific variant of this directory.

* fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled-expected.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html: Added.
* fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html: Added.
* fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/fast/forms/input-auto-fill-button-expected.txt.
* fast/forms/auto-fill-button/input-auto-fill-button.html: Renamed from LayoutTests/fast/forms/input-auto-fill-button.html.
* fast/forms/auto-fill-button/input-disabled-auto-fill-button-expected.html: Added.
* fast/forms/auto-fill-button/input-disabled-auto-fill-button.html: Added.
* fast/forms/auto-fill-button/input-readonly-auto-fill-button-expected.html: Added.
* fast/forms/auto-fill-button/input-readonly-auto-fill-button.html: Added.
* fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button-expected.html: Added.
* fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html: Added.
* platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.png.
* platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.txt.
* platform/mac-mavericks/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/mac-mavericks/fast/forms/input-auto-fill-button-expected.txt.
* platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/win/fast/forms/input-auto-fill-button-expected.txt.

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

4 years agoRemove ChangeLog entry; Mark Lam already fixed this yesterday.
andersca@apple.com [Wed, 3 Jun 2015 20:39:52 +0000 (20:39 +0000)]
Remove ChangeLog entry; Mark Lam already fixed this yesterday.

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

4 years agoWeb Inspector: Search field bottom border doesn't match the rest of the toolbar
nvasilyev@apple.com [Wed, 3 Jun 2015 20:37:23 +0000 (20:37 +0000)]
Web Inspector: Search field bottom border doesn't match the rest of the toolbar
https://bugs.webkit.org/show_bug.cgi?id=145611

Reviewed by Timothy Hatcher.

* UserInterface/Views/Toolbar.css:
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):

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

4 years agoFix build.
andersca@apple.com [Wed, 3 Jun 2015 20:36:25 +0000 (20:36 +0000)]
Fix build.

The exitingJITType parameter has been removed, so remove its UNUSED_PARAM declaration.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeExitSiteData):

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

4 years agoSkip Dromaeo/jslib-modify-prototype.html for now.
zalan@apple.com [Wed, 3 Jun 2015 20:34:00 +0000 (20:34 +0000)]
Skip Dromaeo/jslib-modify-prototype.html for now.

Unreviewed gardening.

* Skipped:

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

4 years agoCallLinkStatus should return takesSlowPath if the GC often cleared the IC
fpizlo@apple.com [Wed, 3 Jun 2015 20:08:01 +0000 (20:08 +0000)]
CallLinkStatus should return takesSlowPath if the GC often cleared the IC
https://bugs.webkit.org/show_bug.cgi?id=145502

Reviewed by Geoffrey Garen.

CallLinkInfo now remembers when it has been cleared by GC. This has some safeguards for when
a call gets cleared by GC only because we hadn't converted it into a closure call; in that
case the GC will just tell us that it should be a closure call. The DFG will not optimize
a call that was cleared by GC, and the DFG will always prefer a closure call if the GC told
us that the specific callee was dead but the executable wasn't.

This guards us from some scenarios that came up in Speedometer. It's neutral on the pure JS
benchmarks, most likely just because those benchmarks aren't real enough to have interesting
GC of code.

* bytecode/CallLinkInfo.cpp:
(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::dummy):
* bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::CallLinkInfo):
* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromCallLinkInfo):

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

4 years agoGetById and PutById profiling should be more precise about it takes slow path
fpizlo@apple.com [Wed, 3 Jun 2015 20:04:00 +0000 (20:04 +0000)]
GetById and PutById profiling should be more precise about it takes slow path
https://bugs.webkit.org/show_bug.cgi?id=145590

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

If a ById access ever takes slow path, we want the DFG and FTL to know this. Previously we
were relying on slow path counts, which conflate slow paths taken due to a megamorphic
access and slow paths taken due to IC building.

* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):
* bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::StructureStubInfo):
* ftl/FTLIntrinsicRepository.h:
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileGetById):
* jit/JITOperations.cpp:
* jit/JITOperations.h:

LayoutTests:

Added just two more tests for getters and setters. I needed more microbenchmarks to track
down a regression in an earlier version of this patch.

* js/regress/getter-prototype-expected.txt: Added.
* js/regress/getter-prototype.html: Added.
* js/regress/script-tests/getter-prototype.js: Added.
* js/regress/script-tests/setter-prototype.js: Added.
* js/regress/setter-prototype-expected.txt: Added.
* js/regress/setter-prototype.html: Added.

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

4 years ago[iOS] Rebaseline expected results for <br>
zalan@apple.com [Wed, 3 Jun 2015 19:46:18 +0000 (19:46 +0000)]
[iOS] Rebaseline expected results for <br>

Unreviewed garderning.

* platform/ios-simulator-wk2/fast/css/text-overflow-ellipsis-bidi-expected.txt:
* platform/ios-simulator-wk2/fast/forms/listbox-hit-test-zoomed-expected.txt:
* platform/ios-simulator/http/tests/navigation/postredirect-basic-expected.txt:
* platform/ios-simulator/http/tests/navigation/postredirect-goback1-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug106795-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug1224-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug131020-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug131020_iframe-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug1430-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug16252-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug19599-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug20579-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug32205-3-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug82946-2-expected.txt:
* platform/ios-simulator/tables/mozilla/bugs/bug92143-expected.txt:
* platform/ios-simulator/tables/mozilla/marvin/tables_cellpadding-expected.txt:
* platform/ios-simulator/tables/mozilla/marvin/tables_cellspacing-expected.txt:
* platform/ios-simulator/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
* platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
* platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:

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

4 years agoImprove test coverage for changes made in 145527
msaboff@apple.com [Wed, 3 Jun 2015 18:48:41 +0000 (18:48 +0000)]
Improve test coverage for changes made in 145527
https://bugs.webkit.org/show_bug.cgi?id=145578

Reviewed by Geoffrey Garen.

Added more complexity to poly-setter-combo.js stress test to create more turmoil in the
polymorphic get-by-id / put-by-id with getters and setters to exercise the code change in
https://bugs.webkit.org/show_bug.cgi?id=145527.  By changing the objects that the main test
function sees, we are able to test those paths.  Verified with temporary logging code.

* tests/stress/poly-setter-combo.js:
(Cons2):
(Cons3):
(Cons4):
(foo):
(test):
(runTestWithConstructors):

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

4 years agoAdd missing expected result files for GTK and EFL ports following
said@apple.com [Wed, 3 Jun 2015 18:44:57 +0000 (18:44 +0000)]
Add missing expected result files for GTK and EFL ports following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/181351>

Unreviewed.

* platform/efl/fast/text/crash-complex-text-surrogate-expected.txt: Added.
* platform/gtk/editing/selection/extend-by-character-007-expected.txt: Added.
* platform/gtk/fast/text/crash-complex-text-surrogate-expected.txt: Added.

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

4 years agoREGRESSION: (r181879): Scrolling in select/option region in iFrame scrolls both selec...
bfulgham@apple.com [Wed, 3 Jun 2015 18:37:23 +0000 (18:37 +0000)]
REGRESSION: (r181879): Scrolling in select/option region in iFrame scrolls both select and iframe
https://bugs.webkit.org/show_bug.cgi?id=145574
<rdar://problem/20966828>

Reviewed by Simon Fraser.

Source/WebCore:

Tested by platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html

When the scroll gesture is started when the latched scrollable container is not at the limit of its
scroll region, we are NOT supposed to propagate the scroll event to the enclosing region. However,
we were doing two things wrong:
(1) When we recognized we were latching, we were using the right wheel event target, but not using
    the latched scrollable container.
(2) Likewise, we were not using latched ScrollableArea when handling wheel events.

Instead, we were using the current scrollable container and ScrollableArea under the mouse pointer,
which could be different from the point we started latching as the content scrolled.

The fix was to properly track the scrollable container and scrollable area during latching.

I attempted to store the latched ScrollableArea in the latchingState object, like we already do for the
scrollable container, but found that this did not work properly. I think the life cycle of the
ScrollableArea may not match the scrollable container, and since they are not reference counted I
simply retrieve the ScrollableArea when needed.

* page/mac/EventHandlerMac.mm:
(WebCore::scrollableAreaForContainerNode): Helper function to return the correct ScrollableArea
for the two types of RenderBox elements.
(WebCore::latchedToFrameOrBody): Helper predicate to identify Frame and Body elements.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use the correct ScrollableArea for the given
ContainerNode. When latching, make sure to use the ScrollableArea that is related to the latched scrollable
container, not the area currently underneath the mouse pointer.

LayoutTests:

* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select-expected.txt: Added.
* platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html: Added.
* platform/mac-wk2/tiled-drawing/scrolling/frames/select_iframe.html: Added.

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

4 years agoREGRESSION (r183498): Certain types of frame loads in iframes with <base target=...
beidson@apple.com [Wed, 3 Jun 2015 17:33:16 +0000 (17:33 +0000)]
REGRESSION (r183498): Certain types of frame loads in iframes with <base target="_blank"> can open urls in new window/tabs
https://bugs.webkit.org/show_bug.cgi?id=145580

Reviewed by Mark Lam.

Source/WebCore:

Tests: fast/loader/fragment-navigation-base-blank.html
       fast/loader/iframe-meta-refresh-base-blank.html
       fast/loader/iframe-set-location-base-blank.html
       fast/loader/refresh-iframe-base-blank.html

Before 183498, callers of FrameLoader::changeLocation() got automatically assigned a frame name of "_self".
After 183498, many remained without a frame name.

Later on, FrameLoader applies the <base> target as their frame name if they don't already have one.

When the <base> target is "_blank", that causes a new window/tab.

Restoring "_self" to these call sites fixes this.

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):

* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):

* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):

* loader/NavigationScheduler.cpp:
(WebCore::NavigationScheduler::scheduleLocationChange):

* page/DOMWindow.cpp:
(WebCore::DOMWindow::createWindow):

Tools:

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didSameDocumentNavigationForFrame): Implement the dump for "didChangeLocationWithinPageForFrame"

LayoutTests:

* fast/loader/fragment-navigation-base-blank-expected.txt: Added.
* fast/loader/fragment-navigation-base-blank.html: Added.
* fast/loader/iframe-meta-refresh-base-blank-expected.txt: Added.
* fast/loader/iframe-meta-refresh-base-blank.html: Added.
* fast/loader/iframe-set-location-base-blank-expected.txt: Added.
* fast/loader/iframe-set-location-base-blank.html: Added.
* fast/loader/refresh-iframe-base-blank-expected.txt: Added.
* fast/loader/refresh-iframe-base-blank.html: Added.
* fast/loader/resources/fragment-navigation-base-blank.html: Added.
* fast/loader/resources/iframe-meta-refresh-base-blank.html: Added.
* fast/loader/resources/iframe-set-location-base-blank.html: Added.
* fast/loader/resources/notify-done-with-window-count.html: Added.
* fast/loader/resources/refresh-iframe-base-blank-frame.html: Added.

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

4 years agoAttempt to fix CSSPropertyParserTest.GridTrackLimits API test after http://trac.webki...
ap@apple.com [Wed, 3 Jun 2015 16:56:59 +0000 (16:56 +0000)]
Attempt to fix CSSPropertyParserTest.GridTrackLimits API test after trac.webkit.org/r185147

* TestWebKitAPI/Tests/WebCore/CSSParser.cpp:
(TestWebKitAPI::TEST): Update the syntax.

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

4 years agoMore iOS build fixing.
ap@apple.com [Wed, 3 Jun 2015 16:40:35 +0000 (16:40 +0000)]
More iOS build fixing.

* platform/spi/mac/AVFoundationSPI.h:

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

4 years agoSubpixel rendering: Composited layer with subpixel gap does not get painted properly...
zalan@apple.com [Wed, 3 Jun 2015 15:36:41 +0000 (15:36 +0000)]
Subpixel rendering: Composited layer with subpixel gap does not get painted properly when its position changes.
https://bugs.webkit.org/show_bug.cgi?id=145587

Reviewed by Simon Fraser.

The composited layer always snaps to an enclosing device pixel (floors) while the renderer rounds.
At certain positions (for example 0.5px on a 1x display), a gap is formed between the layer(0px) and its renderer(1px).
In such cases, when the the renderer moves to a position (1.1px) where the gap is closed, we need to issue repaint on the layer
in order to get the renderering right.

Source/WebCore:

Test: compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html

* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::devicePixelFractionGapFromRendererChanged):
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerBacking.h:

LayoutTests:

* compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves-expected.html: Added.
* compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html: Added.

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

4 years agoWeb Inspector: Uncaught exception starting a NavigationBar drag and mousing over...
commit-queue@webkit.org [Wed, 3 Jun 2015 14:58:01 +0000 (14:58 +0000)]
Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=145589

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

* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype._mouseDown):
(WebInspector.NavigationBar.prototype._mouseUp):
When mouse dragging for navigation bars, only match against navigation
bar items inside this navigation bar. Also, fix horizontal detection
of navigation bar items by scanning in the middle of the navigation
bar instead of the top, which missed the items.

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

4 years agoWeb Inspector: Debugger Popover for Node object should have go-to-arrow to show the...
commit-queue@webkit.org [Wed, 3 Jun 2015 14:55:56 +0000 (14:55 +0000)]
Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=145594

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

* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.inspectElement):
Previously we could get an exception later on if we tried to
inspect an element that was not in the DOM. Bail if the node
is not in the DOM or not.

* UserInterface/Views/SourceCodeTextEditor.css:
(.popover .debugger-popover-content > .title > .go-to-arrow):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
For a node type, add a go-to-arrow in the popover if it is in the DOM or not.

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

4 years ago[Streams API] ReadableStreamReader::closed() should be called once by binding code
youenn.fablet@crf.canon.fr [Wed, 3 Jun 2015 07:35:03 +0000 (07:35 +0000)]
[Streams API] ReadableStreamReader::closed() should be called once by binding code
https://bugs.webkit.org/show_bug.cgi?id=145551

Reviewed by Darin Adler.

Covered by existing tests.

* bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::JSReadableStreamReader::closed): Calling ReadableStreamReader::closed only at creation of the promise.

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

4 years ago[EFL][GTK] Fix build error since r185137
gyuyoung.kim@webkit.org [Wed, 3 Jun 2015 06:58:44 +0000 (06:58 +0000)]
[EFL][GTK] Fix build error since r185137
https://bugs.webkit.org/show_bug.cgi?id=145596

Unreviewed, fix build break on EFL and GTK port.

* dom/Text.cpp:
(WebCore::Text::formatForDebugger): Use strncpy() instead of strlcpy().

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

4 years ago[CSS Grid Layout] Switch from parenthesis to brackets for grid line names
svillar@igalia.com [Wed, 3 Jun 2015 06:44:45 +0000 (06:44 +0000)]
[CSS Grid Layout] Switch from parenthesis to brackets for grid line names
https://bugs.webkit.org/show_bug.cgi?id=144996

Reviewed by Darin Adler.

Source/WebCore:

Grid line names are now enclosed by brackets instead of parentheses
as mentioned in the latest version of the spec. Appartently the CSS
code is now more readable and avoids issues with tools like SASS.

* css/CSSGrammar.y.in:
* css/CSSGridLineNamesValue.cpp:
(WebCore::CSSGridLineNamesValue::customCSSText):

LayoutTests:

Replaced parentheses by brackets when specifying grid line names.

* fast/css-grid-layout/grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html:
* fast/css-grid-layout/grid-element-repeat-get-set-expected.txt:
* fast/css-grid-layout/grid-element-repeat-get-set.html:
* fast/css-grid-layout/grid-item-auto-placement-automatic-span.html:
* fast/css-grid-layout/grid-item-bad-resolution-double-span.html:
* fast/css-grid-layout/grid-item-column-row-get-set.html:
* fast/css-grid-layout/grid-item-named-grid-area-resolution.html:
* fast/css-grid-layout/grid-item-named-grid-line-resolution.html:
* fast/css-grid-layout/grid-item-negative-position-resolution.html:
* fast/css-grid-layout/grid-item-position-changed-dynamic.html:
* fast/css-grid-layout/grid-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-shorthand-get-set.html:
* fast/css-grid-layout/grid-template-shorthand-get-set-expected.txt:
* fast/css-grid-layout/grid-template-shorthand-get-set.html:
* fast/css-grid-layout/named-grid-line-get-set-expected.txt:
* fast/css-grid-layout/named-grid-line-get-set.html:
* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks-expected.txt:
* fast/css-grid-layout/named-grid-lines-computed-style-implicit-tracks.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html:
* fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html:
* fast/css-grid-layout/non-grid-columns-rows-get-set-expected.txt:
* fast/css-grid-layout/non-grid-columns-rows-get-set-multiple-expected.txt:
* fast/css-grid-layout/non-grid-element-repeat-get-set-expected.txt:
* fast/css-grid-layout/non-grid-element-repeat-get-set.html:
* fast/css-grid-layout/non-named-grid-line-get-set-expected.txt:
* fast/css-grid-layout/non-named-grid-line-get-set.html:
* fast/css-grid-layout/resources/grid-columns-rows-get-set-multiple.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/grid-columns-rows-get-set.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:
(testInherit):
(testInitial):
* fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:
(testInherit):
(testInitial):

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

4 years agoiOS build fix
ap@apple.com [Wed, 3 Jun 2015 06:24:24 +0000 (06:24 +0000)]
iOS build fix

* platform/spi/mac/AVFoundationSPI.h:

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

4 years agoUnreviewed, rolling out r185128 and r185132.
commit-queue@webkit.org [Wed, 3 Jun 2015 06:21:03 +0000 (06:21 +0000)]
Unreviewed, rolling out r185128 and r185132.
https://bugs.webkit.org/show_bug.cgi?id=145597

The new test hits a bad assertion (Requested by ap on
#webkit).

Reverted changesets:

"Crash in GraphicsContext3D::getInternalFramebufferSize"
https://bugs.webkit.org/show_bug.cgi?id=145479
http://trac.webkit.org/changeset/185128

"Skip webgl/useWhilePending.html on WebKit 1."
http://trac.webkit.org/changeset/185132

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

4 years agoVersioning.
bshafiei@apple.com [Wed, 3 Jun 2015 06:18:45 +0000 (06:18 +0000)]
Versioning.

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

4 years agoWeb Inspector: Remove uses of delete in Sidebar related code
commit-queue@webkit.org [Wed, 3 Jun 2015 05:57:33 +0000 (05:57 +0000)]
Web Inspector: Remove uses of delete in Sidebar related code
https://bugs.webkit.org/show_bug.cgi?id=145592

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

* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
Clear value instead of deleting.

* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch):
Just clear the search identifier. Also assert it (a required string) is always non-falsey.

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.resizerDragEnded): Deleted.
This entire callback is unnecessary because whenever we start
a drag we save the value.

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

4 years agoWeb Inspector: Sidebar and sometimes ContentView scroll position is lost when switchi...
commit-queue@webkit.org [Wed, 3 Jun 2015 05:46:56 +0000 (05:46 +0000)]
Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
https://bugs.webkit.org/show_bug.cgi?id=145591

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

* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.removeSidebarPanel):
When removing a sidebar panel, ensure we call hidden if it was the visible panel.

* UserInterface/Views/SidebarPanel.js:
(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.shown):
(WebInspector.SidebarPanel.prototype.hidden):
Save and restore content element scroll position when sidebar panels are shown / hidden.

* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.shown):
* UserInterface/Views/DetailsSidebarPanel.js:
(WebInspector.DetailsSidebarPanel.prototype.shown):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
Cleanup. Since sidebar panels are using ES6 classes, have super class calls use `super`!

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

4 years ago[CoordinatedGraphics] Refactor TiledBackingStoreClient
ryuan.choi@navercorp.com [Wed, 3 Jun 2015 03:39:27 +0000 (03:39 +0000)]
[CoordinatedGraphics] Refactor TiledBackingStoreClient
https://bugs.webkit.org/show_bug.cgi?id=145577

Reviewed by Gyuyoung Kim.

This patch removes and simplifies unnecessary virtual methods of TiledBackingStoreClient.

No new tests, no behavior changes.

* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::didUpdateTileBuffers): Renamed from tiledBackingStorePaintEnd.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintBegin): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreBackgroundColor):
Deleted because tiledBackingStoreBackgroundColor() is not used anywhere.
* platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
* platform/graphics/texmap/coordinated/CoordinatedTile.cpp:
(WebCore::CoordinatedTile::updateBackBuffer):
Simplified not to call unnecessary methods. In addition, used modern for loop.
(WebCore::CoordinatedTile::swapBackBufferToFront): Deleted.
* platform/graphics/texmap/coordinated/CoordinatedTile.h:
* platform/graphics/texmap/coordinated/Tile.h:
* platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::updateTileBuffers):
* platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:

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

4 years agoWeb Inspector: Use non-monospace font for the frame selector
nvasilyev@apple.com [Wed, 3 Jun 2015 02:46:44 +0000 (02:46 +0000)]
Web Inspector: Use non-monospace font for the frame selector
https://bugs.webkit.org/show_bug.cgi?id=145586

Reviewed by Timothy Hatcher.

* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):

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

4 years ago[EFL] Implement load_started callback in EwkPageClient.
commit-queue@webkit.org [Wed, 3 Jun 2015 02:33:16 +0000 (02:33 +0000)]
[EFL] Implement load_started callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145545

Patch by Hyungwook Lee <hyungwook.lee@navercorp.com> on 2015-06-02
Reviewed by Gyuyoung Kim.

We need to provide load_started callback to web extension module.

* UIProcess/API/efl/tests/extensions/extension_sample.cpp:
* WebProcess/InjectedBundle/API/efl/ewk_page.cpp:
(EwkPage::EwkPage):
(EwkPage::remove):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didFinishDocumentLoadForFrame):
* WebProcess/InjectedBundle/API/efl/ewk_page.h:
* WebProcess/InjectedBundle/API/efl/ewk_page_private.h:

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

4 years agoAX: debugging attributes for text markers
commit-queue@webkit.org [Wed, 3 Jun 2015 01:29:43 +0000 (01:29 +0000)]
AX: debugging attributes for text markers
https://bugs.webkit.org/show_bug.cgi?id=145283

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

AXTextMarkerDebugDescription: returns the result of
VisiblePosition::formatForDebugger() for the visible position that a text marker
represents.
AXTextMarkerNodeDebugDescription: calls Node::showNode() and
Node::showNodePathForThis() for the visible position that a text marker
represents.
AXTextMarkerNodeTreeDebugDescription: calls Node::showTreeForThis() for the
visible position that a text marker represents.
AXTextMarkerRangeDebugDescription: returns the result of
formatForDebugger(VisiblePositionRange) for the visible position range that a text
marker range represents.

This is debug only tooling. Tests would be flakey and not very helpful.

* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarker:]):
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapper showNodeForTextMarker:]):
(-[WebAccessibilityObjectWrapper showNodeTreeForTextMarker:]):
(formatForDebugger):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
* dom/Text.cpp:
(WebCore::Text::formatForDebugger):

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

4 years agoMediaSessions should keep track of their current state.
commit-queue@webkit.org [Wed, 3 Jun 2015 00:45:00 +0000 (00:45 +0000)]
MediaSessions should keep track of their current state.
https://bugs.webkit.org/show_bug.cgi?id=145575

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-02
Reviewed by Alex Christensen.

* Modules/mediasession/MediaSession.h: Per the Media Session spec, the state can be 'Idle', 'Active', or
  'Interrupted'. Sessions are created in an 'Idle' state.

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

4 years agoWeb Inspector: Dashboard arrow icon on the right is overlapped by a long function...
nvasilyev@apple.com [Tue, 2 Jun 2015 23:58:42 +0000 (23:58 +0000)]
Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name
https://bugs.webkit.org/show_bug.cgi?id=145540

Also, increase clickable area of the arrow icon.

Reviewed by Timothy Hatcher.

* UserInterface/Views/DashboardContainerView.css:
(.dashboard-container .advance-arrow):
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger > .location):
(.toolbar .dashboard.debugger):
Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow.

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

4 years agoWeb Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
commit-queue@webkit.org [Tue, 2 Jun 2015 23:56:12 +0000 (23:56 +0000)]
Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
https://bugs.webkit.org/show_bug.cgi?id=145562

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

* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
Only these keyboard shortcuts should check if we are in an editable field.
Remove the implicit prevent default so they can fall back to system behavior
if necessary.

(WebInspector.TabBrowser.prototype._showNextTabCheckingForEditableField):
(WebInspector.TabBrowser.prototype._showPreviousTabCheckingForEditableField):
Bail if we are in an editable field. Otherwise perform the action and prevent default.

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

4 years agoBuild fix when building with internal SDKs
jonlee@apple.com [Tue, 2 Jun 2015 23:51:18 +0000 (23:51 +0000)]
Build fix when building with internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=145576
rdar://problem/21089476

Reviewed by Alexey Proskuryakov.

* platform/spi/mac/AVFoundationSPI.h: Include the right header.

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

4 years agoSkip webgl/useWhilePending.html on WebKit 1.
dino@apple.com [Tue, 2 Jun 2015 23:45:11 +0000 (23:45 +0000)]
Skip webgl/useWhilePending.html on WebKit 1.

* platform/mac-wk1/TestExpectations:

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

4 years agoGardening: fix broken CLoop build.
mark.lam@apple.com [Tue, 2 Jun 2015 23:33:00 +0000 (23:33 +0000)]
Gardening: fix broken CLoop build.

Not reviewed.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeExitSiteData):

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

4 years agoNo need to guard the sizes attribute against PICTURE_SIZES in preload scanner.
dino@apple.com [Tue, 2 Jun 2015 22:23:36 +0000 (22:23 +0000)]
No need to guard the sizes attribute against PICTURE_SIZES in preload scanner.
https://bugs.webkit.org/show_bug.cgi?id=145573
<rdar://problem/21210038>

Reviewed by Myles Maxfield.

The PICTURE_SIZES feature flag doesn't need to be used to
guard preloading of the sizes attribute.

* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Deleted.

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

4 years agoUse UUIDs for WebSQL database filenames instead of a sequential number
andersca@apple.com [Tue, 2 Jun 2015 22:14:23 +0000 (22:14 +0000)]
Use UUIDs for WebSQL database filenames instead of a sequential number
https://bugs.webkit.org/show_bug.cgi?id=145571

Reviewed by Dan Bernstein.

This is a first step towards getting rid of the iOS specific code path where we truncate
database files instead of deleting them (in order to avoid file corruption).

* Modules/webdatabase/DatabaseTracker.cpp:
(WebCore::generateDatabaseFileName):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
* platform/sql/SQLiteFileSystem.cpp:
(WebCore::SQLiteFileSystem::getFileNameForNewDatabase): Deleted.
* platform/sql/SQLiteFileSystem.h:

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

4 years agoCrash in GraphicsContext3D::getInternalFramebufferSize
dino@apple.com [Tue, 2 Jun 2015 22:11:32 +0000 (22:11 +0000)]
Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

If we are in an unitialized or lost state, don't try to access the context.

In order to test this, I added an Internal setting that always
forces WebGL into a pending state.

Test: fast/canvas/webgl/useWhilePending.html

* html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.
* page/Settings.cpp: New Internal setting for forcing a pending policy.
(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):
* page/Settings.h:
(WebCore::Settings::isForcePendingWebGLPolicy):
* testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):
* testing/InternalSettings.h:
* testing/InternalSettings.idl:

LayoutTests:

Attemps to use a WebGL context while it is in the pending state.

* fast/canvas/webgl/useWhilePending-expected.txt: Added.
* fast/canvas/webgl/useWhilePending.html: Added.

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

4 years agoPDFs always think they're visible on iOS.
barraclough@apple.com [Tue, 2 Jun 2015 22:02:35 +0000 (22:02 +0000)]
PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Reviewed by Andreas Kling & Sam Weinig.

The problem here is that WKContentView is currently responsible for notifying the WebPageProxy
that the visibility may have changed, but when a PDF isn't showing the WKContentView isn't in
the view hierarchy and doesn't receive the didMoveToWindow notifications – and the WKPDFView
(which is in the view hierarchy) does not listen for these events.

Visibility of the page should really just track the visibility of the WKWebView (and when
actually assessing the visibility it largely does - the page client checks the web view's
visibility, bar a FIXME, and the foreground/background check, which needs to change).
So notifications should really just come from the WKWebView.

The WKWebView already listens for the didMoveToWindow notification, it just was only updating
the IsInWindow flag. Instead just update all flags, and the call to viewStateDidChange from
WKContentView can just be removed.

There is one problem with this in that it would reverse the order of the calls to
viewStateDidChange & _updateForScreen:, which would mean the the view would become visible before
updating the screen pixel density. To fix this, moving the call to _updateForScreen:
to willMoveToWindow:, to ensure it occurs before the page becomes visible.

This will also change behavior on Mac for WKWebView clients, in coalescing all view state changes
within the didMoveToWindow call. This is the direction we intended to go in anyway (the plan is
to remove the mayHaveChanged argument from viewStateDidChange - we're currently adding unnecessary
IPC traffic).

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView didMoveToWindow]):
    - should update all view state flags.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView didMoveToWindow]):
    - added to match WKWebView.mm, for WebKitTestRunner.
* UIProcess/ios/WKContentView.mm:
(-[WKContentView willMoveToWindow:]):
    - should _updateForScreen:
(-[WKContentView didMoveToWindow]): Deleted.
    - functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow].

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

4 years agoAdded a stub implementation of MediaSession, part of the Media Session spec.
commit-queue@webkit.org [Tue, 2 Jun 2015 21:54:13 +0000 (21:54 +0000)]
Added a stub implementation of MediaSession, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145530

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-02
Reviewed by Eric Carlson.

* CMakeLists.txt: Added new MediaSession sources.
* DerivedSources.make:
* Modules/mediasession/MediaSession.cpp: Added stub implementation.
(WebCore::MediaSession::MediaSession): Per the Media Session spec, a Media Remote Controls object should only be
  set for 'content' sessions; it is null otherwise.
(WebCore::MediaSession::~MediaSession):
(WebCore::MediaSession::controls):
(WebCore::MediaSession::releaseSession):
* Modules/mediasession/MediaSession.h: Added basic translation of IDL file.
* Modules/mediasession/MediaSession.idl: Added from the Media Session spec.
* WebCore.xcodeproj/project.pbxproj: Added new MediaSession sources.

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

4 years agoFix Windows layout test failure following <http://trac.webkit.org/changeset/185095>
said@apple.com [Tue, 2 Jun 2015 21:37:36 +0000 (21:37 +0000)]
Fix Windows layout test failure following <trac.webkit.org/changeset/185095>
(https://bugs.webkit.org/show_bug.cgi?id=145537)

Unreviewed.

* platform/win/fast/text/crash-complex-text-surrogate-expected.txt: Added.

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

4 years agoBackdrop filter is pulling in content from behind the window.
zalan@apple.com [Tue, 2 Jun 2015 21:35:24 +0000 (21:35 +0000)]
Backdrop filter is pulling in content from behind the window.
https://bugs.webkit.org/show_bug.cgi?id=145561
rdar://problem/20909309

Reviewed by Simon Fraser.

This patch ensures that the backdrop filter layer is positioned and sized properly.

The backdrop filter layer should take its size and position from its renderer and not
directly from the composited layer.
In certain cases the composited layer's size is expanded to cover items like box shadow or an absolute positioned descendant.
In such cases, we ended up applying the backdrop filter to those areas as well.

Source/WebCore:

Tests: css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute.html
       css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding.html

* platform/graphics/GraphicsLayer.h:
(WebCore::GraphicsLayer::setBackdropFiltersRect):
(WebCore::GraphicsLayer::backdropFiltersRect):
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setBackdropFiltersRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::updateGeometry): Deleted.
* platform/graphics/ca/GraphicsLayerCA.h:
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerBacking.h:

LayoutTests:

* css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt: Added.
* css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute.html: Added.
* css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt: Added.
* css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding.html: Added.

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

4 years ago[iOS][WK2] Always mark layers as volatile for background pages
cdumez@apple.com [Tue, 2 Jun 2015 21:30:27 +0000 (21:30 +0000)]
[iOS][WK2] Always mark layers as volatile for background pages
https://bugs.webkit.org/show_bug.cgi?id=145547
<rdar://problem/20663184>

Reviewed by Simon Fraser.

We previously marked layers as volatile when the WebProcess was about
to be suspended. Most of the time the WebProcess gets suspended when a
page goes into the background. However, it is not always true (see
radar), in which case the layers won't be marked as volatile and use
memory even though they are not visible.

We now mark layers as volatile as soon as the page goes into the
background, instead of relying on the WebProcess suspension mechanism
to do so.

A new ApplicationDidEnterBackground IPC message from the UIProcess to
the WebProcess is added (in addition to the pre-existing
ApplicationWillEnterForeground one). When the WebProcess receives this
message, it will freeze the layer tree state and mark the layers as
volatile (with a timer to keep retrying if needed), similarly to what
is already done in WebProcess::actualPrepareToSuspend().
When the ApplicationWillEnterForeground is received, we unfreeze the
layer tree state. The layers' volatile state will be automatically
updated when they are displayed (see setBufferVolatility() call in
RemoteLayerBackingStore::display()).

* UIProcess/WebPageProxy.h:
* UIProcess/ios/WKContentView.mm:
(-[WKContentView _applicationDidEnterBackground:]):
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::applicationDidEnterBackground):
* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::WebPage):
(WebKit::WebPage::setLayerTreeStateIsFrozen):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):
* WebProcess/WebPage/WebPage.h:
* WebProcess/WebPage/WebPage.messages.in:
* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::volatilityTimerFired):
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::markAllLayersVolatileIfPossible):
(WebKit::WebProcess::setAllLayerTreeStatesFrozen):

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

4 years agoJavaScriptCore: JSExport protocol with an NSInteger property converts negative values...
commit-queue@webkit.org [Tue, 2 Jun 2015 21:24:10 +0000 (21:24 +0000)]
JavaScriptCore: JSExport protocol with an NSInteger property converts negative values to 18446744073709552000
https://bugs.webkit.org/show_bug.cgi?id=145563

Patch by Keith Miller <keith_miller@apple.com> on 2015-06-02
Reviewed by Darin Adler.

The Objective-C bindings were improperly converting negative
long long/NSIntegers to 18446744073709552000 because they
were converted to unsigned numbers.

* API/ObjcRuntimeExtras.h:
(parseObjCType):
* API/tests/testapi.mm:
(testObjectiveCAPIMain):
(checkNegativeNSIntegers):
(testObjectiveCAPI):

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

4 years agoWeb Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick...
commit-queue@webkit.org [Tue, 2 Jun 2015 21:14:25 +0000 (21:14 +0000)]
Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console
https://bugs.webkit.org/show_bug.cgi?id=145546

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

Scope ContentBrowser keyboard events within the ContentBrowser instead
of global, where they might conflict between ContentBrowsers. The scoped
shortcuts now no longer need to be enabled/disabled.

* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
Scope the keyboard shortcuts.

(WebInspector.ContentBrowser.prototype.shown):
(WebInspector.ContentBrowser.prototype.hidden):
No longer need to control enabling / disabling these non-global shortcuts.

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

4 years ago[Mac] occasional crash in Document::playbackTargetAvailabilityDidChange
eric.carlson@apple.com [Tue, 2 Jun 2015 21:04:55 +0000 (21:04 +0000)]
[Mac] occasional crash in Document::playbackTargetAvailabilityDidChange
https://bugs.webkit.org/show_bug.cgi?id=145559

Reviewed by Darin Adler.

No new tests, covered by existing tests.

* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::registerWithDocument): Pass document to m_mediaSession->registerWithDocument.
(WebCore::HTMLMediaElement::unregisterWithDocument): Pass document to m_mediaSession->unRegisterWithDocument.
(WebCore::HTMLMediaElement::documentWillSuspendForPageCache): Ditto.
(WebCore::HTMLMediaElement::documentDidResumeFromPageCache): Ditto.

* html/MediaElementSession.cpp:
(WebCore::MediaElementSession::registerWithDocument): Take a document.
(WebCore::MediaElementSession::unregisterWithDocument): Ditto.
* html/MediaElementSession.h:

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

4 years agoFix Mac Mavericks layout test failure following <http://trac.webkit.org/changeset...
said@apple.com [Tue, 2 Jun 2015 20:22:15 +0000 (20:22 +0000)]
Fix Mac Mavericks layout test failure following <trac.webkit.org/changeset/185096>
(https://bugs.webkit.org/show_bug.cgi?id=145478)

Move fast/text/font-weights-zh.html out of the platform directory. The
webkit test runner is not smart enough to ignore the expected results
in the mac directory and get it from the Mavericks directory, if it exists,
when running on Mavericks.

Reviewed by Alexey Proskuryakov.

* fast/text/font-weights-zh.html: Added.
* platform/efl/TestExpectations:
* platform/gtk/TestExpectations:
* platform/mac/fast/text/font-weights-zh.html: Removed.
* platform/win/TestExpectations:
* platform/win-xp/TestExpectations:
* platform/wincairo/TestExpectations:

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

4 years agoCalling FrameView::viewportContentsChanged() after style recalcs is too expensive
cdumez@apple.com [Tue, 2 Jun 2015 20:20:41 +0000 (20:20 +0000)]
Calling FrameView::viewportContentsChanged() after style recalcs is too expensive
https://bugs.webkit.org/show_bug.cgi?id=145554
<rdar://problem/21189478>

Reviewed by Darin Adler and Simon Fraser.

Only call FrameView::viewportContentsChanged() after a style recalc if
composited layers have been updated (and there is no pending layout).

We already viewportContentsChanged() after layout so we only need to
call viewportContentsChanged() after a style recalc if it did not cause
a layout but may have caused an element to become visible. In
particular, this can happen in the case of composited animations (e.g.
using -webkit-transform to move an element inside the viewport).
Therefore, we now only call viewportContentsChanged() after a style
recalc if it caused composited layers to be updated. This avoids a lot
of unnecessary calls to viewportContentsChanged(), which is expensive.

No new tests, already covered by:
fast/images/animated-gif-webkit-transform.html

* dom/Document.cpp:
(WebCore::Document::recalcStyle):
* page/FrameView.cpp:
(WebCore::FrameView::updateCompositingLayersAfterStyleChange):
* page/FrameView.h:
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
* rendering/RenderLayerCompositor.h:

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

4 years agoRemove use of CTFontSetRenderingParameters()
mmaxfield@apple.com [Tue, 2 Jun 2015 20:19:08 +0000 (20:19 +0000)]
Remove use of CTFontSetRenderingParameters()
https://bugs.webkit.org/show_bug.cgi?id=145560

Reviewed by Simon Fraser.

Instead, always use CTFontSetRenderingStyle().

No new tests because there is no behavior change.

* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::RenderingStyleSaver::RenderingStyleSaver): Deleted.
(WebCore::RenderingStyleSaver::~RenderingStyleSaver): Deleted.

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

4 years agoMove WKFontAntialiasingStateSaver to its own file
andersca@apple.com [Tue, 2 Jun 2015 20:00:01 +0000 (20:00 +0000)]
Move WKFontAntialiasingStateSaver to its own file
https://bugs.webkit.org/show_bug.cgi?id=145557
rdar://problem/21134776

Reviewed by Dan Bernstein.

Also rename it to FontAntialiasingStateSaver. Also, change it to use the CoreGraphicsSPI.h header for its
CGFontAntialiasingStyle definition instead of using an explicit typedef.

* WebCore.xcodeproj/project.pbxproj:
* platform/graphics/ca/mac/PlatformCALayerMac.mm:
(PlatformCALayer::drawLayerContents):
* platform/graphics/ios/FontAntialiasingStateSaver.h: Copied from Source/WebCore/platform/ios/wak/WKGraphics.h.
(WebCore::FontAntialiasingStateSaver::FontAntialiasingStateSaver):
(WebCore::FontAntialiasingStateSaver::setup):
(WebCore::FontAntialiasingStateSaver::restore):
* platform/ios/LegacyTileCache.mm:
(WebCore::LegacyTileCache::drawWindowContent):
* platform/ios/wak/WKGraphics.h:
(WKFontAntialiasingStateSaver::WKFontAntialiasingStateSaver): Deleted.
* platform/ios/wak/WKGraphics.mm:
(WKFontAntialiasingStateSaver::setup): Deleted.
(WKFontAntialiasingStateSaver::restore): Deleted.

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

4 years agoAdd more tests for "should open external urls" flag.
beidson@apple.com [Tue, 2 Jun 2015 19:40:13 +0000 (19:40 +0000)]
Add more tests for "should open external urls" flag.
https://bugs.webkit.org/show_bug.cgi?id=145558

Rubberstamped by Geoff Garen.

* loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true.html: Added.
* loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false.html: Added.
* loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/do-nothing.html: Added.

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

4 years agoSource/WebCore:
youenn.fablet@crf.canon.fr [Tue, 2 Jun 2015 19:28:11 +0000 (19:28 +0000)]
Source/WebCore:
[Streams API] Implement ReadableStreamReader read method in closed and errored state
https://bugs.webkit.org/show_bug.cgi?id=144790

Reviewed by Darin Adler.

Reader delegates read() promise handling to its stream except if reader is no longer locking the stream and stream is readable.
Storing of reader read() promise callbacks as a Vector in ReadableStream.
Added resolution/rejection of read() promises in case of errored/closed streams.

Test: streams/readable-stream-reader-read.html

* ForwardingHeaders/runtime/IteratorOperations.h: Added.
* Modules/streams/ReadableStream.cpp:
(WebCore::ReadableStream::cleanCallbacks): Clean the read requests.
(WebCore::ReadableStream::changeStateToClosed): Run success callbacks with undefined for read requests.
(WebCore::ReadableStream::changeStateToErrored): Run failure callbacks with the errors for read requests.
(WebCore::ReadableStream::closed): Parameter name changed.
(WebCore::ReadableStream::read): Added. Succeeds with empty when closed, fails with error when errored, reads a
value if there is one and pushes the callbacks to the queue otherwise.
* Modules/streams/ReadableStream.h:
(WebCore::ReadableStream::ReadCallbacks::ReadCallbacks): Struct containing success and failure callbacks.
* Modules/streams/ReadableStreamReader.cpp:
(WebCore::ReadableStreamReader::closed): Parameter name changed.
(WebCore::ReadableStreamReader::read): Invoke success with empty if we streams if we don't have the right reader
and call the stream otherwise to read.
* Modules/streams/ReadableStreamReader.h:
* bindings/js/JSReadableStreamReaderCustom.cpp:
(WebCore::JSReadableStreamReader::read): Create the callback lambdas and invoke read. Failure rejects the
promise and success creates the result from the read value.
* bindings/js/ReadableJSStream.cpp:
(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read): Not implemented yet.
* bindings/js/ReadableJSStream.h:

Source/WTF:
[Streams API] Delegate ReadableStreamReader reference counting to ReadableStream
https://bugs.webkit.org/show_bug.cgi?id=144907

Reviewed by Darin Adler.

* wtf/Vector.h:
(WTF::Vector::append): Adding not templated append method, forwarding to ValueType templated append method.

LayoutTests:
[Streams API] Implement ReadableStreamReader read method in closed and errored state
https://bugs.webkit.org/show_bug.cgi?id=144790

Reviewed by Darin Adler.

Added new test. Rebased reference tests (expectations and timeouting/untimeouting tests).
Removed temporarily some tests in streams/reference-implementation/readable-stream-templated.html.
These tests try to check handling promise returned in start method which is not yet supported.
If we did not comment these tests, they would be flaky.

* streams/readable-stream-reader-read-expected.txt: Added.
* streams/readable-stream-reader-read.html: Added.
* streams/reference-implementation/bad-underlying-sources-expected.txt:
* streams/reference-implementation/bad-underlying-sources.html:
* streams/reference-implementation/count-queuing-strategy-expected.txt:
* streams/reference-implementation/count-queuing-strategy.html:
* streams/reference-implementation/readable-stream-cancel-expected.txt:
* streams/reference-implementation/readable-stream-expected.txt:
* streams/reference-implementation/readable-stream-reader-expected.txt:
* streams/reference-implementation/readable-stream-reader.html:
* streams/reference-implementation/readable-stream-templated-expected.txt:
* streams/reference-implementation/readable-stream-templated.html:
* streams/reference-implementation/readable-stream.html:

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

4 years ago[Cocoa] FontPlatformData's equality check should always use reference URLs
mmaxfield@apple.com [Tue, 2 Jun 2015 19:21:43 +0000 (19:21 +0000)]
[Cocoa] FontPlatformData's equality check should always use reference URLs
https://bugs.webkit.org/show_bug.cgi?id=144168

Reviewed by Tim Horton.

<rdar://problem/18985642> is not fixed, so we need to continue using the older
objectForEqualityCheck().

No new tests because there is no behavior change.

* platform/graphics/cocoa/FontPlatformDataCocoa.mm:
(WebCore::FontPlatformData::objectForEqualityCheck):

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

4 years ago[Mac] REGRESSION (r175941): Max.app crashes when adding a sound file to a patch due...
aestes@apple.com [Tue, 2 Jun 2015 19:13:29 +0000 (19:13 +0000)]
[Mac] REGRESSION (r175941): Max.app crashes when adding a sound file to a patch due to removing cursor resources from WebCore.framework
https://bugs.webkit.org/show_bug.cgi?id=145555

Reviewed by Darin Adler.

Re-added the cursor resources used by Max.app and ran sort-Xcode-project-file.

* Resources/copyCursor.png: Added.
* Resources/moveCursor.png: Added.
* Resources/northEastSouthWestResizeCursor.png: Added.
* Resources/northSouthResizeCursor.png: Added.
* Resources/northWestSouthEastResizeCursor.png: Added.
* WebCore.xcodeproj/project.pbxproj:

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

4 years agoWebKit policy delegate should suggest if a navigation should be allowed to open URLs...
beidson@apple.com [Tue, 2 Jun 2015 18:43:13 +0000 (18:43 +0000)]
WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally.
rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145280
Source/WebCore:

Reviewed by Alex Christensen.

Tests: loader/navigation-policy/should-open-external-urls/main-frame-click.html
       loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe.html
       loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic.html
       loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic.html
       loader/navigation-policy/should-open-external-urls/subframe-click-target-self.html
       loader/navigation-policy/should-open-external-urls/subframe-click-target-top.html
       loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag.html
       loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag.html
       loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag.html
       loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag.html
       loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/window-open-with-flag.html
       loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe.html
       loader/navigation-policy/should-open-external-urls/window-open-without-flag.html

The "should open external URLs" flag is only for main frames.
It doesn't enforce any sort of policy internal to WebKit, but rather is for notifications to the policy delegate.

It is set from one of two places:
1 - A main frame is navigated by any frame as the result of a user gesture.
2 - WebKit2 API explicitly states the flag is true.

The flag value propagates when:
1 - When a main frame document is navigated to a new main frame document.
2 - When a new window is opened from a page whose main frame had the flag set.
3 - When a new window is opened as the result of a user gesture.

The flag resets to false when:
1 - A subframe navigates a main frame without a user gesture.

This patch is large, but does little more than the following:
1 - Adds a ShouldOpenExternalURLs flag to both FrameLoadRequest and NavigationAction.
2 - Makes sure anybody who creates either of those objects sets a sensible for that flag.
3 - When FrameLoader creates a new DocumentLoader, it sets its flag based on whether or not the load is in a main frame,
    whether or not the load is from a user gesture, and based on the initiator's value of the flag.

* dom/Document.cpp:
(WebCore::Document::processHttpEquiv):
(WebCore::Document::shouldOpenExternalURLsPolicyToPropagate):
* dom/Document.h:

* html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):

* html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::handleClick):

* html/parser/XSSAuditorDelegate.cpp:
(WebCore::XSSAuditorDelegate::didBlockScript):

* inspector/InspectorFrontendClientLocal.cpp:
(WebCore::InspectorFrontendClientLocal::openInNewTab):

* inspector/InspectorPageAgent.cpp:
(WebCore::InspectorPageAgent::navigate):

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::setTriggeringAction):
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicyToPropagate):
* loader/DocumentLoader.h:
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicy): Deleted.

* loader/FrameLoadRequest.cpp:
(WebCore::FrameLoadRequest::FrameLoadRequest):
* loader/FrameLoadRequest.h:
(WebCore::FrameLoadRequest::FrameLoadRequest):

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
* loader/FrameLoader.h:

* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction):
(WebCore::NavigationAction::copyWithShouldOpenExternalURLsPolicy):
* loader/NavigationAction.h:
(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy): Deleted.

* loader/NavigationScheduler.cpp:
(WebCore::ScheduledURLNavigation::ScheduledURLNavigation):
(WebCore::ScheduledRedirect::ScheduledRedirect):
(WebCore::ScheduledLocationChange::ScheduledLocationChange):
(WebCore::ScheduledRefresh::ScheduledRefresh):
(WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleRefresh):
* loader/NavigationScheduler.h:

* loader/PolicyChecker.cpp:
(WebCore::PolicyChecker::checkNavigationPolicy):

* loader/SubframeLoader.cpp:
(WebCore::SubframeLoader::loadOrRedirectSubframe):

* loader/appcache/ApplicationCacheGroup.cpp:
(WebCore::ApplicationCacheGroup::selectCache):

* page/ContextMenuController.cpp:
(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

* page/DOMWindow.cpp:
(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):

* page/DragController.cpp:
(WebCore::DragController::performDragOperation):

* page/Location.cpp:
(WebCore::Location::reload):

* replay/ReplayInputDispatchMethods.cpp:
(WebCore::InitialNavigation::dispatch):

* svg/SVGAElement.cpp:
(WebCore::SVGAElement::defaultEventHandler):

Source/WebKit/ios:

Reviewed by Alex Christensen.

* WebView/WebPDFViewPlaceholder.mm:
(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

Reviewed by Alex Christensen.

* Plugins/WebPluginController.mm:
(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):

* WebView/WebFrame.mm:
(-[WebFrame loadRequest:]):
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

* WebView/WebPDFView.mm:
(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

Reviewed by Alex Christensen.

* Plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

* WebCoreSupport/WebContextMenuClient.cpp:
(WebContextMenuClient::searchWithGoogle):

* WebFrame.cpp:
(WebFrame::loadRequest):
(WebFrame::loadData):

Source/WebKit2:

Reviewed by Alex Christensen.

* WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::clickedLink):

* WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::loadURL):

* WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
(WebKit::WebContextMenuClient::searchWithGoogle):

* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchCreatePage):

* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::openInNewTab):

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::loadURLInFrame):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

LayoutTests:

Reviewed by Alex Christensen.

* loader/navigation-policy/should-open-external-urls/main-frame-click-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-click.html: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic.html: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/click-notify-done-in-main.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-self.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-top.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-click-targets-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-programatically-navigates-main.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done-target-top.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html: Added.
* loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/subframe-click-target-self.html: Added.
* loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/subframe-click-target-top.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag.html: Added.
* loader/navigation-policy/should-open-external-urls/window-open-with-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/window-open-with-flag.html: Added.
* loader/navigation-policy/should-open-external-urls/window-open-without-flag-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe-expected.txt: Added.
* loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe.html: Added.
* loader/navigation-policy/should-open-external-urls/window-open-without-flag.html: Added.

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

4 years agobuild-jsc's --cloop option is broken.
mark.lam@apple.com [Tue, 2 Jun 2015 17:48:23 +0000 (17:48 +0000)]
build-jsc's --cloop option is broken.
https://bugs.webkit.org/show_bug.cgi?id=145516

Reviewed by Darin Adler.

* Scripts/build-jsc:
- Make sure to disable the JIT when --cloop is specified.
  Did analogous fix for --ftljit.

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

4 years agoHeap-use-after-free read of size 4 in JavaScriptCore: WTF::StringImpl::isSymbol(...
utatane.tea@gmail.com [Tue, 2 Jun 2015 17:36:16 +0000 (17:36 +0000)]
Heap-use-after-free read of size 4 in JavaScriptCore: WTF::StringImpl::isSymbol() (StringImpl.h:496)
https://bugs.webkit.org/show_bug.cgi?id=145532

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

AtomicStringImpl::lookUp returns AtomicStringImpl*,
it doesn't give any ownership to the caller.
Originally, this is ok because the ownership is taken
by AtomicStringImpl's table (& the register side).

But if we would like to use this returned AtomicStringImpl*,
we should take its ownership immediately.
Because if the register side releases its ownership (ref count),
it will be destroyed.

In JSString::toExistingAtomicString, it returns AtomicStringImpl*.
But it's not appropriate.
If the owner of AtomicStringImpl* is always JSString*, it is ok.
But it looks up the table-registered AtomicStringImpl* from
the AtomicStringImpl table. So JSString* may not have the ownership
of the returned AtomicStringImpl*.

The failure situation is the following.

1. A creates AtomicStringImpl. A has its ownership.
   And A registers it to AtomicStringImpl table.
2. JSString looks up the AtomicStringImpl from the table.
   It gets AtomicStringImpl*. And JSString doesn't have its ownership.
   It returns the raw pointer immediately to the users
3. A is released. There's no owner for AtomicStringImpl*.
   So it's also destroyed.
4. Use looked up AtomicStringImpl in (2). It becomes use-after-free.

This patch fixes it by the following changes.

1. Change the signature of `AtomicStringImpl* AtomicStringImpl::lookUp(...)`
   to `RefPtr<AtomicStringImpl> AtomicStringImpl::lookUp(..)`.
   Use `RefPtr` because it may return `nullptr`.
2. Change the signature of `AtomicStringImpl* JSString::toExistingAtomicString(...)`
   to `RefPtr<AtomicStringImpl> JSString::toExistingAtomicString(...)`.
   Using `RefPtr` is the same reason.
3. Receive the result with `RefPtr<AtomicStringImpl>` in the caller side.

* dfg/DFGOperations.cpp:
* jit/JITOperations.cpp:
(JSC::getByVal):
* llint/LLIntSlowPaths.cpp:
(JSC::LLInt::getByVal):
* runtime/JSString.cpp:
(JSC::JSRopeString::resolveRopeToExistingAtomicString):
* runtime/JSString.h:
(JSC::JSString::toExistingAtomicString):

Source/WebCore:

Hold the ownership of AtomicStringImpl*.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateParametersCheck):
* dom/TreeScope.cpp:
(WebCore::TreeScope::getElementById):

Source/WTF:

Return `RefPtr<AtomicStringImpl>` instead of `AtomicStringImpl*`.

* wtf/text/AtomicStringImpl.cpp:
(WTF::AtomicStringImpl::lookUpSlowCase):
(WTF::AtomicStringImpl::lookUpInternal):
* wtf/text/AtomicStringImpl.h:
(WTF::AtomicStringImpl::lookUp):

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

4 years agoUpdate ATS keys used in MiniBrowser and WebKitTestRunnerApp
dbates@webkit.org [Tue, 2 Jun 2015 17:26:20 +0000 (17:26 +0000)]
Update ATS keys used in MiniBrowser and WebKitTestRunnerApp

Rubber-stamped by Alexey Proskuryakov.

* MiniBrowser/mac/Info.plist:
* WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:

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

4 years agoREGRESSION(r185091): Crash happens on indexdb tests
gyuyoung.kim@webkit.org [Tue, 2 Jun 2015 09:12:41 +0000 (09:12 +0000)]
REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Csaba Osztrogonác.

r185091 caused crash on some indexeddb tests. The crash happens because IDBDatabaseError::create() doesn't
dereference count by using ptr(). It makes a crash when dereferencing on ~Ref() destructor. To fix this issue,
this patch uses leakRef() instead of ptr().

* WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:
(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

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

4 years agoSharedBuffer::copy should return a Ref<SharedBuffer>
youenn.fablet@crf.canon.fr [Tue, 2 Jun 2015 09:08:52 +0000 (09:08 +0000)]
SharedBuffer::copy should return a Ref<SharedBuffer>
https://bugs.webkit.org/show_bug.cgi?id=145499

Reviewed by Andreas Kling.

Changing SharedBuffer::copy to return a Ref<> and adapting some code accordingly.

Covered by existing tests.

* loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveResponse):
* loader/appcache/ApplicationCacheResource.cpp:
(WebCore::ApplicationCacheResource::deliver):
* platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::copy):
* platform/SharedBuffer.h:

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

4 years agoWeb Inspector: Type token text descenders touch bottom of container
jonowells@apple.com [Tue, 2 Jun 2015 05:48:04 +0000 (05:48 +0000)]
Web Inspector: Type token text descenders touch bottom of container
https://bugs.webkit.org/show_bug.cgi?id=145544

Reviewed by Timothy Hatcher.

Move 1px padding from top to bottom of token.

* UserInterface/Views/TypeTokenView.css:
(.type-token):

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

4 years agoWeb Inspector: Better handle keyboard events in the quick console prompt
commit-queue@webkit.org [Tue, 2 Jun 2015 05:46:23 +0000 (05:46 +0000)]
Web Inspector: Better handle keyboard events in the quick console prompt
https://bugs.webkit.org/show_bug.cgi?id=145548

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

* UserInterface/Base/Main.js:
(WebInspector.saveDataToFile):
Move generic InspectorFrontendHost code here.

* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._save):
(WebInspector.ContentBrowser.prototype._saveAs):
(WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted.
Use the generic save code.

* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype._save):
(WebInspector.JavaScriptLogViewController.prototype._saveAs):
Handle save keyboard shortcuts while the prompt is focused.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.focusSearchBar):
(WebInspector.LogContentView.prototype.save):
(WebInspector.LogContentView.prototype.saveAs):
Better handle keyboard shortcut cases in the console prompt for cases
like a collapsed or split console view.

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

4 years agoAny exit from any JIT due to profiling for an inline cache should force all future...
fpizlo@apple.com [Tue, 2 Jun 2015 05:39:11 +0000 (05:39 +0000)]
Any exit from any JIT due to profiling for an inline cache should force all future compilations to be wary
https://bugs.webkit.org/show_bug.cgi?id=145496

Reviewed by Geoffrey Garen.

This pessimizes compilation a bit, but it reduces the likelihood of exiting from FTL. I
couldn't find any convincing reason not to do this, and we know from Speedometer that this
change is necessary for weirder code.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):
* bytecode/CallLinkStatus.h:
* bytecode/GetByIdStatus.cpp:
(JSC::GetByIdStatus::appendVariant):
(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):
* bytecode/GetByIdStatus.h:
* bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::appendVariant):
(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):
* bytecode/PutByIdStatus.h:

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

4 years agoUnreviewed, rolling out r185066.
commit-queue@webkit.org [Tue, 2 Jun 2015 03:29:39 +0000 (03:29 +0000)]
Unreviewed, rolling out r185066.
https://bugs.webkit.org/show_bug.cgi?id=145543

it breaks the FTL JIT builds with a local checkout of llvm
(Requested by pizlo on #webkit).

Reverted changeset:

"build-jsc's --cloop option is broken."
https://bugs.webkit.org/show_bug.cgi?id=145516
http://trac.webkit.org/changeset/185066

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

4 years agoUse modern for-loops in WebCore/Modules - 1
commit-queue@webkit.org [Tue, 2 Jun 2015 03:13:26 +0000 (03:13 +0000)]
Use modern for-loops in WebCore/Modules - 1
https://bugs.webkit.org/show_bug.cgi?id=145507

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-06-01
Reviewed by Darin Adler.

No new tests, no behavior changes.

* Modules/battery/BatteryController.cpp:
(WebCore::BatteryController::~BatteryController):
(WebCore::BatteryController::updateBatteryStatus):
(WebCore::BatteryController::didChangeBatteryStatus):
* Modules/encryptedmedia/CDM.cpp:
(WebCore::CDMFactoryForKeySystem):
* Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::~MediaKeys):
* Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::resumeTimerFired):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::sendError):
(WebCore::Geolocation::sendPosition):
(WebCore::Geolocation::stopTimer):
(WebCore::Geolocation::cancelRequests):
(WebCore::Geolocation::extractNotifiersWithCachedPosition):
(WebCore::Geolocation::copyToSet):
(WebCore::Geolocation::handlePendingPermissionNotifiers):
* Modules/geolocation/GeolocationController.cpp:
(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::forceClose):
(WebCore::IDBDatabase::closeConnection):
(WebCore::IDBDatabase::findObjectStoreId):
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
(WebCore::IDBDatabaseBackend::close):
* Modules/indexeddb/IDBDatabaseMetadata.cpp:
(WebCore::IDBDatabaseMetadata::isolatedCopy):
(WebCore::IDBObjectStoreMetadata::isolatedCopy):
* Modules/indexeddb/IDBKey.cpp:
(WebCore::IDBKey::isValid):
* Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createMultiEntryArray):
(WebCore::IDBKey::createArray):
* Modules/indexeddb/IDBKeyPath.cpp:
(WebCore::IDBKeyPath::IDBKeyPath):
(WebCore::IDBKeyPath::isValid):
(WebCore::IDBKeyPath::isolatedCopy):
* Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
Rename the two 'i's to 'keyData' and 'indexKeyData'.
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::findIndexId):
* Modules/indexeddb/IDBPendingTransactionMonitor.cpp:
(WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::abort):
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::closeOpenCursors):
(WebCore::IDBTransaction::onAbort):
(WebCore::IDBTransaction::dispatchEvent):
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::create):
(WebCore::IDBTransactionBackend::closeOpenCursors):
* Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::onReadyStateChange):
* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::initialize):
(WebCore::MediaConstraintsImpl::getMandatoryConstraints):
(WebCore::MediaConstraintsImpl::getOptionalConstraintValue):
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getTracks):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::scheduledEventTimerFired):
* Modules/mediastream/MediaStreamCapabilities.cpp:
(WebCore::MediaStreamCapabilities::sourceType):
(WebCore::MediaStreamCapabilities::sourceId):
(WebCore::MediaStreamCapabilities::facingMode):
* Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::trackDidEnd):
* Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:
(WebCore::MediaStreamTrackSourcesRequest::didCompleteRequest):

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

4 years ago[SVG -> OTF Converter] Remove unnecessary hacks
mmaxfield@apple.com [Tue, 2 Jun 2015 03:11:11 +0000 (03:11 +0000)]
[SVG -> OTF Converter] Remove unnecessary hacks
https://bugs.webkit.org/show_bug.cgi?id=145088

Reviewed by Simon Fraser.

Source/WebCore:

Not needed anymore.

Test: svg/text/offset-square-svg-font.html

* svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::appendKERNTable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

LayoutTests:

Test that the hacks are unnecessary.

* svg/text/offset-square-svg-font-expected.html: Added.
* svg/text/offset-square-svg-font.html: Added.
* svg/text/resources/offset-square-svg-font.svg: Added.
* svg/text/resources/offset-square-svg-font2.svg: Added.

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

4 years agoIf a call has ever taken the virtual slow path, make sure that the DFG knows this
fpizlo@apple.com [Tue, 2 Jun 2015 02:59:39 +0000 (02:59 +0000)]
If a call has ever taken the virtual slow path, make sure that the DFG knows this
https://bugs.webkit.org/show_bug.cgi?id=145501

Reviewed by Geoffrey Garen.

Now now return higher fidelity information in the case of no polymorphic call stub. If the
virtual slow path was ever taken, we note this, and we note either zero or one call variant
based on the IC's last callee.

* bytecode/CallLinkStatus.cpp:
(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::computeFor):

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

4 years ago[Mac] Unreviewed gardening.
zalan@apple.com [Tue, 2 Jun 2015 02:55:36 +0000 (02:55 +0000)]
[Mac] Unreviewed gardening.

Calling setAcceleratedCompositingForFixedPositionEnabled(true) is too late in doTest().

* compositing/layer-creation/zoomed-clip-intersection.html:

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

4 years agoCSS animations in filling-forwards state shouldn't force compositing.
akling@apple.com [Tue, 2 Jun 2015 02:29:41 +0000 (02:29 +0000)]
CSS animations in filling-forwards state shouldn't force compositing.
<https://webkit.org/b/145389>
<rdar://problem/17923642>

Reviewed by Simon Fraser.

Source/WebCore:

Stop checking if a CSS animation is filling forwards when computing
compositing requirements.

This prevents finished animations from pinning elements in composited
state, and frees up a bunch of IOSurface memory on some content.

* page/animation/AnimationBase.h:
(WebCore::AnimationBase::isAnimatingProperty): Deleted.
* rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry):
* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

LayoutTests:

Remove tests that were only here to check that animations in fill-forwards
state would participate in overlap testing.

* compositing/animation/layer-for-filling-animation-expected.txt: Update expected result
here to reflect that we no longer expect filling-forwards animations to get composited.

* compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
* compositing/animation/filling-animation-overlap-at-end.html: Removed.
* compositing/animation/filling-animation-overlap-expected.txt: Removed.
* compositing/animation/filling-animation-overlap.html: Removed.
* platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
* platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-expected.txt: Removed.
* platform/ios-sim-deprecated/compositing/animation/layer-for-filling-animation-expected.txt: Removed.

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

4 years agoTest gardening after r185087.
mmaxfield@apple.com [Tue, 2 Jun 2015 02:15:31 +0000 (02:15 +0000)]
Test gardening after r185087.
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

* platform/mac-mavericks/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
* platform/mac/fast/text/font-weights-zh-expected.txt:

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

4 years agoOut of bounds read in WebCore::ComplexTextController::adjustGlyphsAndAdvances
mmaxfield@apple.com [Tue, 2 Jun 2015 02:10:05 +0000 (02:10 +0000)]
Out of bounds read in WebCore::ComplexTextController::adjustGlyphsAndAdvances
https://bugs.webkit.org/show_bug.cgi?id=145537
<rdar://problem/20959267>

Reviewed by Darin Adler.

Source/WebCore:

U16_IS_SURROGATE_LEAD(ch) assumes U16_IS_SURROGATE(ch). In this case, that isn't true.

Test: fast/text/crash-complex-text-surrogate.html

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

LayoutTests:

* fast/text/crash-complex-text-surrogate.html: Added.
* platform/mac/fast/text/crash-complex-text-surrogate-expected.txt: Added.

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

4 years agoWeb Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
nvasilyev@apple.com [Tue, 2 Jun 2015 01:53:45 +0000 (01:53 +0000)]
Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
https://bugs.webkit.org/show_bug.cgi?id=145534

Reviewed by Timothy Hatcher.

* UserInterface/Views/ButtonNavigationItem.css:
(.navigation-bar .item.button.suppress-emboss):
Never show borders for the pause/resume button.

* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.button):

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

4 years agoREGRESSION (179771): zooming on facebook images covers image
zalan@apple.com [Tue, 2 Jun 2015 01:29:38 +0000 (01:29 +0000)]
REGRESSION (179771): zooming on facebook images covers image
https://bugs.webkit.org/show_bug.cgi?id=145485

Reviewed by Simon Fraser.

Scaling an infinite rect should always produce an infinite rect.
(Based on Simon Fraser's patch)

Source/WebCore:

Test: compositing/layer-creation/zoomed-clip-intersection.html

* platform/graphics/LayoutRect.cpp:
(WebCore::LayoutRect::scale):

LayoutTests:

* compositing/layer-creation/zoomed-clip-intersection-expected.txt: Added.
* compositing/layer-creation/zoomed-clip-intersection.html: Added.

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

4 years ago[iOS] Hardware Keyboard: All combinations for arrow keys with Shift do not extend...
enrica@apple.com [Tue, 2 Jun 2015 01:27:05 +0000 (01:27 +0000)]
[iOS] Hardware Keyboard: All combinations for arrow keys with Shift do not extend the selection.
https://bugs.webkit.org/show_bug.cgi?id=145538
rdar://problem/18504199

Reviewed by Darin Adler.

The extend parameter was ignored in all the functions below.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):

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

4 years agoPurge PassRefPtr in WebCore/Modules - 3
gyuyoung.kim@webkit.org [Tue, 2 Jun 2015 01:04:32 +0000 (01:04 +0000)]
Purge PassRefPtr in WebCore/Modules - 3
https://bugs.webkit.org/show_bug.cgi?id=145508

Reviewed by Darin Adler.

As a step to purge PassRefPtr, this patch removes PassRefPtr, then use Ref or RefPtr.

* Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::create):
* Modules/indexeddb/IDBCursor.h:
* Modules/indexeddb/IDBCursorBackend.h:
(WebCore::IDBCursorBackend::create):
* Modules/indexeddb/IDBCursorBackendOperations.h:
(WebCore::CursorIterationOperation::create):
(WebCore::CursorAdvanceOperation::create):
* Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::create):
* Modules/indexeddb/IDBDatabase.h:
* Modules/indexeddb/IDBDatabaseBackend.cpp:
(WebCore::IDBDatabaseBackend::create):
* Modules/indexeddb/IDBDatabaseBackend.h:
* Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:
(WebCore::IDBDatabaseCallbacksImpl::create):
* Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
* Modules/indexeddb/IDBDatabaseError.h:
(WebCore::IDBDatabaseError::create):
* Modules/indexeddb/IDBIndex.h:
(WebCore::IDBIndex::create):
* Modules/indexeddb/IDBKey.h:
(WebCore::IDBKey::createInvalid):
(WebCore::IDBKey::createNumber):
(WebCore::IDBKey::createString):
(WebCore::IDBKey::createDate):
(WebCore::IDBKey::createArray):
* Modules/indexeddb/IDBKeyRange.cpp:
(WebCore::IDBKeyRange::create):
* Modules/indexeddb/IDBKeyRange.h:
(WebCore::IDBKeyRange::create):
* Modules/indexeddb/IDBObjectStore.cpp:
* Modules/indexeddb/IDBObjectStore.h:
(WebCore::IDBObjectStore::create):
* Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::create):
* Modules/indexeddb/IDBOpenDBRequest.h:
* Modules/indexeddb/IDBRecordIdentifier.h:
(WebCore::IDBRecordIdentifier::create):
* Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::create):
(WebCore::IDBRequest::getResultCursor):
* Modules/indexeddb/IDBRequest.h:
* Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::create):
* Modules/indexeddb/IDBTransaction.h:
* Modules/indexeddb/IDBTransactionBackend.cpp:
(WebCore::IDBTransactionBackend::create):
* Modules/indexeddb/IDBTransactionBackend.h:
* Modules/indexeddb/IDBTransactionBackendOperations.h:
(WebCore::CreateObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeAbortOperation::create):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::GetOperation::create):
(WebCore::PutOperation::create):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::OpenCursorOperation::create):
(WebCore::CountOperation::create):
(WebCore::DeleteRangeOperation::create):
(WebCore::ClearObjectStoreOperation::create):
* Modules/mediasource/VideoPlaybackQuality.cpp:
(WebCore::VideoPlaybackQuality::create):
* Modules/mediasource/VideoPlaybackQuality.h:
* Modules/mediastream/MediaConstraintsImpl.cpp:
(WebCore::MediaConstraintsImpl::create):
* Modules/mediastream/MediaConstraintsImpl.h:
* Modules/mediastream/MediaStream.cpp:
(WebCore::MediaStream::create):
* Modules/mediastream/MediaStream.h:
* Modules/mediastream/RTCDTMFSender.cpp:
(WebCore::RTCDTMFSender::create):
* Modules/mediastream/RTCDTMFSender.h:
* Modules/mediastream/RTCOfferAnswerOptions.cpp:
(WebCore::RTCOfferAnswerOptions::create):
(WebCore::RTCOfferOptions::create):
* Modules/mediastream/RTCOfferAnswerOptions.h:
* Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::create):
* Modules/mediastream/RTCPeerConnection.h:
* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::create):
* Modules/webdatabase/AbstractDatabaseServer.h:
* Modules/webdatabase/DOMWindowWebDatabase.cpp:
(WebCore::DOMWindowWebDatabase::openDatabase):
* Modules/webdatabase/DOMWindowWebDatabase.h:
* Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::databaseContextFor):
(WebCore::DatabaseManager::openDatabase):
* Modules/webdatabase/DatabaseManager.h:
* Modules/webdatabase/DatabaseServer.cpp:
(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):
* Modules/webdatabase/DatabaseServer.h:

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

4 years agoUse xpc_connection_set_oneshot_instance where possible
andersca@apple.com [Tue, 2 Jun 2015 00:26:35 +0000 (00:26 +0000)]
Use xpc_connection_set_oneshot_instance where possible
https://bugs.webkit.org/show_bug.cgi?id=145535
rdar://problem/21109994

Reviewed by Sam Weinig.

Source/WebKit2:

Use xpc_connection_set_oneshot_instance where possible; this will make sure that the
web process instances go away when the web process exits.

* UIProcess/Launcher/mac/ProcessLauncherMac.mm:
(WebKit::connectToService):
(WebKit::connectToReExecService):

Source/WTF:

Add SPI declaration.

* wtf/spi/darwin/XPCSPI.h:

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

4 years agoNotify client that we began editing when text field is focused
dbates@webkit.org [Tue, 2 Jun 2015 00:01:40 +0000 (00:01 +0000)]
Notify client that we began editing when text field is focused
https://bugs.webkit.org/show_bug.cgi?id=145439
<rdar://problem/21142108>

Reviewed by Anders Carlsson.

Source/WebCore:

Inform the editor client that we began editing when a text field is focused either
by being explicitly focused (programmatically or by user interaction) or implicitly
focused when the window became active.

Currently we only notify the editor client that we began editing a text field when
when a person actually changes the value of the field. And we always notify the
client that we ended editing when a text field is defocused regardless of whether
we executed a began editing callback. Moreover we notify a client that we
ended editing when the field is defocused (either explicitly or implicitly when the
window becomes inactive). Instead we should always notify the client that we began
editing when the field is focused so that this callback is symmetric with the end
editing callback.

* html/SearchInputType.cpp:
(WebCore::SearchInputType::didSetValueByUserEdit): Remove parameter for ValueChangeState,
which was used to determine whether we should notify the client that we began editing, because
we we will notify the client that editing began when the text field is focused as opposed to
when the value of text field first changes.
* html/SearchInputType.h: Ditto.
* html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::forwardEvent): Notify the client that we began editing when
the text field is focused.
(WebCore::TextFieldInputType::subtreeHasChanged): Update call site of didSetValueByUserEdit()
following the removal of its parameter.
(WebCore::TextFieldInputType::didSetValueByUserEdit): Ditto.
* html/TextFieldInputType.h:

Tools:

Add API test to ensure that we dispatch textFieldDid{Begin, End}Editing callbacks when
a text field is focused and defocused.

* TestWebKitAPI/CMakeLists.txt:
* TestWebKitAPI/PlatformEfl.cmake:
* TestWebKitAPI/PlatformGTK.cmake:
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp: Added.
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didReceiveMessageFromInjectedBundle):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishLoadForFrame):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setInjectedBundleClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::nullJavaScriptCallback):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::executeJavaScriptAndCheckDidReceiveMessage):
(TestWebKitAPI::TEST_F):
* TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp: Added.
(TestWebKitAPI::textFieldDidBeginEditing):
(TestWebKitAPI::textFieldDidEndEditing):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::TextFieldDidBeginAndEndEditingEventsTest):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::didCreatePage):
* TestWebKitAPI/Tests/WebKit2/input-focus-blur.html: Added.

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

4 years ago[iOS] Hardware Keyboard: Command + left arrow does not work.
enrica@apple.com [Mon, 1 Jun 2015 23:57:39 +0000 (23:57 +0000)]
[iOS] Hardware Keyboard: Command + left arrow does not work.
https://bugs.webkit.org/show_bug.cgi?id=145531
rdar://problem/18576402

Reviewed by Anders Carlsson.

We were calling a non existent command (moveToStartOfLine) instead of
moveToBeginningOfLine.

* UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _moveToStartOfLine:withHistory:]):

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

4 years agoTest font selection for zh fonts
mmaxfield@apple.com [Mon, 1 Jun 2015 23:57:22 +0000 (23:57 +0000)]
Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Rubber-stamped by Zalan Bujtas.

* platform/mac/fast/text/font-weights-zh-expected.txt: Added.
* platform/mac/fast/text/font-weights-zh.html: Added.

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

4 years agoUnreviewed, rolling out r185074 and r185085.
commit-queue@webkit.org [Mon, 1 Jun 2015 23:45:56 +0000 (23:45 +0000)]
Unreviewed, rolling out r185074 and r185085.
https://bugs.webkit.org/show_bug.cgi?id=145533

Moving to a separate test (Requested by litherum on #webkit).

Reverted changesets:

"Test font selection for zh fonts"
https://bugs.webkit.org/show_bug.cgi?id=145478
http://trac.webkit.org/changeset/185074

"Test gardening after r185074"
https://bugs.webkit.org/show_bug.cgi?id=145478
http://trac.webkit.org/changeset/185085

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

4 years agoTest gardening after r185074
mmaxfield@apple.com [Mon, 1 Jun 2015 23:35:58 +0000 (23:35 +0000)]
Test gardening after r185074
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

* platform/mac-mavericks/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
* platform/mac/fast/text/font-weights-expected.txt: Yosemite-specific test results.

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

4 years agoCrash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::revertCall...
msaboff@apple.com [Mon, 1 Jun 2015 23:35:02 +0000 (23:35 +0000)]
Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::revertCall + 24
https://bugs.webkit.org/show_bug.cgi?id=145527

Reviewed by Filip Pizlo.

If a CallLinkInfo is GC'ed, we need to notify any PolymorphicCallNode's that reference it.
Added plumbling to clear the m_callLinkInfo of a PolymorphicCallNode when that CallLinkInfo
is going away.

* bytecode/CallLinkInfo.h:
(JSC::CallLinkInfo::~CallLinkInfo):
* jit/PolymorphicCallStubRoutine.cpp:
(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallNode::clearCallLinkInfo):
(JSC::PolymorphicCallCase::dump):
(JSC::PolymorphicCallStubRoutine::edges):
(JSC::PolymorphicCallStubRoutine::clearCallNodesFor):
(JSC::PolymorphicCallStubRoutine::visitWeak):
* jit/PolymorphicCallStubRoutine.h:
(JSC::PolymorphicCallNode::hasCallLinkInfo):

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

4 years agoAdd the ability to tell between Catch and Finally blocks.
mark.lam@apple.com [Mon, 1 Jun 2015 23:22:22 +0000 (23:22 +0000)]
Add the ability to tell between Catch and Finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=145524

Reviewed by Michael Saboff.

... and also SynthesizedFinally blocks too.  A SynthesizedFinally block
is a finally block that is synthesized by the bytecode generator but
does not actually correspond to any exception handling construct at the
JS source code level.  An example of this is the "for ... of" statement
where it needs to do some "final" clean up before passing on the
exception.

Manually tested by inspecting the bytecode dump of functions with
try-catch-finally blocks as well as for of statements which have
synthesized finally blocks.  The bytecode dumps contains the exception
handlers table which has these blocks labelled with their newly added
types.  No automatic test because this type info is not visible to JS
code.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
* bytecode/HandlerInfo.h:
(JSC::HandlerInfoBase::type):
(JSC::HandlerInfoBase::setType):
(JSC::HandlerInfoBase::typeName):
(JSC::HandlerInfoBase::isCatchHandler):
(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
(JSC::HandlerInfo::initialize):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitEnumeration):
* bytecompiler/BytecodeGenerator.h:
(JSC::BytecodeGenerator::emitThrow):
* bytecompiler/NodesCodegen.cpp:
(JSC::TryNode::emitBytecode):

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

4 years agoWAKScrollView.h cannot be imported standalone
andersca@apple.com [Mon, 1 Jun 2015 22:43:45 +0000 (22:43 +0000)]
WAKScrollView.h cannot be imported standalone
https://bugs.webkit.org/show_bug.cgi?id=145529

Reviewed by Dan Bernstein.

Source/WebCore:

* page/mac/WebCoreFrameView.h:
Remove the __cplusplus #ifdefs since WebCoreFrameView.h is only used by Objective-C++ code.
(The different non-C++ method declarations were wrong anyway!)

* platform/ScrollTypes.h:
Remove the #ifdef __cplusplus surrounding the code, add header includes to make the file self-contained,
and reformat the enum definitions.

Source/WebKit/mac:

Don't migrate WAKScrollView.h, it's not used outside of WebKit.

* MigrateHeaders.make:

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

4 years ago[Content Extensions] resource-type and load-type should be independent.
achristensen@apple.com [Mon, 1 Jun 2015 22:40:47 +0000 (22:40 +0000)]
[Content Extensions] resource-type and load-type should be independent.
https://bugs.webkit.org/show_bug.cgi?id=145528
rdar://problem/21190765

Reviewed by Benjamin Poulain.

Source/WebCore:

Covered by existing tests and a new API test.

Right now we use the same uint16_t to store all the load-type and resource-type flags,
then we just do a bitwise and to check both at the same time. This results in a trigger
with load-type and resource-type firing if either condition is met, not both conditions.
A trigger with both resource-type and load-type conditions should only fire if both conditions are met.

* contentextensions/DFABytecodeInterpreter.cpp:
(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
Check and correctly handle rules with both resource-type and load-type flags.
* loader/ResourceLoadInfo.h:
Add masks to separate flags from resource-type and load-type.

Tools:

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

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

4 years ago[Content Extensions] Reduce DFA memory usage.
achristensen@apple.com [Mon, 1 Jun 2015 22:29:37 +0000 (22:29 +0000)]
[Content Extensions] Reduce DFA memory usage.
https://bugs.webkit.org/show_bug.cgi?id=145526

Reviewed by Benjamin Poulain.

* contentextensions/DFA.cpp:
(WebCore::ContentExtensions::DFA::memoryUsed):
(WebCore::ContentExtensions::DFANode::transitions):
(WebCore::ContentExtensions::DFANode::fallbackTransitionDestination):
(WebCore::ContentExtensions::DFANode::changeFallbackTransition):
(WebCore::ContentExtensions::DFANode::addFallbackTransition):
(WebCore::ContentExtensions::DFANode::containsTransition):
(WebCore::ContentExtensions::DFANode::kill):
* contentextensions/DFA.h:
* contentextensions/DFAMinimizer.cpp:
(WebCore::ContentExtensions::DFAMinimizer::minimize):
* contentextensions/NFAToDFA.cpp:
(WebCore::ContentExtensions::NFAToDFA::convert):
Use separate Vectors for the transition characters and destinations to avoid wasting memory to padding a std::pair.

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

4 years agoImplemented the `eventTargetInterface` and `scriptExecutionContext` methods required...
commit-queue@webkit.org [Mon, 1 Jun 2015 22:26:20 +0000 (22:26 +0000)]
Implemented the `eventTargetInterface` and `scriptExecutionContext` methods required by EventTarget, as well as
some required infrastructure.
https://bugs.webkit.org/show_bug.cgi?id=145523

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-01
Reviewed by Eric Carlson.

* Modules/mediasession/MediaRemoteControls.cpp:
(WebCore::MediaRemoteControls::MediaRemoteControls): Initialize all instance variables.
* Modules/mediasession/MediaRemoteControls.h: MediaRemoteControl's constructor now takes a script execution
  context, which we provide to EventTarget. The required eventTargetInterface method has also been implemented.
(WebCore::MediaRemoteControls::create):
* Modules/mediasession/MediaRemoteControls.idl: Indicate MediaRemoteControls now takes a constructor that is
  passed in a script execution context. To prevent build errors, event handlers have been removed until they are
  implemented.
* WebCore.xcodeproj/project.pbxproj: We should be building the derived JSMediaRemoteControls class with WebCore.
* dom/EventTargetFactory.in: Ensure a MediaRemoteControlsEventTargetInterfaceType is generated.

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

4 years agoTest font selection for zh fonts
mmaxfield@apple.com [Mon, 1 Jun 2015 21:09:01 +0000 (21:09 +0000)]
Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Reviewed by Zalan Bujtas.

We want to make sure that font selection works correctly for more than just Helvetica and Avenir.

* platform/mac/fast/text/font-weights-expected.txt:
* platform/mac/fast/text/font-weights.html:

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

4 years agoAdd ATS keys to WebKitTestRunnerApp
commit-queue@webkit.org [Mon, 1 Jun 2015 20:53:12 +0000 (20:53 +0000)]
Add ATS keys to WebKitTestRunnerApp
https://bugs.webkit.org/show_bug.cgi?id=145519

Patch by Daniel Bates <dabates@apple.com> on 2015-06-01
Reviewed by Alexey Proskuryakov.

Add ATS keys for WebKitTestRunnerApp as we did for MiniBrowser in bug #145141.

* WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:

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

4 years agoAdd WKTR support for "should open external URLs".
beidson@apple.com [Mon, 1 Jun 2015 19:57:16 +0000 (19:57 +0000)]
Add WKTR support for "should open external URLs".
https://bugs.webkit.org/show_bug.cgi?id=145505

Reviewed by Darin Adler.

Source/WebKit2:

Expose C-spi to allow WKTR to set this bit on new loads:
* UIProcess/API/C/WKPage.cpp:
(WKPageLoadURLWithShouldOpenExternalURLsPolicy):
* UIProcess/API/C/WKPagePrivate.h:

Expose the bit on NavigationAction for the policy delegate:
* WebProcess/InjectedBundle/API/c/WKBundleNavigationAction.cpp:
(WKBundleNavigationActionGetShouldOpenExternalURLs):
* WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h: Copied from Tools/WebKitTestRunner/WorkQueueManager.h.

* WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):
* WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:
(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):

* WebKit2.xcodeproj/project.pbxproj:

Tools:

- Add a new option to "queueLoad" to allow javascript to queue a load that has the
  "should open external URLs" bit set.

- Add a new "dumpPolicyDelegateCallbacks" call to dump the NavigationAction in
  the policy delegate, including whether or not the bit was set.

* WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
* WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::queueLoad):
* WebKitTestRunner/InjectedBundle/TestRunner.h:
(WTR::TestRunner::dumpPolicyDelegateCallbacks):
(WTR::TestRunner::shouldDumpPolicyCallbacks):

* WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::queueLoad):
* WebKitTestRunner/InjectedBundle/InjectedBundle.h:

* WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::decidePolicyForNavigationAction):

* WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

* WebKitTestRunner/WorkQueueManager.cpp:
(WTR::WorkQueueManager::queueLoad):
* WebKitTestRunner/WorkQueueManager.h:

LayoutTests:

* loader/navigation-policy/resources/notify-done.html: Added.
* loader/navigation-policy/should-load-external-urls-set-by-api-basic-expected.txt: Added.
* loader/navigation-policy/should-load-external-urls-set-by-api-basic.html: Added.
* loader/navigation-policy/should-not-load-external-urls-set-by-api-basic-expected.txt: Added.
* loader/navigation-policy/should-not-load-external-urls-set-by-api-basic.html: Added.

* platform/ios-simulator-wk1/TestExpectations:
* platform/mac-wk1/TestExpectations:
* platform/win/TestExpectations:

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

4 years ago[CSS JIT] Fail to compile when we are out of executable memory
benjamin@webkit.org [Mon, 1 Jun 2015 19:42:43 +0000 (19:42 +0000)]
[CSS JIT] Fail to compile when we are out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=145483
rdar://problem/21166612

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-01
Reviewed by Andreas Kling.

We should use a soft failure when the Linker fails to allocate
executable memory for the CSS JIT. We will just fallback to slow
code when that happen, better slow CSS than crashing.

Credit to Chris for finding this problem.

* cssjit/SelectorCompiler.cpp:
(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

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

4 years agoASSERT(revalidatingResource.inCache()) in MemoryCache when reloading tumblr.com
cdumez@apple.com [Mon, 1 Jun 2015 19:31:34 +0000 (19:31 +0000)]
ASSERT(revalidatingResource.inCache()) in MemoryCache when reloading tumblr.com
https://bugs.webkit.org/show_bug.cgi?id=145518
<rdar://problem/21168573>

Reviewed by Darin Adler.

Source/WebCore:

There was an assertion in MemoryCache::revalidationSucceeded() making
sure that the resource that was revalidated is still in the memory
cache. However, nothing prevents this resource from being pruned while
it is being revalidated. We do make sure that the resource in question
cannot be destroyed though (see CachedResource::canDelete()).

This patch gets rid of this assertion as it is incorrect. Also, the
fact that the resource is no longer in the memory cache is not an
issue. We are merely going to call MemoryCache::remove() to remove
it from the memory cache before re-adding it and updating its
HTTP response. The call to MemoryCache::remove() will simply be a
no-op in this case and we will not have any problem adding the
resource back to the memory cache because the resource is kept alive.

Test: http/tests/cache/memory-cache-pruning-during-revalidation.html

* loader/cache/MemoryCache.cpp:
(WebCore::MemoryCache::revalidationSucceeded): Deleted.

LayoutTests:

Add layout test to make sure we no longer crash if the memory cache is
pruned while a resource is being revalidated.

* http/tests/cache/memory-cache-pruning-during-revalidation-expected.txt: Added.
* http/tests/cache/memory-cache-pruning-during-revalidation.html: Added.

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

4 years agoAdd stub implementation of MediaRemoteControls, part of the Media Session spec.
commit-queue@webkit.org [Mon, 1 Jun 2015 19:05:44 +0000 (19:05 +0000)]
Add stub implementation of MediaRemoteControls, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145462

Patch by Matt Rajca <mrajca@apple.com> on 2015-06-01
Reviewed by Eric Carlson.

* CMakeLists.txt: Added IDL file as well as the corresponding implementation file.
* DerivedSources.make: Included the new IDL file.
* Modules/mediasession/MediaRemoteControls.cpp: Added an empty implementation file.
(MediaRemoteControls::~MediaRemoteControls):
* Modules/mediasession/MediaRemoteControls.h: Added a stubbed header file with accessors for the four attributes declared in the IDL file.
(WebCore::MediaRemoteControls::previousTrackEnabled):
(WebCore::MediaRemoteControls::setPreviousTrackEnabled):
(WebCore::MediaRemoteControls::nextTrackEnabled):
(WebCore::MediaRemoteControls::setNextTrackEnabled):
(WebCore::MediaRemoteControls::seekForwardEnabled):
(WebCore::MediaRemoteControls::setSeekForwardEnabled):
(WebCore::MediaRemoteControls::seekBackwardEnabled):
(WebCore::MediaRemoteControls::setSeekBackwardEnabled):
* Modules/mediasession/MediaRemoteControls.idl: Added from the Media Session spec.
* WebCore.xcodeproj/project.pbxproj: Included the new IDL file and MediaRemoteControls.cpp/.h sources.

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