Timeline



Oct 17, 2016:

11:03 PM Changeset in webkit [207454] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit2

NetworkSession: PendingDownload is leaked if canceled before willDecidePendingDownloadDestination
https://bugs.webkit.org/show_bug.cgi?id=163545

Reviewed by Alex Christensen.

If a download started by DownloadManager::startDownload() is cancelled before
DownloadManager::willDecidePendingDownloadDestination() is called, DownloadManager::cancelDownload() does
nothing, because the Download hasn't been created yet and m_downloadsWaitingForDestination map doesn't contain
the download ID, and the PendingDownload is never removed from the m_pendingDownloads map.

  • NetworkProcess/Downloads/DownloadManager.cpp:

(WebKit::DownloadManager::cancelDownload): Always take the PendingDownload from m_pendingDownloads map. Then, if
the download was already in m_downloadsWaitingForDestination map, get the network data task to properly cancel
it and then call the completion handler to ignore the request. Otherwise cancel the pending download if exists.

  • NetworkProcess/Downloads/PendingDownload.cpp:

(WebKit::PendingDownload::cancel): Cancel the network load and notify the UI process that the download was canceled.

  • NetworkProcess/Downloads/PendingDownload.h:
7:02 PM Changeset in webkit [207453] by keith_miller@apple.com
  • 18 edits
    2 adds in trunk

Add support for WASM Memory.
https://bugs.webkit.org/show_bug.cgi?id=161710

Reviewed by Geoffrey Garen.

JSTests:

Add store and load opcodes to wasm.json. Additionally, add new
enums for those opcodes in the generator.

  • stress/wasm/generate-wasmops-header.js:

(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.LoadOpType):
(const.template.pragma.once.ENABLE.WEBASSEMBLY.include.cstdint.namespace.JSC.namespace.WASM.enum.StoreOpType):

Source/JavaScriptCore:

This patch add initial support for WASM memory operations. First,
it adds the concept of a WASM Module memory management object.
This object currently mmaps a 32-bit address space for WASM use,
although it marks all the memory outside the current breakpoint as
PROT_NONE. For now, we do a range check on each store and load. In
the future, we should change this to be an signal handler that
checks what module the program trapped in.

Additionally, this patch changes the way that our temporary tests
call into WASM code. There is now a true "thunk" that relocates
arguments and calls into WASM. This thunk does not tail call
because we use pinned values to memory base-pointer and
size. We use the new B3 pinned register api to pin the values.

  • CMakeLists.txt:
  • Configurations/ToolExecutable.xcconfig:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • testWASM.cpp:

(runWASMTests):
(main):

  • wasm/WASMB3IRGenerator.cpp:

(JSC::WASM::createJSWrapper):
(JSC::WASM::parseAndCompile):

  • wasm/WASMB3IRGenerator.h:
  • wasm/WASMCallingConvention.h:

(JSC::WASM::CallingConvention::iterate):
(JSC::WASM::CallingConvention::setupCall):
(JSC::WASM::nextJSCOffset):

  • wasm/WASMFormat.h:
  • wasm/WASMFunctionParser.h:

(JSC::WASM::FunctionParser<Context>::parseExpression):

  • wasm/WASMMemory.cpp: Copied from Source/JavaScriptCore/wasm/WASMPlan.cpp.

(JSC::WASM::Memory::Memory):

  • wasm/WASMMemory.h: Copied from Source/JavaScriptCore/wasm/WASMModuleParser.h.

(JSC::WASM::Memory::~Memory):
(JSC::WASM::Memory::memory):
(JSC::WASM::Memory::size):
(JSC::WASM::Memory::pinnedRegisters):
(JSC::WASM::Memory::mode):
(JSC::WASM::Memory::growMemory):
(JSC::WASM::Memory::offsetOfSize):

  • wasm/WASMModuleParser.cpp:

(JSC::WASM::ModuleParser::parse):
(JSC::WASM::ModuleParser::parseMemory):

  • wasm/WASMModuleParser.h:

(JSC::WASM::ModuleParser::functionInformation):
(JSC::WASM::ModuleParser::memory):

  • wasm/WASMOps.h:
  • wasm/WASMPlan.cpp:

(JSC::WASM::Plan::Plan):

  • wasm/WASMPlan.h:
  • wasm/WASMSections.h:
6:25 PM Changeset in webkit [207452] by bshafiei@apple.com
  • 3 edits in tags/Safari-603.1.9.0.1/Source/WebCore

Merged r207446. rdar://problem/28786160

6:22 PM Changeset in webkit [207451] by bshafiei@apple.com
  • 5 edits in tags/Safari-603.1.9.0.1/Source

Versioning.

6:17 PM Changeset in webkit [207450] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.9.0.1

New tag.

6:17 PM Changeset in webkit [207449] by bshafiei@apple.com
  • 1 delete in tags/Safari-603.1.9.1

Delete tag.

6:14 PM Changeset in webkit [207448] by bshafiei@apple.com
  • 1 copy in tags/Safari-603.1.9.1

New tag.

6:08 PM Changeset in webkit [207447] by commit-queue@webkit.org
  • 14 edits
    2 adds in trunk

Add test and infrastructure for link popover
https://bugs.webkit.org/show_bug.cgi?id=163406

Patch by Megan Gardner <Megan Gardner> on 2016-10-17
Reviewed by Simon Fraser.

Source/WebKit2:

Add infrastructure to see when a link popover appears, and what URL it has loaded.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView didShowForcePressPreview]):
(-[WKWebView didDismissForcePressPreview]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _contentsOfUserInterfaceItem:]):
(-[WKContentView _presentedViewControllerForPreviewItemController:]):
(-[WKContentView _previewItemController:didDismissPreview:committing:]):
(-[WKContentView _previewItemControllerDidCancelPreview:]):

Tools:

Added functionality test for link popovers.
Can query for what URL is loaded, and that the popover has appeared or has
been dismissed.
Added a link popover test.

  • DumpRenderTree/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::platformSetDidShowForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidDismissForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidEndFormControlInteractionCallback): Deleted.

  • TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
  • TestRunnerShared/UIScriptContext/UIScriptContext.h:
  • TestRunnerShared/UIScriptContext/UIScriptController.cpp:

(WTR::UIScriptController::setDidShowForcePressPreviewCallback):
(WTR::UIScriptController::didShowForcePressPreviewCallback):
(WTR::UIScriptController::setDidDismissForcePressPreviewCallback):
(WTR::UIScriptController::didDismissForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidShowForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidDismissForcePressPreviewCallback):
(WTR::UIScriptController::didEndFormControlInteractionCallback): Deleted.
(WTR::UIScriptController::platformSetDidEndFormControlInteractionCallback): Deleted.

  • TestRunnerShared/UIScriptContext/UIScriptController.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.h:
  • WebKitTestRunner/cocoa/TestRunnerWKWebView.mm:

(-[TestRunnerWKWebView dealloc]):
(-[TestRunnerWKWebView didShowForcePressPreview]):
(-[TestRunnerWKWebView didDismissForcePressPreview]):

  • WebKitTestRunner/ios/UIScriptControllerIOS.mm:

(WTR::UIScriptController::platformSetDidShowForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidDismissForcePressPreviewCallback):
(WTR::UIScriptController::platformSetDidEndFormControlInteractionCallback): Deleted.

LayoutTests:

  • fast/events/touch/ios/iphone7/force-press-on-link-expected.txt: Added.
  • fast/events/touch/ios/iphone7/force-press-on-link.html: Added.
6:00 PM Changeset in webkit [207446] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

Remove dependency cycle with UIKit
https://bugs.webkit.org/show_bug.cgi?id=163577
<rdar://problem/28786160>

Reviewed by Tim Horton.

Soft link against UIKit.

  • Configurations/WebCoreTestSupport.xcconfig:
  • testing/Internals.mm:
5:45 PM Changeset in webkit [207445] by timothy_horton@apple.com
  • 4 edits in trunk

REGRESSION (r169805): WKWebView canGoBack returning YES when nothing is in the back-forward list after restoring session state
https://bugs.webkit.org/show_bug.cgi?id=163573
<rdar://problem/28744549>

Reviewed by Dan Bernstein.

Source/WebKit2:

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::restoreFromSessionState):
Update PageLoadState's canGoBack/canGoForward bits when restoring from
session state, because in the don't-navigate case, nothing else will make this happen,
and it will remain stale.

Tools:

  • TestWebKitAPI/Tests/WebKit2/WKBackForwardList.mm:

(TEST):
Add a test ensuring that canGoBack returns NO after restoring session state without navigating.

5:36 PM Changeset in webkit [207444] by Joseph Pecoraro
  • 12 edits
    4 adds in trunk

Web Inspector: Add toggles for debugger pauses at console.assert failures
https://bugs.webkit.org/show_bug.cgi?id=139542
<rdar://problem/19281600>

Reviewed by Timothy Hatcher.

Source/JavaScriptCore:

  • inspector/agents/InspectorDebuggerAgent.h:
  • inspector/agents/InspectorDebuggerAgent.cpp:

(Inspector::InspectorDebuggerAgent::disable):
(Inspector::InspectorDebuggerAgent::setPauseOnAssertions):
Toggle pause on assertions state. Default is disabled,
and disable it when frontends disconnect.

(Inspector::InspectorDebuggerAgent::handleConsoleAssert):
Instead of using the PauseOnAllExceptions state, use this
new state specific to assertions.

  • inspector/protocol/Debugger.json:

New protocol method to toggle pausing on assertions.

Source/WebInspectorUI:

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.prototype.get assertionsBreakpoint):
(WebInspector.DebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
New breakpoint and toggling behavior.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
New breakpoint tree element behavior.

(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
Sidebar restoration if it was selected.

  • UserInterface/Images/Assertion.svg: Added.
  • UserInterface/Images/gtk/Assertion.svg: Added.
  • UserInterface/Views/BreakpointTreeElement.css:

(.breakpoint-assertion-icon .icon):
New sidebar icon for the global breakpoint.

LayoutTests:

  • inspector/debugger/pause-on-assert.html:
  • inspector/debugger/pause-reason.html:

These tests need to enable pause on assertions.

  • inspector/debugger/setPauseOnAssertions-expected.txt: Added.
  • inspector/debugger/setPauseOnAssertions.html: Added.

Specific tests for the new protocol method.

5:28 PM Changeset in webkit [207443] by aestes@apple.com
  • 6 edits
    1 add in trunk

Crash in ASCIICaseInsensitiveHash::hash() when a response has a null MIME type
https://bugs.webkit.org/show_bug.cgi?id=163476
<rdar://problem/26941395>

Reviewed by Tim Horton.

Source/WebKit2:

When custom content providers are registered and a response has a null MIME type, WebPage
will pass a null String to HashSet::contains(). This results in a null pointer dereference,
since the String hash functions do not support null Strings and unconditionally dereference
their StringImpls. Fixed by checking that Strings are non-null before calling
HashSet::contains() on m_mimeTypesWithCustomContentProviders.

Rearranging WebPage::shouldUseCustomContentProviderForResponse() to call
canPluginHandleResponse() before checking m_mimeTypesWithCustomContentProviders uncovered a
crash in existing layout tests where WebPage::m_mainFrame can be NULL during WebPage
construction (m_mainFrame isn't yet initialized). Fixed this by passing the main Frame to
canPluginHandleResponseInFrame() instead of relying on m_mainFrame.

New API test: WebKit2.LoadDataWithNilMIMEType.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::transitionToCommittedFromCachedFrame): Passed
m_frame->coreFrame() to shouldUseCustomContentProviderForResponse().
(WebKit::WebFrameLoaderClient::transitionToCommittedForNewPage): Ditto.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canPluginHandleResponse): Added a mainFrame parameter and used it instead
of m_mainFrame->coreFrame().
(WebKit::WebPage::shouldUseCustomContentProviderForResponse): Passed mainFrame to
canPluginHandleResponse(), and checked if mimeType is null before calling
m_mimeTypesWithCustomContentProviders.contains().
(WebKit::WebPage::canShowMIMEType): Checked if MIMEType is null before calling
m_mimeTypesWithCustomContentProviders.contains().

  • WebProcess/WebPage/WebPage.h: Made canPluginHandleResponse() a private declaration.

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadDataWithNilMIMEType.mm: Added.

(TEST): Added an API test that passes a nil MIMEType to
-[WKWebView loadData:MIMEType:characterEncodingName:baseURL:].

5:12 PM Changeset in webkit [207442] by dino@apple.com
  • 14 edits
    1 add in trunk

Allow creation of ExtendedColors and make Color immutable
https://bugs.webkit.org/show_bug.cgi?id=163557
<rdar://problem/28805360>

Reviewed by Darin Adler and Dave Hyatt.

Source/WebCore:

  1. Support the creation of ExtendedColor objects via the

Color class.

  1. Fix the remaining few places where a Color object is

modified after creation, instead creating a new Color.
Move all the mutation methods into the private section,
making Color now immutable.

Changes to Color are covered by existing tests. Changes
to ExtendedColor are covered by the ExtendedColor API test.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::fastParseColor): Return a new named Color.

  • dom/Document.cpp:

(WebCore::Document::resetActiveLinkColor): Set to be the named "red" color.

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::addHTMLColorToStyle): Use the string-based constructor
where possible.

  • page/CaptionUserPreferencesMediaAF.cpp:

(WebCore::CaptionUserPreferencesMediaAF::captionsTextEdgeCSS): No need to
use the string "black" here - we have a constant value.

  • platform/graphics/cairo/GraphicsContextCairo.cpp: Don't use setRGB.
  • platform/graphics/Color.cpp:

(WebCore::findNamedColor): Move this up in the file.
(WebCore::Color::Color): Copy in the code from setNamedColor. Also
add a constructor for ExtendedColor.
(WebCore::Color::serialized): Call ExtendedColor's serializer if necessary.
(WebCore::Color::cssText): Ditto.
(WebCore::Color::setNamedColor): Deleted.
(WebCore::Color::tagAsExtended): Deleted.

  • platform/graphics/Color.h: Add a new constructor.

(WebCore::Color::setRGB): Move to private.

  • platform/graphics/ExtendedColor.cpp:

(WebCore::ExtendedColor::cssText): Implement serializer.

  • platform/graphics/ExtendedColor.h:
  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::colorIncludingFallback): Construct a new Color rather than changing an existing object.

Tools:

API tests for ExtendedColor.

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

(TestWebKitAPI::TEST):
(TestWebKitAPI::makeColor):

4:27 PM Changeset in webkit [207441] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

[WK2][NetworkCache] PendingFrameLoad objects are sometimes leaked
https://bugs.webkit.org/show_bug.cgi?id=163569
<rdar://problem/28810836>

Reviewed by Antti Koivisto.

PendingFrameLoad objects are created to track frame loads and added to
the m_pendingFrameLoads hash map. These objects are supposed to remove
themselves from the hash map once they detect that the page load has
finished by calling PendingFrameLoad::m_loadCompletionHandler().

PendingFrameLoad::m_loadCompletionHandler() is called from
markLoadAsCompleted() when we detect that the page load has finished
via the m_loadHysteresisActivity HysteresisActivity. We call impulse()
on the HysteresisActivity every time a subresource is loaded in the
frame. The issue is that if no subresource is ever loaded, then we
never call impulse() on the HysteresisActivity, which is therefore
never started. If it nevers starts, then it nevers stops and never
calls markLoadAsCompleted(). To address the problem, we now call
impulse() on the HysteresisActivity as soon as we construct it.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:
4:00 PM Changeset in webkit [207440] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking platform/ios-simulator/ios/plugin/youtube-flash-plugin-iframe.html as flaky on ios-simulator debug.
https://bugs.webkit.org/show_bug.cgi?id=163362

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
3:56 PM Changeset in webkit [207439] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Enable keyboard in fullscreen.
https://bugs.webkit.org/show_bug.cgi?id=163146

Patch by Jeremy Jones <jeremyj@apple.com> on 2016-10-17
Reviewed by Jer Noble.

Allow keyboard in fullscreen.

Source/WebKit/mac:

  • WebView/WebView.mm:

(-[WebView _supportsFullScreenForElement:withKeyboard:]):

Source/WebKit2:

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::supportsFullScreen):

3:30 PM Changeset in webkit [207438] by Simon Fraser
  • 15 edits
    8 adds in trunk

Implement DOMRect/DOMRectReadOnly
https://bugs.webkit.org/show_bug.cgi?id=163464

Reviewed by Darin Adler.

Source/WebCore:

Implement the DOMRectInit/DOMRectReadOnly/DOMRect interfaces specified in
https://dev.w3.org/fxtf/geometry/

DOMRects allow negative height/width and require double storage, so we can't just
use FloatRect for storage. They also require handling of NaN and Infinity.

To have the left/right/top/bottom accessors follow IEEE NaN rules, we need to use
custom min/max functions that return NaN if either argument is NaN, so add
nanPropagatingMin/nanPropagatingMax helpers to MathExtras.h.

Test: fast/dom/domrect.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMRect.h: Added.

(WebCore::DOMRect::create):
(WebCore::DOMRect::fromRect):
(WebCore::DOMRect::setX):
(WebCore::DOMRect::setY):
(WebCore::DOMRect::setWidth):
(WebCore::DOMRect::setHeight):
(WebCore::DOMRect::DOMRect):

  • dom/DOMRect.idl: Added.
  • dom/DOMRectInit.h: Added.
  • dom/DOMRectInit.idl: Added.
  • dom/DOMRectReadOnly.h: Added.

(WebCore::DOMRectReadOnly::create):
(WebCore::DOMRectReadOnly::fromRect):
(WebCore::DOMRectReadOnly::x):
(WebCore::DOMRectReadOnly::y):
(WebCore::DOMRectReadOnly::width):
(WebCore::DOMRectReadOnly::height):
(WebCore::DOMRectReadOnly::top):
(WebCore::DOMRectReadOnly::right):
(WebCore::DOMRectReadOnly::bottom):
(WebCore::DOMRectReadOnly::left):
(WebCore::DOMRectReadOnly::DOMRectReadOnly):

  • dom/DOMRectReadOnly.idl: Added.

Source/WTF:

Implement min()/max() in a way that follows Math.min/Math.max, which return
NaN if either argument is NaN.

  • wtf/MathExtras.h:

(WTF::nanPropagatingMin):
(WTF::nanPropagatingMax):

LayoutTests:

New test and new results for global constructor tests.

  • geometry/DOMRect-001-expected.txt: Added.
  • geometry/DOMRect-001.html: Added.
  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
3:09 PM Changeset in webkit [207437] by Yusuke Suzuki
  • 5 edits in trunk/Source/JavaScriptCore

[DOMJIT][JSC] Add Option::useDOMJIT
https://bugs.webkit.org/show_bug.cgi?id=163457

Reviewed by Saam Barati.

Add an option to switch the DOMJIT optimization.

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessCase::generateImpl):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleGetById):

  • runtime/Options.cpp:

(JSC::recomputeDependentOptions):

  • runtime/Options.h:
3:03 PM Changeset in webkit [207436] by commit-queue@webkit.org
  • 4 edits
    10 adds in trunk

[Modern Media Controls] Basic MediaController
https://bugs.webkit.org/show_bug.cgi?id=163539
<rdar://problem/28797542>

Patch by Antoine Quint <Antoine Quint> on 2016-10-17
Reviewed by Darin Adler.

Source/WebCore:

We add a new main.js file which acts as the entry point by implementing the createControls()
function that HTMLMediaElement::ensureMediaControlsInjectedScript() once the shadow root has
been created. That functions creates an instance of the new MediaController class, which is
the controller object that will handle communication between the media controls and the media
element. At first, this MediaController class is very limited and assumes macOS inline
layout traits and forces a start button to be shown over the media, which can be played
to start the media and show the full controls. More functionality will be added by future patches.

Tests: media/modern-media-controls/media-controller/media-controller-click-to-start.html

media/modern-media-controls/media-controller/media-controller-constructor.html
media/modern-media-controls/media-controller/media-controller-resize.html

  • Modules/modern-media-controls/main.js: Added.

(createControls):

  • Modules/modern-media-controls/media/media-controller.js: Added.

(MediaController):
(MediaController.prototype.set pageScaleFactor):
(MediaController.prototype.set usesLTRUserInterfaceLayoutDirection):
(MediaController.prototype.handleEvent):
(MediaController.prototype.buttonWasClicked):
(MediaController.prototype._updateControlsSize):

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):

LayoutTests:

Testing the properties of the new MediaController class and the availability and behavior of the
createControls() global function.

  • media/modern-media-controls/media-controller/media-controller-click-to-start-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-click-to-start.html: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-constructor.html: Added.
  • media/modern-media-controls/media-controller/media-controller-resize-expected.txt: Added.
  • media/modern-media-controls/media-controller/media-controller-resize.html: Added.
2:51 PM Changeset in webkit [207435] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

[GTK] Skip layout tests under crypto/workers/subtle

  • platform/gtk/TestExpectations:
2:45 PM Changeset in webkit [207434] by fpizlo@apple.com
  • 13 edits
    2 adds in trunk/Source/JavaScriptCore

Air::IRC doesn't need to have a special-case for uncolored Tmps since they all get colored
https://bugs.webkit.org/show_bug.cgi?id=163548
<rdar://problem/28804381>

Reviewed by Geoffrey Garen.

Before r207408, IRC had a mode where it would silently assign the first assignable register (so
%rax, %xmm0, etc) to any tmp that was not colorable due to a pathological interference fencepost.
We reason about interference at instruction boundaries. This means that if you have, for example,
an instruction that clobbers all registers late followed by an instruction that has an early def
in the same register file, then the early def will not be colorable because it interferes with
all registers. This already happens in our tests, but IRC silently returns the first assignable
register to such tmps. For some reason the resulting code works OK - probably because this tends
to only be hit by fuzzing, which may not then stress that code enough to shake out the register
corruption. Also, this can only happen for floating point registers, so it's hard to get an
exciting crash. The worst case is that your numbers get all messed up.

This change fixes the issue:

  • IRC will now crash if it can't color a tmp.


  • IRC doesn't crash on our tests anymore because I added a padInterference() utility that works around the interference problem by inserting Nops to pad between those instructions where conflating their early and late actions into one interference fencepost could create an uncolorable graph.


See https://bugs.webkit.org/show_bug.cgi?id=163548#c2 for a detailed discussion of how the
problem can arise.

This problem almost made me want to abandon our use of interference at instruction boundaries,
and introduce something more comprehensive, like interference at various stages of an
instruction's execution. The reason why I didn't do this is that this problem only arises in well
confined corner cases: you need an instruction that does a late use or def followed by an
instruction that does an early def. Register clobbers count as defs for this equation.
Fortunately, early defs are rare, and even when they do happen, you still need the previous
instruction to have a late something. Late uses are rare and many instructions don't have defs at
all, which means that it's actually pretty common for an instruction to not have anything late.
This means that the padInterference() strategy is ideal: our algorithms stay simple because they
only have to worry about interference at boundaries, and we rarely insert any Nops in
padInterference() so the IR stays nice and compact. Those Nops get removed by any phase that does
DCE, which includes eliminateDeadCode(), allocateStack(), and reportUsedRegisters(). In practice
allocateStack() kills them.

This also finally refactors our passing of RegisterSet to pass it by value, since it's small
enough that we're not gaining anything by using references. On x86, RegisterSet ought to be
smaller than a pointer.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3StackmapSpecial.cpp:

(JSC::B3::StackmapSpecial::extraClobberedRegs):
(JSC::B3::StackmapSpecial::extraEarlyClobberedRegs):

  • b3/B3StackmapSpecial.h:
  • b3/air/AirCCallSpecial.cpp:

(JSC::B3::Air::CCallSpecial::extraEarlyClobberedRegs):
(JSC::B3::Air::CCallSpecial::extraClobberedRegs):

  • b3/air/AirCCallSpecial.h:
  • b3/air/AirInst.h:
  • b3/air/AirInstInlines.h:

(JSC::B3::Air::Inst::extraClobberedRegs):
(JSC::B3::Air::Inst::extraEarlyClobberedRegs):

  • b3/air/AirIteratedRegisterCoalescing.cpp:

(JSC::B3::Air::iteratedRegisterCoalescing):

  • b3/air/AirPadInterference.cpp: Added.

(JSC::B3::Air::padInterference):

  • b3/air/AirPadInterference.h: Added.
  • b3/air/AirSpecial.h:
  • b3/air/AirSpillEverything.cpp:

(JSC::B3::Air::spillEverything):

  • jit/RegisterSet.h:

(JSC::RegisterSet::isEmpty):

2:44 PM Changeset in webkit [207433] by sbarati@apple.com
  • 2 edits in trunk/JSTests

Add more tests for the double->String conversion in ValueAdd constant folding
https://bugs.webkit.org/show_bug.cgi?id=163517

Reviewed by Yusuke Suzuki.

  • microbenchmarks/string-add-constant-folding.js:

(test):

2:36 PM Changeset in webkit [207432] by jfbastien@apple.com
  • 11 edits
    4 adds in trunk

WebAssembly JS API: implement basic stub

Implement the global WebAssembly JavaScript object, and its constructor +
function properties as described in:

https://github.com/WebAssembly/design/blob/master/JS.md

These don't do anything at the moment, the parent bug will take care of adding
more functionality and associated tests.

WebAssembly JS API: implement basic stub
https://bugs.webkit.org/show_bug.cgi?id=163404

Reviewed by Keith Miller.

JSTests:

  • wasm.yaml:
  • wasm/js-api/test_basic_api.js: Added.

(const.f.of.functionProperties.WebAssembly.f.undefined.throw.new.Error.Couldn.const.c.of.constructorProperties.WebAssembly.c.undefined.throw.new.Error.Couldn):
(const.c.of.constructorProperties.catch):

Source/JavaScriptCore:

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • builtins/BuiltinNames.h: register the new WebAssembly object's name and its constructor properties
  • jsc.cpp: remove useless include
  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init): add the WebAssembly global object and its constructor properties, but only if the JSC option enables it

  • runtime/Options.h: add the useWebAssembly (alias: enableWebAssembly) option, defaulting to false
  • wasm/WebAssemblyObject.cpp: Added.

(JSC::WebAssemblyObject::create): boilerplate
(JSC::WebAssemblyObject::createStructure): boilerplate
(JSC::WebAssemblyObject::finishCreation): boilerplate
(JSC::WebAssemblyObject::WebAssemblyObject): boilerplate
(JSC::wasmObjectFuncvalidate): auto-throws for now
(JSC::wasmObjectFunccompile): auto-throws for now

  • wasm/WebAssemblyObject.h: Added.

Tools:

  • Scripts/run-jsc-stress-tests: use the new JSC option which exposes the WebAssembly object.
2:17 PM Changeset in webkit [207431] by andersca@apple.com
  • 3 edits in trunk/Source/WebCore

Remove an unused HistoryItem function
https://bugs.webkit.org/show_bug.cgi?id=163565

Reviewed by Tim Horton.

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::isAncestorOf): Deleted.

  • history/HistoryItem.h:
2:10 PM Changeset in webkit [207430] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix after r207428
https://bugs.webkit.org/show_bug.cgi?id=163223

Previous build fix r207428 broke all the builds.

  • bytecode/PolymorphicAccess.h:
2:00 PM Changeset in webkit [207429] by n_wang@apple.com
  • 12 edits
    2 adds in trunk

AX: [Mac] mapping for output elements
https://bugs.webkit.org/show_bug.cgi?id=163471

Reviewed by Chris Fleizach.

Source/WebCore:

Mapped the output element to status role and exposed its text content
as AXTitle.

Test: accessibility/mac/output-element.html

  • English.lproj/Localizable.strings:
  • accessibility/AccessibilityNodeObject.cpp:

(WebCore::AccessibilityNodeObject::visibleText):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::isOutput):

  • accessibility/AccessibilityObject.h:
  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXOutputText):

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXOutputText):

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXOutputText):

LayoutTests:

  • accessibility/mac/output-element-expected.txt: Added.
  • accessibility/mac/output-element.html: Added.
1:57 PM Changeset in webkit [207428] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

Unreviewed, build fix for GTK and Windows
https://bugs.webkit.org/show_bug.cgi?id=163223

Attempt to fix build failures in GTK port and Windows port.

  • bytecode/PolymorphicAccess.cpp:
  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::SpillState::SpillState):

1:43 PM Changeset in webkit [207427] by Yusuke Suzuki
  • 16 edits
    1 copy
    6 adds in trunk

[DOMJIT] Use DOMJIT::Patchpoint in IC
https://bugs.webkit.org/show_bug.cgi?id=163223

Reviewed by Saam Barati.

JSTests:

  • stress/domjit-exception-ic.js: Added.

(shouldBe):
(access):

  • stress/domjit-exception.js: Added.

(shouldBe):
(access):

  • stress/domjit-getter-complex-with-incorrect-object.js: Added.

(shouldThrow):
(access):
(i.shouldThrow):

  • stress/domjit-getter-complex.js: Added.

(shouldBe):
(access):

  • stress/domjit-getter-try-catch-getter-as-get-by-id-register-restoration.js: Added.

(assert):
(bar):
(foo):

Source/JavaScriptCore:

This patch uses DOMJIT::Patchpoint to inline DOM accesses even in IC!
It is useful for Baseline JIT cases and GetById cases in DFG and FTL.
In AccessCase, we construct the environment that allows DOMJIT::Patchpoint
to emit code and make DOMJIT accessors inlined in IC.

To allow DOMJIT::Patchpoint to emit code, we create a mechanism to emit calls
required in DOMJIT::Patchpoint. This system is useful when we create the super-
polymorphic support[1] later. And inlining mechanism is useful even after
introducing super-polymorphic support since it can work even after we fire the
watchpoint for super-polymorphic handling.

This patch improves Dromaeo dom-traverse 8% (263.95 runs/s v.s. 244.07 runs/s).

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

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/DOMJITAccessCasePatchpointParams.cpp: Added.

(JSC::SlowPathCallGeneratorWithArguments::SlowPathCallGeneratorWithArguments):
(JSC::SlowPathCallGeneratorWithArguments::generateImpl):
(JSC::DOMJITAccessCasePatchpointParams::emitSlowPathCalls):

  • bytecode/DOMJITAccessCasePatchpointParams.h: Copied from Source/JavaScriptCore/ftl/FTLDOMJITPatchpointParams.h.

(JSC::DOMJITAccessCasePatchpointParams::DOMJITAccessCasePatchpointParams):
(JSC::DOMJITAccessCasePatchpointParams::SlowPathCallGenerator::~SlowPathCallGenerator):

  • bytecode/PolymorphicAccess.cpp:

(JSC::AccessGenerationState::liveRegistersForCall):
(JSC::AccessGenerationState::liveRegistersToPreserveAtExceptionHandlingCallSite):
(JSC::calleeSaveRegisters):
(JSC::AccessGenerationState::calculateLiveRegistersForCallAndExceptionHandling):
(JSC::AccessGenerationState::restoreLiveRegistersFromStackForCallWithThrownException):
(JSC::AccessGenerationState::restoreLiveRegistersFromStackForCall):
(JSC::AccessGenerationState::callSiteIndexForExceptionHandlingOrOriginal):
(JSC::AccessGenerationState::originalExceptionHandler):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::emitDOMJITGetter):
(JSC::PolymorphicAccess::regenerate):
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall): Deleted.

  • bytecode/PolymorphicAccess.h:

(JSC::AccessGenerationState::SpillState::isEmpty):
(JSC::AccessGenerationState::setSpillStateForJSGetterSetter):
(JSC::AccessGenerationState::spillStateForJSGetterSetter):
(JSC::AccessGenerationState::liveRegistersForCall): Deleted.
(JSC::AccessGenerationState::numberOfStackBytesUsedForRegisterPreservation): Deleted.
(JSC::AccessGenerationState::liveRegistersToPreserveAtExceptionHandlingCallSite): Deleted.

  • dfg/DFGDOMJITPatchpointParams.cpp:
  • dfg/DFGDOMJITPatchpointParams.h:
  • domjit/DOMJITPatchpoint.h:
  • domjit/DOMJITPatchpointParams.h:

(JSC::DOMJIT::PatchpointParams::addSlowPathCall):

  • ftl/FTLDOMJITPatchpointParams.cpp:
  • ftl/FTLDOMJITPatchpointParams.h:
  • jsc.cpp:

(WTF::DOMJITNode::checkDOMJITNode):
(WTF::DOMJITGetterComplex::DOMJITGetterComplex):
(WTF::DOMJITGetterComplex::createStructure):
(WTF::DOMJITGetterComplex::create):
(WTF::DOMJITGetterComplex::DOMJITNodeDOMJIT::DOMJITNodeDOMJIT):
(WTF::DOMJITGetterComplex::domJITNodeGetterSetter):
(WTF::DOMJITGetterComplex::finishCreation):
(WTF::DOMJITGetterComplex::functionEnableException):
(WTF::DOMJITGetterComplex::customGetter):
(GlobalObject::finishCreation):
(functionCreateDOMJITGetterComplexObject):

Source/WebCore:

Make DOMJITPatchpointParams non-const.

  • domjit/DOMJITHelpers.h:

(WebCore::DOMJITHelpers::toWrapper):

  • domjit/JSNodeDOMJIT.cpp:

(WebCore::createCallDOMForOffsetAccess):
(WebCore::checkNode):
(WebCore::NodeNodeTypeDOMJIT::callDOM):

1:38 PM Changeset in webkit [207426] by Chris Dumez
  • 18 edits in trunk/Source

Move form.reportValidity() behind InteractiveFormValidation setting
https://bugs.webkit.org/show_bug.cgi?id=163550

Reviewed by Darin Adler.

Source/WebCore:

Move form.reportValidity() behind InteractiveFormValidation setting for consistency
given that the two features are strongly related.

Also enable the setting by default so we can get feedback on the implementation.

Demos:

  • bindings/generic/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setInteractiveFormValidationEnabled):
(WebCore::RuntimeEnabledFeatures::interactiveFormValidationEnabled):

  • html/HTMLButtonElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:

Source/WebKit/mac:

Enable InteractiveFormValidation setting by default and link it to
RuntimeEnabledFeatures so we can use it in the IDL.

  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

  • WebView/WebViewData.mm:

(-[WebViewPrivate init]):

Source/WebKit2:

Enable InteractiveFormValidation setting by default and link it to
RuntimeEnabledFeatures so we can use it in the IDL.

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

1:34 PM Changeset in webkit [207425] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Build fix for HasOwnPropertyCache::Entry caused slowdown by introducing a constructor that doesn't use move semantics for the RefPtr<UniquedStringImpl> parameter
https://bugs.webkit.org/show_bug.cgi?id=163490

Reviewed by Darin Adler.

  • runtime/HasOwnPropertyCache.h:

(JSC::HasOwnPropertyCache::Entry::Entry):
(JSC::HasOwnPropertyCache::tryAdd):

1:18 PM Changeset in webkit [207424] by barraclough@apple.com
  • 7 edits in trunk/Source/WebKit2

UIProcess should determine throttle state for WebContent process
https://bugs.webkit.org/show_bug.cgi?id=163556

Reviewed by Anders Carlsson.

This is a step towards merging page/process throttling code for mac & iOS.

Previously WebPage determined whether to start a UserActivity based on page activity,
visibility and the preference to disable. Now WebPage passes the activity state across
to WebPageProxy, which makes the decision & explicitly instructs WebPage to start/stop
the UserActivity.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):

  • updateActivityToken + updateProccessSuppressionState -> updateThrottleState

(WebKit::WebPageProxy::reattachToWebProcess):

  • updateActivityToken -> updateThrottleState

(WebKit::WebPageProxy::dispatchViewStateChange):

  • updateActivityToken -> updateThrottleState

(WebKit::WebPageProxy::setPageActivityState):

  • Record activity state passed from WebPage, and update.

(WebKit::WebPageProxy::preferencesDidChange):

  • updateProccessSuppressionState -> updateThrottleState

(WebKit::WebPageProxy::updateActivityToken): Deleted.
(WebKit::WebPageProxy::updateProccessSuppressionState): Deleted.
(WebKit::WebPageProxy::updateThrottleState):

  • Merged existing updateActivityToken/updateProccessSuppressionState to unified updateThrottleState.
  • Compute whether page should be suppressed, and send SetPageSuppressed message accordingly.
  • UIProcess/WebPageProxy.h:
    • Merged existing updateActivityToken/updateProccessSuppressionState to unified updateThrottleState.
    • Added setPageActivityState/m_activityState to report/record page activity.
    • Added m_pageSuppressed to prevent redundant message sends.
  • UIProcess/WebPageProxy.messages.in:
    • Expose SetPageActivityState message (called by WebPage).
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):

  • removed m_processSuppressionEnabled
  • updateUserActivity -> setPageSuppressed - explicitly set the page to not be suppressed, until WebPageProxy tells us to do so.

(WebKit::WebPage::setPageActivityState):

  • post activity state on to WebPageProxy.

(WebKit::WebPage::setPageSuppressed):

  • Start/stop USerActivity accordingly.

(WebKit::WebPage::setViewState):

  • No longer need to monitor ViewState changes on the WebProcess side.

(WebKit::WebPage::updatePreferences):

  • No longer need to monitor preference changes on the WebProcess side.

(WebKit::WebPage::updateUserActivity): Deleted.

  • Only updated on reciept of setPageSuppressed message.
  • WebProcess/WebPage/WebPage.h:
    • Removed m_activityState, m_processSuppressionEnabled, updateUserActivity.
    • Added setPageSuppressed message.
  • WebProcess/WebPage/WebPage.messages.in:
    • Added SetPageSuppressed message.
12:54 PM Changeset in webkit [207423] by commit-queue@webkit.org
  • 11 edits in trunk

[Modern Media Controls] Add a MediaControlsHost API to retrieve images as base64
https://bugs.webkit.org/show_bug.cgi?id=163502
<rdar://problem/28792017>

Patch by Antoine Quint <Antoine Quint> on 2016-10-17
Reviewed by Darin Adler.

Add a new base64StringForIconAndPlatform() method to MediaControlsHost such that we
may load images from the modern-media-controls directory in the WebCore.framework bundle.
We use this new method in the iconService singleton when a mediaControlsHost is set,
which will be set in a later patch.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::base64StringForIconAndPlatform):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • Modules/modern-media-controls/controls/icon-service.js:

(const.iconService.new.IconService.prototype.urlForIconNameAndLayoutTraits):
(const.iconService.new.IconService):

  • rendering/RenderTheme.h:

(WebCore::RenderTheme::mediaControlsBase64StringForIconAndPlatform):
(WebCore::RenderTheme::mediaControlsScript): Deleted.

  • rendering/RenderThemeMac.h:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsBase64StringForIconAndPlatform):

12:17 PM Changeset in webkit [207422] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Fix iOS build.

  • History/WebBackForwardList.mm:

(-[WebBackForwardList dictionaryRepresentation]):

12:11 PM Changeset in webkit [207421] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[Modern Media Controls] Add a MediaControlsHost API to retrieve the shadow root CSS
https://bugs.webkit.org/show_bug.cgi?id=163501
<rdar://problem/28792014>

Patch by Antoine Quint <Antoine Quint> on 2016-10-17
Reviewed by Darin Adler.

Add a new shadowRootCSSText property to MediaControlsHost so that we may obtain the
concatenated CSS sources for the media controls shadow root via JS. Actually using this
API will be done in a later patch. We also no longer inject those styles as a user-agent
stylesheet when the runtime flag is on since it will no longer be necessary.

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::shadowRootCSSText):

  • Modules/mediacontrols/MediaControlsHost.h:
  • Modules/mediacontrols/MediaControlsHost.idl:
  • css/CSSDefaultStyleSheets.cpp:

(WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):

12:06 PM Changeset in webkit [207420] by Simon Fraser
  • 13 edits
    9 adds in trunk

Implement DOMPoint/DOMPointReadOnly
https://bugs.webkit.org/show_bug.cgi?id=133916

Reviewed by Darin Adler.
Source/WebCore:

Patch mostly by Dirk Schultz <krit@webkit.org>.

Implement DOMPoint/DOMPointReadOnly following https://drafts.fxtf.org/geometry/
(although we may need to match https://www.w3.org/TR/geometry-1/ to be compatible
with Chrome).

Test: geometry/DOMPoint-001.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • dom/DOMPoint.h: Added.
  • dom/DOMPoint.idl: Added.
  • dom/DOMPointInit.h: Added.
  • dom/DOMPointInit.idl: Added.
  • dom/DOMPointReadOnly.h: Added.

(WebCore::DOMPointReadOnly::create):
(WebCore::DOMPointReadOnly::fromPoint):
(WebCore::DOMPointReadOnly::x):
(WebCore::DOMPointReadOnly::y):
(WebCore::DOMPointReadOnly::z):
(WebCore::DOMPointReadOnly::w):
(WebCore::DOMPointReadOnly::DOMPointReadOnly):

  • dom/DOMPointReadOnly.idl: Added.

LayoutTests:

New Web Platform-style test, and rebaselines.

  • geometry/DOMPoint-001-expected.txt: Added.
  • geometry/DOMPoint-001.html: Added.
  • js/dom/global-constructors-attributes-dedicated-worker-expected.txt:
  • js/dom/global-constructors-attributes-expected.txt:
  • platform/efl/js/dom/global-constructors-attributes-expected.txt:
  • platform/gtk/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-wk1/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac-yosemite/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
  • platform/win/js/dom/global-constructors-attributes-expected.txt:
11:35 AM Changeset in webkit [207419] by andersca@apple.com
  • 4 edits in trunk/Source/WebKit/mac

CTTE some of the BackForwardList member functions
https://bugs.webkit.org/show_bug.cgi?id=163555

Reviewed by Dan Bernstein.

  • History/BackForwardList.h:

(BackForwardList::entries):

  • History/BackForwardList.mm:

(BackForwardList::removeItem):
(BackForwardList::containsItem):
(BackForwardList::entries): Deleted.

  • History/WebBackForwardList.mm:

(-[WebBackForwardList removeItem:]):
(-[WebBackForwardList containsItem:]):
(-[WebBackForwardList description]):

11:26 AM Changeset in webkit [207418] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Modern Media Controls] Use modern-media-controls module sources for media controls stylesheet and script injection
https://bugs.webkit.org/show_bug.cgi?id=163500
<rdar://problem/28792010>

Patch by Antoine Quint <Antoine Quint> on 2016-10-17
Reviewed by Darin Adler.

Add files from the Modules/modern-media-controls directory to the Xcode project and add a copy phase
to copy those files with their directory stucture as a subdirectory of the WebCore.framework Resources
directory.

Additionally, use the modern-media-controls Module CSS and JS files when concatenating the media controls
scripts and styles in RenderTheme when the runtime flag is on.

  • WebCore.xcodeproj/project.pbxproj:
  • rendering/RenderThemeMac.mm:

(WebCore::RenderThemeMac::mediaControlsStyleSheet):
(WebCore::RenderThemeMac::mediaControlsScript):

11:14 AM Changeset in webkit [207417] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix typo in error message.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateSerializerFunction):

10:59 AM Changeset in webkit [207416] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

resolve-ChangeLogs: Specify --no-page to git diff
https://bugs.webkit.org/show_bug.cgi?id=163441

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-17
Reviewed by Darin Adler.

resolve-ChangeLogs shows the result after resolving by invoking
'git diff'. It runs a pager for every ChangeLog if it is under
TTY.

  • Scripts/resolve-ChangeLogs:

(showStatus): Specify '--no-page' to git diff.

10:59 AM Changeset in webkit [207415] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit/mac

Remove WEBCORE_EXPORT from BackForwardList, it lives in WebKit now
https://bugs.webkit.org/show_bug.cgi?id=163551

Reviewed by Tim Horton.

  • History/BackForwardList.h:
10:49 AM Changeset in webkit [207414] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r206189): logs error statements when API::URLRequest is canceled
https://bugs.webkit.org/show_bug.cgi?id=163393

Reviewed by Antti Koivisto.

Print this case at normal logging level, not as an error.

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResource):

10:48 AM Changeset in webkit [207413] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

[iOS] Hook up WebPlatformTouchPoint's radiusX / radiusY to _UIWebTouchPoint.majorRadiusInScreenCoordinates
https://bugs.webkit.org/show_bug.cgi?id=163547

Reviewed by Darin Adler.

Hook up WebPlatformTouchPoint's radiusX / radiusY to _UIWebTouchPoint.majorRadiusInScreenCoordinates
now that it is available in UIKit.

  • Platform/spi/ios/UIKitSPI.h:
  • Shared/ios/NativeWebTouchEventIOS.mm:

(WebKit::NativeWebTouchEvent::extractWebTouchPoint):

10:32 AM Changeset in webkit [207412] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

preprocessor.pm: cl.exe outputs processing filenames if Windows Perl is used
https://bugs.webkit.org/show_bug.cgi?id=163435

Patch by Fujii Hironori <Fujii Hironori> on 2016-10-17
Reviewed by Alex Christensen.

cl.exe outputs processing filenames to stderr. Suppress this
annoying messages by using open3 instead of open2.

  • bindings/scripts/preprocessor.pm:

(applyPreprocessor): Use open3 in case of Windows Perl.

9:59 AM Changeset in webkit [207411] by mark.lam@apple.com
  • 31 edits in trunk/Source

Use the reject() helper function for conditionally throwing TypeErrors.
https://bugs.webkit.org/show_bug.cgi?id=163491

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

In some places where we may conditionally throw a TypeError (e.g. when in strict
mode), we already use the reject() helper function to conditionally throw the
TypeError. Doing so makes the code mode compact. This patch applies this idiom
consistently in all places that throws TypeError where appropriate.

This patch also does the following:

  1. Make the reject() helper function take an ASCIILiteral instead of a const char* because we always pass it a literal string anyway.
  2. Change the reject helper() to take a ThrowScope&. This allows the thrown error to be attributed to its caller.
  3. When an error message string is instantiated repeatedly in more than 1 place, create a common copy of that literal string in JSObject.cpp (if one doesn't already exist) and use that common string in all those places.
  4. Since I was auditing call sites of throwTypeError() to check if they should be using the reject() helper instead, I also fixed those up to pass the error message as an ASCIILiteral where appropriate.
  5. In functions that I touched, change the code to not recompute the VM& when it is already available.
  • jit/JITOperations.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ArrayPrototype.cpp:

(JSC::shift):
(JSC::unshift):
(JSC::arrayProtoFuncPop):
(JSC::arrayProtoFuncReverse):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/GetterSetter.cpp:

(JSC::callSetter):

  • runtime/JSArray.cpp:

(JSC::JSArray::defineOwnProperty):
(JSC::JSArray::setLengthWithArrayStorage):
(JSC::JSArray::pop):

  • runtime/JSArrayBuffer.cpp:

(JSC::JSArrayBuffer::put):
(JSC::JSArrayBuffer::defineOwnProperty):

  • runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::putToPrimitiveByIndex):

  • runtime/JSDataView.cpp:

(JSC::JSDataView::put):
(JSC::JSDataView::defineOwnProperty):

  • runtime/JSFunction.cpp:

(JSC::JSFunction::put):
(JSC::JSFunction::defineOwnProperty):

  • runtime/JSGenericTypedArrayView.h:

(JSC::JSGenericTypedArrayView::setIndex):

  • runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::defineOwnProperty):
(JSC::JSGenericTypedArrayView<Adaptor>::deleteProperty):

  • runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::defineOwnProperty):

  • runtime/JSObject.cpp:

(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::validateAndApplyPropertyDescriptor):

  • runtime/JSObject.h:
  • runtime/JSObjectInlines.h:

(JSC::JSObject::putInline):

  • runtime/JSProxy.cpp:

(JSC::JSProxy::setPrototype):

  • runtime/JSSymbolTableObject.h:

(JSC::symbolTablePut):

  • runtime/Lookup.h:

(JSC::putEntry):

  • runtime/RegExpObject.cpp:

(JSC::RegExpObject::defineOwnProperty):

  • runtime/RegExpObject.h:

(JSC::RegExpObject::setLastIndex):

  • runtime/Reject.h:

(JSC::reject):

  • runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayValueMap::putDirect):
(JSC::SparseArrayEntry::put):

  • runtime/StringObject.cpp:

(JSC::StringObject::put):
(JSC::StringObject::putByIndex):

  • runtime/SymbolConstructor.cpp:

(JSC::symbolConstructorKeyFor):

Source/WebCore:

No new tests because this patch does not introduce new behavior.

  • bindings/js/JSCryptoAlgorithmDictionary.cpp:

(WebCore::createRsaKeyGenParams):

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::createObjectStore):

  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::invokeMethod):

9:56 AM Changeset in webkit [207410] by Ryan Haddad
  • 1 edit
    1 add in trunk/LayoutTests

Rebaseline mathml/mathml-in-dashboard.html for mac.

Unreviewed test gardening.

  • platform/mac/mathml/mathml-in-dashboard-expected.txt: Added.
9:56 AM Changeset in webkit [207409] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GTK] Several tests crashing on debug bot in (anonymous namespace)::MediaPlayerPrivateGStreamerBase::repaint
https://bugs.webkit.org/show_bug.cgi?id=163511

Patch by Miguel Gomez <magomez@igalia.com> on 2016-10-17
Reviewed by Carlos Garcia Campos.

Perform the video repaint in the main thread when accelerated compositing is disabled.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::repaint):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
9:19 AM Changeset in webkit [207408] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Air::IRC needs to place all Tmps on some worklist, even if they have no interference edges
https://bugs.webkit.org/show_bug.cgi?id=163509

Reviewed by Mark Lam.

The worklist building function in IRC skips temporaries that have no degree. This doesn't appear
to be necessary. This has been there since the original IRC commit. It hasn't caused bugs because
ordinarily, the only way to have a tmp with no degree is to not have any mention of that tmp. But
while working on bug 163371, I hit a crazy corner case where a temporary would have no
interference edges (i.e. no degree). Here's how it happens:

A spill tmp from a previous iteration of IRC may have no degree: imagine a tmp that is live
everywhere and interferes with everyone, but has one use like:

Move %ourTmp, %someOtherTmp

Where there are no other tmps live. After spill conversion, this may look like:

Move (ourSpill), %newTmp
Move %newTmp, %someOtherTmp

Of course, we'd rather not get this kind of spill code but it's totally possible because we now
have a bunch of random conditions under which we won't slap the spill address directly into the
Move.

After this happens, assuming that the only thing live was %someOtherTmp, we will have zero degree
for %newTmp because the Move is coalescable and does not contribute to interference.

Then, we might coalesce %someOtherTmp with %newTmp. Once this happens, if we make the %newTmp be
the master, we're in deep trouble because %newTmp is not on any worklist.

I don't know how to reproduce this except through the patch in bug 163371. Removing the two lines
of code that skipped no-degree tmps causes no regressions, and resolves the problem I was having.

  • b3/air/AirIteratedRegisterCoalescing.cpp:
4:59 AM Changeset in webkit [207407] by Konstantin Tokarev
  • 5 edits in trunk/Source

Eleminate code duplication between ResourceRequest encoding/decoding implementations
https://bugs.webkit.org/show_bug.cgi?id=163507

Reviewed by Carlos Garcia Campos.

ResourceRequestBase::encodeWithoutPlatformData() and Soup implementation of
ArgumentCoder<ResourceRequest>::encodePlatformData() share most of the code,
ditto for decoding implementations.

Source/WebCore:

No new tests needed.

  • platform/network/ResourceRequestBase.h:

(WebCore::ResourceRequestBase::encodeBase):
(WebCore::ResourceRequestBase::decodeBase):
(WebCore::ResourceRequestBase::encodeWithoutPlatformData):
(WebCore::ResourceRequestBase::decodeWithoutPlatformData):

  • platform/network/soup/ResourceRequest.h:

(WebCore::ResourceRequest::encodeWithPlatformData):
(WebCore::ResourceRequest::decodeWithPlatformData):

Source/WebKit2:

  • Shared/soup/WebCoreArgumentCodersSoup.cpp:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

4:30 AM Changeset in webkit [207406] by Michael Catanzaro
  • 11 edits
    1 copy
    2 moves
    1 add
    1 delete in trunk

Move user agent quirks to cross-platform location
https://bugs.webkit.org/show_bug.cgi?id=163508

Reviewed by Carlos Garcia Campos.

Source/WebCore:

Tested by Tools/TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp.

  • PlatformGTK.cmake:
  • platform/UserAgent.h: Renamed from Source/WebCore/platform/gtk/UserAgentGtk.h.
  • platform/UserAgentQuirks.cpp: Added. Moved from UserAgentGtk.cpp.

(WebCore::urlRequiresChromeBrowser): Sneakily tighten up Google domain detection, it should
only apply to sites if the base domain matches google.*, not any base domain that starts
with google.
(WebCore::urlRequiresMacintoshPlatform):
(WebCore::UserAgentQuirks::quirksForURL):
(WebCore::UserAgentQuirks::stringForQuirk):

  • platform/UserAgentQuirks.h: Moved from UserAgentGtk.cpp. prepare-ChangeLog thinks it was

renamed from Source/WebCore/platform/efl/UserAgentEfl.h, but prepare-ChangeLog is dumb.
(WebCore::UserAgentQuirks::UserAgentQuirks):
(WebCore::UserAgentQuirks::add):
(WebCore::UserAgentQuirks::contains):
(WebCore::UserAgentQuirks::isEmpty):

  • platform/efl/UserAgentEfl.cpp:

(WebCore::standardUserAgentForURL):

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::buildUserAgentString):
(WebCore::standardUserAgentForURL):
(): Deleted.
(WebCore::UserAgentQuirks::UserAgentQuirks): Deleted.
(WebCore::UserAgentQuirks::add): Deleted.
(WebCore::UserAgentQuirks::contains): Deleted.
(WebCore::UserAgentQuirks::isEmpty): Deleted.
(WebCore::urlRequiresChromeBrowser): Deleted.
(WebCore::urlRequiresMacintoshPlatform): Deleted.

Source/WebKit2:

#include <WebCore/UserAgent.h> instead of <WebCore/UserAgentGtk.h>.

  • UIProcess/API/gtk/WebKitSettings.cpp:
  • UIProcess/efl/WebPageProxyEfl.cpp:
  • UIProcess/gtk/WebPageProxyGtk.cpp:
  • WebProcess/WebPage/gtk/WebPageGtk.cpp:

Tools:

Move the test to a cross-platform location and improve it to better check the full list of
sites we have defined quirks for.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebCore/UserAgentQuirks.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebCore/gtk/UserAgentQuirks.cpp.

(TestWebKitAPI::assertUserAgentForURLHasChromeBrowserQuirk):
(TestWebKitAPI::assertUserAgentForURLHasMacPlatformQuirk):
(TestWebKitAPI::TEST):

3:52 AM Changeset in webkit [207405] by Carlos Garcia Campos
  • 4 edits in trunk

[SOUP] Downloads should always sniff contents
https://bugs.webkit.org/show_bug.cgi?id=163538

Reviewed by Michael Catanzaro.

Source/WebKit2:

It's quite common that downloads have weird filenames with no extension, so it would be better if the loader
sniff the contents to guess the mime type.

  • NetworkProcess/Downloads/soup/DownloadSoup.cpp:

(WebKit::Download::startNetworkLoad): Pass true for shouldContentSniff parameter of ResourceHandle::create().

Tools:

Add a test case to check that the MIME type is correctly guessed for downloads.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestDownloads.cpp:

(writeNextChunk):
(serverCallback):
(testDownloadMIMEType):
(beforeAll):
(writeNextChunkIdle): Deleted.

3:45 AM Changeset in webkit [207404] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Switch to use API::DownloadClient instead of the C API client
https://bugs.webkit.org/show_bug.cgi?id=163537

Reviewed by Michael Catanzaro.

The code is simpler and we avoid all the toImpl/toAPI.

  • UIProcess/API/gtk/WebKitDownloadClient.cpp:

(attachDownloadClientToContext):
(didStart):
(didReceiveResponse):
(didReceiveData):
(decideDestinationWithSuggestedFilename):
(didCreateDestination):
(didFail):
(didCancel):
(didFinish):

2:07 AM WebKitGTK/2.14.x edited by berto@igalia.com
(diff)
2:07 AM WebKitGTK/2.14.x edited by berto@igalia.com
(diff)
2:06 AM Changeset in webkit [207403] by berto@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK] gobject-introspection on package build with webkit2gtk fails without active X session
https://bugs.webkit.org/show_bug.cgi?id=163105

Reviewed by Carlos Garcia Campos.

Don't call XCompositeQueryExtension() or XDamageQueryExtension()
if m_display is NULL.

  • platform/graphics/x11/PlatformDisplayX11.cpp:

(WebCore::PlatformDisplayX11::supportsXComposite):
(WebCore::PlatformDisplayX11::supportsXDamage):

12:40 AM WebKitGTK/2.14.x edited by Manuel Rego Casasnovas
(diff)
12:23 AM Changeset in webkit [207402] by Manuel Rego Casasnovas
  • 2 edits in trunk/Source/WebKit2

[css-grid] Disable CSS Grid Layout runtime flag by default
https://bugs.webkit.org/show_bug.cgi?id=163432

Reviewed by Darin Adler.

It was enabled in r201042, but now Safari Technology Preview
has a UI to switch runtime flags so it doesn't need to be enabled
by default anymore.

  • Shared/WebPreferencesDefinitions.h: Disable grid layout runtime flag

by default.

Oct 16, 2016:

10:58 PM Changeset in webkit [207401] by n_wang@apple.com
  • 9 edits in trunk

AX: [Mac] roleDescription for AXTextField input types
https://bugs.webkit.org/show_bug.cgi?id=163419
<rdar://problem/28766192>

Reviewed by Darin Adler.

Source/WebCore:

Provided more detailed role description for input types that
exposed as standard text fields on the mac.

Changes are covered in modified test expectation.

  • English.lproj/Localizable.strings:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper roleDescription]):

  • platform/LocalizedStrings.cpp:

(WebCore::AXEmailFieldText):
(WebCore::AXTelephoneFieldText):
(WebCore::AXURLFieldText):
(WebCore::AXDateFieldText):
(WebCore::AXTimeFieldText):

  • platform/LocalizedStrings.h:
  • platform/efl/LocalizedStringsEfl.cpp:

(WebCore::AXEmailFieldText):
(WebCore::AXTelephoneFieldText):
(WebCore::AXURLFieldText):
(WebCore::AXDateFieldText):
(WebCore::AXTimeFieldText):

  • platform/gtk/LocalizedStringsGtk.cpp:

(WebCore::AXEmailFieldText):
(WebCore::AXTelephoneFieldText):
(WebCore::AXURLFieldText):
(WebCore::AXDateFieldText):
(WebCore::AXTimeFieldText):

LayoutTests:

  • platform/mac/accessibility/roles-exposed-expected.txt:
8:42 PM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
8:41 PM Changeset in webkit [207400] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

Unreviewed GTK test gardening

  • mathml/mathml-in-dashboard-expected.txt:
  • platform/gtk/TestExpectations:
8:03 PM Changeset in webkit [207399] by dbates@webkit.org
  • 2 edits in trunk/Tools

Fix Perl warning about masked variable following <http://trac.webkit.org/changeset/207382>
(https://bugs.webkit.org/show_bug.cgi?id=163456)

  • Scripts/prepare-ChangeLog:

(actuallyGenerateFunctionLists):

7:12 PM Changeset in webkit [207398] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Update WebKit localizable strings
https://bugs.webkit.org/show_bug.cgi?id=163513

Reviewed by Dan Bernstein.

Update WebKit localizable strings as it was missing the "too short" one needed
by form validation. This was causing a "Localized string not found" message to
be shown when testing the following sample on WebKit ToT:

  • English.lproj/Localizable.strings:
6:28 PM Changeset in webkit [207397] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

REGRESSION (r206750): Crash when pressing Caps Lock if “Use the Caps Lock key to switch to and from U.S.” is selected in Input Sources preferences
https://bugs.webkit.org/show_bug.cgi?id=163506
<rdar://problem/28792483>

Reviewed by Darin Adler.

As per the NSEvent documentation [1], calling [NSEvent characters] is only
valid on key up / key down events and will raise an NSInternalInconsistencyException
if accessed on any other kind of event object. The crash happens when keyForKeyEvent()
is called with the third kind of key event (NSFlagsChanged) which is used for
detecting modifier keys. We normally detect the modifier key and return early before
calling [NSEvent characters]. However, in some rare cases, we fail to detect the
modifier key and we fall through.

To address the issue, we now return "Unidentified" for NSFlagsChanged events, if we
fail to detect the modifier key and before calling [NSEvent characters].

[1] https://developer.apple.com/reference/appkit/nsevent/1534183-characters

No new test, not easily testable.

  • platform/mac/PlatformEventFactoryMac.mm:

(WebCore::keyForKeyEvent):

5:16 PM Changeset in webkit [207396] by Darin Adler
  • 97 edits
    1 delete in trunk/Source

Move CSS classes from ExceptionCode to Exception
https://bugs.webkit.org/show_bug.cgi?id=163494

Reviewed by Sam Weinig.

Source/WebCore:

Removed the "get" prefix from the names of many CSSPrimitiveValue
functions to match WebKit coding style and to disambiguate them
from the public CSS DOM functions that raise exceptions.

  • bindings/js/JSCSSStyleDeclarationCustom.cpp:

(WebCore::propertyNamePrefix): Use enum class.
(WebCore::parseJavaScriptCSSPropertyName): Tweak style a bit.
(WebCore::stylePropertyGetter): Refactor to simplify structure.
(WebCore::stylePropertyGetterPixelOrPosPrefix): Ditto. Also use floatValue.
(WebCore::JSCSSStyleDeclaration::putDelegate): Use findIgnoringASCIICase,
and use propagateException to handle ExcpetionOr.
(WebCore::JSCSSStyleDeclaration::getPropertyCSSValue): Tweak style a bit.
(WebCore::JSCSSStyleDeclaration::getOwnPropertyNames): Use a lambda to
initialize a global here.

  • bindings/js/JSDOMBinding.h: Added toJSString to support bindings for

functions returning ExceptionOr<String>.

  • bindings/scripts/gobject-generate-headers.pl: Deleted.
  • css/BasicShapeFunctions.cpp:

(WebCore::convertToLengthSize): Use pairValue.
(WebCore::convertToCenterCoordinate): Use valueID and pairValue.
(WebCore::cssValueToBasicShapeRadius): Ditto.

  • css/CSSBasicShapes.cpp:

(WebCore::serializePositionOffset): Ditto.
(WebCore::buildSerializablePositionOffset): Ditto.
(WebCore::CSSBasicShapeCircle::cssText): Ditto.
(WebCore::CSSBasicShapeEllipse::cssText): Ditto.
(WebCore::updateCornerRadiusWidthAndHeight): Ditto.

  • css/CSSBorderImageSliceValue.h: Use quadValue.
  • css/CSSCalculationValue.cpp:

(WebCore::determineCategory): Use floatValue and doubleValue.

  • css/CSSCharsetRule.h: Use ExceptionOr. Also made more things private.
  • css/CSSCharsetRule.idl: Use non-legacy exceptions.
  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::CSSComputedStyleDeclaration::setCssText): Use ExceptionOr.
(WebCore::ComputedStyleExtractor::propertyMatches): Use valueID.
(WebCore::CSSComputedStyleDeclaration::setProperty): Use ExceptionOr.
(WebCore::CSSComputedStyleDeclaration::removeProperty): Ditto.
(WebCore::CSSComputedStyleDeclaration::setPropertyInternal): Ditto.
(WebCore::ComputedStyleExtractor::getBackgroundShorthandValue): Return
a Ref instead of a RefPtr.

  • css/CSSComputedStyleDeclaration.h: Updated for above changes.
  • css/CSSCrossfadeValue.cpp:

(WebCore::CSSCrossfadeValue::fixedSize): Use floatValue.
(WebCore::CSSCrossfadeValue::image): Ditto.
(WebCore::CSSCrossfadeValue::blend): Use doubleValue.

  • css/CSSFontFace.cpp:

(WebCore::CSSFontFace::calculateStyleMask): Use valueID.
(WebCore::CSSFontFace::calculateWeightMask): Ditto.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::familyNameFromPrimitive): Ditto.
(WebCore::CSSFontFaceSet::matchingFaces): Use ExceptoinOr.
(WebCore::CSSFontFaceSet::check): Ditto.

  • css/CSSFontFaceSet.h: Updated for above changes.
  • css/CSSGradientValue.cpp:

(WebCore::compareStops): Use doubleValue.
(WebCore::CSSGradientValue::addStops): Use floatValue.
(WebCore::positionFromValue): Use floatValue and valudID.
(WebCore::CSSLinearGradientValue::customCSSText): Use doubleValue and valueID.
(WebCore::CSSLinearGradientValue::createGradient): Use floatValue and valueID.
(WebCore::CSSRadialGradientValue::customCSSText): Use doubleValue and valueID.
(WebCore::CSSRadialGradientValue::resolveRadius): Use floatValue.
(WebCore::CSSRadialGradientValue::createGradient): Use valueID.

  • css/CSSGroupingRule.cpp:

(WebCore::CSSGroupingRule::insertRule): Use ExceptionOr.
(WebCore::CSSGroupingRule::deleteRule): Ditto.

  • css/CSSGroupingRule.h: Updated for above changes.
  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::subimageIsPending): Use valueID.
(WebCore::CSSImageGeneratorValue::cachedImageForCSSValue): Ditto.

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::fillImageSet): Use floatValue.

  • css/CSSMediaRule.idl: Use non-legacy exceptions.
  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeDegrees): Use doubleValue.
(WebCore::CSSPrimitiveValue::setFloatValue): Use ExceptionOr.
(WebCore::CSSPrimitiveValue::getFloatValue): Replaced getDoubleValue with this,
since getDoubleValue is unused, moving the call to clampTo into this function.
Also changed this to use ExceptionOr.
(WebCore::CSSPrimitiveValue::doubleValue): Renamed from getDoubleValue.
(WebCore::CSSPrimitiveValue::doubleValueInternal): Use Optional instead of a bool
and an out argument to return the value and check for type failure.
(WebCore::CSSPrimitiveValue::setStringValue): Use ExceptionOr.
(WebCore::CSSPrimitiveValue::getStringValue): Ditto.
(WebCore::CSSPrimitiveValue::stringValue): Renamed from getStringValue.
(WebCore::CSSPrimitiveValue::getCounterValue): Use ExceptionOr.
(WebCore::CSSPrimitiveValue::getRectValue): Use ExceptionOr.
(WebCore::CSSPrimitiveValue::getQuadValue): Deleted.
(WebCore::CSSPrimitiveValue::getLengthRepeatValue): Deleted.
(WebCore::CSSPrimitiveValue::getRGBColorValue): Use ExceptionOr.
(WebCore::CSSPrimitiveValue::getPairValue): Deleted.
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText): Use new names for functions.

  • css/CSSPrimitiveValue.h: Reorganized the class, moved large inline function bodies

out of the class definition. Updated for the above changes.

  • css/CSSPrimitiveValue.idl: Use non-legacy exceptions.
  • css/CSSPrimitiveValueMappings.h: Use value instead of getValue, etc.
  • css/CSSRule.cpp:

(WebCore::CSSRule::setCssText): Use ExceptionOr.

  • css/CSSRule.h: Updated for above change.
  • css/CSSRule.idl: Use non-legacy exceptions.
  • css/CSSStyleDeclaration.h: Use ExceptionOr.
  • css/CSSStyleDeclaration.idl: Use non-legacy exceptions.
  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::deprecatedInsertRule): Use ExceptionOr.
(WebCore::CSSStyleSheet::insertRule): Ditto.
(WebCore::CSSStyleSheet::deleteRule): Ditto.
(WebCore::CSSStyleSheet::addRule): Ditto.

  • css/CSSStyleSheet.h: Updated for the above changes.
  • css/CSSStyleSheet.idl: Use non-legacy exceptions.
  • css/CSSSupportsRule.idl: Use non-legacy exceptions.
  • css/CSSToStyleMap.cpp:

(WebCore::CSSToStyleMap::mapFillAttachment): Use valueID instead of getValueID, etc.
(WebCore::convertToLengthSize): Ditto.
(WebCore::CSSToStyleMap::mapFillSize): Ditto.
(WebCore::CSSToStyleMap::mapFillXPosition): Ditto.
(WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
(WebCore::CSSToStyleMap::mapFillMaskSourceType): Ditto.
(WebCore::CSSToStyleMap::mapAnimationDirection): Ditto.
(WebCore::CSSToStyleMap::mapAnimationFillMode): Ditto.
(WebCore::CSSToStyleMap::mapAnimationIterationCount): Ditto.
(WebCore::CSSToStyleMap::mapAnimationName): Ditto.
(WebCore::CSSToStyleMap::mapAnimationPlayState): Ditto.
(WebCore::CSSToStyleMap::mapAnimationProperty): Ditto.
(WebCore::CSSToStyleMap::mapAnimationTimingFunction): Ditto.
(WebCore::CSSToStyleMap::mapAnimationTrigger): Ditto.
(WebCore::CSSToStyleMap::mapNinePieceImageSlice): Ditto.
(WebCore::CSSToStyleMap::mapNinePieceImageQuad): Ditto.
(WebCore::CSSToStyleMap::mapNinePieceImageRepeat): Ditto.

  • css/CSSValue.h: Use ExceptionOr.
  • css/CSSValue.idl: Use non-legacy exceptions.
  • css/Counter.h: Use stringValue instead of getStringValue, etc.
  • css/FontFace.cpp:

(WebCore::FontFace::create): Use ExceptionOr.
(WebCore::FontFace::setFamily): Ditto.
(WebCore::FontFace::setStyle): Ditto.
(WebCore::FontFace::setWeight): Ditto.
(WebCore::FontFace::setStretch): Ditto.
(WebCore::FontFace::setUnicodeRange): Ditto.
(WebCore::FontFace::setVariant): Ditto.
(WebCore::FontFace::setFeatureSettings): Ditto.

  • css/FontFace.h: Updated for above changes.
  • css/FontFace.idl: Use non-legacy exceptions.
  • css/FontFaceSet.cpp:

(WebCore::FontFaceSet::load): Use ExceptionOr.
(WebCore::FontFaceSet::check): Ditto.

  • css/FontFaceSet.h: Updated for above changes.
  • css/FontFaceSet.idl: Use non-legacy exceptions.
  • css/FontVariantBuilder.cpp:

(WebCore::extractFontVariantLigatures): Use valueID instead of getValueID, etc.
(WebCore::extractFontVariantNumeric): Ditto.
(WebCore::extractFontVariantEastAsian): Ditto.

  • css/MediaList.cpp:

(WebCore::MediaList::setMediaText): Use ExceptionOr.
(WebCore::MediaList::deleteMedium): Ditto.
(WebCore::MediaList::appendMedium): Ditto.

  • css/MediaList.h: Updated for above changes.
  • css/MediaList.idl: Use non-legacy exceptions.
  • css/MediaQueryEvaluator.cpp:

(WebCore::doubleValue): Use valueID instead of getValueID, etc.
(WebCore::colorGamutEvaluate): Ditto.
(WebCore::invertedColorsEvaluate): Ditto.
(WebCore::orientationEvaluate): Ditto.
(WebCore::evaluateResolution): Ditto.
(WebCore::computeLength): Ditto.
(WebCore::viewModeEvaluate): Ditto.
(WebCore::hoverEvaluate): Ditto.
(WebCore::pointerEvaluate): Ditto.
(WebCore::prefersReducedMotionEvaluate): Ditto.

  • css/PropertySetCSSStyleDeclaration.cpp:

(WebCore::PropertySetCSSStyleDeclaration::setCssText): Use ExceptionOr.
(WebCore::PropertySetCSSStyleDeclaration::setProperty): Ditto.
(WebCore::PropertySetCSSStyleDeclaration::removeProperty): Ditto.
(WebCore::PropertySetCSSStyleDeclaration::getPropertyCSSValueInternal): Ditto.
(WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal): Ditto.

  • css/PropertySetCSSStyleDeclaration.h: Updated for above changes.

Also marked a couple additional functions private.

  • css/StyleBuilderConverter.h: Use doubleValue instead of getDoubleValue, etc.
  • css/StyleBuilderCustom.h: Ditto.
  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getLayeredShorthandValue): Ditto.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::MatchResult::addMatchedProperties): Ditto.
(WebCore::StyleResolver::colorFromPrimitiveValueIsDerivedFromElement): Ditto.
(WebCore::StyleResolver::colorFromPrimitiveValue): Ditto.
(WebCore::StyleResolver::createFilterOperations): Ditto.

  • css/TransformFunctions.cpp:

(WebCore::transformsForValue): Ditto.

  • css/ViewportStyleResolver.cpp:

(WebCore::ViewportStyleResolver::getViewportArgumentValue): Ditto.

  • css/WebKitCSSMatrix.cpp:

(WebCore::WebKitCSSMatrix::WebKitCSSMatrix): Tweaked constructors a bit,
getting rid of the one that uses an ExceptionCode.
(WebCore::WebKitCSSMatrix::create): Moved in here, and use ExceptionOr.
(WebCore::WebKitCSSMatrix::setMatrixValue): Use ExceptionOr.
(WebCore::WebKitCSSMatrix::multiply): Tweak coding style a bit.
(WebCore::WebKitCSSMatrix::inverse): Use ExceptionOr.
(WebCore::WebKitCSSMatrix::translate): Return a Ref instead of RefPtr.
(WebCore::WebKitCSSMatrix::scale): Ditto.
(WebCore::WebKitCSSMatrix::rotate): Ditto.
(WebCore::WebKitCSSMatrix::rotateAxisAngle): Ditto.
(WebCore::WebKitCSSMatrix::skewX): Ditto.
(WebCore::WebKitCSSMatrix::skewY): Ditto.
(WebCore::WebKitCSSMatrix::toString): Tweaked formatting a bit.

  • css/WebKitCSSMatrix.h: Updated for above changes.
  • css/WebKitCSSMatrix.idl: Use non-legacy extensions.
  • css/makeprop.pl:

(handleCurrentColorValue): Use valueID instead of getValueID.
(generateValueSetter): Ditto.

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parse4ValuesFillPosition): Use valueID instead of getValueID, etc.
(WebCore::CSSParser::parse3ValuesFillPosition): Ditto.
(WebCore::CSSParser::parseFillPosition): Ditto.
(WebCore::CSSParser::parseFillRepeat): Ditto.
(WebCore::CSSParser::parseGridPosition): Ditto.
(WebCore::CSSParser::parseGridTemplateRowsAndAreasAndColumns): Ditto.
(WebCore::isGridTrackFixedSized): Ditto.
(WebCore::CSSParser::parseRadialGradient): Ditto.
(WebCore::CSSParser::parseBuiltinFilterArguments): Ditto.

  • css/parser/CSSParserValues.cpp:

(WebCore::CSSParserValue::createCSSValue): Removed the unneeded call to
setPrimitiveType here. The createParserOperator returns an object that
already has the correct primitive type.

  • css/parser/CSSPropertyParser.cpp: Updated most cases of calling the old

getXXXValue functions, but not sure if it's right since it is commented out
code that I did not compile.

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::clampRGBComponent): Use intValue instead of getIntValue, etc.
(WebCore::CSSPropertyParserHelpers::parseHSLParameters): Ditto.
(WebCore::CSSPropertyParserHelpers::isHorizontalPositionKeywordOnly): Ditto.
(WebCore::CSSPropertyParserHelpers::isVerticalPositionKeywordOnly): Ditto.
(WebCore::CSSPropertyParserHelpers::positionFromThreeOrFourValues): Ditto.
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient): Ditto.

  • dom/Range.cpp: Added now-needed include of ExceptionCode.h.
  • dom/SelectorQuery.cpp: Ditto.
  • editing/ApplyStyleCommand.cpp:

(WebCore::toIdentifier): Use valueID instead of getValueID, etc.
(WebCore::ApplyStyleCommand::computedFontSize): Ditto.

  • editing/EditingStyle.cpp:

(WebCore::identifierForStyleProperty): Ditto.
(WebCore::HTMLElementEquivalent::valueIsPresentInStyle): Ditto.
(WebCore::EditingStyle::extractFontSizeDelta): Ditto.
(WebCore::EditingStyle::textDirection): Ditto.
(WebCore::EditingStyle::prepareToApplyAt): Ditto.
(WebCore::EditingStyle::textDirectionForSelection): Ditto.
(WebCore::fontWeightIsBold): Ditto.
(WebCore::legacyFontSizeFromCSSValue): Ditto.
(WebCore::isTransparentColorValue): Ditto.
(WebCore::hasTransparentBackgroundColor): Ditto.
(WebCore::backgroundColorInEffect): Ditto.

  • editing/Editor.cpp:

(WebCore::Editor::applyEditingStyleToElement): Removed IGNORE_EXCEPTION; that is
what we do by default for things returning ExceptionOr.

  • editing/RemoveCSSPropertyCommand.cpp:

(WebCore::RemoveCSSPropertyCommand::doApply): Ditto.
(WebCore::RemoveCSSPropertyCommand::doUnapply): Ditto.

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline): Ditto.

  • editing/cocoa/HTMLConverter.mm:

(floatValueFromPrimitiveValue): Use floatValue instead of getFloatValue, etc.

  • editing/markup.cpp:

(WebCore::propertyMissingOrEqualToNone): Ditto.

  • inspector/InspectorStyleSheet.cpp:

(WebCore::InspectorStyleSheet::addRule): Updated to call ExceptionOr-returning functions.
(WebCore::InspectorStyleSheet::deleteRule): Ditto.
(WebCore::InspectorStyleSheet::setStyleText): Ditto.

  • svg/SVGLength.cpp:

(WebCore::SVGLength::fromCSSPrimitiveValue): Use floatValue instead of getFloatValue.

Source/WebKit/mac:

  • DOM/DOMCSSMediaRule.mm:

(-[DOMCSSMediaRule insertRule:index:]): Use raiseOnDOMError
the new way to handle ExceptionOr instead of ExceptionCode.
(-[DOMCSSMediaRule deleteRule:]): Ditto.

  • DOM/DOMCSSPrimitiveValue.mm:

(-[DOMCSSPrimitiveValue setFloatValue:floatValue:]): Ditto.
(-[DOMCSSPrimitiveValue getFloatValue:]): Ditto.
(-[DOMCSSPrimitiveValue setStringValue:stringValue:]): Ditto.
(-[DOMCSSPrimitiveValue getStringValue]): Ditto.
(-[DOMCSSPrimitiveValue getCounterValue]): Ditto.
(-[DOMCSSPrimitiveValue getRectValue]): Ditto.
(-[DOMCSSPrimitiveValue getRGBColorValue]): Ditto.

  • DOM/DOMCSSRule.mm:

(-[DOMCSSRule setCssText:]): Ditto.

  • DOM/DOMCSSStyleDeclaration.mm:

(-[DOMCSSStyleDeclaration setCssText:]): Ditto.
(-[DOMCSSStyleDeclaration removeProperty:]): Ditto.
(-[DOMCSSStyleDeclaration setProperty:value:priority:]): Ditto.

  • DOM/DOMCSSStyleSheet.mm:

(-[DOMCSSStyleSheet insertRule:index:]): Ditto.
(-[DOMCSSStyleSheet deleteRule:]): Ditto.
(-[DOMCSSStyleSheet addRule:style:index:]): Ditto.
(-[DOMCSSStyleSheet removeRule:]): Ditto.

  • DOM/DOMCSSValue.mm:

(-[DOMCSSValue setCssText:]): Ditto.

  • DOM/DOMMediaList.mm:

(-[DOMMediaList setMediaText:]): Ditto.
(-[DOMMediaList deleteMedium:]): Ditto.
(-[DOMMediaList appendMedium:]): Ditto.

  • DOM/ExceptionHandlers.h: Added an overload of raiseDOMException

that works with a WebCore::Exception&& and overloads of
raiseOnDOMError that work with WebCore::ExceptionOr&&.

  • DOM/ExceptionHandlers.mm:

(raiseDOMException): Implemented the new version.

Source/WebKit/win:

  • DOMCSSClasses.cpp:

(DOMCSSStyleDeclaration::setCssText): Remove ExceptionCode handling.
(DOMCSSStyleDeclaration::setProperty): Ditto.

Source/WebKit2:

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp:

(webkit_dom_css_rule_set_css_text): Updated for ExceptionOr.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp:

(webkit_dom_css_style_declaration_remove_property): Ditto.
(webkit_dom_css_style_declaration_set_property): Ditto.
(webkit_dom_css_style_declaration_set_css_text): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp:

(webkit_dom_css_style_sheet_insert_rule): Ditto.
(webkit_dom_css_style_sheet_delete_rule): Ditto.
(webkit_dom_css_style_sheet_add_rule): Ditto.
(webkit_dom_css_style_sheet_remove_rule): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp:

(webkit_dom_css_value_set_css_text): Ditto.

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp:

(webkit_dom_media_list_delete_medium): Ditto.
(webkit_dom_media_list_append_medium): Ditto.
(webkit_dom_media_list_set_media_text): Ditto.

3:11 PM Changeset in webkit [207395] by commit-queue@webkit.org
  • 2 edits
    3 adds in trunk

[Modern Media Controls] Styles for StartButton are missing
https://bugs.webkit.org/show_bug.cgi?id=163499
<rdar://problem/28792009>

Patch by Antoine Quint <Antoine Quint> on 2016-10-16
Reviewed by Darin Adler.

Source/WebCore:

Add styling for StartButton so that instances are always displayed in the center of their container.

Test: media/modern-media-controls/start-button/start-button-styles.html

  • Modules/modern-media-controls/controls/start-button.css: Added.

(button.start):
(button.start > *):
(button.start > div):
(button.start > img):
(button.start:active > img):

LayoutTests:

New test checking StartButton instances have the right CSS styles applied to their DOM structure.

  • media/modern-media-controls/start-button/start-button-styles-expected.txt: Added.
  • media/modern-media-controls/start-button/start-button-styles.html: Added.
11:59 AM Changeset in webkit [207394] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Implement serializer = { attribute }
https://bugs.webkit.org/show_bug.cgi?id=163466

Follow-up fix to die if "serializer {...}" lists an attribute not present
on the interface. I don't think this is testable with the current bindings tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateSerializerFunction):

11:47 AM Changeset in webkit [207393] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Add the "Geometry Interfaces" to features.json.

  • features.json:
7:30 AM Changeset in webkit [207392] by Gyuyoung Kim
  • 2 edits
    1 add in trunk/LayoutTests

[EFL] Meter tests have been failed since r207280

Unreviewed EFL gardening. And add new baseline for meter-element.html.

  • platform/efl/TestExpectations: Mark 2 tests to failure.
  • platform/efl/fast/dom/HTMLMeterElement/meter-element-expected.txt: Added.
2:31 AM Changeset in webkit [207391] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit2

[GTK] Default WebKitWebsiteDataManager is always leaked in WebKitWebContext
https://bugs.webkit.org/show_bug.cgi?id=163443

Reviewed by Michael Catanzaro.

Adopt the reference returned by webkitWebsiteDataManagerCreate().

  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextConstructed):

2:27 AM Changeset in webkit [207390] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ unit test /webkit2/WebKitWebContext/languages after r206949.

After r206949 navigator.language returns en-US instead of en-us. Language tags in Accept-Language header are
actually case-insensitive, so we should actually do case-insensitive comparisons, but we only have
g_assert_cmpstr for tests.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(testWebContextLanguages):

2:11 AM Changeset in webkit [207389] by Carlos Garcia Campos
  • 4 edits in trunk

[GTK] WebKitWebPage URI not updated after URI is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
https://bugs.webkit.org/show_bug.cgi?id=163389

Reviewed by Michael Catanzaro.

Source/WebKit2:

Update the page URI also when the load is committed.

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

(getDocumentLoaderURL):
(didStartProvisionalLoadForFrame):
(didReceiveServerRedirectForProvisionalLoadForFrame):
(didCommitLoadForFrame):
(webkitWebPageCreate):
(getProvisionalURLForFrame): Deleted.

Tools:

Update /webkit2/WebKitWebPage/get-uri test to check that web view and page uri always match even when request is
modified by WebKitWebPage::send-request signal.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:

(testWebPageURI):

1:35 AM Changeset in webkit [207388] by Carlos Garcia Campos
  • 8 edits in trunk

Document request not updated after willSendRequest is called for a redirect
https://bugs.webkit.org/show_bug.cgi?id=163436

Reviewed by Michael Catanzaro.

Source/WebCore:

The first willSendRequest happens before DocumentLoader::startLoadingMainResource(), that calls setRequest, but
the second one happens after DocumentLoader::redirectReceived() and then the request is never updated again.

Covered by GTK+ unit tests.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willContinueMainResourceLoadAfterRedirect): Set the new request.

  • loader/DocumentLoader.h:
  • loader/SubresourceLoader.cpp:

(WebCore::SubresourceLoader::willSendRequestInternal): Notify the document loader when loading the main resource
and called for a redirection.

Tools:

Update /webkit2/WebKitWebView/active-uri test to check the active URI also when modified by
WebKitPage::send-request signal in a web extension.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestLoaderClient.cpp:

(testWebViewActiveURI):
(serverCallback):

  • TestWebKitAPI/Tests/WebKit2Gtk/WebExtensionTest.cpp:

(sendRequestCallback):

  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp:

(loadChangedCallback):

Oct 15, 2016:

6:44 PM Changeset in webkit [207387] by mark.lam@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add a $vm.getpid() method.
https://bugs.webkit.org/show_bug.cgi?id=163493

Reviewed by Saam Barati.

This is especially useful when we need to know the pid of an instance of jsc in
the foreground that we're trying to attach a debugger to while the JSC tests are
running in the background with a gazillion other jsc processes live at the same
time.

Currently, $vm.getpid() is only supported on non-Windows platforms.
According to https://msdn.microsoft.com/en-us/library/ms235372.aspx, getpid() is
deprecated. According to https://msdn.microsoft.com/en-us/library/t2y34y40.aspx,
_getpid() cannot be used in applications that execute in the Windows Runtime.

Since this is only a debugging tool and is not a required feature, I'll defer
the Windows implementation of this function till the time when someone actually
needs it.

  • tools/JSDollarVMPrototype.cpp:

(JSC::functionGetPID):
(JSC::JSDollarVMPrototype::finishCreation):

5:19 PM Changeset in webkit [207386] by commit-queue@webkit.org
  • 8 edits
    3 adds in trunk

Delete the animated image catchup code
https://bugs.webkit.org/show_bug.cgi?id=163410

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2016-10-15
Reviewed by Simon Fraser.

Source/WebCore:

This patch fixes two issues in the animated image workflow:

1) Setting the animation timer should follow the following rules:

-- Initial case: Which happens before drawing the first frame. We
should set the timer to fire after the current_frame_duration.

-- Late case (Slow animation): This happens if the current_time is
past the next_frame_desired_time. In this case we should fire the
timer immediately.

-- Early case (Fast animation): This happens when there is still time
before the next_frame_desired_time. In this case we should set the
timer to fire after the difference between the next_frame_desired_time
and the current_time.

2) Deleting the code for catching up the current_frame:

This code used to run in the slow animation case. It was never used
on iOS. It was trying to adjust the current_frame according to the
current_time as if there were no delay. It turned out that this might
cause a bigger delay because most likely the decoder decodes the image
frames incrementally; i.e. to decode frame k, it has to have frame
(k - 1) decoded.

Test: fast/images/ordered-animated-image-frames.html

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::draw): Remove the iOS specific code.
(WebCore::BitmapImage::startAnimation): Move the animation finishing code from
BitmapImage::internalAdvanceAnimation() to this function. Simplify the timer
duration code as it is described above.

(WebCore::BitmapImage::advanceAnimation): Merge BitmapImage::internalAdvanceAnimation()
into this function.

(WebCore::BitmapImage::resetAnimation):

(WebCore::BitmapImage::internalAdvanceAnimation): Deleted.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.cpp:

(WebCore::Image::drawTiled):

  • platform/graphics/Image.h:

(WebCore::Image::startAnimation):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::startAnimation):

  • svg/graphics/SVGImage.h:

Remove the catchup code form the Image and SVGImage classes.

LayoutTests:

This animated gif has one red frame, one green frame and two red frames.
The test page renders only two frames from this this image on a canvas. The
test passes if the second frame (the green one) is rendered on the canvas
even if drawImage() is called after the duration of the first frame.

  • fast/images/ordered-animated-image-frames-expected.html: Added.
  • fast/images/ordered-animated-image-frames.html: Added.
  • fast/images/resources/animated-red-green-blue.gif: Added.
4:53 PM Changeset in webkit [207385] by mitz@apple.com
  • 4 edits
    1 add in trunk

REGRESSION (r191699): Contextual menu in Mail compose view doesn’t include any of the standard submenus
https://bugs.webkit.org/show_bug.cgi?id=163492
<rdar://problem/28654799>

Reviewed by Darin Adler.

Source/WebKit/mac:

Test: TestWebKitAPI/Tests/mac/ContextMenuDefaultItemsHaveTags.mm

  • WebView/WebHTMLView.mm:

(createMenuItem): Set the tag for items that have submenus as well.

Tools:

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

(-[ContextMenuDefaultItemsHaveTagsDelegate webView:didFinishLoadForFrame:]):
(TestWebKitAPI::TEST):

4:23 PM Changeset in webkit [207384] by Darin Adler
  • 15 edits in trunk/Source/WebCore

Move Web SQL database and WebSockets off legacy exceptions
https://bugs.webkit.org/show_bug.cgi?id=163284

Reviewed by Chris Dumez.

  • Modules/webdatabase/DOMWindowWebDatabase.cpp:

(WebCore::DOMWindowWebDatabase::openDatabase): Use ExceptionOr.

  • Modules/webdatabase/DOMWindowWebDatabase.h: Update for above.
  • Modules/webdatabase/DOMWindowWebDatabase.idl: Ditto.
  • Modules/webdatabase/SQLResultSet.cpp:

(WebCore::SQLResultSet::SQLResultSet): Move initialization of
many data members into the class definition.
(WebCore::SQLResultSet::insertId): Use ExceptionOr.
(WebCore::SQLResultSet::rowsAffected): Moved into class definition.
(WebCore::SQLResultSet::rows): Ditto.
(WebCore::SQLResultSet::setInsertId): Ditto.
(WebCore::SQLResultSet::setRowsAffected): Ditto.

  • Modules/webdatabase/SQLResultSet.h: Updated for above.
  • Modules/webdatabase/SQLResultSet.idl: Use non-legacy exceptions.

Added a FIXME about the mismatch between long and int64_t.

  • Modules/webdatabase/SQLStatement.cpp:

(WebCore::SQLStatement::execute): Use reference instead of pointer.

  • Modules/websockets/WebSocket.cpp:

(WebCore::isValidProtocolString): Use StringView.
(WebCore::WebSocket::subprotocolSeparator): Fixed capitalization and
spelling error in the name of this function.
(WebCore::WebSocket::WebSocket): Move initialization of many data
members into the class definition.
(WebCore::WebSocket::create): Use ExceptionOr.
(WebCore::WebSocket::connect): Ditto.
(WebCore::WebSocket::send): Ditto.
(WebCore::WebSocket::close): Ditto.
(WebCore::WebSocket::binaryType): Update to use enum class.
(WebCore::WebSocket::setBinaryType): Use ExecptionOr and update to
use enum class.
(WebCore::WebSocket::didReceiveBinaryData): Ditto.

  • Modules/websockets/WebSocket.h: Updated for above. Changed the

BinaryType enum into an enum class.

  • Modules/websockets/WebSocket.idl: Use non-legacy exceptions.
  • Modules/websockets/WebSocketHandshake.cpp:

(WebCore::WebSocketHandshake::checkResponseHeaders):
Updated for name change to subprotocolSeparator.

  • dom/ExceptionOr.h: Added a constructor for scalar types that does not

require an rvalue reference. We can refine this more later, but for now
this is sufficient to obviate the need for WTFMove where it otherwise would
have been needed in the code above.

  • inspector/InspectorDatabaseAgent.cpp: Use reference instead of pointer.
  • page/DOMWindow.idl: Touched this file to work around bugs in the dependency

analysis of the current CMake build system, since otherwise it doesn't process the
change to the partial interface WebSocket. Edited lots of comments, removed many
others, and tweaked formatting.

4:21 PM Changeset in webkit [207383] by mmaxfield@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Test that duplicate axis values in font-variation-settings are resolved correctly
https://bugs.webkit.org/show_bug.cgi?id=163489

Reviewed by Darin Adler.

  • fast/text/variations/duplicate-axis-expected.html: Added.
  • fast/text/variations/duplicate-axis.html: Added.
3:04 PM Changeset in webkit [207382] by dbates@webkit.org
  • 3 edits in trunk/Tools

prepare-ChangeLog erroneously said that a python init method was deleted
https://bugs.webkit.org/show_bug.cgi?id=163456

Reviewed by Simon Fraser.

Fixes an issue where prepare-ChangeLog may list as deleted functions that are
immediately above added code.

Currently prepare-ChangeLog makes use of the same overlap detection algorithm
to compute the list of deleted functions as it does to compute added and modified
functions. We consider a function deleted if its entire function body and signature
are removed. It is sufficient to compare the list of functions before the patch
is applied and the list of functions are the patch is applied to identify
these functions.

  • Scripts/prepare-ChangeLog: Fix some style nits, including using Camel Case for

variable names.
(actuallyGenerateFunctionLists): Modified to call computeModifiedFunctions(). Always
compute the list of functions in the file after the patch regardless of whether the
patch only contains deletions. We will compare this list against the list of functions
before the patch was applied to determine the deleted functions.
(computeModifiedFunctions): Renamed; formerly named generateFunctionListsByRanges.
Removed out argument for the seen functions as we no longer make use of when computing
the list of deleted functions.
(diffCommand): Update comment.
(generateFunctionListsByRanges): Deleted.

  • Scripts/webkitperl/prepare-ChangeLog_unittest/generateFunctionLists.pl: Added more unit tests.
2:52 PM Changeset in webkit [207381] by weinig@apple.com
  • 22 edits in trunk

MessageEvent's source property should be a (DOMWindow or MessagePort)? rather than a EventTarget?
https://bugs.webkit.org/show_bug.cgi?id=163475

Reviewed by Simon Fraser.

Source/WebCore:

Start fleshing out union support, starting with MessageEvent.

  • Simplify things a bit for now by requiring interface types to use RefPtr<T> as their type when used in sequences and unions. We should revisit this later, and see if we can use Ref<T> where possible, but it causes complications for dictionaries, since they want a Ref<T> uninitialized.
  • bindings/generic/IDLTypes.h:

Switch IDLInterface to use RefPtr<T> as its implementation type.

  • bindings/js/JSDOMConvert.h:

(WebCore::Detail::VariadicConverterBase::convert):

  • Remove isJSDOMWrapperType() optimization. It was not correct, due to not being able to detect window and window shell, and not always an optimization, e.g. in the case of a single interface.
  • Switch from JSC::jsDynamicCast<WrapperType*>() to WrapperType::toWrapped() which can be faster and handles window and window shell correctly.
  • Also fix an issue where we would wrongly assert that one interface had to match.
  • bindings/js/JSDOMWrapper.h:

(WebCore::isJSDOMWrapperType): Deleted.
Remove unused predicate.

  • bindings/scripts/IDLParser.pm:

(parseType):
Add missing support for nullable unions.

  • bindings/scripts/test/JS/JSTestObj.cpp:
  • bindings/scripts/test/TestObj.idl:

Add new tests for unions (both non-null and nullable) in dictionaries.

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::append):
(WebCore::ContainerNode::prepend):

  • dom/ContainerNode.h:
  • dom/Node.cpp:

(WebCore::nodeSetPreTransformedFromNodeOrStringVector):
(WebCore::Node::convertNodesOrStringsIntoNode):
(WebCore::Node::before):
(WebCore::Node::after):
(WebCore::Node::replaceWith):

  • dom/Node.h:

Add using declaration for NodeOrString and change it to use RefPtr<Node>.

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):

  • dom/MessageEvent.cpp:

(WebCore::MessageEvent::MessageEvent):
(WebCore::MessageEvent::create):
(WebCore::MessageEvent::initMessageEvent):
(WebCore::MessageEvent::source):
(WebCore::isValidSource): Deleted.

  • dom/MessageEvent.h:
  • dom/MessageEvent.idl:
  • page/DOMWindow.cpp:

(WebCore::PostMessageTimer::event):
Change MessageEvent's source to be a std::experimental::variant<RefPtr<DOMWindow>, RefPtr<MessagePort>>.
For now, we only enforce this on setting, and leave the getter a EventTarget?, but that should not be
observable, and will rectified in subsequent patches.

Source/WTF:

  • wtf/Variant.h:

Add missing return statement that was tripping up some compilers.

LayoutTests:

  • fast/dom/message-port-deleted-by-accessor.html:

Switch source parameter to null to avoid accidental type error.

  • fast/events/constructors/message-event-constructor-expected.txt:
  • fast/events/constructors/message-event-constructor.html:

Update test expect a thrown type error, as is now expected, for non-window or MessagePort EventTargets.

2:31 PM Changeset in webkit [207380] by Chris Dumez
  • 21 edits in trunk

Add support for reportValidity() on form and form control elements
https://bugs.webkit.org/show_bug.cgi?id=163479

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline several W3C tests now that more checks are passing.

  • web-platform-tests/html/dom/interfaces-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-reportValidity-expected.txt:
  • web-platform-tests/html/semantics/forms/constraints/form-validation-validate-expected.txt:

Source/WebCore:

Add support for reportValidity() on form and form control elements:

Firefox and Chrome already support this.

Demo: https://googlechrome.github.io/samples/report-validity/

No new tests, rebaselined existing tests.

  • html/HTMLButtonElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLObjectElement.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTextAreaElement.idl:

Add reportValidity() operation.

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::checkValidity):

(WebCore::HTMLFormControlElement::reportValidity):
Add implementation for reportValidity() for form control elements.
First, it calls checkValidity() and returns early if there is no
constraint violation. if the JS canceled the 'invalid' event
fired by checkValidity(), then return early as well, as per the
specification. If the element is focusable, we scroll to it,
focus it and show the validation message. Otherwise, we log a
error message to the console. The last part of the behavior
matches what we already did in HTMLFormElement::validateInteractively()
and complies with the behavior in the specification.

(WebCore::HTMLFormControlElement::focusAndShowValidationMessage):
Add utility function to scroll to the form control element, focus
it and show its validation message. This code was moved from
HTMLFormElement::validateInteractively() so that it could be reused
in HTMLFormControlElement::reportValidity().

  • html/HTMLFormControlElement.h:
  • html/HTMLFormElement.cpp:

(WebCore::HTMLFormElement::validateInteractively):
Move the early abort checks to the existing call site (prepareForSubmission)
so that we can reuse this method for reportValidity().

(WebCore::HTMLFormElement::prepareForSubmission):
Only call validateInteractively() if we really should validate. Those checks
used to be in validateInteractively() but I moved them here so we could more
easily reuse validateInteractively().

(WebCore::HTMLFormElement::checkValidity):
(WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
Update Vector type to be a Vector of HTMLFormControlElement given that we
only add HTMLFormControlElement objects to it and that it results it simpler
code.

(WebCore::HTMLFormElement::reportValidity):
Add implementation for reportValidity() for form elements. The
implementation calls our already existing validateInteractively()
method, as per the specification.

  • html/HTMLFormElement.h:
  • html/HTMLObjectElement.h:

reportValidity() returns true unconditionally for object elements,
similarly to checkValidity().

2:18 PM Changeset in webkit [207379] by Simon Fraser
  • 4 edits in trunk/Source

Sort the project file.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit2:

  • WebKit2.xcodeproj/project.pbxproj:
2:15 PM Changeset in webkit [207378] by Simon Fraser
  • 11 edits
    1 copy
    2 adds
    2 deletes in trunk/Source/WebCore

Implement serializer = { attribute }
https://bugs.webkit.org/show_bug.cgi?id=163466

Reviewed by Darin Adler.

Fix the code generator to generate code for serializer = { attribute }.
In IDLParser, extend domSerializable with flags for the 'inherit', 'getter' and
'attribute' values (the first two are still unsupported). Fix parseSerializationPattern()
to detect these; it needs to create the domSerializable() now. Basic support
for isSerializableAttribute() is added (primitive types only).

GenerateSerializerFunction is fixed to output code for the serializable attributes
in the order specified in "serializer = {}", as specified in WebIDL.

Removed custom serialization for ClientRect and PerformanceTiming.

Other minor cleanup to always get $interfaceName from $interface->name, and to fix
ObjectConstructor.h to be included as <runtime/ObjectConstructor.h>.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSClientRectCustom.cpp: Removed.
  • bindings/js/JSPerformanceTimingCustom.cpp: Removed.
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):
(GenerateSerializerFunction):

  • bindings/scripts/IDLParser.pm:

(parseSerializerRest):
(parseSerializationPattern):
(parseSerializationAttributes):
(isSerializableAttribute):
(applyMemberList):

  • bindings/scripts/test/JS/JSTestNode.cpp:
  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionToJSONCaller):

  • bindings/scripts/test/JS/JSTestSerialization.cpp: Added.
  • bindings/scripts/test/JS/JSTestSerialization.h: Added.
  • bindings/scripts/test/TestObj.idl:
  • bindings/scripts/test/TestSerialization.idl: Copied from Source/WebCore/dom/ClientRect.idl.
  • dom/ClientRect.idl:
  • page/PerformanceTiming.idl:
1:56 PM Changeset in webkit [207377] by sbarati@apple.com
  • 4 edits
    1 add in trunk

Assertion failed under operationToLowerCase with a rope with zero length
https://bugs.webkit.org/show_bug.cgi?id=163314

Reviewed by Mark Lam.

JSTests:

  • stress/to-lower-case-intrinsic-on-empty-rope.js: Added.

(assert):
(returnRope.helper):
(returnRope):
(lower):

Source/JavaScriptCore:

There are some ways to get JSC to create empty rope strings. ToLowerCase
inside the DFG/FTL goes to the slow path when the argument is a rope.
operationToLowerCase was calling into a WTF string function that
assumed we are passing it a this value that has non-zero length.
However, we were calling it with a string that did have zero length.
To fix this, we make operationToLowerCase return the empty JSString
if it is going to make a string with zero length.

  • dfg/DFGOperations.cpp:
  • jsc.cpp:

(GlobalObject::finishCreation):
(functionIsRope):

8:04 AM Changeset in webkit [207376] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] Restore user agent quirk for Yahoo
https://bugs.webkit.org/show_bug.cgi?id=163481

Reviewed by Carlos Garcia Campos.

finance.yahoo.com is sending a mobile version in response to our standard user agent.

  • platform/gtk/UserAgentGtk.cpp:

(WebCore::urlRequiresMacintoshPlatform):

7:53 AM Changeset in webkit [207375] by Chris Dumez
  • 4 edits in trunk

Setting HTMLMediaElement.volume to NaN or Inf should throw a TypeError
https://bugs.webkit.org/show_bug.cgi?id=163472

Reviewed by Sam Weinig.

LayoutTests/imported/w3c:

Rebaseline w3c test now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/media-elements/volume_nonfinite-expected.txt:

Source/WebCore:

Setting HTMLMediaElement.volume to NaN or Inf should throw a TypeError:

This is because the attribute is of type double (not unrestricted double in the IDL).

Chrome and Firefox agree with the specification. WebKit throws an IndexSizeErr instead.

No new tests, rebaselined existing test.

  • html/HTMLMediaElement.idl:
7:24 AM Changeset in webkit [207374] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

CounterNode::resetRenderers is so inefficient.
https://bugs.webkit.org/show_bug.cgi?id=163480

Reviewed by Simon Fraser.

CounterNode::resetRenderers() removes all the associated renderers from this CounterNode
and sets the dirty bit on them.
This patch does all that in a loop, instead of traversing the linked tree on each removal.

No change in functionality.

  • rendering/CounterNode.cpp:

(WebCore::CounterNode::CounterNode):
(WebCore::CounterNode::~CounterNode):
(WebCore::CounterNode::nextInPreOrderAfterChildren):
(WebCore::CounterNode::lastDescendant):
(WebCore::CounterNode::addRenderer): These assertions do not seem super useful.
(WebCore::CounterNode::removeRenderer):
(WebCore::CounterNode::resetRenderers):
(WebCore::CounterNode::insertAfter):
(WebCore::CounterNode::removeChild):

  • rendering/CounterNode.h:
  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):
(WebCore::RenderCounter::RenderCounter):
(WebCore::RenderCounter::~RenderCounter):
(WebCore::RenderCounter::originalText):
(WebCore::updateCounters):
(WebCore::RenderCounter::invalidate): Deleted.

  • rendering/RenderCounter.h:
2:15 AM Changeset in webkit [207373] by commit-queue@webkit.org
  • 2 edits
    23 adds in trunk

[Modern Media Controls] macOS inline controls
https://bugs.webkit.org/show_bug.cgi?id=163444
<rdar://problem/27989473>

Patch by Antoine Quint <Antoine Quint> on 2016-10-15
Reviewed by Dean Jackson.

Source/WebCore:

Introducing the new MacOSMediaControls and MacOSInlineMediaControls classes. MacOSMediaControls is a MediaControls subclass
that adds specific buttons to the macOS platform and sets the layout traits to be macOS. This class has a new subclass,
MacOSInlineMediaControls, which sets the layout traits to also include inline and implements custom layout to drop
controls as necessary as the width of the controls varies. It also shows the volume slider when the mute button is hovered.

Tests: media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html

media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html
media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html
media/modern-media-controls/macos-media-controls/macos-media-controls.html

  • Modules/modern-media-controls/controls/macos-inline-media-controls.css: Added.

(.media-controls.mac.inline > .controls-bar):
(.media-controls.mac.inline > .controls-bar > *):
(.media-controls.mac.inline button):
(.media-controls.mac.inline button:active):
(.media-controls.mac.inline > .controls-bar button):
(.media-controls.mac.inline > .controls-bar,):
(.media-controls.mac.inline button.play-pause):
(.media-controls.mac.inline button.skip-back):
(.media-controls.mac.inline .scrubber.slider):
(.media-controls.mac.inline button.mute):
(.media-controls.mac.inline button.airplay):
(.media-controls.mac.inline button.pip):
(.media-controls.mac.inline button.tracks):
(.media-controls.mac.inline button.fullscreen):
(.media-controls.mac.inline .time-label):
(.media-controls.mac.inline .volume-slider-container):
(.media-controls.mac.inline .volume-slider-container:before):
(.media-controls.mac.inline .volume.slider):

  • Modules/modern-media-controls/controls/macos-inline-media-controls.js: Added.

(MacOSInlineMediaControls.prototype.layout):
(MacOSInlineMediaControls.prototype.handleEvent):

  • Modules/modern-media-controls/controls/macos-media-controls.js: Added.

(MacOSMediaControls):

LayoutTests:

Testing the properties of the new MacOSMediaControls and MacOSInlineMediaControls classes.

  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-buttons-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-constructor.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-controls-bar-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-layout.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-time-control-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-slider-visibility.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls-expected.txt: Added.
  • media/modern-media-controls/macos-inline-media-controls/macos-inline-media-dropping-controls.html: Added.
  • media/modern-media-controls/macos-media-controls/macos-media-controls-expected.txt: Added.
  • media/modern-media-controls/macos-media-controls/macos-media-controls.html: Added.
1:27 AM Changeset in webkit [207372] by Antti Koivisto
  • 9 edits
    2 adds in trunk

100% CPU on homedepot.com page
https://bugs.webkit.org/show_bug.cgi?id=163452
<rdar://problem/28730708>

Reviewed by Simon Fraser.

Source/WebCore:

The site has a keyframe animation on body. Currently this causes the animation to invalidate the
style of the entire document.

Animations use SyntheticStyleChange to invalidate elements when animation progresses and currently
that causes full subtree invalidation. However animation only ever affect individual elements and
the normal style resolution mechanism should be able to deal with things like inheritance as needed.

Test: fast/animation/animation-style-update-size.html

  • dom/Document.cpp:

(WebCore::Document::recalcStyle):

  • dom/Document.h:

(WebCore::Document::lastStyleUpdateSizeForTesting):

Testing support.

  • style/StyleTreeResolver.cpp:

(WebCore::Style::TreeResolver::resolveElement):

Don't force subtree style resolution for SyntheticStyleChange.

  • style/StyleUpdate.h:

(WebCore::Style::Update::size):

  • testing/Internals.cpp:

(WebCore::Internals::lastStyleUpdateSize):

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

LayoutTests:

  • fast/animation/animation-style-update-size-expected.txt: Added.
  • fast/animation/animation-style-update-size.html: Added.
12:22 AM Changeset in webkit [207371] by Joseph Pecoraro
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Cleanup parts of DebuggerManager
https://bugs.webkit.org/show_bug.cgi?id=163400

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/DebuggerManager.js:

(WebInspector.DebuggerManager.restoreBreakpointsSoon):

(WebInspector.DebuggerManager.prototype.get paused):
(WebInspector.DebuggerManager.prototype.get pauseReason):
(WebInspector.DebuggerManager.prototype.get pauseData):
(WebInspector.DebuggerManager.prototype.get callFrames):
(WebInspector.DebuggerManager.prototype.get activeCallFrame):
(WebInspector.DebuggerManager.prototype.set activeCallFrame):
Put simple accessors at the top.

(WebInspector.DebuggerManager.prototype.get allExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get breakpoints):
(WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DebuggerManager.prototype.isBreakpointEditable):
(WebInspector.DebuggerManager.prototype.get breakpointsDisabledTemporarily):
Group public breakpoint state and access methods.

(WebInspector.DebuggerManager.prototype.scriptForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get searchableScripts):
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
Group public script access methods.

(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.continueToLocation):
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
Group and modernize public methods that perform actions.

(WebInspector.DebuggerManager.prototype.nextBreakpointActionIdentifier):
Misc. methods.

(WebInspector.DebuggerManager.prototype.breakpointResolved):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
(WebInspector.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
Minor cleanup in protected and private methods.

  • UserInterface/Models/BreakpointAction.js:

(WebInspector.BreakpointAction):
Getting the next identifier is an action so it should be a function call.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
Remove unused parameter.

Oct 14, 2016:

9:18 PM Changeset in webkit [207370] by Simon Fraser
  • 2 edits in trunk/Tools

REGRESSION (r206973): Running "webkit-patch suggest-reviewers" throws an AttributeError: 'NoneType' object has no attribute 'full_name'
https://bugs.webkit.org/show_bug.cgi?id=163478

Reviewed by Daniel Bates.

Handle a None other in Contributor.eq.

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.eq):

7:19 PM Changeset in webkit [207369] by commit-queue@webkit.org
  • 13 edits
    2 adds in trunk

[JSC] op_negate should with any type
https://bugs.webkit.org/show_bug.cgi?id=162587

Patch by Benjamin Poulain <bpoulain@apple.com> on 2016-10-14
Reviewed by Saam Barati.

JSTests:

  • stress/arith-abs-to-arith-negate-range-optimizaton.js: Added.

Cover OSR Exits when converting Math.abs() into ArithNegate.

  • stress/arith-negate-on-various-types.js: Added.

Cover ArithNegate with all types.

Source/JavaScriptCore:

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
ArithNegate is quite simple. If the input is double, the output
is double. The other cases are set from the LLInt slow case.

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGIntegerRangeOptimizationPhase.cpp:

Tweak a bit the IntegerRangeOptimizationPhase when simplifying
ArithAbs to ArithNegate.
We should not do the conversion if the target nodes OSR Exits
on different input than the source node.

In particular, Checked ArithNegate exits on zero while
ArithAbs has not problem with it.
Unchecked ArithAbs() do not OSR Exit on INT_MIN, ArithNeg
should not either.

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileArithNegate):
(JSC::DFG::SpeculativeJIT::compileMathIC):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMathIC):
(JSC::FTL::DFG::LowerDFGToB3::compileArithNegate):

  • jit/JITNegGenerator.cpp:

(JSC::JITNegGenerator::generateFastPath):

  • jit/JITOperations.cpp:

Add result profiling in baseline to have types we can use
in DFG and FTL.

6:48 PM Changeset in webkit [207368] by Chris Dumez
  • 4 edits in trunk

Setting HTMLMediaElement.muted to the same value should not fire a volume change event
https://bugs.webkit.org/show_bug.cgi?id=163474

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

Rebaseline W3C test now that more checks are passing.

  • web-platform-tests/html/semantics/embedded-content/media-elements/event_volumechange-expected.txt:

Source/WebCore:

Setting HTMLMediaElement.muted to the same value should not fire a volume
change event:

Chrome and Firefox agree with the specification.

No new tests, rebaselined existing test.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):

5:40 PM Changeset in webkit [207367] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix Mac build.

  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

5:37 PM Changeset in webkit [207366] by dino@apple.com
  • 4 edits in trunk/Source/WebCore

Add Display P3 ColorSpace
https://bugs.webkit.org/show_bug.cgi?id=162880
<rdar://problem/28598564>

Reviewed by Sam Weinig.

Add a new ColorSpace for Display P3.

This will be tested once the Color class can create
objects that reference other color spaces.

  • platform/graphics/ColorSpace.h:
  • platform/graphics/cg/GraphicsContextCG.cpp:

(WebCore::displayP3ColorSpaceRef):

  • platform/graphics/cg/GraphicsContextCG.h:

(WebCore::cachedCGColorSpace):

5:37 PM Changeset in webkit [207365] by Brent Fulgham
  • 2 edits in trunk/Source/WebCore

[Win][Direct2D] Minor cleanups
https://bugs.webkit.org/show_bug.cgi?id=162953

Reviewed by Dean Jackson.

Code cleanup. No change in behavior.

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::frameIsCompleteAtIndex):
(WebCore::ImageDecoder::frameBytesAtIndex):

5:11 PM Changeset in webkit [207364] by achristensen@apple.com
  • 4 edits in trunk/Source

Fix CMake build.

  • PlatformMac.cmake:
5:10 PM Changeset in webkit [207363] by jfbastien@apple.com
  • 4 edits
    1 copy
    22 adds
    1 delete in trunk

Basic WebAssembly testing

Create a small DSL in JavaScript which can build WebAssembly binary modules based on the JSON description of the format as described in:
https://github.com/WebAssembly/design/blob/master/BinaryEncoding.md

This DSL can then be used to write small text description of valid and invalid WebAssembly binaries, making testing the JSC implementation much easier.

Details and example in README.md.

Basic WebAssembly testing
https://bugs.webkit.org/show_bug.cgi?id=163267

Reviewed by Keith Miller.

JSTests:

  • stress/wasm/wasm.json: Removed.
  • wasm.yaml: Added.
  • wasm/Builder.js: Added.

(const._isValidValue):
(const._BuildWebAssemblyBinary):
(export.default.Builder):
(export.default.Builder.prototype.setChecked):
(export.default.Builder.prototype.setPreamble):
(export.default.Builder.prototype._registerSectionBuilders.switch.case.string_appeared_here.this.section):
(export.default.Builder.prototype._registerSectionBuilders.this.Unknown):
(export.default.Builder.prototype._registerSectionBuilders):
(export.default.Builder.prototype._addSection):
(export.default.Builder.prototype.optimize):
(export.default.Builder.prototype.json):
(export.default.Builder.prototype.AsmJS):
(export.default.Builder.prototype.WebAssembly):

  • wasm/LowLevelBinary.js: Added.

(const._getterRangeCheck):
(const._hexdump):
(export.default.LowLevelBinary):
(export.default.LowLevelBinary.prototype.newPatchable):
(export.default.LowLevelBinary.prototype.hexdump):
(export.default.LowLevelBinary.prototype._maybeGrow):
(export.default.LowLevelBinary.prototype._push8):
(export.default.LowLevelBinary.prototype.uint8):
(export.default.LowLevelBinary.prototype.uint16):
(export.default.LowLevelBinary.prototype.uint32):
(export.default.LowLevelBinary.prototype.varuint):
(export.default.LowLevelBinary.prototype.varint):
(export.default.LowLevelBinary.prototype.varuint7):
(export.default.LowLevelBinary.prototype.string):
(export.default.LowLevelBinary.prototype.getSize):
(export.default.LowLevelBinary.prototype.getUint8):
(export.default.LowLevelBinary.prototype.getUint16):
(export.default.LowLevelBinary.prototype.getUint32):
(export.default.LowLevelBinary.prototype.getVaruint):
(export.default.LowLevelBinary.prototype.getVarint):
(export.default.LowLevelBinary.prototype.getVaruint7):
(export.default.LowLevelBinary.prototype.getString):
(PatchableLowLevelBinary):
(PatchableLowLevelBinary.prototype._push8):
(PatchableLowLevelBinary.prototype.apply):

  • wasm/README.md: Added.
  • wasm/WASM.js: Added.
  • wasm/assert.js: Added.

(export.const.notUndef):
(export.const.eq):
(export.const.ge):
(export.const.throwsError):
(export.const.throwsRangeError):

  • wasm/generate-wasmops-header.js: Renamed from JSTests/stress/wasm/generate-wasmops-header.js.
  • wasm/self-test/test_BuilderJSON.js: Added.

(const.assertOpThrows):
(EmptyModule):
(CustomMagicNumber):
(CustomVersion):
(CustomSection):
(CustomSectionAllBytes):
(CustomSectionInvalidByte):
(TwoCustomSections):
(EmptyCodeSection):
(CodeSectionWithEmptyFunction):
(CodeSectionWithEmptyFunctionWithParameters):
(InvalidFunctionParameters):
(SimpleFunction):
(TwoSimpleFunctions):
(TwoBuildersAtTheSameTime):
(CheckedOpcodeArgumentsTooMany):
(CheckedOpcodeArgumentsNotEnough):
(CallNoArguments):
(CallInvalid):
(I32ConstInvalid):
(F32ConstInvalid):
(F64ConstInvalid):
(CallManyFromStack):
(OpcodeAdd):
(OpcodeUnreachable):
(OpcodeUnreachableCombinations):
(OpcodeSelect):

  • wasm/self-test/test_BuilderWebAssembly.js: Added.

(EmptyModule):
(CustomSection):
(Basic):

  • wasm/self-test/test_LowLevelBinary_encode.js: Added.
  • wasm/self-test/test_LowLevelBinary_string.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint16.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint32.js: Added.
  • wasm/self-test/test_LowLevelBinary_uint8.js: Added.
  • wasm/self-test/test_LowLevelBinary_varint.js: Added.
  • wasm/self-test/test_LowLevelBinary_varuint.js: Added.
  • wasm/self-test/test_LowLevelBinary_varuint7.js: Added.
  • wasm/self-test/test_WASM.js: Added.
  • wasm/test.sh: Added.
  • wasm/utilities.js: Added.

(const._read.filename.switch):
(const._load.filename.switch):
(const._json.filename.switch):

  • wasm/wasm.json: Added.

Tools:

  • Scripts/run-javascriptcore-tests:

(runJSCStressTests): run wasm.yaml tests

  • Scripts/run-jsc-stress-tests: add a WebAssembly-specific runner
4:56 PM Changeset in webkit [207362] by andersca@apple.com
  • 6 edits in trunk/Source

Pass on networking settings to the PKPaymentRequest
https://bugs.webkit.org/show_bug.cgi?id=163462
rdar://problem/28567629

Reviewed by Dan Bernstein.

Source/WebCore:

Add new SPI.

  • platform/spi/cocoa/PassKitSPI.h:

Source/WebKit2:

  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.h:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:

(WebKit::toPKPaymentRequest):

  • UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:

(WebKit::WebPaymentCoordinatorProxy::platformShowPaymentUI):

4:37 PM Changeset in webkit [207361] by dino@apple.com
  • 22 edits
    1 add in trunk/Source/WebCore

CSS parsing should use Color not RGBA32
https://bugs.webkit.org/show_bug.cgi?id=163423
<rdar://problem/28766903>

Reviewed by Simon Fraser.

Re-landing this after it was rolled out in https://trac.webkit.org/r207342.

In order to allow CSS to use the ExtendedColor variant of
Color, we need to stop using RGBA32. This is a fairly big
change that goes through all the places in the parser
related to colors, and moves them from RGBA32 to Color.

No change in functionality, so covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Add the new ColorHash.h file.
  • css/CSSPrimitiveValue.cpp: CSSPrimitiveValue now can hold a Color*

rather than an unsigned int for colors.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):

  • css/CSSPrimitiveValue.h: Move to Color* and also use some

nullptrs.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add a new inline
constructor.

  • css/CSSValuePool.cpp: Move to Color.

(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::createColorValue):

  • css/CSSValuePool.h: Change the ColorValueCache to a new type.
  • css/StyleResolver.cpp: Move to Color.

(WebCore::StyleResolver::colorFromPrimitiveValue):

  • css/parser/CSSParser.cpp:

(WebCore::parseColorValue):
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorFromString):
(WebCore::CSSParser::parseSystemColor):
(WebCore::fastParseColorInternal):
(WebCore::CSSParser::fastParseColor):
(WebCore::CSSParser::parseColorFromValue):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::fastParseColorInternal):
(WebCore::CSSParserFastPaths::parseColor):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeColor):

  • css/parser/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):

  • editing/EditingStyle.cpp:

(WebCore::cssValueToColor):
(WebCore::textColorFromStyle):
(WebCore::backgroundColorFromStyle):
(WebCore::rgbaBackgroundColorInEffect):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::isTransparentColorValue):
(WebCore::cssValueToRGBA): Deleted.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::colorPropertyValueForNode):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::parseAttribute):

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasRenderingContext2D.cpp: Ditto, but leave a FIXME to

remind myself to come back when colorWithOverrideAlpha has been updated.
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::setShadowColor):
(WebCore::CanvasRenderingContext2D::setShadow):

  • html/canvas/CanvasStyle.cpp:

(WebCore::isCurrentColorString):
(WebCore::parseColor):
(WebCore::currentColor):
(WebCore::parseColorOrCurrentColor):
(WebCore::CanvasStyle::createFromString):
(WebCore::CanvasStyle::createFromStringWithOverrideAlpha):

  • html/canvas/CanvasStyle.h:
  • svg/SVGColor.cpp:

(WebCore::SVGColor::colorFromRGBColorString):

  • platform/graphics/Color.h: Add new constructors for the special

empty and deleted Color values used in HashTables.
(WebCore::Color::Color):
(WebCore::Color::isHashTableDeletedValue):
(WebCore::Color::asUint64): New accessor to get the raw uint64_t value.

  • platform/graphics/ColorHash.h: Added. Implement the traits for a Color HashTable.

(WTF::ColorHash::hash):
(WTF::ColorHash::equal):
(WTF::HashTraits<WebCore::Color>::emptyValue):
(WTF::HashTraits<WebCore::Color>::constructDeletedValue):
(WTF::HashTraits<WebCore::Color>::isDeletedValue):

4:22 PM Changeset in webkit [207360] by keith_miller@apple.com
  • 11 edits
    2 adds in trunk

B3 needs a special WasmAddress Opcode
https://bugs.webkit.org/show_bug.cgi?id=163394

Reviewed by Filip Pizlo.

Source/JavaScriptCore:

This patch adds support for WasmAddress. WasmAddress will be used by
Wasm to compute the address of a memory operation from the pinned
base pointer. WasmAddress takes an IntPtr so we can avoid emitting
unnecessary Move32s in Air. This could happen in the following case:

@ptr = Trunc(...)
WasmAddress(@ptr, pinnedGPR)
...
PatchPoint(...) Do Wasm call
WasmAddress(@ptr, pinnedGPR)
...

In this case we will not be able to CSE the WasmAddresses since the
call writes to pinnedGPR. Thus if WasmAddress took an Int32 we would need
to emit an extra Move32 at the second WasmAddress to ensure it saw a proper
32-bit value. If Wasm ensures that there there is a leading ZExt32 then
the duplicated moves become unnecessary.

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • b3/B3LowerToAir.cpp:

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

  • b3/B3Opcode.h:
  • b3/B3Validate.cpp:
  • b3/B3Value.cpp:

(JSC::B3::Value::effects):

  • b3/B3WasmAddressValue.cpp: Added.

(JSC::B3::WasmAddressValue::~WasmAddressValue):
(JSC::B3::WasmAddressValue::dumpMeta):
(JSC::B3::WasmAddressValue::cloneImpl):
(JSC::B3::WasmAddressValue::WasmAddressValue):

  • b3/B3WasmAddressValue.h: Added.
  • b3/testb3.cpp:

(JSC::B3::testWasmAddress):
(JSC::B3::run):

Websites/webkit.org:

Update the b3 docs for the new WasmAddress opcode.

  • docs/b3/intermediate-representation.html:
4:10 PM Changeset in webkit [207359] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Dragging to delete a Breakpoint should never trigger a ContentView change
https://bugs.webkit.org/show_bug.cgi?id=163403
<rdar://problem/28762930>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Views/BreakpointTreeElement.js:

(WebInspector.BreakpointTreeElement.prototype.ondelete):
Signal when a breakpoint tree element will be going away because it was
deleted via the keyboard operation within the TreeOutline. This is a dirty
way to do the signal but we remove BreakpointTreeElements asynchronously
when the Breakpoint actually gets removed from the backend.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
Deselect a BreakpointTreeElement if it was deleted in a way other then
the delete keyboard shortcut. This ensures another TreeElement selection
doesn't force ContentView changes.

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

Web Inspector: Improve debugger highlight when inside of getter/setter calls
https://bugs.webkit.org/show_bug.cgi?id=163428
<rdar://problem/28769061>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When in the middle of a member expression at a '.' or '[' get the best member
expression range.

  • UserInterface/Views/TextEditor.js:

(WebInspector.TextEditor.prototype._updateExecutionRangeHighlight):
Include the character at the current position. This is useful since AST Nodes
don't give us token info but we would like to know if we are at particular tokens.

3:42 PM Changeset in webkit [207357] by Brent Fulgham
  • 24 edits in trunk/Source/WebCore

[Win][Direct2D] Implement basic SVG support
https://bugs.webkit.org/show_bug.cgi?id=163349

Reviewed by Brent Fulgham.

Direct2D needs access to the target graphics context when generating bitmap
images so that it can properly match pixel format and other settings.

Add implementations for a number of drawing primitives used in the SVG
test cases. Correct some differences between CG and Direct2D for drawing
different primitives.

No new tests. Tested by existing 'svg' tests.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::frameImageAtIndex): Take optional target graphics
context. Also pass the graphics context to the image decoder.
(WebCore::BitmapImage::nativeImage): Accept an optional target context.
(WebCore::BitmapImage::nativeImageForCurrentFrame): Ditto.
(WebCore::BitmapImage::draw): Pass target graphics context to the
'frameImageAtIndex' method.

  • platform/graphics/BitmapImage.h:
  • platform/graphics/Image.h:
  • platform/graphics/ImageBuffer.cpp:

(WebCore::ImageBuffer::create): Moved from header. Add create function that
takes an optional GraphicsContext argument.

  • platform/graphics/ImageBuffer.h:
  • platform/graphics/ImageFrameCache.cpp: Add missing include needed to build

under Direct2D.

  • platform/graphics/ImageSource.cpp:

(WebCore::ImageSource::setDecoderTargetContext): Added.
(WebCore::ImageSource::setRenderTarget): Deleted.

  • platform/graphics/ImageSource.h:
  • platform/graphics/Pattern.h:
  • platform/graphics/win/GraphicsContextDirect2D.cpp:

(WebCore::GraphicsContextPlatformPrivate::endDraw): Log error state instead of crashing
each time.
(WebCore::GraphicsContext::drawEllipse): Ellipses are defined in D2D as a center, an
X-radius, and a Y-radius.
(WebCore::GraphicsContext::applyStrokePattern):
(WebCore::GraphicsContext::applyFillPattern):
(WebCore::GraphicsContext::clearRect): Use 'Clear' function if possible. Don't clear
anything if the clear rect is outside the drawing area.
(WebCore::GraphicsContext::strokeRect): Provide implementation (needed by SVG).
(WebCore::GraphicsContext::platformFillEllipse): Ellipses are defined in D2D as
a center, an X-radius, and a Y-radius.
(WebCore::GraphicsContext::platformStrokeEllipse): Ditto.

  • platform/graphics/win/ImageBufferDirect2D.cpp:

(WebCore::ImageBuffer::createCompatibleBuffer): Accept optional GraphicsContext argument.
(WebCore::ImageBuffer::ImageBuffer): Ditto.

  • platform/graphics/win/ImageDecoderDirect2D.cpp:

(WebCore::ImageDecoder::setTargetContext): Renamed from 'setRenderTarget'.
(WebCore::ImageDecoder::createFrameImageAtIndex): Take optional GraphicsContext argument.
(WebCore::ImageDecoder::setRenderTarget): Deleted.

  • platform/graphics/win/ImageDecoderDirect2D.h:
  • platform/graphics/win/ImageDirect2D.cpp:

(WebCore::BitmapImage::setRenderTarget): Deleted.

  • platform/graphics/win/NativeImageDirect2D.cpp: Add missing include.
  • platform/graphics/win/PatternDirect2D.cpp:

(WebCore::Pattern::createPlatformPattern): Revise for new signature.

  • rendering/FilterEffectRenderer.cpp:

(WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Pass GraphicsContext
to ImageBuffer constructor.
(WebCore::FilterEffectRendererHelper::beginFilterEffect): Pass target context to
filter when allocating backing store.

  • rendering/FilterEffectRenderer.h: Add GraphicsContext as argument to constructor.
  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::hasFilterThatIsPainting): Supply GraphicsContext argument when
building new FilterEffectRenderer and helper.
(WebCore::RenderLayer::setupFilters): Ditto.

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::nativeImageForCurrentFrame): Revise to take optional GraphicsContext
argument.
(WebCore::SVGImage::nativeImage): Ditto.

  • svg/graphics/SVGImage.h:
  • svg/graphics/SVGImageForContainer.cpp:

(WebCore::SVGImageForContainer::nativeImageForCurrentFrame): Ditto.

  • svg/graphics/SVGImageForContainer.h:
3:25 PM Changeset in webkit [207356] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Unused Breakpoint getter/setter for "id" - should be "identifier"
https://bugs.webkit.org/show_bug.cgi?id=163395

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

  • UserInterface/Models/Breakpoint.js:

(WebInspector.Breakpoint.prototype.get identifier): Renamed.
(WebInspector.Breakpoint.prototype.set identifier): Renamed.
The only user is DebuggerManager which sets and gets. Previously
it was unexpectedly setting a direct property on the Breakpoint
instead of using these methods to set the member variable.

3:16 PM Changeset in webkit [207355] by Chris Dumez
  • 36 edits
    2 deletes in trunk

Unreviewed, rolling out r207319.

Regressed Dromaeo and may have caused crashes under
GuardMalloc (rdar://problem/28780835)

Reverted changeset:

"[Web IDL] Add support for [SameObject] extended attribute"
https://bugs.webkit.org/show_bug.cgi?id=163414
http://trac.webkit.org/changeset/207319

3:10 PM Changeset in webkit [207354] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Remove uses of delete in SourceCodeTextEditor
https://bugs.webkit.org/show_bug.cgi?id=163379

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Timothy Hatcher.

Remove uses of delete and better group member variables.
One of the deletes was deleting an incorrect property.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointRemoved):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointMoved):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
(WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):

2:52 PM Changeset in webkit [207353] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r203602.

11:45 AM Changeset in webkit [207352] by andersca@apple.com
  • 11 edits
    1 delete in trunk/Source

Clean up BackForwardClient
https://bugs.webkit.org/show_bug.cgi?id=163454

Reviewed by Sam Weinig.

Source/WebCore:

Remove iOS specific member functions that are only used from WebKit.

  • history/BackForwardClient.h:
  • loader/EmptyClients.cpp:

Source/WebKit/mac:

  • History/BackForwardList.h:

Remove override keywords.

  • History/BackForwardList.mm:

(BackForwardList::clearAllPageCaches): Deleted.
Remove this, it's no longer used.

  • WebView/WebView.mm:

(-[WebView _clearBackForwardCache]): Deleted.

  • WebView/WebViewPrivate.h:

Remove SPI that's no longer used by anyone.

Source/WebKit2:

Remove empty iOS only stubs.

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebBackForwardListProxy.h:
  • WebProcess/WebPage/ios/WebBackForwardListProxyIOS.mm: Removed.
11:29 AM Changeset in webkit [207351] by Michael Catanzaro
  • 2 edits in trunk

[CMake] Private/unsupported build options should be marked as advanced
https://bugs.webkit.org/show_bug.cgi?id=163451

Reviewed by Carlos Garcia Campos.

When checking to decide whether to mark an option as advanced, the conditional checks
whether _WEBKIT_AVAILABLE_OPTIONS_IS_PUBLIC_${_name} is defined. It is always defined. We
need to check its value instead.

  • Source/cmake/WebKitFeatures.cmake:
11:26 AM Changeset in webkit [207350] by Simon Fraser
  • 5 edits in trunk

Annotate bots in contributors.json and don't show them on webkit.org/team
https://bugs.webkit.org/show_bug.cgi?id=163317

Reviewed by Daniel Bates.

Tools:

Add "class" : "bot" for non-humans in contributors.json and round-trip it.

  • Scripts/webkitpy/common/config/committers.py:

(Contributor.init):
(Contributor.as_dict):
(Bot):
(Bot.init):
(CommitterList.load_json):

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

Websites/webkit.org:

Don't show bots.

  • wp-content/themes/webkit/team.php:
11:26 AM Changeset in webkit [207349] by Simon Fraser
  • 2 edits in trunk/Tools

Fix printing in WK2 MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=163455

Reviewed by Tim Horton.

Call the basic -_printOperationWithPrintInfo: which doens't require a frame argument.

  • MiniBrowser/mac/WK2BrowserWindowController.m:

(-[WK2BrowserWindowController printWebView:]):

11:16 AM Changeset in webkit [207348] by beidson@apple.com
  • 2 edits in trunk/Source/WebKit2

Enable Gamepads by default in WK2.
https://bugs.webkit.org/show_bug.cgi?id=163447

Rubberstamped by Sam Weinig.

  • Shared/WebPreferencesDefinitions.h:
11:14 AM Changeset in webkit [207347] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk

test262: @isConstructor incorrectly thinks Math.cos is a constructor
https://bugs.webkit.org/show_bug.cgi?id=163437

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Saam Barati.

JSTests:

  • stress/is-constructor.js: Added.

(assert):
(prototype.assert):
New test to cover the @isConstructor builtin.

  • test262.yaml:

Test now passes.

Source/JavaScriptCore:

  • runtime/JSFunction.cpp:

(JSC::JSFunction::getConstructData):
By default, Host JSFunctions are not constructable. They get
the default callHostFunctionAsConstructor native constructor.
When getting construct data we can return ConstructType::None
in these cases instead of indicating it might be constructable
and later throwing an exception when construction is attempted.

11:06 AM Changeset in webkit [207346] by barraclough@apple.com
  • 13 edits in trunk/Source/WebKit2

Add API to restrict WebKit processes to background priority
https://bugs.webkit.org/show_bug.cgi?id=163363

Reviewed by Anders Carlson.

Add API on _WKProcessPoolConfiguration to flag a process pool as 'alwaysRunsAtBackgroundPriority'.
WebContent and Networking processes associated with that pool will only run a background priority,
when they otherwise would have run at foreground priority.

  • UIProcess/API/APIProcessPoolConfiguration.h:
    • Add m_alwaysRunsAtBackgroundPriority flag to pool configuration object.
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.h:
  • UIProcess/API/Cocoa/_WKProcessPoolConfiguration.mm:

(-[_WKProcessPoolConfiguration alwaysRunsAtBackgroundPriority]):
(-[_WKProcessPoolConfiguration setAlwaysRunsAtBackgroundPriority:]):

  • Expose new configuration property through API.
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::alwaysRunsAtBackgroundPriority):

  • UIProcess/Network/NetworkProcessProxy.h:
    • Support ProcessThrottlerClient interface to check if alwaysRunsAtBackgroundPriority is set.
  • UIProcess/ProcessThrottler.cpp:

(WebKit::ProcessThrottler::assertionState):

  • When determining whether to take a foreground exception check alwaysRunsAtBackgroundPriority.
  • UIProcess/ProcessThrottlerClient.h:
    • Add interface to access alwaysRunsAtBackgroundPriority state of WebProcess of NetworkProcess.
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::WebProcessPool):

  • UIProcess/WebProcessPool.h:
    • Add m_alwaysRunsAtBackgroundPriority, set by configuration.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::alwaysRunsAtBackgroundPriority):

  • UIProcess/WebProcessProxy.h:
    • Support ProcessThrottlerClient interface to check if alwaysRunsAtBackgroundPriority is set.
10:14 AM Changeset in webkit [207345] by andersca@apple.com
  • 16 edits
    2 moves in trunk/Source

Move BackForwardList from WebCore to WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=163418

Reviewed by Tim Horton.

Source/WebCore:

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • history/BackForwardController.cpp:

(WebCore::BackForwardController::BackForwardController):

  • history/BackForwardController.h:
  • loader/EmptyClients.cpp:

(WebCore::fillWithEmptyClients):

  • page/Page.cpp:

(WebCore::Page::Page):

Source/WebKit:

  • WebKit.xcodeproj/project.pbxproj:

Source/WebKit/mac:

  • History/BackForwardList.h: Renamed from Source/WebCore/history/BackForwardList.h.

(BackForwardList::create):
(BackForwardList::webView):

  • History/BackForwardList.mm: Renamed from Source/WebCore/history/BackForwardList.cpp.

(BackForwardList::BackForwardList):
(BackForwardList::close):
(BackForwardList::containsItem):

  • History/WebBackForwardList.mm:

(kit):
(-[WebBackForwardList initWithBackForwardList:]):
(-[WebBackForwardList setPageCacheSize:]):
(-[WebBackForwardList pageCacheSize]):

  • History/WebBackForwardListInternal.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:
  • WebView/WebFrameView.mm:
  • WebView/WebView.mm:

(-[WebView _commonInitializationWithFrameName:groupName:]):
(-[WebView initSimpleHTMLDocumentWithStyle:frame:preferences:groupName:]):

9:23 AM Changeset in webkit [207344] by Ryan Haddad
  • 3 edits
    1 delete in trunk

Unreviewed, rolling out r207322.

This change caused JSC test failures

Reverted changeset:

"Fix Array.prototype.splice ES6 compliance."
https://bugs.webkit.org/show_bug.cgi?id=163372
http://trac.webkit.org/changeset/207322

9:23 AM Changeset in webkit [207343] by Manuel Rego Casasnovas
  • 3 edits
    2 adds in trunk

[css-grid] Changing the argument on fit-content() doesn't cause the grid to be relayout
https://bugs.webkit.org/show_bug.cgi?id=163434

Reviewed by Sergio Villar Senin.

Source/WebCore:

When fit-content() was implemented a new attribute
m_fitContentTrackBreadth was added to GridTrackSize.
However we forgot to include it in the == operator implementation,
so we were missing the changes on that value.

Now if you change the argument of a fit-content() track,
the track size is properly recomputed.

Test: fast/css-grid-layout/grid-change-fit-content-argument.html

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::operator==): Check m_fitContentTrackBreadth.

LayoutTests:

  • fast/css-grid-layout/grid-change-fit-content-argument-expected.txt: Added.
  • fast/css-grid-layout/grid-change-fit-content-argument.html: Added.
9:17 AM Changeset in webkit [207342] by Ryan Haddad
  • 22 edits
    1 delete in trunk/Source/WebCore

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

This change caused an existing LayoutTest to fail on all
platforms (Requested by ryanhaddad on #webkit).

Reverted changeset:

"CSS parsing should use Color not RGBA32"
https://bugs.webkit.org/show_bug.cgi?id=163423
http://trac.webkit.org/changeset/207317

Patch by Commit Queue <commit-queue@webkit.org> on 2016-10-14

8:58 AM Changeset in webkit [207341] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

JSON.parse should not modify frozen objects.
https://bugs.webkit.org/show_bug.cgi?id=163430

Reviewed by Saam Barati.

JSTests:

  • stress/json-parse-on-frozen-object.js: Added.

Source/JavaScriptCore:

The ES6 spec for JSON.parse (https://tc39.github.io/ecma262/#sec-json.parse and
https://tc39.github.io/ecma262/#sec-internalizejsonproperty) states that it uses
CreateDataProperty() (https://tc39.github.io/ecma262/#sec-createdataproperty) to
set values returned by a reviver. The spec for CreateDataPropertyOrThrow states:

"This abstract operation creates a property whose attributes are set to the same
defaults used for properties created by the ECMAScript language assignment
operator. Normally, the property will not already exist. If it does exist and is
not configurable or if O is not extensible, DefineOwnProperty will return
false."

Note: CreateDataProperty() will not throw a TypeError.

Since the properties of frozen objects are not extensible, not configurable, and
not writeable, JSON.parse should fail to write to any frozen objects. Similarly,
JSON.parse should fail to delete properties in frozen objects.

In JSON.parse(), we previously write to array elements using the form of
putDirectIndex() that uses mode PutDirectIndexLikePutDirect. This makes it so
that the write (i.e. put) is always successful. We've now fixed this to use
PutDirectIndexShouldNotThrow mode instead, which will fail to put the element if
the array is not writeable.

Also changed Walker::walk() to use the version of methodTable() that takes a VM&
since the VM& is already available.

  • runtime/JSONObject.cpp:

(JSC::Walker::walk):

8:39 AM Changeset in webkit [207340] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

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

WebKit2.ProvisionalURLAfterWillSendRequestCallback is timing
out on Mac bots (Requested by youenn on #webkit).

Reverted changeset:

"Add ProvisionalURLAfterWillSendRequestCallback.cpp and
ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp to Mac
builds"
https://bugs.webkit.org/show_bug.cgi?id=163440
http://trac.webkit.org/changeset/207335

8:39 AM Changeset in webkit [207339] by Antti Koivisto
  • 8 edits in trunk/Source/WebCore

Share inline stylesheets between shadow trees
https://bugs.webkit.org/show_bug.cgi?id=163353

Reviewed by Ryosuke Niwa and Andreas Kling.

If shadow trees have identical inline stylesheets the data structures can be shared.
In future this will also allow sharing style resolvers.

  • css/CSSStyleSheet.cpp:

(WebCore::CSSStyleSheet::createInline):

Move StyleSheetContents construction to the client.

  • css/parser/CSSParserMode.h:

(WebCore::CSSParserContextHash::hash):
(WebCore::CSSParserContextHash::equal):
(WTF::HashTraits<WebCore::CSSParserContext>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::isDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::emptyValue):

Make CSSParserContext hashable.

  • dom/ExtensionStyleSheets.cpp:

(WebCore::createExtensionsStyleSheet):
(WebCore::ExtensionStyleSheets::pageUserSheet):
(WebCore::ExtensionStyleSheets::updateInjectedStyleSheetCache):

Don't use CSSStyleSheet::createInline, these are not really inline stylesheets.
Code cleanups.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::parserContextForForElement):
(WebCore::makeInlineStyleSheetCacheKey):
(WebCore::inlineStyleSheetCache):

Implement a simple cache for sharing stylesheets with identical text and context.

(WebCore::InlineStyleSheetOwner::createSheet):
(WebCore::InlineStyleSheetOwner::clearCache):

  • dom/InlineStyleSheetOwner.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):

7:56 AM Changeset in webkit [207338] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[Mac] Allow throttling of background tabs that have media elements with no audible audio
https://bugs.webkit.org/show_bug.cgi?id=163402
<rdar://problem/28056151>

Reviewed by Gavin Barraclough.

Allow throttling of background tabs that have media elements with no audible audio.
We were taking an media assertion from the PageThrottler as soon as there was a
media element playing on the page. This prevented throttling of background tabs
even if those media elements had no audible audio, which was unfortunate.

We now have more fine-grained rules for when HTMLMediaElement should take an
assertion. I also added release logging to help debug such issues in the
future.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::setMuted):
(WebCore::HTMLMediaElement::updateVolume):
(WebCore::HTMLMediaElement::updatePlayState):
(WebCore::HTMLMediaElement::updateAudioAssertionState):
(WebCore::HTMLMediaElement::effectiveMuted): Deleted.

  • html/HTMLMediaElement.h:
7:09 AM Changeset in webkit [207337] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[Readable Streams API] Cleanup patch, fix small inconsistencies
https://bugs.webkit.org/show_bug.cgi?id=163329

Patch by Romain Bellessort <romain.bellessort@crf.canon.fr> on 2016-10-14
Reviewed by Youenn Fablet.

Cleanup patch, fixed 3 small inconsistences between implementation and spec.

No change in behaviour.

  • Modules/streams/ReadableStream.idl: Added optional parameter in getReader.
  • Modules/streams/ReadableStreamDefaultController.js:

(error): Call readableStreamDefaultControllerError instead of readableStreamError.

  • Modules/streams/ReadableStreamInternals.js: Added missing ASSERT in readableStreamDefaultControllerCallPullIfNeeded.
4:47 AM Changeset in webkit [207336] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

http://trac.webkit.org/changeset/207330 broke Mac Windows build
https://bugs.webkit.org/show_bug.cgi?id=163442

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14

  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::toPlatformRequestCachePolicy): Do not explicitly use CFURLRequestCachePolicy enumeration values.

3:23 AM Changeset in webkit [207335] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add ProvisionalURLAfterWillSendRequestCallback.cpp and ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp to Mac builds
https://bugs.webkit.org/show_bug.cgi?id=163440

Unreviewed.

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Adding new test files introduced in

https://bugs.webkit.org/show_bug.cgi?id=146306 patch.

3:04 AM Changeset in webkit [207334] by commit-queue@webkit.org
  • 7 edits in trunk

test262: Failure with RegExp.prototype.compile when pattern is undefined
https://bugs.webkit.org/show_bug.cgi?id=163431

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Yusuke Suzuki.

JSTests:

  • test262.yaml:

Source/JavaScriptCore:

If pattern is undefined let P be the empty String.
https://tc39.github.io/ecma262/#sec-regexpinitialize

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncCompile):

LayoutTests:

  • js/regexp-compile-expected.txt:
  • js/script-tests/regexp-compile.js:
2:49 AM Changeset in webkit [207333] by commit-queue@webkit.org
  • 9 edits in trunk/LayoutTests

REGRESSION (r207299): media/modern-media-controls/pip-button/pip-button.html and media/modern-media-controls/skip-back-button/skip-back-button.html are flaky
https://bugs.webkit.org/show_bug.cgi?id=163411

Patch by Antoine Quint <Antoine Quint> on 2016-10-14
Reviewed by Antoine Quint.

Ensure all buttons have their required images loaded before we check on the mask-image set through CSS.

  • media/modern-media-controls/aspect-ratio-button/aspect-ratio-button.html:
  • media/modern-media-controls/forward-button/forward-button.html:
  • media/modern-media-controls/fullscreen-button/fullscreen-button.html:
  • media/modern-media-controls/mute-button/mute-button.html:
  • media/modern-media-controls/pip-button/pip-button.html:
  • media/modern-media-controls/rewind-button/rewind-button.html:
  • media/modern-media-controls/skip-back-button/skip-back-button.html:
  • media/modern-media-controls/tracks-button/tracks-button.html:
2:17 AM Changeset in webkit [207332] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Cairo] GraphicsContext3D::ImageExtractor fails to extract images
https://bugs.webkit.org/show_bug.cgi?id=163439

Reviewed by Carlos Garcia Campos.

In the Cairo implementation of GraphicsContext3D::ImageExtractor,
don't check for frame completeness at index 0. This information
is now cached only after the frame for that index is decoded and
marked as completed, which is done after this check.

Becuase of this the current check forces extractImage() to return
early and abort WebGL texture uploads from image sources.

This bug was most likely exposed after the refactoring in r206481.
https://trac.webkit.org/changeset/206481

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::ImageExtractor::extractImage):

2:04 AM Changeset in webkit [207331] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

MediaResourceLoader should use CachedResource::ressourceError to do CORS checks
https://bugs.webkit.org/show_bug.cgi?id=163279

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14
Reviewed by Darin Adler.

Covered by existing tests.

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResource::responseReceived): Making use of CachedResource::ressourceError to detect CORS failures.

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::shouldUpdateCachedResourceWithCurrentRequest): Activating loader options checks
before reusing the resource.
(WebCore::isResourceSuitableForDirectReuse): Disabling direct reuse of MediaResource since reuse of raw
resources does not work yet for media resources.

1:47 AM Changeset in webkit [207330] by commit-queue@webkit.org
  • 16 edits
    20 adds
    2 deletes in trunk

Make NetworkCache aware of fetch cache mode
https://bugs.webkit.org/show_bug.cgi?id=163332

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-14
Reviewed by Antti Koivisto.

LayoutTests/imported/w3c:

Splitting web-platform-tests/fetch/api/request/request-cache.html in several files so that running the individual test files
is more manageable.

  • web-platform-tests/fetch/api/request/request-cache-default-conditional-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-default-conditional.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-default-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-default.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-expected.txt: Removed.
  • web-platform-tests/fetch/api/request/request-cache-force-cache-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-force-cache.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-cache-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-cache.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-store-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-no-store.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-only-if-cached.html: Added.
  • web-platform-tests/fetch/api/request/request-cache-reload-expected.txt: Added.
  • web-platform-tests/fetch/api/request/request-cache-reload.html: Added.
  • web-platform-tests/fetch/api/request/request-cache.html: Removed.
  • web-platform-tests/fetch/api/request/request-cache.js: Added.

(base_path):
(make_url):
(expected_status):
(expected_response_text):
(server_state):
(run_next_step):
(make_test):

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/request/request-cache-default-conditional.html

imported/w3c/web-platform-tests/fetch/api/request/request-cache-default.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-force-cache.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-cache.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-no-store.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached.html
imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload.html

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::updateRequestAccordingCacheMode): Setting request cache policy according cache mode.
Basically, these two are about the same.
(WebCore::CachedResourceLoader::determineRevalidationPolicy): Making use of cache policy instead of cache mode.

  • platform/network/ResourceRequestBase.h: Adding new cache policies, aligned with fetch cache modes.
  • platform/network/cf/ResourceRequestCFNet.cpp:

(WebCore::toPlatformRequestCachePolicy): If policy is not supported by CFNetwork, fallback to ReloadIgnoringCacheData.
This is the best approximate we might find.
(WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
(WebCore::ResourceRequest::doUpdateResourceRequest): Only updating cache policy, if cache policy is the default.

  • platform/network/cf/ResourceRequestCFNet.h:
  • platform/network/cocoa/ResourceRequestCocoa.mm: Doing the same modifications as for ResourceRequestCFNet.

(WebCore::ResourceRequest::doUpdateResourceRequest):
(WebCore::toPlatformRequestCachePolicy):
(WebCore::ResourceRequest::doUpdatePlatformRequest):

Source/WebKit2:

Adding explicit serialization of ResourceRequest cachePolicy since it does no longer map to platform request cache policy.

Added support for:

  • Bypassing entirely the network cache in case cache mode is NoStore.
  • requiring revalidation in case of cache hit and cache mode is NoCache.
  • Not using any entry if cache mode is Reload (but cache can still be updated)

Also made sure that the ResourceRequest::cachePolicy remains the same throughout redirections.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::canUseCache):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::continueWillSendRequest):

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::cachePolicyAllowsExpired):
(WebKit::NetworkCache::makeRetrieveDecision):

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
(IPC::ArgumentCoder<ResourceRequest>::decodePlatformData):

LayoutTests:

  • platform/ios-simulator/TestExpectations:
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-only-if-cached-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/fetch/api/request/request-cache-reload-expected.txt: Added.
  • platform/win/TestExpectations:
  • platform/wk2/TestExpectations:
1:04 AM WebKitGTK/2.14.x edited by Manuel Rego Casasnovas
(diff)
12:10 AM Changeset in webkit [207329] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Uncaught Exception: TypeError: this.positionToOffset is not a function - seen hovering expressions with Type Profiler enabled
https://bugs.webkit.org/show_bug.cgi?id=163405
<rdar://problem/28763953>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-14
Reviewed by Matt Baker.

  • UserInterface/Views/SourceCodeTextEditor.js:

Use correct method name, the old one must have gone away.

Oct 13, 2016:

11:58 PM Changeset in webkit [207328] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Binding generated code for private operations should assert for casted-this checks
https://bugs.webkit.org/show_bug.cgi?id=163326

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-13
Reviewed by Darin Adler.

Covered by existing tests.

Private operations are not exposed to user scripts and are only called by built-in scripts or other WebKit-controlled code.
The call sites already ensure that the caller is of the right type so there is no need to do that work twice.

Introducing a casted-this-error Assert mode for casted-this checks, which may be reused for other binding generated code.
Updated binding generator to use that mode for private operations.

  • bindings/js/JSDOMBinding.h:

(WebCore::BindingCaller::callPromiseOperation):
(WebCore::BindingCaller::callOperation):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::jsTestGlobalObjectInstanceFunctionTestPrivateFunction):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionPrivateMethod):

11:31 PM Changeset in webkit [207327] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Removed myself from BindingsScripts watch list.

  • Scripts/webkitpy/common/config/watchlist:
11:31 PM Changeset in webkit [207326] by commit-queue@webkit.org
  • 15 edits in trunk

Exception message for expressions with multiple bracket accesses is inconsistent / incorrect
https://bugs.webkit.org/show_bug.cgi?id=163426

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-13
Reviewed by Geoffrey Garen.

JSTests:

  • ChakraCore/test/Error/CallNonFunction_3.baseline-jsc:
  • ChakraCore/test/Object/null.baseline-jsc:
  • stress/exception-in-to-property-key-should-be-handled-early.js:

Better exception messages.

LayoutTests/imported/w3c:

  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/endTime-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/id-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/pauseOnExit-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/startTime-expected.txt:
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TextTrackCue/track-expected.txt:

Better expection messages.

Source/JavaScriptCore:

  • bytecompiler/NodesCodegen.cpp:

(JSC::BracketAccessorNode::emitBytecode):
It matters where emitExpressionInfo is called since it gathers
info about where we are in the instruction stream. We need to
emit it before the bytecode that we want to associate the data
with. In this case, before the getById / getByVal.

LayoutTests:

  • js/exception-expression-offset-expected.txt:
  • js/script-tests/exception-expression-offset.js:

(testException):
Correct existing tests and add new tests for multiple and intermixed
dot / bracket accesses.

11:29 PM Changeset in webkit [207325] by Carlos Garcia Campos
  • 6 edits
    2 adds in trunk

WebView and WebPage URLs not updated after URL is modified by InjectedBundlePageResourceLoadClient::willSendRequestForFrame
https://bugs.webkit.org/show_bug.cgi?id=146306

Reviewed by Darin Adler.

Source/WebCore:

Notify about the provisional URL change when new request set for main resource load in DocumentLoader has a
different URL than the previous one.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setRequest):

Tools:

Add unit test to check that the committed URL is updated when changed in willSendRequest callback.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/PlatformEfl.cmake:
  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback.cpp: Added.

(TestWebKitAPI::didCommitLoadForFrame):
(TestWebKitAPI::TEST):

  • TestWebKitAPI/Tests/WebKit2/ProvisionalURLAfterWillSendRequestCallback_Bundle.cpp: Added.

(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::ProvisionalURLAfterWillSendRequestCallbackTest):
(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::willSendRequestForFrame):
(TestWebKitAPI::ProvisionalURLAfterWillSendRequestCallbackTest::didCommitLoadForFrame):

11:19 PM Changeset in webkit [207324] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Update serializer and iterator binding generated code
https://bugs.webkit.org/show_bug.cgi?id=163325

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-13
Reviewed by Darin Adler.

No change of behavior.
Covered by existing tests and rebased binding generated code.

Making use of BindingCaller::callOperation within serializer and iterator operations.
Refactored serializer code to use direct attribute getters.

  • bindings/js/JSDOMIterator.h:

(WebCore::iteratorCreate):
(WebCore::iteratorForEach):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateSerializerFunction):
(GenerateImplementationIterableFunctions):

  • bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::jsTestIterablePrototypeFunctionSymbolIteratorCaller):
(WebCore::jsTestIterablePrototypeFunctionSymbolIterator):
(WebCore::jsTestIterablePrototypeFunctionEntriesCaller):
(WebCore::jsTestIterablePrototypeFunctionEntries):
(WebCore::jsTestIterablePrototypeFunctionKeysCaller):
(WebCore::jsTestIterablePrototypeFunctionKeys):
(WebCore::jsTestIterablePrototypeFunctionValuesCaller):
(WebCore::jsTestIterablePrototypeFunctionValues):
(WebCore::jsTestIterablePrototypeFunctionForEachCaller):
(WebCore::jsTestIterablePrototypeFunctionForEach):

  • bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::jsTestNodePrototypeFunctionSymbolIteratorCaller):
(WebCore::jsTestNodePrototypeFunctionSymbolIterator):
(WebCore::jsTestNodePrototypeFunctionEntriesCaller):
(WebCore::jsTestNodePrototypeFunctionEntries):
(WebCore::jsTestNodePrototypeFunctionKeysCaller):
(WebCore::jsTestNodePrototypeFunctionKeys):
(WebCore::jsTestNodePrototypeFunctionValuesCaller):
(WebCore::jsTestNodePrototypeFunctionValues):
(WebCore::jsTestNodePrototypeFunctionForEachCaller):
(WebCore::jsTestNodePrototypeFunctionForEach):
(WebCore::jsTestNodePrototypeFunctionToJSON):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionToJSON):

10:39 PM Changeset in webkit [207323] by achristensen@apple.com
  • 2 edits in trunk/Source/WebCore

Fix API test after r207318.
https://bugs.webkit.org/show_bug.cgi?id=162951

This fixes the API test WebKit2.PendingAPIRequestURL which asserted when trying to hash a null String.

  • loader/DocumentLoader.cpp:

(WebCore::isRemoteWebArchive):
If the mimeType is a null String, it is not in the set webArchiveMIMETypes, so return false instead of hashing it.

10:29 PM Changeset in webkit [207322] by mark.lam@apple.com
  • 3 edits
    1 add in trunk

Fix Array.prototype.splice ES6 compliance.
https://bugs.webkit.org/show_bug.cgi?id=163372

Reviewed by Geoffrey Garen and Yusuke Suzuki.

JSTests:

  • stress/array-splice-on-frozen-object.js: Added.

Source/JavaScriptCore:

Our Array.prototype.splice implementation neglected to set length on the result
array (step 12 of https://tc39.github.io/ecma262/#sec-array.prototype.splice) in
a certain code path. This is now fixed.

I'm deferring the implementation of step 8 till later because it requires more
careful consideration and the fix is of a lesser value (and therefore, of less
urgency). See https://bugs.webkit.org/show_bug.cgi?id=163417

Also added some needed exception checks and assertions.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncSplice):

9:09 PM Changeset in webkit [207321] by achristensen@apple.com
  • 32 edits in trunk

Hosts of URLs with non-special schemes should be case-sensitive, and non-ASCII characters in such hosts should be punycode-encoded
https://bugs.webkit.org/show_bug.cgi?id=163413

Reviewed by Tim Horton.

LayoutTests/imported/w3c:

  • web-platform-tests/url/url-setters-expected.txt:

Update results. Some more tests are failing, but if my proposal in https://github.com/whatwg/url/issues/148 is accepted,
then these web platform tests will need to be changed. These web platform tests were also failing with the old URL::parse.

Source/WebCore:

This retains compatibility with the canonicalization Chrome, Firefox, and Safari with uppercase characters
in the hosts of URLs with unrecognized schemes. Safari treats such characters as the host, while Firefox
and Chrome treat such characters as part of the path, starting with the "" after the ':'
Behavior of non-ASCII characters is inconsistent, and since we need to have a host, we should punycode-encode
the host to be consistent with special schemes because percent-encoding hosts sometimes is inconsistent.

This solution was proposed to the spec in https://github.com/whatwg/url/issues/148

Covered by updated API and layout tests.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
(WebCore::URLParser::percentDecode):
(WebCore::URLParser::domainToASCII):
(WebCore::URLParser::hasInvalidDomainCharacter):
(WebCore::URLParser::parseHostAndPort):
(WebCore::URLParser::formURLDecode):
(WebCore::percentDecode): Deleted.
(WebCore::domainToASCII): Deleted.
(WebCore::hasInvalidDomainCharacter): Deleted.
(WebCore::formURLDecode): Deleted.

  • platform/URLParser.h:

Tools:

  • TestWebKitAPI/Tests/WebCore/URLParser.cpp:

(TestWebKitAPI::TEST_F):
Update parsing results. There are now fewer differences between the new URLParser and the old URL::parse.

LayoutTests:

  • contentfiltering/block-after-add-data-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-add-data-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-finished-adding-data-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-finished-adding-data-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-response-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-response-then-deny-unblock-expected.txt:
  • contentfiltering/block-after-will-send-request-then-allow-unblock-expected.txt:
  • contentfiltering/block-after-will-send-request-then-deny-unblock-expected.txt:
  • fast/backgrounds/background-shorthand-after-set-backgroundSize-expected.txt:
  • fast/backgrounds/background-shorthand-after-set-backgroundSize.html:
  • fast/backgrounds/background-shorthand-with-backgroundSize-style-expected.txt:
  • fast/backgrounds/background-shorthand-with-backgroundSize-style.html:
  • fast/css/getComputedStyle/computed-style-border-image-expected.txt:
  • fast/css/getComputedStyle/computed-style-border-image.html:
  • fast/css/getComputedStyle/computed-style-cross-fade-expected.txt:
  • fast/css/getComputedStyle/computed-style-cross-fade.html:
  • fast/css/getComputedStyle/getComputedStyle-background-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-background-shorthand.html:
  • fast/css/getComputedStyle/getComputedStyle-list-style-shorthand-expected.txt:
  • fast/css/getComputedStyle/getComputedStyle-list-style-shorthand.html:
  • fast/loader/url-parse-1-expected.txt:
  • fast/url/host-lowercase-per-scheme-expected.txt:
  • fast/url/safari-extension-expected.txt:
  • http/tests/xmlhttprequest/access-control-and-redirects-async-expected.txt:

Update test expectations. This is how they were before r207162, showing that this change to the URLParser increases compatibility.

7:58 PM Changeset in webkit [207320] by matthew_hanson@apple.com
  • 5 edits in trunk/Source

Versioning.

7:50 PM Changeset in webkit [207319] by Chris Dumez
  • 36 edits
    2 adds in trunk

[Web IDL] Add support for [SameObject] extended attribute
https://bugs.webkit.org/show_bug.cgi?id=163414

Reviewed by Darin Adler.

Source/WebCore:

Add support for [SameObject] Web IDL extended attribute:

Start using it on DOM / HTML attributes where the specification
mandates it.

Test: js/dom/SameObject-support.html

  • bindings/scripts/CodeGeneratorJS.pm:

(ShouldCacheAttribute):
(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • dom/DataTransfer.idl:
  • dom/Document.idl:
  • dom/Element.idl:
  • dom/MutationRecord.idl:
  • dom/Node.idl:
  • dom/NodeIterator.idl:
  • dom/ParentNode.idl:
  • dom/TreeWalker.idl:
  • html/HTMLAnchorElement.idl:
  • html/HTMLAreaElement.idl:
  • html/HTMLButtonElement.idl:
  • html/HTMLDataListElement.idl:
  • html/HTMLDocument.idl:
  • html/HTMLElement.idl:
  • html/HTMLFieldSetElement.idl:
  • html/HTMLFormElement.idl:
  • html/HTMLIFrameElement.idl:
  • html/HTMLInputElement.idl:
  • html/HTMLKeygenElement.idl:
  • html/HTMLLinkElement.idl:
  • html/HTMLMapElement.idl:
  • html/HTMLMediaElement.idl:
  • html/HTMLMeterElement.idl:
  • html/HTMLOutputElement.idl:
  • html/HTMLProgressElement.idl:
  • html/HTMLSelectElement.idl:
  • html/HTMLTableElement.idl:
  • html/HTMLTableRowElement.idl:
  • html/HTMLTableSectionElement.idl:
  • html/HTMLTextAreaElement.idl:
  • page/Location.idl:
  • page/Navigator.idl:

LayoutTests:

Add layout test coverage.

  • js/dom/SameObject-support-expected.txt: Added.
  • js/dom/SameObject-support.html: Added.
6:14 PM Changeset in webkit [207318] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Support Web Archive previews generated by QuickLook
https://bugs.webkit.org/show_bug.cgi?id=162951
<rdar://problem/28607920>

Reviewed by Brady Eidson.

QuickLook might generate a Web Archive preview for some resource types, but WebKit would
refuse to load it due to the prohibition on loading remote Web Archives. Even though the
original resource might be from a remote origin, the QuickLook-generated preview is a
trusted local resource, so allow it to be loaded.

No test possible.

  • loader/DocumentLoader.cpp:

(WebCore::isRemoteWebArchive): Added. Moved the remote web archive check from
continueAfterContentPolicy() to here, and added a check for responses containing the
QuickLook preview protocol.
(WebCore::DocumentLoader::continueAfterContentPolicy): Called isRemoteWebArchive().

6:10 PM Changeset in webkit [207317] by dino@apple.com
  • 22 edits
    1 add in trunk/Source/WebCore

CSS parsing should use Color not RGBA32
https://bugs.webkit.org/show_bug.cgi?id=163423
<rdar://problem/28766903>

Reviewed by Simon Fraser.

In order to allow CSS to use the ExtendedColor variant of
Color, we need to stop using RGBA32. This is a fairly big
change that goes through all the places in the parser
related to colors, and moves them from RGBA32 to Color.

No change in functionality, so covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj: Add the new ColorHash.h file.
  • css/CSSPrimitiveValue.cpp: CSSPrimitiveValue now can hold a Color*

rather than an unsigned int for colors.
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::getRGBColorValue):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
(WebCore::CSSPrimitiveValue::cloneForCSSOM):
(WebCore::CSSPrimitiveValue::equals):

  • css/CSSPrimitiveValue.h: Move to Color* and also use some

nullptrs.

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Add a new inline
constructor.

  • css/CSSValuePool.cpp: Move to Color.

(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::createColorValue):

  • css/CSSValuePool.h: Change the ColorValueCache to a new type.
  • css/StyleResolver.cpp: Move to Color.

(WebCore::StyleResolver::colorFromPrimitiveValue):

  • css/parser/CSSParser.cpp:

(WebCore::parseColorValue):
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorFromString):
(WebCore::CSSParser::parseSystemColor):
(WebCore::fastParseColorInternal):
(WebCore::CSSParser::fastParseColor):
(WebCore::CSSParser::parseColorFromValue):

  • css/parser/CSSParser.h:
  • css/parser/CSSParserFastPaths.cpp:

(WebCore::fastParseColorInternal):
(WebCore::CSSParserFastPaths::parseColor):

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeColor):

  • css/parser/SVGCSSParser.cpp:

(WebCore::CSSParser::parseSVGValue):
(WebCore::CSSParser::parseSVGPaint):
(WebCore::CSSParser::parseSVGColor):

  • editing/EditingStyle.cpp:

(WebCore::cssValueToColor):
(WebCore::textColorFromStyle):
(WebCore::backgroundColorFromStyle):
(WebCore::rgbaBackgroundColorInEffect):
(WebCore::EditingStyle::prepareToApplyAt):
(WebCore::isTransparentColorValue):
(WebCore::cssValueToRGBA): Deleted.

  • editing/cocoa/HTMLConverter.mm:

(HTMLConverterCaches::colorPropertyValueForNode):

  • html/HTMLBodyElement.cpp:

(WebCore::HTMLBodyElement::parseAttribute):

  • html/canvas/CanvasGradient.cpp:

(WebCore::CanvasGradient::addColorStop):

  • html/canvas/CanvasRenderingContext2D.cpp: Ditto, but leave a FIXME to

remind myself to come back when colorWithOverrideAlpha has been updated.
(WebCore::CanvasRenderingContext2D::setStrokeStyle):
(WebCore::CanvasRenderingContext2D::setFillStyle):
(WebCore::CanvasRenderingContext2D::setShadowColor):
(WebCore::CanvasRenderingContext2D::setShadow):

  • html/canvas/CanvasStyle.cpp:

(WebCore::isCurrentColorString):
(WebCore::parseColor):
(WebCore::currentColor):
(WebCore::parseColorOrCurrentColor):
(WebCore::CanvasStyle::createFromString):
(WebCore::CanvasStyle::createFromStringWithOverrideAlpha):

  • html/canvas/CanvasStyle.h:
  • svg/SVGColor.cpp:

(WebCore::SVGColor::colorFromRGBColorString):

  • platform/graphics/Color.h: Add new constructors for the special

empty and deleted Color values used in HashTables.
(WebCore::Color::Color):
(WebCore::Color::isHashTableDeletedValue):
(WebCore::Color::asUint64): New accessor to get the raw uint64_t value.

  • platform/graphics/ColorHash.h: Added. Implement the traits for a Color HashTable.

(WTF::ColorHash::hash):
(WTF::ColorHash::equal):
(WTF::HashTraits<WebCore::Color>::emptyValue):
(WTF::HashTraits<WebCore::Color>::constructDeletedValue):
(WTF::HashTraits<WebCore::Color>::isDeletedValue):

5:27 PM Changeset in webkit [207316] by Ryan Haddad
  • 2 edits in branches/safari-602-branch/LayoutTests

Merge r204304.

4:38 PM Changeset in webkit [207315] by achristensen@apple.com
  • 4 edits in trunk/Tools

Rebase API tests after r207305.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:

Actually build Tests/mac/LoadInvalidURLRequest.mm so we are running the WebKit1.LoadInvalidURLRequest API test.

  • TestWebKitAPI/Tests/WebKit2Cocoa/LoadInvalidURLRequest.mm:

(-[LoadInvalidURLNavigationActionDelegate webView:didFailProvisionalNavigation:withError:]):

  • TestWebKitAPI/Tests/mac/LoadInvalidURLRequest.mm:

(-[LoadInvalidURLWebFrameLoadDelegate webView:didFailProvisionalLoadWithError:forFrame:]):
Change results back to what they were before r207162, r207167, and r207184.

3:52 PM Changeset in webkit [207314] by n_wang@apple.com
  • 10 edits in trunk

AX: [Mac] better accessibility support for Summary elements
https://bugs.webkit.org/show_bug.cgi?id=163367
<rdar://problem/28745010>

Reviewed by Chris Fleizach.

Source/WebCore:

Exposed summary elements as AXButton and used the text node's content
as AXTitle. Also exposed the details parent's expanded status on the summary
element, so that users would see it as a collapsed/expanded button.

Changes are covered in the modified tests.

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::parentObjectUnignored):
(WebCore::AccessibilityObject::scrollViewAncestor):
(WebCore::AccessibilityObject::headingElementForNode):
(WebCore::AccessibilityObject::matchedParent):
(WebCore::AccessibilityObject::isDescendantOfObject):
(WebCore::AccessibilityObject::isInsideARIALiveRegion):
(WebCore::AccessibilityObject::elementAccessibilityHitTest):
(WebCore::AccessibilityObject::isExpanded):
(WebCore::AccessibilityObject::isARIAHidden):
(WebCore::AccessibilityObject::focusableAncestor):
(WebCore::AccessibilityObject::editableAncestor):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::isSummary):

  • accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:

(-[WebAccessibilityObjectWrapper _accessibilityListAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityLandmarkAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityTableAncestor]):
(-[WebAccessibilityObjectWrapper _accessibilityFieldsetAncestor]):
(-[WebAccessibilityObjectWrapper tableCellParent]):
(-[WebAccessibilityObjectWrapper tableParent]):
(-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
(-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
(-[WebAccessibilityObjectWrapper detailParentForSummaryObject:]):
(-[WebAccessibilityObjectWrapper detailParentForObject:]):
(matchedParent): Deleted.

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(createAccessibilityRoleMap):
(-[WebAccessibilityObjectWrapper roleDescription]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

LayoutTests:

  • accessibility/mac/details-summary-expected.txt:
  • accessibility/mac/details-summary-role-description-expected.txt:
  • accessibility/mac/details-summary-role-description.html:
  • accessibility/mac/details-summary.html:
3:25 PM Changeset in webkit [207313] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/debugger/breakpoints/resolved-dump-each-line.html as flaky on mac.
https://bugs.webkit.org/show_bug.cgi?id=161951

Unreviewed test gardening.

  • platform/mac/TestExpectations:
3:20 PM Changeset in webkit [207312] by commit-queue@webkit.org
  • 8 edits in trunk

Web Inspector: Stepping highlight for dot/bracket expressions in if statements highlights subset of the expression
https://bugs.webkit.org/show_bug.cgi?id=163378
<rdar://problem/28749376>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2016-10-13
Reviewed by Saam Barati.

Source/JavaScriptCore:

  • parser/Parser.cpp:

(JSC::Parser<LexerType>::parseAssignmentExpression):
Since each expression builds on the previous, always keep the starting
location the first location.

LayoutTests:

  • inspector/debugger/breakpoints/resolved-dump-all-pause-locations-expected.txt:
  • inspector/debugger/breakpoints/resolved-dump-each-line-expected.txt:
  • inspector/debugger/breakpoints/resources/dump-general.js:
  • inspector/debugger/stepping/stepping-misc-expected.txt:
  • inspector/debugger/stepping/stepping-misc.html:

Add tests for these kinds of special cases.

2:48 PM Changeset in webkit [207311] by BJ Burg
  • 3 edits in trunk

[CMake] Split the definition of CODE_GENERATOR_PREPROCESSOR so it can be used in a custom command
https://bugs.webkit.org/show_bug.cgi?id=163401

Reviewed by Michael Catanzaro.

In another patch, we need to use CODE_GENERATOR_PREPROCESSOR as the COMMAND argument
when defining an add_custom_command. Previously, it has only been used as a quoted argument
to various Perl code generation scripts.

To support both use cases, we need to be able to provide the executable and its arguments as
an unbroken quoted string, and as a CMake list suitable for passing as an argument to COMMAND.

  • Source/cmake/OptionsCommon.cmake:

Split out the executable and argument string into separate variables that can be used elsewhere.
Compute the final unbroken quoted string using the two separate variables to arrive at the same result.

  • Source/cmake/WebKitMacros.cmake:

Drive-by cleanup to add quotes around the use of CODE_GENERATOR_PREPROCESSOR so it matches other uses.

2:41 PM Changeset in webkit [207310] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

[Clean RenderTree] LayoutTests/imported/blink/fast/table/crash-bad-child-table-continuation.html fails.
https://bugs.webkit.org/show_bug.cgi?id=163399

Reviewed by David Hyatt.

When we try to insert a renderer before a child whose direct parent is a (anonymus) RenderTable, continuation logic
should dismiss the RenderTable as the parent and find a more appropriate ancestor.
RenderTables assumes a certain descendant tree structure which might not be available in the continuation.

Will be testable with webkit.org/b/162834

  • rendering/RenderInline.cpp:

(WebCore::canUseAsParentForContinuation):
(WebCore::RenderInline::addChildToContinuation):

2:37 PM Changeset in webkit [207309] by Ryan Haddad
  • 4 edits
    1 copy in branches/safari-602-branch/LayoutTests

Rebaseline failing LayoutTests.

Unreviewed test gardening.

  • http/tests/security/location-cross-origin-expected.txt:
  • platform/mac-elcapitan/fast/text/emoji-expected.txt: Copied from LayoutTests/platform/mac/fast/text/emoji-expected.txt.
  • platform/mac/fast/text/emoji-expected.txt:
  • platform/mac/http/tests/cookies/third-party-cookie-relaxing-expected.txt:
2:36 PM Changeset in webkit [207308] by andersca@apple.com
  • 6 edits
    2 adds in trunk/Source/WebKit

Copy BackForwardList from WebCore to WebKit/win
https://bugs.webkit.org/show_bug.cgi?id=163360

Reviewed by Alex Christensen.

Source/WebKit:

This is the first step towards getting rid of BackForwardList in WebCore.

  • PlatformWin.cmake:

Add new files.

Source/WebKit/win:

Use our local BackForwardList class instead of WebCore::BackForwardList.

  • BackForwardList.cpp: Added.
  • BackForwardList.h: Added.
  • WebBackForwardList.h:
  • WebView.cpp:

(WebView::initWithFrame):
(WebView::backForwardList):

2:08 PM Changeset in webkit [207307] by matthew_hanson@apple.com
  • 9 edits in tags/Safari-603.1.9

Merge r207305. rdar://problem/28756748

2:07 PM Changeset in webkit [207306] by matthew_hanson@apple.com
  • 7 edits in tags/Safari-603.1.9

Merge r207301. rdar://problem/28756748

2:01 PM Changeset in webkit [207305] by achristensen@apple.com
  • 9 edits in trunk

Disable URLParser for non-Safari iOS and Mac apps for now
https://bugs.webkit.org/show_bug.cgi?id=163397

Reviewed by Tim Horton.

Source/WebCore:

r207268 was an awful hack, and it was insufficient.
Disable the URLParser for other apps for now. Hopefully we can enable it everywhere soon.

No change in behavior for testing infrastructure.
Old URLs were well tested before making the switch, and nothing has changed for them.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
(WebCore::URLParser::parseHostAndPort):
(WebCore::URLParser::setEnabled):
(WebCore::URLParser::enabled):

  • platform/URLParser.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

  • WebKitTestRunner/TestController.cpp:

Enable the URLParser for testing.

  • WebKitTestRunner/Configurations/WebKitTestRunnerApp.xcconfig:

Link with WebCoreTestSupport so we can find setURLParserEnabled.

1:18 PM BuildingGtk edited by mario@webkit.org
(diff)
1:03 PM Changeset in webkit [207304] by matthew_hanson@apple.com
  • 7 edits in tags/Safari-603.1.9

Merge r207297. rdar://problem/28756748

1:03 PM Changeset in webkit [207303] by matthew_hanson@apple.com
  • 3 edits in tags/Safari-603.1.9/Source/WebCore

Merge r207268. rdar://problem/28756748

12:26 PM Changeset in webkit [207302] by Chris Dumez
  • 11 edits in trunk/Source/WebCore

Rename [ConstructorTemplate=*] to [LegacyConstructorTemplate=*]
https://bugs.webkit.org/show_bug.cgi?id=163390

Reviewed by Darin Adler.

Rename [ConstructorTemplate=*] to [LegacyConstructorTemplate=*] as the
modern way of doing this is to use a constructor that takes in a
dictionary. I am working on getting rid of this extended attribute
entirely but the remaining uses require better support for union types.

  • Modules/applepay/ApplePayValidateMerchantEvent.idl:
  • Modules/indexeddb/IDBVersionChangeEvent.idl:
  • Modules/mediastream/RTCTrackEvent.idl:
  • bindings/scripts/CodeGenerator.pm:

(IsConstructorTemplate):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateConstructorDefinition):
(IsConstructable):

  • bindings/scripts/IDLAttributes.txt:
  • dom/Event.idl:
  • dom/ProgressEvent.idl:
  • dom/UIEvent.idl:
  • html/track/TrackEvent.idl:
12:21 PM Changeset in webkit [207301] by Ryan Haddad
  • 7 edits in trunk

Unreviewed, rolling out r207297.

This change broke the iOS build.

Reverted changeset:

"Disable URLParser for non-Safari iOS and Mac apps for now"
https://bugs.webkit.org/show_bug.cgi?id=163397
http://trac.webkit.org/changeset/207297

12:15 PM Changeset in webkit [207300] by andersca@apple.com
  • 12 edits in trunk/Source

Get rid of the HistoryItemVector typedef
https://bugs.webkit.org/show_bug.cgi?id=163398

Reviewed by Beth Dakin.

Expand the HistoryitemVector typedef instead to make it more clear what types we are dealing with.

Source/WebCore:

  • history/BackForwardList.cpp:

(WebCore::BackForwardList::backListWithLimit):
(WebCore::BackForwardList::forwardListWithLimit):
(WebCore::BackForwardList::entries):

  • history/BackForwardList.h:
  • history/HistoryItem.cpp:

(WebCore::HistoryItem::children):

  • history/HistoryItem.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::currentFramesMatchItem):

Source/WebKit/mac:

  • History/WebBackForwardList.mm:

(-[WebBackForwardList dictionaryRepresentation]):
(vectorToNSArray):
(-[WebBackForwardList backListWithLimit:]):
(-[WebBackForwardList forwardListWithLimit:]):
(-[WebBackForwardList description]):

  • History/WebHistoryItem.mm:

(-[WebHistoryItem description]):

Source/WebKit/win:

  • WebBackForwardList.cpp:

(WebBackForwardList::backListWithLimit):
(WebBackForwardList::forwardListWithLimit):

  • WebHistoryItem.cpp:

(WebHistoryItem::children):

12:02 PM Changeset in webkit [207299] by commit-queue@webkit.org
  • 2 edits
    9 adds in trunk

[Modern Media Controls] MediaControls base class
https://bugs.webkit.org/show_bug.cgi?id=163387
<rdar://problem/28753955>

Patch by Antoine Quint <Antoine Quint> on 2016-10-13
Reviewed by Dean Jackson.

Source/WebCore:

Introducing the new MediaControls class which will serve as a basis for all media controls.
We will introduce specific MediaControls subclasses for macOS inline, macOS fullscreen and
iOS inline in future patches.

Tests: media/modern-media-controls/media-controls/media-controls-constructor.html

media/modern-media-controls/media-controls/media-controls-placard.html
media/modern-media-controls/media-controls/media-controls-start-button.html

  • Modules/modern-media-controls/controls/media-controls.css: Added.

(.media-controls,):

  • Modules/modern-media-controls/controls/media-controls.js: Added.

(MediaControls.):
(MediaControls.prototype.get showsStartButton):
(MediaControls.prototype.set showsStartButton):
(MediaControls.prototype.get showsPlacard):
(MediaControls.prototype.showPlacard):
(MediaControls.prototype.hidePlacard):

LayoutTests:

Testing the properties of the new MediaControls class.

  • media/modern-media-controls/media-controls/media-controls-constructor-expected.txt: Added.
  • media/modern-media-controls/media-controls/media-controls-constructor.html: Added.
  • media/modern-media-controls/media-controls/media-controls-placard-expected.txt: Added.
  • media/modern-media-controls/media-controls/media-controls-placard.html: Added.
  • media/modern-media-controls/media-controls/media-controls-start-button-expected.txt: Added.
  • media/modern-media-controls/media-controls/media-controls-start-button.html: Added.
12:01 PM Changeset in webkit [207298] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

Rename the SPI added in r207292 due to post-landing review comments
https://bugs.webkit.org/show_bug.cgi?id=163364
<rdar://problem/28012494>

Reviewed by Simon Fraser.

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::waitsForPaintAfterViewDidMoveToWindow):
(API::PageConfiguration::setWaitsForPaintAfterViewDidMoveToWindow):
(API::PageConfiguration::shouldWaitForPaintAfterViewDidMoveToWindow): Deleted.
(API::PageConfiguration::setShouldWaitForPaintAfterViewDidMoveToWindow): Deleted.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _waitsForPaintAfterViewDidMoveToWindow]):
(-[WKWebViewConfiguration _setWaitsForPaintAfterViewDidMoveToWindow:]):
(-[WKWebViewConfiguration _shouldWaitForPaintAfterViewDidMoveToWindow]): Deleted.
(-[WKWebViewConfiguration _setShouldWaitForPaintAfterViewDidMoveToWindow:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::dispatchViewStateChange):

  • UIProcess/WebPageProxy.h:
11:57 AM Changeset in webkit [207297] by achristensen@apple.com
  • 7 edits in trunk

Disable URLParser for non-Safari iOS and Mac apps for now
https://bugs.webkit.org/show_bug.cgi?id=163397

Reviewed by Tim Horton.

Source/WebCore:

r207268 was an awful hack, and it was insufficient.
Disable the URLParser for other apps for now. Hopefully we can enable it everywhere soon.

No change in behavior for testing infrastructure.
Old URLs were well tested before making the switch, and nothing has changed for them.

  • platform/URLParser.cpp:

(WebCore::URLParser::parse):
(WebCore::URLParser::parseHostAndPort):
(WebCore::URLParser::setEnabled):
(WebCore::URLParser::enabled):

  • platform/URLParser.h:

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

  • WebKitTestRunner/ios/mainIOS.mm:

(main):

  • WebKitTestRunner/mac/main.mm:

(main):

11:53 AM Changeset in webkit [207296] by Jonathan Bedard
  • 3 edits in trunk/Source/WebKit2

GTK and EFL on Mac fail to compile WebTextChecker due to missing definition of WKTextCheckerClientBase
https://bugs.webkit.org/show_bug.cgi?id=163346

Reviewed by Daniel Bates.

  • UIProcess/API/C/WKTextChecker.cpp: Fixed #ifdefs for GTK and EFL builds on Darwin machines.
  • UIProcess/API/C/WKTextChecker.h: Ditto.
11:45 AM Changeset in webkit [207295] by commit-queue@webkit.org
  • 2 edits
    9 adds in trunk

[Modern Media Controls] TimeControl and TimeLabel
https://bugs.webkit.org/show_bug.cgi?id=163356
<rdar://problem/28741376>

Patch by Antoine Quint <Antoine Quint> on 2016-10-13
Reviewed by Dean Jackson.

Source/WebCore:

We introduce the TimeControl and TimeLabel classes. A TimeControl object
provides two TimeLabels, one for the elapsed time, one for the remaining
time, and a Scrubber in between them. Depending on a TimeControl's width,
it will adjust its layout such that the scrubber takes all the available
space between the labels, and can indicate whether it's large enough to
meet the minimal required width to show the scrubber, such that a container
node may decide not to show the TimeControl at all.

TimeLabel nodes simply show an integer time value in miliseconds in a
nicely formatted way.

Tests: media/modern-media-controls/time-control/time-control.html

media/modern-media-controls/time-label/time-label.html

  • Modules/modern-media-controls/controls/time-control.js: Added.

(TimeControl.prototype.get width):
(TimeControl.prototype.set width):
(TimeControl.prototype.get isSufficientlyWide):

  • Modules/modern-media-controls/controls/time-label.css: Added.

(.time-label):

  • Modules/modern-media-controls/controls/time-label.js: Added.

(TimeLabel.prototype.get value):
(TimeLabel.prototype.set value):
(TimeLabel.prototype.commitProperty):
(TimeLabel.prototype._formattedTime):

LayoutTests:

Adding tests for the new TimeControl and TimeLabel classes.

  • media/modern-media-controls/time-control/time-control-expected.txt: Added.
  • media/modern-media-controls/time-control/time-control.html: Added.
  • media/modern-media-controls/time-label/time-label-expected.txt: Added.
  • media/modern-media-controls/time-label/time-label.html: Added.
11:13 AM Changeset in webkit [207294] by jer.noble@apple.com
  • 3 edits
    2 adds in trunk

CRASH at WebCore::SourceBuffer::removeCodedFrames + 37
https://bugs.webkit.org/show_bug.cgi?id=163336

Reviewed by Alex Christensen.

Source/WebCore:

Test: media/media-source/media-source-remove-crash.html

A null-deref crash can occur if a SourceBuffer is removed from a MediaSource after
SourceBuffer.remove() is called, but before the removeTimer is fired.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::removeTimerFired):

LayoutTests:

  • media/media-source/media-source-remove-crash-expected.txt: Added.
  • media/media-source/media-source-remove-crash.html: Added.
11:11 AM Changeset in webkit [207293] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[SOUP] SHOULD NEVER BE REACHED ../../Source/WebCore/platform/URL.cpp(1291) : void WebCore::URL::parse(const WTF::String&)
https://bugs.webkit.org/show_bug.cgi?id=163392

Reviewed by Alex Christensen.

Fix the URL constructor to work with URLParser.

  • platform/soup/URLSoup.cpp:

(WebCore::URL::URL):

10:44 AM Changeset in webkit [207292] by timothy_horton@apple.com
  • 7 edits in trunk/Source/WebKit2

Expose SPI to disable synchronously blocking on painting after parenting a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=163364
<rdar://problem/28012494>

Reviewed by Geoff Garen.

Some clients may not want the default WKWebView behavior where we synchronously
block on the Web process after the first time a WKWebView is re-added to the window,
because they are e.g. parenting re-used WKWebViews while scrolling.

  • UIProcess/API/APIPageConfiguration.h:

(API::PageConfiguration::shouldSynchronizeInitialPaintAfterMovingToWindow):
(API::PageConfiguration::setShouldSynchronizeInitialPaintAfterMovingToWindow):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _initializeWithConfiguration:]):

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration init]):
(-[WKWebViewConfiguration copyWithZone:]):
(-[WKWebViewConfiguration _shouldSynchronizeInitialPaintAfterMovingToWindow]):
(-[WKWebViewConfiguration _setShouldSynchronizeInitialPaintAfterMovingToWindow:]):

  • UIProcess/API/Cocoa/WKWebViewConfigurationPrivate.h:
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
Add and plumb a new WKWebView configuration parameter.

(WebKit::WebPageProxy::dispatchViewStateChange):
If the new configuration parameter is set, don't block the main thread when
a view is reparented.

10:25 AM Changeset in webkit [207291] by Ryan Haddad
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r207286.

Caused LayoutTest http/tests/misc/acid3.html to fail.

Reverted changeset:

"Share inline stylesheets between shadow trees"
https://bugs.webkit.org/show_bug.cgi?id=163353
http://trac.webkit.org/changeset/207286

10:02 AM Changeset in webkit [207290] by svillar@igalia.com
  • 5 edits in trunk

[css-grid] Use min-size instead of min-content contribution for intrinsic maximums resolution
https://bugs.webkit.org/show_bug.cgi?id=163283

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

This was recently modified in the specs
https://hg.csswg.org/drafts/diff/575fb847e29d/css-grid/Overview.bs. Specifically this is
addressing the last one. It used to be "min-content contribution" but now it says "min-size
contribution".

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::currentItemSizeForTrackSizeComputationPhase):

LayoutTests:

Uncommented a bunch of failing test cases that are working fine now.

  • fast/css-grid-layout/grid-intrinsic-maximums-expected.html:
  • fast/css-grid-layout/grid-intrinsic-maximums.html:
8:36 AM Changeset in webkit [207289] by pvollan@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

[Win64] Compile fix.
https://bugs.webkit.org/show_bug.cgi?id=163384

Reviewed by Brent Fulgham.

Fix use of potentially uninitialized variable.

  • dfg/DFGSpeculativeJIT64.cpp:

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

8:25 AM Changeset in webkit [207288] by svillar@igalia.com
  • 4 edits
    2 adds in trunk

[css-grid] Fix intrinsic maximums resolution with fit-content and auto
https://bugs.webkit.org/show_bug.cgi?id=163282

Reviewed by Manuel Rego Casasnovas.

Source/WebCore:

The step 2.5 in section 12.5 https://drafts.csswg.org/css-grid/#algo-content of the specs,
details how to sizes tracks with intrinsic max track sizing functions.

Not so long ago there were only two max track sizing functions min-content and max-content
(auto was always resolved to max-content). However there were some recent changes that force
us to consider 2 new values: auto (which is not internally translated to max-content
although it still works the same) and specially the newly added fit-content.

Some of the new test cases are commented due to bug http://wkb.ug/163283.

Test: fast/css-grid-layout/grid-intrinsic-maximums.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::shouldProcessTrackForTrackSizeComputationPhase):

  • rendering/style/GridTrackSize.h:

(WebCore::GridTrackSize::cacheMinMaxTrackBreadthTypes):
(WebCore::GridTrackSize::hasIntrinsicMinTrackBreadth):
(WebCore::GridTrackSize::hasIntrinsicMaxTrackBreadth):
(WebCore::GridTrackSize::hasAutoOrMinContentMinTrackBreadthAndIntrinsicMaxTrackBreadth):

LayoutTests:

New test cases to verify that all tracks with intrinsic max track sizing functions are used
in step 2.5 of the track sizing algorith. Some of the new test cases are commented due to
http://wkb.ug/163283.

  • fast/css-grid-layout/grid-intrinsic-maximums-expected.html: Added.
  • fast/css-grid-layout/grid-intrinsic-maximums.html: Added.
8:00 AM Changeset in webkit [207287] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Video playback doesn't work properly with accelerated compositing disabled
https://bugs.webkit.org/show_bug.cgi?id=163386

Patch by Miguel Gomez <magomez@igalia.com> on 2016-10-13
Reviewed by Carlos Garcia Campos.

Trigger a repaint of the player when a new frame arrives and accelerated compositing is disabled.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):

4:59 AM Changeset in webkit [207286] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Share inline stylesheets between shadow trees
https://bugs.webkit.org/show_bug.cgi?id=163353

Reviewed by Ryosuke Niwa and Andreas Kling.

If shadow trees have identical inline stylesheets the data structures can be shared.
In future this will also allow sharing style resolvers.

  • css/parser/CSSParserMode.h:

(WebCore::CSSParserContextHash::hash):
(WebCore::CSSParserContextHash::equal):
(WTF::HashTraits<WebCore::CSSParserContext>::constructDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::isDeletedValue):
(WTF::HashTraits<WebCore::CSSParserContext>::emptyValue):

Make CSSParserContext hashable.

  • dom/InlineStyleSheetOwner.cpp:

(WebCore::makeInlineStyleSheetCacheKey):
(WebCore::inlineStyleSheetCache):

Implement a simple cache for sharing stylesheets with identical text and context.

(WebCore::InlineStyleSheetOwner::createSheet):
(WebCore::InlineStyleSheetOwner::clearCache):

  • dom/InlineStyleSheetOwner.h:
  • platform/MemoryPressureHandler.cpp:

(WebCore::MemoryPressureHandler::releaseNoncriticalMemory):

4:58 AM Changeset in webkit [207285] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

Revert patch landed with wrong commit message.

4:47 AM Changeset in webkit [207284] by Antti Koivisto
  • 5 edits in trunk/Source/WebCore

[Win] Encode function pointers.
https://bugs.webkit.org/show_bug.cgi?id=163331

Patch by Per Arne Vollan <pvollan@apple.com> on 2016-10-12
Reviewed by Brent Fulgham.

We should encode stored function pointers.

  • platform/win/SoftLinking.h:
4:41 AM Changeset in webkit [207283] by clopez@igalia.com
  • 8 edits
    2 adds in trunk/LayoutTests

[GTK] Rebaseline tests affected by r207280 and report 3 new failures on accesibility tests.
https://bugs.webkit.org/show_bug.cgi?id=163383

Unreviewed gardening.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-capacity-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-appearances-rating-relevancy-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-boundary-values-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Added.
  • platform/gtk/fast/dom/HTMLMeterElement/meter-optimums-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
  • platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt:
4:30 AM Changeset in webkit [207282] by pvollan@apple.com
  • 2 edits in trunk/Source/WebCore

[Win] Encode function pointers.
https://bugs.webkit.org/show_bug.cgi?id=163331

Reviewed by Brent Fulgham.

We should encode stored function pointers.

  • platform/win/SoftLinking.h:
3:34 AM Changeset in webkit [207281] by commit-queue@webkit.org
  • 16 edits in trunk/Source/WebCore

Remove CachedResourceRequest::mutableResourceRequest
https://bugs.webkit.org/show_bug.cgi?id=163277

Patch by Youenn Fablet <youenn@apple.com> on 2016-10-13
Reviewed by Sam Weinig.

No change of behavior.

Removing CachedResourceRequest::mutableResourceRequest requires call sites to either update the ResourceRequest
before creating the CachedResourceRequest or to add methods at CachedResourceRequest.

Adding CachedResourceRequest::releaseResourceRequest for CachedResource constructor.

Most new CachedResourceRequest methods are used by CachedResourceLoader which is passed a CachedResourceRequest.
This allows code in CachedResourceLoader to be easier to read.

  • css/CSSImageSetValue.cpp:

(WebCore::CSSImageSetValue::loadBestFitImage):

  • css/CSSImageValue.cpp:

(WebCore::CSSImageValue::loadImage):

  • dom/ScriptElement.cpp:

(WebCore::ScriptElement::requestScriptWithCache):

  • loader/CrossOriginAccessControl.cpp:

(WebCore::createAccessControlPreflightRequest):

  • loader/CrossOriginAccessControl.h:
  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::startPreflight):
(WebCore::CrossOriginPreflightChecker::doPreflight):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/MediaResourceLoader.cpp:

(WebCore::MediaResourceLoader::requestResource):

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::CachedResource):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestImage):
(WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
(WebCore::CachedResourceLoader::prepareFetch):
(WebCore::CachedResourceLoader::updateHTTPRequestHeaders):
(WebCore::CachedResourceLoader::requestResource):
(WebCore::acceptHeaderValueFromType): Deleted.
(WebCore::updateRequestAccordingCacheMode): Deleted.

  • loader/cache/CachedResourceRequest.cpp:

(WebCore::CachedResourceRequest::setAsPotentiallyCrossOrigin):
(WebCore::CachedResourceRequest::updateForAccessControl):
(WebCore::CachedResourceRequest::upgradeInsecureRequestIfNeeded):
(WebCore::CachedResourceRequest::setDomainForCachePartition):
(WebCore::acceptHeaderValueFromType):
(WebCore::CachedResourceRequest::setAcceptHeaderIfNone):
(WebCore::CachedResourceRequest::updateAccordingCacheMode):
(WebCore::CachedResourceRequest::removeFragmentIdentifierIfNeeded):
(WebCore::CachedResourceRequest::applyBlockedStatus):

  • loader/cache/CachedResourceRequest.h:

(WebCore::CachedResourceRequest::releaseResourceRequest):
(WebCore::CachedResourceRequest::setCachingPolicy):
(WebCore::CachedResourceRequest::mutableResourceRequest): Deleted.
(WebCore::CachedResourceRequest::setCacheModeToNoStore): Deleted.

  • loader/icon/IconLoader.cpp:

(WebCore::IconLoader::startLoading):

  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:

(WebCore::WebCoreAVCFResourceLoader::startLoading):

  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:

(WebCore::WebCoreAVFResourceLoader::startLoading):

2:22 AM Changeset in webkit [207280] by Antti Koivisto
  • 27 edits
    2 adds
    3 deletes in trunk

Support scoped style for user agent shadow trees
https://bugs.webkit.org/show_bug.cgi?id=163212
<rdar://problem/28715318>

Reviewed by Ryosuke Niwa and Andreas Kling.

Source/WebCore:

This patch adds support for user agent shadow trees that have scoped style. This means
that the shadows can be styled via <style> elements contained in the tree instead of
using pseudo elements on the global UA sheet. Since the style is scoped it can use
normal id and class selectors.

Elements in the shadow tree can still be exposed for author styling if needed by giving
them pseudo ids

The patch also uses the new mechanism for the <meter> element.

The mechanism is not optimized yet, each shadow tree gets its own copy of style-related data
structures. This can be improved later.

  • CMakeLists.txt:
  • DerivedSources.make:
  • WebCore.xcodeproj/project.pbxproj:
  • css/ElementRuleCollector.cpp:

(WebCore::MatchRequest::MatchRequest):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::matchAuthorShadowPseudoElementRules):

Make treeContextOrdinal an int so we can use negative ordinals. This is used to allow author pseudo
elements from earlier tree context to win over the shadow tree (matching CSS scoping spec language).

  • css/ElementRuleCollector.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::MatchResult::addMatchedProperties):
(WebCore::StyleResolver::CascadedProperties::addImportantMatches):

  • css/StyleResolver.h:
  • css/html.css:

(meter::-webkit-meter-inner-element): Deleted.
(meter::-webkit-meter-bar): Deleted.
(meter::-webkit-meter-optimum-value): Deleted.
(meter::-webkit-meter-suboptimum-value): Deleted.
(meter::-webkit-meter-even-less-good-value): Deleted.

Remove meter pseudo elements from the UA sheet.

  • html/HTMLMeterElement.cpp:

(WebCore::HTMLMeterElement::childShouldCreateRenderer):

Don't create shadow renderers when we have appearance (are using RenderMeter).

(WebCore::setValueClass):

Move this logic here from MeterShadowElement.cpp.
Set both class and pseudo id. The latter is needed to keep author styling working.

(WebCore::HTMLMeterElement::didElementStateChange):
(WebCore::HTMLMeterElement::renderMeter):

RenderMeter is now only instantiated when appearance is enabled.

(WebCore::HTMLMeterElement::didAddUserAgentShadowRoot):

Build the shadow tree out of <div>s instead of special shadow elements.

  • html/HTMLMeterElement.h:
  • html/shadow/MeterShadowElement.cpp: Removed.
  • html/shadow/MeterShadowElement.h: Removed.

Not needed anymore.

  • html/shadow/meterElementShadow.css: Added.

(div#inner):
(div#bar):
(div#value):
(div#value.optimum):
(div#value.suboptimum):
(div#value.even-less-good):

Stylesheet for meter element shadow tree using normal id and class selectors.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::shouldUseSharedUserAgentShadowTreeStyleResolver):

Switch to per-scope style resolver for UA shadow trees if there is stylesheets in the tree.

(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::resolverIfExists):

  • style/StyleScope.h:

LayoutTests:

  • fast/dom/HTMLMeterElement/meter-clone-expected.txt:
  • fast/dom/HTMLMeterElement/meter-clone.html:
  • fast/dom/HTMLMeterElement/meter-element-markup-expected.txt:
  • platform/mac/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-changing-pseudo-expected.txt:
  • platform/mac/fast/dom/HTMLMeterElement/meter-styles-expected.txt:
Note: See TracTimeline for information about the timeline view.