WebKit-https.git
5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 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

5 years agoPDFs always think they're visible on iOS.
barraclough@apple.com [Mon, 1 Jun 2015 18:40:57 +0000 (18:40 +0000)]
PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Unreviewed roll-out.

Temporarily reverting this change – will need a workaround for test harness craziness.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView didMoveToWindow]):
(-[WKWebView setOpaque:]):
* UIProcess/ios/WKContentView.mm:
(-[WKContentView willMoveToWindow:]):
(-[WKContentView didMoveToWindow]):
(-[WKContentView browsingContextController]):

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

5 years agoREGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
ggaren@apple.com [Mon, 1 Jun 2015 18:40:30 +0000 (18:40 +0000)]
REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Darin Adler.

Moar speedup.

Added a bucket sort for string sorting.

* builtins/Array.prototype.js:
(sort.compactSparse):
(sort.compactSlow):
(sort.compact): Split out a compaction fast path for dense arrays. Without
it, compaction can increase sort time by 2X for simple sorts.

(sort.bucketSort):
(sort.stringSort): Use a bucket sorting algorithm if we know we're sorting
strings. This makes average case string sorting O(N) with O(N) additional
memory use.

The worst case bucket sort can require O(M * N) additional
space. We avoid this by falling back to merge sort when things are
simple or overly duplicative. These are the two cases that accumulate
excessive -- and potentially pathological -- bucketing overhead.

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

5 years agobuild-jsc's --cloop option is broken.
mark.lam@apple.com [Mon, 1 Jun 2015 18:17:40 +0000 (18:17 +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@185066 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years ago[CMake] check-webkit-style provides bogus explanation for alphabetical sorting error
ossy@webkit.org [Mon, 1 Jun 2015 18:05:17 +0000 (18:05 +0000)]
[CMake] check-webkit-style provides bogus explanation for alphabetical sorting error
https://bugs.webkit.org/show_bug.cgi?id=144959

Reviewed by Darin Adler.

* Scripts/webkitpy/style/checkers/cmake.py:
(CMakeChecker.check): Use enumerate instead of xrange.
(CMakeChecker._check_list_order): Use enumerate instead of incrementing line_number manually.
* Scripts/webkitpy/style/checkers/cmake_unittest.py:
(CMakeCheckerTest.test_check): Update the expected results.

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

5 years agoFix the webkitpy scm unittests after r174051
ossy@webkit.org [Mon, 1 Jun 2015 18:00:05 +0000 (18:00 +0000)]
Fix the webkitpy scm unittests after r174051
https://bugs.webkit.org/show_bug.cgi?id=145511

Reviewed by Darin Adler.

* Scripts/webkitpy/common/checkout/scm/scm_unittest.py:
(GitTestWithMock.make_scm):

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

5 years agoHandlerInfo::initialize() should not assume that CodeLocationLabel is available.
mark.lam@apple.com [Mon, 1 Jun 2015 17:57:18 +0000 (17:57 +0000)]
HandlerInfo::initialize() should not assume that CodeLocationLabel is available.
https://bugs.webkit.org/show_bug.cgi?id=145515

Reviewed by Csaba Osztrogonác.

CodeLocationLabel is only defined for ENABLE(ASSEMBLER) builds.  r185022's
attempt at simplifying code to increase readability failed to take this into
account.  This patch fixes it.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::CodeBlock):
* bytecode/HandlerInfo.h:
(JSC::HandlerInfo::initialize):

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

5 years agoEWS provides misleading information for not applyable patches
ossy@webkit.org [Mon, 1 Jun 2015 17:13:26 +0000 (17:13 +0000)]
EWS provides misleading information for not applyable patches
https://bugs.webkit.org/show_bug.cgi?id=145307

Reviewed by Alexey Proskuryakov.

* Scripts/svn-apply: Die if there is no applyable diff in the patch.

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

5 years ago[EFL] Remove unused const variable from EwkView.cpp
ossy@webkit.org [Mon, 1 Jun 2015 17:01:22 +0000 (17:01 +0000)]
[EFL] Remove unused const variable from EwkView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145512

Reviewed by Gyuyoung Kim.

* UIProcess/API/efl/EwkView.cpp:

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

5 years agoFurther tweak results of WebKit1.StringTruncator after r184965.
ap@apple.com [Mon, 1 Jun 2015 16:57:23 +0000 (16:57 +0000)]
Further tweak results of WebKit1.StringTruncator after r184965.

* TestWebKitAPI/Tests/mac/StringTruncator.mm:

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

5 years ago[CSS Grid Layout] Simplify the interface of GridResolvedPosition
svillar@igalia.com [Mon, 1 Jun 2015 15:40:43 +0000 (15:40 +0000)]
[CSS Grid Layout] Simplify the interface of GridResolvedPosition
https://bugs.webkit.org/show_bug.cgi?id=139077

Reviewed by Darin Adler.

The interface of GridResolvedPosition is full of static methods
that are used only internally, we should not expose them.

Apart from that resolveGridPositionsFromStyle() do always return
a valid GridSpan from now on meaning that the caller has to ensure
that the resolution does not require running the auto-placement
algorithm. A new class called GridUnresolvedSpan was added for
that purpose.

No new tests as this is a refactoring.

* rendering/RenderGrid.cpp:
(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
* rendering/style/GridPosition.h:
* rendering/style/GridResolvedPosition.cpp:
(WebCore::gridLinesForSide):
(WebCore::implicitNamedGridLineForSide):
(WebCore::isNonExistentNamedLineOrArea):
(WebCore::GridUnresolvedSpan::requiresAutoPlacement):
(WebCore::GridUnresolvedSpan::adjustGridPositionsFromStyle):
(WebCore::adjustGridPositionForRowEndColumnEndSide):
(WebCore::adjustGridPositionForSide):
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::firstNamedGridLineBeforePosition):
(WebCore::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridResolvedPosition::GridResolvedPosition):
(WebCore::GridResolvedPosition::unresolvedSpanFromStyle):
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
(WebCore::GridResolvedPosition::adjustGridPositionsFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Deleted.
* rendering/style/GridResolvedPosition.h:
(WebCore::GridUnresolvedSpan::GridUnresolvedSpan): New class.
(WebCore::GridUnresolvedSpan::initialPosition):
(WebCore::GridUnresolvedSpan::finalPosition):
(WebCore::GridUnresolvedSpan::initialPositionSide):
(WebCore::GridUnresolvedSpan::finalPositionSide):
(WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide): Deleted.
(WebCore::GridResolvedPosition::adjustGridPositionForSide): Deleted.
(WebCore::GridResolvedPosition::GridResolvedPosition): Deleted.

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

5 years agoFix the !ENABLE(VIDEO_TRACK) build after r184799
ossy@webkit.org [Mon, 1 Jun 2015 15:28:49 +0000 (15:28 +0000)]
Fix the !ENABLE(VIDEO_TRACK) build after r184799
https://bugs.webkit.org/show_bug.cgi?id=145510

Reviewed by Eric Carlson.

* testing/Internals.cpp:
(WebCore::Internals::userPreferredAudioCharacteristics):
(WebCore::Internals::setUserPreferredAudioCharacteristic):

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

5 years agoFix logical-not-parentheses warning in CachedScript.cpp
ossy@webkit.org [Mon, 1 Jun 2015 11:36:41 +0000 (11:36 +0000)]
Fix logical-not-parentheses warning in CachedScript.cpp
https://bugs.webkit.org/show_bug.cgi?id=145254

Reviewed by Sam Weinig.

* loader/cache/CachedScript.cpp:
(WebCore::CachedScript::mimeTypeAllowedByNosniff): "!X==Y" should be "X!=Y" here.

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

5 years ago[cmake] Suppress unused parameter warnings in WebKit2 and TestNetscapePlugIn
ossy@webkit.org [Mon, 1 Jun 2015 10:57:28 +0000 (10:57 +0000)]
[cmake] Suppress unused parameter warnings in WebKit2 and TestNetscapePlugIn
https://bugs.webkit.org/show_bug.cgi?id=145264

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

* CMakeLists.txt: Use COMPILE_FLAGS instead of CMAKE_<C|CXX>_FLAGS to put -Wno-unused-parameter after -Wextra.

Tools:

* DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Set extra compiler flags and suppress only unused parameter warnings.

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

5 years ago[cmake] Suppress parentheses-equality warnings
ossy@webkit.org [Mon, 1 Jun 2015 09:11:05 +0000 (09:11 +0000)]
[cmake] Suppress parentheses-equality warnings
https://bugs.webkit.org/show_bug.cgi?id=145126

Reviewed by Darin Adler.

* Source/cmake/WebKitHelpers.cmake:

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

5 years agoWeb Inspector: Drop forEach from WeakMap / WeakSet native member function maps
utatane.tea@gmail.com [Mon, 1 Jun 2015 03:27:20 +0000 (03:27 +0000)]
Web Inspector: Drop forEach from WeakMap / WeakSet native member function maps
https://bugs.webkit.org/show_bug.cgi?id=145497

Reviewed by Sam Weinig.

WeakMap / WeakSet don't have forEach method.
This patch drops it from the native prototype function parameters map.

* UserInterface/Models/NativeFunctionParameters.js:

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

5 years agoRemove Panther support
mitz@apple.com [Mon, 1 Jun 2015 01:27:16 +0000 (01:27 +0000)]
Remove Panther support
https://bugs.webkit.org/show_bug.cgi?id=145506

Reviewed by Sam Weinig.

* platform/ios/wak/WAKAppKitStubs.h: Don't check for pre-Tiger SDKs.

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

5 years agoPDFs always think they're visible on iOS.
barraclough@apple.com [Sun, 31 May 2015 23:16:42 +0000 (23:16 +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.

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, move 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/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@185046 268f45cc-cd09-0410-ab3c-d52691b4dbfc

5 years agoRemove unused variable kZoomTicks.
clopez@igalia.com [Sun, 31 May 2015 20:10:30 +0000 (20:10 +0000)]
Remove unused variable kZoomTicks.
https://bugs.webkit.org/show_bug.cgi?id=145504

Reviewed by Sam Weinig.

No new tests, no behavior changes.

* platform/ScrollAnimatorNone.cpp:

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

5 years agoWeb Inspector: Resources tab navigation sidebar should have a type filter header
timothy@apple.com [Sun, 31 May 2015 19:50:16 +0000 (19:50 +0000)]
Web Inspector: Resources tab navigation sidebar should have a type filter header
https://bugs.webkit.org/show_bug.cgi?id=145474

Reviewed by Joseph Pecoraro.

* Localizations/en.lproj/localizedStrings.js: Updated.

* UserInterface/Images/UpDownArrows.svg: Make styleable.

* UserInterface/Main.html: Added new files.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView): Drive-by fix. Mark All as exclusive.

* UserInterface/Views/MultipleScopeBarItem.js: Added.
(WebInspector.MultipleScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.get element):
(WebInspector.MultipleScopeBarItem.prototype.get exclusive):
(WebInspector.MultipleScopeBarItem.prototype.get scopeBarItems):
(WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
(WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
(WebInspector.MultipleScopeBarItem.prototype.get selected):
(WebInspector.MultipleScopeBarItem.prototype.set selected):
(WebInspector.MultipleScopeBarItem.prototype.get selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype._clicked):
(WebInspector.MultipleScopeBarItem.prototype._selectElementSelectionChanged):
(WebInspector.MultipleScopeBarItem.prototype._itemSelectionDidChange):

* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.matchTextFilter):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement.makeVisible):
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
Improve filtering so non-text filters can choose to auto-expand the tree.

* UserInterface/Views/ResourceSidebarPanel.css: Added.
(.sidebar > .panel.navigation.resource > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.resource > .navigation-bar):

* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.hasCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.ResourceSidebarPanel.prototype._scopeBarSelectionDidChange):
Make a ScopeBar and make it filter the TreeOutline when needed.

* UserInterface/Views/ScopeBar.css:
(.scope-bar > li.multiple):
(.scope-bar > li.multiple > select):
(.scope-bar > li.multiple.selected > select):
(.scope-bar > li.multiple > .arrows):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .filled):
(.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows svg .stroked):

* UserInterface/Views/ScopeBar.js:
(WebInspector.ScopeBar): Support shouldGroupNonExclusiveItems which will use MultipleScopeBarItem.
(WebInspector.ScopeBar.prototype._populate):
(WebInspector.ScopeBar.prototype._itemSelectionDidChange):
(WebInspector.ScopeBar.prototype.updateLayout): Deleted. Not needed for our current styles.

* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
(WebInspector.ScopeBarItem.prototype.get id):
(WebInspector.ScopeBarItem.prototype.get label):
(WebInspector.ScopeBarItem.prototype.get exclusive):
(WebInspector.ScopeBarItem.prototype.setSelected):
(WebInspector.ScopeBarItem.prototype._clicked):
(WebInspector.ScopeBarItem.prototype.get element): Deleted.
(WebInspector.ScopeBarItem.prototype._markElementSelected): Deleted.
Cleaned up and modernized a bit.

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

5 years agoUnreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=145503.
fpizlo@apple.com [Sun, 31 May 2015 18:03:52 +0000 (18:03 +0000)]
Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=145503.

* dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::inliningCost):

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

5 years ago[ES6] Drop WeakMap#clear
utatane.tea@gmail.com [Sun, 31 May 2015 15:10:09 +0000 (15:10 +0000)]
[ES6] Drop WeakMap#clear
https://bugs.webkit.org/show_bug.cgi?id=145489

Reviewed by Mark Lam.

ES6 spec intentionally drops the WeakMap#clear
to allow engine to implement WeakMap as a per-object table.

This patch drops WeakMap.prototype.clear.

* runtime/WeakMapPrototype.cpp:
(JSC::WeakMapPrototype::finishCreation): Deleted.
(JSC::protoFuncWeakMapClear): Deleted.

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

5 years agoAsync XMLHttpRequest should get access to AppCache resources stored as flat files
youenn.fablet@crf.canon.fr [Sun, 31 May 2015 11:38:06 +0000 (11:38 +0000)]
Async XMLHttpRequest should get access to AppCache resources stored as flat files
https://bugs.webkit.org/show_bug.cgi?id=138506

Reviewed by Darin Adler.

Source/WebCore:

This patch reads flat file data when DocumentLoader substituteResource delivery timer is fired.
Refactoring to remove ApplicationCacheHost/DocumentLoader friend link.
Added ResourceLoader::deliverResponseAndData helper function, taking a SharedBuffer as input to remove an unneeded copy for flat files (no change for other files).

Test: http/tests/appcache/simple-video-async.html

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::substituteResourceDeliveryTimerFired):
(WebCore::DocumentLoader::scheduleArchiveLoad):
(WebCore::DocumentLoader::scheduleSubstituteResourceLoad): Helper function to remove ApplicationCacheHost friend link.
* loader/DocumentLoader.h:
* loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::deliverResponseAndData): Helper function, code mostly moved from DocumentLoader::substituteResourceDeliveryTimerFired.
* loader/ResourceLoader.h:
* loader/SubstituteResource.h:
(WebCore::SubstituteResource::deliver): Introduced to be overriden by ApplicationCacheResource to take care of flat file case.
* loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::maybeLoadResource):
(WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
* loader/appcache/ApplicationCacheResource.cpp:
(WebCore::ApplicationCacheResource::deliver): Use SharedBuffer::createWithContentsOfFile to load data stored in flat file.
* loader/appcache/ApplicationCacheResource.h:

LayoutTests:

* http/tests/appcache/resources/simple-video-async.manifest: Added.
* http/tests/appcache/simple-video-async-expected.txt: Added.
* http/tests/appcache/simple-video-async.html: Added.

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

5 years ago[Streams API] Implement ReadableStreamController constructor
youenn.fablet@crf.canon.fr [Sun, 31 May 2015 11:29:24 +0000 (11:29 +0000)]
[Streams API] Implement ReadableStreamController constructor
https://bugs.webkit.org/show_bug.cgi?id=143752

Reviewed by Darin Adler.

Source/WebCore:

Covered by rebased test and expectation.

* Modules/streams/ReadableStreamController.idl: Adding CustomConstructor.
* bindings/js/JSReadableStreamControllerCustom.cpp:
(WebCore::constructJSReadableStreamController): Throws an exception whenever called.

LayoutTests:

* streams/readable-stream.html: checking controller constructor.
* streams/reference-implementation/brand-checks-expected.txt:

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

5 years agoArray#reduce and reduceRight don't follow ToLength
commit-queue@webkit.org [Sun, 31 May 2015 09:28:54 +0000 (09:28 +0000)]
Array#reduce and reduceRight don't follow ToLength
https://bugs.webkit.org/show_bug.cgi?id=145364
Source/JavaScriptCore:

Per https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-31
Reviewed by Yusuke Suzuki.

* builtins/Array.prototype.js:
(reduce):
(reduceRight):
* runtime/ArrayPrototype.cpp:
(JSC::ArrayPrototype::finishCreation):
(JSC::arrayProtoFuncReduce): Deleted.
(JSC::arrayProtoFuncReduceRight): Deleted.

LayoutTests:

Patch by Jordan Harband <ljharb@gmail.com> on 2015-05-31
Reviewed by Yusuke Suzuki.

* js/array-reduce-expected.txt:
* js/array-reduceRight-expected.txt:
* js/dom/array-prototype-properties-expected.txt:
* js/dom/script-tests/array-prototype-properties.js:
* js/script-tests/array-reduce.js:
* js/script-tests/array-reduceRight.js:

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

5 years agoMake FrameLoader methods that take PassRefPtr<Event> take raw pointers instead.
beidson@apple.com [Sun, 31 May 2015 05:53:06 +0000 (05:53 +0000)]
Make FrameLoader methods that take PassRefPtr<Event> take raw pointers instead.
https://bugs.webkit.org/show_bug.cgi?id=145495

Reviewed by Alexey Proskuryakov.

Source/WebCore:

No new tests (No change in behavior).

In most cases ownership of the Event is not actually being transferred, and these functions are all rarely called anyways.

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

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
* loader/FrameLoader.h:

Source/WebKit2:

* WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

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

5 years ago[iOS] Tiling coverage sometimes inflated by outdated scale factor.
akling@apple.com [Sun, 31 May 2015 02:25:56 +0000 (02:25 +0000)]
[iOS] Tiling coverage sometimes inflated by outdated scale factor.
<https://webkit.org/b/145494>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

Have GraphicsLayerCA plumb the current contents scale through to TileController::adjustCoverageRect()
instead of TileController getting it from TileGrid.

This avoids a situation where adjustCoverageRect() could cause temporarily oversized tiling coverage
if called while TileGrid's content scale is outdated, and we're neither zooming or pinching, following
a pinch zoom that increased the scale factor.

Specifically, if all the velocity data is zero, we pad the coverage rect by a horizontal and vertical
margin computed like so:

    margin = defaultTileSize / tileGrid.scale

If the actual scale is 5, but the TileGrid's outdated scale is e.g 0.8, you'll get a much larger
margin than you really wanted. Then the whole thing gets scaled up by 5x later on, and we explode
in a fiery feast of IOSurface allocations.

* platform/graphics/TiledBacking.h:
* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::adjustCoverageRect):
* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::computeTileCoverageRect):
* platform/graphics/ca/TileController.h:

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

5 years agoFix Windows tests broken by r185007.
beidson@apple.com [Sat, 30 May 2015 22:07:37 +0000 (22:07 +0000)]
Fix Windows tests broken by r185007.
https://bugs.webkit.org/show_bug.cgi?id=145472

Unreviewed. Discussed with Alexey Proskuryakov.

No new tests (Fixing the four broken ones should suffice).

The bug was that evaluating arguments in a method/constructor call has no guaranteed sequencing.

Clang seems to always do LTR, allowing the PassRefPtr to be evaluated as a bool in the call to
navigationType() before it is "consumed" by the PassRefPtr argument.

In Visual Studio the PassRefPtr consumption happened before the bool evaluation, meaning `false`
was always passed in to navigationType(), breaking the four tests.

The fix? Using PassRefPtr here was silly in the first place.
No ownership is being transferred.
Raw pointers it is.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
* loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):
* loader/NavigationAction.h: Nobody is actually transferring ownership of these Events.
  Raw pointers will work just fine, thanks.

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

5 years agoFTL codegen for MultiGetByOffset and MultiPutByOffset where the structure set is...
fpizlo@apple.com [Sat, 30 May 2015 21:48:35 +0000 (21:48 +0000)]
FTL codegen for MultiGetByOffset and MultiPutByOffset where the structure set is already proved should have an unreachable default case instead of an exit
https://bugs.webkit.org/show_bug.cgi?id=145469

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:

Omitting the speculation on the fail path when the speculation is guaranteed not to be
taken hints to LLVM that the default case is impossible. This enables some useful
optimizations.

* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::compileMultiGetByOffset):
(JSC::FTL::LowerDFGToLLVM::compileMultiPutByOffset):

LayoutTests:

* js/regress/repeat-multi-get-by-offset-expected.txt: Added.
* js/regress/repeat-multi-get-by-offset.html: Added.
* js/regress/script-tests/repeat-multi-get-by-offset.js: Added.
(foo):

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

5 years agoUnreviewed build fix after r185014. Some tests only have subtests and not metrics.
rniwa@webkit.org [Sat, 30 May 2015 08:52:28 +0000 (08:52 +0000)]
Unreviewed build fix after r185014. Some tests only have subtests and not metrics.

* Scripts/webkitpy/benchmark_runner/benchmark_results.py:
(BenchmarkResults._lint_subtest_results):
* Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py:
(test_aggregate_nested_results):
(test_lint_results):
* WinLauncher/WinLauncher.vcxproj/WinLauncherResource.h:

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

5 years agoWeb Inspector: Crash closing a related tab with Web Inspector open while page is...
joepeck@webkit.org [Sat, 30 May 2015 03:55:15 +0000 (03:55 +0000)]
Web Inspector: Crash closing a related tab with Web Inspector open while page is refreshing
https://bugs.webkit.org/show_bug.cgi?id=145488

Reviewed by Alexey Proskuryakov.

* WebProcess/WebPage/WebInspector.h:
* WebProcess/WebPage/WebInspector.cpp:
(WebKit::WebInspector::~WebInspector):
Ensure, no matter how we close, that we have invalidated the
frontend connection of which we are the client.

(WebKit::WebInspector::createInspectorPage):
This member variable will never be null.

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

5 years agoUnreviewed bindings test rebaseline after r185023.
joepeck@webkit.org [Sat, 30 May 2015 03:51:32 +0000 (03:51 +0000)]
Unreviewed bindings test rebaseline after r185023.

* bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::isObservable): Deleted.
(WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots): Deleted.

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

5 years ago[iOS] When bouncing back from max pinch zoom scale, scaleChangeRate should be 0.
akling@apple.com [Sat, 30 May 2015 02:49:30 +0000 (02:49 +0000)]
[iOS] When bouncing back from max pinch zoom scale, scaleChangeRate should be 0.
<https://webkit.org/b/145487>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

Make sure we don't send WebCore some velocity data with non-zero scaleChangeRate
when we bounce back from being pinch-zoomed past the maximum scale.

This fixes an issue where the bounce-back animation would cause a burst of
unnecessary tile generation.

* WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::adjustVelocityDataForBoundedScale):
(WebKit::WebPage::updateVisibleContentRects):

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

5 years ago[iOS] Reduce tiling coverage when doing a pure pinch zoom with no panning.
akling@apple.com [Sat, 30 May 2015 02:48:59 +0000 (02:48 +0000)]
[iOS] Reduce tiling coverage when doing a pure pinch zoom with no panning.
<https://webkit.org/b/145481>
<rdar://problem/20989389>

Reviewed by Benjamin Poulain.

When we're zooming in with a pinch gesture but not panning the page
at the same time, make the coverage rect be the visible rect.

This reduces memory pressure during zooming, especially on slower
devices that struggle to keep up with the current viewport.

* platform/graphics/ca/TileController.cpp:
(WebCore::TileController::computeTileCoverageRect):

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

5 years agoMake the header replace rule more restrictive and get rid of a special case
andersca@apple.com [Sat, 30 May 2015 01:19:38 +0000 (01:19 +0000)]
Make the header replace rule more restrictive and get rid of a special case
https://bugs.webkit.org/show_bug.cgi?id=145486

Reviewed by Ryosuke Niwa.

We used to not run the header migration script on WAKScrollView.h since we had a rule that would transform
"<WebCore" to "<WebKitLegacy" to convert header #imports. However, WAKScrollView.h contains "WAKView <WebCoreFrameScrollView>"
which would get transformed to "WAKView <WebKitLegacyFrameScrollView>".

Instead, check for the trailing slash as well and stop special-casing WAKScrollView.h.

* MigrateHeaders.make:

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

5 years agoWeakMap reference w/ DOM element as key does not survive long enough.
commit-queue@webkit.org [Sat, 30 May 2015 00:26:43 +0000 (00:26 +0000)]
WeakMap reference w/ DOM element as key does not survive long enough.
https://bugs.webkit.org/show_bug.cgi?id=137651

Patch by Keith Miller <keith_miller@apple.com> on 2015-05-29
Reviewed by Geoffrey Garen.

Source/WebCore:

Remove isObservable functions as an "unobservable wrappers"
optimization is invalid with WeakMaps. Performance testing
will be done after the code is commited. If major
performance issues occur the patch will be rolled out.

Test: js/dom/weakmap-gc-unobservable-dom-nodes.html

* bindings/js/JSNodeCustom.cpp:
(WebCore::isReachableFromDOM):
(WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
(WebCore::JSNode::insertBefore):
(WebCore::isObservable): Deleted.
* bindings/scripts/CodeGeneratorJS.pm:
(GenerateImplementation):

LayoutTests:

* js/dom/script-tests/weakmap-gc-unobservable-dom-nodes.js: Added.
(.set gc):
* js/dom/weakmap-gc-unobservable-dom-nodes.html: Added.

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

5 years agoRefactoring HandlerInfo and UnlinkedHandlerInfo.
mark.lam@apple.com [Sat, 30 May 2015 00:19:01 +0000 (00:19 +0000)]
Refactoring HandlerInfo and UnlinkedHandlerInfo.
https://bugs.webkit.org/show_bug.cgi?id=145480

Reviewed by Benjamin Poulain.

HandlerInfo and UnlinkedHandlerInfo have common parts, but are not currently
expressed as 2 unrelated structs that happen to have near identical fields.
We can refactor them to better express their relationship.  We can also add
some convenience functions to make the code that uses them a little more
readable.

* bytecode/CodeBlock.cpp:
(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::handlerForBytecodeOffset):
* bytecode/HandlerInfo.h:
(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
(JSC::HandlerInfo::initialize):
- I chose to include CodeLocationLabel arg even though it is unused by
  by non-JIT builds.  This makes the call site cleaner to read.

* bytecode/UnlinkedCodeBlock.h:
(JSC::UnlinkedSimpleJumpTable::add):
(JSC::UnlinkedInstruction::UnlinkedInstruction):
(JSC::UnlinkedCodeBlock::numberOfExceptionHandlers):
(JSC::UnlinkedCodeBlock::addExceptionHandler):
(JSC::UnlinkedCodeBlock::exceptionHandler):
(JSC::UnlinkedCodeBlock::symbolTable):
* bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::generate):

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

5 years agoGet rid of WAKViewPrivate.h
andersca@apple.com [Sat, 30 May 2015 00:11:48 +0000 (00:11 +0000)]
Get rid of WAKViewPrivate.h
https://bugs.webkit.org/show_bug.cgi?id=145482
rdar://problem/21162149

Reviewed by Dan Bernstein.

Source/WebCore:

Merge WAKViewPrivate.h into WAKViewInternal.h and move the NSView sizing enum
to WAKView.h since that was the only thing WebKit used (indirectly) from WAKViewPrivate.h.

* WebCore.xcodeproj/project.pbxproj:
* platform/WAKViewInternal.h:
(WAKViewForWKViewRef):
* platform/ios/ScrollViewIOS.mm:
* platform/ios/wak/WAKResponder.m:
* platform/ios/wak/WAKView.h:
* platform/ios/wak/WAKView.mm:
* platform/ios/wak/WAKViewPrivate.h: Removed.
(WAKViewForWKViewRef): Deleted.
* platform/ios/wak/WAKWindow.mm:
* platform/ios/wak/WKView.h:
* platform/ios/wak/WKView.mm:

Source/WebKit/mac:

Remove WAKViewPrivate.h imports.

* DefaultDelegates/WebDefaultUIDelegate.m:
* MigrateHeaders.make:
* Misc/WebKitNSStringExtras.mm:
* Misc/WebNSViewExtras.m:
* WebCoreSupport/WebFrameLoaderClient.mm:
* WebView/WebFrame.mm:
* WebView/WebFrameView.mm:
* WebView/WebHTMLView.mm:

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

5 years agoClean up logic for updating caps lock indicator state
dbates@webkit.org [Fri, 29 May 2015 23:59:26 +0000 (23:59 +0000)]
Clean up logic for updating caps lock indicator state
https://bugs.webkit.org/show_bug.cgi?id=145329

Reviewed by Sam Weinig.

Remove logic to explicitly update the state of the caps lock indicator, which was used
when the caps logic indicator was implemented as part of RenderTextControl. Currently,
the caps logic indicator is implemented as part of a shadow DOM and we have existing
logic to forward DOM focus and blur events to it so that it may update its state.

No change in behavior.

* editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged): Deleted.
* editing/FrameSelection.h:
* page/EventHandler.cpp:
(WebCore::EventHandler::keyEvent): Inline the code from EventHandler::capsLockStateMayHaveChanged()
into this function because it is the only caller of EventHandler::capsLockStateMayHaveChanged() after
we removed the call site in FrameSelection::focusedOrActiveStateChanged().
(WebCore::EventHandler::capsLockStateMayHaveChanged): Deleted.
* page/EventHandler.h:

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

5 years agoText disappears shortly after page load on Nexus 7 site.
zalan@apple.com [Fri, 29 May 2015 23:53:24 +0000 (23:53 +0000)]
Text disappears shortly after page load on Nexus 7 site.
https://bugs.webkit.org/show_bug.cgi?id=145467
rdar://problem/18327239

Reviewed by Simon Fraser.

This patch ensures that overlap testing for composited layers works properly when the sibling
layer gets composited through its child.

When a layer gets composited through its child content, the recursive overlap testing should build up the
overlapmap stack so that sibling content is intersected both against the child and its parent bounds.

Source/WebCore:

Tests: compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html
       compositing/sibling-layer-does-not-get-composited-transform-case.html

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::OverlapMap::contains): Deleted.

LayoutTests:

* compositing/sibling-layer-does-not-get-composited-overflow-hidden-case-expected.html: Added.
* compositing/sibling-layer-does-not-get-composited-overflow-hidden-case.html: Added.
* compositing/sibling-layer-does-not-get-composited-transform-case-expected.html: Added.
* compositing/sibling-layer-does-not-get-composited-transform-case.html: Added.

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

5 years agoReview feedback followup for r185003.
beidson@apple.com [Fri, 29 May 2015 23:51:51 +0000 (23:51 +0000)]
Review feedback followup for r185003.
https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Darin Adler.

* platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): `static const` one thing, c++-style cast another.

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

5 years agoWebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
cdumez@apple.com [Fri, 29 May 2015 23:42:24 +0000 (23:42 +0000)]
WebContent crash in WebCore::Page::sessionID() const + 0 (Page.cpp:1660)
https://bugs.webkit.org/show_bug.cgi?id=145422
<rdar://problem/20613631>

Reviewed by Brady Eidson.

We sometimes crash when destroying a PageCache CachedFrame because its
DocumentLoader is still loading. This should never happen as we are not
supposed to let pages are still have pending loads into the PageCache.

However, we were using DocumentLoader::isLoadingInAPISense() as check
in PageCache::canCachePageContainingThisFrame() which is not exactly
what we want. isLoadingInAPISense() no longer considers subresource
loads once the frame as loaded. This means if the JS triggers a new
load in a subframe after it has been loaded, then isLoadingInAPISense()
will return false, despite the pending load.

This patch replaces the isLoadingInAPISense() check with isLoading()
as this will consider all pending loads, even after the frame is
loaded.

In most cases, using isLoadingInAPISense() was not an issue because
we call DocumentLoader::stopLoading() in all subframes before starting
a provisional load. However, nothing seems to prevent JS from
triggering a new load after that and before the new load gets committed
(which is when we save the page into PageCache).

No new test as we don't have a reliable reproduction case and the
issue is timing related.

* history/PageCache.cpp:
(WebCore::logCanCacheFrameDecision):
(WebCore::PageCache::canCachePageContainingThisFrame):
* page/DiagnosticLoggingKeys.cpp:
(WebCore::DiagnosticLoggingKeys::isLoading):
(WebCore::DiagnosticLoggingKeys::loadingAPISenseKey): Deleted.
* page/DiagnosticLoggingKeys.h:

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

5 years agoFix preferences for wireless playback
jonlee@apple.com [Fri, 29 May 2015 23:20:56 +0000 (23:20 +0000)]
Fix preferences for wireless playback
https://bugs.webkit.org/show_bug.cgi?id=145477
rdar://problem/21166767

Reviewed by Anders Carlsson.

* UIProcess/API/C/WKPreferences.cpp: Add missing preference calls in C API.
* UIProcess/API/C/WKPreferencesRef.h:

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

5 years agoWeb Inspector: Activity Viewer does not update on "clear all console messages"
commit-queue@webkit.org [Fri, 29 May 2015 23:07:42 +0000 (23:07 +0000)]
Web Inspector: Activity Viewer does not update on "clear all console messages"
https://bugs.webkit.org/show_bug.cgi?id=144681

Patch by Tobias Reiss <tobi+webkit@basecode.de> on 2015-05-29
Reviewed by Joseph Pecoraro.

Do not apply "ignoreDidClearMessages" hack on "Clear log" Button and Context menu.

* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages):
(WebInspector.LogContentView.prototype._clearLog): Deleted.

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

5 years agorun-benchmark should print out the results
rniwa@webkit.org [Fri, 29 May 2015 23:03:45 +0000 (23:03 +0000)]
run-benchmark should print out the results
https://bugs.webkit.org/show_bug.cgi?id=145398

Reviewed by Antti Koivisto.

Added BenchmarkResults to compute and format the aggregated values. It also does the syntax/semantic check
of the output to catch early errors.

* Scripts/webkitpy/benchmark_runner/benchmark_results.py: Added.
(BenchmarkResults): Added.
(BenchmarkResults.__init__): Added.
(BenchmarkResults.format): Added.
(BenchmarkResults._format_tests): Added. Used by BenchmarkResults.format.
(BenchmarkResults._format_values): Formats a list of values measured for a given metric on a given test.
Uses the sample standard deviation to compute the significant figures for the value.
(BenchmarkResults._unit_from_metric): Added.
(BenchmarkResults._aggregate_results): Added.
(BenchmarkResults._aggregate_results_for_test): Added.
(BenchmarkResults._flatten_list): Added.
(BenchmarkResults._subtest_values_by_config_iteration): Added. Organizes values measured for subtests
by the iteration number so that i-th array contains values for all subtests at i-th iteration.
(BenchmarkResults._aggregate_values): Added.
(BenchmarkResults._lint_results): Added.
(BenchmarkResults._lint_subtest_results): Added.
(BenchmarkResults._lint_aggregator_list): Added.
(BenchmarkResults._lint_configuration): Added.
(BenchmarkResults._lint_values): Added.
(BenchmarkResults._is_numeric): Added.
* Scripts/webkitpy/benchmark_runner/benchmark_results_unittest.py: Added.
(BenchmarkResultsTest):
(BenchmarkResultsTest.test_init):
(BenchmarkResultsTest.test_format):
(test_format_values_with_large_error):
(test_format_values_with_small_error):
(test_format_values_with_time):
(test_format_values_with_no_error):
(test_format_values_with_small_difference):
(test_aggregate_results):
(test_aggregate_results_with_gropus):
(test_aggregate_nested_results):
(test_lint_results):
* Scripts/webkitpy/benchmark_runner/benchmark_runner.py:
(BenchmarkRunner.execute): Added a call to show_results
(BenchmarkRunner.wrap): Only dump the merged JSON when debugging.
(BenchmarkRunner.show_results): Added.

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

5 years ago[iOS] Cursor hidden in text area once it scrolls.
enrica@apple.com [Fri, 29 May 2015 23:02:56 +0000 (23:02 +0000)]
[iOS] Cursor hidden in text area once it scrolls.
https://bugs.webkit.org/show_bug.cgi?id=145451
rdar://problem/20356413

Reviewed by Simon Fraser.

This patch fixes both the touch scrolling inside the
overflow area as well as the programmatic scroll that
occurs when inserting a new line. The first issue is fixed by
implementing the chrome client methods didLayout,
didStartOverflowScroll and didEndOverflowScroll. The second
required changing the implementation of notifyRevealedSelectionByScrollingFrame.
We not only need to notify the client to redraw the selection,
but we also need to recompute the editorState, because scrolling
might have occurred.
I've removed the NotifyRevealedSelection message that was not needed
any longer, since EditorStateChanged will do exactly what we want.

* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::editorStateChanged):
(WebKit::WebPageProxy::notifyRevealedSelection): Deleted.
* WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
(WebKit::WebChromeClient::notifyRevealedSelectionByScrollingFrame):
(WebKit::WebChromeClient::didLayout):
(WebKit::WebChromeClient::didStartOverflowScroll):
(WebKit::WebChromeClient::didEndOverflowScroll):

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

5 years agoConsider throttling DOM timers in iframes outside the viewport
cdumez@apple.com [Fri, 29 May 2015 23:02:36 +0000 (23:02 +0000)]
Consider throttling DOM timers in iframes outside the viewport
https://bugs.webkit.org/show_bug.cgi?id=145465
<rdar://problem/20768957>

Reviewed by Darin Adler.

Source/WebCore:

Throttle DOM timers in iframes that are outside the viewport to decrease
CPU usage, improve performance and reduce power use.

The approach is similar to what we already did for requestAnimationFrame
in r183998.

We already has support for throttling DOM timers at:
- Page level: for backgound pages
- DOM timer level: for timers changing the style of an element outside
  the viewport or drawing on a canvas outside the viewport.

This patch adds support for throttling DOM timers at Document level so
we can throttle all timers inside a specific iframe / Document. It relies
on the same timerAlignmentInterval that is used for throttling at Page
level with tweaks so that different Documents inside the same Page can
have a different timerAlignmentInterval.

Test: fast/dom/timer-throttling-subframe.html

* dom/Document.cpp:
(WebCore::Document::setTimerThrottlingEnabled):
(WebCore::Document::timerAlignmentInterval):
* dom/Document.h:
(WebCore::Document::isTimerThrottlingEnabled):
* page/DOMTimer.cpp:
(WebCore::DOMTimer::alignedFireTime):
The previous code was not throttling the timer if its fireTime was in
the past. This was causing some aggressive timers on mashable.com to
not be throttled so I got rid of this behavior. I don't see any reason
why we would not throttle a timer simply because it is supposed to have
fired already.

* page/FrameView.cpp:
(WebCore::FrameView::viewportContentsChanged):
(WebCore::FrameView::updateScriptedAnimationsAndTimersThrottlingState):
* page/FrameView.h:

* testing/Internals.cpp:
(WebCore::Internals::areTimersThrottled):
* testing/Internals.h:
* testing/Internals.idl:
Add API to facilitate layout testing of this functionality.

LayoutTests:

Add a layout test to check that DOM timers in iframes outside the
viewport get throttled.

* fast/dom/resources/timer-frame-2.html: Added.
* fast/dom/resources/timer-frame.html: Added.
* fast/dom/timer-throttling-subframe-expected.txt: Added.
* fast/dom/timer-throttling-subframe.html: Added.

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

5 years agoWeb Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline
mattbaker@apple.com [Fri, 29 May 2015 23:01:37 +0000 (23:01 +0000)]
Web Inspector: Remove unused expandTreeElementsWhenArrowing property from TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=145470

Reviewed by Joseph Pecoraro.

* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype._treeKeyDown):
Replaced uses of removed property with boolean literal.

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

5 years agoWebResourceLoadDelegatePrivate.h cannot be imported standalone (missing WebNSInteger...
andersca@apple.com [Fri, 29 May 2015 22:33:06 +0000 (22:33 +0000)]
WebResourceLoadDelegatePrivate.h cannot be imported standalone (missing WebNSInteger type)
https://bugs.webkit.org/show_bug.cgi?id=145476
rdar://problem/21162400

Reviewed by Dan Bernstein.

Change WebNSInteger to NSInteger.

* WebView/WebResourceLoadDelegatePrivate.h:

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

5 years agoMissing #import of Platform.h in several WTF headers
andersca@apple.com [Fri, 29 May 2015 22:15:31 +0000 (22:15 +0000)]
Missing #import of Platform.h in several WTF headers
https://bugs.webkit.org/show_bug.cgi?id=145475
rdar://problem/21161818

Reviewed by Darin Adler.

Add Platform.h #includes.

* wtf/Assertions.h:
* wtf/RetainPtr.h:

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

5 years ago[iOS] Update WebContent process sandbox profile for AWD logging
cdumez@apple.com [Fri, 29 May 2015 22:14:10 +0000 (22:14 +0000)]
[iOS] Update WebContent process sandbox profile for AWD logging
https://bugs.webkit.org/show_bug.cgi?id=145473
<rdar://problem/20543269>

Reviewed by Darin Adler.

Update WebContent process sandbox profile for AWD logging.

* Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:

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

5 years agoNavigationAction constructor cleanup.
beidson@apple.com [Fri, 29 May 2015 22:01:21 +0000 (22:01 +0000)]
NavigationAction constructor cleanup.
https://bugs.webkit.org/show_bug.cgi?id=145472

Reviewed by Alex Christensen.

No new tests (Refactor, no change in behavior).

* loader/NavigationAction.cpp:
(WebCore::NavigationAction::NavigationAction): Delegate many of the various constructors
  to a single full-featured constructor.
* loader/NavigationAction.h:

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

5 years agoRename MediaSession and MediaSessionClient to PlatformMediaSession and PlatformMediaS...
commit-queue@webkit.org [Fri, 29 May 2015 21:53:30 +0000 (21:53 +0000)]
Rename MediaSession and MediaSessionClient to PlatformMediaSession and PlatformMediaSessionClient so we can use MediaSession for the formal implementation of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145447

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

* Modules/webaudio/AudioContext.cpp:
(WebCore::AudioContext::AudioContext):
(WebCore::AudioContext::suspendPlayback):
* Modules/webaudio/AudioContext.h:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLAudioElement.h:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::pausedForUserInteraction):
(WebCore::HTMLMediaElement::mediaType):
(WebCore::HTMLMediaElement::presentationType):
(WebCore::HTMLMediaElement::displayType):
(WebCore::HTMLMediaElement::didReceiveRemoteControlCommand):
* html/HTMLMediaElement.h:
* html/HTMLMediaSession.cpp:
(WebCore::HTMLMediaSession::HTMLMediaSession):
(WebCore::HTMLMediaSession::requiresFullscreenForVideoPlayback):
* html/HTMLMediaSession.h:
* html/HTMLVideoElement.h:
* platform/RemoteCommandListener.h:
* platform/audio/MediaSessionManager.cpp:
(WebCore::MediaSessionManager::resetRestrictions):
(WebCore::MediaSessionManager::has):
(WebCore::MediaSessionManager::activeAudioSessionRequired):
(WebCore::MediaSessionManager::count):
(WebCore::MediaSessionManager::beginInterruption):
(WebCore::MediaSessionManager::endInterruption):
(WebCore::MediaSessionManager::addSession):
(WebCore::MediaSessionManager::removeSession):
(WebCore::MediaSessionManager::addRestriction):
(WebCore::MediaSessionManager::removeRestriction):
(WebCore::MediaSessionManager::restrictions):
(WebCore::MediaSessionManager::sessionWillBeginPlayback):
(WebCore::MediaSessionManager::sessionWillEndPlayback):
(WebCore::MediaSessionManager::setCurrentSession):
(WebCore::MediaSessionManager::currentSession):
(WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
(WebCore::MediaSessionManager::sessionCanLoadMedia):
(WebCore::MediaSessionManager::applicationWillEnterBackground):
(WebCore::MediaSessionManager::applicationWillEnterForeground):
(WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::MediaSessionManager::systemWillSleep):
(WebCore::MediaSessionManager::systemDidWake):
* platform/audio/MediaSessionManager.h:
(WebCore::MediaSessionManager::sessions):
* platform/audio/PlatformMediaSession.cpp: Renamed from Source/WebCore/platform/audio/MediaSession.cpp.
(WebCore::stateName):
(WebCore::PlatformMediaSession::create):
(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::setState):
(WebCore::PlatformMediaSession::beginInterruption):
(WebCore::PlatformMediaSession::endInterruption):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::pauseSession):
(WebCore::PlatformMediaSession::mediaType):
(WebCore::PlatformMediaSession::presentationType):
(WebCore::PlatformMediaSession::title):
(WebCore::PlatformMediaSession::duration):
(WebCore::PlatformMediaSession::currentTime):
(WebCore::PlatformMediaSession::canReceiveRemoteControlCommands):
(WebCore::PlatformMediaSession::didReceiveRemoteControlCommand):
(WebCore::PlatformMediaSession::visibilityChanged):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::updateClientDataBuffering):
(WebCore::PlatformMediaSession::isHidden):
(WebCore::PlatformMediaSession::displayType):
(WebCore::PlatformMediaSessionClient::mediaSessionTitle):
(WebCore::PlatformMediaSessionClient::mediaSessionDuration):
(WebCore::PlatformMediaSessionClient::mediaSessionCurrentTime):
* platform/audio/PlatformMediaSession.h: Renamed from Source/WebCore/platform/audio/MediaSession.h.
(WebCore::PlatformMediaSession::state):
(WebCore::PlatformMediaSession::canPlayToWirelessPlaybackTarget):
(WebCore::PlatformMediaSession::isPlayingToWirelessPlaybackTarget):
(WebCore::PlatformMediaSession::requiresPlaybackTargetRouteMonitoring):
(WebCore::PlatformMediaSession::client):
(WebCore::PlatformMediaSessionClient::PlatformMediaSessionClient):
(WebCore::PlatformMediaSessionClient::displayType):
(WebCore::PlatformMediaSessionClient::setShouldBufferData):
(WebCore::PlatformMediaSessionClient::elementIsHidden):
(WebCore::PlatformMediaSessionClient::wirelessRoutesAvailableDidChange):
(WebCore::PlatformMediaSessionClient::setWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::canPlayToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::isPlayingToWirelessPlaybackTarget):
(WebCore::PlatformMediaSessionClient::setShouldPlayToPlaybackTarget):
(WebCore::PlatformMediaSessionClient::~PlatformMediaSessionClient):
* platform/audio/ios/MediaSessionManagerIOS.h:
* platform/audio/ios/MediaSessionManagerIOS.mm:
(WebCore::MediaSessionManageriOS::resetRestrictions):
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback):
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback):
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo):
(WebCore::MediaSessionManageriOS::sessionCanLoadMedia):
(-[WebMediaSessionHelper interruption:]):
* platform/audio/mac/MediaSessionManagerMac.cpp:
(MediaSessionManager::updateSessionState):
* platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::handlePlaybackCommand):
* platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand):
* platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::rateChanged):
* platform/ios/RemoteCommandListenerIOS.mm:
(WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
* testing/Internals.cpp:
(WebCore::Internals::beginMediaSessionInterruption):
(WebCore::Internals::endMediaSessionInterruption):
(WebCore::Internals::setMediaSessionRestrictions):
(WebCore::Internals::postRemoteControlCommand):

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

5 years agoWebKit.framework installs or references Mac-only headers on iOS
andersca@apple.com [Fri, 29 May 2015 21:46:32 +0000 (21:46 +0000)]
WebKit.framework installs or references Mac-only headers on iOS
https://bugs.webkit.org/show_bug.cgi?id=145471
rdar://problem/21161459

Reviewed by Dan Bernstein.

Source/WebKit/mac:

* History/WebURLsWithTitles.h:
Add an #if !TARGET_OS_IPHONE guard around the entire header.

* MigrateHeaders.make:
Don't migrate the NPAPI headers on iOS.

Source/WebKit2:

* UIProcess/API/C/mac/WKInspectorPrivateMac.h:
Add an #if !TARGET_OS_IPHONE guard around the entire header.

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

5 years ago[Content Extensions] Decrease maxNFASize
achristensen@apple.com [Fri, 29 May 2015 21:20:48 +0000 (21:20 +0000)]
[Content Extensions] Decrease maxNFASize
https://bugs.webkit.org/show_bug.cgi?id=145461

Reviewed by Gavin Barraclough.

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
Decrease maxNFASize based on analysis of memory usage and compiling and interpreting time.

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

5 years agoWebSQL default functions can bypass authorizer.
beidson@apple.com [Fri, 29 May 2015 20:59:20 +0000 (20:59 +0000)]
WebSQL default functions can bypass authorizer.
<rdar://problem/21048994> and https://bugs.webkit.org/show_bug.cgi?id=145463

Reviewed by Sam Weinig and Alexey Proskuryakov.

No new tests yet.

* platform/sql/SQLiteDatabase.cpp:
(WebCore::unauthorizedSQLFunction): Function to install into SQLite to override some built-in functions.
(WebCore::SQLiteDatabase::open):
(WebCore::SQLiteDatabase::overrideUnauthorizedFunctions): Install function overrides for functions that
   take arbitrary input that are also meant to be disabled by virtue of them not being whitelisted.
* platform/sql/SQLiteDatabase.h:

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

5 years agoNon-speculative Branch should be fast in the FTL
fpizlo@apple.com [Fri, 29 May 2015 20:26:37 +0000 (20:26 +0000)]
Non-speculative Branch should be fast in the FTL
https://bugs.webkit.org/show_bug.cgi?id=145452

Reviewed by Andreas Kling.
Source/JavaScriptCore:

Inlines the code for convertJSValueToBoolean into the FTL. This also includes some other
clean-ups that I found along the way.

I found this by looking at the hottest functions in DeltaBlue. Despite having so many
Branch specializations, apparently there was still a hot one that we missed that was going
down the untyped path. It was either Int32 or Other. Maybe we could specialize for that
combo, but it makes so much sense to just make all of this nonsense fast.

* dfg/DFGWatchpointCollectionPhase.cpp:
(JSC::DFG::WatchpointCollectionPhase::handle): Need to watch the masquerades watchpoint on UntypedUse: forms of Branch now.
* ftl/FTLLowerDFGToLLVM.cpp:
(JSC::FTL::LowerDFGToLLVM::boolify): The actual fix.
(JSC::FTL::LowerDFGToLLVM::int52ToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::isInt32):
(JSC::FTL::LowerDFGToLLVM::isNotInt32):
(JSC::FTL::LowerDFGToLLVM::unboxInt32):
* runtime/JSCellInlines.h:
(JSC::JSCell::toBoolean): Symbol is always true.
(JSC::JSCell::pureToBoolean): Symbol is always true.
* runtime/JSString.cpp:
(JSC::JSString::getPrimitiveNumber):
(JSC::JSString::toNumber):
(JSC::JSString::toBoolean): Deleted. This is a tiny method. It doesn't need to be out-of-line.
* runtime/JSString.h:
(JSC::JSString::length):
(JSC::JSString::toBoolean): This method shouldbe inline.
* runtime/Symbol.cpp:
(JSC::Symbol::toPrimitive):
(JSC::Symbol::getPrimitiveNumber):
(JSC::Symbol::toBoolean): Deleted. A Symbol is always true, so we don't need a method for this.
* runtime/Symbol.h:

LayoutTests:

* js/regress/logical-not-weird-types-expected.txt: Added.
* js/regress/logical-not-weird-types.html: Added.
* js/regress/script-tests/logical-not-weird-types.js: Added.
(foo):

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

5 years agoWKScriptMessageInternal.h should be a project header, not a private header
andersca@apple.com [Fri, 29 May 2015 19:56:39 +0000 (19:56 +0000)]
WKScriptMessageInternal.h should be a project header, not a private header
https://bugs.webkit.org/show_bug.cgi?id=145464
rdar://problem/21161639

Reviewed by Dan Bernstein.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years agoLand some .html/-expected.txt files for some tests that were added without them.
fpizlo@apple.com [Fri, 29 May 2015 19:27:53 +0000 (19:27 +0000)]
Land some .html/-expected.txt files for some tests that were added without them.

Rubber stamped by Andreas Kling.

* js/regress/cse-new-array-buffer-expected.txt: Added.
* js/regress/cse-new-array-buffer.html: Added.
* js/regress/cse-new-array-expected.txt: Added.
* js/regress/cse-new-array.html: Added.

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

5 years agoWeb Inspector: Tabs should have Context Menus
joepeck@webkit.org [Fri, 29 May 2015 18:45:48 +0000 (18:45 +0000)]
Web Inspector: Tabs should have Context Menus
https://bugs.webkit.org/show_bug.cgi?id=144208

Reviewed by Timothy Hatcher.

Give non-pinned tabs "Close Tab" and "Close Other Tabs" context
menu items to affect other non-pinned tabs.

* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeTab):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent.closeOtherTabs):
(WebInspector.TabBarItem.prototype._handleContextMenuEvent):

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

5 years agoUnreviewed. Shift fullscreen controls down 20px.
roger_fong@apple.com [Fri, 29 May 2015 18:14:25 +0000 (18:14 +0000)]
Unreviewed. Shift fullscreen controls down 20px.
<rdar://problem/21161523>

* Modules/mediacontrols/mediaControlsApple.css:
(video:-webkit-full-screen::-webkit-media-controls-panel):
Fullscreen control panel is too high and overlaps with caption menu.
Shift it down 20px.

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

5 years agoWeb Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No...
mattbaker@apple.com [Fri, 29 May 2015 18:05:51 +0000 (18:05 +0000)]
Web Inspector: Restoring the last selected DOM node fails on reload (DOMAgent: No node with given path found)
https://bugs.webkit.org/show_bug.cgi?id=144231

Reviewed by Timothy Hatcher.

Removed _restoreSelectedNodeIsAllowed flag from DOMTreeContentView. The frontend receives two documentUpdated
events from the DOM Agent during page reload, and the flag was preventing DOMTreeContentView from restoring
the previous selection in response to the second event.

* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype.selectLastSelectedNode):
(WebInspector.DOMTreeContentView.prototype._restoreSelectedNodeAfterUpdate):

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

5 years agoSome assertion failures in compositing code after r183820
simon.fraser@apple.com [Fri, 29 May 2015 17:51:51 +0000 (17:51 +0000)]
Some assertion failures in compositing code after r183820
https://bugs.webkit.org/show_bug.cgi?id=144630

Reviewed by Alexey Proskuryakov.

Reinstate the assertion commented out in r183843. Fixed by having blending no longer
escape the media elements, which was fixed via bug 145420.

* rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

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

5 years agoClean up VisitedLinkProvider teardown
ap@apple.com [Fri, 29 May 2015 17:45:06 +0000 (17:45 +0000)]
Clean up VisitedLinkProvider teardown
https://bugs.webkit.org/show_bug.cgi?id=145450
rdar://problem/20244726

Reviewed by Brady Eidson.

* UIProcess/VisitedLinkProvider.cpp:
(WebKit::VisitedLinkProvider::~VisitedLinkProvider):

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

5 years agoUse modern for-loops in WebCore/plugins, storage, style, testing and workers.
commit-queue@webkit.org [Fri, 29 May 2015 17:01:12 +0000 (17:01 +0000)]
Use modern for-loops in WebCore/plugins, storage, style, testing and workers.
https://bugs.webkit.org/show_bug.cgi?id=145425

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

No new tests, no behavior changes.

* plugins/DOMMimeTypeArray.cpp:
(WebCore::DOMMimeTypeArray::canGetItemsForName):
* plugins/DOMPlugin.cpp:
(WebCore::DOMPlugin::canGetItemsForName):
* plugins/DOMPluginArray.cpp:
(WebCore::DOMPluginArray::canGetItemsForName):
* plugins/PluginData.cpp:
(WebCore::PluginData::getWebVisibleMimesAndPluginIndices):
* plugins/PluginMainThreadScheduler.cpp:
(WebCore::PluginMainThreadScheduler::dispatchCallsForPlugin):
(WebCore::PluginMainThreadScheduler::dispatchCalls):
* storage/StorageEventDispatcher.cpp:
(WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
(WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
(WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
* storage/StorageMap.cpp:
(WebCore::StorageMap::importItems):
* style/StyleResolveTree.cpp:
(WebCore::Style::pseudoStyleCacheIsInvalid):
* testing/Internals.cpp:
(WebCore::Internals::nodesFromRect):
* workers/Worker.cpp:
(WebCore::networkStateChanged):
* workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::importScripts):

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

5 years agoUnreviewed build fix when using content extensions debugging.
achristensen@apple.com [Fri, 29 May 2015 16:58:51 +0000 (16:58 +0000)]
Unreviewed build fix when using content extensions debugging.

* contentextensions/ContentExtensionCompiler.cpp:
(WebCore::ContentExtensions::compileRuleList):
Update variable name.

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

5 years agoTypo followup to r184987
beidson@apple.com [Fri, 29 May 2015 16:38:13 +0000 (16:38 +0000)]
Typo followup to r184987

Unreviewed.

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURLIntoChildFrame): Misplaced brace.

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

5 years agoSmall FrameLoader refactoring.
beidson@apple.com [Fri, 29 May 2015 16:31:49 +0000 (16:31 +0000)]
Small FrameLoader refactoring.
https://bugs.webkit.org/show_bug.cgi?id=145459

Reviewed by Alex Christensen.

No new tests (No behavior change).

* loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadFrameRequest):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadPostRequest):
* loader/FrameLoader.h:

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

5 years agoUnreviewed Win and GTK gardening.
zalan@apple.com [Fri, 29 May 2015 15:21:39 +0000 (15:21 +0000)]
Unreviewed Win and GTK gardening.

Skip Mac font specific test.

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

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

5 years agoUnreviewed, rolling out r184949.
commit-queue@webkit.org [Fri, 29 May 2015 15:20:21 +0000 (15:20 +0000)]
Unreviewed, rolling out r184949.
https://bugs.webkit.org/show_bug.cgi?id=145458

Ends up generating worse code for HashTable move constructors
(Requested by zdobersek on #webkit).

Reverted changeset:

"Clean up HashTable constructors"
https://bugs.webkit.org/show_bug.cgi?id=145369
http://trac.webkit.org/changeset/184949

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

5 years agoMediaDevices.getUserMedia should reject promise instead of throwing exceptions
youenn.fablet@crf.canon.fr [Fri, 29 May 2015 08:10:00 +0000 (08:10 +0000)]
MediaDevices.getUserMedia should reject promise instead of throwing exceptions
https://bugs.webkit.org/show_bug.cgi?id=145282

Reviewed by Darin Adler.

Source/WebCore:

Ensuring at the custom binding level that all potential errors are used to reject promise.
Cleaned up the wrappers by removing unneeded RefPtr.

Covered by modified test.

* Modules/mediastream/MediaDevices.cpp:
(WebCore::MediaDevices::getUserMedia):
* Modules/mediastream/MediaDevices.h:
* Modules/mediastream/UserMediaRequest.cpp:
(WebCore::UserMediaRequest::create):
* bindings/js/JSMediaDevicesCustom.cpp:
(WebCore::JSMediaDevices::getUserMedia):

LayoutTests:

Updating test to expect rejection and not error throwing.

* fast/mediastream/MediaDevices-getUserMedia-expected.txt:
* fast/mediastream/MediaDevices-getUserMedia.html:

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

5 years agoUnreviewed, rolling out r184860.
commit-queue@webkit.org [Fri, 29 May 2015 07:51:17 +0000 (07:51 +0000)]
Unreviewed, rolling out r184860.
https://bugs.webkit.org/show_bug.cgi?id=145456

May have caused ~1% Octane regression (Requested by kling on
#webkit).

Reverted changeset:

"Try to use StringView when comparing JSStrings for equality."
https://bugs.webkit.org/show_bug.cgi?id=145379
http://trac.webkit.org/changeset/184860

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

5 years agoChange method of signaling "should open external urls" to WebKit.
beidson@apple.com [Fri, 29 May 2015 06:38:22 +0000 (06:38 +0000)]
Change method of signaling "should open external urls" to WebKit.
https://bugs.webkit.org/show_bug.cgi?id=145454

Reviewed by Dan Bernstein.

Making this a property on the request was never a good idea.

Adding a new extensible load SPI seems much better.

* Shared/API/Cocoa/_WKNSURLRequestExtras.h: Removed.
* Shared/API/Cocoa/_WKNSURLRequestExtras.mm: Removed.

* UIProcess/API/Cocoa/WKBrowsingContextController.mm:
(-[WKBrowsingContextController loadRequest:userData:]): Since this API is deprecated,
  it always gets the default restrictive behavior.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView loadRequest:]):
(-[WKWebView loadRequest:withOptions:]): Take an options dictionary that, for now,
  only supports one option.
* UIProcess/API/Cocoa/WKWebViewPrivate.h:

* WebKit2.xcodeproj/project.pbxproj:

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

5 years ago[EFL] Unreviewed gardening on 29th May
gyuyoung.kim@webkit.org [Fri, 29 May 2015 06:17:10 +0000 (06:17 +0000)]
[EFL] Unreviewed gardening on 29th May

Unskip passing tests for viewport-percentage, text, sub-pixel
and update new failing accessibility, fast/overflow and so on.

* platform/efl/TestExpectations:

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

5 years agoUpdate results of WebKit1.StringTruncator after r184965. I missed one letter.
ap@apple.com [Fri, 29 May 2015 04:56:13 +0000 (04:56 +0000)]
Update results of WebKit1.StringTruncator after r184965. I missed one letter.

* TestWebKitAPI/Tests/mac/StringTruncator.mm: (TestWebKitAPI::TEST):

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

5 years agoReplaced 0 with nullptr in WebCore/accessibility.
commit-queue@webkit.org [Fri, 29 May 2015 04:53:35 +0000 (04:53 +0000)]
Replaced 0 with nullptr in WebCore/accessibility.
https://bugs.webkit.org/show_bug.cgi?id=145309

Patch by Hunseop Jeong <hs85.jeong@samsung.com> on 2015-05-28
Reviewed by Chris Fleizach.

No new tests, no behavior change.

* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::mathPrescripts):
(WebCore::AccessibilityRenderObject::mathPostscripts):
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::scrollBar):
* accessibility/atk/AXObjectCacheAtk.cpp:
(WebCore::notifyChildrenSelectionChange):
* accessibility/atk/WebKitAccessibleHyperlink.cpp:
(webkitAccessibleHyperlinkInit):
* accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
(webkitAccessibleDocumentGetAttributes):
* accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
(attributeSetDifference):
* accessibility/atk/WebKitAccessibleUtil.h:
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleRefChild):
(webkitAccessibleGetAttributes):
(webkitAccessibleGetObjectLocale):
(getInterfaceMaskFromObject):
(objectFocusedAndCaretOffsetUnignored):
(cacheAndReturnAtkProperty):

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

5 years agoWeb Inspector: Update toolbar styles
nvasilyev@apple.com [Fri, 29 May 2015 04:50:59 +0000 (04:50 +0000)]
Web Inspector: Update toolbar styles
https://bugs.webkit.org/show_bug.cgi?id=145419

Also, use hairline borders (1 phisical pixel) on retina (DPI >= 2).

Reviewed by Timothy Hatcher.

* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button): Deleted.
(.toolbar.icon-and-label-vertical .item.button): Deleted.
(.toolbar.icon-and-label-horizontal .item.button): Deleted.
(.toolbar .item.button > .glyph): Deleted.
(.toolbar.small-size .item.button > .glyph): Deleted.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container): Deleted.
(.toolbar.collapsed .dashboard-container): Deleted.
(.toolbar.small-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
(.toolbar .dashboard.slide-out-down): Deleted.
(.toolbar .dashboard.slide-in-up): Deleted.
* UserInterface/Views/Toolbar.css:
(.toolbar .search-bar > input[type="search"]):
(.toolbar .search-bar > input[type="search"]::-webkit-textfield-decoration-container):
(body:not(.unknown-mac) .toolbar .dashboard-container):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):
(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]:focus):
(body:not(.unknown-mac) .toolbar .item.button:active):
(body.window-inactive:not(.unknown-mac) .toolbar .dashboard-container):
(body.unknown-mac .toolbar .dashboard-container):
(body.unknown-mac .toolbar .search-bar > input[type="search"]):
(body.unknown-mac .toolbar .search-bar > input[type="search"]:focus):
(@media (-webkit-min-device-pixel-ratio: 2)):
(body.unknown-mac .toolbar .item.button:active):
(body.unknown-mac.window-inactive .toolbar .dashboard-container):

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

5 years agoWeb Inspector: Jump from a computed style to the rule it came from
commit-queue@webkit.org [Fri, 29 May 2015 04:47:39 +0000 (04:47 +0000)]
Web Inspector: Jump from a computed style to the rule it came from
https://bugs.webkit.org/show_bug.cgi?id=120640

Patch by Devin Rousso <drousso@apple.com> on 2015-05-28
Reviewed by Timothy Hatcher.

* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
If the delegate of CSSStyleDeclarationTextEditor has cssStyleDeclarationTextEditorShouldAddPropertyGoToArrows set to true, add a goToArrow to all CSS property entries.
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.propertiesMatch):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty.hasMatchingLonghandProperty):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.highlightProperty):
Determines if a given CSS property is in the CSS style section and if so, select that CSS property, focus on the section containing that CSS property, and return true.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.highlightProperty):
Searches through the properties of the section for a given property and scrolls to it if found.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
Switches to the rulesStyleDetailsPanel and scrolls to and hightlights a given property in that panel.
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._navigationItemSelected):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._switchPanels):
Moved this function out of _navigationItemSelected for better reusablity.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
Function that calls the delegate (which should be CSSStyleDetailsSidebarPanel) function computedStyleDetailsPanelShowProperty.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh):
(WebInspector.RulesStyleDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
Searches through all the sections of the RulesStyleDetailsPanel for a given CSS property.
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
(WebInspector.RulesStyleDetailsPanel.prototype.hidden):
(WebInspector.RulesStyleDetailsPanel.prototype.nodeStylesRefreshed):
Added a flag to this function that will highlight and scroll to a given property (_propertyToSelectAndHighlight) if set on load.
* UserInterface/Views/StyleDetailsPanel.js:
(WebInspector.StyleDetailsPanel.prototype.markAsNeedsRefresh):
(WebInspector.StyleDetailsPanel.prototype.nodeStylesRefreshed):
Made into protected function to allow it to be overridden.
(WebInspector.StyleDetailsPanel.prototype._nodeStylesRefreshed): Deleted.

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

5 years agoCrash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test...
mmaxfield@apple.com [Fri, 29 May 2015 04:30:09 +0000 (04:30 +0000)]
Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html
https://bugs.webkit.org/show_bug.cgi?id=145429

Unreviewed test gardening.

* TestWebKitAPI/Tests/mac/StringTruncator.mm:
(TestWebKitAPI::TEST): Update test due to the progression.

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

5 years agoUpdate results of WebKit1.StringTruncator after r184965.
ap@apple.com [Fri, 29 May 2015 04:03:13 +0000 (04:03 +0000)]
Update results of WebKit1.StringTruncator after r184965.

* TestWebKitAPI/Tests/mac/StringTruncator.mm: (TestWebKitAPI::TEST):

* TestWebKitAPI/Tests/mac/StringTruncator.mm:
(TestWebKitAPI::TEST):

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

5 years agoWeb Inspector: Should have a keyboard shortcut to switch between inspector tabs
commit-queue@webkit.org [Fri, 29 May 2015 02:06:10 +0000 (02:06 +0000)]
Web Inspector: Should have a keyboard shortcut to switch between inspector tabs
https://bugs.webkit.org/show_bug.cgi?id=144207

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

These keyboard shortcuts work well in an undocked inspector window.
Be careful that some keyboard shortcuts, when used inside a text
editor / text field are just text actions. However, some keyboard
shortcuts will work no matter where you trigger them.

* UserInterface/Models/KeyboardShortcut.js:
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._showPreviousTab):
(WebInspector.TabBrowser.prototype._showNextTab):

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

5 years agoUnreviewed, updated my list of email addresses.
gyuyoung.kim@webkit.org [Fri, 29 May 2015 01:56:28 +0000 (01:56 +0000)]
Unreviewed, updated my list of email addresses.

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

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

5 years agoPurge PassRefPtr in StringConcatenate.h
gyuyoung.kim@webkit.org [Fri, 29 May 2015 01:08:06 +0000 (01:08 +0000)]
Purge PassRefPtr in StringConcatenate.h
https://bugs.webkit.org/show_bug.cgi?id=145376

Reviewed by Darin Adler.

Replace PassRefPtr with RefPtr. Additionally use nullptr instead of 0.

* wtf/text/StringConcatenate.h:
(WTF::tryMakeString):
(WTF::makeString):

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

5 years agoWeb Inspector: NewTabContentView should update button disabled state as other tabs...
commit-queue@webkit.org [Fri, 29 May 2015 00:20:40 +0000 (00:20 +0000)]
Web Inspector: NewTabContentView should update button disabled state as other tabs are added/removed
https://bugs.webkit.org/show_bug.cgi?id=145448

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

* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView):
Always add a click listener and add the type as a private property on the element.

(WebInspector.NewTabContentView.prototype.shown):
(WebInspector.NewTabContentView.prototype.hidden):
Add / remove event listeners for tab changes. Also update the view when shown.

(WebInspector.NewTabContentView.prototype._createNewTab):
A disabled button an now be clicked. Do nothing if a new tab of this type is not allowed.

(WebInspector.NewTabContentView.prototype._updateTabItems):
Refresh the disabled state for each of the buttons.

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

5 years agoSubpixel rendering: Pixel crack in text selection of simple text in <textarea>.
zalan@apple.com [Fri, 29 May 2015 00:15:24 +0000 (00:15 +0000)]
Subpixel rendering: Pixel crack in text selection of simple text in <textarea>.
https://bugs.webkit.org/show_bug.cgi?id=145393
rdar://problem/19918941

Reviewed by Darin Adler.

Float to LayoutUnit conversion is lossy. To ensure that selection
painting always lines up (snaps) properly, the calculated width needs to
be adjusted by ceiling the float to the next LayoutUnit value.

Source/WebCore:

Test: fast/text/hidpi-text-selection-gap-between-words.html

* platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::adjustSelectionRectForSimpleText):
* platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::adjustSelectionRectForComplexText):

LayoutTests:

* fast/text/hidpi-text-selection-gap-between-words-expected.html: Added.
* fast/text/hidpi-text-selection-gap-between-words.html: Added.
* platform/mac/platform/mac/editing/input/caret-primary-bidi-expected.txt:

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

5 years agomozilla/js1_5/Array/regress-154338.js test causes ARM 32 bit iOS devices to run out...
msaboff@apple.com [Thu, 28 May 2015 23:51:57 +0000 (23:51 +0000)]
mozilla/js1_5/Array/regress-154338.js test causes ARM 32 bit iOS devices to run out of memory
https://bugs.webkit.org/show_bug.cgi?id=145444

Reviewed by Geoffrey Garen.

Disabled mozilla/js1_5/Array/regress-154338.js when run on iOS ARM 32 bit devices and
the --memory-limited option is passed to run-jsc-stress-tests.

* tests/mozilla/mozilla-tests.yaml:

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

5 years agoGraphicsLayerCA should start out with m_intersectsCoverageRect=false
akling@apple.com [Thu, 28 May 2015 23:48:29 +0000 (23:48 +0000)]
GraphicsLayerCA should start out with m_intersectsCoverageRect=false
<https://webkit.org/b/145443>
<rdar://problem/19685798>

Reviewed by Simon Fraser.

Source/WebCore:

Since the coverage rect of a newly-constructed GraphicsLayerCA is always empty,
there's no way that the layer's own bounding box can intersect with it.
Hence the m_intersectsCoverageRect flag should be false after construction.

This fixes an issue where compositing layers in subframes would be marked as
non-volatile, despite being far outside the viewport and coverage rect.

Test: compositing/visible-rect/iframe-with-layers-outside-viewport.html

* platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::GraphicsLayerCA):

LayoutTests:

Add a test (based on iframe-and-layers.html) that makes an iframe with compositing
layers inside it and places it far outside the visible viewport.

The layer dump should show that the "intersects coverage rect" flag is 0 for the
iframe and its sublayers.

* compositing/visible-rect/iframe-with-layers-outside-viewport-expected.txt: Added.
* compositing/visible-rect/iframe-with-layers-outside-viewport.html: Added.

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

5 years agoUnreviewed, rolling out r184796 and r184832.
commit-queue@webkit.org [Thu, 28 May 2015 23:20:51 +0000 (23:20 +0000)]
Unreviewed, rolling out r184796 and r184832.
https://bugs.webkit.org/show_bug.cgi?id=145449

2% performance regression (Requested by litherum on #webkit).

Reverted changesets:

"[Cocoa] Use CTFontDrawGlyphs() instead of
CGContextShowGlyphsWithAdvances()/CGContextShowGlyphsAtPositions()"
https://bugs.webkit.org/show_bug.cgi?id=145234
http://trac.webkit.org/changeset/184796

"Cleanup after r184796"
https://bugs.webkit.org/show_bug.cgi?id=145333
http://trac.webkit.org/changeset/184832

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

5 years agoRename HTMLMediaSession to MediaElementSession to reserve "media session" for the...
commit-queue@webkit.org [Thu, 28 May 2015 23:03:34 +0000 (23:03 +0000)]
Rename HTMLMediaSession to MediaElementSession to reserve "media session" for the Media Session API.
https://bugs.webkit.org/show_bug.cgi?id=145440

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

* CMakeLists.txt:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::HTMLMediaElement):
(WebCore::HTMLMediaElement::loadInternal):
(WebCore::HTMLMediaElement::loadResource):
(WebCore::HTMLMediaElement::suspend):
(WebCore::HTMLMediaElement::resume):
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture):
(WebCore::HTMLMediaElement::mediaState):
* html/HTMLMediaElement.h:
(WebCore::HTMLMediaElement::mediaSession):
* html/MediaElementSession.cpp: Renamed from Source/WebCore/html/HTMLMediaSession.cpp.
(WebCore::restrictionName):
(WebCore::MediaElementSession::MediaElementSession):
(WebCore::MediaElementSession::registerWithDocument):
(WebCore::MediaElementSession::unregisterWithDocument):
(WebCore::MediaElementSession::addBehaviorRestriction):
(WebCore::MediaElementSession::removeBehaviorRestriction):
(WebCore::MediaElementSession::playbackPermitted):
(WebCore::MediaElementSession::dataLoadingPermitted):
(WebCore::MediaElementSession::fullscreenPermitted):
(WebCore::MediaElementSession::pageAllowsDataLoading):
(WebCore::MediaElementSession::pageAllowsPlaybackAfterResuming):
(WebCore::MediaElementSession::showPlaybackTargetPicker):
(WebCore::MediaElementSession::hasWirelessPlaybackTargets):
(WebCore::MediaElementSession::wirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setWirelessVideoPlaybackDisabled):
(WebCore::MediaElementSession::setHasPlaybackTargetAvailabilityListeners):
(WebCore::MediaElementSession::setPlaybackTarget):
(WebCore::MediaElementSession::targetAvailabilityChangedTimerFired):
(WebCore::MediaElementSession::externalOutputDeviceAvailableDidChange):
(WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget):
(WebCore::MediaElementSession::isPlayingToWirelessPlaybackTarget):
(WebCore::MediaElementSession::setShouldPlayToPlaybackTarget):
(WebCore::MediaElementSession::mediaStateDidChange):
(WebCore::MediaElementSession::effectivePreloadForElement):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):
(WebCore::MediaElementSession::mediaEngineUpdated):
(WebCore::MediaElementSession::allowsAlternateFullscreen):
(WebCore::MediaElementSession::maximumMediaSourceBufferSize):
* html/MediaElementSession.h: Renamed from Source/WebCore/html/HTMLMediaSession.h.
* testing/Internals.cpp:
(WebCore::Internals::setMediaElementRestrictions):
(WebCore::Internals::setAudioContextRestrictions):

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

5 years agoCrash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test...
mmaxfield@apple.com [Thu, 28 May 2015 22:41:19 +0000 (22:41 +0000)]
Crash under ICU with ASAN during editing/selection/move-by-word-visually-crash-test-5.html
https://bugs.webkit.org/show_bug.cgi?id=145429
<rdar://problem/20992218>

Reviewed by Alexey Proskuryakov.

WebKit uses some strings which contain the lower 8-bits of UTF-16 (thereby saving space). However,
ICU doesn't understand this encoding. When we want to use ICU functions with strings in this encoding,
we create a UTextProvider which converts our encoded strings to UTF-16 for ICU, one chunk at a time.
This object contains a vtable which we populate to perform the conversion.

The WebKit function which actually returns the UTF-16 chunks has two relevant arguments: an index into
the encoded string which ICU is requesting, and a direction from that index which ICU is interested
in. This function populates a "chunk" which is characterized by a pointer to a buffer, the length of
the populated data in the buffer, and an offset into the chunk which represents the index that the
requested character was put into.

When ICU requests data going backward, we fill in the chunk accordingly, with the requested character
all the way at the end. We then set the offset equal to the length of the buffer. However, this length
value is stale from the previous time the function ran. Therefore, ICU was reading the wrong index in
the chunk when expecting the requested character.

Covered by editing/selection/move-by-word-visually-crash-test-5.html.

* platform/text/icu/UTextProviderLatin1.cpp:
(WebCore::uTextLatin1Access):

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

5 years agoMake sure that we create the private WebKit.framework symlinks last
andersca@apple.com [Thu, 28 May 2015 22:40:02 +0000 (22:40 +0000)]
Make sure that we create the private WebKit.framework symlinks last
https://bugs.webkit.org/show_bug.cgi?id=145442
<rdar://problem/21142213>

Reviewed by Dan Bernstein.

Move the "Add Symlinks in /System/Library/PrivateFrameworks/WebKit.framework" build phase to
the "All" aggregate target. Also update the script now that INSTALL_PATH is different.

* WebKit2.xcodeproj/project.pbxproj:

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

5 years ago[iOS] Fix controls bug caused by r184794
eric.carlson@apple.com [Thu, 28 May 2015 22:31:17 +0000 (22:31 +0000)]
[iOS] Fix controls bug caused by r184794
https://bugs.webkit.org/show_bug.cgi?id=145445

Reviewed by Dean Jackson.

* Modules/mediacontrols/mediaControlsiOS.js:
(ControllerIOS.prototype.showControls): Check video.controls instead of trying to call
showInlinePlaybackPlaceholderOnly, which doesn't exist.

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