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