1 2015-12-11 Alexey Proskuryakov <ap@apple.com>
3 Roll out http://trac.webkit.org/r193984, because the new test is timing out.
5 Was: Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
6 https://bugs.webkit.org/show_bug.cgi?id=152102
7 <rdar://problem/22124230>
10 (WebCore::Document::processReferrerPolicy):
11 (WebCore::Document::applyContentDispositionAttachmentSandbox):
13 2015-12-11 Brady Eidson <beidson@apple.com>
15 Modern IDB: storage/indexeddb/optional-arguments.html fails.
16 https://bugs.webkit.org/show_bug.cgi?id=152194
18 Reviewed by Alex Christensen.
20 No new tests (At least one failing test now passes).
22 * Modules/indexeddb/client/IDBCursorImpl.cpp:
23 (WebCore::IDBClient::IDBCursor::continueFunction): Allow 'undefined' for the key.
25 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
26 (WebCore::IDBClient::IDBObjectStore::add): Ditto.
27 (WebCore::IDBClient::IDBObjectStore::put): Ditto.
29 2015-12-11 Brady Eidson <beidson@apple.com>
32 Modern IDB: storage/indexeddb/index-count.html fails.
33 https://bugs.webkit.org/show_bug.cgi?id=152175
35 Noticed by Darin Adler.
37 * Modules/indexeddb/client/IDBIndexImpl.cpp:
38 (WebCore::IDBClient::IDBIndex::count): Replace a curly brace to its proper place.
40 2015-12-11 Brady Eidson <beidson@apple.com>
42 Modern IDB: storage/indexeddb/cursor-continue.html fails.
43 https://bugs.webkit.org/show_bug.cgi?id=152192
45 Reviewed by Alex Christensen.
47 No new tests (At least one failing test now passes).
49 * Modules/indexeddb/client/IDBCursorImpl.cpp:
50 (WebCore::IDBClient::IDBCursor::continueFunction): Check against the current key, not the current primary key.
51 (WebCore::IDBClient::IDBCursor::setGetResult): Also save off the current IDBKeyData.
52 * Modules/indexeddb/client/IDBCursorImpl.h:
54 2015-12-11 Brady Eidson <beidson@apple.com>
56 Modern IDB: storage/indexeddb/index-basics.html fails.
57 https://bugs.webkit.org/show_bug.cgi?id=152190
59 Reviewed by Alex Christensen.
61 No new tests (At least one failing test now passes).
63 * bindings/js/JSIDBObjectStoreCustom.cpp:
64 (WebCore::JSIDBObjectStore::createIndex): Custom error message for the TypeError
66 2015-12-11 Jiewen Tan <jiewen_tan@apple.com>
68 Strip out Referer header when requesting subresources or following links for documents with "Content-Disposition: attachment"
69 https://bugs.webkit.org/show_bug.cgi?id=152102
70 <rdar://problem/22124230>
72 Reviewed by Andy Estes.
74 Keep the ReferrerPolicy for a document as ReferrerPolicyNever if the document is loaded with
75 "Content-Disposition: attachment".
77 Test: http/tests/contentdispositionattachmentsandbox/subresource-request-not-include-referer-header.html
80 (WebCore::Document::processReferrerPolicy):
81 (WebCore::Document::applyContentDispositionAttachmentSandbox):
83 2015-12-11 Brady Eidson <beidson@apple.com>
85 Modern IDB: storage/indexeddb/key-type-array.html fails.
86 https://bugs.webkit.org/show_bug.cgi?id=152187
88 Reviewed by Alex Christensen.
90 No new tests (At least one failing test now passes).
92 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
93 (WebCore::IDBClient::IDBObjectStore::putOrAdd): Perform the correct validity check on array keys.
95 2015-12-11 Joseph Pecoraro <pecoraro@apple.com>
97 check-for-inappropriate-objc-class-names should check all class names, not just externally visible ones
98 https://bugs.webkit.org/show_bug.cgi?id=152156
100 Reviewed by Dan Bernstein.
102 * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h:
103 * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
104 (WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession):
105 * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h:
106 * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
107 (WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession):
108 Rename classes with a "Web" prefix.
110 2015-12-11 Brady Eidson <beidson@apple.com>
112 Modern IDB: storage/indexeddb/intversion-abort-in-initial-upgradeneeded.html fails.
113 https://bugs.webkit.org/show_bug.cgi?id=152177
115 Reviewed by Alex Christensen.
117 No new tests (At least one failing test now passes).
119 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
120 (WebCore::IDBClient::IDBOpenDBRequest::versionChangeTransactionDidFinish): Renamed from below.
121 (WebCore::IDBClient::IDBOpenDBRequest::versionChangeTransactionWillFinish): Deleted.
122 * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
124 * Modules/indexeddb/client/IDBRequestImpl.cpp:
125 (WebCore::IDBClient::IDBRequest::setVersionChangeTransaction): OpenDBRequests usually don't have transactions,
126 unless they end up being upgrade requests.
127 * Modules/indexeddb/client/IDBRequestImpl.h:
129 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
130 (WebCore::IDBClient::IDBTransaction::IDBTransaction): Call setVersionChangeTransaction on the request if appropriate.
131 (WebCore::IDBClient::IDBTransaction::dispatchEvent): Call versionChangeTransactionDidFinish after the
132 abort/complete events fire.
133 (WebCore::IDBClient::IDBTransaction::abort): Deleted.
134 (WebCore::IDBClient::IDBTransaction::commit): Deleted.
136 2015-12-11 Brady Eidson <beidson@apple.com>
138 Modern IDB: storage/indexeddb/index-count.html fails.
139 https://bugs.webkit.org/show_bug.cgi?id=152175
141 Reviewed by Alex Christensen.
143 No new tests (At least one failing test now passes).
145 * Modules/indexeddb/client/IDBIndexImpl.cpp:
146 (WebCore::IDBClient::IDBIndex::count): If the passed in IDBKeyRange* is nullptr, use IDBKeyRangeData::allKeys.
147 (WebCore::IDBClient::IDBIndex::doCount): Change an isNull check to a more correct !isValid() check.
149 2015-12-11 Per Arne Vollan <peavo@outlook.com>
151 [WinCairo][MediaFoundation] Setting playback rate does not work.
152 https://bugs.webkit.org/show_bug.cgi?id=152172
154 Reviewed by Brent Fulgham.
156 Implement method to set playback rate.
158 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
159 (WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
160 (WebCore::MediaPlayerPrivateMediaFoundation::setRateDouble):
161 (WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
162 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
164 2015-12-11 Darin Adler <darin@apple.com>
166 Reduce the number of events that can be created by Document.createEvent
167 https://bugs.webkit.org/show_bug.cgi?id=151931
169 Reviewed by Alex Christensen.
171 Document.createEvent is intended for use only with a certain set of legacy events.
172 Ideally it should only be the ones mentioned in the DOM specification.
174 For now, at least remove all the events that can't usefully be created and initialized
175 this way. Later, we should cut it down even smaller. And stop automatically generating
176 this, which was causing everyone who made an event IDL file to get supported here!
178 The modern alternative is to use event class constructors instead.
180 * CMakeLists.txt: Don't compile EventFactory.cpp. For now, we still generate
181 EventFactory.cpp but we do not use it.
182 * DerivedSources.make: Ditto.
183 * WebCore.vcxproj/WebCore.vcxproj: Ditto.
184 * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
185 * WebCore.xcodeproj/project.pbxproj: Ditto. Also don't include EventFactory.h in the
188 * dom/DOMImplementation.cpp:
189 (WebCore::DOMImplementation::hasFeature): Added a comment about the SVGZoomEvents feature.
191 * dom/Document.cpp: Re-sorted includes and added the new ones needed for createEvent.
192 (WebCore::Document::createEvent): Moved all the logic here from EventFactory, and
193 took a crack at comments that explain what this should and should not be used for.
195 * dom/EventFactory.h: Removed.
197 2015-12-10 Brady Eidson <beidson@apple.com>
199 Modern IDB: storage/indexeddb/objectstore-count.html fails.
200 https://bugs.webkit.org/show_bug.cgi?id=152167
202 Reviewed by Alex Christensen.
204 No new tests (At least one failing test now passes).
206 * Modules/indexeddb/IDBKeyRangeData.h:
207 (WebCore::IDBKeyRangeData::allKeys):
209 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
210 (WebCore::IDBClient::IDBObjectStore::count): If the passed in IDBKeyRange* is nullptr, use IDBKeyRangeData::allKeys.
211 (WebCore::IDBClient::IDBObjectStore::doCount): Change an isNull check to a more correct !isValid() check.
213 2015-12-10 Youenn Fablet <youenn.fablet@crf.canon.fr>
215 Binding and builtin generators should lowercase RTCXX as rtcXX and not rTCXX
216 https://bugs.webkit.org/show_bug.cgi?id=152121
218 Reviewed by Darin Adler.
220 No change in behavior.
222 * bindings/js/JSDOMWindowBase.cpp:
223 (WebCore::JSDOMWindowBase::finishCreation): Using rtcXX in lieu of rTCXX.
224 * bindings/js/WebCoreJSBuiltinInternals.h:
225 (WebCore::JSBuiltinInternalFunctions::JSBuiltinInternalFunctions): Ditto.
226 (WebCore::JSBuiltinInternalFunctions::rtcPeerConnectionInternals): Added.
227 (WebCore::JSBuiltinInternalFunctions::visit): Ditto.
228 (WebCore::JSBuiltinInternalFunctions::init): Ditto.
229 (WebCore::JSBuiltinInternalFunctions::rTCPeerConnectionInternals): Deleted.
230 * bindings/js/WebCoreJSBuiltins.h:
231 (WebCore::JSBuiltinFunctions::JSBuiltinFunctions): Using rtcXX in lieu of rTCXX.
232 (WebCore::JSBuiltinFunctions::rtcPeerConnectionBuiltins): Added.
233 (WebCore::JSBuiltinFunctions::rtcPeerConnectionInternalsBuiltins): Added.
234 (WebCore::JSBuiltinFunctions::rTCPeerConnectionBuiltins): Deleted.
235 (WebCore::JSBuiltinFunctions::rTCPeerConnectionInternalsBuiltins): Deleted.
236 * bindings/scripts/CodeGenerator.pm:
237 (WK_lcfirst): Added RTC special rule.
239 2015-12-10 Zalan Bujtas <zalan@apple.com>
241 ASSERTION FAILED: !simpleLineLayout() in WebCore::RenderText::collectSelectionRectsForLineBoxes
242 https://bugs.webkit.org/show_bug.cgi?id=152115
244 Reviewed by Simon Fraser.
246 document.execCommand("indent") generates a blockquote wrapper and moves the indented content inside.
247 If the indented content is already inside a selection, we need to make sure that newly created flow uses
249 This patch fixes the generic case as re-parenting an already selected renderer is not specific to document.execCommand("indent").
251 Test: fast/block/selection-inside-simple-line-layout.html
253 * rendering/SimpleLineLayout.cpp:
254 (WebCore::SimpleLineLayout::canUseForWithReason):
255 (WebCore::SimpleLineLayout::printReason):
257 2015-12-10 Eric Carlson <eric.carlson@apple.com>
259 [MediaStream] Expose media capture devices persistent permissions to WebCore
260 https://bugs.webkit.org/show_bug.cgi?id=152087
262 Reviewed by Chris Dumez.
264 No new tests, an existing test was updated to test the change.
266 * CMakeLists.txt: Add UserMediaPermissionCheck.cpp.
268 * Modules/mediastream/MediaDevicesRequest.cpp:
269 (WebCore::MediaDevicesRequest::~MediaDevicesRequest): Clear the permission checker client.
270 (WebCore::MediaDevicesRequest::contextDestroyed): Ditto.
271 (WebCore::MediaDevicesRequest::start): Create a permission checker and start it running.
272 (WebCore::MediaDevicesRequest::didCompleteCheck): Start the media source checker.
273 (WebCore::MediaDevicesRequest::didCompleteRequest): Only include a track's label if the
274 page has permission to use a capture device.
275 * Modules/mediastream/MediaDevicesRequest.h:
277 * Modules/mediastream/UserMediaClient.h: Include prototypes for permission checker.
278 (WebCore::UserMediaClient::~UserMediaClient):
280 * Modules/mediastream/MediaStreamTrackSourcesRequest.cpp: Removed, not longer used.
281 * Modules/mediastream/MediaStreamTrackSourcesRequest.h:
283 * Modules/mediastream/UserMediaController.h:
284 (WebCore::UserMediaController::checkUserMediaPermission): New.
285 (WebCore::UserMediaController::cancelUserMediaPermissionCheck): Ditto.
287 * Modules/mediastream/UserMediaPermissionCheck.cpp: Added.
288 (WebCore::UserMediaPermissionCheck::create):
289 (WebCore::UserMediaPermissionCheck::UserMediaPermissionCheck):
290 (WebCore::UserMediaPermissionCheck::~UserMediaPermissionCheck):
291 (WebCore::UserMediaPermissionCheck::securityOrigin):
292 (WebCore::UserMediaPermissionCheck::contextDestroyed):
293 (WebCore::UserMediaPermissionCheck::start):
294 (WebCore::UserMediaPermissionCheck::setDeviceAccessMode):
295 * Modules/mediastream/UserMediaPermissionCheck.h: Added.
296 (WebCore::UserMediaPermissionCheckClient::~UserMediaPermissionCheckClient):
297 (WebCore::UserMediaPermissionCheck::setClient):
299 * WebCore.xcodeproj/project.pbxproj: Add UserMediaPermissionCheck.cpp|.h
301 * platform/mock/UserMediaClientMock.h: Removed, it is no longer used.
303 * testing/Internals.cpp: Remove UserMediaClientMock.h include, it is gone.
305 2015-12-10 Myles C. Maxfield <mmaxfield@apple.com>
311 * platform/graphics/cocoa/FontCocoa.mm:
312 (WebCore::smallCapsTrueTypeDictionary):
314 2015-12-10 Simon Fraser <simon.fraser@apple.com>
316 Mordernize viewport dumping
317 https://bugs.webkit.org/show_bug.cgi?id=152159
319 Reviewed by Zalan Bujtas.
321 Use groupings to simplify the viewport configuration dumping code.
323 * page/ViewportConfiguration.cpp:
324 (WebCore::operator<<):
325 (WebCore::ViewportConfiguration::description):
327 2015-12-10 Joseph Pecoraro <pecoraro@apple.com>
329 Remote Inspector: Verify the identity of the other side of XPC connections
330 https://bugs.webkit.org/show_bug.cgi?id=152153
332 Reviewed by Brian Burg.
334 * WebCore.xcodeproj/project.pbxproj:
335 * platform/network/mac/CertificateInfoMac.mm:
338 2015-12-10 Brady Eidson <beidson@apple.com>
340 Modern IDB: storage/indexeddb/delete-in-upgradeneeded-close-in-versionchange.html fails
341 https://bugs.webkit.org/show_bug.cgi?id=152144
343 Reviewed by Alex Christensen.
345 No new tests (At least two failing tests now pass, and other incorrect tests updated to be more correct).
347 - An IDBOpenDBRequest resulting in a versionchange transaction should not have the onsuccess event fire if
348 the database connection was closed during the versionchange transaction. onerror should fire instead.
349 - When firing an event at an IDBRequest, it should not have the transaction as an additional target if the
350 transaction has finished.
351 - When firing an event at an IDBRequest, it should not have the database as an additional target if the
352 database is closed or is closing.
354 * Modules/indexeddb/client/IDBDatabaseImpl.h:
355 (WebCore::IDBClient::IDBDatabase::isClosingOrClosed):
357 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
358 (WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
359 (WebCore::IDBClient::IDBOpenDBRequest::fireErrorAfterVersionChangeAbort): Deleted.
360 * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
362 * Modules/indexeddb/client/IDBRequestImpl.cpp:
363 (WebCore::IDBClient::IDBRequest::dispatchEvent): Don't add finished transactions or closed databases as event targets.
365 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
366 (WebCore::IDBClient::IDBTransaction::notifyDidAbort):
367 (WebCore::IDBClient::IDBTransaction::dispatchEvent): If this was a versionchange transaction completing, possibly fire
368 the error event on the OpenDBRequest instead of the success event.
369 * Modules/indexeddb/client/IDBTransactionImpl.h:
370 (WebCore::IDBClient::IDBTransaction::isFinished):
372 2015-12-10 Zalan Bujtas <zalan@apple.com>
374 Simple line layout: Use TextPainter to draw simple line text.
375 https://bugs.webkit.org/show_bug.cgi?id=152150
377 Reviewed by Simon Fraser.
379 No change in functionality.
381 * rendering/SimpleLineLayoutFunctions.cpp:
382 (WebCore::SimpleLineLayout::paintFlow):
383 * rendering/TextPainter.h:
385 2015-12-10 Myles C. Maxfield <mmaxfield@apple.com>
387 [Font Features] r193894 introduces leaks
388 https://bugs.webkit.org/show_bug.cgi?id=152154
390 Reviewed by Joe Pecoraro.
392 * platform/graphics/cocoa/FontCocoa.mm:
393 (WebCore::smallCapsTrueTypeDictionary):
394 (WebCore::createCTFontWithoutSynthesizableFeatures):
396 2015-12-10 Myles C. Maxfield <mmaxfield@apple.com>
402 * platform/graphics/cocoa/FontCocoa.mm:
403 (WebCore::Font::variantCapsSupportsCharacterForSynthesis):
405 2015-12-10 Zalan Bujtas <zalan@apple.com>
407 TextPainter: Add support for painting multiple text runs.
408 https://bugs.webkit.org/show_bug.cgi?id=152148
410 Reviewed by Simon Fraser.
412 This is in preparation for adding simple line layout as a client.
414 No change in functionality.
416 * rendering/InlineTextBox.cpp:
417 (WebCore::drawSkipInkUnderline): Decouple underline skipping intersection calculation and text painter.
418 (WebCore::InlineTextBox::paint):
419 (WebCore::InlineTextBox::paintDecoration):
420 * rendering/InlineTextBox.h:
421 * rendering/TextPainter.cpp:
422 (WebCore::TextPainter::TextPainter):
423 (WebCore::TextPainter::paintTextWithShadows):
424 (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
425 (WebCore::TextPainter::paintText):
426 (WebCore::TextPainter::dashesForIntersectionsWithRect): Deleted.
427 * rendering/TextPainter.h:
428 (WebCore::TextPainter::setTextPaintStyle):
429 (WebCore::TextPainter::setSelectionPaintStyle):
430 (WebCore::TextPainter::setIsHorizontal):
431 (WebCore::TextPainter::setFont):
432 (WebCore::TextPainter::addEmphasis):
433 (WebCore::TextPainter::addTextShadow):
435 2015-12-10 Enrica Casucci <enrica@apple.com>
437 Change skin tone support for two emoji.
438 https://bugs.webkit.org/show_bug.cgi?id=152147
439 rdar://problem/23716993
440 rdar://problem/23716344
442 Reviewed by Darin Adler.
444 Horse race emoji (1F3C7) should no longer have skin tone variation.
445 Sleuth/Spy emoji (!F575) should instead have skin tone variation.
447 * platform/text/TextBreakIterator.cpp:
448 (WebCore::cursorMovementIterator):
450 2015-12-10 Commit Queue <commit-queue@webkit.org>
452 Unreviewed, rolling out r193500.
453 https://bugs.webkit.org/show_bug.cgi?id=152143
455 do not want to have to disable canvas-to-large-to-draw test
456 (Requested by bfulgham on #webkit).
460 "Place an upper bound on canvas pixel count"
461 https://bugs.webkit.org/show_bug.cgi?id=151825
462 http://trac.webkit.org/changeset/193500
464 2015-12-10 Brady Eidson <beidson@apple.com>
467 Modern IDB: storage/indexeddb/intversion-close-between-events.html fails.
468 https://bugs.webkit.org/show_bug.cgi?id=152096
470 Implementing Darin Adler's review feedback that came after the patch landed.
472 * bindings/js/JSIDBDatabaseCustom.cpp:
473 (WebCore::JSIDBDatabase::transaction): No need to explicitly cast to Vector<String>.
475 2015-12-10 Youenn Fablet <youenn.fablet@crf.canon.fr>
477 JSC Builtins should use safe array methods
478 https://bugs.webkit.org/show_bug.cgi?id=151501
480 Reviewed by Darin Adler.
482 Using @push and @shift in internal arrays in lieu of push and shift.
483 This cannot be disrupted by user scripts except if arrays are also made accessible to user scripts.
485 Covered by added tests for ReadableStream constructs.
487 * Modules/mediastream/RTCPeerConnectionInternals.js:
490 * Modules/streams/ReadableStreamInternals.js:
491 (enqueueInReadableStream):
492 (readFromReadableStreamReader):
493 * Modules/streams/StreamInternals.js:
495 (enqueueValueWithSize):
497 2015-12-10 Zan Dobersek <zdobersek@igalia.com>
499 [TexMap] pixel coverage multiplication in TiledBackingStore can overflow
500 https://bugs.webkit.org/show_bug.cgi?id=152055
502 Reviewed by Carlos Garcia Campos.
504 The computation of the pixel coverage in TiledBackingStore can easily overflow
505 when the candidate size is relatively large (for instance when the backed
506 layer is transformed in a way that increases its perceived size). This can result
507 in missing tiles for this specific backing store, at least until the layer in
508 question is transformed again into a shape that produces a smaller candidate size.
510 To avoid the integer overflow, the multiplication is done in a safe manner,
511 defaulting to the max positive value an integer can hold in case the overflow
514 * platform/graphics/texmap/coordinated/TiledBackingStore.cpp:
515 (WebCore::TiledBackingStore::adjustForContentsRect):
517 2015-12-10 Zan Dobersek <zdobersek@igalia.com>
519 [TexMap] Clean up BitmapTexturePool
520 https://bugs.webkit.org/show_bug.cgi?id=152073
522 Reviewed by Daniel Bates.
524 Move BitmapTexturePoolEntry class under the BitmapTexturePool class, renaming
525 it to simply Entry and keeping it private. Have the constructor take in an
526 rvalue reference to the RefPtr<BitmapTexture> object. Remove the static
527 compareTimeLastUsed() function and use a lambda directly in its place.
529 Remove the default BitmapTexturePool constructor, which isn't used anywhere.
530 Have the constructor and some methods accept or return RefPtr objects, possibly
531 via rvalue references. Clean up the header file by removing a few unnecessary
532 header includes and using forward declarations where possible.
534 In the BitmapTexturePool implementation file, mark the two const variables as
535 static. The ::acquireTexture() method now uses the std::find_if() algorithm
536 to find a fitting Entry object in the Vector. The same method is also moved
537 upwards so we follow the order of declaration in the header. ::createTexture()
538 inlines the return of the new expression into the adoptRef() call in the return
541 TextureMapperGL constructor is updated to pass a copied RefPtr object into the
542 BitmapTexturePool constructor.
544 * platform/graphics/texmap/BitmapTexturePool.cpp:
545 (WebCore::BitmapTexturePool::BitmapTexturePool):
546 (WebCore::BitmapTexturePool::acquireTexture):
547 (WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):
548 (WebCore::BitmapTexturePool::createTexture):
549 * platform/graphics/texmap/BitmapTexturePool.h:
550 (WebCore::BitmapTexturePool::Entry::Entry):
551 (WebCore::BitmapTexturePool::Entry::markUsed):
552 (WebCore::BitmapTexturePoolEntry::BitmapTexturePoolEntry): Deleted.
553 (WebCore::BitmapTexturePoolEntry::markUsed): Deleted.
554 (WebCore::BitmapTexturePoolEntry::compareTimeLastUsed): Deleted.
555 * platform/graphics/texmap/TextureMapperGL.cpp:
556 (WebCore::TextureMapperGL::TextureMapperGL):
558 2015-12-10 Michael Catanzaro <mcatanzaro@igalia.com>
560 [GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor, et. al. should not clobber state of cached GtkStyleContexts
561 https://bugs.webkit.org/show_bug.cgi?id=151533
563 Reviewed by Carlos Garcia Campos.
565 Remove the style context cache to simplify the code, drastically reduce the number of
566 expensive save/restore operations performed on style contexts, and avoid unwanted
567 side-effects in RenderThemeGtk::styleColor. This is also a speculative fix for improper
568 button rendering with certain custom themes, and a simplification that will make it easier
571 This change does have performance implications, which I intend to check on the perf bot
572 after landing to ensure that removing the cache does not have a significant negative impact
573 on performance; I have no clue whether this will be a net performance win or loss. However,
574 this is a bit tricky, because the bot is running GTK+ 3.16, whereas I expect save/restore
575 might be much more expensive in GTK+ 3.20, and I do not want to make performance decisions
576 except based on the latest GTK+ due to large changes in the implementation of
579 * rendering/RenderThemeGtk.cpp:
580 (WebCore::createStyleContext):
581 (WebCore::getStockIconForWidgetType):
582 (WebCore::getStockSymbolicIconForWidgetType):
583 (WebCore::RenderThemeGtk::initMediaColors):
584 (WebCore::RenderThemeGtk::adjustRepaintRect):
585 (WebCore::setToggleSize):
586 (WebCore::paintToggle):
587 (WebCore::RenderThemeGtk::setCheckboxSize):
588 (WebCore::RenderThemeGtk::setRadioSize):
589 (WebCore::RenderThemeGtk::paintButton):
590 (WebCore::getComboBoxMetrics):
591 (WebCore::RenderThemeGtk::paintMenuList):
592 (WebCore::RenderThemeGtk::paintTextField):
593 (WebCore::RenderThemeGtk::paintSliderTrack):
594 (WebCore::RenderThemeGtk::paintSliderThumb):
595 (WebCore::RenderThemeGtk::adjustSliderThumbSize):
596 (WebCore::RenderThemeGtk::paintProgressBar):
597 (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
598 (WebCore::RenderThemeGtk::paintInnerSpinButton):
599 (WebCore::styleColor):
600 (WebCore::gtkStyleChangedCallback): Deleted.
601 (WebCore::styleContextMap): Deleted.
602 (WebCore::getStyleContext): Deleted.
604 2015-12-10 Myles C. Maxfield <mmaxfield@apple.com>
606 font-variant-caps does not work if the font does not support font features
607 https://bugs.webkit.org/show_bug.cgi?id=149774
609 Reviewed by Antti Koivisto.
611 This test implements synthesis for small-caps and all-small-caps. It does so by
612 moving font variant selection into a higher level (ComplexTextController).
613 In general, the approach is to use the pure font feature until we encounter
614 a character which needs to be uppercased, and which the font feature does not
615 support uppercasing. In this situation, we try again with synthesis. In this
616 case, synthesis means artificially uppercasing letters and rendering them with
619 We require system support to know which glyphs a particular font feature supports.
620 Therefore, on operating systems which do not include this support, we will simply
621 say that the font feature does not support any glyphs.
623 Test: css3/font-variant-small-caps-synthesis.html
624 css3/font-variant-petite-caps-synthesis.html
626 * platform/graphics/Font.cpp:
627 (WebCore::Font::noSmallCapsFont): Return the same font, but without smcp or c2sc.
628 This function utilizes a cache.
629 * platform/graphics/Font.h:
630 (WebCore::Font::variantFont): Small caps should never go through this function
632 * platform/graphics/FontCascade.h: Because we're moving variant selection into
633 a higher level, we remove the FontVariant argument from the lower-level call.
634 * platform/graphics/FontCascadeFonts.cpp:
635 (WebCore::FontCascadeFonts::glyphDataForVariant): Use early-return style.
636 (WebCore::FontCascadeFonts::glyphDataForNormalVariant): Ditto.
637 * platform/graphics/cocoa/FontCascadeCocoa.mm:
638 (WebCore::FontCascade::fontForCombiningCharacterSequence): Because we're moving
639 variant selection into a higher level, we remove the FontVariant argument from
640 the lower-level call.
641 * platform/graphics/cocoa/FontCocoa.mm:
642 (WebCore::Font::smallCapsSupportsCharacter):
643 (WebCore::Font::allSmallCapsSupportsCharacter):
644 (WebCore::smallCapsOpenTypeDictionary): Helper function for
645 smallCapsSupportsCharacter().
646 (WebCore::smallCapsTrueTypeDictionary): Ditto.
647 (WebCore::unionBitVectors):
648 (WebCore::Font::glyphsSupportedBySmallCaps): Compute a bit vector of supported
650 (WebCore::Font::glyphsSupportedByAllSmallCaps): Ditto.
651 (WebCore::createDerivativeFont): Moving common code into its own helper function.
652 (WebCore::Font::createFontWithoutSmallCaps):
653 (WebCore::Font::platformCreateScaledFont): Use the common code.
654 * platform/graphics/mac/ComplexTextController.cpp:
655 (WebCore::capitalized): What is the capitalized form of a character?
656 (WebCore::ComplexTextController::collectComplexTextRuns): Implement the core
657 logic of this patch. This includes the retry when we encounter a character which
658 is not supported by the font feature.
659 * platform/spi/cocoa/CoreTextSPI.h:
661 2015-12-10 Zan Dobersek <zdobersek@igalia.com>
663 [TexMap] Remove the TEXMAP_OPENGL_ES_2 define
664 https://bugs.webkit.org/show_bug.cgi?id=152069
666 Reviewed by Alex Christensen.
668 Remove the TEXMAP_OPENGL_ES_2 macro define and clean up the code
669 that it was (not) guarding.
671 * platform/graphics/texmap/BitmapTexture.h:
672 * platform/graphics/texmap/BitmapTextureGL.cpp: Remove the TEXMAP_OPENGL_ES_2
673 guard. Keep the GL_UNSIGNED_INT_8_8_8_8_REV define for OS(DARWIN), but use
674 the GraphicsContext3D constants for other values.
675 (WebCore::BitmapTextureGL::updateContentsNoSwizzle):
676 (WebCore::BitmapTextureGL::initializeStencil): Remove the TEXMAP_OPENGL_ES_2
677 guard and default to calling the renderbufferStorage() function with the
678 GraphicsContext3D::STENCIL_INDEX8 argument.
679 * platform/graphics/texmap/BitmapTexturePool.h:
680 * platform/graphics/texmap/TextureMapper.h:
681 * platform/graphics/texmap/TextureMapperGL.cpp: Remove both the TEXMAP_OPENGL_ES_2
682 guard and the code it guarded. Because we were defining TEXMAP_OPENGL_ES_2 and not
683 USE_TEXMAP_OPENGL_ES_2, the guarded defines were always enforced, but they're never
684 actually used in this file anyway.
686 2015-12-09 Brady Eidson <beidson@apple.com>
688 Modern IDB: storage/indexeddb/objectstore-basics.html fails.
689 https://bugs.webkit.org/show_bug.cgi?id=152101
691 Reviewed by Alex Christensen.
693 No new tests (Multiple tests updated to the new error messaging cover it).
695 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
696 (WebCore::IDBClient::IDBObjectStore::putOrAdd): Add plenty of detailed error messaging.
698 2015-12-09 Zalan Bujtas <zalan@apple.com>
700 TextPainter: Make before and after selection painting more explicit.
701 https://bugs.webkit.org/show_bug.cgi?id=152104
703 Reviewed by Myles C. Maxfield.
705 Instead of swapping start end end positions and expecting TextPainter::drawTextOrEmphasisMarks()
706 to recognize it, we call painting with 0 - startPosition and endPosition - length.
708 No change in functionality.
710 * rendering/TextPainter.cpp:
711 (WebCore::TextPainter::drawTextOrEmphasisMarks):
712 (WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):
713 (WebCore::TextPainter::paintText):
714 (WebCore::TextPainter::paintEmphasisMarksIfNeeded): Deleted.
715 (WebCore::TextPainter::paintTextWithStyle): Deleted.
716 * rendering/TextPainter.h:
718 2015-12-09 Daniel Bates <dabates@apple.com>
720 [iOS] Suspend and resume device motion and device orientation updates when page is hidden and visible, respectively
721 https://bugs.webkit.org/show_bug.cgi?id=151840
722 <rdar://problem/23753931>
724 Reviewed by Simon Fraser.
727 (WebCore::Document::suspendDeviceMotionAndOrientationUpdates): Added.
728 (WebCore::Document::resumeDeviceMotionAndOrientationUpdates): Added.
729 (WebCore::Document::platformSuspendOrStopActiveDOMObjects): Moved logic to suspend device motion and
730 orientation updates from here to Document::suspendDeviceMotionAndOrientationUpdates().
731 (WebCore::Document::suspendActiveDOMObjects): Modified to call Document::suspendDeviceMotionAndOrientationUpdates().
732 (WebCore::Document::resumeActiveDOMObjects): Modified to call Document::resumeDeviceMotionAndOrientationUpdates().
735 (WebCore::Page::setIsVisibleInternal): Suspend device motion and orientation updates when the page is hidden and
736 resume updates when the page is visible.
737 (WebCore::Page::suspendDeviceMotionAndOrientationUpdates): Added.
738 (WebCore::Page::resumeDeviceMotionAndOrientationUpdates): Added.
741 2015-12-09 Daniel Bates <dabates@apple.com>
743 Unify iOS Frame::setTimersPaused() logic and Frame::{suspend, resume}ActiveDOMObjectsAndAnimations()
744 https://bugs.webkit.org/show_bug.cgi?id=152006
746 Reviewed by Simon Fraser.
748 Currently we have almost identical logic to suspend and resume a web page for iOS and non-iOS ports.
749 We should unify this logic instead of duplicating it.
751 * dom/ActiveDOMObject.h: Remove iOS-specific enumeration DocumentWillBePaused and standardize on
752 enumerator PageWillBeSuspended.
754 (WebCore::Document::didBecomeCurrentDocumentInFrame): Unify iOS and non-iOS-specific code.
755 (WebCore::Document::suspendScheduledTasks): Ignore subsequent calls to this function so long as the reason for
756 the first invocation was ActiveDOMObject::PageWillBeSuspended. Such a subsequent call may occur as part of
757 handling a scroll or zoom gesture.
758 * dom/ScriptExecutionContext.cpp:
759 (WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Ignore subsequent calls to this function
760 so long as the reason for the first invocation was ActiveDOMObject::PageWillBeSuspended. Such a subsequent
761 call may occur as part of the process of a page being added to the page cache.
762 * html/HTMLMediaElement.cpp:
763 (WebCore::HTMLMediaElement::suspend): Remove case for ActiveDOMObject::DocumentWillBePaused as this
764 enumerator is being removed.
766 (WebCore::DOMTimer::install): Write logic that used Frame::timersPaused() terms of
767 ScriptExecutionContext::activeDOMObjectsAreSuspended() as we are removing Frame::timersPaused().
768 (WebCore::DOMTimer::fired): Remove iOS-specific assertion with respect to Frame::timersPaused().
769 This function already asserts the equivalent condition that ScriptExecutionContext::activeDOMObjectsAreSuspended()
770 evaluates to false. Clean up iOS-specific code that depends on the ScriptExecutionContext being a
771 Document object by taking advantage of the fact that this assumption is true when shouldBeginObservingChanges
774 (WebCore::Frame::Frame): Remove instance variable m_timersPausedCount and unify the iOS and non-iOS logic.
775 (WebCore::Frame::suspendActiveDOMObjectsAndAnimations): Standardize on the iOS logic for suspending
776 DOM objects and animations because it is more comprehensive on what it suspends and works with the deferred
777 loading machinery (Page::setDefersLoading() - see remarks in Frame::resumeActiveDOMObjectsAndAnimations() for
778 more details). Specifically, make use of Frame::clearTimers() to suspend non-scripted animations (i.e. non-requestAnimationFrame()
779 animations), auto-scroll timer, and pending relayouts. And use Document::suspendScheduledTasks() to suspend
780 all other tasks, including WebSQL database callbacks, active DOM objects, scripted animations and execution of
781 <script async>/<script defer> JavaScript scripts.
782 (WebCore::Frame::resumeActiveDOMObjectsAndAnimations): Standardize on the iOS logic for resuming
783 DOM objects and animations for symmetry and because it works with the deferred loading machinery. We call
784 Document::resumeScheduledTasks() (which calls Document::resumeActiveDOMObjects()) instead of calling
785 Document::resumeActiveDOMObjects() directly because the former will ultimately process the queue of pending
786 tasks (Document::m_pendingTasks).
787 * page/Frame.h: Remove instance variable m_timersPausedCount.
788 (WebCore::Frame::timersPaused): Deleted.
789 * page/ios/FrameIOS.mm:
790 (WebCore::Frame::setTimersPaused): Write this function in terms of Page::{suspend, resume}ActiveDOMObjectsAndAnimations().
791 We need to keep this function for Legacy WebKit on iOS.
792 (WebCore::Frame::setTimersPausedInternal): Deleted.
793 * rendering/RenderElement.cpp:
794 (WebCore::shouldRepaintForImageAnimation): Remove iOS-specific code to early return when Frame::timersPaused()
795 evaluates to true. This function already has the equivalent code to early return when Document::activeDOMObjectsAreSuspended()
798 2015-12-09 Brady Eidson <beidson@apple.com>
800 Modern IDB: storage/indexeddb/metadata.html fails
801 https://bugs.webkit.org/show_bug.cgi?id=152099
803 Reviewed by Alex Christensen.
805 Test: storage/indexeddb/modern/abort-objectstore-info.html
806 And at least one existing failure now passes.
808 We did not properly reset object store info when version change transactions aborted.
810 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
811 (WebCore::IDBClient::IDBObjectStore::IDBObjectStore):
812 (WebCore::IDBClient::IDBObjectStore::rollbackInfoForVersionChangeAbort):
813 * Modules/indexeddb/client/IDBObjectStoreImpl.h:
815 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
816 (WebCore::IDBClient::IDBTransaction::abort):
818 2015-12-09 Simon Fraser <simon.fraser@apple.com>
820 Adjust layer backing store format
821 https://bugs.webkit.org/show_bug.cgi?id=152097
822 rdar://problem/23305376
824 Reviewed by Tim Horton.
826 Call setBackingStoreFormat() on UIWebView tile grid layers, and on compositing
827 layers which can allocate backing store.
829 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
830 (WebCore::setBackingStoreFormat):
831 (PlatformCALayerCocoa::commonInit):
832 * platform/ios/LegacyTileGridTile.mm:
833 (WebCore::setBackingStoreFormat):
834 (WebCore::LegacyTileGridTile::LegacyTileGridTile):
836 2015-12-09 Brady Eidson <beidson@apple.com>
838 Modern IDB: storage/indexeddb/intversion-close-between-events.html fails.
839 https://bugs.webkit.org/show_bug.cgi?id=152096
841 Reviewed by Alex Christensen.
843 No new tests (At least one failing test now passes).
845 * bindings/js/JSIDBDatabaseCustom.cpp:
846 (WebCore::JSIDBDatabase::transaction): In addition to JSArrays, treat DOMStringLists as a valid string sequence.
848 2015-12-09 Andreas Kling <akling@apple.com>
850 [iOS] ResourceUsageOverlay should work on iOS.
851 <https://webkit.org/b/152021>
853 Reviewed by Antti Koivisto.
855 Make ResourceUsageOverlay work on iOS and on Mac desktops with UI-side compositing.
857 * page/ResourceUsageOverlay.cpp:
858 (WebCore::ResourceUsageOverlay::initialize): Move the overlay to the top of the view on iOS for now.
859 * page/ResourceUsageOverlay.h:
860 * page/cocoa/ResourceUsageOverlayCocoa.mm:
861 (WebCore::createColor): Make a custom CGColor factory since we can't use CGColorCreateGenericRGB on iOS.
862 (WebCore::MemoryCategoryInfo::MemoryCategoryInfo):
863 (WebCore::ResourceUsageOverlay::platformInitialize): Put the overlay CALayer into a container layer and
864 hook it up with GraphicsLayer::setContentsToPlatformLayer so it works with all compositing modes.
865 (WebCore::showText): Move CGContextSaveGState call to the top of the function to preserve everything.
866 (WebCore::drawGraphLabel):
867 (WebCore::drawCpuHistory):
868 (WebCore::drawGCHistory):
869 (WebCore::ResourceUsageOverlay::platformDraw): Flip the CGContext if needed.
870 (WebCore::runSamplerThread): Update the layer rects on each thread iteration. This shouldn't be
871 necessary but it papers over an issue where the containing layer would shrink down to 0x0 and
872 disappear. Added a FIXME for this.
873 * platform/spi/cocoa/MachVMSPI.h: Add purgeable VM SPI.
875 2015-12-09 Brady Eidson <beidson@apple.com>
877 Modern IDB: storage/indexeddb/database-closepending-flag.html fails.
878 https://bugs.webkit.org/show_bug.cgi?id=152095
880 Reviewed by Alex Christensen.
882 No new tests (At least one failing test now passes).
884 The server-side checks the closepending flag before dispatching the event to the client,
885 but due to the inherent asynchronous race between server and client, the client needs to
886 check its closePending flag as well.
888 * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
889 (WebCore::IDBClient::IDBDatabase::fireVersionChangeEvent): Don't fire if m_closePending is set.
891 2015-12-09 David Hyatt <hyatt@apple.com>
893 Picture element needs to respond to dynamic viewport changes.
894 https://bugs.webkit.org/show_bug.cgi?id=152013
895 <rdar://problem/23766375>
897 Reviewed by Dean Jackson.
899 Added new tests in fast/picture.
901 * css/MediaQueryEvaluator.cpp:
902 (WebCore::MediaQueryEvaluator::evalCheckingViewportDependentResults):
903 Add new evaluation method that adds viewport dependent results to a vector. A follow-up patch
904 will refactor the style resolver code to use this function instead of the special style resolver one, in order to
905 get rid of the code duplication. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152089.
907 * css/MediaQueryEvaluator.h:
908 (WebCore::MediaQueryResult::MediaQueryResult):
909 * css/StyleResolver.h:
910 (WebCore::MediaQueryResult::MediaQueryResult): Deleted.
911 Move MediaQueryResult into a header since it is used in multiple places now and not just by the style
915 (WebCore::Document::evaluateMediaQueryList):
916 (WebCore::Document::checkViewportDependentPictures):
917 (WebCore::Document::optimizedStyleSheetUpdateTimerFired):
918 (WebCore::Document::applyContentDispositionAttachmentSandbox):
919 (WebCore::Document::addViewportDependentPicture):
920 (WebCore::Document::removeViewportDependentPicture):
922 The document now maintains a HashSet of viewport-dependent pictures, and it checks them whenever the
923 viewport changes. If their media queries stay the same, then nothing happens. If they change, then
924 the <picture> will go back and re-check all its <source> elements to see what the new best candidate is.
926 * html/HTMLImageElement.cpp:
927 (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
928 Revised to check for viewport dependencies and to cache viewport-dependent results on the <picture> elements.
929 When a <picture> is found to be viewport-dependent (or not) it is also added to or removed from the document's
930 set of tracked pictures.
932 * html/HTMLPictureElement.cpp:
933 (WebCore::HTMLPictureElement::HTMLPictureElement):
934 (WebCore::HTMLPictureElement::~HTMLPictureElement):
935 (WebCore::HTMLPictureElement::didMoveToNewDocument):
936 (WebCore::HTMLPictureElement::create):
937 (WebCore::HTMLPictureElement::sourcesChanged):
938 (WebCore::HTMLPictureElement::viewportChangeAffectedPicture):
939 * html/HTMLPictureElement.h:
940 New caching of results and updating of the document HashSet when the picture gets destroyed or moves to
941 a different document.
943 * html/HTMLSourceElement.cpp:
944 (WebCore::HTMLSourceElement::parseAttribute):
945 * html/HTMLSourceElement.h:
946 Cache the media attribute in a parsed form. A follow-up patch will improve the <video>/<audio>
947 code to make use of this parsed result. Tracked by https://bugs.webkit.org/show_bug.cgi?id=152090.
949 2015-12-09 Zalan Bujtas <zalan@apple.com>
951 TextPainter: Rename start and end position to selectionStart and selectionEnd.
952 https://bugs.webkit.org/show_bug.cgi?id=152088
954 Reviewed by Myles C. Maxfield.
956 They actually mean selection start/end.
958 No change in functionality.
960 * rendering/InlineTextBox.cpp:
961 (WebCore::InlineTextBox::paint):
962 * rendering/TextPainter.cpp:
963 (WebCore::TextPainter::TextPainter):
964 (WebCore::TextPainter::paintText):
965 * rendering/TextPainter.h:
967 2015-12-09 Joanmarie Diggs <jdiggs@igalia.com>
969 AX: [GTK] Anonymous render block flow elements should be exposed as ATK_ROLE_SECTION; not ATK_ROLE_PANEL
970 https://bugs.webkit.org/show_bug.cgi?id=152070
972 Reviewed by Mario Sanchez Prada.
974 Map the element to WebCore AccessibilityRole DivRole for GTK. This is being
975 done in the shared layer rather than in the platform layer because we want all
976 subsequent logic to treat anonymous render block flow elements as divs.
978 No new tests. We already have sufficient test coverage. The expectations
979 been updated accordingly.
981 * accessibility/AccessibilityRenderObject.cpp:
982 (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
984 2015-12-09 Keith Rollin <krollin@apple.com>
986 form.elements should reflect the element ordering after the HTML tree builder algorithm
987 https://bugs.webkit.org/show_bug.cgi?id=148870
988 rdar://problem/22589879
990 Reviewed by Ryosuke Niwa.
992 form.elements should return form-associated elements in tree order.
993 However, when presented with an HTML fragment like the following,
994 forms.elements is not built in tree order. Instead, the elements
995 appear in forms.element in the same order they appear in the HTML --
996 that is in the same order as they are parsed.
1001 <td><input type="radio" name="radio1" id="r1" value=1></td>
1002 <td><input type="radio" name="radio2" id="r2" value=2></td>
1003 <input type="radio" name="radio0" id="r0" value=0>
1008 The reason why elements appear in forms.elements in parse order is
1009 because they register themselves with the designated form when they
1010 are created. At this time, they are not in the DOM tree, so the form
1011 can only assume that the element will be appended to the DOM tree,
1012 with the result that it records the elements in the HTML fragment
1013 above as [r1, r2, r0].
1015 However, it's not always the case that the newly-created element will
1016 be appended to the current tree. In the HTML fragment above, the r0
1017 input element is hoised out of the table element. It ends up being the
1018 preceding sibling of the table element, with the result that the
1019 actual tree-order of the input elements is [r0, r1, r2].
1021 Because the problem is due to registering form-associated elements
1022 with the form *before* the elements are added to the DOM tree, the
1023 solution is to defer that registration until afterwards. With the new
1024 element in the tree, the form can now use its current location in the
1025 tree to correctly place the element in form.elements.
1027 Existing tests now pass:
1028 - imported/w3c/web-platform-tests/html/semantics/forms/the-form-element/form-elements-nameditem-02-html
1030 * html/FormAssociatedElement.cpp:
1031 (WebCore::FormAssociatedElement::FormAssociatedElement):
1032 (WebCore::FormAssociatedElement::insertedInto):
1033 (WebCore::FormAssociatedElement::removedFrom):
1034 (WebCore::FormAssociatedElement::formRemovedFromTree):
1035 (WebCore::FormAssociatedElement::formWillBeDestroyed):
1036 * html/FormAssociatedElement.h:
1037 * html/HTMLFormControlElement.cpp:
1038 (WebCore::HTMLFormControlElement::HTMLFormControlElement):
1039 * html/HTMLImageElement.cpp:
1040 (WebCore::HTMLImageElement::HTMLImageElement):
1041 (WebCore::HTMLImageElement::insertedInto):
1042 (WebCore::HTMLImageElement::removedFrom):
1043 * html/HTMLImageElement.h:
1044 * html/HTMLObjectElement.cpp:
1045 (WebCore::HTMLObjectElement::HTMLObjectElement):
1047 2015-12-09 Gwang Yoon Hwang <yoon@igalia.com>
1049 [ThreadedCompositor] Support HTML5 Video
1050 https://bugs.webkit.org/show_bug.cgi?id=143301
1052 Reviewed by Žan Doberšek.
1054 This patch implements HTML5 Video supports in Threaded Compositor.
1056 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1057 (WebCore::GstVideoFrameHolder::GstVideoFrameHolder):
1058 Added to support GStreamer GL by ensuring unmapping of the swapped
1059 GstVideoFrame performed at GStreamer GL's gl thread.
1060 (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):
1061 Modified to upload decoded frame to the given texture instead of
1062 creating a texture itself because we should use a texture from the
1063 proxy when we are using the threaded compositor.
1064 (WebCore::MediaPlayerPrivateGStreamerBase::pushTextureToCompositor):
1065 Implements two ways to send a texture from GStreamer to the compositor.
1066 1. If we are not using GStreamer GL, we are going to acquire a free texture
1067 from a TextureMapperPlatformLayerProxy and upload the decoded frame to the
1068 texture. This should be done at the compositing thread because we
1069 don't have a Gst's GL thread.
1070 2. If we are using GStreamer GL, we map a texture for the given frame
1071 and passes it to the compositing thread. The mapped frame will be
1072 freed if it is swapped out or the layer is removed.
1074 (WebCore::MediaPlayerPrivateGStreamerBase::paintToTextureMapper):
1075 Modified to aquire a new texture itself.
1077 * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
1078 Adds a way to pass a function to the compositing thread to allocate /
1079 upload textures at the compositing thread.
1082 2015-12-09 Xabier Rodriguez Calvar <calvaris@igalia.com>
1084 [Streams API] pipeThrough test failing
1085 https://bugs.webkit.org/show_bug.cgi?id=152061
1087 Reviewed by Youenn Fablet.
1089 Test: imported/w3c/web-platform-tests/streams-api/readable-streams/pipe-through.html
1091 * Modules/streams/ReadableStream.js:
1092 (pipeThrough): Mimic destructuring for the streams parameter.
1094 2015-12-09 Frederic Wang <fred.wang@free.fr>
1096 Bad position of large operators inside an munderover element
1097 https://bugs.webkit.org/show_bug.cgi?id=151916
1099 Reviewed by Alejandro G. Castro.
1101 Test: mathml/opentype/large-operators-munderover.html
1103 * rendering/mathml/RenderMathMLOperator.h:
1104 (WebCore::RenderMathMLOperator::isVertical): Expose the direction of the operator.
1105 * rendering/mathml/RenderMathMLUnderOver.cpp:
1106 (WebCore::RenderMathMLUnderOver::layout): Remove call to horizontal stretching for vertical operators.
1108 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1110 [TexMap] TextureMapperTiledBackingStore should notify the ImageObserver of the data access
1111 https://bugs.webkit.org/show_bug.cgi?id=152053
1113 Reviewed by Martin Robinson.
1115 TextureMapperTiledBackingStore should call ImageObserver::didDraw() on the Image's
1116 observer after updating the tile with the Image's data. This way the CachedImage
1117 (i.e. the observer) can mark the data access with the current timestamp, avoiding
1118 removing the decoded data in the very near future during a cache purge.
1120 * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
1121 (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
1123 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1125 Make MainThreadSharedTimerGtk implementation GLib-specific
1126 https://bugs.webkit.org/show_bug.cgi?id=152044
1128 Reviewed by Carlos Garcia Campos.
1130 MainThreadSharedTimerGtk has implementation that only directly depends
1131 on GLib, and not GTK+. Because of that it can be moved under
1132 Source/WebCore/platform/glib and slightly renamed.
1134 * PlatformGTK.cmake:
1135 * platform/glib/MainThreadSharedTimerGLib.cpp: Renamed from Source/WebCore/platform/gtk/MainThreadSharedTimerGtk.cpp.
1136 (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
1137 (WebCore::MainThreadSharedTimer::setFireInterval):
1138 (WebCore::MainThreadSharedTimer::stop):
1139 (WebCore::MainThreadSharedTimer::invalidate):
1140 * platform/gtk/MainThreadSharedTimerGtk.cpp:
1141 (WebCore::MainThreadSharedTimer::MainThreadSharedTimer): Deleted.
1142 (WebCore::MainThreadSharedTimer::setFireInterval): Deleted.
1143 (WebCore::MainThreadSharedTimer::stop): Deleted.
1144 (WebCore::MainThreadSharedTimer::invalidate): Deleted.
1146 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1148 [TextureMapper] TextureMapperShaderProgram::setMatrix() should use TransformationMatrix::FloatMatrix4
1149 https://bugs.webkit.org/show_bug.cgi?id=152042
1151 Reviewed by Martin Robinson.
1153 * platform/graphics/texmap/TextureMapperShaderProgram.cpp:
1154 (WebCore::TextureMapperShaderProgram::setMatrix): Instead of manually writing out
1155 the complete matrix in a C array, simply use TransformationMatrix::FloatMatrix4
1156 and fill that via the TransformationMatrix::toColumnMajorFloatArray() method
1157 called on the passed-in TransformationMatrix.
1159 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1161 [Soup] Attach the SocketStreamHandleSoup write-ready source to the thread-default context
1162 https://bugs.webkit.org/show_bug.cgi?id=152041
1164 Reviewed by Carlos Garcia Campos.
1166 * platform/network/soup/SocketStreamHandleSoup.cpp:
1167 (WebCore::SocketStreamHandle::beginWaitingForSocketWritability): Attach the
1168 write-ready source to the thread-default context, instead of implicitly
1169 relying on the default context for dispatching.
1171 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1173 [Soup] SocketStreamHandle should call g_source_destroy() on the write-ready source
1174 https://bugs.webkit.org/show_bug.cgi?id=152040
1176 Reviewed by Carlos Garcia Campos.
1178 * platform/network/soup/SocketStreamHandleSoup.cpp:
1179 (WebCore::SocketStreamHandle::stopWaitingForSocketWritability): Instead of
1180 calling the g_source_get_id()-g_source_remove() pair, destroy the source via
1181 the g_source_destroy() call. Also use nullptr to clear out the pointer
1184 2015-12-09 Zan Dobersek <zdobersek@igalia.com>
1186 Make AudioBusGtk implementation GLib-specific
1187 https://bugs.webkit.org/show_bug.cgi?id=152049
1189 Reviewed by Philippe Normand.
1191 AudioBusGtk only depends on GLib, so it should be moved to
1192 Source/WebCore/platform/audio/glib and the implementation file
1193 renamed to AudioBusGLib.cpp.
1195 The hard-coded webkitgtk path component can be addressed later.
1197 * PlatformGTK.cmake: Update the build target.
1198 * platform/audio/glib/AudioBusGLib.cpp: Renamed from Source/WebCore/platform/audio/gtk/AudioBusGtk.cpp.
1199 (WebCore::AudioBus::loadPlatformResource):
1200 * platform/audio/gtk/AudioBusGtk.cpp:
1201 (WebCore::AudioBus::loadPlatformResource): Deleted.
1203 2015-12-09 Joanmarie Diggs <jdiggs@igalia.com>
1205 AX: [EFL] Consider deferring to WebCore Accessibility for table exposure
1206 https://bugs.webkit.org/show_bug.cgi?id=144898
1208 Reviewed by Darin Adler.
1210 Stop unconditionally exposing all HTMLTableElement nodes as AccessibilityTables
1213 No new tests. Several existing tests already cover table exposure. They have
1214 been updated accordingly.
1216 * accessibility/AccessibilityTable.cpp:
1217 (WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):
1219 2015-12-08 Simon Fraser <simon.fraser@apple.com>
1221 Convert resetAnimValToBaseVal take a reference to a SVGAnimatedType
1222 https://bugs.webkit.org/show_bug.cgi?id=152036
1224 Reviewed by Zalan Bujtas.
1226 Change resetAnimValToBaseVal() to take a reference at the last argument.
1228 * svg/SVGAnimateElementBase.cpp:
1229 (WebCore::SVGAnimateElementBase::resetAnimatedType):
1230 * svg/SVGAnimatedAngle.cpp:
1231 (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
1232 * svg/SVGAnimatedAngle.h:
1233 * svg/SVGAnimatedBoolean.cpp:
1234 (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
1235 * svg/SVGAnimatedBoolean.h:
1236 * svg/SVGAnimatedColor.h:
1237 * svg/SVGAnimatedEnumeration.cpp:
1238 (WebCore::SVGAnimatedEnumerationAnimator::resetAnimValToBaseVal):
1239 * svg/SVGAnimatedEnumeration.h:
1240 * svg/SVGAnimatedInteger.cpp:
1241 (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
1242 * svg/SVGAnimatedInteger.h:
1243 * svg/SVGAnimatedIntegerOptionalInteger.cpp:
1244 (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
1245 * svg/SVGAnimatedIntegerOptionalInteger.h:
1246 * svg/SVGAnimatedLength.cpp:
1247 (WebCore::SVGAnimatedLengthAnimator::resetAnimValToBaseVal):
1248 * svg/SVGAnimatedLength.h:
1249 * svg/SVGAnimatedLengthList.cpp:
1250 (WebCore::SVGAnimatedLengthListAnimator::resetAnimValToBaseVal):
1251 * svg/SVGAnimatedLengthList.h:
1252 * svg/SVGAnimatedNumber.cpp:
1253 (WebCore::SVGAnimatedNumberAnimator::resetAnimValToBaseVal):
1254 * svg/SVGAnimatedNumber.h:
1255 * svg/SVGAnimatedNumberList.cpp:
1256 (WebCore::SVGAnimatedNumberListAnimator::resetAnimValToBaseVal):
1257 * svg/SVGAnimatedNumberList.h:
1258 * svg/SVGAnimatedNumberOptionalNumber.cpp:
1259 (WebCore::SVGAnimatedNumberOptionalNumberAnimator::resetAnimValToBaseVal):
1260 * svg/SVGAnimatedNumberOptionalNumber.h:
1261 * svg/SVGAnimatedPath.cpp:
1262 (WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
1263 * svg/SVGAnimatedPath.h:
1264 * svg/SVGAnimatedPointList.cpp:
1265 (WebCore::SVGAnimatedPointListAnimator::resetAnimValToBaseVal):
1266 * svg/SVGAnimatedPointList.h:
1267 * svg/SVGAnimatedPreserveAspectRatio.cpp:
1268 (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
1269 * svg/SVGAnimatedPreserveAspectRatio.h:
1270 * svg/SVGAnimatedRect.cpp:
1271 (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
1272 * svg/SVGAnimatedRect.h:
1273 * svg/SVGAnimatedString.cpp:
1274 (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
1275 * svg/SVGAnimatedString.h:
1276 * svg/SVGAnimatedTransformList.cpp:
1277 (WebCore::SVGAnimatedTransformListAnimator::resetAnimValToBaseVal):
1278 * svg/SVGAnimatedTransformList.h:
1279 * svg/SVGAnimatedTypeAnimator.h:
1280 (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValue):
1281 (WebCore::SVGAnimatedTypeAnimator::resetFromBaseValues):
1283 2015-12-08 Myles C. Maxfield <mmaxfield@apple.com>
1285 Remove Mavericks-specific code from FontCacheMac
1286 https://bugs.webkit.org/show_bug.cgi?id=152030
1288 Reviewed by Simon Fraser.
1290 Mavericks is no longer a supported platform.
1292 No new tests because there is no behavior change.
1294 * platform/graphics/mac/FontCacheMac.mm:
1295 (WebCore::platformLookupFallbackFont):
1296 (WebCore::platformFontWithFamilySpecialCase): Deleted.
1298 2015-12-08 Brady Eidson <beidson@apple.com>
1300 Modern IDB: storage/indexeddb/objectstore-cursor.html fails.
1301 https://bugs.webkit.org/show_bug.cgi?id=152023
1303 Reviewed by Alex Christensen.
1305 No new tests (At least one failing test now passes).
1307 * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
1308 (WebCore::IDBServer::MemoryObjectStoreCursor::MemoryObjectStoreCursor):
1309 (WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange): Make sure the
1310 found iterator is actually in the target range.
1312 2015-12-08 Jer Noble <jer.noble@apple.com>
1314 Changing <video> src during 'ended' event can leave screen sleep disabled
1315 https://bugs.webkit.org/show_bug.cgi?id=152018
1317 Reviewed by Eric Carlson.
1319 Resetting a HTMLMediaElement's src during 'ended' introduces a race condition: whether
1320 the 'mediaPlayerRateChanged()' notification will fire before createMediaPlayer() destroys
1321 the old MediaPlayer firing said notification.
1323 To break the race condition, always update the sleep disabling assertion after destroying
1324 the media player (by creating a new one).
1326 * html/HTMLMediaElement.cpp:
1327 (WebCore::HTMLMediaElement::createMediaPlayer):
1329 2015-12-08 Brady Eidson <beidson@apple.com>
1331 Modern IDB: Fire blocked events for delete requests that are blocked.
1332 https://bugs.webkit.org/show_bug.cgi?id=152015
1334 Reviewed by Alex Christensen.
1336 No new tests (Previous failing tests now pass, and previously timing-out tests now complete).
1338 * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1339 (WebCore::IDBServer::UniqueIDBDatabase::maybeDeleteDatabase):
1340 (WebCore::IDBServer::UniqueIDBDatabase::handleDelete):
1341 (WebCore::IDBServer::UniqueIDBDatabase::deleteOrRunTransactionsTimerFired):
1342 * Modules/indexeddb/server/UniqueIDBDatabase.h:
1344 2015-12-08 Brady Eidson <beidson@apple.com>
1346 Modern IDB: Fire blocked events for upgrade requests that are blocked.
1347 https://bugs.webkit.org/show_bug.cgi?id=152007
1349 Reviewed by Alex Christensen.
1351 Test: storage/indexeddb/modern/blocked-open-db-requests.html
1352 And some that used to fail now pass.
1353 And some that used to timeout now complete.
1355 * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1356 (WebCore::IDBClient::IDBConnectionToServer::notifyOpenDBRequestBlocked):
1357 * Modules/indexeddb/client/IDBConnectionToServer.h:
1359 * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
1360 (WebCore::IDBClient::IDBDatabase::IDBDatabase):
1362 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
1363 (WebCore::IDBClient::IDBOpenDBRequest::requestBlocked):
1364 * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
1366 * Modules/indexeddb/client/IDBRequestImpl.cpp:
1367 (WebCore::IDBClient::IDBRequest::dispatchEvent):
1369 * Modules/indexeddb/server/IDBConnectionToClient.cpp:
1370 (WebCore::IDBServer::IDBConnectionToClient::notifyOpenDBRequestBlocked):
1371 * Modules/indexeddb/server/IDBConnectionToClient.h:
1372 * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
1374 * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1375 (WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations): When a request that would
1376 result in a version change transaction is blocked by open connections, notify it.
1378 * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1379 (WebCore::InProcessIDBServer::notifyOpenDBRequestBlocked):
1380 * Modules/indexeddb/shared/InProcessIDBServer.h:
1382 2015-12-08 Per Arne Vollan <peavo@outlook.com>
1384 [WinCairo] Compile error.
1385 https://bugs.webkit.org/show_bug.cgi?id=152008
1387 Reviewed by Brent Fulgham.
1389 GLuint is undefined.
1391 * platform/graphics/GraphicsContext3D.h:
1393 2015-12-08 Zalan Bujtas <zalan@apple.com>
1395 Light cleanup in TextPainter.
1396 https://bugs.webkit.org/show_bug.cgi?id=151994
1398 Reviewed by Darin Adler.
1400 No change in functionality.
1402 * rendering/TextPainter.cpp:
1403 (WebCore::TextPainter::TextPainter):
1404 * rendering/TextPainter.h: Address post review comment.
1405 (WebCore::ShadowApplier::isLastShadowIteration):
1406 (WebCore::ShadowApplier::shadowIsCompletelyCoveredByText):
1408 2015-12-08 Zalan Bujtas <zalan@apple.com>
1410 Do not insert positioned renderers to multiple gPositionedDescendantsMap.
1411 https://bugs.webkit.org/show_bug.cgi?id=151878
1412 rdar://problem/22229889
1414 Reviewed by Simon Fraser.
1416 We insert positioned renderers into a static map (RenderBlock::gPositionedDescendantsMap) to keep track of them.
1417 This static map is at block level. A particular absolute positioned object is added to its closest ancestor that
1418 returns true for RenderElement::canContainAbsolutelyPositionedObjects().
1419 canContainAbsolutelyPositionedObjects() returns true if the ancestor is either positioned or has transform.
1420 If this container's style changes so that it's no longer positioned and it has no transform anymore,
1421 we need to clear its static map of positioned objects (they'll get re-inserted to another ancestor at next layout).
1423 This patch addresses the case when the renderer does not have transforms anymore.
1425 Test: fast/block/positioning/crash-when-transform-is-removed.html
1427 * rendering/RenderBlock.cpp:
1428 (WebCore::RenderBlock::styleWillChange):
1430 2015-12-08 Eric Carlson <eric.carlson@apple.com>
1432 [MediaStream] Rename UserMediaClient and UserMediaController methods
1433 https://bugs.webkit.org/show_bug.cgi?id=152001
1435 Reviewed by Brady Eidson.
1437 No new tests, no behavior change.
1439 * Modules/mediastream/UserMediaClient.h:
1440 (WebCore::UserMediaClient::~UserMediaClient):
1441 * Modules/mediastream/UserMediaController.h:
1442 (WebCore::UserMediaController::client):
1443 (WebCore::UserMediaController::from):
1444 (WebCore::UserMediaController::requestUserMediaAccess):
1445 (WebCore::UserMediaController::cancelUserMediaAccessRequest):
1446 (WebCore::UserMediaController::requestPermission): Deleted.
1447 (WebCore::UserMediaController::cancelRequest): Deleted.
1448 * Modules/mediastream/UserMediaRequest.cpp:
1449 (WebCore::UserMediaRequest::constraintsValidated):
1450 (WebCore::UserMediaRequest::contextDestroyed):
1451 * platform/mock/UserMediaClientMock.h:
1453 2015-12-08 Jer Noble <jer.noble@apple.com>
1455 [iOS] Do not exit fullscreen mode during auto-PiP.
1456 https://bugs.webkit.org/show_bug.cgi?id=151889
1458 Reviewed by Darin Adler.
1460 When auto-PiPing, do not exit fullscreen mode, as that causes a two-step animation upon returing from auto-PiP.
1462 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1463 (WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Handle the case where we open Safari after an
1464 auto-PiP by clicking on a link; if so, hide the fullscreen window.
1465 (WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Do not exit fullscreen during auto-PiP.
1466 (WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Ditto.
1468 2015-12-08 Per Arne Vollan <peavo@outlook.com>
1470 [WinCairo] Remove unneeded function.
1471 https://bugs.webkit.org/show_bug.cgi?id=151989
1473 Reviewed by Brent Fulgham.
1475 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
1476 (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::createOptimalVideoType):
1477 (MFCreateMediaType): Deleted.
1479 2015-12-08 Jer Noble <jer.noble@apple.com>
1481 [iOS] Adopt WebFullScreenVideoRootViewController.
1482 https://bugs.webkit.org/show_bug.cgi?id=151996
1484 Reviewed by Dan Bernstein.
1486 Adopt WebFullScreenVideoRootViewController from WebKitAdditions. If it is not available, create and use
1487 a generic UIViewController subclass.
1489 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
1490 (createFullScreenVideoRootViewControllerClass):
1491 (allocWebFullScreenVideoRootViewControllerInstance):
1492 (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
1494 2015-12-08 Andy Estes <aestes@apple.com>
1496 ImmutableNFANodeBuilder's move constructor moves an uninitialized member variable into itself
1497 https://bugs.webkit.org/show_bug.cgi?id=151982
1499 Reviewed by Darin Adler.
1501 * contentextensions/ImmutableNFANodeBuilder.h:
1502 (WebCore::ContentExtensions::ImmutableNFANodeBuilder::ImmutableNFANodeBuilder):
1504 2015-12-08 Andreas Kling <akling@apple.com>
1506 [Cocoa] ResourceUsageOverlay should query kernel for VM page size.
1507 <https://webkit.org/b/151920>
1509 Reviewed by Andy Estes.
1511 Read the vm.pagesize sysctl to find the correct page size for memory usage calculations.
1512 This fixes broken math on systems that have different hw.pagesize and vm.pagesize.
1514 * page/cocoa/ResourceUsageOverlayCocoa.mm:
1515 (WebCore::vmPageSize):
1516 (WebCore::pagesPerVMTag):
1517 (WebCore::runSamplerThread):
1519 2015-12-08 Chris Dumez <cdumez@apple.com>
1521 Add diagnostic logging to measure speculative revalidation accuracy
1522 https://bugs.webkit.org/show_bug.cgi?id=151953
1523 <rdar://problem/23092196>
1525 Reviewed by Darin Adler.
1527 Add diagnostic logging to measure speculative revalidation accuracy.
1529 * page/DiagnosticLoggingKeys.cpp:
1530 (WebCore::DiagnosticLoggingKeys::entryRightlyNotWarmedUpKey):
1531 (WebCore::DiagnosticLoggingKeys::entryWronglyNotWarmedUpKey):
1532 (WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithRevalidationKey):
1533 (WebCore::DiagnosticLoggingKeys::successfulSpeculativeWarmupWithoutRevalidationKey):
1534 (WebCore::DiagnosticLoggingKeys::unknownEntryRequestKey):
1535 (WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithRevalidationKey):
1536 (WebCore::DiagnosticLoggingKeys::wastedSpeculativeWarmupWithoutRevalidationKey):
1537 * page/DiagnosticLoggingKeys.h:
1539 2015-12-08 Brady Eidson <beidson@apple.com>
1541 Modern IDB: storage/indexeddb/index-cursor.html fails.
1542 https://bugs.webkit.org/show_bug.cgi?id=151973
1544 Reviewed by Darin Adler.
1546 No new tests (At least one failing test now passes).
1548 * Modules/indexeddb/server/MemoryIndexCursor.cpp:
1549 (WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor): When the initial cursor creation
1550 generates an iterator outside of the cursor's IDBKeyRange, invalidate the iterator.
1552 2015-12-08 Joanmarie Diggs <jdiggs@igalia.com>
1554 [EFL] some ax tests have been failed since r186692
1555 https://bugs.webkit.org/show_bug.cgi?id=146887
1557 Reviewed by Mario Sanchez Prada.
1559 The tests were failing because there are now two WebCore accessibility
1560 roles which need to implement the AtkTable interface: TableRole and
1561 GridRole. Because the latter was not added in r186692, any tests with
1562 ARIA role grid that accessed cells via coordinates stopped working.
1564 No new tests; instead unskipped all the broken table tests which now pass.
1566 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1567 (getInterfaceMaskFromObject):
1569 2015-12-08 Gwang Yoon Hwang <yoon@igalia.com>
1571 [ThreadedCompositor] Add support for Cairo GL-backed ImageBuffer.
1572 https://bugs.webkit.org/show_bug.cgi?id=151986
1574 Reviewed by Žan Doberšek.
1576 This patch adds a support for accelerated 2d canvas which uses cairo-gl as its
1577 backend to the threaded compositor. Basically, it applies same way to support
1578 WebGL for the threaded compositor.
1580 Unfortunately, we cannot swap the buffer for the accelerated 2d canvas because
1581 it should preserve the buffer of the previous frame when drawing new contents.
1582 Because of that, the surface of the accelerated 2d canvas will be copied for
1585 * platform/graphics/cairo/ImageBufferCairo.cpp:
1586 (WebCore::ImageBufferData::ImageBufferData):
1587 (WebCore::ImageBufferData::createCompositorBuffer): Prepare a texture
1588 surface to push the rendered result to the compositing thread.
1589 (WebCore::ImageBufferData::swapBuffersIfNeeded): Copies the contents
1590 of the canvas's surface to the compositing texture.
1591 (WebCore::ImageBufferData::createCairoGLSurface): Moved to the inside
1594 2015-12-08 Joanmarie Diggs <jdiggs@igalia.com>
1596 [GTK] 15 accessibility tests fail since r186692.
1597 https://bugs.webkit.org/show_bug.cgi?id=148938
1599 Reviewed by Mario Sanchez Prada.
1601 Failing tests rebaselined.
1603 * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
1604 (atkRole): Treat GridCellRole and CellRole the same.
1605 (roleIsTextType): Treat GridCellRole and CellRole the same.
1607 2015-12-08 Frederic Wang <fred.wang@free.fr>
1609 [cairo] Solid stroke of lines with thickness less than 1 pixel broken after r191658
1610 https://bugs.webkit.org/show_bug.cgi?id=151947
1612 Reviewed by Martin Robinson.
1614 Test: mathml/presentation/radical-bar-visibility.html
1616 * platform/graphics/cairo/GraphicsContextCairo.cpp:
1617 (WebCore::GraphicsContext::drawLine): Force a minimal thickness of 1px
1619 2015-12-08 Gwang Yoon Hwang <yoon@igalia.com>
1621 [ThreadedCompositor] Support WebGL for OpenGL.
1622 https://bugs.webkit.org/show_bug.cgi?id=143300
1624 Reviewed by Žan Doberšek.
1626 To remove pixel transfer operation, this patch adds m_compositorFBO which uses same depth and stencil
1627 buffer with m_fbo but uses m_compositorTexture as a color attachment in GraphicsContext3D.
1628 Because switching target framebuffer is cheaper than pixel transfer operation and switching color
1629 attachment of m_fbo. In Threaded Compositor, when WebGL renders a scene, prepareTexture swaps
1630 m_fbo with m_compositorFBO and send the color attachment to the compositor thread.
1631 This patch only supports WebGL for OpenGL. OpenGLES will be covered in following-up patches.
1633 No new tests needed.
1635 * platform/graphics/GraphicsContext3D.h:
1636 * platform/graphics/GraphicsContext3DPrivate.cpp:
1637 (WebCore::GraphicsContext3DPrivate::GraphicsContext3DPrivate):
1638 (WebCore::GraphicsContext3DPrivate::proxy):
1639 (WebCore::GraphicsContext3DPrivate::swapBuffersIfNeeded):
1640 Implement interfaces to pass a rendered texture to the compositing
1642 * platform/graphics/GraphicsContext3DPrivate.h:
1643 * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
1644 (WebCore::GraphicsContext3D::GraphicsContext3D):
1645 (WebCore::GraphicsContext3D::~GraphicsContext3D):
1646 Create additional compositing texture and FBO to swaping buffers for
1647 threaded compositor.
1648 * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
1649 (WebCore::GraphicsContext3D::reshapeFBOs):
1650 (WebCore::GraphicsContext3D::attachDepthAndStencilBufferIfNeeded):
1651 Split attaching depth and stencil buffer codes from reshapeFBOs
1652 to make complete framebuffer with not only m_fbo but m_compositorFBO also.
1653 * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
1654 (WebCore::GraphicsContext3D::prepareTexture):
1655 If we are in the threaded compositor, we will swap m_fbo with
1656 m_compositorFBO instead of copying it.
1658 2015-12-07 Zalan Bujtas <zalan@apple.com>
1660 Make paintTextWithShadows a member function (TextPainter).
1661 https://bugs.webkit.org/show_bug.cgi?id=151979
1663 Reviewed by Simon Fraser.
1665 This patch also simplifies paintTextWithShadows and
1666 rearranges some of the functions' arguments.
1668 No change in functionality.
1670 * rendering/TextPainter.cpp:
1671 (WebCore::TextPainter::drawTextOrEmphasisMarks):
1672 (WebCore::TextPainter::paintTextWithShadows):
1673 (WebCore::TextPainter::paintEmphasisMarksIfNeeded):
1674 (WebCore::TextPainter::paintTextWithStyle):
1675 (WebCore::TextPainter::paintText):
1676 (WebCore::drawTextOrEmphasisMarks): Deleted.
1677 (WebCore::paintTextWithShadows): Deleted.
1678 * rendering/TextPainter.h:
1680 2015-12-07 Brady Eidson <beidson@apple.com>
1682 Modern IDB: storage/indexeddb/factory-deletedatabase.html fails.
1683 https://bugs.webkit.org/show_bug.cgi?id=151966
1685 Reviewed by Sam Weinig.
1687 No new tests (At least one failing test now passes).
1689 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
1690 (WebCore::IDBClient::IDBOpenDBRequest::onDeleteDatabaseSuccess): The spec says that the result of
1691 deleteDatabase should be undefined. Without explicitly making it undefined, it's incorrectly null.
1693 2015-12-07 Brady Eidson <beidson@apple.com>
1695 Modern IDB: storage/indexeddb/cursor-continue-validity.html fails.
1696 https://bugs.webkit.org/show_bug.cgi?id=151961
1698 Reviewed by Alex Christensen.
1700 No new tests (At least one failing test now passes).
1702 When an index cursor's iterator was invalidated, there were some cases where it did
1703 not correctly find the next iterator to pick up where it left off.
1705 * Modules/indexeddb/client/IDBCursorImpl.cpp:
1706 (WebCore::IDBClient::IDBCursor::update):
1707 (WebCore::IDBClient::IDBCursor::deleteFunction):
1709 * Modules/indexeddb/server/IndexValueStore.cpp:
1710 (WebCore::IDBServer::IndexValueStore::find):
1711 (WebCore::IDBServer::IndexValueStore::loggingString):
1712 * Modules/indexeddb/server/IndexValueStore.h:
1714 2015-12-07 Zalan Bujtas <zalan@apple.com>
1716 Refactor TextPainter::paintText() into sub methods.
1717 https://bugs.webkit.org/show_bug.cgi?id=151962
1719 Reviewed by Myles C. Maxfield.
1721 No change in functionality.
1723 * rendering/TextPainter.cpp:
1724 (WebCore::TextPainter::paintTextWithEmphasisIfNeeded):
1725 (WebCore::TextPainter::paintTextWithStyle):
1726 (WebCore::TextPainter::paintText):
1727 * rendering/TextPainter.h:
1729 2015-12-07 Gwang Yoon Hwang <yoon@igalia.com>
1731 [GTK] Clean up virtual functions in MediaPlayerPrivateGStreamerBase
1732 https://bugs.webkit.org/show_bug.cgi?id=151940
1734 Reviewed by Carlos Garcia Campos.
1736 - Using 'override' when appropriate
1737 - Explicitly marking methods as virtual when they are inherently virtual
1739 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1741 2015-12-07 Saam barati <sbarati@apple.com>
1743 Add op_watchdog opcode that is generated when VM has a watchdog
1744 https://bugs.webkit.org/show_bug.cgi?id=151954
1746 Reviewed by Mark Lam.
1748 No new tests because JSC already has tests for this.
1750 * bindings/js/WorkerScriptController.cpp:
1751 (WebCore::WorkerScriptController::scheduleExecutionTermination):
1752 (WebCore::WorkerScriptController::isTerminatingExecution):
1754 2015-12-07 Brian Burg <bburg@apple.com>
1756 Web Inspector: Uncaught Exception page should have better styles and handle more error cases
1757 https://bugs.webkit.org/show_bug.cgi?id=151923
1759 Reviewed by Timothy Hatcher.
1761 Add a check for InspectorFrontendAPI before calling it. This can fail
1762 easily if an uncaught exception stalls initial loading, or whenever
1763 the Inspector frontend is reloaded.
1765 * inspector/InspectorFrontendClientLocal.cpp:
1766 (WebCore::InspectorFrontendClientLocal::evaluateOnLoad):
1768 2015-12-07 Beth Dakin <bdakin@apple.com>
1770 Hook up request and show for typing candidates in WK1
1771 https://bugs.webkit.org/show_bug.cgi?id=151831
1773 <rdar://problem/23751214>
1775 Reviewed by Enrica Casucci.
1777 New SPI that is needed.
1778 * WebCore.xcodeproj/project.pbxproj:
1779 * platform/spi/mac/NSSpellCheckerSPI.h: Added.
1781 Request candidates for editable content whenever selection changes.
1782 * editing/Editor.cpp:
1783 (WebCore::Editor::respondToChangedSelection):
1785 Implement requestCandidatesForSelection on the EditorClient.
1786 * loader/EmptyClients.h:
1787 * page/EditorClient.h:
1788 (WebCore::EditorClient::requestCandidatesForSelection):
1790 2015-12-07 Brady Eidson <beidson@apple.com>
1792 Modern IDB: Fix "old versions" when upgrading databases.
1793 https://bugs.webkit.org/show_bug.cgi?id=151948
1795 Reviewed by Alex Christensen.
1797 No new tests (5 failing tests now pass, and updated results for a 6th test).
1799 This includes the old version on the IDBVersionChangeEvent, as well as the version the
1800 IDBDatabase is left with if the version change transaction is aborted.
1802 Primary mechanism of the fix is to include the original IDBDatabaseInfo along with
1803 IDBTransactionInfos that represent version change transactions.
1805 * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
1806 (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
1807 (WebCore::IDBClient::IDBDatabase::didAbortTransaction):
1809 * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
1810 (WebCore::IDBClient::IDBOpenDBRequest::onUpgradeNeeded):
1812 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1813 (WebCore::IDBClient::IDBTransaction::IDBTransaction): Deleted.
1814 (WebCore::IDBClient::IDBTransaction::finishAbortOrCommit): Deleted.
1815 * Modules/indexeddb/client/IDBTransactionImpl.h:
1816 (WebCore::IDBClient::IDBTransaction::info):
1817 (WebCore::IDBClient::IDBTransaction::originalDatabaseInfo):
1819 * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1820 (WebCore::IDBServer::UniqueIDBDatabase::startVersionChangeTransaction):
1821 (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
1822 * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
1823 (WebCore::IDBServer::UniqueIDBDatabaseConnection::createVersionChangeTransaction):
1825 * Modules/indexeddb/shared/IDBTransactionInfo.cpp:
1826 (WebCore::IDBTransactionInfo::versionChange):
1827 (WebCore::IDBTransactionInfo::IDBTransactionInfo):
1828 (WebCore::IDBTransactionInfo::isolatedCopy):
1829 * Modules/indexeddb/shared/IDBTransactionInfo.h:
1830 (WebCore::IDBTransactionInfo::originalDatabaseInfo):
1832 2015-12-07 Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au>
1834 Update Objective-C code generator to pass a reference to calling object for partial interfaces
1835 https://bugs.webkit.org/show_bug.cgi?id=151739
1837 Reviewed by Darin Adler.
1839 The fix updates the Objective-C code generator to pass a reference to calling object for partial interfaces.
1840 The change from pass by pointer to pass by reference was introduced in r192849.
1842 * bindings/scripts/CodeGeneratorObjC.pm:
1843 (GenerateImplementation):
1844 * bindings/scripts/test/ObjC/DOMTestInterface.mm:
1845 (-[DOMTestInterface supplementalStr1]):
1846 (-[DOMTestInterface supplementalStr2]):
1847 (-[DOMTestInterface setSupplementalStr2:]):
1848 (-[DOMTestInterface supplementalStr3]):
1849 (-[DOMTestInterface setSupplementalStr3:]):
1850 (-[DOMTestInterface supplementalNode]):
1851 (-[DOMTestInterface setSupplementalNode:]):
1852 (-[DOMTestInterface builtinAttribute]):
1853 (-[DOMTestInterface setBuiltinAttribute:]):
1854 (-[DOMTestInterface supplementalMethod1]):
1855 (-[DOMTestInterface supplementalMethod2:objArg:]):
1856 (-[DOMTestInterface supplementalMethod3]):
1857 (-[DOMTestInterface supplementalMethod4]):
1858 (-[DOMTestInterface builtinFunction]):
1860 2015-12-07 Chris Dumez <cdumez@apple.com>
1862 Crash in MemoryCache::pruneDeadResourcesToSize()
1863 https://bugs.webkit.org/show_bug.cgi?id=151833
1864 <rdar://problem/22392235>
1866 Reviewed by David Kilzer.
1868 MemoryCache::pruneDeadResourcesToSize() is iterating over m_allResources
1869 (which is a vector of LRUList). It first destroys decoded data for each
1870 resource in the LRUList. Then, if it does not suffice to reach the
1871 target size, and starts actually removing resources from the cache.
1873 The issue is that this code alters m_allResources (and its LRULists) as
1874 it is iterating over it. We tried to deal with this in various ways:
1875 1. Increment the iterator before removing the resource pointed by the
1877 2. Protect the next resource in the LRUList and abort early if it is no
1878 longer in the cache.
1880 This adds code complexity and apparently does not correctly handle all
1881 the edge cases as we still see crashes in this code. In particular, I
1882 suspect that 2. may not be sufficient if it is possible for the next
1883 resource to be moved to another LRUList (in which case, next->inCache()
1884 would still return true but the iterator would however become invalid).
1886 To make the code simpler and more robust, this patch copies the LRUList
1887 (and refs the CachedResources) before iterating over it. This is a lot
1888 safer and should hopefully fix the crashes we see in this function.
1890 No new tests, no reproduction case.
1892 * loader/cache/MemoryCache.cpp:
1893 (WebCore::MemoryCache::pruneDeadResourcesToSize):
1895 2015-12-07 Brady Eidson <beidson@apple.com>
1897 Modern IDB: Add some more custom exception messages, passing some more tests..
1898 https://bugs.webkit.org/show_bug.cgi?id=151912
1900 Reviewed by Andy Estes.
1902 No new tests (Covered by existing tests).
1904 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1905 (WebCore::IDBClient::IDBObjectStore::index):
1906 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1907 (WebCore::IDBClient::IDBTransaction::objectStore):
1909 2015-12-07 Gwang Yoon Hwang <yoon@igalia.com>
1911 [ThreadedCompositor] Add support for PlatformLayer.
1912 https://bugs.webkit.org/show_bug.cgi?id=143299
1914 Reviewed by Žan Doberšek.
1916 This patch implements TextureMapperPlatformLayerProxy and TextureMapperPlatformLayerBuffer to
1917 send a texture (actual texture or BitmapTexture) to the compositing thread directly.
1918 Platform layer renderers should implement TextureMapperPlatformLayerProxyProvider to establish
1919 a connection to the compositing thread. After the connection has been established, the renderer
1920 can render its contents to the TextureMapperPlatformLayerBuffer and pass it to the compositing thread
1921 via TextureMapperPlatformLayer proxy.
1922 The buffer can be an unmanaged texture (a.k.a. platform texture) or BitmapTexture.
1923 For the unmanaged texture, the renderer should manage its life cycle itself. For the BitmapTexture,
1924 it will be managed by TextureMapperPlatformLayerProxy. In that case, used (swapped) buffer will be
1925 recycled because the renderer will use same size and format until it changes its size.
1927 No new tests needed.
1929 * PlatformGTK.cmake:
1930 Adds TextureMapperPlatformLayerBuffer and TextureMapperPlaytformLayerProxy.
1932 * platform/graphics/GraphicsContext3DPrivate.cpp:
1933 * platform/graphics/GraphicsContext3DPrivate.h:
1934 * platform/graphics/cairo/ImageBufferCairo.cpp:
1935 * platform/graphics/cairo/ImageBufferDataCairo.h:
1936 Adds mock implementation.
1938 * platform/graphics/PlatformLayer.h:
1939 Adds TextureMapperPlatformLayerProxyProvider as a PlatformLayer for the Threaded Compositor
1941 * platform/graphics/texmap/BitmapTextureGL.h:
1942 (WebCore::BitmapTextureGL::internalFormat): Adds a getter to check the
1943 internal format of texture to check reusability.
1945 * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
1946 * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
1947 * platform/graphics/texmap/TextureMapperLayer.cpp:
1948 * platform/graphics/texmap/TextureMapperLayer.h:
1949 Exclude GraphicsLayerTextureMapper from build when we are using Coordinated Graphics.
1951 * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp: Added.
1952 * platform/graphics/texmap/TextureMapperPlatformLayerBuffer.h: Added.
1953 * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp: Added.
1954 * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h: Added.
1956 * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
1957 (WebCore::GraphicsLayer::create):
1958 Because we removed GraphicsLayerTextureMapper from build, we need to add own factory function.
1960 (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
1961 (WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):
1962 (WebCore::CoordinatedGraphicsLayer::platformLayerWillBeDestroyed):
1963 (WebCore::CoordinatedGraphicsLayer::setPlatformLayerNeedsDisplay):
1964 Implements sync operations for TextureMapperPlatformLayerProxy
1966 2015-12-07 Gwang Yoon Hwang <yoon@igalia.com>
1968 Fix GTK+ build with GStreamer GL
1969 https://bugs.webkit.org/show_bug.cgi?id=151939
1971 Reviewed by Žan Doberšek.
1973 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1974 (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
1975 (WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
1976 (WebCore::MediaPlayerPrivateGStreamerBase::drawCallback):
1977 * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1979 2015-12-06 Simon Fraser <simon.fraser@apple.com>
1981 Show more information about SVG renderers in showLayerTree() output
1982 https://bugs.webkit.org/show_bug.cgi?id=151930
1984 Reviewed by Zalan Bujtas.
1986 In showLayerTree() output, for SVG renderers show:
1987 - visual and layout overflow, for boxes
1988 - frame rect, for boxes
1992 * rendering/RenderLayer.cpp:
1993 (WebCore::showLayerTree):
1994 * rendering/RenderTreeAsText.cpp:
1995 (WebCore::RenderTreeAsText::writeRenderObject):
1996 (WebCore::writeDebugInfo): New function to share dumping with svg output.
1998 * rendering/RenderTreeAsText.h:
1999 * rendering/svg/SVGRenderTreeAsText.cpp:
2000 (WebCore::writePositionAndStyle): Show the frameRect for boxes (e.g. RenderSVGRoot).
2001 Much more useful that showing the clippedOverflowRect.
2002 (WebCore::writeStandardPrefix):
2003 (WebCore::writeChildren):
2004 (WebCore::writeSVGResourceContainer):
2005 (WebCore::writeSVGContainer):
2007 (WebCore::writeSVGText):
2008 (WebCore::writeSVGInlineText):
2009 (WebCore::writeSVGImage):
2010 (WebCore::writeSVGGradientStop):
2011 (WebCore::writeResources):
2012 (WebCore::operator<<): Deleted.
2013 * rendering/svg/SVGRenderTreeAsText.h:
2015 2015-12-06 Simon Fraser <simon.fraser@apple.com>
2017 Clipping along compositing borders in svg-edit
2018 https://bugs.webkit.org/show_bug.cgi?id=151791
2020 Reviewed by Zalan Bujtas.
2022 RenderSVGRoot::layout() failed to clear overflow before recomputing
2023 visual overflow, which could cause it to get stuck with stale overflow.
2024 This would cause underpainting if its size went from small to large.
2026 Test: svg/overflow/visual-overflow-change.html
2028 * rendering/svg/RenderSVGRoot.cpp:
2029 (WebCore::RenderSVGRoot::layout):
2031 2015-12-06 Simon Fraser <simon.fraser@apple.com>
2033 REGRESSION (r187121): Can't get to the main content of the page at https://theintercept.com/drone-papers/
2034 https://bugs.webkit.org/show_bug.cgi?id=151849
2035 rdar://problem/23132828
2037 Reviewed by Zalan Bujtas.
2039 This page uses a fill-forwards animation where the last keyframe has height: auto.
2040 After r187121, we tried to blend the height Length value from the last keyframe to the
2041 first keyframe with progress=0 (which should pick up the 'auto' from the last keyframe).
2043 However, Length::blend() just considered both 0 and 'auto' to be zero, and returned
2046 So fix Length::blend() to return the "from" length if progress is zero.
2048 Test: animations/fill-forwards-auto-height.html
2050 * page/animation/CSSPropertyAnimation.cpp:
2051 (WebCore::blendFunc): Length::blend takes a double, so don't narrow to float.
2052 * page/animation/KeyframeAnimation.cpp:
2053 (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty): Declare two variables
2055 * platform/Length.h:
2056 (WebCore::Length::blend):
2058 2015-12-06 Simon Fraser <simon.fraser@apple.com>
2060 Give SVGTransformList some inline vector capacity
2061 https://bugs.webkit.org/show_bug.cgi?id=151644
2063 Reviewed by Andreas Kling.
2065 Giving SVGTransformList inline capacity of one drops time under SVGTransformList::parse() by
2066 about 1% on http://animateplus.com/demos/stress-test/
2068 * svg/SVGTransformList.h:
2070 2015-12-06 Zalan Bujtas <zalan@apple.com>
2072 Addressing post-review comments on r193374.
2074 Reviewed by Antti Koivisto.
2076 * rendering/SimpleLineLayout.cpp:
2077 (WebCore::SimpleLineLayout::canUseForText):
2078 (WebCore::SimpleLineLayout::canUseForFontAndText):
2079 (WebCore::SimpleLineLayout::canUseForStyle):
2080 (WebCore::SimpleLineLayout::canUseForWithReason):
2081 (WebCore::SimpleLineLayout::canUseFor):
2082 (WebCore::SimpleLineLayout::printSimpleLineLayoutBlockList):
2083 (WebCore::SimpleLineLayout::printSimpleLineLayoutCoverage):
2085 2015-12-04 Myles C. Maxfield <mmaxfield@apple.com>
2087 Remove CORETEXT_WEB_FONTS
2088 https://bugs.webkit.org/show_bug.cgi?id=151891
2090 Reviewed by Simon Fraser.
2092 The only platform where this was turned off (Mavericks) is no longer supported.
2094 No new tests because there is no behavior difference.
2096 * platform/graphics/cocoa/FontCocoa.mm:
2097 (WebCore::Font::platformCreateScaledFont): Deleted.
2098 * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
2099 (WebCore::FontPlatformData::registeredFont):
2100 (WebCore::FontPlatformData::ctFont):
2101 * platform/graphics/mac/FontCustomPlatformData.cpp:
2102 (WebCore::FontCustomPlatformData::fontPlatformData): Deleted.
2103 (WebCore::createFontCustomPlatformData): Deleted.
2104 * platform/graphics/mac/FontCustomPlatformData.h:
2105 (WebCore::FontCustomPlatformData::FontCustomPlatformData): Deleted.
2106 * platform/text/TextFlags.h:
2108 2015-12-04 Zalan Bujtas <zalan@apple.com>
2110 Garbage in page tiles when document is too long.
2111 https://bugs.webkit.org/show_bug.cgi?id=151906
2112 rdar://problem/23695858
2114 Reviewed by Simon Fraser.
2116 This patch partially fixes the broken concept(webkit.org/b/151908) of having a nearlyMax/2 sized rectangle to define infiniteness.
2117 (see LayoutRect::infiniteRect() and ClipRect::isInfinite())
2119 Covered by existing test.
2121 * rendering/ClipRect.h: Branch for infinite clipping.
2122 (WebCore::ClipRect::intersect):
2123 (WebCore::ClipRect::intersects):
2124 * rendering/RenderLayer.cpp:
2125 (WebCore::RenderLayer::clipToRect): Do not clip when clipping is infinite.
2126 (WebCore::RenderLayer::restoreClip):
2127 (WebCore::RenderLayer::calculateClipRects):
2129 2015-12-04 Brady Eidson <beidson@apple.com>
2131 Modern IDB: Add some more custom exception messages, passing some more tests.
2132 https://bugs.webkit.org/show_bug.cgi?id=151898
2134 Reviewed by Alex Christensen.
2136 No new tests (Some failing tests now pass).
2138 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2139 (WebCore::IDBClient::IDBTransaction::objectStore):
2141 2015-12-04 Brent Fulgham <bfulgham@apple.com>
2143 Place an upper bound on canvas pixel count
2144 https://bugs.webkit.org/show_bug.cgi?id=151825
2145 <rdar://problem/23324916>
2147 Reviewed by Simon Fraser.
2149 Malformed JavaScript can attempt to create lots of canvas contexts. Limit the amount of memory
2150 we will use for this purpose to some percentage of system RAM.
2152 * html/HTMLCanvasElement.cpp:
2153 (WebCore::removeFromActivePixelMemory): Added helper function
2154 (WebCore::HTMLCanvasElement::~HTMLCanvasElement): Call new 'releaseImageBufferAndContext' method
2155 to ensure ImageBuffer and graphics context state are properly cleaned up.
2156 (WebCore::maxActivePixels): Use one quarter of the system RAM, or 1 GB (whichever is more) as
2157 an upper bound on active pixel memory.
2158 (WebCore::HTMLCanvasElement::getContext): If we are attempting to create a context that will cause
2159 us to exceed the allowed active pixel count, fail.
2160 (WebCore::HTMLCanvasElement::releaseImageBufferAndContext): Added helper function
2161 (WebCore::HTMLCanvasElement::setSurfaceSize): Use the new 'releaseImageBufferAndContext' method
2162 to handle active pixel memory counts.
2163 (WebCore::HTMLCanvasElement::createImageBuffer): Refuse to create a backing buffer if it will
2164 exceed our available pixel memory.
2166 2015-12-04 Brady Eidson <beidson@apple.com>
2168 Modern IDB: Add some more custom exception messages, passing some more tests.
2169 https://bugs.webkit.org/show_bug.cgi?id=151895
2171 Reviewed by Alex Christensen.
2173 No new tests (Some failing tests now pass).
2175 * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2176 (WebCore::IDBClient::IDBDatabase::transaction):
2178 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2179 (WebCore::IDBClient::IDBObjectStore::deleteIndex):
2181 2015-12-04 Jonathan Davis <jond@apple.com>
2183 Update feature status for up-to-date status information.
2184 https://bugs.webkit.org/show_bug.cgi?id=151821
2186 Reviewed by Timothy Hatcher.
2190 2015-12-04 Brady Eidson <beidson@apple.com>
2192 Modern IDB: Flip test expectations around so we only list failures.
2193 https://bugs.webkit.org/show_bug.cgi?id=151880
2195 Reviewed by Alex Christensen.
2197 No new tests (Covered by all existing tests).
2199 * Modules/indexeddb/client/IDBRequestImpl.cpp:
2200 (WebCore::IDBClient::IDBRequest::stop):
2201 (WebCore::IDBClient::IDBRequest::enqueueEvent):
2202 (WebCore::IDBClient::IDBRequest::dispatchEvent):
2203 * Modules/indexeddb/client/IDBRequestImpl.h:
2205 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2206 (WebCore::IDBClient::IDBTransaction::abortDueToFailedRequest):
2207 (WebCore::IDBClient::IDBTransaction::hasPendingActivity):
2208 (WebCore::IDBClient::IDBTransaction::stop):
2209 (WebCore::IDBClient::IDBTransaction::enqueueEvent):
2210 (WebCore::IDBClient::IDBTransaction::dispatchEvent):
2211 * Modules/indexeddb/client/IDBTransactionImpl.h:
2213 * bindings/js/IDBBindingUtilities.cpp:
2214 (WebCore::idbKeyToScriptValue): Protection against a ScriptExecutionContext that no longer has an ExecState.
2215 A full reworking on the binding utilities to prevent this through is covered by b/151890
2217 2015-12-04 Myles C. Maxfield <mmaxfield@apple.com>
2219 [Cocoa] Some fonts cause CTFontCopyAvailableTables() to return nullptr
2220 https://bugs.webkit.org/show_bug.cgi?id=151884
2221 <rdar://problem/23752253>
2223 Reviewed by Brian Burg.
2227 * platform/graphics/opentype/OpenTypeCG.cpp:
2228 (WebCore::OpenType::fontHasMathTable):
2230 2015-12-04 Jer Noble <jer.noble@apple.com>
2232 Unreviewed build-fix; Add new parameter to overloaded createSession() method in MediaPlayerPrivateAVFoundationCF.
2234 * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
2235 (WebCore::CDMSessionAVFoundationCF::CDMSessionAVFoundationCF):
2236 * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h:
2237 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
2238 (WebCore::MediaPlayerPrivateAVFoundationCF::createSession):
2239 * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
2241 2015-12-01 Jer Noble <jer.noble@apple.com>
2243 Adopt AVContentKeySession
2244 https://bugs.webkit.org/show_bug.cgi?id=151221
2246 Reviewed by Eric Carlson.
2248 Adopt a new API for managing key state, AVContentKeySession. Because this necessitates a change
2249 in both the initialization data returned by the needkey event, and passed into the createSession()
2250 method, bump the protocol version number (to 3), and keep supporting the old key management API
2253 To do so, move most of the implementation of CDMPrivateMediaSourceAVFObjC into a new subclass,
2254 CDMSessionAVStreamSession, and add a new subclass, CDMSessionAVContentKeySession, to support the
2257 * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h:
2258 (WebCore::CDMPrivateMediaSourceAVFObjC::CDMPrivateMediaSourceAVFObjC): Moved to implementation file.
2259 * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
2260 (WebCore::validKeySystemRE): Support "com.apple.fps.3_x".
2261 (WebCore::CDMPrivateMediaSourceAVFObjC::~CDMPrivateMediaSourceAVFObjC): Invalidate all outstanding sessions.
2262 (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystem): Only support "com.apple.fps.3_x" if the AVContentKeySession class is available.
2263 (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Create an instance of CDMSessionAVContentKeySession if "com.apple.fps.3_x" is specified and AVContentKeySession is available.
2264 (WebCore::CDMPrivateMediaSourceAVFObjC::invalidateSession): Remove session from the list of outstanding sessions.
2265 (WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Deleted.
2266 * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h.
2267 (WebCore::CDMSessionAVContentKeySession::hasContentKeySession): Simple accessor.
2268 (WebCore::toCDMSessionAVContentKeySession): Safe casting.
2269 * platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm: Added.
2270 (-[CDMSessionAVContentKeySessionDelegate initWithParent:]): Simple constructor.
2271 (-[CDMSessionAVContentKeySessionDelegate invalidate]): Remove reference to parent.
2272 (-[CDMSessionAVContentKeySessionDelegate contentKeySession:willProvideKeyRequestInitializationDataForTrackID:]): Pass to parent.
2273 (-[CDMSessionAVContentKeySessionDelegate contentKeySession:didProvideKeyRequestInitializationData:requestHandling:]): Ditto.
2274 (-[CDMSessionAVContentKeySessionDelegate contentKeySessionContentProtectionSessionIdentifierDidChange:]): Ditto.
2275 (WebCore::CDMSessionAVContentKeySession::CDMSessionAVContentKeySession): Create the delegate.
2276 (WebCore::CDMSessionAVContentKeySession::~CDMSessionAVContentKeySession): Invalidate the delegate and remove all parsers.
2277 (WebCore::CDMSessionAVContentKeySession::isAvailable): Return true if AVContentKeySession class is available.
2278 (WebCore::CDMSessionAVContentKeySession::generateKeyRequest): Support "keyrelease" message, setting of the certificate, and creating key request object.
2279 (WebCore::CDMSessionAVContentKeySession::releaseKeys): Retrieve keys from storage location.
2280 (WebCore::isEqual): Compares a Uint8Array to a char*.
2281 (WebCore::CDMSessionAVContentKeySession::update): Support "acknowledged" message, "renew" message, and key addition.
2282 (WebCore::CDMSessionAVContentKeySession::addParser): Add the parser to the AVContentKeySession.
2283 (WebCore::CDMSessionAVContentKeySession::removeParser): Remove parser from same.
2284 (WebCore::CDMSessionAVContentKeySession::generateKeyReleaseMessage): Retrieve key release message from AVContentKeySession.
2285 (WebCore::CDMSessionAVContentKeySession::didProvideContentKeyRequest): Simple setter.
2286 (WebCore::CDMSessionAVContentKeySession::contentKeySession): Lazily create the AVContentKeySession.
2287 * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
2288 * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
2289 (WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
2290 * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.h: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h.
2291 (WebCore::toCDMSessionAVStreamSession):
2292 * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm: Copied from Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm.
2293 (-[CDMSessionAVStreamSessionObserver initWithParent:]): Moved from CDMSessionMediaSourceAVFObjcObserver.
2294 (-[CDMSessionAVStreamSessionObserver contentProtectionSessionIdentifierChanged:]): Ditto.
2295 (WebCore::CDMSessionAVStreamSession::CDMSessionAVStreamSession): Ditto.
2296 (WebCore::CDMSessionAVStreamSession::~CDMSessionAVStreamSession): Ditto.
2297 (WebCore::CDMSessionAVStreamSession::generateKeyRequest): Ditto.
2298 (WebCore::CDMSessionAVStreamSession::releaseKeys): Ditto.
2299 (WebCore::isEqual): Ditto.
2300 (WebCore::CDMSessionAVStreamSession::update): Ditto.
2301 (WebCore::CDMSessionAVStreamSession::setStreamSession): Ditto.
2302 (WebCore::CDMSessionAVStreamSession::addParser): Ditto.
2303 (WebCore::CDMSessionAVStreamSession::removeParser): Ditto.
2304 (WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage): Ditto.
2305 * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
2306 (WebCore::CDMSessionMediaSourceAVFObjC::invalidateCDM): Clear the m_cdm.
2307 (WebCore::toCDMSessionMediaSourceAVFObjC):
2308 * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
2309 (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
2310 (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Instruct our CDM to invalidate their references to us.
2311 (WebCore::CDMSessionMediaSourceAVFObjC::addSourceBuffer): Call addParser().
2312 (WebCore::CDMSessionMediaSourceAVFObjC::removeSourceBuffer): Call removeParser().
2313 (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError): Deleted.
2314 (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError): Deleted.
2316 To give us a chance to create a CDMPrivate before we continue decoding media data, "block" further decoding
2317 on the background thread by creating a semaphore and passing it to the main thread, to be triggered when
2318 a CDM is created and attached to this source buffer.
2320 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
2321 * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
2322 (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
2323 (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
2324 (WebCore::SourceBufferPrivateAVFObjC::willProvideContentKeyRequestInitializationDataForTrackID):
2325 (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
2326 (WebCore::SourceBufferPrivateAVFObjC::setCDMSession):
2327 (-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]): Deleted.
2328 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
2330 Drive-by fix: Only throw an error from keyRequestTimerFired() if the underlying call to
2331 generateKeyRequest() returned an error, rather than just failed to create a message.
2333 * Modules/encryptedmedia/MediaKeySession.cpp:
2334 (WebCore::MediaKeySession::keyRequestTimerFired):
2336 Drive-by fix: Pass the CDMSessionClient into CDM::createSession() so that it is immediately available
2337 in the CDMSessionPrivate constructor, rather than setting the client immediately after construction.
2339 * Modules/encryptedmedia/CDM.cpp:
2340 (WebCore::CDM::createSession):
2341 * Modules/encryptedmedia/CDM.h:
2342 * Modules/encryptedmedia/CDMPrivate.h:
2343 * Modules/encryptedmedia/CDMPrivateClearKey.cpp:
2344 (WebCore::CDMPrivateClearKey::createSession):
2345 * Modules/encryptedmedia/CDMPrivateClearKey.h:
2346 * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp:
2347 (WebCore::CDMPrivateMediaPlayer::createSession):
2348 * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
2349 * Modules/encryptedmedia/CDMSessionClearKey.cpp:
2350 (WebCore::CDMSessionClearKey::CDMSessionClearKey):
2351 * Modules/encryptedmedia/CDMSessionClearKey.h:
2352 * Modules/encryptedmedia/MediaKeySession.cpp:
2353 (WebCore::MediaKeySession::MediaKeySession):
2354 * platform/graphics/CDMSession.h:
2355 * platform/graphics/MediaPlayer.cpp:
2356 (WebCore::MediaPlayer::createSession):
2357 * platform/graphics/MediaPlayer.h:
2358 * platform/graphics/MediaPlayerPrivate.h:
2359 (WebCore::MediaPlayerPrivateInterface::createSession):
2360 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
2361 * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
2362 (WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
2363 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
2364 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::cdmSession):
2365 * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
2366 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession):
2367 (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::keyNeeded): Deleted.
2368 * testing/MockCDM.cpp:
2369 (WebCore::MockCDM::createSession):
2370 (WebCore::MockCDMSession::MockCDMSession):
2371 * testing/MockCDM.h:
2373 Add new files to the project:
2375 * WebCore.xcodeproj/project.pbxproj:
2378 2015-12-04 Brady Eidson <beidson@apple.com>
2380 Modern IDB: storage/indexeddb/cursor-update.html fails.
2381 https://bugs.webkit.org/show_bug.cgi?id=151879
2383 Reviewed by Oliver Hunt.
2385 No new tests (At least one failing test now passes).
2387 * Modules/indexeddb/client/IDBRequestImpl.cpp:
2388 (WebCore::IDBClient::IDBRequest::IDBRequest):
2390 2015-12-04 Brady Eidson <beidson@apple.com>
2392 Modern IDB: storage/indexeddb/version-change-exclusive.html fails
2393 https://bugs.webkit.org/show_bug.cgi?id=151870
2395 Reviewed by Alex Christensen.
2397 Test: storage/indexeddb/modern/double-open.html
2398 storage/indexeddb/version-change-exclusive.html
2400 * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
2401 (WebCore::IDBServer::UniqueIDBDatabase::openDatabaseConnection): Delay handling open operations
2402 while the first is still in progress.
2403 (WebCore::IDBServer::UniqueIDBDatabase::didOpenBackingStore):
2404 * Modules/indexeddb/server/UniqueIDBDatabase.h:
2406 2015-12-04 Brady Eidson <beidson@apple.com>
2408 Modern IDB: storage/indexeddb/exceptions.html fails.
2409 https://bugs.webkit.org/show_bug.cgi?id=151732
2411 Reviewed by Alex Christensen.
2413 No new tests (At least one failing test now passes).
2415 - Lots of customized exception messages for IDB code to match the text expectations.
2416 - Updates to the test expectations where we can't/won't match them exactly.
2417 - And a couple of little required behavior changes exposed by the test
2419 * Modules/indexeddb/IDBCursor.h:
2420 * Modules/indexeddb/IDBCursor.idl:
2421 * Modules/indexeddb/IDBDatabase.h:
2422 * Modules/indexeddb/IDBDatabase.idl:
2423 * Modules/indexeddb/IDBDatabaseException.cpp:
2424 (WebCore::IDBDatabaseException::initializeDescription):
2425 * Modules/indexeddb/IDBFactory.h:
2426 * Modules/indexeddb/IDBFactory.idl:
2427 * Modules/indexeddb/IDBIndex.h:
2428 * Modules/indexeddb/IDBIndex.idl:
2429 * Modules/indexeddb/IDBObjectStore.h:
2430 * Modules/indexeddb/IDBObjectStore.idl:
2431 * Modules/indexeddb/IDBRequest.h:
2432 * Modules/indexeddb/IDBRequest.idl:
2433 * Modules/indexeddb/IDBTransaction.h:
2434 * Modules/indexeddb/IDBTransaction.idl:
2436 * Modules/indexeddb/client/IDBCursorImpl.cpp:
2437 (WebCore::IDBClient::IDBCursor::update):
2438 (WebCore::IDBClient::IDBCursor::advance):
2439 (WebCore::IDBClient::IDBCursor::continueFunction):
2440 (WebCore::IDBClient::IDBCursor::deleteFunction):
2441 * Modules/indexeddb/client/IDBCursorImpl.h:
2443 * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
2444 (WebCore::IDBClient::IDBDatabase::createObjectStore):
2445 (WebCore::IDBClient::IDBDatabase::transaction):
2446 (WebCore::IDBClient::IDBDatabase::deleteObjectStore):
2447 * Modules/indexeddb/client/IDBDatabaseImpl.h:
2449 * Modules/indexeddb/client/IDBFactoryImpl.cpp:
2450 (WebCore::IDBClient::IDBFactory::cmp):
2451 * Modules/indexeddb/client/IDBFactoryImpl.h:
2453 * Modules/indexeddb/client/IDBIndexImpl.cpp:
2454 (WebCore::IDBClient::IDBIndex::openCursor):
2455 (WebCore::IDBClient::IDBIndex::count):
2456 (WebCore::IDBClient::IDBIndex::doCount):
2457 (WebCore::IDBClient::IDBIndex::openKeyCursor):
2458 (WebCore::IDBClient::IDBIndex::get):
2459 (WebCore::IDBClient::IDBIndex::doGet):
2460 (WebCore::IDBClient::IDBIndex::getKey):
2461 (WebCore::IDBClient::IDBIndex::doGetKey):
2462 * Modules/indexeddb/client/IDBIndexImpl.h:
2464 * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
2465 (WebCore::IDBClient::IDBObjectStore::openCursor):
2466 (WebCore::IDBClient::IDBObjectStore::get):
2467 (WebCore::IDBClient::IDBObjectStore::add):
2468 (WebCore::IDBClient::IDBObjectStore::put):
2469 (WebCore::IDBClient::IDBObjectStore::putForCursorUpdate):
2470 (WebCore::IDBClient::IDBObjectStore::putOrAdd):
2471 (WebCore::IDBClient::IDBObjectStore::deleteFunction):
2472 (WebCore::IDBClient::IDBObjectStore::clear):
2473 (WebCore::IDBClient::IDBObjectStore::createIndex):
2474 (WebCore::IDBClient::IDBObjectStore::index):
2475 (WebCore::IDBClient::IDBObjectStore::deleteIndex):
2476 (WebCore::IDBClient::IDBObjectStore::count):
2477 (WebCore::IDBClient::IDBObjectStore::doCount):
2478 * Modules/indexeddb/client/IDBObjectStoreImpl.h:
2480 * Modules/indexeddb/client/IDBRequestImpl.cpp:
2481 (WebCore::IDBClient::IDBRequest::result):
2482 (WebCore::IDBClient::IDBRequest::error):
2483 * Modules/indexeddb/client/IDBRequestImpl.h:
2485 * Modules/indexeddb/client/IDBTransactionImpl.cpp:
2486 (WebCore::IDBClient::IDBTransaction::objectStore):
2487 (WebCore::IDBClient::IDBTransaction::abortDueToFailedRequest):
2488 (WebCore::IDBClient::IDBTransaction::abort):
2489 * Modules/indexeddb/client/IDBTransactionImpl.h:
2491 * Modules/indexeddb/legacy/LegacyCursor.cpp:
2492 (WebCore::LegacyCursor::update):
2493 (WebCore::LegacyCursor::continueFunction):
2494 (WebCore::LegacyCursor::deleteFunction):
2495 * Modules/indexeddb/legacy/LegacyCursor.h:
2497 * Modules/indexeddb/legacy/LegacyDatabase.cpp:
2498 (WebCore::LegacyDatabase::createObjectStore):
2499 (WebCore::LegacyDatabase::deleteObjectStore):
2500 (WebCore::LegacyDatabase::transaction):
2501 (WebCore::LegacyDatabase::forceClose):
2502 * Modules/indexeddb/legacy/LegacyDatabase.h:
2504 * Modules/indexeddb/legacy/LegacyFactory.cpp:
2505 (WebCore::LegacyFactory::cmp):
2506 * Modules/indexeddb/legacy/LegacyFactory.h:
2508 * Modules/indexeddb/legacy/LegacyIndex.cpp:
2509 (WebCore::LegacyIndex::openCursor):
2510 (WebCore::LegacyIndex::count):
2511 (WebCore::LegacyIndex::openKeyCursor):
2512 (WebCore::LegacyIndex::get):
2513 (WebCore::LegacyIndex::getKey):
2514 * Modules/indexeddb/legacy/LegacyIndex.h:
2516 * Modules/indexeddb/legacy/LegacyObjectStore.cpp:
2517 (WebCore::LegacyObjectStore::get):
2518 (WebCore::LegacyObjectStore::add):
2519 (WebCore::LegacyObjectStore::put):
2520 (WebCore::LegacyObjectStore::deleteFunction):
2521 (WebCore::LegacyObjectStore::clear):
2522 (WebCore::LegacyObjectStore::createIndex):
2523 (WebCore::LegacyObjectStore::index):
2524 (WebCore::LegacyObjectStore::deleteIndex):
2525 (WebCore::LegacyObjectStore::openCursor):
2526 (WebCore::LegacyObjectStore::count):
2527 * Modules/indexeddb/legacy/LegacyObjectStore.h:
2528 (WebCore::LegacyObjectStore::createIndex):
2529 (WebCore::LegacyObjectStore::count):
2531 * Modules/indexeddb/legacy/LegacyRequest.cpp:
2532 (WebCore::LegacyRequest::result):
2533 (WebCore::LegacyRequest::error):
2534 (WebCore::LegacyRequest::dispatchEvent):
2535 (WebCore::LegacyRequest::uncaughtExceptionInEventHandler):
2536 * Modules/indexeddb/legacy/LegacyRequest.h:
2538 * Modules/indexeddb/legacy/LegacyTransaction.cpp:
2539 (WebCore::LegacyTransaction::objectStore):
2540 (WebCore::LegacyTransaction::abort):
2541 (WebCore::LegacyTransaction::stop):
2542 * Modules/indexeddb/legacy/LegacyTransaction.h:
2544 * bindings/js/JSDOMBinding.cpp:
2545 (WebCore::createDOMException): For IDBDatabase exceptions, use createWithDescriptionAsMessage
2547 * bindings/js/JSIDBDatabaseCustom.cpp:
2548 (WebCore::JSIDBDatabase::createObjectStore):
2549 (WebCore::JSIDBDatabase::transaction):
2551 * bindings/js/JSIDBObjectStoreCustom.cpp:
2552 (WebCore::putOrAdd):
2553 (WebCore::JSIDBObjectStore::createIndex):
2555 * dom/DOMCoreException.h:
2556 (WebCore::DOMCoreException::createWithDescriptionAsMessage): Create an exception whose message
2558 (WebCore::DOMCoreException::DOMCoreException):
2560 * dom/ExceptionBase.cpp:
2561 (WebCore::ExceptionBase::ExceptionBase): Add a flag to determine where the message comes from
2562 * dom/ExceptionBase.h:
2564 * dom/make_dom_exceptions.pl:
2565 (generateHeader): Add an IDBDatabaseException type
2567 * inspector/InspectorIndexedDBAgent.cpp:
2569 2015-12-04 Joseph Pecoraro <pecoraro@apple.com>
2571 Web Inspector: Remove untested and unused Worker inspection
2572 https://bugs.webkit.org/show_bug.cgi?id=151848
2574 Reviewed by Brian Burg.
2577 * WebCore.vcxproj/WebCore.vcxproj:
2578 * WebCore.vcxproj/WebCore.vcxproj.filters:
2579 * WebCore.xcodeproj/project.pbxproj:
2580 * bindings/js/JSBindingsAllInOne.cpp:
2581 * bindings/js/WorkerScriptController.cpp:
2582 * bindings/js/WorkerScriptDebugServer.cpp: Removed.
2583 * bindings/js/WorkerScriptDebugServer.h: Removed.
2584 * inspector/InspectorAllInOne.cpp:
2585 * inspector/InspectorConsoleInstrumentation.h:
2586 (WebCore::InspectorInstrumentation::addMessageToConsole):
2587 * inspector/InspectorController.cpp:
2588 (WebCore::InspectorController::InspectorController): Deleted.
2589 * inspector/InspectorInstrumentation.cpp:
2590 (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStartImpl): Deleted.
2591 (WebCore::InspectorInstrumentation::didStartWorkerGlobalScopeImpl): Deleted.
2592 (WebCore::InspectorInstrumentation::willEvaluateWorkerScript): Deleted.
2593 (WebCore::InspectorInstrumentation::workerGlobalScopeTerminatedImpl): Deleted.
2594 (WebCore::InspectorInstrumentation::instrumentingAgentsForWorkerGlobalScope): Deleted.
2595 (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext): Deleted.
2596 * inspector/InspectorInstrumentation.h:
2597 (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
2598 (WebCore::InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart): Deleted.
2599 (WebCore::InspectorInstrumentation::didStartWorkerGlobalScope): Deleted.
2600 (WebCore::InspectorInstrumentation::workerGlobalScopeTerminated): Deleted.
2601 * inspector/InspectorTimelineAgent.h:
2602 * inspector/InspectorWebAgentBase.h:
2603 (WebCore::WorkerAgentContext::WorkerAgentContext): Deleted.
2604 * inspector/InspectorWorkerAgent.cpp: Removed.
2605 * inspector/InspectorWorkerAgent.h: Removed.
2606 * inspector/InspectorWorkerResource.h: Removed.
2607 * inspector/InstrumentingAgents.cpp:
2608 (WebCore::InstrumentingAgents::reset): Deleted.
2609 * inspector/InstrumentingAgents.h:
2610 (WebCore::InstrumentingAgents::workerRuntimeAgent): Deleted.
2611 (WebCore::InstrumentingAgents::setWorkerRuntimeAgent): Deleted.
2612 (WebCore::InstrumentingAgents::inspectorWorkerAgent): Deleted.
2613 (WebCore::InstrumentingAgents::setInspectorWorkerAgent): Deleted.
2614 * inspector/PageConsoleAgent.h:
2615 * inspector/PageScriptDebugServer.cpp:
2616 (WebCore::PageScriptDebugServer::PageScriptDebugServer):
2617 * inspector/WorkerConsoleAgent.cpp: Removed.
2618 * inspector/WorkerConsoleAgent.h: Removed.
2619 * inspector/WorkerDebuggerAgent.cpp: Removed.
2620 * inspector/WorkerDebuggerAgent.h: Removed.
2621 * inspector/WorkerInspectorController.cpp: Removed.
2622 * inspector/WorkerInspectorController.h: Removed.
2623 * inspector/WorkerRuntimeAgent.cpp: Removed.
2624 * inspector/WorkerRuntimeAgent.h: Removed.
2625 * workers/Worker.cpp:
2626 (WebCore::Worker::notifyFinished): Deleted.
2627 * workers/WorkerGlobalScope.cpp:
2628 (WebCore::WorkerGlobalScope::WorkerGlobalScope): Deleted.
2629 (WebCore::WorkerGlobalScope::~WorkerGlobalScope): Deleted.
2630 * workers/WorkerGlobalScope.h:
2631 (WebCore::WorkerGlobalScope::workerInspectorController): Deleted.
2632 * workers/WorkerGlobalScopeProxy.h:
2633 (WebCore::WorkerGlobalScopeProxy::PageInspector::~PageInspector): Deleted.
2634 (WebCore::WorkerGlobalScopeProxy::connectToInspector): Deleted.
2635 (WebCore::WorkerGlobalScopeProxy::disconnectFromInspector): Deleted.
2636 (WebCore::WorkerGlobalScopeProxy::sendMessageToInspector): Deleted.
2637 * workers/WorkerMessagingProxy.cpp:
2638 (WebCore::WorkerMessagingProxy::WorkerMessagingProxy): Deleted.
2639 (WebCore::WorkerMessagingProxy::startWorkerGlobalScope): Deleted.
2640 (WebCore::WorkerMessagingProxy::connectToInspector): Deleted.
2641 (WebCore::WorkerMessagingProxy::disconnectFromInspector): Deleted.
2642 (WebCore::WorkerMessagingProxy::sendMessageToInspector): Deleted.
2643 (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyedInternal): Deleted.
2644 (WebCore::WorkerMessagingProxy::terminateWorkerGlobalScope): Deleted.
2645 (WebCore::WorkerMessagingProxy::postMessageToPageInspector): Deleted.
2646 * workers/WorkerMessagingProxy.h:
2647 * workers/WorkerReportingProxy.h:
2648 * workers/WorkerThread.cpp:
2649 (WebCore::WorkerThread::workerThread): Deleted.
2651 2015-12-03 Sergio Villar Senin <svillar@igalia.com>
2653 [css-grid] Fix height computation of grid items with borders inside fr tracks
2654 https://bugs.webkit.org/show_bug.cgi?id=151798
2656 Reviewed by Zalan Bujtas.
2658 Since r192154 we run a second pass of the track sizing
2659 algorithm whenever the height of the grid is indefinite in
2660 order to properly compute row sizes. The available space
2661 passed to the track sizing algorithm must not contain neither
2662 borders nor paddings, otherwise it will think that it has more
2663 space available than the existing one. We should use the
2664 height of the content box instead.
2666 Test: fast/css-grid-layout/grid-item-with-border-in-fr.html
2668 * rendering/RenderGrid.cpp:
2669 (WebCore::RenderGrid::layoutBlock):
2671 2015-12-03 Brady Eidson <beidson@apple.com>
2673 Modern IDB: storage/indexeddb/cursor-index-delete.html fails.
2674 https://bugs.webkit.org/show_bug.cgi?id=151847
2676 Reviewed by Andy Estes.
2678 No new tests (At least one failing test now passes).
2680 * Modules/indexeddb/server/MemoryIndexCursor.cpp:
2681 (WebCore::IDBServer::MemoryIndexCursor::MemoryIndexCursor):
2682 (WebCore::IDBServer::MemoryIndexCursor::currentData):
2684 2015-12-03 Gyuyoung Kim <gyuyoung.kim@webkit.org>
2686 Reduce uses of PassRefPtr in DOM - 1
2687 https://bugs.webkit.org/show_bug.cgi?id=149788
2689 Reviewed by Darin Adler.
2691 As a step to purge PassRefPtr, this patch reduces the uses in WebCore/dom.
2693 * dom/ChildListMutationScope.cpp:
2694 (WebCore::ChildListMutationAccumulator::getOrCreate):
2695 * dom/ChildListMutationScope.h:
2696 * dom/ClipboardEvent.cpp:
2697 (WebCore::ClipboardEvent::ClipboardEvent):
2698 * dom/ClipboardEvent.h:
2699 * dom/CompositionEvent.cpp:
2700 (WebCore::CompositionEvent::CompositionEvent):
2701 (WebCore::CompositionEvent::initCompositionEvent):
2702 * dom/CompositionEvent.h:
2703 * dom/DOMNamedFlowCollection.cpp:
2704 (WebCore::DOMNamedFlowCollection::item):
2705 * dom/DOMNamedFlowCollection.h:
2706 * dom/DOMStringList.h:
2707 * dom/DeviceMotionController.cpp:
2708 (WebCore::DeviceMotionController::getLastEvent):
2709 * dom/DeviceMotionController.h:
2710 * dom/DeviceOrientationController.cpp:
2711 (WebCore::DeviceOrientationController::getLastEvent):
2712 * dom/DeviceOrientationController.h:
2713 * editing/Editor.cpp:
2714 (WebCore::Editor::dispatchCPPEvent):
2715 * page/DeviceController.h:
2716 (WebCore::DeviceController::getLastEvent):
2718 2015-12-03 Said Abou-Hallawa <sabouhallawa@apple.com>
2720 Remove the use of GraphicsContextStateSaver from RenderLayer::paintLayerByApplyingTransform
2721 https://bugs.webkit.org/show_bug.cgi?id=151829
2723 Reviewed by Simon Fraser.
2725 Set the CTM of the GraphicsContext to its original value before changing
2726 it. This is a lot cheaper than using GraphicsContextStateSaver to save the
2727 whole state of the GraphicsContext and restore it back;
2729 * rendering/RenderLayer.cpp:
2730 (WebCore::RenderLayer::paintLayerByApplyingTransform):
2732 2015-12-03 Eric Carlson <eric.carlson@apple.com>
2734 [MediaStream] Update MediaStreamTrack.getCapabilities
2735 https://bugs.webkit.org/show_bug.cgi?id=151728
2737 Reviewed by Jer Noble.
2739 Test: fast/mediastream/MediaStreamTrack-getCapabilities.html
2741 * CMakeLists.txt: Remove files deleted from the repository.
2743 * DerivedSources.make: Ditto.
2745 * Modules/mediastream/AllAudioCapabilities.h: Removed.
2746 * Modules/mediastream/AllAudioCapabilities.idl: Removed.
2747 * Modules/mediastream/AllVideoCapabilities.h: Removed.
2748 * Modules/mediastream/AllVideoCapabilities.idl: Removed.
2749 * Modules/mediastream/CapabilityRange.cpp: Removed.
2750 * Modules/mediastream/CapabilityRange.h: Removed.
2751 * Modules/mediastream/CapabilityRange.idl: Removed.
2753 * Modules/mediastream/MediaSourceSettings.h:
2754 (WebCore::MediaSourceSettings::supportsVolume): Volume is a double.
2755 (WebCore::MediaSourceSettings::volume): Double.
2757 * Modules/mediastream/MediaStreamCapabilities.cpp: Removed.
2758 * Modules/mediastream/MediaStreamCapabilities.h: Removed.
2759 * Modules/mediastream/MediaStreamCapabilities.idl: Removed.
2761 * Modules/mediastream/MediaStreamTrack.cpp:
2762 (WebCore::MediaStreamTrack::getCapabilities): MediaStreamCapabilities is gone, return a RealtimeMediaSourceCapabilities.
2763 * Modules/mediastream/MediaStreamTrack.h:
2764 * Modules/mediastream/MediaStreamTrack.idl:
2766 * WebCore.xcodeproj/project.pbxproj: Remove files deleted from the repository.
2767 * bindings/js/JSMediaStreamTrackCustom.cpp:
2768 (WebCore::capabilityValue):
2769 (WebCore::JSMediaStreamTrack::getCapabilities): Create and return a dictionary of capatilities.
2771 * platform/mediastream/RealtimeMediaSourceCapabilities.h:
2772 (WebCore::CapabilityValueOrRange::type):
2773 (WebCore::CapabilityValueOrRange::CapabilityValueOrRange):
2774 (WebCore::CapabilityValueOrRange::rangeMin):
2775 (WebCore::CapabilityValueOrRange::rangeMax):
2776 (WebCore::CapabilityValueOrRange::value):
2777 (WebCore::RealtimeMediaSourceCapabilities::create):
2778 (WebCore::RealtimeMediaSourceCapabilities::~RealtimeMediaSourceCapabilities):
2779 (WebCore::RealtimeMediaSourceCapabilities::supportsWidth):
2780 (WebCore::RealtimeMediaSourceCapabilities::width):
2781 (WebCore::RealtimeMediaSourceCapabilities::setWidth):
2782 (WebCore::RealtimeMediaSourceCapabilities::supportsHeight):
2783 (WebCore::RealtimeMediaSourceCapabilities::height):
2784 (WebCore::RealtimeMediaSourceCapabilities::setHeight):
2785 (WebCore::RealtimeMediaSourceCapabilities::supportsFrameRate):
2786 (WebCore::RealtimeMediaSourceCapabilities::frameRate):
2787 (WebCore::RealtimeMediaSourceCapabilities::setFrameRate):
2788 (WebCore::RealtimeMediaSourceCapabilities::supportsFacingMode):
2789 (WebCore::RealtimeMediaSourceCapabilities::facingMode):
2790 (WebCore::RealtimeMediaSourceCapabilities::addFacingMode):
2791 (WebCore::RealtimeMediaSourceCapabilities::supportsAspectRatio):
2792 (WebCore::RealtimeMediaSourceCapabilities::aspectRatio):
2793 (WebCore::RealtimeMediaSourceCapabilities::setAspectRatio):
2794 (WebCore::RealtimeMediaSourceCapabilities::supportsVolume):
2795 (WebCore::RealtimeMediaSourceCapabilities::volume):
2796 (WebCore::RealtimeMediaSourceCapabilities::setVolume):
2797 (WebCore::RealtimeMediaSourceCapabilities::supportsSampleRate):
2798 (WebCore::RealtimeMediaSourceCapabilities::sampleRate):
2799 (WebCore::RealtimeMediaSourceCapabilities::setSampleRate):
2800 (WebCore::RealtimeMediaSourceCapabilities::supportsSampleSize):
2801 (WebCore::RealtimeMediaSourceCapabilities::sampleSize):
2802 (WebCore::RealtimeMediaSourceCapabilities::setSampleSize):
2803 (WebCore::RealtimeMediaSourceCapabilities::supportsEchoCancellation):
2804 (WebCore::RealtimeMediaSourceCapabilities::echoCancellation):
2805 (WebCore::RealtimeMediaSourceCapabilities::setEchoCancellation):
2806 (WebCore::RealtimeMediaSourceCapabilities::supportsDeviceId):
2807 (WebCore::RealtimeMediaSourceCapabilities::deviceId):
2808 (WebCore::RealtimeMediaSourceCapabilities::setDeviceId):
2809 (WebCore::RealtimeMediaSourceCapabilities::supportsGroupId):
2810 (WebCore::RealtimeMediaSourceCapabilities::groupId):
2811 (WebCore::RealtimeMediaSourceCapabilities::setGroupId):
2812 (WebCore::RealtimeMediaSourceCapabilities::RealtimeMediaSourceCapabilities):
2813 (WebCore::RealtimeMediaSourceCapabilityRange::RealtimeMediaSourceCapabilityRange): Deleted.
2814 (WebCore::RealtimeMediaSourceCapabilityRange::min): Deleted.
2815 (WebCore::RealtimeMediaSourceCapabilityRange::max): Deleted.
2816 (WebCore::RealtimeMediaSourceCapabilityRange::type): Deleted.
2817 (WebCore::RealtimeMediaSourceCapabilityRange::supported): Deleted.
2818 (WebCore::RealtimeMediaSourceCapabilities::sourceId): Deleted.
2819 (WebCore::RealtimeMediaSourceCapabilities::setSourceId): Deleted.
2820 (WebCore::RealtimeMediaSourceCapabilities::facingModes): Deleted.
2821 (WebCore::RealtimeMediaSourceCapabilities::setWidthRange): Deleted.
2822 (WebCore::RealtimeMediaSourceCapabilities::setHeightRange): Deleted.
2823 (WebCore::RealtimeMediaSourceCapabilities::setFrameRateRange): Deleted.
2824 (WebCore::RealtimeMediaSourceCapabilities::setAspectRatioRange): Deleted.
2825 (WebCore::RealtimeMediaSourceCapabilities::setVolumeRange): Deleted.
2826 (WebCore::RealtimeMediaSourceCapabilities::hasVideoSource): Deleted.
2827 (WebCore::RealtimeMediaSourceCapabilities::setHasVideoSource): Deleted.
2829 * platform/mediastream/RealtimeMediaSourceSettings.h:
2830 (WebCore::RealtimeMediaSourceSettings::volume): Volume is a double.
2831 (WebCore::RealtimeMediaSourceSettings::setVolume): Ditt.
2833 * platform/mediastream/mac/AVAudioCaptureSource.mm:
2834 (WebCore::AVAudioCaptureSource::initializeCapabilities): Initialize volume capability.
2836 * platform/mediastream/mac/AVMediaCaptureSource.mm:
2837 (WebCore::AVMediaCaptureSource::capabilities): RealtimeMediaSourceCapabilities constructor takes
2838 supportedConstraints. sourceId -> deviceId.
2840 * platform/mediastream/mac/AVVideoCaptureSource.mm:
2841 (WebCore::AVVideoCaptureSource::initializeCapabilities): DeviceId is set by the base class.
2843 * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.mm: Drive-by cleanup, remove unused code.
2845 * platform/mock/MockRealtimeAudioSource.cpp:
2846 (WebCore::MockRealtimeAudioSource::initializeCapabilities): Updated.
2847 (WebCore::MockRealtimeAudioSource::initializeSupportedConstraints): Ditto.
2849 * platform/mock/MockRealtimeMediaSource.cpp:
2850 (WebCore::MockRealtimeMediaSource::capabilities): sourceId -> deviceId.
2852 * platform/mock/MockRealtimeVideoSource.cpp:
2853 (WebCore::MockRealtimeVideoSource::initializeCapabilities): Updated.
2854 (WebCore::MockRealtimeVideoSource::initializeSupportedConstraints): Ditto.
2856 2015-12-03 Simon Fraser <simon.fraser@apple.com>
2858 Have layer memory use consult the backing store format
2859 https://bugs.webkit.org/show_bug.cgi?id=151827
2860 rdar://problem/23746497
2862 Reviewed by Dean Jackson.
2864 When computing the backing store memory size, take the pixel format into account,
2865 rather than assuming 4 bytes per pixel.
2867 * platform/graphics/ca/GraphicsLayerCA.cpp:
2868 * platform/graphics/ca/PlatformCALayer.h:
2870 2015-12-03 Anders Carlsson <andersca@apple.com>
2872 Remove Objective-C GC support
2873 https://bugs.webkit.org/show_bug.cgi?id=151819
2874 rdar://problem/23746991
2876 Reviewed by Dan Bernstein.
2878 * Configurations/Base.xcconfig:
2879 * bindings/objc/WebScriptObject.mm:
2880 (+[WebScriptObject initialize]): Deleted.
2881 (-[WebScriptObject finalize]): Deleted.
2882 * bindings/scripts/CodeGeneratorObjC.pm:
2883 (GenerateImplementation):
2884 * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
2885 (-[DOMTestActiveDOMObject finalize]): Deleted.
2886 * bindings/scripts/test/ObjC/DOMTestCallback.mm:
2887 (-[DOMTestCallback finalize]): Deleted.
2888 * bindings/scripts/test/ObjC/DOMTestCallbackFunction.mm:
2889 (-[DOMTestCallbackFunction finalize]): Deleted.
2890 * bindings/scripts/test/ObjC/DOMTestCustomConstructorWithNoInterfaceObject.mm:
2891 (-[DOMTestCustomConstructorWithNoInterfaceObject finalize]): Deleted.
2892 * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
2893 (-[DOMTestCustomNamedGetter finalize]): Deleted.
2894 * bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
2895 (-[DOMTestEventConstructor finalize]): Deleted.
2896 * bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
2897 (-[DOMTestEventTarget finalize]): Deleted.
2898 * bindings/scripts/test/ObjC/DOMTestException.mm:
2899 (-[DOMTestException finalize]): Deleted.
2900 * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
2901 (-[DOMTestGenerateIsReachable finalize]): Deleted.
2902 * bindings/scripts/test/ObjC/DOMTestInterface.mm:
2903 (-[DOMTestInterface finalize]): Deleted.
2904 * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:
2905 (-[DOMTestJSBuiltinConstructor finalize]): Deleted.
2906 * bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
2907 (-[DOMTestMediaQueryListListener finalize]): Deleted.
2908 * bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
2909 (-[DOMTestNamedConstructor finalize]): Deleted.
2910 * bindings/scripts/test/ObjC/DOMTestNondeterministic.mm:
2911 (-[DOMTestNondeterministic finalize]): Deleted.
2912 * bindings/scripts/test/ObjC/DOMTestObj.mm:
2913 (-[DOMTestObj finalize]): Deleted.
2914 * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
2915 (-[DOMTestOverloadedConstructors finalize]): Deleted.
2916 * bindings/scripts/test/ObjC/DOMTestOverrideBuiltins.mm:
2917 (-[DOMTestOverrideBuiltins finalize]): Deleted.
2918 * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
2919 (-[DOMTestSerializedScriptValueInterface finalize]): Deleted.
2920 * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
2921 (-[DOMTestTypedefs finalize]): Deleted.
2922 * bindings/scripts/test/ObjC/DOMattribute.mm:
2923 (-[DOMattribute finalize]): Deleted.
2924 * bindings/scripts/test/ObjC/DOMreadonly.mm:
2925 (-[DOMreadonly finalize]): Deleted.
2926 * bridge/objc/objc_instance.mm:
2927 (ObjcInstance::virtualBegin):
2928 (allocateAutoReleasePool): Deleted.
2929 * platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
2930 * platform/mac/SharedBufferMac.mm:
2931 (+[WebCoreSharedBufferData initialize]): Deleted.
2932 (-[WebCoreSharedBufferData finalize]): Deleted.
2933 * platform/mac/WebCoreObjCExtras.h:
2934 (WebCoreObjCFinalizeOnMainThread): Deleted.
2936 2015-12-03 Zalan Bujtas <zalan@apple.com>
2938 Simple line layout: Print out simple line layout statistics for the current page from command line.
2939 https://bugs.webkit.org/show_bug.cgi?id=151806
2941 Reviewed Simon Fraser.
2943 com.apple.WebKit.showSimpleLineLayoutCoverage prints out a coverage summary of the current page,
2944 while com.apple.WebKit.showSimpleLineLayoutReasons lists the non-simple line layout blocks including the reasons why
2945 they are not covered.
2947 No change in functionality.
2949 * rendering/SimpleLineLayout.cpp:
2950 (WebCore::SimpleLineLayout::canUseForText):
2951 (WebCore::SimpleLineLayout::canUseForFontAndText):
2952 (WebCore::SimpleLineLayout::canUseForStyle):
2953 (WebCore::SimpleLineLayout::canUseForWithReason):
2954 (WebCore::SimpleLineLayout::canUseFor):
2955 (WebCore::SimpleLineLayout::printReason):
2956 (WebCore::SimpleLineLayout::printReasons):
2957 (WebCore::SimpleLineLayout::printTextForSubtree):
2958 (WebCore::SimpleLineLayout::textLengthForSubtree):
2959 (WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlows):
2960 (WebCore::SimpleLineLayout::collectNonEmptyLeafRenderBlockFlowsForCurrentPage):
2961 (WebCore::SimpleLineLayout::printSimpleLineLayoutBlockList):
2962 (WebCore::SimpleLineLayout::printSimpleLineLayoutCoverage):
2964 2015-12-03 Jonathan Davis <jond@apple.com>
2966 Add WebCrypto to status page
2967 https://bugs.webkit.org/show_bug.cgi?id=151760
2969 Reviewed by Timothy Hatcher.
2973 2015-12-03 Keith Rollin <krollin@apple.com>
2975 [Win] fast/forms/HTMLOptionElement_label03.html failing on win7
2976 https://bugs.webkit.org/show_bug.cgi?id=150909
2977 rdar://problem/23539673
2979 Reviewed by Darin Adler.
2981 When returning text to be displayed, an <option> element will return
2982 the value of a label attribute if it exists, or the text content as a
2983 fallback. The failing test concerned the display of a <select>
2984 element when it contained a sole <option> element that had a label
2985 attribute set to a single space. When displayed, various
2986 platform-specific bits of code will strip off the leading and trailing
2987 whitespace. However, when WebKit would use this text to measure how
2988 wide the <select> popup menu button should be, it would not strip off
2989 spaces, leading to the calculated width being wider than necessary.
2990 The approach taken to fix this is to strip whitespace in the label
2991 attribute before it is returned from the <option> element.
2993 No new tests. fast/forms/HTMLOptionElement_label03.html had been
2994 marked as being expected to fail in TestExpectations; that test now
2997 * html/HTMLOptionElement.cpp:
2998 (WebCore::HTMLOptionElement::label):
3000 2015-12-03 Sam Weinig <sam@webkit.org>
3002 Try to fix the Windows build.
3004 * bindings/js/JSWorkerGlobalScopeBase.cpp:
3005 (WebCore::JSWorkerGlobalScopeBase::javaScriptRuntimeFlags):
3006 (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
3008 2015-12-03 Brady Eidson <beidson@apple.com>
3010 Modern IDB: storage/indexeddb/cursor-advance.html fails.
3011 https://bugs.webkit.org/show_bug.cgi?id=151731
3013 Reviewed by Alex Christensen.
3015 No new tests (At least one failing test now passes).
3017 * Modules/indexeddb/IDBCursor.h:
3018 * Modules/indexeddb/IDBCursor.idl:
3020 * Modules/indexeddb/client/IDBCursorImpl.cpp:
3021 (WebCore::IDBClient::IDBCursor::advance): Return a custom exception message for TypeError.
3022 * Modules/indexeddb/client/IDBCursorImpl.h:
3024 * Modules/indexeddb/legacy/LegacyCursor.cpp:
3025 (WebCore::LegacyCursor::advance):
3026 * Modules/indexeddb/legacy/LegacyCursor.h:
3028 * bindings/js/JSDOMBinding.cpp:
3029 (WebCore::createDOMException):
3030 (WebCore::setDOMException):
3031 * bindings/js/JSDOMBinding.h:
3033 * bindings/scripts/IDLAttributes.txt:
3035 * inspector/InspectorIndexedDBAgent.cpp:
3037 2015-12-03 Brent Fulgham <bfulgham@apple.com>
3039 Allow JavaScript to iterate over plugins for local files
3040 https://bugs.webkit.org/show_bug.cgi?id=151783
3041 <rdar://problem/23692113>
3043 Reviewed by Alexey Proskuryakov.
3045 Test: http/tests/plugins/plugin-javascript-access.html
3046 plugins/plugin-javascript-access.html
3049 (WebCore::Page::showAllPlugins): True if we set the debugging flag to show
3050 all plugins, or if the document's origin is from a local file.
3053 2015-12-03 Jer Noble <jer.noble@apple.com>
3055 Unreviewed build-fix; missing include.
3057 * html/HTMLVideoElement.cpp:
3059 2015-12-03 Brady Eidson <beidson@apple.com>
3061 Modern IDB: storage/indexeddb/cursor-skip-deleted.html crashes.
3062 https://bugs.webkit.org/show_bug.cgi?id=151794
3064 Reviewed by Alex Christensen.
3066 STL reverse_iterators are a tricky beast.
3068 They are implemented in terms of a normal forward iterator (called the "base" iterator),
3069 and they decrement a copy of that iterator when dereferenced.
3071 So when monitoring deletes from a std::set to check if we should invalidate our current
3072 reverse_iterator, we were incorrectly comparing the deleted key to the value pointed by the
3073 reverse_iterator instead of its base iterator.
3075 Since the iterators in question are bidirectional, anyways, we can just use a single iterator
3076 and either increment or decrement it as needed.
3078 No new tests (At least one failing (crashing) test now passes).
3080 * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
3081 (WebCore::IDBServer::MemoryObjectStoreCursor::objectStoreCleared):
3082 (WebCore::IDBServer::MemoryObjectStoreCursor::keyDeleted):
3083 (WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded):
3084 (WebCore::IDBServer::MemoryObjectStoreCursor::setFirstInRemainingRange):
3085 (WebCore::IDBServer::MemoryObjectStoreCursor::setForwardIteratorFromRemainingRange):
3086 (WebCore::IDBServer::MemoryObjectStoreCursor::setReverseIteratorFromRemainingRange):
3087 (WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
3088 (WebCore::IDBServer::MemoryObjectStoreCursor::incrementForwardIterator):
3089 (WebCore::IDBServer::MemoryObjectStoreCursor::incrementReverseIterator):
3090 (WebCore::IDBServer::MemoryObjectStoreCursor::iterate):
3091 (WebCore::IDBServer::MemoryObjectStoreCursor::firstForwardIteratorInRemainingRange): Deleted.
3092 (WebCore::IDBServer::MemoryObjectStoreCursor::firstReverseIteratorInRemainingRange): Deleted.
3093 (WebCore::IDBServer::MemoryObjectStoreCursor::hasIterators): Deleted.
3094 (WebCore::IDBServer::MemoryObjectStoreCursor::hasValidPosition): Deleted.
3095 (WebCore::IDBServer::MemoryObjectStoreCursor::clearIterators): Deleted.
3096 * Modules/indexeddb/server/MemoryObjectStoreCursor.h:
3098 2015-12-03 Per Arne Vollan <peavo@outlook.com>
3100 [WinCairo][MediaFoundation] Main thread can block when session is destroyed.
3101 https://bugs.webkit.org/show_bug.cgi?id=151803
3103 Reviewed by Alex Christensen.
3105 Set flag to make sure that the scheduler thread stops when the session ends.
3107 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
3108 (WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopScheduler):
3109 (WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::processSamplesInQueue):
3110 (WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::schedulerThreadProcPrivate):
3111 * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
3112 (WebCore::MediaPlayerPrivateMediaFoundation::VideoScheduler::stopThread):
3114 2015-12-03 Jer Noble <jer.noble@apple.com>
3116 [iOS] Fullscreen -> PiP should resume to Fullscreen, not inline
3117 https://bugs.webkit.org/show_bug.cgi?id=150906
3119 Reviewed by Simon Fraser.
3121 When restoring the user interface when exiting PiP, we should return to Fullscreen if that
3122 is where fullscreen was initiated from. Additionally, when we "auto-PiP" by backgrounding the
3123 app in Fullscreen mode, we should "auto-un-PiP" when restoring the application to foreground.
3125 Rather than have a separate method to request exiting fullscreen, entering standard fullscreen,
3126 and switching to & from PiP, add a new method setFullscreenMode() which does all three.
3128 * html/HTMLVideoElement.cpp:
3129 (WebCore::presentationModeToFullscreenMode):
3130 (WebCore::HTMLVideoElement::webkitSetPresentationMode):
3131 (WebCore::HTMLVideoElement::setFullscreenMode):
3132 * html/HTMLVideoElement.h:
3134 Add methods to for clients to request a specific fullscreen mode, and to query whether
3135 the page is currently visible.
3137 * platform/ios/WebVideoFullscreenControllerAVKit.mm:
3138 (WebVideoFullscreenControllerContext::requestFullscreenMode):
3139 (WebVideoFullscreenControllerContext::isVisible):
3140 (WebVideoFullscreenControllerContext::requestExitFullscreen): Deleted.
3141 * platform/ios/WebVideoFullscreenModel.h:
3142 * platform/ios/WebVideoFullscreenModelVideoElement.h:
3143 * platform/ios/WebVideoFullscreenModelVideoElement.mm:
3144 (WebVideoFullscreenModelVideoElement::requestFullscreenMode):
3145 (WebVideoFullscreenModelVideoElement::isVisible):
3146 (WebVideoFullscreenModelVideoElement::requestExitFullscreen): Deleted.
3148 Track whether returning from PiP should enter fullscreen, or whether foregrounding the app
3149 should cause PiP to return to fullscreen.
3151 * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
3152 * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
3153 (-[WebAVPlayerLayer layoutSublayers]): Renamed from -setBounds:. -layoutSublayers is called
3154 more consistently than -setBounds:, including when a sublayer is added to the layer.
3155 (WebAVPlayerLayerView_stopRoutingVideoToPictureInPicturePlayerLayerView): The PiP WebAVPlayerLayer's
3156 modelVideoLayerFrame property may have been modified, so pass it back up to the fullscreen
3157 layer when exiting PiP.
3158 (WebVideoFullscreenInterfaceAVKit::applicationDidBecomeActive): Request fullscreen if we auto-PiPed.
3159 (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Only recreate owned objects if they did not already exist.
3160 (WebVideoFullscreenInterfaceAVKit::enterFullscreenStandard): If we are in PiP mode, enter fullscreen by stopping PiP.
3161 (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): requestExitFullscreen() -> requestFullscreenMode().
3162 (WebVideoFullscreenInterfaceAVKit::willStartPictureInPicture): Animate out the fullscreen window, if exiting Fullscreen -> PiP.
3163 (WebVideoFullscreenInterfaceAVKit::didStartPictureInPicture): Set m_shouldReturnToFullscreenAfterEnteringForeground if we auto-PiPed.
3164 (WebVideoFullscreenInterfaceAVKit::failedToStartPictureInPicture): requestExitFullscreen() -> requestFullscreenMode().
3165 (WebVideoFullscreenInterfaceAVKit::willStopPictureInPicture): If we are returning from PiP -> Fullscreen, do not hide the fullscreen window.
3166 (WebVideoFullscreenInterfaceAVKit::didStopPictureInPicture): If we are returning from PiP -> Fullscreen, show the controls and notify clients.
3167 (WebVideoFullscreenInterfaceAVKit::prepareForPictureInPictureStopWithCompletionHandler): Animate in the fullscreen window, if returning from PiP -> Fullscreen.
3168 (WebVideoFullscreenInterfaceAVKit::shouldExitFullscreenWithReason): Set m_shouldReturnToFullscreenWhenStoppingPiP if we are entering PiP from Fullscreen.
3169 * platform/spi/cocoa/AVKitSPI.h:
3171 2015-12-02 Sam Weinig <sam@webkit.org>
3173 Promise callbacks should be called at microtask checkpoints
3174 https://bugs.webkit.org/show_bug.cgi?id=147933
3176 Reviewed by Chris Dumez.
3178 - Re-names MicroTaskQueue and MicroTask to MicrotaskQueue and Microtask to match the spec language.
3179 - Re-implements MicrotaskQueue and Microtask support suspended Microtasks (via the new KeepInQueue
3180 result value a Microtask can have when running) and correct behavior when Microtasks are added to
3181 the queue during a Microtask checkpoint.
3182 - MicrotaskQueue now has a mainThreadQueue() static function, replacing the old singleton() function,
3183 which can be used for the Document (non-Worker) Microtasks. For Workers, the a MicrotaskQueue
3184 can be separately allocated for each WorkerGlobalScope (though this was not done in this change).
3185 - Adds a helper subclass of Microtask, ActiveDOMCallbackMicrotask, for Microtasks that are
3186 per-ScriptExecutationContext, and need to act as ActiveDOMCallbacks.
3187 - Re-implement Document (non-Worker) Promises on top of ActiveDOMCallbackMicrotask.
3188 - Re-implement MutationObserver delivery on top of Microtask.
3191 fast/dom/microtask-promise-mutation-observer-order.html
3194 * WebCore.vcxproj/WebCore.vcxproj:
3195 * WebCore.xcodeproj/project.pbxproj:
3196 * dom/DOMAllInOne.cpp:
3199 * bindings/js/JSDOMWindowBase.cpp:
3200 (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
3201 Switch to using ActiveDOMCallbackMicrotask/MicrotaskQueue rather than ScriptExecutionContext's Task mechanism
3202 for JavaScriptCore tasks.
3204 * bindings/js/JSMainThreadExecState.cpp:
3205 (WebCore::JSMainThreadExecState::didLeaveScriptContext):
3206 Perform a microtask checkpoint rather than calling MutationObserver code explicitly now that mutation observers
3209 * dom/ActiveDOMCallbackMicrotask.cpp: Added.
3210 (WebCore::ActiveDOMCallbackMicrotask::ActiveDOMCallbackMicrotask):
3211 (WebCore::ActiveDOMCallbackMicrotask::~ActiveDOMCallbackMicrotask):
3212 (WebCore::ActiveDOMCallbackMicrotask::run):
3213 (WebCore::ActiveDOMCallbackMicrotask::contextDestroyed):
3214 * dom/ActiveDOMCallbackMicrotask.h: Added.
3215 Add a helper subclass of Microtask which behaves like a ActiveDOMCallback (e.g. supports suspension
3216 and context destruction).
3218 * dom/MicroTask.cpp: Renamed to Microtasks.cpp.
3219 * dom/MicroTask.h: Renamed to Microtasks.h.
3220 * dom/Microtasks.cpp: Renamed from Source/WebCore/dom/MicroTask.cpp.
3221 (WebCore::Microtask::removeSelfFromQueue):
3222 (WebCore::MicrotaskQueue::mainThreadQueue):
3223 (WebCore::MicrotaskQueue::append):
3224 (WebCore::MicrotaskQueue::remove):
3225 (WebCore::MicrotaskQueue::performMicrotaskCheckpoint):
3226 (WebCore::MicroTaskQueue::singleton): Deleted.
3227 (WebCore::MicroTaskQueue::queueMicroTask): Deleted.
3228 (WebCore::MicroTaskQueue::runMicroTasks): Deleted.
3229 * dom/Microtasks.h: Renamed from Source/WebCore/dom/MicroTask.h.
3230 (WebCore::Microtask::~Microtask):
3231 (WebCore::MicrotaskQueue::MicrotaskQueue):
3232 (WebCore::MicrotaskQueue::~MicrotaskQueue):
3233 (WebCore::MicroTask::~MicroTask): Deleted.
3234 (WebCore::MicroTaskQueue::~MicroTaskQueue): Deleted.
3235 (WebCore::MicroTaskQueue::MicroTaskQueue): Deleted.
3236 Re-implement MicrotaskQueue and Microtask to support Microtask suspension (via the KeepInQueue result
3237 value) and correct behavior when Microtasks are queued during checkpoints.
3239 * dom/MutationObserver.cpp:
3240 (WebCore::suspendedMutationObservers):
3241 (WebCore::MutationObserverMicrotask::MutationObserverMicrotask):
3242 (WebCore::MutationObserverMicrotask::~MutationObserverMicrotask):
3243 (WebCore::MutationObserverMicrotask::run):
3244 (WebCore::queueMutationObserverCompoundMicrotask):
3245 (WebCore::MutationObserver::enqueueMutationRecord):
3246 (WebCore::MutationObserver::setHasTransientRegistration):
3247 * dom/MutationObserver.h:
3248 Re-implement MutationObserver delivery on top of Microtasks.
3250 * dom/ScriptRunner.cpp:
3251 (WebCore::ScriptRunner::timerFired):
3252 Remove unnecessary call to runMicroTasks().
3254 * html/parser/HTMLScriptRunner.cpp:
3255 (WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
3256 (WebCore::HTMLScriptRunner::runScript):
3257 Remove calls to MutationObserver::deliverAllMutations() now that the MicrotaskQueue will take care of it.
3259 (WebCore::HTMLScriptRunner::executeScriptsWaitingForParsing):
3260 Remove unnecessary call to runMicroTasks().
3262 * testing/Internals.cpp:
3263 (WebCore::Internals::queueMicroTask):
3264 Use ActiveDOMCallbackMicrotask rather than a custom test subclass.
3266 * testing/MicroTaskTest.cpp: Removed.
3267 * testing/MicroTaskTest.h: Removed.
3268 Remove custom test subclass of Microtask, just use ActiveDOMCallbackMicrotask directly.
3270 2015-12-03 Brady Eidson <beidson@apple.com>
3272 Add GetterRaisesExceptionWithMessage and SetterRaisesExceptionWithMessage to the code generator.
3273 https://bugs.webkit.org/show_bug.cgi?id=151807
3275 Reviewed by Alex Christensen.
3277 No new tests (Covered by changes to existing bindings tests).
3279 While we're at it, rework the existing 'RaisesExceptionWithMessage' concept to use a struct instead of
3280 two separate variables to reduce complexity.
3282 * bindings/scripts/CodeGeneratorJS.pm:
3283 (GenerateImplementation):
3284 (GenerateImplementationFunctionCall):
3285 (GenerateConstructorDefinition):
3286 (GenerateParametersCheck): Deleted.
3287 (GenerateReturnParameters): Deleted.
3289 * bindings/scripts/IDLAttributes.txt:
3291 * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
3292 (webkit_dom_test_obj_set_property):
3293 (webkit_dom_test_obj_get_property):
3294 (webkit_dom_test_obj_class_init):
3295 (webkit_dom_test_obj_get_attr_with_getter_exception_with_message):
3296 (webkit_dom_test_obj_set_attr_with_getter_exception_with_message):
3297 (webkit_dom_test_obj_get_attr_with_setter_exception_with_message):
3298 (webkit_dom_test_obj_set_attr_with_setter_exception_with_message):
3299 * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
3301 * bindings/scripts/test/JS/JSTestObj.cpp:
3302 (WebCore::jsTestObjAttrWithGetterExceptionWithMessage):
3303 (WebCore::jsTestObjAttrWithSetterExceptionWithMessage):
3304 (WebCore::setJSTestObjAttrWithGetterExceptionWithMessage):
3305 (WebCore::setJSTestObjAttrWithSetterExceptionWithMessage):
3306 (WebCore::jsTestObjPrototypeFunctionMethodWithExceptionWithMessage):
3307 * bindings/scripts/test/ObjC/DOMTestObj.h:
3309 * bindings/scripts/test/ObjC/DOMTestObj.mm:
3310 (-[DOMTestObj attrWithGetterExceptionWithMessage]):
3311 (-[DOMTestObj setAttrWithGetterExceptionWithMessage:]):
3312 (-[DOMTestObj attrWithSetterExceptionWithMessage]):
3313 (-[DOMTestObj setAttrWithSetterExceptionWithMessage:]):
3315 * bindings/scripts/test/TestObj.idl:
3317 * dom/ExceptionCode.h:
3319 2015-12-03 Javier Fernandez <jfernandez@igalia.com>
3321 [css-grid] margin-left:auto and margin-top:auto discards the margin on opposite side
3322 https://bugs.webkit.org/show_bug.cgi?id=151802
3324 Reviewed by Sergio Villar Senin.
3326 When resolving auto margins so that they use the available space, in the
3327 corresponding axis, we must consider that there might be other specified
3328 margins. Such margins must account to determine the actual available space.
3330 Test: fast/css-grid-layout/grid-item-auto-margins-must-respect-specified-margins.html
3332 * rendering/RenderGrid.cpp:
3333 (WebCore::RenderGrid::updateAutoMarginsInRowAxisIfNeeded):
3334 (WebCore::RenderGrid::updateAutoMarginsInColumnAxisIfNeeded):
3336 2015-12-02 Antti Koivisto <antti@apple.com>
3338 Move ResourceLoadScheduler to WebKit1
3339 https://bugs.webkit.org/show_bug.cgi?id=151743
3341 Reviewed by Alex Christensen.
3343 It is no longer used by WebKit2. Simplify the WebKit/WebCore interface.
3345 * WebCore.xcodeproj/project.pbxproj:
3346 * dom/ContainerNode.cpp:
3348 (WebCore::Document::styleForElementIgnoringPendingStylesheets):
3350 * loader/DocumentLoader.h:
3351 * loader/LoaderStrategy.cpp:
3352 (WebCore::LoaderStrategy::~LoaderStrategy):
3353 (WebCore::ResourceLoadSuspender::ResourceLoadSuspender):
3354 (WebCore::ResourceLoadSuspender::~ResourceLoadSuspender):
3355 (WebCore::LoaderStrategy::resourceLoadScheduler): Deleted.
3356 (WebCore::LoaderStrategy::loadResourceSynchronously): Deleted.
3357 (WebCore::LoaderStrategy::createBlobRegistry): Deleted.
3358 (WebCore::LoaderStrategy::createPingHandle): Deleted.
3359 * loader/LoaderStrategy.h:
3361 Loading functions implemented on WebKit side move to pure virtual LoaderStrategy.
3363 * loader/ResourceLoadScheduler.cpp: Removed.
3364 * loader/ResourceLoadScheduler.h: Removed.
3366 ResourceLoadScheduler moves to WebKit1 as WebResourceLoadScheduler.
3368 * loader/ResourceLoader.cpp:
3369 (WebCore::ResourceLoader::finishNetworkLoad):
3370 (WebCore::ResourceLoader::setDefersLoading):
3371 (WebCore::ResourceLoader::frameLoader):
3372 (WebCore::ResourceLoader::willSwitchToSubstituteResource):
3373 (WebCore::ResourceLoader::willSendRequestInternal):
3374 * loader/archive/ArchiveResourceCollection.h:
3375 * loader/cache/CachedResource.cpp:
3376 (WebCore::CachedResource::load):
3377 * loader/cache/CachedResourceLoader.cpp:
3378 (WebCore::CachedResourceLoader::performPostLoadActions):
3379 (WebCore::CachedResourceLoader::incrementRequestCount):
3380 * platform/PlatformStrategies.h:
3381 (WebCore::PlatformStrategies::pluginStrategy):
3382 (WebCore::PlatformStrategies::blobRegistry):
3384 Move BlobRegistry factory function here from LoaderStrategy as this allows network process to have null loaderStrategy.
3385 (it could be renamed BlobStrategy for consistency later).
3387 (WebCore::PlatformStrategies::PlatformStrategies):
3388 * platform/network/BlobRegistry.cpp:
3389 (WebCore::blobRegistry):
3390 (WebCore::BlobRegistry::~BlobRegistry):
3391 * platform/network/ResourceRequestBase.h:
3392 * style/StyleResolveTree.cpp:
3393 (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler):
3394 (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler):
3396 2015-12-02 Myles C. Maxfield <mmaxfield@apple.com>
3398 Unify font-variant-* with font-variant shorthand
3399 https://bugs.webkit.org/show_bug.cgi?id=149773
3401 Reviewed by Darin Adler.
3403 This patch makes font-variant a shorthand for the following properties:
3404 font-variant-ligatures
3405 font-variant-position
3407 font-variant-numeric
3408 font-variant-alternates
3409 font-variant-east-asian
3411 This is consistent with the CSS Fonts Level 3 spec.
3413 This patch also migrates the "font" longhand to use the font-variant-caps
3416 Test: fast/text/font-variant-shorthand.html
3418 * css/CSSComputedStyleDeclaration.cpp: