Timeline



Nov 11, 2015:

11:38 PM Changeset in webkit [192355] by benjamin@webkit.org
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Air: we have more register than what the allocator believed
https://bugs.webkit.org/show_bug.cgi?id=151182

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-11
Reviewed by Michael Saboff.

I was using GPRInfo/FPRInfo to get the number of register while coloring the interference graph.
The problem is, those classes are lying about register availability.

They don't report stuff reserved by the MacroAssembler and reserve some registers.
FPRInfo is the worst, reporting only 6 of the 15 registers we have.

The ground truth in our case is that we can color with all the registers returned
by regsInPriorityOrder(). I changed IteratedRegisterCoalescingAllocator to use that value.

The new test testSpillFP() covers simple spilling of doubles.

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::IteratedRegisterCoalescingAllocator::IteratedRegisterCoalescingAllocator):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::makeWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::decrementDegree):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::precoloredCoalescingHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::conservativeHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::combine):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freezeMoves):

  • b3/testb3.cpp:

(JSC::B3::testSpillFP):
(JSC::B3::run):

11:28 PM Changeset in webkit [192354] by Chris Dumez
  • 86 edits in trunk/Source/WebCore

Stop passing a PassRefPtr to dispatchEvent()
https://bugs.webkit.org/show_bug.cgi?id=151158

Reviewed by Alex Christensen.

Stop passing a PassRefPtr to dispatchEvent() because:

  1. PassRefPtr is legacy and should no longer be used
  2. We don't actually transfer ownership of the Event to the callee

Pass a C++ reference instead.

11:17 PM Changeset in webkit [192353] by mark.lam@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

The BinarySnippetRegisterContext needs to copy the result back from the scratch register.
https://bugs.webkit.org/show_bug.cgi?id=150712

Reviewed by Geoffrey Garen.

If the BinarySnippetRegisterContext had re-assigned the result register to a scratch
before emitting the snippet, it needs to copy the result back from the scratch after
the snippet is done.

This fixes the cdjs-tests.yaml/main.js.ftl failure reported in
https://bugs.webkit.org/show_bug.cgi?id=150687.

Also added an optimization to check for the case where any of the left, right,
or result registers are aliased together, and to map them to the corresponding
allocated scratch register for their alias instead of allocating separate ones.

  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • Added JITSubGenerator.h to these project files for completeness.
  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • Re-enable ArithSub handling of UntypedUse operands.
  • ftl/FTLCompile.cpp:
  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfArithSub):

  • Adjusted IC sizes to account for the snippet changes.
10:59 PM Changeset in webkit [192352] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Crash in sorting-benchmark.js on ARM64 with full op_sub FTL coverage.
https://bugs.webkit.org/show_bug.cgi?id=150936

Reviewed by Michael Saboff.

The OSR entry thunk does not currently restore the callee saved registers that the baseline
JIT saves but the DFG does not. As a result, sorting-benchmark.js was crashing with the
following scenario:

  1. There exists 2 functions: benchmark() and bottom_up_merge_sort(). Let's call them A() and B() respectively for brevity.
  2. A() is FTL compiled.
  3. B() is FTL compiled.
  4. FTL A() calls FTL B(). FTL B() trashes register x26.
  5. FTL B() goes through an OSR exit, and deopts to baseline. The OSR exit off-ramp puts x26's original value in the baseline B()'s stash location for x26 in its stack frame. It expects baseline B() to restore x26 when it returns.
  6. Baseline B() gets DFG optimized, and we OSR enter into DFG B(). The OSR entry thunk does nothing to restore x26's original value. Hence, x26 contains whatever value FTL B() left in it.
  7. DFG B() returns to FTL A(). x26 is not one of the callee saved registers used by DFG B(). Hence, it does nothing to restore it.
  8. FTL A() tries to use x26 and crashes, because x26 contains FTL B()'s value for it, and not FTL A()'s.

This patch fixes this issue by having the OSR entry thunk restore all the callee saved
registers before running the DFG code.

No new test needed because this issue will be covered by sorting-benchmark.js as soon as
https://bugs.webkit.org/show_bug.cgi?id=150712 lands.

  • dfg/DFGThunks.cpp:

(JSC::DFG::osrEntryThunkGenerator):

10:49 PM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:49 PM schedule2.png attached to November 2015 Meeting by Joseph Pecoraro
schedule2
10:48 PM November 2015 Meeting edited by Joseph Pecoraro
Add screenshot of schedule (diff)
10:46 PM schedule.png attached to November 2015 Meeting by Joseph Pecoraro
Image of Schedule
10:40 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:39 PM NetworkCleanupDiscussion2015 created by Joseph Pecoraro
Initial Load
10:36 PM CMakeDiscussion2015 edited by Joseph Pecoraro
(diff)
10:35 PM CMakeDiscussion2015 created by Joseph Pecoraro
Initial Draft
10:33 PM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:33 PM Changeset in webkit [192351] by commit-queue@webkit.org
  • 4 edits
    2 adds
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: Add Debug toolbar button to toggle InspectorBackend.dumpInspectorProtocolMessages
https://bugs.webkit.org/show_bug.cgi?id=151175

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-11
Reviewed by Brian Burg.

Add debug UI and a way to toggle it on and off in non-production builds.
To enable the debug UI use a keyboard shortcut in Inspector:
Option+Shift+Command+D (Mac) or Option+Shift+Ctrl+D (Windows / Linux)

The debug UI setting is a persistent setting, so those of use developing
Web Inspector will turn it on and leave it on.

Currently the only debug UI is a new toolbar button to toggle
the frontend logging on or off.

  • Scripts/combine-resources.pl:

(concatenateFiles):
Exclude "Debug" files when combining resources for minification.

  • UserInterface/Main.html:

Rename "Base/Bootstrap.js" to "Debug/Bootstrap" so that we can easily exclude it.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Only evaluate bootstrap functions if they exist.

  • UserInterface/Debug/Bootstrap.js: Renamed from Source/WebInspectorUI/UserInterface/Base/Bootstrap.js.

(WebInspector.runBootstrapOperations):
Add a debug setting, toolbar button, and keyboard shortcut.

10:32 PM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:31 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:31 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:30 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:30 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:30 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:30 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:29 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:29 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:29 PM WebKitWebSiteDiscussion2015 edited by Joseph Pecoraro
(diff)
10:25 PM WebKitWebSiteDiscussion2015 created by Joseph Pecoraro
10:24 PM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:24 PM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:09 PM Changeset in webkit [192350] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Fix leaks in idbKeyFromInspectorObject()
https://bugs.webkit.org/show_bug.cgi?id=151179

Reviewed by Brian Burg.

Fix leaks in idbKeyFromInspectorObject() that were caused by the
NeverDestroyed<> not being marked as static.

  • inspector/InspectorIndexedDBAgent.cpp:
9:48 PM Changeset in webkit [192349] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

Print result of memory sampler more readable
https://bugs.webkit.org/show_bug.cgi?id=151085

Reviewed by Darin Adler.

Current memory sampler prints result of memory sample horizontally. It makes us hard to read
the result at a glance. To improve readability of the memory sampler result, this patch prints it
vertically.

  • Shared/WebMemorySampler.cpp:

(WebKit::WebMemorySampler::appendCurrentMemoryUsageToFile):
(WebKit::WebMemorySampler::writeHeaders):

9:19 PM Changeset in webkit [192348] by benjamin@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

[JSC] Add a comment explaining the opcode suffixes on x86
https://bugs.webkit.org/show_bug.cgi?id=151176

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

  • assembler/X86Assembler.h:

I was always confused with the prefixes. Gavin pointed out the Intel documentation
explains everything.
I added a comment to help the next person confused about those suffixes.

9:12 PM Changeset in webkit [192347] by benjamin@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Support Doubles with B3's Add
https://bugs.webkit.org/show_bug.cgi?id=151164

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-11
Reviewed by Filip Pizlo.

I tweaked ReduceStrength a bit to maintain correctness.
Nothing fancy otherwise.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.h:
  • b3/B3ValueInlines.h:

(JSC::B3::Value::isInteger):

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::bitWiseEqual):
(JSC::B3::testAddArgDouble):
(JSC::B3::testAddArgsDouble):
(JSC::B3::testAddArgImmDouble):
(JSC::B3::testAddImmArgDouble):
(JSC::B3::testAddImmsDouble):
(JSC::B3::run):

8:08 PM Changeset in webkit [192346] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

B3 should be able to compile a program with Switch
https://bugs.webkit.org/show_bug.cgi?id=151115

Reviewed by Benjamin Poulain.

Adds lowering of Switch to a binary switch. This doesn't require any Air support.

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::append):
(JSC::B3::BasicBlock::removeLast):
(JSC::B3::BasicBlock::replaceLast):

  • b3/B3BasicBlock.h:
  • b3/B3BlockInsertionSet.cpp:

(JSC::B3::BlockInsertionSet::insertBefore):
(JSC::B3::BlockInsertionSet::insertAfter):
(JSC::B3::BlockInsertionSet::splitForward):

  • b3/B3BlockInsertionSet.h:
  • b3/B3ControlValue.h:
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3LowerMacros.cpp:
  • b3/B3SwitchValue.cpp:

(JSC::B3::SwitchValue::dumpMeta):
(JSC::B3::SwitchValue::SwitchValue):

  • b3/B3SwitchValue.h:
  • b3/testb3.cpp:

(JSC::B3::testChillDiv64):
(JSC::B3::testSwitch):
(JSC::B3::run):

7:39 PM Changeset in webkit [192345] by fpizlo@apple.com
  • 6 edits in trunk/Source/JavaScriptCore

Patchpoints with stackArgument constraints should work
https://bugs.webkit.org/show_bug.cgi?id=151177

Reviewed by Saam Barati.

The only thing broken was that StackmapSpecial's isValidForm would reject Arg::addr, so
validation would fail after allocateStack.

In order for StackmapSpecial to validate Arg::addr, it needs to know the frame size. To know
the frame size, it needs access to Code&. So, this changes Air::Special to always have a
pointer back to Code.

Other than this already worked.

  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::isValidImpl):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::addSpecial):

  • b3/air/AirSpecial.cpp:

(JSC::B3::Air::Special::Special):

  • b3/air/AirSpecial.h:

(JSC::B3::Air::Special::code):

  • b3/testb3.cpp:

(JSC::B3::testSimplePatchpoint):
(JSC::B3::testPatchpointCallArg):
(JSC::B3::testSimpleCheck):
(JSC::B3::run):

7:13 PM Changeset in webkit [192344] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: blank debugger tab when opening inspector on unvisited website
https://bugs.webkit.org/show_bug.cgi?id=151149

Reviewed by Joseph Pecoraro.

When Inspector tries to show default content when initially showing a tab upon opening,
there may not be any tree elements added to the navigation bar yet. In the case of an
unvisited website, there will be no state restoration cookie to trigger deferred selection.
So, showDefaultContentView finds no tree elements it can show, and the main view is blank.

We can fix this by speculatively showing the first script/resource that's added to the tree
if no content view is being shown. If a state restoration cookie exists, it will take priority
over the default-displayed content view.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):

6:19 PM Changeset in webkit [192343] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Get rid of -[WebMenuTarget validateMenuItem:]
https://bugs.webkit.org/show_bug.cgi?id=151172

Reviewed by Beth Dakin.

We don't need the menu items to be validated since we handle enabling/disabling them ourselves (as well as setting their checked state).

  • WebView/WebHTMLView.mm:

(-[WebMenuTarget validateMenuItem:]): Deleted.

5:48 PM Changeset in webkit [192342] by ggaren@apple.com
  • 19 edits in trunk/Source

Rename handle.*Event to dispatch.*Event
https://bugs.webkit.org/show_bug.cgi?id=151168

Reviewed by Chris Dumez.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::implicitClose):

  • dom/Document.h:
  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::getIconDataForIconURL):
(WebCore::DocumentLoader::dispatchOnloadEvents):
(WebCore::DocumentLoader::handledOnloadEvents): Deleted.

  • loader/DocumentLoader.h:

(WebCore::DocumentLoader::isClientRedirect):
(WebCore::DocumentLoader::setIsClientRedirect):
(WebCore::DocumentLoader::wasOnloadDispatched):
(WebCore::DocumentLoader::overrideEncoding):
(WebCore::DocumentLoader::wasOnloadHandled): Deleted.

  • loader/EmptyClients.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::submitForm):
(WebCore::FrameLoader::stopLoading):
(WebCore::FrameLoader::userAgent):
(WebCore::FrameLoader::dispatchOnloadEvents):
(WebCore::FrameLoader::frameDetached):
(WebCore::FrameLoader::shouldClose):
(WebCore::FrameLoader::dispatchUnloadEvents):
(WebCore::FrameLoader::dispatchBeforeUnloadEvent):
(WebCore::FrameLoader::handledOnloadEvents): Deleted.
(WebCore::FrameLoader::handleUnloadEvents): Deleted.
(WebCore::FrameLoader::handleBeforeUnloadEvent): Deleted.

  • loader/FrameLoader.h:
  • loader/FrameLoaderClient.h:
  • loader/NavigationScheduler.cpp:

(WebCore::NavigationScheduler::mustLockBackForwardList):

Source/WebKit/mac:

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

(WebFrameLoaderClient::dispatchDidFailLoading):
(WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
(WebFrameLoaderClient::dispatchDidHandleOnloadEvents): Deleted.

Source/WebKit/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::shouldCacheResponse):
(WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
(WebFrameLoaderClient::dispatchDidHandleOnloadEvents): Deleted.

  • WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDidLoadResourceFromMemoryCache):
(WebKit::WebFrameLoaderClient::dispatchDidDispatchOnloadEvents):
(WebKit::WebFrameLoaderClient::dispatchDidHandleOnloadEvents): Deleted.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
5:47 PM Changeset in webkit [192341] by andersca@apple.com
  • 4 edits in trunk/Source/WebCore

Remove more dead code
https://bugs.webkit.org/show_bug.cgi?id=151170

Reviewed by Beth Dakin.

  • platform/ContextMenu.cpp:

(WebCore::findItemWithAction): Deleted.
(WebCore::ContextMenu::itemWithAction): Deleted.

  • platform/ContextMenu.h:

(WebCore::ContextMenu::itemAtIndex): Deleted.

  • platform/ContextMenuItem.h:
5:35 PM Changeset in webkit [192340] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

De-indent ContextMenu.h and ContextMenuItem.h.

Rubber-stamped by Andreas Kling.

  • platform/ContextMenu.h:
  • platform/ContextMenuItem.h:
5:29 PM Changeset in webkit [192339] by andersca@apple.com
  • 4 edits
    2 deletes in trunk/Source/WebCore

Remove ContextMenuWin.cpp and ContextMenuItemWin.cpp
https://bugs.webkit.org/show_bug.cgi?id=150467

Reviewed by Beth Dakin.

These files are not needed anymore.

  • PlatformWin.cmake:
  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • platform/win/ContextMenuItemWin.cpp: Removed.

(WebCore::ContextMenuItem::ContextMenuItem): Deleted.
(WebCore::ContextMenuItem::platformContextMenuItem): Deleted.

  • platform/win/ContextMenuWin.cpp: Removed.

(WebCore::ContextMenu::ContextMenu): Deleted.
(WebCore::ContextMenu::getContextMenuItems): Deleted.
(WebCore::ContextMenu::createPlatformContextMenuFromItems): Deleted.
(WebCore::ContextMenu::platformContextMenu): Deleted.

5:19 PM Changeset in webkit [192338] by andersca@apple.com
  • 2 edits
    2 deletes in trunk/Source/WebCore

Get rid of ContextMenuNone.cpp and ContextMenuItemNone.cpp
https://bugs.webkit.org/show_bug.cgi?id=151169

Reviewed by Beth Dakin.

  • PlatformEfl.cmake:
  • platform/ContextMenuItemNone.cpp: Removed.

(WebCore::ContextMenuItem::platformContextMenuItem): Deleted.

  • platform/ContextMenuNone.cpp: Removed.

(WebCore::ContextMenu::ContextMenu): Deleted.
(WebCore::ContextMenu::getContextMenuItems): Deleted.
(WebCore::ContextMenu::createPlatformContextMenuFromItems): Deleted.
(WebCore::ContextMenu::platformContextMenu): Deleted.

5:11 PM Changeset in webkit [192337] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Fix builds.

  • WebProcess/WebCoreSupport/efl/WebContextMenuClientEfl.cpp:

(WebKit::WebContextMenuClient::shareMenuItem): Deleted.

  • WebProcess/WebCoreSupport/gtk/WebContextMenuClientGtk.cpp:

(WebKit::WebContextMenuClient::shareMenuItem): Deleted.

5:02 PM Changeset in webkit [192336] by akiss@inf.u-szeged.hu
  • 2 edits in trunk/Source/bmalloc

bmalloc: Add libdl dependency
https://bugs.webkit.org/show_bug.cgi?id=151140

Reviewed by Csaba Osztrogonác.

Make sure that the linker links libdl and finds the references to
dlopen, dlsym and dlclose in Environment.cpp.

  • CMakeLists.txt:
4:47 PM Changeset in webkit [192335] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

REGRESSION (r191407): Context menus are missing Services
https://bugs.webkit.org/show_bug.cgi?id=151167
rdar://problem/23500769

Reviewed by Tim Horton.

  • UIProcess/mac/WebContextMenuProxyMac.mm:

(WebKit::WebContextMenuProxyMac::showContextMenu):
Use contentsToRootView to better indicate which coordinate system we're using.

  • WebProcess/WebPage/WebContextMenu.cpp:

(WebKit::WebContextMenu::show):
Use +[NSMenu popUpContextMenu:withEvent:forView:] so we'll get service menus where applicable.

4:41 PM Changeset in webkit [192334] by mark.lam@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

Add ability to insert probes in LLVM IR that we generate.
https://bugs.webkit.org/show_bug.cgi?id=151159

Reviewed by Geoffrey Garen.

This is done by inserting a stackmap intrinsic and emitting the probe there.

We can now insert probes that take a lambda like so:

probe([] (CCallHelpers::ProbeContext*) {

dataLog("Hello FTL\n");

});

  • ftl/FTLCompile.cpp:
  • ftl/FTLInlineCacheDescriptor.h:

(JSC::FTL::ProbeDescriptor::ProbeDescriptor):
(JSC::FTL::ProbeDescriptor::probeFunction):

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfProbe):

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

(JSC::FTL::DFG::LowerDFGToLLVM::probe):

  • ftl/FTLState.h:
4:29 PM Changeset in webkit [192333] by andersca@apple.com
  • 12 edits in trunk/Source

Remove more dead context menu code
https://bugs.webkit.org/show_bug.cgi?id=151163

Reviewed by Tim Horton.

Source/WebCore:

  • loader/EmptyClients.h:
  • page/ContextMenuClient.h:
  • page/ContextMenuController.cpp:

(WebCore::ContextMenuController::populate):

  • platform/ContextMenuItem.h:
  • platform/mac/ContextMenuItemMac.mm:

(WebCore::ContextMenuItem::shareMenuItem): Deleted.

Source/WebKit/mac:

  • WebCoreSupport/WebContextMenuClient.h:
  • WebCoreSupport/WebContextMenuClient.mm:

(WebContextMenuClient::shareMenuItem): Deleted.

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebContextMenuClient.h:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:

(WebKit::WebContextMenuClient::shareMenuItem): Deleted.

4:14 PM Changeset in webkit [192332] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Remove an unnecessary zero-delay timer from swipe snapshot removal
https://bugs.webkit.org/show_bug.cgi?id=151161

Reviewed by Anders Carlsson.

  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:

(WebKit::ViewGestureGeometryCollector::mainFrameDidLayout):
(WebKit::ViewGestureGeometryCollector::ViewGestureGeometryCollector): Deleted.
(WebKit::ViewGestureGeometryCollector::renderTreeSizeNotificationTimerFired): Deleted.

  • WebProcess/WebPage/ViewGestureGeometryCollector.h:

There's no discernable reason for this zero-delay timer, and it dates back
to the original swipe patch with no explanation given. My only theory
is that I was depending on spinning the runloop to ensure we've painted,
but we have other mechanisms to do that now, on both platforms.

This also was a surprising waste of time in some cases where the web
process was very slow.

3:45 PM Changeset in webkit [192331] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Unreviewed attempt to fix the Mac CMake build.

  • CMakeLists.txt:
3:39 PM Changeset in webkit [192330] by Brent Fulgham
  • 3 edits in trunk/Tools

[Win] webkitpy is applying abspath to DOS paths, yielding invalid paths
https://bugs.webkit.org/show_bug.cgi?id=151156

Reviewed by Anders Carlsson.

  • Scripts/webkitpy/port/base.py:

(Port.results_directory): Don't pass paths through 'abspath'
(Port._build_path): Ditto.

  • Scripts/webkitpy/port/win.py:

(WinPort._build_path): Ditto.

3:04 PM Changeset in webkit [192329] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Change probe CPUState gpr() and fpr() to return references.
https://bugs.webkit.org/show_bug.cgi?id=151154

Reviewed by Saam Barati.

This will allow us to set their values as well as reading them.

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::CPUState::gpr):
(JSC::AbstractMacroAssembler::CPUState::fpr):
(JSC::AbstractMacroAssembler::ProbeContext::gpr):
(JSC::AbstractMacroAssembler::ProbeContext::fpr):

3:01 PM Changeset in webkit [192328] by Chris Dumez
  • 9 edits
    2 adds in trunk/Source/WebKit2

[WK2] Add initial support for speculative resource revalidation to the WebKit disk cache
https://bugs.webkit.org/show_bug.cgi?id=150856
<rdar://problem/23092196>

Reviewed by Antti Koivisto.

Add initial support for speculative resource revalidation to the WebKit
disk cache. When a main resource is requested by WebCore, we look up its
list of subresources in the cache and speculatively warm them up before
WebCore asks for them, in order to improve page load time. In this
context, warming it up means:

  1. If the cached resource is usable (has not expired), keep it around in a memory for a limited amount of time (10 seconds).
  2. If the resource has expired, do a speculative revalidation of the resource and then keep it in memory for a while as well (10 seconds).

The feature is currently behind a compile-time flag that is only enabled
on COCOA. Also, it is currently disabled at run-time until it is mature
enough.

Initial results show that speculative revalidation gives a ~5%
progression on throttled warm PLT on iPhone 5s.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::start):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::retrieve):
(WebKit::NetworkCache::Cache::store):
(WebKit::NetworkCache::Cache::update):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheEntry.cpp:

(WebKit::NetworkCache::Entry::Entry):

  • NetworkProcess/cache/NetworkCacheEntry.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp: Added.

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::~SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::willSendRedirectedRequest):
(WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer):
(WebKit::NetworkCache::SpeculativeLoad::didFinishLoading):
(WebKit::NetworkCache::SpeculativeLoad::didFailLoading):
(WebKit::NetworkCache::SpeculativeLoad::didComplete):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h: Added.
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::constructRevalidationRequest):
(WebKit::NetworkCache::responseNeedsRevalidation):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::takeCacheEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::lifetimeTimerFired):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage):
(WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource): Deleted.
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
  • WebKit2.xcodeproj/project.pbxproj:
2:57 PM Changeset in webkit [192327] by Matt Baker
  • 8 edits in trunk/Source/WebInspectorUI

Web Inspector: Convert sidebars to use View base class
https://bugs.webkit.org/show_bug.cgi?id=151057

Reviewed by Timothy Hatcher.

This patch makes Sidebar a subclass of View. Mostly mechanical changes and cleanup,
such as adding navigation bars and panels as subviews, removing element getters,
and replacing external properties with symbols.

  • UserInterface/Base/Main.js:

Added sidebars to view hierarchy.

  • UserInterface/Views/DebuggerSidebarPanel.js:

Add navigation bar as a subview.

  • UserInterface/Views/NetworkSidebarPanel.js:

Add navigation bar as a subview.
(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.NetworkSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
(WebInspector.NetworkSidebarPanel.prototype._treeElementGoToArrowWasClicked):
External properties replaced with symbols.

  • UserInterface/Views/ResourceSidebarPanel.js:

Add navigation bar as a subview.
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
External properties replaced with symbols.

  • UserInterface/Views/Sidebar.js:

(WebInspector.Sidebar):
(WebInspector.Sidebar.prototype.addSidebarPanel):
(WebInspector.Sidebar.prototype.removeSidebarPanel):
Panels are now added and removed as subviews.
(WebInspector.Sidebar.prototype.get width):
(WebInspector.Sidebar.prototype.set width):
(WebInspector.Sidebar.prototype.get collapsed):
(WebInspector.Sidebar.prototype.set collapsed):
"collapsed" property now backed by private class variable, not DOM state.
(WebInspector.Sidebar.prototype.get element): Deleted.

  • UserInterface/Views/SidebarPanel.js:

(WebInspector.SidebarPanel):
(WebInspector.SidebarPanel.prototype.get visible):
(WebInspector.SidebarPanel.prototype.get selected):
(WebInspector.SidebarPanel.prototype.set selected):
"selected" property now backed by private class variable, not DOM state.
(WebInspector.SidebarPanel.prototype.get parentSidebar):
No longer stored as separate property. Wrapper around View.prototype.parentView.
Original getter retained for clarity.
(WebInspector.SidebarPanel.prototype.show):
(WebInspector.SidebarPanel.prototype.hide):
(WebInspector.SidebarPanel.prototype.added):
(WebInspector.SidebarPanel.prototype.removed):
(WebInspector.SidebarPanel.prototype.get element): Deleted.

  • UserInterface/Views/StorageSidebarPanel.js:

(WebInspector.StorageSidebarPanel):
Add navigation bar as a subview.

2:31 PM Changeset in webkit [192326] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add convenience utility to support dataLogging opcodeIDs.
https://bugs.webkit.org/show_bug.cgi?id=151117

Reviewed by Saam Barati.

  • bytecode/Opcode.cpp:

(WTF::printInternal):

  • bytecode/Opcode.h:
2:20 PM Changeset in webkit [192325] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.11

New tag.

2:19 PM Changeset in webkit [192324] by bshafiei@apple.com
  • 5 edits in trunk/Source

Versioning.

2:02 PM Changeset in webkit [192323] by akiss@inf.u-szeged.hu
  • 2 edits in trunk/Tools

Unreviewed, add myself to the committers list.

  • Scripts/webkitpy/common/config/contributors.json:
1:47 PM Changeset in webkit [192322] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/win

Handle custom menu items in WebKit instead of WebCore on Windows
https://bugs.webkit.org/show_bug.cgi?id=151147

Reviewed by Tim Horton.

  • WebCoreSupport/WebContextMenuClient.cpp:

(WebContextMenuClient::contextMenuItemSelected):

  • WebView.cpp:

(WebView::onMenuCommand):

1:34 PM Changeset in webkit [192321] by keith_miller@apple.com
  • 13 edits
    2 copies
    4 adds in trunk

Regression(r191815): 5.3% regression on Dromaeo JS Library Benchmark
https://bugs.webkit.org/show_bug.cgi?id=150945

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch fixes a performance regression introduced by r191815. Before adding Symbol.toStringTag
we would cache the value of Object.prototype.toString() in the rareData of the structure.
In order to cache the result of Object.prototype.toString() we now need to ensure that the
value stored in Symbol.toStringTag is a known constant. Thus, in order to ensure the stored Symbol.toStringTag
value remains constant adaptive inferred value watchpoints have been re-factored to be generalizable and
a new version that clears the toString value cache when fired has been added.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp: Copied from Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp.

(JSC::AdaptiveInferredPropertyValueWatchpointBase::AdaptiveInferredPropertyValueWatchpointBase):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::install):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::StructureWatchpoint::fireInternal):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::PropertyWatchpoint::fireInternal):

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.h: Copied from Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h.

(JSC::AdaptiveInferredPropertyValueWatchpointBase::key):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::StructureWatchpoint::StructureWatchpoint):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::PropertyWatchpoint::PropertyWatchpoint):

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::AdaptiveInferredPropertyValueWatchpoint):
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::handleFire):
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::install): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::fire): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::StructureWatchpoint::fireInternal): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::PropertyWatchpoint::fireInternal): Deleted.

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::key): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::StructureWatchpoint::StructureWatchpoint): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::PropertyWatchpoint::PropertyWatchpoint): Deleted.

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setObjectToStringValue):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::StructureRareData):
(JSC::StructureRareData::setObjectToStringValue):
(JSC::StructureRareData::clearObjectToStringValue):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::ObjectToStringAdaptiveStructureWatchpoint):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::install):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::fireInternal):
(JSC::ObjectToStringAdaptiveInferredPropertyValueWatchpoint::ObjectToStringAdaptiveInferredPropertyValueWatchpoint):
(JSC::ObjectToStringAdaptiveInferredPropertyValueWatchpoint::handleFire):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setObjectToStringValue): Deleted.

  • tests/stress/symbol-tostringtag-watchpoints.js: Added.

(Base):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp: Copied from Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp.

(JSC::AdaptiveInferredPropertyValueWatchpointBase::AdaptiveInferredPropertyValueWatchpointBase):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::install):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::fire):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::StructureWatchpoint::fireInternal):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::PropertyWatchpoint::fireInternal):

  • bytecode/AdaptiveInferredPropertyValueWatchpointBase.h: Copied from Source/JavaScriptCore/dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h.

(JSC::AdaptiveInferredPropertyValueWatchpointBase::key):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::StructureWatchpoint::StructureWatchpoint):
(JSC::AdaptiveInferredPropertyValueWatchpointBase::PropertyWatchpoint::PropertyWatchpoint):

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.cpp:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::AdaptiveInferredPropertyValueWatchpoint):
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::handleFire):
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::install): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::fire): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::StructureWatchpoint::fireInternal): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::PropertyWatchpoint::fireInternal): Deleted.

  • dfg/DFGAdaptiveInferredPropertyValueWatchpoint.h:

(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::key): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::StructureWatchpoint::StructureWatchpoint): Deleted.
(JSC::DFG::AdaptiveInferredPropertyValueWatchpoint::PropertyWatchpoint::PropertyWatchpoint): Deleted.

  • runtime/ObjectPrototype.cpp:

(JSC::objectProtoFuncToString):

  • runtime/Structure.h:
  • runtime/StructureInlines.h:

(JSC::Structure::setObjectToStringValue):

  • runtime/StructureRareData.cpp:

(JSC::StructureRareData::StructureRareData):
(JSC::StructureRareData::setObjectToStringValue):
(JSC::StructureRareData::clearObjectToStringValue):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::ObjectToStringAdaptiveStructureWatchpoint):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::install):
(JSC::ObjectToStringAdaptiveStructureWatchpoint::fireInternal):
(JSC::ObjectToStringAdaptiveInferredPropertyValueWatchpoint::ObjectToStringAdaptiveInferredPropertyValueWatchpoint):
(JSC::ObjectToStringAdaptiveInferredPropertyValueWatchpoint::handleFire):

  • runtime/StructureRareData.h:
  • runtime/StructureRareDataInlines.h:

(JSC::StructureRareData::setObjectToStringValue): Deleted.

  • tests/stress/symbol-tostringtag-watchpoints.js: Added.

(Base):

LayoutTests:

Added a preformance regression test that checks the speed of Symbol.toStringTag.
The change to cross-origin-replace-history-object-child-expected.txt is a
result of the toString value being cached.

  • http/tests/history/cross-origin-replace-history-object-child-expected.txt:
  • js/regress/script-tests/symbol-tostringtag.js: Added.

(buildChain):
(body):

  • js/regress/symbol-tostringtag-expected.txt: Added.
  • js/regress/symbol-tostringtag.html: Added.
12:35 PM Changeset in webkit [192320] by fpizlo@apple.com
  • 19 edits in trunk/Source

B3 should be able to compile and canonicalize Mul
https://bugs.webkit.org/show_bug.cgi?id=151124

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

This was a strange trip. I wanted to do a quick patch to implement Mul. But then I realized
that our tradition when adding new lowerings was to also add the corresponding strength
reductions. So then I wrote the Mul->Shl strength reduction. But that reminded me that I needed
to canonicalize between Add(x, x) and Shl(x, 1). I decided that it would probably be better to
use Shl(x, 1), since that only has one use of x. But that means that we should compile
Shl(x, 1) to Add x, x in the backend, since that's what X86 wants. While doing that, I almost
introduced a bug where Shl(Load(x), 1) would cause the compiler to either crash or generate bad
code. That's because I was using Add(x, x) to handle Shl(x, 1), so we'd end up with
Add(Load(x), Load(x)) - i.e. we would try to duplicate the Load.

The instruction selector already defends against this, and the only reason why I would have
created the bug was by using the Add helper when compiling a Shl. Still, this was so close to
a bad bug that I added a ton of new tests that cover the Op(x, x) where x = Load case.

  • b3/B3Compilation.cpp:

(JSC::B3::Compilation::Compilation):

  • b3/B3Compilation.h:

(JSC::B3::Compilation::code):

  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::subConstant):
(JSC::B3::Const32Value::mulConstant):
(JSC::B3::Const32Value::bitAndConstant):

  • b3/B3Const32Value.h:
  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::subConstant):
(JSC::B3::Const64Value::mulConstant):
(JSC::B3::Const64Value::bitAndConstant):

  • b3/B3Const64Value.h:
  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::subConstant):
(JSC::B3::ConstDoubleValue::mulConstant):
(JSC::B3::ConstDoubleValue::equalConstant):

  • b3/B3ConstDoubleValue.h:
  • b3/B3Generate.cpp:

(JSC::B3::generate):
(JSC::B3::generateToAir):

  • b3/B3Generate.h:
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::appendBinOp):
(JSC::B3::Air::LowerToAir::createGenericCompare):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::subConstant):
(JSC::B3::Value::mulConstant):
(JSC::B3::Value::bitAndConstant):

  • b3/B3Value.h:
  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::testReturnConst64):
(JSC::B3::testAddArg):
(JSC::B3::testAddArgs):
(JSC::B3::testAddArgs32):
(JSC::B3::testAddLoadTwice):
(JSC::B3::testMulArg):
(JSC::B3::testMulArgs):
(JSC::B3::testMulArgImm):
(JSC::B3::testMulImmArg):
(JSC::B3::testMulArgs32):
(JSC::B3::testMulLoadTwice):
(JSC::B3::testSubArg):
(JSC::B3::testSubArgs):
(JSC::B3::testShlArgImm):
(JSC::B3::testShlArg32):
(JSC::B3::testShlArgs32):
(JSC::B3::testSShrArgImm):
(JSC::B3::testSShrArg32):
(JSC::B3::testSShrArgs32):
(JSC::B3::testZShrArgImm):
(JSC::B3::testZShrArg32):
(JSC::B3::testZShrArgs32):
(JSC::B3::genericTestCompare):
(JSC::B3::testCompareLoad):
(JSC::B3::testCompareImpl):
(JSC::B3::run):

Source/WTF:

  • wtf/MathExtras.h:

(WTF::fastLog2):

11:50 AM Changeset in webkit [192319] by andersca@apple.com
  • 7 edits in trunk

_WKRemoteObjectInterface should handle specifying allowed classes for reply block arguments
https://bugs.webkit.org/show_bug.cgi?id=151144

Reviewed by Tim Horton.

Source/WebKit2:

  • Shared/API/Cocoa/_WKRemoteObjectInterface.h:
  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(classesForSelectorArgument):
(-[_WKRemoteObjectInterface classesForSelector:argumentIndex:ofReply:]):
(-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:ofReply:]):
(-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]):
(-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]):

Tools:

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.h:

(remoteObjectInterface):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[RemoteObjectRegistryPlugIn selectionAndClickInformationForClickAtPoint:completionHandler:]):

11:25 AM Changeset in webkit [192318] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Update ES6 Generators' status to "In Development"
https://bugs.webkit.org/show_bug.cgi?id=151142

Reviewed by Saam Barati.

Currently, features.json raises some linting errors.
This should be cleaned up in another patch.

  • features.json:
11:02 AM Changeset in webkit [192317] by jhoneycutt@apple.com
  • 3 edits in trunk/LayoutTests

Fix a typo.

Rubber-stamped by Dan Bernstein.

  • fast/parser/strip-script-attrs-on-input-expected.txt:
  • fast/parser/strip-script-attrs-on-input.html:
10:57 AM DisplayLists edited by Simon Fraser
(diff)
10:56 AM DisplayLists edited by Simon Fraser
(diff)
10:52 AM DisplayLists edited by Simon Fraser
(diff)
10:51 AM DisplayLists created by Simon Fraser
10:50 AM November 2015 Meeting edited by Simon Fraser
(diff)
10:48 AM Changeset in webkit [192316] by jhoneycutt@apple.com
  • 3 edits
    2 adds in trunk

Crash loading Blink layout test fast/parser/strip-script-attrs-on-input.html
https://bugs.webkit.org/show_bug.cgi?id=150201
<rdar://problem/23136478>

Reviewed by Brent Fulgham.

Source/WebCore:

Test: fast/parser/strip-script-attrs-on-input.html

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processStartTagForInBody):
Get the attribute after calling
HTMLConstructionSite::insertSelfClosingHTMLElement(), as this may
mutate the token's attributes.

LayoutTests:

  • fast/parser/strip-script-attrs-on-input-expected.txt: Added.
  • fast/parser/strip-script-attrs-on-input.html: Added.
10:31 AM November 2015 Meeting edited by Joseph Pecoraro
(diff)
10:31 AM November 2015 Meeting edited by Joseph Pecoraro
Add schedule link (diff)
10:28 AM November 2015 Meeting edited by Simon Fraser
(diff)
10:25 AM NextStepsForColor edited by Simon Fraser
(diff)
10:20 AM Changeset in webkit [192315] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit/win

Use Win32 functions to get context menu item info
https://bugs.webkit.org/show_bug.cgi?id=151123

Reviewed by Tim Horton.

  • WebView.cpp:

(WebView::handleContextMenuEvent):
Destroy the menu if it already exists. Before creating the menu, make sure to set its style
to MNS_NOTIFYBYPOS, so we'll be able to know which item was selected (instead of just the action ID).

(WebView::onMenuCommand):
Get the selected menu item's ID and title. Create a fake ContextMenuItem and pass it back to WebCore. In the future,
we'll be able to pass just the action and title.

(WebView::WebViewWndProc):
There's no need to listen for WM_COMMAND. Just always listen for WM_MENUCOMMAND. Rename performContextMenuAction to onMenuCommand.

  • WebView.h:

Add new member.

10:19 AM NextStepsForColor edited by Simon Fraser
(diff)
10:17 AM NextStepsForColor edited by Simon Fraser
(diff)
10:16 AM NextStepsForColor created by Simon Fraser
10:15 AM Changeset in webkit [192314] by Wenson Hsieh
  • 11 edits in trunk

UI-side scripts in WebKitTestRunner should wait until event handling completes before finishing
https://bugs.webkit.org/show_bug.cgi?id=151101
<rdar://problem/23428601>

Reviewed by Simon Fraser.

Tools:

WebKitTestRunner may still crash in the scenario where a marker event is dequeued and handled
after uiScriptComplete has been called. This patch teaches the UI script execution context to
defer script completion until all non-persistent tasks (currently tap, double tap and hardware
keyboard) have been handled, so marker events will no longer bleed through tests.

We accomplish this by changing the behavior of uiScriptComplete. When calling uiScriptComplete,
we store that a request to complete the UI-side script for the current parent callback has been
made. Subsequently, when a callback (either persistent or non-persistent) finishes invoking and
a request has been made to complete the UI script (this request may have been made when running
a previous callback) we check if all the non-persistent callbacks that have the same parent
callback as the current one have finished. If so, we complete the callback immediately;
otherwise, we wait until the in-flight non-persistent callbacks finish execution to complete the
UI script.

This patch also refactors some logic in UIScriptContext. It introduces a new convention for
assigning IDs to callbacks: IDs 1000 and above are treated as non-persistent callbacks, whereas
IDs between 0 and 999 are persistent task callbacks. This is similar to the existing convention
for assigning IDs in the 100s range to parent callbacks, and allows us to easily differentiate
between callbacks that are persistent and non-persistent, as well as determine when an existing
persistent callback must be unregistered before a new callback function can be set.

  • WebKitTestRunner/UIScriptContext/UIScriptContext.cpp:

(isPersistentCallbackID):
(UIScriptContext::runUIScript):
(UIScriptContext::nextTaskCallbackID):
(UIScriptContext::prepareForAsyncTask):
(UIScriptContext::asyncTaskComplete):
(UIScriptContext::registerCallback):
(UIScriptContext::fireCallback):
(UIScriptContext::requestUIScriptCompletion):
(UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback):
(UIScriptContext::currentParentCallbackHasOutstandingAsyncTasks):
(UIScriptContext::uiScriptComplete): Deleted.

  • WebKitTestRunner/UIScriptContext/UIScriptContext.h:

(WTR::UIScriptContext::currentParentCallbackIsPendingCompletion):

  • WebKitTestRunner/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setWillBeginZoomingCallback):
(WTR::UIScriptController::willBeginZoomingCallback):
(WTR::UIScriptController::setDidEndZoomingCallback):
(WTR::UIScriptController::didEndZoomingCallback):
(WTR::UIScriptController::setDidShowKeyboardCallback):
(WTR::UIScriptController::didShowKeyboardCallback):
(WTR::UIScriptController::setDidHideKeyboardCallback):
(WTR::UIScriptController::didHideKeyboardCallback):
(WTR::UIScriptController::uiScriptComplete):

  • WebKitTestRunner/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::doAsyncTask):
(WTR::UIScriptController::zoomToScale):
(WTR::UIScriptController::singleTapAtPoint):
(WTR::UIScriptController::doubleTapAtPoint):
(WTR::UIScriptController::typeCharacterUsingHardwareKeyboard):
(WTR::UIScriptController::platformSetWillBeginZoomingCallback):
(WTR::UIScriptController::platformSetDidEndZoomingCallback):
(WTR::UIScriptController::platformSetDidShowKeyboardCallback):
(WTR::UIScriptController::platformSetDidHideKeyboardCallback):
(WTR::UIScriptController::platformClearAllCallbacks): Deleted.

  • WebKitTestRunner/mac/UIScriptControllerMac.mm:

(WTR::UIScriptController::doAsyncTask):

LayoutTests:

Ensures that all tests using UIScriptController properly complete the UI script from within
a completion callback.

  • fast/events/ios/clicking-document-should-not-trigger-focus.html:
  • fast/events/ios/input-value-after-oninput.html:
  • fast/events/ios/single-tap-generates-click.html:
10:12 AM Changeset in webkit [192313] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKit2

Add some font-related preferences to the modern API
https://bugs.webkit.org/show_bug.cgi?id=151138
<rdar://problem/23492636>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _defaultFontSize]):
(-[WKPreferences _setDefaultFontSize:]):
(-[WKPreferences _defaultFixedPitchFontSize]):
(-[WKPreferences _setDefaultFixedPitchFontSize:]):
(-[WKPreferences _fixedPitchFontFamily]):
(-[WKPreferences _setFixedPitchFontFamily:]):

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:
10:03 AM Changeset in webkit [192312] by commit-queue@webkit.org
  • 2 edits in trunk

[GTK][Mac] don't install .frameworks
https://bugs.webkit.org/show_bug.cgi?id=151136

Patch by Philippe Normand <pnormand@igalia.com> on 2015-11-11
Reviewed by Alex Christensen.

  • Source/cmake/WebKitMacros.cmake: Don't install framework files when building the GTK port on Mac.
8:36 AM Changeset in webkit [192311] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Runtime critical warnings when closing a page containing windowed plugins
https://bugs.webkit.org/show_bug.cgi?id=151132

Reviewed by Martin Robinson.

This is because our plugin widget, that is a GtkPlug (derived from
GtkWindow), can receive the delete-event signal before
NetscapePlugin::platformDestroy is called. The delete-event
signal, by default, destroys the window when the signal is not
handled. So, after the delete-event the GtkPlug is destroyed, but
our pointer hasn't been reset. We can handle the delete-event
using gtk_widget_hide_on_delete as callback, so that the plugin
widget is hidden instead of destroyed.

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

(WebKit::NetscapePlugin::platformPostInitializeWindowed):

8:19 AM Changeset in webkit [192310] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r191856): [GTK] SOCK_SEQPACKET no longer used after r191856
https://bugs.webkit.org/show_bug.cgi?id=151129

Reviewed by Martin Robinson.

r191856 unconditionally disabled SOCK_SEQPACKET for GTK port.

  • Platform/IPC/unix/ConnectionUnix.cpp: Use always SOCK_SEQPACKET

when available.

5:25 AM Changeset in webkit [192309] by calvaris@igalia.com
  • 2 edits in trunk/Source/WebCore

[Streams API] Remove bind usage
https://bugs.webkit.org/show_bug.cgi?id=151104

Reviewed by Youenn Fablet.

Instead of using bind, an inline error function was created.

Internal rework, no tests needed.

  • Modules/streams/WritableStream.js:

(error):
(initializeWritableStream):

2:17 AM Changeset in webkit [192308] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.10.4

WebKitGTK+ 2.10.4

2:16 AM Changeset in webkit [192307] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.10.4 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit2:

  • gtk/NEWS: Add release notes for 2.10.4
2:16 AM Changeset in webkit [192306] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Unreviewed. Fix the build after Merge r192169.

  • rendering/RenderCombineText.cpp:
1:40 AM WebKitGTK/2.10.x edited by Carlos Garcia Campos
(diff)
1:16 AM Changeset in webkit [192305] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10

Merge r192175 - XHR timeouts should not fire if there is an immediate network error.
https://bugs.webkit.org/show_bug.cgi?id=150577

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-09
Reviewed by Darin Adler.

Source/WebCore:

This fixes flakiness of http/tests/contentextensions/async-xhr-onerror.html since r191077.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::internalAbort):
(WebCore::XMLHttpRequest::didFinishLoading):
If the timeout timer has been started and we are going to immediately report a network error, then stop the timeout timer.
The timeout timer sometimes fired before the network error timer if it was a very short timeout (such as 1ms).
Also checks to isActive before calling stop on a timer are not necessary.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

http/tests/contentextensions/async-xhr-onerror.html shouldn't be flaky any more.

1:11 AM Changeset in webkit [192304] by Carlos Garcia Campos
  • 4 edits
    3 adds in releases/WebKitGTK/webkit-2.10

Merge r191077 - [Content Extensions] Make blocked async XHR call onerror
https://bugs.webkit.org/show_bug.cgi?id=146706

Patch by Alex Christensen <achristensen@webkit.org> on 2015-10-14
Reviewed by Brady Eidson.

Source/WebCore:

Test: http/tests/contentextensions/async-xhr-onerror.html

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::networkError):
(WebCore::XMLHttpRequest::networkErrorTimerFired):
(WebCore::XMLHttpRequest::abortError):

  • xml/XMLHttpRequest.h:

Make a timer that calls networkError in 0 time if a content blocker blocks the asynchronous load.
It is necessary to call setPendingActivity and dropProtection (which calls unsetPendingActivity)
to keep a reference to the XMLHttpRequest alive.

LayoutTests:

  • http/tests/contentextensions/async-xhr-onerror-expected.txt: Added.
  • http/tests/contentextensions/async-xhr-onerror.html: Added.
  • http/tests/contentextensions/async-xhr-onerror.html.json: Added.
1:04 AM Changeset in webkit [192303] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r189557 - ASSERTION FAILED: typesettingFeatures & (Kerning | Ligatures) in WebCore::applyFontTransforms
https://bugs.webkit.org/show_bug.cgi?id=146194

Reviewed by Dean Jackson.

Source/WebCore:

We might trigger shaping even if the author hasn't specified kerning or ligatures.

Test: fast/text/softbank-emoji-no-ligatures-nor-kerning.html

  • platform/graphics/WidthIterator.cpp:

(WebCore::isSoftBankEmoji):
(WebCore::WidthIterator::applyFontTransforms):
(WebCore::WidthIterator::advanceInternal):
(WebCore::applyFontTransforms): Deleted.

  • platform/graphics/WidthIterator.h:

LayoutTests:

  • fast/text/softbank-emoji-no-ligatures-nor-kerning-expected.html: Added
  • fast/text/softbank-emoji-no-ligatures-nor-kerning.html: Added
12:56 AM Changeset in webkit [192302] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r192248 - [UNIX] Environment variable should take precedence over directories in plugin search path
https://bugs.webkit.org/show_bug.cgi?id=151096

Reviewed by Martin Robinson.

Otherwise you can't override the directories using the env vars
for plugins already installed.

  • Shared/Plugins/unix/PluginSearchPath.cpp:

(WebKit::pluginsDirectories):

12:54 AM Changeset in webkit [192301] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192191 - Crash when right clicking in input box with -webkit-user-select: none
https://bugs.webkit.org/show_bug.cgi?id=145981
<rdar://problem/22441925>

Reviewed by Enrica Casucci.

Source/WebCore:

Test: editing/selection/minimal-user-select-crash.html

  • editing/Editor.cpp:

(WebCore::Editor::hasBidiSelection):
Visible position cannot be created because of the style that doesn't allow the selection.

LayoutTests:

  • editing/selection/minimal-user-select-crash-expected.txt: Added.
  • editing/selection/minimal-user-select-crash.html: Added.
12:52 AM Changeset in webkit [192300] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192170 - Null dereference loading Blink layout test editing/inserting/insert-html-crash-01.html
https://bugs.webkit.org/show_bug.cgi?id=149298
<rdar://problem/22746918>

Reviewed by Ryosuke Niwa.

Source/WebCore:

The test crashes in the method WebCore::CompositeEditCommand::moveParagraphs() because
the other method WebCore::CompositeEditCommand::cleanupAfterDeletion() accidentally
deletes the destination node. In WebCore::CompositeEditCommand::cleanupAfterDeletion(),
it fails to determine that caretAfterDelete equals to destination as Position::operator==,
which is called in VisiblePosition::operator==, only checks the equality of tuple
<Anchor Node, Anchor Type, Offset>. It is insufficient as a single position can be
represented by multiple tuples. Therefore, this change adds Position::equals() to fortify
the equal checking of two positions by considering combinations of different tuple
representations.

Furthermore, it adds VisiblePosition::equals() which considers affinity and call
Position::equals() while comparing two visible positions.

Test: editing/inserting/insert-html-crash-01.html

  • dom/Position.cpp:

(WebCore::Position::equals):

  • dom/Position.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cleanupAfterDeletion):
Replace operator== with VisiblePosition::equals() to tackle the test case.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::equals):

  • editing/VisiblePosition.h:

LayoutTests:

This test case is from Blink r153982:
https://codereview.chromium.org/16053005

  • editing/inserting/insert-html-crash-01-expected.txt: Added.
  • editing/inserting/insert-html-crash-01.html: Added.
12:45 AM Changeset in webkit [192299] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192169 - Some style changes cause tatechuyoko to be drawn off center
https://bugs.webkit.org/show_bug.cgi?id=150986
<rdar://problem/20748013>

Reviewed by Darin Adler.

Source/WebCore:

Layouts should be idempotent. In particular, during layout, an element should not
rely on a previous call to styleDidChange() with a sufficiently high StyleDifference.
RenderCombineText was assuming that, if a layout occurs, a previous call to
styleDidChange() would have reset the renderedText. However, an ancestor element might
cause the RenderCombineText to re-combine when it is already combined. Therefore, the
recombination should fully uncombine before recombining.

Test: fast/text/text-combine-style-change-extra-layout.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText): Fully uncombine before recombining.

LayoutTests:

  • fast/text/text-combine-style-change-extra-layout-expected.html: Added.
  • fast/text/text-combine-style-change-extra-layout.html: Added.
12:39 AM Changeset in webkit [192298] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192133 - Crash when subtree layout is set on FrameView while auto size mode is enabled.
https://bugs.webkit.org/show_bug.cgi?id=150995
rdar://problem/22785262

Reviewed by Beth Dakin.

Autosizing initiates multiple synchronous layouts to calculate preferred view width for current content.
FrameView::autoSizeIfEnabled() is called from FrameView::layout() while we are in InPreLayout state.
It is safe to do during full layout.
However, since we setup the subtree state just before the autoSizeIfEnabled() call, reentering it with
a newly issued layout confuses SubtreeLayoutStateMaintainer.

This patch reverses the order of autoSizeIfEnabled() call and the subtree layout state setup.
It also ensures that the first layout requested by autoSizeIfEnabled() always runs on the whole tree.

Source/WebCore:

Test: fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html

  • page/FrameView.cpp:

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

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::enableAutoSizeMode):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/dynamic/crash-subtree-layout-when-auto-size-enabled-expected.txt: Added.
  • fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html: Added.
12:26 AM Changeset in webkit [192297] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r192130 - Node.h:392:12: warning: 'this' pointer cannot be null in well-defined C++ code
https://bugs.webkit.org/show_bug.cgi?id=150996

Reviewed by Andreas Kling.

Remove ASSERT(this) statement that is triggering hundreds of warnings from Clang.

  • dom/Node.h:

(WebCore::Node::document):

12:10 AM Changeset in webkit [192296] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192120 - REGRESSION(r182286): Tatechuyoko following ruby is drawn too far to the right
https://bugs.webkit.org/show_bug.cgi?id=150923

Reviewed by Zalan Bujtas.

Source/WebCore:

Ever since r182286, expansion opportunities in justified ruby were moved to their neighboring
elements (thereby forbidding trailing nor leading expansions inside ruby). However, when the
neighboring element is tatechuyoko, we will erroneously honor the expansion opportunity inside
the tatechuyoko, thereby moving it horizontally.

Tatechuyoko should never have expansion opportunities inside it.

Test: fast/text/ruby-justify-tatechuyoko.html

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::expansionBehaviorForInlineTextBox):

LayoutTests:

  • fast/text/ruby-justify-tatechuyoko-expected.html: Added.
  • fast/text/ruby-justify-tatechuyoko.html: Added.

Nov 10, 2015:

11:21 PM Changeset in webkit [192295] by fpizlo@apple.com
  • 43 edits
    1 copy
    3 adds in trunk/Source

B3 should be able to compile a program with ChillDiv
https://bugs.webkit.org/show_bug.cgi?id=151114

Reviewed by Benjamin Poulain.

Source/JavaScriptCore:

This change is about a lot more than ChillDiv. I picked that as the next thing to lower
because I knew that it would force me to come up with a sensible idiom for doing
stepwise lowerings that require breaking basic blocks. The idea is that you want to
write a loop that iterates forward over the program, which turns some operations that
currently are just single Values into an entire little sub-CFGs. That requires splitting
the block that contained the original Value. That's tricky if you then want to keep
iterating: the index of the Value you were last looking at has now changed and your
InsertionSets are now invalid.

This introduces an idiom that handles this. It's BlockInsertionSet::splitBefore(). The
idea is that it uses the current block before the split as the continuation after the
split. When you call splitBefore(), you pass it your loop index and your InsertionSet
(if applicable). It makes sure that it changes those auxiliary things in such a way that
you can keep looping.

This uncovered some bugs, since this is the first time that we're compiling cross edges.

Because ChillDiv is really a division, I also had to write a bunch of code to support
the ordinary B3 Div. While doing that, I realized that there was asymmetry to that
constness of the Value constant folding methods, so I fixed that as well.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::mul32):
(JSC::MacroAssemblerX86Common::x86ConvertToDoubleWord32):
(JSC::MacroAssemblerX86Common::x86Div32):
(JSC::MacroAssemblerX86Common::neg32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::mul64):
(JSC::MacroAssemblerX86_64::x86ConvertToQuadWord64):
(JSC::MacroAssemblerX86_64::x86Div64):
(JSC::MacroAssemblerX86_64::neg64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::idivl_r):
(JSC::X86Assembler::idivq_r):
(JSC::X86Assembler::cmpl_rr):
(JSC::X86Assembler::cdq):
(JSC::X86Assembler::cdqq):
(JSC::X86Assembler::fstps):

  • b3/B3BasicBlock.cpp:

(JSC::B3::BasicBlock::append):
(JSC::B3::BasicBlock::replaceLast):
(JSC::B3::BasicBlock::appendIntConstant):
(JSC::B3::BasicBlock::replaceSuccessor):
(JSC::B3::BasicBlock::addPredecessor):
(JSC::B3::BasicBlock::replacePredecessor):
(JSC::B3::BasicBlock::updatePredecessors):
(JSC::B3::BasicBlock::dump):

  • b3/B3BasicBlock.h:

(JSC::B3::BasicBlock::values):
(JSC::B3::BasicBlock::numPredecessors):
(JSC::B3::BasicBlock::predecessor):
(JSC::B3::BasicBlock::frequency):

  • b3/B3BasicBlockInlines.h:

(JSC::B3::BasicBlock::appendNew):
(JSC::B3::BasicBlock::replaceLastWithNew):
(JSC::B3::BasicBlock::numSuccessors):

  • b3/B3BasicBlockUtils.h:

(JSC::B3::replacePredecessor):
(JSC::B3::updatePredecessors):
(JSC::B3::resetReachability):

  • b3/B3BlockInsertionSet.cpp: Added.

(JSC::B3::BlockInsertionSet::BlockInsertionSet):
(JSC::B3::BlockInsertionSet::~BlockInsertionSet):
(JSC::B3::BlockInsertionSet::insert):
(JSC::B3::BlockInsertionSet::insertBefore):
(JSC::B3::BlockInsertionSet::splitForward):
(JSC::B3::BlockInsertionSet::execute):

  • b3/B3BlockInsertionSet.h: Added.
  • b3/B3Common.h:

(JSC::B3::isRepresentableAs):
(JSC::B3::chillDiv):

  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::addConstant):
(JSC::B3::Const32Value::subConstant):
(JSC::B3::Const32Value::divConstant):
(JSC::B3::Const32Value::bitAndConstant):
(JSC::B3::Const32Value::bitOrConstant):
(JSC::B3::Const32Value::bitXorConstant):
(JSC::B3::Const32Value::shlConstant):
(JSC::B3::Const32Value::sShrConstant):
(JSC::B3::Const32Value::zShrConstant):
(JSC::B3::Const32Value::equalConstant):
(JSC::B3::Const32Value::notEqualConstant):
(JSC::B3::Const32Value::lessThanConstant):
(JSC::B3::Const32Value::greaterThanConstant):
(JSC::B3::Const32Value::lessEqualConstant):
(JSC::B3::Const32Value::greaterEqualConstant):
(JSC::B3::Const32Value::aboveConstant):
(JSC::B3::Const32Value::belowConstant):
(JSC::B3::Const32Value::aboveEqualConstant):
(JSC::B3::Const32Value::belowEqualConstant):

  • b3/B3Const32Value.h:
  • b3/B3Const64Value.cpp:

(JSC::B3::Const64Value::addConstant):
(JSC::B3::Const64Value::subConstant):
(JSC::B3::Const64Value::divConstant):
(JSC::B3::Const64Value::bitAndConstant):
(JSC::B3::Const64Value::bitOrConstant):
(JSC::B3::Const64Value::bitXorConstant):
(JSC::B3::Const64Value::shlConstant):
(JSC::B3::Const64Value::sShrConstant):
(JSC::B3::Const64Value::zShrConstant):
(JSC::B3::Const64Value::equalConstant):
(JSC::B3::Const64Value::notEqualConstant):
(JSC::B3::Const64Value::lessThanConstant):
(JSC::B3::Const64Value::greaterThanConstant):
(JSC::B3::Const64Value::lessEqualConstant):
(JSC::B3::Const64Value::greaterEqualConstant):
(JSC::B3::Const64Value::aboveConstant):
(JSC::B3::Const64Value::belowConstant):
(JSC::B3::Const64Value::aboveEqualConstant):
(JSC::B3::Const64Value::belowEqualConstant):

  • b3/B3Const64Value.h:
  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::addConstant):
(JSC::B3::ConstDoubleValue::subConstant):
(JSC::B3::ConstDoubleValue::divConstant):
(JSC::B3::ConstDoubleValue::equalConstant):
(JSC::B3::ConstDoubleValue::notEqualConstant):
(JSC::B3::ConstDoubleValue::lessThanConstant):
(JSC::B3::ConstDoubleValue::greaterThanConstant):
(JSC::B3::ConstDoubleValue::lessEqualConstant):
(JSC::B3::ConstDoubleValue::greaterEqualConstant):

  • b3/B3ConstDoubleValue.h:
  • b3/B3ControlValue.cpp:

(JSC::B3::ControlValue::~ControlValue):
(JSC::B3::ControlValue::replaceSuccessor):
(JSC::B3::ControlValue::convertToJump):

  • b3/B3ControlValue.h:
  • b3/B3Generate.cpp:

(JSC::B3::generateToAir):

  • b3/B3GenericFrequentedBlock.h:

(JSC::B3::GenericFrequentedBlock::block):
(JSC::B3::GenericFrequentedBlock::frequency):
(JSC::B3::GenericFrequentedBlock::dump):

  • b3/B3InsertionSet.cpp:

(JSC::B3::InsertionSet::insertIntConstant):
(JSC::B3::InsertionSet::execute):

  • b3/B3InsertionSet.h:
  • b3/B3LowerMacros.cpp: Added.

(JSC::B3::lowerMacros):

  • b3/B3LowerMacros.h: Added.
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.h:
  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::addBlock):
(JSC::B3::Procedure::addIntConstant):
(JSC::B3::Procedure::addBoolConstant):
(JSC::B3::Procedure::resetValueOwners):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::takeByproducts):

  • b3/B3ReduceStrength.cpp:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::addConstant):
(JSC::B3::Value::subConstant):
(JSC::B3::Value::divConstant):
(JSC::B3::Value::bitAndConstant):
(JSC::B3::Value::bitOrConstant):
(JSC::B3::Value::bitXorConstant):
(JSC::B3::Value::shlConstant):
(JSC::B3::Value::sShrConstant):
(JSC::B3::Value::zShrConstant):
(JSC::B3::Value::equalConstant):
(JSC::B3::Value::notEqualConstant):
(JSC::B3::Value::lessThanConstant):
(JSC::B3::Value::greaterThanConstant):
(JSC::B3::Value::lessEqualConstant):
(JSC::B3::Value::greaterEqualConstant):
(JSC::B3::Value::aboveConstant):
(JSC::B3::Value::belowConstant):
(JSC::B3::Value::aboveEqualConstant):
(JSC::B3::Value::belowEqualConstant):

  • b3/B3Value.h:
  • b3/air/AirGenerate.cpp:

(JSC::B3::Air::generate):

  • b3/air/AirInstInlines.h:

(JSC::B3::Air::isUrshift64Valid):
(JSC::B3::Air::isX86DivHelperValid):
(JSC::B3::Air::isX86ConvertToDoubleWord32Valid):
(JSC::B3::Air::isX86ConvertToDoubleWord64Valid):
(JSC::B3::Air::isX86Div32Valid):
(JSC::B3::Air::isX86Div64Valid):

  • b3/air/AirOpcode.opcodes:
  • b3/air/AirSimplifyCFG.cpp:

(JSC::B3::Air::simplifyCFG):

  • b3/testb3.cpp:

(JSC::B3::testCallFunctionWithHellaDoubleArguments):
(JSC::B3::testChillDiv):
(JSC::B3::testChillDivTwice):
(JSC::B3::testChillDiv64):
(JSC::B3::run):

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

(JSC::DFG::SpeculativeJIT::compileArithDiv):
(JSC::DFG::SpeculativeJIT::compileArithMod):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_mod):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_mod):

  • wasm/WASMFunctionCompiler.h:

(JSC::WASMFunctionCompiler::buildBinaryI32):

Source/WTF:

Needed to beef up some compiler algorithms. All of the hardening was about making them
work with objects that have move semantics but not copy semantics. This arises in B3
basic block insertion sets.

  • wtf/BubbleSort.h:

(WTF::bubbleSort):

  • wtf/Insertion.h:

(WTF::Insertion::Insertion):
(WTF::Insertion::index):
(WTF::Insertion::element):
(WTF::Insertion::operator<):
(WTF::executeInsertions):

10:07 PM Changeset in webkit [192294] by beidson@apple.com
  • 18 edits
    4 copies
    8 adds in trunk

Modern IDB: Make indexes actually index.
https://bugs.webkit.org/show_bug.cgi?id=150939

Reviewed by Alex Christensen.

Source/WebCore:

Tests: storage/indexeddb/modern/index-1.html

storage/indexeddb/modern/index-2.html
storage/indexeddb/modern/index-3.html

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • Modules/indexeddb/IDBKeyData.h:

(WebCore::IDBKeyData::hash): Deleted.

  • Modules/indexeddb/IDBKeyRangeData.cpp:

(WebCore::IDBKeyRangeData::isExactlyOneKey):

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):

  • Modules/indexeddb/server/IndexValueEntry.cpp: Copied from Source/WebCore/Modules/indexeddb/server/MemoryIndex.cpp.

(WebCore::IDBServer::IndexValueEntry::IndexValueEntry):
(WebCore::IDBServer::IndexValueEntry::~IndexValueEntry):
(WebCore::IDBServer::IndexValueEntry::addKey):
(WebCore::IDBServer::IndexValueEntry::removeKey):
(WebCore::IDBServer::IndexValueEntry::getLowest):
(WebCore::IDBServer::IndexValueEntry::getCount):

  • Modules/indexeddb/server/IndexValueEntry.h: Copied from Source/WebCore/Modules/indexeddb/server/MemoryIndex.h.
  • Modules/indexeddb/server/IndexValueStore.cpp: Added.

(WebCore::IDBServer::IndexValueStore::IndexValueStore):
(WebCore::IDBServer::IndexValueStore::lowestValueForKey):
(WebCore::IDBServer::IndexValueStore::countForKey):
(WebCore::IDBServer::IndexValueStore::contains):
(WebCore::IDBServer::IndexValueStore::addRecord):
(WebCore::IDBServer::IndexValueStore::removeRecord):
(WebCore::IDBServer::IndexValueStore::removeEntriesWithValueKey):
(WebCore::IDBServer::IndexValueStore::lowestKeyWithRecordInRange):

  • Modules/indexeddb/server/IndexValueStore.h: Copied from Source/WebCore/Modules/indexeddb/server/MemoryIndex.h.
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::objectStoreCleared):
(WebCore::IDBServer::MemoryBackingStoreTransaction::indexCleared):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):

  • Modules/indexeddb/server/MemoryIndex.cpp:

(WebCore::IDBServer::MemoryIndex::create):
(WebCore::IDBServer::MemoryIndex::MemoryIndex):
(WebCore::IDBServer::MemoryIndex::objectStoreCleared):
(WebCore::IDBServer::MemoryIndex::replaceIndexValueStore):
(WebCore::IDBServer::MemoryIndex::getResultForKeyRange):
(WebCore::IDBServer::MemoryIndex::countForKeyRange):
(WebCore::IDBServer::MemoryIndex::putIndexKey):
(WebCore::IDBServer::MemoryIndex::removeRecord):
(WebCore::IDBServer::MemoryIndex::removeEntriesWithValueKey):
(WebCore::IDBServer::MemoryIndex::valueForKeyRange): Deleted.

  • Modules/indexeddb/server/MemoryIndex.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::createIndex):
(WebCore::IDBServer::MemoryObjectStore::clear):
(WebCore::IDBServer::MemoryObjectStore::deleteRecord):
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::indexVM):
(WebCore::IDBServer::indexGlobalExec):
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForDeleteRecord):
(WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord):
(WebCore::IDBServer::MemoryObjectStore::indexValueForKeyRange):

  • Modules/indexeddb/server/MemoryObjectStore.h:

(WebCore::IDBServer::MemoryObjectStore::writeTransaction):

  • Modules/indexeddb/shared/IndexKey.cpp: Copied from Source/WebCore/Modules/indexeddb/IDBKeyRangeData.cpp.

(WebCore::IndexKey::IndexKey):
(WebCore::IndexKey::isolatedCopy):
(WebCore::IndexKey::asOneKey):
(WebCore::IndexKey::multiEntry):

  • Modules/indexeddb/shared/IndexKey.h: Added.

(WebCore::IndexKey::isNull):

  • bindings/js/IDBBindingUtilities.cpp:

(WebCore::idbValueDataToJSValue):
(WebCore::deserializeIDBValueBuffer):
(WebCore::idbKeyDataToScriptValue):
(WebCore::createKeyPathArray):
(WebCore::generateIndexKeyForValue):

  • bindings/js/IDBBindingUtilities.h:

LayoutTests:

  • storage/indexeddb/modern/index-1-expected.txt: Added.
  • storage/indexeddb/modern/index-1.html: Added.
  • storage/indexeddb/modern/index-2-expected.txt: Added.
  • storage/indexeddb/modern/index-2.html: Added.
  • storage/indexeddb/modern/index-3-expected.txt: Added.
  • storage/indexeddb/modern/index-3.html: Added.
  • storage/indexeddb/modern/index-get-count-basic-expected.txt:
  • storage/indexeddb/modern/index-get-count-basic.html:
9:19 PM Changeset in webkit [192293] by dbates@webkit.org
  • 2 edits in trunk/Tools

Teach Makefile to build LayoutTestRelay when building for iOS Simulator
https://bugs.webkit.org/show_bug.cgi?id=150849

Reviewed by Alexey Proskuryakov.

Unless variable DO_NOT_BUILD_LAYOUT_TEST_RELAY is non-empty, build LayoutTestRelay when
building WebKit tools.

  • Makefile:
9:10 PM Changeset in webkit [192292] by benjamin@webkit.org
  • 6 edits
    2 adds in trunk/Source/JavaScriptCore

Air should allocate registers
https://bugs.webkit.org/show_bug.cgi?id=150457

Patch by Benjamin Poulain <bpoulain@apple.com> on 2015-11-10
Reviewed by Filip Pizlo.

This is a direct implementation of the Iterated Register Coalescing allocator.

(JSC::B3::Air::generate):

  • b3/air/AirInstInlines.h:
  • b3/air/AirIteratedRegisterCoalescing.cpp: Added.

(JSC::B3::Air::MoveInstHelper<Arg::GP>::mayBeCoalescable):
(JSC::B3::Air::MoveInstHelper<Arg::FP>::mayBeCoalescable):
(JSC::B3::Air::AbsoluteTmpHelper<Arg::GP>::absoluteIndex):
(JSC::B3::Air::AbsoluteTmpHelper<Arg::GP>::tmpFromAbsoluteIndex):
(JSC::B3::Air::AbsoluteTmpHelper<Arg::FP>::absoluteIndex):
(JSC::B3::Air::AbsoluteTmpHelper<Arg::FP>::tmpFromAbsoluteIndex):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::IteratedRegisterCoalescingAllocator):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::build):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocate):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::getAlias):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::spilledTmp):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::allocatedReg):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::tmpArraySize):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::initializeDegrees):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdges):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addEdge):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::makeWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::simplify):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::forEachAdjacent):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::hasBeenSimplified):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::decrementDegree):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::forEachNodeMoves):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::isMoveRelated):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::enableMovesOnValue):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::enableMovesOnValueAndAdjacents):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::coalesce):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::canBeSafelyCoalesced):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::precoloredCoalescingHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::conservativeHeuristic):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::addWorkList):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::combine):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freeze):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::freezeMoves):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::selectSpill):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::assignColors):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::dumpInterferenceGraphInDot):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::dumpWorkLists):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::InterferenceEdge):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::first):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::second):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::operator==):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::isHashTableDeletedValue):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdge::hash):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdgeHash::hash):
(JSC::B3::Air::IteratedRegisterCoalescingAllocator::InterferenceEdgeHash::equal):
(JSC::B3::Air::isUselessMoveInst):
(JSC::B3::Air::assignRegisterToTmpInProgram):
(JSC::B3::Air::addSpillAndFillToProgram):
(JSC::B3::Air::iteratedRegisterCoalescingOnType):
(JSC::B3::Air::iteratedRegisterCoalescing):

  • b3/air/AirIteratedRegisterCoalescing.h: Added.
  • b3/air/AirTmp.h:

(JSC::B3::Air::Tmp::internalValue):
(JSC::B3::Air::Tmp::tmpForInternalValue):

  • b3/testb3.cpp:

(JSC::B3::testSpillGP):
(JSC::B3::run):

8:29 PM Changeset in webkit [192291] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, add a FIXME referencing https://bugs.webkit.org/show_bug.cgi?id=151128.

  • b3/air/AirInstInlines.h:
8:21 PM Changeset in webkit [192290] by mmaxfield@apple.com
  • 11 edits in trunk/Source/WebCore

Move locale information into FontDescription
https://bugs.webkit.org/show_bug.cgi?id=147457

Reviewed by Andreas Kling.

Currently, the "lang" attribute on a node sets locale information in RenderStyle.
Font selection is sensitive to this locale information, and occurs deep within
platform/ code, far away from RenderStyle. Because every RenderStyle owns a
FontDescription, and font selection can consult with FontDescriptions, it makes
sense to move the variable from RenderStyle to FontDescription, and provide
convenience methods on RenderStyle which inspect its FontDescription for locale
information.

This patch is in preparation for correctly obeying locale information when
performing font fallback.

No new tests because there is no behavior change.

  • css/CSSPropertyNames.in:
  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueWebkitLocale):

  • platform/graphics/FontCache.h:
  • platform/graphics/FontDescription.cpp:

(WebCore::FontDescription::setLocale):

  • platform/graphics/FontDescription.h:

(WebCore::FontDescription::locale):
(WebCore::FontDescription::operator==):
(WebCore::FontCascadeDescription::initialLocale):
(WebCore::FontDescription::setScript): Deleted.

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::changeRequiresLayout): Deleted.

  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareInheritedData.cpp:

(WebCore::StyleRareInheritedData::StyleRareInheritedData): Deleted.
(WebCore::StyleRareInheritedData::operator==): Deleted.

  • rendering/style/StyleRareInheritedData.h:
  • style/StyleResolveForDocument.cpp:

(WebCore::Style::resolveForDocument):

8:01 PM Changeset in webkit [192289] by dbates@webkit.org
  • 1 edit in trunk/Tools/ChangeLog

Substitute 'OVERRIDE' for 'OVERWRITE' in the ChangeLog entry for r192106.

7:41 PM Changeset in webkit [192288] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebCore

[EFL] Support an applicationVersion argument to UserAgentEfl::standardUserAgent()
https://bugs.webkit.org/show_bug.cgi?id=151060

Reviewed by Darin Adler.

*applicationVersion* was missed to support by r192148. This patch adds it as well as
missed Darin comments are fixed.

  • platform/efl/UserAgentEfl.cpp:

(WebCore::platformVersionForUAString):
(WebCore::versionForUAString):
(WebCore::standardUserAgent):

6:29 PM Changeset in webkit [192287] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit2

Implement authentication challenge handling when using NETWORK_SESSION
https://bugs.webkit.org/show_bug.cgi?id=150968

Reviewed by Antti Koivisto.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::didReceiveChallenge):
Copy functionality from NetworkLoad::canAuthenticateAgainstProtectionSpaceAsync (which is used when we don't use NETWORK_SESSION)
because there is no canAuthenticateAgainstProtectionSpace delegate callback when using NSURLSession, according to
https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/AuthenticationChallenges.html
Instead, all authentication challenge callbacks go to URLSession:task:didReceiveChallenge:completionHandler:
because we do not implement URLSession:didReceiveChallenge:completionHandler:

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[NetworkSessionDelegate URLSession:task:willPerformHTTPRedirection:newRequest:completionHandler:]):
(-[NetworkSessionDelegate URLSession:task:didReceiveChallenge:completionHandler:]):
(-[NetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
Make a block copy of the completion handlers so we can copy the std::functions that wrap them into HashMaps and call them later,
in this case we call the completion handler after the UIProcess gives us credentials for an authentication challenge.

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::AuthenticationManager):
(WebKit::AuthenticationManager::addChallengeToChallengeMap):
(WebKit::AuthenticationManager::shouldCoalesceChallenge):
(WebKit::AuthenticationManager::coalesceChallengesMatching):
(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):
Fix an existing bug that caused multiple calls to addChallengeToChallengeMap for one challenge. This caused too many calls to
the AuthenticationClient methods, which did not cause a problem because they were not one-time-use block copies of completion handlers before.
(WebKit::AuthenticationManager::useCredentialForSingleChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge):
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge):
(WebKit::AuthenticationManager::cancelChallenge):
(WebKit::AuthenticationManager::cancelSingleChallenge):
(WebKit::AuthenticationManager::performDefaultHandling):
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):
Call completion handlers which we stored in a HashMap before doing IPC if we are using NETWORK_SESSION,
which has completion handlers instead of continueSomething client calls.

  • Shared/Authentication/AuthenticationManager.h:

(WebKit::AuthenticationManager::outstandingAuthenticationChallengeCount):

  • Shared/Downloads/Download.cpp:

(WebKit::Download::didReceiveAuthenticationChallenge):
(WebKit::Download::didReceiveResponse):

  • Shared/Downloads/DownloadAuthenticationClient.cpp:

(WebKit::DownloadAuthenticationClient::receivedChallengeRejection):

  • Shared/Downloads/DownloadAuthenticationClient.h:

Add ifdefs for code related to downloading I will implement later.

5:39 PM Changeset in webkit [192286] by mmaxfield@apple.com
  • 2 edits in trunk/LayoutTests

Updating test expected results after r192269

Unreviewed.

  • platform/mac-mavericks/fast/text/international/text-combine-image-test-expected.txt:
5:32 PM Changeset in webkit [192285] by Brent Fulgham
  • 4 edits
    3 adds in trunk

Fixed crash loading Mozilla layout test editor/libeditor/crashtests/431086-1.xhtml.
https://bugs.webkit.org/show_bug.cgi?id=150252
<rdar://problem/23149470>

Patch by Pranjal Jumde <pjumde@apple.com> on 2015-11-10
Reviewed by Brent Fulgham.

  • Source/WebCore/editing/ios/EditorIOS.mm
  • Source/WebCore/editing/mac/EditorMac.mm In Editor::fontForSelection moved the node removal code, so that the node is only removed if style is not NULL.
  • Source/WebCore/editing/cocoa/EditorCocoa.mm In Editor::styleForSelectionStart checking if the parentNode can accept the styleElement node.
  • LayoutTests/editing/execCommand/150252.xhtml
  • LayoutTests/editing/execCommand/150252_minimal.xhtml
  • LayoutTests/editing/execCommand/150252-expected.txt
  • LayoutTests/editing/execCommand/150252_minimal-expected.txt
5:32 PM November 2015 Meeting edited by Michael Catanzaro
Add topic: "mixed content blocking: loose ends" (diff)
5:31 PM Changeset in webkit [192284] by Simon Fraser
  • 6 edits in trunk/Source

Use different pixel formats for displays that support them
https://bugs.webkit.org/show_bug.cgi?id=151122
rdar://problem/22846841

Reviewed by Tim Horton.
Source/WebCore:

Add new IOSurface format enum values, and set up the appropriate IOSurfaceCreate()
property dictionaries for them.

  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::IOSurface):

  • platform/spi/cocoa/IOSurfaceSPI.h:

Source/WebKit2:

New the new IOSurface formats when appropriate for the properties of the
display.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::bufferFormat):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

5:29 PM Changeset in webkit [192283] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Enable/disable All Breakpoints not usable when "No Filter Results" displayed
https://bugs.webkit.org/show_bug.cgi?id=151062

Reviewed by Timothy Hatcher.

Position the placeholder element below the navigation bar. This was already being done
for the other navigation sidebars.

  • UserInterface/Views/DebuggerSidebarPanel.css:

(.sidebar > .panel.navigation.debugger > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.debugger > .content): Deleted.

5:14 PM November 2015 Meeting edited by Michael Catanzaro
Add topic: WebKitGTK+ security issues (diff)
5:14 PM Changeset in webkit [192282] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.3.9.1

New tag.

4:51 PM Changeset in webkit [192281] by Brent Fulgham
  • 4 edits
    2 adds in trunk

Crash running webaudio/panner-loop.html
https://bugs.webkit.org/show_bug.cgi?id=150200
<rdar://problem/23136282>

Reviewed by Jer Noble.

Source/WebCore:

Test: webaudio/panner-loop.html

This is based on the changes in Blink r164822:
https://codereview.chromium.org/130003002

Avoid infinitely recursing on audio nodes by keeping track of which nodes we've already
visited.

  • Modules/webaudio/PannerNode.cpp:

(WebCore::PannerNode::pullInputs): Pass set of visited nodes so we don't revisit
nodes we've already serviced.
(WebCore::PannerNode::notifyAudioSourcesConnectedToNode): Accept visitedNodes argument
so we can avoid revisiting nodes. Check if the current node has already been visited
before processing it.

  • Modules/webaudio/PannerNode.h:

LayoutTests:

This is based on the changes in Blink r164822:
https://codereview.chromium.org/130003002

  • webaudio/panner-loop-expected.txt: Added.
  • webaudio/panner-loop.html: Added.
4:49 PM Changeset in webkit [192280] by timothy_horton@apple.com
  • 14 edits
    4 adds
    1 delete in trunk/Source

Adopt formal protocols for CA delegates
https://bugs.webkit.org/show_bug.cgi?id=151121
<rdar://problem/6739193>

Reviewed by Anders Carlsson.

  • platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h:

Note that our WebActionDisablingCALayerDelegate is, in fact, a CALayerDelegate.

  • platform/spi/cocoa/QuartzCoreSPI.h:

Add empty protocol definitions where necessary.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/spi/mac/NSAccessibilitySPI.h: Added.
  • platform/spi/mac/NSApplicationSPI.h: Added.
  • platform/spi/mac/NSTextFinderSPI.h: Added.
  • platform/spi/mac/NSViewSPI.h: Added.

Split out SPI headers from WebKit2's AppKitSPI.h.
Add NSViewSPI to note that NSView is (internally) a CALayerDelegate,
which WebHTMLView depends on.

  • WebView/WebHTMLView.mm:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/mac/WKTextFinderClient.mm:
  • UIProcess/mac/WebPageProxyMac.mm:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/cocoa/WebProcessCocoa.mm:

Adapt to the split out SPI headers.

  • WebProcess/WebPage/mac/PlatformCAAnimationRemote.mm:

Conform!

4:29 PM Changeset in webkit [192279] by ap@apple.com
  • 3 edits in trunk/LayoutTests

Use a shorter RSA key in crypto/subtle/rsa-export-generated-keys.html to make the test faster.

Suggested by Scott Valentine.

  • crypto/subtle/rsa-export-generated-keys.html:
  • platform/mac/TestExpectations: Removed Slow expectation, as the test became a lot

faster for me locally, and hopefully won't time out on bots.

4:28 PM Changeset in webkit [192278] by bshafiei@apple.com
  • 2 edits in branches/safari-601.3.9-branch/Source/WebInspectorUI

Merged r192172. rdar://problem/23488498

4:26 PM Changeset in webkit [192277] by bshafiei@apple.com
  • 2 edits in branches/safari-601.3.9-branch/Source/WebInspectorUI

Merged r192134. rdar://problem/23488495

4:10 PM Changeset in webkit [192276] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.45.1

New tag.

3:18 PM Changeset in webkit [192275] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Continuations with anonymous wrappers inside misplaces child renderers.
https://bugs.webkit.org/show_bug.cgi?id=150908

When a child is appended to an inline container and the beforeChild is not a direct child, but
it is inside a generated subtree, we need to special case the inline split to form continuation.

RenderInline::splitInlines() assumes that beforeChild is always a direct child of the current
inline container. However when beforeChild type requires wrapper content (such as table cells), the DOM and the
render tree get out of sync. In such cases, we need to ensure that both the beforeChild and its siblings end up
in the correct generated block.

Reviewed by Darin Adler and David Hyatt.

Source/WebCore:

Test: fast/inline/continuation-with-anon-wrappers.html

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::splitInlines):
(WebCore::RenderInline::addChildToContinuation):

LayoutTests:

  • fast/inline/continuation-with-anon-wrappers-expected.txt: Added.
  • fast/inline/continuation-with-anon-wrappers.html: Added.
3:03 PM Changeset in webkit [192274] by ddkilzer@apple.com
  • 3 edits in trunk/Tools

[check-webkit-style] False positive (readability/enum_casing) on CF-styled enum members
<http://webkit.org/b/104417>

Reviewed by Brent Fulgham.

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

(_EnumState.process_clean_line): Allow 'k' to start enums.
(check_enum_casing): Update error message to discuss 'k'.

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

(NoNonVirtualDestructorsTest.test_enum_casing): Update error
messages, and add new tests for enums that start with lowercase
letters.

2:50 PM Changeset in webkit [192273] by sbarati@apple.com
  • 7 edits
    2 adds in trunk/Source/JavaScriptCore

Create an FTLExceptionHandlerManager abstraction
https://bugs.webkit.org/show_bug.cgi?id=151079

Reviewed by Mark Lam.

Before, we used to manage the {stackmapRecordIndex => OSRExit} relationship
for exception handlers with a locally allocated HashMap and a few different
lambdas and random checks. It's cleaner and more manageable to just create
a class that handles this abstraction for us. This class provides nice helper
functions for everything we need. This abstraction makes reading the code easier.
And it will also makes hacking on the code in the future easier.

(JSC::DFG::OSRExitBase::OSRExitBase):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExceptionHandlerManager.cpp: Added.

(JSC::FTL::ExceptionHandlerManager::ExceptionHandlerManager):
(JSC::FTL::ExceptionHandlerManager::addNewExit):
(JSC::FTL::ExceptionHandlerManager::getOrPutByIdCallOperationExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::lazySlowPathExceptionTarget):
(JSC::FTL::ExceptionHandlerManager::getByIdOSRExit):
(JSC::FTL::ExceptionHandlerManager::getCallOSRExitCommon):
(JSC::FTL::ExceptionHandlerManager::getCallOSRExit):
(JSC::FTL::ExceptionHandlerManager::procureCallSiteIndex):

  • ftl/FTLExceptionHandlerManager.h: Added.
2:31 PM Changeset in webkit [192272] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Batch all scheduled layouts and update the view tree in a single animation frame
https://bugs.webkit.org/show_bug.cgi?id=150993

Reviewed by Brian Burg.

Shifts responsibility for scheduling asynchronous layouts from view objects to a controller
layer, implemented as private static methods and properties in the View class. A single animation
frame callback performs a breadth-first traversal of the view tree starting at the root view,
updating views marked as needing a layout.

  • UserInterface/Base/Main.js:

(WebInspector.contentLoaded):
Setup root view.

  • UserInterface/Views/View.js:

Added private class properties for root view reference and rAF identifier.
(WebInspector.View):
(WebInspector.View.prototype.get layoutPending):
(WebInspector.View.prototype.get parentView):
(WebInspector.View.prototype.makeRootView):
Set current view to be the root of the view hierarchy.
Can only be called once.
(WebInspector.View.prototype.insertSubviewBefore):
No longer appends subview element to parent element, if subview already in the DOM.
Checks that view being inserted isn't the root view.
(WebInspector.View.prototype.removeSubview):
(WebInspector.View.prototype.updateLayout):
Cancels any scheduled layouts for the view, then does a synchronous layout.
(WebInspector.View.prototype.updateLayoutIfNeeded):
(WebInspector.View.prototype.needsLayout):
Schedules view for the next asynchronous layout, if not already scheduled.
(WebInspector.View.prototype.didAttach):
(WebInspector.View.prototype.didDetach):
Inform view of changing parent view.
(WebInspector.View.prototype._layoutSubtree):
(WebInspector.View._scheduleLayoutForView):
Increments dirty counts on ancestor views, schedules a layout if needed.
(WebInspector.View._cancelScheduledLayoutForView):
Decrements dirty counts on ancestor views, cancels a pending layout if needed.
(WebInspector.View._visitViewTreeForLayout):
Animation frame callback. Does a breadth-first traversal of the view tree,
and updates the layout of views marked as dirty.

2:22 PM Changeset in webkit [192271] by ggaren@apple.com
  • 2 edits in trunk/Tools

run-jsc-benchmarks doesn't work with internal benchmarks
https://bugs.webkit.org/show_bug.cgi?id=151047

Reviewed by Filip Pizlo.

  • Scripts/run-jsc-benchmarks: Use Pathname so we get a "/" inserted when

we concatenate.

2:19 PM Changeset in webkit [192270] by ggaren@apple.com
  • 18 edits
    25 adds in trunk

alert, confirm, prompt, showModalDialog should be forbidden during page close and navigation
https://bugs.webkit.org/show_bug.cgi?id=150980

Reviewed by Chris Dumez.

Source/WebCore:

Tests: fast/events/beforeunload-alert.html

fast/events/beforeunload-confirm.html
fast/events/beforeunload-prompt.html
fast/events/beforeunload-showModalDialog.html
fast/events/pagehide-alert.html
fast/events/pagehide-confirm.html
fast/events/pagehide-prompt.html
fast/events/pagehide-showModalDialog.html
fast/events/unload-alert.html
fast/events/unload-confirm.html
fast/events/unload-prompt.html
fast/events/unload-showModalDialog.html

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::stopLoading): Factored out a helper function for
unload event processing.
(WebCore::FrameLoader::handleUnloadEvents): Forbid prompts in unload
events just like we do in beforeunload events, and for the same reasons.

(WebCore::FrameLoader::handleBeforeUnloadEvent): Updated for renames.

  • loader/FrameLoader.h:
  • page/DOMWindow.cpp:

(WebCore::DOMWindow::print):
(WebCore::DOMWindow::alert):
(WebCore::DOMWindow::confirm):
(WebCore::DOMWindow::prompt):
(WebCore::DOMWindow::showModalDialog): Updated for renames. Refactored
some of this code to handle null pages more cleanly. In particular, we
sometimes used to treat null page as "everything is permitted" -- but it
is best practice in a permissions context to treat lack of information
as no permission granted rather than all permissions granted. (I don't
know of a way to trigger this condition in practice.)

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::forbidPrompts):
(WebCore::Page::allowPrompts):
(WebCore::Page::arePromptsAllowed): Renamed to make these functions
reflect their new, broader context.

(WebCore::Page::incrementFrameHandlingBeforeUnloadEventCount): Deleted.
(WebCore::Page::decrementFrameHandlingBeforeUnloadEventCount): Deleted.
(WebCore::Page::isAnyFrameHandlingBeforeUnloadEvent): Deleted.

  • page/Page.h:

LayoutTests:

Added tests to cover the matrix of [ alert, confirm, prompt, showModalDialog ] x [ beforeunload, unload, pagehide ].

  • fast/events/beforeunload-alert-expected.txt: Added.
  • fast/events/beforeunload-alert.html: Added.
  • fast/events/beforeunload-confirm-expected.txt: Added.
  • fast/events/beforeunload-confirm.html: Added.
  • fast/events/beforeunload-prompt-expected.txt: Added.
  • fast/events/beforeunload-prompt.html: Added.
  • fast/events/beforeunload-showModalDialog-expected.txt: Added.
  • fast/events/beforeunload-showModalDialog.html: Added.
  • fast/events/onunload-expected.txt:
  • fast/events/onunload-not-on-body-expected.txt:
  • fast/events/onunload-window-property-expected.txt:
  • fast/events/pagehide-alert-expected.txt: Added.
  • fast/events/pagehide-alert.html: Added.
  • fast/events/pagehide-confirm-expected.txt: Added.
  • fast/events/pagehide-confirm.html: Added.
  • fast/events/pagehide-prompt-expected.txt: Added.
  • fast/events/pagehide-prompt.html: Added.
  • fast/events/pagehide-showModalDialog-expected.txt: Added.
  • fast/events/pagehide-showModalDialog.html: Added.
  • fast/events/pageshow-pagehide-on-back-cached-expected.txt:
  • fast/events/pageshow-pagehide-on-back-uncached-expected.txt:
  • fast/events/resources/prompt-landing-page.html: Added.
  • fast/events/unload-alert-expected.txt: Added.
  • fast/events/unload-alert.html: Added.
  • fast/events/unload-confirm-expected.txt: Added.
  • fast/events/unload-confirm.html: Added.
  • fast/events/unload-prompt-expected.txt: Added.
  • fast/events/unload-prompt.html: Added.
  • fast/events/unload-showModalDialog-expected.txt: Added.
  • fast/events/unload-showModalDialog.html: Added.
  • platform/wk2/TestExpectations: WebKit2 can't handle showModalDialog tests.
  • compositing/iframes/page-cache-layer-tree-expected.txt:
  • fast/dom/Geolocation/notimer-after-unload-expected.txt:
  • fast/history/timed-refresh-in-cached-frame-expected.txt:
  • fast/loader/frames-with-unload-handlers-in-page-cache-expected.txt:
  • fast/loader/page-dismissal-modal-dialogs-expected.txt: These were

pre-existing tests that tried to alert during unload.

2:04 PM Changeset in webkit [192269] by hyatt@apple.com
  • 8 edits in trunk

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:

tate-chu-yoko should shrink to fit when it exceeds the available width.
<rdar://problem/12130468>
https://bugs.webkit.org/show_bug.cgi?id=151051

Reviewed by Myles Maxfield.

Source/WebCore:

Covered by existing tests

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText):

When testing for text-combine, find the font variant that is the best fit, i.e.,
that exceeds the available width by the smallest amount. Scale that best fit down
repeatedly until it fits within the available space. We set a pixel size of 6 as
the threshold at which we give up.

Also make sure to reset glyphOverflow on each measurement, as this was creating
a potential bug both with variant checking and then with scaling, since glyphOverflow
isn't reset when width() is invoked.

LayoutTests:

  • fast/text/international/spaces-combined-in-vertical-text-expected.txt:
  • fast/text/text-combine-crash-expected.txt:
  • platform/mac/fast/text/decorations-with-text-combine-expected.png:
  • platform/mac/fast/text/decorations-with-text-combine-expected.txt:
  • platform/mac/fast/text/international/text-combine-image-test-expected.txt:
  • platform/mac/fast/text/tatechuyoko-expected.png:
  • platform/mac/fast/text/tatechuyoko-expected.txt:
1:55 PM Changeset in webkit [192268] by jiewen_tan@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Null dereference loading Blink layout test editing/execCommand/selectAll-including-marquee-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149296
<rdar://problem/22746758>

Reviewed by Darin Adler.

Tests are from Blink r167617:
https://codereview.chromium.org/165933002
No source code changes are needed as they are covered by Bug 149298.

  • editing/execCommand/selectAll-including-marquee-crash-expected.txt: Added.
  • editing/execCommand/selectAll-including-marquee-crash.html: Added.
1:52 PM Changeset in webkit [192267] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

X86_64 support for compareDouble(DoubleCondition, FPRegisterID left, FPRegisterID right, RegisterID dest)
https://bugs.webkit.org/show_bug.cgi?id=151009

Reviewed by Filip Pizlo.

Added compareDouble() macro assembler function and the supporting setnp_r() and setp_r() X86 assembler functions.
Hand tested.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::compare64):
(JSC::MacroAssemblerX86_64::compareDouble):
(JSC::MacroAssemblerX86_64::branch64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::setnz_r):
(JSC::X86Assembler::setnp_r):
(JSC::X86Assembler::setp_r):
(JSC::X86Assembler::cdq):

1:51 PM Changeset in webkit [192266] by mitz@apple.com
  • 4 edits in trunk/Source/WebKit2

Fixed the build.

  • DatabaseProcess/EntryPoint/mac/XPCService/DatabaseServiceEntryPoint.mm:

(DatabaseServiceInitializer):

  • NetworkProcess/EntryPoint/mac/XPCService/NetworkServiceEntryPoint.mm:

(NetworkServiceInitializer):

  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:

(WebContentServiceInitializer):

1:42 PM Changeset in webkit [192265] by bshafiei@apple.com
  • 5 edits in branches/safari-601.3.9-branch/Source

Versioning.

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

Web Inspector: Code coverage profiler: incorrect "in-viewport" detection algorithm
https://bugs.webkit.org/show_bug.cgi?id=151116

Reviewed by Brian Burg.

  • UserInterface/Controllers/BasicBlockAnnotator.js:

(WebInspector.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):

1:39 PM Changeset in webkit [192263] by bshafiei@apple.com
  • 1 copy in branches/safari-601.3.9-branch

New Branch.

12:52 PM Changeset in webkit [192262] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46.45-branch/Source

Versioning.

12:49 PM Changeset in webkit [192261] by bshafiei@apple.com
  • 1 copy in branches/safari-601.1.46.45-branch

New Branch.

12:42 PM Changeset in webkit [192260] by sbarati@apple.com
  • 8 edits
    1 move in trunk/Source/JavaScriptCore

Rename FTL's ExitArgumentList to something more indicative of what it is
https://bugs.webkit.org/show_bug.cgi?id=151078

Reviewed by Geoffrey Garen.

New name is: StackmapArgumentList
We use this to build patchpoint and stackmap intrinsics in FTLLowerDFGToLLVM.

  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj:
  • JavaScriptCore.vcxproj/JavaScriptCore.vcxproj.filters:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • ftl/FTLExitArgumentList.h: Removed.
  • ftl/FTLJSTailCall.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileTailCall):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInvalidationPoint):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::emitOSRExitCall):
(JSC::FTL::DFG::LowerDFGToLLVM::buildExitArguments):
(JSC::FTL::DFG::LowerDFGToLLVM::callStackmap):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForAvailability):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForNode):
(JSC::FTL::DFG::LowerDFGToLLVM::exitArgument):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForTailCall):

  • ftl/FTLOSRExit.cpp:
  • ftl/FTLOSRExit.h:
  • ftl/FTLStackmapArgumentList.h: Copied from Source/JavaScriptCore/ftl/FTLExitArgumentList.h.
12:05 PM Changeset in webkit [192259] by mmaxfield@apple.com
  • 4 edits in trunk/Source/WebCore

Tatechuyoko text is not vertically centered in its vertical advance
https://bugs.webkit.org/show_bug.cgi?id=151074
<rdar://problem/20074305>

Reviewed by David Hyatt.

During paint time, the run origin of tatechuyoko needs to be adjusted to compensate for the
rotation of the writing mode. The calculation which performed this adjustment was incorrect.

It is incorrect for two reasons:

  1. It used the existing text origin, which had the font's ascent incorporated in it, but did

not compensate by either inspecting the overflow bounds' ascent nor the font's ascent proper.

  1. It did not distinguish between the overflow bounds' ascent vs. descent. Instead, it added

them together and treated both values together.

No new tests yet. I need to make a font to test this.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::computeTextOrigin):
(WebCore::RenderCombineText::combineText):
(WebCore::RenderCombineText::adjustTextOrigin): Deleted.

  • rendering/RenderCombineText.h:
11:55 AM November 2015 Meeting edited by BJ Burg
(diff)
11:20 AM Changeset in webkit [192258] by Chris Dumez
  • 5 edits
    2 moves in trunk/Source/WebKit2

[WK2][NetworkCache] Rename SpeculativeLoader to SpeculativeLoadManager
https://bugs.webkit.org/show_bug.cgi?id=151110

Reviewed by Alex Christensen.

Rename SpeculativeLoader to SpeculativeLoadManager for clarity, as it
manages all speculative loads.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::initialize):
(WebKit::NetworkCache::Cache::retrieve):

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoader.cpp.

(WebKit::NetworkCache::subresourcesType):
(WebKit::NetworkCache::makeSubresourcesKey):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::PendingFrameLoad):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::registerSubresource):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::encodeAsSubresourcesRecord):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markAsCompleted):
(WebKit::NetworkCache::SpeculativeLoadManager::SpeculativeLoadManager):
(WebKit::NetworkCache::SpeculativeLoadManager::~SpeculativeLoadManager):
(WebKit::NetworkCache::SpeculativeLoadManager::registerLoad):

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h: Renamed from Source/WebKit2/NetworkProcess/cache/NetworkCacheSpeculativeLoader.h.
  • WebKit2.xcodeproj/project.pbxproj:
11:14 AM Changeset in webkit [192257] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

[B3] Add more tests for Check and fix bugs this found
https://bugs.webkit.org/show_bug.cgi?id=151073

Reviewed by Saam Barati.

Adds tests for compare/Check fusion. The "MegaCombo" test found a bug in our implementation
of forEachArg: Air::spillEverything() was expecting that the Arg& to point to the actual Arg
so that it can mutate it. But this wasn't the case in B3::CheckSpecial. This fixes that bug.

  • b3/B3CheckSpecial.cpp:

(JSC::B3::Air::numB3Args):
(JSC::B3::CheckSpecial::hiddenBranch):
(JSC::B3::CheckSpecial::commitHiddenBranch):
(JSC::B3::CheckSpecial::forEachArg):

  • b3/B3CheckSpecial.h:
  • b3/testb3.cpp:

(JSC::B3::testSimpleCheck):
(JSC::B3::testCheckLessThan):
(JSC::B3::testCheckMegaCombo):
(JSC::B3::genericTestCompare):
(JSC::B3::run):

11:05 AM November 2015 Meeting edited by Jon Davis
(diff)
10:59 AM Changeset in webkit [192256] by youenn.fablet@crf.canon.fr
  • 5 edits in trunk

XMLHttpRequestUpload should support ontimeout event handler
https://bugs.webkit.org/show_bug.cgi?id=128531

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/XMLHttpRequest/interfaces-expected.txt: Rebasing as test is passing.
  • web-platform-tests/XMLHttpRequest/send-timeout-events-expected.txt: Ditto.

Source/WebCore:

Covered by rebased tests.

  • xml/XMLHttpRequestUpload.idl: Adding ontimeout event handler.
10:36 AM Changeset in webkit [192255] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

[B3] Add a test for CCall with double arguments and results
https://bugs.webkit.org/show_bug.cgi?id=151064

Reviewed by Saam Barati.

The test already passed on trunk. But when looking at the disassembly, I realized that I had
made a rookie mistake in the call argument marshalling: the stores to the stack went after the
moves to argument registers! This means that arguments that go to stack would be made to
interfere with all argument registers. That's some severe register pressure right there. So,
this change fixes that as well, and adds a FIXME to do it in a more principled manner in Air.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp):
(JSC::B3::Air::LowerToAir::createStore):
(JSC::B3::Air::LowerToAir::appendStore):
(JSC::B3::Air::LowerToAir::moveForType):
(JSC::B3::Air::LowerToAir::marshallCCallArgument):

  • b3/testb3.cpp:

(JSC::B3::testReturnDouble):
(JSC::B3::simpleFunctionDouble):
(JSC::B3::testCallSimpleDouble):
(JSC::B3::functionWithHellaDoubleArguments):
(JSC::B3::testCallFunctionWithHellaDoubleArguments):
(JSC::B3::run):

10:32 AM Changeset in webkit [192254] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Broadening the scope of skipped inspector tests on Win
https://bugs.webkit.org/show_bug.cgi?id=137157

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:06 AM Changeset in webkit [192253] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit2

Add WKWebViewConfiguration SPI for a variety of different ex-preferences
https://bugs.webkit.org/show_bug.cgi?id=151070
<rdar://problem/23020454>

Reviewed by Anders Carlsson.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithFrame:configuration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _setRespectsImageOrientation:]):
(-[WKWebViewConfiguration _respectsImageOrientation]):
(-[WKWebViewConfiguration _setPrintsBackgrounds:]):
(-[WKWebViewConfiguration _printsBackgrounds]):
(-[WKWebViewConfiguration _setIncrementalRenderingSuppressionTimeout:]):
(-[WKWebViewConfiguration _incrementalRenderingSuppressionTimeout]):
(-[WKWebViewConfiguration _setAllowsJavaScriptMarkup:]):
(-[WKWebViewConfiguration _allowsJavaScriptMarkup]):
(-[WKWebViewConfiguration _setConvertsPositionStyleOnCopy:]):
(-[WKWebViewConfiguration _convertsPositionStyleOnCopy]):
(-[WKWebViewConfiguration _setAllowsMetaRefresh:]):
(-[WKWebViewConfiguration _allowsMetaRefresh]):
(-[WKWebViewConfiguration _setShowsURLsInToolTips:]):
(-[WKWebViewConfiguration _showsURLsInToolTips]):
(-[WKWebViewConfiguration _setServiceControlsEnabled:]):
(-[WKWebViewConfiguration _serviceControlsEnabled]):
(-[WKWebViewConfiguration _setImageControlsEnabled:]):
(-[WKWebViewConfiguration _imageControlsEnabled]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:

Plumb some configuration SPI for various clients.

10:03 AM Changeset in webkit [192252] by Alan Bujtas
  • 5 edits
    2 adds in trunk

Force display: block on ::-webkit-media-controls.
https://bugs.webkit.org/show_bug.cgi?id=149178
<rdar://problem/23448397>

Reviewed by Simon Fraser.

This patch ensures that we always have a block level container for media controls
so that continuation never needs to split RenderMedia into multiple subtrees.

Current inline continuation logic assumes that only inline elements with RenderInline
type of renderers participate in continuation. This is mostly the case since other inline renderers
such as RenderReplaced, RenderImage, RenderEmbeddedObject etc can't have (accessible) children.
(Unlike video::-webkit-media-controls)

Source/WebCore:

Test: media/webkit-media-controls-display.html

  • Modules/mediacontrols/mediaControlsApple.css:

(::-webkit-media-controls):

  • Modules/mediacontrols/mediaControlsiOS.css:

(::-webkit-media-controls):

  • css/mediaControls.css:

(::-webkit-media-controls):

LayoutTests:

  • media/webkit-media-controls-display-expected.txt: Added.
  • media/webkit-media-controls-display.html: Added.
9:57 AM Changeset in webkit [192251] by youenn.fablet@crf.canon.fr
  • 6 edits
    1 delete in trunk/LayoutTests

Remove WebKit specific XHR timeout tests in favor of WPT version
https://bugs.webkit.org/show_bug.cgi?id=151091

Reviewed by Alexey Proskuryakov.

Removing XHR timeout WebKit specific tests as they have WPT counterparts and WebKit specific tests are less stable.
Updated test expectations accordingly.

  • TestExpectations:
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-aborted.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-abortedonmain.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overrides-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overrides.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overrides.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-overridesexpires.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-runner.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-simple.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconmain.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-synconworker.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-twice.js: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-aborted.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overrides-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overrides.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-overridesexpires.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-simple.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-synconworker.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice-expected.txt: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout-worker-twice.html: Removed.
  • http/tests/xmlhttprequest/timeout/xmlhttprequest-timeout.js: Removed.
  • platform/gtk/TestExpectations:
  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • platform/win/TestExpectations:
9:51 AM Changeset in webkit [192250] by youenn.fablet@crf.canon.fr
  • 4 edits in trunk/Source/JavaScriptCore

Remove create_hash_table options and simplify build system
https://bugs.webkit.org/show_bug.cgi?id=151081

Reviewed by Darin Adler.

  • CMakeLists.txt: Merged native and builtin object sources and removed create_hash_table options.
  • DerivedSources.make: Ditto.
  • create_hash_table: Removed -b and -i options.
9:15 AM Changeset in webkit [192249] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][iOS] Update WebContent sandbox profile to allow loading injected bundles again
https://bugs.webkit.org/show_bug.cgi?id=151102
<rdar://problem/23442311>

Reviewed by Dan Bernstein.

Update WebContent sandbox profile to allow loading injected bundles again.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
8:50 AM Changeset in webkit [192248] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[UNIX] Environment variable should take precedence over directories in plugin search path
https://bugs.webkit.org/show_bug.cgi?id=151096

Reviewed by Martin Robinson.

Otherwise you can't override the directories using the env vars
for plugins already installed.

  • Shared/Plugins/unix/PluginSearchPath.cpp:

(WebKit::pluginsDirectories):

8:08 AM Changeset in webkit [192247] by Carlos Garcia Campos
  • 19 edits
    1 copy
    1 add
    2 deletes in trunk

[GTK] Use CROSS_PLATFORM_CONTEXT_MENUS
https://bugs.webkit.org/show_bug.cgi?id=150642

Reviewed by Martin Robinson.

Source/WebCore:

Remove GTK+ implementations of old context menu classes.

  • PlatformGTK.cmake:
  • platform/ContextMenuItem.h:
  • platform/gtk/ContextMenuGtk.cpp: Removed.
  • platform/gtk/ContextMenuItemGtk.cpp: Removed.

Source/WebKit2:

Use CROSS_PLATFORM_CONTEXT_MENUS. Since we can't just use
WebContextMenuItemData, because we need to bind a GtkAction to the
menu items, this patch adds WebContextMenuItemGtk that derives
from WebContextMenuItemData and adds the GtkAction and its own
handling of submenu items. WebKitContextMenu and
WebKitContextMenuItem no longer deal with the widgets (GtkMenu and
GtkMenuItem), that are now created by WebContextMenuProxy when
building the popup menu.
This patch also removes the support for input methods submenu,
since it has been deprecated (and disabled by default) in GTK+ for
long time, it has never actually worked (because the menu items
don't have a GtkAction associated) and it makes the code more
complicated for no benefit.

  • PlatformGTK.cmake:
  • Shared/gtk/WebContextMenuItemGtk.cpp: Added.

(WebKit::gtkStockIDFromContextMenuAction):
(WebKit::WebContextMenuItemGtk::WebContextMenuItemGtk):
(WebKit::WebContextMenuItemGtk::~WebContextMenuItemGtk):
(WebKit::WebContextMenuItemGtk::createGtkActionIfNeeded):

  • Shared/gtk/WebContextMenuItemGtk.h: Copied from Source/WebKit2/UIProcess/gtk/WebContextMenuProxyGtk.h.

(WebKit::WebContextMenuItemGtk::gtkAction):
(WebKit::WebContextMenuItemGtk::submenuItems):

  • UIProcess/API/gtk/WebKitContextMenu.cpp:

(webkitContextMenuPopulate):
(webkitContextMenuCreate): Deleted.
(webkitContextMenuSetParentItem): Deleted.

  • UIProcess/API/gtk/WebKitContextMenuActions.cpp:

(webkitContextMenuActionGetForContextMenuItem):

  • UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h:
  • UIProcess/API/gtk/WebKitContextMenuItem.cpp:

(webkitContextMenuItemSetSubMenu):
(webkitContextMenuItemCreate):
(webkitContextMenuItemToWebContextMenuItemGtk):
(webkitContextMenuItemToWebContextMenuItemData):
(webkit_context_menu_item_new):
(webkit_context_menu_item_new_from_stock_action):
(webkit_context_menu_item_new_from_stock_action_with_label):
(webkit_context_menu_item_new_with_submenu):
(webkit_context_menu_item_new_separator):
(webkit_context_menu_item_get_action):
(webkit_context_menu_item_get_stock_action):
(webkit_context_menu_item_is_separator): Deleted.

  • UIProcess/API/gtk/WebKitContextMenuItemPrivate.h:
  • UIProcess/API/gtk/WebKitContextMenuPrivate.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewPopulateContextMenu):
(contextMenuDismissed): Deleted.
(webkitWebViewSubmitFormRequest): Deleted.
(webkitWebViewHandleAuthenticationChallenge): Deleted.
(webkitWebViewInsecureContentDetected): Deleted.
(webkitWebViewEmitRunColorChooser): Deleted.
(webkitWebViewRequestInstallMissingMediaPlugins): Deleted.

  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::contextMenuItemActivatedCallback):
(WebKit::WebContextMenuProxyGtk::append):
(WebKit::WebContextMenuProxyGtk::populate):
(WebKit::WebContextMenuProxyGtk::show):
(WebKit::WebContextMenuProxyGtk::WebContextMenuProxyGtk):
(WebKit::WebContextMenuProxyGtk::~WebContextMenuProxyGtk):

  • UIProcess/gtk/WebContextMenuProxyGtk.h:

(WebKit::WebContextMenuProxyGtk::gtkMenu):

  • WebProcess/InjectedBundle/API/gtk/WebKitWebPage.cpp:

Source/WTF:

Enable CROSS_PLATFORM_CONTEXT_MENUS for GTK+ port.

  • wtf/Platform.h:

Tools:

Remove test for input methods submenu.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestContextMenu.cpp:
7:45 AM Changeset in webkit [192246] by calvaris@igalia.com
  • 8 edits in trunk/Source/WebCore

[Streams API] Fix style issues
https://bugs.webkit.org/show_bug.cgi?id=151089

Reviewed by Youenn Fablet.

Inlined some things, converted var into let and const, removed some undefined parameters and returns, added
missing "use strict" clauses and other minor style changes.

Internal rework, no new tests needed.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamController.js:

(enqueue):
(error):
(close):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):
(teeReadableStreamPullFunction):
(teeReadableStreamBranch2CancelFunction):
(errorReadableStream):
(finishClosingReadableStream):
(closeReadableStreamReader):
(enqueueInReadableStream):
(readFromReadableStreamReader):

  • Modules/streams/ReadableStreamReader.js:

(releaseLock):

  • Modules/streams/StreamInternals.js:

(invokeOrNoop):
(promiseInvokeOrNoop):
(promiseInvokeOrFallbackOrNoop):
(validateAndNormalizeQueuingStrategy):
(newQueue):
(dequeueValue):
(enqueueValueWithSize):
(peekQueueValue):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):
(close):

  • Modules/streams/WritableStreamInternals.js:

(syncWritableStreamStateWithQueue):
(errorWritableStream):
(callOrScheduleWritableStreamAdvanceQueue):
(writableStreamAdvanceQueue):
(closeWritableStream): Deleted.

6:42 AM Changeset in webkit [192245] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

Unreviewed. Fix scrollbars/custom-scrollbar-appearance-property.html after r191991.

Use a similar fix to the mac one.

  • rendering/RenderThemeGtk.cpp:

(WebCore::centerRectVerticallyInParentInputElement):

6:38 AM Changeset in webkit [192244] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10

Merge r192103 - Layout Test accessibility/win/linked-elements.html is crashing on win debug
https://bugs.webkit.org/show_bug.cgi?id=150944

Reviewed by Chris Fleizach.

Source/WebCore:

Be more precise ASSERTing on textUnderElement, only checking that the render
tree is stable before using TextIteraror when in 'IncludeAllChildren' mode.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement):

LayoutTests:

Removed accessibility/win/linked-elements.html crashing expectation.

  • platform/win/TestExpectations: Removed crashing expectation.
6:36 AM Changeset in webkit [192243] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r192096 - [GTK] Fails to link libwebkit2gtkinjectedbundle.so on OSX
https://bugs.webkit.org/show_bug.cgi?id=144785

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-11-06
Reviewed by Philippe Normand.

  • PlatformGTK.cmake: Add missing WebKit2 library to list of

libraries to link with. Required for OSX build.

6:35 AM Changeset in webkit [192242] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10

Merge r192095 - [GTK] Re-enable Quartz backend on cmake build system
https://bugs.webkit.org/show_bug.cgi?id=144561

Reviewed by Philippe Normand.

  • Source/cmake/FindGTK3.cmake: Set GTK3_SUPPORTS_QUARTZ based on

the presence of of gtk+-quartz-3.0 module.

  • Source/cmake/OptionsGTK.cmake: Reintroduce the

ENABLE_QUARTZ_TARGET option to the CMake build, for building the
GTK+ Quartz backend on OS X.

6:05 AM Changeset in webkit [192241] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r192052 - [GTK] Epiphany with Debug mode compiled WebKitGtk+ 2.10.3 hits ASSERT_ARG on willEnterAcceleratedCompositingMode
https://bugs.webkit.org/show_bug.cgi?id=150620

Reviewed by Mario Sanchez Prada.

WillEnterAcceleratedCompositingMode message is sent when the
LayerTreeHost is created in the Web Process. This can happen while
there's still a DidUpdateBackingStoreState pending, in which case
we are receiving the new backingStoreStateID, but the current one
hasn't been updated yet.

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::willEnterAcceleratedCompositingMode):
Fix the ASSERT to check the given ID is alt least the next one,
and remove the early return since it's valid to not enter AC mode
in the end after the WillEnter message.

6:04 AM Changeset in webkit [192240] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192043 - Null dereference loading Blink layout test editing/execCommand/delete-hidden-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149289
<rdar://problem/22746352>

Reviewed by Enrica Casucci.

Source/WebCore:

This is a merge of Blink r176497:
https://codereview.chromium.org/340713003

It ensures the start & end positions in DeleteSelectionCommand::initializePositionData
are editable.

Test: editing/execCommand/delete-hidden-crash.html

  • editing/DeleteSelectionCommand.cpp:

(WebCore::DeleteSelectionCommand::initializePositionData):

  • editing/Editor.cpp:

(WebCore::Editor::advanceToNextMisspelling):

  • editing/htmlediting.cpp:

(WebCore::firstEditablePositionAfterPositionInRoot):
(WebCore::lastEditablePositionBeforePositionInRoot):
These two functions don't make any sense to return VisiblePosition. Change them
to return Position instead. Since there is a viable conversion from Position to
VisiblePosition. It should not change the behavior of any other components depending
on it.

  • editing/htmlediting.h:

LayoutTests:

  • editing/execCommand/delete-hidden-crash-expected.txt: Added.
  • editing/execCommand/delete-hidden-crash.html: Added.
6:02 AM Changeset in webkit [192239] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r192042 - Ruby base ending in tatechuyoko forces a line break before the tatechuyoko
https://bugs.webkit.org/show_bug.cgi?id=150883

Reviewed by Darin Adler.

Source/WebCore:

Asking the width of a 0-length tatechuyoko should return 0.

Test: fast/text/ruby-tatechuyoko.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::width):

LayoutTests:

  • platform/mac/fast/text/international/text-combine-image-test-expected.txt: Updated.
  • platform/mac/fast/text/tatechuyoko-expected.txt: Ditto.
  • fast/text/ruby-tatechuyoko-expected.html: Added.
  • fast/text/ruby-tatechuyoko.html: Added.
5:59 AM Changeset in webkit [192238] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merger r192022 - [AX] WebProcess from WebKitGtk+ 2.10.0 compiled in Debug mode hits ASSERT on textUnderElement
https://bugs.webkit.org/show_bug.cgi?id=150670

Source/WebCore:

Patch by Mario Sanchez Prada <mario@webkit.org> on 2015-11-04
Reviewed by Chris Fleizach.

Move the ASSERTs stating that the render tree is stable before using the
TextIterator to their right place, in AccessibilityRenderObject, so that
we don't crash in debug builds in cases when this condition is irrelevant.

Test: accessibility/gtk/list-item-with-pseudo-element-crash.html

  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::textUnderElement): Removed ASSERTs.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::textUnderElement): Added ASSERTs, but
only before calling plainText and using the right document for the node.

LayoutTests:

Patch by Joanmarie Diggs <jdiggs@igalia.com> on 2015-11-04
Reviewed by Chris Fleizach.

  • accessibility/list-item-with-pseudo-element-crash-expected.txt: Added.
  • accessibility/list-item-with-pseudo-element-crash.html: Added.
5:55 AM Changeset in webkit [192237] by Carlos Garcia Campos
  • 6 edits
    12 adds in releases/WebKitGTK/webkit-2.10

Merge r192020 - SVG: hit testing region for <text> elements is incorrect
https://bugs.webkit.org/show_bug.cgi?id=150838

Patch by Antoine Quint <Antoine Quint> on 2015-11-04
Reviewed by Dean Jackson.

Source/WebCore:

Hit testing for SVG <text> elements was using the same code as hit testing
for CSS-rendered elements. However, in SVG, text elements should only hit
test based on their character cells, not the rectangular bounds of the
element, see section 16.6 of the SVG 1.1 specification:

http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty

So we now hit test each SVGTextFragment of each SVGInlineTextBox
that is a child of an SVGRootInlineBox to correctly find whether the
provided HitTestLocation is contained within a character cell.

Tests: svg/hittest/text-dominant-baseline-hanging.svg

svg/hittest/text-multiple-dx-values.svg
svg/hittest/text-with-multiple-tspans.svg
svg/hittest/text-with-text-node-and-content-elements.svg
svg/hittest/text-with-text-node-only.svg
svg/hittest/text-with-text-path.svg

  • rendering/RootInlineBox.h:

Remove the final keyword since nodeAtPoint() may now be subclassed as
implemented in SVGRootInlineBox.

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::nodeAtPoint):
Iterate over the SVGTextFragments to look for a fragment containing the
provided HitTestLocation.

  • rendering/svg/SVGRootInlineBox.cpp:

(WebCore::SVGRootInlineBox::nodeAtPoint):

  • rendering/svg/SVGRootInlineBox.h:

Override RootInlineBox::nodeAtPoint() to delegate hit testing to the
children inline boxes.

LayoutTests:

  • svg/hittest/text-dominant-baseline-hanging-expected.svg: Added.
  • svg/hittest/text-dominant-baseline-hanging.svg: Added.
  • svg/hittest/text-multiple-dx-values-expected.svg: Added.
  • svg/hittest/text-multiple-dx-values.svg: Added.
  • svg/hittest/text-with-multiple-tspans-expected.svg: Added.
  • svg/hittest/text-with-multiple-tspans.svg: Added.
  • svg/hittest/text-with-text-node-and-content-elements-expected.svg: Added.
  • svg/hittest/text-with-text-node-and-content-elements.svg: Added.
  • svg/hittest/text-with-text-node-only-expected.svg: Added.
  • svg/hittest/text-with-text-node-only.svg: Added.
  • svg/hittest/text-with-text-path-expected.svg: Added.
  • svg/hittest/text-with-text-path.svg: Added.
5:41 AM Changeset in webkit [192236] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191991 - Null dereference loading Blink layout test scrollbars/custom-scrollbar-appearance-property.html
https://bugs.webkit.org/show_bug.cgi?id=149312
<rdar://problem/22748910>

Reviewed by Darin Adler.

Source/WebCore:

This is a merge from Blink r167503:
https://codereview.chromium.org/173433002

Test: scrollbars/custom-scrollbar-appearance-property.html

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintSearchFieldCancelButton):
(WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):

LayoutTests:

  • scrollbars/custom-scrollbar-appearance-property-expected.txt: Added.
  • scrollbars/custom-scrollbar-appearance-property.html: Added.
5:34 AM Changeset in webkit [192235] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191938 - Null dereference loading Blink layout test fast/css/background-repeat-null-y-crash.html
https://bugs.webkit.org/show_bug.cgi?id=150211
<rdar://problem/23137321>

Reviewed by Alex Christensen.

Source/WebCore:

This is a merge of Blink r188842:
https://codereview.chromium.org/846933002

By setting the backgroundRepeatY property to null it can
happen that accessing that CSS value returns a null pointer.
In that case simply bail out early.

Test: fast/css/background-repeat-null-y-crash.html

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getLayeredShorthandValue):

LayoutTests:

  • fast/css/background-repeat-null-y-crash-expected.txt: Added.
  • fast/css/background-repeat-null-y-crash.html: Added.
5:33 AM Changeset in webkit [192234] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10

Merge r191936 - [Mac][GTK] Disable Ninja response file support
https://bugs.webkit.org/show_bug.cgi?id=150801

Patch by Philippe Normand <pnormand@igalia.com> on 2015-11-02
Reviewed by Alex Christensen.

  • Source/cmake/OptionsCommon.cmake: The OSX toolchain doesn't

support response files, so instruct Ninja to not generate those.

5:32 AM Changeset in webkit [192233] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191915 - hasOverflowClip() does not necessarily mean valid layer().
https://bugs.webkit.org/show_bug.cgi?id=150814

Reviewed by Simon Fraser.

Certain RenderLayerModelObject derived classes simply return false for ::requiresLayer(), which means
that we end up not creating a layer for the overflow clipped content.

No change in functionality.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::updateScrollInfoAfterLayout):
(WebCore::RenderBlock::paint):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::scrollWidth):
(WebCore::RenderBox::scrollHeight):
(WebCore::RenderBox::scrollLeft):
(WebCore::RenderBox::scrollTop):
(WebCore::RenderBox::setScrollLeft):
(WebCore::RenderBox::setScrollTop):
(WebCore::RenderBox::includeVerticalScrollbarSize):
(WebCore::RenderBox::includeHorizontalScrollbarSize):
(WebCore::RenderBox::intrinsicScrollbarLogicalWidth):
(WebCore::RenderBox::usesCompositedScrolling):

5:24 AM Changeset in webkit [192232] by Carlos Garcia Campos
  • 27 edits
    1 add in releases/WebKitGTK/webkit-2.10/Source

Merge r191856 - [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN)
https://bugs.webkit.org/show_bug.cgi?id=144560

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-11-01
Reviewed by Darin Adler.

Source/bmalloc:

  • PlatformGTK.cmake: Added. This adds Zone.cpp to the PlatformGTK

build, on Darwin only. Since there was previously nothing for the
build system to do that was specific to the GTK platform in
bmalloc, we need to create this file.

Source/WebCore:

  • platform/graphics/PlatformDisplay.cpp: Only include the

X11-specific GDK header on PLATFORM(X11). In other cases the
normal gdk.h header is needed, which would otherwise be pulled in
by gdkx.h.

  • platform/graphics/opentype/OpenTypeMathData.cpp: Change check

for FourCharCode type from OS(DARWIN) to PLATFORM(COCOA). We
can't remove it altogether because OT_MAKE_TAG doesn't work for
all platforms.

Source/WebKit2:

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
Change order of OS(DARWIN) and USE(UNIX_DOMAIN_SOCKETS) checks,
so that we can use Unix domain sockets even on Darwin for the GTK
platform.

  • Platform/IPC/Attachment.cpp: Add USE(UNIX_DOMAIN_SOCKETS) check

to OS(DARWIN) check, in order to support GTK platform on OSX.

  • Platform/IPC/Attachment.h: Change order of OS(DARWIN) and

USE(UNIX_DOMAIN_SOCKETS) checks throughout.
(IPC::Attachment::size):
(IPC::Attachment::releaseFileDescriptor):
(IPC::Attachment::fileDescriptor):
(IPC::Attachment::disposition):
(IPC::Attachment::port):

  • Platform/IPC/Connection.h: Ditto.

(IPC::Connection::identifierIsNull):
(IPC::Connection::Identifier::Identifier):
(IPC::Connection::xpcConnection):

  • Platform/IPC/unix/ConnectionUnix.cpp: Only use SOCK_SEQPACKET

if the platform is not GTK, because otherwise the PLATFORM(GTK)
check below is never reached.

  • Platform/SharedMemory.h: Change order of OS(DARWIN) and

USE(UNIX_DOMAIN_SOCKETS) checks.

  • PluginProcess/PluginProcess.cpp: Ditto.

(WebKit::PluginProcess::createWebProcessConnection):

  • Shared/API/c/WKBase.h: Don't include WKBaseMac.h if building

GTK.

  • UIProcess/API/C/WKNativeEvent.h: Don't use Apple API if

building GTK.

  • UIProcess/Launcher/ProcessLauncher.cpp: Change to

OS(DARWIN) && !PLATFORM(GTK), in the absence of a better platform
macro such as USE(MACH).
(WebKit::ProcessLauncher::didFinishLaunchingProcess):

  • UIProcess/Launcher/ProcessLauncher.h: Ditto.
  • UIProcess/Network/NetworkProcessProxy.cpp: Change order of

OS(DARWIN) and PLATFORM(GTK) checks.
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):

  • UIProcess/Plugins/PluginProcessProxy.cpp: Ditto.

(WebKit::PluginProcessProxy::pluginProcessCrashedOrFailedToLaunch):
(WebKit::PluginProcessProxy::didCreateWebProcessConnection):

  • WebProcess/Plugins/PluginProcessConnectionManager.cpp: Ditto.

(WebKit::PluginProcessConnectionManager::getPluginProcessConnection):

  • WebProcess/WebPage/WebInspector.cpp: Ditto.

(WebKit::WebInspector::createInspectorPage):

  • WebProcess/WebPage/WebInspectorUI.cpp: Ditto.

(WebKit::WebInspectorUI::establishConnection):

  • WebProcess/WebProcess.cpp: Ditto.

(WebKit::WebProcess::ensureNetworkProcessConnection):

Source/WTF:

  • wtf/Platform.h: Don't USE(ACCELERATE) on PLATFORM(GTK).
  • wtf/WorkQueue.h: Change order of OS(DARWIN) and PLATFORM(GTK)

checks so that GTK facilities are used even when building the
GTK platform on Darwin.

4:54 AM Changeset in webkit [192231] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191844 - [GStreamer][Mac] Fix WebAudio build
https://bugs.webkit.org/show_bug.cgi?id=150030

Patch by Philippe Normand <pnormand@igalia.com> on 2015-10-31
Reviewed by Darin Adler.

Wrap Accelerate.framework API calls around USE(ACCELERATE) ifdefs.

  • platform/audio/Biquad.cpp:

(WebCore::Biquad::Biquad):
(WebCore::Biquad::process):
(WebCore::Biquad::reset):

  • platform/audio/Biquad.h:
  • platform/audio/DirectConvolver.cpp:

(WebCore::DirectConvolver::process):

  • platform/audio/FFTFrame.h:
  • platform/audio/VectorMath.cpp:
4:04 AM Changeset in webkit [192230] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebCore

Unreviewed speculative buildfix after r192200.

  • platform/mock/MediaPlaybackTargetPickerMock.cpp:

(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):

3:59 AM Changeset in webkit [192229] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/JavaScriptCore

Merge r191775 - [GTK][Mac] disable OBJC JSC API
https://bugs.webkit.org/show_bug.cgi?id=150500

Patch by Philippe Normand <pnormand@igalia.com> on 2015-10-29
Reviewed by Alex Christensen.

  • API/JSBase.h: Disable the Objective-C API on Mac for the GTK port.
3:37 AM Changeset in webkit [192228] by Carlos Garcia Campos
  • 3 edits
    3 adds in releases/WebKitGTK/webkit-2.10

Merge r191765 - Crash making a tail call from a getter to a host function
https://bugs.webkit.org/show_bug.cgi?id=150663

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Change the inline assembly versions of getHostCallReturnValue() to pass the location of the callee
call frame to getHostCallReturnValueWithExecState(). We were passing the caller's frame address.

  • jit/JITOperations.cpp:

LayoutTests:

New regression tests.

  • js/regress-150663-expected.txt: Added.
  • js/regress-150663.html: Added.
  • js/script-tests/regress-150663.js: Added.

(Test):
(Test.prototype.get sum):

3:30 AM Changeset in webkit [192227] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191756 - Very slow typing on pages with wheel event handlers on the body, and deep content
https://bugs.webkit.org/show_bug.cgi?id=150692
rdar://problem/23242631

Reviewed by Zalan Bujtas.

On a large page with a wheel event handler on the body, we would call
Element::absoluteEventHandlerBounds() for every element under the body,
and compute an absolute bounds for each one. This is very slow.

For now, optimize computing a region for the <body> by just using the document
bounds, which will always be as big or larger. It's OK for this region to
be an overestimate.

  • dom/Document.cpp:

(WebCore::Document::absoluteRegionForEventTargets):

3:28 AM Changeset in webkit [192226] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/bmalloc

Merge r191741 - bmalloc: AsyncTask should handle destruction
https://bugs.webkit.org/show_bug.cgi?id=150648

Reviewed by Mark Lam.

So we can use it in more places.

  • bmalloc/AsyncTask.h: Use std::thread instead of pthread because it

should be more portable.

(bmalloc::Function>::AsyncTask): Renamed Signaled to RunRequested for
clarity. Added an ExitRequested state.

(bmalloc::Function>::~AsyncTask): Wait for our child thread to exit
before destroying ourselves because our child thread will modify our
data (and might modify our client's data). Note that we only need to
wait for the last child thread since any prior child thread, having
reached the Exited condition, is guaranteed not to read or write any
data.

(bmalloc::Function>::run):
(bmalloc::Function>::runSlowCase): Updated for interface changes. Also
changed to use our WebKit style for condition signal: Hold the lock
during the signal and always notify all. Technically, neither is necessary,
but it is easier to understand the code this way, and harder to make
mistakes.

(bmalloc::Function>::threadEntryPoint):
(bmalloc::Function>::threadRunLoop): Handle the new ExitRequested state.
Technically, this state has no meaningful difference from the Exited
state, but it is nice to be explicit.

(bmalloc::Function>::join): Deleted.
(bmalloc::Function>::pthreadEntryPoint): Deleted.
(bmalloc::Function>::entryPoint): Deleted.

3:27 AM Changeset in webkit [192225] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191734 - MediaPlayer::getSupportedTypes only returns types from the last engine registered
https://bugs.webkit.org/show_bug.cgi?id=150669

Reviewed by Jer Noble.

No new tests, fixes existing tests.

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::getSupportedTypes):
(WebCore::MediaPlayer::isAvailable):

3:26 AM Changeset in webkit [192224] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191731 - Exploitable crash happens when an SVG contains an indirect resource inheritance cycle
https://bugs.webkit.org/show_bug.cgi?id=150203

Reviewed by Brent Fulgham.

Source/WebCore:

Detecting cycles in SVG resource references happens in two places.

  1. In SVGResourcesCycleSolver::resolveCycles() which it is called from SVGResourcesCache::addResourcesFromRenderer(). When a cycle is deleted, SVGResourcesCycleSolver::breakCycle() is called to break the link. In the case of a cyclic resource inheritance, SVGResources::resetLinkedResource() is called to break this cycle.
  2. SVGPatternElement::collectPatternAttributes() which is called from RenderSVGResourcePattern::buildPattern(). The purpose is to resolve the pattern attributes and to build a tile image which can be used to fill the SVG element renderer. Detecting the cyclic resource reference in this function is not sufficient and can detect simple cycles like

<pattern id="a" xlink:href="#b"/>
<pattern id="b" xlink:href="#a"/>.

But it does not detect cycles like:

<pattern id="a">

<rect fill="url(#b)"/>

</pattern>
<pattern id="b" xlink:href="#a"/>.

The fix is to get rid of SVGPatternElement::collectPatternAttributes() which
uses SVGURIReference::targetElementFromIRIString() to navigates through the
referenced resource elements and tries to detect cycles. Instead we can
implement RenderSVGResourcePattern::collectPatternAttributes() which calls
SVGResourcesCache::cachedResourcesForRenderer() to get the SVGResources
of the pattern. Then we use SVGResources::linkedResource() to navigate the
resource inheritance tree. The cached SVGResources is guaranteed to be free
of cycles.

Tests: svg/custom/pattern-content-inheritance-cycle.svg

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::collectPatternAttributes):
Collect the pattern attributes through the cachedResourcesForRenderer().

(WebCore::RenderSVGResourcePattern::buildPattern):
Direct the call to the renderer function.

  • rendering/svg/RenderSVGResourcePattern.h:
  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::layout):
RenderSVGRoot needs to call SVGResourcesCache::clientStyleChanged() for all
the invalidated resources. If an attribute of an SVG resource was updated
dynamically, the cached SVGResources associated with the renderer of this
resource was stale.

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):
Direct the call to the renderer function.

  • svg/SVGPatternElement.cpp:

(WebCore::SVGPatternElement::collectPatternAttributes):
(WebCore::setPatternAttributes): Deleted.
collectPatternAttributes() is a replacement of setPatternAttributes().

LayoutTests:

Ensure that we do not crash when an SVG has an indirect cyclic resource
inheritance. Make sure the cyclic resource was just ignored as if it did
not exist.

  • svg/custom/pattern-content-inheritance-cycle-expected.svg: Added.
  • svg/custom/pattern-content-inheritance-cycle.svg: Added.
3:17 AM Changeset in webkit [192223] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191680 - Should never be reached failure in WebCore::backgroundRectForBox
https://bugs.webkit.org/show_bug.cgi?id=150232

Reviewed by Simon Fraser.

We should never end up with simple container for composited layer when background-clip: text is present.
(not even when the box has no decoration to paint)

Source/WebCore:

Test: fast/backgrounds/background-clip-text-with-simple-container.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintsBoxDecorations):
(WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
(WebCore::backgroundRectForBox):

LayoutTests:

  • fast/backgrounds/background-clip-text-with-simple-container-expected.txt: Added.
  • fast/backgrounds/background-clip-text-with-simple-container.html: Added.
2:51 AM Changeset in webkit [192222] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WTF

Merge r191662 - [SOUP] Cannot build the network process in glibc-based BSD systems
https://bugs.webkit.org/show_bug.cgi?id=150618

Reviewed by Carlos Garcia Campos.

  • wtf/Platform.h: Don't enable HAVE_STAT_BIRTHTIME if the system

is using glibc.

2:50 AM Changeset in webkit [192221] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.10

Merge r191658 - [Cairo] Incorrect dashed and dotted border painting after r177686.
https://bugs.webkit.org/show_bug.cgi?id=141967

Reviewed by Gyuyoung Kim.

Fix the incorrect dashed/dotted border painting in cairo.

Source/WebCore:

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLine):
(WebCore::calculateStrokePatternOffset): Deleted.
(WebCore::drawLineOnCairoContext): Deleted.

LayoutTests:

  • platform/gtk/TestExpectations: Removed the passed test.
2:44 AM Changeset in webkit [192220] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191647 - Null dereference loading Blink layout test editing/execCommand/format-block-uneditable-crash.html
https://bugs.webkit.org/show_bug.cgi?id=150207
<rdar://problem/23137066>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-27
Reviewed by Enrica Casucci.

Source/WebCore:

This is a merge of Blink r200238:
https://codereview.chromium.org/1280263002

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

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded):
splitTextNode() will return early if the given text node is not editable. Hence, check
its editablity before calling the method.

LayoutTests:

  • editing/execCommand/format-block-uneditable-crash-expected.txt: Added.
  • editing/execCommand/format-block-uneditable-crash.html: Added.
2:43 AM Changeset in webkit [192219] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191636 - Cancel navigation policy checks like we do content policy checks.
https://bugs.webkit.org/show_bug.cgi?id=150582
rdar://problem/22077579

Reviewed by Brent Fulgham.

This was verified manually and I'll write a layout test for it soon.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::DocumentLoader):
(WebCore::DocumentLoader::~DocumentLoader):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::continueAfterNavigationPolicy):
(WebCore::DocumentLoader::cancelPolicyCheckIfNeeded):

  • loader/DocumentLoader.h:

Add a bool to keep track of whether we are waiting for navigation policy checks, like we do with content policy checks.
Without this check, sometimes callbacks are made to DocumentLoaders that do not exist any more because they do not get
cancelled by cancelPolicyCheckIfNeeded when detaching from the frame.

2:40 AM Changeset in webkit [192218] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191626 - Do not sanitize user input for input[type=url]
https://bugs.webkit.org/show_bug.cgi?id=150346
<rdar://problem/23243240>

Patch by Keith Rollin <Keith Rollin> on 2015-10-27
Reviewed by Darin Adler.

Source/WebCore:

Do not sanitize user input in text-based input fields that support
the Selection API, in order to not break JavaScript code that expects
element.value to match what's on the screen.

Test: fast/forms/input-user-input-sanitization.html

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::subtreeHasChanged):

LayoutTests:

Test the sanitization of text-based input fields when the user enters
text.

  • fast/forms/input-user-input-sanitization-expected.txt: Added.
  • fast/forms/input-user-input-sanitization.html: Added.
2:38 AM Changeset in webkit [192217] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebCore

Merge r191619 - [GTK] [Stable] Build GL texture mapper only if USE_TEXTURE_MAPPER_GL
https://bugs.webkit.org/show_bug.cgi?id=148606

Unreviewed, build-only change.

No new tests, build-only change.

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-10-26

  • PlatformGTK.cmake: Remove sources requiring GL from list of

sources that are built when USE_TEXTURE_MAPPER is true, and add a
separate condition within the USE_TEXTURE_MAPPER condition to
build those sources when USE_TEXTURE_MAPPER_GL is true.

2:37 AM Changeset in webkit [192216] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.10/Source/WebKit2

Merge r191618 - [GTK] [Stable] InstallMissingMediaPluginsPermissionRequest not defined when building without GStreamer
https://bugs.webkit.org/show_bug.cgi?id=148607

Unreviewed, build fix.

Patch by Philip Chimento <philip.chimento@gmail.com> on 2015-10-26

  • UIProcess/gstreamer/InstallMissingMediaPluginsPermissionRequest.h:

Add a stub for the InstallMissingMediaPluginsPermissionRequest class
for the case when video is disabled or not using GStreamer. It's OK
that this class does nothing, because the associated C API contains
an assert_not_reached if video is disabled. We just need to define
the symbol so that the function signature will compile.

1:50 AM Changeset in webkit [192215] by Carlos Garcia Campos
  • 9 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191610 - Floating box is misplaced after content change.
https://bugs.webkit.org/show_bug.cgi?id=150271

Reviewed by David Hyatt.

Collapse anonymous block when as the result of a sibling removal only floating siblings are left.

Source/WebCore:

Test: fast/block/collapse-anon-block-with-float-siblings-only.html

  • rendering/RenderBlock.cpp:

(WebCore::canCollapseAnonymousBlock):
(WebCore::canMergeContiguousAnonymousBlocks):
(WebCore::RenderBlock::collapseAnonymousBoxChild):
(WebCore::RenderBlock::removeChild):
(WebCore::canMergeAnonymousBlock): Deleted.

  • rendering/RenderBlock.h:
  • rendering/RenderElement.cpp:

(WebCore::RenderElement::removeAnonymousWrappersForInlinesIfNecessary):

LayoutTests:

  • fast/block/collapse-anon-block-with-float-siblings-only-expected.html: Added.
  • fast/block/collapse-anon-block-with-float-siblings-only.html: Added.
12:59 AM Changeset in webkit [192214] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191609 - Null dereference loading Blink layout test editing/execCommand/crash-replacing-list-by-list.html
https://bugs.webkit.org/show_bug.cgi?id=149288
<rdar://problem/22746310>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Chris Dumez.

Source/WebCore:

This is a merge of Blink r170821:
https://codereview.chromium.org/220233013

Test: editing/execCommand/crash-replacing-list-by-list.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::insertAsListItems):

LayoutTests:

  • editing/execCommand/crash-replacing-list-by-list-expected.txt: Added.
  • editing/execCommand/crash-replacing-list-by-list.html: Added.
12:58 AM Changeset in webkit [192213] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191608 - Null dereference loading Blink layout test editing/execCommand/insert-image-changing-visibility-crash.html
https://bugs.webkit.org/show_bug.cgi?id=150208
<rdar://problem/23137109>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Chris Dumez.

Source/WebCore:

This is a merge from Blink r168502:
https://codereview.chromium.org/183893018

Test: editing/execCommand/insert-image-changing-visibility-crash.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):
We should check again the visibility of the inserted position again since
the replacement might change the visibility.

LayoutTests:

  • editing/execCommand/insert-image-changing-visibility-crash-expected.txt: Added.
  • editing/execCommand/insert-image-changing-visibility-crash.html: Added.
12:57 AM Changeset in webkit [192212] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191605 - Null dereference loading Blink layout test editing/execCommand/insert-ordered-list-crash.html
https://bugs.webkit.org/show_bug.cgi?id=150209
<rdar://problem/23137198>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Chris Dumez.

Source/WebCore:

This is a merge from Blink r168006:
https://codereview.chromium.org/181283002

Test: editing/execCommand/insert-ordered-list-crash.html

  • editing/InsertListCommand.cpp:

(WebCore::InsertListCommand::doApply):
setEndingSelection() might change endingSelection(), we should check again.

LayoutTests:

  • editing/execCommand/insert-ordered-list-crash-expected.txt: Added.
  • editing/execCommand/insert-ordered-list-crash.html: Added.
12:55 AM Changeset in webkit [192211] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191604 - Null dereference loading Blink layout test editing/execCommand/insert-html-to-document-element-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149294
<rdar://problem/22746657>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Darin Adler.

Source/WebCore:

This is a merge of Blink r175019:
https://codereview.chromium.org/300143012

Test: editing/execCommand/insert-html-to-document-element-crash.html

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
check nullable value |element->parentNode()| before using it.

LayoutTests:

  • editing/execCommand/insert-html-to-document-element-crash-expected.txt: Added.
  • editing/execCommand/insert-html-to-document-element-crash.html: Added.
12:54 AM Changeset in webkit [192210] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191603 - Null dereference loading Blink layout test editing/execCommand/indent-nested-blockquotes-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149291
<rdar://problem/22746473>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Darin Adler.

Source/WebCore:

This is a merge of Blink r172967:
https://codereview.chromium.org/251723003

Test: editing/execCommand/indent-nested-blockquotes-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertNodeAfter):

LayoutTests:

  • editing/execCommand/indent-nested-blockquotes-crash-expected.txt: Added.
  • editing/execCommand/indent-nested-blockquotes-crash.html: Added.
12:53 AM Changeset in webkit [192209] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191597 - Null dereference loading Blink layout test editing/execCommand/indent-inline-box-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149290
<rdar://problem/22746435>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Alex Christensen.

Source/WebCore:

This is a merge of Blink r174952:
https://codereview.chromium.org/297203004

Test: editing/execCommand/indent-inline-box-crash.html

  • editing/IndentOutdentCommand.cpp:

(WebCore::IndentOutdentCommand::tryIndentingAsListItem):

LayoutTests:

  • editing/execCommand/indent-inline-box-crash-expected.txt: Added.
  • editing/execCommand/indent-inline-box-crash.html: Added.
12:51 AM Changeset in webkit [192208] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191596 - Null dereference loading Blink layout test editing/execCommand/indent-no-visible-contents-crash.html
https://bugs.webkit.org/show_bug.cgi?id=149292
<rdar://problem/22746530>

Patch by Jiewen Tan <jiewen_tan@apple.com> on 2015-10-26
Reviewed by Alex Christensen.

Source/WebCore:

This is a merge of Blink r176735:
https://codereview.chromium.org/349143002

Test: editing/execCommand/indent-no-visible-contents-crash.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::moveParagraphWithClones):

Sometimes callers of this method will pass null startOfParagraphToMove
endOfParagraphToMove,

hence check them before proceeding.

LayoutTests:

  • editing/execCommand/indent-no-visible-contents-crash-expected.txt: Added.
  • editing/execCommand/indent-no-visible-contents-crash.html: Added.
12:51 AM Changeset in webkit [192207] by calvaris@igalia.com
  • 7 edits in trunk

[Streams API] Shield promises when prototype is replaced from a promise
https://bugs.webkit.org/show_bug.cgi?id=151033

Reviewed by Darin Adler.

Source/WebCore:

Instead of calling @then or @catch, that could have disappeared if the user successfully replaces a promise
constructor, we call the methods stored at @Promise.prototype, which are safe as @Promise.prototype.@then.@call
and @Promise.prototype.@catch.@call.

Test: streams/streams-promises.html, expectations updated.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):
(teeReadableStreamPullFunction):
(teeReadableStreamBranch2CancelFunction):
(cancelReadableStream):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):

  • Modules/streams/WritableStreamInternals.js:

(callOrScheduleWritableStreamAdvanceQueue):

LayoutTests:

  • streams/streams-promises-expected.txt: Updated expectations.
12:49 AM Changeset in webkit [192206] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.10

Merge r191589 - Incorrect repeated background-size behavior in keyframes
https://bugs.webkit.org/show_bug.cgi?id=150309

Reviewed by Zalan Bujtas.

Source/WebCore:

After computing the style for a keyframe, we failed to propagate unset
fill-layer properties to all layers, which caused incorrect behavior when
there were multiple background images, but only one value on a background
property in the keyframes.

Fix by calling adjustRenderStyle() on keyframe styles, which invokes
style.adjustBackgroundLayers() which fixes the bug.

Test: animations/multiple-backgrounds.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::styleForKeyframe):

LayoutTests:

  • animations/multiple-backgrounds-expected.html: Added.
  • animations/multiple-backgrounds.html: Added.
12:46 AM Changeset in webkit [192205] by jonlee@apple.com
  • 4 edits
    2 adds in trunk

REGRESSION (r189567): Inline controls on Mac are misplaced
https://bugs.webkit.org/show_bug.cgi?id=151072

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/controls/fullscreen-button-inline-layout.html

For a certain range of video widths, r189567 caused the timeline track to be
too large, pushing the buttons on the right side of the inline controls out of
the rect bounds.

The fix is to set min-width to 0. The test added checks to see that the right
edge of the fullscreen button is within the rect bounds.

  • Modules/mediacontrols/mediaControlsApple.css:

(audio::-webkit-media-controls-timeline-container): Add min-width.
(audio::-webkit-media-controls-panel .thumbnail-track): Ditto. Fly-by fix of height rule.

LayoutTests:

  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.isLessThan): Add helper function.

  • media/controls/fullscreen-button-inline-layout-expected.txt: Added.
  • media/controls/fullscreen-button-inline-layout.html: Added.
12:22 AM Changeset in webkit [192204] by youenn.fablet@crf.canon.fr
  • 26 edits in trunk/Source/JavaScriptCore

create_hash_table should know whether a function is JSBuiltin or not.
https://bugs.webkit.org/show_bug.cgi?id=151016

Reviewed by Darin Adler.

lut description information can explicitly state that a function is to be implemented as a JS built-in.
To do so, the field used to give the C++ function must be set to "JSBuiltin".
Updated create_hash_table script to handle that.
create_hash_table only includes JSCBuiltins.h if at least one function is set to "JSBuiltin".

Updated builtin generator to remove XX_BUILTIN_EXIST macro.
A further patch should simplify the build system by removing create_hash_table -b option.

Changes to the builtin generator are covered by rebased expectations.

Moved all lut information to using JSBuiltin whenever needed.

  • Scripts/builtins/builtins_generate_combined_header.py:

(generate_section_for_object): Deleted.
(generate_section_for_code_table_macro): Deleted.

  • Scripts/builtins/builtins_templates.py:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.prototype-Separate.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-GuardedInternalBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result:
  • Scripts/tests/builtins/expected/WebCore-xmlCasingTest-Separate.js-result:
  • create_hash_table:
  • runtime/ArrayConstructor.cpp:
  • runtime/ArrayIteratorPrototype.cpp:
  • runtime/InspectorInstrumentationObject.cpp:
  • runtime/JSInternalPromiseConstructor.cpp:
  • runtime/JSPromiseConstructor.cpp:
  • runtime/JSPromisePrototype.cpp:
  • runtime/ModuleLoaderObject.cpp:
  • runtime/ObjectConstructor.cpp:
  • runtime/ReflectObject.cpp:
  • runtime/StringConstructor.cpp:
  • runtime/StringIteratorPrototype.cpp:

Nov 9, 2015:

11:48 PM Changeset in webkit [192203] by sbarati@apple.com
  • 36 edits
    7 adds in trunk/Source/JavaScriptCore

Implement try/catch in the FTL
https://bugs.webkit.org/show_bug.cgi?id=149409

Reviewed by Filip Pizlo.

This patch implements try/catch in the FTL in a similar
way to how it's implemented in the DFG. The main idea is
this: anytime an exception is thrown in a try block,
we OSR exit into the baseline JIT's corresponding catch
block. We compile OSR exits in a few forms:
1) Explicit exception checks that check VM's exception
pointer. This is modeled explicitly in LLVM IR.
2) OSR exits that are arrived at from genericUnwind
caused by an exception being thrown in a JS call (including
getters and setters).
3) Exception from lazy slow paths.
4) Exception from when an IC misses and makes a slow path C Call.

All stackmaps associated with the above types of exits all
take arguments that correspond to variables that are
bytecode-live in the catch block.

1) Item 1 is the simplest implementation. When inside
a try block, exception checks will emit a branch to
an OSR exit stackmap intrinsic. This stackmap intrinsic
takes as arguments the live catch variables.

2) All forms of calls and GetByIds and PutByIds are implemented
as patchpoints in LLVM. As a patchpoint, they have a stackmap ID.
We use the same stackmap ID for the OSR exit. The OSR exit arguments
are appended to the end of the normal arguments for the patchpoint. These
types of OSR exits are only reached indirectly via genericUnwind.
Therefore, the LLVM IR we generate never has a direct branch to them.
These are the OSR exits we store in the CodeBlock's exception handling
table. The exception handlers' code locations point to the beginning
of the corresponding OSR exit. There is an interesting story here
about how we preserve registers. LLVM patchpoints assume late clobber,
i.e, they assume we use the patchpoint arguments before we clobber them.
Therefore, it's sound for LLVM to pass us arguments in volatile registers.
We must take care to store the arguments in volatile registers to the
stack before making a call. We ensure we have stack space for these
by using LLVM's alloca instruction. Then, when making a call inside
a try block, we spill the needed registers, and if that call throws,
we make sure the OSR exit fills the corresponding registers.

3) Exceptions from lazy slow paths are similar to (2) except they
don't go through generic unwind. These OSR Exits are arrived at from explicit
exception checks in the generated lazy slow path. Therefore, the callframe
is intact when arriving at the OSR exit. We make sure such lazy slow
paths exception check are linked to the OSR exit's code location.

4) This has a really interesting register preservation story.
We may have a GetById that has an IC miss and therefore goes
through the FTL's callOperation machinery. LLVM may also
ask for the result to be placed in the same register as the
base. Therefore, after the call, when storing to the result,
we overwrite the base. This can't fly with exceptions because
operationGetByIdOptimize may throw an exception and return "undefined". What
we really want is the original base value for OSR exit value
recovery. In this case, we take special care to flush the base
value to the stack before the callOperation GetById slow path.
Like call OSR exits, these types of exits will recover the base
value from the stack when necessary.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::newExceptionHandlingCallSiteIndex):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::canOptimizeStringObjectAccess):
(JSC::DFG::Graph::willCatchExceptionInMachineFrame):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::appendExceptionHandlingOSRExit):
(JSC::DFG::JITCompiler::exceptionCheck):
(JSC::DFG::JITCompiler::recordCallSiteAndGenerateExceptionHandlingOSRExitIfNeeded):
(JSC::DFG::JITCompiler::willCatchExceptionInMachineFrame): Deleted.

  • dfg/DFGJITCompiler.h:
  • dfg/DFGNodeOrigin.h:

(JSC::DFG::NodeOrigin::withSemantic):
(JSC::DFG::NodeOrigin::withForExitAndExitOK):
(JSC::DFG::NodeOrigin::withExitOK):

  • dfg/DFGOSRExit.cpp:

(JSC::DFG::OSRExit::OSRExit):

  • dfg/DFGOSRExit.h:

(JSC::DFG::OSRExit::considerAddingAsFrequentExitSite):

  • dfg/DFGOSRExitBase.h:

(JSC::DFG::OSRExitBase::OSRExitBase):
(JSC::DFG::OSRExitBase::considerAddingAsFrequentExitSite):

  • dfg/DFGOSRExitCompilerCommon.cpp:

(JSC::DFG::reifyInlinedCallFrames):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGTierUpCheckInjectionPhase.cpp:

(JSC::DFG::TierUpCheckInjectionPhase::run):

  • ftl/FTLCompile.cpp:

(JSC::FTL::mmAllocateDataSection):

  • ftl/FTLExitArgument.h:

(JSC::FTL::ExitArgument::withFormat):
(JSC::FTL::ExitArgument::representation):

  • ftl/FTLExitThunkGenerator.cpp:

(JSC::FTL::ExitThunkGenerator::~ExitThunkGenerator):
(JSC::FTL::ExitThunkGenerator::emitThunk):
(JSC::FTL::ExitThunkGenerator::emitThunks):

  • ftl/FTLExitThunkGenerator.h:

(JSC::FTL::ExitThunkGenerator::didThings):

  • ftl/FTLExitValue.h:

(JSC::FTL::ExitValue::isArgument):
(JSC::FTL::ExitValue::isRecovery):
(JSC::FTL::ExitValue::isObjectMaterialization):
(JSC::FTL::ExitValue::hasIndexInStackmapLocations):
(JSC::FTL::ExitValue::exitArgument):
(JSC::FTL::ExitValue::rightRecoveryArgument):
(JSC::FTL::ExitValue::adjustStackmapLocationsIndexByOffset):
(JSC::FTL::ExitValue::recoveryFormat):

  • ftl/FTLJITCode.cpp:

(JSC::FTL::JITCode::validateReferences):
(JSC::FTL::JITCode::liveRegistersToPreserveAtExceptionHandlingCallSite):

  • ftl/FTLJSCall.cpp:

(JSC::FTL::JSCall::JSCall):
(JSC::FTL::JSCall::emit):

  • ftl/FTLJSCall.h:

(JSC::FTL::JSCall::stackmapID):

  • ftl/FTLJSCallBase.cpp:

(JSC::FTL::JSCallBase::JSCallBase):
(JSC::FTL::JSCallBase::emit):

  • ftl/FTLJSCallBase.h:

(JSC::FTL::JSCallBase::setCallSiteIndex):
(JSC::FTL::JSCallBase::callSiteDescriptionOrigin):
(JSC::FTL::JSCallBase::setCorrespondingGenericUnwindOSRExit):

  • ftl/FTLJSCallVarargs.cpp:

(JSC::FTL::JSCallVarargs::numSpillSlotsNeeded):
(JSC::FTL::JSCallVarargs::emit):

  • ftl/FTLJSCallVarargs.h:

(JSC::FTL::JSCallVarargs::stackmapID):
(JSC::FTL::JSCallVarargs::operator<):
(JSC::FTL::JSCallVarargs::setCallSiteIndex):
(JSC::FTL::JSCallVarargs::callSiteDescriptionOrigin):
(JSC::FTL::JSCallVarargs::setCorrespondingGenericUnwindOSRExit):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutById):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstruct):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCallOrConstructVarargs):
(JSC::FTL::DFG::LowerDFGToLLVM::getById):
(JSC::FTL::DFG::LowerDFGToLLVM::lazySlowPath):
(JSC::FTL::DFG::LowerDFGToLLVM::speculate):
(JSC::FTL::DFG::LowerDFGToLLVM::terminate):
(JSC::FTL::DFG::LowerDFGToLLVM::appendTypeCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::callPreflight):
(JSC::FTL::DFG::LowerDFGToLLVM::callCheck):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitArgumentsForPatchpointIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::emitBranchToOSRExitIfWillCatchException):
(JSC::FTL::DFG::LowerDFGToLLVM::lowBlock):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExitDescriptor):
(JSC::FTL::DFG::LowerDFGToLLVM::appendOSRExit):
(JSC::FTL::DFG::LowerDFGToLLVM::exitValueForNode):

  • ftl/FTLOSRExit.cpp:

(JSC::FTL::OSRExitDescriptor::OSRExitDescriptor):
(JSC::FTL::OSRExit::OSRExit):
(JSC::FTL::OSRExit::codeLocationForRepatch):
(JSC::FTL::OSRExit::gatherRegistersToSpillForCallIfException):
(JSC::FTL::OSRExit::spillRegistersToSpillSlot):
(JSC::FTL::OSRExit::recoverRegistersFromSpillSlot):

  • ftl/FTLOSRExit.h:

(JSC::FTL::OSRExit::considerAddingAsFrequentExitSite):

  • ftl/FTLOSRExitCompilationInfo.h:

(JSC::FTL::OSRExitCompilationInfo::OSRExitCompilationInfo):

  • ftl/FTLOSRExitCompiler.cpp:

(JSC::FTL::compileStub):
(JSC::FTL::compileFTLOSRExit):

  • ftl/FTLState.cpp:

(JSC::FTL::State::State):

  • ftl/FTLState.h:
  • interpreter/Interpreter.cpp:

(JSC::findExceptionHandler):

  • jit/RegisterSet.cpp:

(JSC::RegisterSet::specialRegisters):
(JSC::RegisterSet::volatileRegistersForJSCall):
(JSC::RegisterSet::stubUnavailableRegisters):

  • jit/RegisterSet.h:
  • tests/stress/ftl-try-catch-getter-ic-fail-to-call-operation-throw-error.js: Added.

(assert):
(let.oThrow.get f):
(let.o2.get f):
(foo):
(f):

  • tests/stress/ftl-try-catch-getter-throw.js: Added.

(assert):
(random):
(foo):
(f):
(let.o2.get f):

  • tests/stress/ftl-try-catch-oom-error-lazy-slow-path.js: Added.

(assert):
(a):
(b):
(c):
(d):
(e):
(f):
(g):
(foo):
(blah):

  • tests/stress/ftl-try-catch-patchpoint-with-volatile-registers.js: Added.

(assert):
(o1.get f):
(a):
(b):
(c):
(d):
(e):
(f):
(g):
(o2.get f):
(foo):

  • tests/stress/ftl-try-catch-setter-throw.js: Added.

(foo):
(assert):
(f):
(let.o2.set f):

  • tests/stress/ftl-try-catch-tail-call-inilned-caller.js: Added.

(value):
(assert):
(validate):
(bar):
(baz):
(jaz):

  • tests/stress/ftl-try-catch-varargs-call-throws.js: Added.

(foo):
(f):

  • tests/stress/try-catch-stub-routine-replaced.js:

(hello):
(foo):

11:21 PM Changeset in webkit [192202] by youenn.fablet@crf.canon.fr
  • 5 edits
    1 copy
    2 adds in trunk/Source/JavaScriptCore

Built-in generator should check that there are no duplicate in JS built-in internal functions
https://bugs.webkit.org/show_bug.cgi?id=151018

Reviewed by Brian Burg.

Added @internal to corresponding JS built-in files.
Added check in built-in generator so that clashing names result in an error.

  • Scripts/builtins/builtins_generate_combined_header.py:

(generate_section_for_code_name_macro):

  • Scripts/builtins/builtins_model.py:

(BuiltinsCollection.all_internal_functions):

  • builtins/GlobalObject.js:
  • builtins/Operations.Promise.js:
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-error: Added.
  • Scripts/tests/builtins/expected/JavaScriptCore-InternalClashingNames-Combined.js-result: Added.
11:19 PM Changeset in webkit [192201] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix GTK+ build after r192184.

  • WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:

(WebKit::LayerTreeHostGtk::initialize):
(WebKit::LayerTreeHostGtk::pageBackgroundTransparencyChanged):

10:24 PM Changeset in webkit [192200] by eric.carlson@apple.com
  • 46 edits
    3 copies
    1 add in trunk

[Mac] Add a mock AppleTV device for testing
https://bugs.webkit.org/show_bug.cgi?id=148912
<rdar://problem/22596272>

Reviewed by Tim Horton.

Source/WebCore:

No new tests, updated media/controls/airplay-picker.html.

  • Modules/mediasession/WebMediaSessionManager.cpp:

(WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerEnabled): New, enable or disable

the mock picker.

(WebCore::WebMediaSessionManager::setMockMediaPlaybackTargetPickerState): New, set mock picker state.
(WebCore::WebMediaSessionManager::mockPicker): New.
(WebCore::WebMediaSessionManager::targetPicker): Return the platform or mock picker, as per settings.
(WebCore::webMediaSessionManagerOverride): Deleted.
(WebCore::WebMediaSessionManager::shared): Deleted.
(WebCore::WebMediaSessionManager::setWebMediaSessionManagerOverride): Deleted.

  • Modules/mediasession/WebMediaSessionManager.h:
  • WebCore.xcodeproj/project.pbxproj: Add MediaPlaybackTargetPickerMock.* and MediaPlaybackTargetMock.*.
  • page/ChromeClient.h: add setMockMediaPlaybackTargetPickerEnabled and setMockMediaPlaybackTargetPickerState.
  • page/Page.cpp:

(WebCore::Page::playbackTargetPickerClientStateDidChange):
(WebCore::Page::setMockMediaPlaybackTargetPickerEnabled): New.
(WebCore::Page::setMockMediaPlaybackTargetPickerState): New.
(WebCore::Page::setPlaybackTarget):

  • page/Page.h:
  • platform/graphics/MediaPlaybackTarget.h:

(WebCore::noMediaPlaybackTargetContext):
(WebCore::MediaPlaybackTarget::~MediaPlaybackTarget):
(WebCore::MediaPlaybackTarget::deviceName):
(WebCore::MediaPlaybackTarget::MediaPlaybackTarget):

  • platform/graphics/MediaPlaybackTargetContext.h: Make a class instead of a struct.

(WebCore::MediaPlaybackTargetContext::MediaPlaybackTargetContext):
(WebCore::MediaPlaybackTargetContext::type):
(WebCore::MediaPlaybackTargetContext::mockDeviceName):
(WebCore::MediaPlaybackTargetContext::mockState):
(WebCore::MediaPlaybackTargetContext::avOutputContext):
(WebCore::MediaPlaybackTargetContext::encodingRequiresPlatformData):

  • platform/graphics/MediaPlaybackTargetPicker.cpp: Move much of the code from MediaPlaybackTargetMac.mm here so it can be the base class.

(WebCore::MediaPlaybackTargetPicker::MediaPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPicker::~MediaPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPicker::pendingActionTimerFired):
(WebCore::MediaPlaybackTargetPicker::addPendingAction):
(WebCore::MediaPlaybackTargetPicker::showPlaybackTargetPicker):

  • platform/graphics/MediaPlaybackTargetPicker.h:

(WebCore::MediaPlaybackTargetPicker::availableDevicesDidChange):
(WebCore::MediaPlaybackTargetPicker::currentDeviceDidChange):
(WebCore::MediaPlaybackTargetPicker::client):
(WebCore::MediaPlaybackTargetPicker::setClient):

  • platform/graphics/avfoundation/MediaPlaybackTargetMac.h:

(WebCore::MediaPlaybackTargetMac::outputContext):
(WebCore::MediaPlaybackTargetMac::targetType): Deleted.

  • platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:

(WebCore::MediaPlaybackTargetMac::targetContext):
(WebCore::MediaPlaybackTargetMac::hasActiveRoute):
(WebCore::MediaPlaybackTargetMac::deviceName):

  • platform/graphics/avfoundation/WebMediaSessionManagerMac.cpp:

(WebCore::WebMediaSessionManager::shared): Renamed from platformManager.
(WebCore::WebMediaSessionManagerMac::platformPicker): Renamed from targetPicker.
(WebCore::WebMediaSessionManager::platformManager): Deleted.
(WebCore::WebMediaSessionManagerMac::targetPicker): Deleted.

  • platform/graphics/avfoundation/WebMediaSessionManagerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.h:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:

(WebCore::MediaPlaybackTargetPickerMac::MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::~MediaPlaybackTargetPickerMac):
(WebCore::MediaPlaybackTargetPickerMac::externalOutputDeviceAvailable):
(WebCore::MediaPlaybackTargetPickerMac::playbackTarget):
(WebCore::MediaPlaybackTargetPickerMac::devicePicker):
(WebCore::MediaPlaybackTargetPickerMac::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPickerMac::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMac::pendingActionTimerFired): Deleted.
(WebCore::MediaPlaybackTargetPickerMac::availableDevicesDidChange): Deleted.
(WebCore::MediaPlaybackTargetPickerMac::addPendingAction): Deleted.
(WebCore::MediaPlaybackTargetPickerMac::currentDeviceDidChange): Deleted.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless): Add support for

mock target.

(WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessPlaybackTarget): Ditto.
(WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldPlayToPlaybackTarget): Ditto.

  • platform/mock/MediaPlaybackTargetMock.cpp: Added.

(WebCore::MediaPlaybackTargetMock::create):
(WebCore::MediaPlaybackTargetMock::MediaPlaybackTargetMock):
(WebCore::MediaPlaybackTargetMock::~MediaPlaybackTargetMock):
(WebCore::MediaPlaybackTargetMock::targetContext):
(WebCore::toMediaPlaybackTargetMock):

  • platform/mock/MediaPlaybackTargetMock.h: Added.
  • platform/mock/MediaPlaybackTargetPickerMock.cpp: Added.

(WebCore::MediaPlaybackTargetPickerMock::create):
(WebCore::MediaPlaybackTargetPickerMock::MediaPlaybackTargetPickerMock):
(WebCore::MediaPlaybackTargetPickerMock::~MediaPlaybackTargetPickerMock):
(WebCore::MediaPlaybackTargetPickerMock::externalOutputDeviceAvailable):
(WebCore::MediaPlaybackTargetPickerMock::playbackTarget):
(WebCore::MediaPlaybackTargetPickerMock::timerFired):
(WebCore::MediaPlaybackTargetPickerMock::showPlaybackTargetPicker):
(WebCore::MediaPlaybackTargetPickerMock::startingMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::stopMonitoringPlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::invalidatePlaybackTargets):
(WebCore::MediaPlaybackTargetPickerMock::setState):

  • platform/mock/MediaPlaybackTargetPickerMock.h: Added.
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setMockMediaPlaybackTargetPickerEnabled):
(WebCore::Internals::setMockMediaPlaybackTargetPickerState):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit/mac:

  • WebCoreSupport/WebChromeClient.h:
  • WebCoreSupport/WebChromeClient.mm:

(WebChromeClient::setMockMediaPlaybackTargetPickerEnabled): New.
(WebChromeClient::setMockMediaPlaybackTargetPickerState): Ditto.

  • WebView/WebMediaPlaybackTargetPicker.h:
  • WebView/WebMediaPlaybackTargetPicker.mm:

(WebMediaPlaybackTargetPicker::setMockMediaPlaybackTargetPickerEnabled): New.
(WebMediaPlaybackTargetPicker::setMockMediaPlaybackTargetPickerState): Ditto.

  • WebView/WebView.mm:

(-[WebView _setMockMediaPlaybackTargetPickerEnabled:]): New.
(-[WebView _setMockMediaPlaybackTargetPickerName:state:]): Ditto.

  • WebView/WebViewInternal.h:

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encode): Update for MediaPlaybackTargetContext changes.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decode): Ditto.

  • Shared/WebCoreArgumentCoders.h:
  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<MediaPlaybackTargetContext>::encodePlatformData): Ditto.
(IPC::ArgumentCoder<MediaPlaybackTargetContext>::decodePlatformData): Ditto.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerEnabled): New.
(WebKit::WebPageProxy::setMockMediaPlaybackTargetPickerState): Ditto.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Add SetMockMediaPlaybackTargetPickerEnabled and SetMockMediaPlaybackTargetPickerState.
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::setMockMediaPlaybackTargetPickerEnabled): New.
(WebKit::WebChromeClient::setMockMediaPlaybackTargetPickerState): Ditto.

  • WebProcess/WebCoreSupport/WebChromeClient.h:
  • WebProcess/WebPage/WebPage.h: MediaPlaybackTargetContext is a class, not a struct.
  • WebProcess/WebPage/WebPage.messages.in: Ditto.
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::playbackTargetSelected): Support mock target.

LayoutTests:

  • media/controls/airplay-picker-expected.txt: Updated.
  • media/controls/airplay-picker.html: Test button state when there is a device available.
  • media/controls/controls-test-helpers.js:

(ControlsTest.prototype.stateForControlsElement): Add an optional parameter to force the flushed

state to be flushed.

(ControlsTest.prototype.contains): New.
(ControlsTest.prototype.doesNotContain): Ditto.

  • platform/mac/TestExpectations: Skipped new tests on older versions of OS X.
9:04 PM Changeset in webkit [192199] by jh718.park@samsung.com
  • 2 edits in trunk/Tools

Unreviewed, add myself to the committers list.

  • Scripts/webkitpy/common/config/contributors.json:
8:39 PM Changeset in webkit [192198] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Support Gesture Events to zoom in / out of the Timeline
https://bugs.webkit.org/show_bug.cgi?id=151071

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-09
Reviewed by Timothy Hatcher.

Adjust the Timeline's secondsPerPixel value by the gesture event's scale factor.

  • UserInterface/Views/TimelineOverview.js:

(WebInspector.TimelineOverview):
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
(WebInspector.TimelineOverview.prototype._handleGestureEnd):

6:22 PM Changeset in webkit [192197] by Wenson Hsieh
  • 3 edits in trunk/Source/WebCore

Unreviewed, fix the windows build

Update the signature of scrollableAreaBoundingBox, changed by r192193.

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::scrollableAreaBoundingBox):

  • platform/win/PopupMenuWin.h:
5:46 PM Changeset in webkit [192196] by ryuan.choi@navercorp.com
  • 23 edits
    3 copies in trunk

[EFL] Crash while opening child webview with EWK_PROCESS_MODEL_MULTIPLE_SECONDARY
https://bugs.webkit.org/show_bug.cgi?id=145924

Reviewed by Gyuyoung Kim.

Source/WebKit2:

There are some crashes when we clicked the link that opens child window
via window.open or <a> tag with _blank target if process model is multiple
secondary.

It's because multiple secondary process model tries to assign new webprocess
if related page is null. In order to keep the child window in same process
with opener, we should pass related page when we create WebPageProxy.

This patch adds ewk_view_configuration object and ewk_view_add_configuration()
to pass related page to WebPageProxy.

  • PlatformEfl.cmake:
  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewCreate):

  • UIProcess/API/C/CoordinatedGraphics/WKView.h:
  • UIProcess/API/efl/EWebKit2.h.in:
  • UIProcess/API/efl/EwkView.cpp:

(EwkView::createNewPage):

  • UIProcess/API/efl/ewk_view_configuration.cpp: Added.
  • UIProcess/API/efl/ewk_view_configuration.h: Added.
  • UIProcess/API/efl/ewk_view_configuration_private.h: Added.
  • UIProcess/API/efl/ewk_view.cpp:

(EWKViewCreate):
(ewk_view_smart_add):
(ewk_view_add_with_configuration): Added to pass configuration.
(ewk_view_add_with_context):

  • UIProcess/API/efl/ewk_view.h:
  • UIProcess/API/efl/ewk_view_private.h:
  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

(EWK2UnitTest::EWK2UnitTestBase::waitUntilTitleChangedTo):
(EWK2UnitTest::EWK2UnitTestBase::waitUntilNotNull):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.h:
  • UIProcess/API/efl/tests/test_ewk2_view.cpp: Added test cases to test window_create smart method.

(windowCreateCallback):
(TEST_F):
(EWK2ViewTestNewWindowWithMultipleProcesses::EWK2ViewTestNewWindowWithMultipleProcesses):

  • UIProcess/API/efl/tests/test_ewk2_window_features.cpp:

(EWK2WindowFeaturesTest::createDefaultWindow):
(EWK2WindowFeaturesTest::createWindow):

  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::WebView):

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/efl/WebInspectorProxyEfl.cpp:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • UIProcess/efl/WebViewEfl.cpp:

(WebKit::WebView::create):
(WebKit::WebViewEfl::WebViewEfl):

  • UIProcess/efl/WebViewEfl.h:

Tools:

  • MiniBrowser/efl/main.c:

(on_window_create):
(window_create):

  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/efl/PlatformWebView.cpp:

(TestWebKitAPI::PlatformWebView::PlatformWebView):

  • WebKitTestRunner/efl/PlatformWebViewEfl.cpp:

(WTR::PlatformWebView::PlatformWebView):

5:11 PM Changeset in webkit [192195] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Don't call Vector::uncheckedAppend on a vector that we haven't reserved the capacity for
https://bugs.webkit.org/show_bug.cgi?id=151069
rdar://problem/23473435

Reviewed by Tim Horton.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(initializeMethod):

5:10 PM Changeset in webkit [192194] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Allow iOS to create linearRGB colorspaces
https://bugs.webkit.org/show_bug.cgi?id=151059

Reviewed by Tim Horton.

Remove iOS #ifdefs around code that creates linearized RGB colorspaces, as used
by SVG filters. Blending doesn't actually work correctly, but there's no reason
to #ifdef differently here.

  • platform/graphics/cg/GraphicsContextCG.cpp:
  • platform/graphics/mac/GraphicsContextMac.mm:

(WebCore::linearRGBColorSpaceRef):

5:07 PM Changeset in webkit [192193] by Wenson Hsieh
  • 17 edits
    2 adds in trunk

Sometimes unable to scroll fixed div when the body is scrollable
https://bugs.webkit.org/show_bug.cgi?id=151015
<rdar://problem/23445723>

Reviewed by Simon Fraser.

Source/WebCore:

Currently, if we scroll a page containing a fixed scrollable area, the non-fast-scrollable region corresponding to a fixed
area will not move down to reflect its new bounds in absolute coordinates, making it impossible to scroll position: fixed
overflow elements when the body's scroll position changes. To fix this, we inflate the non-fast-scrollable region
corresponding to scrollable position: fixed elements such that their regions encompass the area, relative to the page,
wherein the fixed element may lie when the page is scrolled by any amount within its scroll limits.

We also optimize the non-fast-scrollable regions emitted by elements that handle wheel events. Currently, if a fixed element
also has a wheel event handler, we take the entire document's rect to be non-fast-scrollable. This patch changes this region
to behave the same way as fixed scrollable elements above.

This patch also folds some common logic used to accomplish this into FrameView for use by RenderLayerCompositor and RenderView.

Test: tiled-drawing/scrolling/non-fast-region/fixed-div-in-scrollable-page.html

  • page/FrameView.cpp:

(WebCore::FrameView::fixedScrollableAreaBoundsInflatedForScrolling):
(WebCore::FrameView::scrollOffsetRespectingCustomFixedPosition):

  • page/FrameView.h:
  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::absoluteNonFastScrollableRegionForFrame):

  • platform/ScrollableArea.h:

(WebCore::ScrollableArea::scrollableAreaBoundingBox):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollableAreaBoundingBox):

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

(WebCore::RenderLayerCompositor::computeExtent):
(WebCore::fixedPositionOffset): Deleted.

  • rendering/RenderView.cpp:

(WebCore::RenderView::mapLocalToContainer):
(WebCore::RenderView::pushMappingToContainer):
(WebCore::RenderView::mapAbsoluteToLocalPoint):
(WebCore::RenderView::computeRectForRepaint):
(WebCore::fixedPositionOffset): Deleted.

LayoutTests:

Adds a new test that scrolling a fixed div is possible when the page is scrolled. Also
changes some existing non-fast-scrollable region tests to match the new behavior for
computing non-fast-scrollable regions for fixed scrollable elements (see ChangeLog
entry in WebCore for more details).

  • tiled-drawing/scrolling/non-fast-region/fixed-div-in-scrollable-page-expected.txt: Added.
  • tiled-drawing/scrolling/non-fast-region/fixed-div-in-scrollable-page.html: Added.
  • tiled-drawing/scrolling/non-fast-region/wheel-handler-fixed-child-expected.txt:
  • tiled-drawing/scrolling/non-fast-region/wheel-handler-inside-fixed-expected.txt:
  • tiled-drawing/scrolling/non-fast-region/wheel-handler-on-fixed-expected.txt:
4:55 PM Changeset in webkit [192192] by Ryan Haddad
  • 4 edits
    4 deletes in trunk

Unreviewed, rolling out r192181.

This change causes asserts on mac-wk1 debug testers

Reverted changeset:

"Fixed crash loading Mozilla layout test
editor/libeditor/crashtests/431086-1.xhtml."
https://bugs.webkit.org/show_bug.cgi?id=150252
http://trac.webkit.org/changeset/192181

4:44 PM Changeset in webkit [192191] by jiewen_tan@apple.com
  • 4 edits
    2 adds in trunk

Crash when right clicking in input box with -webkit-user-select: none
https://bugs.webkit.org/show_bug.cgi?id=145981
<rdar://problem/22441925>

Reviewed by Enrica Casucci.

Source/WebCore:

Test: editing/selection/minimal-user-select-crash.html

  • editing/Editor.cpp:

(WebCore::Editor::hasBidiSelection):
Visible position cannot be created because of the style that doesn't allow the selection.

LayoutTests:

  • editing/selection/minimal-user-select-crash-expected.txt: Added.
  • editing/selection/minimal-user-select-crash.html: Added.
4:39 PM Changeset in webkit [192190] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

DFG::PutStackSinkingPhase should not treat the stack variables written by LoadVarargs/ForwardVarargs as being live
https://bugs.webkit.org/show_bug.cgi?id=145295

Reviewed by Filip Pizlo.

This patch fixes PutStackSinkingPhase to no longer escape the stack
locations that LoadVarargs and ForwardVarargs write to. We used
to consider sinking PutStacks right before a LoadVarargs/ForwardVarargs
because we considered them uses of such stack locations. They aren't
uses of those stack locations, they unconditionally write to those
stack locations. Sinking PutStacks to these nodes was not needed before,
but seemed mostly innocent. But I ran into a problem with this while implementing
FTL try/catch where we would end up having to generate a value for a sunken PutStack
right before a LoadVarargs. This would cause us to issue a GetStack that loaded garbage that
was then forwarded into a Phi that was used as the source as the PutStack. This caused the
abstract interpreter to confuse itself on type information for the garbage GetStack
that was fed into the Phi, which would cause the abstract interpreter to then claim
that the basic block with the PutStack in it would never be reached. This isn't true, the
block would indeed be reached. The solution here is to be more precise about the
liveness of locals w.r.t LoadVarargs and ForwardVarargs.

  • dfg/DFGPreciseLocalClobberize.h:

(JSC::DFG::PreciseLocalClobberizeAdaptor::PreciseLocalClobberizeAdaptor):
(JSC::DFG::PreciseLocalClobberizeAdaptor::write):

  • dfg/DFGPutStackSinkingPhase.cpp:
  • dfg/DFGSSACalculator.h:
4:36 PM Changeset in webkit [192189] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix 32-bit build.

  • Shared/API/Cocoa/RemoteObjectRegistry.mm:

(WebKit::RemoteObjectRegistry::callReplyBlock):

4:30 PM Changeset in webkit [192188] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Uncaught exception creating TimelineRecord alternate subtitles
https://bugs.webkit.org/show_bug.cgi?id=151046

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-09
Reviewed by Brian Burg.

  • UserInterface/Views/TimelineRecordTreeElement.js:

(WebInspector.TimelineRecordTreeElement):
We just need to create an element, it does not need to be
a child of subtitle, as it gets appended to the right
place later on.

4:26 PM Changeset in webkit [192187] by fpizlo@apple.com
  • 7 edits in trunk/Source/JavaScriptCore

B3->Air lowering should support CCall
https://bugs.webkit.org/show_bug.cgi?id=151043

Reviewed by Geoffrey Garen.

Adds support for lowering CCall to Air, and adds a test that makes calls. I cannot test doubles
until https://bugs.webkit.org/show_bug.cgi?id=151002 lands, but this does test integer
arguments pretty thoroughly including a test for lots of arguments. That test ensures that the
arguments go to registers and the stack in the right order and such.

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::createCompare):
(JSC::B3::Air::LowerToAir::marshallCCallArgument):
(JSC::B3::Air::LowerToAir::lower):

  • b3/B3Opcode.h:
  • b3/air/AirCCallSpecial.cpp:

(JSC::B3::Air::CCallSpecial::forEachArg):
(JSC::B3::Air::CCallSpecial::isValid):
(JSC::B3::Air::CCallSpecial::admitsStack):
(JSC::B3::Air::CCallSpecial::generate):

  • b3/air/AirCCallSpecial.h:
  • b3/testb3.cpp:

(JSC::B3::testCompare):
(JSC::B3::simpleFunction):
(JSC::B3::testCallSimple):
(JSC::B3::functionWithHellaArguments):
(JSC::B3::testCallFunctionWithHellaArguments):
(JSC::B3::run):

  • jit/FPRInfo.h:
4:19 PM Changeset in webkit [192186] by commit-queue@webkit.org
  • 21 edits
    2 copies
    3 adds
    2 deletes in trunk

Web Inspector: $0 stops working after navigating to a different domain
https://bugs.webkit.org/show_bug.cgi?id=147962

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-09
Reviewed by Brian Burg.

Source/JavaScriptCore:

Extract the per-GlobalObject cache of JSValue wrappers for
InjectedScriptHost objects to be reused by WebCore for its
CommandLineAPIHost objects injected into multiple contexts.

Add new files.

  • inspector/PerGlobalObjectWrapperWorld.h:
  • inspector/PerGlobalObjectWrapperWorld.cpp:

(Inspector::PerGlobalObjectWrapperWorld::getWrapper):
(Inspector::PerGlobalObjectWrapperWorld::addWrapper):
(Inspector::PerGlobalObjectWrapperWorld::clearAllWrappers):
Hold a bunch of per-global-object wrappers for an object
that will outlive the global object. This inspector does this
for host objects that it exposes into scripts it injects into
each execution context created by the page.

  • inspector/InjectedScriptHost.cpp:

(Inspector::InjectedScriptHost::wrapper):
(Inspector::InjectedScriptHost::clearAllWrappers):
(Inspector::InjectedScriptHost::jsWrapper): Deleted.
(Inspector::clearWrapperFromValue): Deleted.
(Inspector::InjectedScriptHost::clearWrapper): Deleted.
Extract and simplify the Per-GlobalObject wrapping into a class.
Simplify object construction as well.

  • inspector/InjectedScriptHost.h:
  • inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):
(Inspector::InjectedScriptManager::discardInjectedScripts):
Make discarding virtual so subclasses may also discard injected scripts.

  • inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::JSInjectedScriptHost):
(Inspector::JSInjectedScriptHost::releaseImpl): Deleted.
(Inspector::JSInjectedScriptHost::~JSInjectedScriptHost): Deleted.
(Inspector::toJS): Deleted.
(Inspector::toJSInjectedScriptHost): Deleted.

  • inspector/JSInjectedScriptHost.h:

(Inspector::JSInjectedScriptHost::create):
(Inspector::JSInjectedScriptHost::impl):
Update this code originally copied from older generated bindings to
be more like new generated bindings and remove some now unused code.

Source/WebCore:

Test: http/tests/inspector/console/cross-domain-inspected-node-access.html

The inspector backend injects the CommandLineAPI Source with a
corresponding CommandLineAPIHost into each execution context
created by the page (main frame, sub frames, etc).

When creating the JSValue wrapper for the CommandLineAPIHost using
the generated toJS(...) DOM bindings, we were using the cached
CommandLineAPIHost wrapper values in the single DOMWrapperWorld shared
across all frames. This meant that the first time the wrapper was
needed it was created in context A. But when needed for context B
it was using the wrapper created in context A. Using this wrapper
in context B was producing unexpected cross-origin warnings.

The solution taken here, is to create a new JSValue wrapper for
the CommandLineAPIHost per execution context. This way each time
the CommandLineAPIHost wrapper is used in a frame, it is using
the one created for that frame.

The C++ host object being wrapped has a lifetime equivalent to
the Page. It does not change in this patch. The wrapper values
are cleared on page navigation or when the page is closed, and
will be garbage collected.

  • WebCore.vcxproj/WebCore.vcxproj:
  • WebCore.vcxproj/WebCore.vcxproj.filters:
  • ForwardingHeaders/inspector/PerGlobalObjectWrapperWorld.h: Added.

New forwarding header.

  • inspector/CommandLineAPIHost.h:
  • inspector/CommandLineAPIHost.cpp:

(WebCore::CommandLineAPIHost::CommandLineAPIHost):
(WebCore::CommandLineAPIHost::wrapper):
Cached JSValue wrappers per GlobalObject.

(WebCore::CommandLineAPIHost::clearAllWrappers):
Clear any wrappers we have, including the $0 value itself
which we weren't explicitly clearing previously.

  • inspector/CommandLineAPIModule.cpp:

(WebCore::CommandLineAPIModule::host):
Simplify creating the wrapper.

  • inspector/WebInjectedScriptManager.h:
  • inspector/WebInjectedScriptManager.cpp:

(WebCore::WebInjectedScriptManager::discardInjectedScripts):
When the main frame window object clears, also clear the
CommandLineAPI wrappers we may have created. Also take this
opportunity to clear any $0 value that may have pointed
to a value in the previous page.

LayoutTests:

  • TestExpectations:
  • http/tests/inspector/console/access-inspected-object-expected.txt: Removed.
  • http/tests/inspector/console/access-inspected-object.html: Removed.
  • http/tests/inspector/console/cross-domain-inspected-node-access-expected.txt: Added.
  • http/tests/inspector/console/cross-domain-inspected-node-access.html: Added.

Rewrite the old test with the new testing infrastructure.
Test this particular case of cross origin CommandLineAPI usage ($0).

4:05 PM Changeset in webkit [192185] by andersca@apple.com
  • 15 edits in trunk

Add reply blocks to _WKRemoteObjectInterface similar to NSXPCConnection
https://bugs.webkit.org/show_bug.cgi?id=151056
rdar://problem/23222609

Reviewed by Tim Horton.

Source/WebKit2:

  • Platform/spi/Cocoa/NSInvocationSPI.h:

Add NSBlockInvocation declaration.

  • Shared/API/Cocoa/RemoteObjectInvocation.mm:

(WebKit::RemoteObjectInvocation::encode):
Encode true if we have a reply ID.

  • Shared/API/Cocoa/RemoteObjectRegistry.h:

Add new members.

  • Shared/API/Cocoa/RemoteObjectRegistry.messages.in:

Add new CallReplyBlock message.

  • Shared/API/Cocoa/RemoteObjectRegistry.mm:

(WebKit::RemoteObjectRegistry::sendReplyBlock):
Just send the CallReplyBlock message.

(WebKit::RemoteObjectRegistry::callReplyBlock):
Call through to _WKRemoteObjectRegistry.

  • Shared/API/Cocoa/WKRemoteObjectCoder.h:

Pass an optional reply selector.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(encodeInvocationArguments):
Don't hard-code the first argument index.

(encodeInvocation):
Encode block invocations.

(-[WKRemoteObjectDecoder initWithInterface:rootObjectDictionary:replyToSelector:]):
Initialize _replyToSelector.

(validateClass):
NSBlockInvocation doesn't need to conform to NSSecureCoding.

(decodeInvocationArguments):
Don't hard-code the first argument, take it as a parameter instead.

(decodeInvocation):
Decode NSBlockInvocations (reply block invocations).

(decodeObject):
Check for NSBlockInvocation.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(-[_WKRemoteObjectInterface _methodSignatureForSelector:]):
Return null if we can't find the method.

(-[_WKRemoteObjectInterface _methodSignatureForReplyBlockOfSelector:]):
Look up the reply block signature and return it.

(-[_WKRemoteObjectInterface _allowedArgumentClassesForReplyBlockOfSelector:]):
Look up the allowed reply argument classes and return them.

  • Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h:

Add new methods.

  • Shared/API/Cocoa/_WKRemoteObjectRegistry.mm:

(PendingReply::PendingReply):
Add new object that represents a pending reply.

(-[_WKRemoteObjectRegistry _sendInvocation:interface:]):
If the invocation has a reply block, add a pending reply to our map.

(-[_WKRemoteObjectRegistry _invokeMethod:]):
If the method we're about to invoke has a reply block, construct a special reply block that calls us back with an invocation.
Encode this invocation and send it back across the wire.

(-[_WKRemoteObjectRegistry _callReplyWithID:blockInvocation:]):
Find the pending reply, decode the reply block invocation and call it.

  • Shared/API/Cocoa/_WKRemoteObjectRegistryInternal.h:

Add new methods.

Tools:

Update test.

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistry.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKit2Cocoa/RemoteObjectRegistryPlugIn.mm:

(-[RemoteObjectRegistryPlugIn sayHello:completionHandler:]):

4:03 PM Changeset in webkit [192184] by timothy_horton@apple.com
  • 18 edits in trunk

Add drawsBackground SPI to WKWebView, and get rid of drawsTransparentBackground from WebKit2
https://bugs.webkit.org/show_bug.cgi?id=151054
<rdar://problem/22907994>

Reviewed by Simon Fraser.

  • Shared/WebPageCreationParameters.cpp:

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

  • Shared/WebPageCreationParameters.h:
  • UIProcess/API/mac/WKView.mm:

(-[WKView setDrawsTransparentBackground:]):
(-[WKView drawsTransparentBackground]):

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

(WebKit::WebViewImpl::updateLayer):
(WebKit::WebViewImpl::setDrawsTransparentBackground): Deleted.
(WebKit::WebViewImpl::drawsTransparentBackground): Deleted.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Deleted.
(WebKit::WebPageProxy::setDrawsTransparentBackground): Deleted.
(WebKit::WebPageProxy::creationParameters): Deleted.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::drawsTransparentBackground): Deleted.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCreateInspectorPage):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage): Deleted.
(WebKit::m_shouldDispatchFakeMouseMoveEvents): Deleted.
(WebKit::WebPage::setDrawsTransparentBackground): Deleted.

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::drawsTransparentBackground): Deleted.

  • WebProcess/WebPage/WebPage.messages.in:

Get rid of drawsTransparentBackground. It doesn't seem like there's any observable
difference in a layer-backed world. WKView's (set)drawsTransparentBackground
will just forward to drawsBackground (inverted).

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _webProcessIsResponsive]):
Move _webProcessIsResponsive up with the other cross-platform SPI methods, instead
of below all of the platform-specific SPI methods.

(-[WKWebView _drawsBackground]):
(-[WKWebView _setDrawsBackground:]):
Added.

(-[WKWebView _drawsTransparentBackground]):
(-[WKWebView _setDrawsTransparentBackground:]):
Deleted.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:

Replace drawsTransparentBackground with drawsBackground.

  • MiniBrowser/mac/WK1BrowserWindowController.m:

(-[WK1BrowserWindowController didChangeSettings]):

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController didChangeSettings]):
Use drawsBackground instead, and make sure to set the window background color,
otherwise it might end up being gray anyway!

WebKit1 still doesn't work unless you turn off toolbar blurring, but at least
WebKit2 is working now!

4:01 PM Changeset in webkit [192183] by fpizlo@apple.com
  • 17 edits
    12 adds in trunk/Source/JavaScriptCore

B3 should be able to compile a program with a double constant
https://bugs.webkit.org/show_bug.cgi?id=151002

Reviewed by Benjamin Poulain.

This implements a bunch of annoying stuff that is necessary to support constants that need a
data section, such as double constants on X86_64:

  • B3::Procedure can now tell you what to keep alive in addition to the MacroAssemblerCodeRef. We call this the B3::OpaqueByproducts. It's the client's responsibility to keep this alive after calling B3::generate().
  • Added a new helper for compiling B3 code, called B3::Compilation. Constructing a Compilation runs the compiler. Then you can pass around a Compilation the way you would have passed around a MacroAssemblerCodeRef.
  • Added a constant motion phase, called moveConstants(). This does very simple constant hoisting/sinking: it makes sure that each constant is only materialized in one place in each basic block. It uses a DataSection, which is a kind of OpaqueByproduct, to store double constants.
  • The way I wanted to do constant motion is to basically track what constants are of interest and then recreate them as needed, so the original Values become irrelevant in the process. To do that, I needed an abstraction that is almost identical to the DFG PureValue abstraction that we use for CSE. So, I created such a thing, and called it ValueKey. It can be used to compare and hash pure Values, and to recreate them as needed.
  • Fixed the lowering's handling of constants so that we don't perturb the placement of the constant materializations.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::branchConvertDoubleToInt32):
(JSC::MacroAssemblerX86Common::moveZeroToDouble):
(JSC::MacroAssemblerX86Common::branchDoubleNonZero):

  • b3/B3Common.h:

(JSC::B3::isIdentical):
(JSC::B3::isRepresentableAsImpl):

  • b3/B3Compilation.cpp: Added.

(JSC::B3::Compilation::Compilation):
(JSC::B3::Compilation::~Compilation):

  • b3/B3Compilation.h: Added.

(JSC::B3::Compilation::code):

  • b3/B3ConstDoubleValue.h:

(JSC::B3::ConstDoubleValue::accepts): Deleted.

  • b3/B3DataSection.cpp: Added.

(JSC::B3::DataSection::DataSection):
(JSC::B3::DataSection::~DataSection):
(JSC::B3::DataSection::dump):

  • b3/B3DataSection.h: Added.

(JSC::B3::DataSection::data):
(JSC::B3::DataSection::size):

  • b3/B3Generate.cpp:

(JSC::B3::generate):
(JSC::B3::generateToAir):

  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::imm):
(JSC::B3::Air::LowerToAir::immOrTmp):
(JSC::B3::Air::LowerToAir::fillStackmap):
(JSC::B3::Air::LowerToAir::lower):
(JSC::B3::Air::LowerToAir::immForMove): Deleted.
(JSC::B3::Air::LowerToAir::immOrTmpForMove): Deleted.

  • b3/B3MoveConstants.cpp: Added.

(JSC::B3::moveConstants):

  • b3/B3MoveConstants.h: Added.
  • b3/B3OpaqueByproduct.h: Added.

(JSC::B3::OpaqueByproduct::OpaqueByproduct):
(JSC::B3::OpaqueByproduct::~OpaqueByproduct):

  • b3/B3OpaqueByproducts.cpp: Added.

(JSC::B3::OpaqueByproducts::OpaqueByproducts):
(JSC::B3::OpaqueByproducts::~OpaqueByproducts):
(JSC::B3::OpaqueByproducts::add):
(JSC::B3::OpaqueByproducts::dump):

  • b3/B3OpaqueByproducts.h: Added.

(JSC::B3::OpaqueByproducts::count):

  • b3/B3Opcode.h:

(JSC::B3::constPtrOpcode):

  • b3/B3Procedure.cpp:

(JSC::B3::Procedure::Procedure):
(JSC::B3::Procedure::dump):
(JSC::B3::Procedure::blocksInPreOrder):
(JSC::B3::Procedure::deleteValue):
(JSC::B3::Procedure::addDataSection):
(JSC::B3::Procedure::addValueIndex):

  • b3/B3Procedure.h:

(JSC::B3::Procedure::lastPhaseName):
(JSC::B3::Procedure::byproducts):
(JSC::B3::Procedure::takeByproducts):

  • b3/B3Type.h:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::performSubstitution):

  • b3/B3Value.h:
  • b3/B3ValueKey.cpp: Added.

(JSC::B3::ValueKey::dump):
(JSC::B3::ValueKey::materialize):

  • b3/B3ValueKey.h: Added.

(JSC::B3::ValueKey::ValueKey):
(JSC::B3::ValueKey::opcode):
(JSC::B3::ValueKey::type):
(JSC::B3::ValueKey::childIndex):
(JSC::B3::ValueKey::value):
(JSC::B3::ValueKey::doubleValue):
(JSC::B3::ValueKey::operator==):
(JSC::B3::ValueKey::operator!=):
(JSC::B3::ValueKey::hash):
(JSC::B3::ValueKey::operator bool):
(JSC::B3::ValueKey::canMaterialize):
(JSC::B3::ValueKey::isHashTableDeletedValue):
(JSC::B3::ValueKeyHash::hash):
(JSC::B3::ValueKeyHash::equal):

  • b3/B3ValueKeyInlines.h: Added.

(JSC::B3::ValueKey::ValueKey):
(JSC::B3::ValueKey::child):

  • b3/air/AirCode.cpp:

(JSC::B3::Air::Code::Code):

  • b3/air/AirCode.h:

(JSC::B3::Air::Code::proc):
(JSC::B3::Air::Code::lastPhaseName):

  • b3/air/AirOpcode.opcodes:
  • b3/testb3.cpp:

(JSC::B3::compile):
(JSC::B3::invoke):
(JSC::B3::compileAndRun):
(JSC::B3::test42):
(JSC::B3::testBranch):
(JSC::B3::testBranchPtr):
(JSC::B3::testDiamond):
(JSC::B3::testBranchNotEqual):
(JSC::B3::testBranchNotEqualCommute):
(JSC::B3::testBranchNotEqualNotEqual):
(JSC::B3::testBranchEqual):
(JSC::B3::testBranchEqualEqual):
(JSC::B3::testBranchEqualCommute):
(JSC::B3::testBranchEqualEqual1):
(JSC::B3::testBranchFold):
(JSC::B3::testSimpleCheck):
(JSC::B3::testCompare):
(JSC::B3::testReturnDouble):
(JSC::B3::run):

3:45 PM November 2015 Meeting edited by Simon Fraser
(diff)
2:47 PM Changeset in webkit [192182] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking crypto/subtle/rsa-export-generated-keys.html as slow on mac
https://bugs.webkit.org/show_bug.cgi?id=144938

Unreviewed test gardening.

  • platform/mac/TestExpectations:
2:43 PM Changeset in webkit [192181] by ddkilzer@apple.com
  • 3 edits
    4 adds in trunk

Fixed crash loading Mozilla layout test editor/libeditor/crashtests/431086-1.xhtml.
https://bugs.webkit.org/show_bug.cgi?id=150252
<rdar://problem/23149470>

Patch by Pranjal Jumde <pjumde@apple.com> on 2015-11-09
Reviewed by Brent Fulgham.

  • Source/WebCore/editing/ios/EditorIOS.mm
  • Source/WebCore/editing/mac/EditorMac.mm In Editor::fontForSelection moved the node removal code, so that the node is only removed if style is not NULL.
  • LayoutTests/editing/execCommand/150252.xhtml
  • LayoutTests/editing/execCommand/150252_minimal.xhtml
  • LayoutTests/editing/execCommand/150252-expected.txt
  • LayoutTests/editing/execCommand/150252_minimal-expected.txt
2:34 PM Changeset in webkit [192180] by rniwa@webkit.org
  • 2 edits in trunk/Websites/test-results

Allow , in the builder name.

Rubber-stamped by Alexey Proskuryakov.

  • public/api/report.php:
2:13 PM Changeset in webkit [192179] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking http/tests/security/cross-frame-access-put.html as flaky on mac-wk2
https://bugs.webkit.org/show_bug.cgi?id=151053

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
2:07 PM Changeset in webkit [192178] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Web Inspector: REGRESSION: 2nd level inspector should not be able to dock to first
https://bugs.webkit.org/show_bug.cgi?id=151050

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-11-09
Reviewed by Brian Burg.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCanAttach):
Check now that the inspected view can be a WKWebView.

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

Introspect reply block types as well
https://bugs.webkit.org/show_bug.cgi?id=151048

Reviewed by Tim Horton.

Source/WebKit2:

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(initializeMethod):
(initializeMethods):
(-[_WKRemoteObjectInterface debugDescription]):

Source/WTF:

Fix operator-> implementation.

  • wtf/Optional.h:

(WTF::Optional::operator->):

1:50 PM Changeset in webkit [192176] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][Video][MediaFoundation] Video should be rendered in provided graphics context.
https://bugs.webkit.org/show_bug.cgi?id=150941

Reviewed by Brent Fulgham.

On WinCairo, we currently render video in a child window of the main browser window.
This makes it difficult to render things on top of the video, like video controls and
context menus. We should render the video in the graphics context provided by the paint
method. This is done by implementing a custom EVR (Enhanced Video Renderer) presenter
for Media Foundation.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(MFCreateMediaType):
(WebCore::MediaPlayerPrivateMediaFoundation::MediaPlayerPrivateMediaFoundation):
(WebCore::MediaPlayerPrivateMediaFoundation::registerMediaEngine):
(WebCore::MediaPlayerPrivateMediaFoundation::isAvailable):
(WebCore::MediaPlayerPrivateMediaFoundation::setSize):
(WebCore::MediaPlayerPrivateMediaFoundation::paint):
(WebCore::MediaPlayerPrivateMediaFoundation::createSession):
(WebCore::MediaPlayerPrivateMediaFoundation::endGetEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::createVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::destroyVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::invalidateFrameView):
(WebCore::MediaPlayerPrivateMediaFoundation::addListener):
(WebCore::MediaPlayerPrivateMediaFoundation::createOutputNode):
(WebCore::MediaPlayerPrivateMediaFoundation::onTopologySet):
(WebCore::MediaPlayerPrivateMediaFoundation::AsyncCallback::onMediaPlayerDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::CustomVideoPresenter):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::~CustomVideoPresenter):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::QueryInterface):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::AddRef):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::Release):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockStart):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockStop):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockPause):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockRestart):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::OnClockSetRate):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ProcessMessage):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetCurrentMediaType):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetDeviceID):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::InitServicePointers):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ReleaseServicePointers):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetService):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ActivateObject):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::DetachObject):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::ShutdownObject):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetVideoWindow):
(WebCore::setMixerSourceRect):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetVideoPosition):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetVideoPosition):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::RepaintVideo):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::Invoke):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::onMediaPlayerDeleted):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::paintCurrentFrame):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isActive):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::configureMixer):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::flush):
(WebCore::areMediaTypesEqual):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::setMediaType):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::checkShutdown):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::renegotiateMediaType):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
(WebCore::MFOffsetToFloat):
(WebCore::MakeOffset):
(WebCore::MakeArea):
(WebCore::validateVideoArea):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::beginStreaming):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::endStreaming):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::checkEndOfStream):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isMediaTypeSupported):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
(WebCore::correctAspectRatio):
(WebCore::GetVideoDisplayArea):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::calculateOutputRectangle):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processOutputLoop):
(WebCore::setDesiredSampleTime):
(WebCore::clearDesiredSampleTime):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processOutput):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::deliverSample):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::trackSample):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::releaseResources):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::onSampleFree):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::notifyEvent):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::getSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::returnSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::areSamplesPending):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::initialize):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::clear):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setFrameRate):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::startScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::flush):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::scheduleSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSamplesInQueue):
(WebCore::MFTimeToMilliseconds):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSample):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::schedulerThreadProc):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::schedulerThreadProcPrivate):
(WebCore::findAdapter):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::Direct3DPresenter):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::~Direct3DPresenter):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::getService):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::checkFormat):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::setDestinationRect):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createVideoSamples):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::releaseResources):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::checkDeviceState):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::paintCurrentFrame):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::initializeD3D):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DDevice):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::createD3DSample):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::presentSwapChain):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::getSwapChainPresentParameters):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::updateDestRect):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:

(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::VideoSamplePool):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoSamplePool::~VideoSamplePool):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::VideoScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::~VideoScheduler):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setPresenter):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::setClockRate):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::lastSampleTime):
(WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::frameDuration):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::getVideoWindow):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::getDestinationRect):
(WebCore::MediaPlayerPrivateMediaFoundation::Direct3DPresenter::refreshRate):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetItem):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetItemType):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::CompareItem):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::Compare):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetUINT32):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetUINT64):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetGUID):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetStringLength):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetString):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetAllocatedString):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetBlobSize):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetBlob):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetAllocatedBlob):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetUnknown):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetItem):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::DeleteItem):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::DeleteAllItems):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetUINT32):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetUINT64):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetGUID):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetString):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetBlob):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetUnknown):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::LockStore):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::UnlockStore):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetCount):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetItemByIndex):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::CopyAllItems):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetNativeVideoSize):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetIdealVideoSize):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetAspectRatioMode):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetAspectRatioMode):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetCurrentImage):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetBorderColor):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetBorderColor):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetRenderingPrefs):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetRenderingPrefs):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::SetFullscreen):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetFullscreen):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::GetParameters):
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isScrubbing):

1:25 PM Changeset in webkit [192175] by commit-queue@webkit.org
  • 4 edits in trunk

XHR timeouts should not fire if there is an immediate network error.
https://bugs.webkit.org/show_bug.cgi?id=150577

Patch by Alex Christensen <achristensen@webkit.org> on 2015-11-09
Reviewed by Darin Adler.

Source/WebCore:

This fixes flakiness of http/tests/contentextensions/async-xhr-onerror.html since r191077.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::internalAbort):
(WebCore::XMLHttpRequest::didFinishLoading):
If the timeout timer has been started and we are going to immediately report a network error, then stop the timeout timer.
The timeout timer sometimes fired before the network error timer if it was a very short timeout (such as 1ms).
Also checks to isActive before calling stop on a timer are not necessary.

LayoutTests:

  • platform/mac-wk2/TestExpectations:

http/tests/contentextensions/async-xhr-onerror.html shouldn't be flaky any more.

1:20 PM Changeset in webkit [192174] by eric.carlson@apple.com
  • 7 edits
    8 adds in trunk/Source/WebCore

[MediaStream] Add mock audio and video sources
https://bugs.webkit.org/show_bug.cgi?id=150997
<rdar://problem/23453358>

Reviewed by Jer Noble.

Create basic mock audio and video realtime media source classes so we can test MediaStream
API without requiring test machines to have audio/video input hardware. No new tests added
yet, thoe will follow.

No new tests, these changes will allow us to write MediaStream tests.

  • CMakeLists.txt: Add MockRealtimeAudioSource.cpp, MockRealtimeMediaSource.cpp, and MockRealtimeVideoSource.cpp
  • PlatformMac.cmake: Add MockRealtimeVideoSourceMac.mm
  • WebCore.xcodeproj/project.pbxproj: Add new files.
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:

(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::createPreviewLayers): Don't set autoresizingMask,

it isn't necessary.

  • platform/mediastream/mac/AVCaptureDeviceManager.mm:

(WebCore::refreshCaptureDeviceList): AVCaptureDevice -> getAVCaptureDeviceClass()
(WebCore::AVCaptureDeviceManager::bestDeviceForFacingMode): Ditto.
(WebCore::AVCaptureDeviceManager::sourceWithUID): Ditto.

Mac class implements RealtimeVideoSource::platformLayer, returns a CALayer which uses the
GraphicsContext as contents.

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.h: Added.
  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm: Added.

(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSourceMac::MockRealtimeVideoSourceMac):
(WebCore::MockRealtimeVideoSourceMac::platformLayer):
(WebCore::MockRealtimeVideoSourceMac::updatePlatformLayer):

Mock audio source. Doesn't provide data yet, only provides states and capabilities.

  • platform/mock/MockRealtimeAudioSource.cpp: Added.

(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):
(WebCore::MockRealtimeAudioSource::updateStates):
(WebCore::MockRealtimeAudioSource::initializeCapabilities):

  • platform/mock/MockRealtimeAudioSource.h: Added.

(WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource):

Mock source base class, sets persistent ID and updates states and capabilities.

  • platform/mock/MockRealtimeMediaSource.cpp: Added.

(WebCore::MockRealtimeMediaSource::mockAudioPersistentID):
(WebCore::MockRealtimeMediaSource::mockVideoPersistentID):
(WebCore::MockRealtimeMediaSource::MockRealtimeMediaSource):
(WebCore::MockRealtimeMediaSource::capabilities):
(WebCore::MockRealtimeMediaSource::states):

  • platform/mock/MockRealtimeMediaSource.h: Added.

(WebCore::MockRealtimeMediaSource::mockAudioSourcePersistentID):
(WebCore::MockRealtimeMediaSource::mockAudioSourceName):
(WebCore::MockRealtimeMediaSource::mockVideoSourcePersistentID):
(WebCore::MockRealtimeMediaSource::mockVideoSourceName):
(WebCore::MockRealtimeMediaSource::trackSourceWithUID):
(WebCore::MockRealtimeMediaSource::~MockRealtimeMediaSource):
(WebCore::MockRealtimeMediaSource::currentStates):
(WebCore::MockRealtimeMediaSource::constraints):

Use new mock source classes. Create a new source instance for each request instead of reusing the
same sources each time.

  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::mockSourceMap):
(WebCore::MockRealtimeMediaSourceCenter::registerMockRealtimeMediaSourceCenter):
(WebCore::MockRealtimeMediaSourceCenter::validateRequestConstraints):
(WebCore::MockRealtimeMediaSourceCenter::createMediaStream):
(WebCore::MockRealtimeMediaSourceCenter::getMediaStreamTrackSources):
(WebCore::MockSource::MockSource): Deleted.
(WebCore::MockSource::~MockSource): Deleted.
(WebCore::MockSource::capabilities): Deleted.
(WebCore::MockSource::states): Deleted.
(WebCore::mockAudioSourceID): Deleted.
(WebCore::mockVideoSourceID): Deleted.
(WebCore::initializeMockSources): Deleted.

Mock video source. Generate bip-bop inspired frames with burned in state information.

  • platform/mock/MockRealtimeVideoSource.cpp: Added.

(WebCore::MockRealtimeVideoSource::create):
(WebCore::MockRealtimeVideoSource::MockRealtimeVideoSource):
(WebCore::MockRealtimeVideoSource::startProducingData):
(WebCore::MockRealtimeVideoSource::stopProducingData):
(WebCore::MockRealtimeVideoSource::elapsedTime):
(WebCore::MockRealtimeVideoSource::updateStates):
(WebCore::MockRealtimeVideoSource::initializeCapabilities):
(WebCore::MockRealtimeVideoSource::setFacingMode):
(WebCore::MockRealtimeVideoSource::setFrameRate):
(WebCore::MockRealtimeVideoSource::setSize):
(WebCore::MockRealtimeVideoSource::drawAnimation):
(WebCore::MockRealtimeVideoSource::drawBoxes):
(WebCore::MockRealtimeVideoSource::drawText):
(WebCore::MockRealtimeVideoSource::generateFrame):
(WebCore::MockRealtimeVideoSource::imageBuffer):
(WebCore::MockRealtimeVideoSource::paintCurrentFrameInContext):
(WebCore::MockRealtimeVideoSource::currentFrameImage):

  • platform/mock/MockRealtimeVideoSource.h: Added.

(WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource):
(WebCore::MockRealtimeVideoSource::size):
(WebCore::MockRealtimeVideoSource::updatePlatformLayer):

1:16 PM Changeset in webkit [192173] by n_wang@apple.com
  • 3 edits
    2 adds in trunk

AX: Input type: time is not accessible on iOS
https://bugs.webkit.org/show_bug.cgi?id=150984

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed input type: time as popup button on iOS.

Test: accessibility/ios-simulator/input-type-time.html

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • accessibility/ios-simulator/input-type-time-expected.txt: Added.
  • accessibility/ios-simulator/input-type-time.html: Added.
12:29 PM Changeset in webkit [192172] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [Regression] [Mavericks] Top border of selected tab matches the background when Web Inspector is undocked
https://bugs.webkit.org/show_bug.cgi?id=150981

Reviewed by Timothy Hatcher.

  • UserInterface/Views/TabBar.css:

(body.mavericks .tab-bar > .item:not(.disabled).selected): Added.

12:16 PM Changeset in webkit [192171] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Implement -[_WKRemoteObjectInterface debugDescription] and have it look like the NSXPCInterface equivalent
https://bugs.webkit.org/show_bug.cgi?id=151044

Reviewed by Tim Horton.

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(-[_WKRemoteObjectInterface debugDescription]):
(-[_WKRemoteObjectInterface description]): Deleted.

12:11 PM Changeset in webkit [192170] by jiewen_tan@apple.com
  • 7 edits
    2 adds in trunk

Null dereference loading Blink layout test editing/inserting/insert-html-crash-01.html
https://bugs.webkit.org/show_bug.cgi?id=149298
<rdar://problem/22746918>

Reviewed by Ryosuke Niwa.

Source/WebCore:

The test crashes in the method WebCore::CompositeEditCommand::moveParagraphs() because
the other method WebCore::CompositeEditCommand::cleanupAfterDeletion() accidentally
deletes the destination node. In WebCore::CompositeEditCommand::cleanupAfterDeletion(),
it fails to determine that caretAfterDelete equals to destination as Position::operator==,
which is called in VisiblePosition::operator==, only checks the equality of tuple
<Anchor Node, Anchor Type, Offset>. It is insufficient as a single position can be
represented by multiple tuples. Therefore, this change adds Position::equals() to fortify
the equal checking of two positions by considering combinations of different tuple
representations.

Furthermore, it adds VisiblePosition::equals() which considers affinity and call
Position::equals() while comparing two visible positions.

Test: editing/inserting/insert-html-crash-01.html

  • dom/Position.cpp:

(WebCore::Position::equals):

  • dom/Position.h:
  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::cleanupAfterDeletion):
Replace operator== with VisiblePosition::equals() to tackle the test case.

  • editing/VisiblePosition.cpp:

(WebCore::VisiblePosition::equals):

  • editing/VisiblePosition.h:

LayoutTests:

This test case is from Blink r153982:
https://codereview.chromium.org/16053005

  • editing/inserting/insert-html-crash-01-expected.txt: Added.
  • editing/inserting/insert-html-crash-01.html: Added.
11:40 AM Changeset in webkit [192169] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

Some style changes cause tatechuyoko to be drawn off center
https://bugs.webkit.org/show_bug.cgi?id=150986
<rdar://problem/20748013>

Reviewed by Darin Adler.

Source/WebCore:

Layouts should be idempotent. In particular, during layout, an element should not
rely on a previous call to styleDidChange() with a sufficiently high StyleDifference.
RenderCombineText was assuming that, if a layout occurs, a previous call to
styleDidChange() would have reset the renderedText. However, an ancestor element might
cause the RenderCombineText to re-combine when it is already combined. Therefore, the
recombination should fully uncombine before recombining.

Test: fast/text/text-combine-style-change-extra-layout.html

  • rendering/RenderCombineText.cpp:

(WebCore::RenderCombineText::combineText): Fully uncombine before recombining.

LayoutTests:

  • fast/text/text-combine-style-change-extra-layout-expected.html: Added.
  • fast/text/text-combine-style-change-extra-layout.html: Added.
11:39 AM Changeset in webkit [192168] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Need a function that will provide Nth argument register
https://bugs.webkit.org/show_bug.cgi?id=151041

Reviewed by Filip Pizlo.

For 64 bit platforms, return the Nth architected argument register, otherwise InvalidGPRReg.

  • jit/GPRInfo.h:

(JSC::argumentRegisterFor): Added to return the Nth architected argument register if defined
for a platform or InvalidGPRReg if not.

11:17 AM Changeset in webkit [192167] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Fresh checkout fails to build on windows, DumpRenderTree can't find cairo_win.h
https://bugs.webkit.org/show_bug.cgi?id=151013

Use the variable defined in the CMake scripts to determine the cairo include location, rather
than relying on a environment variable to be set correctly. Otherwise the DumpRenderTreeLib.vcxproj will
contain "\include\cairo" rather than the fully qualified path to the cairo include location.

Patch by Isaac Devine <isaac@devinesystems.co.nz> on 2015-11-09
Reviewed by Darin Adler.

  • DumpRenderTree/PlatformWin.cmake:
10:54 AM Changeset in webkit [192166] by Brent Fulgham
  • 3 edits in trunk/Source/WebCore

[Win] Recognize context flush as an event that requires an update
https://bugs.webkit.org/show_bug.cgi?id=151001
<rdar://problem/22956040>

Reviewed by Simon Fraser.

  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:

(WebCore::WKCACFViewLayerTreeHost::flushContext): Mark view as needing an update
when flushing so internal drawing code will do the paint.

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::paintIntoLayer): Skip WK2 assert that does
not apply to Windows drawing path.

10:43 AM Changeset in webkit [192165] by Matt Baker
  • 6 edits
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Convert DatabaseContentView to use View base class
https://bugs.webkit.org/show_bug.cgi?id=150959

Reviewed by Timothy Hatcher.

Update DatabaseContentView to inherit from View. This required that query results be
promoted to a first-class view object, and that ConsolePrompt's DOM element not be wrapped
inside a container element.

Two new query result view classes (and their base class) wrap up DOM element creation
which was being performed by DatabaseContentView.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Main.html:

New files.

  • UserInterface/Views/ConsolePrompt.js:

(WebInspector.ConsolePrompt):
Removed unused parameter.

  • UserInterface/Views/DatabaseContentView.css:

(.storage-view):
(.storage-view > .console-prompt):
(.storage-view > .console-prompt::before):
(:matches(.database-user-query, .database-query-result)::before):
(.database-query-result.no-results):
(.database-query-prompt): Deleted.
(:matches(.database-user-query, .database-query-prompt, .database-query-result)::before): Deleted.
(.database-query-prompt::before): Deleted.
Modified styles to create prompt without needing a wrapper element.

  • UserInterface/Views/DatabaseContentView.js:

(WebInspector.DatabaseContentView):
(WebInspector.DatabaseContentView.prototype.shown):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded.accumulateMatches):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded.tableNamesCallback):
(WebInspector.DatabaseContentView.prototype.consolePromptCompletionsNeeded):
(WebInspector.DatabaseContentView.prototype._messagesClicked):
(WebInspector.DatabaseContentView.prototype._queryFinished):
(WebInspector.DatabaseContentView.prototype._queryError):
(WebInspector.DatabaseContentView.prototype.updateLayout): Deleted.
No longer needed.
(WebInspector.DatabaseContentView.prototype._appendViewQueryResult): Deleted.
(WebInspector.DatabaseContentView.prototype._appendErrorQueryResult): Deleted.
(WebInspector.DatabaseContentView.prototype._appendQueryResult): Deleted.
Removed methods subsumed under DatabaseUserQueryView.

  • UserInterface/Views/DatabaseUserQueryErrorView.js: Added.

(WebInspector.DatabaseUserQueryErrorView):
Displays supplied error message.

  • UserInterface/Views/DatabaseUserQuerySuccessView.js: Added.

(WebInspector.DatabaseUserQuerySuccessView):
Creates data grid if results exist, otherwise displays "no results" message.
(WebInspector.DatabaseUserQuerySuccessView.prototype.get dataGrid):
External access to view's data grid for autosizing columns, etc.
(WebInspector.DatabaseUserQuerySuccessView.prototype.layout):
Update grid layout manually, since the grid's parent in the DOM isn't the view's root element.

  • UserInterface/Views/DatabaseUserQueryViewBase.js: Added.

Base class for success and error message views.
(WebInspector.DatabaseUserQueryViewBase):
Creates DOM common to subclasses.
(WebInspector.DatabaseUserQueryViewBase.prototype.get resultElement):
Protected getter exposing the content root for both subclasses.

10:36 AM Changeset in webkit [192164] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[FTL] Fix the build with LLVM 3.7
https://bugs.webkit.org/show_bug.cgi?id=150595

Reviewed by Darin Adler.

  • llvm/LLVMAPIFunctions.h: Removed the unused BuildLandingPad function.
10:36 AM Changeset in webkit [192163] by beidson@apple.com
  • 9 edits in trunk/Source/WebCore

Modern IDB: Refactor memory objectstore/transaction interation.
https://bugs.webkit.org/show_bug.cgi?id=151014

Reviewed by Darin Adler.

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

  • Modules/indexeddb/server/IDBBackingStore.h:
  • Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:

(WebCore::IDBServer::MemoryBackingStoreTransaction::recordValueChanged):
(WebCore::IDBServer::MemoryBackingStoreTransaction::abort):

  • Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::addRecord):
(WebCore::IDBServer::MemoryIDBBackingStore::putRecord): Deleted. Renamed to addRecord.

  • Modules/indexeddb/server/MemoryIDBBackingStore.h:
  • Modules/indexeddb/server/MemoryObjectStore.cpp:

(WebCore::IDBServer::MemoryObjectStore::deleteRecord):
(WebCore::IDBServer::MemoryObjectStore::addRecord):
(WebCore::IDBServer::MemoryObjectStore::putRecord): Deleted. Renamed to addRecord.
(WebCore::IDBServer::MemoryObjectStore::setKeyValue): Deleted. Folded into addRecord.

  • Modules/indexeddb/server/MemoryObjectStore.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):

10:35 AM Changeset in webkit [192162] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit2

Rework the way allowed argument classes are stored
https://bugs.webkit.org/show_bug.cgi?id=150992

Reviewed by Darin Adler.

Add a separate MethodInfo class so we have someplace to store the reply block arguments.
Use HashSet<Class> instead of NSSet. No functionality change intended.

  • Shared/API/Cocoa/WKRemoteObjectCoder.mm:

(-[WKRemoteObjectDecoder decodeValueOfObjCType:at:]):
(decodeObjectFromObjectStream):
(checkIfClassIsAllowed):
(decodeInvocationArguments):
(decodeObject):
(-[WKRemoteObjectDecoder decodeObjectOfClasses:forKey:]):
(-[WKRemoteObjectDecoder allowedClasses]):

  • Shared/API/Cocoa/_WKRemoteObjectInterface.mm:

(isContainerClass):
(propertyListClasses):
(initializeMethod):
(initializeMethods):
(-[_WKRemoteObjectInterface initWithProtocol:identifier:]):
(classesForSelectorArgument):
(-[_WKRemoteObjectInterface classesForSelector:argumentIndex:]):
(-[_WKRemoteObjectInterface setClasses:forSelector:argumentIndex:]):
(-[_WKRemoteObjectInterface _allowedArgumentClassesForSelector:]):
(allowedArgumentClassesForMethod): Deleted.
(initializeAllowedArgumentClasses): Deleted.

  • Shared/API/Cocoa/_WKRemoteObjectInterfaceInternal.h:
10:10 AM Changeset in webkit [192161] by commit-queue@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION (r190883): Error calculating the tile size for an SVG with no intrinsic size but with large floating intrinsic ratio
https://bugs.webkit.org/show_bug.cgi?id=150904

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2015-11-09
Reviewed by Darin Adler.
Source/WebCore:

This patch addresses two issues. The first one is a regression from r190883
which was rolling out r184895. There was a missing if-statement in
RenderBoxModelObject::calculateImageIntrinsicDimension(). We should return
it back. But this if-statement is an optimization; if we hit it we should
return the image resolvedSize. But we should also return the same result
if we call resolveAgainstIntrinsicWidthOrHeightAndRatio().

We had a bug in resolving the intrinsic size of an image using a large
intrinsic ratio. We need to do the calculation in LayoutUnits always.
Using float calculations and then casting the output to an integer results
in significant truncation if the intrinsic ratio is large.

Test: fast/backgrounds/background-image-large-float-intrinsic-ratio.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::resolveWidthForRatio):
(WebCore::resolveHeightForRatio):
(WebCore::resolveAgainstIntrinsicWidthOrHeightAndRatio):
(WebCore::resolveAgainstIntrinsicRatio):
Resolve the image size using its intrinsic ratio in LayoutUnits.

(WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
Put back an if-statement which was missing from rolling out r184895

LayoutTests:

Make sure the image resolvedSize is calculated correctly when the intrinsic
ratio is a large non integer value.

  • fast/backgrounds/background-image-large-float-intrinsic-ratio-expected.html: Added.
  • fast/backgrounds/background-image-large-float-intrinsic-ratio.html: Added.
10:06 AM Changeset in webkit [192160] by youenn.fablet@crf.canon.fr
  • 6 edits in trunk/Source/WebCore

[Streams API] Activate assertions
https://bugs.webkit.org/show_bug.cgi?id=151021

Reviewed by Darin Adler.

Activating assertions in streams API.
Fixing a bug in ReadableStream implementation: when pull promise is rejected,
the readable stream may already be errored by some other means.

Covered by existing test sets in Debug builds.

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):
(teeReadableStreamPullFunction):
(errorReadableStream):
(requestReadableStreamPull):
(finishClosingReadableStream):
(closeReadableStream):
(enqueueInReadableStream):
(readFromReadableStreamReader):

  • Modules/streams/ReadableStreamReader.js:

(cancel):

  • Modules/streams/StreamInternals.js:

(peekQueueValue):

  • Modules/streams/WritableStream.js:

(write):
(state):

  • Modules/streams/WritableStreamInternals.js:

(syncWritableStreamStateWithQueue):
(closeWritableStream): Deleted.

8:34 AM Changeset in webkit [192159] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking jquery/manipulation.html as a flaky timeout on Win debug
https://bugs.webkit.org/show_bug.cgi?id=151027

Unreviewed test gardening.

8:30 AM Changeset in webkit [192158] by svillar@igalia.com
  • 8 edits
    15 adds in trunk/LayoutTests

Unreviewed. Rebaselined several tests with 1px differences.

  • platform/gtk/editing/pasteboard/innerText-inline-table-expected.txt:
  • platform/gtk/fast/block/positioning/table-cell-static-position-expected.txt:
  • platform/gtk/fast/borders/border-radius-different-width-001-expected.txt: Added.
  • platform/gtk/fast/css/box-shadow-and-border-radius-expected.txt: Added.
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt:
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt:
  • platform/gtk/http/tests/misc/generated-content-inside-table-expected.txt:
  • platform/gtk/imported/blink/http/tests/security/contentSecurityPolicy/object-src-applet-archive-codebase-expected.txt: Added.
  • platform/gtk/imported/blink/http/tests/security/contentSecurityPolicy/object-src-applet-archive-expected.txt: Added.
  • platform/gtk/imported/blink/http/tests/security/contentSecurityPolicy/object-src-applet-code-codebase-expected.txt: Added.
  • platform/gtk/imported/blink/http/tests/security/contentSecurityPolicy/object-src-applet-code-expected.txt: Added.
  • platform/gtk/imported/blink/media/track/media-element-move-to-new-document-assert-expected.txt: Added.
8:12 AM Changeset in webkit [192157] by calvaris@igalia.com
  • 11 edits in trunk

[Streams API] Shield implementation from mangling then and catch promise methods
https://bugs.webkit.org/show_bug.cgi?id=150934

Reviewed by Youenn Fablet.

Source/JavaScriptCore:

Since the prototype is not deletable and readonly we only have to care about ensuring that it has the right
@then and @catch internal methods.

  • runtime/JSPromisePrototype.h:
  • runtime/JSPromisePrototype.cpp:

(JSC::JSPromisePrototype::addOwnInternalSlots): Added to create the proper @then and @catch internal slots.
(JSC::JSPromisePrototype::create): Call addOwnInternalSlots.

Source/WebCore:

This is a first step to get streams code shielded from user replacing the then and catch methods in our
promises. We use newly introduced @then and @catch prototype internal slots and that should solve a lot of use
cases.

Test: streams/streams-promises.html.

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):

  • Modules/streams/ReadableStreamInternals.js:

(teeReadableStream):
(teeReadableStreamPullFunction):
(cancelReadableStream):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):

  • Modules/streams/WritableStreamInternals.js:

(callOrScheduleWritableStreamAdvanceQueue):

LayoutTests:

  • streams/streams-promises.html: Added tests from about replacing

the prototype, then and catch methods. Renamed all tests as well.

  • streams/streams-promises-expected.txt: Added expectations.
6:46 AM Changeset in webkit [192156] by Manuel Rego Casasnovas
  • 3 edits in trunk/Source/WebCore

[css-grid] Refactor cachedGridCoordinate() to cachedGridSpan()
https://bugs.webkit.org/show_bug.cgi?id=151017

Reviewed by Sergio Villar Senin.

We were using cachedGridCoordinate() in lots of places and checking the
direction just in the next line. Creating a generic function to do this.

No new tests, no behavior change.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::GridItemWithSpan::GridItemWithSpan):
(WebCore::GridItemWithSpan::span):
(WebCore::GridItemWithSpan::operator<):
(WebCore::RenderGrid::spanningItemCrossesFlexibleSizedTracks):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForNonSpanningItems):
(WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
(WebCore::RenderGrid::cachedGridSpan):
(WebCore::RenderGrid::gridAreaBreadthForChild):
(WebCore::RenderGrid::gridAreaBreadthForChildIncludingAlignmentOffsets):
(WebCore::RenderGrid::columnAxisOffsetForChild):
(WebCore::RenderGrid::rowAxisOffsetForChild):
(WebCore::GridItemWithSpan::gridItem): Deleted.
(WebCore::RenderGrid::populateGridPositions): Deleted.

  • rendering/RenderGrid.h:
6:15 AM Changeset in webkit [192155] by youenn.fablet@crf.canon.fr
  • 17 edits in trunk/Source

JS Built-ins functions should be able to assert
https://bugs.webkit.org/show_bug.cgi?id=150333

Reviewed by Yusuke Suzuki.

Source/JavaScriptCore:

Introduced @assert to enable asserting in JS built-ins.
Adding a new bytecode 'assert' to implement it.
In debug builds, @assert generates 'assert' bytecodes.
In release builds, no byte code is produced for @assert.

In case assert is false, the JS built-in and the line number are dumped.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitAssert):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp: Generating op_assert bytecode for @assert for Debug builds.

(JSC::BytecodeIntrinsicNode::emit_intrinsic_assert):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_assert):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_create_assert):

  • llint/LowLevelInterpreter.asm:
  • runtime/CommonIdentifiers.h: Adding @assert identifier as intrinsic.
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/CommonSlowPaths.h:

Source/WebCore:

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamReader): Activating an @assert.

4:56 AM Changeset in webkit [192154] by svillar@igalia.com
  • 11 edits
    8 adds in trunk

[css-grid] Improve grid container sizing with size constraints and intrinsic sizes
https://bugs.webkit.org/show_bug.cgi?id=150679

Reviewed by Darin Adler.

Source/WebCore:

The grid container stores from now on its min-content and
max-content block sizes in order to be able to properly
compute its intrinsic size. It has to redefine
computeIntrinsicLogicalContentHeightUsing() because the
behavior of grid is different to "normal" blocks:

  • the min-content size is the sum of the grid container's

track sizes in the appropiate axis when the grid is sized
under a min-content constraint.

  • the max-content size is the sum of the grid container's

track sizes in the appropiate axis when the grid is sized
under a max-content constraint.

  • the auto block size is the max-content size.

A nice side effect is that we can now properly detect whether
the grid has a definite size on a given axis or not.

Tests: fast/css-grid-layout/absolute-positioning-definite-sizes.html

fast/css-grid-layout/flex-and-intrinsic-sizes.html
fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html
fast/css-grid-layout/maximize-tracks-definite-indefinite-width.html

  • rendering/RenderBox.h: made

computeIntrinsicLogicalContentHeightUsing() virtual.

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::GridSizingData::GridSizingData):
(WebCore::RenderGrid::GridSizingData::freeSpaceForDirection):
(WebCore::RenderGrid::GridSizingData::setFreeSpaceForDirection):
(WebCore::RenderGrid::computeTrackBasedLogicalHeight):
(WebCore::RenderGrid::computeTrackSizesForDirection):
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::computeIntrinsicLogicalWidths):
(WebCore::RenderGrid::computeIntrinsicLogicalHeight):
(WebCore::RenderGrid::computeIntrinsicLogicalContentHeightUsing):
(WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
(WebCore::RenderGrid::distributeSpaceToTracks):
(WebCore::RenderGrid::tracksAreWiderThanMinTrackBreadth):
(WebCore::RenderGrid::applyStretchAlignmentToTracksIfNeeded):
(WebCore::RenderGrid::layoutGridItems):
(WebCore::RenderGrid::populateGridPositions):
(WebCore::RenderGrid::gridElementIsShrinkToFit): Deleted.

  • rendering/RenderGrid.h:

LayoutTests:

  • fast/css-grid-layout/absolute-positioning-definite-sizes-expected.txt: Added.
  • fast/css-grid-layout/absolute-positioning-definite-sizes.html: Added.
  • fast/css-grid-layout/flex-and-intrinsic-sizes-expected.txt: Added.
  • fast/css-grid-layout/flex-and-intrinsic-sizes.html: Added.
  • fast/css-grid-layout/grid-element-change-columns-repaint.html:
  • fast/css-grid-layout/grid-item-change-column-repaint.html:
  • fast/css-grid-layout/grid-preferred-logical-widths.html:
  • fast/css-grid-layout/maximize-tracks-definite-indefinite-height-expected.txt: Added.
  • fast/css-grid-layout/maximize-tracks-definite-indefinite-height.html: Added.
  • fast/css-grid-layout/maximize-tracks-definite-indefinite-width-expected.txt: Added.
  • fast/css-grid-layout/maximize-tracks-definite-indefinite-width.html: Added.
  • fast/css-grid-layout/percent-of-indefinite-track-size.html:
  • fast/events/key-events-in-editable-gridbox-expected.txt:
  • fast/events/key-events-in-editable-gridbox.html: Added more test

cases for intrinsic and fixed sized heights.

4:24 AM Changeset in webkit [192153] by svillar@igalia.com
  • 5 edits
    2 adds in trunk

[css-grid] Grid placement conflict handling
https://bugs.webkit.org/show_bug.cgi?id=150891

Reviewed by Darin Adler.

Source/WebCore:

If the placement for a grid item contains two lines, and the
start line is further end-ward than the end line, swap the two
lines. If the start line is equal to the end line, remove the
end line.

Test: fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line.html

  • rendering/style/GridResolvedPosition.cpp:

(WebCore::resolveNamedGridLinePositionFromStyle):
(WebCore::resolveGridPositionFromStyle):
(WebCore::GridResolvedPosition::GridResolvedPosition):
(WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
(WebCore::adjustGridPositionForSide): Deleted.

  • rendering/style/GridResolvedPosition.h:

(WebCore::GridResolvedPosition::prev):

LayoutTests:

Updated the expectations for
named-grid-lines-with-named-grid-areas-dynamic-get-set.html
because two of the tests where positioning an item with a
start-line > end-line (it was removing the end line instead of
swapping them).

  • fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html:
  • fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line-expected.html: Added.
  • fast/css-grid-layout/swap-lines-if-start-is-further-endward-than-end-line.html: Added.
4:13 AM Changeset in webkit [192152] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Unreviewed CMake buildfix after r192113.

  • PlatformMac.cmake: New file added.
4:07 AM Changeset in webkit [192151] by Csaba Osztrogonác
  • 2 edits in trunk/Tools

[EFL] Fix the gst-plugins-bad jhbuild module build on Ubuntu 15.10
https://bugs.webkit.org/show_bug.cgi?id=150928

Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:
3:55 AM Changeset in webkit [192150] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit2

Unreviewed speculative CMake buildfix after r192111.

Reviewed by NOBODY (OOPS!).

  • CMakeLists.txt: New files added.
1:57 AM Changeset in webkit [192149] by calvaris@igalia.com
  • 2 edits in trunk/LayoutTests

Unreviewed.

  • platform/win/TestExpectations: Marked 150976 as dup of 147933.

Nov 8, 2015:

11:03 PM Changeset in webkit [192148] by Gyuyoung Kim
  • 4 edits
    2 adds in trunk/Source

[EFL] Add UserAgentEFl.cpp|h
https://bugs.webkit.org/show_bug.cgi?id=151007

Reviewed by Darin Adler.

As other ports EFL port starts to have UserAgentEfl class in order to support more detailed
UA.

Source/WebCore:

No new tests, no behavior change.

  • PlatformEfl.cmake:
  • platform/efl/UserAgentEfl.cpp: Added.

(WebCore::platformForUAString):
(WebCore::platformVersionForUAString):
(WebCore::versionForUAString):
(WebCore::standardUserAgent):

  • platform/efl/UserAgentEfl.h: Added.

Source/WebKit2:

  • UIProcess/efl/WebPageProxyEfl.cpp:

(WebKit::WebPageProxy::standardUserAgent): Call WebCore::standardUserAgent().

5:34 PM Changeset in webkit [192147] by Yusuke Suzuki
  • 11 edits in trunk/Source/JavaScriptCore

[ES6] Minimize ES6_CLASS_SYNTAX ifdefs
https://bugs.webkit.org/show_bug.cgi?id=151006

Reviewed by Darin Adler.

This patch minimizes ENABLE_ES6_CLASS_SYNTAX ifdefs.
It keeps several ENABLE_ES6_CLASS_SYNTAX ifdefs in Parser.cpp.

  • super meta property
  • class declaration parsing
  • class expression parsing
  • class with import declaration

This change makes difference minimal between the enabled and disabled configurations;
reducing accidental build breaks of the disabled configuration.

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::constructorKind): Deleted.

  • bytecompiler/NodesCodegen.cpp:
  • parser/ASTBuilder.h:
  • parser/NodeConstructors.h:
  • parser/Nodes.h:
  • parser/Parser.cpp:
  • parser/Parser.h:

(JSC::Scope::hasDirectSuper): Deleted.
(JSC::Scope::needsSuperBinding): Deleted.

  • parser/ParserFunctionInfo.h:
  • parser/ParserTokens.h:
  • parser/SyntaxChecker.h:
10:36 AM Changeset in webkit [192146] by Sukolsak Sakshuwong
  • 2 edits in trunk/Source/JavaScriptCore

Use StringView::upconvertedCharacters() to make a 16-bit copy in String.prototype.normalize
https://bugs.webkit.org/show_bug.cgi?id=151005

Reviewed by Michael Saboff.

The ICU's unorm_normalize function used by String.prototype.normalize
requires a 16-bit string. This patch uses StringView::upconvertedCharacters()
to make a 16-bit copy of a string.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncNormalize):

9:16 AM Changeset in webkit [192145] by Simon Fraser
  • 2 edits in trunk/Source/WebKit/win

Another Windows build fix.

  • WebView.cpp:

(WebView::paintIntoBackingStore):

9:11 AM Changeset in webkit [192144] by Simon Fraser
  • 3 edits in trunk/Source/WebKit/win

Fix the Windows build after r192140.

  • FullscreenVideoController.cpp:

(HUDButton::draw):
(HUDSlider::draw):
(FullscreenVideoController::draw):

  • Plugins/PluginView.cpp:

(WebCore::PluginView::paintMissingPluginIcon):

7:32 AM Changeset in webkit [192143] by ddkilzer@apple.com
  • 4 edits in trunk/Source/WebCore

REGRESSION (r192140): Windows build broke after removing ColorSpace argument to all drawing calls
<http://webkit.org/b/150967>

Unreviewed attempt to fix the Windows build.

  • platform/graphics/ca/win/PlatformCALayerWin.cpp:

(PlatformCALayerWin::drawTextAtPoint):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • rendering/RenderThemeWin.cpp:

(WebCore::RenderThemeWin::paintSearchFieldCancelButton):
(WebCore::RenderThemeWin::paintSearchFieldResultsDecorationPart):
(WebCore::RenderThemeWin::paintSearchFieldResultsButton):

3:40 AM Changeset in webkit [192142] by youenn.fablet@crf.canon.fr
  • 10 edits in trunk/Source

generate-js-builtins.js should support @internal annotation
https://bugs.webkit.org/show_bug.cgi?id=150929

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generate_separate_header.py:

(BuiltinsSeparateHeaderGenerator.generate_output): Generate internal boilerplate code only if @internal annotation is available.

  • Scripts/builtins/builtins_templates.py: Split boilerplate in two templates (one that is used for all built-ins and one dedicated to internals).
  • Scripts/tests/builtins/expected/WebCore-ArbitraryConditionalGuard-Separate.js-result: Removed internal boilerplate.
  • Scripts/tests/builtins/expected/WebCore-GuardedBuiltin-Separate.js-result: Ditto.
  • Scripts/tests/builtins/expected/WebCore-UnguardedBuiltin-Separate.js-result: Ditto.

Source/WebCore:

No change in behavior.

  • Modules/streams/ReadableStreamInternals.js: Renamed @internals to @internal.
  • Modules/streams/StreamInternals.js: Ditto.
  • Modules/streams/WritableStreamInternals.js: Ditto.
12:03 AM Changeset in webkit [192141] by Yusuke Suzuki
  • 12 edits in trunk/Source/JavaScriptCore

[ES6] Minimize ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX ifdefs
https://bugs.webkit.org/show_bug.cgi?id=150998

Reviewed by Geoffrey Garen.

This patch minimizes ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX ifdefs.
It only keeps 2 ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX in Parser.cpp, one for
template literals and one for tagged templates.
This change makes difference minimal between the enabled and disabled configurations;
reducing accidental build breaks of the disabled configuration.

  • bytecompiler/BytecodeGenerator.cpp:
  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:
  • parser/ASTBuilder.h:
  • parser/Lexer.cpp:

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

  • parser/Lexer.h:
  • parser/NodeConstructors.h:
  • parser/Nodes.h:
  • parser/Parser.cpp:
  • parser/Parser.h:
  • parser/SyntaxChecker.h:

Nov 7, 2015:

11:17 PM Changeset in webkit [192140] by Simon Fraser
  • 160 edits in trunk/Source

Remove ColorSpace argument to all the drawing calls
https://bugs.webkit.org/show_bug.cgi?id=150967

Reviewed by Darin Adler.

Source/WebCore:

Since the -webkit-color-correction CSS property was removed in r188202, and ColorSpaceDeviceRGB
and ColorSpaceSRGB are functionally equivalent, we can remove all the ColorSpace arguments passed
to drawing functions, and remove RenderStyle::colorSpace(), which was hardcoded to return ColorSpaceSRGB.

Fill and stroke ColorSpaces are also remove from graphics state, simplifying color save/restore.

  • bindings/scripts/CodeGeneratorObjC.pm:

(GenerateImplementation):

  • css/CSSFilterImageValue.cpp:

(WebCore::CSSFilterImageValue::image):

  • editing/FrameSelection.cpp:

(WebCore::CaretBase::paintCaret):

  • editing/cocoa/HTMLConverter.mm:

(_platformColor):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):

  • html/canvas/CanvasRenderingContext2D.cpp:

(WebCore::CanvasRenderingContext2D::clearRect):
(WebCore::CanvasRenderingContext2D::applyShadow):
(WebCore::CanvasRenderingContext2D::drawImage):
(WebCore::CanvasRenderingContext2D::compositeBuffer):
(WebCore::drawImageToContext):
(WebCore::CanvasRenderingContext2D::fullCanvasCompositedDrawImage):
(WebCore::CanvasRenderingContext2D::drawTextInternal):

  • html/canvas/CanvasRenderingContext2D.h:
  • html/canvas/CanvasStyle.cpp:

(WebCore::CanvasStyle::applyStrokeColor):
(WebCore::CanvasStyle::applyFillColor):

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::drawImageIntoBuffer):

  • page/DebugPageOverlays.cpp:

(WebCore::RegionOverlay::drawRect):

  • page/FrameView.cpp:

(WebCore::FrameView::paintScrollCorner):
(WebCore::FrameView::paintScrollbar):
(WebCore::FrameView::paintContents):

  • page/PrintContext.cpp:

(WebCore::PrintContext::spoolAllPagesWithBoundaries):

  • platform/ScrollView.cpp:

(WebCore::ScrollView::paintPanScrollIcon):

  • platform/ScrollbarTheme.h:

(WebCore::ScrollbarTheme::defaultPaintScrollCorner):

  • platform/ScrollbarThemeComposite.cpp:

(WebCore::ScrollbarThemeComposite::paintScrollCorner):
(WebCore::ScrollbarThemeComposite::paintOverhangAreas):

  • platform/Theme.cpp:

(WebCore::Theme::drawNamedImage):

  • platform/cocoa/ThemeCocoa.cpp:

(WebCore::ThemeCocoa::drawNamedImage):

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::drawPattern):

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Color.h:
  • platform/graphics/CrossfadeGeneratedImage.cpp:

(WebCore::drawCrossfadeSubimage):
(WebCore::CrossfadeGeneratedImage::draw):
(WebCore::CrossfadeGeneratedImage::drawPattern):

  • platform/graphics/CrossfadeGeneratedImage.h:
  • platform/graphics/GeneratedImage.h:
  • platform/graphics/GradientImage.cpp:

(WebCore::GradientImage::draw):
(WebCore::GradientImage::drawPattern):

  • platform/graphics/GradientImage.h:
  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::drawRaisedEllipse):
(WebCore::GraphicsContext::setStrokeColor):
(WebCore::GraphicsContext::setShadow):
(WebCore::GraphicsContext::setLegacyShadow):
(WebCore::GraphicsContext::getShadow):
(WebCore::GraphicsContext::setFillColor):
(WebCore::GraphicsContext::drawImage):
(WebCore::GraphicsContext::drawTiledImage):
(WebCore::GraphicsContext::drawImageBuffer):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::fillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::clearShadow): Deleted.

  • platform/graphics/GraphicsContext.h:

(WebCore::GraphicsContext::strokeColorSpace): Deleted.
(WebCore::GraphicsContext::fillColorSpace): Deleted.

  • platform/graphics/Image.cpp:

(WebCore::Image::fillWithSolidColor):
(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:

(WebCore::Image::drawFrameMatchingSourceSize):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::create):

  • platform/graphics/NamedImageGeneratedImage.cpp:

(WebCore::NamedImageGeneratedImage::draw):
(WebCore::NamedImageGeneratedImage::drawPattern):

  • platform/graphics/NamedImageGeneratedImage.h:
  • platform/graphics/ShadowBlur.cpp:

(WebCore::ScratchBuffer::setCachedShadowValues):
(WebCore::ScratchBuffer::setCachedInsetShadowValues):
(WebCore::ShadowBlur::ShadowBlur):
(WebCore::ShadowBlur::setShadowValues):
(WebCore::ShadowBlur::drawShadowBuffer):
(WebCore::ShadowBlur::drawRectShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
(WebCore::ShadowBlur::drawInsetShadowWithTiling):
(WebCore::ShadowBlur::drawRectShadowWithTiling):
(WebCore::ShadowBlur::drawLayerPieces):
(WebCore::ShadowBlur::blurAndColorShadowBuffer):
(WebCore::ShadowBlur::beginShadowLayer):
(WebCore::ShadowBlur::endShadowLayer):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::setContentsToImage): Deleted.

  • platform/graphics/ca/TileGrid.cpp:

(WebCore::TileGrid::platformCALayerPaintContents):

  • platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:

(PlatformCALayerWinInternal::drawRepaintCounters):

  • platform/graphics/cairo/BitmapImageCairo.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::drawPattern):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cairo/ImageCairo.cpp:

(WebCore::Image::drawPattern):

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::draw):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::leakCGColor):
(WebCore::cachedCGColor):

  • platform/graphics/cg/GraphicsContext3DCG.cpp:

(WebCore::GraphicsContext3D::paintToCanvas):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::setCGFillColor):
(WebCore::setCGStrokeColor):
(WebCore::GraphicsContext::platformInit):
(WebCore::GraphicsContext::drawNativeImage):
(WebCore::GraphicsContext::drawPattern):
(WebCore::GraphicsContext::drawRect):
(WebCore::GraphicsContext::drawLine):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::fillRect):
(WebCore::GraphicsContext::platformFillRoundedRect):
(WebCore::GraphicsContext::fillRectWithRoundedHole):
(WebCore::GraphicsContext::setPlatformShadow):
(WebCore::GraphicsContext::drawLinesForText):
(WebCore::GraphicsContext::setPlatformStrokeColor):
(WebCore::GraphicsContext::setPlatformFillColor):
(WebCore::sRGBColorSpaceRef): Deleted.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::copyImage):
(WebCore::ImageBuffer::draw):
(WebCore::ImageBuffer::drawPattern):

  • platform/graphics/cg/ImageCG.cpp:

(WebCore::Image::drawPattern):
(WebCore::Image::imageWithColorSpace): Deleted.

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::draw):

  • platform/graphics/cg/PDFDocumentImage.h:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/filters/FEBlend.cpp:

(WebCore::FEBlend::platformApplySoftware):

  • platform/graphics/filters/FEColorMatrix.cpp:

(WebCore::FEColorMatrix::platformApplySoftware):

  • platform/graphics/filters/FEComposite.cpp:

(WebCore::FEComposite::platformApplySoftware):

  • platform/graphics/filters/FEDropShadow.cpp:

(WebCore::FEDropShadow::platformApplySoftware):

  • platform/graphics/filters/FEFlood.cpp:

(WebCore::FEFlood::platformApplySoftware):

  • platform/graphics/filters/FEMerge.cpp:

(WebCore::FEMerge::platformApplySoftware):

  • platform/graphics/filters/FEOffset.cpp:

(WebCore::FEOffset::platformApplySoftware):

  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/SourceAlpha.cpp:

(WebCore::SourceAlpha::platformApplySoftware):

  • platform/graphics/filters/SourceGraphic.cpp:

(WebCore::SourceGraphic::platformApplySoftware):

  • platform/graphics/ios/IconIOS.mm:

(WebCore::Icon::paint):

  • platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
  • platform/graphics/texmap/coordinated/UpdateAtlas.cpp:
  • platform/graphics/win/FontCGWin.cpp:

(WebCore::FontCascade::drawGlyphs):

  • platform/graphics/win/GraphicsContextCGWin.cpp:

(WebCore::GraphicsContext::drawFocusRing):

  • platform/graphics/win/ImageCGWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/graphics/win/ImageCairoWin.cpp:

(WebCore::BitmapImage::getHBITMAPOfSize):
(WebCore::BitmapImage::drawFrameMatchingSourceSize):

  • platform/ios/LegacyTileCache.mm:

(WebCore::LegacyTileCache::drawLayer):

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::LegacyTileGridTile::showBorder):

  • platform/ios/WebVideoFullscreenControllerAVKit.mm:

(WebVideoFullscreenControllerContext::didSetupFullscreen):

  • platform/mac/DragImageMac.mm:

(WebCore::drawAtPoint):

  • platform/mac/ScrollbarThemeMac.mm:

(WebCore::ScrollbarThemeMac::setUpOverhangAreaBackground):

  • platform/mac/ThemeMac.mm:

(WebCore::ThemeMac::drawCellOrFocusRingWithViewIntoContext):

  • platform/mediastream/MediaStreamPrivate.cpp:

(WebCore::MediaStreamPrivate::paintCurrentFrameInContext):

  • platform/mock/ScrollbarThemeMock.cpp:

(WebCore::ScrollbarThemeMock::paintTrackBackground):
(WebCore::ScrollbarThemeMock::paintThumb):

  • platform/win/DragImageWin.cpp:

(WebCore::createDragImageForLink):

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::paint):

  • platform/win/WebCoreTextRenderer.cpp:

(WebCore::doDrawTextAtPoint):

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::paint):
(WebCore::EllipsisBox::paintSelection):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRendererHelper::applyFilterEffect):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paintSelection):
(WebCore::InlineTextBox::paintCompositionBackground):
(WebCore::InlineTextBox::paintDecoration):
(WebCore::InlineTextBox::paintTextMatchMarker):
(WebCore::InlineTextBox::paintCompositionUnderline):

  • rendering/RenderBlock.cpp:

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

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintClippingMask):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::applyBoxShadowForBackground):
(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::paintBorder):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::paintBoxShadow):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::paint):

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide):
(WebCore::RenderElement::paintOutline):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::paintSnapshotImage):
(WebCore::RenderEmbeddedObject::paintReplaced):

  • rendering/RenderFileUploadControl.cpp:

(WebCore::RenderFileUploadControl::paintObject):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):
(WebCore::RenderImage::paintIntoRect):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::beginTransparencyLayers):
(WebCore::RenderLayer::paintScrollCorner):
(WebCore::RenderLayer::drawPlatformResizerImage):
(WebCore::RenderLayer::paintResizer):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground):
(WebCore::RenderListBox::paintItemBackground):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::paint):

  • rendering/RenderReplaced.cpp:

(WebCore::RenderReplaced::paint):

  • rendering/RenderScrollbarTheme.cpp:

(WebCore::RenderScrollbarTheme::paintScrollCorner):

  • rendering/RenderSnapshottedPlugIn.cpp:

(WebCore::RenderSnapshottedPlugIn::paintSnapshot):

  • rendering/RenderTheme.cpp:

(WebCore::RenderTheme::paintSliderTicks):

  • rendering/RenderThemeIOS.mm:

(WebCore::drawAxialGradient):
(WebCore::drawRadialGradient):
(WebCore::RenderThemeIOS::paintCheckboxDecorations):
(WebCore::RenderThemeIOS::paintRadioDecorations):
(WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
(WebCore::RenderThemeIOS::paintSliderTrack):
(WebCore::RenderThemeIOS::paintProgressBar):
(WebCore::RenderThemeIOS::paintFileUploadIconDecorations):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):
(WebCore::RenderThemeMac::paintMenuListButtonDecorations):
(WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
(WebCore::titleTextColorForAttachment):
(WebCore::AttachmentLayout::layOutSubtitle):
(WebCore::paintAttachmentIconBackground):
(WebCore::paintAttachmentTitleBackground):
(WebCore::paintAttachmentProgress):

  • rendering/RenderView.cpp:

(WebCore::RenderView::paint):
(WebCore::RenderView::paintBoxDecorations):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::lineSelectionGap):

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintDebugBorders):

  • rendering/TextPaintStyle.cpp:

(WebCore::TextPaintStyle::TextPaintStyle):
(WebCore::adjustColorForVisibilityOnBackground):
(WebCore::computeTextPaintStyle):
(WebCore::updateGraphicsContext):

  • rendering/TextPaintStyle.h:

(WebCore::TextPaintStyle::TextPaintStyle):

  • rendering/TextPainter.cpp:

(WebCore::ShadowApplier::ShadowApplier):
(WebCore::paintTextWithShadows):

  • rendering/mathml/RenderMathMLBlock.cpp:

(WebCore::RenderMathMLBlock::paint):

  • rendering/mathml/RenderMathMLFraction.cpp:

(WebCore::RenderMathMLFraction::paint):

  • rendering/mathml/RenderMathMLMenclose.cpp:

(WebCore::RenderMathMLMenclose::paint):

  • rendering/mathml/RenderMathMLOperator.cpp:

(WebCore::RenderMathMLOperator::paint):

  • rendering/mathml/RenderMathMLRadicalOperator.cpp:

(WebCore::RenderMathMLRadicalOperator::paint):

  • rendering/mathml/RenderMathMLRoot.cpp:

(WebCore::RenderMathMLRoot::paint):

  • rendering/shapes/Shape.cpp:

(WebCore::Shape::createRasterShape):

  • rendering/style/NinePieceImage.cpp:

(WebCore::NinePieceImage::paint):

  • rendering/style/RenderStyle.h:
  • rendering/svg/RenderSVGImage.cpp:

(WebCore::RenderSVGImage::paintForeground):

  • rendering/svg/RenderSVGPath.cpp:

(WebCore::useStrokeStyleToFill):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::postApplyResource):

  • rendering/svg/RenderSVGResourceSolidColor.cpp:

(WebCore::RenderSVGResourceSolidColor::applyResource):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::paintSelectionBackground):

  • rendering/svg/SVGRenderingContext.cpp:

(WebCore::SVGRenderingContext::prepareToRenderSVGContent):
(WebCore::SVGRenderingContext::bufferForeground):

  • svg/SVGAnimatedColor.cpp:

(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawForContainer):
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::drawPatternForContainer):
(WebCore::SVGImage::draw):

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::draw):
(WebCore::SVGImageForContainer::drawPattern):

  • svg/graphics/SVGImageForContainer.h:
  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

  • testing/MockPageOverlayClient.cpp:

(WebCore::MockPageOverlayClient::drawRect):

Source/WebKit/ios:

Since the -webkit-color-correction CSS property was removed in r188202, and ColorSpaceDeviceRGB
and ColorSpaceSRGB are functionally equivalent, we can remove all the ColorSpace arguments passed
to drawing functions, and remove RenderStyle::colorSpace(), which was hardcoded to return ColorSpaceSRGB.

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView drawPage:]):

  • WebView/WebPlainWhiteView.mm:

Source/WebKit/mac:

Since the -webkit-color-correction CSS property was removed in r188202, and ColorSpaceDeviceRGB
and ColorSpaceSRGB are functionally equivalent, we can remove all the ColorSpace arguments passed
to drawing functions, and remove RenderStyle::colorSpace(), which was hardcoded to return ColorSpaceSRGB.

  • Misc/WebKitNSStringExtras.mm:

(-[NSString _web_drawAtPoint:font:textColor:allowingFontSmoothing:]):

  • WebInspector/WebNodeHighlightView.mm:

(-[WebNodeHighlightView _layoutForNodeHighlight:parent:]):
(-[WebNodeHighlightView _layoutForRectsHighlight:parent:]):

  • WebView/WebFrame.mm:

(-[WebFrame _bodyBackgroundColor]):

  • WebView/WebFrameView.mm:

(-[WebFrameView drawRect:]):

  • WebView/WebIndicateLayer.mm:

Source/WebKit2:

  • Shared/API/c/cg/WKImageCG.cpp:

(WKImageCreateFromCGImage):

  • Shared/ContextMenuContextData.cpp:

(WebKit::ContextMenuContextData::ContextMenuContextData):

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::encodeImage):

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::drawInContext):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _updateScrollViewBackground]):

  • UIProcess/WKInspectorHighlightView.mm:

(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):

  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _updateTapHighlight]):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::beginSwipeGesture):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::drawRect):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::createSelectionSnapshot):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::snapshotAtSize):

  • WebProcess/WebPage/ios/FindControllerIOS.mm:

(WebKit::FindIndicatorOverlayClientIOS::drawRect):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::WebPage::getPositionInformation):

  • WebProcess/ios/WebVideoFullscreenManager.mm:

(WebKit::WebVideoFullscreenManager::didSetupFullscreen):

10:57 PM Changeset in webkit [192139] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, update fast/replaced/replaced-breaking.html

Update fast/replaced/replaced-breaking.html so that it outputs the
same result on all platforms.

  • fast/replaced/replaced-breaking.html:
10:31 PM Changeset in webkit [192138] by Simon Fraser
  • 24 edits in trunk/Source

Use ColorSpaceSRGB for image buffers everywhere
https://bugs.webkit.org/show_bug.cgi?id=150990

Reviewed by Zalan Bujtas.

ColorSpaceSRGB and ColorSpaceDeviceRGB are equivalent now, so convert
code that creates image buffers tagged with ColorSpaceDeviceRGB to use ColorSpaceSRGB.

Source/WebCore:

  • platform/graphics/GraphicsContext.cpp:

(WebCore::GraphicsContext::createCompatibleBuffer):

  • platform/graphics/ImageBuffer.h:

(WebCore::ImageBuffer::create):

  • platform/graphics/cg/BitmapImageCG.cpp:

(WebCore::BitmapImage::checkForSolidColor):

  • platform/graphics/cg/ColorCG.cpp:

(WebCore::Color::Color):

  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::sRGBColorSpaceRef): Deleted.

  • platform/graphics/cg/ImageBufferCG.cpp:

(WebCore::ImageBuffer::putByteArray):

  • platform/graphics/cocoa/IOSurface.mm:

(IOSurface::createFromImage):

  • platform/graphics/filters/FEFlood.h:
  • platform/graphics/filters/FETile.cpp:

(WebCore::FETile::platformApplySoftware):

  • platform/graphics/filters/FilterEffect.cpp:

(WebCore::FilterEffect::FilterEffect):

  • platform/graphics/filters/SourceGraphic.h:

(WebCore::SourceGraphic::SourceGraphic):

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::build):
(WebCore::FilterEffectRenderer::apply):

  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::paintProgressBar):

  • rendering/svg/RenderSVGResourceClipper.cpp:

(WebCore::RenderSVGResourceClipper::applyClippingToContext):

  • rendering/svg/RenderSVGResourceFilter.cpp:

(WebCore::RenderSVGResourceFilter::buildPrimitives):

  • rendering/svg/RenderSVGResourceGradient.cpp:

(WebCore::createMaskAndSwapContextForTextGradient):

  • rendering/svg/RenderSVGResourceMasker.cpp:

(WebCore::RenderSVGResourceMasker::applyResource):

  • rendering/svg/RenderSVGResourcePattern.cpp:

(WebCore::RenderSVGResourcePattern::createTileImage):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::drawPatternForContainer):

  • svg/graphics/filters/SVGFEImage.cpp:

(WebCore::FEImage::platformApplySoftware):

Source/WebKit2:

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::decode):
(WebKit::RemoteLayerBackingStore::swapToValidFrontBuffer):

  • UIProcess/API/Cocoa/WKWebView.mm:

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

8:04 PM Changeset in webkit [192137] by dbates@webkit.org
  • 2 edits in trunk/Tools

Attempt to fix the Windows EWS bot after r192087
(https://bugs.webkit.org/show_bug.cgi?id=150859)

Following r192087 Port._build_path() stores the computed root directory path in option
_cached_root instead of overwriting option root. We need to teach the Windows-specific
logic to make use of option _cached_root instead of option root when computing its adjusted
path and to cache its adjusted in _cached_root instead of root.

  • Scripts/webkitpy/port/win.py:

(WinPort._build_path):

7:33 PM Changeset in webkit [192136] by Alan Bujtas
  • 2 edits in trunk/LayoutTests

DRT does not reset the frame rect between 2 runs.
https://bugs.webkit.org/show_bug.cgi?id=151003

Set the min frame rect for 800*600 for now.

Unreviewed gardening.

  • fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html:
6:10 PM Changeset in webkit [192135] by fpizlo@apple.com
  • 4 edits
    3 deletes in trunk/Source/JavaScriptCore

B3->Air lowering should do pattern matching the old fashioned way
https://bugs.webkit.org/show_bug.cgi?id=150994

Reviewed by Geoffrey Garen.

When I first wrote the B3->Air lowering prototype, I was convinced that the patterns would get
so gnarly that we'd want a pattern language to write them in. So I made one, and that's what
the lowering has used. But as we've worked with the IR, we've found that it's very easy to
pattern match in C++ using the B3 API, and we've also found that most of the patterns we wrote
using the pattern language were mostly trivial. So this change removes the pattern match code
generator and the patterns files, and redoes the lowering using good old fashioned switch
statements. This actually reduces the total code of the lowering.

I also took the opportunity to refactoring UnOp and BinOp lowering. We had a lot of repetetive
code for 32-vs-64-bit opcode selection, so I factored that out into a helper. This also saves a
lot of code.

  • CMakeLists.txt:
  • DerivedSources.make:
  • b3/B3AddressMatcher.patterns: Removed.
  • b3/B3LowerToAir.cpp:

(JSC::B3::Air::LowerToAir::LowerToAir):
(JSC::B3::Air::LowerToAir::run):
(JSC::B3::Air::LowerToAir::highBitsAreZero):
(JSC::B3::Air::LowerToAir::tmp):
(JSC::B3::Air::LowerToAir::canBeInternal):
(JSC::B3::Air::LowerToAir::commitInternal):
(JSC::B3::Air::LowerToAir::crossesInterference):
(JSC::B3::Air::LowerToAir::effectiveAddr):
(JSC::B3::Air::LowerToAir::addr):
(JSC::B3::Air::LowerToAir::loadPromise):
(JSC::B3::Air::LowerToAir::imm):
(JSC::B3::Air::LowerToAir::immForMove):
(JSC::B3::Air::LowerToAir::immOrTmpForMove):
(JSC::B3::Air::LowerToAir::tryOpcodeForType):
(JSC::B3::Air::LowerToAir::opcodeForType):
(JSC::B3::Air::LowerToAir::appendUnOp):
(JSC::B3::Air::LowerToAir::appendBinOp):
(JSC::B3::Air::LowerToAir::appendShift):
(JSC::B3::Air::LowerToAir::tryAppendStoreUnOp):
(JSC::B3::Air::LowerToAir::tryAppendStoreBinOp):
(JSC::B3::Air::LowerToAir::append):
(JSC::B3::Air::LowerToAir::ensureSpecial):
(JSC::B3::Air::LowerToAir::fillStackmap):
(JSC::B3::Air::LowerToAir::createGenericCompare):
(JSC::B3::Air::LowerToAir::createBranch):
(JSC::B3::Air::LowerToAir::createCompare):
(JSC::B3::Air::LowerToAir::lower):
(JSC::B3::Air::LowerToAir::immOrTmp): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::AddressSelector): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptRoot): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptRootLate): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptInternals): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptInternalsLate): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptOperands): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::acceptOperandsLate): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryAddShift1): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryAddShift2): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryAdd): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryFramePointer): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryStackSlot): Deleted.
(JSC::B3::Air::LowerToAir::AddressSelector::tryDirect): Deleted.
(JSC::B3::Air::LowerToAir::acceptRoot): Deleted.
(JSC::B3::Air::LowerToAir::acceptRootLate): Deleted.
(JSC::B3::Air::LowerToAir::acceptInternals): Deleted.
(JSC::B3::Air::LowerToAir::acceptInternalsLate): Deleted.
(JSC::B3::Air::LowerToAir::acceptOperands): Deleted.
(JSC::B3::Air::LowerToAir::acceptOperandsLate): Deleted.
(JSC::B3::Air::LowerToAir::tryLoad): Deleted.
(JSC::B3::Air::LowerToAir::tryLoad8S): Deleted.
(JSC::B3::Air::LowerToAir::tryLoad8Z): Deleted.
(JSC::B3::Air::LowerToAir::tryLoad16S): Deleted.
(JSC::B3::Air::LowerToAir::tryLoad16Z): Deleted.
(JSC::B3::Air::LowerToAir::tryAdd): Deleted.
(JSC::B3::Air::LowerToAir::trySub): Deleted.
(JSC::B3::Air::LowerToAir::tryAnd): Deleted.
(JSC::B3::Air::LowerToAir::tryOr): Deleted.
(JSC::B3::Air::LowerToAir::tryXor): Deleted.
(JSC::B3::Air::LowerToAir::tryShl): Deleted.
(JSC::B3::Air::LowerToAir::trySShr): Deleted.
(JSC::B3::Air::LowerToAir::tryZShr): Deleted.
(JSC::B3::Air::LowerToAir::tryStoreAddLoad): Deleted.
(JSC::B3::Air::LowerToAir::tryStoreSubLoad): Deleted.
(JSC::B3::Air::LowerToAir::tryStoreAndLoad): Deleted.
(JSC::B3::Air::LowerToAir::tryStore): Deleted.
(JSC::B3::Air::LowerToAir::tryTrunc): Deleted.
(JSC::B3::Air::LowerToAir::tryZExt32): Deleted.
(JSC::B3::Air::LowerToAir::tryArgumentReg): Deleted.
(JSC::B3::Air::LowerToAir::tryConst32): Deleted.
(JSC::B3::Air::LowerToAir::tryConst64): Deleted.
(JSC::B3::Air::LowerToAir::tryFramePointer): Deleted.
(JSC::B3::Air::LowerToAir::tryStackSlot): Deleted.
(JSC::B3::Air::LowerToAir::tryEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryNotEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryLessThan): Deleted.
(JSC::B3::Air::LowerToAir::tryGreaterThan): Deleted.
(JSC::B3::Air::LowerToAir::tryLessEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryGreaterEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryAbove): Deleted.
(JSC::B3::Air::LowerToAir::tryBelow): Deleted.
(JSC::B3::Air::LowerToAir::tryAboveEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryBelowEqual): Deleted.
(JSC::B3::Air::LowerToAir::tryPatchpoint): Deleted.
(JSC::B3::Air::LowerToAir::tryCheck): Deleted.
(JSC::B3::Air::LowerToAir::tryUpsilon): Deleted.
(JSC::B3::Air::LowerToAir::tryPhi): Deleted.
(JSC::B3::Air::LowerToAir::tryBranch): Deleted.
(JSC::B3::Air::LowerToAir::tryJump): Deleted.
(JSC::B3::Air::LowerToAir::tryIdentity): Deleted.
(JSC::B3::Air::LowerToAir::tryReturn): Deleted.

  • b3/B3LoweringMatcher.patterns: Removed.
  • b3/generate_pattern_matcher.rb: Removed.
5:29 PM Changeset in webkit [192134] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: [Regression] [Mavericks] Toolbar is too dark while docked
https://bugs.webkit.org/show_bug.cgi?id=150977

Set the toolbar color of the docked inspector to be the same as on OS X 10.10+.
Undocked toolbar color on Mavericks is unnaffected.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Toolbar.css:

(body.mavericks.docked .toolbar):
(body:not(.mavericks) .toolbar): Added.

4:50 PM Changeset in webkit [192133] by Alan Bujtas
  • 7 edits
    2 adds in trunk

Crash when subtree layout is set on FrameView while auto size mode is enabled.
https://bugs.webkit.org/show_bug.cgi?id=150995
rdar://problem/22785262

Reviewed by Beth Dakin.

Autosizing initiates multiple synchronous layouts to calculate preferred view width for current content.
FrameView::autoSizeIfEnabled() is called from FrameView::layout() while we are in InPreLayout state.
It is safe to do during full layout.
However, since we setup the subtree state just before the autoSizeIfEnabled() call, reentering it with
a newly issued layout confuses SubtreeLayoutStateMaintainer.

This patch reverses the order of autoSizeIfEnabled() call and the subtree layout state setup.
It also ensures that the first layout requested by autoSizeIfEnabled() always runs on the whole tree.

Source/WebCore:

Test: fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html

  • page/FrameView.cpp:

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

  • page/FrameView.h:
  • testing/Internals.cpp:

(WebCore::Internals::enableAutoSizeMode):

  • testing/Internals.h:
  • testing/Internals.idl:

LayoutTests:

  • fast/dynamic/crash-subtree-layout-when-auto-size-enabled-expected.txt: Added.
  • fast/dynamic/crash-subtree-layout-when-auto-size-enabled.html: Added.
3:48 PM Changeset in webkit [192132] by Chris Dumez
  • 19 edits in trunk

embed element without src and type attributes should represent nothing
https://bugs.webkit.org/show_bug.cgi?id=148853
<rdar://problem/22588235>

Reviewed by Zalan Bujtas.

LayoutTests/imported/w3c:

Rebaseline existing tests.

  • web-platform-tests/html/dom/documents/dom-tree-accessors/document.getElementsByName/document.getElementsByName-newelements-expected.txt:
  • web-platform-tests/html/dom/documents/dom-tree-accessors/nameditem-05-expected.txt:

Source/WebCore:

As per the HTML specification, an embed element without src and type
attributes should represent nothing:
https://html.spec.whatwg.org/multipage/embedded-content.html#the-embed-element

This patch fixes the issue by making sure we don't construct a
renderer for such embed elements.

The new behavior is consistent with Firefox but differs from Chrome.

No new tests, already covered by existing tests.

  • html/HTMLEmbedElement.cpp:

(WebCore::HTMLEmbedElement::rendererIsNeeded):

LayoutTests:

Unskip 2 ref-tests that were previously failing.

  • accessibility/inline-block-assertion-expected.txt:
  • editing/execCommand/crash-140261-expected.txt:
  • fast/block/float/4145535Crash-expected.txt:
  • fast/dom/HTMLDocument/document-plugins-expected.txt:
  • fast/dom/insertedIntoDocument-child-expected.txt:
  • fast/dom/insertedIntoDocument-sibling-expected.txt:
  • fast/dom/plugin-attributes-enumeration-expected.txt:
  • fast/replaced/percent-height-in-anonymous-block-widget.html:
  • fast/replaced/replaced-breaking.html:
  • fast/replaced/table-percent-height.html:
  • fast/text/international/embed-bidi-style-in-isolate-crash-expected.txt:
  • imported/blink/fast/css-grid-layout/grid-add-positioned-block-item-after-inline-item-expected.txt:

Rebaseline / update existing tests.

10:11 AM Changeset in webkit [192131] by msaboff@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add conditional moves to the MacroAssembler
https://bugs.webkit.org/show_bug.cgi?id=150761

Reviewed by Filip Pizlo.

Added moveConditionally, moveConditionallyTest & moveConditionallyDouble to X86 macro assemblers.
Bench tested correct opcodes and operations on X86-64 and X86 for a select number of comparisons.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::moveConditionally):
(JSC::MacroAssemblerX86Common::moveConditionallyTest):
(JSC::MacroAssemblerX86Common::moveConditionallyDouble):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::cmovcc):
(JSC::X86Assembler::cmovl_rr):
(JSC::X86Assembler::cmovl_mr):
(JSC::X86Assembler::cmovel_rr):
(JSC::X86Assembler::cmovnel_rr):
(JSC::X86Assembler::cmovpl_rr):
(JSC::X86Assembler::cmovnpl_rr):
(JSC::X86Assembler::cmovq_rr):
(JSC::X86Assembler::cmovq_mr):
(JSC::X86Assembler::cmoveq_rr):
(JSC::X86Assembler::cmovneq_rr):
(JSC::X86Assembler::cmovpq_rr):
(JSC::X86Assembler::cmovnpq_rr):
(JSC::X86Assembler::X86InstructionFormatter::twoByteOp64):

9:17 AM Changeset in webkit [192130] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Node.h:392:12: warning: 'this' pointer cannot be null in well-defined C++ code
https://bugs.webkit.org/show_bug.cgi?id=150996

Reviewed by Andreas Kling.

Remove ASSERT(this) statement that is triggering hundreds of warnings from Clang.

  • dom/Node.h:

(WebCore::Node::document):

7:22 AM Changeset in webkit [192129] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

Unreviewed, fix GTK build after r191981

  • html/HTMLFormControlElement.cpp:
Note: See TracTimeline for information about the timeline view.