Timeline



Dec 12, 2015:

9:09 PM Changeset in webkit [194013] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: CodeMirrorTokenTrackingController handles symbols in class definitions incorrectly
https://bugs.webkit.org/show_bug.cgi?id=152218

Reviewed by Timothy Hatcher.

  • UserInterface/Controllers/CodeMirrorTokenTrackingController.js:

(WebInspector.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression):
Stop checking for object literal shorthand property if an open parenthesis is found.
This check became necessary with the introduction of ES6 class syntax.

  • UserInterface/Views/CodeMirrorAdditions.js:

Use localState when available, to prevent passing a state that doesn't define a tokenize property.

8:43 PM WebInspectorCodingStyleGuide edited by Nikita Vasilyev
Add CSS z-index (diff)
3:49 PM Changeset in webkit [194012] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

Modern IDB: Update a couple of tests that fail only because of error message differences.
https://bugs.webkit.org/show_bug.cgi?id=152205

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/objectstore-autoincrement-expected.txt:
  • storage/indexeddb/open-cursor-expected.txt:
3:04 PM Changeset in webkit [194011] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Add lowering for B3's Store8 opcode
https://bugs.webkit.org/show_bug.cgi?id=152208

Reviewed by Geoffrey Garen.

B3 has an opcode to store 8bit values but it had
no lowering.

  • b3/B3LowerToAir.cpp:

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

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

(JSC::B3::testStore8Arg):
(JSC::B3::testStore8Imm):
(JSC::B3::testStorePartial8BitRegisterOnX86):
(JSC::B3::run):

2:03 PM Changeset in webkit [194010] by beidson@apple.com
  • 9 edits in trunk

Modern IDB: storage/indexeddb/index-duplicate-keypaths.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152201

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

The spec states that if an object store uses a key generator, and then a record is stored whose
key was an explicitly set number, then the key generator value should be bumped to the next
integer higher than the explicit number.

We didn't do that.

Now we do.

  • Modules/indexeddb/IndexedDB.h: Add an "OverwriteForCursor" option for overwrite mode.
  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putForCursorUpdate): Use the "OverwriteForCursor" mode.

  • Modules/indexeddb/server/IDBBackingStore.h: Add maybeUpdateKeyGeneratorNumber
  • Modules/indexeddb/server/MemoryIDBBackingStore.cpp:

(WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber): If the number value

from the provided key should bump the key generator value, do so now.

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

(WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): After successfully adding the new record,

possibly bump the key generator value.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
9:37 AM Changeset in webkit [194009] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

REGRESSION (r191613): Web Inspector: Can't type spaces when editing DOM nodes
https://bugs.webkit.org/show_bug.cgi?id=152173

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

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
Disable the keyboard shortcuts when they are created. They will be
enabled when the panel is shown / hidden. It doesn't really make sense
that these are on the sidebar panel instead of the tab, but things
will be changing in Timelines soon anyways so just fix this now.

9:32 AM Changeset in webkit [194008] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: "Selected Element" should use sans-serif font, not monospace
https://bugs.webkit.org/show_bug.cgi?id=152212

Reviewed by Timothy Hatcher.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-user-command.special-user-log > .console-message-text):

3:21 AM Changeset in webkit [194007] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Add the missing setupArgumentsWithExecState functions after r193974
https://bugs.webkit.org/show_bug.cgi?id=152214

Reviewed by Mark Lam.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::setupArgumentsWithExecState):

1:26 AM Changeset in webkit [194006] by commit-queue@webkit.org
  • 13 edits in trunk/Source

Safari background tabs should be fully suspended where possible.
https://bugs.webkit.org/show_bug.cgi?id=150515

Patch by Katlyn Graff <kgraff@apple.com> on 2015-12-12
Reviewed by Ryosuke Niwa.

Source/WebCore:

Support for tab suspension for Mac, enabled by defaults writing to WebKitTabSuspension.
Page-down suspension consolidated with PageCache suspension code in Document::
suspend and Document::resume. Pages canTabSuspend if cacheable, nonvisible, nonprerender,
and nonactive.

  • dom/Document.cpp: moved scrollbar handling from setInPageCache to suspend/resume

(WebCore::Document::suspend): moved scrollbar, dom, animation, timer, and visual update suspending into here
(WebCore::Document::resume): moved scrollbar, dom, animation, timer, and visual update resuming into here

  • dom/Document.h: added m_isSuspended to prevent repeat calls from PageCache/Tab Suspension contention
  • history/CachedFrame.cpp: moved dom, animation, and timer suspension into Document::suspend

(WebCore::CachedFrame::CachedFrame):

  • history/PageCache.cpp: Added a few nullchecks to prevent crashes if canCacheFrame is called but document is null

(WebCore::PageCache::canCacheFrame):

  • page/Page.cpp:

(WebCore::Page::Page): Added timer to fire delayed suspension
(WebCore::Page::setPageActivityState): Added a call to schedule tab suspension
(WebCore::Page::setIsVisibleInternal): Added a call to schedule tab suspension
(WebCore::Page::canTabSuspend): Added support for suspending if cacheable, nonvisible, nonprerender, and nonactive
(WebCore::Page::setIsTabSuspended): Added a function to suspend or resume tabs
(WebCore::Page::setTabSuspensionEnabled): Added support for a defaults write enable
(WebCore::Page::scheduleTabSuspension): Added ability to schedule the suspension timer to fire or resume
(WebCore::Page::timerFired): Added a suspension timer

  • page/Page.h:
  • page/PageThrottler.h:

(WebCore::PageThrottler::activityState): Added access to m_activityState for canTabSuspend

Source/WebKit2:

Added a runtime flag enabling tab suspension, default off.

  • Shared/WebProcessCreationParameters.cpp:

(WebKit::WebProcessCreationParameters::WebProcessCreationParameters):
(WebKit::WebProcessCreationParameters::encode):
(WebKit::WebProcessCreationParameters::decode):

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

(WebKit::registerUserDefaultsIfNeeded):
(WebKit::WebProcessPool::platformInitializeWebProcess):

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess):

Dec 11, 2015:

11:44 PM Changeset in webkit [194005] by Joseph Pecoraro
  • 2 edits in trunk/Source/JavaScriptCore

Web Inspector: Too many derefs when RemoteInspectorXPCConnection fails to validate connection
https://bugs.webkit.org/show_bug.cgi?id=152213

Rubber-stamped by Ryosuke Niwa.

  • inspector/remote/RemoteInspectorXPCConnection.mm:

(Inspector::RemoteInspectorXPCConnection::handleEvent):
We should just close the XPC connection triggering XPC_ERROR_CONNECTION_INVALID
which will then graceful teardown the connection as expected.

10:58 PM Changeset in webkit [194004] by Simon Fraser
  • 3 edits
    2 adds in trunk

Mousewheel events don't work in iframes in RTL documents
https://bugs.webkit.org/show_bug.cgi?id=152200

Reviewed by Beth Dakin.

Source/WebCore:

When dispatching wheel events, the testing of the event point against the
non-fast scrollable region was broken in an RTL document. Fix by taking
the scrollOrigin into account in ScrollingTreeFrameScrollingNode::viewToContentsOffset().

Test: fast/scrolling/rtl-point-in-iframe.html

  • page/scrolling/ScrollingTreeFrameScrollingNode.cpp:

(WebCore::ScrollingTreeFrameScrollingNode::viewToContentsOffset):

LayoutTests:

Try dispatching wheel events to an iframe in an RTL document.

  • fast/scrolling/rtl-point-in-iframe-expected.txt: Added.
  • fast/scrolling/rtl-point-in-iframe.html: Added.
10:10 PM Changeset in webkit [194003] by commit-queue@webkit.org
  • 21 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Add Floating Point Abs() to B3
https://bugs.webkit.org/show_bug.cgi?id=152176

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

This patch adds an Abs() operation for floating point.

On x86, Abs() is implemented by masking the top bit
of the floating point value. On ARM64, there is a builtin
abs opcode.

To account for those differences, B3 use "Abs" as
the cannonical operation. When we are about to lower
to Air, Abs is extended on x86 to get a clean handling
of the mask constants.

This patch has one cool thing related to FTL.
If you do:

@1 = unboxDouble(@0)
@2 = abs(@1)
@3 = boxDouble(@2)

B3ReduceStrength completely eliminate the Double-Integer
conversion.

The strength reduction of Abs is aware that it can do a bit
mask over the bitcast used by unboxing.
If even works if you use floats by forcing fround: reduceDoubleToFloat()
elminiates the useless conversions, followed by ReduceStrength
that removes the switch from GP to FP.

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

(JSC::MacroAssemblerX86Common::andDouble):
(JSC::MacroAssemblerX86Common::andFloat):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::andps_rr):

  • b3/B3ConstDoubleValue.cpp:

(JSC::B3::ConstDoubleValue::bitAndConstant):
(JSC::B3::ConstDoubleValue::absConstant):

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

(JSC::B3::ConstFloatValue::bitAndConstant):
(JSC::B3::ConstFloatValue::absConstant):

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

(JSC::B3::generateToAir):

  • b3/B3LowerMacrosAfterOptimizations.cpp: Added.

(JSC::B3::lowerMacrosAfterOptimizations):

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

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

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

(JSC::B3::Value::absConstant):
(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

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

(JSC::B3::bitAndDouble):
(JSC::B3::testBitAndArgDouble):
(JSC::B3::testBitAndArgsDouble):
(JSC::B3::testBitAndArgImmDouble):
(JSC::B3::testBitAndImmsDouble):
(JSC::B3::bitAndFloat):
(JSC::B3::testBitAndArgFloat):
(JSC::B3::testBitAndArgsFloat):
(JSC::B3::testBitAndArgImmFloat):
(JSC::B3::testBitAndImmsFloat):
(JSC::B3::testBitAndArgsFloatWithUselessDoubleConversion):
(JSC::B3::testAbsArg):
(JSC::B3::testAbsImm):
(JSC::B3::testAbsMem):
(JSC::B3::testAbsAbsArg):
(JSC::B3::testAbsBitwiseCastArg):
(JSC::B3::testBitwiseCastAbsBitwiseCastArg):
(JSC::B3::testAbsArgWithUselessDoubleConversion):
(JSC::B3::testAbsArgWithEffectfulDoubleConversion):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleAbs):

7:26 PM Changeset in webkit [194002] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: !rect.isEmpty() in WebCore::GraphicsContext::drawRect
https://bugs.webkit.org/show_bug.cgi?id=151201

Reviewed by Simon Fraser.

Drawing empty rect is a waste.

Source/WebCore:

Test: fast/borders/empty-drawrect-assert-after-pixelsnap.html

  • rendering/RenderElement.cpp:

(WebCore::RenderElement::drawLineForBoxSide):

LayoutTests:

  • fast/borders/empty-drawrect-assert-after-pixelsnap-expected.txt: Added.
  • fast/borders/empty-drawrect-assert-after-pixelsnap.html: Added.
6:26 PM Changeset in webkit [194001] by jiewen_tan@apple.com
  • 3 edits
    4 adds in trunk

Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
https://bugs.webkit.org/show_bug.cgi?id=152102
<rdar://problem/22124230>

Reviewed by Andy Estes.

Source/WebCore:

Keep the ReferrerPolicy for a document as ReferrerPolicyNever if the document is loaded with
"Content-Disposition: attachment".

Test: http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):
(WebCore::Document::applyContentDispositionAttachmentSandbox):

LayoutTests:

  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Added.
5:52 PM Changeset in webkit [194000] by eric.carlson@apple.com
  • 22 edits
    2 adds in trunk

[MediaStream] Add a setting to allow the mock media capture devices to be enabled and disabled
https://bugs.webkit.org/show_bug.cgi?id=152197

Reviewed by Dean Jackson.

Source/WebCore:

Test: fast/mediastream/mock-media-source.html

  • page/Settings.cpp:

(WebCore::Settings::mockCaptureDevicesEnabled):
(WebCore::Settings::setMockCaptureDevicesEnabled):

  • page/Settings.h:
  • platform/mediastream/RealtimeMediaSourceCenter.cpp:

(WebCore::RealtimeMediaSourceCenter::setSharedStreamCenterOverride): Renamed.
(WebCore::RealtimeMediaSourceCenter::setSharedStreamCenter): Deleted.

  • platform/mediastream/RealtimeMediaSourceCenter.h:
  • platform/mock/MockRealtimeMediaSourceCenter.cpp:

(WebCore::MockRealtimeMediaSourceCenter::setMockRealtimeMediaSourceCenterEnabled): Renamed. Allow

it to be enabled and disabled.

(WebCore::MockRealtimeMediaSourceCenter::registerMockRealtimeMediaSourceCenter): Deleted.

  • platform/mock/MockRealtimeMediaSourceCenter.h:
  • testing/Internals.cpp:

(WebCore::Internals::Internals):
(WebCore::Internals::setMockMediaCaptureDevicesEnabled):

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

Source/WebKit/mac:

  • WebView/WebPreferenceKeysPrivate.h:
  • WebView/WebPreferences.mm:

(+[WebPreferences initialize]):
(-[WebPreferences mockCaptureDevicesEnabled]):
(-[WebPreferences setMockCaptureDevicesEnabled:]):

  • WebView/WebPreferencesPrivate.h:
  • WebView/WebView.mm:

(-[WebView _preferencesChanged:]):

Source/WebKit2:

  • Shared/WebPreferencesDefinitions.h:
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesSetMockCaptureDevicesEnabled):
(WKPreferencesGetMockCaptureDevicesEnabled):

  • UIProcess/API/C/WKPreferencesRefPrivate.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _mockCaptureDevicesEnabled]):
(-[WKPreferences _setMockCaptureDevicesEnabled:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):

LayoutTests:

  • fast/mediastream/mock-media-source-expected.txt: Added.
  • fast/mediastream/mock-media-source.html: Added.
5:46 PM Changeset in webkit [193999] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[EME] Do not pass in the initialization data to AVContentKeyRequest as the contentIdentifier.
https://bugs.webkit.org/show_bug.cgi?id=152204
rdar://problem/23867877

Reviewed by Eric Carlson.

The AVContentKeyRequest API has been updated to no longer require a contentId parameter if the
ID can be derived from the initialization data.

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::update):

5:32 PM Changeset in webkit [193998] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Removed some dead code, and simplified some code in the baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=152199

Reviewed by Benjamin Poulain.

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emitBitBinaryOpFastPath):
(JSC::JIT::emit_op_bitand):
(JSC::JIT::emitSlow_op_lshift):
(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emit_op_rshift):
(JSC::JIT::emitSlow_op_rshift):
(JSC::JIT::emit_op_urshift):
(JSC::JIT::emitSlow_op_urshift):

5:21 PM Changeset in webkit [193997] by Beth Dakin
  • 3 edits
    2 adds in trunk

_touchEventRegions should return regions in the view's coordinates
https://bugs.webkit.org/show_bug.cgi?id=152189
-and corresponding-
rdar://problem/23188605

Reviewed by Dan Bernstein.

Source/WebKit/mac:

The comment here was actually out of date. It claimed that touch rectangles
are in the coordinate system of the document, but we had actually changed
them to be in the view’s coordinate system in order to fix issues with
handling touch events in UIWebView. But now we are going back to having the
touch rectangles be in the document’s coordinate system, so we should fix the
rtl bugs here by converting to view coordinates before handing the rects off
to iOS WK1 clients.

  • WebView/WebView.mm:

(-[WebView _touchEventRegions]):

LayoutTests:

  • fast/events/touch/ios/touch-event-rtl-expected.txt: Added.
  • fast/events/touch/ios/touch-event-rtl.html: Added.
4:46 PM Changeset in webkit [193996] by matthew_hanson@apple.com
  • 1 copy in tags/Safari-601.1.46.86

Submission Notes.

4:45 PM Changeset in webkit [193995] by ap@apple.com
  • 3 edits
    4 deletes in trunk

Roll out http://trac.webkit.org/r193984, because the new test is timing out.

Was: Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
https://bugs.webkit.org/show_bug.cgi?id=152102
<rdar://problem/22124230>

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):
(WebCore::Document::applyContentDispositionAttachmentSandbox):

LayoutTests:

  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Removed.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Removed.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Removed.
4:18 PM Changeset in webkit [193994] by beidson@apple.com
  • 7 edits in trunk

tmp for 152194

4:17 PM Changeset in webkit [193993] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

B3::reduceStrength should remove redundant Phi's
https://bugs.webkit.org/show_bug.cgi?id=152184

Reviewed by Benjamin Poulain.

This adds redundant Phi removal using Aycock and Horspools SSA simplification algorithm. This
is needed because even in simple asm.js code, we see a lot of CFG simplification that leaves
behind totally useless Phi's.

  • b3/B3PhiChildren.cpp:

(JSC::B3::PhiChildren::PhiChildren):

  • b3/B3PhiChildren.h:

(JSC::B3::PhiChildren::at):
(JSC::B3::PhiChildren::operator[]):
(JSC::B3::PhiChildren::phis):

  • b3/B3ReduceStrength.cpp:
4:11 PM Changeset in webkit [193992] by rniwa@webkit.org
  • 2 edits in trunk/Websites/perf.webkit.org

Perf dashboard's buildbot sync config JSON duplicates too much information
https://bugs.webkit.org/show_bug.cgi?id=152196

Reviewed by Stephanie Lewis.

Added shared, per-builder, and per-test (called type) configurations.

  • tools/sync-with-buildbot.py:

(load_config):
(load_config.merge):

3:54 PM Changeset in webkit [193991] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Followup to:
Modern IDB: storage/indexeddb/index-count.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152175

Noticed by Darin Adler.

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::count): Replace a curly brace to its proper place.

3:52 PM Changeset in webkit [193990] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: storage/indexeddb/cursor-continue.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152192

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/client/IDBCursorImpl.cpp:

(WebCore::IDBClient::IDBCursor::continueFunction): Check against the current key, not the current primary key.
(WebCore::IDBClient::IDBCursor::setGetResult): Also save off the current IDBKeyData.

  • Modules/indexeddb/client/IDBCursorImpl.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/cursor-continue-expected.txt:
3:45 PM Changeset in webkit [193989] by benjamin@webkit.org
  • 8 edits
    2 adds in trunk/Source/JavaScriptCore

[JSC] Add an implementation of pow() taking an integer exponent to B3
https://bugs.webkit.org/show_bug.cgi?id=152165

Reviewed by Mark Lam.

LLVM has this really neat optimized opcode for
raising the power of something by an integer exponent.

There is no such native instruction so we need to extend
the existing FTLOutput API to something efficient.

DFG has a pretty competitive implementation. In this patch,
I added a version of it to B3.
I created powDoubleInt32() instead of putting the code directly
in FTL for easier testing and optimization.

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

(JSC::B3::powDoubleInt32):

  • b3/B3MathExtras.h: Added.
  • b3/B3MemoryValue.h:
  • b3/testb3.cpp:

(JSC::B3::testPowDoubleByIntegerLoop):
(JSC::B3::run):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::compileArithPowIntegerFastPath):

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::doublePowi):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doublePowi): Deleted.

3:30 PM Changeset in webkit [193988] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/index-basics.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152190

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • bindings/js/JSIDBObjectStoreCustom.cpp:

(WebCore::JSIDBObjectStore::createIndex): Custom error message for the TypeError

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:20 PM Changeset in webkit [193987] by fpizlo@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

B3 should have CSE
https://bugs.webkit.org/show_bug.cgi?id=150961

Reviewed by Benjamin Poulain.

This implements a very simple CSE for pure values. I need this as a prerequisite for other
optimizations that I'm implementing. For now, this is neutral on imaging-gaussian-blur but a
slow-down on asm.js code. I suspect that the asm.js slow-down is because of other things that are
still going wrong, and anyway, I need CSE to be able to do even the most basic asm.js strength
reductions.

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

(JSC::B3::Value::replaceWithIdentity):
(JSC::B3::Value::key):

3:09 PM Changeset in webkit [193986] by keith_miller@apple.com
  • 2 edits in trunk/LayoutTests

Rebaseline a failing inspector test for a new property on Function.prototype.

  • inspector/model/remote-object-get-properties-expected.txt:
3:01 PM Changeset in webkit [193985] by mark.lam@apple.com
  • 10 edits
    1 delete in trunk/Source/JavaScriptCore

Refactoring to reduce potential cut-paste errors with the FTL ICs.
https://bugs.webkit.org/show_bug.cgi?id=152185

Reviewed by Saam Barati.

  • ftl/FTLCompile.cpp:
  • ICs now have their own names. GetById and PutByID fast path ICs no longer just say "inline cache fast path".
  • ftl/FTLCompileBinaryOp.cpp:

(JSC::FTL::generateBinaryArithOpFastPath):

  • Fixed an indentation.
  • ftl/FTLInlineCacheDescriptor.h:

(JSC::FTL::InlineCacheDescriptor::InlineCacheDescriptor):
(JSC::FTL::InlineCacheDescriptor::name):
(JSC::FTL::GetByIdDescriptor::GetByIdDescriptor):
(JSC::FTL::PutByIdDescriptor::PutByIdDescriptor):
(JSC::FTL::CheckInDescriptor::CheckInDescriptor):
(JSC::FTL::BinaryOpDescriptor::nodeType):
(JSC::FTL::BinaryOpDescriptor::size):
(JSC::FTL::BinaryOpDescriptor::slowPathFunction):
(JSC::FTL::BinaryOpDescriptor::leftOperand):
(JSC::FTL::BinaryOpDescriptor::BinaryOpDescriptor):
(JSC::FTL::ArithDivDescriptor::ArithDivDescriptor):
(JSC::FTL::ArithDivDescriptor::icSize):
(JSC::FTL::ArithDivDescriptor::nodeType):
(JSC::FTL::ArithDivDescriptor::opName):
(JSC::FTL::ArithDivDescriptor::slowPathFunction):
(JSC::FTL::ArithDivDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::ArithMulDescriptor::ArithMulDescriptor):
(JSC::FTL::ArithMulDescriptor::icSize):
(JSC::FTL::ArithMulDescriptor::nodeType):
(JSC::FTL::ArithMulDescriptor::opName):
(JSC::FTL::ArithMulDescriptor::slowPathFunction):
(JSC::FTL::ArithMulDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::ArithSubDescriptor::ArithSubDescriptor):
(JSC::FTL::ArithSubDescriptor::icSize):
(JSC::FTL::ArithSubDescriptor::nodeType):
(JSC::FTL::ArithSubDescriptor::opName):
(JSC::FTL::ArithSubDescriptor::slowPathFunction):
(JSC::FTL::ArithSubDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::ValueAddDescriptor::ValueAddDescriptor):
(JSC::FTL::ValueAddDescriptor::icSize):
(JSC::FTL::ValueAddDescriptor::nodeType):
(JSC::FTL::ValueAddDescriptor::opName):
(JSC::FTL::ValueAddDescriptor::slowPathFunction):
(JSC::FTL::ValueAddDescriptor::nonNumberSlowPathFunction):
(JSC::FTL::LazySlowPathDescriptor::LazySlowPathDescriptor):
(JSC::FTL::ProbeDescriptor::ProbeDescriptor):
(JSC::FTL::BinaryOpDescriptor::name): Deleted.
(JSC::FTL::BinaryOpDescriptor::fastPathICName): Deleted.

  • ftl/FTLInlineCacheDescriptorInlines.h: Removed.
  • Consolidate the number of places where we have to fill in a data about new snippet ICs. It is all done in FTLInlineCacheDescriptor.h now.
  • ftl/FTLJITFinalizer.cpp:

(JSC::FTL::JITFinalizer::finalizeFunction):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileUntypedBinaryOp):
(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithAddOrSub):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithDiv):

  • Introduced a compileUntypedBinaryOp() template and use that at all the FTL places that need to use a snippet. This reduces the amount of cut and paste code.
  • ftl/FTLState.h:
  • Removed a bad #include.
2:43 PM Changeset in webkit [193984] by jiewen_tan@apple.com
  • 3 edits
    4 adds in trunk

Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
https://bugs.webkit.org/show_bug.cgi?id=152102
<rdar://problem/22124230>

Reviewed by Andy Estes.

Source/WebCore:

Keep the ReferrerPolicy for a document as ReferrerPolicyNever if the document is loaded with
"Content-Disposition: attachment".

Test: http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html

  • dom/Document.cpp:

(WebCore::Document::processReferrerPolicy):
(WebCore::Document::applyContentDispositionAttachmentSandbox):

LayoutTests:

  • http/tests/contentdispositionattachmentsandbox/resources/echo-http-referer.php: Added.
  • http/tests/contentdispositionattachmentsandbox/resources/subresource-request-not-include-referer-header-frame.php: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header-expected.txt: Added.
  • http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html: Added.
2:39 PM Changeset in webkit [193983] by keith_miller@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Overrides has instance should not move ValueFalse to a register then immediately to the stack in the LLInt.
https://bugs.webkit.org/show_bug.cgi?id=152188

Reviewed by Mark Lam.

This fixes a minor issue with the code for the overrides_has_instance in the LLInt. Old code had an extra move,
which is both slow and breaks the build on cloop.

  • llint/LowLevelInterpreter64.asm:
2:33 PM Changeset in webkit [193982] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/events/ios tests as flaky on ios-simulator due to timeouts
https://bugs.webkit.org/show_bug.cgi?id=152134

Unreviewed test gardening.

  • platform/ios-simulator/TestExpectations:
2:14 PM Changeset in webkit [193981] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: storage/indexeddb/key-type-array.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152187

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putOrAdd): Perform the correct validity check on array keys.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/key-type-array-expected.txt:
2:12 PM Changeset in webkit [193980] by beidson@apple.com
  • 7 edits in trunk/LayoutTests

Modern IDB: Updates to 3 intversion tests, and/or their results.
https://bugs.webkit.org/show_bug.cgi?id=152179

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/storage/indexeddb/intversion-close-in-oncomplete-expected.txt:
  • storage/indexeddb/intversion-close-in-oncomplete-expected.txt:
  • storage/indexeddb/intversion-close-in-upgradeneeded-expected.txt:
  • storage/indexeddb/intversion-upgrades-expected.txt:
  • storage/indexeddb/resources/intversion-close-in-oncomplete.js:
1:56 PM Changeset in webkit [193979] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r190911. rdar://problem/23732405

1:56 PM Changeset in webkit [193978] by matthew_hanson@apple.com
  • 4 edits
    6 adds in branches/safari-601-branch

Merge r191590. rdar://problem/23732405

1:55 PM Changeset in webkit [193977] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601-branch/Source/WebCore

Merge r190914. rdar://problem/23732405

1:55 PM Changeset in webkit [193976] by matthew_hanson@apple.com
  • 22 edits in branches/safari-601-branch/Source/WebCore

Merge r190910. rdar://problem/23732405

1:47 PM Changeset in webkit [193975] by jonlee@apple.com
  • 3 edits in trunk/PerformanceTests

Improve Animometer on iOS
https://bugs.webkit.org/show_bug.cgi?id=152180

Reviewed by Simon Fraser.

Improve experience on phones. Make the canvas take
up the whole screen.

  • Animometer/runner/animometer.html: Add meta viewport.

Remove the container div.

  • Animometer/runner/resources/animometer.css: Have buttons lay

out vertically. Update detail arrow glyph. Make the suites and
options section lay out vertically. Remove the top spacers since
we want the canvas to take over the whole screen. Minimal display
is recommended for use.

1:43 PM Changeset in webkit [193974] by keith_miller@apple.com
  • 64 edits
    5 adds in trunk

[ES6] Add support for Symbol.hasInstance
https://bugs.webkit.org/show_bug.cgi?id=151839

Reviewed by Saam Barati.

Source/JavaScriptCore:

This patch adds support for Symbol.hasInstance, unfortunately in order to prevent
regressions several new bytecodes and DFG IR nodes were necessary. Before, Symbol.hasInstance
when executing an instanceof expression we would emit three bytecodes: overrides_has_instance, get_by_id,
then instanceof. As the spec has changed, we emit a more complicated set of bytecodes in addition to some
new ones. First the role of overrides_has_instance and its corresponding DFG node have changed. Now it returns
a js-boolean indicating whether the RHS of the instanceof expression (from here on called the constructor for simplicity)
needs non-default behavior for resolving the expression. i.e. The constructor has a Symbol.hasInstance that differs from the one on
Function.prototype[Symbol.hasInstance] or is a bound/C-API function. Once we get to the DFG this node is generally eliminated as
we can prove the value of Symbol.hasInstance is a constant. The second new bytecode is instanceof_custom. insntanceof_custom, just
emits a call to slow path code that computes the result.

In the DFG, there is also a new node, CheckTypeInfoFlags, which checks the type info flags are consistent with the ones provided and
OSR exits if the flags are not. Additionally, we attempt to prove that the result of CheckHasValue will be a constant and transform
it into a CheckTypeInfoFlags followed by a JSConstant.

  • API/JSCallbackObject.h:
  • builtins/FunctionPrototype.js:

(symbolHasInstance):

  • bytecode/BytecodeBasicBlock.cpp:

(JSC::isBranch): Deleted.

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/ExitKind.cpp:

(JSC::exitKindToString):

  • bytecode/ExitKind.h:
  • bytecode/PreciseJumpTargets.cpp:

(JSC::getJumpTargetsForBytecodeOffset): Deleted.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitOverridesHasInstance):
(JSC::BytecodeGenerator::emitInstanceOfCustom):
(JSC::BytecodeGenerator::emitCheckHasInstance): Deleted.

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::InstanceOfNode::emitBytecode):

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

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

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:
  • dfg/DFGNode.h:

(JSC::DFG::Node::hasCellOperand):
(JSC::DFG::Node::hasTypeInfoOperand):
(JSC::DFG::Node::typeInfoOperand):

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckTypeInfoFlags):
(JSC::DFG::SpeculativeJIT::compileInstanceOfCustom):

  • dfg/DFGSpeculativeJIT.h:

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

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

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

(JSC::FTL::DFG::LowerDFGToLLVM::compileNode):
(JSC::FTL::DFG::LowerDFGToLLVM::compileOverridesHasInstance):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckTypeInfoFlags):
(JSC::FTL::DFG::LowerDFGToLLVM::compileInstanceOfCustom):
(JSC::FTL::DFG::LowerDFGToLLVM::compileCheckHasInstance): Deleted.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

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

(JSC::JIT::callOperation):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_instanceof_custom):
(JSC::JIT::emitSlow_op_instanceof):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emit_op_check_has_instance): Deleted.
(JSC::JIT::emitSlow_op_check_has_instance): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_overrides_has_instance):
(JSC::JIT::emit_op_instanceof):
(JSC::JIT::emit_op_instanceof_custom):
(JSC::JIT::emitSlow_op_instanceof_custom):
(JSC::JIT::emit_op_check_has_instance): Deleted.
(JSC::JIT::emitSlow_op_check_has_instance): Deleted.

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

(JSC::LLInt::Data::performAssertions):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • runtime/CommonIdentifiers.h:
  • runtime/ExceptionHelpers.cpp:

(JSC::invalidParameterInstanceofSourceAppender):
(JSC::invalidParameterInstanceofNotFunctionSourceAppender):
(JSC::invalidParameterInstanceofhasInstanceValueNotFunctionSourceAppender):
(JSC::createInvalidInstanceofParameterErrorNotFunction):
(JSC::createInvalidInstanceofParameterErrorhasInstanceValueNotFunction):
(JSC::createInvalidInstanceofParameterError): Deleted.

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

(JSC::FunctionPrototype::addFunctionProperties):

  • runtime/FunctionPrototype.h:
  • runtime/JSBoundFunction.cpp:

(JSC::isBoundFunction):
(JSC::hasInstanceBoundFunction):

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

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

  • runtime/JSGlobalObject.h:

(JSC::JSGlobalObject::functionProtoHasInstanceSymbolFunction):

  • runtime/JSObject.cpp:

(JSC::JSObject::hasInstance):
(JSC::objectPrivateFuncInstanceOf):

  • runtime/JSObject.h:
  • runtime/JSTypeInfo.h:

(JSC::TypeInfo::TypeInfo):
(JSC::TypeInfo::overridesHasInstance):

  • runtime/WriteBarrier.h:

(JSC::WriteBarrierBase<Unknown>::slot):

  • tests/es6.yaml:
  • tests/stress/instanceof-custom-hasinstancesymbol.js: Added.

(Constructor):
(value):
(instanceOf):
(body):

  • tests/stress/symbol-hasInstance.js: Added.

(Constructor):
(value):
(ObjectClass.Symbol.hasInstance):
(NumberClass.Symbol.hasInstance):

LayoutTests:

Fix tests to reflect the changes to instanceof in ES6.

Added a new regression test for bound functions in instanceof
as the perfomance on bound functions should, to some degree,
reflect the performance on C-API users.

  • js/Object-getOwnPropertyNames-expected.txt:
  • js/exception-for-nonobject-expected.txt:
  • js/exception-instanceof-expected.txt:
  • js/instance-of-immediates-expected.txt:
  • js/regress/instanceof-bound-expected.txt: Added.
  • js/regress/instanceof-bound.html: Added.
  • js/regress/script-tests/instanceof-bound.js: Added.

(Constructor):
(test):

  • js/script-tests/Object-getOwnPropertyNames.js:
1:01 PM Changeset in webkit [193973] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Updating mac-wk1 TestExpectations for fast/replaced/replaced-breaking.html to Yosemite+ to fix EWS bot results.
https://bugs.webkit.org/show_bug.cgi?id=152178

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
12:56 PM Changeset in webkit [193972] by commit-queue@webkit.org
  • 13 edits in trunk

check-for-inappropriate-objc-class-names should check all class names, not just externally visible ones
https://bugs.webkit.org/show_bug.cgi?id=152156

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-11
Reviewed by Dan Bernstein.

Source/JavaScriptCore:

  • llvm/InitializeLLVMMac.cpp:

Remove stale comment. The ObjC class this comment referenced
has already been removed.

Source/WebCore:

  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:

(WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession):

  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:

(WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession):
Rename classes with a "Web" prefix.

Source/WebKit2:

  • UIProcess/ios/WebVideoFullscreenManagerProxy.mm:

(WebKit::WebVideoFullscreenManagerProxy::setupFullscreenWithID):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h:
  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::RemoteLayerTreeDrawingAreaProxy):
Rename internal classes with "_WK" prefix.

Tools:

Our frameworks should appropriately prefix all ObjC classes,
not just external symbols.

  • Scripts/check-for-inappropriate-objc-class-names:

Remove the -g switch to check all ObjC class names.

12:52 PM Changeset in webkit [193971] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Speculative build fix.

11:56 AM Changeset in webkit [193970] by beidson@apple.com
  • 10 edits
    1 copy in trunk

Modern IDB: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152177

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::versionChangeTransactionDidFinish): Renamed from below.
(WebCore::IDBClient::IDBOpenDBRequest::versionChangeTransactionWillFinish): Deleted.

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::setVersionChangeTransaction): OpenDBRequests usually don't have transactions,

unless they end up being upgrade requests.

  • Modules/indexeddb/client/IDBRequestImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::IDBTransaction): Call setVersionChangeTransaction on the request if appropriate.
(WebCore::IDBClient::IDBTransaction::dispatchEvent): Call versionChangeTransactionDidFinish after the

abort/complete events fire.

(WebCore::IDBClient::IDBTransaction::abort): Deleted.
(WebCore::IDBClient::IDBTransaction::commit): Deleted.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt: Copied from LayoutTests/storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt.
  • storage/indexeddb/intversion-abort-in-initial-upgradeneeded-expected.txt:
  • storage/indexeddb/resources/intversion-abort-in-initial-upgradeneeded.js:
11:49 AM Changeset in webkit [193969] by jiewen_tan@apple.com
  • 1 edit
    2 adds in trunk/LayoutTests

Do not fire load events from frames with scripting disabled
https://bugs.webkit.org/show_bug.cgi?id=118042
<rdar://problem/14272857>

Reviewed by Brent Fulgham.

Since the crash is not reproducible, only test case from Blink r153029 is merged:
https://codereview.chromium.org/17682003

  • fast/images/image-load-event-crash-expected.txt: Added.
  • fast/images/image-load-event-crash.html: Added.
11:13 AM Changeset in webkit [193968] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: storage/indexeddb/index-count.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152175

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/client/IDBIndexImpl.cpp:

(WebCore::IDBClient::IDBIndex::count): If the passed in IDBKeyRange* is nullptr, use IDBKeyRangeData::allKeys.
(WebCore::IDBClient::IDBIndex::doCount): Change an isNull check to a more correct !isValid() check.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/index-count-expected.txt:
  • storage/indexeddb/modern/index-get-count-failures-expected.txt:
10:26 AM Changeset in webkit [193967] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601-branch

Merge r193922. rdar://problem/23727472

10:26 AM Changeset in webkit [193966] by matthew_hanson@apple.com
  • 12 edits
    3 adds in branches/safari-601-branch

Merge r193859. rdar://problem/23814477

10:26 AM Changeset in webkit [193965] by matthew_hanson@apple.com
  • 1 edit
    1 add in branches/safari-601-branch/Source/JavaScriptCore

Merge r193480. rdar://problem/23849785

10:26 AM Changeset in webkit [193964] by matthew_hanson@apple.com
  • 6 edits in branches/safari-601-branch/Source/JavaScriptCore

Merge r193470. rdar://problem/23849785

10:26 AM Changeset in webkit [193963] by matthew_hanson@apple.com
  • 5 edits
    3 adds in branches/safari-601-branch

Merge r192772. rdar://problem/23797220

10:26 AM Changeset in webkit [193962] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merge r192066. rdar://problem/23715623

10:26 AM Changeset in webkit [193961] by matthew_hanson@apple.com
  • 13 edits in branches/safari-601-branch/Source

Merge r191628. rdar://problem/23715623

10:26 AM Changeset in webkit [193960] by matthew_hanson@apple.com
  • 25 edits
    2 adds in branches/safari-601-branch/Source

Merge r191084. rdar://problem/23715623

9:45 AM Changeset in webkit [193959] by peavo@outlook.com
  • 3 edits in trunk/Source/WebCore

[WinCairo][MediaFoundation] Setting playback rate does not work.
https://bugs.webkit.org/show_bug.cgi?id=152172

Reviewed by Brent Fulgham.

Implement method to set playback rate.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::setRateDouble):
(WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
9:44 AM Changeset in webkit [193958] by dbates@webkit.org
  • 1 edit
    1 move
    12 adds in trunk/LayoutTests

[iOS][WK2] Update expected results for tests imported/w3c/web-platform-tests

  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/dom/interfaces-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-validity-valueMissing-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt: Renamed from LayoutTests/platform/ios-simulator/imported/w3c/web-platform-tests/html/semantics/forms/constraints/form-validation-willValidate-expected.txt.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/type-change-state-expected.txt: Added.
  • platform/ios-simulator-wk2/imported/w3c/web-platform-tests/html/semantics/interfaces-expected.txt: Added.
9:35 AM Changeset in webkit [193957] by Darin Adler
  • 19 edits
    4 deletes in trunk

Reduce the number of events that can be created by Document.createEvent
https://bugs.webkit.org/show_bug.cgi?id=151931

Reviewed by Alex Christensen.

LayoutTests/imported/w3c:

  • web-platform-tests/dom/events/ProgressEvent-expected.txt: Updated for progression.
  • web-platform-tests/html/semantics/embedded-content/media-elements/interfaces/TrackEvent/createEvent-expected.txt:

Ditto.

Source/WebCore:

Document.createEvent is intended for use only with a certain set of legacy events.
Ideally it should only be the ones mentioned in the DOM specification.

For now, at least remove all the events that can't usefully be created and initialized
this way. Later, we should cut it down even smaller. And stop automatically generating
this, which was causing everyone who made an event IDL file to get supported here!

The modern alternative is to use event class constructors instead.

  • CMakeLists.txt: Don't compile EventFactory.cpp. For now, we still generate

EventFactory.cpp but we do not use it.

  • DerivedSources.make: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj: Ditto.
  • WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
  • WebCore.xcodeproj/project.pbxproj: Ditto. Also don't include EventFactory.h in the

project file.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::hasFeature): Added a comment about the SVGZoomEvents feature.

  • dom/Document.cpp: Re-sorted includes and added the new ones needed for createEvent.

(WebCore::Document::createEvent): Moved all the logic here from EventFactory, and
took a crack at comments that explain what this should and should not be used for.

  • dom/EventFactory.h: Removed.

LayoutTests:

on createEvent("IDBVersionChangeEvent").

  • animations/animation-events-create.html: Updated to use

"new WebKitAnimationEvent" instead of document.createEvent.

  • fast/events/event-creation-expected.txt: Removed expected results for

various events that can no longer be created with createEvent.

  • fast/events/event-creation.html: Removed tests for various events

that can no longer be created with createEvent.

  • imported/blink/plugins/plugin-synthetic-event-crash.html: Updated to use

"new PopStateEvent" instead of document.createEvent.

  • indieui/create-uirequestevent-expected.txt: Removed.
  • indieui/create-uirequestevent.html: Removed.
  • platform/mac-wk2/TestExpecations: Removed expectations for some deleted tests.
  • platform/wk2/storage/indexeddb/removed-expected.txt: Removed, since this is

no different from the platform-independent expected result.

  • transitions/transition-end-event-create.html: Updated to use

"new WebKitTransitionEvent" instead of document.createEvent.

9:34 AM Changeset in webkit [193956] by Nikita Vasilyev
  • 5 edits
    2 adds in trunk

Web Inspector: When logging strings, detect stack traces and show them as StackTraceView
https://bugs.webkit.org/show_bug.cgi?id=149790

Reviewed by Timothy Hatcher.

Source/WebInspectorUI:

  • UserInterface/Models/StackTrace.js:

(WebInspector.StackTrace.isLikelyStackTrace): Added.

  • UserInterface/Views/ConsoleMessageView.css:

(.console-message-extra-parameter .stack-trace):
Display stack trace view on the same line as a list bullet point from
console message extra parameter.

  • UserInterface/Views/ConsoleMessageView.js:

(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
Don't format with string substitutions for stack traces. E.g. there is
no need to replace %s with the next argument.

(WebInspector.ConsoleMessageView.prototype._isStackTrace): Added.
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
Detect stack traces and format them appropriately.

LayoutTests:

  • inspector/console/js-isLikelyStackTrace.html: Added.
9:15 AM Changeset in webkit [193955] by benjamin@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Little cleanup of FTLOutput type casts and conversions
https://bugs.webkit.org/show_bug.cgi?id=152166

Reviewed by Geoffrey Garen.

Clean up:
-Change fpCast() to explicit conversion doubleToFloat() and floatToDouble()

to match B3's opcodes.

-Remove unused conversion functions.
-Use the most specific cast function when possible.
-Functions that are only used inside FTLOutput are made private.

In FTLB3Output, those functions were removed.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::doubleToFloat):
(JSC::FTL::Output::floatToDouble):
(JSC::FTL::Output::fround):
(JSC::FTL::Output::fpToInt): Deleted.
(JSC::FTL::Output::fpToUInt): Deleted.
(JSC::FTL::Output::intToFP): Deleted.
(JSC::FTL::Output::unsignedToFP): Deleted.
(JSC::FTL::Output::intCast): Deleted.
(JSC::FTL::Output::fpCast): Deleted.
(JSC::FTL::Output::intToPtr): Deleted.
(JSC::FTL::Output::ptrToInt): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutByVal):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::doubleToFloat):
(JSC::FTL::Output::floatToDouble):
(JSC::FTL::Output::intCast):
(JSC::FTL::Output::fpToInt):
(JSC::FTL::Output::fpToUInt):
(JSC::FTL::Output::fpCast):
(JSC::FTL::Output::intToFP):
(JSC::FTL::Output::unsignedToFP):

8:23 AM EnvironmentVariables edited by clopez@igalia.com
(diff)
7:03 AM Changeset in webkit [193954] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r193876. rdar://problem/23305376

4:34 AM Changeset in webkit [193953] by matthew_hanson@apple.com
  • 16 edits in branches/safari-601.1.46-branch/Source

Merge r192712. rdar://problem/23814340

2:01 AM Changeset in webkit [193952] by matthew_hanson@apple.com
  • 12 edits
    3 adds in branches/safari-601.1.46-branch

Merge r193859. rdar://problem/23814345

2:01 AM Changeset in webkit [193951] by matthew_hanson@apple.com
  • 5 edits in branches/safari-601.1.46-branch

Merge r193922. rdar://problem/23716993

1:34 AM Changeset in webkit [193950] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r193760. rdar://problem/23727535

Dec 10, 2015:

11:59 PM Changeset in webkit [193949] by beidson@apple.com
  • 6 edits in trunk

Modern IDB: storage/indexeddb/objectstore-count.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152167

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/IDBKeyRangeData.h:

(WebCore::IDBKeyRangeData::allKeys):

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::count): If the passed in IDBKeyRange* is nullptr, use IDBKeyRangeData::allKeys.
(WebCore::IDBClient::IDBObjectStore::doCount): Change an isNull check to a more correct !isValid() check.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/objectstore-count-expected.txt:
11:45 PM Changeset in webkit [193948] by youenn.fablet@crf.canon.fr
  • 7 edits in trunk/Source

Binding and builtin generators should lowercase RTCXX as rtcXX and not rTCXX
https://bugs.webkit.org/show_bug.cgi?id=152121

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Scripts/builtins/builtins_generator.py:

(WK_lcfirst): Added RTC special rule.

Source/WebCore:

No change in behavior.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation): Using rtcXX in lieu of rTCXX.

  • bindings/js/WebCoreJSBuiltinInternals.h:

(WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions): Ditto.
(WebCore::JSBuiltinInternalFunctions::rtcPeerConnectionInternals): Added.
(WebCore::JSBuiltinInternalFunctions::visit): Ditto.
(WebCore::JSBuiltinInternalFunctions::init): Ditto.
(WebCore::JSBuiltinInternalFunctions::rTCPeerConnectionInternals): Deleted.

  • bindings/js/WebCoreJSBuiltins.h:

(WebCore::JSBuiltinFunctions::JSBuiltinFunctions): Using rtcXX in lieu of rTCXX.
(WebCore::JSBuiltinFunctions::rtcPeerConnectionBuiltins): Added.
(WebCore::JSBuiltinFunctions::rtcPeerConnectionInternalsBuiltins): Added.
(WebCore::JSBuiltinFunctions::rTCPeerConnectionBuiltins): Deleted.
(WebCore::JSBuiltinFunctions::rTCPeerConnectionInternalsBuiltins): Deleted.

  • bindings/scripts/CodeGenerator.pm:

(WK_lcfirst): Added RTC special rule.

11:31 PM Changeset in webkit [193947] by Alan Bujtas
  • 3 edits
    2 adds in trunk

ASSERTION FAILED: !simpleLineLayout() in WebCore::RenderText::collectSelectionRectsForLineBoxes
https://bugs.webkit.org/show_bug.cgi?id=152115

Reviewed by Simon Fraser.

document.execCommand("indent") generates a blockquote wrapper and moves the indented content inside.
If the indented content is already inside a selection, we need to make sure that newly created flow uses
normal line layout.
This patch fixes the generic case as re-parenting an already selected renderer is not specific to document.execCommand("indent").

Source/WebCore:

Test: fast/block/selection-inside-simple-line-layout.html

  • rendering/SimpleLineLayout.cpp:

(WebCore::SimpleLineLayout::canUseForWithReason):
(WebCore::SimpleLineLayout::printReason):

LayoutTests:

  • fast/block/selection-inside-simple-line-layout-expected.txt: Added.
  • fast/block/selection-inside-simple-line-layout.html: Added.
9:26 PM Changeset in webkit [193946] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: debugger dashboard's switching arrows are positioned too close to the dashboard border
https://bugs.webkit.org/show_bug.cgi?id=151867

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DashboardContainerView.css:

(.dashboard-container .advance-arrow):

8:26 PM Changeset in webkit [193945] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed TestExpectations gardening.

  • platform/mac-wk1/TestExpectations: Move 3 failing IDB tests to the "Skipped because of Workers" section.
8:06 PM Changeset in webkit [193944] by eric.carlson@apple.com
  • 40 edits
    6 adds
    3 deletes in trunk

[MediaStream] Expose media capture devices persistent permissions to WebCore
https://bugs.webkit.org/show_bug.cgi?id=152087

Source/WebCore:

Reviewed by Chris Dumez.

No new tests, an existing test was updated to test the change.

  • CMakeLists.txt: Add UserMediaPermissionCheck.cpp.
  • Modules/mediastream/MediaDevicesRequest.cpp:

(WebCore::MediaDevicesRequest::~MediaDevicesRequest): Clear the permission checker client.
(WebCore::MediaDevicesRequest::contextDestroyed): Ditto.
(WebCore::MediaDevicesRequest::start): Create a permission checker and start it running.
(WebCore::MediaDevicesRequest::didCompleteCheck): Start the media source checker.
(WebCore::MediaDevicesRequest::didCompleteRequest): Only include a track's label if the

page has permission to use a capture device.

  • Modules/mediastream/MediaDevicesRequest.h:
  • Modules/mediastream/UserMediaClient.h: Include prototypes for permission checker.

(WebCore::UserMediaClient::~UserMediaClient):

  • Modules/mediastream/MediaStreamTrackSourcesRequest.cpp: Removed, not longer used.
  • Modules/mediastream/MediaStreamTrackSourcesRequest.h:
  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::checkUserMediaPermission): New.
(WebCore::UserMediaController::cancelUserMediaPermissionCheck): Ditto.

  • Modules/mediastream/UserMediaPermissionCheck.cpp: Added.

(WebCore::UserMediaPermissionCheck::create):
(WebCore::UserMediaPermissionCheck::UserMediaPermissionCheck):
(WebCore::UserMediaPermissionCheck::~UserMediaPermissionCheck):
(WebCore::UserMediaPermissionCheck::securityOrigin):
(WebCore::UserMediaPermissionCheck::contextDestroyed):
(WebCore::UserMediaPermissionCheck::start):
(WebCore::UserMediaPermissionCheck::setDeviceAccessMode):

  • Modules/mediastream/UserMediaPermissionCheck.h: Added.

(WebCore::UserMediaPermissionCheckClient::~UserMediaPermissionCheckClient):
(WebCore::UserMediaPermissionCheck::setClient):

  • WebCore.xcodeproj/project.pbxproj: Add UserMediaPermissionCheck.cpp|.h
  • platform/mock/UserMediaClientMock.h: Removed, it is no longer used.
  • testing/Internals.cpp: Remove UserMediaClientMock.h include, it is gone.

Source/WebKit/mac:

Reviewed by Chris Dumez.

Add methods and helpers for WK1 permission checker interface.

  • WebCoreSupport/WebUserMediaClient.h:
  • WebCoreSupport/WebUserMediaClient.mm:

(userMediaRequestsMap):
(AddRequestToRequestMap):
(RemoveRequestFromRequestMap):
(userMediaCheckMap):
(AddPermissionCheckToMap):
(RemovePermissionCheckFromMap):
(WebUserMediaClient::WebUserMediaClient):
(WebUserMediaClient::requestUserMediaAccess):
(WebUserMediaClient::cancelUserMediaAccessRequest):
(WebUserMediaClient::checkUserMediaPermission):
(WebUserMediaClient::cancelUserMediaPermissionCheck):
(-[WebUserMediaPolicyListener allow]):
(-[WebUserMediaPolicyListener deny]):
(-[WebUserMediaPolicyCheckerListener initWithUserMediaPermissionCheck:]):
(-[WebUserMediaPolicyCheckerListener cancelUserMediaPermissionCheck]):
(-[WebUserMediaPolicyCheckerListener allow]):
(-[WebUserMediaPolicyCheckerListener deny]):
(-[WebUserMediaPolicyCheckerListener denyOnlyThisRequest]):
(-[WebUserMediaPolicyCheckerListener shouldClearCache]):
(AddRequestToMap): Deleted.
(RemoveRequestFromMap): Deleted.

  • WebView/WebUIDelegatePrivate.h:

Source/WebKit2:

Reviewed by Chris Dumez.

  • CMakeLists.txt: Add UserMediaPermissionCheckProxy.cpp and WKUserMediaPermissionCheck.cpp.
  • Shared/API/APIObject.h: Define UserMediaPermissionCheck.
  • Shared/API/c/WKBase.h: Add WKUserMediaPermissionCheckRef typedef.
  • UIProcess/API/APIUIClient.h:

(API::UIClient::checkUserMediaPermissionForOrigin): New.

  • UIProcess/API/C/WKAPICast.h: Add WKUserMediaPermissionCheckRef/UserMediaPermissionCheckProxy mapping.
  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageUIClient): Implement checkUserMediaPermissionForOrigin.

  • UIProcess/API/C/WKPageUIClient.h: Add WKCheckUserMediaPermissionCallback typedef and add checkUserMediaPermissionForOrigin to WKPageUIClientV6.
  • UIProcess/API/C/WKUserMediaPermissionCheck.cpp: Added.

(WKUserMediaPermissionCheckGetTypeID):
(WKUserMediaPermissionCheckSetHasPermission):

  • UIProcess/API/C/WKUserMediaPermissionCheck.h: Added.
  • UIProcess/UserMediaPermissionCheckProxy.cpp: Added.

(WebKit::UserMediaPermissionCheckProxy::UserMediaPermissionCheckProxy):
(WebKit::UserMediaPermissionCheckProxy::setHasPermission):
(WebKit::UserMediaPermissionCheckProxy::invalidate):

  • UIProcess/UserMediaPermissionCheckProxy.h: Added.

(WebKit::UserMediaPermissionCheckProxy::create):

  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:

(WebKit::UserMediaPermissionRequestManagerProxy::invalidateRequests):
(WebKit::UserMediaPermissionRequestManagerProxy::createRequest):
(WebKit::UserMediaPermissionRequestManagerProxy::didReceiveUserMediaPermissionDecision):
(WebKit::UserMediaPermissionRequestManagerProxy::createUserMediaPermissionCheck):
(WebKit::UserMediaPermissionRequestManagerProxy::didCompleteUserMediaPermissionCheck):

  • UIProcess/UserMediaPermissionRequestManagerProxy.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestUserMediaPermissionForFrame):
(WebKit::WebPageProxy::checkUserMediaPermissionForFrame):
(WebKit::WebPageProxy::requestNotificationPermission):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebKit2.xcodeproj/project.pbxproj: Add UserMediaPermissionCheckProxy.*, and WKUserMediaPermissionCheck.*.
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::startUserMediaRequest): Renamed from startRequest.
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaRequest): Renamed from cancelRequest.
(WebKit::UserMediaPermissionRequestManager::didReceiveUserMediaPermissionDecision): m_requestToIDMap ->

m_userMediaRequestToIDMap.remove.

(WebKit::UserMediaPermissionRequestManager::startUserMediaPermissionCheck): New, start the request.
(WebKit::UserMediaPermissionRequestManager::cancelUserMediaPermissionCheck): New, cancel

the request.

(WebKit::UserMediaPermissionRequestManager::didCompleteUserMediaPermissionCheck): New,

all the request completion method.

(WebKit::UserMediaPermissionRequestManager::startRequest): Deleted.
(WebKit::UserMediaPermissionRequestManager::cancelRequest): Deleted.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.h:
  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:

(WebKit::WebUserMediaClient::requestUserMediaAccess): startRequest -> startUserMediaRequest.
(WebKit::WebUserMediaClient::cancelUserMediaAccessRequest): cancelRequest -> cancelUserMediaRequest.
(WebKit::WebUserMediaClient::checkUserMediaPermission): New.
(WebKit::WebUserMediaClient::cancelUserMediaPermissionCheck): New.

  • WebProcess/WebCoreSupport/WebUserMediaClient.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::didCompleteUserMediaPermissionCheck): New.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in: Add DidCompleteUserMediaPermissionCheck.

Tools:

Add support for the new user media permission checker page UI client method.

Reviewed by Chris Dumez.

  • WebKitTestRunner/TestController.cpp:

(WTR::decidePolicyForUserMediaPermissionRequest):
(WTR::checkUserMediaPermissionForOrigin):
(WTR::TestController::createOtherPage): Add checkUserMediaPermissionForOrigin.
(WTR::TestController::createWebViewWithOptions): Ditto.
(WTR::TestController::resetStateToConsistentValues): Clear m_userMediaOriginPermissions.
(WTR::originUserVisibleName): New, create a string for the origin.
(WTR::TestController::handleCheckOfUserMediaPermissionForOrigin): Set the WKUserMediaPermissionCheckRef

according to the state of the origin permission map.

(WTR::TestController::handleUserMediaPermissionRequest): Remember both the origin and the

request so we can update the origin permission map in decidePolicyForUserMediaPermissionRequestIfPossible.

(WTR::TestController::decidePolicyForUserMediaPermissionRequestIfPossible): Update the

origin permission map.

  • WebKitTestRunner/TestController.h:

LayoutTests:

Reviewed by Chris Dumez.

  • fast/mediastream/MediaDevices-enumerateDevices-expected.txt:
  • fast/mediastream/MediaDevices-enumerateDevices.html:
8:03 PM Changeset in webkit [193943] by fpizlo@apple.com
  • 11 edits in trunk/Source/JavaScriptCore

FTL B3 should be able to run quicksort asm.js test
https://bugs.webkit.org/show_bug.cgi?id=152105

Reviewed by Geoffrey Garen.

This covers making all of the changes needed to run quicksort.js from AsmBench.

  • Reintroduced float types to FTLLower since we now have B3::Float.
  • Gave FTL::Output the ability to speak of load types and store types separately from LValue types. This dodges the problem that B3 doesn't have types for Int8 and Int16 but supports loads and stores of that type.
  • Implemented Mod in B3 and wrote tests.

I also fixed a pre-existing bug in a test that appeared to only manifest in release builds.

Currently, B3's performance on asm.js tests is not good. It should be easy to fix:

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

(JSC::B3::Const32Value::divConstant):
(JSC::B3::Const32Value::modConstant):
(JSC::B3::Const32Value::bitAndConstant):

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

(JSC::B3::Const64Value::divConstant):
(JSC::B3::Const64Value::modConstant):
(JSC::B3::Const64Value::bitAndConstant):

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

(JSC::B3::Value::divConstant):
(JSC::B3::Value::modConstant):
(JSC::B3::Value::bitAndConstant):

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

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

  • ftl/FTLB3Output.cpp:

(JSC::FTL::Output::load16ZeroExt32):
(JSC::FTL::Output::store):
(JSC::FTL::Output::store32As8):
(JSC::FTL::Output::store32As16):
(JSC::FTL::Output::loadFloatToDouble): Deleted.

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::mul):
(JSC::FTL::Output::div):
(JSC::FTL::Output::chillDiv):
(JSC::FTL::Output::rem):
(JSC::FTL::Output::neg):
(JSC::FTL::Output::load32):
(JSC::FTL::Output::load64):
(JSC::FTL::Output::loadPtr):
(JSC::FTL::Output::loadFloat):
(JSC::FTL::Output::loadDouble):
(JSC::FTL::Output::store32):
(JSC::FTL::Output::store64):
(JSC::FTL::Output::storePtr):
(JSC::FTL::Output::storeFloat):
(JSC::FTL::Output::storeDouble):
(JSC::FTL::Output::addPtr):
(JSC::FTL::Output::extractValue):
(JSC::FTL::Output::call):
(JSC::FTL::Output::operation):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compilePutByVal):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArrayPush):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArrayPop):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::Output):
(JSC::FTL::Output::store):
(JSC::FTL::Output::check):
(JSC::FTL::Output::load):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::load32):
(JSC::FTL::Output::load64):
(JSC::FTL::Output::loadPtr):
(JSC::FTL::Output::loadFloat):
(JSC::FTL::Output::loadDouble):
(JSC::FTL::Output::store32As8):
(JSC::FTL::Output::store32As16):
(JSC::FTL::Output::store32):
(JSC::FTL::Output::store64):
(JSC::FTL::Output::storePtr):
(JSC::FTL::Output::storeFloat):
(JSC::FTL::Output::storeDouble):
(JSC::FTL::Output::addPtr):
(JSC::FTL::Output::loadFloatToDouble): Deleted.
(JSC::FTL::Output::store16): Deleted.

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

Build fix

Unreviewed.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::smallCapsTrueTypeDictionary):

7:41 PM Changeset in webkit [193941] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Consider still matching an address expression even if B3 has already assigned a Tmp to it
https://bugs.webkit.org/show_bug.cgi?id=150777

Reviewed by Geoffrey Garen.

We need some heuristic for when an address should be computed as a separate instruction. It's
usually profitable to sink the address into the memory access. The previous heuristic meant that
the address would get separate instructions if it was in a separate block from the memory access.
This was messing up codegen of things like PutByVal out-of-bounds, where the address is computed
in one block and then used in another. I don't think that which block owns the address
computation should factor into any heuristic here, since it's so fragile: the compiler may lower
something by splitting blocks and we don't want this to ruin performance.

So, this replaces that heuristic with a more sensible one: the address computation gets its own
instruction if it has a lot of uses. In practice this means that we always sink the address
computation into the memory access.

  • b3/B3LowerToAir.cpp:

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

6:24 PM Changeset in webkit [193940] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Mordernize viewport dumping
https://bugs.webkit.org/show_bug.cgi?id=152159

Reviewed by Zalan Bujtas.

Use groupings to simplify the viewport configuration dumping code.

  • page/ViewportConfiguration.cpp:

(WebCore::operator<<):
(WebCore::ViewportConfiguration::description):

6:08 PM Changeset in webkit [193939] by dbates@webkit.org
  • 6 edits
    1 copy
    4 adds in trunk

[CSP] eval() is not blocked for stringified literals
https://bugs.webkit.org/show_bug.cgi?id=152158
<rdar://problem/15775625>

Reviewed by Saam Barati.

Source/JavaScriptCore:

Fixes an issue where stringified literals can be eval()ed despite being disallowed by
Content Security Policy of the page.

  • interpreter/Interpreter.cpp:

(JSC::eval): Throw a JavaScript EvalError exception if eval() is disallowed for the page
and return undefined.

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncEval): Ditto.

LayoutTests:

Update test LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked.html to be
more comprehensive.

Add tests to ensure that we block eval() from within an external JavaScript script when the
policy of the page disallows eval() and that we block eval() inside a subframe that disallows
eval() when the page in the main frame allows eval().

  • http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt:
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script-expected.txt: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-external-script.html: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe-expected.txt: Copied from LayoutTests/http/tests/security/contentSecurityPolicy/eval-blocked-expected.txt.
  • http/tests/security/contentSecurityPolicy/eval-blocked-in-subframe.html: Added.
  • http/tests/security/contentSecurityPolicy/eval-blocked.html:
  • http/tests/security/contentSecurityPolicy/resources/eval-blocked-in-external-script.js: Added.
6:06 PM Changeset in webkit [193938] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Fix jsc symlink creation on iOS
https://bugs.webkit.org/show_bug.cgi?id=152155

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-10
Reviewed by Dan Bernstein.

Switch from INSTALL_PATH_ACTUAL to just INSTALL_PATH.
Remove now unnecessary INSTALL_PATH_PREFIX use as well.

5:37 PM Changeset in webkit [193937] by Joseph Pecoraro
  • 12 edits
    1 move in trunk/Source

Remote Inspector: Verify the identity of the other side of XPC connections
https://bugs.webkit.org/show_bug.cgi?id=152153

Reviewed by Brian Burg.

Source/JavaScriptCore:

Link with the Security framework.

  • inspector/remote/RemoteInspectorXPCConnection.h:
  • inspector/remote/RemoteInspectorXPCConnection.mm:

(auditTokenHasEntitlement):
(Inspector::RemoteInspectorXPCConnection::handleEvent):
(Inspector::RemoteInspectorXPCConnection::RemoteInspectorXPCConnection): Deleted.
When receiving the first message, verify the XPC connection
is connected to who we thought we were connected to and
Bail if it isn't.

Source/WebCore:

  • WebCore.xcodeproj/project.pbxproj:
  • platform/network/mac/CertificateInfoMac.mm:

Use the new header.

Source/WebKit2:

  • Shared/mac/SandboxUtilities.mm:
  • UIProcess/ApplicationStateTracker.mm:

Use new header.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/cocoa/SecuritySPI.h: Renamed from Source/WebCore/platform/spi/cocoa/SecuritySPI.h.

Push this down into WTF from WebCore and add a new method.

5:35 PM Changeset in webkit [193936] by beidson@apple.com
  • 19 edits in trunk

Modern IDB: storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html fails
https://bugs.webkit.org/show_bug.cgi?id=152144

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least two failing tests now pass, and other incorrect tests updated to be more correct).

  • An IDBOpenDBRequest resulting in a versionchange transaction should not have the onsuccess event fire if the database connection was closed during the versionchange transaction. onerror should fire instead.
  • When firing an event at an IDBRequest, it should not have the transaction as an additional target if the transaction has finished.
  • When firing an event at an IDBRequest, it should not have the database as an additional target if the database is closed or is closing.
  • Modules/indexeddb/client/IDBDatabaseImpl.h:

(WebCore::IDBClient::IDBDatabase::isClosingOrClosed):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeAbort): Deleted.

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::dispatchEvent): Don't add finished transactions or closed databases as event targets.

  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::notifyDidAbort):
(WebCore::IDBClient::IDBTransaction::dispatchEvent): If this was a versionchange transaction completing, possibly fire

the error event on the OpenDBRequest instead of the success event.

  • Modules/indexeddb/client/IDBTransactionImpl.h:

(WebCore::IDBClient::IDBTransaction::isFinished):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/abort-requests-cancelled-expected.txt:
  • storage/indexeddb/modern/aborted-put-expected.txt:
  • storage/indexeddb/modern/createobjectstore-basic-expected.txt:
  • storage/indexeddb/modern/deletedatabase-2-expected.txt:
  • storage/indexeddb/modern/deletedatabase-2.html:
  • storage/indexeddb/modern/deleteindex-2-expected.txt:
  • storage/indexeddb/modern/deleteobjectstore-1-expected.txt:
  • storage/indexeddb/modern/opendatabase-versions-expected.txt:
  • storage/indexeddb/modern/opendatabase-versions.html:
  • storage/indexeddb/modern/versionchange-abort-then-reopen-expected.txt:
5:21 PM Changeset in webkit [193935] by Brent Fulgham
  • 2 edits in trunk

[Win] Support building under Cygwin or native Perl
https://bugs.webkit.org/show_bug.cgi?id=152145
<rdar://problem/23839868>

Reviewed by David Kilzer.

  • Source/cmake/tools/scripts/auto-version.pl: Correct handling of mixed DOS filenames when used in a

Cygwin context.

5:19 PM Changeset in webkit [193934] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Simple line layout: Use TextPainter to draw simple line text.
https://bugs.webkit.org/show_bug.cgi?id=152150

Reviewed by Simon Fraser.

No change in functionality.

  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::paintFlow):

  • rendering/TextPainter.h:
4:31 PM Changeset in webkit [193933] by commit-queue@webkit.org
  • 21 edits in trunk/Source/JavaScriptCore

[JSC] Add a Modulo operator to B3, and a chill variant
https://bugs.webkit.org/show_bug.cgi?id=152110

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

It is basically refactoring the Div and ChillDiv
code to be used by both opcodes.

  • b3/B3Common.h:

(JSC::B3::chillDiv):
(JSC::B3::chillMod):

  • b3/B3Const32Value.cpp:

(JSC::B3::Const32Value::modConstant):

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

(JSC::B3::Const64Value::modConstant):

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

(JSC::B3::ConstDoubleValue::modConstant):

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

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

  • b3/B3Opcode.cpp:

(WTF::printInternal):

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

(JSC::B3::Value::modConstant):
(JSC::B3::Value::effects):
(JSC::B3::Value::key):
(JSC::B3::Value::typeFor):

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

(JSC::B3::testModArgDouble):
(JSC::B3::testModArgsDouble):
(JSC::B3::testModArgImmDouble):
(JSC::B3::testModImmArgDouble):
(JSC::B3::testModImmsDouble):
(JSC::B3::testModArgFloat):
(JSC::B3::testModArgsFloat):
(JSC::B3::testModArgImmFloat):
(JSC::B3::testModImmArgFloat):
(JSC::B3::testModImmsFloat):
(JSC::B3::testModArg):
(JSC::B3::testModArgs):
(JSC::B3::testModImms):
(JSC::B3::testModArg32):
(JSC::B3::testModArgs32):
(JSC::B3::testModImms32):
(JSC::B3::testChillModArg):
(JSC::B3::testChillModArgs):
(JSC::B3::testChillModImms):
(JSC::B3::testChillModArg32):
(JSC::B3::testChillModArgs32):
(JSC::B3::testChillModImms32):
(JSC::B3::run):

  • ftl/FTLB3Output.h:

(JSC::FTL::Output::mod):
(JSC::FTL::Output::chillMod):
(JSC::FTL::Output::doubleMod):
(JSC::FTL::Output::rem): Deleted.
(JSC::FTL::Output::doubleRem): Deleted.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMod):

  • ftl/FTLOutput.cpp:

(JSC::FTL::Output::chillMod):

  • ftl/FTLOutput.h:

(JSC::FTL::Output::mod):
(JSC::FTL::Output::doubleMod):
(JSC::FTL::Output::rem): Deleted.
(JSC::FTL::Output::doubleRem): Deleted.

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

[Font Features] r193894 introduces leaks
https://bugs.webkit.org/show_bug.cgi?id=152154

Reviewed by Joe Pecoraro.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::smallCapsTrueTypeDictionary):
(WebCore::createCTFontWithoutSynthesizableFeatures):

4:00 PM Changeset in webkit [193931] by Ryan Haddad
  • 1 edit
    1 add in trunk/LayoutTests

Rebaselining fast/text/emoji.html for Yosemite.
https://bugs.webkit.org/show_bug.cgi?id=152147

Unreviewed test gardening.

  • platform/mac-yosemite/fast/text/emoji-expected.txt: Added.
3:39 PM Changeset in webkit [193930] by mmaxfield@apple.com
  • 4 edits in trunk

Build fix

Unreviewed.

Source/WebCore:

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::variantCapsSupportsCharacterForSynthesis):

LayoutTests:

  • platform/mac/TestExpectations:
3:30 PM Changeset in webkit [193929] by Alan Bujtas
  • 5 edits in trunk/Source/WebCore

TextPainter: Add support for painting multiple text runs.
https://bugs.webkit.org/show_bug.cgi?id=152148

Reviewed by Simon Fraser.

This is in preparation for adding simple line layout as a client.

No change in functionality.

  • rendering/InlineTextBox.cpp:

(WebCore::drawSkipInkUnderline): Decouple underline skipping intersection calculation and text painter.
(WebCore::InlineTextBox::paint):
(WebCore::InlineTextBox::paintDecoration):

  • rendering/InlineTextBox.h:
  • rendering/TextPainter.cpp:

(WebCore::TextPainter::TextPainter):
(WebCore::TextPainter::paintTextWithShadows):
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
(WebCore::TextPainter::paintText):
(WebCore::TextPainter::dashesForIntersectionsWithRect): Deleted.

  • rendering/TextPainter.h:

(WebCore::TextPainter::setTextPaintStyle):
(WebCore::TextPainter::setSelectionPaintStyle):
(WebCore::TextPainter::setIsHorizontal):
(WebCore::TextPainter::setFont):
(WebCore::TextPainter::addEmphasis):
(WebCore::TextPainter::addTextShadow):

3:02 PM Changeset in webkit [193928] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.13.3/Source

Versioning.

2:59 PM Changeset in webkit [193927] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.13.3

New tag.

2:38 PM Changeset in webkit [193926] by Matt Baker
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: debugger popover should have source location link when showing function source
https://bugs.webkit.org/show_bug.cgi?id=151866

Reviewed by Brian Burg.

Added source code location link to function popover header.

  • UserInterface/Views/SourceCodeTextEditor.js:

(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Create source code location link from response payload.
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):

1:42 PM Changeset in webkit [193925] by Ryan Haddad
  • 1 edit
    1 add in trunk/LayoutTests

Adding iOS-simulator expectations for compositing/layers-inside-overflow-scroll.html
https://bugs.webkit.org/show_bug.cgi?id=152132

Unreviewed test gardening.

  • platform/ios-simulator/compositing/layers-inside-overflow-scroll-expected.txt: Added.
1:26 PM Changeset in webkit [193924] by achristensen@apple.com
  • 12 edits
    1 copy
    2 adds in trunk

REGRESSION (r192796) WKBundlePageResourceLoadClient should be able to setHTTPBody in willSendRequestForFrame
https://bugs.webkit.org/show_bug.cgi?id=152022
rdar://problem/23763584

Reviewed by Darin Adler.

Source/WebKit2:

  • Shared/API/c/WKURLRequest.cpp:

(WKURLRequestCopyHTTPMethod):
(WKURLRequestCopyWithHTTPBody):
(WKURLRequestSetDefaultTimeoutInterval):

  • Shared/API/c/WKURLRequest.h:

Make WKURLRequestCopyWithHTTPBody SPI for testing.

  • Shared/API/c/mac/WKURLRequestNS.mm:

(WKURLRequestCreateWithNSURLRequest):
Crash if someone tries to use an NSURLRequest with HTTPBodyStream, which will not work with the network process.

  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:

(WebKit::InjectedBundlePageResourceLoadClient::willSendRequestForFrame):
Use an HTTP body if the client's willSendRequestForFrame returned one.
This is the functional change of this patch.

Tools:

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:

(WTR::InjectedBundlePage::willSendRequestForFrame):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:

(WTR::TestRunner::setWillSendRequestReturnsNull):
(WTR::TestRunner::willSendRequestReturnsNullOnRedirect):
(WTR::TestRunner::setWillSendRequestReturnsNullOnRedirect):
(WTR::TestRunner::setWillSendRequestAddsHTTPBody):
(WTR::TestRunner::willSendRequestHTTPBody):
Added setWillSendRequestAddsHTTPBody that uses new SPI for testing.

LayoutTests:

  • TestExpectations:
  • http/tests/misc/resources/post-echo.cgi: Copied from LayoutTests/http/tests/xmlhttprequest/resources/post-echo.cgi.
  • http/tests/misc/will-send-request-with-client-provided-http-body-expected.txt: Added.
  • http/tests/misc/will-send-request-with-client-provided-http-body.html: Added.
  • platform/wk2/TestExpectations:

New test for WK2 only.

12:44 PM Changeset in webkit [193923] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Remove additional simulator checks before running layout-tests
https://bugs.webkit.org/show_bug.cgi?id=152146

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-12-10
Reviewed by Darin Adler.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.check_sys_deps): Removed additional simulators verifications.

  • Scripts/webkitpy/xcode/simulator.py:

(Simulator._boot_and_shutdown_simulator_device): Deleted.
(Simulator.check_simulator_device_and_erase_if_needed): Deleted.

12:22 PM Changeset in webkit [193922] by enrica@apple.com
  • 5 edits in trunk

Change skin tone support for two emoji.
https://bugs.webkit.org/show_bug.cgi?id=152147
rdar://problem/23716993
rdar://problem/23716344

Reviewed by Darin Adler.

Source/WebCore:

Horse race emoji (1F3C7) should no longer have skin tone variation.
Sleuth/Spy emoji (!F575) should instead have skin tone variation.

  • platform/text/TextBreakIterator.cpp:

(WebCore::cursorMovementIterator):

LayoutTests:

  • fast/text/emoji.html:
  • platform/mac/fast/text/emoji-expected.txt:
11:19 AM Changeset in webkit [193921] by matthew_hanson@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r190911. rdar://problem/23432368

11:19 AM Changeset in webkit [193920] by matthew_hanson@apple.com
  • 3 edits in branches/safari-601.1.46-branch/LayoutTests

Merge r193641. rdar://problem/23814343

11:18 AM Changeset in webkit [193919] by matthew_hanson@apple.com
  • 8 edits in branches/safari-601.1.46-branch/Source/WebKit2

Merge r193481. rdar://problem/23110745

11:18 AM Changeset in webkit [193918] by matthew_hanson@apple.com
  • 8 edits in branches/safari-601.1.46-branch/Source

Merge r193382. rdar://problem/23814344

11:18 AM Changeset in webkit [193917] by matthew_hanson@apple.com
  • 13 edits
    6 adds
    4 deletes in branches/safari-601.1.46-branch

Merge r193286. rdar://problem/23814343

11:18 AM Changeset in webkit [193916] by matthew_hanson@apple.com
  • 5 edits
    3 adds in branches/safari-601.1.46-branch

Merge r192772. rdar://problem/23797213

11:18 AM Changeset in webkit [193915] by matthew_hanson@apple.com
  • 4 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r192758. rdar://problem/23814314

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

Skip unsupported css3/font-variant-* tests on Win
https://bugs.webkit.org/show_bug.cgi?id=149774

Unreviewed test gardening.

  • platform/win/TestExpectations:
10:14 AM Changeset in webkit [193913] by Nikita Vasilyev
  • 14 edits in trunk/Source/WebInspectorUI

Web Inspector: [Meta] Unify z-index values in Inspector's CSS
https://bugs.webkit.org/show_bug.cgi?id=151978

Introduce CSS variables for z-index due to recurring issues with incorrectly overlapping elements.

From now on, all z-index values >= 64 must be defined as variables.
Values below 64 must not.

Reviewed by Timothy Hatcher.

  • UserInterface/Views/Variables.css:

(:root):
Introduce z-index variables.

  • UserInterface/Debug/UncaughtExceptionReporter.css:

(.sheet-container):

  • UserInterface/Views/BoxModelDetailsSectionRow.css:

(.details-section .row.box-model .editing):

  • UserInterface/Views/CompletionSuggestionsView.css:

(.completion-suggestions):

  • UserInterface/Views/DashboardContainerView.css:

(.dashboard-container .advance-arrow):

  • UserInterface/Views/DataGrid.css:

(.data-grid .resizer):

  • UserInterface/Views/DetailsSection.css:

(.details-section > .header):
(.details-section .details-section > .header):

  • UserInterface/Views/FindBanner.css:

(.find-banner):
(.find-banner > button.segmented:active):

  • UserInterface/Views/Main.css:

(#docked-resizer):
(.message-text-view):
(.bouncy-highlight):

  • UserInterface/Views/Popover.css:

(.popover):

  • UserInterface/Views/Resizer.css:

(.resizer):
(.glass-pane-for-drag):

  • UserInterface/Views/TimelineOverview.css:

(.timeline-overview > .scroll-container):

  • UserInterface/Views/VisualStyleSelectorSection.css:

(.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):

10:03 AM Changeset in webkit [193912] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

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

do not want to have to disable canvas-to-large-to-draw test
(Requested by bfulgham on #webkit).

Reverted changeset:

"Place an upper bound on canvas pixel count"
https://bugs.webkit.org/show_bug.cgi?id=151825
http://trac.webkit.org/changeset/193500

9:41 AM Changeset in webkit [193911] by dbates@webkit.org
  • 88 edits in trunk/LayoutTests

[iOS][WK2] Update expected results for editing tests

  • platform/ios-simulator-wk2/editing/deleting/delete-3608462-fix-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/4278698-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/before-after-input-element-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/editable-html-element-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/editing-empty-divs-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-3778059-fix-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-3851164-fix-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-at-end-01-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-009-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-001-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-002-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-at-tabspan-003-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-001-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-002-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-003-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-004-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-005-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-br-quoted-006-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-009-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-010-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-011-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-012-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-013-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-014-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-015-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-016-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-017-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-018-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-019-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-020-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-022-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-023-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-024-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-025-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-026-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-div-027-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-paragraph-01-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-paragraph-02-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-paragraph-03-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-paragraph-04-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-paragraph-05-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-tab-003-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-001-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-002-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-text-at-tabspan-003-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/insert-text-with-newlines-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/line-break-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/multiple-lines-selected-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/paragraph-separator-01-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/paragraph-separator-02-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/paragraph-separator-03-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/paragraph-separator-in-table-1-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/paragraph-separator-in-table-2-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/redo-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-001-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-002-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/return-key-with-selection-003-expected.txt:
  • platform/ios-simulator-wk2/editing/inserting/typing-002-expected.txt:
  • platform/ios-simulator-wk2/editing/style/apple-style-editable-mix-expected.txt:
  • platform/ios-simulator-wk2/editing/style/block-style-001-expected.txt:
  • platform/ios-simulator-wk2/editing/style/block-style-002-expected.txt:
  • platform/ios-simulator-wk2/editing/style/block-style-003-expected.txt:
  • platform/ios-simulator-wk2/editing/style/block-styles-007-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-001-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-002-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-003-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-004-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-005-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-006-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-007-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-008-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-009-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-010-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-011-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-012-expected.txt:
  • platform/ios-simulator-wk2/editing/style/create-block-for-style-013-expected.txt:
  • platform/ios-simulator-wk2/editing/style/designmode-expected.txt:
  • platform/ios-simulator-wk2/editing/style/relative-font-size-change-001-expected.txt:
  • platform/ios-simulator-wk2/editing/style/relative-font-size-change-002-expected.txt:
  • platform/ios-simulator-wk2/editing/style/relative-font-size-change-003-expected.txt:
  • platform/ios-simulator-wk2/editing/style/relative-font-size-change-004-expected.txt:
  • platform/ios-simulator-wk2/editing/style/style-3681552-fix-002-expected.txt:
  • platform/ios-simulator-wk2/editing/style/style-3998892-fix-expected.txt:
  • platform/ios-simulator-wk2/editing/style/style-boundary-001-expected.txt:
  • platform/ios-simulator-wk2/editing/style/style-boundary-004-expected.txt:
  • platform/ios-simulator-wk2/editing/style/table-selection-expected.txt:
  • platform/ios-simulator-wk2/editing/style/unbold-in-bold-expected.txt:
9:33 AM Changeset in webkit [193910] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Add new files to the cmake build system
https://bugs.webkit.org/show_bug.cgi?id=152120

Reviewed by Filip Pizlo.

  • CMakeLists.txt:
9:03 AM Changeset in webkit [193909] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

Followup for:
Modern IDB: storage/indexeddb/intversion-close-between-events.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152096

Implementing Darin Adler's review feedback that came after the patch landed.

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::transaction): No need to explicitly cast to Vector<String>.

8:50 AM Changeset in webkit [193908] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Use mark pragmas only if it is supported
https://bugs.webkit.org/show_bug.cgi?id=152123

Reviewed by Mark Lam.

  • ftl/FTLB3Output.h:
8:38 AM Changeset in webkit [193907] by Yusuke Suzuki
  • 1 edit
    15 adds in trunk/LayoutTests

[ES6] Add several generator related JSRegress tests to measure performance change after optimization
https://bugs.webkit.org/show_bug.cgi?id=151785

Reviewed by Saam Barati.

Before starting optimization for ES6 Generators, add several JSRegress tests to measure that.

  • js/regress/generator-create-expected.txt: Added.
  • js/regress/generator-create.html: Added.
  • js/regress/generator-fib-expected.txt: Added.
  • js/regress/generator-fib.html: Added.
  • js/regress/generator-function-create-expected.txt: Added.
  • js/regress/generator-function-create.html: Added.
  • js/regress/generator-sunspider-access-nsieve-expected.txt: Added.
  • js/regress/generator-sunspider-access-nsieve.html: Added.
  • js/regress/generator-with-several-types-expected.txt: Added.
  • js/regress/generator-with-several-types.html: Added.
  • js/regress/script-tests/generator-create.js: Added.

(gen):

  • js/regress/script-tests/generator-fib.js: Added.

(result):

  • js/regress/script-tests/generator-function-create.js: Added.

(createGeneratorFunction.gen):
(createGeneratorFunction):

  • js/regress/script-tests/generator-sunspider-access-nsieve.js: Added.

(prime):
(sieve):

  • js/regress/script-tests/generator-with-several-types.js: Added.

(g1):
(g2):
(g3):

8:11 AM Changeset in webkit [193906] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Typo fix in testb3.cpp
https://bugs.webkit.org/show_bug.cgi?id=152126

Reviewed by Mark Lam.

  • b3/testb3.cpp:

(JSC::B3::populateWithInterestingValues):

8:07 AM Changeset in webkit [193905] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Fix unused-but-set-variable warning
https://bugs.webkit.org/show_bug.cgi?id=152122

Reviewed by Mark Lam.

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::lower):

8:04 AM Changeset in webkit [193904] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[B3] Make GCC ignore warnings in FTLB3Output.h
https://bugs.webkit.org/show_bug.cgi?id=152124

Reviewed by Mark Lam.

  • ftl/FTLB3Output.h:
8:03 AM Changeset in webkit [193903] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed. Fix ambiguous expectations added in r193895.

  • platform/gtk/TestExpectations:
8:02 AM Changeset in webkit [193902] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

[EFL] Remove the unused IncrementalSweeper::m_isTimerFrozen member after r193749
https://bugs.webkit.org/show_bug.cgi?id=152127

Reviewed by Mark Lam.

  • heap/IncrementalSweeper.h:
4:12 AM Changeset in webkit [193901] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Reserve capacity for the children vector in CoordinatedGraphicsScene::setLayerChildrenIfNeeded()
https://bugs.webkit.org/show_bug.cgi?id=152117

Reviewed by Martin Robinson.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::setLayerChildrenIfNeeded): Reserve the capacity
for the new Vector that will contain the same number of items as the Vector
on the CoordinatedGraphicsLayerState object.

4:01 AM Changeset in webkit [193900] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Source/JavaScriptCore/create_hash_table shouldn't be too verbose
https://bugs.webkit.org/show_bug.cgi?id=151861

Reviewed by Darin Adler.

  • create_hash_table:
2:50 AM Changeset in webkit [193899] by youenn.fablet@crf.canon.fr
  • 11 edits
    5 adds in trunk

JSC Builtins should use safe array methods
https://bugs.webkit.org/show_bug.cgi?id=151501

Reviewed by Darin Adler.

Source/JavaScriptCore:

Adding @push and @shift to Array prototype.
Using @push in TypedArray built-in.

Covered by added test in LayoutTests/js/builtins

  • builtins/TypedArray.prototype.js:

(filter):

  • runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):

  • runtime/CommonIdentifiers.h:

Source/WebCore:

Using @push and @shift in internal arrays in lieu of push and shift.
This cannot be disrupted by user scripts except if arrays are also made accessible to user scripts.

Covered by added tests for ReadableStream constructs.

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(runNext):
(enqueueOperation):

  • Modules/streams/ReadableStreamInternals.js:

(enqueueInReadableStream):
(readFromReadableStreamReader):

  • Modules/streams/StreamInternals.js:

(dequeueValue):
(enqueueValueWithSize):

LayoutTests:

Adding shielding test for TypedArray.prototype.filter and stream enqueuing of values and read promises.

  • js/builtins/resources/shielding-typedarray.js: Added.

(Array.prototype.push):
(try.array.Int8Array.from.string_appeared_here.filter):

  • js/builtins/shielding-typedarray-expected.txt: Added.
  • js/builtins/shielding-typedarray.html: Added.
  • streams/streams-promises-expected.txt:
  • streams/streams-promises.html:
2:24 AM Changeset in webkit [193898] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] pixel coverage multiplication in TiledBackingStore can overflow
https://bugs.webkit.org/show_bug.cgi?id=152055

Reviewed by Carlos Garcia Campos.

The computation of the pixel coverage in TiledBackingStore can easily overflow
when the candidate size is relatively large (for instance when the backed
layer is transformed in a way that increases its perceived size). This can result
in missing tiles for this specific backing store, at least until the layer in
question is transformed again into a shape that produces a smaller candidate size.

To avoid the integer overflow, the multiplication is done in a safe manner,
defaulting to the max positive value an integer can hold in case the overflow
is detected.

  • platform/graphics/texmap/coordinated/TiledBackingStore.cpp:

(WebCore::TiledBackingStore::adjustForContentsRect):

2:23 AM Changeset in webkit [193897] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[TexMap] Clean up BitmapTexturePool
https://bugs.webkit.org/show_bug.cgi?id=152073

Reviewed by Daniel Bates.

Move BitmapTexturePoolEntry class under the BitmapTexturePool class, renaming
it to simply Entry and keeping it private. Have the constructor take in an
rvalue reference to the RefPtr<BitmapTexture> object. Remove the static
compareTimeLastUsed() function and use a lambda directly in its place.

Remove the default BitmapTexturePool constructor, which isn't used anywhere.
Have the constructor and some methods accept or return RefPtr objects, possibly
via rvalue references. Clean up the header file by removing a few unnecessary
header includes and using forward declarations where possible.

In the BitmapTexturePool implementation file, mark the two const variables as
static. The ::acquireTexture() method now uses the std::find_if() algorithm
to find a fitting Entry object in the Vector. The same method is also moved
upwards so we follow the order of declaration in the header. ::createTexture()
inlines the return of the new expression into the adoptRef() call in the return
statement.

TextureMapperGL constructor is updated to pass a copied RefPtr object into the
BitmapTexturePool constructor.

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::BitmapTexturePool):
(WebCore::BitmapTexturePool::acquireTexture):
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
(WebCore::BitmapTexturePool::createTexture):

  • platform/graphics/texmap/BitmapTexturePool.h:

(WebCore::BitmapTexturePool::Entry::Entry):
(WebCore::BitmapTexturePool::Entry::markUsed):
(WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry): Deleted.
(WebCore::BitmapTexturePoolEntry::markUsed): Deleted.
(WebCore::BitmapTexturePoolEntry::compareTimeLastUsed): Deleted.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):

2:15 AM Changeset in webkit [193896] by Michael Catanzaro
  • 2 edits in trunk/Source/WebCore

[GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor, et. al. should not clobber state of cached GtkStyleContexts
https://bugs.webkit.org/show_bug.cgi?id=151533

Reviewed by Carlos Garcia Campos.

Remove the style context cache to simplify the code, drastically reduce the number of
expensive save/restore operations performed on style contexts, and avoid unwanted
side-effects in RenderThemeGtk::styleColor. This is also a speculative fix for improper
button rendering with certain custom themes, and a simplification that will make it easier
to fix bug #150550.

This change does have performance implications, which I intend to check on the perf bot
after landing to ensure that removing the cache does not have a significant negative impact
on performance; I have no clue whether this will be a net performance win or loss. However,
this is a bit tricky, because the bot is running GTK+ 3.16, whereas I expect save/restore
might be much more expensive in GTK+ 3.20, and I do not want to make performance decisions
except based on the latest GTK+ due to large changes in the implementation of
GtkStyleContext.

  • rendering/RenderThemeGtk.cpp:

(WebCore::createStyleContext):
(WebCore::getStockIconForWidgetType):
(WebCore::getStockSymbolicIconForWidgetType):
(WebCore::RenderThemeGtk::initMediaColors):
(WebCore::RenderThemeGtk::adjustRepaintRect):
(WebCore::setToggleSize):
(WebCore::paintToggle):
(WebCore::RenderThemeGtk::setCheckboxSize):
(WebCore::RenderThemeGtk::setRadioSize):
(WebCore::RenderThemeGtk::paintButton):
(WebCore::getComboBoxMetrics):
(WebCore::RenderThemeGtk::paintMenuList):
(WebCore::RenderThemeGtk::paintTextField):
(WebCore::RenderThemeGtk::paintSliderTrack):
(WebCore::RenderThemeGtk::paintSliderThumb):
(WebCore::RenderThemeGtk::adjustSliderThumbSize):
(WebCore::RenderThemeGtk::paintProgressBar):
(WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
(WebCore::RenderThemeGtk::paintInnerSpinButton):
(WebCore::styleColor):
(WebCore::gtkStyleChangedCallback): Deleted.
(WebCore::styleContextMap): Deleted.
(WebCore::getStyleContext): Deleted.

1:20 AM Changeset in webkit [193895] by Carlos Garcia Campos
  • 2 edits in trunk/LayoutTests

Unreviewed. GTK+ gardening: skip HLS tests crashing in debug after r192102.

  • platform/gtk/TestExpectations:
12:37 AM Changeset in webkit [193894] by mmaxfield@apple.com
  • 14 edits
    10 adds in trunk

font-variant-caps does not work if the font does not support font features
https://bugs.webkit.org/show_bug.cgi?id=149774

Reviewed by Antti Koivisto.

Source/WebCore:

This test implements synthesis for small-caps and all-small-caps. It does so by
moving font variant selection into a higher level (ComplexTextController).
In general, the approach is to use the pure font feature until we encounter
a character which needs to be uppercased, and which the font feature does not
support uppercasing. In this situation, we try again with synthesis. In this
case, synthesis means artificially uppercasing letters and rendering them with
a smaller font.

We require system support to know which glyphs a particular font feature supports.
Therefore, on operating systems which do not include this support, we will simply
say that the font feature does not support any glyphs.

Test: css3/font-variant-small-caps-synthesis.html

css3/font-variant-petite-caps-synthesis.html

  • platform/graphics/Font.cpp:

(WebCore::Font::noSmallCapsFont): Return the same font, but without smcp or c2sc.
This function utilizes a cache.

  • platform/graphics/Font.h:

(WebCore::Font::variantFont): Small caps should never go through this function
anymore.

  • platform/graphics/FontCascade.h: Because we're moving variant selection into

a higher level, we remove the FontVariant argument from the lower-level call.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForVariant): Use early-return style.
(WebCore::FontCascadeFonts::glyphDataForNormalVariant): Ditto.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::fontForCombiningCharacterSequence): Because we're moving
variant selection into a higher level, we remove the FontVariant argument from
the lower-level call.

  • platform/graphics/cocoa/FontCocoa.mm:

(WebCore::Font::smallCapsSupportsCharacter):
(WebCore::Font::allSmallCapsSupportsCharacter):
(WebCore::smallCapsOpenTypeDictionary): Helper function for
smallCapsSupportsCharacter().
(WebCore::smallCapsTrueTypeDictionary): Ditto.
(WebCore::unionBitVectors):
(WebCore::Font::glyphsSupportedBySmallCaps): Compute a bit vector of supported
glyphs.
(WebCore::Font::glyphsSupportedByAllSmallCaps): Ditto.
(WebCore::createDerivativeFont): Moving common code into its own helper function.
(WebCore::Font::createFontWithoutSmallCaps):
(WebCore::Font::platformCreateScaledFont): Use the common code.

  • platform/graphics/mac/ComplexTextController.cpp:

(WebCore::capitalized): What is the capitalized form of a character?
(WebCore::ComplexTextController::collectComplexTextRuns): Implement the core
logic of this patch. This includes the retry when we encounter a character which
is not supported by the font feature.

  • platform/spi/cocoa/CoreTextSPI.h:

LayoutTests:

Adding two new font which include lowercase characters which respond to 'smcp' and 'c2sc'.

The character mappings are:

OpenType:
'smcp': f
'c2sc': g

TrueType:
kLowerCaseType / kLowerCaseSmallCapsSelector: r
kUpperCaseType / kUpperCaseSmallCapsSelector: u

  • css3/font-variant-all-expected.html:
  • css3/font-variant-all.html:
  • css3/font-variant-small-caps-synthesis-expected.html: Added.
  • css3/font-variant-small-caps-synthesis.html: Added.
  • css3/font-variant-petite-caps-synthesis-expected.html: Added.
  • css3/font-variant-petite-caps-synthesis.html: Added.
  • css3/resources/FontWithFeaturesLowercaseSmallCaps.otf: Added.
  • css3/resources/FontWithFeaturesLowercaseSmallCaps.ttf: Added.
  • platform/mac/TestExpectations:
  • platform/mac/fast/writing-mode/broken-ideograph-small-caps-expected.txt:
12:32 AM WebKitGTK/Gardening/Calendar edited by Martin Robinson
(diff)
12:28 AM Changeset in webkit [193893] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebCore

[TexMap] Remove the TEXMAP_OPENGL_ES_2 define
https://bugs.webkit.org/show_bug.cgi?id=152069

Reviewed by Alex Christensen.

Remove the TEXMAP_OPENGL_ES_2 macro define and clean up the code
that it was (not) guarding.

  • platform/graphics/texmap/BitmapTexture.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp: Remove the TEXMAP_OPENGL_ES_2

guard. Keep the GL_UNSIGNED_INT_8_8_8_8_REV define for OS(DARWIN), but use
the GraphicsContext3D constants for other values.
(WebCore::BitmapTextureGL::updateContentsNoSwizzle):
(WebCore::BitmapTextureGL::initializeStencil): Remove the TEXMAP_OPENGL_ES_2
guard and default to calling the renderbufferStorage() function with the
GraphicsContext3D::STENCIL_INDEX8 argument.

  • platform/graphics/texmap/BitmapTexturePool.h:
  • platform/graphics/texmap/TextureMapper.h:
  • platform/graphics/texmap/TextureMapperGL.cpp: Remove both the TEXMAP_OPENGL_ES_2

guard and the code it guarded. Because we were defining TEXMAP_OPENGL_ES_2 and not
USE_TEXMAP_OPENGL_ES_2, the guarded defines were always enforced, but they're never
actually used in this file anyway.

Dec 9, 2015:

11:09 PM Changeset in webkit [193892] by beidson@apple.com
  • 12 edits
    4 copies in trunk

Modern IDB: storage/indexeddb/objectstore-basics.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152101

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Multiple tests updated to the new error messaging cover it).

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::putOrAdd): Add plenty of detailed error messaging.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • platform/wk2/storage/indexeddb/mozilla/bad-keypath-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/bad-keypath-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt.
  • platform/wk2/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt: Copied from LayoutTests/storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt.
  • storage/indexeddb/invalid-keys-expected.txt:
  • storage/indexeddb/key-type-binary-expected.txt:
  • storage/indexeddb/keypath-edges-expected.txt:
  • storage/indexeddb/mozilla/bad-keypath-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-inline-and-passed-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-put-no-key-expected.txt:
  • storage/indexeddb/mozilla/key-requirements-put-null-key-expected.txt:
  • storage/indexeddb/objectstore-basics-expected.txt:
8:59 PM Changeset in webkit [193891] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

TextPainter: Make before and after selection painting more explicit.
https://bugs.webkit.org/show_bug.cgi?id=152104

Reviewed by Myles C. Maxfield.

Instead of swapping start end end positions and expecting TextPainter::drawTextOrEmphasisMarks()
to recognize it, we call painting with 0 - startPosition and endPosition - length.

No change in functionality.

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::drawTextOrEmphasisMarks):
(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
(WebCore::TextPainter::paintText):
(WebCore::TextPainter::paintEmphasisMarksIfNeeded): Deleted.
(WebCore::TextPainter::paintTextWithStyle): Deleted.

  • rendering/TextPainter.h:
7:50 PM Changeset in webkit [193890] by fpizlo@apple.com
  • 7 edits
    1 add in trunk/Source

FTL B3 should have basic GetById support
https://bugs.webkit.org/show_bug.cgi?id=152035

Reviewed by Saam Barati.

Source/JavaScriptCore:

Adds basic GetById support. This was so easy to do. Unlike the LLVM code for this, the B3 code is
entirely self-contained within the getById() method in LowerDFG.

I discovered that we weren't folding Check(NotEqual(x, 0)) to Check(x). This was preventing us
from generating good code for Check(NotEqual(BitAnd(x, tagMask), 0)), since the BitAnd was
concealed. This was an easy strength reduction rule to add.

Finally, I found it easier to say append(value, rep) than append(ConstrainedValue(value, rep)), so
I added that API. The old ConstrainedValue form is still super useful in other places, like
compileCallOrConstruct(), where the two-argument form would be awkward. It's great to have both
APIs to pick from.

  • b3/B3ReduceStrength.cpp:
  • b3/B3StackmapValue.cpp:

(JSC::B3::StackmapValue::~StackmapValue):
(JSC::B3::StackmapValue::append):

  • b3/B3StackmapValue.h:
  • dfg/DFGCommon.h:
  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::getById):

Source/WTF:

When dealing with shared task lambdas, you often want to force a value to be allocated so that it
has reference semantics, but you still want the lambda to execute OK when we pop stack. In PL we
usually call this a "box". This is easy to do if the value that happened to be stack-allocated
is also RefCounted, but that's rare, since stack-allocated values often have copy semantics. So,
I've added a Box type to WTF. Behind the scenes, it allocates your object with fast malloc inside
a ThreadSAfeRefCounted. When you pass Box<T>, you're passing the reference. This makes it a lot
easier to work with by-reference capture.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/Box.h: Added.

(WTF::Box::Box):
(WTF::Box::create):
(WTF::Box::get):
(WTF::Box::operator*):
(WTF::Box::operator->):
(WTF::Box::operator bool):
(WTF::Box::Data::Data):

7:42 PM Changeset in webkit [193889] by dbates@webkit.org
  • 2 edits in trunk/Websites/bugs.webkit.org

REGRESSION: code-review-tests.html fails with error "Received an error at line 214"
https://bugs.webkit.org/show_bug.cgi?id=152103

Reviewed by Darin Adler.

Fixes an issue where opening the file code-review-test.html in Safari shows the error message
"FAIL: Received an error at line 214" and in the console there is a JavaScript TypeError:

undefined is not an object (evaluating '$('.overallComments textarea').val().trim')

Notice that test testReaddDiscardedCommentWithPreviousComment() is the only test that appends
the toolbar, which inserts the overall comments textarea. The test testSaveCommentsWithMissingLineIds()
assumes that the own properties of the window object are enumerated in the same order as they
were defined in the file code-review-test.html such that the test testReaddDiscardedCommentWithPreviousComment()
is executed before test testSaveCommentsWithMissingLineIds(). The behavior of JavaScriptCore with
respect to the enumeration order of properties on the window object have changed since the
test testSaveCommentsWithMissingLineIds() was written such that the order of the own properties
on the window object do not reflect the order in which they were defined in the file. We should
append the toolbar before running the tests and explicitly execute the tests in chosen order so
as to be able to reason of the test results regardless of the enumeration ordering of the
properties in the DOM window object.

Also, removed duplicate 'd' in the name of function "testReaddDiscardedCommentWithPreviousComment"
such that it reads "testReadDiscardedCommentWithPreviousComment".

  • code-review-test.html:
7:16 PM Changeset in webkit [193888] by Simon Fraser
  • 4 edits
    6 adds in branches/safari-601.1.46-branch

Merge r191590. rdar://problem/23432368

7:16 PM Changeset in webkit [193887] by Simon Fraser
  • 3 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r190914. rdar://problem/23432368

7:16 PM Changeset in webkit [193886] by Simon Fraser
  • 22 edits in branches/safari-601.1.46-branch/Source/WebCore

Merge r190910. rdar://problem/23432368

6:53 PM Changeset in webkit [193885] by dbates@webkit.org
  • 6 edits
    3 adds in trunk

[iOS] Suspend and resume device motion and device orientation updates when page is hidden and visible, respectively
https://bugs.webkit.org/show_bug.cgi?id=151840
<rdar://problem/23753931>

Reviewed by Simon Fraser.

.:

Add a manual test that can be used to verify that we suspend dispatching device motion and
device orientation events when the page is hidden.

  • ManualTests/ios/resources/suspend-orientation-and-motion-events-when-page-becomes-hidden.js: Added.

(resetTest):
(checkEvent):
(handleVisibilityChange):

  • ManualTests/ios/suspend-orientation-and-motion-events-when-page-becomes-hidden.html: Added.

Source/WebCore:

  • dom/Document.cpp:

(WebCore::Document::suspendDeviceMotionAndOrientationUpdates): Added.
(WebCore::Document::resumeDeviceMotionAndOrientationUpdates): Added.
(WebCore::Document::platformSuspendOrStopActiveDOMObjects): Moved logic to suspend device motion and
orientation updates from here to Document::suspendDeviceMotionAndOrientationUpdates().
(WebCore::Document::suspendActiveDOMObjects): Modified to call Document::suspendDeviceMotionAndOrientationUpdates().
(WebCore::Document::resumeActiveDOMObjects): Modified to call Document::resumeDeviceMotionAndOrientationUpdates().

  • dom/Document.h:
  • page/Page.cpp:

(WebCore::Page::setIsVisibleInternal): Suspend device motion and orientation updates when the page is hidden and
resume updates when the page is visible.
(WebCore::Page::suspendDeviceMotionAndOrientationUpdates): Added.
(WebCore::Page::resumeDeviceMotionAndOrientationUpdates): Added.

  • page/Page.h:
6:51 PM Changeset in webkit [193884] by dbates@webkit.org
  • 10 edits in trunk/Source/WebCore

Unify iOS Frame::setTimersPaused() logic and Frame::{suspend, resume}ActiveDOMObjectsAndAnimations()
https://bugs.webkit.org/show_bug.cgi?id=152006

Reviewed by Simon Fraser.

Currently we have almost identical logic to suspend and resume a web page for iOS and non-iOS ports.
We should unify this logic instead of duplicating it.

  • dom/ActiveDOMObject.h: Remove iOS-specific enumeration DocumentWillBePaused and standardize on

enumerator PageWillBeSuspended.

  • dom/Document.cpp:

(WebCore::Document::didBecomeCurrentDocumentInFrame): Unify iOS and non-iOS-specific code.
(WebCore::Document::suspendScheduledTasks): Ignore subsequent calls to this function so long as the reason for
the first invocation was ActiveDOMObject::PageWillBeSuspended. Such a subsequent call may occur as part of
handling a scroll or zoom gesture.

  • dom/ScriptExecutionContext.cpp:

(WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Ignore subsequent calls to this function
so long as the reason for the first invocation was ActiveDOMObject::PageWillBeSuspended. Such a subsequent
call may occur as part of the process of a page being added to the page cache.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::suspend): Remove case for ActiveDOMObject::DocumentWillBePaused as this
enumerator is being removed.

  • page/DOMTimer.cpp:

(WebCore::DOMTimer::install): Write logic that used Frame::timersPaused() terms of
ScriptExecutionContext::activeDOMObjectsAreSuspended() as we are removing Frame::timersPaused().
(WebCore::DOMTimer::fired): Remove iOS-specific assertion with respect to Frame::timersPaused().
This function already asserts the equivalent condition that ScriptExecutionContext::activeDOMObjectsAreSuspended()
evaluates to false. Clean up iOS-specific code that depends on the ScriptExecutionContext being a
Document object by taking advantage of the fact that this assumption is true when shouldBeginObservingChanges
evaluates to true.

  • page/Frame.cpp:

(WebCore::Frame::Frame): Remove instance variable m_timersPausedCount and unify the iOS and non-iOS logic.
(WebCore::Frame::suspendActiveDOMObjectsAndAnimations): Standardize on the iOS logic for suspending
DOM objects and animations because it is more comprehensive on what it suspends and works with the deferred
loading machinery (Page::setDefersLoading() - see remarks in Frame::resumeActiveDOMObjectsAndAnimations() for
more details). Specifically, make use of Frame::clearTimers() to suspend non-scripted animations (i.e. non-requestAnimationFrame()
animations), auto-scroll timer, and pending relayouts. And use Document::suspendScheduledTasks() to suspend
all other tasks, including WebSQL database callbacks, active DOM objects, scripted animations and execution of
<script async>/<script defer> JavaScript scripts.
(WebCore::Frame::resumeActiveDOMObjectsAndAnimations): Standardize on the iOS logic for resuming
DOM objects and animations for symmetry and because it works with the deferred loading machinery. We call
Document::resumeScheduledTasks() (which calls Document::resumeActiveDOMObjects()) instead of calling
Document::resumeActiveDOMObjects() directly because the former will ultimately process the queue of pending
tasks (Document::m_pendingTasks).

  • page/Frame.h: Remove instance variable m_timersPausedCount.

(WebCore::Frame::timersPaused): Deleted.

  • page/ios/FrameIOS.mm:

(WebCore::Frame::setTimersPaused): Write this function in terms of Page::{suspend, resume}ActiveDOMObjectsAndAnimations().
We need to keep this function for Legacy WebKit on iOS.
(WebCore::Frame::setTimersPausedInternal): Deleted.

  • rendering/RenderElement.cpp:

(WebCore::shouldRepaintForImageAnimation): Remove iOS-specific code to early return when Frame::timersPaused()
evaluates to true. This function already has the equivalent code to early return when Document::activeDOMObjectsAreSuspended()
evaluates to true.

6:50 PM Changeset in webkit [193883] by dbates@webkit.org
  • 2 edits in trunk/Source/WebKit2

[iOS] Bail out if the page proxy is invalid when WebPageProxy::processWillBecome{Foreground, Suspended}() are called
https://bugs.webkit.org/show_bug.cgi?id=151877

Reviewed by Darin Adler.

We cannot assume that a WebPageProxy is in a valid state when WebPageProxy::processWillBecome{Foreground, Suspended}()
are called because these callbacks may occur after the web process crashed and before a
WebPageProxy attaches to a new web process (and hence is considered in a valid state).

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::processWillBecomeSuspended): Early return if the page proxy is invalid.
(WebKit::WebPageProxy::processWillBecomeForeground): Ditto.

5:18 PM Changeset in webkit [193882] by bshafiei@apple.com
  • 5 edits in branches/safari-601.4-branch/Source

Versioning.

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

Versioning.

5:08 PM Changeset in webkit [193880] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46.60-branch/Source

Versioning.

4:59 PM Changeset in webkit [193879] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.5.5

New tag.

4:53 PM Changeset in webkit [193878] by beidson@apple.com
  • 6 edits
    3 adds in trunk

Modern IDB: storage/indexeddb/metadata.html fails
https://bugs.webkit.org/show_bug.cgi?id=152099

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/abort-objectstore-info.html

And at least one existing failure now passes.

We did not properly reset object store info when version change transactions aborted.

  • Modules/indexeddb/client/IDBObjectStoreImpl.cpp:

(WebCore::IDBClient::IDBObjectStore::IDBObjectStore):
(WebCore::IDBClient::IDBObjectStore::rollbackInfoForVersionChangeAbort):

  • Modules/indexeddb/client/IDBObjectStoreImpl.h:
  • Modules/indexeddb/client/IDBTransactionImpl.cpp:

(WebCore::IDBClient::IDBTransaction::abort):

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/abort-objectstore-info-expected.txt: Added.
  • storage/indexeddb/modern/abort-objectstore-info.html: Added.
  • storage/indexeddb/modern/resources/abort-objectstore-info.js: Added.
3:57 PM Changeset in webkit [193877] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

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

caused all inspector tests to assert in WK2 Debug (Requested
by brrian on #webkit).

Reverted changeset:

"Web Inspector: reproducible debug ASSERT when inspecting the
inspector (WK2)"
https://bugs.webkit.org/show_bug.cgi?id=152080
http://trac.webkit.org/changeset/193864

3:51 PM Changeset in webkit [193876] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Adjust layer backing store format
https://bugs.webkit.org/show_bug.cgi?id=152097
rdar://problem/23305376

Reviewed by Tim Horton.

Call setBackingStoreFormat() on UIWebView tile grid layers, and on compositing
layers which can allocate backing store.

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

(WebCore::setBackingStoreFormat):
(PlatformCALayerCocoa::commonInit):

  • platform/ios/LegacyTileGridTile.mm:

(WebCore::setBackingStoreFormat):
(WebCore::LegacyTileGridTile::LegacyTileGridTile):

3:40 PM Changeset in webkit [193875] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/intversion-close-between-events.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152096

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • bindings/js/JSIDBDatabaseCustom.cpp:

(WebCore::JSIDBDatabase::transaction): In addition to JSArrays, treat DOMStringLists as a valid string sequence.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
3:23 PM Changeset in webkit [193874] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.4.2

New tag.

3:21 PM Changeset in webkit [193873] by akling@apple.com
  • 7 edits in trunk/Source

[iOS] ResourceUsageOverlay should work on iOS.
<https://webkit.org/b/152021>

Reviewed by Antti Koivisto.

Source/WebCore:

Make ResourceUsageOverlay work on iOS and on Mac desktops with UI-side compositing.

  • page/ResourceUsageOverlay.cpp:

(WebCore::ResourceUsageOverlay::initialize): Move the overlay to the top of the view on iOS for now.

  • page/ResourceUsageOverlay.h:
  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::createColor): Make a custom CGColor factory since we can't use CGColorCreateGenericRGB on iOS.
(WebCore::MemoryCategoryInfo::MemoryCategoryInfo):
(WebCore::ResourceUsageOverlay::platformInitialize): Put the overlay CALayer into a container layer and
hook it up with GraphicsLayer::setContentsToPlatformLayer so it works with all compositing modes.
(WebCore::showText): Move CGContextSaveGState call to the top of the function to preserve everything.
(WebCore::drawGraphLabel):
(WebCore::drawCpuHistory):
(WebCore::drawGCHistory):
(WebCore::ResourceUsageOverlay::platformDraw): Flip the CGContext if needed.
(WebCore::runSamplerThread): Update the layer rects on each thread iteration. This shouldn't be
necessary but it papers over an issue where the containing layer would shrink down to 0x0 and
disappear. Added a FIXME for this.

  • platform/spi/cocoa/MachVMSPI.h: Add purgeable VM SPI.

Source/WTF:

  • wtf/Platform.h: Enable RESOURCE_USAGE_OVERLAY for all COCOA platforms.
3:07 PM Changeset in webkit [193872] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: when a marked-dirty subview is attached to a parent View, dirtyDescendantsCount gets out of sync
https://bugs.webkit.org/show_bug.cgi?id=151876

Reviewed by Brian Burg.

  • UserInterface/Base/Main.js:

Use root view singleton instead of creating it explicitly.

  • UserInterface/Views/View.js:

(WebInspector.View):
(WebInspector.View.rootView):
Singleton root view access. Lazily create and return a view backed
by the document's body element.
(WebInspector.View.prototype.isDescendantOf):
(WebInspector.View.prototype.insertSubviewBefore):
(WebInspector.View.prototype.removeSubview):
(WebInspector.View.prototype.didMoveToWindow):
Notify the view when it becomes, or is no longer, descended from the root view.
(WebInspector.View.prototype.didMoveToParent):
Notify the view when it's added to, or removed from, a parent view.
(WebInspector.View._scheduleLayoutForView):
(WebInspector.View._cancelScheduledLayoutForView):
(WebInspector.View.prototype.makeRootView): Deleted.
No longer needed.
(WebInspector.View.prototype.didAttach): Deleted.
(WebInspector.View.prototype.didDetach): Deleted.
Replaced by didMoveToParent.

2:46 PM Changeset in webkit [193871] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/database-closepending-flag.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152095

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

The server-side checks the closepending flag before dispatching the event to the client,
but due to the inherent asynchronous race between server and client, the client needs to
check its closePending flag as well.

  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent): Don't fire if m_closePending is set.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:45 PM Changeset in webkit [193870] by BJ Burg
  • 4 edits
    1 move
    2 adds in trunk/Source/WebInspectorUI

Web Inspector: control whether to collect and dump protocol messages using a WebInspector.Setting
https://bugs.webkit.org/show_bug.cgi?id=151635

Reviewed by Timothy Hatcher.

When closing and reopening the inspector, the setting for whether
to dump protocol messages should be persisted. Otherwise, enabling
dumping from the debug-only UI will miss the initial flood of
messages that are processed when the Inspector loads initial data.

To support a persistent setting, and build some infrastructure for
more advanced uses of collected protocol messages, this patch adds
a new object to trace protocol events. It gets callbacks for each
and implements the console-dumping functionality previously baked in
to InspectorBackend.

In follow-up patches, other protocol tracers will be added to save
protocol data to disk, marshall it to a higher inspection level,
or provide more fine-grained control over what is logged.

This change moves Setting.js into the Base/ directory,
since it is used by Views, Models, and now Protocol classes.

  • UserInterface/Base/Setting.js: Renamed from Source/WebInspectorUI/UserInterface/Models/Setting.js.

(WebInspector.Setting):
(WebInspector.Setting.prototype.get name):
(WebInspector.Setting.prototype.get value):
(WebInspector.Setting.prototype.set value):

  • UserInterface/Main.html:
  • UserInterface/Protocol/InspectorBackend.js:

(InspectorBackendClass):
(InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):

We still want to support the legacy way to enable dumping:
InspectorBackend.dumpInspectorProtocolMessages = true. This
is because some tests always use it, and it's easier to set this
flag in a custom Bootstrap.js file than to configure the Setting.

(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
(InspectorBackendClass.prototype.get dumpInspectorTimeStats):

We still want to support the legacy way to enable dumping:
InspectorBackend.dumpInspectorTimeStats = true. This is
because MessageDispatcher checks this flag for its logging.

(InspectorBackendClass.prototype.set activeTracer):
(InspectorBackendClass.prototype.get activeTracer):

Set the active tracer, finalizing and removing any active tracer
if one exists. If removing a custom tracer (setting to null), then
re-sync activeTracer with the automatic tracing Setting.

(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype._startOrStopAutomaticTracing):

Sync the Setting with activeTracer. If an custom tracer is active,
don't replace it with the automatic logging tracer.

(InspectorBackendClass.prototype._sendCommandToBackendWithCallback):
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise):
(InspectorBackendClass.prototype._sendMessageToBackend):
(InspectorBackendClass.prototype._dispatchResponse):
(InspectorBackendClass.prototype._dispatchEvent):
(InspectorBackendClass.prototype._flushPendingScripts):

  • UserInterface/Protocol/LoggingProtocolTracer.js: Added.

(WebInspector.LoggingProtocolTracer):
(WebInspector.LoggingProtocolTracer.prototype.set dumpMessagesToConsole):
(WebInspector.LoggingProtocolTracer.prototype.get dumpMessagesToConsole):
(WebInspector.LoggingProtocolTracer.prototype.set dumpTimingDataToConsole):
(WebInspector.LoggingProtocolTracer.prototype.get dumpTimingDataToConsole):
(WebInspector.LoggingProtocolTracer.prototype.logFrontendException):
(WebInspector.LoggingProtocolTracer.prototype.logProtocolError):
(WebInspector.LoggingProtocolTracer.prototype.logFrontendRequest):
(WebInspector.LoggingProtocolTracer.prototype.logWillHandleResponse):
(WebInspector.LoggingProtocolTracer.prototype.logDidHandleResponse):
(WebInspector.LoggingProtocolTracer.prototype.logWillHandleEvent):
(WebInspector.LoggingProtocolTracer.prototype.logDidHandleEvent):
(WebInspector.LoggingProtocolTracer.prototype._processEntry):

  • UserInterface/Protocol/ProtocolTracer.js: Added.

(WebInspector.ProtocolTracer.prototype.logStarted):
(WebInspector.ProtocolTracer.prototype.logFrontendException):
(WebInspector.ProtocolTracer.prototype.logProtocolError):
(WebInspector.ProtocolTracer.prototype.logFrontendRequest):
(WebInspector.ProtocolTracer.prototype.logWillHandleResponse):
(WebInspector.ProtocolTracer.prototype.logDidHandleResponse):
(WebInspector.ProtocolTracer.prototype.logWillHandleEvent):
(WebInspector.ProtocolTracer.prototype.logDidHandleEvent): (WebInspector.ProtocolTracer.prototype.logFinished):
(WebInspector.ProtocolTracer):

  • UserInterface/Test.html:
2:39 PM Changeset in webkit [193869] by matthew_hanson@apple.com
  • 4 edits
    3 adds in branches/safari-601.1.46-branch

Merge r192639. rdar://problem/23814338

2:39 PM Changeset in webkit [193868] by matthew_hanson@apple.com
  • 3 edits
    3 adds in branches/safari-601.1.46-branch

Merge r192388. rdar://problem/23814336

2:36 PM Changeset in webkit [193867] by beidson@apple.com
  • 6 edits in trunk/LayoutTests

Modern IDB: Some tests expect UInt8Array to be a valid key.
https://bugs.webkit.org/show_bug.cgi?id=152092

Reviewed by Alex Christensen.

Everything that expected UInt8Array to be a valid key needs to be updated to expect it to be invalid.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/factory-cmp-expected.txt:
  • storage/indexeddb/key-type-binary-expected.txt:
  • storage/indexeddb/resources/factory-cmp.js:
  • storage/indexeddb/resources/key-type-binary.js:
2:32 PM Changeset in webkit [193866] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.60.1

New tag.

2:22 PM Changeset in webkit [193865] by beidson@apple.com
  • 4 edits in trunk/LayoutTests

Modern IDB: storage/indexeddb/createIndex-after-failure.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152078

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/createIndex-after-failure-expected.txt:
  • storage/indexeddb/resources/createIndex-after-failure.js:
2:11 PM Changeset in webkit [193864] by BJ Burg
  • 2 edits in trunk/Source/WebKit2

Web Inspector: reproducible debug ASSERT when inspecting the inspector (WK2)
https://bugs.webkit.org/show_bug.cgi?id=152080

Reviewed by Timothy Hatcher.

We hit an assert underneath ChildProcessProxy::addMessageReceiver because
we tried to connect the inspector page and inspected page more than once.
This relationship is already set up in the constructor of WebProcessProxy.

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::eagerlyCreateInspectorPage):

2:11 PM Changeset in webkit [193863] by bshafiei@apple.com
  • 5 edits in branches/safari-601.1.46-branch/Source

Versioning.

2:07 PM Changeset in webkit [193862] by bshafiei@apple.com
  • 1 copy in tags/Safari-601.1.46.85

New tag.

2:06 PM Changeset in webkit [193861] by Ryan Haddad
  • 1 edit
    1 add in trunk/LayoutTests

Baseline fast/dom/HTMLProgressElement/native-progress-bar.html for iOS
https://bugs.webkit.org/show_bug.cgi?id=152094

Unreviewed test gardening.

  • platform/ios-simulator/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt: Added.
1:48 PM Changeset in webkit [193860] by Ryan Haddad
  • 1 edit
    1 add in trunk/LayoutTests

Baseline fast/text/text-combine-shrink-on-color-change.html for iOS
https://bugs.webkit.org/show_bug.cgi?id=151218

Unreviewed test gardening.

  • platform/ios-simulator/fast/text/text-combine-shrink-on-color-change-expected.txt: Added.
1:42 PM Changeset in webkit [193859] by hyatt@apple.com
  • 12 edits
    3 adds in trunk

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.

Picture element needs to respond to dynamic viewport changes.
https://bugs.webkit.org/show_bug.cgi?id=152013
<rdar://problem/23766375>

Reviewed by Dean Jackson.

Source/WebCore:

Added new tests in fast/picture.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
will refactor the style resolver code to use this function instead of the special style resolver one, in order to
get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.

  • css/MediaQueryEvaluator.h:

(WebCore::MediaQueryResult::MediaQueryResult):

  • css/StyleResolver.h:

(WebCore::MediaQueryResult::MediaQueryResult): Deleted.
Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
resolver.

  • dom/Document.cpp:

(WebCore::Document::evaluateMediaQueryList):
(WebCore::Document::checkViewportDependentPictures):
(WebCore::Document::optimizedStyleSheetUpdateTimerFired):
(WebCore::Document::applyContentDispositionAttachmentSandbox):
(WebCore::Document::addViewportDependentPicture):
(WebCore::Document::removeViewportDependentPicture):

  • dom/Document.h:

The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
viewport changes. If their media queries stay the same, then nothing happens. If they change, then
the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
set of tracked pictures.

  • html/HTMLPictureElement.cpp:

(WebCore::HTMLPictureElement::HTMLPictureElement):
(WebCore::HTMLPictureElement::~HTMLPictureElement):
(WebCore::HTMLPictureElement::didMoveToNewDocument):
(WebCore::HTMLPictureElement::create):
(WebCore::HTMLPictureElement::sourcesChanged):
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture):

  • html/HTMLPictureElement.h:

New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
a different document.

  • html/HTMLSourceElement.cpp:

(WebCore::HTMLSourceElement::parseAttribute):

  • html/HTMLSourceElement.h:

Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.

LayoutTests:

  • fast/picture/resources/resize-test.js: Added.
  • fast/picture/viewport-resize-expected.txt: Added.
  • fast/picture/viewport-resize.html: Added.
1:34 PM Changeset in webkit [193858] by BJ Burg
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: zoom with Ctrl +/- doesn't work correctly when inspector is docked
https://bugs.webkit.org/show_bug.cgi?id=152076

Reviewed by Timothy Hatcher.

When computing the new width or height of the inspector, take the zoom level into
account. window.inner{Width,Height} are in document pixels, but we need to specify
device pixels to InspectorFrontendHost.

  • UserInterface/Base/Main.js:
1:22 PM Changeset in webkit [193857] by Alan Bujtas
  • 4 edits in trunk/Source/WebCore

TextPainter: Rename start and end position to selectionStart and selectionEnd.
https://bugs.webkit.org/show_bug.cgi?id=152088

Reviewed by Myles C. Maxfield.

They actually mean selection start/end.

No change in functionality.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::TextPainter):
(WebCore::TextPainter::paintText):

  • rendering/TextPainter.h:
1:14 PM Changeset in webkit [193856] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Run atleast one simulator even if max process limit is low
https://bugs.webkit.org/show_bug.cgi?id=152081
<rdar://problem/23819694>

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-12-09
Reviewed by Alexey Proskuryakov.

1:07 PM Changeset in webkit [193855] by mark.lam@apple.com
  • 1 edit
    9 moves in trunk/LayoutTests

Rename ftl-object-* tests to ftl-polymorphic-*.
https://bugs.webkit.org/show_bug.cgi?id=152091

Reviewed by Saam Barati.

This is because those tests are actually testing the effects of polymorphic
operands on performance, and not the correctness of operations on objects.

  • js/regress/ftl-object-div-expected.txt: Removed.
  • js/regress/ftl-object-div.html: Removed.
  • js/regress/ftl-object-mul-expected.txt: Removed.
  • js/regress/ftl-object-mul.html: Removed.
  • js/regress/ftl-object-sub-expected.txt: Removed.
  • js/regress/ftl-object-sub.html: Removed.
  • js/regress/ftl-polymorphic-div-expected.txt: Copied from LayoutTests/js/regress/ftl-object-div-expected.txt.
  • js/regress/ftl-polymorphic-div.html: Copied from LayoutTests/js/regress/ftl-object-div.html.
  • js/regress/ftl-polymorphic-mul-expected.txt: Copied from LayoutTests/js/regress/ftl-object-mul-expected.txt.
  • js/regress/ftl-polymorphic-mul.html: Copied from LayoutTests/js/regress/ftl-object-mul.html.
  • js/regress/ftl-polymorphic-sub-expected.txt: Copied from LayoutTests/js/regress/ftl-object-sub-expected.txt.
  • js/regress/ftl-polymorphic-sub.html: Copied from LayoutTests/js/regress/ftl-object-sub.html.
  • js/regress/script-tests/ftl-object-div.js: Removed.
  • js/regress/script-tests/ftl-object-mul.js: Removed.
  • js/regress/script-tests/ftl-object-sub.js: Removed.
  • js/regress/script-tests/ftl-polymorphic-div.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-div.js.
  • js/regress/script-tests/ftl-polymorphic-mul.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-mul.js.
  • js/regress/script-tests/ftl-polymorphic-sub.js: Copied from LayoutTests/js/regress/script-tests/ftl-object-sub.js.
12:22 PM Changeset in webkit [193854] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update generators' features.json to indicate that we have a spec compliant implementation
https://bugs.webkit.org/show_bug.cgi?id=152085

Reviewed by Joseph Pecoraro.

  • features.json:
12:14 PM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
12:12 PM Changeset in webkit [193853] by clopez@igalia.com
  • 10 edits in trunk/LayoutTests

[GTK] Unreviewed GTK Gardening.

Rebaseline media tests after r190054 and r190200.

  • platform/gtk/media/audio-controls-rendering-expected.txt:
  • platform/gtk/media/controls-strict-expected.txt:
  • platform/gtk/media/media-controls-clone-expected.txt:
  • platform/gtk/media/video-controls-rendering-expected.txt:
  • platform/gtk/media/video-display-toggle-expected.txt:
  • platform/gtk/media/video-empty-source-expected.txt:
  • platform/gtk/media/video-no-audio-expected.txt:
  • platform/gtk/media/video-volume-slider-expected.txt:
  • platform/gtk/media/video-zoom-controls-expected.txt:
11:58 AM Changeset in webkit [193852] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193676. rdar://problem/23639610

11:58 AM Changeset in webkit [193851] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Update features.json w.r.t tail calls
https://bugs.webkit.org/show_bug.cgi?id=152072

Reviewed by Michael Saboff.

  • features.json:
11:57 AM Changeset in webkit [193850] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193675. rdar://problem/23639610

11:55 AM Changeset in webkit [193849] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193661. rdar://problem/23639610

11:48 AM Changeset in webkit [193848] by bshafiei@apple.com
  • 10 edits
    1 copy in tags/Safari-602.1.13.2/Source

Merged r193645. rdar://problem/23751214

11:20 AM Changeset in webkit [193847] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] Need to change expectation result in ewk_settings_offline_web_application_cache_enabled API test
https://bugs.webkit.org/show_bug.cgi?id=152063

Reviewed by Csaba Osztrogonác.

Expect false initial value of ewk_settings_offline_web_application_cache_enabled_get()
because r193812 didn't enable it by default.

  • UIProcess/API/efl/tests/test_ewk2_settings.cpp:

(TEST_F):

10:58 AM Changeset in webkit [193846] by bshafiei@apple.com
  • 28 edits in branches/safari-601.1.46-branch

Merged r190505. rdar://problem/23822557

10:53 AM Changeset in webkit [193845] by bshafiei@apple.com
  • 28 edits in branches/safari-601-branch

Merged r190505. rdar://problem/23822539

10:52 AM Changeset in webkit [193844] by yoon@igalia.com
  • 4 edits in trunk/Source/WebKit2

[ThreadedCompositor] Add support for HiDPI
https://bugs.webkit.org/show_bug.cgi?id=152071

Reviewed by Carlos Garcia Campos.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::ThreadedCompositor::setDeviceScaleFactor): Added to receive the
device scale factor from the layer tree host.
(WebKit::ThreadedCompositor::renderLayerTree):
Apply device scale factor before rendering the page.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
  • WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:

(WebKit::ThreadedCoordinatedLayerTreeHost::deviceOrPageScaleFactorChanged):
Send a updated device scale factor to the compositing thread.

10:32 AM Changeset in webkit [193843] by ryuan.choi@navercorp.com
  • 5 edits in trunk/Source/WebKit2

[CoordinatedGraphics] Remove unnecessary guards in CoordinatedDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=152068

Reviewed by Gyuyoung Kim.

CoordinatedDrawingArea is only for UI side compositor of CoordinatedGraphics.
So, COORDINATED_GRAPHICS_MULTIPROCESS guards are not necessary.
This patch also removes COORDINATED_GRAPHICS_MULTIPROCESS guards from DrawingAreaImpl
because of same reason.

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:

(WebKit::CoordinatedDrawingAreaProxy::CoordinatedDrawingAreaProxy): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:
  • WebProcess/WebPage/DrawingAreaImpl.h:
10:31 AM Changeset in webkit [193842] by sbarati@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

we should emit op_watchdog after op_enter
https://bugs.webkit.org/show_bug.cgi?id=151972

Reviewed by Mark Lam.

This also solves the issue of watchdog not being
observed when we loop purely through tail calls.

  • API/tests/ExecutionTimeLimitTest.cpp:

(testExecutionTimeLimit):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::emitProfiledOpcode):
(JSC::BytecodeGenerator::emitEnter):
(JSC::BytecodeGenerator::emitLoopHint):

  • bytecompiler/BytecodeGenerator.h:
10:24 AM Changeset in webkit [193841] by jdiggs@igalia.com
  • 7 edits
    4 adds in trunk

AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
https://bugs.webkit.org/show_bug.cgi?id=152070

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Map the element to WebCore AccessibilityRole DivRole for GTK. This is being
done in the shared layer rather than in the platform layer because we want all
subsequent logic to treat anonymous render block flow elements as divs.

No new tests. We already have sufficient test coverage. The expectations
been updated accordingly.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::determineAccessibilityRole):

LayoutTests:

  • platform/gtk/accessibility/deleting-iframe-destroys-axcache-expected.txt: Added.
  • platform/gtk/accessibility/gtk/media-controls-panel-title-expected.txt: Added.
  • platform/gtk/accessibility/gtk/replaced-objects-in-anonymous-blocks-expected.txt: Added.
  • platform/gtk/accessibility/image-link-expected.txt: Updated
  • platform/gtk/accessibility/image-with-alt-and-map-expected.txt: Updated.
  • platform/gtk/accessibility/lists-expected.txt: Updated.
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Updated.
10:19 AM Changeset in webkit [193840] by commit-queue@webkit.org
  • 9 edits in trunk

form.elements should reflect the element ordering after the HTML tree builder algorithm
https://bugs.webkit.org/show_bug.cgi?id=148870
rdar://problem/22589879

Patch by Keith Rollin <Keith Rollin> on 2015-12-09
Reviewed by Ryosuke Niwa.

LayoutTests/imported/w3c:

Rebaseline existing test.

  • web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-expected.txt:

Source/WebCore:

form.elements should return form-associated elements in tree order.
However, when presented with an HTML fragment like the following,
forms.elements is not built in tree order. Instead, the elements
appear in forms.element in the same order they appear in the HTML --
that is in the same order as they are parsed.

<form id=form>

<table>

<tr>

<td><input type="radio" name="radio1" id="r1" value=1></td>
<td><input type="radio" name="radio2" id="r2" value=2></td>
<input type="radio" name="radio0" id="r0" value=0>

</tr>

</table>

</form>

The reason why elements appear in forms.elements in parse order is
because they register themselves with the designated form when they
are created. At this time, they are not in the DOM tree, so the form
can only assume that the element will be appended to the DOM tree,
with the result that it records the elements in the HTML fragment
above as [r1, r2, r0].

However, it's not always the case that the newly-created element will
be appended to the current tree. In the HTML fragment above, the r0
input element is hoised out of the table element. It ends up being the
preceding sibling of the table element, with the result that the
actual tree-order of the input elements is [r0, r1, r2].

Because the problem is due to registering form-associated elements
with the form *before* the elements are added to the DOM tree, the
solution is to defer that registration until afterwards. With the new
element in the tree, the form can now use its current location in the
tree to correctly place the element in form.elements.

Existing tests now pass:

  • imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-html
  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::FormAssociatedElement):
(WebCore::FormAssociatedElement::insertedInto):
(WebCore::FormAssociatedElement::removedFrom):
(WebCore::FormAssociatedElement::formRemovedFromTree):
(WebCore::FormAssociatedElement::formWillBeDestroyed):

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

(WebCore::HTMLFormControlElement::HTMLFormControlElement):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::HTMLImageElement):
(WebCore::HTMLImageElement::insertedInto):
(WebCore::HTMLImageElement::removedFrom):

  • html/HTMLImageElement.h:
  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::HTMLObjectElement):

10:11 AM Changeset in webkit [193839] by bshafiei@apple.com
  • 4 edits
    6 deletes in branches/safari-601.1.46.60-branch

Roll out r192369. rdar://problem/23787037

9:48 AM Changeset in webkit [193838] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Replacing Yosemite flag with Release flag for two flaky xmlhttprequest tests.
https://bugs.webkit.org/show_bug.cgi?id=151729

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:47 AM WebKitGTK/Gardening/Calendar edited by Carlos Garcia Campos
(diff)
9:44 AM Changeset in webkit [193837] by bshafiei@apple.com
  • 4 edits
    6 deletes in branches/safari-601.4-branch

Roll out r192369. rdar://problem/23787108

9:37 AM Changeset in webkit [193836] by yoon@igalia.com
  • 5 edits in trunk/Source/WebCore

[ThreadedCompositor] Support HTML5 Video
https://bugs.webkit.org/show_bug.cgi?id=143301

Reviewed by Žan Doberšek.

This patch implements HTML5 Video supports in Threaded Compositor.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
Added to support GStreamer GL by ensuring unmapping of the swapped
GstVideoFrame performed at GStreamer GL's gl thread.
(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
Modified to upload decoded frame to the given texture instead of
creating a texture itself because we should use a texture from the
proxy when we are using the threaded compositor.
(WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
Implements two ways to send a texture from GStreamer to the compositor.

  1. If we are not using GStreamer GL, we are going to acquire a free texture

from a TextureMapperPlatformLayerProxy and upload the decoded frame to the
texture. This should be done at the compositing thread because we
don't have a Gst's GL thread.

  1. If we are using GStreamer GL, we map a texture for the given frame

and passes it to the compositing thread. The mapped frame will be
freed if it is swapped out or the layer is removed.

(WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
Modified to aquire a new texture itself.

  • platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:

Adds a way to pass a function to the compositing thread to allocate /
upload textures at the compositing thread.

9:34 AM Changeset in webkit [193835] by Jon Davis
  • 4 edits in trunk/Websites/webkit.org

Fixed broken link: https://webkit.org/old/security/security-group-members.html
https://bugs.webkit.org/show_bug.cgi?id=152010

Reviewed by Timothy Hatcher.

  • .htaccess:
  • security-policy.md:
  • wp-content/themes/webkit/style.css:

(article h4):
(article h5):

8:54 AM Changeset in webkit [193834] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking inspector/debugger/command-line-api-exception.html as flaky on Mac
https://bugs.webkit.org/show_bug.cgi?id=152029

Unreviewed test gardening.

  • platform/mac/TestExpectations:
7:41 AM Changeset in webkit [193833] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fixed function call reference.

  • wp-content/themes/webkit/scripts/global.js:
7:34 AM Changeset in webkit [193832] by calvaris@igalia.com
  • 4 edits in trunk

[Streams API] pipeThrough test failing
https://bugs.webkit.org/show_bug.cgi?id=152061

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

  • web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt: Expectations.

Source/WebCore:

Test: imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through.html

  • Modules/streams/ReadableStream.js:

(pipeThrough): Mimic destructuring for the streams parameter.

7:01 AM Changeset in webkit [193831] by jdiggs@igalia.com
  • 1 edit
    1 move
    1 delete in trunk/LayoutTests

AX: [GTK] Remove duplicate/platform media-emits-object-replacement.html and move expectations where they belong
https://bugs.webkit.org/show_bug.cgi?id=152064

Unreviewed test gardening.

  • accessibility/gtk/media-emits-object-replacement.html: Removed.
  • platform/gtk/accessibility/media-emits-object-replacement-expected.txt: Renamed from LayoutTests/accessibility/gtk/media-emits-object-replacement-expected.txt.
6:52 AM Changeset in webkit [193830] by mario@webkit.org
  • 9 edits in trunk

[GTK] Crash in WebProcess when loading large content with custom URI schemes
https://bugs.webkit.org/show_bug.cgi?id=144262

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Properly handle scenarios where errors happen after reading the first
chunk of data coming from the GInputStream provided by the application.

  • UIProcess/API/gtk/WebKitWebContextPrivate.h:
  • UIProcess/API/gtk/WebKitWebContext.cpp:

(webkitWebContextIsLoadingCustomProtocol): New, checks whether a load
is still in progress, after the startLoading method has been called.

  • UIProcess/API/gtk/WebKitURISchemeRequest.cpp:

(webkitURISchemeRequestReadCallback): Early return if the stream has been
cancelled on finish_error, so that we make sure we don't keep on reading
the GInputStream after that point.
(webkit_uri_scheme_request_finish_error): Don't send a didFailWithError
message to the Network process if the load is not longer in progress.

  • Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp:

(WebKit::CustomProtocolManagerImpl::didFailWithError): Handle the case where
an error is notified from the UI process after the first chunk has been read.
(WebKit::CustomProtocolManagerImpl::didReceiveResponse): Handle the case where
data might no longer be available if an error happened even before this point.

  • WebProcess/soup/WebKitSoupRequestInputStream.h:
  • WebProcess/soup/WebKitSoupRequestInputStream.cpp:

(webkitSoupRequestInputStreamDidFailWithError): Notify the custom GInputStream
that we no longer want to keep reading data in chunks due to a specific error.
(webkitSoupRequestInputStreamReadAsync): Early finish the GTask with a specific
error whenever webkitSoupRequestInputStreamDidFailWithError() has been called.

Tools:

Added new unit test to check the additional scenarios we now
handle for custom URI schemes.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebContext.cpp:

(generateHTMLContent): New helper function to generate big enough content.
(testWebContextURIScheme): New unit test.

6:46 AM Changeset in webkit [193829] by fred.wang@free.fr
  • 4 edits
    2 adds in trunk

Bad position of large operators inside an munderover element
https://bugs.webkit.org/show_bug.cgi?id=151916

Reviewed by Alejandro G. Castro.

Source/WebCore:

Test: mathml/opentype/large-operators-munderover.html

  • rendering/mathml/RenderMathMLOperator.h:

(WebCore::RenderMathMLOperator::isVertical): Expose the direction of the operator.

  • rendering/mathml/RenderMathMLUnderOver.cpp:

(WebCore::RenderMathMLUnderOver::layout): Remove call to horizontal stretching for vertical operators.

LayoutTests:

  • mathml/opentype/large-operators-munderover-expected.txt: Added.
  • mathml/opentype/large-operators-munderover.html: Added.

Add a test to verify the position and size of a large operator used as an munderover base.

6:03 AM Changeset in webkit [193828] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TexMap] TextureMapperTiledBackingStore should notify the ImageObserver of the data access
https://bugs.webkit.org/show_bug.cgi?id=152053

Reviewed by Martin Robinson.

TextureMapperTiledBackingStore should call ImageObserver::didDraw() on the Image's
observer after updating the tile with the Image's data. This way the CachedImage
(i.e. the observer) can mark the data access with the current timestamp, avoiding
removing the decoded data in the very near future during a cache purge.

  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:

(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):

6:00 AM Changeset in webkit [193827] by ryuan.choi@navercorp.com
  • 8 edits in trunk

Source/WebKit2:
[CoordinatedGraphics][EFL] Fix unhandled web process message when launching MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=152048

Reviewed by Gyuyoung Kim.

WebPage should be initialized before updating preferences.

  • UIProcess/API/C/CoordinatedGraphics/WKView.cpp:

(WKViewInitialize): Deleted.

  • UIProcess/API/C/CoordinatedGraphics/WKView.h:
  • UIProcess/API/efl/EwkView.cpp:

(EwkView::EwkView):
Calls WKViewSetIsActive instead of WKViewInitialize not to change the behavior
of EFL port.

  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::WebView):
Initialize just before creating WebPage because there is not use case to separate
initializing WebPage from creating in CoordinatedGraphics.
(WebKit::WebView::initialize): Deleted.

  • UIProcess/CoordinatedGraphics/WebView.h:

Tools:
[EFL] Fix unhandled web process message when launching MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=152048

Reviewed by Gyuyoung Kim.

  • TestWebKitAPI/Tests/WebKit2/CoordinatedGraphics/WKViewUserViewportToContents.cpp:

(TestWebKitAPI::TEST):

5:32 AM Changeset in webkit [193826] by Carlos Garcia Campos
  • 11 edits in trunk

[GTK] Add API to handle beforeunload events
https://bugs.webkit.org/show_bug.cgi?id=139090

Reviewed by Gustavo Noronha Silva.

Source/WebKit2:

beforeunload is fired when a page is about to be closed, to ask
the user for confirmation. This happens when reloading a page,
when navigating to another page or when the page is closed by a
user action (a tab or window closed). In the first two cases, the
event is automatically fired by WebCore, but in the case of a user
action we need additional API to ensure the event is fired before
the page is closed. A new script dialog type has been added to
handle beforeunload events and webkit_web_view_try_close() to
allow applications to try to close the page.

  • UIProcess/API/gtk/WebKitScriptDialog.cpp:

(webkit_script_dialog_confirm_set_confirmed): BeforeUnloadConfirm
dialogs can also be confirmed.

  • UIProcess/API/gtk/WebKitScriptDialog.h: Add

WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM script dialog type.

  • UIProcess/API/gtk/WebKitUIClient.cpp: Implement

canRunBeforeUnloadConfirmPanel() and runBeforeUnloadConfirmPanel().

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewCreateJavaScriptDialog): Add secondaryText optional
parameter for BeforeUnloadConfirm dialogs. Do not set the default
response if the dialog was created without buttons.
(webkitWebViewScriptDialog): Handle
WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM script dialog type to
create a message dialog for beforeunlos events.
(webkit_web_view_class_init): Update documentation of
WebKitWebView::close and WebKitWebView::script-dialog.
(webkitWebViewRunJavaScriptBeforeUnloadConfirm): Emit WebKitWebView::script-dialog.
(webkit_web_view_try_close): Try to close the page.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewPrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.

Tools:

  • MiniBrowser/gtk/BrowserWindow.c:

(browserWindowConstructed):
(browserWindowDeleteEvent):
(browser_window_class_init):
Handle delete-event to prevent the window from being closed when
the page has beforeunload handlers. Use
webkit_web_view_try_close() when the window is requested to be
closed.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestUIClient.cpp:

(testWebViewJavaScriptDialogs):
Add a test case for the WEBKIT_SCRIPT_DIALOG_BEFORE_UNLOAD_CONFIRM
script dialog type.

5:30 AM Changeset in webkit [193825] by jdiggs@igalia.com
  • 2 edits in trunk/LayoutTests

[AX][GTK] Accessibility gardening
https://bugs.webkit.org/show_bug.cgi?id=152062

Unreviewed test gardening.

Skip two tests specific to AX API, mark a test which is timing out, remove passing
test from failures.

  • platform/gtk/TestExpectations:
5:09 AM Changeset in webkit [193824] by calvaris@igalia.com
  • 12 edits
    54 adds
    5 deletes in trunk/LayoutTests

[Streams API] Import the web-platform-tests directly from the spec
https://bugs.webkit.org/show_bug.cgi?id=152051

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

These are the web platform tests imported directly (or almost) from the Streams API repository. Tests work out
of the box (all but a small flakiness that we are forcing as failure to not disrupt the execution of the rest of
tests).

To make them work we are importing also the service worker test helpers that is used by the tests.

  • web-platform-tests/service-workers/service-workers/resources/README.txt: Added.
  • web-platform-tests/service-workers/service-workers/resources/test-helpers.js: Added. Imported from the web-platform-tests.
  • web-platform-tests/streams-api/README.txt: Added.
  • web-platform-tests/streams-api/byte-length-queuing-strategy-expected.txt: Added.
  • web-platform-tests/streams-api/byte-length-queuing-strategy.html: Added.
  • web-platform-tests/streams-api/byte-length-queuing-strategy.js: Added.
  • web-platform-tests/streams-api/count-queuing-strategy-expected.txt: Added.
  • web-platform-tests/streams-api/count-queuing-strategy.html: Added.
  • web-platform-tests/streams-api/count-queuing-strategy.js: Added.
  • web-platform-tests/streams-api/readable-streams/bad-strategies-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/bad-strategies.html: Added.
  • web-platform-tests/streams-api/readable-streams/bad-strategies.js: Added.
  • web-platform-tests/streams-api/readable-streams/bad-underlying-sources-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/bad-underlying-sources.html: Added.
  • web-platform-tests/streams-api/readable-streams/bad-underlying-sources.js: Added.
  • web-platform-tests/streams-api/readable-streams/brand-checks-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/brand-checks.html: Added.
  • web-platform-tests/streams-api/readable-streams/brand-checks.js: Added.
  • web-platform-tests/streams-api/readable-streams/cancel-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/cancel.html: Added. There's a test with a forced failure

because it is flaky.

  • web-platform-tests/streams-api/readable-streams/cancel.js: Added.
  • web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration.html: Added.
  • web-platform-tests/streams-api/readable-streams/count-queuing-strategy-integration.js: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection.html: Added.
  • web-platform-tests/streams-api/readable-streams/garbage-collection.js: Added.
  • web-platform-tests/streams-api/readable-streams/general-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/general.html: Added.
  • web-platform-tests/streams-api/readable-streams/general.js: Added.
  • web-platform-tests/streams-api/readable-streams/pipe-through-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/pipe-through.html: Added.
  • web-platform-tests/streams-api/readable-streams/pipe-through.js: Added.
  • web-platform-tests/streams-api/readable-streams/readable-stream-reader-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/readable-stream-reader.html: Added.
  • web-platform-tests/streams-api/readable-streams/readable-stream-reader.js: Added.
  • web-platform-tests/streams-api/readable-streams/tee-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/tee.html: Added.
  • web-platform-tests/streams-api/readable-streams/tee.js: Added.
  • web-platform-tests/streams-api/readable-streams/templated-expected.txt: Added.
  • web-platform-tests/streams-api/readable-streams/templated.html: Added.
  • web-platform-tests/streams-api/readable-streams/templated.js: Added.
  • web-platform-tests/streams-api/resources/rs-test-templates.js: Added.
  • web-platform-tests/streams-api/resources/rs-utils.js: Added.
  • web-platform-tests/streams-api/resources/test-initializer.js: Added.
  • web-platform-tests/streams-api/resources/test-utils.js: Added.

LayoutTests:

Removed the tests that are already imported directly from the spec.

  • streams/brand-checks-expected.txt: Added.
  • streams/brand-checks.html: Added. This includes some tests that vanished from the spec.
  • streams/reference-implementation/bad-strategies-expected.txt:
  • streams/reference-implementation/bad-strategies.html:
  • streams/reference-implementation/bad-underlying-sources.html: Removed.
  • streams/reference-implementation/brand-checks-expected.txt:
  • streams/reference-implementation/brand-checks.html:
  • streams/reference-implementation/byte-length-queuing-strategy-expected.txt:
  • streams/reference-implementation/byte-length-queuing-strategy.html:
  • streams/reference-implementation/count-queuing-strategy-expected.txt:
  • streams/reference-implementation/count-queuing-strategy.html:
  • streams/reference-implementation/readable-stream-cancel.html: Removed.
  • streams/reference-implementation/readable-stream-reader.html: Removed.
  • streams/reference-implementation/readable-stream-tee.html: Removed.
  • streams/reference-implementation/readable-stream-templated-expected.txt:
  • streams/reference-implementation/readable-stream-templated.html:
  • streams/reference-implementation/readable-stream.html: Removed.
4:00 AM Changeset in webkit [193823] by jdiggs@igalia.com
  • 2 edits in trunk/LayoutTests

[AX][GTK] combobox-descendants-orientation-crash.html needs new baseline after r190648
https://bugs.webkit.org/show_bug.cgi?id=152052

Unreviewed test gardening.

  • accessibility/gtk/combobox-descendants-orientation-crash-expected.txt:
3:43 AM Changeset in webkit [193822] by Gyuyoung Kim
  • 2 edits in trunk/Source/WebKit2

[EFL] Missing to set ignoreTLSError to NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=152047

Reviewed by Csaba Osztrogonác.

NetworkProcess has been enabled for all ports since r192796 though, EFL port
didn't send the ignoreTLSError value to NetworkProcess. This has caused failure of EFL API tests
related with ssl feature.

  • UIProcess/efl/WebProcessPoolEfl.cpp:

(WebKit::WebProcessPool::setIgnoreTLSErrors):

3:37 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
(diff)
3:33 AM Changeset in webkit [193821] by jdiggs@igalia.com
  • 3 edits
    2 copies in trunk/LayoutTests

AX: The aria-table-content.html layout test should be more cross-platform friendly
https://bugs.webkit.org/show_bug.cgi?id=152002

Reviewed by Mario Sanchez Prada.

Use 'debug' to dump the role instead of 'shouldBe' with a hard-coded role.

  • accessibility/aria-table-content-expected.txt: Updated
  • accessibility/aria-table-content.html: Updated
  • platform/gtk/accessibility/aria-table-content-expected.txt: Added
  • platform/efl/accessibility/aria-table-content-expected.txt: Added
3:27 AM Changeset in webkit [193820] by zandobersek@gmail.com
  • 2 edits
    1 add
    1 delete in trunk/Source/WebCore

Make MainThreadSharedTimerGtk implementation GLib-specific
https://bugs.webkit.org/show_bug.cgi?id=152044

Reviewed by Carlos Garcia Campos.

MainThreadSharedTimerGtk has implementation that only directly depends
on GLib, and not GTK+. Because of that it can be moved under
Source/WebCore/platform/glib and slightly renamed.

  • PlatformGTK.cmake:
  • platform/glib/MainThreadSharedTimerGLib.cpp: Renamed from Source/WebCore/platform/gtk/MainThreadSharedTimerGtk.cpp.

(WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
(WebCore::MainThreadSharedTimer::setFireInterval):
(WebCore::MainThreadSharedTimer::stop):
(WebCore::MainThreadSharedTimer::invalidate):

  • platform/gtk/MainThreadSharedTimerGtk.cpp:

(WebCore::MainThreadSharedTimer::MainThreadSharedTimer): Deleted.
(WebCore::MainThreadSharedTimer::setFireInterval): Deleted.
(WebCore::MainThreadSharedTimer::stop): Deleted.
(WebCore::MainThreadSharedTimer::invalidate): Deleted.

3:26 AM Changeset in webkit [193819] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[TextureMapper] TextureMapperShaderProgram::setMatrix() should use TransformationMatrix::FloatMatrix4
https://bugs.webkit.org/show_bug.cgi?id=152042

Reviewed by Martin Robinson.

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::setMatrix): Instead of manually writing out
the complete matrix in a C array, simply use TransformationMatrix::FloatMatrix4
and fill that via the TransformationMatrix::toColumnMajorFloatArray() method
called on the passed-in TransformationMatrix.

3:22 AM Changeset in webkit [193818] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Soup] Attach the SocketStreamHandleSoup write-ready source to the thread-default context
https://bugs.webkit.org/show_bug.cgi?id=152041

Reviewed by Carlos Garcia Campos.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Attach the
write-ready source to the thread-default context, instead of implicitly
relying on the default context for dispatching.

3:20 AM Changeset in webkit [193817] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

[Soup] SocketStreamHandle should call g_source_destroy() on the write-ready source
https://bugs.webkit.org/show_bug.cgi?id=152040

Reviewed by Carlos Garcia Campos.

  • platform/network/soup/SocketStreamHandleSoup.cpp:

(WebCore::SocketStreamHandle::stopWaitingForSocketWritability): Instead of
calling the g_source_get_id()-g_source_remove() pair, destroy the source via
the g_source_destroy() call. Also use nullptr to clear out the pointer
variable.

3:12 AM Changeset in webkit [193816] by jdiggs@igalia.com
  • 2 edits in trunk/LayoutTests

[AX][GTK] media-emits-object-replacement.html needs new baseline
https://bugs.webkit.org/show_bug.cgi?id=152050

Unreviewed test gardening.

  • accessibility/gtk/media-emits-object-replacement-expected.txt:
3:09 AM Changeset in webkit [193815] by mario@webkit.org
  • 3 edits in trunk/Tools

Refactored initialization code in LoadTrackingTest.

Rubber-stamped by Carlos Garcia Campos.

Small refactoring to make sure that the state of a LoadTrackingTest
gets properly reset before loading new web content.

  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.h:
  • TestWebKitAPI/gtk/WebKit2Gtk/LoadTrackingTest.cpp:

(LoadTrackingTest::reset): New, refactored code from *load*() and go*()
functions and reset the remaining local variables.
(LoadTrackingTest::loadURI): Call reset();
(LoadTrackingTest::loadHtml): Ditto.
(LoadTrackingTest::loadPlainText): Ditto.
(LoadTrackingTest::loadBytes): Ditto.
(LoadTrackingTest::loadRequest): Ditto.
(LoadTrackingTest::reload): Ditto.
(LoadTrackingTest::goBack): Ditto.
(LoadTrackingTest::goForward): Ditto.

2:47 AM WebKitGTK/Gardening/Calendar edited by Emanuele Aina
Add me to the gardening schedule (diff)
2:38 AM WebKitGTK/Gardening/Calendar edited by ltilve@igalia.com
(diff)
2:35 AM WebKitGTK/Gardening/Calendar edited by ltilve@igalia.com
(diff)
2:35 AM Changeset in webkit [193814] by zandobersek@gmail.com
  • 2 edits
    2 adds
    1 delete in trunk/Source/WebCore

Make AudioBusGtk implementation GLib-specific
https://bugs.webkit.org/show_bug.cgi?id=152049

Reviewed by Philippe Normand.

AudioBusGtk only depends on GLib, so it should be moved to
Source/WebCore/platform/audio/glib and the implementation file
renamed to AudioBusGLib.cpp.

The hard-coded webkitgtk path component can be addressed later.

  • PlatformGTK.cmake: Update the build target.
  • platform/audio/glib/AudioBusGLib.cpp: Renamed from Source/WebCore/platform/audio/gtk/AudioBusGtk.cpp.

(WebCore::AudioBus::loadPlatformResource):

  • platform/audio/gtk/AudioBusGtk.cpp:

(WebCore::AudioBus::loadPlatformResource): Deleted.

2:30 AM WebKitGTK/Gardening/Calendar edited by tpopela@redhat.com
(diff)
2:19 AM WebKitGTK/Gardening/Calendar edited by Michael Catanzaro
Add myself to schedule (diff)
2:17 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
2:09 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
2:09 AM Changeset in webkit [193813] by jdiggs@igalia.com
  • 7 edits in trunk

AX: [EFL] Consider deferring to WebCore Accessibility for table exposure
https://bugs.webkit.org/show_bug.cgi?id=144898

Reviewed by Darin Adler.

Source/WebCore:

Stop unconditionally exposing all HTMLTableElement nodes as AccessibilityTables
for WebKitEfl.

No new tests. Several existing tests already cover table exposure. They have
been updated accordingly.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):

LayoutTests:

  • platform/efl/accessibility/table-detection-expected.txt: Updated to reflect new behavior.
  • platform/efl/accessibility/table-hierarchy-expected.txt: Updated to reflect new behavior.
  • platform/efl/accessibility/table-one-cell-expected.txt: Updated to reflect new behavior.
  • platform/efl/accessibility/table-with-rules-expected.txt: Updated to reflect new behavior.
2:07 AM WebKitGTK/Gardening/Calendar edited by clopez@igalia.com
(diff)
1:58 AM Changeset in webkit [193812] by Gyuyoung Kim
  • 4 edits in trunk

[EFL] REGRESSION(r193616): WKPreferences test has been failed since r193616
https://bugs.webkit.org/show_bug.cgi?id=151942

Reviewed by Darin Adler.

Source/WebKit2:

As wkpreference settings were moved from EwkView to WKPreferenceEfl, the offline-web-application-cache feature
is enabled by default when running API test. It seems this option should be enabled by MiniBrowser.

  • UIProcess/efl/WebPreferencesEfl.cpp:

(WebKit::WebPreferences::platformInitializeStore): Remove to enable web application cache feature here.

Tools:

  • MiniBrowser/efl/main.c:

(window_create): Enable offline web application cache feature on MiniBrowser.
(elm_main):

1:42 AM Changeset in webkit [193811] by ryuan.choi@navercorp.com
  • 5 edits in trunk/Source/WebKit2

[CoordinatedGraphics] layerTreeHost always exist in CoordinatedDrawingArea
https://bugs.webkit.org/show_bug.cgi?id=151987

Reviewed by Darin Adler.

CoordinatedGraphics using UI side compositor always forces accelerated compositing.
This patch cleans up dead code for layerTreeHost which always exists.

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.cpp:

(WebKit::CoordinatedDrawingAreaProxy::paint): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::setBackingStoreIsDiscardable): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::update): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::didUpdateBackingStoreState): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::exitAcceleratedCompositingMode): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::incorporateUpdate): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::enterAcceleratedCompositingMode): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::discardBackingStoreSoon): Deleted.
(WebKit::CoordinatedDrawingAreaProxy::discardBackingStore): Deleted.

  • UIProcess/CoordinatedGraphics/CoordinatedDrawingAreaProxy.h:

(WebKit::CoordinatedDrawingAreaProxy::setBackingStoreIsDiscardable):

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.cpp:

(WebKit::CoordinatedDrawingArea::CoordinatedDrawingArea): Deleted.
(WebKit::CoordinatedDrawingArea::layerHostDidFlushLayers): Deleted.
(WebKit::CoordinatedDrawingArea::scheduleCompositingLayerFlush): Deleted.
(WebKit::CoordinatedDrawingArea::didUpdate): Deleted.
(WebKit::CoordinatedDrawingArea::enterAcceleratedCompositingMode): Deleted.
(WebKit::CoordinatedDrawingArea::scheduleDisplay): Deleted.
(WebKit::CoordinatedDrawingArea::displayTimerFired): Deleted.
(WebKit::CoordinatedDrawingArea::display): Deleted.
(WebKit::shouldPaintBoundsRect): Deleted.
(WebKit::CoordinatedDrawingArea::attachViewOverlayGraphicsLayer): Deleted.

  • WebProcess/WebPage/CoordinatedGraphics/CoordinatedDrawingArea.h:

Dec 8, 2015:

10:45 PM Changeset in webkit [193810] by ddkilzer@apple.com
  • 2 edits in trunk/LayoutTests

Skip storage/indexeddb/index-multientry.html once again

  • platform/mac-wk1/TestExpectations: Skip:
  • storage/indexeddb/index-multientry.html
9:48 PM Changeset in webkit [193809] by Simon Fraser
  • 36 edits in trunk/Source/WebCore

Convert resetAnimValToBaseVal take a reference to a SVGAnimatedType
https://bugs.webkit.org/show_bug.cgi?id=152036

Reviewed by Zalan Bujtas.

Change resetAnimValToBaseVal() to take a reference at the last argument.

  • svg/SVGAnimateElementBase.cpp:

(WebCore::SVGAnimateElementBase::resetAnimatedType):

  • svg/SVGAnimatedAngle.cpp:

(WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedAngle.h:
  • svg/SVGAnimatedBoolean.cpp:

(WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedBoolean.h:
  • svg/SVGAnimatedColor.h:
  • svg/SVGAnimatedEnumeration.cpp:

(WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedEnumeration.h:
  • svg/SVGAnimatedInteger.cpp:

(WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedInteger.h:
  • svg/SVGAnimatedIntegerOptionalInteger.cpp:

(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedIntegerOptionalInteger.h:
  • svg/SVGAnimatedLength.cpp:

(WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedLength.h:
  • svg/SVGAnimatedLengthList.cpp:

(WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedLengthList.h:
  • svg/SVGAnimatedNumber.cpp:

(WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedNumber.h:
  • svg/SVGAnimatedNumberList.cpp:

(WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedNumberList.h:
  • svg/SVGAnimatedNumberOptionalNumber.cpp:

(WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedNumberOptionalNumber.h:
  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedPath.h:
  • svg/SVGAnimatedPointList.cpp:

(WebCore::SVGAnimatedPointListAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedPointList.h:
  • svg/SVGAnimatedPreserveAspectRatio.cpp:

(WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedPreserveAspectRatio.h:
  • svg/SVGAnimatedRect.cpp:

(WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedRect.h:
  • svg/SVGAnimatedString.cpp:

(WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedString.h:
  • svg/SVGAnimatedTransformList.cpp:

(WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):

  • svg/SVGAnimatedTransformList.h:
  • svg/SVGAnimatedTypeAnimator.h:

(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
(WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):

8:15 PM Changeset in webkit [193808] by Jon Davis
  • 3 edits in trunk/Websites/webkit.org

Wide tables should be scrollable on narrow mobile screens.
https://bugs.webkit.org/show_bug.cgi?id=151941

Reviewed by Timothy Hatcher.

  • wp-content/themes/webkit/scripts/global.js:

(inView):
(onMovement):
(updateImages):
(enableScrollableTables):
(update): Deleted.

  • wp-content/themes/webkit/style.css:

(.pagination .prev-post):
(article .scrollable):
(.scrollable .scrollable-padding):

8:10 PM Changeset in webkit [193807] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix Code Style Guidelines code parsing.
https://bugs.webkit.org/show_bug.cgi?id=152024

Reviewed by Timothy Hatcher.

  • wp-content/plugins/table-of-contents.php:
7:58 PM Changeset in webkit [193806] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Workaround arrow function issue in TimelineOverviewGraph.js
https://bugs.webkit.org/show_bug.cgi?id=152031

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2015-12-08
Reviewed by Timothy Hatcher.

  • UserInterface/Views/TimelineOverviewGraph.js:

(WebInspector.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
Workaround an existing arrow function issue by moving off of arrow functions here.

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

Remove Mavericks-specific code from FontCacheMac
https://bugs.webkit.org/show_bug.cgi?id=152030

Reviewed by Simon Fraser.

Mavericks is no longer a supported platform.

No new tests because there is no behavior change.

  • platform/graphics/mac/FontCacheMac.mm:

(WebCore::platformLookupFallbackFont):
(WebCore::platformFontWithFamilySpecialCase): Deleted.

6:30 PM Changeset in webkit [193804] by commit-queue@webkit.org
  • 7 edits in trunk/Source/JavaScriptCore

[JSC] Improve how B3 lowers Add() and Sub() on x86
https://bugs.webkit.org/show_bug.cgi?id=152026

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

The assembler was missing some important x86 forms of
ADD and SUB that were making our lowering
unfriendly with register allocation.

First, we were missing a 3 operand version of Add
implement with LEA. As a result, an Add would
be lowered as:

Move op1->srcDest
Add op2, srcDest

The problem with such code is that op2 and srcDest
interferes. It is impossible to assign them the same
machine register.

With the new Add form, we have:

Add op1, op2, dest

without interferences between any of those values.
The add is implement by a LEA without scaling or displacement.

This patch also adds missing forms of Add and Sub with
direct addressing for arguments. This avoids dealing with Tmps
that only exist for those operations.

Finally, the lowering of adding something to itself was updated accordingly.
Such operation is transformed in Shl by 2. The lowering of Shl
was adding an explicit Move, preventing the use of LEA when it
is useful.
Instead of having an explicit move, I changed the direct addressing
forms to only be selected if the two operands are different.
A Move is then added by appendBinOp() if needed.

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::add32):
(JSC::MacroAssemblerX86Common::x86Lea32):

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::add64):
(JSC::MacroAssemblerX86_64::x86Lea64):
(JSC::MacroAssemblerX86_64::sub64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::addq_rm):
(JSC::X86Assembler::subq_mr):
(JSC::X86Assembler::subq_rm):
(JSC::X86Assembler::subq_im):
(JSC::X86Assembler::leal_mr):
(JSC::X86Assembler::leaq_mr):

  • b3/B3LowerToAir.cpp:

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

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

(JSC::B3::testAddArgMem):
(JSC::B3::testAddMemArg):
(JSC::B3::testAddImmMem):
(JSC::B3::testAddArg32):
(JSC::B3::testAddArgMem32):
(JSC::B3::testAddMemArg32):
(JSC::B3::testAddImmMem32):
(JSC::B3::testSubArgMem):
(JSC::B3::testSubMemArg):
(JSC::B3::testSubImmMem):
(JSC::B3::testSubMemImm):
(JSC::B3::testSubMemArg32):
(JSC::B3::testSubArgMem32):
(JSC::B3::testSubImmMem32):
(JSC::B3::testSubMemImm32):
(JSC::B3::run):

6:01 PM Changeset in webkit [193803] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Roll out r193661. rdar://problem/23639610

5:59 PM Changeset in webkit [193802] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Roll out r193675. rdar://problem/23639610

5:59 PM Changeset in webkit [193801] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/objectstore-cursor.html fails.
https://bugs.webkit.org/show_bug.cgi?id=152023

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:

(WebCore::IDBServer::MemoryObjectStoreCursor::MemoryObjectStoreCursor):
(WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange): Make sure the

found iterator is actually in the target range.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
5:58 PM Changeset in webkit [193800] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Roll out r193676. rdar://problem/23639610

5:56 PM Changeset in webkit [193799] by bshafiei@apple.com
  • 10 edits
    1 delete in tags/Safari-602.1.13.2/Source

Roll out r193645. rdar://problem/23751214

5:18 PM Changeset in webkit [193798] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

Changing <video> src during 'ended' event can leave screen sleep disabled
https://bugs.webkit.org/show_bug.cgi?id=152018

Reviewed by Eric Carlson.

Resetting a HTMLMediaElement's src during 'ended' introduces a race condition: whether
the 'mediaPlayerRateChanged()' notification will fire before createMediaPlayer() destroys
the old MediaPlayer firing said notification.

To break the race condition, always update the sleep disabling assertion after destroying
the media player (by creating a new one).

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::createMediaPlayer):

4:40 PM Changeset in webkit [193797] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping fast/canvas/canvas-too-large-to-draw.html on win
https://bugs.webkit.org/show_bug.cgi?id=152009

Unreviewed test gardening.

  • platform/win/TestExpectations:
4:36 PM Changeset in webkit [193796] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Rebaseline fast/block/float/overhanging-tall-block.html for win after r193511
https://bugs.webkit.org/show_bug.cgi?id=151906

Unreviewed test gardening.

  • platform/win/fast/block/float/overhanging-tall-block-expected.txt:
4:30 PM Changeset in webkit [193795] by mark.lam@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Factoring out common DFG code for bitwise and shift operators.
https://bugs.webkit.org/show_bug.cgi?id=152019

Reviewed by Michael Saboff.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileBitwiseOp):
(JSC::DFG::SpeculativeJIT::compileShiftOp):

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

4:23 PM Changeset in webkit [193794] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Skipping fast/canvas/canvas-too-large-to-draw.html on ElCapitan Debug
https://bugs.webkit.org/show_bug.cgi?id=152009

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:12 PM Changeset in webkit [193793] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG and FTL should be resilient against cases where both snippet operands are constant.
https://bugs.webkit.org/show_bug.cgi?id=152017

Reviewed by Michael Saboff.

The DFG front end may not always constant fold cases where both operands are
constant. As a result, the DFG and FTL back ends needs to be resilient against
this when using snippet generators since the generators do not support the case
where both operands are constant. The strategy for handling this 2 const operands
case is to treat at least one of them as a variable if both are constant.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueAdd):

  • Also remove the case for folding 2 constant operands. It is the front end's job to do so, not the back end here.

(JSC::DFG::SpeculativeJIT::compileArithSub):
(JSC::DFG::SpeculativeJIT::compileArithMul):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::DFG::LowerDFGToLLVM::compileValueAdd):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):

4:08 PM Changeset in webkit [193792] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Modern IDB: IDBTransaction::hasPendingActivity() was wrong, leading to premature GC of the wrapper.
https://bugs.webkit.org/show_bug.cgi?id=151507

Reviewed by Beth Dakin.

A handful of tests were marked flaky and tracked back to this bug.

Ever since the presumed fix for this bug (r192687) the flakiness dashboard says they pass.

  • platform/mac-wk1/TestExpectations: Re-enable the no-longer-flaky tests.
4:04 PM Changeset in webkit [193791] by Matt Baker
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: Add a hidden property to TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=152014

Reviewed by Timothy Hatcher.

  • UserInterface/Views/NavigationSidebarPanel.js:

Removed static property for "hidden" CSS class. No longer used.
(WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline):
Fixed bug in order of visibleTreeOutlines add/remove.
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):

  • UserInterface/Views/TimelineSidebarPanel.js:

(WebInspector.TimelineSidebarPanel):
(WebInspector.TimelineSidebarPanel.prototype._changeViewMode):

  • UserInterface/Views/TreeOutline.js:

(WebInspector.TreeOutline):
(WebInspector.TreeOutline.prototype.get hidden):
(WebInspector.TreeOutline.prototype.set hidden):
Added hidden property, set DOM element hidden attribute.
(WebInspector.TreeElement.prototype.set hidden):
Remove CSS class, set DOM element hidden attribute.
(WebInspector.TreeElement.prototype._attach):
(WebInspector.TreeElement.prototype.expand):

3:57 PM Changeset in webkit [193790] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

More IDB TestExpectations gardening.

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
3:42 PM Changeset in webkit [193789] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed IDB layout test gardening (Adding some flaky crashes)

  • platform/mac-wk1/TestExpectations:
3:05 PM Changeset in webkit [193788] by mark.lam@apple.com
  • 12 edits
    4 adds in trunk/Source/JavaScriptCore

Snippefy shift operators for the baseline JIT.
https://bugs.webkit.org/show_bug.cgi?id=151875

Reviewed by Geoffrey Garen.

  • jit/JITArithmetic.cpp:

(JSC::JIT::emitBitBinaryOpFastPath):

  • Don't need GPRInfo:: qualifiers. Removed them to reduce verbosity.
  • Also removed the emitStoreInt32() case for storing the result on 32-bit ports. This is because:
    1. The client should not make assumptions about whether the snippet fast path only include cases where the result tag already contain the IntTag.
The "(op1 == result
op2 == result)" condition for skipping the IntTag

storage, is only valid for the bitand, bitor, and bitxor implementations.
It is invalid for the lshift implementation that uses this code now.

Instead, we'll always unconditionally store what the result tag that the
snippet computed for us.

(JSC::JIT::emit_op_lshift):
(JSC::JIT::emitSlow_op_lshift):
(JSC::JIT::emitRightShiftFastPath):
(JSC::JIT::emit_op_rshift):
(JSC::JIT::emitSlow_op_rshift):
(JSC::JIT::emit_op_urshift):
(JSC::JIT::emitSlow_op_urshift):

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emit_op_lshift): Deleted.
(JSC::JIT::emitSlow_op_lshift): Deleted.
(JSC::JIT::emitRightShift): Deleted.
(JSC::JIT::emitRightShiftSlowCase): Deleted.
(JSC::JIT::emit_op_rshift): Deleted.
(JSC::JIT::emitSlow_op_rshift): Deleted.
(JSC::JIT::emit_op_urshift): Deleted.
(JSC::JIT::emitSlow_op_urshift): Deleted.

  • jit/JITLeftShiftGenerator.cpp: Added.

(JSC::JITLeftShiftGenerator::generateFastPath):

  • jit/JITLeftShiftGenerator.h: Added.

(JSC::JITLeftShiftGenerator::JITLeftShiftGenerator):

  • jit/JITRightShiftGenerator.cpp: Added.

(JSC::JITRightShiftGenerator::generateFastPath):

  • jit/JITRightShiftGenerator.h: Added.

(JSC::JITRightShiftGenerator::JITRightShiftGenerator):

  • tests/stress/op_lshift.js:
  • tests/stress/op_rshift.js:
  • tests/stress/op_urshift.js:
  • Fixed some values and added others that are meaningful for testing shifts.
  • tests/stress/resources/binary-op-test.js:

(stringifyIfNeeded):
(generateBinaryTests):

  • Fixed the test generator to give unique names to all the generated test functions. Without this, multiple tests may end up using the same global test function. As a result, with enough test values to test, the function may get prematurely JITted, and the computed expected result which is supposed to be computed by the LLINT, may end up being computed by a JIT instead.
3:05 PM Changeset in webkit [193787] by commit-queue@webkit.org
  • 12 edits in trunk/Source/WebKit2

Progress towards implementing downloads with NetworkSession
https://bugs.webkit.org/show_bug.cgi?id=151883

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

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::convertMainResourceLoadToDownload):

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::~NetworkLoad):
(WebKit::NetworkLoad::continueDidReceiveResponse):
(WebKit::NetworkLoad::convertTaskToDownload):
(WebKit::NetworkLoad::willPerformHTTPRedirection):
(WebKit::NetworkLoad::didReceiveChallenge):
(WebKit::NetworkLoad::didReceiveResponse):
(WebKit::NetworkLoad::didReceiveData):
(WebKit::NetworkLoad::didCompleteWithError):
(WebKit::NetworkLoad::didBecomeDownload):
(WebKit::NetworkLoad::didReceiveResponseAsync):
(WebKit::NetworkLoad::continueCanAuthenticateAgainstProtectionSpace):

  • NetworkProcess/NetworkLoad.h:
  • NetworkProcess/NetworkLoadClient.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::cleanup):
(WebKit::NetworkResourceLoader::didConvertToDownload):
(WebKit::NetworkResourceLoader::abort):
(WebKit::NetworkResourceLoader::didConvertHandleToDownload): Deleted.

  • NetworkProcess/NetworkResourceLoader.h:
  • NetworkProcess/NetworkSession.h:

(WebKit::NetworkSessionTaskClient::~NetworkSessionTaskClient):
(WebKit::NetworkSession::~NetworkSession): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(-[NetworkSessionDelegate URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:]):
(-[NetworkSessionDelegate URLSession:dataTask:didBecomeDownloadTask:]):
(WebKit::NetworkSession::NetworkSession):
(WebKit::NetworkSession::~NetworkSession):
(WebKit::NetworkSession::createDataTaskWithRequest):

  • Shared/Downloads/Download.h:
  • Shared/Downloads/DownloadManager.h:

(WebKit::DownloadManager::isDownloading):
(WebKit::DownloadManager::activeDownloadCount):

3:02 PM Changeset in webkit [193786] by beidson@apple.com
  • 5 edits in trunk

Modern IDB: Fire blocked events for delete requests that are blocked.
https://bugs.webkit.org/show_bug.cgi?id=152015

Reviewed by Alex Christensen.

Source/WebCore:

No new tests (Previous failing tests now pass, and previously timing-out tests now complete).

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
(WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
(WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired):

  • Modules/indexeddb/server/UniqueIDBDatabase.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
2:18 PM Changeset in webkit [193785] by beidson@apple.com
  • 2 edits in trunk/LayoutTests

More IDB TestExpectations gardening.

Reviewed by Alex Christensen.

  • platform/mac-wk1/TestExpectations:
2:12 PM Changeset in webkit [193784] by beidson@apple.com
  • 17 edits
    4 adds in trunk

Modern IDB: Fire blocked events for upgrade requests that are blocked.
https://bugs.webkit.org/show_bug.cgi?id=152007

Reviewed by Alex Christensen.

Source/WebCore:

Test: storage/indexeddb/modern/blocked-open-db-requests.html

And some that used to fail now pass.
And some that used to timeout now complete.

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::notifyOpenDBRequestBlocked):

  • Modules/indexeddb/client/IDBConnectionToServer.h:
  • Modules/indexeddb/client/IDBDatabaseImpl.cpp:

(WebCore::IDBClient::IDBDatabase::IDBDatabase):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:

(WebCore::IDBClient::IDBOpenDBRequest::requestBlocked):

  • Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
  • Modules/indexeddb/client/IDBRequestImpl.cpp:

(WebCore::IDBClient::IDBRequest::dispatchEvent):

  • Modules/indexeddb/server/IDBConnectionToClient.cpp:

(WebCore::IDBServer::IDBConnectionToClient::notifyOpenDBRequestBlocked):

  • Modules/indexeddb/server/IDBConnectionToClient.h:
  • Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations): When a request that would

result in a version change transaction is blocked by open connections, notify it.

  • Modules/indexeddb/shared/InProcessIDBServer.cpp:

(WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):

  • Modules/indexeddb/shared/InProcessIDBServer.h:

LayoutTests:

  • platform/mac-wk1/TestExpectations:
  • storage/indexeddb/modern/blocked-open-db-requests-expected.txt: Added.
  • storage/indexeddb/modern/blocked-open-db-requests.html: Added.
  • storage/indexeddb/modern/resources/blocked-open-db-requests.js: Added.
  • storage/indexeddb/modern/deleteobjectstore-1.html: Fix subtly broken test.
  • storage/indexeddb/modern/idbdatabase-deleteobjectstore-failures.html: Ditto.
1:49 PM Changeset in webkit [193783] by Joseph Pecoraro
  • 9 edits
    1 add in trunk/Source

Create a Sandbox SPI header
https://bugs.webkit.org/show_bug.cgi?id=151981

Reviewed by Andy Estes.

Source/JavaScriptCore:

  • inspector/remote/RemoteInspector.mm:

Source/WebKit2:

  • PluginProcess/mac/PluginProcessShim.mm:
  • Shared/ios/ChildProcessIOS.mm:
  • Shared/mac/ChildProcessMac.mm:
  • Shared/mac/SandboxUtilities.mm:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/spi/darwin/SandboxSPI.h: Added.
1:45 PM Changeset in webkit [193782] by fpizlo@apple.com
  • 2 edits
    1 add in trunk/Source/JavaScriptCore

DFG::UnificationPhase should merge isProfitableToUnbox, since this may have been set in ByteCodeParser
https://bugs.webkit.org/show_bug.cgi?id=152011
rdar://problem/23777875

Reviewed by Michael Saboff.

Previously UnificationPhase did not merge this because we used to only set this in FixupPhase, which runs after unification. But now
ByteCodeParser may set isProfitableToUnbox as part of how it handles the ArgumentCount of an inlined varargs call, so UnificationPhase
needs to merge it after unifying.

Also changed the order of unification since this makes the bug more obvious and easier to test.

  • dfg/DFGUnificationPhase.cpp:

(JSC::DFG::UnificationPhase::run):

  • tests/stress/varargs-with-unused-count.js: Added.
1:44 PM Changeset in webkit [193781] by mark.lam@apple.com
  • 17 edits
    3 adds in trunk

Polymorphic operand types for DFG and FTL div.
https://bugs.webkit.org/show_bug.cgi?id=151747

Reviewed by Geoffrey Garen.

Source/JavaScriptCore:

Perf on benchmarks is neutral. The new JSRegress ftl-object-div test shows
a speed up not from the div operator itself, but from the fact that the
polymorphic operand types support now allow the test function to run without OSR
exiting, thereby realizing the DFG and FTL's speed up on other work that the test
function does.

This patch has passed the layout tests on x86_64 with a debug build.
It passed the JSC tests with x86 and x86_64 debug builds.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

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

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

(JSC::DFG::PredictionPropagationPhase::propagate):

  • dfg/DFGSpeculativeJIT.cpp:

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

  • ftl/FTLCompileBinaryOp.cpp:

(JSC::FTL::generateBinaryArithOpFastPath):
(JSC::FTL::generateBinaryOpFastPath):

  • ftl/FTLInlineCacheDescriptor.h:
  • ftl/FTLInlineCacheDescriptorInlines.h:

(JSC::FTL::ArithDivDescriptor::ArithDivDescriptor):
(JSC::FTL::ArithDivDescriptor::icSize):

  • ftl/FTLInlineCacheSize.cpp:

(JSC::FTL::sizeOfArithDiv):

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

(JSC::FTL::DFG::LowerDFGToLLVM::lower):
(JSC::FTL::DFG::LowerDFGToLLVM::compileArithMul):

  • Fixed a cut-paste bug where the op_mul IC was using the op_sub IC size. This bug is benign because the op_sub IC size turns out to be larger than op_mul needs.

(JSC::FTL::DFG::LowerDFGToLLVM::compileArithDiv):

  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_div):

  • Fixed a bug where the scratchFPR was not allocated for the 64bit port. This bug is benign because the scratchFPR is only needed if we are using scratchGPR register (used for branchConvertDoubleToInt32()) is

    X86Registers::r8. Since we're always using regT2 for the scratchT2,

    the scratchFPR is never needed. However, we should fix this anyway to be correct.
  • tests/stress/op_div.js:
  • Fixed some test values.

LayoutTests:

  • js/regress/ftl-object-div-expected.txt: Added.
  • js/regress/ftl-object-div.html: Added.
  • js/regress/script-tests/ftl-object-div.js: Added.

(o1.valueOf):
(foo):

1:41 PM Changeset in webkit [193780] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Compile error.
https://bugs.webkit.org/show_bug.cgi?id=152008

Reviewed by Brent Fulgham.

GLuint is undefined.

  • platform/graphics/GraphicsContext3D.h:
1:35 PM Changeset in webkit [193779] by Alan Bujtas
  • 3 edits in trunk/Source/WebCore

Light cleanup in TextPainter.
https://bugs.webkit.org/show_bug.cgi?id=151994

Reviewed by Darin Adler.

No change in functionality.

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::TextPainter):

  • rendering/TextPainter.h: Address post review comment.

(WebCore::ShadowApplier::isLastShadowIteration):
(WebCore::ShadowApplier::shadowIsCompletelyCoveredByText):

1:07 PM Changeset in webkit [193778] by Beth Dakin
  • 3 edits in trunk/Source/WebKit/mac

Follow-up to:
Add support for WebViewAdditions
https://bugs.webkit.org/show_bug.cgi?id=151967

Rubber-stamped by Dan Bernstein.

We should use the Web prefix for all category names.

  • WebView/WebView.mm:

(-[WebView updateWebViewAdditions]):

  • WebView/WebViewInternal.h:
1:05 PM Changeset in webkit [193777] by bshafiei@apple.com
  • 10 edits
    1 copy in tags/Safari-602.1.13.2/Source

Merged r193645. rdar://problem/23751214

1:03 PM Changeset in webkit [193776] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193676. rdar://problem/23639610

1:02 PM Changeset in webkit [193775] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193675. rdar://problem/23639610

1:00 PM Changeset in webkit [193774] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.13.2/Source/WebKit/mac

Merged r193661. rdar://problem/23639610

12:44 PM Changeset in webkit [193773] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Do not insert positioned renderers to multiple gPositionedDescendantsMap.
https://bugs.webkit.org/show_bug.cgi?id=151878
rdar://problem/22229889

Reviewed by Simon Fraser.

We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
This static map is at block level. A particular absolute positioned object is added to its closest ancestor that
returns true for RenderElement::canContainAbsolutelyPositionedObjects().
canContainAbsolutelyPositionedObjects() returns true if the ancestor is either positioned or has transform.
If this container's style changes so that it's no longer positioned and it has no transform anymore,
we need to clear its static map of positioned objects (they'll get re-inserted to another ancestor at next layout).

This patch addresses the case when the renderer does not have transforms anymore.

Source/WebCore:

Test: fast/block/positioning/crash-when-transform-is-removed.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::styleWillChange):

LayoutTests:

  • fast/block/positioning/crash-when-transform-is-removed-expected.txt: Added.
  • fast/block/positioning/crash-when-transform-is-removed.html: Added.
12:43 PM Changeset in webkit [193772] by Jon Davis
  • 2 edits in trunk/Websites/webkit.org

Fix social meta for home page.
https://bugs.webkit.org/show_bug.cgi?id=151764

Reviewed by Timothy Hatcher.

  • wp-content/plugins/social-meta.php:
12:42 PM Changeset in webkit [193771] by Matt Baker
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: Global Breakpoints should always be visible
https://bugs.webkit.org/show_bug.cgi?id=151066

Reviewed by Timothy Hatcher.

  • UserInterface/Views/DebuggerSidebarPanel.js:

(WebInspector.DebuggerSidebarPanel):
Turn off filtering for Global Breakpoints elements.

  • UserInterface/Views/NavigationSidebarPanel.js:

(WebInspector.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
Allow filtering to be turned off for specific tree elements.
(WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
Make element visible if filtering suppressed.
(WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
Visible elements with filtering disabled aren't considered when
showing/hiding the empty content placeholder.

12:37 PM Changeset in webkit [193770] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Marking fast/canvas/canvas-too-large-to-draw.html as flaky on ElCapitan Debug
https://bugs.webkit.org/show_bug.cgi?id=152009

Unreviewed test gardening.

  • platform/mac/TestExpectations:
12:33 PM Changeset in webkit [193769] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2

Merged r193647. rdar://problem/23806716

12:33 PM Changeset in webkit [193768] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit2

Merged r193489. rdar://problem/23766021

12:31 PM Changeset in webkit [193767] by bshafiei@apple.com
  • 2 edits in tags/Safari-602.1.13.2/Source/WebKit2

Merged r193483. rdar://problem/23766021

12:24 PM Changeset in webkit [193766] by commit-queue@webkit.org
  • 62 edits
    13 adds
    1 delete in trunk

[ES6] "super" and "this" should be lexically bound inside an arrow function and should live in a JSLexicalEnvironment
https://bugs.webkit.org/show_bug.cgi?id=149338

Source/JavaScriptCore:

Patch by Aleksandr Skachkov <gskachkov@gmail.com> on 2015-12-05
Reviewed by Saam Barati.

Implemented new version of the lexically bound 'this' in arrow function. In current version
'this' is stored inside of the lexical environment of the function. To store and load we use
op_get_from_scope and op_put_to_scope operations. Also new implementation prevent raising TDZ
error for arrow functions that are declared before super() but invoke after.

  • builtins/BuiltinExecutables.cpp:

(JSC::createExecutableInternal):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::dumpBytecode):

  • bytecode/EvalCodeCache.h:

(JSC::EvalCodeCache::getSlow):

  • bytecode/ExecutableInfo.h:

(JSC::ExecutableInfo::ExecutableInfo):
(JSC::ExecutableInfo::isDerivedConstructorContext):
(JSC::ExecutableInfo::isArrowFunctionContext):

  • bytecode/UnlinkedCodeBlock.cpp:

(JSC::UnlinkedCodeBlock::UnlinkedCodeBlock):

  • bytecode/UnlinkedCodeBlock.h:

(JSC::UnlinkedCodeBlock::isArrowFunction):
(JSC::UnlinkedCodeBlock::isDerivedConstructorContext):
(JSC::UnlinkedCodeBlock::isArrowFunctionContext):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):
(JSC::UnlinkedFunctionExecutable::UnlinkedFunctionExecutable):

  • bytecode/UnlinkedFunctionExecutable.h:
  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::BytecodeGenerator):
(JSC::BytecodeGenerator::initializeArrowFunctionContextScopeIfNeeded):
(JSC::BytecodeGenerator::variable):
(JSC::BytecodeGenerator::emitNewArrowFunctionExpression):
(JSC::BytecodeGenerator::emitLoadArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadThisFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadNewTargetFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitLoadDerivedConstructorFromArrowFunctionLexicalEnvironment):
(JSC::BytecodeGenerator::emitPutNewTargetToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutDerivedConstructorToArrowFunctionContextScope):
(JSC::BytecodeGenerator::emitPutThisToArrowFunctionContextScope):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::isDerivedConstructorContext):
(JSC::BytecodeGenerator::usesArrowFunction):
(JSC::BytecodeGenerator::needsToUpdateArrowFunctionContext):
(JSC::BytecodeGenerator::usesEval):
(JSC::BytecodeGenerator::usesThis):
(JSC::BytecodeGenerator::newTarget):
(JSC::BytecodeGenerator::makeFunction):

  • bytecompiler/NodesCodegen.cpp:

(JSC::ThisNode::emitBytecode):
(JSC::SuperNode::emitBytecode):
(JSC::EvalFunctionCallNode::emitBytecode):
(JSC::FunctionCallValueNode::emitBytecode):
(JSC::FunctionNode::emitBytecode):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::evaluate):

  • dfg/DFGAbstractInterpreterInlines.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:
  • dfg/DFGClobberize.h:
  • dfg/DFGDoesGC.cpp:
  • dfg/DFGFixupPhase.cpp:
  • dfg/DFGNodeType.h:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGPromotedHeapLocation.cpp:
  • dfg/DFGPromotedHeapLocation.h:
  • dfg/DFGSafeToExecute.h:
  • dfg/DFGSpeculativeJIT.cpp:
  • dfg/DFGSpeculativeJIT.h:
  • dfg/DFGSpeculativeJIT32_64.cpp:
  • dfg/DFGSpeculativeJIT64.cpp:
  • ftl/FTLCapabilities.cpp:
  • ftl/FTLLowerDFGToLLVM.cpp:
  • ftl/FTLOperations.cpp:

(JSC::FTL::operationMaterializeObjectInOSR):

  • interpreter/Interpreter.cpp:

(JSC::eval):

  • jit/JIT.cpp:
  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emitNewFuncExprCommon):

  • jit/JITOpcodes32_64.cpp:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
  • parser/ASTBuilder.h:

(JSC::ASTBuilder::createArrowFunctionExpr):
(JSC::ASTBuilder::usesArrowFunction):

  • parser/Nodes.h:

(JSC::ScopeNode::usesArrowFunction):

  • parser/Parser.cpp:

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

  • parser/ParserModes.h:
  • runtime/CodeCache.cpp:

(JSC::CodeCache::getGlobalCodeBlock):
(JSC::CodeCache::getProgramCodeBlock):
(JSC::CodeCache::getEvalCodeBlock):
(JSC::CodeCache::getModuleProgramCodeBlock):
(JSC::CodeCache::getFunctionExecutableFromGlobalCode):

  • runtime/CodeCache.h:
  • runtime/CommonIdentifiers.h:
  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

  • runtime/Executable.cpp:

(JSC::ScriptExecutable::ScriptExecutable):
(JSC::EvalExecutable::create):
(JSC::EvalExecutable::EvalExecutable):
(JSC::ProgramExecutable::ProgramExecutable):
(JSC::ModuleProgramExecutable::ModuleProgramExecutable):
(JSC::FunctionExecutable::FunctionExecutable):

  • runtime/Executable.h:

(JSC::ScriptExecutable::isArrowFunctionContext):
(JSC::ScriptExecutable::isDerivedConstructorContext):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::createEvalCodeBlock):

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

(JSC::globalFuncEval):

  • tests/es6.yaml:
  • tests/stress/arrowfunction-activation-sink-osrexit.js:
  • tests/stress/arrowfunction-activation-sink.js:
  • tests/stress/arrowfunction-lexical-bind-newtarget.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-1.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-2.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-3.js: Added.
  • tests/stress/arrowfunction-lexical-bind-supercall-4.js: Added.
  • tests/stress/arrowfunction-lexical-bind-this-1.js:
  • tests/stress/arrowfunction-lexical-bind-this-7.js: Added.
  • tests/stress/arrowfunction-tdz-1.js: Added.
  • tests/stress/arrowfunction-tdz-2.js: Added.
  • tests/stress/arrowfunction-tdz-3.js: Added.
  • tests/stress/arrowfunction-tdz-4.js: Added.
  • tests/stress/arrowfunction-tdz.js: Removed.

LayoutTests:

Patch by Skachkov Oleksandr <gskachkov@gmail.com> on 2015-12-08
Reviewed by Saam Barati.

  • js/arrowfunction-supercall-expected.txt: Added.
  • js/arrowfunction-supercall.html: Added.
  • js/arrowfunction-tdz-expected.txt: Added new expectation.
  • js/script-tests/arrowfunction-supercall.js: Added.
  • js/script-tests/arrowfunction-tdz.js: Added new cases.
11:49 AM Changeset in webkit [193765] by commit-queue@webkit.org
  • 5 edits in trunk/Tools

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

Patch by Aakash Jain <aakash_jain@apple.com> on 2015-12-08
Reviewed by Alexey Proskuryakov.

  • LayoutTestRelay/LayoutTestRelay/main.m:

(getTestingSimDevice): Use separate testing device for each worker.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager.run): Perform cleanup even if setup fails.

  • Scripts/webkitpy/port/ios.py:

(IOSSimulatorPort.default_child_processes): Calculate number of simulators to use.
(IOSSimulatorPort.child_processes): Gets the number of simulators from options variable.
(IOSSimulatorPort.setup_test_run): Handle mulitple simulators.
(IOSSimulatorPort._quit_ios_simulator): Same
(IOSSimulatorPort.clean_up_test_run): Same
(IOSSimulatorPort.check_sys_deps): Same
(IOSSimulatorPort.testing_device): Same
(IOSSimulatorPort.reset_preferences): Same
(IOSSimulatorPort.get_simulator_path): Return simulator path.
(IOSSimulatorPort._createSimulatorApp): Create the copy of simulator app.

  • Scripts/webkitpy/xcode/simulator.py:

(Device.delete): Delete the simulator device.
(Simulator.delete_device): Same
(Simulator.wait_until_device_is_booted): Wait for device booting.

11:35 AM Changeset in webkit [193764] by eric.carlson@apple.com
  • 11 edits in trunk/Source

[MediaStream] Rename UserMediaClient and UserMediaController methods
https://bugs.webkit.org/show_bug.cgi?id=152001

Reviewed by Brady Eidson.

Source/WebCore:

No new tests, no behavior change.

  • Modules/mediastream/UserMediaClient.h:

(WebCore::UserMediaClient::~UserMediaClient):

  • Modules/mediastream/UserMediaController.h:

(WebCore::UserMediaController::client):
(WebCore::UserMediaController::from):
(WebCore::UserMediaController::requestUserMediaAccess):
(WebCore::UserMediaController::cancelUserMediaAccessRequest):
(WebCore::UserMediaController::requestPermission): Deleted.
(WebCore::UserMediaController::cancelRequest): Deleted.

  • Modules/mediastream/UserMediaRequest.cpp:

(WebCore::UserMediaRequest::constraintsValidated):
(WebCore::UserMediaRequest::contextDestroyed):

  • platform/mock/UserMediaClientMock.h:

Source/WebKit/mac:

  • WebCoreSupport/WebUserMediaClient.h:
  • WebCoreSupport/WebUserMediaClient.mm:

(WebUserMediaClient::pageDestroyed):
(WebUserMediaClient::requestUserMediaAccess):
(WebUserMediaClient::cancelUserMediaAccessRequest):
(-[WebUserMediaPolicyListener initWithUserMediaRequest:]):
(-[WebUserMediaPolicyListener cancelUserMediaAccessRequest]):
(WebUserMediaClient::requestPermission): Deleted.
(WebUserMediaClient::cancelRequest): Deleted.
(-[WebUserMediaPolicyListener cancelRequest]): Deleted.

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:

(WebKit::WebUserMediaClient::pageDestroyed):
(WebKit::WebUserMediaClient::requestUserMediaAccess):
(WebKit::WebUserMediaClient::cancelUserMediaAccessRequest):
(WebKit::WebUserMediaClient::requestPermission): Deleted.
(WebKit::WebUserMediaClient::cancelRequest): Deleted.

  • WebProcess/WebCoreSupport/WebUserMediaClient.h:
11:34 AM Changeset in webkit [193763] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[GTK] Remove an unused variable from WebKitWebContext
https://bugs.webkit.org/show_bug.cgi?id=151999

Patch by Tomas Popela <tpopela@redhat.com> on 2015-12-08
Reviewed by Carlos Garcia Campos.

  • UIProcess/API/gtk/WebKitWebContext.cpp:
11:29 AM Changeset in webkit [193762] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Do not exit fullscreen mode during auto-PiP.
https://bugs.webkit.org/show_bug.cgi?id=151889

Reviewed by Darin Adler.

When auto-PiPing, do not exit fullscreen mode, as that causes a two-step animation upon returing from auto-PiP.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Handle the case where we open Safari after an

auto-PiP by clicking on a link; if so, hide the fullscreen window.

(WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Do not exit fullscreen during auto-PiP.
(WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Ditto.

11:20 AM Changeset in webkit [193761] by peavo@outlook.com
  • 2 edits in trunk/Source/WebCore

[WinCairo] Remove unneeded function.
https://bugs.webkit.org/show_bug.cgi?id=151989

Reviewed by Brent Fulgham.

  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:

(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
(MFCreateMediaType): Deleted.

11:11 AM Changeset in webkit [193760] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

[iOS] Adopt WebFullScreenVideoRootViewController.
https://bugs.webkit.org/show_bug.cgi?id=151996

Reviewed by Dan Bernstein.

Adopt WebFullScreenVideoRootViewController from WebKitAdditions. If it is not available, create and use
a generic UIViewController subclass.

  • platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

(createFullScreenVideoRootViewControllerClass):
(allocWebFullScreenVideoRootViewControllerInstance):
(WebVideoFullscreenInterfaceAVKit::setupFullscreen):

10:53 AM Changeset in webkit [193759] by bshafiei@apple.com
  • 5 edits in tags/Safari-602.1.13.2/Source

Versioning.

10:00 AM Changeset in webkit [193758] by aestes@apple.com
  • 2 edits in trunk/Source/WebCore

ImmutableNFANodeBuilder's move constructor moves an uninitialized member variable into itself
https://bugs.webkit.org/show_bug.cgi?id=151982

Reviewed by Darin Adler.

  • contentextensions/ImmutableNFANodeBuilder.h:

(WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder):

9:50 AM Changeset in webkit [193757] by akling@apple.com
  • 2 edits in trunk/Source/WebCore

[Cocoa] ResourceUsageOverlay should query kernel for VM page size.
<https://webkit.org/b/151920>

Reviewed by Andy Estes.

Read the vm.pagesize sysctl to find the correct page size for memory usage calculations.
This fixes broken math on systems that have different hw.pagesize and vm.pagesize.

  • page/cocoa/ResourceUsageOverlayCocoa.mm:

(WebCore::vmPageSize):
(WebCore::pagesPerVMTag):
(WebCore::runSamplerThread):

9:39 AM Changeset in webkit [193756] by Chris Dumez
  • 7 edits in trunk/Source

Add diagnostic logging to measure speculative revalidation accuracy
https://bugs.webkit.org/show_bug.cgi?id=151953
<rdar://problem/23092196>

Reviewed by Darin Adler.

Source/WebCore:

Add diagnostic logging to measure speculative revalidation accuracy.

  • page/DiagnosticLoggingKeys.cpp:

(WebCore::DiagnosticLoggingKeys::entryRightlyNotWarmedUpKey):
(WebCore::DiagnosticLoggingKeys::entryWronglyNotWarmedUpKey):
(WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithRevalidationKey):
(WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithoutRevalidationKey):
(WebCore::DiagnosticLoggingKeys::unknownEntryRequestKey):
(WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithRevalidationKey):
(WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithoutRevalidationKey):

  • page/DiagnosticLoggingKeys.h:

Source/WebKit2:

We track the following:

  1. Resources we knew about AND did not get requested
    1. We did not speculate (Good)
    2. We speculated but did not go to network (Bad)
    3. We speculated and went to network (Very bad)
  2. Resources we did not know about (Neutral)
  3. Resources we knew about AND got requested
    1. We did not speculate (Bad)
    2. We speculated but did not go to network (Good)
    3. We speculated and went to network (Very good)
  • NetworkProcess/cache/NetworkCache.cpp:

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

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.cpp:

(WebKit::NetworkCache::allSpeculativeLoadingDiagnosticMessages):
(WebKit::NetworkCache::printSpeculativeLoadingDiagnosticMessageCounts):
(WebKit::NetworkCache::logSpeculativeLoadingDiagnosticMessage):
(WebKit::NetworkCache::SpeculativeLoadManager::ExpiringEntry::ExpiringEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::PreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::PreloadedEntry::wasRevalidated):
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::markLoadAsCompleted):
(WebKit::NetworkCache::SpeculativeLoadManager::retrieve):
(WebKit::NetworkCache::SpeculativeLoadManager::addPreloadedEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::revalidateEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::preloadEntry):
(WebKit::NetworkCache::SpeculativeLoadManager::startSpeculativeRevalidation):
(WebKit::NetworkCache::makeSubresourcesKey): Deleted.
(WebKit::NetworkCache::constructRevalidationRequest): Deleted.
(WebKit::NetworkCache::responseNeedsRevalidation): Deleted.
(WebKit::NetworkCache::SpeculativeLoadManager::PendingFrameLoad::saveToDiskIfReady): Deleted.
(WebKit::NetworkCache::SpeculativeLoadManager::retrieveEntryFromStorage): Deleted.
(WebKit::NetworkCache::SpeculativeLoadManager::satisfyPendingRequests): Deleted.

  • NetworkProcess/cache/NetworkCacheSpeculativeLoadManager.h:
9:37 AM Changeset in webkit [193755] by beidson@apple.com
  • 4 edits in trunk

Modern IDB: storage/indexeddb/index-cursor.html fails.
https://bugs.webkit.org/show_bug.cgi?id=151973

Reviewed by Darin Adler.

Source/WebCore:

No new tests (At least one failing test now passes).

  • Modules/indexeddb/server/MemoryIndexCursor.cpp:

(WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor): When the initial cursor creation

generates an iterator outside of the cursor's IDBKeyRange, invalidate the iterator.

LayoutTests:

  • platform/mac-wk1/TestExpectations:
9:35 AM Changeset in webkit [193754] by Csaba Osztrogonác
  • 2 edits in trunk/Source/JavaScriptCore

Fix the !ENABLE(DFG_JIT) build after r193649
https://bugs.webkit.org/show_bug.cgi?id=151985

Reviewed by Saam Barati.

  • jit/JITOpcodes.cpp:

(JSC::JIT::emitSlow_op_loop_hint):

8:42 AM Changeset in webkit [193753] by berto@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Remove unnecessary check for 0 in commitSize().

Change suggested by Darin Adler in bug #130237.

  • interpreter/JSStack.cpp:

(JSC::commitSize):

8:42 AM Changeset in webkit [193752] by Csaba Osztrogonác
  • 4 edits in trunk

[EFL] REGRESSION(r173394): MiniBrowser stucked in an infinite loop if NETWORK_CACHE is disabled
https://bugs.webkit.org/show_bug.cgi?id=137692

Reviewed by Darin Adler.

Source/WebKit2:

  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::maximumBufferingTime): Disable caching if NETWORK_CACHE is disabled.

LayoutTests:

  • platform/efl/TestExpectations: Unskip now passing tests.
8:16 AM Changeset in webkit [193751] by Gyuyoung Kim
  • 12 edits in trunk/LayoutTests

[EFL][AX] Rebaseline failing AX tests since r185662
https://bugs.webkit.org/show_bug.cgi?id=151991

Unreviewed EFL rebaseline.

  • platform/efl/TestExpectations:
  • platform/efl/accessibility/image-link-expected.txt:
  • platform/efl/accessibility/image-map2-expected.txt:
  • platform/efl/accessibility/lists-expected.txt:
  • platform/efl/accessibility/table-attributes-expected.txt:
  • platform/efl/accessibility/table-cell-spans-expected.txt:
  • platform/efl/accessibility/table-cells-expected.txt:
  • platform/efl/accessibility/table-detection-expected.txt:
  • platform/efl/accessibility/table-one-cell-expected.txt:
  • platform/efl/accessibility/table-sections-expected.txt:
  • platform/efl/accessibility/table-with-rules-expected.txt:
8:02 AM Changeset in webkit [193750] by jdiggs@igalia.com
  • 4 edits in trunk

[EFL] some ax tests have been failed since r186692
https://bugs.webkit.org/show_bug.cgi?id=146887

Reviewed by Mario Sanchez Prada.

Source/WebCore:

The tests were failing because there are now two WebCore accessibility
roles which need to implement the AtkTable interface: TableRole and
GridRole. Because the latter was not added in r186692, any tests with
ARIA role grid that accessed cells via coordinates stopped working.

No new tests; instead unskipped all the broken table tests which now pass.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(getInterfaceMaskFromObject):

LayoutTests:

  • platform/efl/TestExpectations: Removed failing tests.
7:38 AM Changeset in webkit [193749] by ryuan.choi@navercorp.com
  • 2 edits in trunk/Source/JavaScriptCore

[EFL] Remove the flag to check timer state in IncrementalSweeper
https://bugs.webkit.org/show_bug.cgi?id=151988

Reviewed by Gyuyoung Kim.

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::IncrementalSweeper):
(JSC::IncrementalSweeper::cancelTimer):

6:20 AM Changeset in webkit [193748] by yoon@igalia.com
  • 3 edits in trunk/Source/WebCore

[ThreadedCompositor] Add support for Cairo GL-backed ImageBuffer.
https://bugs.webkit.org/show_bug.cgi?id=151986

Reviewed by Žan Doberšek.

This patch adds a support for accelerated 2d canvas which uses cairo-gl as its
backend to the threaded compositor. Basically, it applies same way to support
WebGL for the threaded compositor.

Unfortunately, we cannot swap the buffer for the accelerated 2d canvas because
it should preserve the buffer of the previous frame when drawing new contents.
Because of that, the surface of the accelerated 2d canvas will be copied for
each frame.

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBufferData::ImageBufferData):
(WebCore::ImageBufferData::createCompositorBuffer): Prepare a texture
surface to push the rendered result to the compositing thread.
(WebCore::ImageBufferData::swapBuffersIfNeeded): Copies the contents
of the canvas's surface to the compositing texture.
(WebCore::ImageBufferData::createCairoGLSurface): Moved to the inside
of ImageBufferData.

3:18 AM Changeset in webkit [193747] by Philippe Normand
  • 2 edits in trunk/Source/JavaScriptCore

[Mac][GTK] Fix JSC FTL build
https://bugs.webkit.org/show_bug.cgi?id=151915

Reviewed by Csaba Osztrogonác.

  • CMakeLists.txt: Don't pass version-script option to ld on Darwin because this platform's linker

doesn't support this option.

3:07 AM Changeset in webkit [193746] by jdiggs@igalia.com
  • 11 edits in trunk

[GTK] 15 accessibility tests fail since r186692.
https://bugs.webkit.org/show_bug.cgi?id=148938

Reviewed by Mario Sanchez Prada.

Source/WebCore:

Failing tests rebaselined.

  • accessibility/atk/WebKitAccessibleWrapperAtk.cpp:

(atkRole): Treat GridCellRole and CellRole the same.
(roleIsTextType): Treat GridCellRole and CellRole the same.

LayoutTests:

  • platform/gtk/TestExpectations: Removed failing tests.
  • platform/gtk/accessibility/roles-computedRoleString-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-attributes-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-cell-spans-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-cells-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-detection-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-sections-expected.txt: Rebaselined.
  • platform/gtk/accessibility/table-with-rules-expected.txt: Rebaselined.
2:45 AM WebKitGTK/2.10.x edited by berto@igalia.com
(diff)
2:26 AM Changeset in webkit [193745] by berto@igalia.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed. Use pageSize() instead of getpagesize() after r193648

  • interpreter/JSStack.cpp:

(JSC::commitSize):

2:00 AM Changeset in webkit [193744] by ryuan.choi@navercorp.com
  • 7 edits
    1 copy in trunk

[EFL] Add API to provide preferences before creating ewk_view
https://bugs.webkit.org/show_bug.cgi?id=151587

Reviewed by Gyuyoung Kim.

Source/WebKit2:

This patch adds ewk_view_configuration_settings_get to provide preferences
before createing ewk_view.

  • PlatformEfl.cmake:
  • UIProcess/API/efl/ewk_view_configuration.cpp:

(EwkViewConfiguration::EwkViewConfiguration):
(ewk_view_configuration_settings_get):

  • UIProcess/API/efl/ewk_view_configuration.h:
  • UIProcess/API/efl/ewk_view_configuration_private.h:

(EwkViewConfiguration::pageGroup):

  • UIProcess/API/efl/tests/test_ewk2_view_configuration.cpp:

(TEST_F): Added test case for ewk_view_configuration_settings_get().

Tools:

  • MiniBrowser/efl/main.c:

(on_key_down):
(quit):
(window_create):
Moved settings related code to configuration() not to update settings
whenever ewk_view is created.
(configuration):
(elm_main):

1:17 AM Changeset in webkit [193743] by fred.wang@free.fr
  • 3 edits
    2 adds in trunk

[cairo] Solid stroke of lines with thickness less than 1 pixel broken after r191658
https://bugs.webkit.org/show_bug.cgi?id=151947

Reviewed by Martin Robinson.

Source/WebCore:

Test: mathml/presentation/radical-bar-visibility.html

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::GraphicsContext::drawLine): Force a minimal thickness of 1px

LayoutTests:

Add a test to check that the radical overbar appears on the screen when it has thickness less than 1px.

  • mathml/presentation/radical-bar-visibility-expected-mismatch.html: Added.
  • mathml/presentation/radical-bar-visibility.html: Added.
1:14 AM Changeset in webkit [193742] by bshafiei@apple.com
  • 1 copy in tags/Safari-602.1.13.2

New tag.

1:12 AM Changeset in webkit [193741] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

Unreviewed. Fix GTK+ API tests after r193639.

The new jhbuild version needs some more variables ot be present in
the builtin dict, even if they are set to None.

  • jhbuild/jhbuildutils.py:

(enter_jhbuild_environment_if_available):

12:55 AM Changeset in webkit [193740] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merged r191748. rdar://problem/23787113

12:55 AM Changeset in webkit [193739] by bshafiei@apple.com
  • 2 edits in branches/safari-601-branch/Source/WebCore

Merged r191746. rdar://problem/23787113

12:54 AM Changeset in webkit [193738] by bshafiei@apple.com
  • 7 edits
    2 copies in branches/safari-601-branch

Merged r191731. rdar://problem/23787113

12:53 AM Changeset in webkit [193737] by bshafiei@apple.com
  • 4 edits
    5 copies in branches/safari-601-branch

Merged r192604. rdar://problem/23787086

12:51 AM Changeset in webkit [193736] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601-branch

Merged r192433. rdar://problem/23787115

12:51 AM Changeset in webkit [193735] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601-branch

Merged r192389. rdar://problem/23787083

12:50 AM Changeset in webkit [193734] by bshafiei@apple.com
  • 4 edits
    6 copies in branches/safari-601-branch

Merged r192369. rdar://problem/23787108

12:49 AM Changeset in webkit [193733] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601-branch

Merged r192316. rdar://problem/23787100

12:47 AM Changeset in webkit [193732] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601-branch

Merged r192281. rdar://problem/23787092

12:45 AM Changeset in webkit [193731] by bshafiei@apple.com
  • 2 edits in branches/safari-601.4-branch/Source/WebCore

Merged r191748. rdar://problem/23787113

12:45 AM Changeset in webkit [193730] by bshafiei@apple.com
  • 2 edits in branches/safari-601.4-branch/Source/WebCore

Merged r191746. rdar://problem/23787113

12:44 AM Changeset in webkit [193729] by bshafiei@apple.com
  • 7 edits
    2 copies in branches/safari-601.4-branch

Merged r191731. rdar://problem/23787113

12:42 AM Changeset in webkit [193728] by bshafiei@apple.com
  • 4 edits
    5 copies in branches/safari-601.4-branch

Merged r192604. rdar://problem/23787086

12:41 AM Changeset in webkit [193727] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.4-branch

Merged r192433. rdar://problem/23787115

12:40 AM Changeset in webkit [193726] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601.4-branch

Merged r192389. rdar://problem/23787083

12:38 AM Changeset in webkit [193725] by bshafiei@apple.com
  • 4 edits
    6 copies in branches/safari-601.4-branch

Merged r192369. rdar://problem/23787108

12:36 AM Changeset in webkit [193724] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.4-branch

Merged r192316. rdar://problem/23787100

12:36 AM Changeset in webkit [193723] by yoon@igalia.com
  • 8 edits in trunk/Source/WebCore

[ThreadedCompositor] Support WebGL for OpenGL.
https://bugs.webkit.org/show_bug.cgi?id=143300

Reviewed by Žan Doberšek.

To remove pixel transfer operation, this patch adds m_compositorFBO which uses same depth and stencil
buffer with m_fbo but uses m_compositorTexture as a color attachment in GraphicsContext3D.
Because switching target framebuffer is cheaper than pixel transfer operation and switching color
attachment of m_fbo. In Threaded Compositor, when WebGL renders a scene, prepareTexture swaps
m_fbo with m_compositorFBO and send the color attachment to the compositor thread.
This patch only supports WebGL for OpenGL. OpenGLES will be covered in following-up patches.

No new tests needed.

  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/GraphicsContext3DPrivate.cpp:

(WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
(WebCore::GraphicsContext3DPrivate::proxy):
(WebCore::GraphicsContext3DPrivate::swapBuffersIfNeeded):
Implement interfaces to pass a rendered texture to the compositing
thread.

  • platform/graphics/GraphicsContext3DPrivate.h:
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
Create additional compositing texture and FBO to swaping buffers for
threaded compositor.

  • platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:

(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::attachDepthAndStencilBufferIfNeeded):
Split attaching depth and stencil buffer codes from reshapeFBOs
to make complete framebuffer with not only m_fbo but m_compositorFBO also.

  • platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:

(WebCore::GraphicsContext3D::prepareTexture):
If we are in the threaded compositor, we will swap m_fbo with
m_compositorFBO instead of copying it.

12:35 AM Changeset in webkit [193722] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601.4-branch

Merged r192281. rdar://problem/23787092

12:26 AM Changeset in webkit [193721] by Gustavo Noronha Silva
  • 9 edits in trunk

[GTK] Notify WebCore when notification is clicked
https://bugs.webkit.org/show_bug.cgi?id=151951

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

  • UIProcess/API/gtk/WebKitNotification.cpp:

(webkit_notification_class_init): new clicked signal.
(webkit_notification_clicked): method to emit the clicked signal.

  • UIProcess/API/gtk/WebKitNotification.h:
  • UIProcess/API/gtk/WebKitNotificationProvider.cpp:

(WebKitNotificationProvider::notificationClickedCallback): handle the clicked signal and tell WebProcess about the click.
(WebKitNotificationProvider::show): connect to the clicked signal in addition to closed.

  • UIProcess/API/gtk/WebKitNotificationProvider.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(notifyNotificationClicked): handle the click on our libnotify notification.
(webkitWebViewShowNotification): add the "default" action to our libnotify notification to be notified of the click.

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

Tools:

  • TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:

(testWebViewNotification): test the new API.

12:17 AM Changeset in webkit [193720] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r191748. rdar://problem/23787044

12:17 AM Changeset in webkit [193719] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46-branch/Source/WebCore

Merged r191746. rdar://problem/23787044

12:16 AM Changeset in webkit [193718] by bshafiei@apple.com
  • 7 edits
    2 copies in branches/safari-601.1.46-branch

Merged r191731. rdar://problem/23787044

12:15 AM Changeset in webkit [193717] by bshafiei@apple.com
  • 4 edits
    5 copies in branches/safari-601.1.46-branch

Merged r192604. rdar://problem/23786994

12:13 AM Changeset in webkit [193716] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r192433. rdar://problem/23787047

12:12 AM Changeset in webkit [193715] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601.1.46-branch

Merged r192389. rdar://problem/23786983

12:11 AM Changeset in webkit [193714] by bshafiei@apple.com
  • 4 edits
    6 copies in branches/safari-601.1.46-branch

Merged r192369. rdar://problem/23787037

12:10 AM Changeset in webkit [193713] by bshafiei@apple.com
  • 3 edits
    2 copies in branches/safari-601.1.46-branch

Merged r192316. rdar://problem/23787021

12:08 AM Changeset in webkit [193712] by bshafiei@apple.com
  • 4 edits
    2 copies in branches/safari-601.1.46-branch

Merged r192281. rdar://problem/23787006

12:01 AM Changeset in webkit [193711] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46.60-branch/Source/WebCore

Merged r191748. rdar://problem/23787044

12:00 AM Changeset in webkit [193710] by bshafiei@apple.com
  • 2 edits in branches/safari-601.1.46.60-branch/Source/WebCore

Merged r191746. rdar://problem/23787044

Note: See TracTimeline for information about the timeline view.