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