[GStreamer] Use MainThreadNotifier to send notifications to main thread in WebKitWebS...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2015-11-06  Carlos Garcia Campos  <cgarcia@igalia.com>
2
3         [GStreamer] Use MainThreadNotifier to send notifications to main thread in WebKitWebSourceGStreamer
4         https://bugs.webkit.org/show_bug.cgi?id=150890
5
6         Reviewed by Žan Doberšek.
7
8         Instead of the GThreadSafeMainLoopSources.
9
10         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
11         (webKitWebSrcStop):
12         (webKitWebSrcChangeState):
13         (webKitWebSrcNeedData):
14         (webKitWebSrcEnoughData):
15         (webKitWebSrcSeek):
16         (StreamingClient::handleResponseReceived):
17         (StreamingClient::handleDataReceived):
18         (StreamingClient::handleNotifyFinished):
19         (webKitWebSrcFinalize): Deleted.
20         (webKitWebSrcSetProperty): Deleted.
21         (webKitWebSrcGetProperty): Deleted.
22         (webKitWebSrcSetExtraHeader): Deleted.
23         (webKitWebSrcStart): Deleted.
24         (webKitWebSrcGetProtocols): Deleted.
25         (webKitWebSrcGetUri): Deleted.
26         (webKitWebSrcSetUri): Deleted.
27         (webKitWebSrcUriHandlerInit): Deleted.
28
29 2015-11-06  Carlos Garcia Campos  <cgarcia@igalia.com>
30
31         [GStreamer] Use MainThreadNotifier to send notifications to main thread in TrackPrivateGStreamer
32         https://bugs.webkit.org/show_bug.cgi?id=150889
33
34         Reviewed by Žan Doberšek.
35
36         Instead of the GThreadSafeMainLoopSources.
37
38         * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
39         (WebCore::InbandTextTrackPrivateGStreamer::InbandTextTrackPrivateGStreamer):
40         (WebCore::InbandTextTrackPrivateGStreamer::handleSample):
41         (WebCore::InbandTextTrackPrivateGStreamer::streamChanged):
42         * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
43         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
44         (WebCore::TrackPrivateBaseGStreamer::TrackPrivateBaseGStreamer):
45         (WebCore::TrackPrivateBaseGStreamer::disconnect):
46         (WebCore::TrackPrivateBaseGStreamer::activeChangedCallback):
47         (WebCore::TrackPrivateBaseGStreamer::tagsChangedCallback):
48         (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
49         (WebCore::TrackPrivateBaseGStreamer::~TrackPrivateBaseGStreamer): Deleted.
50         (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged): Deleted.
51         * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
52
53 2015-11-06  Csaba Osztrogonác  <ossy@webkit.org>
54
55         Suppress deprecated-declarations warning in WebCore/platform/URL.cpp
56         https://bugs.webkit.org/show_bug.cgi?id=150803
57
58         Reviewed by Alexey Proskuryakov.
59
60         * platform/URL.cpp:
61         (WebCore::appendEncodedHostname):
62
63 2015-11-06  Carlos Garcia Campos  <cgarcia@igalia.com>
64
65         [GStreamer] Do not use GThreadSafeMainLoopSource to send notifications to the main thread in MediaPlayerPrivateGStreamer
66         https://bugs.webkit.org/show_bug.cgi?id=150888
67
68         Reviewed by Žan Doberšek.
69
70         Analyzing how the main loop sources were used in GST code I've
71         noticed that in most of the cases they are used to send
72         notifications to the main thread. The way it works in those cases
73         is that some state is updated in whatever thread and we notify the
74         main thread to use the new state. There's no data passed to the
75         main thread, they are just notifications. I've also noticed that
76         we are not doing this exactly as expected in several of those
77         cases. GThreadSafeMainLoopSource cancels the current source when a
78         new one is scheduled, and that was done this way because previous
79         code in GST using GSources directly did it that way. But that's
80         not what we want, if there's a notification pending, since the
81         state is updated, we can just wait for it to happen instead of
82         cancelling and scheduling a new one. I've also noticed that in
83         most of the cases where we schedule notifications to the main
84         thread, we can be already in the main thread, so we could avoid
85         the schedule entirely.
86         We can use RunLoop::dispatch() to send notifications to the main
87         thread, but there's no way to cancel those tasks. This patch adds
88         a new helper class MainThreadNotifier that uses an enum of flags to
89         handle different kind of notifications. It uses
90         RunLoop::dispatch() to send notifications to the main thread, but
91         only if there isn't one pending for the given type.
92         This patch also makes signal callbacks static members to be able
93         to make the private methods actually private.
94
95         * platform/graphics/gstreamer/MainThreadNotifier.h: Added.
96         (WebCore::MainThreadNotifier::MainThreadNotifier):
97         (WebCore::MainThreadNotifier::notify):
98         (WebCore::MainThreadNotifier::cancelPendingNotifications):
99         (WebCore::MainThreadNotifier::addPendingNotification):
100         (WebCore::MainThreadNotifier::removePendingNotification):
101         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
102         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamPropertiesCallback):
103         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
104         (WebCore::MediaPlayerPrivateGStreamer::videoChangedCallback):
105         (WebCore::MediaPlayerPrivateGStreamer::videoSinkCapsChangedCallback):
106         (WebCore::MediaPlayerPrivateGStreamer::audioChangedCallback):
107         (WebCore::MediaPlayerPrivateGStreamer::textChangedCallback):
108         (WebCore::MediaPlayerPrivateGStreamer::newTextSampleCallback):
109         (WebCore::MediaPlayerPrivateGStreamer::sourceChangedCallback):
110         (WebCore::MediaPlayerPrivateGStreamer::createAudioSink):
111         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
112         (WebCore::MediaPlayerPrivateGStreamer::setAudioStreamProperties): Deleted.
113         (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine): Deleted.
114         (WebCore::initializeGStreamerAndRegisterWebKitElements): Deleted.
115         (WebCore::MediaPlayerPrivateGStreamer::load): Deleted.
116         (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfVideo): Deleted.
117         (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfAudio): Deleted.
118         (WebCore::MediaPlayerPrivateGStreamer::notifyPlayerOfText): Deleted.
119         (WebCore::MediaPlayerPrivateGStreamer::canSaveMediaData): Deleted.
120         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
121         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
122         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
123         (WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
124         (WebCore::MediaPlayerPrivateGStreamerBase::muteChangedCallback):
125         (WebCore::MediaPlayerPrivateGStreamerBase::repaintCallback):
126         (WebCore::MediaPlayerPrivateGStreamerBase::drawCallback):
127         (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):
128         (WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
129         (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase): Deleted.
130         (WebCore::MediaPlayerPrivateGStreamerBase::setPipeline): Deleted.
131         (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage): Deleted.
132         (WebCore::MediaPlayerPrivateGStreamerBase::muted): Deleted.
133         (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Deleted.
134         (WebCore::MediaPlayerPrivateGStreamerBase::droppedFrameCount): Deleted.
135         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
136         (WebCore::MediaPlayerPrivateGStreamerBase::setVisible): Deleted.
137
138 2015-11-06  Yoav Weiss  <yoav@yoav.ws>
139
140         Expose HTMLImageElement sizes attribute in IDL
141         https://bugs.webkit.org/show_bug.cgi?id=150230
142
143         Reviewed by Darin Adler.
144
145         No new tests, but fixed test expectations for exposed interfaces.
146
147         * html/HTMLImageElement.idl: Make sure that `sizes` is exposed as an IDL attribute, to ensure proper feature detection of sizes support.
148
149 2015-11-05  Carlos Garcia Campos  <cgarcia@igalia.com>
150
151         [GStreamer] Use RunLoop::Timer instead of GMainLoopSource in video sink
152         https://bugs.webkit.org/show_bug.cgi?id=150807
153
154         Reviewed by Žan Doberšek.
155
156         Since we always wait until the sample is actually rendered we
157         don't really need either a thread safe main loop source, nor
158         cancelling if already requested and other things GMainLoopSource does.
159         This adds a helper class VideoRenderRequestScheduler to use the
160         RunLoop::Timer. All the logic to syncronize between threads has
161         been moved to this helper class too.
162
163         * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
164         (VideoRenderRequestScheduler::VideoRenderRequestScheduler):
165         (VideoRenderRequestScheduler::start):
166         (VideoRenderRequestScheduler::stop):
167         (VideoRenderRequestScheduler::requestRender):
168         (VideoRenderRequestScheduler::isUnlocked):
169         (VideoRenderRequestScheduler::render):
170         (_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate):
171         (webkitVideoSinkRepaintRequested):
172         (webkitVideoSinkRender):
173         (webkitVideoSinkUnlock):
174         (webkitVideoSinkUnlockStop):
175         (webkitVideoSinkStop):
176         (webkitVideoSinkStart):
177         (_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Deleted.
178         (webkitVideoSinkTimeoutCallback): Deleted.
179         (unlockSampleMutex): Deleted.
180
181 2015-11-05  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>
182
183         Add runtime and compile time flags for enabling Web Animations API and model.
184         https://bugs.webkit.org/show_bug.cgi?id=150914
185
186         Reviewed by Benjamin Poulain.
187
188         Add ENABLE_WEB_ANIMATIONS compile time flag, runtime flag webAnimationsEnabled and Expose WK2 preference for runtime flag.
189
190         * Configurations/FeatureDefines.xcconfig:
191         * bindings/generic/RuntimeEnabledFeatures.cpp:
192         (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
193         * bindings/generic/RuntimeEnabledFeatures.h:
194         (WebCore::RuntimeEnabledFeatures::setWebAnimationsEnabled):
195         (WebCore::RuntimeEnabledFeatures::webAnimationsEnabled):
196
197 2015-11-05  Commit Queue  <commit-queue@webkit.org>
198
199         Unreviewed, rolling out r192089.
200         https://bugs.webkit.org/show_bug.cgi?id=150966
201
202         This change broke an existing layout test on Yosemite and
203         Mavericks (Requested by ryanhaddad on #webkit).
204
205         Reverted changeset:
206
207         "Preview on apple.com/contact with all text selected shows a
208         map"
209         https://bugs.webkit.org/show_bug.cgi?id=150963
210         http://trac.webkit.org/changeset/192089
211
212 2015-11-05  Tim Horton  <timothy_horton@apple.com>
213
214         Preview on apple.com/contact with all text selected shows a map
215         https://bugs.webkit.org/show_bug.cgi?id=150963
216         <rdar://problem/23421750>
217
218         Reviewed by Beth Dakin.
219
220         * editing/mac/DictionaryLookup.h:
221         * editing/mac/DictionaryLookup.mm:
222         (WebCore::DictionaryLookup::rangeForSelection):
223         If the range that Lookup decides to use doesn't intersect the hit point,
224         just ignore Lookup.
225
226         (WebCore::DictionaryLookup::rangeAtHitTestResult):
227         If the selection-based Lookup fails to find a usable result, fall back
228         to looking around the hit point.
229
230 2015-11-05  Brady Eidson  <beidson@apple.com>
231
232         Modern IDB: Implement IDBIndex get/getKey/count requests.
233         https://bugs.webkit.org/show_bug.cgi?id=150910
234
235         Reviewed by Alex Christensen.
236
237         Tests: storage/indexeddb/modern/index-get-count-basic.html
238                storage/indexeddb/modern/index-get-count-failures.html
239
240         * Modules/indexeddb/IndexedDB.h:
241
242         * Modules/indexeddb/client/IDBAnyImpl.cpp:
243         (WebCore::IDBClient::IDBAny::IDBAny):
244         (WebCore::IDBClient::IDBAny::modernIDBIndex):
245         * Modules/indexeddb/client/IDBAnyImpl.h:
246         (WebCore::IDBClient::IDBAny::create):
247         (WebCore::IDBClient::IDBAny::createUndefined):
248
249         * Modules/indexeddb/client/IDBIndexImpl.cpp:
250         (WebCore::IDBClient::IDBIndex::count):
251         (WebCore::IDBClient::IDBIndex::doCount):
252         (WebCore::IDBClient::IDBIndex::get):
253         (WebCore::IDBClient::IDBIndex::doGet):
254         (WebCore::IDBClient::IDBIndex::getKey):
255         (WebCore::IDBClient::IDBIndex::doGetKey):
256         * Modules/indexeddb/client/IDBIndexImpl.h:
257         (WebCore::IDBClient::IDBIndex::info):
258         
259         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
260         (WebCore::IDBClient::IDBObjectStore::isDeleted):
261         (WebCore::IDBClient::IDBObjectStore::modernTransaction):
262         
263         * Modules/indexeddb/client/IDBRequestImpl.cpp:
264         (WebCore::IDBClient::IDBRequest::createCount):
265         (WebCore::IDBClient::IDBRequest::createGet):
266         (WebCore::IDBClient::IDBRequest::IDBRequest):
267         (WebCore::IDBClient::IDBRequest::sourceObjectStoreIdentifier):
268         (WebCore::IDBClient::IDBRequest::sourceIndexIdentifier):
269         (WebCore::IDBClient::IDBRequest::requestedIndexRecordType):
270         (WebCore::IDBClient::IDBRequest::setResultToUndefined):
271         * Modules/indexeddb/client/IDBRequestImpl.h:
272         
273         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
274         (WebCore::IDBClient::IDBTransaction::requestGetValue):
275         (WebCore::IDBClient::IDBTransaction::requestGetKey):
276         (WebCore::IDBClient::IDBTransaction::didGetRecordOnServer):
277         (WebCore::IDBClient::IDBTransaction::requestCount):
278         * Modules/indexeddb/client/IDBTransactionImpl.h:
279         
280         * Modules/indexeddb/client/TransactionOperation.cpp:
281         (WebCore::IDBClient::TransactionOperation::TransactionOperation):
282         * Modules/indexeddb/client/TransactionOperation.h:
283         (WebCore::IDBClient::TransactionOperation::indexIdentifier):
284         (WebCore::IDBClient::TransactionOperation::indexRecordType):
285         
286         * Modules/indexeddb/server/IDBBackingStore.h:
287         
288         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
289         (WebCore::IDBServer::MemoryIDBBackingStore::getRecord):
290         (WebCore::IDBServer::MemoryIDBBackingStore::getIndexRecord):
291         (WebCore::IDBServer::MemoryIDBBackingStore::getCount):
292         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
293         
294         * Modules/indexeddb/server/MemoryIndex.cpp:
295         (WebCore::IDBServer::MemoryIndex::valueForKeyRange):
296         (WebCore::IDBServer::MemoryIndex::countForKeyRange):
297         * Modules/indexeddb/server/MemoryIndex.h:
298         
299         * Modules/indexeddb/server/MemoryObjectStore.cpp:
300         (WebCore::IDBServer::MemoryObjectStore::createIndex):
301         (WebCore::IDBServer::MemoryObjectStore::countForKeyRange):
302         (WebCore::IDBServer::MemoryObjectStore::indexValueForKeyRange):
303         * Modules/indexeddb/server/MemoryObjectStore.h:
304         
305         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
306         (WebCore::IDBServer::UniqueIDBDatabase::getRecord):
307         (WebCore::IDBServer::UniqueIDBDatabase::performGetIndexRecord):
308         (WebCore::IDBServer::UniqueIDBDatabase::getCount):
309         (WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
310         (WebCore::IDBServer::UniqueIDBDatabase::performGetRecord): Deleted.
311         * Modules/indexeddb/server/UniqueIDBDatabase.h:
312         
313         * Modules/indexeddb/shared/IDBRequestData.cpp:
314         (WebCore::IDBRequestData::IDBRequestData):
315         (WebCore::IDBRequestData::objectStoreIdentifier):
316         (WebCore::IDBRequestData::indexIdentifier):
317         (WebCore::IDBRequestData::indexRecordType):
318         * Modules/indexeddb/shared/IDBRequestData.h:
319
320 2015-11-05  Zhuo Li  <zachli@apple.com>
321
322         Rename the variable to avoid conflict between the variable and the parameter.
323         https://bugs.webkit.org/show_bug.cgi?id=150019.
324
325         Reviewed by Dan Bernstein.
326
327         * platform/cocoa/SearchPopupMenuCocoa.mm:
328         (WebCore::typeCheckedRecentSearchesRemovingRecentSearchesAddedAfterDate): Rename `date`
329         to `dateAdded` so that it does not have the same name as the parameter passed in.
330
331 2015-11-05  Joseph Pecoraro  <pecoraro@apple.com>
332
333         Web Inspector: Clean up InjectedScript uses
334         https://bugs.webkit.org/show_bug.cgi?id=150921
335
336         Reviewed by Timothy Hatcher.
337
338         * inspector/CommandLineAPIModule.cpp:
339         (WebCore::CommandLineAPIModule::injectIfNeeded):
340         (WebCore::CommandLineAPIModule::CommandLineAPIModule):
341         * inspector/CommandLineAPIModule.h:
342         * inspector/WebInjectedScriptManager.cpp:
343         (WebCore::WebInjectedScriptManager::didCreateInjectedScript):
344         * inspector/WebInjectedScriptManager.h:
345
346 2015-11-05  Joseph Pecoraro  <pecoraro@apple.com>
347
348         Web Inspector: Put ScriptDebugServer into InspectorEnvironment and cleanup duplicate references
349         https://bugs.webkit.org/show_bug.cgi?id=150869
350
351         Reviewed by Brian Burg.
352
353         Refactoring covered by existing tests.
354
355         * WebCore.xcodeproj/project.pbxproj:
356         Privately export PageScriptDebuggerAgent.h due to InspectorController.h needing it.
357
358         * inspector/InspectorController.h:
359         * inspector/InspectorController.cpp:
360         (WebCore::InspectorController::InspectorController):
361         (WebCore::InspectorController::scriptDebugServer):
362         Own the PageScriptDebugServer.
363
364         * inspector/WorkerInspectorController.h:
365         * inspector/WorkerInspectorController.cpp:
366         (WebCore::WorkerInspectorController::WorkerInspectorController):
367         (WebCore::WorkerInspectorController::scriptDebugServer):
368         Own the WorkerScriptDebugServer.
369
370         (WebCore::WorkerInspectorController::vm):
371         Use the VM accessed through the worker global object.
372
373         * inspector/InspectorWebAgentBase.h:
374         (WebCore::InspectorAgentBase::InspectorAgentBase):
375         Given Web agents a m_environment convenience to access the InspectorEnvironment.
376
377         * inspector/InspectorNetworkAgent.cpp:
378         (WebCore::InspectorNetworkAgent::timestamp):
379         * inspector/InspectorPageAgent.cpp:
380         (WebCore::InspectorPageAgent::timestamp):
381         (WebCore::InspectorPageAgent::enable):
382         (WebCore::InspectorPageAgent::frameStartedLoading):
383         * inspector/InspectorTimelineAgent.cpp:
384         (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
385         (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
386         (WebCore::InspectorTimelineAgent::internalStart):
387         (WebCore::InspectorTimelineAgent::internalStop):
388         (WebCore::InspectorTimelineAgent::timestamp):
389         (WebCore::InspectorTimelineAgent::startFromConsole):
390         (WebCore::InspectorTimelineAgent::willCallFunction):
391         (WebCore::InspectorTimelineAgent::willEvaluateScript):
392         (WebCore::InspectorTimelineAgent::setPageScriptDebugServer): Deleted.
393         * inspector/InspectorTimelineAgent.h:
394         Use the InspectorEnvironment for VM / ScriptDebugServer.
395
396         * inspector/PageDebuggerAgent.cpp:
397         (WebCore::PageDebuggerAgent::PageDebuggerAgent): Deleted.
398         (WebCore::PageDebuggerAgent::scriptDebugServer): Deleted.
399         * inspector/PageDebuggerAgent.h:
400         * inspector/PageRuntimeAgent.cpp:
401         (WebCore::PageRuntimeAgent::globalVM): Deleted.
402         * inspector/PageRuntimeAgent.h:
403         * inspector/WorkerDebuggerAgent.h:
404         * inspector/WorkerRuntimeAgent.cpp:
405         (WebCore::WorkerRuntimeAgent::globalVM): Deleted.
406         * inspector/WorkerRuntimeAgent.h:
407         * inspector/WorkerDebuggerAgent.cpp:
408         (WebCore::WorkerDebuggerAgent::WorkerDebuggerAgent): Deleted.
409         (WebCore::WorkerDebuggerAgent::scriptDebugServer): Deleted.
410         Remove now unnecessary subclass code.
411
412         (WebCore::WorkerDebuggerAgent::interruptAndDispatchInspectorCommands):
413         One more special case for accessing Worker properties from the ScriptDebugServer.
414
415 2015-11-05  Xabier Rodriguez Calvar  <calvaris@igalia.com>
416
417         [Streams API] Shield implementation from user mangling Promise.reject and resolve methods
418         https://bugs.webkit.org/show_bug.cgi?id=150895
419
420         Reviewed by Youenn Fablet.
421
422         Replace all calls to @Promise.resolve and @Promise.reject with their internal slot counterparts. This way we
423         ensure that if the user replaces those constructor methods, our implementation still works.
424
425         Test: streams/streams-promises.html.
426
427         * Modules/streams/ReadableStream.js:
428         (initializeReadableStream):
429         (cancel):
430         * Modules/streams/ReadableStreamInternals.js:
431         (privateInitializeReadableStreamReader):
432         (cancelReadableStream):
433         (readFromReadableStreamReader):
434         * Modules/streams/ReadableStreamReader.js:
435         (cancel):
436         (read):
437         (closed):
438         * Modules/streams/StreamInternals.js:
439         (promiseInvokeOrNoop):
440         (promiseInvokeOrFallbackOrNoop):
441         * Modules/streams/WritableStream.js:
442         (initializeWritableStream):
443         (abort):
444         (close):
445         (write):
446         (closed):
447         (ready):
448
449 2015-11-05  Andreas Kling  <akling@apple.com>
450
451         Give ResourceUsageOverlay a stacked chart for dirty memory per category.
452         <https://webkit.org/b/150905>
453
454         Reviewed by Antti Koivisto.
455
456         Refactored the data gathering to operate on "memory categories", a memory category is at
457         the top level a VM tag, e.g the VM tag for our bmalloc allocator. It can in turn have
458         sub-categories, e.g one for the GC heap, which allocates all of its blocks through bmalloc
459         and thus end up in the same tag.
460
461         Each category also has a hard-coded color, which is used consistently in labels and charts.
462
463         Also went back to drawing everything with CGContext directly instead of GraphicsContext
464         since the latter is not thread safe.
465
466         * page/ResourceUsageOverlay.h:
467         * page/cocoa/ResourceUsageOverlayCocoa.mm:
468         (-[WebOverlayLayer drawInContext:]):
469         (WebCore::RingBuffer::last):
470         (WebCore::MemoryCategoryInfo::MemoryCategoryInfo):
471         (WebCore::ResourceUsageData::ResourceUsageData):
472         (WebCore::showText):
473         (WebCore::drawGraphLabel):
474         (WebCore::drawCpuHistory):
475         (WebCore::drawGCHistory):
476         (WebCore::drawMemHistory):
477         (WebCore::drawSlice):
478         (WebCore::drawMemoryPie):
479         (WebCore::ResourceUsageOverlay::platformDraw):
480         (WebCore::categoryForVMTag):
481         (WebCore::runSamplerThread):
482         (WebCore::drawPlate): Deleted.
483         (WebCore::fontCascade): Deleted.
484         (WebCore::ResourceUsageOverlay::draw): Deleted.
485
486 2015-11-05  Simon Fraser  <simon.fraser@apple.com>
487
488         Having page overlays causes iframe to get composited
489         https://bugs.webkit.org/show_bug.cgi?id=150920
490
491         Reviewed by Tim Horton.
492         
493         When deciding whether to enable compositing for a subframe, don't consult the
494         main frame's overlay count. Only do that for the main frame.
495
496         (WebCore::RenderLayerCompositor::updateCompositingLayers):
497
498 2015-11-05  Manuel Rego Casasnovas  <rego@igalia.com>
499
500         [css-grid] Support positioned grid children
501         https://bugs.webkit.org/show_bug.cgi?id=150837
502
503         Reviewed by Darin Adler.
504
505         According to the spec positioned grid children have
506         a special behavior described at:
507         https://drafts.csswg.org/css-grid/#abspos
508
509         The idea is that for positioned children the containing block will
510         correspond to the padding edges of the grid container, unless the
511         grid placement properties are defined.
512         This not only affects to positioned grid items (direct children) but
513         also to any descendant where the containing block is the grid container.
514
515         In order to manage this special behavior, the patch is overriding
516         RenderBlock::layoutPositionedObject() to calculate the position and size
517         depending on the grid-placement properties.
518
519         RenderBox class has some changes to calculate the containing block width
520         and height for positioned objects (using the override value). And also
521         to compute their static position.
522
523         Finally, the positioned items are not taken into account in all the
524         different grid methods, in order that they do not interfere the layout
525         of the grid as stated in the spec.
526
527         Tests: fast/css-grid-layout/absolute-positioning-grid-container-containing-block.html
528                fast/css-grid-layout/absolute-positioning-grid-container-parent.html
529                fast/css-grid-layout/grid-positioned-items-background.html
530                fast/css-grid-layout/grid-positioned-items-implicit-grid-line.html
531                fast/css-grid-layout/grid-positioned-items-implicit-grid.html
532                fast/css-grid-layout/grid-positioned-items-unknown-named-grid-line.html
533                fast/css-grid-layout/grid-sizing-positioned-items.html
534                fast/css-grid-layout/positioned-grid-items-should-not-create-implicit-tracks.html
535                fast/css-grid-layout/positioned-grid-items-should-not-take-up-space.html
536
537         * rendering/OrderIterator.cpp:
538         (WebCore::OrderIterator::next): Fix method to avoid issues if no items
539         are added to the iterator.
540         * rendering/RenderBlock.h: Mark layoutPositionedObject() as virtual.
541         * rendering/RenderBox.cpp: Add new maps for inline/block extra offsets.
542         (WebCore::RenderBox::~RenderBox): Clear the new maps.
543         (WebCore::RenderBox::extraInlineOffset): Extra offset that we need to
544         apply to positioned grid children due to the grid placement properties.
545         (WebCore::RenderBox::extraBlockOffset): Ditto.
546         (WebCore::RenderBox::setExtraInlineOffset):
547         (WebCore::RenderBox::setExtraBlockOffset):
548         (WebCore::RenderBox::clearExtraInlineAndBlockOffests):
549         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned): Use the
550         override containing block if any.
551         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned): Ditto.
552         (WebCore::RenderBox::computePositionedLogicalWidth): Add the extra
553         offset if it's a positioned element.
554         (WebCore::RenderBox::computePositionedLogicalHeight): Ditto.
555         * rendering/RenderBox.h:
556         (WebCore::RenderBox::scrollbarLogicalWidth): Add utility method.
557         * rendering/RenderGrid.cpp:
558         (WebCore::RenderGrid::layoutBlock): Clear grid after layout positioned
559         objects instead of at the end of layoutGridItems().
560         (WebCore::RenderGrid::placeItemsOnGrid): Ignore positioned items.
561         (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ditto.
562         (WebCore::RenderGrid::layoutGridItems): Ditto.
563         (WebCore::RenderGrid::prepareChildForPositionedLayout): Set static
564         position for positioned items.
565         (WebCore::RenderGrid::layoutPositionedObject): Calculate position and
566         size for positioned children.
567         (WebCore::RenderGrid::offsetAndBreadthForPositionedChild): Calculate
568         extra offset and breadth for positioned children.
569         * rendering/RenderGrid.h:
570         * rendering/style/GridResolvedPosition.cpp:
571         (WebCore::GridResolvedPosition::isNonExistentNamedLineOrArea): Make it a
572         public static method.
573         (WebCore::GridUnresolvedSpan::adjustGridPositionsFromStyle): Fix calls
574         to isNonExistentNamedLineOrArea().
575         (WebCore::resolveGridPositionFromStyle): Ditto.
576         * rendering/style/GridResolvedPosition.h: Make
577         isNonExistentNamedLineOrArea() public.
578
579 2015-11-04  Jiewen Tan  <jiewen_tan@apple.com>
580
581         Null dereference loading Blink layout test editing/execCommand/delete-hidden-crash.html
582         https://bugs.webkit.org/show_bug.cgi?id=149289
583         <rdar://problem/22746352>
584
585         Reviewed by Enrica Casucci.
586
587         This is a merge of Blink r176497:
588         https://codereview.chromium.org/340713003
589
590         It ensures the start & end positions in DeleteSelectionCommand::initializePositionData
591         are editable.
592
593         Test: editing/execCommand/delete-hidden-crash.html
594
595         * editing/DeleteSelectionCommand.cpp:
596         (WebCore::DeleteSelectionCommand::initializePositionData):
597         * editing/Editor.cpp:
598         (WebCore::Editor::advanceToNextMisspelling):
599         * editing/htmlediting.cpp:
600         (WebCore::firstEditablePositionAfterPositionInRoot):
601         (WebCore::lastEditablePositionBeforePositionInRoot):
602         These two functions don't make any sense to return VisiblePosition. Change them
603         to return Position instead. Since there is a viable conversion from Position to
604         VisiblePosition. It should not change the behavior of any other components depending
605         on it.
606         * editing/htmlediting.h:
607
608 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
609
610         Ruby base ending in tatechuyoko forces a line break before the tatechuyoko
611         https://bugs.webkit.org/show_bug.cgi?id=150883
612
613         Reviewed by Darin Adler.
614
615         Asking the width of a 0-length tatechuyoko should return 0.
616
617         Test: fast/text/ruby-tatechuyoko.html
618
619         * rendering/RenderCombineText.cpp:
620         (WebCore::RenderCombineText::width):
621
622 2015-11-04  Tim Horton  <timothy_horton@apple.com>
623
624         Update the name of a Mail class that we hardcode
625         https://bugs.webkit.org/show_bug.cgi?id=150879
626         <rdar://problem/23384627>
627
628         Reviewed by Alexey Proskuryakov.
629
630         * editing/cocoa/HTMLConverter.mm:
631         (_WebMessageDocumentClass):
632
633 2015-11-04  Eric Carlson  <eric.carlson@apple.com>
634
635         [MediaStream] A RealtimeMediaSource should begin producing data automatically
636         https://bugs.webkit.org/show_bug.cgi?id=150851
637         rdar://problem/23380636
638
639         A RealtimeMediaSource should be producing data unless it is muted, which is not under the 
640         control of the application, so a local source should begin producing data as soon as it
641         is added to a stream. Remove "producing data" and "enabled" observer callbacks because 
642         they don't provide anything that the "muted" callback already provides.
643         
644         Reviewed by Jer Noble.
645
646         * Modules/mediastream/MediaStreamTrack.cpp:
647         (WebCore::MediaStreamTrack::trackProducingDataChanged): Deleted.
648         * Modules/mediastream/MediaStreamTrack.h:
649
650         * Modules/mediastream/UserMediaRequest.cpp:
651         (WebCore::UserMediaRequest::didCreateStream): Tell sources to begin producing data.
652
653         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
654         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Don't call stream->startProducingData,
655           it isn't necessary.
656         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setReadyState): Call characteristicsChanged 
657           when the readyState changes.
658
659         * platform/mediastream/MediaStreamPrivate.cpp:
660         (WebCore::MediaStreamPrivate::trackProducingDataChanged): Deleted.
661         * platform/mediastream/MediaStreamPrivate.h:
662
663         * platform/mediastream/MediaStreamTrackPrivate.cpp:
664         (WebCore::MediaStreamTrackPrivate::sourceProducingDataChanged): Deleted.
665         (WebCore::MediaStreamTrackPrivate::sourceEnabledChanged): Deleted.
666         * platform/mediastream/MediaStreamTrackPrivate.h:
667
668         * platform/mediastream/RealtimeMediaSource.cpp:
669         (WebCore::RealtimeMediaSource::isProducingDataDidChange): Deleted.
670         (WebCore::RealtimeMediaSource::setEnabled): Deleted.
671         * platform/mediastream/RealtimeMediaSource.h:
672
673         * platform/mediastream/mac/AVAudioCaptureSource.mm:
674         (WebCore::AVAudioCaptureSource::captureOutputDidOutputSampleBufferFromConnection): !enabled() -> muted().
675
676         * platform/mediastream/mac/AVMediaCaptureSource.mm:
677         (WebCore::AVMediaCaptureSource::captureSessionIsRunningDidChange): Don't call isProducingDataDidChange..
678
679         * platform/mediastream/mac/AVVideoCaptureSource.mm:
680         (WebCore::AVVideoCaptureSource::processNewFrame): !enabled() -> muted().
681
682 2015-11-04  Jer Noble  <jer.noble@apple.com>
683
684         [iOS] <video> elements without audio tracks should not interrupt music
685         https://bugs.webkit.org/show_bug.cgi?id=149888
686
687         Reviewed by Eric Carlson.
688
689         Tests: TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm
690
691         Only set the AVAudioSession category to "playback" when the video element in question has an
692         audio track.
693
694         Add a new PlatformMediaSessionClient method called canProduceAudio(), overridden in HTMLMediaElement
695         and AudioContext, which is checked when updating the AudioSession category in 
696         PlatformMediaSessionManager::updateSessionState().
697
698         * Modules/webaudio/AudioContext.h:
699         * html/HTMLMediaElement.cpp:
700         (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
701         * html/HTMLMediaElement.h:
702         * platform/audio/PlatformMediaSession.cpp:
703         (WebCore::PlatformMediaSession::activeAudioSessionRequired):
704         (WebCore::PlatformMediaSession::setCanProduceAudio):
705         * platform/audio/PlatformMediaSession.h:
706         (WebCore::PlatformMediaSession::canProduceAudio):
707         * platform/audio/PlatformMediaSessionManager.cpp:
708         (WebCore::PlatformMediaSessionManager::canProduceAudio):
709         (WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged):
710         (WebCore::PlatformMediaSessionManager::activeAudioSessionRequired):
711         (WebCore::PlatformMediaSessionManager::sessionWillBeginPlayback):
712         * platform/audio/PlatformMediaSessionManager.h:
713         * platform/audio/mac/MediaSessionManagerMac.cpp:
714         (PlatformMediaSessionManager::updateSessionState):
715
716 2015-11-03  Dean Jackson  <dino@apple.com>
717
718         Accept 8 and 4 value hex colors (#RRGGBBAA)
719         https://bugs.webkit.org/show_bug.cgi?id=150853
720         <rdar://problem/23380930>
721
722         Reviewed by Simon Fraser.
723
724         CSS Color Level 4 allows #RGBA and #RRGGBBAA values
725         for colors.
726
727         Test: fast/css/hex-colors.html
728
729         * platform/graphics/Color.cpp:
730         (WebCore::parseHexColorInternal): Update the color parsing for
731         the new syntax.
732
733 2015-11-04  Mario Sanchez Prada  <mario@webkit.org>
734
735         [AX] WebProcess from WebKitGtk+ 2.10.0 compiled in Debug mode hits ASSERT on textUnderElement
736         https://bugs.webkit.org/show_bug.cgi?id=150670
737
738         Reviewed by Chris Fleizach.
739
740         Move the ASSERTs stating that the render tree is stable before using the
741         TextIterator to their right place, in AccessibilityRenderObject, so that
742         we don't crash in debug builds in cases when this condition is irrelevant.
743
744         Test: accessibility/gtk/list-item-with-pseudo-element-crash.html
745
746         * accessibility/AccessibilityNodeObject.cpp:
747         (WebCore::AccessibilityNodeObject::textUnderElement): Removed ASSERTs.
748         * accessibility/AccessibilityRenderObject.cpp:
749         (WebCore::AccessibilityRenderObject::textUnderElement): Added ASSERTs, but
750         only before calling plainText and using the right document for the node.
751
752 2015-11-04  Xabier Rodriguez Calvar  <calvaris@igalia.com>
753
754         [Streams API] Shield streams against user replacing the Promise constructor
755         https://bugs.webkit.org/show_bug.cgi?id=150887
756
757         Reviewed by Youenn Fablet.
758
759         With this rework, we shield the Streams implementation against the user doing something like "Promise =
760         function() { /* do garbage */ };".
761
762         Test: streams/streams-promises.html.
763
764         * Modules/streams/ReadableStream.js:
765         (initializeReadableStream):
766         (cancel):
767         * Modules/streams/ReadableStreamInternals.js:
768         (privateInitializeReadableStreamReader):
769         (cancelReadableStream):
770         (readFromReadableStreamReader):
771         * Modules/streams/ReadableStreamReader.js:
772         (cancel):
773         (read):
774         (closed):
775         * Modules/streams/StreamInternals.js:
776         (promiseInvokeOrNoop):
777         (promiseInvokeOrFallbackOrNoop):
778         * Modules/streams/WritableStream.js:
779         (initializeWritableStream):
780         (abort):
781         (close):
782         (write):
783         (closed):
784         (ready):
785         * Modules/streams/WritableStreamInternals.js:
786         (syncWritableStreamStateWithQueue):
787
788 2015-11-04  Antoine Quint  <graouts@apple.com>
789
790         SVG: hit testing region for <text> elements is incorrect
791         https://bugs.webkit.org/show_bug.cgi?id=150838
792
793         Reviewed by Dean Jackson.
794
795         Hit testing for SVG <text> elements was using the same code as hit testing
796         for CSS-rendered elements. However, in SVG, text elements should only hit
797         test based on their character cells, not the rectangular bounds of the
798         element, see section 16.6 of the SVG 1.1 specification:
799         
800         http://www.w3.org/TR/SVG11/interact.html#PointerEventsProperty
801         
802         So we now hit test each SVGTextFragment of each SVGInlineTextBox
803         that is a child of an SVGRootInlineBox to correctly find whether the
804         provided HitTestLocation is contained within a character cell. 
805
806         Tests: svg/hittest/text-dominant-baseline-hanging.svg
807                svg/hittest/text-multiple-dx-values.svg
808                svg/hittest/text-with-multiple-tspans.svg
809                svg/hittest/text-with-text-node-and-content-elements.svg
810                svg/hittest/text-with-text-node-only.svg
811                svg/hittest/text-with-text-path.svg
812
813         * rendering/RootInlineBox.h:
814         Remove the final keyword since nodeAtPoint() may now be subclassed as
815         implemented in SVGRootInlineBox.
816  
817         * rendering/svg/SVGInlineTextBox.cpp:
818         (WebCore::SVGInlineTextBox::nodeAtPoint):
819         Iterate over the SVGTextFragments to look for a fragment containing the
820         provided HitTestLocation.
821  
822         * rendering/svg/SVGRootInlineBox.cpp:
823         (WebCore::SVGRootInlineBox::nodeAtPoint):
824         * rendering/svg/SVGRootInlineBox.h:
825         Override RootInlineBox::nodeAtPoint() to delegate hit testing to the
826         children inline boxes.
827
828 2015-11-04  Carlos Garcia Campos  <cgarcia@igalia.com>
829
830         [GStreamer] Use RunLoop::Timer for ready state timer in MediaPlayerPrivateGStreamer
831         https://bugs.webkit.org/show_bug.cgi?id=150836
832
833         Reviewed by Philippe Normand.
834
835         We don't really need a GThreadSafeMainLoopSource for this simple timer.
836
837         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
838         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
839         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
840         (WebCore::MediaPlayerPrivateGStreamer::readyTimerFired):
841         (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
842         (WebCore::MediaPlayerPrivateGStreamer::loadingFailed):
843         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
844
845 2015-11-04  Frederic Wang  <fred.wang@free.fr>
846
847         Add support for the USE_TYPO_METRICS flag on iOS
848         https://bugs.webkit.org/show_bug.cgi?id=131839
849
850         Reviewed by Darin Adler.
851
852         Make the iOS Font service use the typo metrics for fonts with a MATH table when the OS/2 USE_TYPO_METRICS flag is set.
853         The code shared by iOS, OS X and AppleWin is moved into a separate OpenTypeCG module.
854
855         No new tests because this is already tested by fonts/use-typo-metrics-1.html
856
857         * PlatformAppleWin.cmake: Add OpenTypeCG files.
858         * PlatformMac.cmake: ditto.
859         * WebCore.vcxproj/WebCore.vcxproj: ditto.
860         * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
861         * WebCore.xcodeproj/project.pbxproj: ditto.
862         * platform/graphics/cocoa/FontCocoa.mm:
863         (WebCore::Font::platformInit): Use functions from OpenTypeCG.
864         (WebCore::fontHasMathTable): Deleted.
865         * platform/graphics/ios/FontServicesIOS.mm:
866         (WebCore::FontServicesIOS::FontServicesIOS): Use the typo metrics for fonts with a MATH table when the OS/2 USE_TYPO_METRICS flag is set.
867         * platform/graphics/opentype/OpenTypeCG.h: Added.
868         * platform/graphics/opentype/OpenTypeCG.cpp: Added.
869         (WebCore::OpenType::fontHasMathTable): Move this code from FontCocoa.mm.
870         (WebCore::OpenType::readShortFromTable): Inline function to read a 16-bit big endian integer from the OS/2 table and to cast it into a short integer.
871         (WebCore::OpenType::tryGetTypoMetrics): Move this code from FontCocoa.mm.
872         * platform/graphics/opentype/OpenTypeTypes.h: Add missing Glyph.h header needed by TableWithCoverage::getCoverageIndex.
873         * platform/graphics/win/SimpleFontDataCGWin.cpp:
874         (WebCore::Font::platformInit): Use functions from OpenTypeCG.
875
876 2015-11-04  Chris Dumez  <cdumez@apple.com>
877
878         Regression(r191652): Colloquy doesn’t render any chat content
879         https://bugs.webkit.org/show_bug.cgi?id=150861
880         <rdar://problem/23381007>
881
882         Reviewed by Antti Koivisto.
883
884         Do a partial revert of r191652 as this web-exposed behavior change
885         broke Colloquy app. This only reverts the code change, the tests
886         are left as is so that they don't rely of the frame ID setting the
887         Window name.
888
889         * html/HTMLFrameElementBase.cpp:
890         (WebCore::HTMLFrameElementBase::parseAttribute):
891         (WebCore::HTMLFrameElementBase::setNameAndOpenURL):
892
893 2015-11-03  Brady Eidson  <beidson@apple.com>
894
895         Modern IDB: Fill out IDBIndex, create MemoryIndex in backing store.
896         https://bugs.webkit.org/show_bug.cgi?id=150868
897
898         Reviewed by Alex Christensen.
899
900         Tests: storage/indexeddb/modern/create-index-failures.html
901                storage/indexeddb/modern/get-index-failures.html
902                storage/indexeddb/modern/idbindex-properties-basic.html
903
904         Note: The MemoryIndex in the backing store doesn't actually do anything yet.
905         
906         That's coming next.
907     
908         * CMakeLists.txt:
909         * WebCore.xcodeproj/project.pbxproj:
910
911         * Modules/indexeddb/IDBIndex.h:
912
913         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
914         (WebCore::IDBClient::IDBConnectionToServer::createIndex):
915         (WebCore::IDBClient::IDBConnectionToServer::didCreateIndex):
916         * Modules/indexeddb/client/IDBConnectionToServer.h:
917         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
918
919         * Modules/indexeddb/client/IDBCursorWithValueImpl.h:
920
921         * Modules/indexeddb/client/IDBDatabaseImpl.cpp:
922         (WebCore::IDBClient::IDBDatabase::didCreateIndexInfo):
923         * Modules/indexeddb/client/IDBDatabaseImpl.h:
924
925         * Modules/indexeddb/client/IDBIndexImpl.cpp:
926         (WebCore::IDBClient::IDBIndex::create):
927         (WebCore::IDBClient::IDBIndex::IDBIndex):
928         (WebCore::IDBClient::IDBIndex::objectStore):
929         (WebCore::IDBClient::IDBIndex::keyPathAny):
930         (WebCore::IDBClient::IDBIndex::openCursor):
931         (WebCore::IDBClient::IDBIndex::count):
932         (WebCore::IDBClient::IDBIndex::openKeyCursor):
933         (WebCore::IDBClient::IDBIndex::get):
934         (WebCore::IDBClient::IDBIndex::getKey):
935         * Modules/indexeddb/client/IDBIndexImpl.h:
936
937         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
938         (WebCore::IDBClient::IDBObjectStore::createIndex):
939         (WebCore::IDBClient::IDBObjectStore::index):
940         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
941
942         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
943         (WebCore::IDBClient::IDBTransaction::createObjectStore):
944         (WebCore::IDBClient::IDBTransaction::createIndex):
945         (WebCore::IDBClient::IDBTransaction::createIndexOnServer):
946         (WebCore::IDBClient::IDBTransaction::didCreateIndexOnServer):
947         * Modules/indexeddb/client/IDBTransactionImpl.h:
948
949         * Modules/indexeddb/legacy/LegacyIndex.h:
950
951         * Modules/indexeddb/server/IDBBackingStore.h:
952
953         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
954         (WebCore::IDBServer::IDBConnectionToClient::didCreateIndex):
955         * Modules/indexeddb/server/IDBConnectionToClient.h:
956         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
957
958         * Modules/indexeddb/server/IDBServer.cpp:
959         (WebCore::IDBServer::IDBServer::createIndex):
960         * Modules/indexeddb/server/IDBServer.h:
961
962         * Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:
963         (WebCore::IDBServer::MemoryBackingStoreTransaction::addNewIndex):
964         (WebCore::IDBServer::MemoryBackingStoreTransaction::addExistingIndex):
965         * Modules/indexeddb/server/MemoryBackingStoreTransaction.h:
966
967         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
968         (WebCore::IDBServer::MemoryIDBBackingStore::createIndex):
969         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
970
971         * Modules/indexeddb/server/MemoryIndex.cpp: Added.
972         (WebCore::IDBServer::MemoryIndex::create):
973         (WebCore::IDBServer::MemoryIndex::MemoryIndex):
974         (WebCore::IDBServer::MemoryIndex::~MemoryIndex):
975         * Modules/indexeddb/server/MemoryIndex.h: Added.
976         (WebCore::IDBServer::MemoryIndex::info):
977
978         * Modules/indexeddb/server/MemoryObjectStore.cpp:
979         (WebCore::IDBServer::MemoryObjectStore::createIndex):
980         (WebCore::IDBServer::MemoryObjectStore::registerIndex):
981         (WebCore::IDBServer::MemoryObjectStore::unregisterIndex):
982         * Modules/indexeddb/server/MemoryObjectStore.h:
983
984         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
985         (WebCore::IDBServer::UniqueIDBDatabase::createIndex):
986         (WebCore::IDBServer::UniqueIDBDatabase::performCreateIndex):
987         (WebCore::IDBServer::UniqueIDBDatabase::didPerformCreateIndex):
988         * Modules/indexeddb/server/UniqueIDBDatabase.h:
989
990         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.cpp:
991         (WebCore::IDBServer::UniqueIDBDatabaseConnection::didCreateIndex):
992         * Modules/indexeddb/server/UniqueIDBDatabaseConnection.h:
993
994         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
995         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::createIndex):
996         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
997
998         * Modules/indexeddb/shared/IDBDatabaseInfo.cpp:
999         (WebCore::IDBDatabaseInfo::getInfoForExistingObjectStore):
1000         (WebCore::IDBDatabaseInfo::infoForExistingObjectStore):
1001         * Modules/indexeddb/shared/IDBDatabaseInfo.h:
1002
1003         * Modules/indexeddb/shared/IDBIndexInfo.cpp:
1004         (WebCore::IDBIndexInfo::IDBIndexInfo):
1005         (WebCore::IDBIndexInfo::isolatedCopy):
1006         * Modules/indexeddb/shared/IDBIndexInfo.h:
1007         (WebCore::IDBIndexInfo::identifier):
1008         (WebCore::IDBIndexInfo::objectStoreIdentifier):
1009
1010         * Modules/indexeddb/shared/IDBObjectStoreInfo.cpp:
1011         (WebCore::IDBObjectStoreInfo::createNewIndex):
1012         (WebCore::IDBObjectStoreInfo::addExistingIndex):
1013         (WebCore::IDBObjectStoreInfo::hasIndex):
1014         (WebCore::IDBObjectStoreInfo::infoForExistingIndex):
1015         (WebCore::IDBObjectStoreInfo::isolatedCopy):
1016         * Modules/indexeddb/shared/IDBObjectStoreInfo.h:
1017
1018         * Modules/indexeddb/shared/IDBResultData.cpp:
1019         (WebCore::IDBResultData::createIndexSuccess):
1020         * Modules/indexeddb/shared/IDBResultData.h:
1021
1022         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1023         (WebCore::InProcessIDBServer::didCreateIndex):
1024         (WebCore::InProcessIDBServer::createIndex):
1025         * Modules/indexeddb/shared/InProcessIDBServer.h:
1026
1027         * bindings/js/JSIDBObjectStoreCustom.cpp:
1028         (WebCore::JSIDBObjectStore::createIndex):
1029
1030         * platform/CrossThreadCopier.cpp:
1031         (WebCore::IDBIndexInfo>::copy):
1032         * platform/CrossThreadCopier.h:
1033
1034 2015-11-03  Andy Estes  <aestes@apple.com>
1035
1036         [Cocoa] Only query for kMGQDeviceName on iOS
1037         https://bugs.webkit.org/show_bug.cgi?id=150858
1038
1039         Reviewed by Brent Fulgham.
1040
1041         * platform/ios/Device.cpp:
1042         (WebCore::deviceName): On non-iOS platorms, just return "iPhone" as the device name.
1043
1044 2015-11-03  Geoffrey Garen  <ggaren@apple.com>
1045
1046         Provide a way to turn off const in WebKit2.
1047
1048         Reviewed by Sam Weinig.
1049
1050         * bindings/js/JSDOMWindowBase.cpp:
1051         (WebCore::JSDOMWindowBase::commonVM):
1052         * page/Settings.h:
1053         (WebCore::Settings::shouldUseHighResolutionTimers):
1054         (WebCore::Settings::shouldRewriteConstAsVar):
1055         (WebCore::Settings::setShouldRewriteConstAsVar):
1056         (WebCore::Settings::backgroundShouldExtendBeyondPage):
1057
1058 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
1059
1060         Web Inspector: Remove duplication among ScriptDebugServer subclasses
1061         https://bugs.webkit.org/show_bug.cgi?id=150860
1062
1063         Reviewed by Timothy Hatcher.
1064
1065         Refactoring covered by existing tests.
1066
1067         * bindings/js/WorkerScriptDebugServer.cpp:
1068         (WebCore::WorkerScriptDebugServer::attachDebugger):
1069         (WebCore::WorkerScriptDebugServer::detachDebugger):
1070         (WebCore::WorkerScriptDebugServer::addListener): Deleted.
1071         (WebCore::WorkerScriptDebugServer::removeListener): Deleted.
1072         * bindings/js/WorkerScriptDebugServer.h:
1073         * inspector/PageDebuggerAgent.cpp:
1074         (WebCore::PageDebuggerAgent::startListeningScriptDebugServer): Deleted.
1075         (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer): Deleted.
1076         * inspector/PageDebuggerAgent.h:
1077         * inspector/PageScriptDebugServer.cpp:
1078         (WebCore::PageScriptDebugServer::attachDebugger):
1079         (WebCore::PageScriptDebugServer::detachDebugger):
1080         (WebCore::PageScriptDebugServer::addListener): Deleted.
1081         (WebCore::PageScriptDebugServer::removeListener): Deleted.
1082         * inspector/PageScriptDebugServer.h:
1083         * inspector/WorkerDebuggerAgent.cpp:
1084         (WebCore::WorkerDebuggerAgent::startListeningScriptDebugServer): Deleted.
1085         (WebCore::WorkerDebuggerAgent::stopListeningScriptDebugServer): Deleted.
1086         * inspector/WorkerDebuggerAgent.h:
1087
1088 2015-11-03  Jiewen Tan  <jiewen_tan@apple.com>
1089
1090         Null dereference loading Blink layout test scrollbars/custom-scrollbar-appearance-property.html
1091         https://bugs.webkit.org/show_bug.cgi?id=149312
1092         <rdar://problem/22748910>
1093
1094         Reviewed by Darin Adler.
1095
1096         This is a merge from Blink r167503:
1097         https://codereview.chromium.org/173433002
1098
1099         Test: scrollbars/custom-scrollbar-appearance-property.html
1100
1101         * rendering/RenderThemeMac.mm:
1102         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
1103         (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
1104
1105 2015-11-03  Andreas Kling  <akling@apple.com>
1106
1107         ResourceUsageOverlay should show GC-owned malloc memory.
1108         <https://webkit.org/b/150846>
1109
1110         Reviewed by Anders Carlsson.
1111
1112         Add a memory category for GC-owned malloc memory. This carves a significant chunk off of
1113         the gigantic "bmalloc" mystery slice.
1114
1115         * page/ResourceUsageOverlay.h:
1116         * page/cocoa/ResourceUsageOverlayCocoa.mm:
1117         (WebCore::drawMemoryPie):
1118         (WebCore::ResourceUsageOverlay::draw):
1119         (WebCore::runSamplerThread):
1120
1121 2015-11-03  Saam barati  <sbarati@apple.com>
1122
1123         Rewrite "const" as "var" for iTunes/iBooks on the Mac
1124         https://bugs.webkit.org/show_bug.cgi?id=150852
1125
1126         Reviewed by Geoffrey Garen.
1127
1128         * bindings/js/JSDOMWindowBase.cpp:
1129         (WebCore::JSDOMWindowBase::commonVM):
1130
1131 2015-10-30  Jon Honeycutt  <jhoneycutt@apple.com>
1132
1133         Implement support for the autocomplete attribute
1134         https://bugs.webkit.org/show_bug.cgi?id=150731
1135         rdar://problem/21078968
1136
1137         The autocomplete attribute is defined by
1138         https://html.spec.whatwg.org/multipage/forms.html#autofill.
1139
1140         Reviewed by Brent Fulgham.
1141
1142         Test: fast/forms/autocomplete-tokens.html
1143
1144         * html/HTMLFormControlElement.cpp:
1145         (WebCore::isContactToken):
1146         Return true if this is a contact token.
1147         (WebCore::categoryForAutofillFieldToken):
1148         Adds all of the autofill field tokens to a map, and returns the
1149         category for a given token.
1150         (WebCore::maxTokensForAutofillFieldCategory):
1151         Return the maximum number of tokens an autofill category supports.
1152         (WebCore::HTMLFormControlElement::parseAutocompleteAttribute):
1153         Implement the processing model defined in
1154         https://html.spec.whatwg.org/multipage/forms.html#processing-model-3
1155         with respect to the IDL-exposed autofill value.
1156         (WebCore::HTMLFormControlElement::setAutocomplete):
1157         Set the autocomplete attribute to the given string.
1158
1159         * html/HTMLFormControlElement.h:
1160         Declare setAutocomplete() and autocomplete().
1161
1162         * html/HTMLInputElement.idl:
1163         Remove the Reflect attribute. We now have custom processing for getting
1164         this attribute.
1165
1166         * html/HTMLSelectElement.idl:
1167         Declare the autocomplete attribute.
1168
1169         * html/HTMLTextAreaElement.idl:
1170         Ditto.
1171
1172 2015-11-03  Brady Eidson  <beidson@apple.com>
1173
1174         Modern IDB: Land empty IDBCursor/Index IDL implementations.
1175         https://bugs.webkit.org/show_bug.cgi?id=150839
1176
1177         Reviewed by Alex Christensen.
1178
1179         No new tests (No change in behavior).
1180
1181         * CMakeLists.txt:
1182         * WebCore.xcodeproj/project.pbxproj:
1183
1184         * Modules/indexeddb/IDBIndex.h:
1185         
1186         * Modules/indexeddb/client/IDBCursorImpl.cpp: Added.
1187         (WebCore::IDBClient::IDBCursor::~IDBCursor):
1188         (WebCore::IDBClient::IDBCursor::direction):
1189         (WebCore::IDBClient::IDBCursor::key):
1190         (WebCore::IDBClient::IDBCursor::primaryKey):
1191         (WebCore::IDBClient::IDBCursor::value):
1192         (WebCore::IDBClient::IDBCursor::source):
1193         (WebCore::IDBClient::IDBCursor::update):
1194         (WebCore::IDBClient::IDBCursor::advance):
1195         (WebCore::IDBClient::IDBCursor::continueFunction):
1196         (WebCore::IDBClient::IDBCursor::deleteFunction):
1197         * Modules/indexeddb/client/IDBCursorImpl.h: Added.
1198         
1199         * Modules/indexeddb/client/IDBCursorWithValueImpl.cpp: Added.
1200         * Modules/indexeddb/client/IDBCursorWithValueImpl.h: Added.
1201         
1202         * Modules/indexeddb/client/IDBIndexImpl.cpp: Added.
1203         (WebCore::IDBClient::IDBIndex::~IDBIndex):
1204         (WebCore::IDBClient::IDBIndex::name):
1205         (WebCore::IDBClient::IDBIndex::objectStore):
1206         (WebCore::IDBClient::IDBIndex::keyPathAny):
1207         (WebCore::IDBClient::IDBIndex::keyPath):
1208         (WebCore::IDBClient::IDBIndex::unique):
1209         (WebCore::IDBClient::IDBIndex::multiEntry):
1210         (WebCore::IDBClient::IDBIndex::openCursor):
1211         (WebCore::IDBClient::IDBIndex::count):
1212         (WebCore::IDBClient::IDBIndex::openKeyCursor):
1213         (WebCore::IDBClient::IDBIndex::get):
1214         (WebCore::IDBClient::IDBIndex::getKey):
1215         * Modules/indexeddb/client/IDBIndexImpl.h: Copied from Source/WebCore/Modules/indexeddb/IDBIndex.h.
1216         
1217         * Modules/indexeddb/legacy/LegacyIndex.h:
1218         (WebCore::LegacyIndex::id):
1219         
1220         * Modules/indexeddb/shared/IDBIndexInfo.cpp: Added.
1221         * Modules/indexeddb/shared/IDBIndexInfo.h: Added.
1222         (WebCore::IDBIndexInfo::name):
1223         (WebCore::IDBIndexInfo::keyPath):
1224         (WebCore::IDBIndexInfo::unique):
1225         (WebCore::IDBIndexInfo::multiEntry):
1226
1227 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
1228
1229         Addressing post-review comments on r191934.
1230
1231         Unreviewed.
1232
1233         * platform/graphics/mac/FontCustomPlatformData.cpp:
1234         (WebCore::FontCustomPlatformData::supportsFormat):
1235
1236 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
1237
1238         Web Inspector: Move ScriptDebugServer::Task to WorkerScriptDebugServer where it is actually used
1239         https://bugs.webkit.org/show_bug.cgi?id=150847
1240
1241         Reviewed by Timothy Hatcher.
1242
1243         * bindings/js/WorkerScriptDebugServer.cpp:
1244         (WebCore::WorkerScriptDebugServer::interruptAndRunTask):
1245         * bindings/js/WorkerScriptDebugServer.h:
1246         * inspector/WorkerDebuggerAgent.cpp:
1247
1248 2015-11-03  Tim Horton  <timothy_horton@apple.com>
1249
1250         Fix the build.
1251
1252         * platform/Widget.h:
1253         (WebCore::Widget::boundsRect):
1254         (WebCore::Widget::resize):
1255
1256 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
1257
1258         font-variant-* properties in @font-face declarations should be honored
1259         https://bugs.webkit.org/show_bug.cgi?id=149771
1260
1261         Reviewed by Simon Fraser.
1262
1263         According to the CSS Fonts Level 3 spec, web authors are allowed to put
1264         font-feature-settings / font-variant-* inside @font-face blocks. These
1265         properties are supposed to be applied at a specific time during the
1266         font selection algorithm.
1267
1268         This patch gives a FontFeatureSettings object and a FontVariantSettings
1269         object to CSSFontFace, and moves common parsing logic from
1270         StyleBuilderCustom to a shared location. Then, once the two properties
1271         are parsed from the @font-face block, the relevant data structures are
1272         passed down into the font selection algorithm. This algorithm then
1273         consults with these values at the correct time (inside
1274         preparePlatformFont()).
1275
1276         Tests: css3/font-feature-settings-font-face-rendering.html
1277                css3/font-variant-font-face-all.html
1278                css3/font-variant-font-face-override.html
1279
1280         * WebCore.xcodeproj/project.pbxproj: Add a header for the common
1281         location of parsing font-variant-ligatures, font-variant-numeric,
1282         and font-variant-east-asian.
1283         * css/CSSFontFace.cpp:
1284         (WebCore::CSSFontFace::font): Pass the relevant data structures
1285         into the font selection algorithm.
1286         * css/CSSFontFace.h: Add FontFeatureSettings and FontVariantSettings
1287         member variables.
1288         (WebCore::CSSFontFace::insertFeature):
1289         (WebCore::CSSFontFace::setVariantCommonLigatures):
1290         (WebCore::CSSFontFace::setVariantDiscretionaryLigatures):
1291         (WebCore::CSSFontFace::setVariantHistoricalLigatures):
1292         (WebCore::CSSFontFace::setVariantContextualAlternates):
1293         (WebCore::CSSFontFace::setVariantPosition):
1294         (WebCore::CSSFontFace::setVariantCaps):
1295         (WebCore::CSSFontFace::setVariantNumericFigure):
1296         (WebCore::CSSFontFace::setVariantNumericSpacing):
1297         (WebCore::CSSFontFace::setVariantNumericFraction):
1298         (WebCore::CSSFontFace::setVariantNumericOrdinal):
1299         (WebCore::CSSFontFace::setVariantNumericSlashedZero):
1300         (WebCore::CSSFontFace::setVariantAlternates):
1301         (WebCore::CSSFontFace::setVariantEastAsianVariant):
1302         (WebCore::CSSFontFace::setVariantEastAsianWidth):
1303         (WebCore::CSSFontFace::setVariantEastAsianRuby):
1304         * css/CSSFontFaceSource.cpp:
1305         (WebCore::CSSFontFaceSource::font): Pass the relevant data
1306         structures into the font selection algorithm.
1307         * css/CSSFontFaceSource.h: Ditto.
1308         * css/CSSFontSelector.cpp:
1309         (WebCore::CSSFontSelector::addFontFaceRule): Call the shared
1310         parsing logic to populate the FontFeatureSettings and
1311         FontVariantSettings members.
1312         * css/FontVariantBuilder.h: Added. Destination for shared parsing
1313         logic.
1314         (WebCore::applyValueFontVariantLigatures):
1315         (WebCore::applyValueFontVariantNumeric):
1316         (WebCore::applyValueFontVariantEastAsian):
1317         * css/StyleBuilderCustom.h: Source for shared parsing logic.
1318         (WebCore::StyleBuilderCustom::applyValueFontVariantLigatures):
1319         (WebCore::StyleBuilderCustom::applyValueFontVariantNumeric):
1320         (WebCore::StyleBuilderCustom::applyValueFontVariantEastAsian):
1321         * loader/cache/CachedFont.cpp: Pass the relevant data structures
1322         into the font selection algorithm.
1323         (WebCore::CachedFont::createFont):
1324         (WebCore::CachedFont::platformDataFromCustomData):
1325         * loader/cache/CachedFont.h: Ditto.
1326         * loader/cache/CachedSVGFont.cpp: Ditto.
1327         (WebCore::CachedSVGFont::createFont):
1328         (WebCore::CachedSVGFont::platformDataFromCustomData):
1329         * loader/cache/CachedSVGFont.h: Ditto.
1330         * platform/graphics/FontCache.h: Ditto.
1331         * platform/graphics/FontCascade.cpp:
1332         (WebCore::FontCascade::codePath): Adjust comment.
1333         * platform/graphics/cocoa/FontCacheCoreText.cpp:
1334         (WebCore::preparePlatformFont): Consult with the newly parsed values.
1335         (WebCore::fontWithFamily): Pass the relevant data structures into the
1336         font selection algorithm.
1337         (WebCore::FontCache::systemFallbackForCharacters): Ditto.
1338         * platform/graphics/mac/FontCustomPlatformData.cpp:
1339         (WebCore::FontCustomPlatformData::fontPlatformData): Ditto.
1340         * platform/graphics/mac/FontCustomPlatformData.h: Ditto.
1341
1342 2015-11-03  Joseph Pecoraro  <pecoraro@apple.com>
1343
1344         Web Inspector: Handle or Remove ParseHTML Timeline Event Records
1345         https://bugs.webkit.org/show_bug.cgi?id=150689
1346
1347         Reviewed by Timothy Hatcher.
1348
1349         Remove ParseHTML nesting recordings. We were not using them
1350         and for most pages their self-time is very small in comparison
1351         to other events. We may consider adding it back later for
1352         UI purposes but for now the frontend doesn't use the records
1353         so lets remove it.
1354
1355         * html/parser/HTMLDocumentParser.cpp:
1356         (WebCore::HTMLDocumentParser::pumpTokenizer): Deleted.
1357         * inspector/InspectorInstrumentation.cpp:
1358         (WebCore::InspectorInstrumentation::willWriteHTMLImpl): Deleted.
1359         (WebCore::InspectorInstrumentation::didWriteHTMLImpl): Deleted.
1360         * inspector/InspectorInstrumentation.h:
1361         (WebCore::InspectorInstrumentation::willWriteHTML): Deleted.
1362         (WebCore::InspectorInstrumentation::didWriteHTML): Deleted.
1363         * inspector/InspectorTimelineAgent.cpp:
1364         (WebCore::InspectorTimelineAgent::willWriteHTML): Deleted.
1365         (WebCore::InspectorTimelineAgent::didWriteHTML): Deleted.
1366         (WebCore::toProtocol): Deleted.
1367         * inspector/InspectorTimelineAgent.h:
1368         * inspector/TimelineRecordFactory.cpp:
1369         (WebCore::TimelineRecordFactory::createParseHTMLData): Deleted.
1370         * inspector/TimelineRecordFactory.h:
1371
1372 2015-11-03  Keith Rollin  <krollin@apple.com>
1373
1374         HTMLOptionElement.text should never return the value of label
1375         https://bugs.webkit.org/show_bug.cgi?id=148862
1376         rdar://problem/22589226
1377
1378         Reviewed by Darin Adler.
1379
1380         According to the HTML spec, `option` elements should have the
1381         following behavior:
1382
1383             - the `text` property should return text contents of element
1384             - the `label` property should return value of label attribute if
1385               it exists, else return text property
1386             - the UI should display label property
1387
1388         12 years ago, in order to be compatibile with browsers of the time, we
1389         diverged from this behavior: the text property behaved like the label
1390         property, and the text property was used for display. This resulted in
1391         our UI incidentally conforming to the spec, but also in the text
1392         property *not* conforming to the spec. See <rdar://problem/3532519>
1393         for discussion on this change.
1394
1395         The behavior of the browsers we were conforming to has changed. In
1396         particular, the text property in Firefox now conforms to the spec
1397         instead of behaving as we did. Therefore, it's less important to
1398         retain our old behavior for the sake of compatibility. This check-in
1399         brings us into conformance with the spec. The result is that the UI
1400         stays the same, but the text property will return different values than
1401         it used to if the option element has a label attribute that used to
1402         hide it.
1403
1404         Updated tests:
1405         - fast/dom/HTMLOptionElement/option-text.html:
1406         - fast/forms/HTMLOptionElement_label01.html:
1407         - fast/forms/HTMLOptionElement_label02.html:
1408         - fast/forms/HTMLOptionElement_label03.html:
1409         - fast/forms/HTMLOptionElement_label04.html:
1410         - fast/forms/HTMLOptionElement_label05.html:
1411         - fast/forms/HTMLOptionElement_label06.html:
1412         - fast/forms/HTMLOptionElement_label07.html:
1413         - fast/forms/option-value-and-label.html:
1414
1415         * accessibility/AccessibilityListBoxOption.cpp:
1416         (WebCore::AccessibilityListBoxOption::stringValue):
1417         * accessibility/AccessibilityMenuListOption.cpp:
1418         (WebCore::AccessibilityMenuListOption::stringValue):
1419         * html/HTMLOptionElement.cpp:
1420         (WebCore::HTMLOptionElement::text):
1421         (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
1422
1423 2015-11-03  Andreas Kling  <akling@apple.com>
1424
1425         ResourceUsageOverlay should draw itself using WebCore::GraphicsContext.
1426         <https://webkit.org/b/150841>
1427
1428         Reviewed by Antti Koivisto.
1429
1430         Use WebCore text drawing primitives instead of poking at the CGContext directly.
1431         And stop using deprecated CoreGraphics APIs, too.
1432
1433         * page/cocoa/ResourceUsageOverlayCocoa.mm:
1434         (WebCore::drawCpuHistory):
1435         (WebCore::drawGCHistory):
1436
1437             Adjust for unflipped Y axis.
1438
1439         (WebCore::fontCascade):
1440         (WebCore::showText):
1441
1442             Draw using WebCore text drawing primitives.
1443
1444         (WebCore::ResourceUsageOverlay::draw):
1445
1446             Remove CGContext calls and stop flipping the Y axis.
1447
1448 2015-11-03  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1449
1450         [Streams API] Vended promise capabilities should not need @resolve/@reject fields
1451         https://bugs.webkit.org/show_bug.cgi?id=150835
1452
1453         Reviewed by Darin Adler.
1454
1455         No change in behavior, covered by existing tests.
1456
1457         * Modules/streams/ReadableStreamInternals.js:
1458         (privateInitializeReadableStreamReader): Removed @resolve/@reject fields from resolved/rejected @closedPromiseCapability.
1459         * Modules/streams/WritableStream.js:
1460         (initializeWritableStream): Removed @resolve/@reject fields from resolved readyPromiseCapability.
1461         * Modules/streams/WritableStreamInternals.js:
1462         (syncWritableStreamStateWithQueue): Updated code to be closer to spec and removing the need to resolve an already resolved promise.
1463
1464 2015-11-03  Hunseop Jeong  <hs85.jeong@samsung.com>
1465
1466         Replace 0 and NULL with nullptr in WebCore/dom.
1467         https://bugs.webkit.org/show_bug.cgi?id=150788
1468
1469         Reviewed by Darin Adler.
1470
1471         No new tests because there is no behavior change.
1472
1473         * dom/Attr.cpp:
1474         (WebCore::Attr::Attr):
1475         (WebCore::Attr::detachFromElementWithValue):
1476         (WebCore::Attr::attachToElement):
1477         * dom/Attr.h:
1478         * dom/CheckedRadioButtons.cpp:
1479         (WebCore::RadioButtonGroup::updateCheckedState):
1480         (WebCore::CheckedRadioButtons::checkedButtonForGroup):
1481         (WebCore::CheckedRadioButtons::isInRequiredGroup):
1482         * dom/ChildListMutationScope.cpp:
1483         (WebCore::ChildListMutationAccumulator::enqueueMutationRecord):
1484         * dom/ContainerNode.cpp:
1485         (WebCore::ContainerNode::removeBetween):
1486         * dom/ContainerNode.h:
1487         (WebCore::ContainerNode::ContainerNode):
1488         * dom/ContainerNodeAlgorithms.cpp:
1489         (WebCore::notifyNodeRemovedFromDocument):
1490         * dom/Document.h:
1491         (WebCore::Document::wellFormed):
1492         (WebCore::Document::scriptRunner):
1493         (WebCore::Document::moduleLoader):
1494         (WebCore::Document::currentScript):
1495         (WebCore::Document::webkitFullscreenElement):
1496         * dom/DocumentOrderedMap.h:
1497         (WebCore::DocumentOrderedMap::MapEntry::MapEntry):
1498         * dom/DocumentParser.cpp:
1499         (WebCore::DocumentParser::detach):
1500         (WebCore::DocumentParser::suspendScheduledTasks):
1501         * dom/Element.cpp:
1502         (WebCore::Element::setAttributeInternal):
1503         (WebCore::Element::shadowRoot):
1504         (WebCore::Element::blur):
1505         (WebCore::Element::beforePseudoElement):
1506         (WebCore::Element::afterPseudoElement):
1507         (WebCore::Element::setBeforePseudoElement):
1508         * dom/Event.cpp:
1509         (WebCore::Event::Event):
1510         * dom/Event.h:
1511         (WebCore::Event::legacyReturnValue):
1512         (WebCore::Event::setLegacyReturnValue):
1513         (WebCore::Event::clipboardData):
1514         * dom/EventContext.cpp:
1515         (WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):
1516         * dom/EventDispatcher.cpp:
1517         (WebCore::EventPath::lastContextIfExists):
1518         (WebCore::EventDispatcher::dispatchEvent):
1519         * dom/EventListenerMap.cpp:
1520         (WebCore::EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget):
1521         (WebCore::EventListenerIterator::EventListenerIterator):
1522         * dom/EventListenerMap.h:
1523         * dom/EventTarget.cpp:
1524         (WebCore::EventTarget::fireEventListeners):
1525         * dom/FocusEvent.cpp:
1526         (WebCore::FocusEventInit::FocusEventInit):
1527         * dom/GenericEventQueue.cpp:
1528         (WebCore::GenericEventQueue::enqueueEvent):
1529         * dom/IdTargetObserverRegistry.h:
1530         (WebCore::IdTargetObserverRegistry::IdTargetObserverRegistry):
1531         (WebCore::IdTargetObserverRegistry::notifyObservers):
1532         * dom/IgnoreDestructiveWriteCountIncrementer.h:
1533         (WebCore::IgnoreDestructiveWriteCountIncrementer::IgnoreDestructiveWriteCountIncrementer):
1534         * dom/MessageEvent.cpp:
1535         (WebCore::MessageEvent::MessageEvent):
1536         * dom/MessageEvent.h:
1537         * dom/MessagePort.cpp:
1538         (WebCore::MessagePort::contextDestroyed):
1539         (WebCore::MessagePort::dispatchMessages):
1540         (WebCore::MessagePort::locallyEntangledPort):
1541         (WebCore::MessagePort::disentanglePorts):
1542         * dom/MouseEvent.cpp:
1543         (WebCore::MouseEventInit::MouseEventInit):
1544         (WebCore::MouseEvent::cloneFor):
1545         * dom/MouseEvent.h:
1546         (WebCore::MouseEvent::dataTransfer):
1547         * dom/MouseRelatedEvent.cpp:
1548         (WebCore::MouseRelatedEvent::MouseRelatedEvent):
1549         (WebCore::MouseRelatedEvent::computeRelativePosition):
1550         * dom/MutationEvent.h:
1551         * dom/Node.cpp:
1552         (WebCore::Node::nodeLists):
1553         (WebCore::Node::clearNodeLists):
1554         (WebCore::Node::nonShadowBoundaryParentNode):
1555         (WebCore::Node::parentOrShadowHostElement):
1556         * dom/Node.h:
1557         * dom/NodeRareData.h:
1558         (WebCore::NodeListsNodeData::removeCachedCollection):
1559         (WebCore::NodeListsNodeData::isEmpty):
1560         * dom/PendingScript.cpp:
1561         (WebCore::PendingScript::releaseElementAndClear):
1562         * dom/PopStateEvent.cpp:
1563         (WebCore::PopStateEvent::PopStateEvent):
1564         * dom/Position.h:
1565         (WebCore::Position::deprecatedNode):
1566         (WebCore::Position::document):
1567         (WebCore::Position::rootEditableElement):
1568         * dom/PositionIterator.cpp:
1569         (WebCore::PositionIterator::decrement):
1570         * dom/PositionIterator.h:
1571         (WebCore::PositionIterator::PositionIterator):
1572         * dom/ProcessingInstruction.cpp:
1573         (WebCore::ProcessingInstruction::ProcessingInstruction):
1574         (WebCore::ProcessingInstruction::checkStyleSheet):
1575         (WebCore::ProcessingInstruction::parseStyleSheet):
1576         * dom/ProcessingInstruction.h:
1577         * dom/RangeBoundaryPoint.h:
1578         (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
1579         * dom/ScriptElement.cpp:
1580         (WebCore::ScriptElement::ScriptElement):
1581         (WebCore::ScriptElement::stopLoadRequest):
1582         (WebCore::ScriptElement::notifyFinished):
1583         (WebCore::ScriptElement::ignoresLoadRequest):
1584         * dom/ScriptedAnimationController.h:
1585         (WebCore::ScriptedAnimationController::create):
1586         (WebCore::ScriptedAnimationController::clearDocumentPointer):
1587         * dom/StyledElement.cpp:
1588         (WebCore::PresentationAttributeCacheKey::PresentationAttributeCacheKey):
1589         (WebCore::StyledElement::addSubresourceAttributeURLs):
1590         (WebCore::StyledElement::rebuildPresentationAttributeStyle):
1591         * dom/StyledElement.h:
1592         (WebCore::StyledElement::additionalPresentationAttributeStyle):
1593         (WebCore::StyledElement::inlineStyle):
1594         * dom/TemplateContentDocumentFragment.h:
1595         * dom/TextEvent.cpp:
1596         (WebCore::TextEvent::TextEvent):
1597         * dom/UIEvent.cpp:
1598         (WebCore::UIEventInit::UIEventInit):
1599         * dom/UserTypingGestureIndicator.cpp:
1600         (WebCore::UserTypingGestureIndicator::UserTypingGestureIndicator):
1601         (WebCore::UserTypingGestureIndicator::~UserTypingGestureIndicator):
1602         * dom/ViewportArguments.cpp:
1603         (WebCore::restrictScaleFactorToInitialScaleIfNotUserScalable):
1604         (WebCore::numericPrefix):
1605         * dom/default/PlatformMessagePortChannel.cpp:
1606         (WebCore::MessagePortChannel::disentangle):
1607         (WebCore::MessagePortChannel::postMessageToRemote):
1608         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
1609         * dom/default/PlatformMessagePortChannel.h:
1610
1611 2015-11-02  Wenson Hsieh  <wenson_hsieh@apple.com>
1612
1613         Tapping *below* some <input>s can focus them in Mobile Safari
1614         https://bugs.webkit.org/show_bug.cgi?id=146244
1615         <rdar://problem/21509310>
1616
1617         Reviewed by Darin Adler.
1618
1619         Removes iOS-specific logic in positionForPointRespectingEditingBoundaries that was causing us to focus inputs by
1620         tapping on the document element. We believe this logic, which causes VisiblePosition finding to recurse from a non-
1621         editable element to an editable child, is not necessary to focus editable elements underneath non-editable elements,
1622         since hit-testing will already have selected the contentEditable element prior to searching for a suitable
1623         VisiblePosition. Further investigation shows that this logic was added to fix <rdar://problem/5545799>, in which the
1624         first character in a Notes document could not be selected. However, I have not been able to reproduce this bug after
1625         removing this logic.
1626
1627         As a result of this change, we can also enable a WK1 test, editing/selection/click-outside-editable-div.html, that
1628         had also been marked as failing due to positionForPointRespectingEditingBoundaries recursing into a contentEditable
1629         div.
1630
1631         Test: fast/events/ios/clicking-document-should-not-trigger-focus.html
1632
1633         * rendering/RenderBlock.cpp:
1634         (WebCore::positionForPointRespectingEditingBoundaries): Deleted.
1635
1636 2015-11-03  Myles C. Maxfield  <mmaxfield@apple.com>
1637
1638         Update to match text-orientation spec
1639         https://bugs.webkit.org/show_bug.cgi?id=150765
1640
1641         Reviewed by Darin Adler.
1642
1643         The CSS spec has removed the "sideways-right" value of text-orientation in favor
1644         of "sideways." This patch makes the parser treat "sideways-right" the same as
1645         "sideways."
1646
1647         Test: fast/text/orientation-sideways-right.html
1648
1649         * css/CSSPrimitiveValueMappings.h:
1650         (WebCore::CSSPrimitiveValue::operator TextOrientation):
1651         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
1652         * rendering/style/RenderStyle.cpp:
1653         (WebCore::RenderStyle::fontAndGlyphOrientation): Deleted.
1654         * rendering/style/RenderStyleConstants.h:
1655
1656 2015-11-03  Xabier Rodriguez Calvar  <calvaris@igalia.com>
1657
1658         [Streams API] Rework promises to use @newPromiseCapability
1659         https://bugs.webkit.org/show_bug.cgi?id=150627
1660
1661         Reviewed by Youenn Fablet.
1662
1663         We are removing the stream promises functions in favor of @newPromiseCapabity which basically provides the same
1664         functionality (keeping the resolve and reject functions without external slots). Slots and variables were
1665         renamed as *PromiseCapability to show that they no longer hold just a promise, but a promise capability.
1666
1667         Internal rework, no new tests needed.
1668
1669         * Modules/streams/ReadableStreamInternals.js:
1670         (privateInitializeReadableStreamReader.this.closedPromiseCapability.resolve):
1671         (privateInitializeReadableStreamReader.this.closedPromiseCapability.reject):
1672         (privateInitializeReadableStreamReader):
1673         (teeReadableStream):
1674         (teeReadableStreamBranch2CancelFunction):
1675         (errorReadableStream):
1676         (closeReadableStreamReader):
1677         (enqueueInReadableStream):
1678         (readFromReadableStreamReader):
1679         * Modules/streams/ReadableStreamReader.js:
1680         (closed):
1681         * Modules/streams/StreamInternals.js:
1682         (createNewStreamsPromise): Deleted.
1683         (resolveStreamsPromise): Deleted.
1684         (rejectStreamsPromise): Deleted.
1685         * Modules/streams/WritableStream.js:
1686         (this.readyPromiseCapability.resolve):
1687         (this.readyPromiseCapability.reject):
1688         (initializeWritableStream):
1689         (close):
1690         (write):
1691         (closed):
1692         (ready):
1693         * Modules/streams/WritableStreamInternals.js:
1694         (syncWritableStreamStateWithQueue):
1695         (errorWritableStream):
1696         * bindings/js/WebCoreBuiltinNames.h:
1697
1698 2015-11-03  Youenn Fablet  <youenn.fablet@crf.canon.fr>
1699
1700         Move webkitGetUserMedia to JS Builtin
1701         https://bugs.webkit.org/show_bug.cgi?id=149499
1702
1703         Reviewed by Darin Adler.
1704
1705         Implemented webkitGetUserMedia as a JSBuiltin wrapper around navigator.mediaDevices.getUserMedia.
1706
1707         Removed cpp based version.
1708
1709         The js builting implementation checks for argument but does not raise exception when the request is not supported.
1710         The error callback is called instead, in an asynchronous fashion.
1711         The js builtin implementation does not check first that it is called on navigator, contrary to the cpp implementation.
1712         This is done afterwards when calling navigator.MediaDevices.@getUserMedia.
1713
1714         Covered by existing and modified tests.
1715
1716         * CMakeLists.txt: Adding NavigatorUserMedia.js as built-in JS file.
1717         * DerivedSources.make: Ditto.
1718         * Modules/mediastream/NavigatorUserMedia.idl: Making webkitGetUserMedia JSBuiltin
1719         * Modules/mediastream/NavigatorUserMedia.js:
1720         (webkitGetUserMedia):
1721         * Modules/mediastream/NavigatorUserMediaErrorCallback.h: Removed.
1722         * Modules/mediastream/NavigatorUserMediaErrorCallback.idl: Removed.
1723         * Modules/mediastream/NavigatorUserMediaSuccessCallback.h: Removed.
1724         * Modules/mediastream/NavigatorUserMediaSuccessCallback.idl: Removed.
1725         * Modules/mediastream/UserMediaRequest.cpp:
1726         * Modules/mediastream/UserMediaRequest.h:
1727         * WebCore.xcodeproj/project.pbxproj:
1728         * bindings/js/JSDOMWindowBase.cpp:
1729         (WebCore::JSDOMWindowBase::finishCreation): Style modifications.
1730         * bindings/js/JSNavigatorCustom.cpp: Removed.
1731         * bindings/js/WebCoreJSBuiltins.cpp: Adding support for NavigatorUserMedia.js built-in JS file.
1732         * bindings/js/WebCoreJSBuiltins.h: Ditto.
1733         (WebCore::JSBuiltinFunctions::JSBuiltinFunctions):
1734         (WebCore::JSBuiltinFunctions::navigatorUserMediaBuiltins):
1735
1736 2015-11-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1737
1738         [GStreamer] Use GstBus sync message handler and schedule tasks to the main thread with RunLoop::dispatch
1739         https://bugs.webkit.org/show_bug.cgi?id=150800
1740
1741         Reviewed by Philippe Normand.
1742
1743         This way we would avoid all the GScource + polling mechanism that
1744         GST uses internally to handle messages asynchronously in the main thread.
1745
1746         * platform/graphics/gstreamer/GRefPtrGStreamer.cpp:
1747         (WTF::adoptGRef):
1748         (WTF::refGPtr<GstMessage>):
1749         (WTF::derefGPtr<GstMessage>):
1750         * platform/graphics/gstreamer/GRefPtrGStreamer.h:
1751         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1752         (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
1753         Initialize the WeakPtr factory.
1754         (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
1755         reset the GstBus sync handler.
1756         (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Make it void.
1757         (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin): Add a
1758         GstBus sync message handler and schedule the messages to the main
1759         thread with RunLoop::main().dispatch().
1760         (WebCore::mediaPlayerPrivateMessageCallback): Deleted.
1761         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
1762         (WebCore::MediaPlayerPrivateGStreamer::createWeakPtr): Create a WeakPtr.
1763         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
1764         (WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
1765         Handle the need context message that needs to be handled in the
1766         caller thread.
1767         (WebCore::mediaPlayerPrivateNeedContextMessageCallback): Deleted.
1768         (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
1769         (WebCore::MediaPlayerPrivateGStreamerBase::setPipeline): Do not
1770         connect to sync-message signal, handleSyncMessage() will be called
1771         to handled messages synchronously.
1772         (WebCore::MediaPlayerPrivateGStreamerBase::handleNeedContextMessage): Deleted.
1773         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
1774
1775 2015-11-03  Carlos Garcia Campos  <cgarcia@igalia.com>
1776
1777         [GStreamer] Cleanup the iradio properties
1778         https://bugs.webkit.org/show_bug.cgi?id=148522
1779
1780         Reviewed by Philippe Normand.
1781
1782         Remove unused icecast code.
1783
1784         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
1785         (StreamingClient::handleResponseReceived):
1786         (webKitWebSrcGetProperty): Deleted.
1787         (webKitWebSrcStop): Deleted.
1788
1789 2015-11-02  Keith Rollin  <krollin@apple.com>
1790
1791         input[type=number] does not increment/decrement integers with trailing decimal characters
1792         https://bugs.webkit.org/show_bug.cgi?id=148867
1793         rdar://problem/22589693
1794
1795         Reviewed by Chris Dumez.
1796
1797         Support input[type=number].value attributes of the form "###." (that
1798         is, leading digits with a decimal but no trailing digits). This form
1799         was supported in the setting of the attribute, but not when changing
1800         it through stepUp/Down.
1801
1802         Testing turned up similarly incorrect processing of -.###, so
1803         addressed that, too.
1804
1805         Test: fast/forms/range/input-appearance-range-decimals.html
1806
1807         Updated the following tests:
1808         - fast/forms/number/number-stepup-stepdown-from-renderer.html
1809         - fast/forms/number/number-stepup-stepdown.html
1810         - fast/forms/range/range-stepup-stepdown-from-renderer.html
1811         - fast/forms/range/range-stepup-stepdown.html
1812
1813         * html/InputType.cpp:
1814         (WebCore::InputType::stepUpFromRenderer):
1815         * platform/Decimal.cpp:
1816         (WebCore::Decimal::fromString):
1817
1818 2015-11-02  Jiewen Tan  <jiewen_tan@apple.com>
1819
1820         Null dereference loading Blink layout test fast/css/background-repeat-null-y-crash.html
1821         https://bugs.webkit.org/show_bug.cgi?id=150211
1822         <rdar://problem/23137321>
1823
1824         Reviewed by Alex Christensen.
1825
1826         This is a merge of Blink r188842:
1827         https://codereview.chromium.org/846933002
1828
1829         By setting the backgroundRepeatY property to null it can
1830         happen that accessing that CSS value returns a null pointer.
1831         In that case simply bail out early.
1832
1833         Test: fast/css/background-repeat-null-y-crash.html
1834
1835         * css/StyleProperties.cpp:
1836         (WebCore::StyleProperties::getLayeredShorthandValue):
1837
1838 2015-11-02  Myles C. Maxfield  <mmaxfield@apple.com>
1839
1840         [Vertical Writing Mode] Rename "vertical-right" CSS value to match spec
1841         https://bugs.webkit.org/show_bug.cgi?id=150766
1842
1843         Reviewed by Darin Adler.
1844
1845         The spec has changed the initial value of text-orientation from "vertical-right"
1846         to "mixed." This patch follows this movement, but also keeps the existing
1847         property working (the parser will treat both values the same).
1848
1849         Test: fast/text/vertical-mixed.html
1850
1851         * css/CSSParser.cpp:
1852         (WebCore::CSSParser::parseValue):
1853         * css/CSSPrimitiveValueMappings.h:
1854         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1855         (WebCore::CSSPrimitiveValue::operator TextOrientation):
1856         * css/CSSValueKeywords.in:
1857         * css/StyleResolver.cpp:
1858         (WebCore::checkForOrientationChange):
1859         * platform/graphics/FontCascadeFonts.cpp:
1860         (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation):
1861         * platform/graphics/FontDescription.cpp:
1862         (WebCore::FontDescription::FontDescription):
1863         * platform/graphics/cocoa/FontCascadeCocoa.mm:
1864         (WebCore::FontCascade::fontForCombiningCharacterSequence):
1865         * platform/text/TextFlags.h:
1866         * rendering/style/RenderStyle.cpp:
1867         (WebCore::RenderStyle::getFontAndGlyphOrientation):
1868         * rendering/style/RenderStyle.h:
1869         * rendering/style/RenderStyleConstants.h:
1870         * rendering/style/StyleRareInheritedData.cpp:
1871         (WebCore::StyleRareInheritedData::StyleRareInheritedData):
1872         * style/StyleResolveForDocument.cpp:
1873         (WebCore::Style::resolveForDocument):
1874
1875 2015-11-02  Myles C. Maxfield  <mmaxfield@apple.com>
1876
1877         [Cocoa] Support WOFF2
1878         https://bugs.webkit.org/show_bug.cgi?id=150830
1879
1880         Reviewed by Zalan Bujtas.
1881
1882         On platforms which support it, WebKit only needs to recognize WOFF2.
1883
1884         Test: fast/text/woff2.html
1885
1886         * platform/graphics/mac/FontCustomPlatformData.cpp:
1887         (WebCore::FontCustomPlatformData::supportsFormat):
1888
1889 2015-11-02  Nan Wang  <n_wang@apple.com>
1890
1891         AX: Add support for ARIA 1.1 attribute 'aria-modal' for dialog and alertdialog
1892         https://bugs.webkit.org/show_bug.cgi?id=138566
1893
1894         Reviewed by Chris Fleizach.
1895
1896         Added support for aria-modal attribute on dialog/alertdialog roles.
1897         When modal dialog is displayed, all other contents will be unaccessible.
1898
1899         Tests: accessibility/aria-modal-multiple-dialogs.html
1900                accessibility/aria-modal.html
1901
1902         * accessibility/AXObjectCache.cpp:
1903         (WebCore::AXObjectCache::AXObjectCache):
1904         (WebCore::AXObjectCache::~AXObjectCache):
1905         (WebCore::AXObjectCache::findAriaModalNodes):
1906         (WebCore::AXObjectCache::updateCurrentAriaModalNode):
1907         (WebCore::AXObjectCache::isNodeVisible):
1908         (WebCore::AXObjectCache::ariaModalNode):
1909         (WebCore::AXObjectCache::focusedImageMapUIElement):
1910         (WebCore::AXObjectCache::remove):
1911         (WebCore::AXObjectCache::handleAttributeChanged):
1912         (WebCore::AXObjectCache::handleAriaModalChange):
1913         (WebCore::AXObjectCache::labelChanged):
1914         * accessibility/AXObjectCache.h:
1915         (WebCore::AXObjectCache::handleActiveDescendantChanged):
1916         (WebCore::AXObjectCache::handleAriaExpandedChange):
1917         (WebCore::AXObjectCache::handleAriaRoleChanged):
1918         (WebCore::AXObjectCache::handleAriaModalChange):
1919         (WebCore::AXObjectCache::handleFocusedUIElementChanged):
1920         (WebCore::AXObjectCache::handleScrollbarUpdate):
1921         (WebCore::AXObjectCache::handleAttributeChanged):
1922         * accessibility/AccessibilityObject.cpp:
1923         (WebCore::AccessibilityObject::ariaCurrentState):
1924         (WebCore::AccessibilityObject::isAriaModalDescendant):
1925         (WebCore::AccessibilityObject::ignoredFromARIAModalPresence):
1926         (WebCore::AccessibilityObject::hasTagName):
1927         (WebCore::AccessibilityObject::defaultObjectInclusion):
1928         * accessibility/AccessibilityObject.h:
1929         * html/HTMLAttributeNames.in:
1930
1931 2015-11-02  Brady Eidson  <beidson@apple.com>
1932
1933         Modern IDB: IBDObjectStore.delete() support.
1934         https://bugs.webkit.org/show_bug.cgi?id=150784
1935
1936         Reviewed by Alex Christensen.
1937
1938         Tests: storage/indexeddb/modern/idbobjectstore-delete-1.html
1939                storage/indexeddb/modern/idbobjectstore-delete-2.html
1940                storage/indexeddb/modern/idbobjectstore-delete-failures.html
1941
1942         * Modules/indexeddb/IDBKeyRangeData.cpp:
1943         (WebCore::IDBKeyRangeData::isValid):
1944         * Modules/indexeddb/IDBKeyRangeData.h:
1945         
1946         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
1947         (WebCore::IDBClient::IDBConnectionToServer::deleteRecord):
1948         (WebCore::IDBClient::IDBConnectionToServer::didDeleteRecord):
1949         * Modules/indexeddb/client/IDBConnectionToServer.h:
1950         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
1951         
1952         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
1953         (WebCore::IDBClient::IDBObjectStore::get):
1954         (WebCore::IDBClient::IDBObjectStore::deleteFunction):
1955         
1956         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
1957         (WebCore::IDBClient::IDBTransaction::requestDeleteRecord):
1958         (WebCore::IDBClient::IDBTransaction::deleteRecordOnServer):
1959         (WebCore::IDBClient::IDBTransaction::didDeleteRecordOnServer):
1960         * Modules/indexeddb/client/IDBTransactionImpl.h:
1961         
1962         * Modules/indexeddb/server/IDBBackingStore.h:
1963         
1964         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
1965         (WebCore::IDBServer::IDBConnectionToClient::didDeleteRecord):
1966         * Modules/indexeddb/server/IDBConnectionToClient.h:
1967         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
1968         
1969         * Modules/indexeddb/server/IDBServer.cpp:
1970         (WebCore::IDBServer::IDBServer::deleteRecord):
1971         * Modules/indexeddb/server/IDBServer.h:
1972         
1973         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
1974         (WebCore::IDBServer::MemoryIDBBackingStore::deleteRange):
1975         (WebCore::IDBServer::MemoryIDBBackingStore::deleteRecord): Deleted.
1976         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
1977         
1978         * Modules/indexeddb/server/MemoryObjectStore.cpp:
1979         (WebCore::IDBServer::MemoryObjectStore::deleteRange):
1980         * Modules/indexeddb/server/MemoryObjectStore.h:
1981         
1982         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
1983         (WebCore::IDBServer::UniqueIDBDatabase::performPutOrAdd):
1984         (WebCore::IDBServer::UniqueIDBDatabase::deleteRecord):
1985         (WebCore::IDBServer::UniqueIDBDatabase::performDeleteRecord):
1986         (WebCore::IDBServer::UniqueIDBDatabase::didPerformDeleteRecord):
1987         * Modules/indexeddb/server/UniqueIDBDatabase.h:
1988         
1989         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
1990         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
1991         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::deleteRecord):
1992         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
1993         
1994         * Modules/indexeddb/shared/IDBResultData.cpp:
1995         (WebCore::IDBResultData::deleteRecordSuccess):
1996         * Modules/indexeddb/shared/IDBResultData.h:
1997         
1998         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
1999         (WebCore::InProcessIDBServer::didDeleteRecord):
2000         (WebCore::InProcessIDBServer::deleteRecord):
2001         * Modules/indexeddb/shared/InProcessIDBServer.h:
2002
2003 2015-11-02  Andy Estes  <aestes@apple.com>
2004
2005         Fix the iOS build again.
2006
2007         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: supportsPictureInPicture() needs to be declared even when
2008         AVKit is disabled.
2009
2010 2015-11-02  Tim Horton  <timothy_horton@apple.com>
2011
2012         PDFPlugin should take advantage of threaded scrolling
2013         https://bugs.webkit.org/show_bug.cgi?id=150037
2014
2015         Reviewed by Anders Carlsson.
2016
2017         * page/PageOverlay.cpp:
2018         (WebCore::PageOverlay::PageOverlay):
2019         (WebCore::PageOverlay::setNeedsDisplay):
2020         Don't reset the overlay layer's opacity if we're not animating,
2021         because it's possible the client wants to manage it.
2022
2023         * page/PageOverlayController.cpp:
2024         (WebCore::PageOverlayController::updateForceSynchronousScrollLayerPositionUpdates):
2025         Let the overlay itself determine whether it needes synchronous scrolling,
2026         and let PageOverlay clients override the default.
2027
2028         * platform/Widget.h:
2029         (WebCore::Widget::boundsRect):
2030         Export a few useful things.
2031
2032 2015-11-02  Chris Dumez  <cdumez@apple.com>
2033
2034         Regression(r191673): Crash in RunLoopTimer::schedule()
2035         https://bugs.webkit.org/show_bug.cgi?id=150816
2036         <rdar://problem/23335285>
2037
2038         Reviewed by Anders Carlsson.
2039
2040         The crash was happening when the RunLoopTimer would fire during the
2041         call to RunLoopTimer::schedule(), which can happen because we are
2042         calling schedule() from a background thread. In such case, the
2043         timerFired() callback execution would cause |this| to get destroyed.
2044
2045         To avoid this issue, DecodingResultDispatcher is now ref-counted. The
2046         object is ref'd while calling startTimer() so that the object cannot go
2047         away during the execution of this method. Also, we explicitly ref the
2048         object when starting the timer to keep the object alive until the
2049         RunLoopTimer has fired, at which point we explicitely de-ref.
2050
2051         This should handle correctly the cases where the RunLoopTimer fires
2052         during AND after the execution of startTimer().
2053
2054         * platform/network/DataURLDecoder.cpp:
2055         (WebCore::DataURLDecoder::DecodingResultDispatcher::dispatch):
2056         (WebCore::DataURLDecoder::DecodingResultDispatcher::startTimer):
2057         (WebCore::DataURLDecoder::DecodingResultDispatcher::timerFired):
2058
2059 2015-11-02  Andy Estes  <aestes@apple.com>
2060
2061         [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS
2062         https://bugs.webkit.org/show_bug.cgi?id=150819
2063
2064         Reviewed by Dan Bernstein.
2065
2066         This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE.
2067
2068         * Configurations/Base.xcconfig:
2069
2070 2015-11-02  Brent Fulgham  <bfulgham@apple.com>
2071
2072         [Win] MiniBrowser unable to use WebInspector
2073         https://bugs.webkit.org/show_bug.cgi?id=150810
2074         <rdar://problem/23358514>
2075
2076         Reviewed by Timothy Hatcher.
2077
2078         The CMakeList rule for creating the InjectedScriptSource.min.js was improperly including
2079         the quote characters in the text prepended to InjectedScriptSource.min.js. This caused a
2080         parsing error in the JS file.
2081         
2082         The solution was to switch from using "COMMAND echo" to use the more cross-platform
2083         compatible command "COMMAND ${CMAKE_COMMAND} -E echo ...", which handles the string
2084         escaping properly on all platforms.
2085
2086         * CMakeLists.txt: Switch the 'echo' command syntax to be more cross-platform.
2087
2088 2015-11-02  Zalan Bujtas  <zalan@apple.com>
2089
2090         hasOverflowClip() does not necessarily mean valid layer().
2091         https://bugs.webkit.org/show_bug.cgi?id=150814
2092
2093         Reviewed by Simon Fraser.
2094
2095         Certain RenderLayerModelObject derived classes simply return false for ::requiresLayer(), which means
2096         that we end up not creating a layer for the overflow clipped content.   
2097
2098         No change in functionality.
2099
2100         * rendering/RenderBlock.cpp:
2101         (WebCore::RenderBlock::updateScrollInfoAfterLayout):
2102         (WebCore::RenderBlock::paint):
2103         * rendering/RenderBox.cpp:
2104         (WebCore::RenderBox::styleDidChange):
2105         (WebCore::RenderBox::scrollWidth):
2106         (WebCore::RenderBox::scrollHeight):
2107         (WebCore::RenderBox::scrollLeft):
2108         (WebCore::RenderBox::scrollTop):
2109         (WebCore::RenderBox::setScrollLeft):
2110         (WebCore::RenderBox::setScrollTop):
2111         (WebCore::RenderBox::includeVerticalScrollbarSize):
2112         (WebCore::RenderBox::includeHorizontalScrollbarSize):
2113         (WebCore::RenderBox::intrinsicScrollbarLogicalWidth):
2114         (WebCore::RenderBox::usesCompositedScrolling):
2115
2116 2015-11-02  Alex Christensen  <achristensen@webkit.org>
2117
2118         Fix Mac CMake build after r191904.
2119
2120         * PlatformMac.cmake:
2121         Move SettingsMac.mm to SettingsCocoa.mm.
2122
2123 2015-11-02  Eric Carlson  <eric.carlson@apple.com>
2124
2125         Add HTMLMediaElement behavior and attribute value restrictions for MediaStream
2126         https://bugs.webkit.org/show_bug.cgi?id=146853
2127
2128         Reviewed by Jer Noble.
2129
2130         * Modules/mediastream/MediaStream.cpp:
2131         (WebCore::MediaStream::scheduleActiveStateChange): Do nothing if the active state hasn't changed.
2132         (WebCore::MediaStream::activityEventTimerFired): Remove FIXME.
2133
2134         * Modules/mediastream/MediaStreamTrack.cpp:
2135         (WebCore::MediaStreamTrack::stopProducingData): Add comments. Notify observers that the track ended.
2136         (WebCore::MediaStreamTrack::trackEnded): Don't dispatch events after having been stopped.
2137         (WebCore::MediaStreamTrack::trackMutedChanged): Ditto.
2138
2139         * html/HTMLMediaElement.cpp:
2140         (WebCore::HTMLMediaElement::defaultPlaybackRate): Always return 1 when using a MediaStream.
2141         (WebCore::HTMLMediaElement::setDefaultPlaybackRate): Do nothing when using a MediaStream.
2142         (WebCore::HTMLMediaElement::playbackRate): Always return 1 when using a MediaStream.
2143         (WebCore::HTMLMediaElement::setPlaybackRate): Do nothing when using a MediaStream.
2144         (WebCore::HTMLMediaElement::ended): Ask the media engine when using a MediaStream.
2145         (WebCore::HTMLMediaElement::preload): Always return "none" when using a MediaStream.
2146         (WebCore::HTMLMediaElement::setPreload): Do nothing when using a MediaStream.
2147         (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Avoid unnecessary comparisons when the duration
2148           is not definite. Send ended event when MediaStream says stream has ended.
2149
2150         * platform/graphics/MediaPlayer.cpp:
2151         (WebCore::MediaPlayer::ended): New, passthrough to engine.
2152         * platform/graphics/MediaPlayer.h:
2153         * platform/graphics/MediaPlayerPrivate.h:
2154
2155         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
2156         * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
2157         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::load): Set m_ended from stream.
2158         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::cancelLoad): Pause the stream if necessary.
2159         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::play): Return early if ended or already playing.
2160         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::pause): Return early if ended or already paused.
2161         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::currentReadyState): Cleanup. Try to grab a paused
2162           image if the stream isn't active.
2163         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateReadyState): New.
2164         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::activeStatusChanged): Call updateReadyState.
2165         (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::characteristicsChanged): Ditto.
2166
2167         * platform/mediastream/MediaStreamPrivate.cpp:
2168         (WebCore::MediaStreamPrivate::trackEnabledChanged): Call updateActiveState so the state will
2169           be updated if necessary.
2170
2171         * platform/mediastream/RealtimeMediaSource.cpp:
2172         (WebCore::RealtimeMediaSource::stop): Don't call reset, there is no need to tear everything down.
2173
2174 2015-10-31  Andy Estes  <aestes@apple.com>
2175
2176         Replace iOS-only WebKitSystemInterface calls with SPI
2177         https://bugs.webkit.org/show_bug.cgi?id=150763
2178
2179         Reviewed by Darin Adler.
2180
2181         * WebCore.xcodeproj/project.pbxproj:
2182         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
2183         * css/MediaQueryEvaluator.cpp:
2184         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
2185         * html/HTMLMediaElement.cpp:
2186         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2187         * html/HTMLObjectElement.cpp:
2188         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
2189         * html/HTMLVideoElement.cpp:
2190         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2191         * page/NavigatorBase.cpp:
2192         * page/Settings.h:
2193         * page/ViewportConfiguration.cpp:
2194         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
2195         * page/ios/UserAgentIOS.mm:
2196         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
2197         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
2198         (WebCore::deviceName): Ditto for wkGetDeviceName().
2199         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
2200         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
2201         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
2202         * platform/PlatformScreen.h:
2203         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
2204         (WebCore::deviceClass):
2205         (WebCore::deviceName):
2206         (WebCore::deviceHasIPadCapability):
2207         * platform/ios/Device.h:
2208         * platform/ios/PlatformScreenIOS.mm:
2209         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
2210         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
2211         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
2212         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
2213         (WebCore::mobileGestaltFloatValue): Deleted.
2214         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
2215         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
2216         (iosDeviceClass): Deleted.
2217         * platform/ios/WebCoreSystemInterfaceIOS.mm:
2218         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2219         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2220         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2221         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
2222         * platform/ios/wak/WAKWindow.mm:
2223         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
2224         (-[WAKWindow initWithFrame:]): Ditto.
2225         * platform/ios/wak/WKGraphics.mm:
2226         (WKGraphicsCreateImageFromBundleWithName): Ditto.
2227         (WKDrawPatternBitmap): Ditto.
2228         * platform/mac/WebCoreSystemInterface.h:
2229         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
2230         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
2231         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
2232         * rendering/RenderThemeIOS.mm: Included UIKitSPI.h instead of UIColorSPI.h, and removed unnecessary forward declarations for the iOS public SDK build.
2233
2234 2015-11-02  Commit Queue  <commit-queue@webkit.org>
2235
2236         Unreviewed, rolling out r191902.
2237         https://bugs.webkit.org/show_bug.cgi?id=150811
2238
2239         This change broke iOS builders (Requested by ryanhaddad on
2240         #webkit).
2241
2242         Reverted changeset:
2243
2244         "Replace iOS-only WebKitSystemInterface calls with SPI"
2245         https://bugs.webkit.org/show_bug.cgi?id=150763
2246         http://trac.webkit.org/changeset/191902
2247
2248 2015-10-31  Andy Estes  <aestes@apple.com>
2249
2250         Replace iOS-only WebKitSystemInterface calls with SPI
2251         https://bugs.webkit.org/show_bug.cgi?id=150763
2252
2253         Reviewed by Darin Adler.
2254
2255         * WebCore.xcodeproj/project.pbxproj:
2256         * config.h: Removed WEBCORE_NAVIGATOR_PLATFORM and WEBCORE_NAVIGATOR_VENDOR.
2257         * css/MediaQueryEvaluator.cpp:
2258         (WebCore::isRunningOnIPhoneOrIPod): Used deviceClass() instead of iosDeviceClass().
2259         * html/HTMLMediaElement.cpp:
2260         (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2261         * html/HTMLObjectElement.cpp:
2262         (WebCore::shouldNotPerformURLAdjustment): Used dyld_get_program_sdk_version() instead of iosExecutableWasLinkedOnOrAfterVersion().
2263         * html/HTMLVideoElement.cpp:
2264         (WebCore::HTMLVideoElement::webkitSupportsPresentationMode): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2265         * page/NavigatorBase.cpp:
2266         * page/Settings.h:
2267         * page/ViewportConfiguration.cpp:
2268         (WebCore::ViewportConfiguration::textDocumentParameters): Used screenSize() instead of wkGetScreenSize().
2269         * page/ios/UserAgentIOS.mm:
2270         (WebCore::isClassic): Added to return -[UIApplication _isClassic].
2271         (WebCore::osNameForUserAgent): Upstreamed the implementation of WKGetOSNameForUserAgent() from WebKitSystemInterface.
2272         (WebCore::deviceName): Ditto for wkGetDeviceName().
2273         (WebCore::standardUserAgentWithApplicationName): Called deviceName() and osNameForUserAgent().
2274         * page/mac/SettingsCocoa.mm: Renamed from Source/WebCore/page/mac/SettingsMac.mm.
2275         (WebCore::Settings::defaultMinimumZoomFontSize): Upstreamed the implementation of WKGetMinimumZoomFontSize() from WebKitSystemInterface.
2276         * platform/PlatformScreen.h:
2277         * platform/ios/Device.cpp: Added functions that answer queries about the iOS device from MobileGestalt.
2278         (WebCore::deviceClass):
2279         (WebCore::deviceName):
2280         (WebCore::deviceHasIPadCapability):
2281         * platform/ios/Device.h:
2282         * platform/ios/PlatformScreenIOS.mm:
2283         (WebCore::screenPPIFactor): Used MGGetSInt32Answer() and MGGetFloat32Answer() instead of mobileGestaltFloatValue().
2284         (WebCore::screenSize): Upstreamed the implementation of WKGetScreenSize() from WebKitSystemInterface.
2285         (WebCore::availableScreenSize): Ditto for WKGetAvailableScreenSize().
2286         (WebCore::screenScaleFactor): Ditto for WKGetScreenScaleFactor() and WKGetScaleFactorForScreen().
2287         (WebCore::mobileGestaltFloatValue): Deleted.
2288         * platform/ios/WebCoreSystemInterfaceIOS.h: Removed.
2289         (iosExecutableWasLinkedOnOrAfterVersion): Deleted.
2290         (iosDeviceClass): Deleted.
2291         * platform/ios/WebCoreSystemInterfaceIOS.mm:
2292         * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
2293         * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
2294         (WebVideoFullscreenInterfaceAVKit::mayAutomaticallyShowVideoPictureInPicture): Used supportsPictureInPicture() instead of wkIsOptimizedFullscreenSupported().
2295         (WebCore::supportsPictureInPicture): Upstreamed the implementation of WKIsOptimizedFullscreenSupported() from WebKitSystemInterface.
2296         * platform/ios/wak/WAKWindow.mm:
2297         (-[WAKWindow initWithLayer:]): Used screenScaleFactor() instead of WKGetScreenScaleFactor().
2298         (-[WAKWindow initWithFrame:]): Ditto.
2299         * platform/ios/wak/WKGraphics.mm:
2300         (WKGraphicsCreateImageFromBundleWithName): Ditto.
2301         (WKDrawPatternBitmap): Ditto.
2302         * platform/mac/WebCoreSystemInterface.h:
2303         * platform/spi/cocoa/DynamicLinkerSPI.h: Defined additional DYLD_IOS_VERSION macros.
2304         * platform/spi/ios/MobileGestaltSPI.h: Defined additional MobileGestalt queries, enum MGDeviceClass, MGGetSInt32Answer, and MGGetFloat32Answer.
2305         * platform/spi/ios/UIKitSPI.h: Copied from Source/WebCore/platform/spi/ios/UIColorSPI.h, and added SPI declarations for UIApplication and UIScreen.
2306         * rendering/RenderThemeIOS.mm:
2307
2308 2015-11-02  Frederic Wang  <fred.wang@free.fr>
2309
2310         [Win] Add support for the USE_TYPO_METRICS flag
2311         https://bugs.webkit.org/show_bug.cgi?id=150451
2312
2313         Reviewed by Darin Adler.
2314
2315         Make the Windows backend use the typo metrics when the OS/2 USE_TYPO_METRICS flag is set.
2316
2317         No new tests because this is already tested by fonts/use-typo-metrics-1.html
2318
2319         * platform/graphics/win/SimpleFontDataCGWin.cpp:
2320         (WebCore::Font::platformInit):
2321         * platform/graphics/win/SimpleFontDataCairoWin.cpp:
2322         (WebCore::Font::platformInit):
2323         * platform/graphics/win/SimpleFontDataWin.cpp:
2324         (WebCore::Font::initGDIFont):
2325
2326 2015-11-02  Hyunduk Kim  <hyunduk.kim@samsung.com>
2327
2328         Enable MediaSource::isTypeSupported() to handle the upper-cased MIME type & Codec
2329         https://bugs.webkit.org/show_bug.cgi?id=150436
2330
2331         Reviewed by Darin Adler.
2332
2333         Got the new test case from
2334         https://github.com/w3c/web-platform-tests/blob/master/media-source/mediasource-is-type-supported.html 
2335         Tests: http\tests\media\media-source\mediasource-is-type-supported.html
2336
2337         * Modules/mediasource/MediaSource.cpp:
2338         (WebCore::MediaSource::isTypeSupported):
2339
2340 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
2341
2342         Rename JSDOMWrapper.impl to JSDOMWrapper.wrapped
2343         https://bugs.webkit.org/show_bug.cgi?id=150613
2344
2345         Reviewed by Darin Adler.
2346
2347         Renaming impl to wrapped in classes and binding generated classes.
2348         No change in behavior.
2349
2350         * Modules/plugins/QuickTimePluginReplacement.mm:
2351         (WebCore::JSQuickTimePluginReplacement::timedMetaData):
2352         (WebCore::JSQuickTimePluginReplacement::accessLog):
2353         (WebCore::JSQuickTimePluginReplacement::errorLog):
2354         * bindings/js/JSAttrCustom.cpp:
2355         (WebCore::JSAttr::visitAdditionalChildren):
2356         * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
2357         (WebCore::JSAudioBufferSourceNode::setBuffer):
2358         * bindings/js/JSAudioTrackCustom.cpp:
2359         (WebCore::JSAudioTrack::visitAdditionalChildren):
2360         (WebCore::JSAudioTrack::setKind):
2361         (WebCore::JSAudioTrack::setLanguage):
2362         * bindings/js/JSAudioTrackListCustom.cpp:
2363         (WebCore::JSAudioTrackList::visitAdditionalChildren):
2364         * bindings/js/JSBiquadFilterNodeCustom.cpp:
2365         (WebCore::JSBiquadFilterNode::setType):
2366         * bindings/js/JSCSSRuleCustom.cpp:
2367         (WebCore::JSCSSRule::visitAdditionalChildren):
2368         * bindings/js/JSCSSRuleListCustom.cpp:
2369         (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
2370         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2371         (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren):
2372         (WebCore::getPropertyValueFallback):
2373         (WebCore::cssPropertyGetterPixelOrPosPrefix):
2374         (WebCore::cssPropertyGetter):
2375         (WebCore::JSCSSStyleDeclaration::putDelegate):
2376         (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
2377         (WebCore::JSCSSStyleDeclaration::getOwnPropertyNames):
2378         * bindings/js/JSCSSValueCustom.cpp:
2379         (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
2380         (WebCore::JSCSSValueOwner::finalize):
2381         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2382         (WebCore::toHTMLCanvasStyle):
2383         (WebCore::JSCanvasRenderingContext2D::strokeStyle):
2384         (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
2385         (WebCore::JSCanvasRenderingContext2D::fillStyle):
2386         (WebCore::JSCanvasRenderingContext2D::setFillStyle):
2387         (WebCore::JSCanvasRenderingContext2D::webkitLineDash):
2388         (WebCore::JSCanvasRenderingContext2D::setWebkitLineDash):
2389         * bindings/js/JSCanvasRenderingContextCustom.cpp:
2390         (WebCore::JSCanvasRenderingContext::visitAdditionalChildren):
2391         * bindings/js/JSCharacterDataCustom.cpp:
2392         (WebCore::JSCharacterData::before):
2393         (WebCore::JSCharacterData::after):
2394         (WebCore::JSCharacterData::replaceWith):
2395         * bindings/js/JSCommandLineAPIHostCustom.cpp:
2396         (WebCore::JSCommandLineAPIHost::inspectedObject):
2397         (WebCore::JSCommandLineAPIHost::getEventListeners):
2398         (WebCore::JSCommandLineAPIHost::inspect):
2399         (WebCore::JSCommandLineAPIHost::databaseId):
2400         (WebCore::JSCommandLineAPIHost::storageId):
2401         * bindings/js/JSCryptoCustom.cpp:
2402         (WebCore::JSCrypto::getRandomValues):
2403         * bindings/js/JSCryptoKeyCustom.cpp:
2404         (WebCore::JSCryptoKey::algorithm):
2405         * bindings/js/JSCryptoKeyPairCustom.cpp:
2406         (WebCore::JSCryptoKeyPair::visitAdditionalChildren):
2407         * bindings/js/JSCustomEventCustom.cpp:
2408         (WebCore::JSCustomEvent::detail):
2409         * bindings/js/JSCustomXPathNSResolver.cpp:
2410         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2411         * bindings/js/JSDOMBinding.cpp:
2412         (WebCore::reportException):
2413         (WebCore::activeDOMWindow):
2414         (WebCore::firstDOMWindow):
2415         * bindings/js/JSDOMFormDataCustom.cpp:
2416         (WebCore::toHTMLFormElementOrNull):
2417         (WebCore::JSDOMFormData::append):
2418         * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
2419         (WebCore::JSDOMMimeTypeArray::nameGetter):
2420         * bindings/js/JSDOMNamedFlowCollectionCustom.cpp:
2421         (WebCore::JSDOMNamedFlowCollection::nameGetter):
2422         * bindings/js/JSDOMPluginArrayCustom.cpp:
2423         (WebCore::JSDOMPluginArray::nameGetter):
2424         * bindings/js/JSDOMPluginCustom.cpp:
2425         (WebCore::JSDOMPlugin::nameGetter):
2426         * bindings/js/JSDOMStringListCustom.cpp:
2427         (WebCore::JSDOMStringList::toWrapped):
2428         * bindings/js/JSDOMStringMapCustom.cpp:
2429         (WebCore::JSDOMStringMap::getOwnPropertySlotDelegate):
2430         (WebCore::JSDOMStringMap::getOwnPropertyNames):
2431         (WebCore::JSDOMStringMap::deleteProperty):
2432         (WebCore::JSDOMStringMap::putDelegate):
2433         * bindings/js/JSDOMTokenListCustom.cpp:
2434         (WebCore::JSDOMTokenList::toggle):
2435         * bindings/js/JSDOMWindowBase.cpp:
2436         (WebCore::shouldAllowAccessFrom):
2437         (WebCore::JSDOMWindowBase::JSDOMWindowBase):
2438         (WebCore::JSDOMWindowBase::updateDocument):
2439         (WebCore::JSDOMWindowBase::scriptExecutionContext):
2440         (WebCore::JSDOMWindowBase::printErrorMessage):
2441         (WebCore::JSDOMWindowBase::supportsProfiling):
2442         (WebCore::JSDOMWindowBase::supportsRichSourceInfo):
2443         (WebCore::JSDOMWindowBase::shouldInterruptScript):
2444         (WebCore::JSDOMWindowBase::shouldInterruptScriptBeforeTimeout):
2445         (WebCore::JSDOMWindowBase::javaScriptRuntimeFlags):
2446         (WebCore::JSDOMWindowBase::moduleLoaderResolve):
2447         (WebCore::JSDOMWindowBase::moduleLoaderFetch):
2448         (WebCore::JSDOMWindowBase::moduleLoaderEvaluate):
2449         * bindings/js/JSDOMWindowBase.h:
2450         * bindings/js/JSDOMWindowCustom.cpp:
2451         (WebCore::JSDOMWindow::visitAdditionalChildren):
2452         (WebCore::childFrameGetter):
2453         (WebCore::namedItemGetter):
2454         (WebCore::jsDOMWindowWebKit):
2455         (WebCore::jsDOMWindowIndexedDB):
2456         (WebCore::JSDOMWindow::getOwnPropertySlot):
2457         (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
2458         (WebCore::JSDOMWindow::put):
2459         (WebCore::JSDOMWindow::putByIndex):
2460         (WebCore::JSDOMWindow::deleteProperty):
2461         (WebCore::JSDOMWindow::deletePropertyByIndex):
2462         (WebCore::JSDOMWindow::getEnumerableLength):
2463         (WebCore::JSDOMWindow::getStructurePropertyNames):
2464         (WebCore::JSDOMWindow::getGenericPropertyNames):
2465         (WebCore::JSDOMWindow::getPropertyNames):
2466         (WebCore::JSDOMWindow::getOwnPropertyNames):
2467         (WebCore::JSDOMWindow::defineOwnProperty):
2468         (WebCore::JSDOMWindow::setLocation):
2469         (WebCore::JSDOMWindow::open):
2470         (WebCore::JSDOMWindow::showModalDialog):
2471         (WebCore::JSDOMWindow::postMessage):
2472         (WebCore::JSDOMWindow::setTimeout):
2473         (WebCore::JSDOMWindow::setInterval):
2474         (WebCore::JSDOMWindow::addEventListener):
2475         (WebCore::JSDOMWindow::removeEventListener):
2476         (WebCore::JSDOMWindow::toWrapped):
2477         * bindings/js/JSDOMWindowShell.cpp:
2478         (WebCore::JSDOMWindowShell::setWindow):
2479         (WebCore::JSDOMWindowShell::wrapped):
2480         * bindings/js/JSDOMWindowShell.h:
2481         * bindings/js/JSDOMWrapper.h:
2482         (WebCore::JSDOMWrapper::wrapped):
2483         (WebCore::JSDOMWrapper::JSDOMWrapper):
2484         * bindings/js/JSDataCueCustom.cpp:
2485         (WebCore::JSDataCue::value):
2486         (WebCore::JSDataCue::setValue):
2487         * bindings/js/JSDataTransferCustom.cpp:
2488         (WebCore::JSDataTransfer::types):
2489         * bindings/js/JSDedicatedWorkerGlobalScopeCustom.cpp:
2490         (WebCore::JSDedicatedWorkerGlobalScope::postMessage):
2491         * bindings/js/JSDeviceMotionEventCustom.cpp:
2492         (WebCore::JSDeviceMotionEvent::acceleration):
2493         (WebCore::JSDeviceMotionEvent::accelerationIncludingGravity):
2494         (WebCore::JSDeviceMotionEvent::rotationRate):
2495         (WebCore::JSDeviceMotionEvent::interval):
2496         (WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):
2497         * bindings/js/JSDeviceOrientationEventCustom.cpp:
2498         (WebCore::JSDeviceOrientationEvent::alpha):
2499         (WebCore::JSDeviceOrientationEvent::beta):
2500         (WebCore::JSDeviceOrientationEvent::gamma):
2501         (WebCore::JSDeviceOrientationEvent::webkitCompassHeading):
2502         (WebCore::JSDeviceOrientationEvent::webkitCompassAccuracy):
2503         (WebCore::JSDeviceOrientationEvent::absolute):
2504         (WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):
2505         * bindings/js/JSDocumentCustom.cpp:
2506         (WebCore::JSDocument::prepend):
2507         (WebCore::JSDocument::append):
2508         * bindings/js/JSDocumentFragmentCustom.cpp:
2509         (WebCore::JSDocumentFragment::prepend):
2510         (WebCore::JSDocumentFragment::append):
2511         * bindings/js/JSDocumentTypeCustom.cpp:
2512         (WebCore::JSDocumentType::before):
2513         (WebCore::JSDocumentType::after):
2514         (WebCore::JSDocumentType::replaceWith):
2515         * bindings/js/JSElementCustom.cpp:
2516         (WebCore::JSElement::before):
2517         (WebCore::JSElement::after):
2518         (WebCore::JSElement::replaceWith):
2519         (WebCore::JSElement::prepend):
2520         (WebCore::JSElement::append):
2521         * bindings/js/JSEventCustom.cpp:
2522         (WebCore::JSEvent::clipboardData):
2523         * bindings/js/JSEventListener.cpp:
2524         (WebCore::JSEventListener::handleEvent):
2525         * bindings/js/JSEventTargetCustom.cpp:
2526         * bindings/js/JSFileReaderCustom.cpp:
2527         (WebCore::JSFileReader::result):
2528         * bindings/js/JSGeolocationCustom.cpp:
2529         (WebCore::JSGeolocation::getCurrentPosition):
2530         (WebCore::JSGeolocation::watchPosition):
2531         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2532         (WebCore::namedItems):
2533         (WebCore::callHTMLAllCollection):
2534         (WebCore::JSHTMLAllCollection::item):
2535         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2536         (WebCore::JSHTMLCanvasElement::getContext):
2537         (WebCore::JSHTMLCanvasElement::probablySupportsContext):
2538         (WebCore::JSHTMLCanvasElement::toDataURL):
2539         * bindings/js/JSHTMLCollectionCustom.cpp:
2540         (WebCore::JSHTMLCollection::nameGetter):
2541         * bindings/js/JSHTMLDocumentCustom.cpp:
2542         (WebCore::JSHTMLDocument::nameGetter):
2543         (WebCore::JSHTMLDocument::all):
2544         (WebCore::findCallingDocument):
2545         (WebCore::JSHTMLDocument::open):
2546         (WebCore::documentWrite):
2547         * bindings/js/JSHTMLElementCustom.cpp:
2548         (WebCore::JSHTMLElement::pushEventHandlerScope):
2549         * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
2550         (WebCore::namedItems):
2551         * bindings/js/JSHTMLFormElementCustom.cpp:
2552         (WebCore::JSHTMLFormElement::nameGetter):
2553         * bindings/js/JSHTMLFrameElementCustom.cpp:
2554         (WebCore::JSHTMLFrameElement::setLocation):
2555         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
2556         (WebCore::JSHTMLFrameSetElement::nameGetter):
2557         * bindings/js/JSHTMLInputElementCustom.cpp:
2558         (WebCore::JSHTMLInputElement::selectionStart):
2559         (WebCore::JSHTMLInputElement::setSelectionStart):
2560         (WebCore::JSHTMLInputElement::selectionEnd):
2561         (WebCore::JSHTMLInputElement::setSelectionEnd):
2562         (WebCore::JSHTMLInputElement::selectionDirection):
2563         (WebCore::JSHTMLInputElement::setSelectionDirection):
2564         (WebCore::JSHTMLInputElement::setSelectionRange):
2565         * bindings/js/JSHTMLMediaElementCustom.cpp:
2566         (WebCore::JSHTMLMediaElement::setController):
2567         * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
2568         (WebCore::JSHTMLOptionsCollection::nameGetter):
2569         (WebCore::JSHTMLOptionsCollection::setLength):
2570         (WebCore::JSHTMLOptionsCollection::indexSetter):
2571         (WebCore::JSHTMLOptionsCollection::remove):
2572         * bindings/js/JSHTMLSelectElementCustom.cpp:
2573         (WebCore::JSHTMLSelectElement::remove):
2574         (WebCore::JSHTMLSelectElement::indexSetter):
2575         * bindings/js/JSHTMLTemplateElementCustom.cpp:
2576         (WebCore::JSHTMLTemplateElement::content):
2577         * bindings/js/JSHistoryCustom.cpp:
2578         (WebCore::JSHistory::getOwnPropertySlotDelegate):
2579         (WebCore::JSHistory::putDelegate):
2580         (WebCore::JSHistory::deleteProperty):
2581         (WebCore::JSHistory::deletePropertyByIndex):
2582         (WebCore::JSHistory::getOwnPropertyNames):
2583         (WebCore::JSHistory::state):
2584         (WebCore::JSHistory::pushState):
2585         (WebCore::JSHistory::replaceState):
2586         * bindings/js/JSIDBDatabaseCustom.cpp:
2587         (WebCore::JSIDBDatabase::createObjectStore):
2588         * bindings/js/JSIDBObjectStoreCustom.cpp:
2589         (WebCore::JSIDBObjectStore::createIndex):
2590         * bindings/js/JSInspectorFrontendHostCustom.cpp:
2591         (WebCore::JSInspectorFrontendHost::showContextMenu):
2592         * bindings/js/JSLocationCustom.cpp:
2593         (WebCore::JSLocation::getOwnPropertySlotDelegate):
2594         (WebCore::JSLocation::putDelegate):
2595         (WebCore::JSLocation::deleteProperty):
2596         (WebCore::JSLocation::deletePropertyByIndex):
2597         (WebCore::JSLocation::getOwnPropertyNames):
2598         (WebCore::JSLocation::toStringFunction):
2599         * bindings/js/JSMediaSourceStatesCustom.cpp:
2600         (WebCore::JSMediaSourceStates::width):
2601         (WebCore::JSMediaSourceStates::height):
2602         (WebCore::JSMediaSourceStates::frameRate):
2603         (WebCore::JSMediaSourceStates::aspectRatio):
2604         (WebCore::JSMediaSourceStates::facingMode):
2605         (WebCore::JSMediaSourceStates::volume):
2606         * bindings/js/JSMessageChannelCustom.cpp:
2607         (WebCore::JSMessageChannel::visitAdditionalChildren):
2608         * bindings/js/JSMessageEventCustom.cpp:
2609         (WebCore::JSMessageEvent::data):
2610         (WebCore::handleInitMessageEvent):
2611         * bindings/js/JSMessagePortCustom.cpp:
2612         (WebCore::JSMessagePort::visitAdditionalChildren):
2613         (WebCore::JSMessagePort::postMessage):
2614         * bindings/js/JSMockContentFilterSettingsCustom.cpp:
2615         (WebCore::JSMockContentFilterSettings::decisionPoint):
2616         (WebCore::JSMockContentFilterSettings::setDecisionPoint):
2617         (WebCore::JSMockContentFilterSettings::decision):
2618         (WebCore::JSMockContentFilterSettings::setDecision):
2619         (WebCore::JSMockContentFilterSettings::unblockRequestDecision):
2620         (WebCore::JSMockContentFilterSettings::setUnblockRequestDecision):
2621         * bindings/js/JSMutationObserverCustom.cpp:
2622         (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
2623         * bindings/js/JSNamedNodeMapCustom.cpp:
2624         (WebCore::JSNamedNodeMap::nameGetter):
2625         * bindings/js/JSNavigatorCustom.cpp:
2626         (WebCore::JSNavigator::webkitGetUserMedia):
2627         * bindings/js/JSNodeCustom.cpp:
2628         (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
2629         (WebCore::JSNode::insertBefore):
2630         (WebCore::JSNode::replaceChild):
2631         (WebCore::JSNode::removeChild):
2632         (WebCore::JSNode::appendChild):
2633         (WebCore::JSNode::visitAdditionalChildren):
2634         * bindings/js/JSNodeIteratorCustom.cpp:
2635         (WebCore::JSNodeIterator::visitAdditionalChildren):
2636         * bindings/js/JSNodeListCustom.cpp:
2637         (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
2638         * bindings/js/JSNodeOrString.cpp:
2639         (WebCore::toNodeOrStringVector):
2640         * bindings/js/JSOscillatorNodeCustom.cpp:
2641         (WebCore::JSOscillatorNode::setType):
2642         * bindings/js/JSPannerNodeCustom.cpp:
2643         (WebCore::JSPannerNode::setPanningModel):
2644         (WebCore::JSPannerNode::setDistanceModel):
2645         * bindings/js/JSPluginElementFunctions.cpp:
2646         (WebCore::pluginScriptObjectFromPluginViewBase):
2647         (WebCore::pluginScriptObject):
2648         (WebCore::pluginElementGetCallData):
2649         * bindings/js/JSPopStateEventCustom.cpp:
2650         (WebCore::JSPopStateEvent::state):
2651         * bindings/js/JSRTCStatsResponseCustom.cpp:
2652         (WebCore::JSRTCStatsResponse::nameGetter):
2653         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2654         (WebCore::JSSQLResultSetRowList::item):
2655         * bindings/js/JSSQLTransactionCustom.cpp:
2656         (WebCore::JSSQLTransaction::executeSql):
2657         * bindings/js/JSSVGLengthCustom.cpp:
2658         (WebCore::JSSVGLength::value):
2659         (WebCore::JSSVGLength::setValue):
2660         (WebCore::JSSVGLength::convertToSpecifiedUnits):
2661         * bindings/js/JSStorageCustom.cpp:
2662         (WebCore::JSStorage::nameGetter):
2663         (WebCore::JSStorage::deleteProperty):
2664         (WebCore::JSStorage::getOwnPropertyNames):
2665         (WebCore::JSStorage::putDelegate):
2666         * bindings/js/JSStyleSheetCustom.cpp:
2667         (WebCore::JSStyleSheet::visitAdditionalChildren):
2668         * bindings/js/JSStyleSheetListCustom.cpp:
2669         (WebCore::JSStyleSheetList::nameGetter):
2670         * bindings/js/JSSubtleCryptoCustom.cpp:
2671         (WebCore::JSSubtleCrypto::encrypt):
2672         (WebCore::JSSubtleCrypto::decrypt):
2673         (WebCore::JSSubtleCrypto::sign):
2674         (WebCore::JSSubtleCrypto::verify):
2675         (WebCore::JSSubtleCrypto::wrapKey):
2676         (WebCore::JSSubtleCrypto::unwrapKey):
2677         * bindings/js/JSTextTrackCueCustom.cpp:
2678         (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
2679         (WebCore::JSTextTrackCue::visitAdditionalChildren):
2680         * bindings/js/JSTextTrackCustom.cpp:
2681         (WebCore::JSTextTrack::visitAdditionalChildren):
2682         (WebCore::JSTextTrack::setKind):
2683         (WebCore::JSTextTrack::setLanguage):
2684         * bindings/js/JSTextTrackListCustom.cpp:
2685         (WebCore::JSTextTrackList::visitAdditionalChildren):
2686         * bindings/js/JSTrackCustom.cpp:
2687         (WebCore::toTrack):
2688         * bindings/js/JSTrackEventCustom.cpp:
2689         (WebCore::JSTrackEvent::track):
2690         * bindings/js/JSTreeWalkerCustom.cpp:
2691         (WebCore::JSTreeWalker::visitAdditionalChildren):
2692         * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
2693         (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
2694         * bindings/js/JSVideoTrackCustom.cpp:
2695         (WebCore::JSVideoTrack::visitAdditionalChildren):
2696         (WebCore::JSVideoTrack::setKind):
2697         (WebCore::JSVideoTrack::setLanguage):
2698         * bindings/js/JSVideoTrackListCustom.cpp:
2699         (WebCore::JSVideoTrackList::visitAdditionalChildren):
2700         * bindings/js/JSWebGL2RenderingContextCustom.cpp:
2701         (WebCore::JSWebGL2RenderingContext::visitAdditionalChildren):
2702         (WebCore::JSWebGL2RenderingContext::getIndexedParameter):
2703         * bindings/js/JSWebGLRenderingContextBaseCustom.cpp:
2704         (WebCore::getObjectParameter):
2705         (WebCore::JSWebGLRenderingContextBase::visitAdditionalChildren):
2706         (WebCore::JSWebGLRenderingContextBase::getAttachedShaders):
2707         (WebCore::JSWebGLRenderingContextBase::getExtension):
2708         (WebCore::JSWebGLRenderingContextBase::getFramebufferAttachmentParameter):
2709         (WebCore::JSWebGLRenderingContextBase::getParameter):
2710         (WebCore::JSWebGLRenderingContextBase::getProgramParameter):
2711         (WebCore::JSWebGLRenderingContextBase::getShaderParameter):
2712         (WebCore::JSWebGLRenderingContextBase::getSupportedExtensions):
2713         (WebCore::JSWebGLRenderingContextBase::getUniform):
2714         (WebCore::JSWebGLRenderingContextBase::uniform1fv):
2715         (WebCore::JSWebGLRenderingContextBase::uniform1iv):
2716         (WebCore::JSWebGLRenderingContextBase::uniform2fv):
2717         (WebCore::JSWebGLRenderingContextBase::uniform2iv):
2718         (WebCore::JSWebGLRenderingContextBase::uniform3fv):
2719         (WebCore::JSWebGLRenderingContextBase::uniform3iv):
2720         (WebCore::JSWebGLRenderingContextBase::uniform4fv):
2721         (WebCore::JSWebGLRenderingContextBase::uniform4iv):
2722         (WebCore::JSWebGLRenderingContextBase::uniformMatrix2fv):
2723         (WebCore::JSWebGLRenderingContextBase::uniformMatrix3fv):
2724         (WebCore::JSWebGLRenderingContextBase::uniformMatrix4fv):
2725         (WebCore::JSWebGLRenderingContextBase::vertexAttrib1fv):
2726         (WebCore::JSWebGLRenderingContextBase::vertexAttrib2fv):
2727         (WebCore::JSWebGLRenderingContextBase::vertexAttrib3fv):
2728         (WebCore::JSWebGLRenderingContextBase::vertexAttrib4fv):
2729         * bindings/js/JSWebGLRenderingContextCustom.cpp:
2730         (WebCore::JSWebGLRenderingContext::visitAdditionalChildren):
2731         * bindings/js/JSWorkerCustom.cpp:
2732         (WebCore::JSWorker::postMessage):
2733         (WebCore::constructJSWorker):
2734         * bindings/js/JSWorkerGlobalScopeBase.cpp:
2735         (WebCore::JSWorkerGlobalScopeBase::JSWorkerGlobalScopeBase):
2736         (WebCore::JSWorkerGlobalScopeBase::scriptExecutionContext):
2737         * bindings/js/JSWorkerGlobalScopeBase.h:
2738         (WebCore::JSWorkerGlobalScopeBase::wrapped):
2739         * bindings/js/JSWorkerGlobalScopeCustom.cpp:
2740         (WebCore::JSWorkerGlobalScope::visitAdditionalChildren):
2741         (WebCore::JSWorkerGlobalScope::importScripts):
2742         (WebCore::JSWorkerGlobalScope::setTimeout):
2743         (WebCore::JSWorkerGlobalScope::setInterval):
2744         * bindings/js/JSXMLHttpRequestCustom.cpp:
2745         (WebCore::JSXMLHttpRequest::visitAdditionalChildren):
2746         (WebCore::JSXMLHttpRequest::open):
2747         (WebCore::JSXMLHttpRequest::send):
2748         (WebCore::JSXMLHttpRequest::responseText):
2749         (WebCore::JSXMLHttpRequest::response):
2750         * bindings/js/JSXPathResultCustom.cpp:
2751         (WebCore::JSXPathResult::visitAdditionalChildren):
2752         * bindings/js/JSXSLTProcessorCustom.cpp:
2753         (WebCore::JSXSLTProcessor::setParameter):
2754         (WebCore::JSXSLTProcessor::getParameter):
2755         (WebCore::JSXSLTProcessor::removeParameter):
2756         * bindings/js/ScheduledAction.cpp:
2757         (WebCore::ScheduledAction::execute):
2758         * bindings/js/ScriptCachedFrameData.cpp:
2759         (WebCore::ScriptCachedFrameData::restore):
2760         * bindings/js/ScriptController.cpp:
2761         (WebCore::ScriptController::clearWindowShell):
2762         (WebCore::ScriptController::collectIsolatedContexts):
2763         * bindings/js/ScriptState.cpp:
2764         (WebCore::domWindowFromExecState):
2765         * bindings/objc/DOM.mm:
2766         (+[DOMNode _nodeFromJSWrapper:]):
2767         * bindings/objc/DOMUtility.mm:
2768         (JSC::createDOMWrapper):
2769         * bindings/objc/WebScriptObject.mm:
2770         (-[WebScriptObject _isSafeScript]):
2771         (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
2772         * bindings/scripts/CodeGeneratorJS.pm:
2773         (GenerateGetOwnPropertySlotBody):
2774         (GenerateHeader):
2775         (GetIndexedGetterExpression):
2776         (GenerateImplementation):
2777         (NativeToJSValue):
2778         * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
2779         (WebCore::jsTestActiveDOMObjectExcitingAttr):
2780         (WebCore::jsTestActiveDOMObjectConstructor):
2781         (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
2782         (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
2783         (WebCore::JSTestActiveDOMObjectOwner::finalize):
2784         (WebCore::JSTestActiveDOMObject::toWrapped):
2785         * bindings/scripts/test/JS/JSTestCustomConstructorWithNoInterfaceObject.cpp:
2786         (WebCore::JSTestCustomConstructorWithNoInterfaceObjectOwner::finalize):
2787         (WebCore::JSTestCustomConstructorWithNoInterfaceObject::toWrapped):
2788         * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
2789         (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
2790         (WebCore::JSTestCustomNamedGetterOwner::finalize):
2791         (WebCore::JSTestCustomNamedGetter::toWrapped):
2792         * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
2793         (WebCore::jsTestEventConstructorAttr1):
2794         (WebCore::jsTestEventConstructorAttr2):
2795         (WebCore::JSTestEventConstructorOwner::finalize):
2796         (WebCore::JSTestEventConstructor::toWrapped):
2797         * bindings/scripts/test/JS/JSTestEventTarget.cpp:
2798         (WebCore::JSTestEventTarget::getOwnPropertySlot):
2799         (WebCore::JSTestEventTarget::getOwnPropertySlotByIndex):
2800         (WebCore::JSTestEventTarget::getOwnPropertyNames):
2801         (WebCore::jsTestEventTargetPrototypeFunctionItem):
2802         (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
2803         (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
2804         (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
2805         (WebCore::JSTestEventTarget::visitChildren):
2806         (WebCore::JSTestEventTargetOwner::isReachableFromOpaqueRoots):
2807         (WebCore::JSTestEventTargetOwner::finalize):
2808         (WebCore::JSTestEventTarget::toWrapped):
2809         * bindings/scripts/test/JS/JSTestException.cpp:
2810         (WebCore::jsTestExceptionName):
2811         (WebCore::JSTestExceptionOwner::finalize):
2812         (WebCore::JSTestException::toWrapped):
2813         * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
2814         (WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots):
2815         (WebCore::JSTestGenerateIsReachableOwner::finalize):
2816         (WebCore::JSTestGenerateIsReachable::toWrapped):
2817         * bindings/scripts/test/JS/JSTestInterface.cpp:
2818         (WebCore::jsTestInterfaceImplementsStr1):
2819         (WebCore::jsTestInterfaceImplementsStr2):
2820         (WebCore::jsTestInterfaceImplementsNode):
2821         (WebCore::jsTestInterfaceSupplementalStr1):
2822         (WebCore::jsTestInterfaceSupplementalStr2):
2823         (WebCore::jsTestInterfaceSupplementalNode):
2824         (WebCore::setJSTestInterfaceImplementsStr2):
2825         (WebCore::setJSTestInterfaceImplementsNode):
2826         (WebCore::setJSTestInterfaceSupplementalStr2):
2827         (WebCore::setJSTestInterfaceSupplementalNode):
2828         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
2829         (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
2830         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
2831         (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
2832         (WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots):
2833         (WebCore::JSTestInterfaceOwner::finalize):
2834         (WebCore::JSTestInterface::toWrapped):
2835         * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
2836         (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
2837         (WebCore::JSTestMediaQueryListListenerOwner::finalize):
2838         (WebCore::JSTestMediaQueryListListener::toWrapped):
2839         * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
2840         (WebCore::JSTestNamedConstructorOwner::isReachableFromOpaqueRoots):
2841         (WebCore::JSTestNamedConstructorOwner::finalize):
2842         (WebCore::JSTestNamedConstructor::toWrapped):
2843         * bindings/scripts/test/JS/JSTestNode.cpp:
2844         (WebCore::jsTestNodeName):
2845         (WebCore::setJSTestNodeName):
2846         (WebCore::JSTestNode::visitChildren):
2847         * bindings/scripts/test/JS/JSTestNode.h:
2848         * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
2849         (WebCore::jsTestNondeterministicNondeterministicReadonlyAttr):
2850         (WebCore::jsTestNondeterministicNondeterministicWriteableAttr):
2851         (WebCore::jsTestNondeterministicNondeterministicExceptionAttr):
2852         (WebCore::jsTestNondeterministicNondeterministicGetterExceptionAttr):
2853         (WebCore::jsTestNondeterministicNondeterministicSetterExceptionAttr):
2854         (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
2855         (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
2856         (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
2857         (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
2858         (WebCore::jsTestNondeterministicPrototypeFunctionNondeterministicZeroArgFunction):
2859         (WebCore::JSTestNondeterministicOwner::finalize):
2860         (WebCore::JSTestNondeterministic::toWrapped):
2861         * bindings/scripts/test/JS/JSTestObj.cpp:
2862         (WebCore::jsTestObjReadOnlyLongAttr):
2863         (WebCore::jsTestObjReadOnlyStringAttr):
2864         (WebCore::jsTestObjReadOnlyTestObjAttr):
2865         (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
2866         (WebCore::jsTestObjEnumAttr):
2867         (WebCore::jsTestObjByteAttr):
2868         (WebCore::jsTestObjOctetAttr):
2869         (WebCore::jsTestObjShortAttr):
2870         (WebCore::jsTestObjUnsignedShortAttr):
2871         (WebCore::jsTestObjLongAttr):
2872         (WebCore::jsTestObjLongLongAttr):
2873         (WebCore::jsTestObjUnsignedLongLongAttr):
2874         (WebCore::jsTestObjStringAttr):
2875         (WebCore::jsTestObjTestObjAttr):
2876         (WebCore::jsTestObjXMLObjAttr):
2877         (WebCore::jsTestObjCreate):
2878         (WebCore::jsTestObjReflectedStringAttr):
2879         (WebCore::jsTestObjReflectedIntegralAttr):
2880         (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
2881         (WebCore::jsTestObjReflectedBooleanAttr):
2882         (WebCore::jsTestObjReflectedURLAttr):
2883         (WebCore::jsTestObjReflectedCustomIntegralAttr):
2884         (WebCore::jsTestObjReflectedCustomBooleanAttr):
2885         (WebCore::jsTestObjReflectedCustomURLAttr):
2886         (WebCore::jsTestObjTypedArrayAttr):
2887         (WebCore::jsTestObjAttrWithGetterException):
2888         (WebCore::jsTestObjAttrWithSetterException):
2889         (WebCore::jsTestObjStringAttrWithGetterException):
2890         (WebCore::jsTestObjStringAttrWithSetterException):
2891         (WebCore::jsTestObjStrictTypeCheckingAttribute):
2892         (WebCore::jsTestObjOnfoo):
2893         (WebCore::jsTestObjWithScriptStateAttribute):
2894         (WebCore::jsTestObjWithCallWithAndSetterCallWithAttribute):
2895         (WebCore::jsTestObjWithScriptExecutionContextAttribute):
2896         (WebCore::jsTestObjWithScriptStateAttributeRaises):
2897         (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
2898         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
2899         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
2900         (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
2901         (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
2902         (WebCore::jsTestObjConditionalAttr1):
2903         (WebCore::jsTestObjConditionalAttr2):
2904         (WebCore::jsTestObjConditionalAttr3):
2905         (WebCore::jsTestObjCachedAttribute1):
2906         (WebCore::jsTestObjCachedAttribute2):
2907         (WebCore::jsTestObjAnyAttribute):
2908         (WebCore::jsTestObjContentDocument):
2909         (WebCore::jsTestObjMutablePoint):
2910         (WebCore::jsTestObjImmutablePoint):
2911         (WebCore::jsTestObjStrawberry):
2912         (WebCore::jsTestObjStrictFloat):
2913         (WebCore::jsTestObjDescription):
2914         (WebCore::jsTestObjId):
2915         (WebCore::jsTestObjHash):
2916         (WebCore::jsTestObjReplaceableAttribute):
2917         (WebCore::jsTestObjNullableDoubleAttribute):
2918         (WebCore::jsTestObjNullableLongAttribute):
2919         (WebCore::jsTestObjNullableBooleanAttribute):
2920         (WebCore::jsTestObjNullableStringAttribute):
2921         (WebCore::jsTestObjNullableLongSettableAttribute):
2922         (WebCore::jsTestObjNullableStringValue):
2923         (WebCore::jsTestObjAttribute):
2924         (WebCore::jsTestObjAttributeWithReservedEnumType):
2925         (WebCore::jsTestObjPutForwardsAttribute):
2926         (WebCore::jsTestObjPutForwardsNullableAttribute):
2927         (WebCore::setJSTestObjEnumAttr):
2928         (WebCore::setJSTestObjByteAttr):
2929         (WebCore::setJSTestObjOctetAttr):
2930         (WebCore::setJSTestObjShortAttr):
2931         (WebCore::setJSTestObjUnsignedShortAttr):
2932         (WebCore::setJSTestObjLongAttr):
2933         (WebCore::setJSTestObjLongLongAttr):
2934         (WebCore::setJSTestObjUnsignedLongLongAttr):
2935         (WebCore::setJSTestObjStringAttr):
2936         (WebCore::setJSTestObjTestObjAttr):
2937         (WebCore::setJSTestObjXMLObjAttr):
2938         (WebCore::setJSTestObjCreate):
2939         (WebCore::setJSTestObjReflectedStringAttr):
2940         (WebCore::setJSTestObjReflectedIntegralAttr):
2941         (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
2942         (WebCore::setJSTestObjReflectedBooleanAttr):
2943         (WebCore::setJSTestObjReflectedURLAttr):
2944         (WebCore::setJSTestObjReflectedCustomIntegralAttr):
2945         (WebCore::setJSTestObjReflectedCustomBooleanAttr):
2946         (WebCore::setJSTestObjReflectedCustomURLAttr):
2947         (WebCore::setJSTestObjTypedArrayAttr):
2948         (WebCore::setJSTestObjAttrWithGetterException):
2949         (WebCore::setJSTestObjAttrWithSetterException):
2950         (WebCore::setJSTestObjStringAttrWithGetterException):
2951         (WebCore::setJSTestObjStringAttrWithSetterException):
2952         (WebCore::setJSTestObjStrictTypeCheckingAttribute):
2953         (WebCore::setJSTestObjOnfoo):
2954         (WebCore::setJSTestObjWithScriptStateAttribute):
2955         (WebCore::setJSTestObjWithCallWithAndSetterCallWithAttribute):
2956         (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
2957         (WebCore::setJSTestObjWithScriptStateAttributeRaises):
2958         (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
2959         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
2960         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
2961         (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
2962         (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
2963         (WebCore::setJSTestObjConditionalAttr1):
2964         (WebCore::setJSTestObjConditionalAttr2):
2965         (WebCore::setJSTestObjConditionalAttr3):
2966         (WebCore::setJSTestObjAnyAttribute):
2967         (WebCore::setJSTestObjMutablePoint):
2968         (WebCore::setJSTestObjImmutablePoint):
2969         (WebCore::setJSTestObjStrawberry):
2970         (WebCore::setJSTestObjStrictFloat):
2971         (WebCore::setJSTestObjId):
2972         (WebCore::setJSTestObjNullableLongSettableAttribute):
2973         (WebCore::setJSTestObjNullableStringValue):
2974         (WebCore::setJSTestObjAttributeWithReservedEnumType):
2975         (WebCore::setJSTestObjPutForwardsAttribute):
2976         (WebCore::setJSTestObjPutForwardsNullableAttribute):
2977         (WebCore::jsTestObjPrototypeFunctionVoidMethod):
2978         (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
2979         (WebCore::jsTestObjPrototypeFunctionByteMethod):
2980         (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
2981         (WebCore::jsTestObjPrototypeFunctionOctetMethod):
2982         (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
2983         (WebCore::jsTestObjPrototypeFunctionLongMethod):
2984         (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
2985         (WebCore::jsTestObjPrototypeFunctionObjMethod):
2986         (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
2987         (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
2988         (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
2989         (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
2990         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalEnumArgAndDefaultValue):
2991         (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
2992         (WebCore::jsTestObjPrototypeFunctionSerializedValue):
2993         (WebCore::jsTestObjPrototypeFunctionOptionsObject):
2994         (WebCore::jsTestObjPrototypeFunctionMethodWithException):
2995         (WebCore::jsTestObjPrototypeFunctionPrivateMethod):
2996         (WebCore::jsTestObjPrototypeFunctionAddEventListener):
2997         (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
2998         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
2999         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
3000         (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
3001         (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
3002         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
3003         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
3004         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
3005         (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
3006         (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
3007         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
3008         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArgAndDefaultValue):
3009         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
3010         (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
3011         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
3012         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringAndDefaultValue):
3013         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
3014         (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
3015         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
3016         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
3017         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
3018         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionArg):
3019         (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackFunctionArg):
3020         (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackFunctionAndOptionalArg):
3021         (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
3022         (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
3023         (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
3024         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
3025         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
3026         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
3027         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
3028         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
3029         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
3030         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
3031         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
3032         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
3033         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
3034         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
3035         (WebCore::jsTestObjPrototypeFunctionOverloadedMethod12):
3036         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter1):
3037         (WebCore::jsTestObjPrototypeFunctionOverloadedMethodWithOptionalParameter2):
3038         (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
3039         (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
3040         (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
3041         (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
3042         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence):
3043         (WebCore::jsTestObjPrototypeFunctionMethodWithAndWithoutNullableSequence2):
3044         (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
3045         (WebCore::jsTestObjPrototypeFunctionConvert1):
3046         (WebCore::jsTestObjPrototypeFunctionConvert2):
3047         (WebCore::jsTestObjPrototypeFunctionConvert4):
3048         (WebCore::jsTestObjPrototypeFunctionConvert5):
3049         (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
3050         (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
3051         (WebCore::jsTestObjPrototypeFunctionOrange):
3052         (WebCore::jsTestObjPrototypeFunctionStrictFunction):
3053         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
3054         (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
3055         (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
3056         (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
3057         (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
3058         (WebCore::jsTestObjPrototypeFunctionAny):
3059         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionPromise):
3060         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithFloatArgumentPromise):
3061         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithExceptionPromise):
3062         (WebCore::jsTestObjPrototypeFunctionTestPromiseFunctionWithOptionalIntArgumentPromise):
3063         (WebCore::JSTestObjOwner::finalize):
3064         (WebCore::JSTestObj::toWrapped):
3065         * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
3066         (WebCore::JSTestOverloadedConstructorsOwner::finalize):
3067         (WebCore::JSTestOverloadedConstructors::toWrapped):
3068         * bindings/scripts/test/JS/JSTestOverrideBuiltins.cpp:
3069         (WebCore::JSTestOverrideBuiltins::getOwnPropertyNames):
3070         (WebCore::jsTestOverrideBuiltinsPrototypeFunctionNamedItem):
3071         (WebCore::JSTestOverrideBuiltinsOwner::finalize):
3072         (WebCore::JSTestOverrideBuiltins::toWrapped):
3073         * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
3074         (WebCore::jsTestSerializedScriptValueInterfaceValue):
3075         (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
3076         (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
3077         (WebCore::jsTestSerializedScriptValueInterfacePorts):
3078         (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
3079         (WebCore::setJSTestSerializedScriptValueInterfaceValue):
3080         (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
3081         (WebCore::JSTestSerializedScriptValueInterfaceOwner::finalize):
3082         (WebCore::JSTestSerializedScriptValueInterface::toWrapped):
3083         * bindings/scripts/test/JS/JSTestTypedefs.cpp:
3084         (WebCore::jsTestTypedefsUnsignedLongLongAttr):
3085         (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
3086         (WebCore::jsTestTypedefsAttrWithGetterException):
3087         (WebCore::jsTestTypedefsAttrWithSetterException):
3088         (WebCore::jsTestTypedefsStringAttrWithGetterException):
3089         (WebCore::jsTestTypedefsStringAttrWithSetterException):
3090         (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
3091         (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
3092         (WebCore::setJSTestTypedefsAttrWithGetterException):
3093         (WebCore::setJSTestTypedefsAttrWithSetterException):
3094         (WebCore::setJSTestTypedefsStringAttrWithGetterException):
3095         (WebCore::setJSTestTypedefsStringAttrWithSetterException):
3096         (WebCore::jsTestTypedefsPrototypeFunctionFunc):
3097         (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
3098         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
3099         (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
3100         (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
3101         (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
3102         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
3103         (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
3104         (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
3105         (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
3106         (WebCore::JSTestTypedefsOwner::finalize):
3107         (WebCore::JSTestTypedefs::toWrapped):
3108         * bindings/scripts/test/JS/JSattribute.cpp:
3109         (WebCore::jsattributeReadonly):
3110         (WebCore::JSattributeOwner::finalize):
3111         (WebCore::JSattribute::toWrapped):
3112         * bindings/scripts/test/JS/JSreadonly.cpp:
3113         (WebCore::JSreadonlyOwner::finalize):
3114         (WebCore::JSreadonly::toWrapped):
3115         * bridge/runtime_method.cpp:
3116         (JSC::callRuntimeMethod):
3117         * inspector/InspectorController.cpp:
3118         (WebCore::InspectorController::canAccessInspectedScriptState):
3119
3120 2015-11-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>
3121
3122         IDL functions and attributes should be JSBuiltin by default if interface is marked as JSBuiltinConstructor
3123         https://bugs.webkit.org/show_bug.cgi?id=150438
3124
3125         Reviewed by Darin Adler.
3126
3127         Binding generator is now deducing that function/attribute is JSBuiltin if the interface is marked as JSBuiltin.
3128         One exception is custom setters, getters or functions which remain C++ handled.
3129         Updated streams API IDLs accordingly.
3130
3131         Binding generator knows whether class needs a DOM class by checking whether the interface is marked as JSBuiltin.
3132         Binding generator knows that class uses a JS built-in constructor if marked as JSBuiltin+Constructor.
3133         In particular, JSBuiltIn+CustomConstructor means that a DOM class is not needed and constructor is not JS built-in.
3134
3135         Applied JSBuiltin+CustomConstructor to ReadableStreamReader and ReadableStreamController.
3136         Removing ReadableStreamReader and ReadableStreamController classes.
3137
3138         Removed unneeded "Default" keyword for cancel function in WebIDL.
3139
3140         Added a binding test case.
3141         No change in behavior.
3142
3143         * Modules/streams/ByteLengthQueuingStrategy.idl: Marking interface as JSBuiltin and Constructable.
3144         * Modules/streams/CountQueuingStrategy.idl: Ditto.
3145         * Modules/streams/ReadableStream.idl: Ditto.
3146         * Modules/streams/ReadableStreamController.h: Removed.
3147         * Modules/streams/ReadableStreamController.idl: Marking interface as JSBuiltin and Constructable.
3148         * Modules/streams/ReadableStreamReader.h: Removed.
3149         * Modules/streams/ReadableStreamReader.idl: Marking interface as JSBuiltin and Constructable.
3150         * Modules/streams/WritableStream.idl: Ditto.
3151         * bindings/js/JSReadableStreamPrivateConstructors.cpp:
3152         (WebCore::JSBuiltinReadableStreamReaderPrivateConstructor::createJSObject): Updated according new constructor.
3153         (WebCore::JSBuiltinReadableStreamControllerPrivateConstructor::createJSObject): Ditto.
3154         * bindings/scripts/CodeGeneratorJS.pm:
3155         (NeedsImplementationClass):
3156         (GetAttributeGetterName):
3157         (GetAttributeSetterName):
3158         (GetFunctionName):
3159         (InstanceNeedsVisitChildren):
3160         (GenerateHeader):
3161         (GenerateAttributesHashTable):
3162         (GenerateImplementation):
3163         (GetConstructorTemplateClassName):
3164         (GenerateConstructorDefinition):
3165         (GenerateConstructorHelperMethods):
3166         (IsConstructable):
3167         (ComputeFunctionSpecial):
3168         (IsJSBuiltin):
3169         (IsJSBuiltinConstructor):
3170         (AddJSBuiltinIncludesIfNeeded):
3171         (GetJSBuiltinFunctionName): Deleted.
3172         (GetJSBuiltinFunctionNameFromString): Deleted.
3173         (GetJSBuiltinScopeName): Deleted.
3174         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.cpp:
3175         (webkit_dom_test_js_builtin_constructor_set_property):
3176         (webkit_dom_test_js_builtin_constructor_get_property):
3177         (webkit_dom_test_js_builtin_constructor_class_init):
3178         (webkit_dom_test_js_builtin_constructor_test_function):
3179         (webkit_dom_test_js_builtin_constructor_get_test_attribute):
3180         (webkit_dom_test_js_builtin_constructor_set_test_attribute):
3181         * bindings/scripts/test/GObject/WebKitDOMTestJSBuiltinConstructor.h:
3182         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:
3183         (WebCore::JSTestJSBuiltinConstructor::JSTestJSBuiltinConstructor):
3184         (WebCore::JSTestJSBuiltinConstructor::getOwnPropertySlot):
3185         (WebCore::jsTestJSBuiltinConstructorTestAttribute):
3186         (WebCore::jsTestJSBuiltinConstructorTestAttributeCustom):
3187         (WebCore::jsTestJSBuiltinConstructorTestAttributeRWCustom):
3188         (WebCore::setJSTestJSBuiltinConstructorTestAttribute):
3189         (WebCore::setJSTestJSBuiltinConstructorTestAttributeRWCustom):
3190         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestFunction):
3191         (WebCore::jsTestJSBuiltinConstructorPrototypeFunctionTestCustomFunction):
3192         (WebCore::JSTestJSBuiltinConstructorOwner::isReachableFromOpaqueRoots):
3193         (WebCore::JSTestJSBuiltinConstructorOwner::finalize):
3194         (WebCore::toJSNewlyCreated):
3195         (WebCore::toJS):
3196         (WebCore::JSTestJSBuiltinConstructor::toWrapped):
3197         (WebCore::JSTestJSBuiltinConstructorPrototype::createStructure): Deleted.
3198         (WebCore::JSTestJSBuiltinConstructorConstructor::initializeProperties): Deleted.
3199         (WebCore::JSTestJSBuiltinConstructor::createPrototype): Deleted.
3200         (WebCore::JSTestJSBuiltinConstructor::getPrototype): Deleted.
3201         * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.h:
3202         (WebCore::JSTestJSBuiltinConstructor::create):
3203         (WebCore::JSTestJSBuiltinConstructor::finishCreation):
3204         (WebCore::wrapperOwner):
3205         (WebCore::toJS):
3206         (WebCore::JSTestJSBuiltinConstructor::createStructure): Deleted.
3207         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.h:
3208         * bindings/scripts/test/ObjC/DOMTestJSBuiltinConstructor.mm:
3209         (-[DOMTestJSBuiltinConstructor testAttribute]):
3210         (-[DOMTestJSBuiltinConstructor setTestAttribute:]):
3211         (-[DOMTestJSBuiltinConstructor testAttributeCustom]):
3212         (-[DOMTestJSBuiltinConstructor testAttributeRWCustom]):
3213         (-[DOMTestJSBuiltinConstructor setTestAttributeRWCustom:]):
3214         (-[DOMTestJSBuiltinConstructor testFunction]):
3215         (-[DOMTestJSBuiltinConstructor testCustomFunction]):
3216         * bindings/scripts/test/TestJSBuiltinConstructor.idl:
3217
3218 2015-10-29  Sergio Villar Senin  <svillar@igalia.com>
3219
3220         [CSS Grid Layout] min-content row does not always shrink
3221         https://bugs.webkit.org/show_bug.cgi?id=144581
3222
3223         Reviewed by Zalan Bujtas.
3224
3225         Grid items height must be recomputed whenever the grid tracks
3226         change if the items had been previously stretched. In those
3227         cases we have to clear the override height and layout the item
3228         with the new row size.
3229
3230         Tests: fast/css-grid-layout/min-content-row-must-shrink-when-column-grows.html
3231                fast/css-grid-layout/relayout-indefinite-heights.html
3232
3233         * rendering/RenderGrid.cpp:
3234         (WebCore::RenderGrid::logicalContentHeightForChild):
3235
3236 2015-11-01  Brady Eidson  <beidson@apple.com>
3237
3238         Modern IDB: IBDObjectStore.count() support.
3239         https://bugs.webkit.org/show_bug.cgi?id=150785
3240
3241         Reviewed by Darin Adler.
3242
3243         Tests: storage/indexeddb/modern/idbobjectstore-count-1.html
3244                storage/indexeddb/modern/idbobjectstore-count-failures.html
3245
3246         * Modules/indexeddb/client/IDBConnectionToServer.cpp:
3247         (WebCore::IDBClient::IDBConnectionToServer::getCount):
3248         (WebCore::IDBClient::IDBConnectionToServer::didGetCount):
3249         * Modules/indexeddb/client/IDBConnectionToServer.h:
3250         * Modules/indexeddb/client/IDBConnectionToServerDelegate.h:
3251         
3252         * Modules/indexeddb/client/IDBObjectStoreImpl.cpp:
3253         (WebCore::IDBClient::IDBObjectStore::count):
3254         (WebCore::IDBClient::IDBObjectStore::doCount):
3255         * Modules/indexeddb/client/IDBObjectStoreImpl.h:
3256         
3257         * Modules/indexeddb/client/IDBRequestImpl.cpp:
3258         (WebCore::IDBClient::IDBRequest::setResult):
3259         * Modules/indexeddb/client/IDBRequestImpl.h:
3260         
3261         * Modules/indexeddb/client/IDBTransactionImpl.cpp:
3262         (WebCore::IDBClient::IDBTransaction::requestCount):
3263         (WebCore::IDBClient::IDBTransaction::getCountOnServer):
3264         (WebCore::IDBClient::IDBTransaction::didGetCountOnServer):
3265         * Modules/indexeddb/client/IDBTransactionImpl.h:
3266         
3267         * Modules/indexeddb/server/IDBBackingStore.h:
3268         
3269         * Modules/indexeddb/server/IDBConnectionToClient.cpp:
3270         (WebCore::IDBServer::IDBConnectionToClient::didGetCount):
3271         * Modules/indexeddb/server/IDBConnectionToClient.h:
3272         * Modules/indexeddb/server/IDBConnectionToClientDelegate.h:
3273         
3274         * Modules/indexeddb/server/IDBServer.cpp:
3275         (WebCore::IDBServer::IDBServer::getCount):
3276         * Modules/indexeddb/server/IDBServer.h:
3277         
3278         * Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
3279         (WebCore::IDBServer::MemoryIDBBackingStore::getCount):
3280         * Modules/indexeddb/server/MemoryIDBBackingStore.h:
3281         
3282         * Modules/indexeddb/server/MemoryObjectStore.cpp:
3283         (WebCore::IDBServer::MemoryObjectStore::countForKeyRange):
3284         (WebCore::IDBServer::MemoryObjectStore::valueForKeyRange):
3285         (WebCore::IDBServer::MemoryObjectStore::lowestKeyWithRecordInRange):
3286         * Modules/indexeddb/server/MemoryObjectStore.h:
3287         
3288         * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
3289         (WebCore::IDBServer::UniqueIDBDatabase::storeCallback):
3290         (WebCore::IDBServer::UniqueIDBDatabase::getCount):
3291         (WebCore::IDBServer::UniqueIDBDatabase::performGetCount):
3292         (WebCore::IDBServer::UniqueIDBDatabase::didPerformGetCount):
3293         (WebCore::IDBServer::UniqueIDBDatabase::performCountCallback):
3294         * Modules/indexeddb/server/UniqueIDBDatabase.h:
3295         
3296         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.cpp:
3297         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getRecord):
3298         (WebCore::IDBServer::UniqueIDBDatabaseTransaction::getCount):
3299         * Modules/indexeddb/server/UniqueIDBDatabaseTransaction.h:
3300         
3301         * Modules/indexeddb/shared/IDBResultData.cpp:
3302         (WebCore::IDBResultData::IDBResultData):
3303         (WebCore::IDBResultData::getCountSuccess):
3304         * Modules/indexeddb/shared/IDBResultData.h:
3305         (WebCore::IDBResultData::resultInteger):
3306         
3307         * Modules/indexeddb/shared/InProcessIDBServer.cpp:
3308         (WebCore::InProcessIDBServer::didGetCount):
3309         (WebCore::InProcessIDBServer::getCount):
3310         * Modules/indexeddb/shared/InProcessIDBServer.h:
3311
3312 2015-11-01  Darin Adler  <darin@apple.com>
3313
3314         Tidy handling of type=color in HTMLInputElement a bit
3315         https://bugs.webkit.org/show_bug.cgi?id=150786
3316
3317         Reviewed by Andreas Kling.
3318
3319         * html/ColorInputType.cpp: Fix formatting.
3320         (WebCore::ColorInputType::fallbackValue): Use ASCIILiteral for slightly
3321         better performance.
3322         (WebCore::ColorInputType::sanitizeValue): Use convertToASCIILowercase,
3323         since there is no need for the general purpose Unicode lowercasing here;
3324         those non-ASCII characters aren't allowed by isValidColorString.
3325         (WebCore::ColorInputType::suggestions): Rewrote data list code to remove
3326         peculiarities such as using a null check to terminate the loop instead of
3327         the collection length, calling back to HTMLInputElement just to get the
3328         isValidColorString function called. Also used reserveInitialCapacity and
3329         uncheckedAppend for better memory use in the result vector.
3330         (WebCore::ColorInputType::selectColor): Added.
3331
3332         * html/ColorInputType.h: Made derivation from ColorChooserClient private.
3333         Made most functions private. Added overrides for valueAsColor and selectColor,
3334         now both virtual functions in InputType.
3335
3336         * html/HTMLInputElement.cpp: Removed now-unneeded include of ColorInputType.h.
3337         (WebCore::HTMLInputElement::valueAsColor): Added. Calls through to the InputType.
3338         In a later patch, will be used by accessibility code to get the color so it
3339         does not have to replicate the color parsing logic from this element.
3340         (WebCore::HTMLInputElement::selectColor): Renamed from selectColorInColorChooser,
3341         because the longer name is not clearer. Also made this non-conditional.
3342
3343         * html/HTMLInputElement.h: Added valueAsColor, renamed selectColorInColorChooser
3344         to selectColor and made it available unconditionally.
3345
3346         * html/InputType.cpp:
3347         (WebCore::InputType::valueAsColor): Added. Returns transparent color.
3348         (WebCore::InputType::selectColor): Added. Does nothing by default.
3349
3350         * html/InputType.h: Added virtual valueAsColor and selectColor. Also tidied
3351         up the header a bit and removed unneeded Noncopyable (since this class has
3352         a reference for one of the data members and so is intrinsically not copyable).
3353         Made isColorControl available unconditionally.
3354
3355         * testing/Internals.cpp:
3356         (WebCore::Internals::selectColorInColorChooser): Removed conditionals and
3357         made this call selectColor rather than selectColorInColorChooser.
3358
3359         * testing/Internals.h: Made selectColorInColorChooser unconditional.
3360
3361         * testing/Internals.idl: Made selectColorInColorChooser unconditionally
3362         present. Not important to optimize the test internals class by leaving it
3363         out when INPUT_TYPE_COLOR is not enabled.
3364
3365 2015-11-01  Yusuke Suzuki  <utatane.tea@gmail.com>
3366
3367         [ES6] Support Generator Syntax
3368         https://bugs.webkit.org/show_bug.cgi?id=150769
3369
3370         Reviewed by Geoffrey Garen.
3371
3372         Added ENABLE_ES6_GENERATORS flag.
3373
3374         * Configurations/FeatureDefines.xcconfig:
3375
3376 2015-11-01  Myles C. Maxfield  <mmaxfield@apple.com>
3377
3378         Clean up some CSS & Font code
3379         https://bugs.webkit.org/show_bug.cgi?id=150767
3380
3381         Reviewed by Darin Adler.
3382
3383         This patch migrates some CSS code to use references instead of pointers.
3384         It also migrates some Font code to use RefPtr instead of PassRefPtr.
3385
3386         No new tests because there is no behavior change.
3387
3388         * css/CSSDefaultStyleSheets.cpp:
3389         (WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
3390         (WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
3391         (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
3392         * css/CSSFontSelector.cpp:
3393         (WebCore::createFontFace):
3394         (WebCore::CSSFontSelector::addFontFaceRule):
3395         * css/CSSFontSelector.h:
3396         * css/DocumentRuleSets.cpp:
3397         (WebCore::DocumentRuleSets::initUserStyle):
3398         (WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
3399         (WebCore::DocumentRuleSets::appendAuthorStyleSheets):
3400         * css/RuleSet.cpp:
3401         (WebCore::RuleSet::addChildRules):
3402         (WebCore::RuleSet::addRulesFromSheet):
3403         * css/RuleSet.h:
3404         * css/StyleInvalidationAnalysis.cpp:
3405         (WebCore::StyleInvalidationAnalysis::StyleInvalidationAnalysis):
3406         * platform/graphics/Font.cpp:
3407         (WebCore::Font::verticalRightOrientationFont):
3408         (WebCore::Font::uprightOrientationFont):
3409         (WebCore::Font::smallCapsFont):
3410         (WebCore::Font::emphasisMarkFont):