ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2013-03-05  Emil A Eklund  <eae@chromium.org>
2
3         ASSERTION FAILED: i < size(), UNKNOWN in WebCore::RenderTableSection::layout
4         https://bugs.webkit.org/show_bug.cgi?id=108838
5
6         Reviewed by Levi Weintraub.
7         
8         Ensure that RenderTable::recalcSections is called when moving a
9         TableSection by calling setNeedsSectionRecalc in addChild for
10         TableSections.
11
12         Test: fullscreen/full-screen-table-section.html
13
14         * rendering/RenderTable.cpp:
15         (WebCore::RenderTable::addChild):
16
17 2013-03-05  Kenneth Russell  <kbr@google.com>
18
19         Upgrade ANGLE to r1987
20         https://bugs.webkit.org/show_bug.cgi?id=111381
21
22         Reviewed by Dean Jackson.
23
24         Covered by existing tests. Ran WebGL conformance tests in Safari
25         to ensure correct operation of patch.
26
27         * platform/graphics/blackberry/GraphicsContext3DBlackBerry.cpp:
28         (WebCore::GraphicsContext3D::GraphicsContext3D):
29         * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
30         (WebCore::GraphicsContext3D::GraphicsContext3D):
31         * platform/graphics/efl/GraphicsContext3DEfl.cpp:
32         (WebCore::GraphicsContext3D::GraphicsContext3D):
33         * platform/graphics/mac/GraphicsContext3DMac.mm:
34         (WebCore::GraphicsContext3D::GraphicsContext3D):
35         * platform/graphics/qt/GraphicsContext3DQt.cpp:
36         (WebCore::GraphicsContext3DPrivate::initializeANGLE):
37             Changed all ports to query for highp support in fragment
38             shaders and conditionally enable it in ANGLE shader translator.
39
40 2013-03-05  Alec Flett  <alecflett@chromium.org>
41
42         IndexedDB: Add IDBBackingStoreTest
43         https://bugs.webkit.org/show_bug.cgi?id=111233
44
45         Reviewed by Adam Barth.
46
47         These are tweaks to make IDBBackingStore more easily testable.
48
49         * Modules/indexeddb/IDBBackingStore.cpp:
50         (WebCore::IDBBackingStore::IDBBackingStore): Allow use without a backing store.
51
52 2013-03-04  James Robinson  <jamesr@chromium.org>
53
54         [chromium] Move check for threaded compositing from WebCompositorSupport to Platform
55         https://bugs.webkit.org/show_bug.cgi?id=111386
56
57         Reviewed by Adrienne Walker.
58
59         This moves checks for whether threaded compositing is enabled from WebCompositorSupport
60         to Platform. In the case of Canvas2DLayerBridge, the check is moved completely out of
61         the class to make it easier for tests to specify the threaded configuration to use in the test.
62
63         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
64         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
65         * platform/graphics/chromium/Canvas2DLayerBridge.h:
66         (WebCore::Canvas2DLayerBridge::create):
67         (Canvas2DLayerBridge):
68         * platform/graphics/chromium/DrawingBufferChromium.cpp:
69         (WebCore::DrawingBuffer::DrawingBuffer):
70         * platform/graphics/skia/ImageBufferSkia.cpp:
71         (WebCore::createAcceleratedCanvas):
72
73 2013-03-05  Anders Carlsson  <andersca@apple.com>
74
75         Split up the storage event dispatch functions further
76         https://bugs.webkit.org/show_bug.cgi?id=111482
77
78         Reviewed by Beth Dakin.
79
80         Add new functions for dispatching storage events to a set of frames.
81
82         * storage/StorageAreaImpl.cpp:
83         (WebCore::StorageAreaImpl::dispatchStorageEvent):
84         * storage/StorageEventDispatcher.cpp:
85         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvents):
86         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvents):
87         (WebCore):
88         (WebCore::StorageEventDispatcher::dispatchSessionStorageEventsToFrames):
89         (WebCore::StorageEventDispatcher::dispatchLocalStorageEventsToFrames):
90         * storage/StorageEventDispatcher.h:
91         (WebCore):
92         (StorageEventDispatcher):
93
94 2013-03-05  Stephen Chenney  <schenney@chromium.org>
95
96         Crash when ImageLoader deletes Element inside SVGImageElement
97         https://bugs.webkit.org/show_bug.cgi?id=111085
98
99         Reviewed by Abhishek Arya.
100
101         Elements with ImageLoader objects associated with them may have their
102         final reference held by the ImageLoader (to allow events to be sent
103         and handled). Any call on Element that causes the ImageLoader to
104         dispatch events might then result in the final deref of the Element
105         itself, thus leaving all the Element's "this" pointers up the stack
106         pointing to invalid memory.
107
108         This change puts the deref of the Element on a timer so that, if the
109         deref is called via a method on Element, the call stack will unwind
110         before the deref occurs.
111
112         Test: svg/custom/image-with-attr-change-after-delete-crash.html
113
114         * loader/ImageLoader.cpp:
115         (WebCore::ImageLoader::ImageLoader): Initialize a timer
116         (WebCore::ImageLoader::updatedHasPendingEvent): Put deref of the
117           element on a oneShotTimer, with appropriate assertions and checks to
118           ensure we only ref/deref once.
119         (WebCore::ImageLoader::timerFired): Deref the element when the timer fires.
120         * loader/ImageLoader.h:
121         (ImageLoader): Define a timer for controlling deref of the element.
122
123 2013-03-05  Antoine Quint  <graouts@apple.com>
124
125         Web Inspector: identify reflection layers in LayerTreeAgent
126         https://bugs.webkit.org/show_bug.cgi?id=111419
127
128         We add a new property "isReflection" to the Layer objects returned
129         to the front-end to indicate whether the layer was created to host
130         the reflection for an element. When this new property is true, the
131         "nodeId" property is set to point to the reflected element's node
132         id, since there is no node per-se directly associated with this layer.
133         We also change the "bounds" property to return absolute page coordinates
134         such that the front-end can use this information to highlight that
135         region in the page since metrics would otherwise be unavailable.
136
137         Reviewed by Dean Jackson.
138
139         Test: inspector-protocol/layers/layers-reflected-content.html
140
141         * inspector/Inspector.json:
142         * inspector/InspectorLayerTreeAgent.cpp:
143         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
144
145 2013-03-05  peavo@outlook.com  <peavo@outlook.com>
146
147         [WinCairo] Compile fix after r144024.
148         https://bugs.webkit.org/show_bug.cgi?id=111306
149
150         Reviewed by James Robinson.
151
152         * page/scrolling/ScrollingCoordinator.cpp: Added guard for USE(ACCELERATED_COMPOSITING).
153         * page/scrolling/ScrollingCoordinator.h: Added guard for USE(ACCELERATED_COMPOSITING).
154
155 2013-03-05  James Weatherall  <wez@chromium.org>
156
157         keydown and keyup events have zero keycode for some numeric pad keys under Chromium on Linux
158         https://bugs.webkit.org/show_bug.cgi?id=85642
159
160         Add missing key mappings for GDK_KP_Begin, GDK_KP_Insert, GDK_KP_Delete and GDK_ISO_Level3_Shift.
161
162         Reviewed by Ojan Vafai.
163
164         * platform/chromium/KeyCodeConversionGtk.cpp:
165         (WebCore::windowsKeyCodeForKeyEvent):
166
167 2013-03-05  Alec Flett  <alecflett@chromium.org>
168
169         IndexedDB: Properly refactor frontend/backend code by #includes
170         https://bugs.webkit.org/show_bug.cgi?id=110653
171
172         Reviewed by Dimitri Glazkov.
173
174         IndexedDB has a distinct backend and frontend, with well defined
175         *Interface / *Callbacks classes distinguishing them, respectively.
176         
177         This makes sure that the frontend and backend do not include each
178         other and fixes build problems that occurred as a result.
179
180         Specifically this moves enums out of IDBCursor and IDBTransaction
181         into IndexedDB.h in a new WebCore::IndexedDB namespace.
182
183         No new tests, as this is just a refactor.
184
185 2013-03-05  Jeffrey Pfau  <jpfau@apple.com>
186
187         Clear associated cache partitions when deleting origins' cache
188         https://bugs.webkit.org/show_bug.cgi?id=111383
189
190         Reviewed by Maciej Stachowiak.
191
192         Clear the cache partitions associated with the origin being cleared.
193
194         Not possible to test with current automated test tools, must be tested manually.
195
196         * loader/cache/MemoryCache.cpp:
197         (WebCore::MemoryCache::removeResourcesWithOrigin):
198
199 2013-03-04  Ojan Vafai  <ojan@chromium.org>
200
201         Inline min/maxInstrinsicLogicalWidth functions
202         https://bugs.webkit.org/show_bug.cgi?id=111399
203
204         Reviewed by Tony Chang.
205
206         Turns out these functions don't need to be public and only
207         have one caller. This patch is in preparation for supporting
208         intrinsic widths on tables, which will need to pass in the
209         border and padding width as an argument.
210
211         * rendering/RenderBox.cpp:
212         (WebCore::RenderBox::fillAvailableMeasure):
213         (WebCore::RenderBox::computeIntrinsicLogicalWidthUsing):
214         (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
215         * rendering/RenderBox.h:
216
217 2013-03-05  Victor Carbune  <vcarbune@chromium.org>
218
219         Cue line-height property shouldn't be inherited from the video element
220         https://bugs.webkit.org/show_bug.cgi?id=111262
221
222         Reviewed by Eric Carlson.
223
224         Test: media/track/track-cue-rendering-on-resize.html
225
226         * css/mediaControls.css:
227         (video::-webkit-media-text-track-container): Set the default font size
228         and family using the "font" property to also reset the line-height property.
229
230 2013-03-05  Joshua Bell  <jsbell@chromium.org>
231
232         IndexedDB: Remove some unused binding code
233         https://bugs.webkit.org/show_bug.cgi?id=111463
234
235         Reviewed by Adam Barth.
236
237         IDBRequest got a custom V8 getter for |request| to help diagnose an issue, but the
238         root cause was found/fixed (http://wkbug.com/110916 and http://wkbug.com/110206) so
239         remove it. Also, IDBKey was marked ScriptWrappable but it is now explicitly converted
240         to a ScriptValue before it gets anywhere near the binding code, so remove that too.
241         Finally, createIDBKeyFromValue doesn't need to be exposed from IDBBindingUtilities.
242
243         No new tests - just removing dead code.
244
245         * Modules/indexeddb/IDBKey.h: No need for ScriptWrappable.
246         * Modules/indexeddb/IDBRequest.idl: Remove custom binding (root cause of bug found).
247         * WebCore.gypi: Ditto.
248         * bindings/js/IDBBindingUtilities.h: Don't expose internal createIDBKeyFromValue().
249         * bindings/v8/IDBBindingUtilities.h: Ditto.
250         * bindings/v8/custom/V8IDBRequestCustom.cpp: Removed.
251
252 2013-03-05  Sheriff Bot  <webkit.review.bot@gmail.com>
253
254         Unreviewed, rolling out r144798.
255         http://trac.webkit.org/changeset/144798
256         https://bugs.webkit.org/show_bug.cgi?id=111478
257
258         "broke chromium windows build" (Requested by dpranke on
259         #webkit).
260
261         * GNUmakefile.list.am:
262         * Modules/indexeddb/IDBBackingStore.cpp:
263         (WebCore::IDBBackingStore::Cursor::continueFunction):
264         (WebCore::objectStoreCursorOptions):
265         (WebCore::indexCursorOptions):
266         (WebCore::IDBBackingStore::openObjectStoreCursor):
267         (WebCore::IDBBackingStore::openObjectStoreKeyCursor):
268         (WebCore::IDBBackingStore::openIndexKeyCursor):
269         (WebCore::IDBBackingStore::openIndexCursor):
270         * Modules/indexeddb/IDBBackingStore.h:
271         (IDBBackingStore):
272         * Modules/indexeddb/IDBCursor.cpp:
273         (WebCore::IDBCursor::create):
274         (WebCore::IDBCursor::IDBCursor):
275         (WebCore::IDBCursor::continueFunction):
276         (WebCore::IDBCursor::stringToDirection):
277         (WebCore::IDBCursor::directionToString):
278         * Modules/indexeddb/IDBCursor.h:
279         (IDBCursor):
280         * Modules/indexeddb/IDBCursorBackendImpl.cpp:
281         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
282         (WebCore::IDBCursorBackendImpl::deleteFunction):
283         (WebCore::IDBCursorBackendImpl::CursorPrefetchIterationOperation::perform):
284         * Modules/indexeddb/IDBCursorBackendImpl.h:
285         (WebCore::IDBCursorBackendImpl::create):
286         (WebCore::IDBCursorBackendImpl::value):
287         (IDBCursorBackendImpl):
288         * Modules/indexeddb/IDBCursorBackendInterface.h:
289         (WebCore):
290         * Modules/indexeddb/IDBCursorWithValue.cpp:
291         (WebCore::IDBCursorWithValue::create):
292         (WebCore::IDBCursorWithValue::IDBCursorWithValue):
293         * Modules/indexeddb/IDBCursorWithValue.h:
294         (IDBCursorWithValue):
295         * Modules/indexeddb/IDBDatabase.cpp:
296         (WebCore::IDBDatabase::transaction):
297         * Modules/indexeddb/IDBDatabase.h:
298         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
299         (WebCore::GetOperation::create):
300         (WebCore::GetOperation::GetOperation):
301         (GetOperation):
302         (WebCore::OpenCursorOperation::create):
303         (WebCore::OpenCursorOperation::OpenCursorOperation):
304         (OpenCursorOperation):
305         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
306         (WebCore::IDBDatabaseBackendImpl::deleteObjectStore):
307         (WebCore::IDBDatabaseBackendImpl::createIndex):
308         (WebCore::IDBDatabaseBackendImpl::deleteIndex):
309         (WebCore::IDBDatabaseBackendImpl::get):
310         (WebCore::GetOperation::perform):
311         (WebCore::IDBDatabaseBackendImpl::put):
312         (WebCore::PutOperation::perform):
313         (WebCore::IDBDatabaseBackendImpl::setIndexKeys):
314         (WebCore::IDBDatabaseBackendImpl::openCursor):
315         (WebCore::OpenCursorOperation::perform):
316         (WebCore::CountOperation::perform):
317         (WebCore::IDBDatabaseBackendImpl::deleteRange):
318         (WebCore::DeleteRangeOperation::perform):
319         (WebCore::IDBDatabaseBackendImpl::clear):
320         (WebCore::IDBDatabaseBackendImpl::transactionStarted):
321         (WebCore::IDBDatabaseBackendImpl::transactionFinished):
322         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
323         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
324         (WebCore::IDBDatabaseBackendImpl::createTransaction):
325         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
326         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
327         (IDBDatabaseBackendImpl):
328         * Modules/indexeddb/IDBDatabaseBackendInterface.h:
329         * Modules/indexeddb/IDBFactory.h:
330         * Modules/indexeddb/IDBIndex.cpp:
331         (WebCore):
332         (WebCore::IDBIndex::openCursor):
333         (WebCore::IDBIndex::openKeyCursor):
334         * Modules/indexeddb/IDBObjectStore.cpp:
335         (WebCore):
336         (WebCore::IDBObjectStore::openCursor):
337         * Modules/indexeddb/IDBRequest.cpp:
338         (WebCore::IDBRequest::IDBRequest):
339         (WebCore::IDBRequest::setCursorDetails):
340         (WebCore::IDBRequest::setResultCursor):
341         (WebCore::IDBRequest::onSuccess):
342         * Modules/indexeddb/IDBRequest.h:
343         (IDBRequest):
344         * Modules/indexeddb/IDBTransaction.cpp:
345         (WebCore::IDBTransaction::create):
346         (WebCore::IDBTransaction::IDBTransaction):
347         (WebCore::IDBTransaction::stringToMode):
348         (WebCore::IDBTransaction::modeToString):
349         * Modules/indexeddb/IDBTransaction.h:
350         (WebCore::IDBTransaction::isReadOnly):
351         (WebCore::IDBTransaction::isVersionChange):
352         (IDBTransaction):
353         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
354         (WebCore::IDBTransactionBackendImpl::create):
355         (WebCore::IDBTransactionBackendImpl::IDBTransactionBackendImpl):
356         * Modules/indexeddb/IDBTransactionBackendImpl.h:
357         (IDBTransactionBackendImpl):
358         (WebCore::IDBTransactionBackendImpl::mode):
359         * Modules/indexeddb/IDBTransactionCoordinator.cpp:
360         (WebCore::IDBTransactionCoordinator::processStartedTransactions):
361         (WebCore::IDBTransactionCoordinator::canRunTransaction):
362         * Modules/indexeddb/IndexedDB.h: Removed.
363         * Target.pri:
364         * WebCore.gypi:
365
366 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
367
368         MediaStream API: Allow local and remote descriptions to be accessed after close
369         https://bugs.webkit.org/show_bug.cgi?id=111437
370
371         Reviewed by Adam Barth.
372
373         It's quite clear in the standard that the getters should still return the old value.
374         Also overhauling the state setters a bit to check if the new state is different.
375
376         Existing tests expanded to cover patch.
377
378         * Modules/mediastream/RTCPeerConnection.cpp:
379         (WebCore::RTCPeerConnection::localDescription):
380         (WebCore::RTCPeerConnection::remoteDescription):
381         (WebCore::RTCPeerConnection::changeSignalingState):
382         (WebCore::RTCPeerConnection::changeIceGatheringState):
383         (WebCore::RTCPeerConnection::changeIceConnectionState):
384
385 2013-03-05  Charlie Reis  <creis@chromium.org>
386
387         Add FrameLoaderClient::didAccessInitialDocument
388         https://bugs.webkit.org/show_bug.cgi?id=107963
389
390         Notifies the FrameLoaderClient if another page accesses the
391         initial empty document of a main frame.  In this case, it is
392         no longer safe to display the provisional URL.
393
394         Only takes effect for PLATFORM(CHROMIUM), since no other platforms
395         listen to the notification.
396
397         Reviewed by Adam Barth.
398
399         * bindings/v8/V8DOMWindowShell.cpp:
400         (WebCore::V8DOMWindowShell::setSecurityToken):
401             Use default token for initial document.
402         * bindings/v8/custom/V8DOMWindowCustom.cpp:
403             Notify loader if initial document is accessed.
404         (WebCore::V8DOMWindow::namedSecurityCheck):
405         (WebCore::V8DOMWindow::indexedSecurityCheck):
406         * loader/FrameLoader.cpp:
407         (WebCore::FrameLoader::FrameLoader):
408         (WebCore::FrameLoader::didAccessInitialDocument):
409         (WebCore):
410         * loader/FrameLoader.h:
411         (FrameLoader):
412         * loader/FrameLoaderClient.h:
413         (FrameLoaderClient):
414         (WebCore::FrameLoaderClient::didAccessInitialDocument):
415
416 2013-03-05  Otto Derek Cheung  <otcheung@rim.com>
417
418         [BlackBerry] Fix assertion in CookieManager::getBackingStoreCookies
419         https://bugs.webkit.org/show_bug.cgi?id=111468
420
421         Reviewed by Rob Buis.
422         Internally reviewed by Konrad Piascik.
423
424         The assert in getBackingStoreCookies could be giving out false positives now
425         that we have our fixes for cookie loading in PR 286189. The cookie store could
426         be half loaded if the first cookie get/set call happens before the db is fully loaded.
427         A full webkit sync call to reload the database will cause the assert to be hit.
428
429         Safer to flush everything out and try again.
430
431         * platform/blackberry/CookieManager.cpp:
432         (WebCore::CookieManager::getBackingStoreCookies):
433
434 2013-03-05  Tony Gentilcore  <tonyg@chromium.org>
435
436         CompactHTMLToken does not need an XSSInfo pointer
437         https://bugs.webkit.org/show_bug.cgi?id=111423
438
439         Reviewed by Eric Seidel.
440
441         The CompactHTMLToken should remain as small as possible because it is copied. This shrinks the size by one pointer
442         by moving a relatively uncommon attribute out to its own Vector.
443
444         No new tests because no new functionality.
445
446         * html/parser/BackgroundHTMLParser.cpp:
447         (WebCore::checkThatXSSInfosAreSafeToSendToAnotherThread):
448         (WebCore):
449         (WebCore::BackgroundHTMLParser::pumpTokenizer):
450         (WebCore::BackgroundHTMLParser::sendTokensToMainThread):
451         * html/parser/BackgroundHTMLParser.h:
452         (BackgroundHTMLParser):
453         * html/parser/CompactHTMLToken.cpp:
454         (SameSizeAsCompactHTMLToken):
455         (WebCore::CompactHTMLToken::isSafeToSendToAnotherThread):
456         * html/parser/CompactHTMLToken.h:
457         (WebCore):
458         (CompactHTMLToken):
459         * html/parser/HTMLDocumentParser.cpp:
460         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
461         * html/parser/HTMLDocumentParser.h:
462         (ParsedChunk):
463         * html/parser/XSSAuditorDelegate.h:
464         (XSSInfo):
465         (WebCore):
466
467 2013-03-05  Anders Carlsson  <andersca@apple.com>
468
469         Split StorageEventDispatcher::dispatch into two functions
470         https://bugs.webkit.org/show_bug.cgi?id=111464
471
472         Reviewed by Beth Dakin.
473
474         Split StorageEventDispatcher::dispatch into dispatchSessionStorageEvent and
475         dispatchLocalStorageEvent and make StorageAreaImpl::dispatchStorageEvent call
476         the right function based on the storage area type.
477
478         * storage/StorageAreaImpl.cpp:
479         (WebCore::StorageAreaImpl::dispatchStorageEvent):
480         * storage/StorageEventDispatcher.cpp:
481         (WebCore::StorageEventDispatcher::dispatchSessionStorageEvent):
482         (WebCore):
483         (WebCore::StorageEventDispatcher::dispatchLocalStorageEvent):
484         * storage/StorageEventDispatcher.h:
485         (StorageEventDispatcher):
486
487 2013-03-05  Brent Fulgham  <bfulgham@webkit.org>
488
489         [WinCairo] Unreviewed build fix after r144024.
490
491         * page/scrolling/ScrollingCoordinator.cpp:
492         (WebCore::ScrollingCoordinator::scrollLayerForScrollableArea): Handle
493         case of not using Accelerated Compositing
494         (WebCore::ScrollingCoordinator::horizontalScrollbarLayerForScrollableArea):
495         (WebCore::ScrollingCoordinator::verticalScrollbarLayerForScrollableArea): Ditto.
496
497 2013-03-05  Alec Flett  <alecflett@chromium.org>
498
499         IndexedDB: Properly refactor frontend/backend code by #includes
500         https://bugs.webkit.org/show_bug.cgi?id=110653
501
502         Reviewed by Dimitri Glazkov.
503
504         IndexedDB has a distinct backend and frontend, with well defined
505         *Interface / *Callbacks classes distinguishing them, respectively.
506         
507         This makes sure that the frontend and backend do not include each
508         other and fixes build problems that occurred as a result.
509
510         Specifically this moves enums out of IDBCursor and IDBTransaction
511         into IndexedDB.h in a new WebCore::IndexedDB namespace.
512
513         No new tests, as this is just a refactor.
514
515 2013-03-05  James Robinson  <jamesr@chromium.org>
516
517         ContainerNode::setActive should not sleep for 100ms on platforms that do not implement synchronous repaint(true) semantics
518         https://bugs.webkit.org/show_bug.cgi?id=87054
519
520         Reviewed by Darin Adler.
521
522         Adds a new ChromeClient function to query if the platform supports the immediate parameter
523         to the invalidation APIs and guards the synchronous repaint logic in ContainerNode::setActive()
524         with it.
525
526         * dom/ContainerNode.cpp:
527         (WebCore::ContainerNode::setActive):
528         * page/ChromeClient.h:
529         (WebCore::ChromeClient::supportsImmediateInvalidation):
530
531 2013-03-05  Anders Carlsson  <andersca@apple.com>
532
533         Simplify storage event dispatch somewhat
534         https://bugs.webkit.org/show_bug.cgi?id=111461
535
536         Reviewed by Beth Dakin.
537
538         Add a StorageAreaImpl::dispatchStorageEvent to avoid replicating the calls to
539         StorageEventDispatcher::dispatch there times. This is in preparation for changing the
540         interface of StorageEventDispatcher so it can be used by WebKit2.
541
542         * storage/StorageAreaImpl.cpp:
543         (WebCore::StorageAreaImpl::setItem):
544         (WebCore::StorageAreaImpl::removeItem):
545         (WebCore::StorageAreaImpl::clear):
546         (WebCore::StorageAreaImpl::dispatchStorageEvent):
547
548         * storage/StorageAreaImpl.h:
549         Reindent.
550
551 2013-03-05  Tony Chang  <tony@chromium.org>
552
553         Fix some crashes in render sliders
554         https://bugs.webkit.org/show_bug.cgi?id=111458
555
556         Reviewed by Ojan Vafai.
557
558         Fix some cases where we assumed the renderer is a renderBox.
559
560         Test: fast/forms/range/slider-inline-crash.html
561
562         * html/shadow/SliderThumbElement.cpp:
563         (WebCore::RenderSliderContainer::layout): Use renderBox() which will return 0 if the renderer is not a RenderBox.
564         (WebCore::SliderThumbElement::setPositionFromPoint): Bail out early if renderBox() is 0.
565
566 2013-03-04  Andrew Scherkus  <scherkus@chromium.org>
567
568         REGRESSION(r142191): Fix closed caption buttons for ports still using the painting path.
569         https://bugs.webkit.org/show_bug.cgi?id=111109
570
571         Reviewed by Eric Carlson.
572
573         Covered by following tests:
574         media/track/track-cue-rendering-horizontal.html
575         media/track/track-cue-rendering-vertical.html
576
577         * rendering/RenderTheme.cpp:
578         (WebCore::RenderTheme::paint):
579         * rendering/RenderTheme.h:
580         (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
581
582 2013-03-05  Gwang Yoon Hwang  <ryumiel@company100.net>
583
584         Coordinated Graphics: CoordinatedGraphicsLayer makes CoordinatedGraphicsScene perform via CoordinatedGraphicsState.
585         https://bugs.webkit.org/show_bug.cgi?id=108294
586
587         Reviewed by Anders Carlsson.
588
589         CoordinatedLayerTreeHostProxy has too many IPC messages (e.g. SyncCanvas and
590         CreateTile), and there is a long function chain from CoordinatedGraphicsLayer to
591         CoordinatedGraphicsScene (4 classes).
592         If we want to add a new message, we need to add similar functions into 4 classes.
593
594         Now CoordinatedLayerTreeHost has only one IPC message for CoordinatedGraphicsLayer:
595         CommitCoordinatedGraphicsState.
596         CoordinatedGraphicsLayer makes CoordinatedGraphicsScene run as follows:
597         1. CoordinatedGraphicsLayer makes a CoordinatedGraphicsLayerState.
598         2. CoordinatedLayerTreeHost stores all LayerStates.
599         3. CoordinatedLayerTreeHost sends GraphicsState includes LayerStates to CoordinatedLayerTreeHostProxy
600         at the moment of flushing via CommitCoordinatedGraphicsState message.
601         4. CoordinatedGraphicsScene applies all state changes to layers.
602
603         There is one big behavior change. All states changes (e.g.
604         UpdateTiles, SetLayerChildren, and etc..) are performed at the same time, when
605         CoordinatedGraphicsScene::commitCoordinatedGraphicsState is called.
606
607         This patch is based on Dongsung Huang, and Noam's work in
608         https://bugs.webkit.org/show_bug.cgi?id=108294
609
610         No new tests, covered by existing tests.
611
612         * Target.pri:
613         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
614         (WebCore::CoordinatedGraphicsLayer::setPosition):
615         (WebCore::CoordinatedGraphicsLayer::setAnchorPoint):
616         (WebCore::CoordinatedGraphicsLayer::setSize):
617         (WebCore::CoordinatedGraphicsLayer::setTransform):
618         (WebCore::CoordinatedGraphicsLayer::setChildrenTransform):
619         (WebCore::CoordinatedGraphicsLayer::setPreserves3D):
620         (WebCore::CoordinatedGraphicsLayer::setMasksToBounds):
621         (WebCore::CoordinatedGraphicsLayer::setDrawsContent):
622         (WebCore::CoordinatedGraphicsLayer::setContentsVisible):
623         (WebCore::CoordinatedGraphicsLayer::setContentsOpaque):
624         (WebCore::CoordinatedGraphicsLayer::setBackfaceVisibility):
625         (WebCore::CoordinatedGraphicsLayer::setOpacity):
626         (WebCore::CoordinatedGraphicsLayer::setContentsRect):
627         (WebCore::CoordinatedGraphicsLayer::setFilters):
628         (WebCore::CoordinatedGraphicsLayer::setContentsToSolidColor):
629         (WebCore::CoordinatedGraphicsLayer::setShowDebugBorder):
630         (WebCore::CoordinatedGraphicsLayer::setShowRepaintCounter):
631         (WebCore::CoordinatedGraphicsLayer::setMaskLayer):
632         (WebCore::CoordinatedGraphicsLayer::setReplicatedByLayer):
633         (WebCore::CoordinatedGraphicsLayer::setFixedToViewport):
634         (WebCore::CoordinatedGraphicsLayer::syncChildren):
635         (WebCore::CoordinatedGraphicsLayer::syncFilters):
636         (WebCore::CoordinatedGraphicsLayer::syncImageBacking):
637         (WebCore::CoordinatedGraphicsLayer::syncLayerState):
638         (WebCore::CoordinatedGraphicsLayer::setDebugBorder):
639         (WebCore::CoordinatedGraphicsLayer::syncAnimations):
640         (WebCore::CoordinatedGraphicsLayer::syncCanvas):
641         (WebCore::CoordinatedGraphicsLayer::destroyCanvasIfNeeded):
642         (WebCore::CoordinatedGraphicsLayer::createCanvasIfNeeded):
643         (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
644         (WebCore::CoordinatedGraphicsLayer::resetLayerState):
645         (WebCore):
646         (WebCore::CoordinatedGraphicsLayer::releaseImageBackingIfNeeded):
647         (WebCore::CoordinatedGraphicsLayer::setRootLayer):
648         (WebCore::CoordinatedGraphicsLayer::tiledBackingStorePaintEnd):
649         (WebCore::CoordinatedGraphicsLayer::createTile):
650         (WebCore::CoordinatedGraphicsLayer::updateTile):
651         (WebCore::CoordinatedGraphicsLayer::removeTile):
652         * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
653         (CoordinatedGraphicsLayerClient):
654         (CoordinatedGraphicsLayer):
655         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
656         (WebCore::CoordinatedGraphicsScene::createCanvasIfNeeded):
657         (WebCore::CoordinatedGraphicsScene::syncCanvasIfNeeded):
658         (WebCore::CoordinatedGraphicsScene::destroyCanvasIfNeeded):
659         (WebCore::CoordinatedGraphicsScene::setLayerRepaintCountIfNeeded):
660         (WebCore::CoordinatedGraphicsScene::setLayerChildrenIfNeeded):
661         (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
662         (WebCore::CoordinatedGraphicsScene::setLayerState):
663         (WebCore::CoordinatedGraphicsScene::deleteLayer):
664         (WebCore::CoordinatedGraphicsScene::createTilesIfNeeded):
665         (WebCore::CoordinatedGraphicsScene::removeTilesIfNeeded):
666         (WebCore::CoordinatedGraphicsScene::updateTilesIfNeeded):
667         (WebCore::CoordinatedGraphicsScene::assignImageBackingToLayer):
668         (WebCore::CoordinatedGraphicsScene::commitSceneState):
669         (WebCore::CoordinatedGraphicsScene::setLayerAnimationsIfNeeded):
670         * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
671         (WebCore):
672         (CoordinatedGraphicsScene):
673         * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h: Added.
674         (WebCore):
675         (TileUpdateInfo):
676         (TileCreationInfo):
677         (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
678         (CoordinatedGraphicsLayerState):
679         (CoordinatedGraphicsState):
680         * platform/graphics/texmap/coordinated/CoordinatedImageBacking.h:
681         * platform/graphics/texmap/coordinated/CoordinatedLayerInfo.h: Removed.
682         * platform/graphics/texmap/coordinated/SurfaceUpdateInfo.h:
683
684 2013-03-05  Roger Fong  <roger_fong@apple.com>
685
686         Unreviewed. AppleWin VS2010 build fix.
687
688         * WebCore.vcxproj/WebCore.vcxproj:
689         * WebCore.vcxproj/WebCore.vcxproj.filters:
690         * rendering/RenderingAllInOne.cpp:
691
692 2013-03-05  Bem Jones-Bey  <bjonesbe@adobe.com>
693
694         [CSS Exclusions] shape-outside on floats for polygon shapes
695         https://bugs.webkit.org/show_bug.cgi?id=98676
696
697         Reviewed by David Hyatt.
698
699         Implement support for polygonal shape-outside on floats. The basic
700         tack taken here is to keep using the bounding box of the shape to
701         position the float, but to compute the offset (caused by the shape)
702         from the bounding box for each line when creating and positioning
703         other inline content.
704
705         Test: fast/exclusions/shape-outside-floats/shape-outside-floats-simple-polygon.html
706
707         * rendering/ExclusionShapeInfo.cpp:
708         (WebCore):
709         (WebCore::::computedShape): Add new template parameter.
710         (WebCore::::logicalTopOffset): Add new template parameter.
711         (WebCore::::computeSegmentsForLine): Move here from
712             ExclusionShapeInsideInfo, since ExclusionShapeOutsideInfo needs it
713             as well. Make virtual since there is slightly different behavior
714             between each class even though the vast majority of the code is
715             common.
716         * rendering/ExclusionShapeInfo.h:
717         (WebCore):
718         (WebCore::ExclusionShapeInfo::~ExclusionShapeInfo): Since
719             computeSegmentsForLine is virtual, the destructor must be virtual
720             as well.
721         (ExclusionShapeInfo): Add new data members to support
722             computeSegmentsForLine.
723         (WebCore::ExclusionShapeInfo::shapeLogicalRight): Fix bug, the logical
724             right is based off of maxX, not y. (it's a logical bounding box!)
725         (WebCore::ExclusionShapeInfo::logicalLineTop): Moved from
726             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
727             lineOverlapsShapeBounds.
728         (WebCore::ExclusionShapeInfo::logicalLineBottom): Moved from
729             ExclusionShapeInsideInfo for use by computeSegmentsForLine and
730             lineOverlapsShapeBounds.
731         (WebCore::ExclusionShapeInfo::lineOverlapsShapeBounds): Moved from
732             ExclusionShapeInsideInfo for use by computeSegmentsForLine.
733         * rendering/ExclusionShapeInsideInfo.cpp: Moved common code from
734             computeSegmentsForLine into ExclusionShapeInfo.
735         * rendering/ExclusionShapeInsideInfo.h:
736         (WebCore): Moved some methods to ExclusionShapeInfo.
737         (ExclusionShapeInsideInfo): Update for new template parameter.
738         (WebCore::ExclusionShapeInsideInfo::compyteSegmentsForLine): Override
739             superclass method to clear the segment ranges. Segement ranges
740             aren't used by shape outside, and have some complex dependencies
741             that make it very hard to try and move up into ExclusionShapeInfo.
742         (WebCore::ExclusionShapeInsideInfo::ExclusionShapeInsideInfo): Update
743             for new template parameter.
744         * rendering/ExclusionShapeOutsideInfo.cpp:
745         (WebCore::ExclusionShapeOutsideInfo::isEnabledFor): Add polygons as a
746             supported shape.
747         (WebCore::ExclusionShapeOutsideInfo::computeSegmentsForLine): Override
748             superclass method to not recompute if it isn't needed (this isn't
749             straightfoward for shape inside, which is why it isn't common),
750             and to save the left and right offsets caused by the shape
751             outside, since that's all that is needed to properly do layout in
752             the case of floats.
753         * rendering/ExclusionShapeOutsideInfo.h:
754         (WebCore::ExclusionShapeOutsideInfo::shapeLogicalOffset): Reformat to
755             be on a single line, like most other methods of it's type in
756             WebKit headers.
757         (ExclusionShapeOutsideInfo): Update for new template parameter.
758         (WebCore::ExclusionShapeOutsideInfo::logicalLeftOffsetForLine):
759             Accessor method to get the left offset between the shape and the
760             shape's bounding box.
761         (WebCore::ExclusionShapeOutsideInfo::logicalRightOffsetForLine):
762             Accessor method to get the left offset between the shape and the
763             shape's bounding box.
764         (WebCore::ExclusionShapeOutsideInfo::ExclusionShapeOutsideInfo):
765             Update for new template parameter.
766         * rendering/RenderBlock.cpp:
767         (WebCore::::collectIfNeeded): Save the last float encountered so that
768             the shape outside offset can be accounted for.
769         (WebCore::RenderBlock::logicalLeftOffsetForLine): Account for the
770             shape outside offset on the outermost float.
771         (WebCore::RenderBlock::logicalRightOffsetForLine): Account for the
772             shape outside offset on the outermost float.
773         * rendering/RenderBlock.h:
774         (WebCore::RenderBlock::FloatIntervalSearchAdapter::FloatIntervalSearchAdapter):
775             Initialize the lastFloat member.
776         (WebCore::RenderBlock::FloatIntervalSearchAdapter::lastFloat): Get the
777             last float encountered.
778         (FloatIntervalSearchAdapter): Add a pointer to the last float
779             encountered. Note that the variable is mutable because
780             collectIfNeeded is declared as a const method even though it isn't
781             (it uses loopholes to update m_offset and m_heightRemaining).
782             Instead of trying to come up with a hack to stick with the
783             loopholes, I decided to be explicit about it.
784         * rendering/RenderBlockLineLayout.cpp:
785         (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Take
786             into account the offset from any polygonal shape outside.
787         (WebCore::RenderBlock::LineBreaker::nextSegmentBreak): Add a FIXME
788             because the current code will not work properly with stacked
789             floats that have polygonal shape outside.
790
791 2013-03-04  David Hyatt  <hyatt@apple.com>
792
793         [New Multicolumn] Autogenerate regions for columns.
794         https://bugs.webkit.org/show_bug.cgi?id=111363
795
796         Reviewed by Dean Jackson.
797
798         In CSS Regions, we lay out the regions first, and then
799         we put the flow thread into the regions. This model doesn't
800         really work for multicolumn layout, which needs to be able
801         to auto-generate new regions lazily in response to the flow
802         thread asking for regions at particular offsets.
803
804         With the multi-column model, where the regions can't just occur
805         anywhere, its ok not to lay them out before the flow thread, as
806         long as we have at least given them the correct size.
807         
808         This patch changes the layout algorithm for columns to:
809         (1) Size any existing regions (without worrying about placement).
810         (2) Lay out the flow thread (generating and sizing regions lazily
811         that need to be created).
812         (3) Lay out the regions (to give them correct placement and to
813         compute overflow correctly for the multi-column block that contains
814         the regions).
815
816         There are no new tests, since there are no behavioral changes. This
817         is just groundwork for being able to add new sets in response to
818         spans, balancing, and nested pagination contexts.
819
820         * rendering/RenderBlock.cpp:
821         (WebCore::RenderBlock::determineLogicalLeftPositionForChild):
822         (WebCore::RenderBlock::layoutBlockChild):
823         * rendering/RenderBlock.h:
824         (RenderBlock):
825         Since we want to be able to call determineLogicalLeftPositionForChild
826         to place the flow thread properly, and we don't want to apply a layout
827         delta (flow threads repaint themselves), we parameterize the method
828         here so that it can be called without applying a layout delta.
829         
830         * rendering/RenderFlowThread.cpp:
831         (WebCore::RenderFlowThread::addRegionToThread):
832         (WebCore::RenderFlowThread::removeRegionFromThread):
833         These methods are only used by RenderMultiColumnFlowThread, since
834         RenderNamedFlowThread overrides them. Remove the code that invalidates
835         the flow threads region set as regions come and go, since that is now
836         going to be expected with auto-generation.
837
838         (WebCore::RenderFlowThread::validateRegions):
839         Refactor the code in RenderFlowThread::layout that validates the regions
840         into its own method, so that we can re-validate regions at any time
841         after generating new ones.
842         
843         (WebCore::RenderFlowThread::layout):
844         Changed to move the region validation code into its own function that is
845         now called from here.
846
847         (WebCore::RenderFlowThread::updateLogicalWidth):
848         Don't assert if a region set needs layout.
849
850         (WebCore::RenderFlowThread::computeLogicalHeight):
851         Ditto. Don't assert if a region set needs layout. That's expected now.
852
853         (WebCore::RenderFlowThread::regionAtBlockOffset):
854         Add code to regionAtBlockOffset to auto-generate regions up to
855         the offset. This ensures the region that is being asked for
856         exists.
857
858         (WebCore::RenderFlowThread::pageLogicalTopForOffset):
859         (WebCore::RenderFlowThread::pageLogicalWidthForOffset):
860         (WebCore::RenderFlowThread::pageLogicalHeightForOffset):
861         (WebCore::RenderFlowThread::pageRemainingLogicalHeightForOffset):
862         These functions are no longer const, since the act of asking for
863         pagination offsets can cause us to generate new regions.
864
865         (WebCore::RenderFlowThread::mapFromFlowToRegion):
866         Modified to turn auto-generation off, since this is not really
867         a "layout-time" function.
868
869         (WebCore::RenderFlowThread::logicalWidthChangedInRegions):
870         Modified to not assert if a region set needs layout, since that is
871         expected now.
872
873         * rendering/RenderFlowThread.h:
874         Changes to remove const from the methods that can trigger region
875         auto-generation.
876
877         * rendering/RenderMultiColumnBlock.cpp:
878         (WebCore::RenderMultiColumnBlock::styleDidChange):
879         Make sure to propagate style changes down into the regions. I don't know
880         of any correctness bugs around this, but I figured I'd be thorough.
881
882         (WebCore::RenderMultiColumnBlock::checkForPaginationLogicalHeightChange):
883         We no longer build a column set aggressively. We wait for the flow thread
884         to ask us for a region at a particular offset, and only then do we
885         build the set.
886         
887         (WebCore::RenderMultiColumnBlock::addChild):
888         Now that we lay out the flow thread as a special excluded child, we don't
889         care about the ordering of it relative to the region children.
890
891         (WebCore::RenderMultiColumnBlock::layoutSpecialExcludedChild):
892         We now lay out the flow thread as a special excluded child (like the legend
893         of a fieldset).
894
895         * rendering/RenderMultiColumnBlock.h:
896         (RenderMultiColumnBlock):
897         Add new overrides like layoutSpecialExcludedChild.
898         
899         * rendering/RenderMultiColumnFlowThread.cpp:
900         (WebCore::RenderMultiColumnFlowThread::initialLogicalWidth):
901         Set the flow thread to the initial column width even when no regions exist
902         yet. This way we ensure the width is right even when we don't have any
903         regions yet.
904
905         (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
906         This method handles autogenerating the new region for a given offset.
907         Right now it's simplistic, since we only have one column set. This method
908         will be enhanced in future patches when we start supporting multiple column
909         sets.
910
911         * rendering/RenderMultiColumnFlowThread.h:
912         (RenderMultiColumnFlowThread):
913         Adding new method declarations like autoGenerateRegionsToBlockOffset.
914
915         * rendering/RenderMultiColumnSet.cpp:
916         (WebCore::RenderMultiColumnSet::updateLogicalWidth):
917         Since regions lay out after flow threads, we don't need to make 
918         setFlowThreadPortionRect virtual any longer. We can just get our column set's
919         width correct immediately. This is the same logic, just moved into updateLogicalWidth().
920
921         * rendering/RenderMultiColumnSet.h:
922         Remove setFlowThreadPortionRect override, since the function can just be simple
923         and non-virtual in RenderRegion now.
924
925         * rendering/RenderRegion.cpp:
926         (WebCore::RenderRegion::layoutBlock):
927         Don't ever invalidate region sets in response to our size changing during layout. Since
928         our size is always determined outside of layout now, we don't need to do any of
929         these checks.
930
931         * rendering/RenderRegion.h:
932         (WebCore::RenderRegion::setFlowThreadPortionRect):
933         Changed to be non-virtual now that RenderMultiColumnSet doesn't need to override.
934
935 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
936
937         Make AsyncFileReader work without ScriptExecutionContext
938         https://bugs.webkit.org/show_bug.cgi?id=111376
939
940         Reviewed by Anders Carlsson.
941
942         * WebCore.xcodeproj/project.pbxproj: Added MainThreadTask.h.
943
944         * dom/ScriptExecutionContext.cpp:
945         * dom/ScriptExecutionContext.h:
946         Removed fileThread(). Creating a thread for every context that acesses files appears
947         wasteful and unnecessary.
948
949         * fileapi/AsyncFileStream.h:
950         * fileapi/AsyncFileStream.cpp:
951         (WebCore::createFileThread): FileThread is now a singleton.
952         (WebCore::fileThread): Ditto.
953         (WebCore::AsyncFileStream::AsyncFileStream):
954         (WebCore::AsyncFileStream::create):
955         (WebCore::didStart):
956         (WebCore::AsyncFileStream::startOnFileThread):
957         (WebCore::AsyncFileStream::stop):
958         (WebCore::derefProxyOnMainThread):
959         (WebCore::AsyncFileStream::stopOnFileThread):
960         (WebCore::didGetSize):
961         (WebCore::AsyncFileStream::getSizeOnFileThread):
962         (WebCore::didOpen):
963         (WebCore::AsyncFileStream::openForReadOnFileThread):
964         (WebCore::AsyncFileStream::openForWriteOnFileThread):
965         (WebCore::didRead):
966         (WebCore::AsyncFileStream::readOnFileThread):
967         (WebCore::didWrite):
968         (WebCore::AsyncFileStream::writeOnFileThread):
969         (WebCore::didTruncate):
970         (WebCore::AsyncFileStream::truncateOnFileThread):
971         Use callOnMainThread() instead of posting messages through a context. We never used
972         other threads, and don't plan to.
973
974         * loader/ResourceLoader.cpp:
975         * loader/ResourceLoader.h:
976         We no longer need this pseudo-client call to create an AsyncFileStream, now that
977         we don't need to get a ScriptExecutionContext somewhere.
978
979         * platform/MainThreadTask.h: Added. This implements callOnMainThread with multiple
980         strongly typed arguments. Closely based on CrossThreadTask.h.
981
982         * platform/network/BlobResourceHandle.cpp:
983         (WebCore::BlobResourceHandle::BlobResourceHandle): Create AsyncFileStream directly.
984
985         * platform/network/ResourceHandleClient.h: Removed createAsyncFileStream().
986
987 2013-03-05  Jessie Berlin  <jberlin@apple.com>
988
989         Update the localizable strings file.
990
991         Rubber-stamped by Anders Carlsson.
992
993         * English.lproj/Localizable.strings:
994
995 2013-03-05  Chris Fleizach  <cfleizach@apple.com>
996
997         AX: aria-label does not override text content on iOS
998         https://bugs.webkit.org/show_bug.cgi?id=111222
999
1000         Reviewed by David Kilzer.
1001
1002         Make iOS use the same text alternative computation that Mac is using. The main difference
1003         is that description and title need to be concatenated, because iOS doesn't have two attributes
1004         to return those values.
1005
1006         Test: platform/iphone-simulator/accessibility/aria-label-with-internal-text.html
1007
1008         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1009         (-[WebAccessibilityObjectWrapper stringValueShouldBeUsedInLabel]):
1010         (-[WebAccessibilityObjectWrapper accessibilityLabel]):
1011         (-[WebAccessibilityObjectWrapper accessibilityHint]):
1012         * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
1013
1014 2013-03-05  David Kilzer  <ddkilzer@apple.com>
1015
1016         BUILD FIX (r144698): Only enable SPEECH_SYNTHESIS for Mac
1017         <http://webkit.org/b/106742>
1018
1019         Fixes the following build failures:
1020
1021             Undefined symbols for architecture i386:
1022               "__ZTVN7WebCore25PlatformSpeechSynthesizerE", referenced from:
1023                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
1024               NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
1025               "__ZN7WebCore25PlatformSpeechSynthesizer19initializeVoiceListEv", referenced from:
1026                   __ZN7WebCore25PlatformSpeechSynthesizerC2EPNS_31PlatformSpeechSynthesizerClientE in PlatformSpeechSynthesizer.o
1027             ld: symbol(s) not found for architecture i386
1028
1029         * Configurations/FeatureDefines.xcconfig:
1030         - Only set ENABLE_SPEECH_SYNTHESIS for the macosx platform.
1031
1032 2013-03-05  Dmitry Zvorygin  <zvorygin@chromium.org>
1033
1034         Web Inspector: registered new MIME type application/font-woff for WOFF fonts.
1035         https://bugs.webkit.org/show_bug.cgi?id=111418
1036
1037         The WOFF MIME Type was formally registered as application/font-woff (FINALLY):
1038         http://www.iana.org/assignments/media-types/application/font-woff
1039
1040         Reviewed by Pavel Feldman.
1041
1042         * inspector/front-end/NetworkManager.js:
1043         (WebInspector.NetworkManager):
1044         (WebInspector.NetworkDispatcher.prototype._updateNetworkRequestWithResponse):
1045
1046 2013-03-05  Julien Chaffraix  <jchaffraix@webkit.org>
1047
1048         [CSS Grid Layout] Add parsing for grid-{end|after}
1049         https://bugs.webkit.org/show_bug.cgi?id=111372
1050
1051         Reviewed by Tony Chang.
1052
1053         Test: fast/css-grid-layout/grid-item-end-after-get-set.html
1054
1055         This change adds the proper support for grid-{end|after}. It doesn't update
1056         grid-{row|column} to be a shorthand for both grid-{before|start} and grid-{after|end}
1057         though.
1058
1059         * css/CSSComputedStyleDeclaration.cpp:
1060         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1061         Added the new properties to our known properties. Also added
1062         support for getComputedStyle.
1063
1064         * css/CSSParser.cpp:
1065         (WebCore::CSSParser::parseValue):
1066         Added parsing for the new properties.
1067
1068         * css/CSSProperty.cpp:
1069         (WebCore::CSSProperty::isInheritedProperty):
1070         The new properties are not inherited.
1071
1072         * css/CSSPropertyNames.in:
1073         Added the new properties.
1074
1075         * css/StyleResolver.cpp:
1076         (WebCore::StyleResolver::applyProperty):
1077         Added code to handle applying them to our style.
1078
1079         * rendering/style/RenderStyle.h:
1080         * rendering/style/StyleGridItemData.cpp:
1081         (WebCore::StyleGridItemData::StyleGridItemData):
1082         * rendering/style/StyleGridItemData.h:
1083         (WebCore::StyleGridItemData::operator==):
1084         (StyleGridItemData):
1085         Updated our representation to store the new properties.
1086
1087 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
1088
1089         Unreviewed follow-up to r144756, fix broken inspector-less build.
1090
1091         * inspector/InspectorInstrumentation.h:
1092         (WebCore::InspectorInstrumentation::willWriteHTML):
1093
1094 2013-03-05  Mark Lam  <mark.lam@apple.com>
1095
1096         Improve robustness of WebSQL quota management.
1097         https://bugs.webkit.org/show_bug.cgi?id=110600.
1098
1099         Reviewed by Geoffrey Garen.
1100
1101         1. Introduced the OriginLock for synchronizing write access to the
1102            database origin directory. This allows us to more accurately
1103            compute the disk usage.
1104
1105            The OriginLock uses a mutex to provide mutual exclusion between
1106            threads and a file lock for mutual exclusion between processes.
1107            The file lock part is conditional on USE(FILE_LOCK).
1108
1109            The mutex mutual exclusion also serves to ensure that only 1 thread
1110            can write to a sqlite database at one time.
1111
1112         2. Change the SQLTransactionCoordinator to only allow one write
1113            transaction to an origin instead of one write transaction per
1114            database. This is needed in order to accurately compute the
1115            disk usage. It is also necessary so that the OriginLock does not
1116            deadlock itself (as would be the case if concurrent write transactions
1117            to different databases in the same origin are allowed).
1118
1119         3. Fix DatabaseTracker::getMaxSizeForDatabase() to check for when
1120            disk usage may exceed the quota, and ensure that we will return
1121            an appropriate max database size.
1122
1123            Disk usage can exceed the usage if it is already near the quota limit
1124            but have not exceeded it yet. If a new database is opened in that
1125            origin, it may bump the usage above the quota, but should not
1126            continually repeat this. Subsequent attempts to open a database
1127            will find that the quota is already exhausted and fail.
1128
1129            There is still a race condition pertaining to the tracker database
1130            getting out of sync that may still enable runaway growth in the
1131            database sizes. That issue only manifest in a multi-process
1132            environment, and will be fixed in another changeset.
1133
1134         4. Fixed a bug in SQLStatement to check if the errorCallback exists
1135            before invoking it.
1136
1137         No new layout tests. A quota-test.html was attached to bugzilla for manual
1138         testing of multi-tab concurrent consumption of storage resource, and also
1139         to test handling situations when the user deletes the database files while
1140         the script is still using the database.
1141
1142         * CMakeLists.txt:
1143         * GNUmakefile.list.am:
1144         * Modules/webdatabase/DatabaseTracker.cpp:
1145         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
1146         (WebCore::DatabaseTracker::originLockFor):
1147         (WebCore::DatabaseTracker::deleteOriginLockFor):
1148         (WebCore::DatabaseTracker::deleteOrigin):
1149         * Modules/webdatabase/DatabaseTracker.h:
1150         * Modules/webdatabase/OriginLock.cpp: Added.
1151         (WebCore::OriginLock::lockFileNameForPath):
1152         (WebCore::OriginLock::OriginLock):
1153         (WebCore::OriginLock::~OriginLock):
1154         (WebCore::OriginLock::lock):
1155         (WebCore::OriginLock::unlock):
1156         * Modules/webdatabase/OriginLock.h: Added.
1157         * Modules/webdatabase/SQLStatement.cpp:
1158         (WebCore::SQLStatement::performCallback):
1159         * Modules/webdatabase/SQLTransactionBackend.cpp:
1160         (WebCore::SQLTransactionBackend::doCleanup):
1161         (WebCore::SQLTransactionBackend::computeNextStateAndCleanupIfNeeded):
1162         (WebCore::SQLTransactionBackend::openTransactionAndPreflight):
1163         (WebCore::SQLTransactionBackend::postflightAndCommit):
1164         (WebCore::SQLTransactionBackend::cleanupAfterTransactionErrorCallback):
1165         (WebCore::SQLTransactionBackend::acquireOriginLock):
1166         (WebCore::SQLTransactionBackend::releaseOriginLockIfNeeded):
1167         * Modules/webdatabase/SQLTransactionBackend.h:
1168         (SQLTransactionBackend):
1169         * Modules/webdatabase/SQLTransactionCoordinator.cpp:
1170         (WebCore::getDatabaseIdentifier):
1171         * Target.pri:
1172         * WebCore.gypi:
1173         * WebCore.vcproj/WebCore.vcproj:
1174         * WebCore.vcxproj/WebCore.vcxproj:
1175         * WebCore.vcxproj/WebCore.vcxproj.filters:
1176         * WebCore.xcodeproj/project.pbxproj:
1177         * config.h:
1178         * platform/FileSystem.h:
1179         * platform/posix/FileSystemPOSIX.cpp:
1180         (WebCore::lockFile):
1181         (WebCore::unlockFile):
1182
1183 2013-03-05  Ilya Tikhonovsky  <loislo@chromium.org>
1184
1185         Web Inspector: move PopoverContentHelper from TimelinePresentationModel.js to Popover.js.
1186         https://bugs.webkit.org/show_bug.cgi?id=111431
1187
1188         Reviewed by Yury Semikhatsky.
1189
1190         class WebInspector.TimelinePresentationModel.PopoverContentHelper was renamed to WebInspector.PopoverContentHelper.
1191         Style names were changed accordingly.
1192
1193         * inspector/front-end/Popover.js:
1194         (WebInspector.PopoverContentHelper):
1195         (WebInspector.PopoverContentHelper.prototype.contentTable):
1196         (WebInspector.PopoverContentHelper.prototype._createCell):
1197         (WebInspector.PopoverContentHelper.prototype.appendTextRow):
1198         (WebInspector.PopoverContentHelper.prototype.appendElementRow):
1199         (WebInspector.PopoverContentHelper.prototype.appendStackTrace):
1200         * inspector/front-end/TimelinePresentationModel.js:
1201         (WebInspector.TimelinePresentationModel.prototype.generateMainThreadBarPopupContent):
1202         (WebInspector.TimelinePresentationModel.Record.prototype._generatePopupContentWithImagePreview):
1203         (WebInspector.TimelinePresentationModel.generatePopupContentForFrame):
1204         (WebInspector.TimelinePresentationModel.generatePopupContentForFrameStatistics):
1205         * inspector/front-end/popover.css:
1206         (.popover-details):
1207         (.popover-function-name):
1208         (.popover-stacktrace-title):
1209         (.popover-details-row-title):
1210         (.popover-details-row-data):
1211         (.popover-details-title):
1212         * inspector/front-end/timelinePanel.css:
1213
1214 2013-03-05  Yury Semikhatsky  <yurys@chromium.org>
1215
1216         Web Inspector: remove "Live native memory chart" experiment
1217         https://bugs.webkit.org/show_bug.cgi?id=111432
1218
1219         Reviewed by Alexander Pavlov.
1220
1221         Removed support for live native memory chart.
1222
1223         * English.lproj/localizedStrings.js:
1224         * inspector/front-end/NativeMemorySnapshotView.js:
1225         * inspector/front-end/ProfileLauncherView.js:
1226         (WebInspector.ProfileLauncherView):
1227         * inspector/front-end/ProfilesPanel.js:
1228         (WebInspector.ProfilesPanel):
1229         * inspector/front-end/Settings.js:
1230         (WebInspector.ExperimentsSettings):
1231         * inspector/front-end/nativeMemoryProfiler.css:
1232
1233 2013-03-05  Andrey Kosyakov  <caseq@chromium.org>
1234
1235         Web Inspector: remove length parameter from Parse HTML timeline event
1236         https://bugs.webkit.org/show_bug.cgi?id=111421
1237
1238         Reviewed by Yury Semikhatsky.
1239
1240         - remove length parameter in all instrumentation methods used to emit ParseHTML timeline event;
1241         - drive-by style fixes.
1242
1243         * html/parser/HTMLDocumentParser.cpp:
1244         (WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
1245         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
1246         (WebCore::HTMLDocumentParser::pumpTokenizer):
1247         * inspector/InspectorInstrumentation.cpp:
1248         (WebCore):
1249         (WebCore::InspectorInstrumentation::willWriteHTMLImpl):
1250         (WebCore::InspectorInstrumentation::didWriteHTMLImpl):
1251         * inspector/InspectorInstrumentation.h:
1252         (InspectorInstrumentation):
1253         (WebCore::InspectorInstrumentation::willWriteHTML):
1254         (WebCore::InspectorInstrumentation::didWriteHTML):
1255         * inspector/InspectorTimelineAgent.cpp:
1256         (WebCore::InspectorTimelineAgent::willWriteHTML):
1257         (WebCore::InspectorTimelineAgent::didWriteHTML):
1258         * inspector/InspectorTimelineAgent.h:
1259         (InspectorTimelineAgent):
1260         * inspector/TimelineRecordFactory.cpp:
1261         (WebCore::TimelineRecordFactory::createParseHTMLData):
1262         * inspector/TimelineRecordFactory.h:
1263         (TimelineRecordFactory):
1264
1265 2013-03-05  Alexei Filippov  <alph@chromium.org>
1266
1267         Web Inspector: allow each profiler panel to have own landing page
1268         https://bugs.webkit.org/show_bug.cgi?id=111298
1269
1270         Reviewed by Yury Semikhatsky.
1271
1272         Refactor profiler landing page to allow different profiler panels to have own landing pages.
1273           - MultiProfileLauncherView is inherited from ProfileLauncherView
1274           - Native memory distribution profiler has got a custom page.
1275
1276         No new tests: code refactoring.
1277
1278         * inspector/front-end/HeapSnapshotView.js:
1279         (WebInspector.HeapSnapshotView.prototype.get profile):
1280         (WebInspector.HeapSnapshotView.prototype.get baseProfile):
1281         (WebInspector.HeapSnapshotView.prototype._profiles):
1282         * inspector/front-end/NativeMemorySnapshotView.js:
1283         * inspector/front-end/ProfileLauncherView.js:
1284         (WebInspector.ProfileLauncherView):
1285         (WebInspector.ProfileLauncherView.prototype.addProfileType):
1286         (WebInspector.ProfileLauncherView.prototype._controlButtonClicked):
1287         (WebInspector.ProfileLauncherView.prototype._updateControls):
1288         (WebInspector.ProfileLauncherView.prototype.profileStarted):
1289         (WebInspector.ProfileLauncherView.prototype.profileFinished):
1290         (WebInspector.MultiProfileLauncherView):
1291         (WebInspector.MultiProfileLauncherView.prototype.addProfileType):
1292         (WebInspector.MultiProfileLauncherView.prototype._profileTypeChanged):
1293         (WebInspector.NativeProfileLauncherView):
1294         * inspector/front-end/ProfilesPanel.js:
1295         (WebInspector.ProfilesPanel):
1296         (WebInspector.ProfilesPanel.prototype._createLauncherView):
1297         (WebInspector.CPUProfilerPanel):
1298         (WebInspector.CSSSelectorProfilerPanel):
1299         (WebInspector.HeapProfilerPanel):
1300         (WebInspector.CanvasProfilerPanel):
1301         (WebInspector.MemoryChartProfilerPanel):
1302         (WebInspector.MemoryChartProfilerPanel.prototype._createLauncherView):
1303         (WebInspector.NativeMemoryProfilerPanel):
1304         * inspector/front-end/profilesPanel.css:
1305         (.panel-enabler-view.profile-launcher-view button:not(.status-bar-item)):
1306
1307 2013-03-05  Eugene Klyuchnikov  <eustas@chromium.org>
1308
1309         Web Inspector: Clarify some StylesSidebarPanel and CSSMetadata JSDocs.
1310         https://bugs.webkit.org/show_bug.cgi?id=111427
1311
1312         Reviewed by Alexander Pavlov.
1313
1314         Goal: reflect in JSDoc that non-null array is passed to completionsReady callback.
1315
1316         * inspector/front-end/CSSMetadata.js:
1317         Added JSDocs, avoided possible NPEs.
1318         * inspector/front-end/StylesSidebarPane.js:
1319         Fixed JSDocs, removed unused assignment.
1320
1321 2013-03-05  David Kilzer  <ddkilzer@apple.com>
1322
1323         BUILD FIX (r144727): Change type of columnRange and rowRange to pair<unsigned, unsigned>
1324         <http://webkit.org/b/110050>
1325
1326         Fixes the following build failures:
1327
1328             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:741:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
1329                 tableCell->rowIndexRange(rowRange);
1330                                          ^~~~~~~~
1331             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
1332             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
1333                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
1334                                                                      ^
1335             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:742:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
1336                 tableCell->columnIndexRange(columnRange);
1337                                             ^~~~~~~~~~~
1338             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
1339             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
1340                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
1341                                                                         ^
1342             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:804:30: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
1343                 tableCell->rowIndexRange(rowRange);
1344                                          ^~~~~~~~
1345             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
1346             Source/WebCore/accessibility/AccessibilityTableCell.h:47:58: note: passing argument to parameter 'rowRange' here
1347                 virtual void rowIndexRange(pair<unsigned, unsigned>& rowRange);
1348                                                                      ^
1349             Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:818:33: error: non-const lvalue reference to type 'pair<unsigned int, unsigned int>' cannot bind to a value of unrelated type 'pair<int, int>'
1350                 tableCell->columnIndexRange(columnRange);
1351                                             ^~~~~~~~~~~
1352             In file included from Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:33:
1353             Source/WebCore/accessibility/AccessibilityTableCell.h:49:61: note: passing argument to parameter 'columnRange' here
1354                 virtual void columnIndexRange(pair<unsigned, unsigned>& columnRange);
1355                                                             ^
1356             4 errors generated.
1357
1358         * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
1359         (-[WebAccessibilityObjectWrapper accessibilityHeaderElements]):
1360         (-[WebAccessibilityObjectWrapper accessibilityRowRange]):
1361         (-[WebAccessibilityObjectWrapper accessibilityColumnRange]):
1362
1363 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
1364
1365         Web Inspector: [refactoring] set frame identifiers in timeline records early, do not keep them in event stack
1366         https://bugs.webkit.org/show_bug.cgi?id=111345
1367
1368         Reviewed by Pavel Feldman.
1369
1370         * inspector/InspectorTimelineAgent.cpp:
1371         (WebCore::InspectorTimelineAgent::pushGCEventRecords):
1372         (WebCore::InspectorTimelineAgent::addRecordToTimeline):
1373         (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
1374         (WebCore::InspectorTimelineAgent::setFrameIdentifier):
1375         (WebCore):
1376         (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
1377         (WebCore::InspectorTimelineAgent::appendRecord):
1378         (WebCore::InspectorTimelineAgent::pushCurrentRecord):
1379         (WebCore::InspectorTimelineAgent::commitFrameRecord):
1380         * inspector/InspectorTimelineAgent.h:
1381         (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
1382         (TimelineRecordEntry):
1383         (InspectorTimelineAgent):
1384
1385 2013-03-05  Tommy Widenflycht  <tommyw@google.com>
1386
1387         MediaStream API: Add the getStreamById method on RTCPeerConnection
1388         https://bugs.webkit.org/show_bug.cgi?id=111311
1389
1390         Reviewed by Adam Barth.
1391
1392         Adding the missing method on RTCPeerConnection defined here:
1393         http://dev.w3.org/2011/webrtc/editor/webrtc.html#widl-RTCPeerConnection-getStreamById-MediaStream-DOMString-streamId
1394
1395         Existing tests have been extended to cover patch.
1396
1397         * Modules/mediastream/RTCPeerConnection.cpp:
1398         (WebCore::RTCPeerConnection::getStreamById):
1399         (WebCore):
1400         * Modules/mediastream/RTCPeerConnection.h:
1401         (RTCPeerConnection):
1402         * Modules/mediastream/RTCPeerConnection.idl:
1403         * platform/chromium/support/WebMediaStream.cpp:
1404         (WebKit::WebMediaStream::initialize):
1405         (WebKit):
1406         * platform/mediastream/MediaStreamSource.cpp:
1407         (WebCore::MediaStreamSource::setReadyState):
1408
1409 2013-03-05  Antoine Quint  <graouts@apple.com>
1410
1411         Web Inspector: allow retrieval of composited layers in a given DOM subtree
1412         https://bugs.webkit.org/show_bug.cgi?id=111312
1413
1414         Introduce the LayerTreeAgent.layersForNode(node) method allowing the front-end
1415         to gather all composited layers associated with nodes in the subtree of which
1416         the provided node is the root.
1417
1418         In order to gather the layers in the subtree, we first traverse the node's
1419         renderer's RenderObject hierarchy and whenever we encounter a RenderObject
1420         that has a RenderLayer, we then traverse that renderLayer's RenderLayer
1421         hierarchy. This allows for a quick path through the relevant objects we're
1422         gathering.
1423
1424         Layers gathered will push the node to which they're associated, allowing a
1425         nodeId for this layer to be listed in the Layer object sent to the front-end.
1426         It is crucial to be able to provide a nodeId as well as a layerId for a Layer
1427         object in order to be able to correctly assess mutations in the layer tree.
1428         For instance, it is expected that a node's layer be replaced by a new layer
1429         to represent a slightly different rendering of its content, but the front-end
1430         should be able to represent this layer as an object for which only certain
1431         attributes have changed (like the "paintCount" property).
1432
1433         Layer objects also indicate whether they're associated to a node hosted in a
1434         shadow tree (the optional "isInShadowTree" property) in order for the front-end
1435         to be able to only show this layer if the option to show nodes hosted in shadow
1436         tree is enabled.
1437
1438         Finally, since we're only gathering composited layers, we're removing the
1439         "isLayerComposited" property and removing the optional flag on the "paintCount",
1440         "memory" and "compositedBounds" properties.
1441
1442         Reviewed by Simon Fraser.
1443
1444         Test: inspector-protocol/layers/layers-for-node.html
1445
1446         * inspector/Inspector.json:
1447         * inspector/InspectorLayerTreeAgent.cpp:
1448         (WebCore::InspectorLayerTreeAgent::layersForNode):
1449         (WebCore):
1450         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
1451         (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
1452         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
1453         (WebCore::InspectorLayerTreeAgent::idForNode):
1454         * inspector/InspectorLayerTreeAgent.h:
1455         (InspectorLayerTreeAgent):
1456
1457 2013-03-04  Andrey Kosyakov  <caseq@chromium.org>
1458
1459         Web Inspector: use timestamps consistent with rest of Timeline in WebSocket events.
1460         https://bugs.webkit.org/show_bug.cgi?id=111344
1461
1462         - create web socket related records in a manner consistent with the rest of timeline.
1463
1464         Reviewed by Pavel Feldman.
1465
1466         * inspector/InspectorTimelineAgent.cpp:
1467         (WebCore::InspectorTimelineAgent::didCreateWebSocket):
1468         (WebCore::InspectorTimelineAgent::willSendWebSocketHandshakeRequest):
1469         (WebCore::InspectorTimelineAgent::didReceiveWebSocketHandshakeResponse):
1470         (WebCore::InspectorTimelineAgent::didDestroyWebSocket):
1471         * inspector/InspectorTimelineAgent.h:
1472         (InspectorTimelineAgent):
1473
1474 2013-03-05  Andrei Bucur  <abucur@adobe.com>
1475
1476         [CSS Regions] Crash when MathML used in CSS Regions
1477         https://bugs.webkit.org/show_bug.cgi?id=110686
1478
1479         Reviewed by David Hyatt.
1480
1481         The MathML blocks trigger a children layout when computing the preferred widths. This happens to determine the preferred
1482         logical heights of the children. When the layout reaches the line boxes computation the preferred width of the containing block
1483         is requested. Because it wasn't computed, the layout of the children is started again to determine the preferred logical heights.
1484         This causes an infinite recursion and triggers a stack overflow.
1485
1486         The patch introduces a new RAII utility class that disables fragmentation when the constructor is called and restores it
1487         on the destructor. This class is used when computing the preferred height for the children of a MathML block.
1488
1489         Test: fast/regions/mathml-crash.html
1490
1491         * rendering/RenderObject.cpp:
1492         (WebCore::RenderObject::setFlowThreadStateIncludingDescendants): Do not cross RenderFlowThread boundaries when updating the flow thread
1493         state flag. The innermost flow threads need to manage their descendants flag values.
1494         * rendering/RenderView.cpp:
1495         (WebCore::FragmentationDisabler::FragmentationDisabler):
1496         (WebCore):
1497         (WebCore::FragmentationDisabler::~FragmentationDisabler):
1498         * rendering/RenderView.h:
1499         (FragmentationDisabler):
1500         (WebCore):
1501         * rendering/mathml/RenderMathMLBlock.cpp:
1502         (WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights):
1503
1504 2013-03-05  Mike West  <mkwst@chromium.org>
1505
1506         Cleanup: Move HitTestLocation and HitTestResult into separate files.
1507         https://bugs.webkit.org/show_bug.cgi?id=111294
1508
1509         Reviewed by Allan Sandfeld Jensen.
1510
1511         HitTestLocation and HitTestResult currently both live in
1512         HitTestResult.h. That makes things more difficult to understand than
1513         they should be, and violates the one-class-one-file principle that
1514         WebKit generally follows. Happily, it's fairly trivial to fix.
1515
1516         This should have no visible change; it's strictly an internal
1517         refactoring. It doesn't even touch any implementation code: we're
1518         just moving bits from one place to another.
1519
1520         * CMakeLists.txt:
1521         * GNUmakefile.list.am:
1522         * Target.pri:
1523         * WebCore.gypi:
1524         * WebCore.vcproj/WebCore.vcproj:
1525         * WebCore.xcodeproj/project.pbxproj:
1526             Hey, look: a new file! Let's add it to six different build systems! :)
1527         * rendering/HitTestLocation.cpp: Added.
1528         (WebCore):
1529         (WebCore::HitTestLocation::HitTestLocation):
1530         (WebCore::HitTestLocation::~HitTestLocation):
1531         (WebCore::HitTestLocation::operator=):
1532         (WebCore::HitTestLocation::move):
1533         (WebCore::HitTestLocation::intersectsRect):
1534         (WebCore::HitTestLocation::intersects):
1535         (WebCore::HitTestLocation::rectForPoint):
1536         * rendering/HitTestLocation.h: Added.
1537         (WebCore):
1538         (HitTestLocation):
1539         (WebCore::HitTestLocation::point):
1540         (WebCore::HitTestLocation::roundedPoint):
1541         (WebCore::HitTestLocation::region):
1542         (WebCore::HitTestLocation::isRectBasedTest):
1543         (WebCore::HitTestLocation::isRectilinear):
1544         (WebCore::HitTestLocation::boundingBox):
1545         (WebCore::HitTestLocation::topPadding):
1546         (WebCore::HitTestLocation::rightPadding):
1547         (WebCore::HitTestLocation::bottomPadding):
1548         (WebCore::HitTestLocation::leftPadding):
1549         (WebCore::HitTestLocation::transformedPoint):
1550         (WebCore::HitTestLocation::transformedRect):
1551         * rendering/HitTestResult.cpp:
1552         * rendering/HitTestResult.h:
1553             Move all this code from HitTestResult.* to HitTestLocation.*.
1554         * rendering/RenderBlock.cpp:
1555             Include HitTestLocation.h.
1556
1557 2013-03-05  Jochen Eisinger  <jochen@chromium.org>
1558
1559         Refactor UserGestureIndicator::Token to be a top-level class
1560         https://bugs.webkit.org/show_bug.cgi?id=111412
1561
1562         Reviewed by Nico Weber.
1563
1564         This will allow for forward declaring the class in a public WebKit
1565         API header. The goal is to enable the embedder to hold on to a
1566         UserGestureToken.
1567
1568         * dom/UserGestureIndicator.cpp:
1569         (WebCore::UserGestureIndicator::UserGestureIndicator):
1570         (WebCore::UserGestureIndicator::currentToken):
1571         * dom/UserGestureIndicator.h:
1572         (UserGestureToken):
1573         (WebCore::UserGestureToken::~UserGestureToken):
1574         (WebCore):
1575         (UserGestureIndicator):
1576         * page/DOMTimer.h:
1577         (DOMTimer):
1578         * page/EventHandler.h:
1579
1580 2013-03-05  Mike West  <mkwst@chromium.org>
1581
1582         Remove redundant code in Document::updateHoverActiveState.
1583         https://bugs.webkit.org/show_bug.cgi?id=111303
1584
1585         Reviewed by Darin Adler.
1586
1587         Document::updateHoverActiveState currently looks for touchrelease events
1588         and explictly clears out the hover state for all nodes between the
1589         currently hovered node and the top of the hover chain. This is actually
1590         redundant with the logic in the rest of the function; we can simplify by
1591         setting the Element* we're working with to 0, which causes the later
1592         loops to do the necessary work.
1593
1594         There should be no web-visible effect from this change; it should simply
1595         make this function less complex.
1596
1597         Extracted from Allan Sandfeld Jensen's original patch to wkbug.com/98168
1598
1599         * dom/Document.cpp:
1600         (WebCore::Document::updateHoverActiveState):
1601             Set innerElementInDocument to 0 rather than walking the hover chain
1602             and clearing it when we see a touchrelease event. The rest of the
1603             code in this function will have the same effect.
1604
1605 2013-03-05  Koji Hara  <kojih@chromium.org>
1606
1607         [V8] Remove unused custom indexedPropertyGetter
1608         https://bugs.webkit.org/show_bug.cgi?id=111409
1609
1610         Reviewed by Kentaro Hara.
1611
1612         Remove unused custom indexedPropertyGetter.
1613         There are 9 custom indexedPropertyGetter, including an unused one(NamedNodeMap).
1614         This commit assures all existing custom indexedPropertyGetter(for V8) are used.
1615
1616         No new tests. Simple refactoring.
1617
1618         * bindings/v8/custom/V8NamedNodeMapCustom.cpp: Remove indexedPropertyGetter
1619
1620 2013-03-05  Hajime Morrita  <morrita@google.com>
1621
1622         ShadowRoot needs guardRef() and guardDeref()
1623         https://bugs.webkit.org/show_bug.cgi?id=109777
1624
1625         Reviewed by Dimitri Glazkov.
1626
1627         This change moves m_guardRefCount from Document to TreeScope,
1628         which allows ShadowRoot to be guarded by guardRef() mechanism as
1629         Document. After r137524, Node referes TreeScope instead of
1630         Document. This is natural consequence of the change: It no longer
1631         makes sense to guardRef() Document pointer from Node.
1632
1633         Detail:
1634
1635         - Document::m_guardRefCount and related funcdtions are moved to TreeScope
1636         - Document::removedLastRef is factored out into TreeScope::removedLastRefToScope(),
1637           TreeScope::dispose() and Docuent::dispose(). ShadowRoot also got its own dispose() implementation.
1638         - Moved guardRef() and guardDeref() calls to TreeScope and Node.
1639           Note that there are two "guarded" TreeScope references. One is
1640           Node::m_treeScope and another is TreeScope::m_parentTreeScope.
1641           The guarded-ref management is now encapsulated in these two classes.
1642
1643         No new tests. Covered by existing tests.
1644
1645         * WebCore.exp.in:
1646         * dom/Document.cpp:
1647         (WebCore::Document::Document):
1648         (WebCore::Document::~Document):
1649         (WebCore::Document::dispose): Extracted from removedLastRef()
1650         * dom/Document.h:
1651         (WebCore::Node::isTreeScope):
1652         (WebCore::Node::Node):
1653         * dom/DocumentFragment.cpp:
1654         (WebCore::DocumentFragment::DocumentFragment): Remove ASSERT() and move it to ...
1655         (WebCore::DocumentFragment::create): ... here, to allow NULL document from ShadowRoot.
1656         * dom/Node.cpp:
1657         (WebCore::Node::~Node):
1658         (WebCore::Node::removedLastRef):
1659         * dom/Node.h:
1660         (WebCore::Node::setTreeScope):
1661         * dom/Element.cpp:
1662         (WebCore::Element::ensureAttr): This has been wrong and is fixed in this revision since the incorrectness is unveiled by this change.
1663         * dom/ShadowRoot.cpp:
1664         (WebCore::ShadowRoot::ShadowRoot): Passed NULL document to superclass. This aligns what Document is doing.
1665         (WebCore::ShadowRoot::dispose): Added.
1666         * dom/ShadowRoot.h:
1667         (ShadowRoot):
1668         * dom/TreeScope.cpp:
1669         (SameSizeAsTreeScope):
1670         (WebCore::TreeScope::TreeScope):
1671         (WebCore::TreeScope::~TreeScope):
1672         (WebCore::TreeScope::dispose): Added.
1673         (WebCore::TreeScope::setParentTreeScope):
1674         (WebCore::TreeScope::deletionHasBegun):
1675         (WebCore::TreeScope::beginDeletion):
1676         (WebCore::TreeScope::refCount): Added.
1677         * dom/TreeScope.h: Turned m_rootNode to Node* from ContainerNode* for Node::isTreeScope to be inlined.
1678         (WebCore::TreeScope::guardRef): Pulled up from Document.
1679         (WebCore::TreeScope::guardDeref): Ditto.
1680         (WebCore::TreeScope::hasGuardRefCount): Added to hide m_guardRefCount.
1681         (WebCore::TreeScope::deletionHasBegun): Added.
1682         (WebCore::TreeScope::beginDeletion): Added.
1683         (WebCore::TreeScope::removedLastRefToScope): Pulled up from Document.
1684         * dom/TreeScopeAdopter.cpp:
1685         (WebCore::TreeScopeAdopter::moveTreeToNewScope):
1686         (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
1687
1688 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
1689
1690         getPropertyValue for -webkit-text-stroke returns null, should compute the shorthand value
1691         https://bugs.webkit.org/show_bug.cgi?id=111018
1692
1693         Reviewed by Alexander Pavlov.
1694
1695         Test: fast/css/getPropertyValue-webkit-text-stroke.html
1696
1697         * css/StylePropertySet.cpp:
1698         (WebCore::StylePropertySet::getPropertyValue):
1699
1700 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
1701
1702         getPropertyValue for -webkit-columns returns null, should compute the shorthand value
1703         https://bugs.webkit.org/show_bug.cgi?id=111011
1704
1705         Reviewed by Alexander Pavlov.
1706
1707         Test: fast/css/getPropertyValue-columns.html
1708
1709         * css/StylePropertySet.cpp:
1710         (WebCore::StylePropertySet::getPropertyValue):
1711
1712 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
1713
1714         Web Inspector: Do not accumulate file system files, add them to workspace immediately
1715         https://bugs.webkit.org/show_bug.cgi?id=111325
1716
1717         Reviewed by Pavel Feldman.
1718
1719         * inspector/front-end/FileSystemProjectDelegate.js:
1720         (WebInspector.FileSystemProjectDelegate.prototype.populate.fileLoaded):
1721         (WebInspector.FileSystemProjectDelegate.prototype.populate):
1722         * inspector/front-end/IsolatedFileSystem.js:
1723         (WebInspector.IsolatedFileSystem.prototype.innerCallback):
1724         (WebInspector.IsolatedFileSystem.prototype.requestFilesRecursive):
1725
1726 2013-03-04  Kinuko Yasuda  <kinuko@chromium.org>
1727
1728         Unreviewed Windows build fix attempt.
1729
1730         floor method is ambigious so explicitly specify the type.
1731
1732         * html/canvas/WebGLRenderingContext.cpp:
1733         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
1734
1735 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
1736
1737         AX: cellForColumnAndRow fails for tables with hidden table cells
1738         https://bugs.webkit.org/show_bug.cgi?id=110050
1739
1740         Reviewed by Tim Horton.
1741
1742         If a table had hidden cells, then accessibility code was being confused in a few ways.
1743         1) The cellForColumnAndRow method would return the wrong information since that was
1744            using the RenderTableSection to retrieve a cell, which did not have the same data as the AXTable
1745         2) The way we were adding children made it impossible to determine column and row range because we 
1746            would skip rows that had hidden children
1747         3) AccessibilityARIAGrid and AccessibilityTable were using different methods for cellForColumnAndRow
1748
1749         The fix does a few things to make things right:
1750         1) Always add an accessibility row, even if there are no visible cells in that row.
1751         2) Have one method for AXTable and AXARIAGrid for cellForColumnAndRow.
1752         3) Change cellForColumnAndRow to query the accessibility children rather than the RenderTableSection in determining the row, col info.
1753         4) cellForColumnAndRow should use unsigned values instead of int values.
1754
1755         Test: accessibility/table-with-hidden-head-section.html
1756
1757         * accessibility/AccessibilityARIAGrid.cpp:
1758         (WebCore):
1759         * accessibility/AccessibilityARIAGrid.h:
1760         (AccessibilityARIAGrid):
1761         * accessibility/AccessibilityARIAGridCell.cpp:
1762         (WebCore::AccessibilityARIAGridCell::rowIndexRange):
1763         (WebCore::AccessibilityARIAGridCell::columnIndexRange):
1764         * accessibility/AccessibilityARIAGridCell.h:
1765         (AccessibilityARIAGridCell):
1766         * accessibility/AccessibilityTable.cpp:
1767         (WebCore::AccessibilityTable::addChildren):
1768         (WebCore::AccessibilityTable::cellForColumnAndRow):
1769         * accessibility/AccessibilityTable.h:
1770         (WebCore):
1771         (AccessibilityTable):
1772         * accessibility/AccessibilityTableCell.cpp:
1773         (WebCore::AccessibilityTableCell::rowIndexRange):
1774         (WebCore::AccessibilityTableCell::columnIndexRange):
1775         * accessibility/AccessibilityTableCell.h:
1776         (AccessibilityTableCell):
1777         * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
1778         (webkitAccessibleTableGetColumnAtIndex):
1779         (webkitAccessibleTableGetRowAtIndex):
1780         (webkitAccessibleTableGetColumnExtentAt):
1781         (webkitAccessibleTableGetRowExtentAt):
1782         (webkitAccessibleTableGetColumnHeader):
1783         (webkitAccessibleTableGetRowHeader):
1784         * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
1785         (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
1786         * rendering/RenderTableSection.h:
1787         (RenderTableSection):
1788         (WebCore::RenderTableSection::rowRendererAt):
1789
1790 2013-03-04  Arpita Bahuguna  <a.bah@samsung.com>
1791
1792         getAttribute does not behave correctly for mixed-case attributes on HTML elements
1793         https://bugs.webkit.org/show_bug.cgi?id=105713
1794
1795         Reviewed by Andreas Kling.
1796
1797         getAttribute() and getAttributeNode() APIs do not convert the
1798         passed attribute name to lowercase before comparing against the
1799         existing attributes.
1800         The specification however states that the passed name should
1801         be converted to ASCII lowercase before checking for the existence
1802         of the given attribute. [www.w3.org/TR/domcore/#dom-element-getattribute]
1803
1804         Test: fast/dom/Element/getAttribute-case-insensitivity.html
1805
1806         * dom/Element.h:
1807         (WebCore::ElementData::getAttributeItemIndex):
1808         getAttributeItemIndex() accepts a bool param 'shouldIgnoreAttributeCase'
1809         which specifies whether the attribute's case should be ignored
1810         before comparison. But inspite of this param's value we still carry
1811         out a case sensitive search.
1812         Have modified the same to convert the passed attribute's name to
1813         lowercase if 'shouldIgnoreAttributeCase' is true.
1814
1815 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
1816
1817         [Chromium] Add runtime flag for font load events
1818         https://bugs.webkit.org/show_bug.cgi?id=111296
1819
1820         Reviewed by Kent Tamura.
1821
1822         Add a runtime feature flag for FontLoader interface (disabled by default),
1823         and enable ENABLE_FONT_LOAD_EVENTS build flag for chromium.
1824
1825         * bindings/generic/RuntimeEnabledFeatures.cpp:
1826         (WebCore):
1827         * bindings/generic/RuntimeEnabledFeatures.h:
1828         (RuntimeEnabledFeatures):
1829         (WebCore::RuntimeEnabledFeatures::setFontLoadEventsEnabled):
1830         (WebCore::RuntimeEnabledFeatures::fontLoadEventsEnabled):
1831
1832 2013-03-04  Brandon Jones  <bajones@google.com>
1833
1834         WEBGL_compressed_texture_atc implementation
1835         https://bugs.webkit.org/show_bug.cgi?id=110496
1836
1837         Reviewed by Kenneth Russell.
1838
1839         Test: webgl/conformance/extensions/webgl-compressed-texture-atc.html
1840
1841         Exposes the WEBGL_compressed_texture_atc extension, but is unverified since no desktop hardware supports
1842         the format that I am aware of. Should enable mobile ports to expose the format, however.
1843
1844         * CMakeLists.txt:
1845         * DerivedSources.make:
1846         * DerivedSources.pri:
1847         * GNUmakefile.list.am:
1848         * Target.pri:
1849         * WebCore.gypi:
1850         * WebCore.xcodeproj/project.pbxproj:
1851         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1852         (WebCore::toJS):
1853         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1854         (WebCore::toV8Object):
1855         * html/canvas/WebGLCompressedTextureATC.cpp: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
1856         (WebCore):
1857         (WebCore::WebGLCompressedTextureATC::WebGLCompressedTextureATC):
1858         (WebCore::WebGLCompressedTextureATC::~WebGLCompressedTextureATC):
1859         (WebCore::WebGLCompressedTextureATC::getName):
1860         (WebCore::WebGLCompressedTextureATC::create):
1861         (WebCore::WebGLCompressedTextureATC::supported):
1862         * html/canvas/WebGLCompressedTextureATC.h: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
1863         (WebCore):
1864         (WebGLCompressedTextureATC):
1865         * html/canvas/WebGLCompressedTextureATC.idl: Copied from Source/WebCore/html/canvas/WebGLExtension.h.
1866         * html/canvas/WebGLExtension.h:
1867         * html/canvas/WebGLRenderingContext.cpp:
1868         (WebCore):
1869         (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
1870         (WebCore::WebGLRenderingContext::getExtension):
1871         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1872         (WebCore::WebGLRenderingContext::validateCompressedTexFuncData):
1873         * html/canvas/WebGLRenderingContext.h:
1874         (WebCore):
1875         (WebGLRenderingContext):
1876         * platform/graphics/Extensions3D.h:
1877
1878
1879 2013-03-04  Eugene Klyuchnikov  <eustas@chromium.org>
1880
1881         Web Inspector: Exceptions when WebInspector run in hosted mode.
1882         https://bugs.webkit.org/show_bug.cgi?id=111326
1883
1884         Reviewed by Pavel Feldman.
1885
1886         There is bug in commands code generation in InspectorBackend.js
1887         As a consequence all protocol enums have wrong names and cause
1888         exception when refererenced.
1889
1890         Currently protocol enums are referenced only from NetworkManager.
1891
1892         Test: inspector/inspector-backend-commands-generation.html
1893
1894         * inspector/front-end/InspectorBackend.js:
1895         (InspectorBackendClass.prototype.loadFromJSONIfNeeded):
1896         Use static method to generate code.
1897         (InspectorBackendClass._generateCommands):
1898         Extracted from loadFromJSONIfNeeded. Typo fixed.
1899
1900 2013-03-04  Chris Rogers  <crogers@google.com>
1901
1902         Add audio hardware support for multi-channel output by implementing AudioDestinationNode.maxChannelCount
1903         https://bugs.webkit.org/show_bug.cgi?id=111385
1904
1905         Reviewed by James Robinson.
1906         
1907         See specification details for .maxChannelCount:
1908         https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioDestinationNode
1909         
1910         * Modules/webaudio/AudioDestinationNode.h:
1911         (WebCore::AudioDestinationNode::maxChannelCount):
1912         * Modules/webaudio/AudioDestinationNode.idl:
1913         * Modules/webaudio/AudioNode.h:
1914         Implement .maxChannelCount attribute.
1915         
1916         (AudioNode):
1917         * Modules/webaudio/DefaultAudioDestinationNode.h:
1918         * Modules/webaudio/DefaultAudioDestinationNode.cpp:
1919         (WebCore::DefaultAudioDestinationNode::initialize):
1920         (WebCore::DefaultAudioDestinationNode::createDestination):
1921         (WebCore::DefaultAudioDestinationNode::enableInput):
1922         Call to createDestination() now takes no argument.
1923         Instead we maintain a member variable for the input device ID.
1924         (WebCore::DefaultAudioDestinationNode::maxChannelCount):
1925         (WebCore::DefaultAudioDestinationNode::setChannelCount):
1926         Check port-specific hardware support for maxChannelCount(),
1927         and allow setting the channel count based on what the hardware
1928         supports.
1929         
1930         * platform/audio/AudioDestination.h:
1931         (AudioDestination):
1932         * platform/audio/chromium/AudioDestinationChromium.cpp:
1933         (WebCore::AudioDestination::maxChannelCount):
1934         (WebCore::AudioDestinationChromium::render):
1935         Call into chromium WebKit API: audioHardwareOutputChannels().
1936
1937         * platform/audio/gstreamer/AudioDestinationGStreamer.cpp:
1938         (WebCore::AudioDestination::maxChannelCount):
1939         Add basic implementation for maxChannelCount() only supporting stereo output.
1940
1941         * platform/audio/mac/AudioDestinationMac.cpp:
1942         (WebCore::AudioDestination::maxChannelCount):
1943         Add basic implementation for maxChannelCount() only supporting stereo output.
1944         Later, the mac port can support more than this with some small improvements to AudioDestinationMac.
1945
1946 2013-03-04  Adam Barth  <abarth@webkit.org>
1947
1948         Background HTML parser can rewind the tokenizer after end-of-file
1949         https://bugs.webkit.org/show_bug.cgi?id=111365
1950
1951         Reviewed by Eric Seidel.
1952
1953         Prior to this patch, it was possible to call didFailSpeculation after
1954         processing the end-of-file token because checkForSpeculationFailure
1955         didn't zero out m_tokenizer in some control paths.
1956
1957         This patch renames checkForSpeculationFailure to validateSpeculations
1958         and ensures that it always takes ownership of the main thread's
1959         HTMLTokenizer.
1960
1961         This patch also adds a number of ASSERTs to make sure the parser state
1962         machine stays in the correct configuration (e.g., that we don't have a
1963         main thread tokenizer while we're supposed to be tokenizing on the
1964         background thread).
1965
1966         Test: fast/parser/document-write-fighting-eof.html
1967
1968         * html/parser/BackgroundHTMLInputStream.cpp:
1969         (WebCore::BackgroundHTMLInputStream::rewindTo):
1970         * html/parser/BackgroundHTMLParser.cpp:
1971         (WebCore::BackgroundHTMLParser::append):
1972         * html/parser/HTMLDocumentParser.cpp:
1973         (WebCore::HTMLDocumentParser::validateSpeculations):
1974         (WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
1975         (WebCore::HTMLDocumentParser::pumpPendingSpeculations):
1976         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
1977         * html/parser/HTMLDocumentParser.h:
1978         (HTMLDocumentParser):
1979
1980 2013-03-04  Tim 'mithro' Ansell  <mithro@mithis.com>
1981
1982         Make sure that clearOwnerNode also clears StyleResolver references (via didMutate).
1983         https://bugs.webkit.org/show_bug.cgi?id=109446
1984
1985         Reviewed by Eric Seidel.
1986
1987         Test: fast/css/stylesheet.innerHTML-calls-didmutate.html
1988
1989         * css/CSSStyleSheet.h:
1990
1991 2013-03-04  Kentaro Hara  <haraken@chromium.org>
1992
1993         Unreviewd build fix after r144701.
1994
1995         * platform/EventTracer.cpp:
1996         (WebCore::EventTracer::initialize):
1997
1998 2013-03-04  Min Qin  <qinmin@chromium.org>
1999
2000         Fix some style issues in RenderLayerCompositor
2001         https://bugs.webkit.org/show_bug.cgi?id=111369
2002
2003         Reviewed by Simon Fraser.
2004
2005         Just style fix, no test needed
2006
2007         * rendering/RenderLayerCompositor.cpp:
2008         (WebCore::RenderLayerCompositor::frameViewDidScroll):
2009         (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
2010
2011 2013-03-04  Terry Anderson  <tdanderson@chromium.org>
2012
2013         Revert changes to RenderLayer::scrollByRecursively() that were added for gesture-scrolling
2014         https://bugs.webkit.org/show_bug.cgi?id=111007
2015
2016         Reviewed by Simon Fraser.
2017
2018         Due to http://trac.webkit.org/changeset/144519 landing, the changes made to RenderLayer in
2019         http://trac.webkit.org/changeset/142057,
2020         http://trac.webkit.org/changeset/140177, and  
2021         http://trac.webkit.org/changeset/142195
2022         are no longer necessary (as RenderLayer::scrollByRecursively() is not used for
2023         gesture-scrolling) and should be reverted.
2024
2025         No change in behavior, so no new tests needed.
2026
2027         * rendering/RenderLayer.cpp:
2028         (WebCore::RenderLayer::scrollByRecursively):
2029         * rendering/RenderLayer.h:
2030
2031 2013-03-04  Kentaro Hara  <haraken@chromium.org>
2032
2033         Unreviewed build fix after r144701.
2034
2035         * platform/EventTracer.cpp:
2036         (WebCore::EventTracer::initialize):
2037
2038 2013-03-04  Christian Biesinger  <cbiesinger@chromium.org>
2039
2040         REGRESSION (r143643): Buttons containing floats render differently
2041         https://bugs.webkit.org/show_bug.cgi?id=110933
2042
2043         Reviewed by Ojan Vafai.
2044
2045         Test: fast/forms/button-with-float.html
2046
2047         * rendering/RenderBlock.cpp:
2048         (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
2049         Also include new flexbox as a renderer that needs to enclose
2050         overhanging floats. Flex boxes establish a block formatting context,
2051         so they need to contain floats:
2052         http://dev.w3.org/csswg/css3-flexbox/#flex-items
2053
2054 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2055
2056         Support WebSpeech - Speech Synthesis
2057         https://bugs.webkit.org/show_bug.cgi?id=106742
2058
2059         Build fix.
2060
2061         * Modules/speech/SpeechSynthesis.cpp:
2062
2063 2013-03-04  Rafael Weinstein  <rafaelw@chromium.org>
2064
2065         Unreviewed, rolling out r144595.
2066         http://trac.webkit.org/changeset/144595
2067         https://bugs.webkit.org/show_bug.cgi?id=90341
2068
2069         Causing multiple crashes in fast/dom/Element/* tests (hits
2070         assert in Attr.cp:215)
2071
2072         * dom/Element.cpp:
2073         (WebCore::Element::setAttributeNode):
2074
2075 2013-02-26  Kentaro Hara  <haraken@chromium.org>
2076
2077         [chromium] Implement TRACE_EVENT macros for sampling profiling
2078         https://bugs.webkit.org/show_bug.cgi?id=110932
2079
2080         Reviewed by Adam Barth.
2081
2082         We are implementing TRACE_EVENT macros for sampling profiling.
2083         It works in the following mechanism:
2084
2085         - Chromium defines global state variables for sampling profiling.
2086         (i.e. g_trace_state0, g_trace_state1, g_trace_state2 in trace_event.h)
2087
2088         - WebKit gets the addresses of the global state variables at the
2089         initialization step. (i.e. EventTracer::initialize())
2090
2091         - WebKit updates the global states by using TRACE_EVENT_SAMPLING_STATE()
2092         macros every time WebKit changes its state. (e.g. DOM attribute
2093         getters/setters/methods)
2094
2095         - A sampling thread running in Chrome reads the global states
2096         periodically and visualizes the profiling results into about://tracing.
2097
2098         This patch implements (1) a WebKit API to get the addresses of
2099         the global states and (2) the TRACE_EVENT_SAMPLING_STATE() macro.
2100
2101         No tests. The sampling profiler is not enabled in Chrome by default.
2102         I manually inserted TRACE_EVENT_SAMPLING_STATE() macros and
2103         confirmed that the sampling profiling is working as expected.
2104
2105         * platform/EventTracer.cpp:
2106         (WebCore::EventTracer::initialize):
2107         (WebCore::EventTracer::getTraceCategoryEnabledFlag):
2108         (WebCore):
2109         * platform/EventTracer.h:
2110         (WebCore):
2111         (EventTracer):
2112         * platform/chromium/EventTracerChromium.cpp:
2113         (WebCore):
2114         (WebCore::EventTracer::initialize):
2115         * platform/chromium/TraceEvent.h:
2116
2117 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2118
2119         Support WebSpeech - Speech Synthesis
2120         https://bugs.webkit.org/show_bug.cgi?id=106742
2121
2122         Reviewed by Simon Fraser.
2123
2124         Enable speech synthesis for the Mac.
2125
2126         * Configurations/FeatureDefines.xcconfig:
2127
2128 2013-03-04  Ruslan Abdikeev  <aruslan@chromium.org>
2129
2130         <link rel="apple-touch-icon"> tag is not honored on CNN.com, workflowy.com etc
2131         https://bugs.webkit.org/show_bug.cgi?id=109061
2132
2133         Reviewed by Adam Barth.
2134
2135         Test: fast/dom/icon-url-list-apple-touch.html
2136
2137         Added iconTypes parameter to Document::iconURLs().
2138         Added Document::shortcutIconURLs() with original semantics of iconURLs().
2139         Fixed IconController.cpp to provide iconTypesMask to iconURLs().
2140         Renamed iconTypes to iconTypesMask to make the meaning clearer.
2141
2142         * WebCore.exp.in:
2143         * dom/Document.cpp:
2144         (WebCore::Document::shortcutIconURLs):
2145         (WebCore):
2146         (WebCore::Document::iconURLs):
2147         * dom/Document.h:
2148         (Document):
2149         * loader/icon/IconController.cpp:
2150         (WebCore::IconController::iconURL):
2151         (WebCore::IconController::urlsForTypes):
2152         * testing/Internals.cpp:
2153         (WebCore::Internals::iconURLs):
2154         (WebCore::Internals::shortcutIconURLs):
2155         (WebCore):
2156         (WebCore::Internals::allIconURLs):
2157         * testing/Internals.h:
2158         * testing/Internals.idl:
2159
2160 2013-02-27  Jeffrey Pfau  <jpfau@apple.com>
2161
2162         Cache partitioning does not affect iframe MainResources
2163         https://bugs.webkit.org/show_bug.cgi?id=111022
2164
2165         Reviewed by David Kilzer.
2166
2167         Set the partition of a main resource request if in a subframe.
2168
2169         Test: http/tests/cache/partitioned-cache-iframe.html
2170
2171         * loader/FrameLoader.cpp:
2172         (WebCore::FrameLoader::loadURL):
2173
2174 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2175
2176         AX: user agent shadow roots for plugins should be 'accessible'
2177         https://bugs.webkit.org/show_bug.cgi?id=111339
2178
2179         Reviewed by Tim Horton.
2180
2181         If a plugin element uses a user agent shadow element, we should make that shadow element
2182         into a button with the title and subtitle put together, and use that as the label. This 
2183         will probably be the best accessibility experience.
2184
2185         * html/HTMLPlugInImageElement.cpp:
2186         (WebCore::HTMLPlugInImageElement::didAddUserAgentShadowRoot):
2187
2188 2013-03-04  Alok Priyadarshi  <alokp@chromium.org>
2189
2190         [chromium] Form controls on composited layers are not painted properly
2191         https://bugs.webkit.org/show_bug.cgi?id=111366
2192
2193         Reviewed by James Robinson.
2194
2195         Set PlatformContextSkia::m_drawingToImageBuffer which is used as a hint to properly blend GDI-painted bitmap.
2196
2197         * platform/graphics/chromium/OpaqueRectTrackingContentLayerDelegate.cpp:
2198         (WebCore::OpaqueRectTrackingContentLayerDelegate::paintContents):
2199
2200 2013-03-04  Simon Fraser  <simon.fraser@apple.com>
2201
2202         Give ViewportConstraints classes copy constructors
2203         https://bugs.webkit.org/show_bug.cgi?id=111367
2204
2205         Reviewed by Beth Dakin.
2206         
2207         Downstream code requires that ViewportConstraints objects have
2208         copy constructors, so add them.
2209         
2210         Also clean up some redundant initialization of stack objects
2211         in RenderLayerCompositor.
2212
2213         No behavior change.
2214
2215         * page/scrolling/ScrollingConstraints.h:
2216         (WebCore::ViewportConstraints::ViewportConstraints):
2217         (ViewportConstraints):
2218         (WebCore::FixedPositionViewportConstraints::FixedPositionViewportConstraints):
2219         (FixedPositionViewportConstraints):
2220         (WebCore::StickyPositionViewportConstraints::StickyPositionViewportConstraints):
2221         (StickyPositionViewportConstraints):
2222         * rendering/RenderLayerCompositor.cpp:
2223         (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
2224         (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):
2225
2226 2013-03-04  Roger Fong  <roger_fong@apple.com>
2227
2228         Unreviewed. AppleWin build fix.
2229
2230         * html/parser/XSSAuditor.cpp:
2231         (WebCore::isSemicolonSeparatedAttribute):
2232
2233 2013-03-04  Andreas Kling  <akling@apple.com>
2234
2235         CSSParser: Avoid temporary String when parsing hex colors.
2236         <http://webkit.org/b/111341>
2237
2238         Reviewed by Anders Carlsson.
2239
2240         Templatize CSSParser::fastParseColor() so we can pass a CSSParserString as the color name.
2241         This avoids creating a temporary WTF::String from the parser string.
2242
2243         * css/CSSParser.cpp:
2244         (WebCore::CSSParser::fastParseColor):
2245         * css/CSSParser.h:
2246         * css/CSSParserValues.h:
2247         (CSSParserString):
2248
2249 2013-03-04  Julien Chaffraix  <jchaffraix@webkit.org>
2250
2251         [CSS Grid Layout] Add parsing for grid-{start|before}
2252         https://bugs.webkit.org/show_bug.cgi?id=110988
2253
2254         Reviewed by Tony Chang.
2255
2256         Test: fast/css-grid-layout/grid-item-start-before-get-set.html
2257
2258         Refactored how we store internally grid-{row|column} to be based on grid-{before|start}.
2259         This is required as grid-{row|column} are shorthands for resp. grid-{before|after} and grid-{start|end}
2260         in the specification and will also be in the code. That means a lot of methods were renamed to be more
2261         aligned with the new design.
2262
2263         * css/CSSComputedStyleDeclaration.cpp:
2264         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2265         * css/CSSParser.cpp:
2266         (WebCore::CSSParser::parseValue):
2267         * css/CSSProperty.cpp:
2268         (WebCore::CSSProperty::isInheritedProperty):
2269         * css/CSSPropertyNames.in:
2270         * css/StyleResolver.cpp:
2271         (WebCore::StyleResolver::applyProperty):
2272         Added the code to parse, apply and get back the new properties. Also
2273         some renaming after the internal naming change below.
2274
2275         * rendering/RenderGrid.cpp:
2276         (WebCore::RenderGrid::maximumIndexInDirection):
2277         (WebCore::RenderGrid::placeItemsOnGrid):
2278         (WebCore::RenderGrid::autoPlacementMajorAxisPositionForChild):
2279         (WebCore::RenderGrid::autoPlacementMinorAxisPositionForChild):
2280         * rendering/style/RenderStyle.h:
2281         * rendering/style/StyleGridItemData.cpp:
2282         (WebCore::StyleGridItemData::StyleGridItemData):
2283         * rendering/style/StyleGridItemData.h:
2284         (WebCore::StyleGridItemData::operator==):
2285         Updated the naming now that we manipulate grid-{before|start} instead of grid-{row|column}.
2286
2287 2013-03-04  Chris Fleizach  <cfleizach@apple.com>
2288
2289         WebSpeech: change voiceURI to voice
2290         https://bugs.webkit.org/show_bug.cgi?id=110773
2291
2292         Reviewed by Tim Horton.
2293
2294         Change the voiceURI property to a voice property that takes a SpeechSynthesisVoice.
2295         This was recently added to the errata of the WebSpeech spec.
2296
2297         Test: platform/mac/fast/speechsynthesis/speech-synthesis-utterance-uses-voice.html
2298
2299         * Modules/speech/SpeechSynthesisUtterance.cpp:
2300         (WebCore):
2301         (WebCore::SpeechSynthesisUtterance::voice):
2302         (WebCore::SpeechSynthesisUtterance::setVoice):
2303         * Modules/speech/SpeechSynthesisUtterance.h:
2304         (SpeechSynthesisUtterance):
2305         * Modules/speech/SpeechSynthesisUtterance.idl:
2306         * Modules/speech/SpeechSynthesisVoice.h:
2307         (WebCore::SpeechSynthesisVoice::platformVoice):
2308         (SpeechSynthesisVoice):
2309         * platform/PlatformSpeechSynthesisUtterance.cpp:
2310         (WebCore::PlatformSpeechSynthesisUtterance::PlatformSpeechSynthesisUtterance):
2311         * platform/PlatformSpeechSynthesisUtterance.h:
2312         (WebCore::PlatformSpeechSynthesisUtterance::voice):
2313         (WebCore::PlatformSpeechSynthesisUtterance::setVoice):
2314         (PlatformSpeechSynthesisUtterance):
2315         * platform/mac/PlatformSpeechSynthesizerMac.mm:
2316         (-[WebSpeechSynthesisWrapper speakUtterance:WebCore::]):
2317
2318 2013-03-04  Victor Costan <costan@gmail.com>
2319
2320         Filename passed to FormData.append() takes precedence over filename in
2321         File.
2322         https://bugs.webkit.org/show_bug.cgi?id=111255
2323
2324         Reviewed by Alexey Proskuryakov.
2325
2326         Test: http/tests/local/formdata/send-form-data-with-filename.html
2327
2328         * platform/network/FormData.cpp:
2329         (WebCore::FormData::appendKeyValuePairItems): changed to implement the
2330         behavior in the XMLHttpRequest W3C spec.
2331
2332 2013-03-04  Alexis Hetu  <sugoi@chromium.org>
2333
2334         Canvas and DOM go out of sync
2335         https://bugs.webkit.org/show_bug.cgi?id=107701
2336
2337         Reviewed by Simon Fraser.
2338
2339         Test: fast/canvas/canvas-overflow-hidden-animation.html
2340
2341         Added an update of the current compositor from the layer's stacking
2342         container when the layer itself isn't a stacking container.
2343
2344         * rendering/RenderLayerBacking.cpp:
2345         (WebCore::RenderLayerBacking::updateAfterLayout):
2346         Added an update of the stacking container of the owning layer of the
2347         layer backing when the owning layer isn't a stacking container itself.
2348
2349 2013-03-04  Alexey Proskuryakov  <ap@apple.com>
2350
2351         Small BlobResourceHandle cleanup
2352         https://bugs.webkit.org/show_bug.cgi?id=111352
2353
2354         Reviewed by Sam Weinig.
2355
2356         1. Don't use PassRefPtr<BlobStorageData> when ownership is not being passed.
2357         2. Added OVERRIDE to some functions.
2358         3. Added const to ResourceHandle::firstRequest().
2359
2360         * platform/network/BlobRegistryImpl.cpp:
2361         (WebCore::loadResourceSynchronously):
2362         (WebCore::BlobRegistryImpl::createResourceHandle):
2363         (WebCore::BlobRegistryImpl::getBlobDataFromURL):
2364         * platform/network/BlobRegistryImpl.h:
2365         (BlobRegistryImpl):
2366         * platform/network/BlobResourceHandle.cpp:
2367         (WebCore::BlobResourceHandle::createAsync):
2368         (WebCore::BlobResourceHandle::loadResourceSynchronously):
2369         * platform/network/BlobResourceHandle.h:
2370         (BlobResourceHandle):
2371         * platform/network/FormData.cpp:
2372         (WebCore::appendBlobResolved):
2373         * platform/network/ResourceHandle.cpp:
2374         (WebCore::ResourceHandle::firstRequest):
2375         * platform/network/ResourceHandle.h:
2376         (ResourceHandle):
2377
2378 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
2379
2380         Web Inspector: Introduce WebInspector.EventTarget interface for interfaces that dispatch events.
2381         https://bugs.webkit.org/show_bug.cgi?id=111320
2382
2383         Reviewed by Pavel Feldman.
2384
2385         * inspector/front-end/Object.js:
2386         (WebInspector.EventTarget):
2387         (WebInspector.EventTarget.prototype.addEventListener):
2388         (WebInspector.EventTarget.prototype.removeEventListener):
2389         (WebInspector.EventTarget.prototype.removeAllListeners):
2390         (WebInspector.EventTarget.prototype.hasEventListeners):
2391         (WebInspector.EventTarget.prototype.dispatchEventToListeners):
2392         * inspector/front-end/ResourceScriptMapping.js:
2393         * inspector/front-end/UISourceCode.js:
2394         * inspector/front-end/Workspace.js:
2395         (WebInspector.ProjectDelegate.prototype.searchInFileContent):
2396
2397 2013-03-04  Tom Sepez  <tsepez@chromium.org>
2398
2399         XSSAuditor bypass with --> comment syntax.
2400         https://bugs.webkit.org/show_bug.cgi?id=111349
2401
2402         Reviewed by Adam Barth.
2403
2404         Test: http/tests/security/xssAuditor/open-iframe-src-03.html
2405
2406         * html/parser/XSSAuditor.cpp:
2407         (WebCore::isTerminatingCharacter):
2408         Adds ">" to the list of terminating characters, so that comments of
2409         the form --> end the snippet we seek to match.
2410
2411 2013-03-04  Vsevolod Vlasov  <vsevik@chromium.org>
2412
2413         Web Inspector: Modal dialogs sometimes lose focus.
2414         https://bugs.webkit.org/show_bug.cgi?id=111317
2415
2416         Reviewed by Pavel Feldman.
2417
2418         setCurrentFocusElement doesn't give focus to an element anymore
2419         if modal glass pane is shown and element is not inside it.
2420
2421         * inspector/front-end/Dialog.js:
2422         (WebInspector.Dialog):
2423         (WebInspector.Dialog.prototype._hide):
2424         * inspector/front-end/InspectorView.js:
2425         (WebInspector.InspectorView.prototype.defaultFocusedElement):
2426         * inspector/front-end/ScriptsPanel.js:
2427         (WebInspector.ScriptsPanel.prototype.defaultFocusedElement):
2428         * inspector/front-end/UIUtils.js:
2429         (WebInspector.GlassPane):
2430         (WebInspector.GlassPane.prototype.dispose):
2431         (WebInspector.setCurrentFocusElement):
2432         * inspector/front-end/dialog.css:
2433
2434 2013-03-04  Roger Fong  <roger_fong@apple.com>
2435
2436         Unreviewed. AppleWin build fix.
2437
2438         * WebCore.vcxproj/WebCore.vcxproj:
2439
2440 2013-03-04  Dan Carney  <dcarney@google.com>
2441
2442         [v8] add isolate parameter to heap statistics calls
2443         https://bugs.webkit.org/show_bug.cgi?id=111308
2444
2445         Reviewed by Jochen Eisinger.
2446
2447         No new tests.
2448
2449         * bindings/v8/ScriptGCEvent.cpp:
2450         (WebCore::ScriptGCEvent::getHeapSize):
2451         (WebCore::ScriptGCEvent::getUsedHeapSize):
2452         * bindings/v8/V8AdaptorFunction.cpp:
2453         (WebCore::V8AdaptorFunction::getTemplate):
2454         * bindings/v8/V8GCController.cpp:
2455         (WebCore::V8GCController::checkMemoryUsage):
2456
2457 2013-03-04  Jochen Eisinger  <jochen@chromium.org>
2458
2459         [chromium] remove deprecated hyphenation methods from Platform
2460         https://bugs.webkit.org/show_bug.cgi?id=111101
2461
2462         Reviewed by Adam Barth.
2463
2464         * platform/text/chromium/Hyphenation.cpp:
2465         (WebCore::canHyphenate):
2466         (WebCore::lastHyphenLocation):
2467
2468 2013-03-04  Benjamin Poulain  <benjamin@webkit.org>
2469
2470         Use initialization from literal for MediaFeatureNames
2471         https://bugs.webkit.org/show_bug.cgi?id=111283
2472
2473         Reviewed by Andreas Kling.
2474
2475         * css/MediaFeatureNames.cpp:
2476         (WebCore::MediaFeatureNames::init):
2477         Initialization from literal is faster and use less memory. The names are
2478         defined statically in MediaFeatureNames.h.
2479
2480         Also use the NotNull placement new to avoid a branch on silly allocators.
2481
2482 2013-03-04  Joshua Bell  <jsbell@chromium.org>
2483
2484         [V8] Unreviewed. Rebaselined run-bindings-tests following r144617
2485
2486         * bindings/scripts/test/V8/V8Float64Array.cpp:
2487         (WebCore::ConfigureV8Float64ArrayTemplate):
2488         (WebCore::V8Float64Array::GetTemplate):
2489         * bindings/scripts/test/V8/V8Float64Array.h:
2490         (V8Float64Array):
2491         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
2492         (WebCore::TestActiveDOMObjectV8Internal::postMessageAttrGetter):
2493         (WebCore::TestActiveDOMObjectV8Internal::TestActiveDOMObjectDomainSafeFunctionSetter):
2494         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
2495         (WebCore::V8TestActiveDOMObject::GetTemplate):
2496         * bindings/scripts/test/V8/V8TestActiveDOMObject.h:
2497         (V8TestActiveDOMObject):
2498         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
2499         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
2500         (WebCore::V8TestCustomNamedGetter::GetTemplate):
2501         * bindings/scripts/test/V8/V8TestCustomNamedGetter.h:
2502         (V8TestCustomNamedGetter):
2503         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
2504         (WebCore::ConfigureV8TestEventConstructorTemplate):
2505         (WebCore::V8TestEventConstructor::GetTemplate):
2506         * bindings/scripts/test/V8/V8TestEventConstructor.h:
2507         (V8TestEventConstructor):
2508         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
2509         (WebCore::ConfigureV8TestEventTargetTemplate):
2510         (WebCore::V8TestEventTarget::GetTemplate):
2511         * bindings/scripts/test/V8/V8TestEventTarget.h:
2512         (V8TestEventTarget):
2513         * bindings/scripts/test/V8/V8TestException.cpp:
2514         (WebCore::ConfigureV8TestExceptionTemplate):
2515         (WebCore::V8TestException::GetTemplate):
2516         * bindings/scripts/test/V8/V8TestException.h:
2517         (V8TestException):
2518         * bindings/scripts/test/V8/V8TestInterface.cpp:
2519         (WebCore::ConfigureV8TestInterfaceTemplate):
2520         (WebCore::V8TestInterface::GetTemplate):
2521         * bindings/scripts/test/V8/V8TestInterface.h:
2522         (V8TestInterface):
2523         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
2524         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
2525         (WebCore::V8TestMediaQueryListListener::GetTemplate):
2526         * bindings/scripts/test/V8/V8TestMediaQueryListListener.h:
2527         (V8TestMediaQueryListListener):
2528         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
2529         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
2530         (WebCore::ConfigureV8TestNamedConstructorTemplate):
2531         (WebCore::V8TestNamedConstructor::GetTemplate):
2532         * bindings/scripts/test/V8/V8TestNamedConstructor.h:
2533         (V8TestNamedConstructorConstructor):
2534         (V8TestNamedConstructor):
2535         * bindings/scripts/test/V8/V8TestNode.cpp:
2536         (WebCore::ConfigureV8TestNodeTemplate):
2537         (WebCore::V8TestNode::GetTemplate):
2538         * bindings/scripts/test/V8/V8TestNode.h:
2539         (V8TestNode):
2540         * bindings/scripts/test/V8/V8TestObj.cpp:
2541         (WebCore::ConfigureV8TestObjTemplate):
2542         (WebCore::V8TestObj::GetTemplate):
2543         (WebCore::V8TestObj::installPerContextPrototypeProperties):
2544         * bindings/scripts/test/V8/V8TestObj.h:
2545         (V8TestObj):
2546         * bindings/scripts/test/V8/V8TestOverloadedConstructors.cpp:
2547         (WebCore::ConfigureV8TestOverloadedConstructorsTemplate):
2548         (WebCore::V8TestOverloadedConstructors::GetTemplate):
2549         * bindings/scripts/test/V8/V8TestOverloadedConstructors.h:
2550         (V8TestOverloadedConstructors):
2551         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
2552         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
2553         (WebCore::V8TestSerializedScriptValueInterface::GetTemplate):
2554         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:
2555         (V8TestSerializedScriptValueInterface):
2556         * bindings/scripts/test/V8/V8TestTypedefs.cpp:
2557         (WebCore::ConfigureV8TestTypedefsTemplate):
2558         (WebCore::V8TestTypedefs::GetTemplate):
2559         * bindings/scripts/test/V8/V8TestTypedefs.h:
2560         (V8TestTypedefs):
2561
2562 2013-03-04  Tony Chang  <tony@chromium.org>
2563
2564         Unreviewed, rolling out r144562.
2565         http://trac.webkit.org/changeset/144562
2566         https://bugs.webkit.org/show_bug.cgi?id=85642
2567
2568         Caused KeyPadInsert faluires in webkit_unittests
2569
2570         * platform/chromium/KeyCodeConversionGtk.cpp:
2571         (WebCore::windowsKeyCodeForKeyEvent):
2572
2573 2013-03-04  Uday Kiran  <udaykiran@motorola.com>
2574
2575         getComputedStyle not implemented for -webkit-columns shorthand
2576         https://bugs.webkit.org/show_bug.cgi?id=111236
2577
2578         Reviewed by Alexis Menard.
2579
2580         Implement getComputedStyle for -webkit-columns shorthand.
2581
2582         Test: fast/css/getComputedStyle/getComputedStyle-webkit-columns-shorthand.html
2583
2584         * css/CSSComputedStyleDeclaration.cpp:
2585         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2586
2587 2013-03-04  Levi Weintraub  <leviw@chromium.org>
2588
2589         Add support for 8 bit TextRuns on Chromium Linux & Mac
2590         https://bugs.webkit.org/show_bug.cgi?id=99393
2591
2592         Reviewed by Eric Seidel.
2593
2594         Adding support for 8 bit TextRuns for Mac and Linux Chromium. To accomplish this,
2595         8 bit text runs are upconverted to 16 bit in the complex text path during string
2596         normalization, as HarfBuzz operates on UChars.
2597
2598         Windows has platfom assumptions that TextRuns are 16 bit that need to be addressed
2599         before enabling this optimization.
2600
2601         No new tests. No change in behavior.
2602
2603         (WebCore::HarfBuzzShaperBase::setNormalizedBuffer):
2604         * platform/graphics/harfbuzz/HarfBuzzShaperBase.h:
2605         * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
2606         (WebCore::normalizeCharacters):
2607         (WebCore::HarfBuzzShaper::HarfBuzzShaper):
2608
2609 2013-03-04  Alexis Menard  <alexis@webkit.org>
2610
2611         transition-property property and transition shorthand property doesn't accept "all, all".
2612         https://bugs.webkit.org/show_bug.cgi?id=111201
2613
2614         Reviewed by Simon Fraser.
2615
2616         Relax the parsing of transition-property to allow all, all as a value.
2617         It is not very useful per say but it is possible by the spec and we
2618         align with Firefox, IE and Opera.
2619
2620         Test: LayoutTests/transitions/transitions-parsing.html
2621
2622         * css/CSSParser.cpp:
2623         (WebCore::CSSParser::parseAnimationProperty):
2624
2625 2013-03-04  Min Qin  <qinmin@chromium.org>
2626
2627         Don't apply page scale to clipRect if applyPageScaleFactorInCompositor is set to true
2628         https://bugs.webkit.org/show_bug.cgi?id=111229
2629
2630         Reviewed by Simon Fraser.
2631
2632         If applyPageScaleFactorInCompositor is set to true, webcore should use css coordinates.
2633         As a result, we shouldn't apply page scale to clipRect in RenderLayerCompositor.
2634         Layout tests set the flag to false, so we don't have anything to test against.
2635
2636         * rendering/RenderLayerCompositor.cpp:
2637         (WebCore::RenderLayerCompositor::addToOverlapMap):
2638
2639 2013-03-04  Ian Vollick  <vollick@chromium.org>
2640
2641         ASSERTION FAILED: m_clipRectsCache->m_respectingOverflowClip[clipRectsType] == (clipRectsContext.respectOverflowClip == RespectOverflowClip) in RenderLayer.
2642         https://bugs.webkit.org/show_bug.cgi?id=108257
2643
2644         Reviewed by David Hyatt.
2645
2646         With composited scrolling we paint both with and without respecting
2647         overflow clip. To prevent collisions in the clip cache, and to prevent
2648         throwing away cached clips unnecessarily, we keep two copies of the
2649         clip cache -- one for when overflow clip is respected, and one for
2650         when it isn't.
2651
2652         No new tests. Covered by existing tests (in debug):
2653           compositing/overflow/automatically-opt-into-composited-scrolling.html
2654           compositing/overflow/composited-scrolling-creates-a-stacking-container.html
2655
2656         * rendering/RenderLayer.cpp:
2657         (WebCore::RenderLayer::updateClipRects):
2658           No longer asserts that our 'respect overflow clip' status is
2659           consistent. It also gets and sets the clip cache using the clip rect
2660           context rather than just the clip rect type.
2661         (WebCore::RenderLayer::calculateClipRects):
2662         (WebCore::RenderLayer::parentClipRects):
2663         (WebCore::RenderLayer::clearClipRects):
2664         (WebCore::ClipRectsCache::ClipRectsCache):
2665         (WebCore::ClipRectsCache::getClipRects):
2666         (WebCore::ClipRectsCache::setClipRects):
2667         (WebCore::ClipRectsCache::getIndex):
2668           Get and set the cached clip rects using the context rather than
2669           type.
2670         (WebCore::RenderLayer::clipRects):
2671           We now cache twice as many clip rects.
2672         * rendering/RenderLayerBacking.cpp:
2673         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2674           ShouldRespectOverflowClip was moved out of RenderLayer.
2675
2676         * rendering/RenderLayer.cpp:
2677         (WebCore::RenderLayer::updateClipRects):
2678         (WebCore::RenderLayer::calculateClipRects):
2679         (WebCore::RenderLayer::parentClipRects):
2680         (WebCore::RenderLayer::clearClipRects):
2681         * rendering/RenderLayer.h:
2682         (WebCore::ClipRectsCache::ClipRectsCache):
2683         (WebCore::ClipRectsCache::getClipRects):
2684         (WebCore::ClipRectsCache::setClipRects):
2685         (ClipRectsCache):
2686         (WebCore::ClipRectsCache::getIndex):
2687         (WebCore::RenderLayer::clipRects):
2688         * rendering/RenderLayerBacking.cpp:
2689         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
2690
2691 2013-03-04  Aaron Colwell  <acolwell@chromium.org>
2692
2693         Remove unused return value from SourceBufferPrivate::abort() and WebSourceBuffer::abort().
2694         https://bugs.webkit.org/show_bug.cgi?id=111195
2695
2696         Reviewed by Adam Barth.
2697
2698         No new tests. No user visible behavior changed.
2699
2700         * platform/graphics/SourceBufferPrivate.h:
2701         (SourceBufferPrivate):
2702
2703 2013-03-04  David Hyatt  <hyatt@apple.com>
2704
2705         [New Multicolumn] Eliminate the unique multicolumn flow thread style creation function
2706         https://bugs.webkit.org/show_bug.cgi?id=111338
2707
2708         Reviewed by Allan Jensen.
2709
2710         There is nothing special about a multi-column flow thread style now, so we can just
2711         use the existing anonymous style creation function.
2712
2713         * rendering/RenderMultiColumnBlock.cpp:
2714         (WebCore):
2715         (WebCore::RenderMultiColumnBlock::addChild):
2716
2717 2013-03-04  Mario Sanchez Prada  <mario.prada@samsung.com>
2718
2719         [GTK] WebCore::returnString is unsafe and should be removed!
2720         https://bugs.webkit.org/show_bug.cgi?id=110423
2721
2722         Reviewed by Martin Robinson.
2723
2724         Remove returnString() and replace it in callers with a new
2725         function that will cache and return the values of string
2726         properties for ATK interfaces in the private section of the
2727         wrapper AtkObject WebKitAccessible.
2728
2729         * accessibility/atk/WebKitAccessibleUtil.cpp: Remove returnString().
2730         * accessibility/atk/WebKitAccessibleUtil.h: Ditto.
2731
2732         * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
2733         (_WebKitAccessiblePrivate): New private structure to store cached
2734         values of string property for the different ATK interfaces.
2735         (cacheAndReturnAtkProperty): New helper function to make sure the
2736         returned const gchar* value is previously cached in the private
2737         section of the wrapper AtkObject.
2738         (webkitAccessibleGetName): Use the new helper function.
2739         (webkitAccessibleGetDescription): Ditto.
2740         (webkitAccessibleInit): Initialize pointer to private structure.
2741         (webkitAccessibleFinalize): Remove unneeded code.
2742         (webkitAccessibleClassInit): Add private struct to class type/
2743         * accessibility/atk/WebKitAccessibleWrapperAtk.h:
2744         (_WebKitAccessible): New member pointing to the private structure,
2745         made the new helper function cacheAndReturnAtkProperty() available
2746         to external callers (implementation files for ATK interfaces).
2747         (AtkCachedProperty): New enum to allow reusing code when calling
2748         cacheAndReturnAtkProperty() to cache and return different properties.
2749
2750         * accessibility/atk/WebKitAccessibleInterfaceAction.cpp:
2751         (webkitAccessibleActionGetKeybinding): Replace calls to returnString()
2752         with calls to the new helper function cacheAndReturnAtkProperty().
2753         (webkitAccessibleActionGetName): Ditto.
2754         * accessibility/atk/WebKitAccessibleInterfaceDocument.cpp:
2755         (documentAttributeValue): Ditto.
2756         (webkitAccessibleDocumentGetLocale): Ditto.
2757         * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
2758         (webkitAccessibleImageGetImageDescription): Ditto.
2759
2760         Remove returnString() from WebKitAccessibleHyperlink (which is not
2761         an AtkObject, but a GObject) as well, replacing it in callers with
2762         simple code that will cache and return the required values in the
2763         private section of these kind of objects.
2764
2765         * accessibility/atk/WebKitAccessibleHyperlink.cpp:
2766         (_WebKitAccessibleHyperlinkPrivate): Added two new fields to cache
2767         string values for the key binding and name properties from the
2768         AtkAction interface, which is implemented by AtkHyperlink.
2769         (webkitAccessibleHyperlinkActionGetKeybinding): Cache the string
2770         value for the key binding before returning a const gchar* pointer.
2771         (webkitAccessibleHyperlinkActionGetName): Ditto.
2772         (webkitAccessibleHyperlinkGetURI): Do not cache the URI here, as
2773         this function returns a gchar* that will be owned by the caller.
2774
2775 2013-03-04  peavo@outlook.com  <peavo@outlook.com>
2776
2777         [Curl] Compile fix after r144216
2778         https://bugs.webkit.org/show_bug.cgi?id=111305
2779
2780         Reviewed by Brent Fulgham.
2781
2782         * platform/network/curl/ResourceRequest.h:
2783         (WebCore::ResourceRequest::cfURLRequest): Added new parameter.
2784
2785 2013-03-03  David Hyatt  <hyatt@apple.com>
2786
2787         [New Multicolumn] Make sure region styling works for columns inside regions.
2788         https://bugs.webkit.org/show_bug.cgi?id=111276
2789
2790         Reviewed by Sam Weinig.
2791
2792         Test: fast/regions/region-styling-in-columns.html
2793
2794         * rendering/RenderFlowThread.cpp:
2795         (WebCore::CurrentRenderFlowThreadMaintainer::CurrentRenderFlowThreadMaintainer):
2796         (WebCore::CurrentRenderFlowThreadMaintainer::~CurrentRenderFlowThreadMaintainer):
2797         * rendering/RenderFlowThread.h:
2798         (CurrentRenderFlowThreadMaintainer):
2799         Fix the CurrentRenderFlowThreadMaintainer so that it saves off the old render flow thread
2800         and restores it when done. This effectively makes flow thread layout a push/pop stack,
2801         since with in-flow threads, this is allowed. We assert that a nested flow thread is
2802         in-flow to preserve the invariant that you can't nest CSS Regions flow thread.
2803
2804         * rendering/RenderRegion.cpp:
2805         (WebCore::RenderRegion::computeChildrenStyleInRegion):
2806         Add isInFlowRenderFlowThread() to the anonymous check to make sure a style gets made
2807         for the nested flow thread.
2808
2809 2013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
2810
2811         Web Inspector: WebInspector.AceTextEditor throws a warning
2812         https://bugs.webkit.org/show_bug.cgi?id=111315
2813
2814         Reviewed by Pavel Feldman.
2815
2816         Add WebInspector.AceTextEditor to externs.js to suppress closure
2817         compilation warning.
2818
2819         No new tests: no change in behaviour.
2820
2821         * inspector/front-end/externs.js:
2822         (WebInspector.AceTextEditor):
2823
2824 2013-03-04  Antoine Quint  <graouts@apple.com>
2825
2826         Fix debug build under certain configurations, cause was
2827         http://trac.webkit.org/changeset/144624.
2828
2829         * inspector/InspectorController.cpp:
2830         (WebCore::InspectorController::InspectorController):
2831         * inspector/InspectorLayerTreeAgent.cpp:
2832         (WebCore::InspectorLayerTreeAgent::InspectorLayerTreeAgent):
2833         * inspector/InspectorLayerTreeAgent.h:
2834         (WebCore):
2835         (WebCore::InspectorLayerTreeAgent::create):
2836         (InspectorLayerTreeAgent):
2837
2838 2013-03-04  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2839
2840         [Qt] REGRESSION(r141240) Crash in PluginPackage::fetchInfo
2841         https://bugs.webkit.org/show_bug.cgi?id=111322
2842
2843         Reviewed by Simon Hausmann.
2844
2845         Do not try to load blacklisted plugins.
2846
2847         * plugins/qt/PluginPackageQt.cpp:
2848         (WebCore::PluginPackage::fetchInfo):
2849
2850 2013-03-04  Alexis Menard  <alexis@webkit.org>
2851
2852         transition properties can't be found in CSSStyleDeclaration
2853         https://bugs.webkit.org/show_bug.cgi?id=110011
2854
2855         Reviewed by Antti Koivisto.
2856
2857         The previous approach for handling the unprefixing was to alias the
2858         unprefixed properties with the prefixed ones in CSSPropertyNames.in.
2859         Unfortunately it will alias the properties in the parsing code which will just
2860         identically parse the two versions. This means that when we populate StylePropertySet
2861         we do not have information whether we just parsed the prefixed, the
2862         unprefixed properties or we parsed both. The patch takes another
2863         approach by creating two distinct sets of properties (unprefixed and
2864         prefixed). Each properties have their own id and we now handle them in
2865         the parsing code as disctints properties and add both versions to the
2866         declared style. In order to avoid properties getting out of sync, 
2867         this patch adds few facilities to StylePropertySet to update the
2868         prefixed and the unprefixed entries. Finally the style resolution
2869         happens only for the prefixed version (to limit the size of this patch)
2870         and the unprefixed versions are not resolved. This is to avoid creating
2871         the animation objects twice for the resolved style.
2872
2873         Test : transitions/transitions-parsing.html
2874
2875         * css/CSSComputedStyleDeclaration.cpp:
2876         (WebCore):
2877         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
2878         * css/CSSParser.cpp:
2879         (WebCore::CSSParser::addPropertyWithPrefixingVariant): Always add the
2880         prefixed and the unprefixed property even if only one is specified.
2881         (WebCore):
2882         (WebCore::CSSParser::parseValue):
2883         (WebCore::CSSParser::parseTransitionShorthand): Add both prefixed and
2884         unprefixed longhands to the declarated style.
2885         (WebCore::CSSParser::parseAnimationProperty):
2886         * css/CSSParser.h:
2887         (CSSParser):
2888         * css/CSSProperty.cpp:
2889         (WebCore::CSSProperty::isInheritedProperty):
2890         * css/CSSProperty.h:
2891         (WebCore:: prefixingVariantForPropertyId): This function takes a given
2892         property id and returns its prefixed or unprefixed id if it exists. If
2893         not it returns the same id.
2894         (WebCore):
2895         * css/CSSPropertyNames.in:
2896         * css/StylePropertySet.cpp:
2897         (WebCore::StylePropertySet::getPropertyValue):
2898         (WebCore::StylePropertySet::removeShorthandProperty):
2899         (WebCore::StylePropertySet::removeProperty):
2900         (WebCore::StylePropertySet::removeProperty): Remove
2901         also the prefixed or unprefixed shorthand if it exists.
2902         (WebCore):
2903         (WebCore::StylePropertySet::setProperty):
2904         (WebCore::StylePropertySet:: appendPrefixingVariantProperty):
2905         (WebCore::StylePropertySet::setPrefixingVariantProperty): If it
2906         exists a unprefixed or prefixed counterpart of the property we're
2907         trying to set, then we update the other one.
2908         (WebCore::StylePropertySet::asText):
2909         (WebCore::StylePropertySet::mergeAndOverrideOnConflict):
2910         * css/StylePropertySet.h:
2911         (StylePropertySet):
2912         * css/StylePropertyShorthand.cpp:
2913         (WebCore::transitionShorthand):
2914         (WebCore):
2915         (WebCore::shorthandForProperty): Define the transitions unprefixed
2916         longhands.
2917         * css/StylePropertyShorthand.h:
2918         (WebCore):
2919         * css/StyleResolver.cpp:
2920         (WebCore::StyleResolver::applyProperty): StyleBuilder will handle the
2921         resolution and the creation of the animations for the style. As the
2922         declarated style now contains declarations for the prefixed and
2923         unprefixed property we do not want to resolve two times and create duplicate animations.
2924         Therefore when we try to resolve the unprefixed version we just bail out.
2925
2926 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
2927
2928         Web Inspector: CPU Flame Chart: reveal profiler DataGrid node when user clicks on a FlameChart item.
2929         https://bugs.webkit.org/show_bug.cgi?id=111309
2930
2931         Reviewed by Yury Semikhatsky.
2932
2933         * inspector/front-end/CPUProfileView.js:
2934         (WebInspector.CPUProfileView.prototype._revealProfilerNode):
2935         * inspector/front-end/FlameChart.js:
2936         (WebInspector.FlameChart):
2937         (WebInspector.FlameChart.prototype._onClick):
2938
2939 2013-03-04  Antoine Quint  <graouts@apple.com>
2940
2941         Web Inspector: remove existing LayerTreeAgent protocol APIs
2942         https://bugs.webkit.org/show_bug.cgi?id=111251
2943
2944         In order to eventually provide a more useful API for the LayerTreeAgent
2945         that will be done in followup bugs, we remove the current API exposed by
2946         the agent providing a clean slate that will make future patches easier
2947         to read. Additionally, we remove the "childLayers" property on the Layer
2948         object since we will no longer be providing a hierarchy of layers, but
2949         rather a flat list of layers attached to a node and its descendants.
2950
2951         No new tests since we're removing the APIs exposed by the LayerTreeAgent.
2952         Subsequent patches will add tests as new APIs are added.
2953
2954         Reviewed by Timothy Hatcher.
2955
2956         * inspector/Inspector.json:
2957         * inspector/InspectorDOMAgent.cpp:
2958         * inspector/InspectorDOMAgent.h:
2959         * inspector/InspectorLayerTreeAgent.cpp:
2960         (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
2961         * inspector/InspectorLayerTreeAgent.h:
2962         (InspectorLayerTreeAgent):
2963
2964 2013-03-04  Li Yin  <li.yin@intel.com>
2965
2966         MediaStream.ended must return true when it is created with ended tracks.
2967         https://bugs.webkit.org/show_bug.cgi?id=111293
2968
2969         Reviewed by Kentaro Hara.
2970
2971         Spec: http://dev.w3.org/2011/webrtc/editor/getusermedia.html#MediaStream-ended
2972         When a MediaStream object is created, its ended attribute must be set to false,
2973         unless it is being created using the MediaStream() constructor whose arguments
2974         are lists of MediaStreamTrack objects that are all ended, in which case the
2975         MediaStream object must be created with its ended attribute set to true.
2976
2977         Test: fast/mediastream/MediaStreamConstructor.html
2978
2979         * platform/mediastream/MediaStreamDescriptor.h:
2980         (WebCore::MediaStreamDescriptor::MediaStreamDescriptor):
2981
2982 2013-03-04  Alexander Pavlov  <apavlov@chromium.org>
2983
2984         Web Inspector: Adding new rules broken if a <style> tag is added to document dynamically
2985         https://bugs.webkit.org/show_bug.cgi?id=111299
2986
2987         Reviewed by Pavel Feldman.
2988
2989         The CSSStyleSheet instance should be retrieved directly from the HTMLStyleElement just created,
2990         not from the document.styleSheets list.
2991
2992         Test: inspector/styles/add-new-rule-with-style-after-body.html
2993
2994         * inspector/InspectorCSSAgent.cpp:
2995         (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
2996
2997 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
2998
2999         Web Inspector: Unreviewed. Fix for closure type annotations.
3000
3001         * inspector/front-end/FlameChart.js:
3002
3003 2013-03-04  Kondapally Kalyan  <kalyan.kondapally@intel.com>
3004
3005         [EFL] Build fix when compiling with GLES2 support enabled.
3006         https://bugs.webkit.org/show_bug.cgi?id=111291
3007
3008         Reviewed by Kenneth Rohde Christiansen.
3009
3010         This patch fixes build issues when compiling with GLES2
3011         support. As part of the fix the patch removes Evas specific
3012         workaround of using GLX with EGL in PlatformContext as GLES2 
3013         is the main target with EGL.
3014
3015         * platform/graphics/OpenGLESShims.h:
3016         * platform/graphics/opengl/GLPlatformContext.cpp:
3017         (WebCore::GLCurrentContextWrapper::GLCurrentContextWrapper):
3018         * platform/graphics/texmap/TextureMapper.h:
3019
3020 2013-03-04  Ilya Tikhonovsky  <loislo@chromium.org>
3021
3022         Web Inspector: implement Flame Chart for CPU profiler.
3023         https://bugs.webkit.org/show_bug.cgi?id=111162
3024
3025         Reviewed by Yury Semikhatsky.
3026
3027         It is an initial implementation. The next step is to provide
3028         function names and other stats about the hovered item.
3029
3030         * WebCore.gypi:
3031         * WebCore.vcproj/WebCore.vcproj:
3032         * WebCore.vcxproj/WebCore.vcxproj:
3033         * WebCore.vcxproj/WebCore.vcxproj.filters:
3034         * inspector/compile-front-end.py:
3035         * inspector/front-end/CPUProfileView.js:
3036         (WebInspector.CPUProfileView.prototype._getCPUProfileCallback):
3037         * inspector/front-end/FlameChart.js: Added.
3038         (WebInspector.FlameChart):
3039         (WebInspector.FlameChart.prototype._onMouseMove):
3040         (WebInspector.FlameChart.prototype.findNodeCallback):
3041         (WebInspector.FlameChart.prototype._coordinatesToNode):
3042         (WebInspector.FlameChart.prototype.onResize):
3043         (WebInspector.FlameChart.prototype._rootNodes):
3044         (WebInspector.FlameChart.prototype.draw):
3045         (WebInspector.FlameChart.prototype._drawNode):
3046         (WebInspector.FlameChart.prototype._forEachNode):
3047         (WebInspector.FlameChart.prototype._drawBar):
3048         (WebInspector.FlameChart.prototype.update):
3049         * inspector/front-end/Settings.js:
3050         (WebInspector.ExperimentsSettings):
3051         * inspector/front-end/WebKit.qrc:
3052         * inspector/front-end/flameChart.css: Added.
3053         (.flame-chart):
3054
3055 2013-03-04  Marja Hölttä  <marja@chromium.org>
3056
3057         [V8] Add a "context type" parameter to GetTemplate and ConfigureV8SomethingTemplate functions
3058         https://bugs.webkit.org/show_bug.cgi?id=110875
3059
3060         The parameter will later be used for generating specialized V8
3061         bindings for the 3 different world types (main world, isolated
3062         work, worker).
3063
3064         Reviewed by Kentaro Hara.
3065
3066         No new tests (no changes in behavior yet).
3067
3068         * bindings/scripts/CodeGeneratorV8.pm:
3069         (GenerateHeader):
3070         (GenerateDomainSafeFunctionGetter):
3071         (GenerateDomainSafeFunctionSetter):
3072         (GenerateNormalAttrGetter):
3073         (GenerateNamedConstructor):
3074         (GenerateImplementation):
3075         * bindings/v8/DOMDataStore.cpp:
3076         (WebCore::DOMDataStore::DOMDataStore):
3077         * bindings/v8/DOMDataStore.h:
3078         (DOMDataStore):
3079         * bindings/v8/DOMWrapperWorld.cpp:
3080         (WebCore):
3081         (WebCore::DOMWrapperWorld::setInitializingWindow):
3082         (WebCore::DOMWrapperWorld::DOMWrapperWorld):
3083         (WebCore::DOMWrapperWorld::contextHasCorrectPrototype):
3084         * bindings/v8/DOMWrapperWorld.h:
3085         (DOMWrapperWorld):
3086         (WebCore::DOMWrapperWorld::getWorld):
3087         * bindings/v8/Dictionary.cpp:
3088         (WebCore::Dictionary::get):
3089         * bindings/v8/PageScriptDebugServer.cpp:
3090         (WebCore::retrieveFrameWithGlobalObjectCheck):
3091         * bindings/v8/V8AdaptorFunction.cpp:
3092         (WebCore::V8AdaptorFunction::getTemplate):
3093         (WebCore::V8AdaptorFunction::wrap):
3094         * bindings/v8/V8AdaptorFunction.h:
3095         (V8AdaptorFunction):
3096         * bindings/v8/V8Binding.cpp:
3097         (WebCore::toDOMWindow):
3098         (WebCore::toScriptExecutionContext):
3099         (WebCore::worldType):
3100         (WebCore):
3101         (WebCore::worldTypeInMainThread):
3102         * bindings/v8/V8Binding.h:
3103         (WebCore):
3104         * bindings/v8/V8DOMWindowShell.cpp:
3105         (WebCore::V8DOMWindowShell::clearForNavigation):
3106         (WebCore::V8DOMWindowShell::installDOMWindow):
3107         * bindings/v8/V8DOMWrapper.cpp:
3108         (WebCore::V8DOMWrapper::createWrapper):
3109         * bindings/v8/V8Initializer.cpp:
3110         (WebCore::findFrame):
3111         * bindings/v8/V8PerContextData.cpp:
3112         (WebCore::V8PerContextData::constructorForTypeSlowCase):
3113         * bindings/v8/WorkerScriptController.cpp:
3114         (WebCore::WorkerScriptController::WorkerScriptController):
3115         (WebCore::WorkerScriptController::controllerForContext):
3116         * bindings/v8/WrapperTypeInfo.h:
3117         (WebCore::WrapperTypeInfo::getTemplate):
3118         * bindings/v8/custom/V8DOMWindowCustom.cpp:
3119         (WebCore::V8DOMWindow::eventAttrGetterCustom):
3120         (WebCore::V8DOMWindow::eventAttrSetterCustom):
3121         (WebCore::V8DOMWindow::toStringMethodCustom):
3122         (WebCore::V8DOMWindow::namedSecurityCheck):
3123         (WebCore::V8DOMWindow::indexedSecurityCheck):
3124         (WebCore::toV8):
3125         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
3126         (WebCore::V8HTMLDocument::wrapInShadowObject):
3127         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
3128         (WebCore::V8HTMLImageElementConstructor::GetTemplate):
3129         * bindings/v8/custom/V8HTMLImageElementConstructor.h:
3130         (V8HTMLImageElementConstructor):
3131         * bindings/v8/custom/V8InjectedScriptManager.cpp:
3132         (WebCore::createInjectedScriptHostV8Wrapper):
3133         (WebCore::InjectedScriptManager::canAccessInspectedWindow):
3134         * bindings/v8/custom/V8LocationCustom.cpp:
3135         (WebCore::V8Location::reloadAttrGetterCustom):
3136         (WebCore::V8Location::replaceAttrGetterCustom):
3137         (WebCore::V8Location::assignAttrGetterCustom):
3138         * bindings/v8/custom/V8MessageEventCustom.cpp:
3139         (WebCore::V8MessageEvent::initMessageEventMethodCustom):
3140
3141 2013-03-04  Andrey Lushnikov  <lushnikov@chromium.org>
3142
3143         Web Inspector: add Ace editor experiment
3144         https://bugs.webkit.org/show_bug.cgi?id=111191
3145
3146         Reviewed by Pavel Feldman.
3147
3148         No new tests.
3149
3150         Add Ace text editor experiment.
3151
3152         * WebCore.gypi:
3153         * inspector/front-end/AceTextEditor.js: Added.
3154         * inspector/front-end/Settings.js:
3155         (WebInspector.ExperimentsSettings):
3156         * inspector/front-end/SourceFrame.js:
3157         (WebInspector.SourceFrame):
3158         * inspector/front-end/ace/ace.js: Added.
3159         * inspector/front-end/ace/acedevtools.css: Added.
3160         * inspector/front-end/ace/mode_css.js: Added.
3161         * inspector/front-end/ace/mode_html.js: Added.
3162         * inspector/front-end/ace/mode_javascript.js: Added.
3163         * inspector/front-end/ace/theme_textmate.js: Added.
3164         * inspector/front-end/ace/LICENSE.txt: Added.
3165
3166 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
3167
3168         Add build flag for FontLoader
3169         https://bugs.webkit.org/show_bug.cgi?id=111289
3170
3171         Reviewed by Benjamin Poulain.
3172
3173         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
3174
3175         * Configurations/FeatureDefines.xcconfig:
3176
3177 2013-03-04  Mike West  <mkwst@chromium.org>
3178
3179         XSSAuditor should strip dangerous attributes from SMIL animation elements.
3180         https://bugs.webkit.org/show_bug.cgi?id=111071
3181
3182         Reviewed by Adam Barth.
3183
3184         SMIL animation elements can, amusingly enough, animate the 'href' of a
3185         link. This patch teaches XSSAuditor how to deal with the
3186         semicolon-separated 'animation[values]' attribute in order to ensure
3187         that it doesn't contain JavaScript URLs that could be animated into
3188         place for an unsuspecting user to click on.
3189
3190         Test: http/tests/security/xssAuditor/svg-animate.html
3191
3192         * html/parser/XSSAuditor.cpp:
3193         (WebCore::isSemicolonSeparatedAttribute): Added.
3194             This returns true if the given attribute is SVGNames::valuesAttr,
3195             but makes it possible to easily extend the list with additional
3196             attributes with this strange property.
3197         (WebCore::semicolonSeparatedValueContainsJavaScriptURL): Added.
3198             Given a semicolon-separated string, determine if it contains any
3199             JavaScript URLs.
3200         (WebCore::XSSAuditor::eraseDangerousAttributesIfInjected):
3201             When looking for dangerousness, determine whether or not we should
3202             be comparing against each member of a semicolon-separated list.
3203
3204 2013-03-04  Arvid Nilsson  <anilsson@rim.com>
3205
3206         [BlackBerry] New files for BlackBerry::Platform::Graphics::GraphicsContext integration
3207         https://bugs.webkit.org/show_bug.cgi?id=111153
3208
3209         Reviewed by Rob Buis.
3210
3211         BlackBerry PR 293208
3212
3213         This patch contains contributions from many members of the BlackBerry
3214         WebKit team:
3215
3216         Rob Buis
3217         Robin Cao
3218         Eli Fidler
3219         Mike Lattanzio
3220         Yong Li
3221         Maxim Mogilnitsky
3222         Joshua Netterfield
3223         Arvid Nilsson
3224         Jakob Petsovits
3225         Konrad Piascik
3226         Jeff Rogers
3227         Artem Simonov
3228         Filip Spacek
3229         George Staikos
3230
3231         Covered by existing tests.
3232
3233         * platform/graphics/blackberry/FontBlackBerry.cpp: Added.
3234         (FSFixedToFloat):
3235         (FloatToFSFixed):
3236         (WebCore):
3237         (WebCore::Font::drawComplexText):
3238         (WebCore::Font::floatWidthForComplexText):
3239         (WebCore::Font::offsetForPositionForComplexText):
3240         (WebCore::Font::selectionRectForComplexText):
3241         (WebCore::Font::drawGlyphs):
3242         (WebCore::Font::canReturnFallbackFontsForComplexText):
3243         (WebCore::Font::drawEmphasisMarksForComplexText):
3244         (WebCore::Font::canExpandAroundIdeographsInComplexText):
3245         * platform/graphics/blackberry/FontCacheBlackBerry.cpp: Added.
3246         (WebCore):
3247         (WebCore::FontCache::platformInit):
3248         (WebCore::FontCache::getFontDataForCharacters):
3249         (WebCore::FontCache::getSimilarFontPlatformData):
3250         (WebCore::FontCache::getLastResortFallbackFont):
3251         (WebCore::FontCache::getTraitsInFamily):
3252         (WebCore::getFamilyNameStringFromFontDescriptionAndFamily):
3253         (WebCore::fontWeightToFontconfigWeight):
3254         (WebCore::FontCache::createFontPlatformData):
3255         * platform/graphics/blackberry/FontCustomPlatformData.h: Added.
3256         (WebCore):
3257         (FontCustomPlatformData):
3258         * platform/graphics/blackberry/FontCustomPlatformDataBlackBerry.cpp: Added.
3259         (WebCore):
3260         (WebCore::FontCustomPlatformData::FontCustomPlatformData):
3261         (WebCore::FontCustomPlatformData::~FontCustomPlatformData):
3262         (WebCore::FontCustomPlatformData::fontPlatformData):
3263         (WebCore::FontCustomPlatformData::supportsFormat):
3264         (WebCore::createFontCustomPlatformData):
3265         * platform/graphics/blackberry/FontPlatformDataBlackBerry.cpp: Added.
3266         (WebCore):
3267         (WebCore::FontPlatformData::FontPlatformData):
3268         (WebCore::FontPlatformData::~FontPlatformData):
3269         (WebCore::FontPlatformData::name):
3270         (WebCore::FontPlatformData::applyState):
3271         (WebCore::FontPlatformData::platformDataInit):
3272         (WebCore::FontPlatformData::platformDataAssign):
3273         (WebCore::FontPlatformData::platformIsEqual):
3274         (WebCore::FontPlatformData::description):
3275         (WebCore::FontPlatformData::harfbuzzFace):
3276         (WebCore::FontPlatformData::scaledFont):
3277         (WebCore::FontPlatformData::setFakeBold):
3278         (WebCore::FontPlatformData::setFakeItalic):
3279         (WebCore::FontPlatformData::platformFontHandle):
3280         (WebCore::FontPlatformData::isFixedPitch):
3281         * platform/graphics/blackberry/GlyphPageTreeNodeBlackBerry.cpp: Added.
3282         (WebCore):
3283         (WorldTypeScopedPtr):
3284         (WebCore::WorldTypeScopedPtr::WorldTypeScopedPtr):
3285         (WebCore::WorldTypeScopedPtr::~WorldTypeScopedPtr):
3286         (WebCore::WorldTypeScopedPtr::get):
3287         (WebCore::GlyphPage::fill):
3288         * platform/graphics/blackberry/GradientBlackBerry.cpp: Added.
3289         (WebCore):
3290         (WebCore::totalStopsNeeded):
3291         (WebCore::fillStops):
3292         (WebCore::Gradient::platformGradient):
3293         (WebCore::Gradient::platformDestroy):
3294         (WebCore::Gradient::fill):
3295         (WebCore::Gradient::setPlatformGradientSpaceTransform):
3296         * platform/graphics/blackberry/GraphicsContextBlackBerry.cpp: Added.
3297         (WebCore):
3298         (GraphicsContextPlatformPrivate):
3299         (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
3300         (WebCore::GraphicsContext::platformInit):
3301         (WebCore::GraphicsContext::platformDestroy):
3302         (WebCore::GraphicsContext::platformContext):
3303         (WebCore::GraphicsContext::savePlatformState):
3304         (WebCore::GraphicsContext::restorePlatformState):
3305         (WebCore::GraphicsContext::setIsAcceleratedContext):
3306         (WebCore::GraphicsContext::isAcceleratedContext):
3307         (WebCore::GraphicsContext::getCTM):
3308         (WebCore::GraphicsContext::concatCTM):
3309         (WebCore::GraphicsContext::setCTM):
3310         (WebCore::GraphicsContext::scale):
3311         (WebCore::GraphicsContext::rotate):
3312         (WebCore::GraphicsContext::translate):
3313         (WebCore::GraphicsContext::drawEllipse):
3314         (WebCore::GraphicsContext::strokeArc):
3315         (WebCore::GraphicsContext::drawConvexPolygon):
3316         (WebCore::GraphicsContext::drawRect):
3317         (WebCore::GraphicsContext::fillRect):
3318         (WebCore::GraphicsContext::clearRect):
3319         (WebCore::GraphicsContext::strokeRect):
3320         (WebCore::GraphicsContext::fillRoundedRect):
3321         (WebCore::GraphicsContext::roundToDevicePixels):
3322         (WebCore::GraphicsContext::setPlatformShadow):
3323         (WebCore::GraphicsContext::clearPlatformShadow):
3324         (WebCore::GraphicsContext::beginPlatformTransparencyLayer):
3325         (WebCore::GraphicsContext::endPlatformTransparencyLayer):
3326         (WebCore::GraphicsContext::supportsTransparencyLayers):
3327         (WebCore::GraphicsContext::setLineCap):
3328         (WebCore::GraphicsContext::setLineDash):
3329         (WebCore::GraphicsContext::setLineJoin):
3330         (WebCore::GraphicsContext::setMiterLimit):
3331         (WebCore::GraphicsContext::setAlpha):
3332         (WebCore::GraphicsContext::clip):
3333         (WebCore::GraphicsContext::clipOut):
3334         (WebCore::GraphicsContext::clipConvexPolygon):
3335         (WebCore::GraphicsContext::addRoundedRectClip):
3336         (WebCore::GraphicsContext::clipOutRoundedRect):
3337         (WebCore::GraphicsContext::clipBounds):
3338         (WebCore::GraphicsContext::addInnerRoundedRectClip):
3339         (WebCore::GraphicsContext::setURLForRect):
3340         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
3341         (WebCore::GraphicsContext::setPlatformStrokeColor):
3342         (WebCore::GraphicsContext::setPlatformStrokeStyle):
3343         (WebCore::GraphicsContext::setPlatformStrokeThickness):
3344         (WebCore::GraphicsContext::setPlatformFillColor):
3345         (WebCore::GraphicsContext::setPlatformCompositeOperation):
3346         (WebCore::GraphicsContext::setPlatformShouldAntialias):
3347         (WebCore::GraphicsContext::setImageInterpolationQuality):
3348         (WebCore::GraphicsContext::imageInterpolationQuality):
3349         * platform/graphics/blackberry/ITypeUtils.h: Added.
3350         (floatToITypeFixed):
3351         (intToITypeFixed):
3352         (iTypeFixedToFloat):
3353         * platform/graphics/blackberry/ImageBufferBlackBerry.cpp: Added.
3354         (WebCore):
3355         (WebCore::makeBufferCurrent):
3356         (WebCore::getImageDataInternal):
3357         (WebCore::ImageBufferData::getImageData):
3358         (WebCore::flushAndDraw):
3359         (WebCore::ImageBufferData::draw):
3360         (WebCore::ImageBuffer::ImageBuffer):
3361         (WebCore::ImageBuffer::~ImageBuffer):
3362         (WebCore::ImageBuffer::context):
3363         (WebCore::ImageBuffer::platformLayer):
3364         (WebCore::ImageBuffer::copyImage):
3365         (WebCore::ImageBuffer::clip):
3366         (WebCore::ImageBuffer::draw):
3367         (WebCore::ImageBuffer::drawPattern):
3368         (WebCore::ImageBuffer::platformTransformColorSpace):
3369         (WebCore::ImageBuffer::getUnmultipliedImageData):
3370         (WebCore::ImageBuffer::getPremultipliedImageData):
3371         (WebCore::ImageBuffer::putByteArray):
3372         (WebCore::ImageBuffer::toDataURL):
3373         * platform/graphics/blackberry/ImageBufferDataBlackBerry.h: Added.
3374         (WebCore):
3375         (ImageBufferData):
3376         * platform/graphics/blackberry/PathBlackBerry.cpp: Added.
3377         (WebCore):
3378         (WebCore::scratchContext):
3379         (WebCore::Path::Path):
3380         (WebCore::Path::~Path):
3381         (WebCore::Path::operator=):
3382         (WebCore::Path::currentPoint):
3383         (WebCore::Path::contains):
3384         (WebCore::Path::strokeContains):
3385         (WebCore::Path::translate):
3386         (WebCore::Path::boundingRect):
3387         (WebCore::Path::strokeBoundingRect):
3388         (WebCore::Path::moveTo):
3389         (WebCore::Path::addLineTo):
3390         (WebCore::Path::addQuadCurveTo):
3391         (WebCore::Path::addBezierCurveTo):
3392         (WebCore::Path::addArcTo):
3393         (WebCore::Path::closeSubpath):
3394         (WebCore::Path::addArc):
3395         (WebCore::Path::addRect):
3396         (WebCore::Path::addEllipse):
3397         (WebCore::Path::platformAddPathForRoundedRect):
3398         (WebCore::Path::clear):
3399         (WebCore::Path::isEmpty):
3400         (WebCore::Path::hasCurrentPoint):
3401         (WebCore::Path::apply):
3402         (WebCore::Path::transform):
3403         (WebCore::GraphicsContext::fillPath):
3404         (WebCore::GraphicsContext::strokePath):
3405         (WebCore::GraphicsContext::drawFocusRing):
3406         (WebCore::GraphicsContext::drawLine):
3407         (WebCore::GraphicsContext::drawLineForDocumentMarker):
3408         (WebCore::GraphicsContext::drawLineForText):
3409         (WebCore::GraphicsContext::clip):
3410         (WebCore::GraphicsContext::clipPath):
3411         (WebCore::GraphicsContext::canvasClip):
3412         (WebCore::GraphicsContext::clipOut):
3413         * platform/graphics/blackberry/PatternBlackBerry.cpp: Added.
3414         (WebCore):
3415         (WebCore::Pattern::platformDestroy):
3416         (WebCore::Pattern::platformPattern):
3417         (WebCore::Pattern::setPlatformPatternSpaceTransform):
3418         * platform/graphics/blackberry/PlatformSupport.cpp: Added.
3419         (WebCore):
3420         (WebCore::PlatformSupport::getFontFamilyForCharacters):
3421         * platform/graphics/blackberry/PlatformSupport.h: Added.
3422         (WebCore):
3423         (PlatformSupport):
3424         (FontFamily):
3425         * platform/graphics/blackberry/SimpleFontDataBlackBerry.cpp: Added.
3426         (WebCore):
3427         (WebCore::FSFixedToFloat):
3428         (WebCore::SimpleFontData::platformInit):
3429         (WebCore::SimpleFontData::platformCharWidthInit):
3430         (WebCore::SimpleFontData::platformDestroy):
3431         (WebCore::SimpleFontData::createScaledFontData):
3432         (WebCore::SimpleFontData::smallCapsFontData):
3433         (WebCore::SimpleFontData::emphasisMarkFontData):
3434         (WebCore::SimpleFontData::containsCharacters):
3435         (WebCore::SimpleFontData::determinePitch):
3436         (WebCore::SimpleFontData::platformBoundsForGlyph):