Timeline


and

07/29/15: Today

19:00 Changeset [187571] by gyuyoung.kim@webkit.org
  • 2 edits in trunk/Source/WebCore

[EFL][CoordinatedGraphics] fixed position banner is moved when enabling delegateScrolling
https://bugs.webkit.org/show_bug.cgi?id=146959

Reviewed by Simon Fraser.

Don't update fixed visible content area in ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate
because PageViewportController and WebView on CoordinatedGraphics also update the visible content area according
to the scrolling. So this problem has been caused by duplicated fixed visible rect update.

EFL WTR doesn't work with fixed layout and delegatesScrolling yet. So no test for this issue.

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate): Deleted.

18:18 Changeset [187570] by mattbaker@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Allow record filtering by frame duration in Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=147419

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

New scope bar item labels.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView):
New scope bar for frame duration filtering.
(WebInspector.RenderingFrameTimelineView.displayNameForDurationFilter):
(WebInspector.RenderingFrameTimelineView.prototype.matchTreeElementAgainstCustomFilters):
Overridden for view specific filtering. Filtering applies to RenderingFrameTimelineRecords only.
(WebInspector.RenderingFrameTimelineView.prototype._scopeBarSelectionDidChange):
Force sidebar filtering when duration filter changes.

17:47 Changeset [187569] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

Use rvalue references in FontCascade
https://bugs.webkit.org/show_bug.cgi?id=147427

Reviewed by Simon Fraser.

No new tests because there is no behavior change.

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::resolvesFamilyFor):

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::FontCascade):
(WebCore::retrieveOrAddCachedFonts):
(WebCore::FontCascade::update):

  • platform/graphics/FontCascade.h:
  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::FontCascadeFonts):

  • platform/graphics/FontCascadeFonts.h:

(WebCore::FontCascadeFonts::create):

16:38 Changeset [187568] by mmaxfield@apple.com
  • 5 edits in trunk/Source/WebCore

Rename FontDescriptionFontDataCacheKey to FontDescriptionKey
https://bugs.webkit.org/show_bug.cgi?id=147424

Reviewed by Simon Fraser.

This struct holds information about a FontDescription.

No new tests because there is no behavior change.

  • css/CSSSegmentedFontFace.cpp:

(WebCore::CSSSegmentedFontFace::fontRanges):

  • platform/graphics/FontCache.cpp:

(WebCore::FontPlatformDataCacheKeyHash::hash):
(WebCore::computeHash): Deleted.

  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::FontDescriptionKey):
(WebCore::FontDescriptionKey::operator==):
(WebCore::FontDescriptionKey::operator!=):
(WebCore::FontDescriptionKey::computeHash):
(WebCore::FontDescriptionFontDataCacheKey::FontDescriptionFontDataCacheKey): Deleted.
(WebCore::FontDescriptionFontDataCacheKey::operator==): Deleted.
(WebCore::FontDescriptionFontDataCacheKey::operator!=): Deleted.
(WebCore::FontDescriptionFontDataCacheKey::computeHash): Deleted.

  • platform/graphics/FontCascade.cpp:

(WebCore::operator==):
(WebCore::makeFontCascadeCacheKey):
(WebCore::computeFontCascadeCacheHash):

16:29 Changeset [187567] by bshafiei@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

16:28 Changeset [187566] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

16:03 Changeset [187565] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

Preview should not start if touch handler prevents default.
https://bugs.webkit.org/show_bug.cgi?id=147423
rdar://problem/22061043

Reviewed by Tim Horton.

We need to check if _highlightLongPressCanClick has not been reset before
we allow the preview. It can be reset by a touch handler preventing default.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _interactionShouldBeginFromPreviewItemController:forPosition:]):

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

Remove the spanner placeholder from m_spannerMap when the placeholder object
gets transferred to a descendant flow.
https://bugs.webkit.org/show_bug.cgi?id=147380
rdar://problem/21981078

Reviewed by David Hyatt.

Before r180328, the spanner placeholder was removed from m_spannerMap through
RenderMultiColumnFlowThread::removeFlowChildInfo() by calling flowThreadRelativeWillBeRemoved()
when the placeholder renderer got transferred to the descendant flow.
Now we just remove it from the map when the renderer is being detached.

Source/WebCore:

Test: fast/multicol/newmulticol/spanner-crash-with-embedded-columns.html

  • rendering/RenderMultiColumnFlowThread.cpp:

(WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):

LayoutTests:

  • fast/multicol/newmulticol/spanner-crash-with-embedded-columns-expected.txt: Added.
  • fast/multicol/newmulticol/spanner-crash-with-embedded-columns.html: Added.
15:00 Changeset [187563] by cfleizach@apple.com
  • 2 edits in trunk/Source/WebKit2

AX: iOS: VoiceOver hangs indefinitely when an JS alert appears
https://bugs.webkit.org/show_bug.cgi?id=147386

Reviewed by Dan Bernstein.

Make sure this also builds on iOS8.

  • Platform/IPC/mac/ConnectionMac.mm:
14:52 Changeset [187562] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.8.8

New tag.

14:52 Changeset [187561] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.17.7

New tag.

14:34 Changeset [187560] by commit-queue@webkit.org
  • 9 edits
    5 deletes in trunk/Source/JavaScriptCore

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

Broke Windows build (again) (Requested by smfr on #webkit).

Reverted changeset:

"Implement WebAssembly module parser"
https://bugs.webkit.org/show_bug.cgi?id=147293
http://trac.webkit.org/changeset/187550

14:34 Changeset [187559] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Review feedback followup to: Crash in WebCore::DocumentLoader::stopLoadingForPolicyChange.
https://bugs.webkit.org/show_bug.cgi?id=147418

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded):

14:32 Changeset [187558] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

RELEASE_ASSERT followup to: Crash in WebCore::DocumentLoader::stopLoadingForPolicyChange.
https://bugs.webkit.org/show_bug.cgi?id=147418

Reviewed by Chris Dumez.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded): RELEASE_ASSERT we have a FrameLoader here.

We want to know if we ever get here without one.

14:26 Changeset [187557] by beidson@apple.com
  • 3 edits in trunk/Source/WebCore

Crash in WebCore::DocumentLoader::stopLoadingForPolicyChange.
<rdar://problem/21412186> and https://bugs.webkit.org/show_bug.cgi?id=147418

Reviewed by Chris Dumez.

No new tests (No known reproducibility)

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::responseReceived): When setting to m_waitingForContentPolicy true, make sure we have a FrameLoader.
(WebCore::DocumentLoader::detachFromFrame): Always explicitly call cancelPolicyCheckIfNeeded().
(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded): Cancel the policy check if there is one.
(WebCore::DocumentLoader::cancelMainResourceLoad): Use cancelPolicyCheckIfNeeded().

  • loader/DocumentLoader.h:
14:08 Changeset [187556] by beidson@apple.com
  • 8 edits in trunk

Crash calling webSocket.close() from onError handler for blocked web socket.
<rdar://problem/21771620> and https://bugs.webkit.org/show_bug.cgi?id=147411

Reviewed by Tim Horton.

Source/WebCore:

Tests: http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe.html

http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame.html

This was introduced with http://trac.webkit.org/changeset/185848

  • Modules/websockets/WebSocket.cpp:

(WebCore::WebSocket::connect): When blocked because of mixedContent, call dispatchOrQueueErrorEvent().
(WebCore::WebSocket::didReceiveMessageError): Use dispatchOrQueueErrorEvent() instead.
(WebCore::WebSocket::dispatchOrQueueErrorEvent): Dispatch the error event, but don't dispatch one twice!

  • Modules/websockets/WebSocket.h:
  • Modules/websockets/WebSocketChannel.cpp:

(WebCore::WebSocketChannel::fail): Null-check m_handshake before creating a console message from it.

LayoutTests:

  • http/tests/security/mixedContent/resources/frame-with-insecure-websocket.html: Add a call to webSocket.close() inside the onError handler.
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-iframe-expected.txt:
  • http/tests/security/mixedContent/websocket/insecure-websocket-in-main-frame-expected.txt:
13:30 Changeset [187555] by basile_clement@apple.com
  • 24 edits
    1 delete in trunk

Remove native call inlining
https://bugs.webkit.org/show_bug.cgi?id=147417

.:

Rubber-stamped by Filip Pizlo.

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

Rubber Stamped by Filip Pizlo.

  • CMakeLists.txt:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects): Deleted.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleCall): Deleted.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize): Deleted.

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC): Deleted.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::hasHeapPrediction): Deleted.
(JSC::DFG::Node::hasCellOperand): Deleted.

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::propagate): Deleted.

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Deleted.

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileNode): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::compileNativeCallOrConstruct): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::getFunctionBySymbol): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::getModuleByPathForSymbol): Deleted.
(JSC::FTL::DFG::LowerDFGToLLVM::didOverflowStack): Deleted.

  • ftl/FTLState.cpp:

(JSC::FTL::State::State): Deleted.

  • ftl/FTLState.h:
  • runtime/BundlePath.cpp: Removed.

(JSC::bundlePath): Deleted.

  • runtime/JSDataViewPrototype.cpp:

(JSC::getData):
(JSC::setData):

  • runtime/Options.h:

Source/WTF:

Rubber-stamped by Filip Pizlo.

  • wtf/Platform.h:
13:10 Changeset [187554] by bshafiei@apple.com
  • 4 edits
    2 deletes in branches/safari-600.1.4.17-branch

Roll out r185848. rdar://problem/21708274

13:10 Changeset [187553] by bshafiei@apple.com
  • 4 edits
    2 deletes in branches/safari-600.8-branch

Roll out r185848. rdar://problem/21707923

12:54 Changeset [187552] by mrajca@apple.com
  • 2 edits
    2 adds in trunk/LayoutTests

Media Session: test 'Transient Solo' interruptions https://bugs.webkit.org/show_bug.cgi?id=147091

Reviewed by Eric Carlson.

  • media/session/transient-solo-interruptions-expected.txt: Added.
  • media/session/transient-solo-interruptions.html: Added.
  • platform/mac/TestExpectations: Media Session support is disabled by default.
12:20 Changeset [187551] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, skipping a test that is too complex for its own good
https://bugs.webkit.org/show_bug.cgi?id=147167

  • tests/stress/math-pow-coherency.js:
12:03 Changeset [187550] by commit-queue@webkit.org
  • 9 edits
    5 adds in trunk/Source/JavaScriptCore

Implement WebAssembly module parser
https://bugs.webkit.org/show_bug.cgi?id=147293

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-29
Reviewed by Mark Lam.

Reupload the patch, since r187539 should fix the "Cannot open include file:
'JSWASMModule.h'" issue in the Windows build.

(GlobalObject::finishCreation):
(functionLoadWebAssembly):

  • parser/SourceProvider.h:

(JSC::WebAssemblySourceProvider::create):
(JSC::WebAssemblySourceProvider::data):
(JSC::WebAssemblySourceProvider::WebAssemblySourceProvider):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wasmModuleStructure):

  • wasm/WASMMagicNumber.h: Added.
  • wasm/WASMModuleParser.cpp: Added.

(JSC::WASMModuleParser::WASMModuleParser):
(JSC::WASMModuleParser::parse):
(JSC::WASMModuleParser::parseModule):
(JSC::parseWebAssembly):

  • wasm/WASMModuleParser.h: Added.
  • wasm/WASMReader.cpp: Added.

(JSC::WASMReader::readUnsignedInt32):
(JSC::WASMReader::readFloat):
(JSC::WASMReader::readDouble):

  • wasm/WASMReader.h: Added.

(JSC::WASMReader::WASMReader):

10:52 Changeset [187549] by basile_clement@apple.com
  • 1 edit
    1 delete in trunk/LayoutTests

Unreviewed, remove a .orig file.
https://bugs.webkit.org/show_bug.cgi?id=113610

  • fast/css-intrinsic-dimensions/height-property-value.html.orig: Removed.
10:44 Changeset [187548] by basile_clement@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, lower the number of test iterations to prevent timing out on Debug builds
https://bugs.webkit.org/show_bug.cgi?id=147167

  • tests/stress/math-pow-coherency.js:
08:52 Changeset [187547] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebKit2

[Seccomp] Further improvements to default web process policy
https://bugs.webkit.org/show_bug.cgi?id=142987

Provide various helper functions to allow more flexible construction of
filesystem access policies.

Reviewed by Žan Doberšek.

Improve the policy. Also, remove ifdefs to reduce potential for breakage in non-default
configurations.

  • Shared/linux/SeccompFilters/SyscallPolicy.cpp:

(WebKit::SyscallPolicy::addDefaultWebProcessPolicy):

07:30 Changeset [187546] by mcatanzaro@igalia.com
  • 2 edits in trunk/Source/WebCore

Clean up RefPtrCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=147384

Reviewed by Martin Robinson.

Tests for null/non-null should all be done without equality comparisons.

  • platform/graphics/cairo/RefPtrCairo.cpp:

(WTF::refIfNotNull):
(WTF::derefIfNotNull):

05:35 Changeset [187545] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Remove dispatch_apply_f and instead use vImage more directly
https://bugs.webkit.org/show_bug.cgi?id=147391
<rdar://problem/21893047>

Fix the iOS builds.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::unpremultiplyBufferData):
(WebCore::premultiplyBufferData):

00:16 Changeset [187544] by cdumez@apple.com
  • 7 edits in trunk/Source

Avoid unnecessarily constructing PlatformMediaSessionManager on Document destruction
https://bugs.webkit.org/show_bug.cgi?id=147398

Reviewed by Jer Noble.

Only call PlatformMediaSessionManager::stopAllMediaPlaybackForProcess() in
Source/WebCore:

destructors if an PlatformMediaSessionManager instance already exists, to
avoid constructing one unecessarily at that point.

  • dom/Document.cpp:

(WebCore::Document::~Document):

  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::sharedManagerIfExists):

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::sharedManagerIfExists):

Source/WebKit2:

destructors if an PlatformMediaSessionManager instance already exists, to
avoid constructing one unecessarily at that point.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::didClose):

07/28/15: Yesterday

23:50 Changeset [187543] by carlosgc@webkit.org
  • 6 edits in trunk

[GTK] Add API to set the maximum number of web processes per WebKitWebContext
https://bugs.webkit.org/show_bug.cgi?id=147108

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkit_web_context_set_web_process_count_limit):
(webkit_web_context_get_web_process_count_limit):

  • UIProcess/API/gtk/WebKitWebContext.h:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:

Tools:

Add test case to check the web process limit.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp:

(testWebProcessLimit):
(beforeAll):

23:48 Changeset [187542] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Fix empty space in popup menus when first item is selected
https://bugs.webkit.org/show_bug.cgi?id=147358

Reviewed by Martin Robinson.

It happens when one of the first elements are selected, because we
try to center the current selection on the combo element. When the
menu is large enough to make the element centered we need to leave
empty space at the beginning. This can be fixed by not scrolling
to center the selected item when it's above the combo
element. This ensure the selected item will always be visible,
even if it's not centered. If the selected item is already
centered or below the combo element, the behaviour doesn't change
and we scroll to center it.

  • UIProcess/gtk/WebPopupMenuProxyGtk.cpp:

(WebKit::WebPopupMenuProxyGtk::showPopupMenu):

23:47 Changeset [187541] by mcatanzaro@igalia.com
  • 2 edits in trunk/Tools

[GTK] Missing casts in BrowserWindow.c
https://bugs.webkit.org/show_bug.cgi?id=147395

Reviewed by Carlos Garcia Campos.

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowSetupEditorToolbar):

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

[EFL] Fix typos in ewk_extension.cpp
https://bugs.webkit.org/show_bug.cgi?id=147396

Patch by Jincheol Jo <jincheol.jo@navercorp.com> on 2015-07-28
Reviewed by Gyuyoung Kim.

Fix from toEwkExtendion to toEwkExtension.

  • WebProcess/InjectedBundle/API/efl/ewk_extension.cpp:

(toEwkExtension):
(EwkExtension::didCreatePage):
(EwkExtension::willDestroyPage):
(EwkExtension::didReceiveMessage):
(toEwkExtendion): Deleted.

22:48 Changeset [187539] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

Add the "wasm" directory to Visual Studio project files
https://bugs.webkit.org/show_bug.cgi?id=147400

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-28
Reviewed by Simon Fraser.

This patch should fix the "Cannot open include file: 'JSWASMModule.h'" issue
in the Windows build.

20:27 Changeset [187538] by commit-queue@webkit.org
  • 9 edits
    5 deletes in trunk/Source/JavaScriptCore

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

Broke Windows bild (Requested by smfr on #webkit).

Reverted changeset:

"Implement WebAssembly module parser"
https://bugs.webkit.org/show_bug.cgi?id=147293
http://trac.webkit.org/changeset/187531

19:15 Changeset [187537] by benjamin@webkit.org
  • 3 edits
    3 adds in trunk

Speed up the Stringifier::toJSON() fast case
https://bugs.webkit.org/show_bug.cgi?id=147383

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

Source/JavaScriptCore:

  • runtime/JSONObject.cpp:

(JSC::Stringifier::toJSON):
(JSC::Stringifier::toJSONImpl):

LayoutTests:

Make the fast case of Stringifier::toJSON() inline and the uncommon
case out-of-line.

  • js/dom/JSON-stringify-string-object-with-tojson-expected.txt: Added.
  • js/dom/JSON-stringify-string-object-with-tojson.html: Added.
  • js/resources/JSON-stringify-string-object-with-tojson.js: Added.

(stringObject.toJSON):
(String.prototype.toJSON):

19:08 Changeset [187536] by simon.fraser@apple.com
  • 2 edits in trunk/Source/WebCore

Fix debug builds.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::premultiplyBufferData):
(WebCore::unpremultiplyBufferData):

18:57 Changeset [187535] by simon.fraser@apple.com
  • 5 edits
    2 adds in trunk

Animations sometimes fail to start
https://bugs.webkit.org/show_bug.cgi?id=147394
rdar://problem/21852603

Reviewed by Dean Jackson.
Source/WebCore:

When an accelerated animation or transition was started at the same time as
a non-accelerated one, and then the node for the former was removed, we could
never kick off the non-accelerated animation.

AnimationControllerPrivate has logic to synchronize the two types of animation
when they start in the same animation update, which involves setting the
m_waitingForAsyncStartNotification flag, and waiting for a notifyAnimationStarted()
to come in from the graphics system.

However, it failed to handle the case where the accelerated animation was removed
before the callback was received, which left the m_waitingForAsyncStartNotification flag
set to true, preventing the non-accelerated animation from running.

Test: animations/remove-syncing-animation.html

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAccelerated): Make this public.

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::clear): Add logging.
(WebCore::AnimationControllerPrivate::receivedStartTimeResponse): Add logging.
(WebCore::AnimationControllerPrivate::animationWillBeRemoved): Add logging.
After removing animations from the maps, check to see if we expect any of the
remaining animations are waiting for a notifyAnimationStarted(). If not, clear
the m_waitingForAsyncStartNotification flag.
(WebCore::AnimationController::notifyAnimationStarted): Log the renderer.
(WebCore::AnimationControllerPrivate::AnimationControllerPrivate): Remove unneeded
initializations of HashMaps.

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions): Log renderers.
(WebCore::CompositeAnimation::updateKeyframeAnimations): Ditto.

LayoutTests:

Test that starts an accelerated and non-accelerated animation, then removes
the node for the accelerated one.

  • animations/remove-syncing-animation-expected.txt: Added.
  • animations/remove-syncing-animation.html: Added.
18:43 Changeset [187534] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

Remove dispatch_apply_f and instead use vImage more directly
https://bugs.webkit.org/show_bug.cgi?id=147391
<rdar://problem/21893047>

Reviewed by Simon Fraser.

Use vImage unmultiplication and premultiplication functions on the
entire ImageBufferData object, rather than getting and setting data on an
line by line using dispatch_apply.

We were seeing some crashes in vImage with the smaller buffer sizes, and
hopefully this will either fix the problem, or give us a better
stack trace to diagnose.

I also did a drive-by change of "dst" to "dest". It was inconsistent throughout
the file.

Convered by the tests in fast/canvas and imported/w3c/canvas

  • platform/graphics/cg/ImageBufferDataCG.cpp: Remove the ScanlineData structure. It is

no longer needed.
(WebCore::premultiplyBufferData): New function that calls vImagePremultiplyData_RGBA8888.
(WebCore::unpremultiplyBufferData): New function that calls vImageUnpremultiplyData_RGBA8888.
(WebCore::affineWarpBufferData): Extracting some common code into a function.
(WebCore::ImageBufferData::getData): Use the two new functions as appropriate. Move
some of the code around now that more is shared between the different #if branches.
(WebCore::ImageBufferData::putData):
(WebCore::convertScanline): Deleted.
(WebCore::unpremultitplyScanline): Deleted.
(WebCore::premultitplyScanline): Deleted.

18:26 Changeset [187533] by ap@apple.com
  • 12 edits in trunk/Source

Clean up usesAsyncCallbacks handling in ResourceHandle
https://bugs.webkit.org/show_bug.cgi?id=147342

Reviewed by Darin Adler.

Source/WebCore:

Store "usesAsyncCallbacks" bit in ResourceHandle, because it's not accessible
via client once the client is zeroed out.

Changed ResourceHandle::setClient into ResourceHandle::clearClient, because it's
only ever used to zero out the client pointer, and it doesn't support changing it.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::releaseResources):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::stopLoading):

  • platform/network/BlobResourceHandle.cpp:

(WebCore::BlobResourceHandle::notifyResponseOnSuccess):
(WebCore::BlobResourceHandle::notifyResponseOnError):

  • platform/network/ResourceHandle.cpp:

(WebCore::ResourceHandle::client):
(WebCore::ResourceHandle::clearClient):
(WebCore::ResourceHandle::setDefersLoading):
(WebCore::ResourceHandle::usesAsyncCallbacks):
(WebCore::ResourceHandle::setClient): Deleted.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::makeDelegate):
(WebCore::ResourceHandle::willSendRequest):
(WebCore::ResourceHandle::continueWillSendRequest):
(WebCore::ResourceHandle::continueDidReceiveResponse):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueWillCacheResponse):

Source/WebKit2:

Update for a renaming in WebCore.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):

  • Shared/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::platformInvalidate):

17:57 Changeset [187532] by mcatanzaro@igalia.com
  • 3 edits in trunk/Source/WebCore

Minor cleanups in FontCacheFreeType.cpp
https://bugs.webkit.org/show_bug.cgi?id=147392

Reviewed by Martin Robinson.

Mark several functions as static (file-scope), use more nullptr, and use more smart
pointers. No behavior changes.

  • platform/graphics/freetype/FcUniquePtr.h:

(WebCore::FcPtrDeleter<FcCharSet>::operator()):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::createFontConfigPatternForCharacters):
(WebCore::findBestFontGivenFallbacks):
(WebCore::FontCache::systemFallbackForCharacters):
(WebCore::fontWeightToFontconfigWeight):
(WebCore::FontCache::createFontPlatformData):

17:55 Changeset [187531] by commit-queue@webkit.org
  • 9 edits
    5 adds in trunk/Source/JavaScriptCore

Implement WebAssembly module parser
https://bugs.webkit.org/show_bug.cgi?id=147293

Patch by Sukolsak Sakshuwong <sukolsak@gmail.com> on 2015-07-28
Reviewed by Geoffrey Garen.

Implement WebAssembly module parser for WebAssembly files produced by pack-asmjs
<https://github.com/WebAssembly/polyfill-prototype-1>. This patch only checks
the magic number at the beginning of the files. Parsing of the rest will be
implemented in a subsequent patch.

(GlobalObject::finishCreation):
(functionLoadWebAssembly):

  • parser/SourceProvider.h:

(JSC::WebAssemblySourceProvider::create):
(JSC::WebAssemblySourceProvider::data):
(JSC::WebAssemblySourceProvider::WebAssemblySourceProvider):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::wasmModuleStructure):

  • wasm/WASMMagicNumber.h: Added.
  • wasm/WASMModuleParser.cpp: Added.

(JSC::WASMModuleParser::WASMModuleParser):
(JSC::WASMModuleParser::parse):
(JSC::WASMModuleParser::parseModule):
(JSC::parseWebAssembly):

  • wasm/WASMModuleParser.h: Added.
  • wasm/WASMReader.cpp: Added.

(JSC::WASMReader::readUnsignedInt32):
(JSC::WASMReader::readFloat):
(JSC::WASMReader::readDouble):

  • wasm/WASMReader.h: Added.

(JSC::WASMReader::WASMReader):

17:44 Changeset [187530] by cfleizach@apple.com
  • 2 edits in trunk/Source/WebKit2

AX: iOS: VoiceOver hangs indefinitely when an JS alert appears
https://bugs.webkit.org/show_bug.cgi?id=147386

Reviewed by Anders Carlsson.

Support the iOS platform API to notify accessibility clients when the WebProcess is about to suspend (because of some modal dialog).
Luckily, we did all the hardwork for OSX a few years ago to support this paradigm.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::AccessibilityProcessSuspendedNotification):
(IPC::Connection::willSendSyncMessage):
(IPC::Connection::didReceiveSyncReply):

17:38 Changeset [187529] by utatane.tea@gmail.com
  • 17 edits in trunk

[ES6] Add ENABLE_ES6_MODULES compile time flag with the default value "false"
https://bugs.webkit.org/show_bug.cgi?id=147350

Reviewed by Sam Weinig.

.:

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
16:50 Changeset [187528] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: console.groupEnd causes negative indent when no group is active
https://bugs.webkit.org/show_bug.cgi?id=147375

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

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):

16:37 Changeset [187527] by mcatanzaro@igalia.com
  • 7 edits
    5 adds in trunk

[Freetype] Always allow font matching for strong aliases
https://bugs.webkit.org/show_bug.cgi?id=147057

Reviewed by Martin Robinson.

Source/WebCore:

Tests: platform/gtk/fonts/font-family-fallback-ignores-weak-aliases.html

platform/gtk/fonts/font-family-fallback-respects-strong-aliases.html

Treat fonts that are strongly-aliased to each other as if they were identical for the
purposes of CSS font fallback. This improves the layout of many web pages by allowing
fontconfig to replace fonts with metric-compatible equivalents (e.g. Arial -> Liberation
Sans) instead of rejecting the metric-compatible font as unsuitable.

  • platform/graphics/cairo/RefPtrCairo.cpp:

(WTF::refIfNotNull):
(WTF::derefIfNotNull):

  • platform/graphics/cairo/RefPtrCairo.h:
  • platform/graphics/freetype/FcUniquePtr.h: Added.

(WebCore::FcPtrDeleter<FcFontSet>::operator()):
(WebCore::FcPtrDeleter<FcLangSet>::operator()):
(WebCore::FcPtrDeleter<FcObjectSet>::operator()):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::strengthOfFirstAlias):
(WebCore::strongAliasesForFamily):
(WebCore::areStronglyAliased):
(WebCore::FontCache::createFontPlatformData):

Tools:

Create family aliases needed for the new layout tests.

  • WebKitTestRunner/gtk/fonts/fonts.conf:

LayoutTests:

  • platform/gtk/fonts/font-family-fallback-ignores-weak-aliases-expected.html: Added.
  • platform/gtk/fonts/font-family-fallback-ignores-weak-aliases.html: Added.
  • platform/gtk/fonts/font-family-fallback-respects-strong-aliases-expected.html: Added.
  • platform/gtk/fonts/font-family-fallback-respects-strong-aliases.html: Added.
16:21 Changeset [187526] by ggaren@apple.com
  • 3 edits in trunk/Websites/webkit.org

SunSpider is no longer maintained
https://bugs.webkit.org/show_bug.cgi?id=147370

Reviewed by Michael Saboff.

Add an indicator to show that SunSpider is no longer maintained.

  • perf/sunspider/sunspider.css:

(#logo):
(.topbox):
(.bottombox):

  • perf/sunspider/sunspider.html:
16:12 Changeset [187525] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

[iOS] Crash when encountering characters whose natural font is one we can't look up
https://bugs.webkit.org/show_bug.cgi?id=147377
<rdar://problem/22022011>

Reviewed by Simon Fraser.

Source/WebCore:

These characters hit the complex text code path, where CoreText picks fonts
to use for each character. We then try to map these CoreText fonts back to
our own Font objects, and we assume (on iOS) that our own font search will
always return something.

On OS X, we do not have such an assumption, and we handle the case where it
does not hold. This method works on iOS as well, so the solution is to just
perform it on both OSes.

Test: fast/text/crash-complex-unknown-font.html

  • platform/graphics/mac/ComplexTextControllerCoreText.mm:

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters):

LayoutTests:

  • fast/text/crash-complex-unknown-font-expected.html: Added.
  • fast/text/crash-complex-unknown-font.html: Added.
15:39 Changeset [187524] by saambarati1@gmail.com
  • 13 edits
    2 adds in trunk/Source/JavaScriptCore

Make the type profiler work with lexical scoping and add tests
https://bugs.webkit.org/show_bug.cgi?id=145438

Reviewed by Geoffrey Garen.

op_profile_type now knows how to resolve variables allocated within
the local scope stack. This means it knows how to resolve "let"
and "const" variables. Also, some refactoring was done inside
the BytecodeGenerator to make writing code to support the type
profiler much simpler and clearer.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::symbolTable): Deleted.

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::addExceptionHandler):
(JSC::UnlinkedCodeBlock::exceptionHandler):
(JSC::UnlinkedCodeBlock::vm):
(JSC::UnlinkedCodeBlock::addArrayProfile):
(JSC::UnlinkedCodeBlock::setSymbolTableConstantIndex): Deleted.
(JSC::UnlinkedCodeBlock::symbolTableConstantIndex): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitMove):
(JSC::BytecodeGenerator::emitTypeProfilerExpressionInfo):
(JSC::BytecodeGenerator::emitProfileType):
(JSC::BytecodeGenerator::emitProfileControlFlow):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitNodeForLeftHandSide):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):
(JSC::ResolveNode::emitBytecode):
(JSC::BracketAccessorNode::emitBytecode):
(JSC::DotAccessorNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionCallResolveNode::emitBytecode):
(JSC::FunctionCallBracketNode::emitBytecode):
(JSC::FunctionCallDotNode::emitBytecode):
(JSC::CallFunctionCallDotNode::emitBytecode):
(JSC::ApplyFunctionCallDotNode::emitBytecode):
(JSC::PostfixNode::emitResolve):
(JSC::PostfixNode::emitBracket):
(JSC::PostfixNode::emitDot):
(JSC::PrefixNode::emitResolve):
(JSC::PrefixNode::emitBracket):
(JSC::PrefixNode::emitDot):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::AssignDotNode::emitBytecode):
(JSC::ReadModifyDotNode::emitBytecode):
(JSC::AssignBracketNode::emitBytecode):
(JSC::ReadModifyBracketNode::emitBytecode):
(JSC::EmptyVarExpression::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::ReturnNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):
(JSC::BindingNode::bindValue):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_profile_type):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_profile_type):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • tests/typeProfiler/es6-block-scoping.js: Added.

(noop):
(arr):
(wrapper.changeFoo):
(wrapper.scoping):
(wrapper.scoping2):
(wrapper):

  • tests/typeProfiler/es6-classes.js: Added.

(noop):
(wrapper.Animal):
(wrapper.Animal.prototype.methodA):
(wrapper.Dog):
(wrapper.Dog.prototype.methodB):
(wrapper):

15:38 Changeset [187523] by cdumez@apple.com
  • 26 edits in trunk/LayoutTests

Tests introduced in r187489 are flaky
https://bugs.webkit.org/show_bug.cgi?id=147327

Rubber-stamped by Benjamin Poulain.

Tests introduced in r187489 are flaky, they sometimes print the console
message, sometimes not. The reason is that we sometimes use a cached
parsed stylesheet and we do not print the warning in this case. To fix
the flakiness, we now clear the memory cache at the beginning of each
test to make sure we download and parse the stylesheets.

  • http/tests/security/cross-origin-css-1.html:
  • http/tests/security/cross-origin-css-2.html:
  • http/tests/security/cross-origin-css-3.html:
  • http/tests/security/cross-origin-css-4.html:
  • http/tests/security/cross-origin-css-5.html:
  • http/tests/security/cross-origin-css-6.html:
  • http/tests/security/cross-origin-css-7.html:
  • http/tests/security/cross-origin-css-8.html:
  • http/tests/security/cross-origin-css-in-quirks-1.html:
  • http/tests/security/cross-origin-css-in-quirks-2.html:
  • http/tests/security/cross-origin-css-in-quirks-3.html:
  • http/tests/security/cross-origin-css-in-quirks-4.html:
  • http/tests/security/cross-origin-css-in-quirks-5.html:
  • http/tests/security/cross-origin-css-in-quirks-6.html:
  • http/tests/security/cross-origin-css-in-quirks-7.html:
  • http/tests/security/cross-origin-css-in-quirks-8.html:
  • http/tests/security/same-origin-css-1.html:
  • http/tests/security/same-origin-css-2.html:
  • http/tests/security/same-origin-css-3.html:
  • http/tests/security/same-origin-css-4.html:
  • http/tests/security/same-origin-css-5.html:
  • http/tests/security/same-origin-css-6.html:
  • http/tests/security/same-origin-css-7.html:
  • http/tests/security/same-origin-css-8.html:
  • http/tests/security/same-origin-css-in-quirks.html:
15:29 Changeset [187522] by commit-queue@webkit.org
  • 13 edits in trunk/Source

[iOS] REGRESSION(r168075): Fullscreen web video doesn't pause on screen lock
https://bugs.webkit.org/show_bug.cgi?id=147269

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-07-28
Reviewed by Andreas Kling.

Media elements should pause when the application is going to EnterBackground
under lock regardless whether it is in full screen or not.

Source/WebCore:

  • platform/audio/PlatformMediaSession.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::doInterruption): This code was moved from
beginInterruption().

(WebCore::PlatformMediaSession::shouldDoInterruption): Move the condition
which allows the media session interruption to a separate function.

(WebCore::PlatformMediaSession::beginInterruption): Call the functions
shouldDoInterruption() and doInterruption().

(WebCore::PlatformMediaSession::forceInterruption): This function will
be called from PlatformMediaSessionManager::applicationDidEnterBackground()
to override the decision which is made by PlatformMediaSession::beginInterruption()
if the application isSuspendedUnderLock.

  • platform/audio/PlatformMediaSessionManager.h:
  • platform/audio/PlatformMediaSessionManager.cpp:

(WebCore::PlatformMediaSessionManager::applicationDidEnterBackground):
[UIApp isSuspendedUnderLock] is only valid when it is called when the
UIApplicationDidEnterBackgroundNotification is received. We need to force
interrupting the media sessions if the application isSuspendedUnderLock
and UIApplicationWillResignActiveNotification was ignored because of PiP.

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

(-[WebMediaSessionHelper initWithCallback:]):
(-[WebMediaSessionHelper applicationDidEnterBackground:]): Listen to
UIApplicationDidEnterBackgroundNotification and make a call on the web
thread to PlatformMediaSessionManager::applicationDidEnterBackground()
and pass the isSuspendedUnderLock flag which is queried on the UIProcess.

Source/WebKit2:

  • Platform/spi/ios/UIKitSPI.h: Forward declare [UIApplication isSuspendedUnderLock].
  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):
[UIApp isSuspendedUnderLock] can only be called in the UIProcess. We need
to call it here and pass it to the WebPage in the WebProcess as part of the
ApplicationDidEnterBackground message.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add the new parameter:

'isSuspendedUnderLock' to the ApplicationDidEnterBackground message.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::applicationDidEnterBackground): On iOS, the WebPage needs
to notify the MediaSessionManagerIOS that it received the message
ApplicationDidEnterBackground.

15:22 Changeset [187521] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Creating a TextIndicator causes the view to scroll to the current selection
https://bugs.webkit.org/show_bug.cgi?id=147379
<rdar://problem/22038421>

Reviewed by Beth Dakin.

  • editing/Editor.cpp:

(WebCore::Editor::setIgnoreCompositionSelectionChange):

  • editing/Editor.h:

Add a flag so that setIgnoreCompositionSelectionChange(false) can still
not force-reveal the current selection.

This is useful for e.g. TextIndicator, who saves the selection, changes it,
and then restores it, but doesn't want to scroll to the saved/restored selection.

  • page/TextIndicator.cpp:

(WebCore::TextIndicator::createWithRange):
Make use of the above flag.

15:14 Changeset [187520] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

14:53 Changeset [187519] by burg@cs.washington.edu
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Convert NavigationItem subclasses to ES6
https://bugs.webkit.org/show_bug.cgi?id=147364

Reviewed by Timothy Hatcher.

Convert remaining NavigationItem subclasses to use ES6 class.

Also promote the _additionalClassNames to be a protected getter,
and inline the style class names that are only used in one place.

Mechanical changes are elided from the changelog.

  • UserInterface/Views/ActivateButtonNavigationItem.js:

(WebInspector.ActivateButtonNavigationItem):
(WebInspector.ActivateButtonNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/ActivateButtonToolbarItem.js:

(WebInspector.ActivateButtonToolbarItem):

  • UserInterface/Views/ButtonNavigationItem.js:

(WebInspector.ButtonNavigationItem):
(WebInspector.ButtonNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/ButtonToolbarItem.js:

(WebInspector.ButtonToolbarItem):

  • UserInterface/Views/ControlToolbarItem.js:

(WebInspector.ControlToolbarItem):
(WebInspector.ControlToolbarItem.prototype.get additionalClassNames):

  • UserInterface/Views/DividerNavigationItem.js:

(WebInspector.DividerNavigationItem):
(WebInspector.DividerNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/FlexibleSpaceNavigationItem.js:

(WebInspector.FlexibleSpaceNavigationItem):
(WebInspector.FlexibleSpaceNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/HierarchicalPathNavigationItem.js:

(WebInspector.HierarchicalPathNavigationItem.prototype.get additionalClassNames):
(WebInspector.HierarchicalPathNavigationItem.prototype.get _additionalClassNames): Deleted.

  • UserInterface/Views/NavigationItem.js:

(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get _classNames):

  • UserInterface/Views/RadioButtonNavigationItem.js:

(WebInspector.RadioButtonNavigationItem):
(WebInspector.RadioButtonNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/ToggleButtonNavigationItem.js:

(WebInspector.ToggleButtonNavigationItem):
(WebInspector.ToggleButtonNavigationItem.prototype.get additionalClassNames):

  • UserInterface/Views/ToggleControlToolbarItem.js:

(WebInspector.ToggleControlToolbarItem):
(WebInspector.ToggleControlToolbarItem.prototype.get additionalClassNames):

14:50 Changeset [187518] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.17.6

New tag.

14:43 Changeset [187517] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Bounds in InteractionInformationAtPosition should be always in main frame coordinate space.
https://bugs.webkit.org/show_bug.cgi?id=147372

When we prepare the bounds for InteractionInformationAtPosition, we should convert the rect to
main frame space since WKContent in UIProcess expects it to be in the web view space.

Patch by Yongjun Zhang <yongjun_zhang@apple.com> on 2015-07-28
Reviewed by Tim Horton.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation): Convert the bounding rect to main frame space if the element is inside a sub-frame.

14:42 Changeset [187516] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[iOS] Set AirPlay discovery mode to disabled when page is hidden
https://bugs.webkit.org/show_bug.cgi?id=147369

Reviewed by Jer Noble.

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::requiresPlaybackTargetRouteMonitoring): Return false when

the client is not visible.

  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::clientDataBufferingTimerFired): Call configureWireLessTargetMonitoring.

14:39 Changeset [187515] by saambarati1@gmail.com
  • 35 edits
    2 deletes in trunk/Source/JavaScriptCore

Implement catch scope using lexical scoping constructs introduced with "let" scoping patch
https://bugs.webkit.org/show_bug.cgi?id=146979

Reviewed by Geoffrey Garen.

Now that BytecodeGenerator has a notion of local scope depth,
we can easily implement a catch scope that doesn't claim that
all variables are dynamically scoped. This means that functions
that use try/catch can have local variable resolution. This also
means that all functions that use try/catch don't have all
their variables marked as being captured.

Catch scopes now behave like a "let" scope (sans the TDZ logic) with a
single variable. Catch scopes are now just JSLexicalEnvironments and the
symbol table backing the catch scope knows that it corresponds to a catch scope.

(JSC::CodeBlock::dumpBytecode):

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::isCacheable):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::initializeDefaultParameterValuesAndSetupFunctionScopeStack):
(JSC::BytecodeGenerator::emitLoadGlobalObject):
(JSC::BytecodeGenerator::pushLexicalScope):
(JSC::BytecodeGenerator::pushLexicalScopeInternal):
(JSC::BytecodeGenerator::popLexicalScope):
(JSC::BytecodeGenerator::popLexicalScopeInternal):
(JSC::BytecodeGenerator::prepareLexicalScopeForNextForLoopIteration):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::resolveType):
(JSC::BytecodeGenerator::emitResolveScope):
(JSC::BytecodeGenerator::emitPopScope):
(JSC::BytecodeGenerator::emitPopWithScope):
(JSC::BytecodeGenerator::emitDebugHook):
(JSC::BytecodeGenerator::popScopedControlFlowContext):
(JSC::BytecodeGenerator::emitPushCatchScope):
(JSC::BytecodeGenerator::emitPopCatchScope):
(JSC::BytecodeGenerator::beginSwitch):
(JSC::BytecodeGenerator::emitPopWithOrCatchScope): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::lastOpcodeID):

  • bytecompiler/NodesCodegen.cpp:

(JSC::AssignResolveNode::emitBytecode):
(JSC::WithNode::emitBytecode):
(JSC::TryNode::emitBytecode):

  • debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::isCatchScope):
(JSC::DebuggerScope::isFunctionNameScope):
(JSC::DebuggerScope::isFunctionOrEvalScope):
(JSC::DebuggerScope::caughtValue):

  • debugger/DebuggerScope.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::exceptionOrCaughtValue):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_push_name_scope):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createContinueStatement):
(JSC::ASTBuilder::createTryStatement):

  • parser/NodeConstructors.h:

(JSC::ThrowNode::ThrowNode):
(JSC::TryNode::TryNode):
(JSC::FunctionParameters::FunctionParameters):

  • parser/Nodes.h:
  • parser/Parser.cpp:

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

  • parser/SyntaxChecker.h:

(JSC::SyntaxChecker::createBreakStatement):
(JSC::SyntaxChecker::createContinueStatement):
(JSC::SyntaxChecker::createTryStatement):
(JSC::SyntaxChecker::createSwitchStatement):
(JSC::SyntaxChecker::createWhileStatement):
(JSC::SyntaxChecker::createWithStatement):

  • runtime/JSCatchScope.cpp:
  • runtime/JSCatchScope.h:

(JSC::JSCatchScope::JSCatchScope): Deleted.
(JSC::JSCatchScope::create): Deleted.
(JSC::JSCatchScope::createStructure): Deleted.

  • runtime/JSFunctionNameScope.h:

(JSC::JSFunctionNameScope::JSFunctionNameScope):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::withScopeStructure):
(JSC::JSGlobalObject::strictEvalActivationStructure):
(JSC::JSGlobalObject::activationStructure):
(JSC::JSGlobalObject::functionNameScopeStructure):
(JSC::JSGlobalObject::directArgumentsStructure):
(JSC::JSGlobalObject::scopedArgumentsStructure):
(JSC::JSGlobalObject::catchScopeStructure): Deleted.

  • runtime/JSNameScope.cpp:

(JSC::JSNameScope::create):
(JSC::JSNameScope::toThis):

  • runtime/JSNameScope.h:
  • runtime/JSObject.cpp:

(JSC::JSObject::toThis):
(JSC::JSObject::isFunctionNameScopeObject):
(JSC::JSObject::isCatchScopeObject): Deleted.

  • runtime/JSObject.h:
  • runtime/JSScope.cpp:

(JSC::JSScope::collectVariablesUnderTDZ):
(JSC::JSScope::isLexicalScope):
(JSC::JSScope::isCatchScope):
(JSC::resolveModeName):

  • runtime/JSScope.h:
  • runtime/SymbolTable.cpp:

(JSC::SymbolTable::SymbolTable):
(JSC::SymbolTable::cloneScopePart):

  • runtime/SymbolTable.h:
  • tests/stress/const-semantics.js:

(.):

14:39 Changeset [187514] by andersca@apple.com
  • 2 edits in branches/safari-600.8-branch/LayoutTests

Skip two mixed content tests that don't make sense since we don't disable mixed content access by default.

  • platform/mac/TestExpectations:
14:23 Changeset [187513] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::ArgumentsEliminationPhase has a redundant check for inserting CheckInBounds when converting GetByVal to GetStack in the inline non-varargs case
https://bugs.webkit.org/show_bug.cgi?id=147373

Reviewed by Mark Lam.

The code was doing a check for "index >= inlineCallFrame->arguments.size() - 1" in code where
safeToGetStack is true and we aren't in varargs context, but in a non-varargs context,
safeToGetStack can only be true if "index < inlineCallFrame->arguments.size() - 1".

When converting a GetByVal to GetStack, there are three possibilities:

1) Impossible to convert. This can happen if the GetByVal is out-of-bounds of the things we

know to have stored to the stack. For example, if we inline a function that does
"arguments[42]" at a call that passes no arguments.

2) Possible to convert, but we cannot prove statically that the GetByVal was in bounds. This

can happen for "arguments[42]" with no inline call frame (since we don't know statically
how many arguments we will be passed) or in a varargs call frame.

3) Possible to convert, and we know statically that the GetByVal is in bounds. This can

happen for "arguments[42]" if we have an inline call frame, and it's not a varargs call
frame, and we know that the caller passed 42 or more arguments.

The way the phase handles this is it first determines that we're not in case (1). This is
called safeToGetStack. safeToGetStack is true if we have case (2) or (3). For inline call
frames that have no varargs, this means that safeToGetStack is true exactly when the GetByVal
is in-bounds (i.e. case (3)).

But the phase was again doing a check for whether the index is in-bounds for non-varargs
inline call frames even when safeToGetStack was true. That check is redundant and should be
eliminated, since it makes the code confusing.

  • dfg/DFGArgumentsEliminationPhase.cpp:
14:19 Changeset [187512] by cdumez@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed, fix wrong test baseline landed in r187489.

  • http/tests/security/same-origin-css-4-expected.txt:
13:59 Changeset [187511] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.44.1/Source/WebKit2

Roll out r187376. rdar://problem/22000647

13:50 Changeset [187510] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DFG::PutStackSinkingPhase should be more aggressive about its "no GetStack until put" rule
https://bugs.webkit.org/show_bug.cgi?id=147371

Reviewed by Mark Lam.

Two fixes:

  • Make ConflictingFlush really mean that you can't load from the stack slot. This means not using ConflictingFlush for arguments.
  • Assert that a GetStack never sees ConflictingFlush.
  • dfg/DFGPutStackSinkingPhase.cpp:
13:46 Changeset [187509] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.44.1/Source

Versioning.

13:45 Changeset [187508] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.44.1

New tag.

13:37 Changeset [187507] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Web Inspector: Include <template> node content in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=147335

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

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._unbind):
Cleanup templateContent when DOMNodes get removed.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode.prototype.templateContent):
Create a DOMNode from the payload's templateContent.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._singleTextChild):
(WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
(WebInspector.DOMTreeElement.prototype._visibleChildren):
A DOMTreeElement has children if the DOMNode has template content.

LayoutTests:

  • inspector/dom/template-content-expected.txt: Added.
  • inspector/dom/template-content.html: Added.
13:20 Changeset [187506] by basile_clement@apple.com
  • 4 edits in trunk

Misleading error message: "At least one digit must occur after a decimal point"
https://bugs.webkit.org/show_bug.cgi?id=146238

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Interestingly, we had a comment explaining what this error message was
about that is much clearer than the error message itself. This patch
simply replaces the error message with the explanation from the
comment.

  • parser/Lexer.cpp:

(JSC::Lexer<T>::lex):

LayoutTests:

The expected error message in this test has changed.

  • js/basic-strict-mode-expected.txt:
13:12 Changeset [187505] by basile_clement@apple.com
  • 14 edits in trunk/Source/JavaScriptCore

Simplify call linking
https://bugs.webkit.org/show_bug.cgi?id=147363

Reviewed by Filip Pizlo.

Previously, we were passing both the CallLinkInfo and a
(CodeSpecializationKind, RegisterPreservationMode) pair to the
different call linking slow paths. However, the CallLinkInfo already
has all of that information, and we don't gain anything by having them
in additional static parameters - except possibly a very small
performance gain in presence of inlining. However since those are
already slow paths, this performance loss (if it exists) will not be
visible in practice.

This patch removes the various specialized thunks and JIT operations
for regular and polymorphic call linking with a single thunk and
operation for each case. Moreover, it removes the four specialized
virtual call thunks and operations with one virtual call thunk for each
call link info, allowing for better branch prediction by the CPU and
fixing a pre-existing FIXME.

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::unlink):
(JSC::CallLinkInfo::dummy): Deleted.

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::CallLinkInfo):
(JSC::CallLinkInfo::registerPreservationMode):
(JSC::CallLinkInfo::setUpCallFromFTL):
(JSC::CallLinkInfo::setSlowStub):
(JSC::CallLinkInfo::clearSlowStub):
(JSC::CallLinkInfo::slowStub):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compileImpl):

  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::link):

  • ftl/FTLJSCallBase.cpp:

(JSC::FTL::JSCallBase::link):

  • jit/JITCall.cpp:

(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileCallEvalSlowCase):
(JSC::JIT::compileOpCall):
(JSC::JIT::compileOpCallSlowCase):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:

(JSC::operationLinkFor): Deleted.
(JSC::operationVirtualFor): Deleted.
(JSC::operationLinkPolymorphicCallFor): Deleted.

  • jit/Repatch.cpp:

(JSC::generateByIdStub):
(JSC::linkSlowFor):
(JSC::linkFor):
(JSC::revertCall):
(JSC::unlinkFor):
(JSC::linkVirtualFor):
(JSC::linkPolymorphicCall):

  • jit/Repatch.h:
  • jit/ThunkGenerators.cpp:

(JSC::linkCallThunkGenerator):
(JSC::linkPolymorphicCallThunkGenerator):
(JSC::virtualThunkFor):
(JSC::linkForThunkGenerator): Deleted.
(JSC::linkConstructThunkGenerator): Deleted.
(JSC::linkCallThatPreservesRegsThunkGenerator): Deleted.
(JSC::linkConstructThatPreservesRegsThunkGenerator): Deleted.
(JSC::linkPolymorphicCallForThunkGenerator): Deleted.
(JSC::linkPolymorphicCallThatPreservesRegsThunkGenerator): Deleted.
(JSC::virtualForThunkGenerator): Deleted.
(JSC::virtualCallThunkGenerator): Deleted.
(JSC::virtualConstructThunkGenerator): Deleted.
(JSC::virtualCallThatPreservesRegsThunkGenerator): Deleted.
(JSC::virtualConstructThatPreservesRegsThunkGenerator): Deleted.

  • jit/ThunkGenerators.h:

(JSC::linkThunkGeneratorFor): Deleted.
(JSC::linkPolymorphicCallThunkGeneratorFor): Deleted.
(JSC::virtualThunkGeneratorFor): Deleted.

13:10 Changeset [187504] by said@apple.com
  • 4 edits
    2 adds in trunk

Crash happens when calling removeEventListener for an SVG element which has an instance inside a <defs> element of shadow tree
https://bugs.webkit.org/show_bug.cgi?id=147290

Reviewed by Daniel Bates.

Source/WebCore:

When the shadow tree is built for a <use> element, all the SVG elements
are allowed to be cloned in the shadow tree but later some of the elements
are disallowed and removed. Make sure, when disallowing an element in the
shadow tree, to reset the correspondingElement relationship between all
the disallowed descendant SVG elements and all their original elements.

Test: svg/custom/remove-event-listener-shadow-disallowed-element.svg

*svg/SVGElement.cpp:
(WebCore::SVGElement::setCorrespondingElement)

  • svg/SVGUseElement.cpp:

(WebCore::removeDisallowedElementsFromSubtree):

LayoutTests:

Make sure we do not crash when when calling removeEventListener() for an
element which is cloned under a disallowed parent inside the shadow tree
of another <use> element.

  • svg/custom/remove-event-listener-shadow-disallowed-element-expected.txt: Added.
  • svg/custom/remove-event-listener-shadow-disallowed-element.svg: Added.
12:48 Changeset [187503] by cdumez@apple.com
  • 2 edits in trunk/Source/WebCore

Unreviewed, follow-up nit fix after r187489.

Fix forward declarations ordering.

  • css/StyleSheetContents.h:
12:42 Changeset [187502] by hyatt@apple.com
  • 4 edits
    2 adds in trunk

ASSERTION FAILED: !currBox->needsLayout() loading bing maps (and apple.com/music and nytimes)
https://bugs.webkit.org/show_bug.cgi?id=93891

Reviewed by Simon Fraser.

Source/WebCore:

Added new tests in fast/dynamic.

Change tracking of positioned objects to always insert objects that need a layout in the
end of the ListHashMap for RenderViews. This ensures that dependencies between nested
positioned objects that both need a layout by the RenderView are resolved in the correct order.

Don't cache the end object when walking the ListHashMap to do layouts of positioned objects,
since that list is getting updated dynamically as earlier objects can mark and insert new
objects into the list during their layouts.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::layoutPositionedObject):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::insertIntoTrackedRendererMaps):
(WebCore::RenderBlock::insertPositionedObject):
(WebCore::RenderBlock::removePositionedObject):

  • rendering/RenderBlock.h:

LayoutTests:

  • fast/dynamic/position-fixed-to-absolute-with-positioned-child-crash-expected.txt: Added.
  • fast/dynamic/position-fixed-to-absolute-with-positioned-child-crash.html: Added.
12:38 Changeset [187501] by ap@apple.com
  • 3 edits in trunk/Tools

webkitbot and WKR unnecessarily rely on webkit-queues.appspot.com
https://bugs.webkit.org/show_bug.cgi?id=147359

Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/tool/commands/newcommitbot.py:

(NewCommitBot.begin_work_queue):

  • Scripts/webkitpy/tool/commands/sheriffbot.py:

(SheriffBot.begin_work_queue):

12:23 Changeset [187500] by drousso@apple.com
  • 6 edits in trunk/Source/WebInspectorUI

Web Inspector: Invalid selectors can be applied to the stylesheet
https://bugs.webkit.org/show_bug.cgi?id=147230

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Models/CSSRule.js:

(WebInspector.CSSRule.prototype.set selectorText):
Fires an event with data stating if the newly applied selector was valid or not.
(WebInspector.CSSRule.prototype._selectorRejected):
(WebInspector.CSSRule.prototype._selectorResolved):
(WebInspector.CSSRule):

  • UserInterface/Models/DOMNodeStyles.js:

(WebInspector.DOMNodeStyles.prototype.changeRuleSelector.ruleSelectorChanged):
(WebInspector.DOMNodeStyles.prototype.changeRuleSelector):
Now returns a promise that will reject if CSSAgent.setRuleSelector has an
error, such as if the selector is invalid, and resolve otherwise.

  • UserInterface/Views/CSSStyleDeclarationSection.css:

(.style-declaration-section:not(.invalid-selector) > .header > .icon.toggle-able:hover):
(.style-declaration-section:not(.invalid-selector).rule-disabled > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .selector > *):
(.style-declaration-section > .header > .icon.toggle-able:hover): Deleted.
(.style-declaration-section.rule-disabled > .header > .icon): Deleted.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype._toggleRuleOnOff):
Only allow rule toggling if the selector is valid.
(WebInspector.CSSStyleDeclarationSection.prototype._markSelector):
If the new selector is valid, refresh the section. Otherwise, apply a class
to the section element that marks the selector as being invalid.
(WebInspector.CSSStyleDeclarationSection.prototype.get _hasInvalidSelector):

12:16 Changeset [187499] by bshafiei@apple.com
  • 2 edits in branches/safari-600.1.4.17-branch/Source/WebCore

Merged r187490. rdar://problem/22035036

12:14 Changeset [187498] by simon.fraser@apple.com
  • 2 edits in trunk/Source/WebCore

Fix builds using PathCairo.

  • platform/graphics/cairo/PathCairo.cpp:

(WebCore::Path::apply):

11:51 Changeset [187497] by basile_clement@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

stress/math-pow-with-constants.js fails in cloop
https://bugs.webkit.org/show_bug.cgi?id=147167

Reviewed by Geoffrey Garen.

Baseline JIT, DFG and FTL are using a fast exponentiation fast path
when computing Math.pow() with an integer exponent that is not taken in
the LLInt (or the DFG abstract interpreter). This leads to the result
of pow changing depending on the compilation tier or the fact that
constant propagation kicks in, which is undesirable.

This patch adds the fast path to the slow operationMathPow in order to
maintain an illusion of consistency.

  • runtime/MathCommon.cpp:

(JSC::operationMathPow):

  • tests/stress/math-pow-coherency.js: Added.

(pow42):
(build42AsDouble.opaqueAdd):
(build42AsDouble):
(powDouble42):
(clobber):
(pow42NoConstantFolding):
(powDouble42NoConstantFolding):

11:47 Changeset [187496] by commit-queue@webkit.org
  • 25 edits
    6 adds in trunk

Web Inspector: Show Pseudo Elements in DOM Tree
https://bugs.webkit.org/show_bug.cgi?id=139612

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

Source/JavaScriptCore:

  • inspector/protocol/DOM.json:

Add new properties to DOMNode if it is a pseudo element or if it has
pseudo element children. Add new events for if a pseudo element is
added or removed dynamically to an existing DOMNode.

Source/WebCore:

Tests: inspector/css/pseudo-element-matches-for-pseudo-element-node.html

inspector/dom/pseudo-element-dynamic.html
inspector/dom/pseudo-element-static.html

Much of this patch was modelled after the Blink implementation of
pseudo element inspection.

  • dom/PseudoElement.h:
  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::~PseudoElement):
(WebCore::PseudoElement::clearHostElement):
Since InspectorDOMAgent may hold a reference to this PseudoElement we
can't report it as destroyed in the destructor, as that wouldn't be
reached if the inspector holds a reference. Move this to when the
psuedo element is disconnected, which is immediately before destruction.

  • inspector/InspectorCSSAgent.h:
  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
When computing styles for a pseudo element, compute styles from the
host element for just the pseudo element's pseudo type. Likewise
only include matched results, not inherited or others.

(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
Add the pseudo type to the checker context to try and detect exactly
which selector in a list of selectors matched the pseudo element.

  • inspector/InspectorDOMAgent.h:
  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::unbind):
When unbinding an element, also unbind any pseudo element children
it may have had and bound.

(WebCore::InspectorDOMAgent::assertEditableNode):
(WebCore::InspectorDOMAgent::assertEditableElement):
(WebCore::InspectorDOMAgent::removeNode):
Improve grammar in error message. Don't allow editing pseudo elements.

(WebCore::pseudoElementType):
(WebCore::InspectorDOMAgent::buildObjectForNode):
(WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
If a node is a pseudo element include its pseudoType.
If a node has pseudo element children include them.

(WebCore::InspectorDOMAgent::pseudoElementCreated):
(WebCore::InspectorDOMAgent::pseudoElementDestroyed):
When pseudo elements are dynamically created or destroyed
push pseudo element nodes to the frontend if needed.

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::pseudoElementCreatedImpl):
(WebCore::InspectorInstrumentation::pseudoElementDestroyedImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::pseudoElementCreated):
(WebCore::InspectorInstrumentation::pseudoElementDestroyed):
(WebCore::InspectorInstrumentation::layerTreeDidChange):
(WebCore::InspectorInstrumentation::renderLayerDestroyed):
Plumbing for pseudo element created/destroyed events.

  • style/StyleResolveTree.cpp:

(WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
This is the only place a pseudo element is created, inform the inspector.

  • inspector/InspectorOverlay.cpp:

(WebCore::buildObjectForElementData):
Update the element data for the node highlight label to include the
host element's selector and the pseudo element selector.

Source/WebInspectorUI:

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype._pseudoElementAdded):
Hook up the new pseudo element DOMNode to the parent.

(WebInspector.DOMTreeManager.prototype._pseudoElementRemoved):
Unhook the pseudo element from its parent.

(WebInspector.DOMTreeManager.prototype._unbind):
When unbinding, unbind any pseudo element children we may have had.

  • UserInterface/Models/DOMNode.js:

(WebInspector.DOMNode.prototype.isPseudoElement):
(WebInspector.DOMNode.prototype.pseudoType):
(WebInspector.DOMNode.prototype.hasPseudoElements):
(WebInspector.DOMNode.prototype.pseudoElements):
New state of a DOMNode may include pseudo elements.

(WebInspector.DOMNode.prototype.appropriateSelectorFor):
A selector for this node includes the selector for the node above it.

  • UserInterface/Protocol/DOMObserver.js:

(WebInspector.DOMObserver.prototype.pseudoElementAdded):
(WebInspector.DOMObserver.prototype.pseudoElementRemoved):
Pass the message on to DOMTreeManager.

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.get editable):
Pseudo element nodes are not editable.

(WebInspector.DOMTreeElement.prototype.showChildNode):
(WebInspector.DOMTreeElement.prototype.onpopulate):
(WebInspector.DOMTreeElement.prototype.updateChildren):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
(WebInspector.DOMTreeElement.prototype._singleTextChild):
(WebInspector.DOMTreeElement.prototype._hasVisibleChildren):
(WebInspector.DOMTreeElement.prototype._visibleChildren):
(WebInspector.DOMTreeElement.prototype._updateChildren):
(WebInspector.DOMTreeElement.prototype.adjustCollapsedRange):
(WebInspector.DOMTreeElement.prototype.handleLoadAllChildren):
A DOMTreeElement's children are no longer 1-to-1 to DOMNode's children.
Instead a DOMNode may have a before/after pseudo element child that
are not included in the children list. Update parts of DOMTreeElement
to respect this list of visible children.

  • UserInterface/Views/DOMTreeElementPathComponent.js:

(WebInspector.DOMTreeElementPathComponent):

  • UserInterface/Views/PathComponentIcons.css:

(.dom-pseudo-element-icon .icon):
Styling for the path component when a pseudo element is selected.

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline .html-pseudo-element):
(.dom-tree-outline .html-fragment.shadow):
(.webkit-html-fragment.shadow): Deleted.
Styles for pseudo elements in the DOM tree.

  • UserInterface/Views/DOMTreeOutline.js:

(WebInspector.DOMTreeOutline.prototype._hideElement):
Make the hide element selector hide the host element.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.addEventListeners):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.removeEventListeners):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
Pseudo class changes won't happen on pseudo elements, but will
happen on their host element, so listen to and make pseudo class
changes to the host element.

  • UserInterface/Views/RulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules > *:first-child:matches(.new-rule)):
Since a pseudo element does not have a style attribute,
give some margin in the style sidebar above the "New Rule"
button so it looks better.

LayoutTests:

  • inspector/css/pseudo-element-matches-for-pseudo-element-node-expected.txt: Added.
  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html: Added.
  • inspector/dom/pseudo-element-dynamic-expected.txt: Added.
  • inspector/dom/pseudo-element-dynamic.html: Added.
  • inspector/dom/pseudo-element-static-expected.txt: Added.
  • inspector/dom/pseudo-element-static.html: Added.
11:42 Changeset [187495] by fpizlo@apple.com
  • 2 edits in trunk/Source/WTF

Unreviewed, fix Windows build.

  • wtf/MetaAllocatorHandle.h:

(WTF::MetaAllocatorHandle::key):

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

Remove some more bits of WebTiledLayer
https://bugs.webkit.org/show_bug.cgi?id=147356

Reviewed by Simon Fraser.

  • platform/graphics/ca/PlatformCALayer.h:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayerCocoa::setContentsScale): Deleted.
(PlatformCALayer::setTileSize): Deleted.

11:22 Changeset [187493] by simon.fraser@apple.com
  • 4 edits in trunk/Source/WebCore

Change markContainingBlocksForLayout() to take an enum, rather than a bool
https://bugs.webkit.org/show_bug.cgi?id=147345

Reviewed by Daniel Bates.

Change markContainingBlocksForLayout to take an enum class for the scheduleRelayout
argument, for better code readability.

  • page/FrameView.cpp:

(WebCore::FrameView::layout):
(WebCore::FrameView::scheduleRelayout):
(WebCore::FrameView::scheduleRelayoutOfSubtree):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::markContainingBlocksForLayout):

  • rendering/RenderObject.h:
11:22 Changeset [187492] by simon.fraser@apple.com
  • 13 edits in trunk/Source

PathApplierFunction should take a reference to a PathElement
https://bugs.webkit.org/show_bug.cgi?id=147337

Reviewed by Dan Bates.

Convert PathApplierFunction to take a const PathElement&, since it can never be null.

Source/WebCore:

  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(ConvertPathToScreenSpaceFunction):

  • inspector/InspectorOverlay.cpp:

(WebCore::appendPathSegment):

  • platform/graphics/Path.cpp:

(WebCore::pathLengthApplierFunction):

  • platform/graphics/Path.h:
  • platform/graphics/PathTraversalState.h:

(WebCore::PathTraversalState::processPathElement):

  • platform/graphics/cg/PathCG.cpp:

(WebCore::CGPathApplierToPathApplier):

  • rendering/svg/SVGMarkerData.h:

(WebCore::SVGMarkerData::updateFromPathElement):
(WebCore::SVGMarkerData::updateMarkerDataForPathElement):

  • rendering/svg/SVGSubpathData.h:

(WebCore::SVGSubpathData::updateFromPathElement):

  • svg/SVGPathUtilities.cpp:

(WebCore::pathIteratorForBuildingString):

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::pathPointCountApplierFunction):
(IPC::pathEncodeApplierFunction):

11:20 Changeset [187491] by jer.noble@apple.com
  • 12 edits in trunk/Source

[iOS] Notify fullscreen controller in UIProcess whether external playback is allowed
https://bugs.webkit.org/show_bug.cgi?id=147343

Reviewed by Brady Eidson.

Source/WebCore:

Pass the value of the MediaElementSession's wirelessVideoPlaybackDisabled() property up through WebKit2 to
WebVideoFullscreenControllerAVKit.

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::setWirelessVideoPlaybackDisabled): Pass to the interface on the main thread.

  • platform/ios/WebVideoFullscreenInterface.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.h:
  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::setWirelessVideoPlaybackDisabled): Sets .allowsExternalPlayback to !disabled.
(WebVideoFullscreenInterfaceAVKit::wirelessVideoPlaybackDisabled): Returns the last value set.

  • platform/ios/WebVideoFullscreenModelVideoElement.mm:

(WebVideoFullscreenModelVideoElement::setWebVideoFullscreenInterface): Update the value of wirelessVideoPlaybackDisabled

if the element is present.

(WebVideoFullscreenModelVideoElement::setVideoElement): Ditto if the interface is present.
(WebVideoFullscreenModelVideoElement::updateForEventName): Update the value either way.

Source/WebKit2:

Pass the boolean property wirelessVideoPlaybackDisabled across the UIProcess/WebProcess boundary.

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setWirelessVideoPlaybackDisabled):

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenInterfaceContext::setWirelessVideoPlaybackDisabled):
(WebKit::WebVideoFullscreenManager::WebVideoFullscreenManager):
(WebKit::WebVideoFullscreenManager::setWirelessVideoPlaybackDisabled):

11:11 Changeset [187490] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Handle null CFArrayRef returning from _CFHTTPParsedCookiesWithResponseHeaderFields.
<rdar://problem/21995928> and https://bugs.webkit.org/show_bug.cgi?id=147365

Reviewed by Alexey Proskuryakov.

  • platform/network/cf/CookieJarCFNet.cpp:

(WebCore::filterCookies): ASSERT the input is not null.
(WebCore::createCookies): Always return a CFArrayRef, even if it's empty.

10:24 Changeset [187489] by cdumez@apple.com
  • 18 edits
    3 copies
    31 adds
    2 deletes in trunk

Allow lax MIME type parsing for same-origin CSS in quirks mode.
https://bugs.webkit.org/show_bug.cgi?id=147327
<rdar://problem/22010303>

Reviewed by Zalan Bujtas.

Source/WebCore:

The change made in r180020 is too strict for the web, and doesn't match Firefox
Chrome, or IE's behavior. In particular, it does not respect the same-origin
carveout that the HTML spec specifies:
https://html.spec.whatwg.org/multipage/semantics.html#link-type-stylesheet

This patch corrects that oversight and aligns our behavior with other popular
browsers.

This change was adapted from Blink r196678:
https://src.chromium.org/viewvc/blink?revision=196678&view=revision

Tests: http/tests/security/cross-origin-css-in-quirks-1.html

http/tests/security/cross-origin-css-in-quirks-2.html
http/tests/security/cross-origin-css-in-quirks-3.html
http/tests/security/cross-origin-css-in-quirks-4.html
http/tests/security/cross-origin-css-in-quirks-5.html
http/tests/security/cross-origin-css-in-quirks-6.html
http/tests/security/cross-origin-css-in-quirks-7.html
http/tests/security/cross-origin-css-in-quirks-8.html
http/tests/security/same-origin-css-1.html
http/tests/security/same-origin-css-2.html
http/tests/security/same-origin-css-3.html
http/tests/security/same-origin-css-4.html
http/tests/security/same-origin-css-5.html
http/tests/security/same-origin-css-6.html
http/tests/security/same-origin-css-7.html
http/tests/security/same-origin-css-8.html
http/tests/security/same-origin-css-in-quirks.html

  • css/StyleRuleImport.cpp:

(WebCore::StyleRuleImport::setCSSStyleSheet):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):

  • css/StyleSheetContents.h:
  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::sheetText):
(WebCore::CachedCSSStyleSheet::canUseSheet):
(WebCore::CachedCSSStyleSheet::checkNotify): Deleted.

  • loader/cache/CachedCSSStyleSheet.h:

LayoutTests:

Add layout test coverage for MIME type parsing for same-origin CSS in
quirks mode and not.

  • http/tests/inspector/css/bad-mime-type-expected.txt:
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-and-css-extension-expected.txt:
  • http/tests/mime/standard-mode-does-not-load-stylesheet-with-text-plain-expected.txt:
  • http/tests/misc/css-accept-any-type-expected.txt: Removed.
  • http/tests/misc/css-accept-any-type.html: Removed.
  • http/tests/misc/css-reject-any-type-in-strict-mode-expected.txt:
  • http/tests/security/cross-origin-css-1-expected.txt:
  • http/tests/security/cross-origin-css-2-expected.txt:
  • http/tests/security/cross-origin-css-4-expected.txt:
  • http/tests/security/cross-origin-css-5-expected.txt:
  • http/tests/security/cross-origin-css-7-expected.txt:
  • http/tests/security/cross-origin-css-in-quirks-1-expected.txt: Copied from LayoutTests/http/tests/security/cross-origin-css-1-expected.txt.
  • http/tests/security/cross-origin-css-in-quirks-1.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-2-expected.txt: Copied from LayoutTests/http/tests/security/cross-origin-css-2-expected.txt.
  • http/tests/security/cross-origin-css-in-quirks-2.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-3-expected.txt: Added.
  • http/tests/security/cross-origin-css-in-quirks-3.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-4-expected.txt: Added.
  • http/tests/security/cross-origin-css-in-quirks-4.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-5-expected.txt: Copied from LayoutTests/http/tests/security/cross-origin-css-5-expected.txt.
  • http/tests/security/cross-origin-css-in-quirks-5.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-6-expected.txt: Added.
  • http/tests/security/cross-origin-css-in-quirks-6.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-7-expected.txt: Added.
  • http/tests/security/cross-origin-css-in-quirks-7.html: Added.
  • http/tests/security/cross-origin-css-in-quirks-8-expected.txt: Added.
  • http/tests/security/cross-origin-css-in-quirks-8.html: Added.
  • http/tests/security/same-origin-css-1-expected.txt: Added.
  • http/tests/security/same-origin-css-1.html: Added.
  • http/tests/security/same-origin-css-2-expected.txt: Added.
  • http/tests/security/same-origin-css-2.html: Added.
  • http/tests/security/same-origin-css-3-expected.txt: Added.
  • http/tests/security/same-origin-css-3.html: Added.
  • http/tests/security/same-origin-css-4-expected.txt: Added.
  • http/tests/security/same-origin-css-4.html: Added.
  • http/tests/security/same-origin-css-5-expected.txt: Added.
  • http/tests/security/same-origin-css-5.html: Added.
  • http/tests/security/same-origin-css-6-expected.txt: Added.
  • http/tests/security/same-origin-css-6.html: Added.
  • http/tests/security/same-origin-css-7-expected.txt: Copied from LayoutTests/http/tests/security/cross-origin-css-7-expected.txt.
  • http/tests/security/same-origin-css-7.html: Added.
  • http/tests/security/same-origin-css-8-expected.txt: Added.
  • http/tests/security/same-origin-css-8.html: Added.
  • http/tests/security/same-origin-css-in-quirks-expected.txt: Added.
  • http/tests/security/same-origin-css-in-quirks.html: Added.
  • platform/mac/http/tests/misc/acid3-expected.txt:
09:58 Changeset [187488] by fpizlo@apple.com
  • 6 edits in trunk/Source

Add logging when executable code gets deallocated
https://bugs.webkit.org/show_bug.cgi?id=147355

Reviewed by Mark Lam.

Source/JavaScriptCore:

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::~JITCode): Print something when this is freed.

  • jit/JITCode.cpp:

(JSC::JITCodeWithCodeRef::~JITCodeWithCodeRef): Print something when this is freed.

Source/WTF:

  • wtf/MetaAllocator.cpp:

(WTF::MetaAllocatorHandle::dump): It's useful to be able to dump these.

  • wtf/MetaAllocatorHandle.h:
09:55 Changeset [187487] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG::safeToExecute() cases for GetByOffset/PutByOffset don't handle clobbered structure abstract values correctly
https://bugs.webkit.org/show_bug.cgi?id=147354

Reviewed by Michael Saboff.

If m_structure.isClobbered(), it means that we had a side effect that clobbered
the abstract value but it may recover back to its original value at the next
invalidation point. Since the invalidation point hasn't been reached yet, we need
to conservatively treat the clobbered state as if it was top. At the invalidation
point, the clobbered set will return back to being unclobbered.

In addition to fixing the bug, this introduces isInfinite(), which should be used
in places where it's tempting to just use isTop().

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute): Fix the bug.

  • dfg/DFGStructureAbstractValue.cpp:

(JSC::DFG::StructureAbstractValue::contains): Switch to using isInfinite().
(JSC::DFG::StructureAbstractValue::isSubsetOf): Switch to using isInfinite().
(JSC::DFG::StructureAbstractValue::isSupersetOf): Switch to using isInfinite().
(JSC::DFG::StructureAbstractValue::overlaps): Switch to using isInfinite().

  • dfg/DFGStructureAbstractValue.h:

(JSC::DFG::StructureAbstractValue::isFinite): New convenience method.
(JSC::DFG::StructureAbstractValue::isInfinite): New convenience method.
(JSC::DFG::StructureAbstractValue::onlyStructure): Switch to using isInfinite().

09:29 Changeset [187486] by ap@apple.com
  • 3 edits
    2 deletes in trunk

Rolling out r187463, because it caused memory corruption on multiple tests.

Original bug:
Crash happens when calling removeEventListener for an SVG element which has an instance inside a <defs> element of shadow tree
https://bugs.webkit.org/show_bug.cgi?id=147290

  • svg/custom/remove-event-listener-shadow-disallowed-element-expected.txt: Removed.
  • svg/custom/remove-event-listener-shadow-disallowed-element.svg: Removed.

Source/WebCore:

  • svg/SVGUseElement.cpp:

(WebCore::removeDisallowedElementsFromSubtree):
(WebCore::associateClonesWithOriginals):

03:03 Changeset [187485] by carlosgc@webkit.org
  • 10 edits in trunk/Source

[GTK] Use fastMalloc instead of g_slice
https://bugs.webkit.org/show_bug.cgi?id=147357

Reviewed by Sergio Villar Senin.

The use of g_slice is no longer encouraged by glib developers.

Source/WebCore:

  • platform/graphics/gstreamer/GStreamerUtilities.cpp:

(WebCore::mapGstBuffer):
(WebCore::unmapGstBuffer):

Source/WebKit2:

  • UIProcess/API/gtk/WebKitCredential.cpp:

(webkitCredentialCreate):
(webkit_credential_free):

  • UIProcess/API/gtk/WebKitJavascriptResult.cpp:

(webkitJavascriptResultCreate):
(webkit_javascript_result_unref):

  • UIProcess/API/gtk/WebKitMimeInfo.cpp:

(webkitMimeInfoCreate):
(webkit_mime_info_unref):

  • UIProcess/API/gtk/WebKitNavigationAction.cpp:

(webkitNavigationActionCreate):
(webkit_navigation_action_copy):
(webkit_navigation_action_free):

  • UIProcess/API/gtk/WebKitPrivate.h:
  • UIProcess/API/gtk/WebKitScriptDialog.cpp:

(webkitScriptDialogCopy):
(webkitScriptDialogFree):

  • UIProcess/API/gtk/WebKitUserContent.cpp:

(webkit_user_style_sheet_unref):
(webkit_user_style_sheet_new):
(webkit_user_script_unref):
(webkit_user_script_new):

01:32 Changeset [187484] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Speed up StringBuilder::appendQuotedJSONString()
https://bugs.webkit.org/show_bug.cgi?id=147352

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

  • wtf/text/StringBuilder.cpp:

(WTF::appendQuotedJSONStringInternal):
The cases '"' and '
' are not that uncommon, and they can easily
be handled in the original branch testing for them.

This is about 2.5% better on the JSON.stringify test.

07/27/15:

23:01 Changeset [187483] by utatane.tea@gmail.com
  • 8 edits
    3 adds in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.enumerate
https://bugs.webkit.org/show_bug.cgi?id=147347

Reviewed by Sam Weinig.

This patch implements Reflect.enumerate.
It returns the iterator that iterates the enumerable keys of the given object.
It follows the for-in's enumeration order.

To implement it, we write down the same logic to the for-in's enumeration code in C++.

(JSC::JSGlobalObject::init):
(JSC::JSGlobalObject::visitChildren):

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::propertyNameIteratorStructure):

  • runtime/JSPropertyNameIterator.cpp: Added.

(JSC::JSPropertyNameIterator::JSPropertyNameIterator):
(JSC::JSPropertyNameIterator::clone):
(JSC::JSPropertyNameIterator::create):
(JSC::JSPropertyNameIterator::finishCreation):
(JSC::JSPropertyNameIterator::visitChildren):
(JSC::JSPropertyNameIterator::next):
(JSC::propertyNameIteratorFuncNext):

  • runtime/JSPropertyNameIterator.h: Added.

(JSC::JSPropertyNameIterator::createStructure):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectEnumerate):

  • tests/stress/reflect-enumerate.js: Added.

(shouldBe):
(shouldThrow):

21:52 Changeset [187482] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Roll out r187376. rdar://problem/22000647

21:35 Changeset [187481] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] REGRESSION (r187376): Form editing buttons are missing from the Shortcut Bar
https://bugs.webkit.org/show_bug.cgi?id=147351

Reviewed by Adele Peterson.

We were relying on -[WKContentView inputAccessoryView] getting called to initialize the form
accessory view, even when that method would always return nil, as it does on iPad. After
r187376, that method changed to initializing the view only when returning it, which caused
this bug.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _displayFormNodeInputView]): Call the new -_ensureFormAccessoryView from
here, when we are going to need the view.
(-[WKContentView _ensureFormAccessoryView]): Moved initialization code from
-inputAccessoryView here, and removed outdated +instancesRespondToSelector: check.
(-[WKContentView inputAccessoryView]): Now calls through -formAccessoryView.
(-[WKContentView formAccessoryView]): Added call to -_ensureFormAccessoryView here.

21:29 Changeset [187480] by mattbaker@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Record button in Timelines view is clipped on non-retina. Hovering over the dot draws it correctly.
https://bugs.webkit.org/show_bug.cgi?id=147346

Reviewed by Joseph Pecoraro.

Since the hovered button isn't clipped (-webkit-filter is applied in that case), add a filter that
doesn't alter the button's appearance to the non-hovered selector.

  • UserInterface/Views/TimelineSidebarPanel.css:

(.sidebar > .panel.navigation.timeline > .status-bar > .record-glyph):
Added brightness 100% filter to non-hovered selector.

21:23 Changeset [187479] by utatane.tea@gmail.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.preventExtensions
https://bugs.webkit.org/show_bug.cgi?id=147331

Reviewed by Sam Weinig.

Implement Reflect.preventExtensions.
This is different from Object.preventExensions.

  1. When preventExtensions is called onto the non-object, it raises the TypeError.
  2. Reflect.preventExtensions does not raise the TypeError when the preventExtensions operation is failed.

For the (2) case, since there is no Proxy implementation currently, Reflect.preventExtensions always succeed.

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectPreventExtensions):

  • tests/stress/reflect-prevent-extensions.js: Added.

(shouldBe):
(shouldThrow):

20:26 Changeset [187478] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

WebsiteDataStore should clean up its storage in the network process when destroyed.
<https://webkit.org/b/147349>
<rdar://problem/21838764>

Reviewed by Darin Adler.

Have ~WebsiteDataStore() send a DestroyPrivateBrowsingSession message to all networking processes
for ephemeral sessions. This plugs a NetworkStorageSession leak that could retain a large
CFNetwork object graph.

This complements r187115 which did the same for network process storage owned by
API::Session objects.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::~WebsiteDataStore):

19:19 Changeset [187477] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

19:18 Changeset [187476] by bshafiei@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

19:17 Changeset [187475] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

18:02 Changeset [187474] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.44

New tag.

18:02 Changeset [187473] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.8.7

New tag.

18:02 Changeset [187472] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.17.5

New tag.

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

First in-window viewStateChange synchronously blocks despite not previously being in-window
https://bugs.webkit.org/show_bug.cgi?id=147344
<rdar://problem/22021772>

Reviewed by Simon Fraser.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::updateViewState):
(WebKit::WebPageProxy::dispatchViewStateChange):
The whole point of m_viewWasEverInWindow was so that we would not
synchronously wait when a view was added to a window for the first time,
only all subsequent times.

However, since m_viewWasEverInWindow was being set *before* being
checked in dispatchViewStateChange, we were always blocking. This is
a huge waste of main-thread time, because there's no reason to wait
for the first paint if you've never seen the view before (and shouldn't
expect it to have content).

Instead, set the flag after dispatching a view state change, so it becomes
"have we ever sent a view state with IsInWindow set" instead.

17:32 Changeset [187470] by achristensen@apple.com
  • 11 edits in trunk

Use Ninja on Windows.
https://bugs.webkit.org/show_bug.cgi?id=147228

Reviewed by Martin Robinson.

.:

  • Source/cmake/OptionsWindows.cmake:

Only use /MP when using generated Visual Studio solution files to build.
It makes compiling parallel in MSVC, but Ninja doesn't like it.

Source/JavaScriptCore:

  • CMakeLists.txt:

Set the working directory when generating LowLevelInterpreterWin.asm to put LowLevelInterpreterWin.asm.sym in the right place.

Source/WebKit:

  • PlatformWin.cmake:

Added /NODEFAULTLIB:LIBCMT to link WebKit.dll successfully with Ninja.

Source/WebKit/win:

  • WebView.h:

Add more #if USE(CA) to protect the CACFLayer code.

Tools:

  • WinLauncher/CMakeLists.txt:

WinLauncherLib must make WinLauncher.dll, not WinLauncherLib.dll.

  • Scripts/build-webkit:

Use Ninja to build WinCairo by default, but fall back to Visual Studio if Ninja is not on the system.

17:20 Changeset [187469] by jond@apple.com
  • 2 edits in trunk/Source/WebCore

Adding Web Components to feature status page.
https://bugs.webkit.org/show_bug.cgi?id=147270

Reviewed by Timothy Hatcher.

  • features.json:
17:13 Changeset [187468] by mattbaker@apple.com
  • 13 edits in trunk/Source/WebInspectorUI

Web Inspector: Clicking a frame in the Rendering Frames timeline should select the corresponding grid row
https://bugs.webkit.org/show_bug.cgi?id=147013

Reviewed by Timothy Hatcher.

Added ability to select (or highlight) a particular frame by clicking in the overview graph. A tick mark
appears above the selected frame inside the ruler, and the frame element's background color changes to a light
blue vertical highlight. Frame selection is synced across the timeline view's data grid, overview graph, and
navigation bar path components.

A few behaviors:

  • Clicking a frame outside the current ruler selection selects the frame.
  • Clicking the selected frame will deselect it.
  • Resizing the ruler selection to exclude the selected frame will deselect it.
  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.select):
No need to generate two SelectedNodeChanged events when selecting a node causes
the currently selected node to be deselected.

  • UserInterface/Views/LayoutTimelineOverviewGraph.js:

(WebInspector.LayoutTimelineOverviewGraph):

  • UserInterface/Views/NetworkTimelineOverviewGraph.js:

(WebInspector.NetworkTimelineOverviewGraph):

  • UserInterface/Views/ScriptTimelineOverviewGraph.js:

(WebInspector.ScriptTimelineOverviewGraph): Set TimelineOverview during construction.
Set TimelineOverview during construction.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.css:

(.timeline-overview-graph.rendering-frame > .frame-marker):
(body.window-inactive .timeline-overview-graph.rendering-frame > .frame-marker):
Added styles for selected frame marker.

  • UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:

(WebInspector.RenderingFrameTimelineOverviewGraph):
Set TimelineOverview during construction.
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Added frame marker element and frame selection via mouse click.

  • UserInterface/Views/RenderingFrameTimelineView.js:

(WebInspector.RenderingFrameTimelineView.prototype.treeElementDeselected):
Deselect grid node when frame is deselected from the overview graph.
(WebInspector.RenderingFrameTimelineView.prototype.filterDidChange): Deleted.
Removed unnecessary override.

  • UserInterface/Views/TimelineOverview.js:

Added selectRecord method and RecordSelected event.
(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseDown):
(WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
Since timeline ruler specifies pointer-events: all, click events must be forwarded to the
underlying overview graph. Click events following changes to the ruler's selection are ignored.

(WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
(WebInspector.TimelineOverview.prototype._recordSelected):
Forward RecordSelected events from child graphs to clients of the overview.

  • UserInterface/Views/TimelineOverviewGraph.js:

Added RecordSelected event.
(WebInspector.TimelineOverviewGraph):
(WebInspector.TimelineOverviewGraph.prototype.get visible):
(WebInspector.TimelineOverviewGraph.prototype.get selectedRecord):
(WebInspector.TimelineOverviewGraph.prototype.set selectedRecord):
Added property for selecting a record in the graph. Derived graph types can implement record selection
and choose how to style the selected record.
(WebInspector.TimelineOverviewGraph.prototype.updateLayout):
(WebInspector.TimelineOverviewGraph.prototype.needsLayout):
Update frame marker during an animation frame.
(WebInspector.TimelineOverviewGraph.prototype.dispatchSelectedRecordChangedEvent):
Dispatch wrapper to simplify things.
(WebInspector.TimelineOverviewGraph.prototype.updateSelectedRecord):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout.update):
(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
Inform derived overview graph to optionally style the selected record.
(WebInspector.TimelineOverviewGraph.prototype.set timelineOverview): Deleted.
No longer needed. TimelineOverview set during construction.

  • UserInterface/Views/TimelineRecordFrame.css:

(.timeline-record-frame):
(.timeline-record-frame.tall):
Limit the "fade out" effect to frames that are >= 95% of the graph height, otherwise the
gradient mask is noticeable when selecting a shorter frame.
(.timeline-record-frame.selected):
(body.window-inactive .timeline-record-frame.selected):
(.timeline-record-frame.selected > .frame):
Added highlight (and dimmed inactive highlight) for selected frame element.

  • UserInterface/Views/TimelineRecordFrame.js:

(WebInspector.TimelineRecordFrame.prototype.get selected):
(WebInspector.TimelineRecordFrame.prototype.set selected):
Added property for setting selected style.

  • UserInterface/Views/TimelineRecordingContentView.js:

(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
Select record in overview in response to changing navigation path.
(WebInspector.TimelineRecordingContentView.prototype._recordSelected.get console):
(WebInspector.TimelineRecordingContentView.prototype._recordSelected):
Update selected tree element in response to changing record selection in the overview graph.

17:12 Changeset [187467] by benjamin@webkit.org
  • 4 edits in trunk/Source/WebCore

ShrinkToFit() all the DFA's vectors when we no longer need to add new nodes to it
https://bugs.webkit.org/show_bug.cgi?id=147341

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-07-27
Reviewed by Geoffrey Garen.

Add a finalizer to the DFA to reduce the total memory needed
to store it.

On real test lists, this cuts the peak memory usage by about 1 megabyte.

The NFA already had a finalizer, no need to modify that one.

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::finalize):

  • contentextensions/DFA.h:
  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::NFAToDFA::convert):

17:06 Changeset [187466] by beidson@apple.com
  • 4 edits in trunk/Source/WebCore

Crash in WebCore::DocumentLoader::willSendRequest() with ContentFilter and AppCache.
<rdar://problem/21960398> and https://bugs.webkit.org/show_bug.cgi?id=147339

Reviewed by Alexey Proskuryakov.

No new tests (Not yet proven to be possible to test this).

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest): Grab the identifier from the CachedResource directly, not from the null ResourceLoader.
(WebCore::DocumentLoader::continueAfterNavigationPolicy): Null check the ResourceLoader, as it can definitely be gone by this point.

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::clearLoader): Save off the identifier for later use.

  • loader/cache/CachedResource.h:

(WebCore::CachedResource::identifierForLoadWithoutResourceLoader): Expose the identifier that the ResourceLoader had when it went away.

16:53 Changeset [187465] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Revert change to DOMTreeElement.prototype.remove
https://bugs.webkit.org/show_bug.cgi?id=147336

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

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
This change was accidental, and just resulted in the function calling
itself again. It didn't infinite loops because another path would have
removed the DOMTreeElement, but lets correct this code.

16:51 Changeset [187464] by utatane.tea@gmail.com
  • 5 edits
    3 adds in trunk

SparseValueMap check is skipped when the butterfly's vectorLength is larger than the access-requested index
https://bugs.webkit.org/show_bug.cgi?id=147265

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

JSObject's vector holds the indexed values and we leverage it to represent stored values and holes.
By checking that the given index is in-bound of the vector's length, we can look up the property fast.
And for the sparse array, we have also the separated SparseValueMap to hold the pairs.
And we need to take care that the length of the vector should not overlap the indices stored in the SparseValueMap.

The vector only holds the pure JS values to avoid additional checking for accessors when looking up the value
from the vector. To achieve this, we also store the accessors (and attributed properties) to SparseValueMap
even the index is less than MIN_SPARSE_ARRAY_INDEX.

As a result, if the length of the vector overlaps the indices of the accessors stored in the SparseValueMap,
we accidentally skip the phase looking up from the SparseValueMap. Instead, we just load from the vector and
if the loaded value is an array hole, we decide the given object does not have the value for the given index.

This patch fixes the problem.
When defining the attributed value that index is smaller than the length of the vector, we throw away the vector
and change the object to DictionaryIndexingMode. Since we can assume that indexed accessors rarely exist in
practice, we expect this does not hurt the performance while keeping the fast property access system without
checking the sparse map.

  • runtime/JSObject.cpp:

(JSC::JSObject::putDirectIndexBeyondVectorLength):

  • tests/stress/sparse-map-non-overlapping.js: Added.

(shouldBe):
(testing):
(object.get 1000):

  • tests/stress/sparse-map-non-skip-getter-overriding.js: Added.

(shouldBe):
(obj.get 1):
(testing):

  • tests/stress/sparse-map-non-skip.js: Added.

(shouldBe):
(testing):
(testing2):
(.get for):

LayoutTests:

The previous test "basic-computed-property-name.js" has the issue[1] and
the issue is fixed by this patch.

[1]: https://bugs.webkit.org/show_bug.cgi?id=142943

  • js/basic-computed-property-name-expected.txt:
  • js/script-tests/basic-computed-property-name.js:
16:38 Changeset [187463] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

Crash happens when calling removeEventListener for an SVG element which has an instance inside a <defs> element of shadow tree
https://bugs.webkit.org/show_bug.cgi?id=147290

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-07-27
Reviewed by Simon Fraser.

Source/WebCore:

When the shadow tree is built for a <use> element, all the SVG elements
are allowed to be cloned in the shadow tree but later some of the elements
are disallowed and removed. Make sure, when disallowing an element in the
shadow tree, to reset the correspondingElement relationship between all
the disallowed descendant SVG elements and all their original elements.

Test: svg/custom/remove-event-listener-shadow-disallowed-element.svg

  • svg/SVGUseElement.cpp:

(WebCore::removeDisallowedElementsFromSubtree):

LayoutTests:

Make sure we do not crash when when calling removeEventListener() for an
element which is cloned under a disallowed parent inside the shadow tree
of another <use> element.

  • svg/custom/remove-event-listener-shadow-disallowed-element-expected.txt: Added.
  • svg/custom/remove-event-listener-shadow-disallowed-element.svg: Added.
16:27 Changeset [187462] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Long press or link click can sometimes trigger during/after a preview
https://bugs.webkit.org/show_bug.cgi?id=147338
<rdar://problem/22020770>

Reviewed by Enrica Casucci.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _longPressRecognized:]):
Bail if we're previewing.

(-[WKContentView _dataForPreviewItemController:atPosition:type:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
Always avoid allowing clicks and start interaction when previewing a link.

16:25 Changeset [187461] by simon.fraser@apple.com
  • 5 edits in trunk/Source/WebCore

Rename AnimationBase::isTransformFunctionListValid()
https://bugs.webkit.org/show_bug.cgi?id=147334

Reviewed by Sam Weinig.

isTransformFunctionListValid() was a confusing name for this state. It's true
when the transform function lists for an animation or transition are matched,
so rename it to transformFunctionListsMatch().

No behavior change.

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::transformFunctionListsMatch):
(WebCore::AnimationBase::isTransformFunctionListValid): Deleted.

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFunc):

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::computeExtentOfTransformAnimation):
(WebCore::ImplicitAnimation::validateTransformFunctionList):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::computeExtentOfTransformAnimation):
(WebCore::KeyframeAnimation::validateTransformFunctionList):

16:04 Changeset [187460] by saambarati1@gmail.com
  • 13 edits in trunk/Source/JavaScriptCore

Reduce execution time for "let" and "const" tests
https://bugs.webkit.org/show_bug.cgi?id=147291

Reviewed by Geoffrey Garen.

We don't need to loop so many times for things that will not make it
into the DFG. Also, we can loop a lot less for almost all the tests
because they're mostly testing the bytecode generator.

  • tests/stress/const-and-with-statement.js:
  • tests/stress/const-exception-handling.js:
  • tests/stress/const-loop-semantics.js:
  • tests/stress/const-not-strict-mode.js:
  • tests/stress/const-semantics.js:
  • tests/stress/const-tdz.js:
  • tests/stress/lexical-let-and-with-statement.js:
  • tests/stress/lexical-let-exception-handling.js:

(assert):

  • tests/stress/lexical-let-loop-semantics.js:

(assert):
(shouldThrowTDZ):
(.):

  • tests/stress/lexical-let-not-strict-mode.js:
  • tests/stress/lexical-let-semantics.js:

(.):

  • tests/stress/lexical-let-tdz.js:

(shouldThrowTDZ):
(.):

16:01 Changeset [187459] by akling@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Occasional crashes in WebPage::elementDidBlur()'s async block.
<https://webkit.org/b/147281>
<rdar://problem/21701858>

Reviewed by Anders Carlsson.

Protect the WebPage object until the dispatch_async block has finished.
I have no way to repro this, but there's evidence of some crashing here.

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::elementDidBlur):

15:39 Changeset [187458] by achristensen@apple.com
  • 14 edits
    1 add in trunk

Progress towards building AppleWin with CMake
https://bugs.webkit.org/show_bug.cgi?id=147325

Reviewed by Martin Robinson.

.:

  • Source/cmake/OptionsWindows.cmake:

Link with 64-bit libraries if building 64-bit binaries.
Don't run regular expressions on empty strings when using Ninja.
Removed DebugSuffix Visual Studio environment variables.

Source/WebCore:

  • PlatformAppleWin.cmake: Added.
  • PlatformWin.cmake:
  • PlatformWinCairo.cmake:

Moved a lot of common directories from PlatformWinCairo to PlatformWin.

Source/WebKit:

  • PlatformWin.cmake:

Removed references to non-existing files.

Source/WebKit/win:

  • WebError.cpp:
  • WebKitDLL.cpp:
  • WebPreferences.cpp:
  • WebURLResponse.cpp:

Fix some include quirks.

Source/WTF:

  • wtf/PlatformWin.cmake:

Link with CoreFoundation.lib.

15:30 Changeset [187457] by bshafiei@apple.com
  • 11 edits in branches/safari-600.8-branch

Roll out r180020. rdar://problem/21716372

15:25 Changeset [187456] by bshafiei@apple.com
  • 7 edits
    1 copy
    2 deletes in branches/safari-600.8-branch

Roll out r182829. rdar://problem/21716372

15:18 Changeset [187455] by mcatanzaro@igalia.com
  • 4 edits in trunk/Source/WebKit2

[Seccomp] Set appropriate filters when trapping syscalls by default
https://bugs.webkit.org/show_bug.cgi?id=142983

If we trap syscalls by default, we must not set separate filters to trap
anything here, since it will fail causing us to crash.

But also, there are some things we must allow unconditionally even when
trapping by default. sigreturn, obviously. Also, let's whitelist brk
here instead of in platform-specific code.

Reviewed by Žan Doberšek.

  • Shared/linux/SeccompFilters/SeccompBroker.cpp:

(WebKit::SeccompBroker::launchProcess): Don't trap sigprocmask or sigaction unless allow is
the default action. Also, allow sigreturn and brk is allow is not the default.

  • Shared/linux/SeccompFilters/SeccompFilters.cpp: Added

(WebKit::SeccompFilters::defaultAction):

  • Shared/linux/SeccompFilters/SeccompFilters.h: Added defaultAction
15:10 Changeset [187454] by bshafiei@apple.com
  • 11 edits in branches/safari-600.1.4.17-branch

Roll out r180020. rdar://problem/21716511

15:07 Changeset [187453] by bshafiei@apple.com
  • 7 edits
    1 copy
    2 deletes in branches/safari-600.1.4.17-branch

Roll out r182829. rdar://problem/21716511

14:52 Changeset [187452] by mmaxfield@apple.com
  • 7 edits
    5 adds in trunk/LayoutTests

[Win] Test gardening after r187380.
https://bugs.webkit.org/show_bug.cgi?id=121902

Unreviewed.

  • platform/win/TestExpectations:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.png:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.png:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-left-expected.txt:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.png:
  • platform/win/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.png:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.png:
  • platform/win/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
14:25 Changeset [187451] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build after r187383

  • platform/spi/cocoa/QuartzCoreSPI.h:
14:20 Changeset [187450] by drousso@apple.com
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: support live editing of rule selectors
https://bugs.webkit.org/show_bug.cgi?id=139153

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype.highlightSelector):
Moved from CSSStyleDeclarationSection.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.get _currentSelectorText):
Returns the current selector text, either from the style ownerRule or the selector element text.
(WebInspector.CSSStyleDeclarationSection.prototype._highlightNodesWithSelector):
Now highlights all nodes matching the current selector instead of the ownerRule's selector.
(WebInspector.CSSStyleDeclarationSection.prototype._hideDOMNodeHighlight):
(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOver):
(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseOut):
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
If the character is not a tab, highlight all nodes matching the current selector text.
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyUp):
(WebInspector.CSSStyleDeclarationSection.prototype._hideHighlightOnNodesWithSelector): Deleted.

14:08 Changeset [187449] by jhoneycutt@apple.com
  • 2 edits
    1 add in trunk/Tools

Test for bug #147164 "[iOS] Keyboard bold/italic/underline keys don't
highlight after being tapped to style a selection"
https://bugs.webkit.org/show_bug.cgi?id=147278

Reviewed by Ryosuke Niwa.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/mac/WordBoundaryTypingAttributes.mm: Added.

(-[WordBoundaryTypingAttributesController webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):
Load a page with the string "Hello, world!", then select "world" and
underline it. Test that the typing attributes for the current selection
include the underline attribute.

13:56 Changeset [187448] by andersca@apple.com
  • 2 edits in trunk/Source/WebCore

WKWebsiteDataStore remove methods don't properly delete cookies
https://bugs.webkit.org/show_bug.cgi?id=147333
rdar://problem/21948230

Reviewed by Tim Horton.

If there are multiple cookies for a single domain, make sure to delete all of them
and not just the first one we find.

Fix this by keeping a mapping from domain to a list of cookies.

  • platform/network/mac/CookieJarMac.mm:

(WebCore::deleteCookiesForHostnames):

12:55 Changeset [187447] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187412. rdar://problem/22003112

12:55 Changeset [187446] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merge r187376. rdar://problem/22000647

12:43 Changeset [187445] by ap@apple.com
  • 2 edits in branches/safari-601.1-branch/LayoutTests

More test gardening after r187346 ('>>' descendant combinator).

  • platform/mac/TestExpectations:
12:40 Changeset [187444] by ap@apple.com
  • 7 edits
    2 copies in branches/safari-601.1-branch

Merge r187443.

2015-07-27 Alexey Proskuryakov <ap@apple.com>

Test result gardening for El Capitan.

  • platform/mac-yosemite/fast/text/international/bold-bengali-expected.png: Copied from LayoutTests/platform/mac/fast/text/international/bold-bengali-expected.png.
  • platform/mac-yosemite/fast/text/international/bold-bengali-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bold-bengali-expected.txt.
  • platform/mac/fast/text/font-weights-zh-expected.txt:
  • platform/mac/fast/text/international/bold-bengali-expected.png:
  • platform/mac/fast/text/international/bold-bengali-expected.txt:
  • platform/mac/fast/text/international/danda-space-expected.png:
  • platform/mac/fast/text/international/danda-space-expected.txt:
12:37 Changeset [187443] by ap@apple.com
  • 6 edits
    2 copies in trunk/LayoutTests

Test result gardening for El Capitan.

  • platform/mac-yosemite/fast/text/international/bold-bengali-expected.png: Copied from LayoutTests/platform/mac/fast/text/international/bold-bengali-expected.png.
  • platform/mac-yosemite/fast/text/international/bold-bengali-expected.txt: Copied from LayoutTests/platform/mac/fast/text/international/bold-bengali-expected.txt.
  • platform/mac/fast/text/font-weights-zh-expected.txt:
  • platform/mac/fast/text/international/bold-bengali-expected.png:
  • platform/mac/fast/text/international/bold-bengali-expected.txt:
  • platform/mac/fast/text/international/danda-space-expected.png:
  • platform/mac/fast/text/international/danda-space-expected.txt:
12:27 Changeset [187442] by ap@apple.com
  • 3 edits in branches/safari-601.1-branch

Merge r187439 and r187441.

2015-07-27 Alexey Proskuryakov <ap@apple.com>

More test expectations for rdar://problem/22014672

  • platform/mac/TestExpectations:

2015-07-27 Alexey Proskuryakov <ap@apple.com>

Add test expectations for rdar://problem/22014672

  • platform/mac/TestExpectations:
12:24 Changeset [187441] by ap@apple.com
  • 2 edits in trunk/LayoutTests

More test expectations for rdar://problem/22014672

  • platform/mac/TestExpectations:
12:10 Changeset [187440] by utatane.tea@gmail.com
  • 5 edits in trunk/Source/JavaScriptCore

Rename PropertyNameMode::Both to PropertyNameMode::StringsAndSymbols
https://bugs.webkit.org/show_bug.cgi?id=147311

Reviewed by Sam Weinig.

To make the meaning clear in the user side (PropertyNameArray array(exec, PropertyNameMode::StringsAndSymbols)),
this patch renames PropertyNameMode::Both to PropertyNameMode::StringsAndSymbols.

  • bytecode/ObjectAllocationProfile.h:

(JSC::ObjectAllocationProfile::possibleDefaultPropertyCount):

  • runtime/EnumerationMode.h:
  • runtime/ObjectConstructor.cpp:

(JSC::ownEnumerablePropertyKeys):
(JSC::defineProperties):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::objectConstructorIsSealed):
(JSC::objectConstructorIsFrozen):
(JSC::ownPropertyKeys):

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectOwnKeys):

12:10 Changeset [187439] by ap@apple.com
  • 2 edits in trunk/LayoutTests

Add test expectations for rdar://problem/22014672

  • platform/mac/TestExpectations:
11:54 Changeset [187438] by simon.fraser@apple.com
  • 2 edits in trunk/Source/WebCore

Enhance Animation logging slightly
https://bugs.webkit.org/show_bug.cgi?id=147324

Reviewed by Anders Carlsson.

Include the value of "param" in animation logging, because sometimes it's negative,
and log state changes in a few more places.

  • page/animation/AnimationBase.cpp:

(WebCore::AnimationBase::updateStateMachine):

11:52 Changeset [187437] by saambarati1@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Added a comment explaining that all "addVar()"s should happen before
emitting bytecode for a function's default parameter expressions

Rubber Stamped by Mark Lam.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):

11:48 Changeset [187436] by peavo@outlook.com
  • 6 edits in trunk/Source

[Curl] Crash in CurlDownload::didReceiveHeader when downloading file.
https://bugs.webkit.org/show_bug.cgi?id=146832

Reviewed by Darin Adler.

Source/WebCore:

Only call ResourceResponse::setMimeType from the main thread.
Also, CurlDownload should be reference counted to make sure it
still lives when a function call is invoked on the main thread
from the download thread.

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownloadManager::downloadThread):
(WebCore::CurlDownload::CurlDownload):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::didReceiveData):

  • platform/network/curl/CurlDownload.h:

(WebCore::CurlDownloadListener::didFail):
(WebCore::CurlDownload::setListener):

Source/WebKit/win:

CurlDownload should be reference counted to make sure it still
lives when a function call is invoked on the main thread from
the download thread.

  • WebDownload.h:
  • WebDownloadCurl.cpp:

(WebDownload::init):
(WebDownload::start):
(WebDownload::cancel):
(WebDownload::deletesFileUponFailure):
(WebDownload::setDeletesFileUponFailure):
(WebDownload::setDestination):
(WebDownload::didReceiveResponse):

11:41 Changeset [187435] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Source/WebCore:
Remove duplicate vectors inside of UserMediaRequest
https://bugs.webkit.org/show_bug.cgi?id=147321
<rdar://problem/22011290>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-27
Reviewed by Eric Carlson.

  • Modules/mediastream/UserMediaRequest.h:

(WebCore::UserMediaRequest::deviceUIDsVideo): Deleted.
(WebCore::UserMediaRequest::deviceUIDsAudio): Deleted.

Source/WebKit2:
Renamed duplicate vectors inside UserMediaPermissionRequestProxy
https://bugs.webkit.org/show_bug.cgi?id=147321
<rdar://problem/22011290>

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-07-27
Reviewed by Eric Carlson.

  • UIProcess/UserMediaPermissionRequestProxy.cpp:

(WebKit::UserMediaPermissionRequestProxy::UserMediaPermissionRequestProxy):

  • UIProcess/UserMediaPermissionRequestProxy.h:

(WebKit::UserMediaPermissionRequestProxy::videoDeviceUIDs):
(WebKit::UserMediaPermissionRequestProxy::audioDeviceUIDs):
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsVideo): Deleted.
(WebKit::UserMediaPermissionRequestProxy::deviceUIDsAudio): Deleted.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::startRequest):

01:19 Changeset [187434] by nvasilyev@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: " = $0" in Elements panel can cause a jerk by pushing nodes below it
https://bugs.webkit.org/show_bug.cgi?id=147318

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DOMTreeOutline.css:

(.dom-tree-outline li.selected > span::after):

01:14 Changeset [187433] by calvaris@igalia.com
  • 5 edits in trunk/LayoutTests

[Streams API] Strategy tests need sync with the reference
https://bugs.webkit.org/show_bug.cgi?id=147267

Reviewed by Sam Weinig.

The reference accepted a two new tests for the constructor and another for the size method for both strategies
that we need to bring to WebKit to ensure compliance. Expectations updated accordingly.

  • streams/reference-implementation/byte-length-queuing-strategy-expected.txt:
  • streams/reference-implementation/byte-length-queuing-strategy.html:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
01:07 Changeset [187432] by carlosgc@webkit.org
  • 8 edits in trunk/Source

[GTK] Pass a GstInstallPluginsContext to gst_install_plugins_async
https://bugs.webkit.org/show_bug.cgi?id=147103

Reviewed by Philippe Normand.

Source/WebCore:

  • platform/graphics/gstreamer/GUniquePtrGStreamer.h: Allow to use

GUniquePtr with GstInstallPluginsContext.

Source/WebKit2:

This allows PackageKit to properly position the window and make it
transient to the web view window.

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::setCursor): Disambiguate Cursor now that
we include gtkx.h.
(WebKit::PageClientImpl::createGstInstallPluginsContext): Create a
new GstInstallPluginsContext and set the web view window XID when
running on X11.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/PageClient.h:
  • UIProcess/efl/WebViewEfl.h:
  • UIProcess/gstreamer/WebPageProxyGStreamer.cpp:

(WebKit::WebPageProxy::requestInstallMissingMediaPlugins): Use
PageClient::createGstInstallPluginsContext() to create a new
GstInstallPluginsContext and pass it to gst_install_plugins_async().

00:10 Changeset [187431] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1-branch/LayoutTests

Merged r187395. rdar://problem/21964842

00:10 Changeset [187430] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1-branch

Merged r187352. rdar://problem/21964842

00:09 Changeset [187429] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187393. rdar://problem/21905839

00:08 Changeset [187428] by bshafiei@apple.com
  • 4 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187392. rdar://problem/21905839

00:07 Changeset [187427] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187391. rdar://problem/21905839

00:06 Changeset [187426] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187386. rdar://problem/21992826

00:05 Changeset [187425] by bshafiei@apple.com
  • 18 edits
    2 copies in branches/safari-601.1-branch

Merged r187371. rdar://problem/19918933

00:04 Changeset [187424] by bshafiei@apple.com
  • 6 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187367. rdar://problem/21394410

00:03 Changeset [187423] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187366. rdar://problem/21429111

00:02 Changeset [187422] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r187364. rdar://problem/21423353

00:01 Changeset [187421] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebCore

Merged r187358. rdar://problem/20689512

07/26/15:

23:59 Changeset [187420] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r187345. rdar://problem/21409047

23:59 Changeset [187419] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/WebKit2

Merged r187178.

23:58 Changeset [187418] by bshafiei@apple.com
  • 3 edits in branches/safari-601.1-branch/Source/bmalloc

Merged r187270. rdar://problem/21971820

23:57 Changeset [187417] by bshafiei@apple.com
  • 4 edits
    1 copy in branches/safari-601.1-branch

Merged r187244. rdar://problem/21966931

23:34 Changeset [187416] by yoon@igalia.com
  • 3 edits in trunk/Source/WebKit2

[ThreadedCompositor] Unreviewed build fix after r186059
https://bugs.webkit.org/show_bug.cgi?id=147315

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::glContext):
Explicitly cast u_int64 to GLNativeWindowType.

  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.h:

(WebKit::ThreadedCoordinatedLayerTreeHost::create):
Update declaration to match with modified definition.

22:54 Changeset [187415] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.17-branch/Source

Versioning.

22:53 Changeset [187414] by bshafiei@apple.com
  • 5 edits in branches/safari-600.8-branch/Source

Versioning.

22:41 Changeset [187413] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1-branch/Source

Versioning.

22:08 Changeset [187412] by cdumez@apple.com
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] WebContent process main thread should have fixed priority
https://bugs.webkit.org/show_bug.cgi?id=147313
<rdar://problem/22003112>

Reviewed by Darin Adler.

WebContent process main thread should have fixed priority on iOS 9.
Priority decay regresses PLT and fixing the main thread's priority
gives up a ~3% progression on warm PLT (tested on iPhone 5s).

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

21:52 Changeset [187411] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Add missing builtin files to the JavaScriptCore Xcode project
https://bugs.webkit.org/show_bug.cgi?id=147312

Patch by Sam Weinig <sam@webkit.org> on 2015-07-26
Reviewed by Darin Adler.

Add missing files.

14:17 Changeset [187410] by utatane.tea@gmail.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.isExtensible
https://bugs.webkit.org/show_bug.cgi?id=147308

Reviewed by Sam Weinig.

This patch implements Reflect.isExtensible.
It is similar to Object.isExtensible.
The difference is that it raises an error if the first argument is not an object.

  • runtime/ReflectObject.cpp:

(JSC::reflectObjectIsExtensible):

  • tests/stress/reflect-is-extensible.js: Added.

(shouldBe):
(shouldThrow):

14:10 Changeset [187409] by utatane.tea@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, fix the debug build due to touching the non-declared variable in ASSERT
https://bugs.webkit.org/show_bug.cgi?id=147307

  • runtime/ObjectConstructor.cpp:

(JSC::ownPropertyKeys):

14:02 Changeset [187408] by utatane.tea@gmail.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.ownKeys
https://bugs.webkit.org/show_bug.cgi?id=147307

Reviewed by Sam Weinig.

This patch implements Reflect.ownKeys.
In this patch, we refactor the existing code to list up own keys in the object.
Such code is used by Object.getOwnPropertyNames, Object.getOwnPropertyKeys, Object.keys and @ownEnumerableKeys.
We factor out the listing up own keys as ownPropertyKeys function and also use it in Reflect.ownKeys.

  • runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyNames):
(JSC::objectConstructorGetOwnPropertySymbols):
(JSC::objectConstructorKeys):
(JSC::ownEnumerablePropertyKeys):
(JSC::ownPropertyKeys):

  • runtime/ObjectConstructor.h:
  • runtime/ReflectObject.cpp:

(JSC::reflectObjectOwnKeys):

  • tests/stress/reflect-own-keys.js: Added.

(shouldBe):
(shouldThrow):
(shouldBeArray):

13:52 Changeset [187407] by utatane.tea@gmail.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

[ES6] Implement Reflect.apply
https://bugs.webkit.org/show_bug.cgi?id=147306

Reviewed by Sam Weinig.

Implement Reflect.apply.
The large part of this can be implemented by the @apply builtin annotation.
The only thing which is different from the Funciton.prototype.apply is the third parameter,
"argumentsList" is needed to be an object.

  • builtins/ReflectObject.js:

(apply):
(deleteProperty):

  • runtime/ReflectObject.cpp:
  • tests/stress/reflect-apply.js: Added.

(shouldBe):
(shouldThrow):
(get shouldThrow):
(.get shouldThrow):
(get var.array.get length):
(get var.array.get 0):
(.get var):

  • tests/stress/reflect-delete-property.js:
12:14 Changeset [187406] by mitz@apple.com
  • 3 edits in trunk/Source/WebKit2

Suppressed an Xcode 7 warning about including a nib in an iOS build product.

  • Configurations/BaseLegacyProcess.xcconfig: Exclude xib files on iOS.
  • Configurations/BaseXPCService.xcconfig: Ditto.

07/25/15:

23:30 Changeset [187405] by nvasilyev@apple.com
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Start using Node.prototype.remove
https://bugs.webkit.org/show_bug.cgi?id=147304

Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.elementDragStart):
(WebInspector.elementDragEnd):
(WebInspector.revertDomChanges):

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._updateSearchHighlight.updateEntryHide):
(WebInspector.DOMTreeElement.prototype._updateSearchHighlight):
(WebInspector.DOMTreeElement.prototype.remove.removeNodeCallback):
(WebInspector.DOMTreeElement.prototype.remove):

  • UserInterface/Views/Resizer.js:

(WebInspector.Resizer.prototype._resizerMouseDown):
(WebInspector.Resizer.prototype._resizerMouseUp):
(WebInspector.Resizer):

23:23 Changeset [187404] by nvasilyev@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Fix color declaration for not-executed comments
https://bugs.webkit.org/show_bug.cgi?id=147305

Reviewed by Timothy Hatcher.

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(.cm-s-default .basic-block-has-not-executed.cm-comment):
This was an RGB color mispelled as HSL. Replace "hsl" with "rgb"
and convert it to HSL.

23:19 Changeset [187403] by nvasilyev@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Start using Node.prototype.replaceWith
https://bugs.webkit.org/show_bug.cgi?id=147303

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Popover.js:

(WebInspector.Popover.prototype._update):

22:46 Changeset [187402] by nvasilyev@apple.com
  • 21 edits in trunk/Source/WebInspectorUI

Web Inspector: Start using Node.prototype.append
https://bugs.webkit.org/show_bug.cgi?id=147301

Convert all instances of element.appendChild(document.createTextNode(aString))
to element.append(aString).

Reviewed by Timothy Hatcher.

  • UserInterface/Base/DOMUtilities.js:
  • UserInterface/Base/Main.js:

(WebInspector.linkifyLocation):
(WebInspector.linkifyStringAsFragmentWithCustomLinkifier):

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint.prototype._editBreakpointPopoverContentElement):

  • UserInterface/Views/BoxModelDetailsSectionRow.js:

(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection.prototype.refresh):

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel):

  • UserInterface/Views/ChartDetailsSectionRow.js:

(WebInspector.ChartDetailsSectionRow.prototype._createLegendItem):

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendMessageTextAndArguments):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.js:

(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):

  • UserInterface/Views/DOMTreeElement.js:

(WebInspector.DOMTreeElement.prototype._insertInLastAttributePosition):
(WebInspector.DOMTreeElement.prototype._buildAttributeDOM):
(WebInspector.DOMTreeElement.prototype._buildTagDOM):
(WebInspector.DOMTreeElement.prototype._nodeTitleInfo):
defaultElement variable is unused, remove it.

  • UserInterface/Views/DataGrid.js:

(WebInspector.DataGridNode.prototype.createCell.get if):
(WebInspector.DataGridNode.prototype.createCell):

  • UserInterface/Views/DebuggerDashboardView.js:

(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):

  • UserInterface/Views/EventListenerSectionGroup.js:

(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
(WebInspector.EventListenerSectionGroup):

  • UserInterface/Views/FormattedValue.js:

(WebInspector.FormattedValue.createLinkifiedElementString):
(WebInspector.FormattedValue.createElementForNodePreview):

  • UserInterface/Views/ObjectPreviewView.js:

(WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
(WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):

  • UserInterface/Views/ResourceDetailsSidebarPanel.js:

(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestDataSection):
(WebInspector.ResourceDetailsSidebarPanel):

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):

  • UserInterface/Views/SearchResultTreeElement.js:

(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):

  • UserInterface/Views/SyntaxHighlightingSupport.js:

(.appendText):
(WebInspector.syntaxHighlightStringAsDocumentFragment):

  • UserInterface/Views/TimelineDataGridNode.js:

(WebInspector.TimelineDataGridNode.prototype.createCellContent):

22:12 Changeset [187401] by utatane.tea@gmail.com
  • 8 edits
    4 adds in trunk/Source/JavaScriptCore

[ES6] Add Reflect namespace and add Reflect.deleteProperty
https://bugs.webkit.org/show_bug.cgi?id=147287

Reviewed by Sam Weinig.

This patch just creates the namespace for ES6 Reflect APIs.
And add template files to implement the actual code.

Not to keep the JS generated properties C array empty,
we added one small method, Reflect.deleteProperty in this patch.

  • CMakeLists.txt:
  • DerivedSources.make:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/ReflectObject.js: Added.

(deleteProperty):

  • runtime/CommonIdentifiers.h:
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/ReflectObject.cpp: Added.

(JSC::ReflectObject::ReflectObject):
(JSC::ReflectObject::finishCreation):
(JSC::ReflectObject::getOwnPropertySlot):

  • runtime/ReflectObject.h: Added.

(JSC::ReflectObject::create):
(JSC::ReflectObject::createStructure):

  • tests/stress/reflect-delete-property.js: Added.

(shouldBe):
(shouldThrow):

19:53 Changeset [187400] by ap@apple.com
  • 2 edits in branches/safari-601.1-branch/LayoutTests

Updating an expectation to actually work (it's a reftest, so it needs ImageOnlyFailure).

  • platform/mac/TestExpectations:
19:28 Changeset [187399] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION (r186569): media/restore-from-page-cache.html is very flaky
https://bugs.webkit.org/show_bug.cgi?id=147254

  • platform/mac/TestExpectations: Updated the expectations, because the problem is

not limited to Debug Mavericks.

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

Remove an never failing check for client() in ResourceHandle::canAuthenticateAgainstProtectionSpace.

Requested by Brady Eidson in bug 147277.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):

19:09 Changeset [187397] by ap@apple.com
  • 15 edits in branches/safari-601.1-branch/LayoutTests

Update test results after r187346 ('>>' descendant combinator).

  • fast/css/css-selector-text-expected.txt:
  • fast/css/css-set-selector-text-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-1-expected.txt:
  • fast/css/parsing-css-attribute-case-insensitive-value-4-expected.txt:
  • fast/css/parsing-css-descendant-combinator-doubled-child-syntax-expected.txt:
  • fast/selectors/case-insensitive-attribute-register-requirement-2-expected.txt:
  • fast/selectors/element-closest-descendant-combinator-doubled-child-syntax-expected.txt:
  • fast/selectors/element-matches-attribute-ascii-case-insensitive-html-expected.txt:
  • fast/selectors/element-matches-descendant-combinator-doubled-child-syntax-expected.txt:
  • fast/selectors/nth-child-matching-first-expected.txt:
  • fast/selectors/nth-last-child-matching-first-expected.txt:
  • fast/selectors/querySelector-attribute-ascii-case-insensitive-html-expected.txt:
  • fast/selectors/querySelector-descendant-combinator-doubled-child-syntax-expected.txt:
  • platform/mac/TestExpectations:
18:38 Changeset [187396] by ap@apple.com
  • 2 edits in trunk/LayoutTests

REGRESSION?: Frame scrollability tests are very flaky
https://bugs.webkit.org/show_bug.cgi?id=147300

  • platform/mac-wk2/TestExpectations: Marking them as such.
18:30 Changeset [187395] by ap@apple.com
  • 4 edits in trunk/LayoutTests

inspector/css/modify-rule-selector.html times out (flakily on some platforms, and
every time on others).
https://bugs.webkit.org/show_bug.cgi?id=147229

  • platform/gtk/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:

Added expectations.

18:01 Changeset [187394] by ap@apple.com
  • 2 edits in trunk/LayoutTests

aria-liveregions-notifications tests are very flaky
https://bugs.webkit.org/show_bug.cgi?id=147299

  • platform/mac/TestExpectations: Marked them as such.
17:31 Changeset [187393] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Expose TextIndicator-backed snapshot and rect gathering on DOMNode
https://bugs.webkit.org/show_bug.cgi?id=147298
<rdar://problem/21905839>

Reviewed by Sam Weinig.

  • bindings/objc/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):
No need to multiply by device scale here.

16:28 Changeset [187392] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebCore

Expose TextIndicator-backed snapshot and rect gathering on DOMNode
https://bugs.webkit.org/show_bug.cgi?id=147298
<rdar://problem/21905839>

  • bindings/objc/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):

  • bindings/objc/DOMExtensions.h:
  • bindings/objc/DOMPrivate.h:

Move this to a private header.

16:11 Changeset [187391] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebCore

Expose TextIndicator-backed snapshot and rect gathering on DOMNode
https://bugs.webkit.org/show_bug.cgi?id=147298
<rdar://problem/21905839>

Reviewed by Sam Weinig.

  • bindings/objc/DOM.mm:

(-[DOMNode getPreviewSnapshotImage:andRects:]):

  • bindings/objc/DOMExtensions.h:
10:51 Changeset [187390] by jer.noble@apple.com
  • 37 edits in branches/safari-601.1-branch/Source

Merge r187251, r187252, r187262, r187263, r187272, r187289. rdar://problem/20689512

Source/WebCore:

2015-07-21 Jer Noble <jer.noble@apple.com>

Notify the UI delegate when a MediaDocument's natural size changes
https://bugs.webkit.org/show_bug.cgi?id=147182

Reviewed by Simon Fraser.

Notify the MediaDocument that it's underlying media element has changed its natural size, either when
the media engine notifies us that the size changed, or when the ready state progresses to HAVE_METADATA.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setReadyState): Notify the media document. (WebCore::HTMLMediaElement::mediaPlayerSizeChanged): Ditto.
  • html/MediaDocument.cpp: (WebCore::MediaDocument::mediaElementNaturalSizeChanged): Pass to the chrome client.
  • html/MediaDocument.h:
  • page/ChromeClient.h:

2015-07-23 Jer Noble <jer.noble@apple.com>

Relax media playback restrictions if the allowsMediaDocumentInlinePlayback property is set.
https://bugs.webkit.org/show_bug.cgi?id=147234

Reviewed by Darin Adler.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::prepareForLoad): Moved restriction check into MediaElementSession.
  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::playbackPermitted): Check if is a top-level media document and if

allowsMediaDocumentInilnePlayback is set, and return early.

(WebCore::MediaElementSession::effectivePreloadForElement): Ditto.
(WebCore::MediaElementSession::allowsAutomaticMediaDataLoading): Ditto.

  • html/MediaElementSession.h:

2015-07-21 Jer Noble <jer.noble@apple.com>

[iOS] Add an explicit API to allow media documents to (temporarily) play inline
https://bugs.webkit.org/show_bug.cgi?id=147181

Reviewed by Beth Dakin.

Add listeners for the new allowsMediaDocumentInlinePlayback API. When this value becomes
NO, force any playing MediaDocuments to enter fullscreen mode.

  • dom/Document.cpp: (WebCore::Document::registerForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added registration method. (WebCore::Document::unregisterForAllowsMediaDocumentInlinePlaybackChangedCallbacks): Added deregistration method. (WebCore::Document::allowsMediaDocumentInlinePlaybackChanged): Notify all listeners.
  • dom/Document.h:
  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::registerWithDocument): Listen for allowsMediaDocumentInlinePlayback changes. (WebCore::HTMLMediaElement::unregisterWithDocument): Stop listening to same. (WebCore::HTMLMediaElement::allowsMediaDocumentInlinePlaybackChanged): Enter fullscreen mode if the value

changes to false during playback.

  • html/HTMLMediaElement.h:
  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::requiresFullscreenForVideoPlayback): Early true if the override value is set.
  • page/Page.cpp: (WebCore::Page::setAllowsMediaDocumentInlinePlayback): Notify all documents of the changed value.
  • page/Page.h: (WebCore::Page::allowsMediaDocumentInlinePlayback): Simple getter.

Source/WebKit2:

2015-07-23 Alex Christensen <achristensen@webkit.org>

Fix 32-bit build after r187272.

  • UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged): Added some WK_API_ENABLED.

2015-07-23 Alex Christensen <achristensen@webkit.org>

[iOS] Unreviewed build fix after r187251.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Use the correct name for the boolean to pass along to SetAllowsMediaDocumentInlinePlayback.

2015-07-21 Jer Noble <jer.noble@apple.com>

Notify the UI delegate when a MediaDocument's natural size changes
https://bugs.webkit.org/show_bug.cgi?id=147182

Reviewed by Simon Fraser.

Pipe notifications of media document natural size changes up from the chrome client, through
to the UIProcess, through the page client, through the WKWebView, to the UIDelegate.

  • UIProcess/API/APIUIClient.h: (API::UIClient::mediaDocumentNaturalSizeChanged):
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _mediaDocumentNaturalSizeChanged:]):
  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/Cocoa/UIDelegate.h:
  • UIProcess/Cocoa/UIDelegate.mm: (WebKit::UIDelegate::setDelegate): (WebKit::UIDelegate::UIClient::mediaDocumentNaturalSizeChanged):
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::mediaDocumentNaturalSizeChanged):
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm: (WebKit::PageClientImpl::mediaDocumentNaturalSizeChanged):
  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp: (WebKit::WebChromeClient::mediaDocumentNaturalSizeChanged):
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::mediaDocumentNaturalSizeChanged):
  • WebProcess/WebPage/WebPage.h:
  • UIProcess/API/gtk/PageClientImpl.h: Add default, empty implementation of new pure-virtual method.
  • UIProcess/efl/WebViewEfl.h: Ditto.

2015-07-23 Jer Noble <jer.noble@apple.com>

Unreviewed build fix after r187251; rename flag -> allows.

  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback):

2015-07-23 Jer Noble <jer.noble@apple.com>

[WK2] Add a WKWebView property for whether the view is displaying a media document
https://bugs.webkit.org/show_bug.cgi?id=147233

Reviewed by Beth Dakin.

Add a _isDisplayingStandaloneMediaDocument property, which queries the frame for whether
the current MIME type is one which our media engines support.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _isDisplayingStandaloneMediaDocument]):
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebFrameProxy.cpp: (WebKit::WebFrameProxy::isDisplayingStandaloneMediaDocument):
  • UIProcess/WebFrameProxy.h:

2015-07-21 Jer Noble <jer.noble@apple.com>

[iOS] Add an explicit API to allow media documents to (temporarily) play inline
https://bugs.webkit.org/show_bug.cgi?id=147181

Reviewed by Beth Dakin.

Add a WKWebView(Private) API which allows MediaDocuments loaded by the view to play their contents inline, regardless
of whether inline playback is restricted on the current device.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setRequiresUserActionForMediaPlayback:]): Added. Pass through to WebPageProxy. (-[WKWebView _allowsMediaDocumentInlinePlayback]): Ditto.
  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::allowsMediaDocumentInlinePlayback): Simple getter. (WebKit::WebPageProxy::setAllowsMediaDocumentInlinePlayback): Set, and conditionally pass the new value to WebPage.
  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::setAllowsMediaDocumentInlinePlayback): Set, and conditionally notify WebCore page of the change.
  • WebProcess/WebPage/WebPage.h: (WebKit::WebPage::allowsMediaDocumentInlinePlayback): Simple getter.
  • WebProcess/WebPage/WebPage.messages.in: Add new messages.
07:46 Changeset [187389] by clopez@igalia.com
  • 2 edits in trunk/Source/WTF

REGRESSION (bmalloc): WebKit performance tests don't report memory stats.
https://bugs.webkit.org/show_bug.cgi?id=141247

Reviewed by Geoffrey Garen.

Meanwhile a better way of getting memory stats with bmalloc is not found
(see bug 136592), we can report as memory stats the resident set size
information that the operating system provides to us.

This at least should be good enough to get back the memory stats on the
performance tests and being able to track down memory usage regressions
at https://perf.webkit.org

  • wtf/FastMalloc.cpp:

(WTF::fastMallocStatistics): Report maxrss data as committedVMBytes.

02:19 Changeset [187388] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Another build fix. Removed the unused argument.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayer::setTileSize):

01:07 Changeset [187387] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

iOS build fix after r187384.

  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:

(PlatformCALayer::setTileSize):

00:59 Changeset [187386] by cfleizach@apple.com
  • 2 edits in trunk/Source/WebCore

AX: iOS: Video "start playback" playback controls not accessible
https://bugs.webkit.org/show_bug.cgi?id=147285

Reviewed by Jer Noble.

The start playback control also needs the right label.

  • Modules/mediacontrols/mediaControlsiOS.js:

(ControllerIOS.prototype.createBase):

Note: See TracTimeline for information about the timeline view.