Timeline



Jun 5, 2015:

9:40 PM Changeset in webkit [185285] by Alan Bujtas
  • 2 edits in trunk/Tools

From r185273 on WTF::RefCounter exposes the actual refcount instead of a boolean value.

Reviewed by Dan Bernstein.

  • TestWebKitAPI/Tests/WTF/RefCounter.cpp:

(TestWebKitAPI::TEST):

8:11 PM Changeset in webkit [185284] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
<https://webkit.org/b/145719>
<rdar://problem/19973042>

Reviewed by Geoffrey Garen.

We put elements with 3D identity transforms onto compositing layers because
we anticipate that they will somehow animate in the future.

This can get extremely expensive, especially on low-memory devices.
This patch makes WebKit stop handing out compositing layers for this kinda thing:

-webkit-transform: translate3d(0,0,0)

..on devices with 512MB or less. This dramatically improves stability on some
web pages.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForTransform):

6:23 PM Changeset in webkit [185283] by mark.lam@apple.com
  • 2 edits in trunk/LayoutTests

Gardening: skip some inspector-protocol tests while the issue is being investigated.
https://bugs.webkit.org/show_bug.cgi?id=145720

Not reviewed.

  • platform/win/TestExpectations:
6:23 PM Changeset in webkit [185282] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Fixing code style and adding more limitations for bug 141262
https://bugs.webkit.org/show_bug.cgi?id=145668

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.isValidPropertyName): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added isValidPropertyName function.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property and to prevent invalid style from being applied incorrectly.

6:19 PM Changeset in webkit [185281] by Gyuyoung Kim
  • 2 edits in trunk/Tools

[EFL] API test has been broken since r184357
https://bugs.webkit.org/show_bug.cgi?id=145635

Reviewed by Darin Adler.

r184357 suppress cmake build warning using TARGET_FILE property. However
many EFL API test cases have been broken after applying it.

  • TestWebKitAPI/CMakeLists.txt:
6:18 PM Changeset in webkit [185280] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Win] Skip fast/text/decorations-vertical-underline-expected.html

Unreviewed gardening.

  • platform/win/TestExpectations:
6:16 PM Changeset in webkit [185279] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlighting a CSS section does not deselect previously highlighted CSS sections
https://bugs.webkit.org/show_bug.cgi?id=145399

Patch by Devin Rousso <Devin Rousso> on 2015-06-05
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDeclarationSection.js:

(WebInspector.CSSStyleDeclarationSection): Added delegate variable to constructor.
(WebInspector.CSSStyleDeclarationSection.prototype.clearSelection):
(WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorFocused):

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor): Added event listener to codeMirror on "focus".
(WebInspector.CSSStyleDeclarationTextEditor.prototype.clearSelection): Sets the cursor of the codeMirror to character 0 on line 0.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._editorFocused): Function that calls the delegate function "editorFocused" when the codeMirror is focused

  • UserInterface/Views/RulesStyleDetailsPanel.js:

(WebInspector.RulesStyleDetailsPanel.prototype.refresh.appendStyleSection):
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused): Loops through all sections except for the ignoredSection (parameter) and clears the selected text in each of them.

6:06 PM Changeset in webkit [185278] by Matt Baker
  • 2 edits in trunk/Source/WebCore

Web Inspector: "Other" time in the framerate table is often negative
https://bugs.webkit.org/show_bug.cgi?id=145712

Reviewed by Timothy Hatcher.

The Inspector frontend flattens the timeline event tree it receives from the backend, which can contain nested
paint records. The nested records represent a single paint event, but were being interpreted as two separate
events for purposes of calculating total layout time. This caused the calculated "other" time to be less than
it should be (and in some cases negative).

  • inspector/InspectorTimelineAgent.cpp:

(WebCore::InspectorTimelineAgent::addRecordToTimeline):
Paint records are no longer nested, we simply drop the child paint event.

5:33 PM Changeset in webkit [185277] by mark.lam@apple.com
  • 4 edits
    1 add in trunk/Source/JavaScriptCore

Subclasses of JSNonFinalObject with gc'able children need to implement visitChildren().
https://bugs.webkit.org/show_bug.cgi?id=145709

Reviewed by Geoffrey Garen.

  • jsc.cpp:

(functionSetElementRoot):

  • The Element class has a member of type Root which extends JSDestructibleObject. It should be stored in a WriteBarrier, and visited by visitChildren().
  • runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::materializeSpecialsIfNecessary):
(JSC::ClonedArguments::visitChildren):

  • runtime/ClonedArguments.h:
  • Add missing visitChildren().
  • tests/stress/cloned-arguments-should-visit-callee-during-gc.js: Added.

(makeTransientFunction.transientFunc):
(makeTransientFunction):

5:04 PM Changeset in webkit [185276] by Alan Bujtas
  • 1 edit
    2 adds in trunk/LayoutTests

[Win] Update expected results.

Unreviewed gardening.

  • platform/win/fast/forms/select-element-focus-ring-expected.txt: Added.
  • platform/win/fast/text/emoji-expected.txt: Added.
4:50 PM Changeset in webkit [185275] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Unreviewed, speculative Windows build fix after r185273.

  • platform/VNodeTracker.h:
4:49 PM Changeset in webkit [185274] by andersca@apple.com
  • 6 edits in trunk/Source/WebKit2

Only allow plug-ins to create custom MIME property lists on older versions of OS X
https://bugs.webkit.org/show_bug.cgi?id=145716

Reviewed by Dan Bernstein.

  • PluginProcess/EntryPoint/mac/LegacyProcess/PluginProcessMain.mm:
  • Shared/Plugins/Netscape/NetscapePluginModule.h:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:

(WebKit::getMIMETypesFromPluginBundle):

  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
4:20 PM Changeset in webkit [185273] by Chris Dumez
  • 10 edits
    3 adds in trunk/Source

[WK2][iOS] Limit the number of vnodes used by the WebContent processes
https://bugs.webkit.org/show_bug.cgi?id=145672
<rdar://problem/21126637>

Reviewed by Antti Koivisto.

Source/WebCore:

Limit the number of vnodes used by the WebContent processes to reduce
the chance of getting killed due to the system running out of vnodes.
We sometimes see the WebContent process use up to 50% of the system's
vnode limit on some tests on iOS, which seems excessive. Most vnodes
are due to CachedResources which are mmap'd from the WebKit disk cache
and kept alive due to caches such as the Memory Cache / PageCache.

This patch adds tracking for the number of SharedBuffer objects that are
backed by a CFDataRef as this should track most of the vnodes used by
the process. The WebContent process registers a vnode pressure handler
upon initialization (likely it already does for memory pressure
handling). This handler gets called when the process uses over 15% of
of system's vnode limit and the "critical" flag is set if it uses over
20% of the system limit. The vnode pressure handler currently calls the
memory pressure handler as freeing our caches (especially PageCache,
MemoryCache) and doing a JS GC frees up vnodes.

On iPhone 6 Plus, the system limit is at 3000, which would lead to the
following limits being used:
soft: 450 / hard: 600

However, on older hardware, the system limit can be as low as 2000,
which would lead to the following limits being used:
soft: 300 / hard: 400

vnode tracking is currently only enabled on iOS because system vnode
limits are usually much higher on Mac (e.g. 473695 on Mac Pro, 9984
on a 2011 MacBook Air) and we normally don't get killed.

  • WebCore.xcodeproj/project.pbxproj:

Add new files to the XCode project.

  • platform/SharedBuffer.h:

Add a VNodeTracker::Token member next to the CFDataRef member that we
initialize if the SharedBuffer is constructed from a CFDataRef.

  • platform/VNodeTracker.cpp: Added.

(WebCore::VNodeTracker::singleton):
(WebCore::VNodeTracker::VNodeTracker):
(WebCore::VNodeTracker::checkPressureState):
(WebCore::VNodeTracker::pressureWarningTimerFired):
(WebCore::VNodeTracker::nextPressureWarningInterval):
(WebCore::VNodeTracker::platformInitialize):

  • platform/VNodeTracker.h: Added.

(WebCore::VNodeTracker::setPressureHandler):

Add a new VNodeTracker singleton to keep track the number of vnodes
used by the process since the system does not issue warnings before
reaching its vnode limit. Call sites should request Tokens for
every vnode they use for tracking purposes. Each process can then
set a vnode pressure handler function that will be called when the
process is over the designated limits.

  • platform/cf/SharedBufferCF.cpp:

(WebCore::SharedBuffer::SharedBuffer):

Take a VNodeToken from the VNodeTracker when constructing the
SharedBuffer from a CFDataRef as these usually use mmap.

  • platform/cocoa/VNodeTrackerCocoa.cpp: Added.

(WebCore::VNodeTracker::platformInitialize):

Get the system's vnode limit and uses 15% of that value as soft
limit for the process and 20% of that value as hard limit.

Source/WebKit2:

Have the WebContent process register a vnode pressure handler on iOS,
which calls the memory pressure handler.

On non-critical pressure, it will prune dead resources from the memory
cache, which should free up some vnodes. On critical pressure, the
handler will clear the PageCache and do a JS GC, which should free even
more vnodes.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Source/WTF:

  • wtf/RefCounter.h:

(WTF::RefCounter::value):

Expose the actual refcount instead of a boolean value.

4:16 PM Changeset in webkit [185272] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Lingering checkbox animations when rapidly switching between views on WK1
https://bugs.webkit.org/show_bug.cgi?id=145715
<rdar://problem/17381121>

Reviewed by Simon Fraser.

On WK1, the NSView we use for NSButtonCells is parented in the ScrollView.
Our checkbox and radiobutton animations cause AppKit to create a CALayer which
is parented into that view. As we render the animations, we see the CALayer getting
drawn also.

The fix was to use an unparented layer on WK1 when drawing these controls, the same
way WK2 does. This technique may apply to all controls, but restricting it
to just the buttons at the moment is less risky.

This only happens during the swap between a checked and non-checked state,
and we have no way to test it :(

  • platform/mac/ThemeMac.h: New optional parameter to ensuredView.
  • platform/mac/ThemeMac.mm:

(WebCore::paintToggleButton): If we're on Yosemite or highter, use an unparented view.
(WebCore::ThemeMac::ensuredView): Return either a parented or unparented view.

3:59 PM Changeset in webkit [185271] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

REGRESSION (r185213): TypeError: undefined is not an object (evaluating 'WebInspector.clearLogOnReload.value')
https://bugs.webkit.org/show_bug.cgi?id=145695

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-05
Reviewed by Mark Lam.

Move and rename the clear log on reload setting property from
WebInspector (Main.js) to LogManager (shared with tests).

  • UserInterface/Base/Main.js:

(WebInspector.loaded): Deleted.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager):
(WebInspector.LogManager.prototype._delayedMessagesCleared):

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):

3:33 PM Changeset in webkit [185270] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

MediaSessions should keep track of their participating media elements.
https://bugs.webkit.org/show_bug.cgi?id=145703

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

  • Modules/mediasession/MediaSession.cpp:

(WebCore::MediaSession::addMediaElement): Add the given media element to the media session.
(WebCore::MediaSession::removeMediaElement): Remove the given media element from the media session.
(WebCore::MediaSession::activeParticipatingElements): Dynamically build a vector of actively-playing media

elements.

  • Modules/mediasession/MediaSession.h:
  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::~HTMLMediaElement): Ensure the element is removed from its media session.
(WebCore::HTMLMediaElement::setSession): Update sessions' references to their media elements.

3:10 PM Changeset in webkit [185269] by Chris Dumez
  • 13 edits
    15 deletes in trunk

Regression(r176212): Broke app switching on iCloud.com
https://bugs.webkit.org/show_bug.cgi?id=145708
<rdar://problem/21235277>

Reviewed by Simon Fraser.

Source/WebCore:

Roll out r176212 and follow-up fixes for now, to fix iCloud.com.
We can reconsider later how to do this in a safer way.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::JSCSSStyleDeclaration::putDelegate): Deleted.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Deleted.

  • dom/Element.cpp:
  • dom/Element.h:
  • dom/ElementRareData.cpp:
  • dom/ElementRareData.h:

(WebCore::ElementRareData::ElementRareData):
(WebCore::ElementRareData::~ElementRareData): Deleted.

  • dom/Node.cpp:

(WebCore::Node::materializeRareData):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::notifyObserversCanvasChanged): Deleted.

  • page/DOMTimer.cpp:

(WebCore::DOMTimerFireState::scriptMadeNonUserObservableChanges): Deleted.
(WebCore::DOMTimerFireState::scriptMadeUserObservableChanges): Deleted.
(WebCore::NestedTimersMap::instanceForContext): Deleted.
(WebCore::DOMTimer::install): Deleted.
(WebCore::DOMTimer::fired): Deleted.
(WebCore::DOMTimer::alignedFireTime): Deleted.
(WebCore::DOMTimer::activeDOMObjectName): Deleted.

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

(WebCore::FrameView::reset): Deleted.
(WebCore::FrameView::viewportContentsChanged): Deleted.
(WebCore::FrameView::autoSizeIfEnabled): Deleted.

  • page/FrameView.h:

LayoutTests:

Remove layout tests covering DOM Timer throttling.

  • fast/canvas/canvas-outside-viewport-timer-throttling-expected.txt: Removed.
  • fast/canvas/canvas-outside-viewport-timer-throttling.html: Removed.
  • fast/dom/nested-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/nested-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-display-none-element-throttling.html: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling-expected.txt: Removed.
  • fast/dom/repeating-timer-element-overflow-hidden-throttling.html: Removed.
  • fast/dom/resources/timer-throttling-iframe.html: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away-expected.txt: Removed.
  • fast/dom/timer-throttle-on-scrolling-iframe-away.html: Removed.
  • fast/dom/timer-unthrottle-on-layout-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-layout.html: Removed.
  • fast/dom/timer-unthrottle-on-scroll-expected.txt: Removed.
  • fast/dom/timer-unthrottle-on-scroll.html: Removed.
3:03 PM Changeset in webkit [185268] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

DropAllLocks RELEASE_ASSERT on iOS
https://bugs.webkit.org/show_bug.cgi?id=139654

Reviewed by Mark Lam.

  • runtime/JSLock.cpp:

(JSC::JSLock::dropAllLocks): Removed a comment because it duplicated
the code beneath it. Removed a FIXME because we can't ASSERT that
we're holding the lock. WebKit1 on iOS drops the lock before calling to
delegates, not knowing whether it holds the lock or not.

(JSC::JSLock::DropAllLocks::DropAllLocks): Only ASSERT that we are not
GC'ing if we hold the lock. If we do not hold the lock, it is perfectly
valid for some other thread, which does hold the lock, to be GC'ing.
What is not valid is to drop the lock in the middle of GC, since GC
must be atomic.

3:00 PM Changeset in webkit [185267] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

speculateRealNumber() should early exit if you're already a real number, not if you're already a real double.

Rubber stamped by Mark Lam.

This was causing: https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK1%20(Tests)/r185261%20(5180)/webaudio/note-grain-on-timing-crash-log.txt

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::speculateRealNumber):

2:46 PM Changeset in webkit [185266] by mmaxfield@apple.com
  • 6 edits
    1 copy
    1 move
    1 add in trunk

[iOS] Emoji overlap preceeding lines
https://bugs.webkit.org/show_bug.cgi?id=145678
<rdar://problem/10684914>

Reviewed by Enrica Casucci.

Source/WebCore:

In WebKit, we first lay out lines, and then we lay out text inside those lines. Text is vertically centered in
its containing line. If the author has not specified a particular line-height, the height of a line comes from
the font metrics for the primary font of the line.

In iOS, we were specifically hardcoding the line height metric of Apple Color Emoji to be 0. This means that,
if Apple Color Emoji is the primary font for a line, and an explicit line-height was not specified, the lines
are laid out with 0 height. Then, when we vertically center the text inside the line, the top half of the text
overlaps the preceeding line.

I'm not sure exactly why were were hardcoding this value to 0, as it is surely wrong. I'm going to ask Enrica
to review this patch; hopefully she knows the answer.

Test: fast/text/emoji.html

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit):

LayoutTests:

  • fast/text/emoji.html:
  • platform/mac/TestExpectations: Removed unnecessary line.
  • platform/mac-mavericks/fast/text/emoji-expected.html:
  • platform/mac/fast/text/emoji-expected.html:
  • platform/ios-simulator/fast/text/emoji-expected.html:
  • TestExpectations: Removed unnecessary line.
2:42 PM Changeset in webkit [185265] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix refacto, don't put IndexedDB databases in the cache directory
https://bugs.webkit.org/show_bug.cgi?id=145714

Reviewed by Antti Koivisto.

  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):

2:37 PM Changeset in webkit [185264] by achristensen@apple.com
  • 5 edits in trunk/Source

[Web Timing] Use new SPI to enable data collection.
https://bugs.webkit.org/show_bug.cgi?id=145650
rdar://problem/21203358

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::createCFURLConnection):
Gather web timing data on iOS.

  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::createNSURLConnection):
(WebCore::ResourceHandle::setCollectsTimingData):
Gather web timing data on Mac.

Source/WTF:

  • wtf/Platform.h:

Added HAVE_TIMINGDATAOPTIONS for platform and version dependent feature.

2:36 PM Changeset in webkit [185263] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [REGRESSION] Dashboard's resource count does not reset when main resource navigates
https://bugs.webkit.org/show_bug.cgi?id=144553

Add missing _mainResourceDidChange, which was removed after switching to the tabs UI.

Reviewed by Timothy Hatcher.

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard):
_waitingForFirstMainResourceToStartTrackingSize is not used anywhere, remove it.

(WebInspector.DefaultDashboard.prototype._mainResourceDidChange): Added.

(WebInspector.DefaultDashboard.prototype._resourceSizeDidChange): Removed.
Unused.

2:31 PM Changeset in webkit [185262] by andersca@apple.com
  • 13 edits in trunk

Make the network cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145711

Reviewed by Antti Koivisto.

Source/WebKit2:

Also, make the UI process be in control of where we place the new network cache.
When using the Modern WebKit API, put the cache in ~/Library/Caches/<Bundle ID>/WebKit/NetworkCache,
and put the cache in ~/Library/Caches/<Bundle ID>/WebKitCache otherwise (this is just for Safari).

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetDiskCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyDiskCacheDirectory):
(WKContextConfigurationSetDiskCacheDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::WebProcessPool::legacyPlatformDefaultNetworkCacheDirectory):
(WebKit::WebProcessPool::isNetworkCacheEnabled):
(WebKit::WebProcessPool::platformDefaultDiskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::legacyWebsiteDataStoreConfiguration):
(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::diskCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:27 PM Changeset in webkit [185261] by andersca@apple.com
  • 11 edits in trunk

Make the application cache directory part of WKContextConfigurationRef
https://bugs.webkit.org/show_bug.cgi?id=145704

Reviewed by Geoffrey Garen.

Source/WebKit2:

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::createWithLegacyOptions):
(API::ProcessPoolConfiguration::ProcessPoolConfiguration):
(API::ProcessPoolConfiguration::copy):

  • UIProcess/API/APIProcessPoolConfiguration.h:
  • UIProcess/API/C/WKContext.cpp:

(WKContextSetApplicationCacheDirectory): Deleted.

  • UIProcess/API/C/WKContextConfigurationRef.cpp:

(WKContextConfigurationCopyApplicationCacheDirectory):
(WKContextConfigurationSetApplicationCacheDirectory):

  • UIProcess/API/C/WKContextConfigurationRef.h:
  • UIProcess/API/C/WKContextPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):
(WebKit::WebProcessPool::createNewWebProcess):
(WebKit::WebProcessPool::applicationCacheDirectory): Deleted.

  • UIProcess/WebProcessPool.h:

Tools:

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

12:08 PM Changeset in webkit [185260] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source

[Streams API] ReadableStream should store callbacks as a Deque
https://bugs.webkit.org/show_bug.cgi?id=145641

Reviewed by Darin Adler.

Source/WebCore:

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::resolveReadCallback): Use of Deque.takeFirst

  • Modules/streams/ReadableStream.h: Using Deque in lieu of Vector for storing callbacks.

Source/WTF:

  • wtf/Deque.h:

(WTF::Deque::append): Adding not templated append method, forwarding to templated append method.

11:52 AM Changeset in webkit [185259] by mark.lam@apple.com
  • 101 edits
    44 adds in trunk

finally blocks should not set the exception stack trace when re-throwing the exception.
https://bugs.webkit.org/show_bug.cgi?id=145525

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

How exceptions presently work:
=============================

  1. op_throw can throw any JSValue.
  2. the VM tries to capture the stack at the throw point and propagate that as needed.
  3. finally blocks are implemented using op_catch to catch the thrown value, and throws it again using op_throw.

What's wrong with how it presently works:
========================================

  1. finally's makes for bad exception throw line numbers in the Inspector console.

The op_throw in finally will throw the value anew i.e. it captures a stack from the re-throw point.
As a result, the Inspector sees the finally block as the throw point. The original stack is lost.

  1. finally's breaks the Inspector's "Breaks on Uncaught Exception"

This is because finally blocks are indistinguishable from catch blocks. As a result, a try-finally,
which should break in the Inspector on the throw, does not because the Inspector thought the
exception was "caught".

  1. finally's yields confusing break points when the Inspector "Breaks on All Exceptions"
  1. In a try-finally scenario, the Inspector breaks 2 times: 1 at the throw, 1 at the finally.
  2. In a for-of loop (which has synthesized finallys), the Inspector will do another break. Similarly for other cases of JS code which synthesize finallys.
  3. At VM re-entry boundaries (e.g. js throws & returns to native code, which returns to js), the Inspector will do another break if there's an uncaught exception.

How this patch fixes the issues:
===============================

  1. We introduce an Exception object that wraps the thrown value and the exception stack.

When throwing an exception, the VM will check if the thrown value is an Exception
object or not. If it is not an Exception object, then we must be throwing a new
exception. The VM will create an Exception object to wrap the thrown value and
capture the current stack for it.

If the thrown value is already an Exception object, then the requested throw operation
must be a re-throw. The VM will not capture a new stack for it.

  1. op_catch will now populate 2 locals: 1 for the Exception, 1 for the thrown JSValue.

The VM is aware of the Exception object and uses it for rethrows in finally blocks.
JS source code is never aware of the Exception object.

JS code is aware of the thrown value. If it throws the caught thrown value, that
constitutes a new throw, and a new Exception object will be created for it.

  1. The VM no longer tracks the thrown JSValue and the exception stack. It will only track a m_exception field which is an Exception*.
  1. The BytecodeGenerator has already been updated in a prior patch to distinguish between Catch, Finally, and SynthesizedFinally blocks. The interpreter runtime will now report to the debugger whether we have a Catch handler, not just any handlers.

The debugger will use this detail to determine whether to break or not. "Break on
uncaught exceptions" will only break if no Catch handler was found.

This solves the issue of the debugger breaking at finally blocks, and for-of statements.

  1. The Exception object will also have a flag to indicate whether the debugger has been notified of the Exception being thrown. Once the Interpreter notifies the debugger of the Exception object, it will mark this flag and not repeat the notify the debugger again of the same Exception.

This solves the issue of the debugger breaking at VM re-entry points due to uncaught
exceptions.

  1. The life-cycle of the captured exception stack trace will now follow the life-cycle of the Exception object.

Other changes:

  1. Change all clients of the VM::exception() to expect an Exception* instead of JSValue.
  1. Fixed a few bugs where thrown exceptions are not cleared before exiting the VM.
  1. Also renamed some variables and classes to better describe what they are.
  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):

  • API/JSObjectRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(JSClassCreate):
(JSObjectMakeFunction):
(JSObjectMakeArray):
(JSObjectMakeDate):
(JSObjectMakeError):
(JSObjectMakeRegExp):
(JSObjectGetProperty):
(JSObjectSetProperty):
(JSObjectGetPropertyAtIndex):
(JSObjectSetPropertyAtIndex):
(JSObjectDeleteProperty):
(JSObjectCallAsFunction):
(JSObjectCallAsConstructor):

  • API/JSScriptRef.cpp:
  • API/JSValue.mm:

(JSContainerConvertor::take):
(reportExceptionToInspector):

  • API/JSValueRef.cpp:

(handleExceptionIfNeeded):

  • The functions below all do the same exception check. Added this helper to simplify the code.

(evernoteHackNeeded):
(JSValueIsEqual):
(JSValueIsInstanceOfConstructor):
(JSValueCreateJSONString):
(JSValueToNumber):
(JSValueToStringCopy):
(JSValueToObject):

  • bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • bindings/ScriptFunctionCall.h:
  • bytecode/BytecodeList.json:
  • op_catch now had 2 operands: the exception register, and the thrown value register.
  • bytecode/BytecodeUseDef.h:

(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):
(JSC::CodeBlock::handlerForBytecodeOffset):

  • bytecode/CodeBlock.h:
  • handlerForBytecodeOffset() now can look for just Catch handlers only.
  • bytecode/HandlerInfo.h:
  • Cleaned up some white space I accidentally added in a previous patch.
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitThrowReferenceError):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitThrow):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

  • Adding support for op_catch's 2 operands.
  • debugger/Debugger.cpp:

(JSC::Debugger::hasBreakpoint):
(JSC::Debugger::pauseIfNeeded):
(JSC::Debugger::exception):

  • debugger/Debugger.h:
  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::thisValue):
(JSC::DebuggerCallFrame::evaluate):

  • debugger/DebuggerCallFrame.h:

(JSC::DebuggerCallFrame::isValid):

  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

  • inspector/InspectorEnvironment.h:
  • inspector/JSGlobalObjectInspectorController.cpp:

(Inspector::JSGlobalObjectInspectorController::appendAPIBacktrace):
(Inspector::JSGlobalObjectInspectorController::reportAPIException):

  • inspector/JSGlobalObjectInspectorController.h:
  • inspector/JSGlobalObjectScriptDebugServer.h:
  • inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::evaluate):

  • inspector/JavaScriptCallFrame.h:

(Inspector::JavaScriptCallFrame::vmEntryGlobalObject):
(Inspector::JavaScriptCallFrame::thisValue):
(Inspector::JavaScriptCallFrame::evaluate):

  • inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):
(Inspector::createScriptCallStackFromException):

  • inspector/ScriptCallStackFactory.h:
  • inspector/ScriptDebugServer.cpp:

(Inspector::ScriptDebugServer::evaluateBreakpointAction):
(Inspector::ScriptDebugServer::handleBreakpointHit):
(Inspector::ScriptDebugServer::handleExceptionInBreakpointCondition):

  • inspector/ScriptDebugServer.h:
  • interpreter/CallFrame.h:

(JSC::ExecState::clearException):
(JSC::ExecState::exception):
(JSC::ExecState::hadException):
(JSC::ExecState::atomicStringTable):
(JSC::ExecState::propertyNames):
(JSC::ExecState::clearSupplementaryExceptionInfo): Deleted.

  • interpreter/Interpreter.cpp:

(JSC::unwindCallFrame):
(JSC::Interpreter::stackTraceAsString):
(JSC::GetCatchHandlerFunctor::GetCatchHandlerFunctor):
(JSC::GetCatchHandlerFunctor::operator()):
(JSC::Interpreter::unwind):

  • Added a check for didNotifyInspectorOfThrow() here to prevent duplicate reports of the same Exception to the debugger.

(JSC::GetExceptionHandlerFunctor::GetExceptionHandlerFunctor): Deleted.
(JSC::GetExceptionHandlerFunctor::operator()): Deleted.

  • Renamed GetExceptionHandlerFunctor to GetCatchHandlerFunctor since the debugger is only interested in knowing whether we have Catch handlers.
  • interpreter/Interpreter.h:

(JSC::SuspendExceptionScope::SuspendExceptionScope):
(JSC::SuspendExceptionScope::~SuspendExceptionScope):
(JSC::Interpreter::sampler):
(JSC::ClearExceptionScope::ClearExceptionScope): Deleted.
(JSC::ClearExceptionScope::~ClearExceptionScope): Deleted.

  • Renamed ClearExceptionScope to SuspendExceptionScope because "clear" implies that we're purging the exception. Instead, we're merely suspending any handling of that exception for a period defined by the scope.
  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitExceptionCheck):

  • jit/JITExceptions.cpp:

(JSC::genericUnwind):

  • Removed the exception argument. It is always the value in VM::exception() anyway. genericUnwind() can just get it from the VM, and save everyone some work.
  • jit/JITExceptions.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_catch):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::privateCompileCTINativeCall):
(JSC::JIT::emit_op_catch):

  • Add support for the new op_catch operands.
  • jit/JITOperations.cpp:
  • jit/ThunkGenerators.cpp:

(JSC::nativeForGenerator):

  • jsc.cpp:

(functionRun):
(functionLoad):
(runWithScripts):
(runInteractive):

  • llint/LLIntOffsetsExtractor.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • Add support for the new op_catch operands. Also update the code to handle VM::m_exception being an Exception pointer, not a JSValue.
  • parser/NodeConstructors.h:

(JSC::TryNode::TryNode):

  • parser/Nodes.h:
  • runtime/CallData.cpp:

(JSC::call):

  • runtime/CallData.h:
  • runtime/Completion.cpp:

(JSC::evaluate):

  • runtime/Completion.h:

(JSC::evaluate):

  • Change evaluate() to take a reference to the returned exception value instead of a pointer. In all but 2 or 3 cases, we want the returned exception anyway. Might as well simplify the code by requiring the reference.
  • runtime/Error.h:

(JSC::throwVMError):
(JSC::throwVMTypeError):

  • runtime/Exception.cpp: Added.

(JSC::Exception::create):
(JSC::Exception::destroy):
(JSC::Exception::createStructure):
(JSC::Exception::visitChildren):
(JSC::Exception::Exception):
(JSC::Exception::~Exception):

  • runtime/Exception.h: Added.

(JSC::Exception::valueOffset):
(JSC::Exception::cast):
(JSC::Exception::value):
(JSC::Exception::stack):
(JSC::Exception::didNotifyInspectorOfThrow):
(JSC::Exception::setDidNotifyInspectorOfThrow):

  • runtime/ExceptionHelpers.cpp:

(JSC::createTerminatedExecutionException):
(JSC::isTerminatedExecutionException):
(JSC::createStackOverflowError):

  • runtime/ExceptionHelpers.h:
  • runtime/GetterSetter.cpp:

(JSC::callGetter):

  • runtime/IteratorOperations.cpp:

(JSC::iteratorClose):

  • runtime/JSObject.cpp:
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):

  • runtime/JSPromiseDeferred.cpp:

(JSC::updateDeferredFromPotentialThenable):
(JSC::abruptRejection):

  • runtime/JSPromiseReaction.cpp:

(JSC::ExecutePromiseReactionMicrotask::run):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::releaseExecutableMemory):
(JSC::VM::throwException):
(JSC::VM::setStackPointerAtVMEntry):
(JSC::VM::getExceptionInfo): Deleted.
(JSC::VM::setExceptionInfo): Deleted.
(JSC::VM::clearException): Deleted.
(JSC::clearExceptionStack): Deleted.

  • runtime/VM.h:

(JSC::VM::targetMachinePCForThrowOffset):
(JSC::VM::clearException):
(JSC::VM::setException):
(JSC::VM::exception):
(JSC::VM::addressOfException):
(JSC::VM::exceptionStack): Deleted.

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):
(JSC::VMEntryScope::setEntryScopeDidPopListener):

Source/WebCore:

Update to use the new JSC::Exception object.

Test: inspector/debugger/break-on-exceptions.html

  • ForwardingHeaders/runtime/Exception.h: Added.
  • bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsArray):
(WebCore::reportException):
(WebCore::reportCurrentException):

  • bindings/js/JSDOMBinding.h:
  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSMainThreadExecState.cpp:

(WebCore::JSMainThreadExecState::didLeaveScriptContext):
(WebCore::functionCallHandlerFromAnyThread):
(WebCore::evaluateHandlerFromAnyThread):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::currentState):
(WebCore::JSMainThreadExecState::call):
(WebCore::JSMainThreadExecState::evaluate):
(WebCore::JSMainThreadExecState::runTask):

  • bindings/js/JSMediaDevicesCustom.cpp:

(WebCore::JSMediaDevices::getUserMedia):

  • Fixed a bug where the exception was not cleared before entering the VM to call JS code.
  • bindings/js/JSMutationCallback.cpp:

(WebCore::JSMutationCallback::call):

  • bindings/js/ReadableJSStream.cpp:

(WebCore::getPropertyFromObject):
(WebCore::callFunction):
(WebCore::ReadableJSStream::Source::start):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):

  • bindings/js/SerializedScriptValue.cpp:

(WebCore::SerializedScriptValue::create):
(WebCore::SerializedScriptValue::deserialize):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::setException):
(WebCore::WorkerScriptController::scheduleExecutionTermination):

  • bindings/js/WorkerScriptController.h:

(WebCore::WorkerScriptController::workerGlobalScopeWrapper):

  • bindings/js/WorkerScriptDebugServer.cpp:

(WebCore::WorkerScriptDebugServer::runEventLoopWhilePaused):
(WebCore::WorkerScriptDebugServer::reportException):

  • bindings/js/WorkerScriptDebugServer.h:
  • bindings/objc/WebScriptObject.mm:

(WebCore::createJSWrapper):
(WebCore::addExceptionToConsole):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):

  • Changed to call a version of JSMainThreadExecState::evaluate() that provides a stub returnedException because evaluateWebScript: doesn't need the exception.
  • inspector/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::isContentScript):
(WebCore::PageScriptDebugServer::reportException):

  • inspector/PageScriptDebugServer.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::importScripts):

Source/WebKit/mac:

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(WebKitInitializeApplicationCachePathIfNecessary):

  • Changed to use the new Exception object.

Source/WebKit/win:

  • WebView.cpp:

(WebView::reportException):

  • Changed to use the new Exception object.

Source/WebKit2:

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

  • Changed to use the new Exception object.

LayoutTests:

  • fast/dom/regress-131530-expected.txt:
  • Rebased results because we now have a proper line number.
  • http/tests/inspector/inspector-test.js:

(InspectorTestProxy.clearResults):
(InspectorTestProxy.reportUncaughtException):

  • Add the feature to sanitize the url reported by reportUncaughtException() since we can have tests that do expect uncaught exceptions, and we need the test results to be invariant. Sanitization of the url, in this case means, stripping off the preceding path.
  • inspector/debugger/break-on-exception-expected.txt: Added.
  • inspector/debugger/break-on-exception.html: Added.
  • inspector/debugger/break-on-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-catch.html: Added.
  • inspector/debugger/break-on-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-exception-finally.html: Added.
  • inspector/debugger/break-on-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-exception-native.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-exception-window-onerror.html: Added.
  • inspector/debugger/break-on-uncaught-exception-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception.html: Added.
  • inspector/debugger/break-on-uncaught-exception-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-finally-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-finally.html: Added.
  • inspector/debugger/break-on-uncaught-exception-native-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-native.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-then-with-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-throw-in-promise-rethrow-in-catch.html: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror-expected.txt: Added.
  • inspector/debugger/break-on-uncaught-exception-window-onerror.html: Added.
  • inspector/debugger/resources/break-on-exception-tests.js: Added.

(doThrow):
(testCatch):
(testFinally):
(testThrowingThruNativeCode):
(testThrowingInPromise):
(testThrowingInPromiseWithCatch):
(testThrowingInPromiseThen):
(testThrowingInPromiseThenWithCatch):
(testThrowingInPromiseWithRethrowInCatch):

11:39 AM Changeset in webkit [185258] by eric.carlson@apple.com
  • 5 edits in trunk

Layout tests fullscreen/video-controls-drag.html and media/video-fullscreeen-only-controls.html
fail on WK1 and WK2
https://bugs.webkit.org/show_bug.cgi?id=145675

Reviewed by Dean Jackson.

Source/WebCore:

No new tests, changes covered by existing tests.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Use shouldHaveControls() to test if controls should

be visible.

(Controller.prototype.handleWrapperMouseMove): Don't return early when in fullscreen.
(Controller.prototype.updateFullscreenButtons): Drive-by fix: always show the (exit) fullscreen

button when in fullscreen.

LayoutTests:

  • TestExpectations: Unskip tests.
  • fullscreen/video-controls-drag.html: Minor cleanup, force layout before testing control location.
11:35 AM Changeset in webkit [185257] by Alan Bujtas
  • 6 edits in trunk/LayoutTests

[iOS] Rebaseline expected results.

Unreviewed gardening.

  • platform/ios-simulator/compositing/overflow/overflow-positioning-expected.txt:
  • platform/ios-simulator/css3/selectors3/xhtml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/css3/selectors3/xml/css3-modsel-15c-expected.txt:
  • platform/ios-simulator/ios/scrolling/overflow-div-scrolling-expected.txt:
  • platform/ios-simulator/ios/touch/touch-handler-on-window-expected.txt:
11:26 AM Changeset in webkit [185256] by hyatt@apple.com
  • 3 edits
    2 adds in trunk

Underlines too close in vertical Chinese text.
https://bugs.webkit.org/show_bug.cgi?id=145651
<rdar://problem/11105920>

Reviewed by Simon Fraser.

Source/WebCore:

Added fast/text/decorations-vertical-underline.html

  • style/InlineTextBoxStyle.cpp:

(WebCore::computeUnderlineOffset):
Make sure the to map text-underline-position: auto to under when a line has an ideographic baseline.

LayoutTests:

  • fast/text/decorations-vertical-underline-expected.html: Added.
  • fast/text/decorations-vertical-underline.html: Added.
11:11 AM Changeset in webkit [185255] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Switch to doughnut chart and remove idle time in the Rendering Frames timeline
https://bugs.webkit.org/show_bug.cgi?id=145671

Reviewed by Timothy Hatcher.

  • Localizations/en.lproj/localizedStrings.js:

"Idle" string no longer used.

  • UserInterface/Views/TimelineRecordFrame.js:

Reduced maximum frame width by 2px.

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._refreshFrameSelectionChart):
Added inner radius to chart and removed "Idle" value.

11:09 AM Changeset in webkit [185254] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Layout test http/tests/misc/acid3.html times out on Yosemite WK2 Debug.
https://bugs.webkit.org/show_bug.cgi?id=145702

  • platform/mac-wk2/TestExpectations: Marking as flaky for now.
10:41 AM Changeset in webkit [185253] by Said Abou-Hallawa
  • 6 edits
    2 adds in trunk/LayoutTests

[iOS] Rebaseline expected results for svg font tests

Reviewed by Daniel Bates.

  • platform/ios-simulator/svg/custom/svg-fonts-no-latin-glyph-expected.txt: Added.
  • platform/ios-simulator/svg/custom/svg-fonts-segmented-expected.txt:
  • platform/ios-simulator/svg/custom/svg-fonts-with-no-element-reference-expected.txt: Added.
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-expected.txt:
  • platform/ios-simulator/svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph-expected.txt:
  • svg/custom/svg-fonts-no-latin-glyph.html:
10:19 AM Changeset in webkit [185252] by clopez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] [Wayland] The MiniBrowser crashes inside Weston.
https://bugs.webkit.org/show_bug.cgi?id=145645

Reviewed by Žan Doberšek.

No new tests, no behavior changes.

The issue was caused because we were not properly initializing the
Wayland display, and we were returning a nullptr in PlatformDisplayWayland::create(),
therefore a crash was happening on WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp:1136
<http://trac.webkit.org/browser/trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp?rev=185245#L1136>

  • platform/graphics/wayland/PlatformDisplayWayland.cpp:

(WebCore::PlatformDisplayWayland::create): When connecting to the Wayland
server socket we should use the default value (NULL). This allows the value
to be overwritten at run-time by the environment variables WAYLAND_DISPLAY or
WAYLAND_SOCKET that the Wayland compositor should define. Also add a couple
of warnings to get information about what is going wrong when we fail to
initialize the display instead of just crashing without giving more information.

  • platform/graphics/wayland/PlatformDisplayWayland.h:

(WebCore::PlatformDisplayWayland::isInitialized): Not longer check for m_webkitgtk
to signal that the display is ready because the UIProcess embedded Wayland
subcompositer is still not implemented. Added a FIXME note about it.

10:19 AM Changeset in webkit [185251] by andersca@apple.com
  • 9 edits in trunk/Source/WebKit2

Disable the CFNetwork cache in the web process
https://bugs.webkit.org/show_bug.cgi?id=145700
rdar://problem/20243343

Reviewed by Geoffrey Garen.

  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::open):

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters): Deleted.
(WebKit::WebProcessCreationParameters::encode): Deleted.
(WebKit::WebProcessCreationParameters::decode): Deleted.

  • Shared/WebProcessCreationParameters.h:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess): Deleted.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::createNewWebProcess): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Deleted.
(WebKit::WebProcess::initializeWebProcess): Deleted.

  • WebProcess/WebProcess.h:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformClearResourceCaches):
(WebKit::WebProcess::platformInitializeWebProcess):
(WebKit::WebProcess::platformSetCacheModel): Deleted.
(WebKit::WebProcess::platformTerminate): Deleted.

10:17 AM Changeset in webkit [185250] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Mask layer now is part of the layer tree output.

Unreviewed gardening.

  • platform/ios-simulator/compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
10:08 AM Changeset in webkit [185249] by dino@apple.com
  • 3 edits
    3 adds in trunk

[Mac] Popup focus is cut off
https://bugs.webkit.org/show_bug.cgi?id=145688
<rdar://problem/18313375>

Reviewed by Brent Fulgham.

Source/WebCore:

Yosemite increased the width of focus rings, causing
some ugly clipping on Yosemite. The solution was to
not set a clip (which was code introduced for Leopard).

Test: fast/forms/select-element-focus-ring.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintMenuList): Don't clip on Yosemite.

LayoutTests:

  • fast/forms/select-element-focus-ring.html: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.png: Added.
  • platform/mac/fast/forms/select-element-focus-ring-expected.txt: Added.
9:50 AM Changeset in webkit [185248] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Consolidate default website data directory computations
https://bugs.webkit.org/show_bug.cgi?id=145698

Reviewed by Andreas Kling.

  • UIProcess/API/APIProcessPoolConfiguration.cpp:

(API::ProcessPoolConfiguration::ProcessPoolConfiguration):

  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/APIWebsiteDataStoreCocoa.mm:

(API::WebsiteDataStore::defaultApplicationCacheDirectory):
(API::WebsiteDataStore::defaultNetworkCacheDirectory):
(API::WebsiteDataStore::defaultIndexedDBDatabaseDirectory):
(API::WebsiteDataStore::defaultLocalStorageDirectory):
(API::WebsiteDataStore::defaultMediaKeysStorageDirectory):
(API::WebsiteDataStore::defaultWebSQLDatabaseDirectory):
(API::WebsiteDataStore::defaultDataStoreConfiguration):
(API::applicationCacheDirectory): Deleted.

9:19 AM Changeset in webkit [185247] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

  • platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
  • platform/mac/fast/scrolling/resources/inner_content.html: Added.
  • platform/mac/fast/scrolling/resources/testContent.html: Added.
  • platform/mac/fast/scrolling/resources/testImage.png: Added.
8:19 AM Changeset in webkit [185246] by Manuel Rego Casasnovas
  • 5 edits in trunk

[CSS Grid Layout] Support dots sequences in grid-template-areas
https://bugs.webkit.org/show_bug.cgi?id=145693

Reviewed by Sergio Villar Senin.

Source/WebCore:

The CSS WG agreed to consider a sequence of "." characters a single null
cell token for grid-template-areas. That way authors can match the
number of dots to the width of the column.

For more information see:
https://lists.w3.org/Archives/Public/www-style/2015May/0175.html

Added new test cases to check the new behavior.

  • css/CSSParser.cpp:

(WebCore::containsOnlyDots): New helper function to check that the grid
area name is composed by only dots.
(WebCore::CSSParser::parseGridTemplateAreasRow): Use the new helper
function to look for unnamed areas.

LayoutTests:

Added new test cases to check the new behavior.

  • fast/css-grid-layout/grid-template-areas-get-set-expected.txt:
  • fast/css-grid-layout/grid-template-areas-get-set.html:
4:06 AM Changeset in webkit [185245] by clopez@igalia.com
  • 3 edits in trunk/Tools

check-webkit-style should recommend using nullptr instead of recommending using 0 for the null pointer in C++ code.
https://bugs.webkit.org/show_bug.cgi?id=145680

Reviewed by Brent Fulgham.

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_for_null):

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(WebKitStyleTest.test_null_false_zero):

2:11 AM Changeset in webkit [185244] by Stephanie Lewis
  • 3 edits in trunk/Tools

Make the web server more robust to timing issues..

Reviewed by Ryosuke Niwa.

Cleaned up exception handling.
Test server is actually serving pages before returning.
Clean up some style issues.

  • Scripts/webkitpy/benchmark_runner/http_server_driver/http_server/twisted_http_server.py:
  • Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:

(SimpleHTTPServerDriver.init):
(SimpleHTTPServerDriver.serve): check output, wait for pages to serve
(SimpleHTTPServerDriver.baseUrl):
(SimpleHTTPServerDriver.fetchResult):
(SimpleHTTPServerDriver.killServer):
(SimpleHTTPServerDriver.getReturnCode):

2:11 AM Changeset in webkit [185243] by Stephanie Lewis
  • 6 edits in trunk/Tools

Add errors to run-benchmark exception handling.

Reviewed by Ryosuke Niwa.

  • Scripts/run-benchmark:

(main):

  • Scripts/webkitpy/benchmark_runner/benchmark_builder/generic_benchmark_builder.py:

(GenericBenchmarkBuilder.prepare):
(GenericBenchmarkBuilder._runCreateScript):
(GenericBenchmarkBuilder._applyPatch):
(GenericBenchmarkBuilder.clean):

  • Scripts/webkitpy/benchmark_runner/benchmark_runner.py:

(BenchmarkRunner.init):
(BenchmarkRunner.execute):
(BenchmarkRunner):
(BenchmarkRunner.cleanup):

  • Scripts/webkitpy/benchmark_runner/generic_factory.py:

(GenericFactory.iterateGetItem):
(GenericFactory.create):

  • Scripts/webkitpy/benchmark_runner/utils.py:

(loadModule):
(loadJSONFromFile):
(forceRemove):

2:11 AM Changeset in webkit [185242] by Stephanie Lewis
  • 3 edits in trunk/Tools

Streamline run-benchmark browser

Reviewed by Ryosuke Niwa.

Add Caffeinate so computer won't sleep while running.
Remove calls to collect output since we were just dumping to stdout anyway.
Add xpc dyld_path.
Default to system safari.

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_browser_driver.py:

(OSXBrowserDriver.launchProcess):
(OSXBrowserDriver.terminateProcesses):
(OSXBrowserDriver):
(OSXBrowserDriver.launchCaffeinateForProcess):

  • Scripts/webkitpy/benchmark_runner/browser_driver/osx_safari_driver.py:

(OSXSafariDriver.launchUrl):
(OSXSafariDriver.closeBrowsers):

Jun 4, 2015:

11:44 PM Changeset in webkit [185241] by jhoneycutt@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Uploading an animated GIF from the photo library uploads a JPEG

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

Selecting a photo from the photo library using UIImagePickerController
results in an NSDictionary with image info and a UIImage with the
image. It's not possible to get the original image data from the
UIImage, only a PNG or JPEG representation, so we were getting a JPEG
representation and uploading that to the server. For animated GIFs,
this meant a JPEG representation of the first frame.

To fix this, we'll get the asset URL, if available, and use the Photos
API to query for the original image data.

Reviewed by Andy Estes and Joe Pecoraro.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

Soft link the Photos framework.

(-[WKFileUploadPanel _uploadItemForImageData:originalImage:imageName:successBlock:failureBlock:]):
Save the image's data to a temporary location, and create a
_WKImageFileUploadItem. Code moved from
-_uploadItemFromMediaInfo:successBlock:failureBlock:.

(-[WKFileUploadPanel _uploadItemForJPEGRepresentationOfImage:successBlock:failureBlock:]):
Get a JPEG representation of the UIImage, and create an upload item
from that data.

(uploadImageNameFromUTI):
Return a filename for the uploaded image based on the UTI.

(-[WKFileUploadPanel _uploadItemForImage:withAssetURL:successBlock:failureBlock:]):
Fetch the photo asset with the given asset URL. Create an image manager
object, and request the image data for the photo asset. Create an
upload item from that data. If we fail, fall back to a JPEG
representation.

(-[WKFileUploadPanel _uploadItemFromMediaInfo:successBlock:failureBlock:]):
Return early if the media item is not an image type. If it is, and we
have an asset URL, try to create an upload item for the native image.
If we don't have an asset URL, use a JPEG representation of the image.

10:20 PM Changeset in webkit [185240] by benjamin@webkit.org
  • 16 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Always track out-of-bounds array access explicitly instead of relying on the slow case
https://bugs.webkit.org/show_bug.cgi?id=145673

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

Previously, we were deciding to use out-of-bounds speculation based on two informations:
-Explicitly detected out-of-bounds accesses tracked on ArrayProfile.
-The number of time we took the slow cases in the baseline JIT.

The heuristic based on slow cases was a little too fragile.

In some cases, we were running into that limit just because the indexing type changes between
two values (typically Int32Array and DoubleArray). Sometimes we were just unlucky on what
we used for the inline cache.

In Kraken, this was hurting us on "audio-beat-detection" and "audio-fft". The array types we see
change between Int32 and Double. We run into the slow path a bit but never hit
out-of-bounds.

By the time we compile in DFG, we have stable Double Arrays but we speculate out-of-bounds based
on the number of slow cases we took. Because of that, we start boxing the double on GetByVal,
using DoubleRep, etc. adding a ton of overhead over otherwise very simple operations.

WebXPRT was also suffering from this problem but the other way arround: we were missing
the out-of-bounds accesses due to changes in indexing types, we were below the threshold
of slow-path access, thus we predicted in-bounds accesses for code that was doing plenty
of out-of-bands.

This patch fixes the problem by tracking the out-of-bounds access explicitly any time we go
into the slow path in baseline JIT. Since we no longer miss any out-of-bounds, we can remove
the slow-path heuristic.

There is new additional special case in the C code regarding out-of-bounds: Arguments access.
Mispredicting out-of-bounds accesses on arguments is a disaster for performance, so those are
tracked in the way DFG expect it.

There are a few important cases that are still not covered optimally:
-PutByVal on Arguments.
-Get/Put ByVal on TypedArray.
Those are simply not used by DFG in any way. TypedArrays should probably be looked at in the future.

  • bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::computeUpdatedPrediction):
The inline-cache repatch cases now update the ArrayProfile information. This has no value in baseline
JIT but it helps avoiding one recompile in DFG for the missing ArrayProfile information.

  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::setOutOfBounds):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::getArrayMode):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::getArrayModeConsideringSlowPath): Deleted.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

  • jit/JIT.h:
  • jit/JITInlines.h:

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_has_indexed_property):

  • jit/JITOperations.cpp:

(JSC::canUseFastArgumentAccess):
This is not my favorite part of this patch.

I tried having JSObject::canGetIndexQuickly() handle arguments which would put everything
on the generic path. Unfortunately, that code is very performance sensitive and some benchmarks were
impacted by over 10%

I left JSObject::canGetIndexQuickly() alone, and I added the canUseFastArgumentAccess() mirroring
how DFG uses out-of-bounds for Arguments.

(JSC::getByVal):

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

(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emitSlow_op_put_by_val):

  • runtime/JSPromiseFunctions.cpp:
  • tests/stress/get-by-val-out-of-bounds-basics.js: Added.

(opaqueGetByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(testIndexingTypeChangesOnInt32Array):
(opaqueGetByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):
(testIndexingTypeChangesOnStringArray):
(opaqueGetByValOnStringAndInt32ArrayHotOutOfBounds):
(testStringAndInt32ArrayHotOutOfBounds):
(opaqueGetByValOnDoubleArrayHotOutOfBounds):

  • tests/stress/put-by-val-out-of-bounds-basics.js: Added.

(opaquePutByValOnInt32ArrayEarlyOutOfBounds):
(testInt32ArrayEarlyOutOfBounds):
(opaquePutByValOnStringArrayHotOutOfBounds):
(testStringArrayHotOutOfBounds):

9:59 PM Changeset in webkit [185239] by fpizlo@apple.com
  • 13 edits
    3 adds in trunk

Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:

if (is int32)

unbox int32 and convert to double

else if (is number)

unbox double

else

exit


After:

tmp = unbox double
if (tmp == tmp)

done

else if (is int32)

unbox int32 and convert to double

else

exit


We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.

This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.

Rolling this back in after I made DFG::SpeculativeJIT call a new version of unboxDouble()
that doesn't assert that the JSValue is a double, since we are intentionally using it
before doing the "is a double" test. This wasn't a problem on 32-bit since unboxDouble()
does no such assertion on 32-bit.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):

LayoutTests:

  • js/regress/double-real-use-expected.txt: Added.
  • js/regress/double-real-use.html: Added.
  • js/regress/script-tests/double-real-use.js: Added.

(foo):

9:46 PM Changeset in webkit [185238] by commit-queue@webkit.org
  • 51 edits in trunk/Source/WebCore

Purge PassRefPtr create() factory functions in WebCore/css
https://bugs.webkit.org/show_bug.cgi?id=144905

Patch by Joonghun Park <jh718.park@samsung.com> on 2015-06-04
Reviewed by Darin Adler.

Return Ref instead of PassRefPtr in create() factory functions in css,
because the factory can't return null.

No new tests, no new behaviours.

  • css/BasicShapeFunctions.cpp:

(WebCore::valueForCenterCoordinate):
(WebCore::basicShapeRadiusToCSSValue):
(WebCore::valueForBasicShape):

  • css/BasicShapeFunctions.h:
  • css/CSSBasicShapes.h:
  • css/CSSCalculationValue.cpp:

(WebCore::createCSS):
(WebCore::CSSCalcValue::create):

  • css/CSSCalculationValue.h:
  • css/CSSCharsetRule.h:
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::valueForNinePieceImageSlice):
(WebCore::valueForNinePieceImageQuad):
(WebCore::zoomAdjustedPixelValue):
(WebCore::zoomAdjustedNumberValue):
(WebCore::zoomAdjustedPixelValueForLength):
(WebCore::valueForReflection):
(WebCore::createPositionListForLayer):
(WebCore::positionOffsetValue):
(WebCore::percentageOrZoomAdjustedValue):
(WebCore::autoOrZoomAdjustedValue):
(WebCore::getBorderRadiusCornerValues):
(WebCore::getBorderRadiusCornerValue):
(WebCore::getBorderRadiusShorthandValue):
(WebCore::matrixTransformValue):
(WebCore::computedTransform):
(WebCore::adjustLengthForZoom):
(WebCore::ComputedStyleExtractor::valueForShadow):
(WebCore::ComputedStyleExtractor::valueForFilter):
(WebCore::specifiedValueForGridTrackBreadth):
(WebCore::specifiedValueForGridTrackSize):
(WebCore::valueForGridTrackList):
(WebCore::scrollSnapDestination):
(WebCore::scrollSnapPoints):
(WebCore::scrollSnapCoordinates):
(WebCore::createAnimationTriggerValue):
(WebCore::getAnimationTriggerValue):
(WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword):
(WebCore::fillSizeToCSSValue):
(WebCore::lineHeightFromStyle):
(WebCore::fontSizeFromStyle):
(WebCore::zoomAdjustedPaddingOrMarginPixelValue):
(WebCore::shapePropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):

  • css/CSSComputedStyleDeclaration.h:
  • css/CSSFontFace.h:

(WebCore::CSSFontFace::create):

  • css/CSSFontFaceLoadEvent.h:
  • css/CSSFontFaceRule.h:
  • css/CSSGrammar.y.in:
  • css/CSSGridLineNamesValue.cpp:

(WebCore::CSSGridLineNamesValue::cloneForCSSOM):

  • css/CSSGridLineNamesValue.h:

(WebCore::CSSGridLineNamesValue::create):

  • css/CSSImportRule.h:
  • css/CSSKeyframeRule.h:

(WebCore::StyleKeyframe::create):

  • css/CSSKeyframesRule.h:
  • css/CSSMediaRule.h:
  • css/CSSPageRule.h:
  • css/CSSParser.cpp:

(WebCore::CSSParser::parseGridLineNames):
(WebCore::CSSParser::parseDashboardRegions):
(WebCore::CSSParser::parseClipShape):
(WebCore::CSSParser::parseBasicShape):
(WebCore::BorderImageSliceParseContext::commitBorderImageSlice):
(WebCore::BorderImageQuadParseContext::commitBorderImageQuad):

  • css/CSSParser.h:

(WebCore::CSSParser::ValueWithCalculation::calculation):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::init):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):

  • css/CSSPrimitiveValue.h:

(WebCore::CSSPrimitiveValue::create):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSPropertySourceData.h:

(WebCore::CSSStyleSourceData::create):
(WebCore::CSSRuleSourceData::create):
(WebCore::CSSRuleSourceData::createUnknown):

  • css/CSSRuleList.h:
  • css/CSSSegmentedFontFace.h:

(WebCore::CSSSegmentedFontFace::create):

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::createRareData):

  • css/CSSSelector.h:

(WebCore::CSSSelector::RareData::create):

  • css/CSSStyleRule.h:
  • css/CSSSupportsRule.h:
  • css/CSSValuePool.h:

(WebCore::CSSValuePool::createValue):

  • css/FontLoader.cpp:

(WebCore::LoadFontCallback::create):

  • css/LengthRepeat.h:

(WebCore::LengthRepeat::create):
(WebCore::LengthRepeat::cloneForCSSOM):

  • css/MediaList.h:

(WebCore::MediaQuerySet::create):
(WebCore::MediaQuerySet::createAllowingDescriptionSyntax):
(WebCore::MediaList::create):

  • css/MediaQueryList.cpp:

(WebCore::MediaQueryList::create):

  • css/MediaQueryList.h:
  • css/MediaQueryMatcher.h:

(WebCore::MediaQueryMatcher::create):

  • css/Pair.h:

(WebCore::Pair::create):

  • css/Rect.h:

(WebCore::Rect::create):
(WebCore::Rect::cloneForCSSOM):
(WebCore::Quad::create):
(WebCore::Quad::cloneForCSSOM):

  • css/SVGCSSComputedStyleDeclaration.cpp:

(WebCore::paintOrder):
(WebCore::ComputedStyleExtractor::svgPropertyValue):

  • css/StyleMedia.h:

(WebCore::StyleMedia::create):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::keyframeStylesForAnimation):

  • css/StyleSheetList.h:

(WebCore::StyleSheetList::create):

  • css/ViewportStyleResolver.h:

(WebCore::ViewportStyleResolver::create):

  • css/WebKitCSSMatrix.h:
  • css/WebKitCSSRegionRule.h:
  • css/WebKitCSSViewportRule.h:
  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::blendFilter):

  • rendering/style/RenderStyle.h:

(WebCore::adjustFloatForAbsoluteZoom):

  • rendering/style/StyleInheritedData.h:
9:33 PM Changeset in webkit [185237] by commit-queue@webkit.org
  • 8 edits in trunk

Web Inspector: Class constructor appearing as Object Tree property does not include parameters
https://bugs.webkit.org/show_bug.cgi?id=145661

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/InjectedScriptSource.js:

(InjectedScript.prototype._classPreview):
(InjectedScript.RemoteObject.prototype._appendPropertyPreviews):
The string we will return for previews of class constructor functions.

(InjectedScript.RemoteObject):
(InjectedScript.RemoteObject.prototype._describe):
No longer return the class name as the description string.
Instead return the class name for the RemoteObject.className.

Source/WebInspectorUI:

  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.get functionDescription):
Include the className as only use it for "class" types to override
the normal description string. Stash the actual function description
in a property we can access later.

  • UserInterface/Views/ObjectTreePropertyTreeElement.js:

(WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
Even if this property is a "class" we want to specifically parse it's
function description string. So use functionDescription.

LayoutTests:

  • inspector/model/remote-object-expected.txt:
  • inspector/model/remote-object.html:

Update expected results and test we get expected values for class constructors.

9:31 PM Changeset in webkit [185236] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Close and open tabs on mouseup, not mousedown
https://bugs.webkit.org/show_bug.cgi?id=145656

Match Safari's behaviour.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.js:

(WebInspector.TabBar):
(WebInspector.TabBar.prototype.set newTabItem):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleClick): Added.
(WebInspector.TabBar.prototype._handleMouseUp):
(WebInspector.TabBar.prototype._handleNewTabClick): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):

8:37 PM Changeset in webkit [185235] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

The last 2 merged DFAs are not minimized by DFACombiner

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04

  • contentextensions/DFACombiner.cpp:

(WebCore::ContentExtensions::DFACombiner::combineDFAs):
I introduced a bug when I made minimization conditional: the last merge
does not minimize if we do not reach the minimum size.

6:35 PM Changeset in webkit [185234] by Brent Fulgham
  • 4 edits in trunk

Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

  • page/mac/EventHandlerMac.mm:

(WebCore::scrollableAreaForBox): Added helper function.
(WebCore::findEnclosingScrollableContainer): Renamed from findEnclosingOverflowScroll.
Only identify something as our scroll element if it can be scrolled in either
axis of the gesture's motion.
(WebCore::scrollableAreaForContainerNode): Use new helper function.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.

LayoutTests:

Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.

It still correctly tests the subpixel bug from Bug 145637.

  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width

adjustment on image.

6:32 PM Changeset in webkit [185233] by Gyuyoung Kim
  • 4 edits in trunk/Source

REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Darin Adler.

Source/WebCore:

  • Modules/indexeddb/IDBDatabaseError.h:

(WebCore::IDBDatabaseError::create): Revert Ref usage of IDBDatabaseError::create().

Source/WebKit2:

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp: Remove leakRef() use.

(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

6:23 PM Changeset in webkit [185232] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Crash in EventDispatcher::dispatchEvent entering a location on Google Maps
https://bugs.webkit.org/show_bug.cgi?id=145677
rdar://problem/20698280

Reviewed by Dean Jackson.

If a transition is running on a pseudo-element, and the host element is removed
from the DOM just as the transition ends, and there is a transition event listener,
then we'd crash with a null dereference in event dispatch code.

AnimationController tries to clean up running animations when renderers are destroyed,
but omitted to remove the element from two vectors that store element references.
Elements are only added to these vectors briefly on animation end, before firing
events, but failure to remove the vector entries could result in attempting
to fire an event on a pseudo-element with no host element.

Also convert EventDispatcher code to be more robust to potentially null event
targets, since it's not clear that eventTargetRespectingTargetRules() can always
manage to return a non-null node.

Hard to make a test because this is timing sensitive.

  • dom/EventDispatcher.cpp:

(WebCore::eventTargetRespectingTargetRules):
(WebCore::EventDispatcher::dispatchScopedEvent):
(WebCore::EventDispatcher::dispatchEvent):
(WebCore::EventPath::EventPath):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::clear):

6:07 PM Changeset in webkit [185231] by commit-queue@webkit.org
  • 30 edits in trunk/Source/WebCore

Replace 0 with nullptr in WebCore/Page.
https://bugs.webkit.org/show_bug.cgi?id=145631

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-04
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • page/AutoscrollController.cpp:

(WebCore::AutoscrollController::AutoscrollController):
(WebCore::AutoscrollController::stopAutoscrollTimer):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPSourceList::parseSource):

  • page/ContentSecurityPolicy.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::clearContextMenu):

  • page/DOMSelection.cpp:

(WebCore::DOMSelection::clearTreeScope):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::resetDOMWindowProperties):
(WebCore::DOMWindow::localStorage):
(WebCore::DOMWindow::focus):

  • page/DOMWindow.h:
  • page/DOMWindowExtension.cpp:

(WebCore::DOMWindowExtension::reconnectFrameFromPageCache):
(WebCore::DOMWindowExtension::willDestroyGlobalObjectInCachedFrame):

  • page/DOMWindowProperty.cpp:

(WebCore::DOMWindowProperty::DOMWindowProperty):
(WebCore::DOMWindowProperty::~DOMWindowProperty):
(WebCore::DOMWindowProperty::disconnectFrameForPageCache):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInCachedFrame):
(WebCore::DOMWindowProperty::willDestroyGlobalObjectInFrame):

  • page/DragController.cpp:

(WebCore::DragController::dragEnded):
(WebCore::DragController::performDragOperation):
(WebCore::DragController::tryDocumentDrag):
(WebCore::DragController::concludeEditDrag):
(WebCore::DragController::startDrag):

  • page/EventHandler.cpp:

(WebCore::EventHandler::EventHandler):
(WebCore::EventHandler::resizeLayerDestroyed):
(WebCore::EventHandler::freeDataTransfer):
(WebCore::EventHandler::dragSourceEndedAt):
(WebCore::EventHandler::handleDrag):

  • page/EventHandler.h:
  • page/FocusController.cpp:

(WebCore::FocusController::advanceFocusInDocumentOrder):

  • page/Frame.cpp:

(WebCore::Frame::~Frame):
(WebCore::Frame::searchForLabelsBeforeElement):
(WebCore::Frame::willDetachPage):
(WebCore::Frame::createView):

  • page/Frame.h:

(WebCore::Frame::detachFromPage):

  • page/FrameDestructionObserver.cpp:

(WebCore::FrameDestructionObserver::FrameDestructionObserver):
(WebCore::FrameDestructionObserver::~FrameDestructionObserver):
(WebCore::FrameDestructionObserver::frameDestroyed):

  • page/FrameTree.cpp:

(WebCore::FrameTree::~FrameTree):
(WebCore::FrameTree::removeChild):

  • page/FrameTree.h:

(WebCore::FrameTree::FrameTree):
(WebCore::FrameTree::detachFromParent):

  • page/History.cpp:

(WebCore::History::History):

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::~Page):
(WebCore::Page::findStringMatchingRanges):

  • page/PageGroup.cpp:
  • page/Performance.cpp:

(WebCore::Performance::Performance):

  • page/PointerLockController.cpp:

(WebCore::PointerLockController::didLosePointerLock):
(WebCore::PointerLockController::clearElement):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::canAccessDatabase):

  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/SpatialNavigation.cpp:

(WebCore::FocusCandidate::FocusCandidate):

  • page/SpatialNavigation.h:

(WebCore::FocusCandidate::FocusCandidate):

  • page/scrolling/ScrollingTreeNode.cpp:

(WebCore::ScrollingTreeNode::ScrollingTreeNode):

  • page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:

(WebCore::ScrollingCoordinatorCoordinatedGraphics::willDestroyScrollableArea):

6:01 PM Changeset in webkit [185230] by benjamin@webkit.org
  • 9 edits
    7 adds in trunk

Combine tiny DFAs into slightly larger ones
https://bugs.webkit.org/show_bug.cgi?id=145572

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-06-04
Reviewed by Alex Christensen.

Source/WebCore:

This patch changes the ContentExtensions compiler to combine tiny DFA
until they reach a minimum size.

The main tool introduced here is DFAMerger. It combines 2 DFAs into
a single DFA that represent the union of the two machines.
That is done by a simple subset construction on the "name" of the nodes
in each DFAs.

Since we only merge 2 machines, and they are both deterministic, we know that
we can only be in one state of each machine, or a state in one machine without
equivalent in the other machine.
We exploit that to identify the mapping between nodes. To identify a node in
the new machine from nodes in the original machines, we just concatenate the node
IDs into a single 64 bits number. If there is no node in one of the machine, we
use a special tag.

The current algorithm does not have any subgraph pruning, machines grow very very
quickly. Because of that, we only merge very small DFAs at the moment.

Test: http/tests/contentextensions/filters-with-quantifiers-combined.html

  • WebCore.xcodeproj/project.pbxproj:
  • contentextensions/ContentExtensionCompiler.cpp:

(WebCore::ContentExtensions::compileRuleList):

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

(WebCore::ContentExtensions::DFA::graphSize):
(WebCore::ContentExtensions::DFA::debugPrintDot):

  • contentextensions/DFA.h:
  • contentextensions/DFACombiner.cpp: Added.

(WebCore::ContentExtensions::DFAMerger::DFAMerger):
(WebCore::ContentExtensions::DFAMerger::merge):
(WebCore::ContentExtensions::DFAMerger::signatureForIndices):
(WebCore::ContentExtensions::DFAMerger::extractIndexA):
(WebCore::ContentExtensions::DFAMerger::extractIndexB):
(WebCore::ContentExtensions::DFAMerger::getOrCreateCombinedNode):
(WebCore::ContentExtensions::DFAMerger::setHalfSignature):
(WebCore::ContentExtensions::DFAMerger::populateTransitions):
(WebCore::ContentExtensions::DFAMerger::populateFromFallbackTransitions):
(WebCore::ContentExtensions::DFAMerger::createTransitions):
(WebCore::ContentExtensions::DFAMerger::createFallbackTransitionIfNeeded):
(WebCore::ContentExtensions::DFACombiner::combineDFAs):

  • contentextensions/DFACombiner.h: Copied from Source/WebCore/contentextensions/DFA.h.

(WebCore::ContentExtensions::DFACombiner::addDFA):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebCore/DFACombiner.cpp: Added.

(TestWebKitAPI::DFACombinerTest::SetUp):
(TestWebKitAPI::combine):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebCore/DFAHelpers.h: Copied from Source/WebCore/contentextensions/DFA.h.

(TestWebKitAPI::countLiveNodes):
(TestWebKitAPI::createNFAs):
(TestWebKitAPI::buildDFAFromPatterns):

  • TestWebKitAPI/Tests/WebCore/DFAMinimizer.cpp:

(TestWebKitAPI::countLiveNodes): Deleted.
(TestWebKitAPI::createNFAs): Deleted.
(TestWebKitAPI::buildDFAFromPatterns): Deleted.

LayoutTests:

  • http/tests/contentextensions/filters-with-quantifiers-combined-expected.txt: Added.
  • http/tests/contentextensions/filters-with-quantifiers-combined.html: Added.
  • http/tests/contentextensions/filters-with-quantifiers-combined.html.json: Added.
5:31 PM Changeset in webkit [185229] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit2

Web Inspector: REGRESSION: dragged node in the DOM Tree isn't positioned correctly
https://bugs.webkit.org/show_bug.cgi?id=143912

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-04
Reviewed by Simon Fraser.

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setDragImage):
When using the WKWebView, convert the position from the WKView's
coordinate system to the WKWebView's.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView draggingUpdated:]):

  • UIProcess/API/mac/WKView.mm:

(-[WKView _dragImageForView:withImage:at:linkDrag:]):
Whitespace cleanup in original drag code.

5:12 PM Changeset in webkit [185228] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Skip failed layout tests following <http://trac.webkit.org/changeset/185207>
and <https://trac.webkit.org/changeset/185220>
(https://bugs.webkit.org/show_bug.cgi?id=145620)

Unreviewed.

5:03 PM Changeset in webkit [185227] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Fixed the build.

  • UIProcess/API/Cocoa/WKErrorPrivate.h:
4:21 PM Changeset in webkit [185226] by commit-queue@webkit.org
  • 1 edit
    5 deletes in trunk/LayoutTests

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

The test depends on a rolled out patch (Requested by ap on
#webkit).

Reverted changeset:

"Add WK1 versions of tests from Bugs 145637 and 145642"
https://bugs.webkit.org/show_bug.cgi?id=145649
http://trac.webkit.org/changeset/185211

4:12 PM Changeset in webkit [185225] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Renamed the WebKit2SandboxProfiles target to Sandbox Profiles.

Rubber-stamped by Anders Carlsson.

  • WebKit2.xcodeproj/project.pbxproj: Renamed the target. For now, added an aggregate

target with the old name that depends on the renamed target. We can remove it once the build
system doesn’t reference to old name.

3:53 PM Changeset in webkit [185224] by ap@apple.com
  • 2 edits in trunk/Tools

WebKitTestRunner leaks strings in generateWhitelist()
https://bugs.webkit.org/show_bug.cgi?id=145665

Reviewed by Myles C. Maxfield.

  • WebKitTestRunner/mac/TestControllerMac.mm:

(WTR::generateWhitelist):

3:37 PM Changeset in webkit [185223] by commit-queue@webkit.org
  • 13 edits
    2 moves in trunk/Source/WebCore

Rename MediaSessionManager to PlatformMediaSessionManager for consistency with PlatformMediaSession.
https://bugs.webkit.org/show_bug.cgi?id=145648

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

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • WebCore.xcodeproj/project.pbxproj:
  • html/HTMLMediaElement.cpp:
  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::effectivePreloadForElement):
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback):

  • platform/audio/PlatformMediaSession.cpp:

(WebCore::PlatformMediaSession::PlatformMediaSession):
(WebCore::PlatformMediaSession::~PlatformMediaSession):
(WebCore::PlatformMediaSession::clientWillBeginPlayback):
(WebCore::PlatformMediaSession::clientWillPausePlayback):
(WebCore::PlatformMediaSession::clientDataBufferingTimerFired):
(WebCore::PlatformMediaSession::updateClientDataBuffering):

  • platform/audio/PlatformMediaSessionManager.cpp: Renamed from Source/WebCore/platform/audio/MediaSessionManager.cpp.

(WebCore::PlatformMediaSessionManager::sharedManager):
(WebCore::PlatformMediaSessionManager::PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::resetRestrictions):
(WebCore::PlatformMediaSessionManager::has):
(WebCore::PlatformMediaSessionManager::activeAudioSessionRequired):
(WebCore::PlatformMediaSessionManager::count):
(WebCore::PlatformMediaSessionManager::beginInterruption):
(WebCore::PlatformMediaSessionManager::endInterruption):
(WebCore::PlatformMediaSessionManager::addSession):
(WebCore::PlatformMediaSessionManager::removeSession):
(WebCore::PlatformMediaSessionManager::addRestriction):
(WebCore::PlatformMediaSessionManager::removeRestriction):
(WebCore::PlatformMediaSessionManager::restrictions):
(WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
(WebCore::PlatformMediaSessionManager::sessionWillEndPlayback):
(WebCore::PlatformMediaSessionManager::setCurrentSession):
(WebCore::PlatformMediaSessionManager::currentSession):
(WebCore::PlatformMediaSessionManager::sessionRestrictsInlineVideoPlayback):
(WebCore::PlatformMediaSessionManager::sessionCanLoadMedia):
(WebCore::PlatformMediaSessionManager::applicationWillEnterBackground):
(WebCore::PlatformMediaSessionManager::applicationWillEnterForeground):
(WebCore::PlatformMediaSessionManager::updateSessionState):
(WebCore::PlatformMediaSessionManager::didReceiveRemoteControlCommand):
(WebCore::PlatformMediaSessionManager::systemWillSleep):
(WebCore::PlatformMediaSessionManager::systemDidWake):
(WebCore::PlatformMediaSessionManager::audioOutputDeviceChanged):

  • platform/audio/PlatformMediaSessionManager.h: Renamed from Source/WebCore/platform/audio/MediaSessionManager.h.

(WebCore::PlatformMediaSessionManager::~PlatformMediaSessionManager):
(WebCore::PlatformMediaSessionManager::configureWireLessTargetMonitoring):
(WebCore::PlatformMediaSessionManager::hasWirelessTargetsAvailable):
(WebCore::PlatformMediaSessionManager::sessions):

  • platform/audio/mac/AudioDestinationMac.cpp:
  • platform/audio/mac/MediaSessionManagerMac.cpp:

(PlatformMediaSessionManager::updateSessionState):
(MediaSessionManager::updateSessionState): Deleted.

  • testing/Internals.cpp:
3:20 PM Changeset in webkit [185222] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.34.1/Source/WebCore

Roll out r185207.

3:11 PM Changeset in webkit [185221] by commit-queue@webkit.org
  • 13 edits
    3 deletes in trunk

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

it caused a bunch of debug crashes (Requested by pizlo on
#webkit).

Reverted changeset:

"Simplify unboxing of double JSValues known to be not NaN and
not Int32"
https://bugs.webkit.org/show_bug.cgi?id=145618
http://trac.webkit.org/changeset/185216

3:08 PM Changeset in webkit [185220] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>

Reviewed by Dean Jackson.

Follow up to fix two tests broken by r185207.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Always show controls when the video element

is the fullscreen element because custom controls aren't possible.

3:00 PM Changeset in webkit [185219] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

[Cocoa] Add ASSERT to FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145659

Reviewed by Dean Jackson.

The new ASSERT needs to be guarded with CORETEXT_WEB_FONTS, which is defined in FontCustomPlatformData.h,
and is not accessible to FontPlatformData. Therefore, I've moved the definition into TextFlags.h, which
both files include.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont): Add the ASSERT.

  • platform/graphics/mac/FontCustomPlatformData.h: Move the CORETEXT_WEB_FONTS preprocessor

macro from here ...

  • platform/text/TextFlags.h: ... to here.
2:12 PM Changeset in webkit [185218] by commit-queue@webkit.org
  • 4 edits in trunk

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

platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-
latched-select.html (Requested by shallawa on #webkit).

Reverted changeset:

"Latching algorithm in findEnclosingOverflowScroll is broken"
https://bugs.webkit.org/show_bug.cgi?id=145642
http://trac.webkit.org/changeset/185208

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

[Cocoa] Remove unnecessary code from FontPlatformData::ctFont()
https://bugs.webkit.org/show_bug.cgi?id=145652

Hoefler Text Italic no longer has initial and final swashes by default, so there
is no reason to explicitly disable them.

Reviewed by Andreas Kling.

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::ctFont):
(WebCore::createFeatureSettingDictionary): Deleted.
(WebCore::cascadeToLastResortAndDisableSwashesFontDescriptor): Deleted.

1:53 PM Changeset in webkit [185216] by fpizlo@apple.com
  • 13 edits
    3 adds in trunk

Simplify unboxing of double JSValues known to be not NaN and not Int32
https://bugs.webkit.org/show_bug.cgi?id=145618

Reviewed by Geoffrey Garen.
Source/JavaScriptCore:


In many cases we know that we most likely loaded a non-NaN double value from the heap.
Prior to this patch, we would do two branches before unboxing the double. This patch
reduces this to one branch in the common case. Before:

if (is int32)

unbox int32 and convert to double

else if (is number)

unbox double

else

exit


After:

tmp = unbox double
if (tmp == tmp)

done

else if (is int32)

unbox int32 and convert to double

else

exit


We only use the new style if we have profiling that tells us that we are unlikely to see
either Int32 or NaN - since we will now exit on NaN and int32 requires an extra branch.

This is a 8% speed-up on Octane/box2d. On one microbenchmark this is a 25% speed-up.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::observeUseKindOnNode):
(JSC::DFG::FixupPhase::fixEdgeRepresentation):
(JSC::DFG::FixupPhase::injectTypeConversionsForEdge):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateDoubleReal):
(JSC::DFG::Node::shouldSpeculateNumber):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::SafeToExecuteEdge::operator()):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileDoubleRep):
(JSC::DFG::SpeculativeJIT::speculateNumber):
(JSC::DFG::SpeculativeJIT::speculateRealNumber):
(JSC::DFG::SpeculativeJIT::speculateDoubleRepReal):
(JSC::DFG::SpeculativeJIT::speculate):
(JSC::DFG::SpeculativeJIT::speculateDoubleReal): Deleted.

  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGUseKind.cpp:

(WTF::printInternal):

  • dfg/DFGUseKind.h:

(JSC::DFG::typeFilterFor):
(JSC::DFG::isNumerical):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileDoubleRep):
(JSC::FTL::LowerDFGToLLVM::boxDouble):
(JSC::FTL::LowerDFGToLLVM::jsValueToStrictInt52):
(JSC::FTL::LowerDFGToLLVM::speculate):
(JSC::FTL::LowerDFGToLLVM::speculateNumber):
(JSC::FTL::LowerDFGToLLVM::speculateRealNumber):
(JSC::FTL::LowerDFGToLLVM::speculateDoubleRepReal):
(JSC::FTL::LowerDFGToLLVM::jsValueToDouble): Deleted.
(JSC::FTL::LowerDFGToLLVM::speculateDoubleReal): Deleted.

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfNotOther):
(JSC::AssemblyHelpers::branchIfInt32):
(JSC::AssemblyHelpers::branchIfNotInt32):
(JSC::AssemblyHelpers::branchIfNumber):

LayoutTests:

  • js/regress/double-real-use-expected.txt: Added.
  • js/regress/double-real-use.html: Added.
  • js/regress/script-tests/double-real-use.js: Added.

(foo):

1:50 PM Changeset in webkit [185215] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

SideState should be a distinct abstract heap from Heap and Stack
https://bugs.webkit.org/show_bug.cgi?id=145653

Reviewed by Geoffrey Garen.

Before, SideState fit into the hierarchy like so:

World

|
+-- Stack
|
+-- Heap

|
+-- SideState


Now we will have:

World

|
+-- Stack
|
+-- Heap
|
+-- SideState


This makes it easy to ask if a writing operation wrote to anything that is observable even
if we don't exit. SideState is only observable if we exit.

  • dfg/DFGAbstractHeap.h:

(JSC::DFG::AbstractHeap::AbstractHeap):
(JSC::DFG::AbstractHeap::supertype):

1:43 PM Changeset in webkit [185214] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Decrease tabs height to match Safari's tabs height
https://bugs.webkit.org/show_bug.cgi?id=145647

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(.tab-bar):

1:15 PM Changeset in webkit [185213] by commit-queue@webkit.org
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Activity Viewer does not update on "Clear Log on reload"
https://bugs.webkit.org/show_bug.cgi?id=145466

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

  1. Isolate logic within LogManager and remove hacks/logic from all other files
  2. Within LogManager: Differentiate "messagesCleared" calls a) that happen as a result of a "requested clear" by Frontend (e.g. Button) b) that happen on page reload and install "clear/keep-on-page-reload" logic c) that happen on frame navigated, console.clear() or clear()
  3. Unify "ActiveLogCleared" and "Cleared" events to "Cleared"

For step 2b and 2c it is important to delay the handling and wait until
"_mainResourceDidChange" has determined whether a page reload happened or
not.

  • UserInterface/Base/Main.js:

(WebInspector.loaded):
Store "clear-log-on-reload" setting globally.

  • UserInterface/Controllers/IssueManager.js:

(WebInspector.IssueManager):

  • UserInterface/Models/DefaultDashboard.js:

(WebInspector.DefaultDashboard): Deleted.

  • UserInterface/Views/ObjectTreeView.js:

(WebInspector.ObjectTreeView.prototype._trackWeakEntries): Deleted.
(WebInspector.ObjectTreeView.prototype._untrackWeakEntries): Deleted.
(WebInspector.ObjectTreeView): Deleted.
Remove deleted events.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut):
(WebInspector.JavaScriptLogViewController.prototype.clear): Deleted.
Remove delegate function call and call LogManager directly.

  • UserInterface/Controllers/LogManager.js:

(WebInspector.LogManager):
(WebInspector.LogManager.prototype.messagesCleared):
(WebInspector.LogManager.prototype._delayedMessagesCleared):
(WebInspector.LogManager.prototype.requestClearMessages):
(WebInspector.LogManager.prototype._mainResourceDidChange):
Isolate "clear log" logic, especially clear/keep-log-on-reload logic.

  • UserInterface/Views/LogContentView.js:

(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype._sessionStarted):
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
(WebInspector.LogContentView.prototype._clearLog):
(WebInspector.LogContentView.prototype.didClearMessages): Deleted.
(WebInspector.LogContentView.prototype._sessionsCleared): Deleted.
(WebInspector.LogContentView.prototype._activeLogCleared): Deleted.
(WebInspector.LogContentView.prototype._clearLogIgnoringClearMessages): Deleted.
Make it a consumer of LogManager and remove special hacks. Simplify code.

12:37 PM Changeset in webkit [185212] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

[Cocoa] Expose interruptedForPolicyChangeError
https://bugs.webkit.org/show_bug.cgi?id=145627

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKErrorPrivate.h: Added WKErrorCodeFrameLoadInterruptedByPolicyChange with the same value as

kWKErrorCodeFrameLoadInterruptedByPolicyChange.

12:33 PM Changeset in webkit [185211] by Brent Fulgham
  • 1 edit
    5 adds in trunk/LayoutTests

Add WK1 versions of tests from Bugs 145637 and 145642
https://bugs.webkit.org/show_bug.cgi?id=145649

Reviewed by Zalan Bujtas.

  • platform/mac/fast/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac/fast/scrolling/iframe_in_iframe.html: Added.
  • platform/mac/fast/scrolling/resources/inner_content.html: Added.
  • platform/mac/fast/scrolling/resources/testContent.html: Added.
  • platform/mac/fast/scrolling/resources/testImage.png: Added.
12:17 PM Changeset in webkit [185210] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/LayoutTests

REGRESSION: streams/reference-implementation/readable-stream-templated.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=145643

Reviewed by Alexey Proskuryakov.

  • streams/reference-implementation/readable-stream-templated.html: Removed 'timeout: 50' for test that is now passing.
12:10 PM Changeset in webkit [185209] by bshafiei@apple.com
  • 2 edits in tags/Safari-601.1.34.1/Source/WebCore

Merged r185207. rdar://problem/21145806

11:55 AM Changeset in webkit [185208] by Brent Fulgham
  • 4 edits in trunk

Latching algorithm in findEnclosingOverflowScroll is broken
https://bugs.webkit.org/show_bug.cgi?id=145642
<rdar://problem/21242308>

Reviewed by Simon Fraser.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

  • page/mac/EventHandlerMac.mm:

(WebCore::findEnclosingOverflowScrollForDominantDirection): Renamed from
'findEnclosingOverflowScroll'. Only identify element as our overflow
scroll element if it can be scrolled in either axis of the gesture's
motion.
(WebCore::scrolledToEdgeInDominantDirection): Renamed.
(WebCore::EventHandler::platformPrepareForWheelEvents): Use new function
name, and pass horizontal and vertical deltas.
(WebCore::findEnclosingOverflowScroll): Deleted.

LayoutTests:

Revise the new latching test to remove the image "max-width: 100%" style, which was
preventing this example from having a horizontal scrollable region at the top of the
file.

It still correctly tests the subpixel bug from Bug 145637.

  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Remove width

adjustment on image.

11:26 AM Changeset in webkit [185207] by eric.carlson@apple.com
  • 2 edits in trunk/Source/WebCore

[Mac] Don't show default controls after playing to wireless target, again
https://bugs.webkit.org/show_bug.cgi?id=145620
<rdar://problem/21145806>

Reviewed by Dean Jackson.

  • Modules/mediacontrols/mediaControlsApple.js:

(Controller.prototype.updateControls): Show or hide the panel as appropriate.
(Controller.prototype.handleWrapperMouseMove): Early return if !video.controls.
(Controller.prototype.addControls): Call updateControls instead of this.setNeedsTimelineMetricsUpdate

so all needed setup is done.

(Controller.prototype.resetHideControlsTimer): Only start the hide timer if playing.

11:23 AM Changeset in webkit [185206] by Chris Dumez
  • 14 edits in trunk/Source

[WK2] Prune more resources from the MemoryCache before process suspension
https://bugs.webkit.org/show_bug.cgi?id=145633

Reviewed by Andreas Kling.

Source/JavaScriptCore:

No longer move protect IncrementalSweeper::fullSweep() behind
USE(CF) so we don't need #ifdefs at call sites, similarly to what is
done for the rest of the IncrementalSweeper API.

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::fullSweep):

  • heap/IncrementalSweeper.h:

Source/WebCore:

Prune more resources from the MemoryCache before process suspension or
on simulated memory warning by doing a synchronous JS garbage collection
and sweep *before* pruning dead resources from the memory cache.
Previously, we would do the garbage collection after pruning the
MemoryCache which meant that a lot of resources became dead after we
tried to prune them.

At the end a basic browsing on apple.com, we are able to remove ~17%
more resources from the MemoryCache on simulated memory warning with this
change.

Pruning as much as we can from the memory cache on critical memory
pressure or before process suspension is not only useful to free up
memory but also to make room in the vnode table as a lot of
CachedResources are mmmap'd from the network disk cache.

  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::MemoryPressureHandler):
(WebCore::MemoryPressureHandler::releaseCriticalMemory):

  • Pass 'synchronous' argument so that we know if we need to do a synchronous JS garbage collection.
  • Move here code from in the Cocoa handler that is doing a JS garbage collection as well as a sweep, and make this code cross-platform. This code used to be iOS specific but I see no reason we shouldn't do this on Mac.

(WebCore::MemoryPressureHandler::releaseMemory):

  • platform/MemoryPressureHandler.h:

Use enum class arguments for critical / synchronous. The 'synchronous'
argument is new so that the call site can let us know if memory needs
to be freed synchronously (e.g. in case of imminent process suspension).

  • platform/cocoa/MemoryPressureHandlerCocoa.mm:

(WebCore::MemoryPressureHandler::platformReleaseMemory):

Remove iOS-specific code that was doing a JS garbage collection and
sweep as this code is now in the generic memory pressure handler.

(WebCore::MemoryPressureHandler::install):

On simulated memory pressure, set 'synchronous' argument to Yes so that
a synchronous GC is done by the generic memory pressure handler. This
way, we no longer need to do a sync GC after calling the memory pressure
handler. This avoids code duplication and makes sure the GC is done
before pruning the memory cache.

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::lowMemoryHandler):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::processWillSuspendImminently):
(WebKit::NetworkProcess::prepareToSuspend):

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

(WebKit::NetworkProcess::platformLowMemoryHandler):

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::initializeProcess):

Update low memory handler prototype to match WebCore changes.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::actualPrepareToSuspend):

Pass Synchronous::Yes argument to MemoryPressureHandler::releaseMemory()
to request that the memory is free up synchronously (e.g. synchronous
JS garbage collection) as the process is about to be suspended.
Previously, the memory pressure handler was trying to detect this case
by checking if the system was really under memory pressure but this was
a bit hackish and it wouldn't work if the process happened to get
suspended while the system was under memory pressure.

11:18 AM Changeset in webkit [185205] by mmaxfield@apple.com
  • 7 edits in trunk/Source/WebCore

[Cocoa] Clean up m_isEmoji in FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145644

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.

m_isEmoji used to be a public member variable only defined on iOS. This
means that, whenever it was consulted, the sites were surrounded by
PLATFORM(IOS) guards. A cleaner design is to use a getter and setter,
which on non-iOS platforms, always return false / do nothing. Then, the
use sites can just use these functions without having ugly guards.

No new tests because there is no behavior change.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::hash): Simplify isEmoji use site.
(WebCore::FontPlatformData::isEmoji): Getter. Returns false on Mac.
(WebCore::FontPlatformData::setIsEmoji): Setter. Does nothing on Mac.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::pointAdjustedForEmoji): Simplify isEmoji use site.
(WebCore::FontCascade::drawGlyphs): Ditto.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::platformInit): Ditto.
(WebCore::canUseFastGlyphAdvanceGetter): Ditto.
(WebCore::isEmoji): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::platformDataInit): Simplify isEmoji use
site.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Ditto.
(WebCore::FontPlatformData::ctFontSize): Ditto.

  • platform/graphics/ios/FontCacheIOS.mm:

(WebCore::FontCache::getSystemFontFallbackForCharacters): Ditto.
(WebCore::FontCache::createFontPlatformData): Ditto.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances): Ditto.

11:09 AM Changeset in webkit [185204] by bshafiei@apple.com
  • 3 edits
    2 copies in tags/Safari-601.1.34.1

Merged r185187. rdar://problem/21223358

11:08 AM Changeset in webkit [185203] by bshafiei@apple.com
  • 5 edits in tags/Safari-601.1.34.1/Source

Versioning.

11:04 AM Changeset in webkit [185202] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34.1

New tag.

10:53 AM Changeset in webkit [185201] by Brent Fulgham
  • 6 edits
    5 adds in trunk

REGRESSION (r181879): Scrolling order on pages with focused iframe is broken.
https://bugs.webkit.org/show_bug.cgi?id=145637
<rdar://problem/20635581>

Reviewed by Zalan Bujtas.

Source/WebCore:

Test: platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html

This page revealed a bug in our RenderBox code caused by the mismatch between
our scrolling units, which are all integrally snapped, with our client height
and widths, which are not snapped at all.

In certain cases, the client height would have a small subpixel difference compared
to the scroll height, which would cause WebKit to believe it was scrollable. When
this happened, it would get stuck latched to this element and block scrolling events.

  • page/Frame.cpp:

(WebCore::Frame::scrollOverflowLayer): Use roundToInt for clientWidth and clientHeight,
rather than integer truncation.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::canBeScrolledAndHasScrollableArea): Need to round clientWidth
and clientHeight to compare with scrollWidth/scrollHeight.

  • rendering/RenderBox.h:

(WebCore::RenderBox::hasScrollableOverflowX): Ditto.
(WebCore::RenderBox::hasScrollableOverflowY): Ditto.

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::computePosition): Use roundToInt for clientWidth and
clientHeight, rather than integer truncation.

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/iframe_in_iframe.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/inner_content.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/testContent.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/resources/testImage.png: Added.
9:50 AM Changeset in webkit [185200] by mmaxfield@apple.com
  • 6 edits in trunk/Source/WebCore

[Cocoa] Clean up m_font inside FontPlatformData
https://bugs.webkit.org/show_bug.cgi?id=145634

Patch by Myles C. Maxfield <mmaxfield@apple.com> on 2015-06-04
Reviewed by Andreas Kling.

FontPlatformDatas are used as keys in a HashMap. This means that they need
to be able to represent a "deleted" value. Previously, this "deleted" value
was represented as setting the pointer value of m_font to -1, and guarding
all uses of m_font to make sure it wasn't -1 before dereferencing it.

This patch simplifies FontPlatformData to represent a "deleted" value using
a separate boolean member variable. This class is already big enough that
the increased space is negligable (the class already contains two CoreText
fonts in addition to a CoreGraphics font). Because of this simplification,
m_font can now be a RetainPtr, instead of being manually retained and
released.

There is still a long way to go before FontPlatformData is acceptably
clean and understandable. This patch improves one aspect of it, and more
improvements will eventually follow.

No new tests because there is no behavior change.

  • platform/graphics/FontCache.cpp: Remove unused variable.
  • platform/graphics/FontPlatformData.cpp:

(WebCore::FontPlatformData::FontPlatformData): Clean up all the PLATFORM
macros in favor of a single bool. Also, update to include new state.
(WebCore::FontPlatformData::operator=): Update to include new state.

  • platform/graphics/FontPlatformData.h:

(WebCore::FontPlatformData::font): Update to account for RetainPtr.
(WebCore::FontPlatformData::nsFont): Ditto.
(WebCore::FontPlatformData::setNSFont): Ditto.
(WebCore::FontPlatformData::hash): Update to include new state.
(WebCore::FontPlatformData::operator==): Ditto.
(WebCore::FontPlatformData::isHashTableDeletedValue): Use new state.
(WebCore::FontPlatformData::hashTableDeletedFontValue): Deleted.
(WebCore::FontPlatformData::isValidCTFontRef): Deleted.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::platformDataInit): No need for manual retain
and release.
(WebCore::FontPlatformData::platformDataAssign): Ditto.
(WebCore::FontPlatformData::platformIsEqual): Update to account for
RetanPtr.
(WebCore::FontPlatformData::setFont): No need for manual retain and
release.
(WebCore::FontPlatformData::FontPlatformData): Deleted.
(WebCore::FontPlatformData::~FontPlatformData): Deleted.

  • platform/graphics/win/FontPlatformDataCairoWin.cpp:

(WebCore::FontPlatformData::~FontPlatformData): m_scaledFont is always
valid.
(WebCore::FontPlatformData::platformDataAssign): Ditto.

7:25 AM Changeset in webkit [185199] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

css3/filters/backdrop/backdrop-filter-with-mask.html is missing the mask layer.

Unreviewed gardening.

  • css3/filters/backdrop/backdrop-filter-with-mask-expected.txt:
3:55 AM Changeset in webkit [185198] by clopez@igalia.com
  • 6 edits in trunk/Source

[GTK] [Wayland] Build is broken on trunk
https://bugs.webkit.org/show_bug.cgi?id=142879

Reviewed by Carlos Garcia Campos.

Source/WebCore:

No new tests, no behavior changes.

Patch on GLContext.h picked from bug 136831 by
Iago Toral <itoral@igalia.com> and Zan Dobersek <zdobersek@igalia.com>

  • platform/graphics/GLContext.h: Include wayland-egl.h before eglplatform.h

to use the Wayland platform when building for Wayland.

  • platform/graphics/PlatformDisplay.cpp: Fix the include of GDK

headers for the different targets.

  • platform/graphics/wayland/WaylandSurface.cpp: Fix build after r183731.

(WebCore::WaylandSurface::~WaylandSurface):

Source/WebKit2:

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::makeContextCurrent): When Wayland target
is enabled GLNativeWindowType is not an u_int64 type.
Cast contextID to avoid a build failure.

3:19 AM Changeset in webkit [185197] by youenn.fablet@crf.canon.fr
  • 16 edits in trunk

[Streams API] Implement ReadableStreamController enqueue
https://bugs.webkit.org/show_bug.cgi?id=145210

Reviewed by Darin Adler.

Source/WebCore:

Added possibility to enqueue any JSValue within ReadableJSStream.
They are stored in a Vector of strongified JSValue.

Added support for streams that contain data but are asked to close.
This is done through m_closeRequested boolean and splitting actual closing of the stream from changeStateToClosed().

Chunk size and backpressure mechanism is not yet implemented.
Neither is pulling once enqueued data is processed.

Covered by rebased tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::changeStateToClosed): Split method with newly added close().
(WebCore::ReadableStream::close): Does the actual closing of stream once stream has no more values.
(WebCore::ReadableStream::read): Close the stream when stream is emptied and close is requested.
(WebCore::ReadableStream::resolveReadCallback): Added to enable ReadableJSStream to resolve read callbacks immediatly at enqueue time.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::isErrored): Getter added for the custom binding code.
(WebCore::ReadableStream::isCloseRequested): Ditto.

  • bindings/js/JSReadableStreamControllerCustom.cpp:

(WebCore::JSReadableStreamController::enqueue): binding code for enqueue, taking care of raising exception if readable stream cannot enqueue.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read):
(WebCore::ReadableJSStream::enqueue):

  • bindings/js/ReadableJSStream.h:

LayoutTests:

  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-reader.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html:
12:52 AM Changeset in webkit [185196] by youenn.fablet@crf.canon.fr
  • 8 edits
    1 delete in trunk/Source/WebCore

[Streams API] ReadableJSStream does not need a ReadableStreamSource
https://bugs.webkit.org/show_bug.cgi?id=145601

Reviewed by Darin Adler.

Covered by existing tests.

  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::ReadableStream): Remoed m_source.

  • Modules/streams/ReadableStream.h: Ditto
  • Modules/streams/ReadableStreamSource.h: Deleted.
  • WebCore.vcxproj/WebCore.vcxproj: Removing Modules/streams/ReadableStreamSource.h.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto.
  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::globalObject):
(WebCore::ReadableJSStream::doStart): Equivalent of ReadableJSStream::Source::start().
(WebCore::ReadableJSStream::create): Updated according new constructor.
(WebCore::ReadableJSStream::ReadableJSStream):
(WebCore::startReadableStreamAsync): Deleted.
(WebCore::ReadableJSStream::jsController): Deleted.
(WebCore::ReadableJSStream::storeError): Deleted.

  • bindings/js/ReadableJSStream.h: Added m_source member to store the JS source as a JS object.
12:39 AM Changeset in webkit [185195] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

Shrink the ArabicCharShapingMode enum in SVGGlyph.cpp
https://bugs.webkit.org/show_bug.cgi?id=145564

Reviewed by Darin Adler.

Shrink the ArabicCharShapingMode enum to just one byte.
This drops the size of the static s_arabicCharShapingMode
array of ArabicCharShapingMode values from 888 bytes to 222.

  • platform/graphics/SVGGlyph.cpp:

(WebCore::processArabicFormDetection):

Jun 3, 2015:

11:49 PM Changeset in webkit [185194] by Yusuke Suzuki
  • 2 edits in trunk/Tools

Fix options in build-jsc for CMake builds
https://bugs.webkit.org/show_bug.cgi?id=145636

Reviewed by Gyuyoung Kim.

CMake only accepts -DXXX=YYY style options.
And ensured that ENABLE_JIT=OFF when specifying --cloop.

  • Scripts/build-jsc:
11:45 PM Changeset in webkit [185193] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

Added a patch so that the colors displayed on the page could be toggled
in case people need accessibility colors displayed in their browser.
https://bugs.webkit.org/show_bug.cgi?id=145570
<rdar://problem/20994468>

Added in CSS colors and toggle buttons for checkmarks in the page, so that
the page could be rendered in a specific way for accessibility needs if needed.

Patch by Matthew Daiter <mdaiter@apple.com> on 2015-06-03
Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Main.js:

(updateHiddenPlatforms):
(applyAccessibilityColorSetting): Initial loading of accessibility colors if necessary
(toggleAccessibilityColors): Toggle colors on and off
(documentReady): Needed to make changes to the initialization

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(a:hover):
(div.cellButton, div.accessibilityButton): Added in similar properties for cellButton and accessibilityButton
(div.cellButton.hide, div.accessibilityButton.hide):
(div.cellButton.unhide, div.accessibilityButton.unhide):
(.settings-visible div.accessibilityButton.hide, .settings-visible div.accessibilityButton.unhide):
(.popover-tracking:hover):
(.accessibilityButton):
(div.cellButton): Deleted.
(div.cellButton.hide): Deleted.
(div.cellButton.unhide): Deleted.
(.settings-visible div.cellButton.hide, .settings-visible div.cellButton.unhide): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/StatusLineView.css:

(.status-line.neutral .bubble):
(.status-line.unauthorized .bubble):
(.status-line.danger .bubble.pictogram):
(.status-line.bad .bubble.pictogram):
(.status-line.no-bubble .message):
(.status-line.bad .bubble):
(.status-line.good .bubble):
(.status-line.good .message):
(.status-line.bad .message):
(body.accessibility-colors .status-line.good .bubble):
(body.accessibility-colors .status-line.bad .bubble):
(body.accessibility-colors .status-line.good .message):
(body.accessibility-colors .status-line.bad .message):
(.status-line.danger .message):
(.status-line.unauthorized .message):

11:23 PM Changeset in webkit [185192] by Alan Bujtas
  • 4 edits
    2 copies
    2 adds in trunk

Use borderBoxRect instead of contentBoxRect for backdrop filter.
https://bugs.webkit.org/show_bug.cgi?id=145606

Reviewed by Simon Fraser.

Backdrop filter should use border box rect. It also needs to take css clip into account.

Source/WebCore:

Tests: css3/filters/backdrop/backdrop-filter-with-cliprect.html

css3/filters/backdrop/backdrop-filter-with-mask.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):

LayoutTests:

  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt:
  • css3/filters/backdrop/backdrop-filter-with-cliprect-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-with-cliprect.html: Added.
  • css3/filters/backdrop/backdrop-filter-with-mask-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-with-mask.html: Added.
11:06 PM Changeset in webkit [185191] by youenn.fablet@crf.canon.fr
  • 3 edits in trunk/Source/WebCore

MediaDevices.getUserMedia should put promises in resolve/reject state synchronously
https://bugs.webkit.org/show_bug.cgi?id=145308

Reviewed by Darin Adler.

Removed the calls to callToMainThread in which were resolved and rejected promises.
Cleaned up the code to remove unneeded callback copies.

Covered by existing tests.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::create):
(WebCore::UserMediaRequest::UserMediaRequest):
(WebCore::UserMediaRequest::didCreateStream):
(WebCore::UserMediaRequest::failedToCreateStreamWithConstraintsError):
(WebCore::UserMediaRequest::failedToCreateStreamWithPermissionError):

  • Modules/mediastream/UserMediaRequest.h:
10:35 PM Changeset in webkit [185190] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit2

Made WKBackForwardListItemPrivate.h a private header after it was added as internal in r185183.

  • WebKit2.xcodeproj/project.pbxproj:
10:19 PM Changeset in webkit [185189] by Gyuyoung Kim
  • 2 edits in trunk/LayoutTests

[EFL] Unreviewed gardening on 4th June.

Skip a test regarding emoji font, mark timeout to animation tests.
Update a track test and a xhr test.

  • platform/efl/TestExpectations:
10:14 PM Changeset in webkit [185188] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL] Implement window_object_cleared callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145603

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

We need to provide right timing for custom JS API that may need to work at the beginning of the page.

  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:
  • WebProcess/InjectedBundle/API/efl/ewk_page.cpp:

(EwkPage::EwkPage):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didClearWindowObjectForFrame):
(EwkPage::didFinishDocumentLoadForFrame):

  • WebProcess/InjectedBundle/API/efl/ewk_page.h:
  • WebProcess/InjectedBundle/API/efl/ewk_page_private.h:
9:42 PM Changeset in webkit [185187] by Simon Fraser
  • 3 edits
    2 adds in trunk

REGRESSION (r184968): missing media player buttons (control bar exists, but no buttons)
https://bugs.webkit.org/show_bug.cgi?id=145630

Reviewed by Zalan Bujtas.

Source/WebCore:

r184968 changed the initial value of m_intersectsCoverageRect to false. However,
this triggered a bug with mask layers, whose value of m_intersectsCoverageRect was never
updated.

Fix by copying the value of m_intersectsCoverageRect from the main layer to its
mask layer, just as we do for m_visibleRect and m_coverageRect.

Test: compositing/visible-rect/mask-layer-coverage.html

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):

LayoutTests:

Test that dumps coverage info for a layer with a mask.

  • compositing/visible-rect/mask-layer-coverage-expected.txt: Added.
  • compositing/visible-rect/mask-layer-coverage.html: Added.
9:42 PM Changeset in webkit [185186] by Simon Fraser
  • 5 edits in trunk

Layer tree dumps should include mask layers
https://bugs.webkit.org/show_bug.cgi?id=145629

Reviewed by Zalan Bujtas.
Source/WebCore:

Dumping the layer tree omitted to dump the mask layer, so fix
GraphicsLayer::dumpProperties() to dump this layer.

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::dumpProperties):

LayoutTests:

New results.

  • compositing/masks/compositing-clip-path-change-no-repaint-expected.txt:
  • compositing/masks/mask-layer-size-expected.txt:
9:19 PM Changeset in webkit [185185] by commit-queue@webkit.org
  • 5 edits in trunk

AX: Expose field sets to accessibility clients
https://bugs.webkit.org/show_bug.cgi?id=145585

Source/WebCore:

Expose fieldsets to the accessibility API via a subrole of AXFieldset.

Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper subrole]):

LayoutTests:

Updated role tests to include the new subrole for fieldsets

Patch by Greg Hughes <ghughes@apple.com> on 2015-06-03
Reviewed by Chris Fleizach.

  • platform/mac/accessibility/roles-exposed-expected.txt:
8:42 PM Changeset in webkit [185184] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: if a known CSS property has an unsupported value, only strikethrough the value
https://bugs.webkit.org/show_bug.cgi?id=141262

Patch by Devin Rousso <Devin Rousso> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Models/CSSCompletions.js:

(WebInspector.CSSCompletions.prototype.nameMatchesValidPropertyExactly): Loops through the full property list and returns true only if a property exactly matches the given property name.
(WebInspector.CSSCompletions): Added nameMatchesValidPropertyExactly function.

  • UserInterface/Views/CSSStyleDeclarationTextEditor.js:

(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded): Added logic to limit the invalid class marker to only the property value if the property name is an actual property.

7:55 PM Changeset in webkit [185183] by andersca@apple.com
  • 4 edits
    1 copy in trunk/Source/WebKit2

Add SPI that returns the snapshot layer contents for a given back/forward list item
https://bugs.webkit.org/show_bug.cgi?id=145621

Reviewed by Dan Bernstein.

  • UIProcess/API/Cocoa/WKBackForwardListItem.mm:

(-[WKBackForwardListItem _snapshotLayerContents]):

  • UIProcess/API/Cocoa/WKBackForwardListItemInternal.h:
  • UIProcess/API/Cocoa/WKBackForwardListItemPrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKBackForwardListItemInternal.h.
  • WebKit2.xcodeproj/project.pbxproj:
7:55 PM Changeset in webkit [185182] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Remove dead code FontPlatformData::roundsGlyphAdvances()
https://bugs.webkit.org/show_bug.cgi?id=145628

Reviewed by Simon Fraser.

No new tests because there is no behavior change.

  • WebCore.order:
  • platform/graphics/FontPlatformData.h:
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::roundsGlyphAdvances): Deleted.

7:01 PM WebKitGTK/WebKit2Roadmap edited by clopez@igalia.com
(diff)
5:07 PM Changeset in webkit [185181] by Said Abou-Hallawa
  • 2 edits in trunk/LayoutTests

Skip webgl/useWhilePending.html on WebKit 1 following:
<http://trac.webkit.org/changeset/185172>

Unreviewed.

  • platform/mac-wk1/TestExpectations:
5:03 PM Changeset in webkit [185180] by ryuan.choi@navercorp.com
  • 9 edits
    1 move
    1 delete in trunk/Source/WebCore

[CoordinatedGraphics] Merge CoordinatedTile into Tile
https://bugs.webkit.org/show_bug.cgi?id=145602

Reviewed by Darin Adler.

CoordinatedTile only implements Tile since Qt and WebKit1/Efl were dropped.
So, there is no reason that CoordinatedTile inherits Tile interface.

No new tests, no behavior changes.

  • PlatformEfl.cmake:
  • PlatformGTK.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
  • platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
  • platform/graphics/texmap/coordinated/CoordinatedTile.cpp: Renamed to Tile.cpp
  • platform/graphics/texmap/coordinated/CoordinatedTile.h: Merged into Tile.h

(WebCore::CoordinatedTile::coordinate): Deleted.
(WebCore::CoordinatedTile::rect): Deleted.

  • platform/graphics/texmap/coordinated/Tile.cpp: Renamed from CoordinatedTile.cpp.
  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::createTiles):

4:41 PM Changeset in webkit [185179] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk/Source/WebCore

Add basic Media Session support to HTMLMediaElement.
https://bugs.webkit.org/show_bug.cgi?id=145581

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

HTMLMediaElements now have:

  • a 'kind' attribute representing the intrinsic media category
  • a 'session' attribute representing the current media session, if any
  • CMakeLists.txt: Include the new HTMLMediaElementMediaSession sources.
  • DerivedSources.make: Include the new IDL file.
  • Modules/mediasession/HTMLMediaElementMediaSession.cpp: Added.

(WebCore::HTMLMediaElementMediaSession::session):

  • Modules/mediasession/HTMLMediaElementMediaSession.h: Added basic translation of the IDL file.

(WebCore::HTMLMediaElementMediaSession::kind):
(WebCore::HTMLMediaElementMediaSession::setKind):
(WebCore::HTMLMediaElementMediaSession::setSession):

  • Modules/mediasession/HTMLMediaElementMediaSession.idl: Added from the Media Session spec.
  • PlatformMac.cmake: Include DOMHTMLMediaElementMediaSession.cpp.
  • WebCore.xcodeproj/project.pbxproj: Include the new HTMLMediaElementMediaSession sources.
  • html/HTMLMediaElement.h: Added accessors for 'kind' and 'session'.

(WebCore::HTMLMediaElement::kind):
(WebCore::HTMLMediaElement::setKind):
(WebCore::HTMLMediaElement::session):
(WebCore::HTMLMediaElement::setSession):

4:35 PM Changeset in webkit [185178] by rniwa@webkit.org
  • 2 edits in trunk/Tools

Unreviewed build fix for Dromaeo.

  • Scripts/webkitpy/benchmark_runner/benchmark_results.py:

(BenchmarkResults._aggregate_results_for_test):

3:51 PM Changeset in webkit [185177] by andersca@apple.com
  • 2 edits in trunk/Tools

Fix build.

  • DumpRenderTree/mac/TestRunnerMac.mm:
3:50 PM Changeset in webkit [185176] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Cleanup after r185175.
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>

Unreviewed.

No new tests because there is no behavior change.

  • platform/graphics/WidthIterator.h:
3:48 PM Changeset in webkit [185175] by mmaxfield@apple.com
  • 4 edits
    3 adds in trunk

SoftBank Emoji are not transformed by shaping when in a run of their own
https://bugs.webkit.org/show_bug.cgi?id=145569
<rdar://problem/20671711>

Reviewed by Dean Jackson.

Normally, we don't perform shaping on single glyphs. However, these particular codepoints
need to have shaping run on them, even if they are alone.

Test: fast/text/softbank-emoji.html Note that this test may fail in different locales on
different platforms. This patch disables the test on iOS.

  • Source/WebCore/platform/graphics/WidthIterator.cpp:

(WebCore::applyFontTransforms): Move the length-of-1 check into shouldApplyFontTransforms()
(WebCore::shouldApplyFontTransforms): Return true if we have one of these emoji characters in
a run of its own
(WebCore::advanceInternal): Keep track of the previous character, and use it to call
shouldApplyFontTransforms.

  • Source/WebCore/platform/graphics/WidthIterator.h: shouldApplyFontTransforms() needs

some more information to perform its duties.

3:46 PM Changeset in webkit [185174] by Said Abou-Hallawa
  • 1 edit
    2 adds in trunk/LayoutTests

Add missing expected result files for ios-simulator port following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/185096>

Unreviewed.

  • platform/ios-simulator/fast/text/crash-complex-text-surrogate-expected.txt: Added.
  • platform/ios-simulator/fast/text/font-weights-zh-expected.txt: Added.
3:35 PM Changeset in webkit [185173] by dbates@webkit.org
  • 3 edits
    3 adds in trunk

Caps lock indicator should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145612
<rdar://problem/21227454>

Reviewed by Darin Adler.

.:

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

Source/WebCore:

  • html/TextFieldInputType.cpp:

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

3:32 PM Changeset in webkit [185172] by dino@apple.com
  • 8 edits
    2 adds in trunk

Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

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

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

Test: fast/canvas/webgl/useWhilePending.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.

  • page/Settings.cpp: New Internal setting for forcing a pending policy.

(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):

  • page/Settings.h:

(WebCore::Settings::isForcePendingWebGLPolicy):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

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

  • fast/canvas/webgl/useWhilePending-expected.txt: Added.
  • fast/canvas/webgl/useWhilePending.html: Added.
3:29 PM Changeset in webkit [185171] by dbates@webkit.org
  • 2 edits in trunk/LayoutTests

AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

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

  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt:
3:00 PM Changeset in webkit [185170] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[iOS] Skip compositing/layer-creation/zoomed-clip-intersection.html
eventSender.scalePageBy() needs to be implemented.

Unreviewed garderning.

  • platform/ios-simulator/TestExpectations:
2:43 PM Changeset in webkit [185169] by dbates@webkit.org
  • 3 edits in trunk/Tools

WebKit2.TextFieldDidBeginAndEndEditing is flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=145616

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

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp:
  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp:
2:21 PM Changeset in webkit [185168] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Define WK_ENABLE_FORMAL_DELEGATE_PROTOCOLS on iOS
https://bugs.webkit.org/show_bug.cgi?id=145615
Part of rdar://problem/17380856.

Reviewed by Dan Bernstein.

  • postprocess-headers.sh:
1:52 PM Changeset in webkit [185167] by commit-queue@webkit.org
  • 24 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/page.
https://bugs.webkit.org/show_bug.cgi?id=145455

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-03
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • page/Chrome.cpp:

(WebCore::Chrome::notifyPopupOpeningObservers):

  • page/ContentSecurityPolicy.cpp:

(WebCore::CSPSourceList::matches):
(WebCore::CSPDirectiveList::gatherReportURIs):
(WebCore::ContentSecurityPolicy::copyStateFrom):
(WebCore::isAllowedByAll):
(WebCore::isAllowedByAllWithState):
(WebCore::isAllowedByAllWithContext):
(WebCore::isAllowedByAllWithURL):
(WebCore::ContentSecurityPolicy::evalDisabledErrorMessage):
(WebCore::ContentSecurityPolicy::allowPluginType):
(WebCore::ContentSecurityPolicy::reflectedXSSDisposition):
(WebCore::ContentSecurityPolicy::gatherReportURIs):

  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents):
(WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
(WebCore::DOMWindow::willDestroyCachedFrame):
(WebCore::DOMWindow::willDestroyDocumentInFrame):
(WebCore::DOMWindow::willDetachDocumentFromFrame):
(WebCore::DOMWindow::disconnectDOMWindowProperties):
(WebCore::DOMWindow::reconnectDOMWindowProperties):
(WebCore::DOMWindow::getMatchedCSSRules):

  • page/DeviceController.cpp:

(WebCore::DeviceController::dispatchDeviceEvent):
(WebCore::DeviceController::fireDeviceEvent):

  • page/EventHandler.cpp:

(WebCore::EventHandler::updateMouseEventTargetNode):
(WebCore::EventHandler::handleTouchEvent):

  • page/FocusController.cpp:

(WebCore::FocusController::setIsVisibleAndActiveInternal):

  • page/Frame.cpp:

(WebCore::Frame::orientationChanged):
(WebCore::Frame::injectUserScriptsForWorld):

  • page/FrameView.cpp:

(WebCore::FrameView::scrollContentsFastPath):
(WebCore::FrameView::serviceScriptedAnimations):
(WebCore::FrameView::trackedRepaintRectsAsText):
(WebCore::FrameView::updateWidgetPositions):
(WebCore::FrameView::notifyWidgets):

  • page/Page.cpp:

(WebCore::networkStateChanged):
(WebCore::Page::stringToViewMode):
(WebCore::Page::updateStyleForAllPagesAfterGlobalChangeInEnvironment):
(WebCore::Page::refreshPlugins):
(WebCore::Page::lockAllOverlayScrollbarsToHidden):
(WebCore::Page::pluginViews):
(WebCore::Page::storageBlockingStateChanged):
(WebCore::Page::setIsVisibleInternal):

  • page/PageGroup.cpp:

(WebCore::PageGroup::captionPreferencesChanged):

  • page/PageGroupLoadDeferrer.cpp:

(WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
(WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):

  • page/PageSerializer.cpp:

(WebCore::PageSerializer::serializeFrame):

  • page/Performance.cpp:

(WebCore::Performance::webkitGetEntriesByType):
(WebCore::Performance::webkitGetEntriesByName):

  • page/PerformanceResourceTiming.cpp:

(WebCore::passesTimingAllowCheck):

  • page/PerformanceUserTiming.cpp:

(WebCore::convertToEntrySequence):

  • page/SecurityPolicy.cpp:

(WebCore::SecurityPolicy::isAccessWhiteListed):

  • page/UserContentURLPattern.cpp:

(WebCore::UserContentURLPattern::matchesPatterns):

  • page/WindowFeatures.cpp:

(WebCore::WindowFeatures::parseDialogFeatures):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationControllerPrivate::updateAnimations):
(WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
(WebCore::AnimationControllerPrivate::suspendAnimationsForDocument):
(WebCore::AnimationControllerPrivate::resumeAnimationsForDocument):
(WebCore::AnimationControllerPrivate::numberOfActiveAnimations):

  • page/animation/CSSPropertyAnimation.cpp:

(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):

  • page/scrolling/AsyncScrollingCoordinator.cpp:

(WebCore::setStateScrollingNodeSnapOffsetsAsFloat):

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):
(WebCore::ScrollingCoordinator::hasVisibleSlowRepaintViewportConstrainedObjects):

1:44 PM Changeset in webkit [185166] by dbates@webkit.org
  • 3 edits
    6 moves
    14 adds in trunk

AutoFill button should not be shown in read-only or disabled field
https://bugs.webkit.org/show_bug.cgi?id=145579
<rdar://problem/21212494>

Reviewed by Darin Adler.

Source/WebCore:

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

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

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

  • html/TextFieldInputType.cpp:

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

LayoutTests:

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

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

  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-disabled.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly-expected.html: Added.
  • fast/forms/auto-fill-button/hide-auto-fill-button-when-input-becomes-readonly.html: Added.
  • fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/fast/forms/input-auto-fill-button-expected.txt.
  • fast/forms/auto-fill-button/input-auto-fill-button.html: Renamed from LayoutTests/fast/forms/input-auto-fill-button.html.
  • fast/forms/auto-fill-button/input-disabled-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-disabled-auto-fill-button.html: Added.
  • fast/forms/auto-fill-button/input-readonly-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-readonly-auto-fill-button.html: Added.
  • fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button-expected.html: Added.
  • fast/forms/auto-fill-button/input-readonly-non-empty-auto-fill-button.html: Added.
  • platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.png: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.png.
  • platform/ios-simulator/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/ios-simulator/fast/forms/input-auto-fill-button-expected.txt.
  • platform/mac-mavericks/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/mac-mavericks/fast/forms/input-auto-fill-button-expected.txt.
  • platform/win/fast/forms/auto-fill-button/input-auto-fill-button-expected.txt: Renamed from LayoutTests/platform/win/fast/forms/input-auto-fill-button-expected.txt.
1:39 PM Changeset in webkit [185165] by andersca@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Remove ChangeLog entry; Mark Lam already fixed this yesterday.

1:37 PM Changeset in webkit [185164] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Search field bottom border doesn't match the rest of the toolbar
https://bugs.webkit.org/show_bug.cgi?id=145611

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Toolbar.css:

(body:not(.unknown-mac) .toolbar .search-bar > input[type="search"]):

1:36 PM Changeset in webkit [185163] by andersca@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Fix build.

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

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeExitSiteData):

1:34 PM Changeset in webkit [185162] by Alan Bujtas
  • 2 edits in trunk/PerformanceTests

Skip Dromaeo/jslib-modify-prototype.html for now.

Unreviewed gardening.

  • Skipped:
1:08 PM Changeset in webkit [185161] by fpizlo@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

CallLinkStatus should return takesSlowPath if the GC often cleared the IC
https://bugs.webkit.org/show_bug.cgi?id=145502

Reviewed by Geoffrey Garen.

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

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

  • bytecode/CallLinkInfo.cpp:

(JSC::CallLinkInfo::visitWeak):
(JSC::CallLinkInfo::dummy):

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::CallLinkInfo):

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):

1:04 PM Changeset in webkit [185160] by fpizlo@apple.com
  • 9 edits
    6 adds in trunk

GetById and PutById profiling should be more precise about it takes slow path
https://bugs.webkit.org/show_bug.cgi?id=145590

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

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

  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::computeFor):
(JSC::GetByIdStatus::computeForStubInfo):

  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::computeFor):
(JSC::PutByIdStatus::computeForStubInfo):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::StructureStubInfo):

  • ftl/FTLIntrinsicRepository.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileGetById):

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

LayoutTests:

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

  • js/regress/getter-prototype-expected.txt: Added.
  • js/regress/getter-prototype.html: Added.
  • js/regress/script-tests/getter-prototype.js: Added.
  • js/regress/script-tests/setter-prototype.js: Added.
  • js/regress/setter-prototype-expected.txt: Added.
  • js/regress/setter-prototype.html: Added.
12:46 PM Changeset in webkit [185159] by Alan Bujtas
  • 21 edits in trunk/LayoutTests

[iOS] Rebaseline expected results for <br>

Unreviewed garderning.

  • platform/ios-simulator-wk2/fast/css/text-overflow-ellipsis-bidi-expected.txt:
  • platform/ios-simulator-wk2/fast/forms/listbox-hit-test-zoomed-expected.txt:
  • platform/ios-simulator/http/tests/navigation/postredirect-basic-expected.txt:
  • platform/ios-simulator/http/tests/navigation/postredirect-goback1-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug106795-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug1224-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug131020-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug131020_iframe-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug1430-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug16252-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug19599-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug20579-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug32205-3-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug82946-2-expected.txt:
  • platform/ios-simulator/tables/mozilla/bugs/bug92143-expected.txt:
  • platform/ios-simulator/tables/mozilla/marvin/tables_cellpadding-expected.txt:
  • platform/ios-simulator/tables/mozilla/marvin/tables_cellspacing-expected.txt:
  • platform/ios-simulator/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt:
  • platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug1262-expected.txt:
  • platform/ios-simulator/tables/mozilla_expected_failures/bugs/bug56024-expected.txt:
11:48 AM Changeset in webkit [185158] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Improve test coverage for changes made in 145527
https://bugs.webkit.org/show_bug.cgi?id=145578

Reviewed by Geoffrey Garen.

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

  • tests/stress/poly-setter-combo.js:

(Cons2):
(Cons3):
(Cons4):
(foo):
(test):
(runTestWithConstructors):

11:44 AM Changeset in webkit [185157] by Said Abou-Hallawa
  • 1 edit
    3 adds in trunk/LayoutTests

Add missing expected result files for GTK and EFL ports following
<http://trac.webkit.org/changeset/185095>
<http://trac.webkit.org/changeset/181351>

Unreviewed.

  • platform/efl/fast/text/crash-complex-text-surrogate-expected.txt: Added.
  • platform/gtk/editing/selection/extend-by-character-007-expected.txt: Added.
  • platform/gtk/fast/text/crash-complex-text-surrogate-expected.txt: Added.
11:37 AM Changeset in webkit [185156] by Brent Fulgham
  • 3 edits
    4 adds in trunk

REGRESSION: (r181879): Scrolling in select/option region in iFrame scrolls both select and iframe
https://bugs.webkit.org/show_bug.cgi?id=145574
<rdar://problem/20966828>

Reviewed by Simon Fraser.

Source/WebCore:

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

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

the latched scrollable container.

(2) Likewise, we were not using latched ScrollableArea when handling wheel events.

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

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

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

  • page/mac/EventHandlerMac.mm:

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

LayoutTests:

  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select-expected.txt: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/fast-scroll-iframe-latched-select.html: Added.
  • platform/mac-wk2/tiled-drawing/scrolling/frames/select_iframe.html: Added.
10:33 AM Changeset in webkit [185155] by beidson@apple.com
  • 9 edits
    13 adds in trunk

REGRESSION (r183498): Certain types of frame loads in iframes with <base target="_blank"> can open urls in new window/tabs
https://bugs.webkit.org/show_bug.cgi?id=145580

Reviewed by Mark Lam.

Source/WebCore:

Tests: fast/loader/fragment-navigation-base-blank.html

fast/loader/iframe-meta-refresh-base-blank.html
fast/loader/iframe-set-location-base-blank.html
fast/loader/refresh-iframe-base-blank.html

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

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

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

Restoring "_self" to these call sites fixes this.

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Tools:

  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::didSameDocumentNavigationForFrame): Implement the dump for "didChangeLocationWithinPageForFrame"

LayoutTests:

  • fast/loader/fragment-navigation-base-blank-expected.txt: Added.
  • fast/loader/fragment-navigation-base-blank.html: Added.
  • fast/loader/iframe-meta-refresh-base-blank-expected.txt: Added.
  • fast/loader/iframe-meta-refresh-base-blank.html: Added.
  • fast/loader/iframe-set-location-base-blank-expected.txt: Added.
  • fast/loader/iframe-set-location-base-blank.html: Added.
  • fast/loader/refresh-iframe-base-blank-expected.txt: Added.
  • fast/loader/refresh-iframe-base-blank.html: Added.
  • fast/loader/resources/fragment-navigation-base-blank.html: Added.
  • fast/loader/resources/iframe-meta-refresh-base-blank.html: Added.
  • fast/loader/resources/iframe-set-location-base-blank.html: Added.
  • fast/loader/resources/notify-done-with-window-count.html: Added.
  • fast/loader/resources/refresh-iframe-base-blank-frame.html: Added.
9:56 AM Changeset in webkit [185154] by ap@apple.com
  • 2 edits in trunk/Tools

Attempt to fix CSSPropertyParserTest.GridTrackLimits API test after http://trac.webkit.org/r185147

  • TestWebKitAPI/Tests/WebCore/CSSParser.cpp:

(TestWebKitAPI::TEST): Update the syntax.

9:40 AM Changeset in webkit [185153] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

More iOS build fixing.

  • platform/spi/mac/AVFoundationSPI.h:
8:36 AM Changeset in webkit [185152] by Alan Bujtas
  • 4 edits
    2 adds in trunk

Subpixel rendering: Composited layer with subpixel gap does not get painted properly when its position changes.
https://bugs.webkit.org/show_bug.cgi?id=145587

Reviewed by Simon Fraser.

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

Source/WebCore:

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

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateAfterLayout):
(WebCore::devicePixelFractionGapFromRendererChanged):
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves-expected.html: Added.
  • compositing/child-layer-with-subpixel-gap-needs-repaint-when-parent-moves.html: Added.
7:58 AM Changeset in webkit [185151] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception starting a NavigationBar drag and mousing over a different NavigationBar
https://bugs.webkit.org/show_bug.cgi?id=145589

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationBar.js:

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

7:55 AM Changeset in webkit [185150] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Debugger Popover for Node object should have go-to-arrow to show the node in DOM tree
https://bugs.webkit.org/show_bug.cgi?id=145594

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-03
Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DOMTreeManager.js:

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

  • UserInterface/Views/SourceCodeTextEditor.css:

(.popover .debugger-popover-content > .title > .go-to-arrow):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject.data.pushNodeToFrontend):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
For a node type, add a go-to-arrow in the popover if it is in the DOM or not.

1:16 AM WebKitGTK/StartHacking edited by Diego Pino Garcia
(diff)
12:35 AM Changeset in webkit [185149] by youenn.fablet@crf.canon.fr
  • 2 edits in trunk/Source/WebCore

[Streams API] ReadableStreamReader::closed() should be called once by binding code
https://bugs.webkit.org/show_bug.cgi?id=145551

Reviewed by Darin Adler.

Covered by existing tests.

  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::closed): Calling ReadableStreamReader::closed only at creation of the promise.

Jun 2, 2015:

11:58 PM Changeset in webkit [185148] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

[EFL][GTK] Fix build error since r185137
https://bugs.webkit.org/show_bug.cgi?id=145596

Unreviewed, fix build break on EFL and GTK port.

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger): Use strncpy() instead of strlcpy().

11:44 PM Changeset in webkit [185147] by svillar@igalia.com
  • 37 edits in trunk

[CSS Grid Layout] Switch from parenthesis to brackets for grid line names
https://bugs.webkit.org/show_bug.cgi?id=144996

Reviewed by Darin Adler.

Source/WebCore:

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

  • css/CSSGrammar.y.in:
  • css/CSSGridLineNamesValue.cpp:

(WebCore::CSSGridLineNamesValue::customCSSText):

LayoutTests:

Replaced parentheses by brackets when specifying grid line names.

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

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set-multiple.js:

(testInherit):
(testInitial):

  • fast/css-grid-layout/resources/non-grid-columns-rows-get-set.js:

(testInherit):
(testInitial):

11:24 PM Changeset in webkit [185146] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

iOS build fix

  • platform/spi/mac/AVFoundationSPI.h:
11:21 PM Changeset in webkit [185145] by commit-queue@webkit.org
  • 9 edits
    2 deletes in trunk

Unreviewed, rolling out r185128 and r185132.
https://bugs.webkit.org/show_bug.cgi?id=145597

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

Reverted changesets:

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

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

11:19 PM Changeset in webkit [185144] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.34

New tag.

11:18 PM Changeset in webkit [185143] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

10:57 PM Changeset in webkit [185142] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove uses of delete in Sidebar related code
https://bugs.webkit.org/show_bug.cgi?id=145592

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
Clear value instead of deleting.

  • UserInterface/Views/SearchSidebarPanel.js:

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

  • UserInterface/Views/Sidebar.js:

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

10:46 PM Changeset in webkit [185141] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Sidebar and sometimes ContentView scroll position is lost when switching between tabs
https://bugs.webkit.org/show_bug.cgi?id=145591

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/Sidebar.js:

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

  • UserInterface/Views/SidebarPanel.js:

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

  • UserInterface/Views/CSSStyleDetailsSidebarPanel.js:

(WebInspector.CSSStyleDetailsSidebarPanel.prototype.visibilityDidChange):

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WebInspector.ComputedStyleDetailsPanel.prototype.shown):

  • UserInterface/Views/DetailsSidebarPanel.js:

(WebInspector.DetailsSidebarPanel.prototype.shown):

  • UserInterface/Views/LayerTreeDetailsSidebarPanel.js:

(WebInspector.LayerTreeDetailsSidebarPanel.prototype.shown):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.hidden):
Cleanup. Since sidebar panels are using ES6 classes, have super class calls use super!

8:39 PM Changeset in webkit [185140] by ryuan.choi@navercorp.com
  • 8 edits in trunk/Source/WebCore

[CoordinatedGraphics] Refactor TiledBackingStoreClient
https://bugs.webkit.org/show_bug.cgi?id=145577

Reviewed by Gyuyoung Kim.

This patch removes and simplifies unnecessary virtual methods of TiledBackingStoreClient.

No new tests, no behavior changes.

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

(WebCore::CoordinatedGraphicsLayer::didUpdateTileBuffers): Renamed from tiledBackingStorePaintEnd.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintBegin): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd): Deleted.
(WebCore::CoordinatedGraphicsLayer::tiledBackingStoreBackgroundColor):
Deleted because tiledBackingStoreBackgroundColor() is not used anywhere.

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

(WebCore::CoordinatedTile::updateBackBuffer):
Simplified not to call unnecessary methods. In addition, used modern for loop.
(WebCore::CoordinatedTile::swapBackBufferToFront): Deleted.

  • platform/graphics/texmap/coordinated/CoordinatedTile.h:
  • platform/graphics/texmap/coordinated/Tile.h:
  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::updateTileBuffers):

  • platform/graphics/texmap/coordinated/TiledBackingStoreClient.h:
7:46 PM Changeset in webkit [185139] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Use non-monospace font for the frame selector
https://bugs.webkit.org/show_bug.cgi?id=145586

Reviewed by Timothy Hatcher.

  • UserInterface/Views/HierarchicalPathComponent.css:

(.hierarchical-path-component):

7:33 PM Changeset in webkit [185138] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit2

[EFL] Implement load_started callback in EwkPageClient.
https://bugs.webkit.org/show_bug.cgi?id=145545

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

We need to provide load_started callback to web extension module.

  • UIProcess/API/efl/tests/extensions/extension_sample.cpp:
  • WebProcess/InjectedBundle/API/efl/ewk_page.cpp:

(EwkPage::EwkPage):
(EwkPage::remove):
(EwkPage::didStartProvisionalLoadForFrame):
(EwkPage::didFinishDocumentLoadForFrame):

  • WebProcess/InjectedBundle/API/efl/ewk_page.h:
  • WebProcess/InjectedBundle/API/efl/ewk_page_private.h:
6:29 PM Changeset in webkit [185137] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

AX: debugging attributes for text markers
https://bugs.webkit.org/show_bug.cgi?id=145283

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

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

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

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarker:]):
(-[WebAccessibilityObjectWrapper debugDescriptionForTextMarkerRange:]):
(-[WebAccessibilityObjectWrapper showNodeForTextMarker:]):
(-[WebAccessibilityObjectWrapper showNodeTreeForTextMarker:]):
(formatForDebugger):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

  • dom/Text.cpp:

(WebCore::Text::formatForDebugger):

5:45 PM Changeset in webkit [185136] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

MediaSessions should keep track of their current state.
https://bugs.webkit.org/show_bug.cgi?id=145575

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

  • Modules/mediasession/MediaSession.h: Per the Media Session spec, the state can be 'Idle', 'Active', or 'Interrupted'. Sessions are created in an 'Idle' state.
4:58 PM Changeset in webkit [185135] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dashboard arrow icon on the right is overlapped by a long function/file name
https://bugs.webkit.org/show_bug.cgi?id=145540

Also, increase clickable area of the arrow icon.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DashboardContainerView.css:

(.dashboard-container .advance-arrow):
(.dashboard-container .advance-arrow.advance-forward):
(.dashboard-container .advance-arrow.advance-backward):

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger > .location):
(.toolbar .dashboard.debugger):
Increase padding on the right so the content of the dashboard would be never be overlayed by the arrow.

4:56 PM Changeset in webkit [185134] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Shift + Cmd + Left/Right shouldn't switch tabs while editing text
https://bugs.webkit.org/show_bug.cgi?id=145562

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBrowser.js:

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

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

4:51 PM Changeset in webkit [185133] by jonlee@apple.com
  • 2 edits in trunk/Source/WebCore

Build fix when building with internal SDKs
https://bugs.webkit.org/show_bug.cgi?id=145576
rdar://problem/21089476

Reviewed by Alexey Proskuryakov.

  • platform/spi/mac/AVFoundationSPI.h: Include the right header.
4:45 PM Changeset in webkit [185132] by dino@apple.com
  • 2 edits in trunk/LayoutTests

Skip webgl/useWhilePending.html on WebKit 1.

  • platform/mac-wk1/TestExpectations:
4:33 PM Changeset in webkit [185131] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Gardening: fix broken CLoop build.

Not reviewed.

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeExitSiteData):

3:23 PM Changeset in webkit [185130] by dino@apple.com
  • 2 edits in trunk/Source/WebCore

No need to guard the sizes attribute against PICTURE_SIZES in preload scanner.
https://bugs.webkit.org/show_bug.cgi?id=145573
<rdar://problem/21210038>

Reviewed by Myles Maxfield.

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

  • html/parser/HTMLPreloadScanner.cpp:

(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes): Deleted.
(WebCore::TokenPreloadScanner::StartTagScanner::processAttribute): Deleted.

3:14 PM Changeset in webkit [185129] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Use UUIDs for WebSQL database filenames instead of a sequential number
https://bugs.webkit.org/show_bug.cgi?id=145571

Reviewed by Dan Bernstein.

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

  • Modules/webdatabase/DatabaseTracker.cpp:

(WebCore::generateDatabaseFileName):
(WebCore::DatabaseTracker::fullPathForDatabaseNoLock):

  • platform/sql/SQLiteFileSystem.cpp:

(WebCore::SQLiteFileSystem::getFileNameForNewDatabase): Deleted.

  • platform/sql/SQLiteFileSystem.h:
3:11 PM Changeset in webkit [185128] by dino@apple.com
  • 8 edits
    2 adds in trunk

Crash in GraphicsContext3D::getInternalFramebufferSize
https://bugs.webkit.org/show_bug.cgi?id=145479
<rdar://problem/16461048>

Reviewed by Eric Carlson.

Source/WebCore:

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

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

Test: fast/canvas/webgl/useWhilePending.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::create): Check internal settings for
a forced pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferWidth): Guard against a pending state.
(WebCore::WebGLRenderingContextBase::drawingBufferHeight): Ditto.

  • page/Settings.cpp: New Internal setting for forcing a pending policy.

(WebCore::Settings::Settings):
(WebCore::Settings::setForcePendingWebGLPolicy):

  • page/Settings.h:

(WebCore::Settings::isForcePendingWebGLPolicy):

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::Backup::Backup):
(WebCore::InternalSettings::Backup::restoreTo):
(WebCore::InternalSettings::setForcePendingWebGLPolicy):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

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

  • fast/canvas/webgl/useWhilePending-expected.txt: Added.
  • fast/canvas/webgl/useWhilePending.html: Added.
3:02 PM Changeset in webkit [185127] by barraclough@apple.com
  • 4 edits in trunk/Source/WebKit2

PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Reviewed by Andreas Kling & Sam Weinig.

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

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

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

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

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

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):

  • should update all view state flags.
  • UIProcess/API/ios/WKViewIOS.mm:

(-[WKView didMoveToWindow]):

  • added to match WKWebView.mm, for WebKitTestRunner.
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):

  • should _updateForScreen:

(-[WKContentView didMoveToWindow]): Deleted.

  • functionality moved to -[WKWebView didMoveToWindow], -[WKContentView didMoveToWindow].
2:54 PM Changeset in webkit [185126] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebCore

Added a stub implementation of MediaSession, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145530

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

  • CMakeLists.txt: Added new MediaSession sources.
  • DerivedSources.make:
  • Modules/mediasession/MediaSession.cpp: Added stub implementation.

(WebCore::MediaSession::MediaSession): Per the Media Session spec, a Media Remote Controls object should only be

set for 'content' sessions; it is null otherwise.

(WebCore::MediaSession::~MediaSession):
(WebCore::MediaSession::controls):
(WebCore::MediaSession::releaseSession):

  • Modules/mediasession/MediaSession.h: Added basic translation of IDL file.
  • Modules/mediasession/MediaSession.idl: Added from the Media Session spec.
  • WebCore.xcodeproj/project.pbxproj: Added new MediaSession sources.
2:37 PM Changeset in webkit [185125] by Said Abou-Hallawa
  • 1 edit
    1 add in trunk/LayoutTests

Fix Windows layout test failure following <http://trac.webkit.org/changeset/185095>
(https://bugs.webkit.org/show_bug.cgi?id=145537)

Unreviewed.

  • platform/win/fast/text/crash-complex-text-surrogate-expected.txt: Added.
2:35 PM Changeset in webkit [185124] by Alan Bujtas
  • 7 edits
    4 adds in trunk

Backdrop filter is pulling in content from behind the window.
https://bugs.webkit.org/show_bug.cgi?id=145561
rdar://problem/20909309

Reviewed by Simon Fraser.

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

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

Source/WebCore:

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

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

  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::setBackdropFiltersRect):
(WebCore::GraphicsLayer::backdropFiltersRect):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setBackdropFiltersRect):
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
(WebCore::GraphicsLayerCA::updateBackdropFilters):
(WebCore::GraphicsLayerCA::updateBackdropFiltersRect):
(WebCore::GraphicsLayerCA::updateContentsRects):
(WebCore::GraphicsLayerCA::updateGeometry): Deleted.

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

(WebCore::RenderLayerBacking::updateBackdropFiltersGeometry):
(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerBacking.h:

LayoutTests:

  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-absolute.html: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding-expected.txt: Added.
  • css3/filters/backdrop/backdrop-filter-does-not-size-properly-border-and-padding.html: Added.
2:30 PM Changeset in webkit [185123] by Chris Dumez
  • 9 edits in trunk/Source/WebKit2

[iOS][WK2] Always mark layers as volatile for background pages
https://bugs.webkit.org/show_bug.cgi?id=145547
<rdar://problem/20663184>

Reviewed by Simon Fraser.

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

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

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

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _applicationDidEnterBackground:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::applicationDidEnterBackground):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::setLayerTreeStateIsFrozen):
(WebKit::WebPage::markLayersVolatileImmediatelyIfPossible):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::volatilityTimerFired):
(WebKit::WebPage::applicationDidEnterBackground):
(WebKit::WebPage::applicationWillEnterForeground):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::markAllLayersVolatileIfPossible):
(WebKit::WebProcess::setAllLayerTreeStatesFrozen):

2:24 PM Changeset in webkit [185122] by commit-queue@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

JavaScriptCore: JSExport protocol with an NSInteger property converts negative values to 18446744073709552000
https://bugs.webkit.org/show_bug.cgi?id=145563

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

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

  • API/ObjcRuntimeExtras.h:

(parseObjCType):

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):
(checkNegativeNSIntegers):
(testObjectiveCAPI):

2:14 PM Changeset in webkit [185121] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: ⌘F no longer brings up the find-in-page bar after typing in the quick console
https://bugs.webkit.org/show_bug.cgi?id=145546

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-02
Reviewed by Timothy Hatcher.

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

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser):
Scope the keyboard shortcuts.

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

2:04 PM Changeset in webkit [185120] by eric.carlson@apple.com
  • 4 edits in trunk/Source/WebCore

[Mac] occasional crash in Document::playbackTargetAvailabilityDidChange
https://bugs.webkit.org/show_bug.cgi?id=145559

Reviewed by Darin Adler.

No new tests, covered by existing tests.

  • html/HTMLMediaElement.cpp:

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

  • html/MediaElementSession.cpp:

(WebCore::MediaElementSession::registerWithDocument): Take a document.
(WebCore::MediaElementSession::unregisterWithDocument): Ditto.

  • html/MediaElementSession.h:
1:22 PM Changeset in webkit [185119] by Said Abou-Hallawa
  • 5 edits
    1 add
    1 delete in trunk/LayoutTests

Fix Mac Mavericks layout test failure following <http://trac.webkit.org/changeset/185096>
(https://bugs.webkit.org/show_bug.cgi?id=145478)

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

Reviewed by Alexey Proskuryakov.

  • fast/text/font-weights-zh.html: Added.
  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
  • platform/mac/fast/text/font-weights-zh.html: Removed.
  • platform/win/TestExpectations:
  • platform/win-xp/TestExpectations:
  • platform/wincairo/TestExpectations:
1:20 PM Changeset in webkit [185118] by Chris Dumez
  • 6 edits in trunk/Source/WebCore

Calling FrameView::viewportContentsChanged() after style recalcs is too expensive
https://bugs.webkit.org/show_bug.cgi?id=145554
<rdar://problem/21189478>

Reviewed by Darin Adler and Simon Fraser.

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

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

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

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • page/FrameView.cpp:

(WebCore::FrameView::updateCompositingLayersAfterStyleChange):

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

(WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
(WebCore::RenderLayerCompositor::updateCompositingLayers):

  • rendering/RenderLayerCompositor.h:
1:19 PM Changeset in webkit [185117] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

Remove use of CTFontSetRenderingParameters()
https://bugs.webkit.org/show_bug.cgi?id=145560

Reviewed by Simon Fraser.

Instead, always use CTFontSetRenderingStyle().

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::RenderingStyleSaver::RenderingStyleSaver): Deleted.
(WebCore::RenderingStyleSaver::~RenderingStyleSaver): Deleted.

1:00 PM Changeset in webkit [185116] by andersca@apple.com
  • 6 edits
    1 copy in trunk/Source/WebCore

Move WKFontAntialiasingStateSaver to its own file
https://bugs.webkit.org/show_bug.cgi?id=145557
rdar://problem/21134776

Reviewed by Dan Bernstein.

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

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayer::drawLayerContents):

  • platform/graphics/ios/FontAntialiasingStateSaver.h: Copied from Source/WebCore/platform/ios/wak/WKGraphics.h.

(WebCore::FontAntialiasingStateSaver::FontAntialiasingStateSaver):
(WebCore::FontAntialiasingStateSaver::setup):
(WebCore::FontAntialiasingStateSaver::restore):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::drawWindowContent):

  • platform/ios/wak/WKGraphics.h:

(WKFontAntialiasingStateSaver::WKFontAntialiasingStateSaver): Deleted.

  • platform/ios/wak/WKGraphics.mm:

(WKFontAntialiasingStateSaver::setup): Deleted.
(WKFontAntialiasingStateSaver::restore): Deleted.

12:40 PM Changeset in webkit [185115] by beidson@apple.com
  • 1 edit
    7 adds in trunk/LayoutTests

Add more tests for "should open external urls" flag.
https://bugs.webkit.org/show_bug.cgi?id=145558

Rubberstamped by Geoff Garen.

  • loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/api-false-followed-by-api-true.html: Added.
  • loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/api-true-followed-by-api-false.html: Added.
  • loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/dispatch-event-click-is-not-user-gesture.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/do-nothing.html: Added.
12:28 PM Changeset in webkit [185114] by youenn.fablet@crf.canon.fr
  • 22 edits
    3 adds in trunk

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

Reviewed by Darin Adler.

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

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

  • ForwardingHeaders/runtime/IteratorOperations.h: Added.
  • Modules/streams/ReadableStream.cpp:

(WebCore::ReadableStream::cleanCallbacks): Clean the read requests.
(WebCore::ReadableStream::changeStateToClosed): Run success callbacks with undefined for read requests.
(WebCore::ReadableStream::changeStateToErrored): Run failure callbacks with the errors for read requests.
(WebCore::ReadableStream::closed): Parameter name changed.
(WebCore::ReadableStream::read): Added. Succeeds with empty when closed, fails with error when errored, reads a
value if there is one and pushes the callbacks to the queue otherwise.

  • Modules/streams/ReadableStream.h:

(WebCore::ReadableStream::ReadCallbacks::ReadCallbacks): Struct containing success and failure callbacks.

  • Modules/streams/ReadableStreamReader.cpp:

(WebCore::ReadableStreamReader::closed): Parameter name changed.
(WebCore::ReadableStreamReader::read): Invoke success with empty if we streams if we don't have the right reader
and call the stream otherwise to read.

  • Modules/streams/ReadableStreamReader.h:
  • bindings/js/JSReadableStreamReaderCustom.cpp:

(WebCore::JSReadableStreamReader::read): Create the callback lambdas and invoke read. Failure rejects the
promise and success creates the result from the read value.

  • bindings/js/ReadableJSStream.cpp:

(WebCore::ReadableJSStream::hasValue):
(WebCore::ReadableJSStream::read): Not implemented yet.

  • bindings/js/ReadableJSStream.h:

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

Reviewed by Darin Adler.

  • wtf/Vector.h:

(WTF::Vector::append): Adding not templated append method, forwarding to ValueType templated append method.

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

Reviewed by Darin Adler.

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

  • streams/readable-stream-reader-read-expected.txt: Added.
  • streams/readable-stream-reader-read.html: Added.
  • streams/reference-implementation/bad-underlying-sources-expected.txt:
  • streams/reference-implementation/bad-underlying-sources.html:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
  • streams/reference-implementation/readable-stream-cancel-expected.txt:
  • streams/reference-implementation/readable-stream-expected.txt:
  • streams/reference-implementation/readable-stream-reader-expected.txt:
  • streams/reference-implementation/readable-stream-reader.html:
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html:
12:21 PM Changeset in webkit [185113] by mmaxfield@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] FontPlatformData's equality check should always use reference URLs
https://bugs.webkit.org/show_bug.cgi?id=144168

Reviewed by Tim Horton.

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

No new tests because there is no behavior change.

  • platform/graphics/cocoa/FontPlatformDataCocoa.mm:

(WebCore::FontPlatformData::objectForEqualityCheck):

12:13 PM Changeset in webkit [185112] by aestes@apple.com
  • 2 edits
    5 adds in trunk/Source/WebCore

[Mac] REGRESSION (r175941): Max.app crashes when adding a sound file to a patch due to removing cursor resources from WebCore.framework
https://bugs.webkit.org/show_bug.cgi?id=145555

Reviewed by Darin Adler.

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

  • Resources/copyCursor.png: Added.
  • Resources/moveCursor.png: Added.
  • Resources/northEastSouthWestResizeCursor.png: Added.
  • Resources/northSouthResizeCursor.png: Added.
  • Resources/northWestSouthEastResizeCursor.png: Added.
  • WebCore.xcodeproj/project.pbxproj:
11:43 AM Changeset in webkit [185111] by beidson@apple.com
  • 45 edits
    49 adds in trunk

WebKit policy delegate should suggest if a navigation should be allowed to open URLs externally.
rdar://problem/21025301 and https://bugs.webkit.org/show_bug.cgi?id=145280
Source/WebCore:

Reviewed by Alex Christensen.

Tests: loader/navigation-policy/should-open-external-urls/main-frame-click.html

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

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

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

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

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

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

whether or not the load is from a user gesture, and based on the initiator's value of the flag.

  • dom/Document.cpp:

(WebCore::Document::processHttpEquiv):
(WebCore::Document::shouldOpenExternalURLsPolicyToPropagate):

  • dom/Document.h:
  • html/HTMLAnchorElement.cpp:

(WebCore::HTMLAnchorElement::handleClick):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::handleClick):

  • html/parser/XSSAuditorDelegate.cpp:

(WebCore::XSSAuditorDelegate::didBlockScript):

  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTriggeringAction):
(WebCore::DocumentLoader::shouldOpenExternalURLsPolicyToPropagate):

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::shouldOpenExternalURLsPolicy): Deleted.

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::receivedFirstData):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):

  • loader/FrameLoader.h:
  • loader/NavigationAction.cpp:

(WebCore::NavigationAction::NavigationAction):
(WebCore::NavigationAction::copyWithShouldOpenExternalURLsPolicy):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy): Deleted.

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledURLNavigation::ScheduledURLNavigation):
(WebCore::ScheduledRedirect::ScheduledRedirect):
(WebCore::ScheduledLocationChange::ScheduledLocationChange):
(WebCore::ScheduledRefresh::ScheduledRefresh):
(WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
(WebCore::NavigationScheduler::scheduleRedirect):
(WebCore::NavigationScheduler::scheduleLocationChange):
(WebCore::NavigationScheduler::scheduleRefresh):

  • loader/NavigationScheduler.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::selectCache):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::setLocation):
(WebCore::DOMWindow::createWindow):
(WebCore::DOMWindow::open):

  • page/DragController.cpp:

(WebCore::DragController::performDragOperation):

  • page/Location.cpp:

(WebCore::Location::reload):

  • replay/ReplayInputDispatchMethods.cpp:

(WebCore::InitialNavigation::dispatch):

  • svg/SVGAElement.cpp:

(WebCore::SVGAElement::defaultEventHandler):

Source/WebKit/ios:

Reviewed by Alex Christensen.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

Reviewed by Alex Christensen.

  • Plugins/WebPluginController.mm:

(-[WebPluginController webPlugInContainerLoadRequest:inFrame:]):

  • WebView/WebFrame.mm:

(-[WebFrame loadRequest:]):
(-[WebFrame _loadData:MIMEType:textEncodingName:baseURL:unreachableURL:]):

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

Reviewed by Alex Christensen.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::searchWithGoogle):

  • WebFrame.cpp:

(WebFrame::loadRequest):
(WebFrame::loadData):

Source/WebKit2:

Reviewed by Alex Christensen.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::clickedLink):

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::performFrameLoadURLRequest):
(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:

(WebKit::WebContextMenuClient::searchWithGoogle):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::loadURLInFrame):
(WebKit::WebPage::loadRequest):
(WebKit::WebPage::loadDataImpl):
(WebKit::WebPage::navigateToPDFLinkWithSimulatedClick):

LayoutTests:

Reviewed by Alex Christensen.

  • loader/navigation-policy/should-open-external-urls/main-frame-click-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-click.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-navigated-programatically-by-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-with-flag-progamatic.html: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/main-frame-without-flag-programatic.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/click-notify-done-in-main.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-self.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/iframe-click-notify-done-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-click-targets-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-programatically-navigates-main.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/programatically-navigate-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-target-blank-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/user-gesture-window-open-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/resources/window-open-to-notify-done.html: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self.html: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-top.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-target-blank-without-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/user-gesture-window-open-without-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-with-flag.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag-from-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/window-open-without-flag.html: Added.
10:48 AM Changeset in webkit [185110] by mark.lam@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Darin Adler.

  • Scripts/build-jsc:
  • Make sure to disable the JIT when --cloop is specified. Did analogous fix for --ftljit.
10:36 AM Changeset in webkit [185109] by Yusuke Suzuki
  • 12 edits in trunk/Source

Heap-use-after-free read of size 4 in JavaScriptCore: WTF::StringImpl::isSymbol() (StringImpl.h:496)
https://bugs.webkit.org/show_bug.cgi?id=145532

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

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

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

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

The failure situation is the following.

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

This patch fixes it by the following changes.

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

(JSC::getByVal):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::getByVal):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToExistingAtomicString):

  • runtime/JSString.h:

(JSC::JSString::toExistingAtomicString):

Source/WebCore:

Hold the ownership of AtomicStringImpl*.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateParametersCheck):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::getElementById):

Source/WTF:

Return RefPtr<AtomicStringImpl> instead of AtomicStringImpl*.

  • wtf/text/AtomicStringImpl.cpp:

(WTF::AtomicStringImpl::lookUpSlowCase):
(WTF::AtomicStringImpl::lookUpInternal):

  • wtf/text/AtomicStringImpl.h:

(WTF::AtomicStringImpl::lookUp):

10:26 AM Changeset in webkit [185108] by dbates@webkit.org
  • 3 edits in trunk/Tools

Update ATS keys used in MiniBrowser and WebKitTestRunnerApp

Rubber-stamped by Alexey Proskuryakov.

  • MiniBrowser/mac/Info.plist:
  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:
2:12 AM Changeset in webkit [185107] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r185091): Crash happens on indexdb tests
https://bugs.webkit.org/show_bug.cgi?id=145549

Reviewed by Csaba Osztrogonác.

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

  • WebProcess/Databases/IndexedDB/WebIDBServerConnection.cpp:

(WebKit::WebIDBServerConnection::didCreateObjectStore):
(WebKit::WebIDBServerConnection::didCreateIndex):
(WebKit::WebIDBServerConnection::didDeleteIndex):
(WebKit::WebIDBServerConnection::didPutRecord):
(WebKit::WebIDBServerConnection::didGetRecord):
(WebKit::WebIDBServerConnection::didOpenCursor):
(WebKit::WebIDBServerConnection::didAdvanceCursor):
(WebKit::WebIDBServerConnection::didIterateCursor):
(WebKit::WebIDBServerConnection::didCount):
(WebKit::WebIDBServerConnection::didDeleteRange):
(WebKit::WebIDBServerConnection::didClearObjectStore):
(WebKit::WebIDBServerConnection::didDeleteObjectStore):
(WebKit::WebIDBServerConnection::didChangeDatabaseVersion):

2:08 AM Changeset in webkit [185106] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk/Source/WebCore

SharedBuffer::copy should return a Ref<SharedBuffer>
https://bugs.webkit.org/show_bug.cgi?id=145499

Reviewed by Andreas Kling.

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

Covered by existing tests.

  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::didReceiveResponse):

  • loader/appcache/ApplicationCacheResource.cpp:

(WebCore::ApplicationCacheResource::deliver):

  • platform/SharedBuffer.cpp:

(WebCore::SharedBuffer::copy):

  • platform/SharedBuffer.h:

Jun 1, 2015:

10:48 PM Changeset in webkit [185105] by jonowells@apple.com
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Type token text descenders touch bottom of container
https://bugs.webkit.org/show_bug.cgi?id=145544

Reviewed by Timothy Hatcher.

Move 1px padding from top to bottom of token.

  • UserInterface/Views/TypeTokenView.css:

(.type-token):

10:46 PM Changeset in webkit [185104] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebInspectorUI

Web Inspector: Better handle keyboard events in the quick console prompt
https://bugs.webkit.org/show_bug.cgi?id=145548

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-06-01
Reviewed by Timothy Hatcher.

  • UserInterface/Base/Main.js:

(WebInspector.saveDataToFile):
Move generic InspectorFrontendHost code here.

  • UserInterface/Views/ContentBrowser.js:

(WebInspector.ContentBrowser.prototype._save):
(WebInspector.ContentBrowser.prototype._saveAs):
(WebInspector.ContentBrowser.prototype._saveDataToFile): Deleted.
Use the generic save code.

  • UserInterface/Controllers/JavaScriptLogViewController.js:

(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype._save):
(WebInspector.JavaScriptLogViewController.prototype._saveAs):
Handle save keyboard shortcuts while the prompt is focused.

  • UserInterface/Views/LogContentView.js:

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

10:39 PM Changeset in webkit [185103] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Any exit from any JIT due to profiling for an inline cache should force all future compilations to be wary
https://bugs.webkit.org/show_bug.cgi?id=145496

Reviewed by Geoffrey Garen.

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

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFor):
(JSC::CallLinkStatus::computeExitSiteData):
(JSC::CallLinkStatus::computeDFGStatuses):

  • bytecode/CallLinkStatus.h:
  • bytecode/GetByIdStatus.cpp:

(JSC::GetByIdStatus::appendVariant):
(JSC::GetByIdStatus::hasExitSite):
(JSC::GetByIdStatus::computeFor):

  • bytecode/GetByIdStatus.h:
  • bytecode/PutByIdStatus.cpp:

(JSC::PutByIdStatus::appendVariant):
(JSC::PutByIdStatus::hasExitSite):
(JSC::PutByIdStatus::computeFor):

  • bytecode/PutByIdStatus.h:
8:29 PM Changeset in webkit [185102] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

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

Reverted changeset:

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

8:13 PM Changeset in webkit [185101] by commit-queue@webkit.org
  • 23 edits in trunk/Source/WebCore

Use modern for-loops in WebCore/Modules - 1
https://bugs.webkit.org/show_bug.cgi?id=145507

Patch by Hunseop Jeong <Hunseop Jeong> on 2015-06-01
Reviewed by Darin Adler.

No new tests, no behavior changes.

  • Modules/battery/BatteryController.cpp:

(WebCore::BatteryController::~BatteryController):
(WebCore::BatteryController::updateBatteryStatus):
(WebCore::BatteryController::didChangeBatteryStatus):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDMFactoryForKeySystem):

  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::~MediaKeys):

  • Modules/geolocation/Geolocation.cpp:

(WebCore::Geolocation::resumeTimerFired):
(WebCore::Geolocation::resetAllGeolocationPermission):
(WebCore::Geolocation::makeCachedPositionCallbacks):
(WebCore::Geolocation::sendError):
(WebCore::Geolocation::sendPosition):
(WebCore::Geolocation::stopTimer):
(WebCore::Geolocation::cancelRequests):
(WebCore::Geolocation::extractNotifiersWithCachedPosition):
(WebCore::Geolocation::copyToSet):
(WebCore::Geolocation::handlePendingPermissionNotifiers):

  • Modules/geolocation/GeolocationController.cpp:

(WebCore::GeolocationController::positionChanged):
(WebCore::GeolocationController::errorOccurred):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::objectStoreNames):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::forceClose):
(WebCore::IDBDatabase::closeConnection):
(WebCore::IDBDatabase::findObjectStoreId):

  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::runIntVersionChangeTransaction):
(WebCore::IDBDatabaseBackend::deleteDatabase):
(WebCore::IDBDatabaseBackend::close):

  • Modules/indexeddb/IDBDatabaseMetadata.cpp:

(WebCore::IDBDatabaseMetadata::isolatedCopy):
(WebCore::IDBObjectStoreMetadata::isolatedCopy):

  • Modules/indexeddb/IDBKey.cpp:

(WebCore::IDBKey::isValid):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createMultiEntryArray):
(WebCore::IDBKey::createArray):

  • Modules/indexeddb/IDBKeyPath.cpp:

(WebCore::IDBKeyPath::IDBKeyPath):
(WebCore::IDBKeyPath::isValid):
(WebCore::IDBKeyPath::isolatedCopy):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::indexNames):
(WebCore::IDBObjectStore::put):
Rename the two 'i's to 'keyData' and 'indexKeyData'.
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::findIndexId):

  • Modules/indexeddb/IDBPendingTransactionMonitor.cpp:

(WebCore::IDBPendingTransactionMonitor::deactivateNewTransactions):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::abort):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::closeOpenCursors):
(WebCore::IDBTransaction::onAbort):
(WebCore::IDBTransaction::dispatchEvent):

  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::create):
(WebCore::IDBTransactionBackend::closeOpenCursors):

  • Modules/mediasource/MediaSource.cpp:

(WebCore::MediaSource::onReadyStateChange):

  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::MediaConstraintsImpl::initialize):
(WebCore::MediaConstraintsImpl::getMandatoryConstraints):
(WebCore::MediaConstraintsImpl::getOptionalConstraintValue):

  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):
(WebCore::MediaStream::cloneMediaStreamTrackVector):
(WebCore::MediaStream::addTrack):
(WebCore::MediaStream::removeTrack):
(WebCore::MediaStream::haveTrackWithSource):
(WebCore::MediaStream::getTrackById):
(WebCore::MediaStream::getTracks):
(WebCore::MediaStream::trackDidEnd):
(WebCore::MediaStream::scheduledEventTimerFired):

  • Modules/mediastream/MediaStreamCapabilities.cpp:

(WebCore::MediaStreamCapabilities::sourceType):
(WebCore::MediaStreamCapabilities::sourceId):
(WebCore::MediaStreamCapabilities::facingMode):

  • Modules/mediastream/MediaStreamTrack.cpp:

(WebCore::MediaStreamTrack::trackDidEnd):

  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp:

(WebCore::MediaStreamTrackSourcesRequest::didCompleteRequest):

8:11 PM Changeset in webkit [185100] by mmaxfield@apple.com
  • 3 edits
    4 adds in trunk

[SVG -> OTF Converter] Remove unnecessary hacks
https://bugs.webkit.org/show_bug.cgi?id=145088

Reviewed by Simon Fraser.

Source/WebCore:

Not needed anymore.

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

  • svg/SVGToOTFFontConversion.cpp:

(WebCore::SVGToOTFFontConverter::appendKERNTable):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

LayoutTests:

Test that the hacks are unnecessary.

  • svg/text/offset-square-svg-font-expected.html: Added.
  • svg/text/offset-square-svg-font.html: Added.
  • svg/text/resources/offset-square-svg-font.svg: Added.
  • svg/text/resources/offset-square-svg-font2.svg: Added.
7:59 PM Changeset in webkit [185099] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

If a call has ever taken the virtual slow path, make sure that the DFG knows this
https://bugs.webkit.org/show_bug.cgi?id=145501

Reviewed by Geoffrey Garen.

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

  • bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::computeFromCallLinkInfo):
(JSC::CallLinkStatus::computeFor):

7:55 PM Changeset in webkit [185098] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

[Mac] Unreviewed gardening.

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

  • compositing/layer-creation/zoomed-clip-intersection.html:
7:29 PM Changeset in webkit [185097] by akling@apple.com
  • 6 edits
    7 deletes in trunk

CSS animations in filling-forwards state shouldn't force compositing.
<https://webkit.org/b/145389>
<rdar://problem/17923642>

Reviewed by Simon Fraser.

Source/WebCore:

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

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

  • page/animation/AnimationBase.h:

(WebCore::AnimationBase::isAnimatingProperty): Deleted.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGeometry):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForAnimation):

LayoutTests:

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

  • compositing/animation/layer-for-filling-animation-expected.txt: Update expected result

here to reflect that we no longer expect filling-forwards animations to get composited.

  • compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
  • compositing/animation/filling-animation-overlap-at-end.html: Removed.
  • compositing/animation/filling-animation-overlap-expected.txt: Removed.
  • compositing/animation/filling-animation-overlap.html: Removed.
  • platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-at-end-expected.txt: Removed.
  • platform/ios-sim-deprecated/compositing/animation/filling-animation-overlap-expected.txt: Removed.
  • platform/ios-sim-deprecated/compositing/animation/layer-for-filling-animation-expected.txt: Removed.
7:15 PM Changeset in webkit [185096] by mmaxfield@apple.com
  • 2 edits
    1 copy in trunk/LayoutTests

Test gardening after r185087.
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

  • platform/mac-mavericks/fast/text/font-weights-zh-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-zh-expected.txt.
  • platform/mac/fast/text/font-weights-zh-expected.txt:
7:10 PM Changeset in webkit [185095] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Out of bounds read in WebCore::ComplexTextController::adjustGlyphsAndAdvances
https://bugs.webkit.org/show_bug.cgi?id=145537
<rdar://problem/20959267>

Reviewed by Darin Adler.

Source/WebCore:

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

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

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::ComplexTextController::adjustGlyphsAndAdvances):

LayoutTests:

  • fast/text/crash-complex-text-surrogate.html: Added.
  • platform/mac/fast/text/crash-complex-text-surrogate-expected.txt: Added.
6:53 PM Changeset in webkit [185094] by Nikita Vasilyev
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Pause/resume button in the debugger dashboard is vertically misaligned
https://bugs.webkit.org/show_bug.cgi?id=145534

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ButtonNavigationItem.css:

(.navigation-bar .item.button.suppress-emboss):
Never show borders for the pause/resume button.

  • UserInterface/Views/DebuggerDashboardView.css:

(.dashboard.debugger .navigation-bar .item.button):

6:29 PM Changeset in webkit [185093] by Alan Bujtas
  • 4 edits
    2 adds in trunk

REGRESSION (179771): zooming on facebook images covers image
https://bugs.webkit.org/show_bug.cgi?id=145485

Reviewed by Simon Fraser.

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

Source/WebCore:

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

  • platform/graphics/LayoutRect.cpp:

(WebCore::LayoutRect::scale):

LayoutTests:

  • compositing/layer-creation/zoomed-clip-intersection-expected.txt: Added.
  • compositing/layer-creation/zoomed-clip-intersection.html: Added.
6:27 PM Changeset in webkit [185092] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Hardware Keyboard: All combinations for arrow keys with Shift do not extend the selection.
https://bugs.webkit.org/show_bug.cgi?id=145538
rdar://problem/18504199

Reviewed by Darin Adler.

The extend parameter was ignored in all the functions below.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _moveUp:withHistory:]):
(-[WKContentView _moveDown:withHistory:]):
(-[WKContentView _moveLeft:withHistory:]):
(-[WKContentView _moveRight:withHistory:]):
(-[WKContentView _moveToStartOfWord:withHistory:]):
(-[WKContentView _moveToStartOfParagraph:withHistory:]):
(-[WKContentView _moveToStartOfLine:withHistory:]):
(-[WKContentView _moveToStartOfDocument:withHistory:]):
(-[WKContentView _moveToEndOfWord:withHistory:]):
(-[WKContentView _moveToEndOfParagraph:withHistory:]):
(-[WKContentView _moveToEndOfLine:withHistory:]):
(-[WKContentView _moveToEndOfDocument:withHistory:]):

6:04 PM Changeset in webkit [185091] by Gyuyoung Kim
  • 49 edits in trunk/Source

Purge PassRefPtr in WebCore/Modules - 3
https://bugs.webkit.org/show_bug.cgi?id=145508

Reviewed by Darin Adler.

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

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursorBackend.h:

(WebCore::IDBCursorBackend::create):

  • Modules/indexeddb/IDBCursorBackendOperations.h:

(WebCore::CursorIterationOperation::create):
(WebCore::CursorAdvanceOperation::create):

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::create):

  • Modules/indexeddb/IDBDatabase.h:
  • Modules/indexeddb/IDBDatabaseBackend.cpp:

(WebCore::IDBDatabaseBackend::create):

  • Modules/indexeddb/IDBDatabaseBackend.h:
  • Modules/indexeddb/IDBDatabaseCallbacksImpl.cpp:

(WebCore::IDBDatabaseCallbacksImpl::create):

  • Modules/indexeddb/IDBDatabaseCallbacksImpl.h:
  • Modules/indexeddb/IDBDatabaseError.h:

(WebCore::IDBDatabaseError::create):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::create):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createInvalid):
(WebCore::IDBKey::createNumber):
(WebCore::IDBKey::createString):
(WebCore::IDBKey::createDate):
(WebCore::IDBKey::createArray):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::create):

  • Modules/indexeddb/IDBKeyRange.h:

(WebCore::IDBKeyRange::create):

  • Modules/indexeddb/IDBObjectStore.cpp:
  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::create):

  • Modules/indexeddb/IDBOpenDBRequest.cpp:

(WebCore::IDBOpenDBRequest::create):

  • Modules/indexeddb/IDBOpenDBRequest.h:
  • Modules/indexeddb/IDBRecordIdentifier.h:

(WebCore::IDBRecordIdentifier::create):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::create):
(WebCore::IDBRequest::getResultCursor):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::create):

  • Modules/indexeddb/IDBTransaction.h:
  • Modules/indexeddb/IDBTransactionBackend.cpp:

(WebCore::IDBTransactionBackend::create):

  • Modules/indexeddb/IDBTransactionBackend.h:
  • Modules/indexeddb/IDBTransactionBackendOperations.h:

(WebCore::CreateObjectStoreOperation::create):
(WebCore::DeleteObjectStoreOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeOperation::create):
(WebCore::CreateObjectStoreAbortOperation::create):
(WebCore::DeleteObjectStoreAbortOperation::create):
(WebCore::IDBDatabaseBackend::VersionChangeAbortOperation::create):
(WebCore::CreateIndexOperation::create):
(WebCore::CreateIndexAbortOperation::create):
(WebCore::DeleteIndexOperation::create):
(WebCore::DeleteIndexAbortOperation::create):
(WebCore::GetOperation::create):
(WebCore::PutOperation::create):
(WebCore::SetIndexesReadyOperation::create):
(WebCore::OpenCursorOperation::create):
(WebCore::CountOperation::create):
(WebCore::DeleteRangeOperation::create):
(WebCore::ClearObjectStoreOperation::create):

  • Modules/mediasource/VideoPlaybackQuality.cpp:

(WebCore::VideoPlaybackQuality::create):

  • Modules/mediasource/VideoPlaybackQuality.h:
  • Modules/mediastream/MediaConstraintsImpl.cpp:

(WebCore::MediaConstraintsImpl::create):

  • Modules/mediastream/MediaConstraintsImpl.h:
  • Modules/mediastream/MediaStream.cpp:

(WebCore::MediaStream::create):

  • Modules/mediastream/MediaStream.h:
  • Modules/mediastream/RTCDTMFSender.cpp:

(WebCore::RTCDTMFSender::create):

  • Modules/mediastream/RTCDTMFSender.h:
  • Modules/mediastream/RTCOfferAnswerOptions.cpp:

(WebCore::RTCOfferAnswerOptions::create):
(WebCore::RTCOfferOptions::create):

  • Modules/mediastream/RTCOfferAnswerOptions.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::parseConfiguration):
(WebCore::RTCPeerConnection::create):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/webaudio/AudioContext.cpp:

(WebCore::AudioContext::create):

  • Modules/webdatabase/AbstractDatabaseServer.h:
  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase):

  • Modules/webdatabase/DOMWindowWebDatabase.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::existingDatabaseContextFor):
(WebCore::DatabaseManager::databaseContextFor):
(WebCore::DatabaseManager::openDatabase):

  • Modules/webdatabase/DatabaseManager.h:
  • Modules/webdatabase/DatabaseServer.cpp:

(WebCore::DatabaseServer::openDatabase):
(WebCore::DatabaseServer::createDatabase):

  • Modules/webdatabase/DatabaseServer.h:
5:26 PM Changeset in webkit [185090] by andersca@apple.com
  • 4 edits in trunk/Source

Use xpc_connection_set_oneshot_instance where possible
https://bugs.webkit.org/show_bug.cgi?id=145535
rdar://problem/21109994

Reviewed by Sam Weinig.

Source/WebKit2:

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

  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:

(WebKit::connectToService):
(WebKit::connectToReExecService):

Source/WTF:

Add SPI declaration.

  • wtf/spi/darwin/XPCSPI.h:
5:01 PM Changeset in webkit [185089] by dbates@webkit.org
  • 10 edits
    3 adds in trunk

Notify client that we began editing when text field is focused
https://bugs.webkit.org/show_bug.cgi?id=145439
<rdar://problem/21142108>

Reviewed by Anders Carlsson.

Source/WebCore:

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

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

  • html/SearchInputType.cpp:

(WebCore::SearchInputType::didSetValueByUserEdit): Remove parameter for ValueChangeState,
which was used to determine whether we should notify the client that we began editing, because
we we will notify the client that editing began when the text field is focused as opposed to
when the value of text field first changes.

  • html/SearchInputType.h: Ditto.
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent): Notify the client that we began editing when
the text field is focused.
(WebCore::TextFieldInputType::subtreeHasChanged): Update call site of didSetValueByUserEdit()
following the removal of its parameter.
(WebCore::TextFieldInputType::didSetValueByUserEdit): Ditto.

  • html/TextFieldInputType.h:

Tools:

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

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing.cpp: Added.

(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didReceiveMessageFromInjectedBundle):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::didFinishLoadForFrame):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setInjectedBundleClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::setPageLoaderClient):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::nullJavaScriptCallback):
(TestWebKitAPI::WebKit2TextFieldBeginAndEditEditingTest::executeJavaScriptAndCheckDidReceiveMessage):
(TestWebKitAPI::TEST_F):

  • TestWebKitAPI/Tests/WebKit2/TextFieldDidBeginAndEndEditing_Bundle.cpp: Added.

(TestWebKitAPI::textFieldDidBeginEditing):
(TestWebKitAPI::textFieldDidEndEditing):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::TextFieldDidBeginAndEndEditingEventsTest):
(TestWebKitAPI::TextFieldDidBeginAndEndEditingEventsTest::didCreatePage):

  • TestWebKitAPI/Tests/WebKit2/input-focus-blur.html: Added.
4:57 PM Changeset in webkit [185088] by enrica@apple.com
  • 2 edits in trunk/Source/WebKit2

[iOS] Hardware Keyboard: Command + left arrow does not work.
https://bugs.webkit.org/show_bug.cgi?id=145531
rdar://problem/18576402

Reviewed by Anders Carlsson.

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

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _moveToStartOfLine:withHistory:]):

4:57 PM Changeset in webkit [185087] by mmaxfield@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Rubber-stamped by Zalan Bujtas.

  • platform/mac/fast/text/font-weights-zh-expected.txt: Added.
  • platform/mac/fast/text/font-weights-zh.html: Added.
4:45 PM Changeset in webkit [185086] by commit-queue@webkit.org
  • 3 edits
    1 delete in trunk/LayoutTests

Unreviewed, rolling out r185074 and r185085.
https://bugs.webkit.org/show_bug.cgi?id=145533

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

Reverted changesets:

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

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

4:35 PM Changeset in webkit [185085] by mmaxfield@apple.com
  • 2 edits
    1 copy in trunk/LayoutTests

Test gardening after r185074
https://bugs.webkit.org/show_bug.cgi?id=145478

Unreviewed.

  • platform/mac-mavericks/fast/text/font-weights-expected.txt: Copied from LayoutTests/platform/mac/fast/text/font-weights-expected.txt.
  • platform/mac/fast/text/font-weights-expected.txt: Yosemite-specific test results.
4:35 PM Changeset in webkit [185084] by msaboff@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Crash in com.apple.WebKit.WebContent at com.apple.JavaScriptCore: JSC::revertCall + 24
https://bugs.webkit.org/show_bug.cgi?id=145527

Reviewed by Filip Pizlo.

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

  • bytecode/CallLinkInfo.h:

(JSC::CallLinkInfo::~CallLinkInfo):

  • jit/PolymorphicCallStubRoutine.cpp:

(JSC::PolymorphicCallNode::unlink):
(JSC::PolymorphicCallNode::clearCallLinkInfo):
(JSC::PolymorphicCallCase::dump):
(JSC::PolymorphicCallStubRoutine::edges):
(JSC::PolymorphicCallStubRoutine::clearCallNodesFor):
(JSC::PolymorphicCallStubRoutine::visitWeak):

  • jit/PolymorphicCallStubRoutine.h:

(JSC::PolymorphicCallNode::hasCallLinkInfo):

4:22 PM Changeset in webkit [185083] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Add the ability to tell between Catch and Finally blocks.
https://bugs.webkit.org/show_bug.cgi?id=145524

Reviewed by Michael Saboff.

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

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/HandlerInfo.h:

(JSC::HandlerInfoBase::type):
(JSC::HandlerInfoBase::setType):
(JSC::HandlerInfoBase::typeName):
(JSC::HandlerInfoBase::isCatchHandler):
(JSC::UnlinkedHandlerInfo::UnlinkedHandlerInfo):
(JSC::HandlerInfo::initialize):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::generate):
(JSC::BytecodeGenerator::pushTry):
(JSC::BytecodeGenerator::popTryAndEmitCatch):
(JSC::BytecodeGenerator::emitEnumeration):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::emitThrow):

  • bytecompiler/NodesCodegen.cpp:

(JSC::TryNode::emitBytecode):

3:46 PM Changeset in webkit [185082] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.1.4.16.5

New tag.

3:46 PM Changeset in webkit [185081] by bshafiei@apple.com
  • 5 edits in branches/safari-600.1.4.16-branch/Source

Versioning.

3:43 PM Changeset in webkit [185080] by andersca@apple.com
  • 5 edits in trunk/Source

WAKScrollView.h cannot be imported standalone
https://bugs.webkit.org/show_bug.cgi?id=145529

Reviewed by Dan Bernstein.

Source/WebCore:

  • page/mac/WebCoreFrameView.h:

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

  • platform/ScrollTypes.h:

Remove the #ifdef cplusplus surrounding the code, add header includes to make the file self-contained,
and reformat the enum definitions.

Source/WebKit/mac:

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

  • MigrateHeaders.make:
3:40 PM Changeset in webkit [185079] by achristensen@apple.com
  • 5 edits in trunk

[Content Extensions] resource-type and load-type should be independent.
https://bugs.webkit.org/show_bug.cgi?id=145528
rdar://problem/21190765

Reviewed by Benjamin Poulain.

Source/WebCore:

Covered by existing tests and a new API test.

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

  • contentextensions/DFABytecodeInterpreter.cpp:

(WebCore::ContentExtensions::DFABytecodeInterpreter::interpretTestFlagsAndAppendAction):
Check and correctly handle rules with both resource-type and load-type flags.

  • loader/ResourceLoadInfo.h:

Add masks to separate flags from resource-type and load-type.

Tools:

  • TestWebKitAPI/Tests/WebCore/ContentExtensions.cpp:

(TestWebKitAPI::TEST_F):

3:29 PM Changeset in webkit [185078] by achristensen@apple.com
  • 5 edits in trunk/Source/WebCore

[Content Extensions] Reduce DFA memory usage.
https://bugs.webkit.org/show_bug.cgi?id=145526

Reviewed by Benjamin Poulain.

  • contentextensions/DFA.cpp:

(WebCore::ContentExtensions::DFA::memoryUsed):
(WebCore::ContentExtensions::DFANode::transitions):
(WebCore::ContentExtensions::DFANode::fallbackTransitionDestination):
(WebCore::ContentExtensions::DFANode::changeFallbackTransition):
(WebCore::ContentExtensions::DFANode::addFallbackTransition):
(WebCore::ContentExtensions::DFANode::containsTransition):
(WebCore::ContentExtensions::DFANode::kill):

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

(WebCore::ContentExtensions::DFAMinimizer::minimize):

  • contentextensions/NFAToDFA.cpp:

(WebCore::ContentExtensions::NFAToDFA::convert):
Use separate Vectors for the transition characters and destinations to avoid wasting memory to padding a std::pair.

3:26 PM Changeset in webkit [185077] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Implemented the eventTargetInterface and scriptExecutionContext methods required by EventTarget, as well as
some required infrastructure.
https://bugs.webkit.org/show_bug.cgi?id=145523

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

  • Modules/mediasession/MediaRemoteControls.cpp:

(WebCore::MediaRemoteControls::MediaRemoteControls): Initialize all instance variables.

  • Modules/mediasession/MediaRemoteControls.h: MediaRemoteControl's constructor now takes a script execution context, which we provide to EventTarget. The required eventTargetInterface method has also been implemented.

(WebCore::MediaRemoteControls::create):

  • Modules/mediasession/MediaRemoteControls.idl: Indicate MediaRemoteControls now takes a constructor that is passed in a script execution context. To prevent build errors, event handlers have been removed until they are implemented.
  • WebCore.xcodeproj/project.pbxproj: We should be building the derived JSMediaRemoteControls class with WebCore.
  • dom/EventTargetFactory.in: Ensure a MediaRemoteControlsEventTargetInterfaceType is generated.
3:00 PM Changeset in webkit [185076] by bshafiei@apple.com
  • 5 edits in branches/safari-600.7-branch/Source

Versioning.

2:21 PM Changeset in webkit [185075] by bshafiei@apple.com
  • 1 copy in tags/Safari-600.7.10

New tag.

2:09 PM Changeset in webkit [185074] by mmaxfield@apple.com
  • 3 edits in trunk/LayoutTests

Test font selection for zh fonts
https://bugs.webkit.org/show_bug.cgi?id=145478

Reviewed by Zalan Bujtas.

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

  • platform/mac/fast/text/font-weights-expected.txt:
  • platform/mac/fast/text/font-weights.html:
1:53 PM Changeset in webkit [185073] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add ATS keys to WebKitTestRunnerApp
https://bugs.webkit.org/show_bug.cgi?id=145519

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

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

  • WebKitTestRunner/WebKitTestRunnerApp/WebKitTestRunnerApp-Info.plist:
12:57 PM Changeset in webkit [185072] by beidson@apple.com
  • 21 edits
    1 copy
    8 adds in trunk

Add WKTR support for "should open external URLs".
https://bugs.webkit.org/show_bug.cgi?id=145505

Reviewed by Darin Adler.

Source/WebKit2:

Expose C-spi to allow WKTR to set this bit on new loads:

  • UIProcess/API/C/WKPage.cpp:

(WKPageLoadURLWithShouldOpenExternalURLsPolicy):

  • UIProcess/API/C/WKPagePrivate.h:

Expose the bit on NavigationAction for the policy delegate:

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

(WKBundleNavigationActionGetShouldOpenExternalURLs):

  • WebProcess/InjectedBundle/API/c/WKBundleNavigationActionPrivate.h: Copied from Tools/WebKitTestRunner/WorkQueueManager.h.
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:

(WebKit::InjectedBundleNavigationAction::InjectedBundleNavigationAction):

  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.h:

(WebKit::InjectedBundleNavigationAction::shouldOpenExternalURLs):

  • WebKit2.xcodeproj/project.pbxproj:

Tools:

  • Add a new option to "queueLoad" to allow javascript to queue a load that has the "should open external URLs" bit set.
  • Add a new "dumpPolicyDelegateCallbacks" call to dump the NavigationAction in the policy delegate, including whether or not the bit was set.
  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::queueLoad):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::dumpPolicyDelegateCallbacks):
(WTR::TestRunner::shouldDumpPolicyCallbacks):

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::queueLoad):

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

(WTR::InjectedBundlePage::decidePolicyForNavigationAction):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):

  • WebKitTestRunner/WorkQueueManager.cpp:

(WTR::WorkQueueManager::queueLoad):

  • WebKitTestRunner/WorkQueueManager.h:

LayoutTests:

  • loader/navigation-policy/resources/notify-done.html: Added.
  • loader/navigation-policy/should-load-external-urls-set-by-api-basic-expected.txt: Added.
  • loader/navigation-policy/should-load-external-urls-set-by-api-basic.html: Added.
  • loader/navigation-policy/should-not-load-external-urls-set-by-api-basic-expected.txt: Added.
  • loader/navigation-policy/should-not-load-external-urls-set-by-api-basic.html: Added.
  • platform/ios-simulator-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
12:42 PM Changeset in webkit [185071] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

[CSS JIT] Fail to compile when we are out of executable memory
https://bugs.webkit.org/show_bug.cgi?id=145483
rdar://problem/21166612

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

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

Credit to Chris for finding this problem.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

12:31 PM Changeset in webkit [185070] by Chris Dumez
  • 3 edits
    2 adds in trunk

ASSERT(revalidatingResource.inCache()) in MemoryCache when reloading tumblr.com
https://bugs.webkit.org/show_bug.cgi?id=145518
<rdar://problem/21168573>

Reviewed by Darin Adler.

Source/WebCore:

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

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

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

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::revalidationSucceeded): Deleted.

LayoutTests:

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

  • http/tests/cache/memory-cache-pruning-during-revalidation-expected.txt: Added.
  • http/tests/cache/memory-cache-pruning-during-revalidation.html: Added.
12:05 PM Changeset in webkit [185069] by commit-queue@webkit.org
  • 4 edits
    3 adds in trunk/Source/WebCore

Add stub implementation of MediaRemoteControls, part of the Media Session spec.
https://bugs.webkit.org/show_bug.cgi?id=145462

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

  • CMakeLists.txt: Added IDL file as well as the corresponding implementation file.
  • DerivedSources.make: Included the new IDL file.
  • Modules/mediasession/MediaRemoteControls.cpp: Added an empty implementation file.

(MediaRemoteControls::~MediaRemoteControls):

  • Modules/mediasession/MediaRemoteControls.h: Added a stubbed header file with accessors for the four attributes declared in the IDL file.

(WebCore::MediaRemoteControls::previousTrackEnabled):
(WebCore::MediaRemoteControls::setPreviousTrackEnabled):
(WebCore::MediaRemoteControls::nextTrackEnabled):
(WebCore::MediaRemoteControls::setNextTrackEnabled):
(WebCore::MediaRemoteControls::seekForwardEnabled):
(WebCore::MediaRemoteControls::setSeekForwardEnabled):
(WebCore::MediaRemoteControls::seekBackwardEnabled):
(WebCore::MediaRemoteControls::setSeekBackwardEnabled):

  • Modules/mediasession/MediaRemoteControls.idl: Added from the Media Session spec.
  • WebCore.xcodeproj/project.pbxproj: Included the new IDL file and MediaRemoteControls.cpp/.h sources.
11:40 AM Changeset in webkit [185068] by barraclough@apple.com
  • 3 edits in trunk/Source/WebKit2

PDFs always think they're visible on iOS.
https://bugs.webkit.org/show_bug.cgi?id=145493
<rdar://problem/19668879>

Unreviewed roll-out.

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

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didMoveToWindow]):
(-[WKWebView setOpaque:]):

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView willMoveToWindow:]):
(-[WKContentView didMoveToWindow]):
(-[WKContentView browsingContextController]):

11:40 AM Changeset in webkit [185067] by ggaren@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

REGRESSION: These sorting idioms used by Peacekeeper and Browsermark are ~20X slower
https://bugs.webkit.org/show_bug.cgi?id=145412

Reviewed by Darin Adler.

Moar speedup.

Added a bucket sort for string sorting.

  • builtins/Array.prototype.js:

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

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

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

11:17 AM Changeset in webkit [185066] by mark.lam@apple.com
  • 2 edits in trunk/Tools

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

Reviewed by Darin Adler.

  • Scripts/build-jsc:
  • Make sure to disable the JIT when --cloop is specified. Did analogous fix for --ftljit.
11:05 AM Changeset in webkit [185065] by Csaba Osztrogonác
  • 3 edits in trunk/Tools

[CMake] check-webkit-style provides bogus explanation for alphabetical sorting error
https://bugs.webkit.org/show_bug.cgi?id=144959

Reviewed by Darin Adler.

  • Scripts/webkitpy/style/checkers/cmake.py:

(CMakeChecker.check): Use enumerate instead of xrange.
(CMakeChecker._check_list_order): Use enumerate instead of incrementing line_number manually.

  • Scripts/webkitpy/style/checkers/cmake_unittest.py:

(CMakeCheckerTest.test_check): Update the expected results.

11:00 AM Changeset in webkit [185064] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

Fix the webkitpy scm unittests after r174051
https://bugs.webkit.org/show_bug.cgi?id=145511

Reviewed by Darin Adler.

  • Scripts/webkitpy/common/checkout/scm/scm_unittest.py:

(GitTestWithMock.make_scm):

10:57 AM Changeset in webkit [185063] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

HandlerInfo::initialize() should not assume that CodeLocationLabel is available.
https://bugs.webkit.org/show_bug.cgi?id=145515

Reviewed by Csaba Osztrogonác.

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

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):

  • bytecode/HandlerInfo.h:

(JSC::HandlerInfo::initialize):

10:13 AM Changeset in webkit [185062] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

EWS provides misleading information for not applyable patches
https://bugs.webkit.org/show_bug.cgi?id=145307

Reviewed by Alexey Proskuryakov.

  • Scripts/svn-apply: Die if there is no applyable diff in the patch.
10:01 AM Changeset in webkit [185061] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

[EFL] Remove unused const variable from EwkView.cpp
https://bugs.webkit.org/show_bug.cgi?id=145512

Reviewed by Gyuyoung Kim.

  • UIProcess/API/efl/EwkView.cpp:
9:57 AM Changeset in webkit [185060] by ap@apple.com
  • 2 edits in trunk/Tools

Further tweak results of WebKit1.StringTruncator after r184965.

  • TestWebKitAPI/Tests/mac/StringTruncator.mm:
8:40 AM Changeset in webkit [185059] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[CSS Grid Layout] Simplify the interface of GridResolvedPosition
https://bugs.webkit.org/show_bug.cgi?id=139077

Reviewed by Darin Adler.

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

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

No new tests as this is a refactoring.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::placeItemsOnGrid):
(WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
(WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
(WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

  • rendering/style/GridPosition.h:
  • rendering/style/GridResolvedPosition.cpp:

(WebCore::gridLinesForSide):
(WebCore::implicitNamedGridLineForSide):
(WebCore::isNonExistentNamedLineOrArea):
(WebCore::GridUnresolvedSpan::requiresAutoPlacement):
(WebCore::GridUnresolvedSpan::adjustGridPositionsFromStyle):
(WebCore::adjustGridPositionForRowEndColumnEndSide):
(WebCore::adjustGridPositionForSide):
(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::firstNamedGridLineBeforePosition):
(WebCore::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveNamedGridLinePositionAgainstOppositePosition):
(WebCore::resolveGridPositionAgainstOppositePosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridResolvedPosition::GridResolvedPosition):
(WebCore::GridResolvedPosition::unresolvedSpanFromStyle):
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
(WebCore::GridResolvedPosition::adjustGridPositionsFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionFromStyle): Deleted.
(WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Deleted.
(WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Deleted.

  • rendering/style/GridResolvedPosition.h:

(WebCore::GridUnresolvedSpan::GridUnresolvedSpan): New class.
(WebCore::GridUnresolvedSpan::initialPosition):
(WebCore::GridUnresolvedSpan::finalPosition):
(WebCore::GridUnresolvedSpan::initialPositionSide):
(WebCore::GridUnresolvedSpan::finalPositionSide):
(WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide): Deleted.
(WebCore::GridResolvedPosition::adjustGridPositionForSide): Deleted.
(WebCore::GridResolvedPosition::GridResolvedPosition): Deleted.

8:28 AM Changeset in webkit [185058] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix the !ENABLE(VIDEO_TRACK) build after r184799
https://bugs.webkit.org/show_bug.cgi?id=145510

Reviewed by Eric Carlson.

  • testing/Internals.cpp:

(WebCore::Internals::userPreferredAudioCharacteristics):
(WebCore::Internals::setUserPreferredAudioCharacteristic):

4:36 AM Changeset in webkit [185057] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Fix logical-not-parentheses warning in CachedScript.cpp
https://bugs.webkit.org/show_bug.cgi?id=145254

Reviewed by Sam Weinig.

  • loader/cache/CachedScript.cpp:

(WebCore::CachedScript::mimeTypeAllowedByNosniff): "!X==Y" should be "X!=Y" here.

3:57 AM Changeset in webkit [185056] by Csaba Osztrogonác
  • 4 edits in trunk

[cmake] Suppress unused parameter warnings in WebKit2 and TestNetscapePlugIn
https://bugs.webkit.org/show_bug.cgi?id=145264

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

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

Tools:

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Set extra compiler flags and suppress only unused parameter warnings.
2:11 AM Changeset in webkit [185055] by Csaba Osztrogonác
  • 2 edits in trunk

[cmake] Suppress parentheses-equality warnings
https://bugs.webkit.org/show_bug.cgi?id=145126

Reviewed by Darin Adler.

  • Source/cmake/WebKitHelpers.cmake:
Note: See TracTimeline for information about the timeline view.