770a1df610822159823b7f5e82d6ec61f512d454
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-11-30  Chris Dumez  <cdumez@apple.com>
2
3         location.origin is undefined in a web worker
4         https://bugs.webkit.org/show_bug.cgi?id=151614
5
6         Reviewed by Darin Adler.
7
8         Expose location.origin to web workers, as per:
9         https://html.spec.whatwg.org/multipage/workers.html#workerlocation
10
11         This behavior is consistent with the behavior of Firefox and Chrome.
12
13         Test: fast/workers/worker-location.html
14
15         * workers/WorkerLocation.cpp:
16         (WebCore::WorkerLocation::origin):
17         * workers/WorkerLocation.h:
18         * workers/WorkerLocation.idl:
19
20 2015-11-30  Brady Eidson  <beidson@apple.com>
21
22         Modern IDB: Support updating cursor values when the object store uses inline keys.
23         https://bugs.webkit.org/show_bug.cgi?id=151647
24
25         Reviewed by Andy Estes.
26
27         No new tests (At least two previously failing tests now pass and are unskipped).
28
29         * Modules/indexeddb/client/IDBCursorImpl.cpp:
30         (WebCore::IDBClient::IDBCursor::update): Use putForCursorUpdate() instead of put()
31         
32         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
33         (WebCore::IDBClient::IDBObjectStore::add):
34         (WebCore::IDBClient::IDBObjectStore::put):
35         (WebCore::IDBClient::IDBObjectStore::putForCursorUpdate): Use the flag to skip the inline-key check.
36         (WebCore::IDBClient::IDBObjectStore::putOrAdd): Add a flag to skip the inline-key check.
37         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
38
39 2015-11-30  Brady Eidson  <beidson@apple.com>
40
41         Modern IDB: Resolve flaky GC-vs-wrapper issue with IDBOpenDBRequest.
42         https://bugs.webkit.org/show_bug.cgi?id=151645
43
44         Reviewed by Andy Estes.
45
46         No new tests (Resolves flakiness with hundreds of existing IDB tests).
47
48         Do to improper management of the m_hasPendingActivity flag on IDBRequestImpl,
49         the request wrapper for an IDBOpenDBRequest might be garbage collected in between the
50         onUpgradeNeeded event and onSuccess event.
51         
52         This manifested as flakiness in many tests, some more than others.
53         
54         I tried to write a targeted 100% reproducible case manually forcing GC, but could not get
55         the timing right.
56         
57         * Modules/indexeddb/client/IDBOpenDBRequestImpl.cpp:
58         (WebCore::IDBClient::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
59         * Modules/indexeddb/client/IDBOpenDBRequestImpl.h:
60         
61         * Modules/indexeddb/client/IDBRequestImpl.cpp:
62         (WebCore::IDBClient::IDBRequest::dispatchEvent):
63         (WebCore::IDBClient::IDBRequest::willIterateCursor):
64         * Modules/indexeddb/client/IDBRequestImpl.h:
65         (WebCore::IDBClient::IDBRequest::isOpenDBRequest):
66
67 2015-11-30  Per Arne Vollan  <peavo@outlook.com>
68
69         [WinCairo][MediaFoundation] Implement seek.
70         https://bugs.webkit.org/show_bug.cgi?id=151609
71
72         Reviewed by Alex Christensen.
73
74         The methods maxTimeSeekable() and buffered() needs to be implemented.
75
76         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
77         (WebCore::MediaPlayerPrivateMediaFoundation::seekDouble):
78         (WebCore::MediaPlayerPrivateMediaFoundation::durationDouble):
79         (WebCore::MediaPlayerPrivateMediaFoundation::readyState):
80         (WebCore::MediaPlayerPrivateMediaFoundation::maxTimeSeekable):
81         (WebCore::MediaPlayerPrivateMediaFoundation::buffered):
82         (WebCore::MediaPlayerPrivateMediaFoundation::didLoadingProgress):
83         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::currentTime):
84         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::isActive):
85         * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
86         (WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::maxTimeLoaded):
87
88 2015-11-30  Brady Eidson  <beidson@apple.com>
89
90         Modern IDB: openCursor() fix resulting in at least 4 more passing tests.
91         https://bugs.webkit.org/show_bug.cgi?id=151630
92
93         Reviewed by Andy Estes.
94
95         No new tests (At least 4 failing tests now pass, and 9 other incorrect tests updated).
96
97         * Modules/indexeddb/IDBGetResult.cpp:
98         (WebCore::IDBGetResult::isolatedCopy):
99         * Modules/indexeddb/IDBGetResult.h:
100         (WebCore::IDBGetResult::IDBGetResult):
101         (WebCore::IDBGetResult::isDefined):
102
103         * Modules/indexeddb/client/IDBRequestImpl.cpp:
104         (WebCore::IDBClient::IDBRequest::didOpenOrIterateCursor): If the IDBGetResult is undefined,
105           do not expose the cursor as the result property of the IDBRequest.
106
107 2015-11-30  Brady Eidson  <beidson@apple.com>
108
109         Modern IDB: Support keyPath injection into object store records.
110         https://bugs.webkit.org/show_bug.cgi?id=151640
111
112         Reviewed by Andy Estes.
113
114         No new tests (At least one existing failure now passes and is unskipped,
115         while many other existing failures are now closer to passing).
116
117         * Modules/indexeddb/server/MemoryObjectStore.cpp:
118         (WebCore::IDBServer::MemoryObjectStore::updateIndexesForPutRecord): Use the new UniqueIDBDatabase VM/ExecState.
119         (WebCore::IDBServer::MemoryObjectStore::populateIndexWithExistingRecords): Ditto
120         (WebCore::IDBServer::indexVM): Deleted.
121         (WebCore::IDBServer::indexGlobalExec): Deleted.
122         
123         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
124         (WebCore::IDBServer::UniqueIDBDatabase::databaseThreadVM):
125         (WebCore::IDBServer::UniqueIDBDatabase::databaseThreadExecState):
126         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd): If appropriate, inject the key that will be used into
127           the value before storing the record.
128         * Modules/indexeddb/server/UniqueIDBDatabase.h:
129
130         Add modern JSValue/ExecState& version of some binding utilities, for use today and in preparation of getting 
131         rid of the DOMRequestState and Deprecated::ScriptValue versions later:
132         * bindings/js/IDBBindingUtilities.cpp:
133         (WebCore::idbKeyToJSValue):
134         (WebCore::injectIDBKeyIntoScriptValue):
135         (WebCore::deserializeIDBValueData):
136         (WebCore::deserializeIDBValueDataToJSValue):
137         * bindings/js/IDBBindingUtilities.h:
138
139 2015-11-25  Andy Estes  <aestes@apple.com>
140
141         [Content Filtering] Avoid creating a ContentFilter when loading the empty document
142         https://bugs.webkit.org/show_bug.cgi?id=151615
143
144         Reviewed by Daniel Bates.
145
146         It's expensive to create the first ContentFilter since two frameworks must be soft-linked. There's no reason to
147         pay this cost if we're just loading the empty document.
148
149         No new tests. It's not possible to write a test that would fail without this change since ContentFilter is not
150         notified of empty document loads.
151
152         * loader/DocumentLoader.cpp:
153         (WebCore::DocumentLoader::startLoadingMainResource): Don't initialize m_contentFilter until we know we aren't
154         loading the empty document.
155         (WebCore::DocumentLoader::DocumentLoader):
156
157 2015-11-29  Antoine Quint  <graouts@apple.com>
158
159         Browser does not fall back to SVG attribute value when CSS style value is invalid or not supported
160         https://bugs.webkit.org/show_bug.cgi?id=147932
161
162         Reviewed by Dean Jackson.
163
164         Instead of returning an SVGPaint object of type SVG_PAINTTYPE_UNKNOWN when we encounter an SVG paint
165         value that cannot be parsed, we now return `nullptr` which will cause that value to be ignored and
166         let another paint value in the cascade be used instead. This is the same approach used for SVGColor.
167         Since we're removing the only call site for `SVGPaint::createUnknown()`, we remove that function entirely.
168
169         Tests: svg/css/invalid-color-cascade.svg
170                svg/css/invalid-paint-cascade.svg
171
172         * css/SVGCSSParser.cpp:
173         (WebCore::CSSParser::parseSVGPaint):
174         * svg/SVGPaint.h:
175         (WebCore::SVGPaint::createUnknown): Deleted.
176
177 2015-11-29  Simon Fraser  <simon.fraser@apple.com>
178
179         Use SVGTransform::SVGTransformType instead of an unsigned short
180         https://bugs.webkit.org/show_bug.cgi?id=151637
181
182         Reviewed by Brady Eidson.
183
184         Make 'type' more strongly typed.
185
186         * svg/SVGTransformable.cpp:
187         (WebCore::SVGTransformable::parseTransformValue):
188         (WebCore::parseAndSkipType):
189         (WebCore::SVGTransformable::parseTransformType):
190         (WebCore::SVGTransformable::parseTransformAttribute):
191         * svg/SVGTransformable.h:
192
193 2015-11-27  Brady Eidson  <beidson@apple.com>
194
195         Modern IDB: Class-ify IDBGetResult making it impossible to get the data members wrong.
196         https://bugs.webkit.org/show_bug.cgi?id=151627
197
198         Reviewed by Alexey Proskuryakov.
199
200         No new tests (No change in behavior).
201
202         * CMakeLists.txt:
203         * WebCore.xcodeproj/project.pbxproj:
204
205         * Modules/indexeddb/IDBGetResult.cpp: Added.
206         (WebCore::IDBGetResult::dataFromBuffer):
207         (WebCore::IDBGetResult::isolatedCopy):
208         * Modules/indexeddb/IDBGetResult.h:
209         (WebCore::IDBGetResult::IDBGetResult):
210         (WebCore::IDBGetResult::valueBuffer):
211         (WebCore::IDBGetResult::keyData):
212         (WebCore::IDBGetResult::primaryKeyData):
213         (WebCore::IDBGetResult::keyPath):
214         (WebCore::IDBGetResult::setValueBuffer):
215         (WebCore::IDBGetResult::setKeyData):
216         (WebCore::IDBGetResult::setPrimaryKeyData):
217         (WebCore::IDBGetResult::setKeyPath):
218         (WebCore::IDBGetResult::dataFromBuffer): Deleted.
219         (WebCore::IDBGetResult::isolatedCopy): Deleted.
220
221         * Modules/indexeddb/client/IDBCursorImpl.cpp:
222         (WebCore::IDBClient::IDBCursor::setGetResult):
223         * Modules/indexeddb/client/IDBCursorImpl.h:
224
225         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
226         (WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
227
228         * Modules/indexeddb/legacy/IDBTransactionBackendOperations.cpp:
229         (WebCore::GetOperation::perform):
230
231         * Modules/indexeddb/server/IDBBackingStore.h:
232
233         * Modules/indexeddb/server/MemoryCursor.h:
234
235         * Modules/indexeddb/server/MemoryIndexCursor.cpp:
236         (WebCore::IDBServer::MemoryIndexCursor::currentData):
237
238         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
239         (WebCore::IDBServer::MemoryObjectStoreCursor::currentData):
240
241         * platform/CrossThreadCopier.h:
242
243 2015-11-27  Carlos Garcia Campos  <cgarcia@igalia.com>
244
245         [GTK] Do not use the WebCore garbage collector timer
246         https://bugs.webkit.org/show_bug.cgi?id=151623
247
248         Reviewed by Martin Robinson.
249
250         Now that garbage collector timers have been implemented in
251         JavaScriptCore for glib, we don't need to use another Timer in WebCore.
252
253         * bindings/js/GCController.cpp:
254         (WebCore::GCController::garbageCollectSoon):
255         (WebCore::GCController::garbageCollectNowIfNotDoneRecently):
256
257 2015-11-18  Andy Estes  <aestes@apple.com>
258
259         [Content Filtering] Crash in DocumentLoader::notifyFinished() when allowing a media document to load
260         https://bugs.webkit.org/show_bug.cgi?id=151433
261         rdar://problem/23506594
262
263         Reviewed by Alexey Proskuryakov.
264
265         When the main resource of a media document commits, WebKit cancels its load since the plug-in or media engine
266         will do its own loading. If content filtering is enabled, and the filter waits allow the load until the entire
267         resource is downloaded, then ContentFilter will attempt to call DocumentLoader::notifyFinished() immediately
268         after delivering the buffered resource data to DocumentLoader. However, delivering the data will have nulled out
269         DocumentLoader's m_mainResource when the load was cancelled, leading to a crash in notifyFinished().
270
271         To resolve this, add a new Stopped state to ContentFilter. Set this state if DocumentLoader clears its main
272         resource or detaches from its frame. If ContentFilter is in the Stopped state after calling
273         DocumentLoader::dataReceived(), do not proceed to call DocumentLoader::notifyFinished().
274
275         Test: contentfiltering/allow-media-document.html
276
277         * loader/ContentFilter.cpp:
278         (WebCore::ContentFilter::stopFilteringMainResource): Set m_state to Stopped. If m_mainResource is non-null,
279         removed ContentFilter as a client and set m_mainResource to null.
280         (WebCore::ContentFilter::notifyFinished): Stopped calling DocumentLoader::notifyFinished() if m_state is Stopped
281         after calling DocumentLoader::dataReceived().
282         * loader/ContentFilter.h:
283         * loader/DocumentLoader.cpp:
284         (WebCore::DocumentLoader::detachFromFrame): Called ContentFilter::stopFilteringMainResource() instead of setting
285         m_contentFilter to null.
286         (WebCore::DocumentLoader::clearMainResource): Ditto.
287
288 2015-11-25  Pranjal Jumde  <pjumde@apple.com>
289
290         Checks for buffer-overflows when reading characters from textRun
291         https://bugs.webkit.org/show_bug.cgi?id=151055
292         <rdar://problem/23251789>
293
294         Reviewed by Myles C. Maxfield.
295
296         Prevents an off by one error when adding the last font data to the GlyphBuffer.
297
298         * Source/WebCore/platform/graphics/WidthIterator.cpp:
299         * Source/WebCore/platform/graphics/FontCascade.cpp:
300
301 2015-11-24  Xabier Rodriguez Calvar  <calvaris@igalia.com>
302
303         [Streams API] Implement pipeTo method in readable Stream
304         https://bugs.webkit.org/show_bug.cgi?id=151588
305
306         Reviewed by Darin Adler.
307
308         Implemented pipeTo method according to the reference implementation in the spec as the spec is not written
309         yet. It can be found at https://github.com/whatwg/streams/blob/632b26a05f3106650b1ec91239ad5b012e6c64af/reference-implementation/lib/readable-stream.js#L75.
310
311         Tests: streams/pipe-to.html
312                streams/reference-implementation/brand-checks.html
313                streams/reference-implementation/pipe-through.html
314                streams/reference-implementation/pipe-to.html
315                streams/reference-implementation/pipe-to-options.html
316                streams/reference-implementation/readable-stream-templated
317
318         * Modules/streams/ReadableStream.js:
319         (doPipe): Internal function of pipeTo.
320         (closeDest): Internal function of pipeTo.
321         (abortDest): Internal function of pipeTo.
322         (pipeTo): Implemented as per spec with some other internal functions as helpers.
323
324 2015-11-24  Antti Koivisto  <antti@apple.com>
325
326         REGRESSION (r190983): Non-element, non-text nodes should not be distributed to slots
327         https://bugs.webkit.org/show_bug.cgi?id=151566
328         rdar://problem/23430177
329
330         Reviewed by Zalan Bujtas.
331
332         We don't invalidate slot assignments except for text or element children. Fix by not
333         not assigning other nodes to slots as it is not useful.
334
335         Test: fast/html/details-comment-crash.html
336
337         * dom/SlotAssignment.cpp:
338         (WebCore::slotNameFromSlotAttribute):
339         (WebCore::SlotAssignment::findAssignedSlot):
340         (WebCore::SlotAssignment::assignSlots):
341
342 2015-11-23  David Kilzer  <ddkilzer@apple.com>
343
344         Hardening against CSSSelector double frees
345         <http://webkit.org/b/56124>
346         <rdar://problem/9119036>
347
348         Reviewed by Antti Koivisto.
349
350         Add some security assertions to catch this issue if it ever
351         happens in Debug builds, and make changes in
352         CSSSelector::~CSSSelector() and
353         CSSSelectorList::deleteSelectors() to prevent obvious issues if
354         they're ever called twice in Release builds.
355
356         No new tests because we don't know how to reproduce this.
357
358         * css/CSSSelector.cpp:
359         (WebCore::CSSSelector::CSSSelector): Initialize
360         m_destructorHasBeenCalled.
361         * css/CSSSelector.h:
362         (WebCore::CSSSelector::m_destructorHasBeenCalled): Add bitfield.
363         (WebCore::CSSSelector::CSSSelector): Initialize
364         m_destructorHasBeenCalled.
365         (WebCore::CSSSelector::~CSSSelector): Add security assertion
366         that this is never called twice.  Clear out any fields that
367         would have caused us to dereference an object twice.
368
369         * css/CSSSelectorList.cpp:
370         (WebCore::CSSSelectorList::deleteSelectors): Clear
371         m_selectorArray when freeing the memory to which it was
372         pointing.  This prevents re-entrancy issues or calling this
373         method twice on the same thread.  Also restructure the for()
374         loop to prevent calling CSSSelector::isLastInSelectorList()
375         after CSSSelector::~CSSSelector() has been called (via CRBug
376         241892).
377
378 2015-11-23  Brian Burg  <bburg@apple.com>
379
380         Web Inspector: inspector settings should not be shared between different inspection levels
381         https://bugs.webkit.org/show_bug.cgi?id=151151
382
383         Reviewed by Timothy Hatcher.
384
385         InspectorController and InspectorFrontendClient should know how to compute their
386         inspection levels, so that this level can be exposed to the Inspector frontend for
387         preference disambiguation by inspection level.
388
389          - A Page with normal web content has an inspection level of 0.
390          - The first Web Inspector has an inspection level of 1.
391          - The second Web Inspector that inspects the Inspector has an inspection level of 2.
392          - And so forth...
393
394         For local frontend clients (WK1 and the ProtocolTestStub), the inspection level of
395         a Page computed as follows:
396
397         - If the page's inspector controller has no frontend client, then the Page
398         is normal web content (level 0).
399         - If the page's inspector controller has a frontend client, ask for its inspection level.
400         A frontend client looks at the inspection level reported by inspected page's inspector
401         controller and increments by one to account for the crossed inspection boundary.
402
403         No new tests, this is blocked by test infrastructure fixes (https://webkit.org/b/151573).
404
405         * inspector/InspectorController.cpp:
406         (WebCore::InspectorController::inspectionLevel): Added.
407         (WebCore::InspectorController::hasInspectorFrontendClient): Deleted.
408         * inspector/InspectorController.h:
409         * inspector/InspectorFrontendClient.h:
410         * inspector/InspectorFrontendClientLocal.cpp:
411         (WebCore::InspectorFrontendClientLocal::canAttachWindow): Check inspectionLevel().
412         (WebCore::InspectorFrontendClientLocal::inspectionLevel): Added.
413         * inspector/InspectorFrontendClientLocal.h:
414         * inspector/InspectorFrontendHost.cpp:
415         (WebCore::InspectorFrontendHost::inspectionLevel): Added.
416         * inspector/InspectorFrontendHost.h:
417         * inspector/InspectorFrontendHost.idl:
418         * page/ContextMenuController.cpp:
419         (WebCore::ContextMenuController::populate): Check inspectionLevel().
420
421 2015-11-20  Brian Burg  <bburg@apple.com>
422
423         Web Inspector: RemoteInspector should track targets and connections for remote automation
424         https://bugs.webkit.org/show_bug.cgi?id=151042
425
426         Reviewed by Joseph Pecoraro.
427
428         Use the new RemoteControllableTarget API method names.
429
430         No new tests, no behavior change.
431
432         * page/PageDebuggable.cpp:
433         (WebCore::PageDebuggable::connect):
434         (WebCore::PageDebuggable::dispatchMessageFromRemote):
435         (WebCore::PageDebuggable::dispatchMessageFromRemoteFrontend): Deleted.
436         * page/PageDebuggable.h:
437
438 2015-11-23  Brady Eidson  <beidson@apple.com>
439
440         Modern IDB: Unskip all indexeddb/mozilla tests that pass.
441         https://bugs.webkit.org/show_bug.cgi?id=151568
442         
443         Reviewed by Alex Christensen.
444
445         No new tests (Lots of skipped existing tests now pass).
446
447         * Modules/indexeddb/shared/IDBError.h:
448
449 2015-11-23  Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au>
450
451         Add WebCore namespace for generated bindings for supplemental method calls
452         https://bugs.webkit.org/show_bug.cgi?id=151431
453
454         Reviewed by Alex Christensen.
455
456         Address build failures for generated supplemental method calls which are in the WebCore namespace. 
457         The bindings are outside the WebCore namespace - so add WebCore namespace specifier where required.
458
459         * bindings/scripts/CodeGeneratorJS.pm:
460         (GenerateHeader):
461         (GenerateImplementation):
462         (GenerateParametersCheck):
463         * bindings/scripts/CodeGeneratorObjC.pm:
464         (GenerateImplementation):
465         * bindings/scripts/test/JS/JSTestInterface.cpp:
466         (WebCore::jsTestInterfaceConstructorSupplementalStaticReadOnlyAttr):
467         (WebCore::jsTestInterfaceConstructorSupplementalStaticAttr):
468         (WebCore::jsTestInterfaceSupplementalStr1):
469         (WebCore::jsTestInterfaceSupplementalStr2):
470         (WebCore::jsTestInterfaceSupplementalNode):
471         (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
472         (WebCore::setJSTestInterfaceSupplementalStr2):
473         (WebCore::setJSTestInterfaceSupplementalNode):
474         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
475         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
476         (WebCore::jsTestInterfaceConstructorFunctionSupplementalMethod4):
477         * bindings/scripts/test/ObjC/DOMTestInterface.mm:
478         (-[DOMTestInterface supplementalStr1]):
479         (-[DOMTestInterface supplementalStr2]):
480         (-[DOMTestInterface setSupplementalStr2:]):
481         (-[DOMTestInterface supplementalStr3]):
482         (-[DOMTestInterface setSupplementalStr3:]):
483         (-[DOMTestInterface supplementalNode]):
484         (-[DOMTestInterface setSupplementalNode:]):
485         (-[DOMTestInterface builtinAttribute]):
486         (-[DOMTestInterface setBuiltinAttribute:]):
487         (-[DOMTestInterface supplementalMethod1]):
488         (-[DOMTestInterface supplementalMethod2:objArg:]):
489         (-[DOMTestInterface supplementalMethod3]):
490         (-[DOMTestInterface supplementalMethod4]):
491         (-[DOMTestInterface builtinFunction]):
492
493 2015-11-23  Brady Eidson  <beidson@apple.com>
494
495         Modern IDB: When a transaction is aborted, call onerror handlers for all in-progress requests.
496         https://bugs.webkit.org/show_bug.cgi?id=151550
497
498         Reviewed by Alex Christensen.
499
500         Test: storage/indexeddb/modern/abort-requests-cancelled.html
501               storage/indexeddb/modern/idbtransaction-objectstore-failures.html (with changes)
502               storage/indexeddb/modern/index-5.html (with changes)
503               Various (currently skipped) legacy IDB tests.
504
505         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
506         (WebCore::IDBClient::IDBDatabase::transaction):
507         (WebCore::IDBClient::IDBDatabase::startVersionChangeTransaction):
508         (WebCore::IDBClient::IDBDatabase::didStartTransaction):
509         (WebCore::IDBClient::IDBDatabase::willCommitTransaction):
510         (WebCore::IDBClient::IDBDatabase::didCommitTransaction):
511         (WebCore::IDBClient::IDBDatabase::willAbortTransaction):
512         (WebCore::IDBClient::IDBDatabase::didAbortTransaction):
513         (WebCore::IDBClient::IDBDatabase::didCommitOrAbortTransaction):
514         
515         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
516         (WebCore::IDBClient::IDBTransaction::abort):
517         (WebCore::IDBClient::IDBTransaction::abortOnServerAndCancelRequests):
518         (WebCore::IDBClient::IDBTransaction::didCreateObjectStoreOnServer):
519         (WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):
520         (WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
521         (WebCore::IDBClient::IDBTransaction::didDeleteObjectStoreOnServer):
522         (WebCore::IDBClient::IDBTransaction::didDeleteIndexOnServer):
523         (WebCore::IDBClient::IDBTransaction::immediateAbort): Deleted.
524         (WebCore::IDBClient::IDBTransaction::abortOnServer): Deleted.
525         * Modules/indexeddb/client/IDBTransactionImpl.h:
526         
527         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
528         (WebCore::IDBServer::MemoryIDBBackingStore::abortTransaction):
529         (WebCore::IDBServer::MemoryIDBBackingStore::commitTransaction):
530         
531         * Modules/indexeddb/shared/IDBError.cpp:
532         (WebCore::idbErrorName):
533         (WebCore::idbErrorDescription):
534         * Modules/indexeddb/shared/IDBError.h:
535         
536         * Modules/indexeddb/shared/IDBResourceIdentifier.cpp:
537         (WebCore::IDBResourceIdentifier::loggingString):
538         * Modules/indexeddb/shared/IDBResourceIdentifier.h:
539
540 2015-11-23  Brady Eidson  <beidson@apple.com>
541
542         Modern IDB: Unskip storage/indexeddb/mozilla/global-data.html.
543         https://bugs.webkit.org/show_bug.cgi?id=151557
544
545         Reviewed by Alex Christensen.
546
547         No new tests (Unskipping existing test storage/indexeddb/mozilla/global-data.html).
548
549         - Reworking some invalid ASSERTS
550         - Actually opening pending open-database-requests after a version change transaction completes
551         - Allow starting new transactions when the version change transaction has *started* finishing, 
552           but before it finishes finishing.
553
554         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
555         (WebCore::IDBClient::IDBDatabase::transaction):
556         
557         * Modules/indexeddb/client/IDBTransactionImpl.h:
558         
559         * Modules/indexeddb/server/MemoryObjectStore.cpp:
560         (WebCore::IDBServer::MemoryObjectStore::~MemoryObjectStore):
561         
562         * Modules/indexeddb/server/MemoryObjectStoreCursor.cpp:
563         (WebCore::IDBServer::MemoryObjectStoreCursor::keyAdded): Deleted.
564         
565         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
566         (WebCore::IDBServer::UniqueIDBDatabase::UniqueIDBDatabase):
567         (WebCore::IDBServer::UniqueIDBDatabase::handleOpenDatabaseOperations):
568         (WebCore::IDBServer::UniqueIDBDatabase::commitTransaction):
569         * Modules/indexeddb/server/UniqueIDBDatabase.h:
570
571 2015-11-23  Youenn Fablet  <youenn.fablet@crf.canon.fr>
572
573         Remove DOMPromiseWithCallback
574         https://bugs.webkit.org/show_bug.cgi?id=151565
575
576         Reviewed by Eric Carlson.
577
578         DOMPromiseWithCallback is no longer used as WebCore JS built-ins are used to the cases where DOMPromiseWithCallback made sense.
579
580         No change in behavior.
581
582         * Modules/mediastream/MediaDevices.h: Moved from DOMPromiseWithCallback to DOMPromise since the API is now called by JS built-ins.
583         * bindings/js/JSDOMPromise.h:
584         (WebCore::DOMPromiseWithCallback::DOMPromiseWithCallback): Deleted.
585         (WebCore::DOMPromiseIteratorWithCallback::DOMPromiseIteratorWithCallback): Deleted.
586         (WebCore::Error>::resolve): Deleted.
587         (WebCore::Error>::reject): Deleted.
588         (WebCore::Error>::resolveEnd): Deleted.
589
590 2015-11-23  Brian Burg  <bburg@apple.com>
591
592         Web Inspector: when inspecting the inspector, add the inspection level to the title bar
593         https://bugs.webkit.org/show_bug.cgi?id=151555
594
595         Reviewed by Timothy Hatcher.
596
597         * English.lproj/Localizable.strings: add new localized string for alternate inspector title.
598
599 2015-11-23  Zan Dobersek  <zdobersek@igalia.com>
600
601         [GStreamer] No need to assert the pipeline's bus presence in MediaPlayerPrivateGStreamerBase dtor
602         https://bugs.webkit.org/show_bug.cgi?id=151558
603
604         Reviewed by Carlos Garcia Campos.
605
606         In the MediaPlayerPrivateGStreamerBase destructor, there's some leftover code
607         that acquires a reference to the GStreamer pipeline's bus object and then
608         just asserts that it's not null. Not very useful, so remove it.
609
610         Also use nullptr to null out the m_player member.
611
612         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
613         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
614
615 2015-11-17  Sergio Villar Senin  <svillar@igalia.com>
616
617         ASSERTION FAILED: freeSpace >= 0 in WebCore::RenderGrid::computeTrackSizesForDirection
618         https://bugs.webkit.org/show_bug.cgi?id=151254
619
620         Reviewed by Darin Adler.
621
622         When in quirks mode, abnormally huge margins could lead to
623         negative computations of available logical sizes. We could add
624         an !document.inQuirksMode() check in the assertion but since
625         negative freeSpace values are valid (i.e. the condition is not
626         really part of the contract and everything will work as
627         expected) I've decided to simply remove it.
628
629         Test: fast/css-grid-layout/grid-quirks-mode-huge-margin-crash.html
630
631         * rendering/RenderGrid.cpp:
632         (WebCore::RenderGrid::computeTrackSizesForDirection): Deleted.
633
634 2015-11-22  Myles C. Maxfield  <mmaxfield@apple.com>
635
636         Font selection should not consult font-variant property
637         https://bugs.webkit.org/show_bug.cgi?id=151537
638
639         Reviewed by Simon Fraser.
640
641         In section 4.7 of the CSS Fonts Level 3 spec, it says "[The font-variant and
642         font-feature-settings] do not affect font selection."
643
644         All the other browsers (Chrome, Firefox, and Edge) all obey the spec here. We
645         are the only one who misbehaves. This patch aligns our behavior with the other
646         browsers.
647
648         Test: fast/text/font-selection-font-variant.html
649
650         * css/CSSFontSelector.cpp:
651         (WebCore::computeTraitsMask): Deleted.
652         (WebCore::compareFontFaces): Deleted.
653         (WebCore::CSSFontSelector::getFontFace): Deleted.
654         * css/CSSParser.cpp:
655         (WebCore::isValidKeywordPropertyAndValue):
656         (WebCore::isKeywordPropertyID):
657         (WebCore::CSSParser::createFontFaceRule):
658         (WebCore::CSSParser::CSSParser): Deleted.
659         (WebCore::CSSParser::parseValue): Deleted.
660         (WebCore::CSSParser::parseDeclaration): Deleted.
661         (WebCore::CSSParser::clearProperties): Deleted.
662         (WebCore::CSSParser::parseFontVariant): Deleted.
663         (WebCore::CSSParser::createStyleRule): Deleted.
664         (WebCore::CSSParser::deleteFontFaceOnlyValues): Deleted.
665         * css/CSSParser.h:
666         * platform/graphics/FontDescription.cpp:
667         (WebCore::FontDescription::traitsMask): Deleted.
668         * platform/graphics/win/FontCacheWin.cpp:
669         (WebCore::traitsInFamilyEnumProc):
670         * platform/graphics/cocoa/FontCacheCoreText.cpp:
671         (WebCore::toTraitsMask):
672         * platform/text/TextFlags.h:
673
674 2015-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>
675
676         Unreviewed, rolling out r192727.
677
678         It made the selections transparent again and broke
679         /webkit2/WebKitWebView/snapshot
680
681         Reverted changeset:
682
683         "[GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor,
684         et. al. should not clobber state of cached GtkStyleContexts"
685         https://bugs.webkit.org/show_bug.cgi?id=151533
686         http://trac.webkit.org/changeset/192727
687
688 2015-11-22  Michael Catanzaro  <mcatanzaro@igalia.com>
689
690         [GTK] RenderThemeGtk::platformActiveSelectionBackgroundColor, et. al. should not clobber state of cached GtkStyleContexts
691         https://bugs.webkit.org/show_bug.cgi?id=151533
692
693         Reviewed by Carlos Garcia Campos.
694
695         platformActiveSelectionBackgroundColor(), platformInactiveSelectionBackgroundColor(), etc.
696         are const functions intended only to return a color used for painting, but since r174929
697         they also change the state of the cached style contexts we use for GTK_TYPE_ENTRY and
698         GTK_TYPE_TREE_VIEW. That's wrong; those style contexts should not have any state set. This
699         could cause theme colors returned by those GtkStyleContexts to change unexpectedly,
700         depending on whether the state is explicitly set before each use, or whether the theme
701         actually uses the states.
702
703         This didn't cause any regression only because every place using these style contexts
704         explicitly sets the state of the style contexts before use. In fact, the GtkTreeView style
705         context is not used anywhere else, and the GtkEntry style context is only used in
706         paintTextField, which does set the state before use (and then reverts it using
707         save/restore), so this cannot have broken anything in practice. But it's a landmine waiting
708         for the next programmer to trip it.
709
710         Fix this with a gtk_style_context_save()/gtk_style_context_restore() pair.
711
712         * rendering/RenderThemeGtk.cpp:
713         (WebCore::styleColor):
714
715 2015-11-21  Myles C. Maxfield  <mmaxfield@apple.com>
716
717         Tiny cleanup in ComplexTextController::collectComplexTextRuns()
718         https://bugs.webkit.org/show_bug.cgi?id=151534
719
720         Reviewed by Zalan Bujtas.
721
722         The isMissingGlyph boolean is completely unnecessary. Its entire
723         responsiblity is duplicated by the "font" pointer.
724
725         No new tests because there is no behavior change.
726
727         * platform/graphics/mac/ComplexTextController.cpp:
728         (WebCore::ComplexTextController::collectComplexTextRuns):
729
730 == Rolled over to ChangeLog-2015-11-21 ==