Web Inspector: [WebGL] Allow collecting calls for Resource objects affecting their...
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2012-08-23  Andrey Adaikin  <aandrey@chromium.org>
2
3         Web Inspector: [WebGL] Allow collecting calls for Resource objects affecting their states
4         https://bugs.webkit.org/show_bug.cgi?id=94686
5
6         Reviewed by Pavel Feldman.
7
8         Allow collecting calls for WebGL Resource objects affecting their states.
9         Clone Call's mutable arguments before pushing it to the log.
10
11         * inspector/InjectedScriptWebGLModuleSource.js:
12         (.):
13
14 2012-08-23  Robin Cao  <robin.cao@torchmobile.com.cn>
15
16         [BlackBerry] draw <video> on <canvas> does not work
17         https://bugs.webkit.org/show_bug.cgi?id=94791
18         PR #195866
19
20         Reviewed by George Staikos.
21
22         Re-implement MediaPlayerPrivate::paintCurrentFrameInContext() in the
23         blackberry port. This method is mainly called from <canvas>, and it
24         is supposed to paint video frames using software rendering path.
25
26         On the other hand, MediaPlayerPrivate::paint() will choose accelerated
27         rendering if possible.
28
29         media/video-canvas-alpha.html covers this.
30
31         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:
32         (WebCore::MediaPlayerPrivate::paint):
33         (WebCore):
34         (WebCore::MediaPlayerPrivate::paintCurrentFrameInContext):
35         * platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:
36         (MediaPlayerPrivate):
37
38 2012-08-23  Kentaro Hara  <haraken@chromium.org>
39
40         Unreviewed. Build fix for r126399.
41
42         * bindings/v8/ScriptInstance.cpp:
43
44 2012-08-23  Pavel Feldman  <pfeldman@chromium.org>
45
46         Web Inspector: treat 0 cookies as "no cookies" and render it accordingly in the UI
47         https://bugs.webkit.org/show_bug.cgi?id=94732
48
49         Reviewed by Yury Semikhatsky.
50
51         * inspector/front-end/RequestCookiesView.js:
52         (WebInspector.RequestCookiesView.prototype.get _gotCookies):
53
54 2012-08-23  KwangYong Choi  <ky0.choi@samsung.com>
55
56         [EFL] Use vertical slider theme when the slider is vertical
57         https://bugs.webkit.org/show_bug.cgi?id=93838
58
59         Reviewed by Kenneth Rohde Christiansen.
60
61         Applied vertical slider theme to the vertical sliders. The height
62         of the vertical slider is wrong when it's applied horizontal
63         slider theme.
64
65         And do not resize slider when its size is not specified. It's natural
66         to use the default value of renderer.
67
68         No new tests. It's covered by existing range and datalist tests.
69
70         * platform/efl/RenderThemeEfl.cpp:
71         (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
72
73 2012-08-23  Kentaro Hara  <haraken@chromium.org>
74
75         [V8] Remove almost all #include "V8Proxy.h"
76         https://bugs.webkit.org/show_bug.cgi?id=94777
77
78         Reviewed by Adam Barth.
79
80         No tests. No change in behavior.
81
82         * bindings/v8/NPV8Object.cpp:
83         * bindings/v8/PageScriptDebugServer.cpp:
84         * bindings/v8/ScheduledAction.cpp:
85         * bindings/v8/ScriptController.cpp:
86         * bindings/v8/ScriptInstance.cpp:
87         * bindings/v8/ScriptObject.cpp:
88         * bindings/v8/ScriptRunner.cpp:
89         * bindings/v8/SerializedScriptValue.cpp:
90         * bindings/v8/V8AbstractEventListener.cpp:
91         * bindings/v8/V8Binding.h:
92         (WebCore):
93         * bindings/v8/V8BindingMacros.h:
94         (WebCore):
95         * bindings/v8/V8Collection.h:
96         * bindings/v8/V8DOMWindowShell.cpp:
97         * bindings/v8/V8DOMWrapper.cpp:
98         * bindings/v8/V8EventListener.cpp:
99         * bindings/v8/V8GCController.cpp:
100         * bindings/v8/V8LazyEventListener.cpp:
101         * bindings/v8/V8NPObject.cpp:
102         * bindings/v8/V8NPUtils.cpp:
103         * bindings/v8/V8Proxy.h:
104         (WebCore):
105         * bindings/v8/V8Utilities.cpp:
106         * bindings/v8/WorkerContextExecutionProxy.cpp:
107         * bindings/v8/WorkerScriptController.cpp:
108         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
109         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
110         * bindings/v8/custom/V8AudioBufferSourceNodeCustom.cpp:
111         * bindings/v8/custom/V8AudioContextCustom.cpp:
112         * bindings/v8/custom/V8BlobCustom.cpp:
113         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
114         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp:
115         * bindings/v8/custom/V8ClipboardCustom.cpp:
116         * bindings/v8/custom/V8ConsoleCustom.cpp:
117         * bindings/v8/custom/V8CoordinatesCustom.cpp:
118         * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
119         * bindings/v8/custom/V8DOMFormDataCustom.cpp:
120         * bindings/v8/custom/V8DataViewCustom.cpp:
121         * bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
122         * bindings/v8/custom/V8DeviceMotionEventCustom.cpp:
123         * bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:
124         * bindings/v8/custom/V8DocumentCustom.cpp:
125         * bindings/v8/custom/V8DocumentLocationCustom.cpp:
126         * bindings/v8/custom/V8EntryCustom.cpp:
127         * bindings/v8/custom/V8EntrySyncCustom.cpp:
128         * bindings/v8/custom/V8EventCustom.cpp:
129         * bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
130         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
131         * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
132         * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
133         * bindings/v8/custom/V8HTMLFrameElementCustom.cpp:
134         * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:
135         * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
136         * bindings/v8/custom/V8HTMLInputElementCustom.cpp:
137         * bindings/v8/custom/V8HTMLLinkElementCustom.cpp:
138         * bindings/v8/custom/V8HTMLMediaElementCustom.cpp:
139         * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
140         * bindings/v8/custom/V8HTMLOutputElementCustom.cpp:
141         * bindings/v8/custom/V8HTMLPlugInElementCustom.cpp:
142         * bindings/v8/custom/V8HTMLSelectElementCustom.cpp:
143         * bindings/v8/custom/V8HistoryCustom.cpp:
144         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
145         * bindings/v8/custom/V8InspectorFrontendHostCustom.cpp:
146         * bindings/v8/custom/V8IntentConstructor.cpp:
147         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp:
148         * bindings/v8/custom/V8LocationCustom.cpp:
149         * bindings/v8/custom/V8MessageChannelConstructor.cpp:
150         * bindings/v8/custom/V8MessageEventCustom.cpp:
151         * bindings/v8/custom/V8MessagePortCustom.cpp:
152         * bindings/v8/custom/V8MutationCallbackCustom.cpp:
153         * bindings/v8/custom/V8MutationObserverCustom.cpp:
154         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
155         * bindings/v8/custom/V8NodeCustom.cpp:
156         * bindings/v8/custom/V8NodeListCustom.cpp:
157         * bindings/v8/custom/V8NotificationCenterCustom.cpp:
158         * bindings/v8/custom/V8NotificationCustom.cpp:
159         * bindings/v8/custom/V8PopStateEventCustom.cpp:
160         * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
161         * bindings/v8/custom/V8SQLTransactionCustom.cpp:
162         * bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
163         * bindings/v8/custom/V8SVGDocumentCustom.cpp:
164         * bindings/v8/custom/V8ScriptProfileCustom.cpp:
165         * bindings/v8/custom/V8ScriptProfileNodeCustom.cpp:
166         * bindings/v8/custom/V8StorageCustom.cpp:
167         * bindings/v8/custom/V8StyleSheetListCustom.cpp:
168         * bindings/v8/custom/V8TrackEventCustom.cpp:
169         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
170         * bindings/v8/custom/V8WebKitAnimationCustom.cpp:
171         * bindings/v8/custom/V8WebKitPointConstructor.cpp:
172         * bindings/v8/custom/V8WebSocketCustom.cpp:
173         * bindings/v8/custom/V8WorkerContextCustom.cpp:
174         * bindings/v8/custom/V8WorkerCustom.cpp:
175         * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
176         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
177         * bindings/v8/custom/V8XSLTProcessorCustom.cpp:
178
179 2012-08-22  Kentaro Hara  <haraken@chromium.org>
180
181         Unreviewed, rolling out r126348.
182         http://trac.webkit.org/changeset/126348
183         https://bugs.webkit.org/show_bug.cgi?id=94588
184
185         We should use v8::String::NewSymbol() for symbols. See
186         https://bugs.webkit.org/show_bug.cgi?id=94574#c10 for more
187         details
188
189         * bindings/scripts/CodeGeneratorV8.pm:
190         (GenerateNormalAttrGetter):
191         (GenerateNormalAttrSetter):
192         (GenerateNamedConstructorCallback):
193         (GenerateNonStandardFunction):
194         (GenerateImplementation):
195         * bindings/scripts/test/V8/V8Float64Array.cpp:
196         (WebCore::ConfigureV8Float64ArrayTemplate):
197         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
198         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
199         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
200         (WebCore::ConfigureV8TestEventTargetTemplate):
201         * bindings/scripts/test/V8/V8TestInterface.cpp:
202         (WebCore::ConfigureV8TestInterfaceTemplate):
203         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
204         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
205         * bindings/scripts/test/V8/V8TestObj.cpp:
206         (WebCore::ConfigureV8TestObjTemplate):
207         (WebCore::V8TestObj::installPerContextProperties):
208         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
209         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
210         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
211         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
212         * bindings/v8/V8Binding.h:
213         (WebCore):
214
215 2012-08-22  Kentaro Hara  <haraken@chromium.org>
216
217         [V8] Remove V8Proxy from CodeGeneratorV8.pm
218         https://bugs.webkit.org/show_bug.cgi?id=94773
219
220         Reviewed by Adam Barth.
221
222         To kill V8Proxy, we can remove V8Proxy uses from CodeGeneratorV8.pm.
223
224         No tests. No change in behavior.
225
226         * bindings/scripts/CodeGeneratorV8.pm:
227         (GenerateToV8Converters):
228         * bindings/scripts/test/V8/V8Float64Array.cpp:
229         (WebCore::V8Float64Array::wrapSlow):
230         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
231         (WebCore::V8TestActiveDOMObject::wrapSlow):
232         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
233         (WebCore::V8TestCustomNamedGetter::wrapSlow):
234         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
235         (WebCore::V8TestEventConstructor::wrapSlow):
236         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
237         (WebCore::V8TestEventTarget::wrapSlow):
238         * bindings/scripts/test/V8/V8TestException.cpp:
239         (WebCore::V8TestException::wrapSlow):
240         * bindings/scripts/test/V8/V8TestInterface.cpp:
241         (WebCore::V8TestInterface::wrapSlow):
242         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
243         (WebCore::V8TestMediaQueryListListener::wrapSlow):
244         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
245         (WebCore::V8TestNamedConstructor::wrapSlow):
246         * bindings/scripts/test/V8/V8TestNode.cpp:
247         (WebCore::V8TestNode::wrapSlow):
248         * bindings/scripts/test/V8/V8TestObj.cpp:
249         (WebCore::V8TestObj::wrapSlow):
250         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
251         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
252
253 2012-08-22  Sukolsak Sakshuwong  <sukolsak@google.com>
254
255         Implement UndoManager's item() method
256         https://bugs.webkit.org/show_bug.cgi?id=94671
257
258         Reviewed by Ryosuke Niwa.
259
260         This patch implements UndoManager's item() method and its V8 custom binding.
261         We need to use custom binding here because we need to return user objects
262         that are stored in a hidden property of DOMTransaction wrappers, not returning
263         the wrappers themselves.
264
265         Test: editing/undomanager/undomanager-item.html
266
267         * bindings/js/JSUndoManagerCustom.cpp:
268         (WebCore::JSUndoManager::item):
269         (WebCore):
270         * bindings/v8/DOMTransaction.cpp:
271         (WebCore::DOMTransaction::data):
272         (WebCore):
273         (WebCore::DOMTransaction::setData):
274         (WebCore::DOMTransaction::getFunction):
275         * bindings/v8/DOMTransaction.h:
276         * bindings/v8/custom/V8UndoManagerCustom.cpp:
277         (WebCore::V8UndoManager::transactCallback):
278         (WebCore::V8UndoManager::itemCallback):
279         (WebCore):
280         * editing/UndoManager.cpp:
281         (WebCore::UndoManager::item):
282         (WebCore):
283         * editing/UndoManager.h:
284         (UndoManager):
285         * editing/UndoManager.idl:
286
287 2012-08-22  Dominic Mazzoni  <dmazzoni@google.com>
288
289         AX: Focusable elements without a role should not be ignored
290         https://bugs.webkit.org/show_bug.cgi?id=94302
291
292         Reviewed by Chris Fleizach.
293
294         Changes the accessibility logic so that a generic element that's focusable is
295         not ignored for accessibility, and returns its inner text as its title. That way
296         if you Tab to the element, a reasonable accessibility notification is generated.
297
298         One exception is the body element, because focusing the body is equivalent to
299         blurring the current focused element and does not result in a "focus" accessibility
300         notification.
301
302         Also fixes logic that determined if an element was contentEditable by making
303         sure it catches the case with no attribute value (e.g. <div contentEditable>),
304         which also implies contentEditable=true according to the spec.
305
306         Test: accessibility/focusable-div.html
307
308         * accessibility/AccessibilityRenderObject.cpp:
309         (WebCore):
310         (WebCore::nodeHasContentEditableAttributeSet):
311         (WebCore::AccessibilityRenderObject::title):
312         (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
313
314 2012-08-22  Kentaro Hara  <haraken@chromium.org>
315
316         Unreviewed, rolling out r126383.
317         http://trac.webkit.org/changeset/126383
318         https://bugs.webkit.org/show_bug.cgi?id=82888
319
320         Chromium win build crash
321
322         * bindings/js/JSClipboardCustom.cpp:
323         (WebCore::JSClipboard::types):
324         * bindings/v8/custom/V8ClipboardCustom.cpp:
325         (WebCore::V8Clipboard::typesAccessorGetter):
326         * dom/Clipboard.h:
327         (Clipboard):
328         * platform/blackberry/ClipboardBlackBerry.cpp:
329         (WebCore::ClipboardBlackBerry::types):
330         * platform/blackberry/ClipboardBlackBerry.h:
331         (ClipboardBlackBerry):
332         * platform/chromium/ChromiumDataObject.cpp:
333         (WebCore::ChromiumDataObject::types):
334         * platform/chromium/ChromiumDataObject.h:
335         (ChromiumDataObject):
336         * platform/chromium/ClipboardChromium.cpp:
337         (WebCore::ClipboardChromium::types):
338         * platform/chromium/ClipboardChromium.h:
339         (ClipboardChromium):
340         * platform/efl/ClipboardEfl.cpp:
341         (WebCore::ClipboardEfl::types):
342         * platform/efl/ClipboardEfl.h:
343         (ClipboardEfl):
344         * platform/gtk/ClipboardGtk.cpp:
345         (WebCore::ClipboardGtk::types):
346         * platform/gtk/ClipboardGtk.h:
347         (ClipboardGtk):
348         * platform/mac/ClipboardMac.h:
349         (ClipboardMac):
350         * platform/mac/ClipboardMac.mm:
351         (WebCore::addHTMLClipboardTypesForCocoaType):
352         (WebCore::ClipboardMac::types):
353         * platform/qt/ClipboardQt.cpp:
354         (WebCore::ClipboardQt::types):
355         * platform/qt/ClipboardQt.h:
356         (ClipboardQt):
357         * platform/win/ClipboardWin.cpp:
358         (WebCore::addMimeTypesForFormat):
359         (WebCore::ClipboardWin::types):
360         * platform/win/ClipboardWin.h:
361         (ClipboardWin):
362         * platform/wx/ClipboardWx.cpp:
363         (WebCore::ClipboardWx::types):
364         * platform/wx/ClipboardWx.h:
365         (ClipboardWx):
366
367 2012-08-22  Kentaro Hara  <haraken@chromium.org>
368
369         [V8] Move m_isolatedWorlds and m_isolatedWorldSecurityOrigins from V8Proxy to ScriptController
370         https://bugs.webkit.org/show_bug.cgi?id=94770
371
372         Reviewed by Adam Barth.
373
374         Now m_isolatedWorlds and m_isolatedWorldSecurityOrigins of V8Proxy
375         are used by ScriptController only. We can move them to ScriptController.
376
377         No tests. No change in behavior.
378
379         * bindings/v8/ScriptController.cpp:
380         (WebCore::ScriptController::resetIsolatedWorlds):
381         (WebCore::ScriptController::evaluateInIsolatedWorld):
382         (WebCore::ScriptController::setIsolatedWorldSecurityOrigin):
383         (WebCore::ScriptController::collectIsolatedContexts):
384         * bindings/v8/ScriptController.h:
385         (ScriptController):
386         * bindings/v8/V8Proxy.h:
387         (V8Proxy):
388
389 2012-08-22  Kentaro Hara  <haraken@chromium.org>
390
391         [V8] Move evaluate() from V8Proxy to ScriptController
392         https://bugs.webkit.org/show_bug.cgi?id=94768
393
394         Reviewed by Adam Barth.
395
396         To kill V8Proxy, we can move evaluate() from V8Proxy to ScriptController.
397
398         - Renamed evaluate() to compileAndRunScript() to avoid name conflict
399         with existing ScriptController::evaluate().
400
401         - Removed toV8Proxy() from NPV8Object, as it is no longer used.
402
403         No tests. No change in behavior.
404
405         * bindings/v8/NPV8Object.cpp:
406         (_NPN_EvaluateHelper):
407         * bindings/v8/ScheduledAction.cpp:
408         (WebCore::ScheduledAction::execute):
409         * bindings/v8/ScriptController.cpp:
410         (WebCore::ScriptController::compileAndRunScript):
411         (WebCore):
412         (WebCore::ScriptController::evaluate):
413         (WebCore::ScriptController::evaluateInIsolatedWorld):
414         * bindings/v8/ScriptController.h:
415         (ScriptController):
416         * bindings/v8/V8Proxy.cpp:
417         * bindings/v8/V8Proxy.h:
418
419 2012-08-22  Vineet Chaudhary  <rgf748@motorola.com>
420
421         Consider replacing return type of Clipboard::types() from HashSet<String> to Vector<String>.
422         https://bugs.webkit.org/show_bug.cgi?id=82888
423
424         Reviewed by Kentaro Hara.
425
426         As part of removing custom bindings of types Array Clipboard::types() needs to return
427         Vector<String> than HashSet<String>
428
429         No new tests. Exixting test should pass with this change as no behavoural changes.
430
431         * bindings/js/JSClipboardCustom.cpp: Replace data type from HashSet<> to Vector<>.
432         (WebCore::JSClipboard::types):
433         * bindings/v8/custom/V8ClipboardCustom.cpp: Ditto.
434         (WebCore::V8Clipboard::typesAccessorGetter):
435         * dom/Clipboard.h: Ditto.
436         (Clipboard):
437         * platform/blackberry/ClipboardBlackBerry.cpp: Ditto.
438         (WebCore::ClipboardBlackBerry::types):
439         * platform/blackberry/ClipboardBlackBerry.h: Ditto.
440         (ClipboardBlackBerry):
441         * platform/chromium/ChromiumDataObject.cpp: Ditto.
442         (WebCore::ChromiumDataObject::types):
443         * platform/chromium/ChromiumDataObject.h: Ditto.
444         (ChromiumDataObject):
445         * platform/chromium/ClipboardChromium.cpp: Ditto.
446         (WebCore::ClipboardChromium::types):
447         * platform/chromium/ClipboardChromium.h: Ditto.
448         (ClipboardChromium):
449         * platform/efl/ClipboardEfl.cpp: Ditto.
450         (WebCore::ClipboardEfl::types):
451         * platform/efl/ClipboardEfl.h: Ditto.
452         (ClipboardEfl):
453         * platform/gtk/ClipboardGtk.cpp: Ditto.
454         (WebCore::ClipboardGtk::types):
455         * platform/gtk/ClipboardGtk.h: Ditto.
456         (ClipboardGtk):
457         * platform/mac/ClipboardMac.h: Ditto.
458         (ClipboardMac):
459         * platform/mac/ClipboardMac.mm: Ditto.
460         (WebCore::addHTMLClipboardTypesForCocoaType):
461         (WebCore::ClipboardMac::types):
462         * platform/qt/ClipboardQt.cpp: Ditto.
463         (WebCore::ClipboardQt::types):
464         * platform/qt/ClipboardQt.h: Ditto.
465         (ClipboardQt):
466         * platform/win/ClipboardWin.cpp: Ditto.
467         (WebCore::addMimeTypesForFormat):
468         (WebCore::ClipboardWin::types):
469         * platform/win/ClipboardWin.h: Ditto.
470         (ClipboardWin):
471         * platform/wx/ClipboardWx.cpp: Ditto.
472         (WebCore::ClipboardWx::types):
473         * platform/wx/ClipboardWx.h: Ditto.
474         (ClipboardWx):
475
476 2012-08-22  James Robinson  <jamesr@chromium.org>
477
478         [chromium] Change WebLayer from a concrete type to a pure virtual interface
479         https://bugs.webkit.org/show_bug.cgi?id=94174
480
481         Reviewed by Adrienne Walker.
482
483         This updates WebCore code for the WebLayer interface changes. Classes that have ownership of specific layer
484         types (such as DrawingBufferChromium, Canvas2DLayerBridge and ScrollingCoordinatorChromium) hold ownership
485         of a specific type and a pointer to the WebLayer to GraphicsLayerChromium to be included in the final layer
486         tree. GraphicsLayerChromium holds a WebContentLayer and (optionally) a WebImageLayer and WebLayer (for
487         m_transformLayer) and assembles the final layer tree.
488
489         * page/scrolling/chromium/ScrollingCoordinatorChromium.cpp:
490         (WebCore::ScrollingCoordinatorPrivate::ScrollingCoordinatorPrivate):
491         (ScrollingCoordinatorPrivate):
492         (WebCore::ScrollingCoordinatorPrivate::setScrollLayer):
493         (WebCore::ScrollingCoordinatorPrivate::setHorizontalScrollbarLayer):
494         (WebCore::ScrollingCoordinatorPrivate::setVerticalScrollbarLayer):
495         (WebCore::ScrollingCoordinatorPrivate::scrollLayer):
496         (WebCore::scrollableLayerForGraphicsLayer):
497         (WebCore):
498         (WebCore::createScrollbarLayer):
499         (WebCore::ScrollingCoordinator::frameViewHorizontalScrollbarLayerDidChange):
500         (WebCore::ScrollingCoordinator::frameViewVerticalScrollbarLayerDidChange):
501         (WebCore::ScrollingCoordinator::setScrollLayer):
502         (WebCore::ScrollingCoordinator::setNonFastScrollableRegion):
503         (WebCore::ScrollingCoordinator::setWheelEventHandlerCount):
504         (WebCore::ScrollingCoordinator::setShouldUpdateScrollLayerPositionOnMainThread):
505         (WebCore::ScrollingCoordinator::setLayerIsContainerForFixedPositionLayers):
506         (WebCore::ScrollingCoordinator::setLayerIsFixedToContainerLayer):
507         * platform/graphics/chromium/Canvas2DLayerBridge.cpp:
508         (WebCore::Canvas2DLayerBridge::Canvas2DLayerBridge):
509         (WebCore::Canvas2DLayerBridge::~Canvas2DLayerBridge):
510         (WebCore::Canvas2DLayerBridge::prepareForDraw):
511         (WebCore::Canvas2DLayerBridge::layer):
512         (WebCore::Canvas2DLayerBridge::contextAcquired):
513         * platform/graphics/chromium/Canvas2DLayerBridge.h:
514         (Canvas2DLayerBridge):
515         * platform/graphics/chromium/DrawingBufferChromium.cpp:
516         (WebCore::DrawingBufferPrivate::DrawingBufferPrivate):
517         (WebCore::DrawingBufferPrivate::~DrawingBufferPrivate):
518         (WebCore::DrawingBufferPrivate::layer):
519         (DrawingBufferPrivate):
520         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
521         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
522         (WebCore::GraphicsLayerChromium::~GraphicsLayerChromium):
523         (WebCore::GraphicsLayerChromium::willBeDestroyed):
524         (WebCore::GraphicsLayerChromium::updateNames):
525         (WebCore::GraphicsLayerChromium::removeFromParent):
526         (WebCore::GraphicsLayerChromium::setSize):
527         (WebCore::GraphicsLayerChromium::clearBackgroundColor):
528         (WebCore::GraphicsLayerChromium::setContentsOpaque):
529         (WebCore::GraphicsLayerChromium::setFilters):
530         (WebCore::GraphicsLayerChromium::setBackgroundFilters):
531         (WebCore::GraphicsLayerChromium::setMaskLayer):
532         (WebCore::GraphicsLayerChromium::setBackfaceVisibility):
533         (WebCore::GraphicsLayerChromium::setOpacity):
534         (WebCore::GraphicsLayerChromium::setReplicatedByLayer):
535         (WebCore::GraphicsLayerChromium::setContentsNeedsDisplay):
536         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
537         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
538         (WebCore::GraphicsLayerChromium::setContentsToImage):
539         (WebCore::GraphicsLayerChromium::setContentsToCanvas):
540         (WebCore):
541         (WebCore::GraphicsLayerChromium::setContentsToMedia):
542         (WebCore::GraphicsLayerChromium::setContentsTo):
543         (WebCore::GraphicsLayerChromium::addAnimation):
544         (WebCore::GraphicsLayerChromium::pauseAnimation):
545         (WebCore::GraphicsLayerChromium::removeAnimation):
546         (WebCore::GraphicsLayerChromium::suspendAnimations):
547         (WebCore::GraphicsLayerChromium::resumeAnimations):
548         (WebCore::GraphicsLayerChromium::platformLayer):
549         (WebCore::GraphicsLayerChromium::setDebugBackgroundColor):
550         (WebCore::GraphicsLayerChromium::setDebugBorder):
551         (WebCore::GraphicsLayerChromium::updateChildList):
552         (WebCore::GraphicsLayerChromium::updateLayerPosition):
553         (WebCore::GraphicsLayerChromium::updateLayerSize):
554         (WebCore::GraphicsLayerChromium::updateAnchorPoint):
555         (WebCore::GraphicsLayerChromium::updateTransform):
556         (WebCore::GraphicsLayerChromium::updateChildrenTransform):
557         (WebCore::GraphicsLayerChromium::updateMasksToBounds):
558         (WebCore::GraphicsLayerChromium::updateLayerPreserves3D):
559         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
560         (WebCore::GraphicsLayerChromium::updateLayerBackgroundColor):
561         (WebCore::GraphicsLayerChromium::updateContentsRect):
562         (WebCore::GraphicsLayerChromium::updateContentsScale):
563         (WebCore::GraphicsLayerChromium::setupContentsLayer):
564         * platform/graphics/chromium/GraphicsLayerChromium.h:
565         (GraphicsLayerChromium):
566         (WebCore::GraphicsLayerChromium::hasContentsLayer):
567         (WebCore::GraphicsLayerChromium::contentLayer):
568         (WebCore::GraphicsLayerChromium::contentsLayer):
569         * platform/graphics/chromium/LayerChromium.cpp:
570         (WebCore::LayerChromium::rootLayer):
571         * platform/graphics/chromium/LayerChromium.h:
572
573 2012-08-22  Kentaro Hara  <haraken@chromium.org>
574
575         [V8] Move runScript() from V8Proxy to ScriptRunner
576         https://bugs.webkit.org/show_bug.cgi?id=94706
577
578         Reviewed by Adam Barth.
579
580         To kill V8Proxy, we can move runScript() from V8Proxy to ScriptRunner.
581
582         - ScriptRunner::runScript() should be a static method.
583         It should receive ScriptExecutionContext on which the script is evaluated.
584
585         - After this patch is landed, I'll remove WorkerContextExecutionContext::runScript()
586         and ScriptDebugServer::runScript().
587
588         No tests. No change in behavior.
589
590         * UseV8.cmake:
591         * WebCore.gypi:
592         * bindings/v8/ScriptController.cpp:
593         * bindings/v8/ScriptRunner.cpp: Added.
594         (WebCore):
595         (WebCore::ScriptRunner::runScript):
596         * bindings/v8/ScriptRunner.h: Added.
597         (WebCore):
598         (ScriptRunner):
599         * bindings/v8/V8Binding.cpp:
600         (WebCore::handleMaxRecursionDepthExceeded):
601         (WebCore):
602         * bindings/v8/V8Binding.h:
603         (WebCore):
604         * bindings/v8/V8Proxy.cpp:
605         (WebCore::V8Proxy::evaluate):
606         * bindings/v8/V8Proxy.h:
607         (V8Proxy):
608
609 2012-08-22  Adam Barth  <abarth@webkit.org>
610
611         [V8] OwnHandle doesn't need to support weak handles
612         https://bugs.webkit.org/show_bug.cgi?id=94760
613
614         Reviewed by Kentaro Hara.
615
616         No code uses makeWeak(). We can drop support for it and simplify this
617         class.
618
619         * bindings/v8/OwnHandle.h:
620         (WebCore):
621         (OwnHandle):
622         (WebCore::OwnHandle::OwnHandle):
623         (WebCore::OwnHandle::~OwnHandle):
624         (WebCore::OwnHandle::get):
625         (WebCore::OwnHandle::set):
626         (WebCore::OwnHandle::clear):
627
628 2012-08-22  Kentaro Hara  <haraken@chromium.org>
629
630         [V8] Remove V8Proxy from getXPathNSResolver()
631         https://bugs.webkit.org/show_bug.cgi?id=94715
632
633         Reviewed by Adam Barth.
634
635         - The V8Proxy* argument of getXPathNSResolver(..., V8Proxy* = 0) is not used.
636           We can remove it.
637
638         - We can rename getXPathNSResolver() to toXPathNSResolver().
639
640         - We can move toXPathNSResolver() from V8DOMWrapper to V8Binding,
641           since other toXXX() methods are written in V8Binding.
642
643         - Change the return value of toXPathNSResolver() from RefPtr to PassRefPtr.
644
645         No tests. No change in behavior.
646
647         * bindings/scripts/CodeGeneratorV8.pm:
648         (JSValueToNative):
649         * bindings/v8/V8Binding.cpp:
650         (WebCore::toXPathNSResolver):
651         (WebCore):
652         * bindings/v8/V8Binding.h:
653         (WebCore):
654         * bindings/v8/V8DOMWrapper.cpp:
655         * bindings/v8/V8DOMWrapper.h:
656         (V8DOMWrapper):
657         * bindings/v8/custom/V8DocumentCustom.cpp:
658         (WebCore::V8Document::evaluateCallback):
659
660 2012-08-22  Kenneth Russell  <kbr@google.com>
661
662         Unreviewed, rolling out r126325.
663         http://trac.webkit.org/changeset/126325
664         https://bugs.webkit.org/show_bug.cgi?id=94644
665
666         Caused subtle but reproducible failure to call onload handler
667         properly in an SVG layout test in Chromium Mac Debug builds,
668         indicating potentially larger problem
669
670         * css/CSSFontSelector.cpp:
671         (WebCore::CSSFontSelector::beginLoadTimerFired):
672         * loader/cache/CachedResourceLoader.cpp:
673         (WebCore::CachedResourceLoader::decrementRequestCount):
674
675 2012-08-22  Victor Carbune  <victor@rosedu.org>
676
677         Display a TextTrackCue when snap-to-lines flag is set
678         https://bugs.webkit.org/show_bug.cgi?id=79751
679
680         Reviewed by Tony Chang.
681
682         This patch implements rendering functionality for a given text track,
683         following closer the exact WebVTT specification. There are two new classes
684         which have been added in order to succesfully cover rendering when of a text
685         track cue.
686
687         RenderTextTrackCue handles the specific rendering algorithm required,
688         by checking for overlaps with other boxes that are in the same
689         container (these can be any other boxes, not necessarily other cues,
690         the video controls, for example).
691
692         TextTrackCueBox extends HTMLDivElement and is an intermediate layer
693         between the renderer class and the actual cue object. Its purpose is
694         to instantiate the particular renderer and cover all the default CSS
695         styling that needs to be applied to the cue.
696
697         The layout is done in two steps:
698           - Step 1: Layout the TextTrackCue with default CSS properties set (this is
699         the TextTrackCueBox decorated with the respective CSS elements)
700           - Step 2: RenderTextTrackCue adjusts the box position depending on the
701         parameters of the TextTrackCue object and the overlaps that may occur with
702         previously positioned cues.
703
704         Tests: media/track/track-cue-rendering-horizontal.html
705                media/track/track-cue-rendering-vertical.html
706
707         * CMakeLists.txt: Updated to include RenderTextTrackCue.
708         * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
709         * Target.pri: Updated to include RenderTextTrackCue.
710         * WebCore.gypi: Updated to include RenderTextTrackCue.
711         * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
712         * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
713         * css/mediaControls.css: Removed unreliable CSS.
714         (video::-webkit-media-text-track-display): Removed properties.
715         * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
716         (RenderTextTrackContainerElement):
717         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
718         the function by moving the check if track is rendered in TextTrack and used
719         the TextTrackCueBox for cues.
720         * html/track/TextTrack.cpp: Added a new method.
721         (WebCore::TextTrack::isRendered): Method that returns whether the track should
722         be rendered or not.
723         (WebCore):
724         * html/track/TextTrack.h: Added the isRendered method.
725         (TextTrack):
726         * html/track/TextTrackCue.cpp: Added several helper methods and
727         the TextTrackCueBox.
728         (WebCore):
729         (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
730         the HTMLDivElement and represents a bridge class between RenderTextTrackCue
731         and TextTrackCue. This is required as the layout is done in two steps, as
732         explained on top of the ChangeLog entry.
733         (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
734         (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
735         properties, as defined by section 3.5.1 of the WebVTT specification.
736         (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
737         (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
738         (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
739         (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
740         position algorithm. This requires, however, a method to consider only rendered
741         tracks (and therefore will be addressed completely in subsequent changeset).
742         (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
743         computed display parameters to match the current specification.
744         (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
745         and moved CSS application to the respective class.
746         (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
747         situation this method is used and change visibility to private.
748         (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
749         to the cue writing mode.
750         (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
751         writing direction.
752         (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
753         used in the first layout step.
754         * html/track/TextTrackCue.h:
755         (WebCore):
756         (TextTrackCueBox):
757         (WebCore::TextTrackCueBox::create): Initialization method.
758         (TextTrackCue):
759         (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
760         values used to represent the writing direction.
761         * rendering/RenderTextTrackCue.cpp: Added.
762         (WebCore):
763         (WebCore::RenderTextTrackCue::RenderTextTrackCue):
764         (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
765         the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
766         case. It is implemented following closely the spec, and might be subject to
767         change as discussions on various bugs evolve.
768         (WebCore::RenderTextTrackCue::initializeLayoutParameters): Steps 1 - 7.
769         (WebCore::RenderTextTrackCue::placeBoxInDefaultPosition): Steps 8 - 10.
770         (WebCore::RenderTextTrackCue::isOutside): Inline method to check if the cue is outside.
771         (WebCore::RenderTextTrackCue::isOverlapping): Inline method to check if the cue overlaps other boxes.
772         (WebCore::RenderTextTrackCue::shouldSwitchDirection): Step 12.
773         (WebCore::RenderTextTrackCue::moveBoxesByStep): Step 13.
774         (WebCore::RenderTextTrackCue::switchDirection): Steps 15 - 18.
775         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Cue repositioning
776         for text track cue when the snap to lines flag is set.
777         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Cue repositioning
778         for text track cue when the snap to lines flag is not set. Not implemented yet.
779         * rendering/RenderTextTrackCue.h: Added.
780         (WebCore):
781         (RenderTextTrackCue): Rendering class, handling the display of cues.
782
783 2012-08-21  Kentaro Hara  <haraken@chromium.org>
784
785         [V8] Move matchesCurrentContext() from V8Proxy to ScriptController
786         https://bugs.webkit.org/show_bug.cgi?id=94596
787
788         Reviewed by Adam Barth.
789
790         To kill V8Proxy:
791
792         - We can move matchesCurrentContext() from V8Proxy to ScriptController.
793         - We can remove V8Proxy::isolatedWorldContext() since it is not used by anybody.
794         - We can remove V8Proxy::finishedWithEvent() since it is empty.
795
796         No tests. No change in behavior.
797
798         * bindings/scripts/CodeGeneratorV8.pm:
799         (GenerateToV8Converters):
800         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
801         (WebCore::V8TestActiveDOMObject::wrapSlow):
802         * bindings/scripts/test/V8/V8TestNode.cpp:
803         (WebCore::V8TestNode::wrapSlow):
804         * bindings/v8/ScriptController.cpp:
805         (WebCore::ScriptController::finishedWithEvent):
806         (WebCore::ScriptController::matchesCurrentContext):
807         (WebCore):
808         * bindings/v8/ScriptController.h:
809         (ScriptController):
810         * bindings/v8/V8Proxy.cpp:
811         * bindings/v8/V8Proxy.h:
812         (V8Proxy):
813
814 2012-08-22  Alejandro PiƱeiro  <apinheiro@igalia.com>
815
816         [Gtk] Dojo toggle buttons should expose ROLE_TOGGLE_BUTTON not ROLE_PUSH_BUTTON
817         https://bugs.webkit.org/show_bug.cgi?id=73819
818
819         Reviewed by Chris Fleizach.
820
821         Added a new role, Toggle Button, based on whether aria-pressed is present.
822         http://www.w3.org/TR/wai-aria/states_and_properties#aria-pressed
823
824         Test: platform/gtk/accessibility/aria-toggle-button-role.html
825
826         * accessibility/AccessibilityNodeObject.cpp:
827         (WebCore::AccessibilityNodeObject::determineAccessibilityRole): using buttonRoleType
828         to classify a button-related role.
829         (WebCore::AccessibilityNodeObject::determineAriaRoleAttribute): using buttonRoleType
830         to classify a button-related role.
831         * accessibility/AccessibilityObject.cpp:
832         (WebCore::AccessibilityObject::ariaPressedIsPresent): checks if aria-pressed
833         attribute is present.
834         (WebCore::AccessibilityObject::buttonRoleType): returns a specific button-related
835         role if the object is a button-related role.
836         * accessibility/AccessibilityObject.h:
837         (AccessibilityObject): added new role ToggleButtonRole.
838         * accessibility/AccessibilityRenderObject.cpp:
839         (WebCore::AccessibilityRenderObject::determineAccessibilityRole): using buttonRoleType
840         to classify a button-related role.
841         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
842         (atkRole): added a mapping between ToggleButtonRole and
843         ATK_ROLE_TOGGLE_BUTTON.
844         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
845         (createAccessibilityRoleMap): added a mapping between
846         ToggleButtonRole and NSAccessibilityButtonRole
847
848 2012-08-22  David Grogan  <dgrogan@chromium.org>
849
850         IndexedDB: revert int version when version change transaction aborts
851         https://bugs.webkit.org/show_bug.cgi?id=94662
852
853         Reviewed by Tony Chang.
854
855         Test: storage/indexeddb/intversion-revert-on-abort.html
856
857         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
858         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
859         (WebCore::IDBDatabaseBackendImpl::resetIntVersion):
860         One-liner modeled after resetVersion.
861
862         (WebCore):
863         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
864         (IDBDatabaseBackendImpl):
865
866 2012-08-17  Jeffrey Pfau  <jpfau@apple.com>
867
868         Allow blocking of Web SQL databases in third-party web workers
869         https://bugs.webkit.org/show_bug.cgi?id=94170
870
871         Reviewed by Adam Barth.
872
873         Web workers did not previously know anything about the document that
874         spawned them. This is undefined for shared workers, but for dedicated
875         workers, we now pipe the information through.
876
877         Tests: http/tests/security/cross-origin-worker-websql-allowed.html
878                http/tests/security/cross-origin-worker-websql.html
879
880         * Modules/webdatabase/WorkerContextWebDatabase.cpp: Pass information about the top origin to canAccessDatabase
881         (WebCore::WorkerContextWebDatabase::openDatabase):
882         (WebCore::WorkerContextWebDatabase::openDatabaseSync):
883         * WebCore.exp.in: Make SecurityOrigin::isolatedCopy const
884         * page/SecurityOrigin.cpp:
885         (WebCore::SecurityOrigin::isolatedCopy):
886         (WebCore::SecurityOrigin::canAccessStorage):
887         * page/SecurityOrigin.h:
888         * workers/DedicatedWorkerContext.cpp: Pass topOrigin
889         (WebCore::DedicatedWorkerContext::create):
890         (WebCore::DedicatedWorkerContext::DedicatedWorkerContext):
891         * workers/DedicatedWorkerContext.h:
892         (DedicatedWorkerContext):
893         * workers/DedicatedWorkerThread.cpp: Pass topOrigin
894         (WebCore::DedicatedWorkerThread::create):
895         (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
896         (WebCore::DedicatedWorkerThread::createWorkerContext):
897         * workers/DedicatedWorkerThread.h:
898         (DedicatedWorkerThread):
899         * workers/SharedWorkerContext.cpp: Pass topOrigin
900         (WebCore::SharedWorkerContext::SharedWorkerContext):
901         * workers/SharedWorkerThread.cpp:
902         (WebCore::SharedWorkerThread::SharedWorkerThread):
903         (WebCore::SharedWorkerThread::createWorkerContext):
904         * workers/SharedWorkerThread.h:
905         (SharedWorkerThread): Pass topOrigin
906         * workers/WorkerContext.cpp:
907         (WebCore::WorkerContext::WorkerContext):
908         * workers/WorkerContext.h:
909         (WebCore::WorkerContext::topOrigin):
910         (WorkerContext):
911         * workers/WorkerMessagingProxy.cpp: Pass topOrigin
912         (WebCore::WorkerMessagingProxy::startWorkerContext):
913         * workers/WorkerThread.cpp:
914         (WebCore::WorkerThreadStartupData::create):
915         (WorkerThreadStartupData):
916         (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
917         (WebCore::WorkerThread::WorkerThread):
918         (WebCore::WorkerThread::workerThread):
919         * workers/WorkerThread.h:
920         (WorkerThread):
921
922 2012-08-22  Kentaro Hara  <haraken@chromium.org>
923
924         [V8] Move context() from V8Proxy to ScriptController
925         https://bugs.webkit.org/show_bug.cgi?id=94593
926
927         Reviewed by Adam Barth.
928
929         - This patch removes V8Proxy::context(Frame*).
930         - This patch moves V8Proxy::context() to ScriptController::context().
931         - This patch renames ScriptController::context() to ScriptController::currentWorldContext(),
932         for naming consistency with ScriptController::maintWorldContext().
933
934         No tests. No change in behavior.
935
936         * bindings/scripts/CodeGeneratorV8.pm:
937         (GenerateToV8Converters):
938         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
939         (WebCore::V8TestActiveDOMObject::wrapSlow):
940         * bindings/scripts/test/V8/V8TestNode.cpp:
941         (WebCore::V8TestNode::wrapSlow):
942         * bindings/v8/ScriptController.cpp:
943         (WebCore::ScriptController::context):
944         (WebCore):
945         * bindings/v8/ScriptController.h:
946         (ScriptController):
947         * bindings/v8/V8DOMWrapper.cpp:
948         (WebCore::V8DOMWrapper::setNamedHiddenWindowReference):
949         * bindings/v8/V8Proxy.cpp:
950         * bindings/v8/V8Proxy.h:
951         (V8Proxy):
952         * bindings/v8/custom/V8DOMWindowCustom.cpp:
953         (WebCore::WindowSetTimeoutImpl):
954         (WebCore::V8DOMWindow::eventAccessorGetter):
955         (WebCore::V8DOMWindow::eventAccessorSetter):
956         (WebCore::DialogHandler::dialogCreated):
957         (WebCore::toV8):
958         * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
959         (WebCore::V8HTMLDocument::openCallback):
960
961 2012-08-22  Kentaro Hara  <haraken@chromium.org>
962
963         [V8] Remove V8Proxy from V8DOMWrapper::instantiateV8Object()
964         https://bugs.webkit.org/show_bug.cgi?id=94713
965
966         Reviewed by Adam Barth.
967
968         To kill V8Proxy, V8DOMWrapper::instantiateV8Object() should receive Frame*
969         instead of V8Proxy*.
970
971         No tests. No change in behavior.
972
973         * bindings/scripts/CodeGeneratorV8.pm:
974         (GenerateToV8Converters):
975         * bindings/scripts/test/V8/V8Float64Array.cpp:
976         (WebCore::V8Float64Array::wrapSlow):
977         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
978         (WebCore::V8TestActiveDOMObject::wrapSlow):
979         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
980         (WebCore::V8TestCustomNamedGetter::wrapSlow):
981         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
982         (WebCore::V8TestEventConstructor::wrapSlow):
983         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
984         (WebCore::V8TestEventTarget::wrapSlow):
985         * bindings/scripts/test/V8/V8TestException.cpp:
986         (WebCore::V8TestException::wrapSlow):
987         * bindings/scripts/test/V8/V8TestInterface.cpp:
988         (WebCore::V8TestInterface::wrapSlow):
989         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
990         (WebCore::V8TestMediaQueryListListener::wrapSlow):
991         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
992         (WebCore::V8TestNamedConstructor::wrapSlow):
993         * bindings/scripts/test/V8/V8TestNode.cpp:
994         (WebCore::V8TestNode::wrapSlow):
995         * bindings/scripts/test/V8/V8TestObj.cpp:
996         (WebCore::V8TestObj::wrapSlow):
997         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
998         (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
999         * bindings/v8/V8DOMWrapper.cpp:
1000         (WebCore):
1001         (WebCore::V8DOMWrapper::instantiateV8Object):
1002         * bindings/v8/V8DOMWrapper.h:
1003         (V8DOMWrapper):
1004
1005 2012-08-22  Joshua Bell  <jsbell@chromium.org>
1006
1007         IndexedDB: IDBRequest can be destructed during abort
1008         https://bugs.webkit.org/show_bug.cgi?id=94618
1009
1010         Reviewed by Tony Chang.
1011
1012         If there are no script references, an IDBRequest could be kept alive
1013         only by enqueued events. On document destruction, the parent transaction
1014         is aborted, which aborts the request. During the abort, the enqueued events
1015         are deleted, releasing the last reference to the IDBRequest which then
1016         destructs in mid-method call and an "unfinished" state, hitting an assert.
1017
1018         This patch keeps the IDBRequest alive through the completion of the abort()
1019         method, which will enqueue another event. In the document destruction case,
1020         this will end up with the IDBRequest having stop() called on it which will
1021         send the IDBRequest into EarlyDeath state, satisfying the destructor assert.
1022
1023         Addresses existing layout tests that behave flakily in Chromium port.
1024
1025         * Modules/indexeddb/IDBRequest.cpp:
1026         (WebCore::IDBRequest::abort):
1027
1028 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1029
1030         [V8] Move precompileScript() from V8Proxy to ScriptSourceCode
1031         https://bugs.webkit.org/show_bug.cgi?id=94701
1032
1033         Reviewed by Adam Barth.
1034
1035         To kill V8Proxy, we can move precompileScript() from V8Proxy
1036         to ScriptSourceCode.
1037
1038         No tests. No change in behavior.
1039
1040         * bindings/v8/ScriptSourceCode.cpp:
1041         (WebCore::ScriptSourceCode::precompileScript):
1042         (WebCore):
1043         * bindings/v8/ScriptSourceCode.h:
1044         (ScriptSourceCode):
1045         * bindings/v8/V8Proxy.cpp:
1046         (WebCore::V8Proxy::evaluate):
1047         * bindings/v8/V8Proxy.h:
1048         (V8Proxy):
1049
1050 2012-08-22  Nikhil Bhargava  <nbhargava@google.com>
1051
1052         Reduce Font.h includes across project -- improves RenderObject.h compile time
1053         https://bugs.webkit.org/show_bug.cgi?id=93629
1054
1055         Reviewed by Eric Seidel.
1056
1057         RenderStyle.h no longer depends on Font.h. The files that transitively
1058         need to be updated with proper includes are fixed.
1059
1060         No new tests. Functionality should remain the same.
1061
1062         * accessibility/gtk/WebKitAccessibleInterfaceText.cpp:
1063         * accessibility/mac/WebAccessibilityObjectWrapper.mm:
1064         * bindings/objc/DOM.mm:
1065         * css/CSSComputedStyleDeclaration.cpp:
1066         * css/CSSPrimitiveValue.cpp:
1067         * css/StyleResolver.h:
1068         * dom/CharacterData.cpp:
1069         * dom/ElementRareData.h:
1070         * dom/NodeRenderingContext.cpp:
1071         * dom/Text.cpp:
1072         * editing/TextIterator.cpp:
1073         * editing/mac/EditorMac.mm:
1074         * html/HTMLTitleElement.cpp:
1075         * html/shadow/TextControlInnerElements.cpp:
1076         * inspector/InspectorOverlay.cpp:
1077         * page/ContextMenuController.cpp:
1078         * page/PrintContext.cpp:
1079         * platform/efl/RenderThemeEfl.cpp:
1080         * platform/graphics/FontMetrics.h:
1081         * platform/gtk/RenderThemeGtk.cpp:
1082         * platform/gtk/RenderThemeGtk2.cpp:
1083         * platform/mac/HTMLConverter.mm:
1084         * rendering/EllipsisBox.cpp:
1085         * rendering/FlowThreadController.cpp:
1086         * rendering/InlineBox.cpp:
1087         * rendering/InlineFlowBox.cpp:
1088         * rendering/InlineFlowBox.h:
1089         (WebCore):
1090         * rendering/RenderButton.cpp:
1091         * rendering/RenderCombineText.cpp:
1092         * rendering/RenderCombineText.h:
1093         * rendering/RenderDeprecatedFlexibleBox.cpp:
1094         * rendering/RenderEmbeddedObject.h:
1095         (WebCore):
1096         * rendering/RenderFileUploadControl.cpp:
1097         * rendering/RenderFullScreen.h:
1098         * rendering/RenderImage.cpp:
1099         * rendering/RenderInline.cpp:
1100         * rendering/RenderListItem.cpp:
1101         * rendering/RenderListMarker.cpp:
1102         * rendering/RenderMultiColumnBlock.cpp:
1103         * rendering/RenderRegion.h:
1104         * rendering/RenderRuby.cpp:
1105         * rendering/RenderRubyRun.cpp:
1106         * rendering/RenderScrollbar.cpp:
1107         * rendering/RenderTable.cpp:
1108         * rendering/RenderTableCell.cpp:
1109         * rendering/RenderTableRow.cpp:
1110         * rendering/RenderTableSection.cpp:
1111         * rendering/RenderTextControl.cpp:
1112         * rendering/RenderTextControlMultiLine.cpp:
1113         * rendering/RenderThemeChromiumSkia.cpp:
1114         * rendering/RenderView.cpp:
1115         * rendering/TextAutosizer.cpp:
1116         * rendering/mathml/RenderMathMLBlock.h:
1117         * rendering/style/KeyframeList.h:
1118         * rendering/style/RenderStyle.cpp:
1119         * rendering/style/RenderStyle.h:
1120         (WebCore):
1121         * rendering/style/StyleInheritedData.cpp:
1122         * rendering/svg/RenderSVGBlock.cpp:
1123         * rendering/svg/RenderSVGInlineText.h:
1124         * svg/SVGLengthContext.cpp:
1125         * svg/SVGTRefElement.cpp:
1126
1127 2012-08-22  Alex Christensen  <alex.christensen@flexsim.com>
1128         win64 compile error fix for BinaryPropertyList.cpp
1129         https://bugs.webkit.org/show_bug.cgi?id=94122
1130
1131         Reviewed by Eric Seidel.
1132
1133         Fixed compile errors for MSVC x64 without changing performance
1134
1135         * platform/cf/BinaryPropertyList.cpp:
1136         (WebCore::BinaryPropertyListSerializer::appendStringObject):
1137
1138 2012-08-22  Kwang Yul Seo  <skyul@company100.net>
1139
1140         HTMLTreeBuilder::furthestBlockForFormattingElement should belong to HTMLElementStack
1141         https://bugs.webkit.org/show_bug.cgi?id=93857
1142
1143         Reviewed by Eric Seidel.
1144
1145         HTMLTreeBuilder::furthestBlockForFormattingElement should belong to
1146         HTMLElementStack because it traverses the element stack and finds the
1147         furthest block for the given formatting element.
1148
1149         Currently, it belongs to HTMLTreeBuilder just because
1150         isSpecialNode(const HTMLStackItem*) function used by
1151         furthestBlockForFormattingElement is internal to HTMLTreeBuilder.
1152
1153         Moved isSpecialNode to HTMLStackItem and changed
1154         furthestBlockForFormattingElement to be a method of HTMLElementStack.
1155
1156         No behavior change. Just a refactoring.
1157
1158         * html/parser/HTMLElementStack.cpp:
1159         (WebCore):
1160         (WebCore::HTMLElementStack::popUntilNumberedHeaderElementPopped):
1161         (WebCore::HTMLElementStack::hasNumberedHeaderElementInScope):
1162         (WebCore::HTMLElementStack::furthestBlockForFormattingElement):
1163         * html/parser/HTMLElementStack.h:
1164         (HTMLElementStack):
1165         * html/parser/HTMLStackItem.h:
1166         (WebCore::HTMLStackItem::isInHTMLNamespace):
1167         (HTMLStackItem):
1168         (WebCore::HTMLStackItem::isNumberedHeaderElement):
1169         (WebCore::HTMLStackItem::isTableBodyContextElement):
1170         (WebCore::HTMLStackItem::isSpecialNode):
1171         * html/parser/HTMLTreeBuilder.cpp:
1172         (WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken):
1173         (WebCore::HTMLTreeBuilder::processCloseWhenNestedTag):
1174         (WebCore::HTMLTreeBuilder::processStartTagForInBody):
1175         (WebCore::HTMLTreeBuilder::processAnyOtherEndTagForInBody):
1176         (WebCore::HTMLTreeBuilder::callTheAdoptionAgency):
1177         (WebCore::HTMLTreeBuilder::shouldProcessTokenInForeignContent):
1178         (WebCore::HTMLTreeBuilder::processTokenInForeignContent):
1179         * html/parser/HTMLTreeBuilder.h:
1180
1181 2012-08-22  Alexandre Elias  <aelias@google.com>
1182
1183         [chromium] Add software bitmap resources to CCResourceProvider
1184         https://bugs.webkit.org/show_bug.cgi?id=93677
1185
1186         Reviewed by Adrienne Walker.
1187
1188         Second commit after revert.
1189
1190         This adds the ability to CCResourceProvider to use software bitmaps.
1191         They are allocated as plain-old-memory, and exposed as Skia objects.
1192
1193         We want the ResourceProvider to be able to handle different resource
1194         types at the same time.  In practice, a default resource type is
1195         desired for most uses within a single compositor instance, which is
1196         specified by the default resource type.  Default resource types are
1197         expected to be mostly 1-to-1 with CCRenderer types.
1198
1199         New tests added by parametrizing existing CCResourceProvider tests.
1200
1201         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
1202         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
1203         * platform/graphics/chromium/LayerRendererChromium.cpp:
1204         (WebCore::applyFilters):
1205         (WebCore::LayerRendererChromium::drawRenderPassQuad):
1206         (WebCore::LayerRendererChromium::drawTileQuad):
1207         (WebCore::LayerRendererChromium::drawYUVVideoQuad):
1208         (WebCore::LayerRendererChromium::drawTextureQuad):
1209         (WebCore::LayerRendererChromium::getFramebufferTexture):
1210         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
1211         * platform/graphics/chromium/LayerRendererChromium.h:
1212         (DrawingFrame):
1213         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
1214         (WebCore::CCResourceProvider::createResource):
1215         (WebCore):
1216         (WebCore::CCResourceProvider::createGLTexture):
1217         (WebCore::CCResourceProvider::createBitmap):
1218         (WebCore::CCResourceProvider::createResourceFromExternalTexture):
1219         (WebCore::CCResourceProvider::deleteResource):
1220         (WebCore::CCResourceProvider::upload):
1221         (WebCore::CCResourceProvider::flush):
1222         (WebCore::CCResourceProvider::shallowFlushIfSupported):
1223         (WebCore::CCResourceProvider::lockForRead):
1224         (WebCore::CCResourceProvider::unlockForRead):
1225         (WebCore::CCResourceProvider::lockForWrite):
1226         (WebCore::CCResourceProvider::unlockForWrite):
1227         (WebCore::CCResourceProvider::ScopedReadLockGL::ScopedReadLockGL):
1228         (WebCore::CCResourceProvider::ScopedReadLockGL::~ScopedReadLockGL):
1229         (WebCore::CCResourceProvider::ScopedWriteLockGL::ScopedWriteLockGL):
1230         (WebCore::CCResourceProvider::ScopedWriteLockGL::~ScopedWriteLockGL):
1231         (WebCore::CCResourceProvider::populateSkBitmapWithResource):
1232         (WebCore::CCResourceProvider::ScopedReadLockSoftware::ScopedReadLockSoftware):
1233         (WebCore::CCResourceProvider::ScopedReadLockSoftware::~ScopedReadLockSoftware):
1234         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::ScopedWriteLockSoftware):
1235         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::~ScopedWriteLockSoftware):
1236         (WebCore::CCResourceProvider::CCResourceProvider):
1237         * platform/graphics/chromium/cc/CCResourceProvider.h:
1238         (WebCore):
1239         (WebCore::CCResourceProvider::setCreationPolicy):
1240         (WebCore::CCResourceProvider::creationPolicy):
1241         (CCResourceProvider):
1242         (ScopedReadLockGL):
1243         (WebCore::CCResourceProvider::ScopedReadLockGL::textureId):
1244         (ScopedWriteLockGL):
1245         (WebCore::CCResourceProvider::ScopedWriteLockGL::textureId):
1246         (ScopedReadLockSoftware):
1247         (WebCore::CCResourceProvider::ScopedReadLockSoftware::skBitmap):
1248         (ScopedWriteLockSoftware):
1249         (WebCore::CCResourceProvider::ScopedWriteLockSoftware::skCanvas):
1250         (Resource):
1251
1252 2012-08-22  Anna Cavender  <annacc@chromium.org>
1253
1254         Update the TextTrackCue Constructor
1255         https://bugs.webkit.org/show_bug.cgi?id=88583
1256
1257         Reviewed by Eric Carlson.
1258
1259         The TextTrackCue constructor has been changed to:
1260         [Constructor(double startTime, double endTime, DOMString text)]
1261         http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#texttrackcue
1262
1263         No new tests.  Update to media/track/track-add-remove-cue.html
1264
1265         * html/track/TextTrackCue.cpp:
1266         (WebCore::TextTrackCue::TextTrackCue):
1267         * html/track/TextTrackCue.h:
1268         (WebCore::TextTrackCue::create):
1269         (TextTrackCue):
1270         * html/track/TextTrackCue.idl:
1271         * html/track/WebVTTParser.cpp:
1272         (WebCore::WebVTTParser::createNewCue):
1273
1274 2012-08-22  Erik Arvidsson  <arv@chromium.org>
1275
1276         Changing class attribute is not reflected in the classList property
1277         https://bugs.webkit.org/show_bug.cgi?id=93665
1278
1279         Reviewed by Ojan Vafai.
1280
1281         Before this change classAttributeChanged was only called for StyledElement. With this refactoring
1282         it gets called for all Elements when the class attribute changes.
1283
1284         Test: fast/dom/Element/class-list-update.html
1285
1286         * css/StyleResolver.cpp:
1287         (WebCore::StyleResolver::collectMatchingRules): To match the old behavior we only include StyledElements.
1288         * dom/ClassNodeList.cpp:
1289         (WebCore::ClassNodeList::nodeMatches): Ditto.
1290         * dom/Element.cpp:
1291         (WebCore::Element::attributeChanged): Moved the call to parseAttribute here, from StyledElement::attributeChanged.
1292         (WebCore::Element::parseAttribute): Moved from StyledElement.
1293         (WebCore):
1294         (WebCore::Element::classAttributeChanged): Ditto.
1295         * dom/Element.h:
1296         (Element):
1297         (WebCore::Element::classNames): Ditto.
1298         (WebCore):
1299         * dom/StyledElement.cpp:
1300         (WebCore::StyledElement::attributeChanged): Let Element::attributeChanged call parseAttribtue instead.
1301         (WebCore::StyledElement::parseAttribute): Move the class attribute handling to Element::parseAttribute.
1302         * dom/StyledElement.h:
1303         (StyledElement):
1304
1305 2012-08-22  Kentaro Hara  <haraken@chromium.org>
1306
1307         [V8] Replace v8::String::NewSymbol() in CodeGeneratorV8.pm with v8String()
1308         https://bugs.webkit.org/show_bug.cgi?id=94588
1309
1310         Reviewed by Eric Seidel.
1311
1312         v8String() is faster than String::NewSymbol().
1313         This patch implements v8String(char*, Isolate*) and
1314         replaces String::NewSymbol(char*) in CodeGeneratorV8.pm
1315         with v8String(char*, Isolate*).
1316
1317         Performance result:
1318
1319         // 272 nano sec
1320         static v8::Handle<v8::Value> attr3AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
1321         {
1322             v8::Handle<v8::Value> v1 = v8String(String("foo"));
1323             v8::Handle<v8::Value> v2 = v8String(String("bar"));
1324             if (!v1.IsEmpty() && !v2.IsEmpty())
1325                 return v8Undefined();
1326             return v8::Null(); // Never reach.
1327         }
1328
1329         // 377 nano sec
1330         static v8::Handle<v8::Value> attr4AttrGetter(v8::Local<v8::String> name, const v8::AccessorInfo& info)
1331         {
1332             v8::Handle<v8::Value> v1 = v8::String::NewSymbol("foo");
1333             v8::Handle<v8::Value> v2 = v8::String::NewSymbol("bar");
1334             if (!v1.IsEmpty() && !v2.IsEmpty())
1335                 return v8Undefined();
1336             return v8::Null(); // Never reach.
1337         }
1338
1339         No tests. No change in behavior.
1340
1341         * bindings/scripts/CodeGeneratorV8.pm:
1342         (GenerateNormalAttrGetter):
1343         (GenerateNormalAttrSetter):
1344         (GenerateNamedConstructorCallback):
1345         (GenerateNonStandardFunction):
1346         (GenerateImplementation):
1347         * bindings/scripts/test/V8/V8Float64Array.cpp:
1348         (WebCore::ConfigureV8Float64ArrayTemplate):
1349         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
1350         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
1351         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
1352         (WebCore::ConfigureV8TestEventTargetTemplate):
1353         * bindings/scripts/test/V8/V8TestInterface.cpp:
1354         (WebCore::ConfigureV8TestInterfaceTemplate):
1355         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
1356         (WebCore::V8TestNamedConstructorConstructor::GetTemplate):
1357         * bindings/scripts/test/V8/V8TestObj.cpp:
1358         (WebCore::ConfigureV8TestObjTemplate):
1359         (WebCore::V8TestObj::installPerContextProperties):
1360         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
1361         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrGetter):
1362         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedValueAttrSetter):
1363         (WebCore::TestSerializedScriptValueInterfaceV8Internal::cachedReadonlyValueAttrGetter):
1364         * bindings/v8/V8Binding.h:
1365         (WebCore):
1366         (WebCore::v8String):
1367         * html/HTMLDivElement.idl:
1368
1369 2012-08-22  Pratik Solanki  <psolanki@apple.com>
1370
1371         Setting WebKitEnableHTTPPipelining doesn't work if default is true
1372         https://bugs.webkit.org/show_bug.cgi?id=94537
1373
1374         Reviewed by David Kilzer.
1375
1376         * platform/network/cf/ResourceRequestCFNet.cpp:
1377         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Read in the HTTP pipelining pref and
1378         allow it to override the default pipelining behavior if it was actually set.
1379
1380 2012-08-22  W. James MacLean  <wjmaclean@chromium.org>
1381
1382         [chromium] Add touch link highlight animation layers.
1383         https://bugs.webkit.org/show_bug.cgi?id=84487
1384
1385         Reviewed by James Robinson.
1386
1387         Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
1388         implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
1389         Transform support currently limited to translation.
1390
1391         Unit tests for LinkHighlight revised.
1392
1393         Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
1394                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
1395                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
1396                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
1397                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
1398                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
1399                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
1400                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
1401                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
1402                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
1403                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
1404                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
1405                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
1406                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
1407                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
1408                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
1409                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
1410                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
1411                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
1412                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
1413                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
1414                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
1415                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
1416                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
1417                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
1418                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
1419                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
1420                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
1421                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
1422                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
1423                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
1424                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
1425                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
1426                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
1427                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
1428                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
1429                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
1430                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
1431                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
1432                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
1433                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
1434
1435         * WebCore.gypi:
1436         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1437         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
1438         (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
1439         (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
1440         (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
1441         (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
1442         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
1443         (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
1444         (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
1445         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
1446         * platform/graphics/chromium/GraphicsLayerChromium.h:
1447         (WebCore):
1448         (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
1449         (WebCore::LinkHighlightClient::~LinkHighlightClient):
1450         (GraphicsLayerChromium):
1451         (WebCore::GraphicsLayerChromium::linkHighlight):
1452         * platform/graphics/chromium/LinkHighlight.cpp: Removed.
1453
1454 2012-08-22  Beth Dakin  <bdakin@apple.com>
1455
1456         https://bugs.webkit.org/show_bug.cgi?id=94401
1457         Add support for making a web site become paginated using overflow: 
1458         paged-x | paged-y
1459         -and corresponding-
1460         <rdar://problem/11831783> 
1461
1462         Reviewed by Dave Hyatt.
1463
1464         This patch adds two new possible values for overflow-y. They are -
1465         webkit-paged-x and -webkit-paged-y. When you set these as overflow-y 
1466         values on the html or body element, they make the RenderView 
1467         paginated, much like the API on Page.
1468
1469         -webkit-paged-x and -webkit-paged-y are only valid values for 
1470         overflow-y, NOT overflow-x. overflow-x defaults to a value of auto 
1471         (for now) unless it has been set to something else.
1472         * css/CSSParser.cpp:
1473         (WebCore::isValidKeywordPropertyAndValue):
1474         (WebCore::CSSParser::parseValue):
1475
1476         Two new CSS value keywords.
1477         * css/CSSValueKeywords.in:
1478
1479         EOverflow has two new values for pagination. 
1480         * rendering/style/RenderStyleConstants.h:
1481         * css/CSSPrimitiveValueMappings.h:
1482         (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
1483         (WebCore::CSSPrimitiveValue::operator EOverflow):
1484
1485         A bunch of existing code from StyleResolver::styleForDocument() is 
1486         moved into a helper function so that it can be called from two 
1487         places. 
1488         * css/StyleResolver.cpp:
1489         (WebCore::StyleResolver::collectMatchingRulesForList):
1490
1491         Even though this pagination is very similar to Page::pagination(), it 
1492         is different in one critical way. Page::pagination() will apply to 
1493         all FrameViews, even those in the page cache. For this reason, 
1494         FrameView needs to keep its own Pagination value that just applies to 
1495         this FrameView.
1496         * page/FrameView.cpp:
1497         * page/FrameView.h:
1498         (WebCore):
1499         (FrameView):
1500
1501         Map RenderStyle values to a Pagination::Mode.
1502         (WebCore::paginationModeForRenderStyle):
1503         (WebCore):
1504
1505         Account for paged-x and paged-y here.
1506         (WebCore::FrameView::applyOverflowToViewport):
1507
1508         As is explained in the header, FrameView::pagination() will return 
1509         m_pagination if it has been set. Otherwise, it will return 
1510         Page::pagination() since currently there are no callers that need to 
1511         distinguish between the two.
1512         (WebCore::FrameView::pagination):
1513         (WebCore::FrameView::setPagination):
1514
1515         Generally this means that everywhere in WebCore should ask FrameView 
1516         for the pagination(), not Page. These call sites all look to 
1517         FrameView now.
1518         (WebCore::FrameView::paintContents):
1519         * rendering/RenderView.cpp:
1520         (WebCore::RenderView::requiresColumns):
1521         (WebCore::RenderView::calcColumnWidth):
1522         (WebCore::RenderView::paginationUnit):
1523         (WebCore::RenderView::viewLogicalHeight):
1524
1525         Since we need to define Pagination in Page.h AND FrameView.h, it is 
1526         now in its own header, Pagination.h. And therefore it is no longer 
1527         WebCore::Page::Pagination, but rather it is just WebCore::Pagination.
1528         * page/Page.h:
1529         (Page):
1530         * rendering/Pagination.h: Added.
1531         (WebCore):
1532         (WebCore::Pagination::Pagination):
1533         (Pagination):
1534         (WebCore::Pagination::operator==):
1535         (WebCore::Pagination::operator!=):
1536         * WebCore.exp.in:
1537         * WebCore.xcodeproj/project.pbxproj:
1538         * GNUmakefile.list.am:
1539         * Target.pri:
1540         * WebCore.exp.in:
1541         * WebCore.gypi:
1542
1543         Certain ColumnInfo values are set based on the RenderStyle. So if 
1544         those RenderStyle values change, the ColumnInfo needs to be updated.
1545         * rendering/RenderBlock.cpp:
1546         (WebCore::RenderBlock::updateColumnInfoFromStyle):
1547         (WebCore):
1548         * rendering/RenderBlock.h:
1549         (RenderBlock):
1550
1551         Factor in paged-x and paged-y when determining if a RenderBlock 
1552         requires columns.
1553         (WebCore::RenderBlock::requiresColumns):
1554
1555         RenderStyle::specifiesColumns() is an odd and probably broken 
1556         function. At the very least, it should be re-named, if not removed 
1557         entirely. It does not accurately assess if columns have been 
1558         specified. I had to add this code here because specifiesColumns() 
1559         returns false for paged-x and true for paged-y. We were hitting a 
1560         number of crashes with paged-y because of this, so I chose for the 
1561         time being to limit this check to non-root layers.
1562         * rendering/RenderLayer.cpp:
1563         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
1564
1565         It's just Pagination now, not Page::Pagination.
1566         * testing/InternalSettings.cpp:
1567         (WebCore::InternalSettings::reset):
1568         (WebCore::InternalSettings::setPagination):
1569
1570 2012-08-22  Dean Jackson  <dino@apple.com>
1571
1572         [WebGL] Mac/ATI/AMD systems need to translate built-in GLSL functions
1573         https://bugs.webkit.org/show_bug.cgi?id=94030
1574
1575         Reviewed by Tim Horton.
1576
1577         ATI/AMD GPUs on Apple platforms do not give correct values for some of
1578         the built-in GLSL functions. Add a compile flag that is passed to ANGLE
1579         so that, with this configuration, it will rewrite the shader to emulate
1580         the function in code.
1581
1582         This is exposing some design weaknesses in the way we call ANGLE. We'll
1583         soon need to add more compiler flags; Future bugs will likely clean
1584         this code up. But this approach is satisfactory for the moment.
1585
1586         This change is tested by the Khronos WebGL conformance test suite, in particular:
1587         conformance/glsl/functions/glsl-function-distance.html
1588         conformance/glsl/functions/glsl-function-dot.html
1589         conformance/glsl/functions/glsl-function-length.html
1590
1591         * platform/graphics/ANGLEWebKitBridge.cpp:
1592         (WebCore::ANGLEWebKitBridge::validateShaderSource): Test for ATI cards
1593         on the Mac platform, and pass in an extra flag to the translation step.
1594         * platform/graphics/ANGLEWebKitBridge.h:
1595         (ANGLEWebKitBridge): Add a new parameter to getTranslatedShaderSourceANGLE
1596         that accepts some extra options to pass to ANGLE.
1597         * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
1598         (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE): Pass
1599         the extra options into ANGLE's compile function.
1600
1601 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
1602
1603         [chromium] MediaStream API: Add MockWebRTCPeerConnectionHandler
1604         https://bugs.webkit.org/show_bug.cgi?id=93091
1605
1606         Reviewed by Adam Barth.
1607
1608         Fixing a FIXME that the patch obsoletes.
1609
1610         Covered by existing tests.
1611
1612         * platform/mediastream/chromium/RTCPeerConnectionHandlerChromium.cpp:
1613         (WebCore::RTCPeerConnectionHandlerChromium::initialize):
1614
1615 2012-08-22  Eric Penner  <epenner@google.com>
1616
1617         [chromium] Simplify updateContentRect, removing rect parameter, refactor unit tests.
1618         https://bugs.webkit.org/show_bug.cgi?id=94165
1619
1620         Reviewed by Adrienne Walker.
1621
1622         Remove visible rect parameter from TiledLayerChromium functions. Passing a
1623         rect that is not the visible rect wouldn't make sense, and soon we might
1624         need further visibility information.
1625
1626         In refactoring the unit tests, I removed texture manager from all tests
1627         and put it in the test class. I also made some utility functions to 
1628         simulate the commit flow and remove tons of boilerplate code. I refactored
1629         about half the unit tests to use the utility functions.
1630
1631         Refactored tests.
1632
1633         * platform/graphics/chromium/ContentLayerChromium.cpp:
1634         (WebCore::ContentLayerChromium::update):
1635         (WebCore::ContentLayerChromium::needMoreUpdates):
1636         * platform/graphics/chromium/ImageLayerChromium.cpp:
1637         (WebCore::ImageLayerChromium::update):
1638         * platform/graphics/chromium/TiledLayerChromium.cpp:
1639         (WebCore):
1640         (WebCore::TiledLayerChromium::setTexturePriorities):
1641         (WebCore::TiledLayerChromium::resetUpdateState):
1642         (WebCore::TiledLayerChromium::update):
1643         (WebCore::TiledLayerChromium::needsIdlePaint):
1644         (WebCore::TiledLayerChromium::idlePaintRect):
1645         * platform/graphics/chromium/TiledLayerChromium.h:
1646         (TiledLayerChromium):
1647
1648 2012-08-22  Otto Derek Cheung  <otcheung@rim.com>
1649
1650         [BlackBerry] Add a check to filter out cookies that tries to set the 
1651         domain to a top level domain
1652         https://bugs.webkit.org/show_bug.cgi?id=94722
1653
1654         Reviewed by Rob Buis.
1655
1656         Adding conditions to check whether a cookie domain is a top level domain.
1657         If it is, throw it out when parsing.
1658
1659         Manual Testing by trying to insert a cookie with an invalid domain
1660         using web-inspector. (ex: when on news.yahoo.com.hk, try to document.
1661         cookie="test1=seeifthiscookieexist; domain=.com.hk")
1662
1663         PR121622
1664
1665         * platform/blackberry/CookieParser.cpp:
1666         WebCore::CookieParser::parseOneCookie):
1667
1668 2012-08-22  Rob Buis  <rwlbuis@webkit.org>
1669
1670         Remove RenderBlock::paintEllipsisBoxes
1671         https://bugs.webkit.org/show_bug.cgi?id=94709
1672
1673         Reviewed by Eric Seidel.
1674
1675         Remove unused method.
1676
1677         No change in functionality, no new tests.
1678
1679         * rendering/RenderBlock.cpp:
1680         (WebCore::RenderBlock::paintFloats):
1681         * rendering/RenderBlock.h:
1682         (RenderBlock):
1683
1684 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
1685
1686         MediaStream API: Introduce RTCSessionDescription
1687         https://bugs.webkit.org/show_bug.cgi?id=93119
1688
1689         Reviewed by Adam Barth.
1690
1691         This patch introduces RTCSessionDescription together with its
1692         corresponding WebCore/platform representation.
1693
1694         Test: fast/mediastream/RTCSessionDescription.html
1695
1696         * CMakeLists.txt:
1697         * GNUmakefile.list.am:
1698         * Modules/mediastream/DOMWindowMediaStream.idl:
1699         * Modules/mediastream/RTCSessionDescription.cpp: Added.
1700         (WebCore):
1701         (WebCore::RTCSessionDescription::create):
1702         (WebCore::RTCSessionDescription::RTCSessionDescription):
1703         (WebCore::RTCSessionDescription::~RTCSessionDescription):
1704         (WebCore::RTCSessionDescription::type):
1705         (WebCore::RTCSessionDescription::setType):
1706         (WebCore::RTCSessionDescription::sdp):
1707         (WebCore::RTCSessionDescription::setSdp):
1708         (WebCore::RTCSessionDescription::descriptor):
1709         * Modules/mediastream/RTCSessionDescription.h: Added.
1710         (WebCore):
1711         (RTCSessionDescription):
1712         * Modules/mediastream/RTCSessionDescription.idl: Added.
1713         * WebCore.gypi:
1714         * platform/mediastream/RTCSessionDescriptionDescriptor.cpp: Added.
1715         (WebCore):
1716         (WebCore::RTCSessionDescriptionDescriptor::create):
1717         (WebCore::RTCSessionDescriptionDescriptor::RTCSessionDescriptionDescriptor):
1718         (WebCore::RTCSessionDescriptionDescriptor::~RTCSessionDescriptionDescriptor):
1719         * platform/mediastream/RTCSessionDescriptionDescriptor.h: Added.
1720         (WebCore):
1721         (RTCSessionDescriptionDescriptor):
1722         (WebCore::RTCSessionDescriptionDescriptor::type):
1723         (WebCore::RTCSessionDescriptionDescriptor::setType):
1724         (WebCore::RTCSessionDescriptionDescriptor::sdp):
1725         (WebCore::RTCSessionDescriptionDescriptor::setSdp):
1726
1727 2012-08-22  Victor Carbune  <victor@rosedu.org>
1728
1729         DOM manipulation crashes the browser
1730
1731         Creating a DOM track element by script and changing the mode crashes
1732         results in a browser crash.
1733         https://bugs.webkit.org/show_bug.cgi?id=94628
1734
1735         Reviewed by Eric Carlson.
1736
1737         Simple fix that creates the text track cue list in case of mode change.
1738
1739         Test: media/track/track-element-dom-change-crash.html
1740
1741         * html/HTMLMediaElement.cpp:
1742         (WebCore::HTMLMediaElement::textTrackModeChanged):
1743
1744 2012-08-22  Ryosuke Niwa  <rniwa@webkit.org>
1745
1746         Microdata build fix.
1747
1748         * html/HTMLPropertiesCollection.h:
1749         (WebCore::HTMLPropertiesCollection::updatePropertyCache):
1750
1751 2012-08-22  Tommy Widenflycht  <tommyw@google.com>
1752
1753         MediaStream API: Introduce RTCIceCandidate
1754         https://bugs.webkit.org/show_bug.cgi?id=93117
1755
1756         Reviewed by Adam Barth.
1757
1758         This patch introduces RTCIceCandidate together with its corresponding
1759         WebCore/platform representation.
1760
1761         Test: fast/mediastream/RTCIceCandidate.html
1762
1763         * CMakeLists.txt:
1764         * GNUmakefile.list.am:
1765         * Modules/mediastream/DOMWindowMediaStream.idl:
1766         * Modules/mediastream/RTCIceCandidate.cpp: Added.
1767         (WebCore):
1768         (WebCore::RTCIceCandidate::create):
1769         (WebCore::RTCIceCandidate::RTCIceCandidate):
1770         (WebCore::RTCIceCandidate::~RTCIceCandidate):
1771         (WebCore::RTCIceCandidate::candidate):
1772         (WebCore::RTCIceCandidate::sdpMid):
1773         (WebCore::RTCIceCandidate::sdpMLineIndex):
1774         (WebCore::RTCIceCandidate::descriptor):
1775         * Modules/mediastream/RTCIceCandidate.h: Added.
1776         (WebCore):
1777         (RTCIceCandidate):
1778         * Modules/mediastream/RTCIceCandidate.idl: Added.
1779         * WebCore.gypi:
1780         * platform/mediastream/RTCIceCandidateDescriptor.cpp: Added.
1781         (WebCore):
1782         (WebCore::RTCIceCandidateDescriptor::create):
1783         (WebCore::RTCIceCandidateDescriptor::RTCIceCandidateDescriptor):
1784         (WebCore::RTCIceCandidateDescriptor::~RTCIceCandidateDescriptor):
1785         * platform/mediastream/RTCIceCandidateDescriptor.h: Added.
1786         (WebCore):
1787         (RTCIceCandidateDescriptor):
1788         (WebCore::RTCIceCandidateDescriptor::candidate):
1789         (WebCore::RTCIceCandidateDescriptor::sdpMid):
1790         (WebCore::RTCIceCandidateDescriptor::sdpMLineIndex):
1791
1792 2012-08-22  Mark Rowe  <mrowe@apple.com>
1793
1794         <http://webkit.org/b/94679> WebCore scrolling thread leaks objects due to them being autoreleased without any autorelease pool in place
1795
1796         Reviewed by Dan Bernstein.
1797
1798         * page/scrolling/mac/ScrollingThreadMac.mm:
1799         (WebCore::ScrollingThread::threadRunLoopSourceCallback): Ensure that an autorelease pool is in place when
1800         dispatching functions on the scrolling thread.
1801
1802 2012-08-22  Pratik Solanki  <psolanki@apple.com>
1803
1804         Failure to dispatch delegate callbacks if resource load fails synchronously
1805         https://bugs.webkit.org/show_bug.cgi?id=94644
1806
1807         Reviewed by Antti Koivisto.
1808
1809         Resource loads can be triggered by layout after document load is
1810         complete but before we have dispatched didFinishLoadForFrame callback.
1811         In such cases, if the load fails synchronously due to the client
1812         returning 0 from willSendRequest callback, we would fail to call
1813         didFinishLoading. this was fixed for Font resources in r122446 for bug
1814         91018. This fixes it in the general case by having CachedResourceLoader
1815         call FrameLoader::checkLoadComplete() when it is done loading all
1816         resources.
1817
1818         * css/CSSFontSelector.cpp:
1819         (WebCore::CSSFontSelector::beginLoadTimerFired):
1820         * loader/cache/CachedResourceLoader.cpp:
1821         (WebCore::CachedResourceLoader::decrementRequestCount):
1822
1823 2012-08-22  Kenneth Russell  <kbr@google.com>
1824
1825         Unreviewed, rolling out r126319.
1826         http://trac.webkit.org/changeset/126319
1827         https://bugs.webkit.org/show_bug.cgi?id=84487
1828
1829         Broke Chromium Mac build
1830
1831         * WebCore.gypi:
1832         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1833         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
1834         (WebCore::GraphicsLayerChromium::willBeDestroyed):
1835         (WebCore::GraphicsLayerChromium::updateNames):
1836         (WebCore::GraphicsLayerChromium::setSize):
1837         (WebCore::GraphicsLayerChromium::setNeedsDisplay):
1838         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect):
1839         (WebCore::GraphicsLayerChromium::addLinkHighlight):
1840         (WebCore::GraphicsLayerChromium::didFinishLinkHighlight):
1841         (WebCore):
1842         (WebCore::GraphicsLayerChromium::updateChildList):
1843         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable):
1844         * platform/graphics/chromium/GraphicsLayerChromium.h:
1845         (WebCore):
1846         (GraphicsLayerChromium):
1847         * platform/graphics/chromium/LinkHighlight.cpp: Added.
1848         (WebCore):
1849         (WebCore::LinkHighlight::create):
1850         (WebCore::LinkHighlight::LinkHighlight):
1851         (WebCore::LinkHighlight::~LinkHighlight):
1852         (WebCore::LinkHighlight::contentLayer):
1853         (WebCore::LinkHighlight::paintContents):
1854         (WebCore::LinkHighlight::notifyAnimationStarted):
1855         (WebCore::LinkHighlight::notifyAnimationFinished):
1856         * platform/graphics/chromium/LinkHighlight.h: Renamed from Source/WebKit/chromium/src/LinkHighlight.h.
1857         (WebCore):
1858         (LinkHighlight):
1859
1860 2012-08-22  Alexei Svitkine  <asvitkine@chromium.org>
1861
1862         Respect system setting for rubber-banding in ScrollAnimatorMac.
1863         https://bugs.webkit.org/show_bug.cgi?id=94356
1864
1865         Reviewed by James Robinson.
1866
1867         Respects user defaults setting of NSScrollViewRubberbanding,
1868         which controls rubber-banding in other Mac OS X applications.
1869
1870         If NSScrollViewRubberbanding is not set, defaults to enabling
1871         rubber banding. Otherwise, rubber banding is disabled if the
1872         value is 0 and enabled otherwise.
1873
1874         No new tests since the behavior depends on system settings.
1875
1876         * platform/mac/ScrollAnimatorMac.mm:
1877         (WebCore):
1878         (WebCore::rubberBandingEnabledForSystem):
1879         (WebCore::ScrollAnimatorMac::handleWheelEvent):
1880
1881 2012-08-22  James Robinson  <jamesr@chromium.org>
1882
1883         [chromium/mac] Remove unnecessary checks for OS version <= 10.5. We don't support those
1884         https://bugs.webkit.org/show_bug.cgi?id=94658
1885
1886         Reviewed by Tony Chang.
1887
1888         The chromium mac port hasn't supported Leopard for a while now, so remove chromium-specific code that checks
1889         for OS X version <= Leopard.
1890
1891         * platform/graphics/chromium/CrossProcessFontLoading.mm:
1892         (WebCore::FontPlatformData::loadFont):
1893         * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
1894         (WebCore::canSetCascadeListForCustomFont):
1895
1896 2012-08-22  W. James MacLean  <wjmaclean@chromium.org>
1897
1898         [chromium] Add touch link highlight animation layers.
1899         https://bugs.webkit.org/show_bug.cgi?id=84487
1900
1901         Reviewed by James Robinson.
1902
1903         Adds support for creating composited touch link highlights in renderer thread. Clipping not yet
1904         implemented for non-composited frames/overflow divs, but scrolling and layout changes are supported.
1905         Transform support currently limited to translation.
1906
1907         Unit tests for LinkHighlight revised.
1908
1909         Tests: platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-clipped.html
1910                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-composite.html
1911                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled-late-noncomposite.html
1912                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited-scrolled.html
1913                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-composited.html
1914                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled-clipped.html
1915                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe-scrolled.html
1916                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-iframe.html
1917                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scroll-clip.html
1918                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited-scrolled.html
1919                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-composited.html
1920                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change-2.html
1921                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-layout-change.html
1922                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scroll-clip.html
1923                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-composite.html
1924                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled-late-noncomposite.html
1925                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div-scrolled.html
1926                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-1-overflow-div.html
1927                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-inner.html
1928                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-composited-outer.html
1929                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-clipped.html
1930                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner-late-composite.html
1931                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-inner.html
1932                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-clipped.html
1933                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer-late-composite.html
1934                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe-scrolled-outer.html
1935                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-iframe.html
1936                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-inner.html
1937                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner-scroll-outer.html
1938                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-inner.html
1939                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-inner.html
1940                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer-scroll-outer.html
1941                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-composited-outer.html
1942                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-inner.html
1943                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div-scrolled-outer.html
1944                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-2-overflow-div.html
1945                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-rotated.html
1946                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledX.html
1947                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-scaledY.html
1948                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple-window-scroll.html
1949                platform/chromium-linux/compositing/gestures/gesture-tapHighlight-simple.html
1950
1951         * WebCore.gypi:
1952         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
1953         (WebCore::GraphicsLayerChromium::GraphicsLayerChromium):
1954         (WebCore::GraphicsLayerChromium::willBeDestroyed): Adds notification to LinkHighlight when layer goes away.
1955         (WebCore::GraphicsLayerChromium::updateNames): Now sets debug name for LinkHighlight layer.
1956         (WebCore::GraphicsLayerChromium::setSize): Invalidates LinkHighlight if present.
1957         (WebCore::GraphicsLayerChromium::setNeedsDisplay): Invalidates LinkHighlight if present.
1958         (WebCore::GraphicsLayerChromium::setNeedsDisplayInRect): Invalidates LinkHighlight if present.
1959         (WebCore::GraphicsLayerChromium::setLinkHighlight): Registers LinkHighlightClient* with GraphicsLayerChromium.
1960         (WebCore::GraphicsLayerChromium::updateChildList): Now adds LinkHighlight WebLayer if highlight active.
1961         (WebCore::GraphicsLayerChromium::updateLayerIsDrawable): Invalidates LinkHighlight if present.
1962         * platform/graphics/chromium/GraphicsLayerChromium.h:
1963         (WebCore):
1964         (LinkHighlightClient): Abstract interface seen by GraphicsLayerChromium.
1965         (WebCore::LinkHighlightClient::~LinkHighlightClient):
1966         (GraphicsLayerChromium):
1967         (WebCore::GraphicsLayerChromium::linkHighlight):
1968         * platform/graphics/chromium/LinkHighlight.cpp: Removed.
1969
1970 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
1971
1972         Unreviewed build fix. Missing PANGO_CFLAGS.
1973
1974         * GNUmakefile.am:
1975
1976 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
1977
1978         Web Inspector: make "sdk" component compile independently from the rest of the front-end.
1979         https://bugs.webkit.org/show_bug.cgi?id=94705
1980
1981         Reviewed by Vsevolod Vlasov.
1982
1983         This change refactors the way we compile. Running "compile-front-end.py sdk" will compile sdk only.
1984         It also introduces DOMStorageModel and DatabaseModel that are used to split model / UI layers.
1985
1986         * WebCore.gypi:
1987         * WebCore.vcproj/WebCore.vcproj:
1988         * inspector/InjectedScriptExterns.js:
1989         (InjectedScriptHost.prototype.evaluate):
1990         * inspector/Inspector.json:
1991         * inspector/compile-front-end.py:
1992         (dump_module):
1993         * inspector/front-end/CompilerScriptMapping.js:
1994         * inspector/front-end/ConsoleModel.js:
1995         (WebInspector.ConsoleMessage):
1996         (WebInspector.ConsoleMessage.prototype.clone):
1997         (WebInspector.ConsoleMessage.prototype.location):
1998         * inspector/front-end/DOMAgent.js:
1999         * inspector/front-end/DOMStorage.js:
2000         (WebInspector.DOMStorageModel):
2001         (WebInspector.DOMStorageModel.prototype._addDOMStorage):
2002         (WebInspector.DOMStorageModel.prototype._domStorageUpdated):
2003         (WebInspector.DOMStorageModel.prototype.storageForId):
2004         (WebInspector.DOMStorageModel.prototype.storages):
2005         (WebInspector.DOMStorageDispatcher):
2006         (WebInspector.DOMStorageDispatcher.prototype.addDOMStorage):
2007         (WebInspector.DOMStorageDispatcher.prototype.domStorageUpdated):
2008         * inspector/front-end/Database.js:
2009         (WebInspector.Database):
2010         (WebInspector.Database.prototype.executeSql):
2011         (WebInspector.DatabaseModel):
2012         (WebInspector.DatabaseModel.prototype.databases):
2013         (WebInspector.DatabaseModel.prototype.databaseForId):
2014         (WebInspector.DatabaseModel.prototype._addDatabase):
2015         (WebInspector.DatabaseModel.prototype._sqlTransactionSucceeded):
2016         (WebInspector.DatabaseModel.prototype._sqlTransactionFailed):
2017         (WebInspector.DatabaseDispatcher):
2018         (WebInspector.DatabaseDispatcher.prototype.addDatabase):
2019         (WebInspector.DatabaseDispatcher.prototype.sqlTransactionSucceeded):
2020         (WebInspector.DatabaseDispatcher.prototype.sqlTransactionFailed):
2021         * inspector/front-end/DebuggerModel.js:
2022         * inspector/front-end/FileUtils.js:
2023         (WebInspector.OutputStreamDelegate.prototype.onTransferStarted):
2024         (WebInspector.OutputStreamDelegate.prototype.onChunkTransferred):
2025         (WebInspector.OutputStreamDelegate.prototype.onTransferFinished):
2026         (WebInspector.OutputStreamDelegate.prototype.onError):
2027         (WebInspector.OutputStream):
2028         (WebInspector.OutputStream.prototype.startTransfer):
2029         (WebInspector.OutputStream.prototype.transferChunk):
2030         (WebInspector.OutputStream.prototype.finishTransfer):
2031         (WebInspector.OutputStream.prototype.dispose):
2032         * inspector/front-end/HandlerRegistry.js:
2033         * inspector/front-end/HeapSnapshotView.js:
2034         * inspector/front-end/InspectorFrontendHostStub.js:
2035         * inspector/front-end/PresentationConsoleMessageHelper.js:
2036         (WebInspector.PresentationConsoleMessageHelper.prototype._parsedScriptSource):
2037         * inspector/front-end/ResourcesPanel.js:
2038         (WebInspector.ResourcesPanel):
2039         (WebInspector.ResourcesPanel.prototype._reset):
2040         (WebInspector.ResourcesPanel.prototype._databaseAdded):
2041         (WebInspector.ResourcesPanel.prototype._addDatabase):
2042         (WebInspector.ResourcesPanel.prototype._domStorageAdded):
2043         (WebInspector.ResourcesPanel.prototype._addDOMStorage):
2044         (WebInspector.ResourcesPanel.prototype._showDatabase.get if):
2045         (WebInspector.ResourcesPanel.prototype._showDatabase.else.get if):
2046         (WebInspector.ResourcesPanel.prototype._showDatabase):
2047         (WebInspector.ResourcesPanel.prototype._showDOMStorage.get if):
2048         (WebInspector.ResourcesPanel.prototype._showDOMStorage):
2049         (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.get if):
2050         (WebInspector.ResourcesPanel.prototype._updateDatabaseTables.tableNamesCallback):
2051         (WebInspector.DatabaseTreeElement.prototype.onselect):
2052         (WebInspector.DatabaseTableTreeElement.prototype.onselect):
2053         (WebInspector.DOMStorageTreeElement.prototype.onselect):
2054         * inspector/front-end/ScriptsPanel.js:
2055         (WebInspector.ScriptsPanel.prototype.showFunctionDefinition):
2056         * inspector/front-end/SearchController.js:
2057         (WebInspector.SearchController.prototype.disableSearchUntilExplicitAction):
2058         * inspector/front-end/Settings.js:
2059         * inspector/front-end/Spectrum.js:
2060         * inspector/front-end/TextEditorModel.js:
2061         * inspector/front-end/UIString.js: Added.
2062         (WebInspector.UIString):
2063         * inspector/front-end/UIUtils.js:
2064         * inspector/front-end/WebKit.qrc:
2065         * inspector/front-end/externs.js:
2066         (InspectorFrontendHostAPI.prototype.platform):
2067         (InspectorFrontendHostAPI.prototype.port):
2068         (InspectorFrontendHostAPI.prototype.bringToFront):
2069         (InspectorFrontendHostAPI.prototype.closeWindow):
2070         (InspectorFrontendHostAPI.prototype.requestAttachWindow):
2071         (InspectorFrontendHostAPI.prototype.requestDetachWindow):
2072         (InspectorFrontendHostAPI.prototype.requestSetDockSide):
2073         (InspectorFrontendHostAPI.prototype.setAttachedWindowHeight):
2074         (InspectorFrontendHostAPI.prototype.moveWindowBy):
2075         (InspectorFrontendHostAPI.prototype.setInjectedScriptForOrigin):
2076         (InspectorFrontendHostAPI.prototype.loaded):
2077         (InspectorFrontendHostAPI.prototype.localizedStringsURL):
2078         (InspectorFrontendHostAPI.prototype.hiddenPanels):
2079         (InspectorFrontendHostAPI.prototype.inspectedURLChanged):
2080         (InspectorFrontendHostAPI.prototype.documentCopy):
2081         (InspectorFrontendHostAPI.prototype.copyText):
2082         (InspectorFrontendHostAPI.prototype.openInNewTab):
2083         (InspectorFrontendHostAPI.prototype.canSave):
2084         (InspectorFrontendHostAPI.prototype.save):
2085         (InspectorFrontendHostAPI.prototype.canAppend):
2086         (InspectorFrontendHostAPI.prototype.append):
2087         (InspectorFrontendHostAPI.prototype.sendMessageToBackend):
2088         (InspectorFrontendHostAPI.prototype.recordActionTaken):
2089         (InspectorFrontendHostAPI.prototype.recordPanelShown):
2090         (InspectorFrontendHostAPI.prototype.recordSettingChanged):
2091         (InspectorFrontendHostAPI.prototype.loadResourceSynchronously):
2092         (InspectorFrontendHostAPI.prototype.setZoomFactor):
2093         (InspectorFrontendHostAPI.prototype.canInspectWorkers):
2094         (SourceMapV3):
2095         (SourceMapV3.Section):
2096         (SourceMapV3.Offset):
2097         * inspector/front-end/inspector.html:
2098         * inspector/front-end/inspector.js:
2099         (WebInspector.inspect):
2100
2101 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
2102
2103         Unreviewed build fix. libWebCore needs include paths
2104         for some bits of WebCoreGtk.
2105
2106         * GNUmakefile.am:
2107
2108 2012-08-22  Koji Ishii  <kojiishi@gmail.com>
2109
2110         FontMetrics.unitsPerEm(), FontPlatformData.orientation(), SimpleFontData::platformBoundsForGlyph are not implemented on Chromium Windows
2111         https://bugs.webkit.org/show_bug.cgi?id=83512
2112
2113         Reviewed by Tony Chang.
2114
2115         Chromium Windows does not implement following 3 functions that are required for bug 51450.
2116         1. FontMetrics.unitsPerEm() always returns the default value (gDefaultUnitsPerEm = 1000).
2117         2. FontPlatformData.orientation() always returns Horizontal.
2118         3. SimpleFontData::platformBoundsForGlyph() always returns FloatRect().
2119         Tony suggested in bug 51450 review to split code that is not behind
2120         #if ENABLE(OPENTYPE_VERTICAL) to a separate patch.
2121
2122         Test: Following 3 existing but skipped tests are now enabled and pass.
2123               fast/text/emphasis-overlap.html
2124               fast/text/emphasis-avoid-ruby.html
2125               fast/repaint/text-emphasis-v.html
2126
2127         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2128         (WebCore::FontCache::createFontPlatformData): Add orientation.
2129         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2130         (WebCore::FontPlatformData::FontPlatformData): Add orientation.
2131         (WebCore::FontPlatformData::operator=): Add orientation.
2132         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2133         (FontPlatformData):
2134         (WebCore::FontPlatformData::orientation): Add orientation.
2135         (WebCore::FontPlatformData::setOrientation): Add orientation.
2136         (WebCore::FontPlatformData::operator==): Add orientation.
2137         * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
2138         (WebCore::SimpleFontData::platformInit): Set FontMetrics.unitsPerEm.
2139         (WebCore::SimpleFontData::createScaledFontData): Add orientation.
2140         (WebCore::SimpleFontData::platformBoundsForGlyph): Implemented.
2141         * platform/graphics/skia/FontCustomPlatformData.cpp:
2142         (WebCore::FontCustomPlatformData::fontPlatformData): Add orientation.
2143
2144 2012-08-22  Robert Hogan  <robert@webkit.org>
2145
2146         REGRESSION(r125578): fast/regex/unicodeCaseInsensitive.html crash on Linux Debug Chromium
2147         https://bugs.webkit.org/show_bug.cgi?id=94010
2148
2149         Reviewed by Tony Chang.
2150
2151         r125578 inspected the raw text run for word-end but the index it used to do so was for a normalized
2152         version of the run that could be longer than the raw text run. So to allow proper detection of word-end
2153         in complex text (i) do not normalize tabs to plain white-space and (ii) go back to using the normalized version
2154         of the run for detecting word-end. There is a risk that some fonts may create glyphs for the '\t' character 
2155         but this does not turn up in any of our regression tests and the more common risk appears to be the new-line.
2156
2157         Test: fast/regex/unicodeCaseInsensitive.html
2158
2159         * platform/graphics/harfbuzz/HarfBuzzShaperBase.cpp:
2160         (WebCore::normalizeSpacesAndMirrorChars):
2161
2162 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
2163
2164         Web Inspector: [WebGL] Support the communication protocol from the injected script
2165         https://bugs.webkit.org/show_bug.cgi?id=94689
2166
2167         Reviewed by Pavel Feldman.
2168
2169         Support the WebGL communication protocol from the injected script module.
2170
2171         * inspector/InjectedScriptWebGLModuleSource.js:
2172         (.):
2173
2174 2012-08-22  Gustavo Noronha Silva  <gns@gnome.org>
2175
2176         [GTK] Split WebCore/platform into a separate library
2177         https://bugs.webkit.org/show_bug.cgi?id=94435
2178
2179         Reviewed by Martin Robinson.
2180
2181         More people have been reporting problems when linking WebCore because
2182         the command line limit is being exceeded. Splitting WebCore a bit more
2183         is in order.
2184
2185         * GNUmakefile.am: add new libWebCorePlatform convenience library.
2186         * GNUmakefile.list.am: move list of platform/* files to its own variable.
2187
2188 2012-08-22  Raphael Kubo da Costa  <rakuco@webkit.org>
2189
2190         [EFL] Build failures with harfbuzz outside standard locations
2191         https://bugs.webkit.org/show_bug.cgi?id=93030
2192
2193         Reviewed by Rob Buis.
2194
2195         Add ${HARFBUZZ_INCLUDE_DIRS} to the list of included paths: so far
2196         it was being implicitly pulled from evas's pkg-config file, and
2197         used to work when WebKit-EFL's dependencies were built with
2198         jhbuild -- in this case, harfbuzz is built before evas, which is
2199         then built with harfbuzz support and adds the required paths to
2200         its .pc file.
2201
2202         We need to include things directly to account for the case of
2203         people not using jhbuild and thus not necessarily having harfbuzz
2204         as an evas dependency.
2205
2206         * PlatformEfl.cmake:
2207
2208 2012-08-22  Raul Hudea  <rhudea@adobe.com>
2209
2210         Crash in WebCore::RenderBlock::removeChild
2211         https://bugs.webkit.org/show_bug.cgi?id=93879
2212
2213         Reviewed by Abhishek Arya.
2214
2215         By adding the lifetime state to the RenderNamedFlowThread (r122556), it become possible for the a RenderRegion object to delete its sibling,
2216         the RenderNamedFlowThread. This is unexpected in the rendering world and cause problems in RenderBlock::removeChild where we retain previous
2217         and next sibling pointers.
2218         So, all the RenderNamedFlowThread are created under a RenderFlowThreadContainer object insted of the RenderView. The new object is created only
2219         when the first named flow is created.
2220
2221         Test: fast/regions/remove-flow-thread-crash.html
2222
2223         * CMakeLists.txt:
2224         * GNUmakefile.list.am:
2225         * Target.pri:
2226         * WebCore.gypi:
2227         * WebCore.vcproj/WebCore.vcproj:
2228         * WebCore.xcodeproj/project.pbxproj:
2229         * rendering/FlowThreadController.cpp:
2230         (WebCore::FlowThreadController::FlowThreadController): Added initialization for the new RenderFlowThreadContainer member
2231         (WebCore::FlowThreadController::ensureRenderFlowThreadWithName): Added the creation of the RenderFlowThreadContainer object and use it as a parent for all RenderNamedFlowThreads
2232         (WebCore::FlowThreadController::styleDidChange): Inform all the RenderNamedFlowThreads that the style changed in regions (initially this code was in RenderView, but now all RenderNamedFlowThreads are children of RenderFlowThreadContainer)
2233         (WebCore):
2234         * rendering/FlowThreadController.h:
2235         (WebCore):
2236         (FlowThreadController):
2237         * rendering/RenderFlowThreadContainer.cpp: Added.
2238         (WebCore):
2239         (WebCore::RenderFlowThreadContainer::RenderFlowThreadContainer):
2240         (WebCore::RenderFlowThreadContainer::layout):
2241         * rendering/RenderFlowThreadContainer.h: Added.
2242         * rendering/RenderObject.cpp:
2243         (WebCore::RenderObject::markContainingBlocksForLayout): Skip to RenderView if the current object is an RenderFlowThreadContainer.
2244         * rendering/RenderObject.h:
2245         (WebCore::RenderObject::isRenderFlowThreadContainer):
2246         * rendering/RenderView.cpp:
2247         (WebCore::RenderView::styleDidChange): Moved the code associated to RenderNamedFlowThreads to FlowThreadController:styleDidChange and call it instead.
2248
2249 2012-08-22  Rob Buis  <rbuis@rim.com>
2250
2251         [BlackBerry] Add RSS content handling support
2252         https://bugs.webkit.org/show_bug.cgi?id=93496
2253
2254         Reviewed by Yong Li.
2255
2256         Cleanup some more.
2257
2258         * platform/network/blackberry/rss/RSSFilterStream.cpp:
2259         (WebCore):
2260         (WebCore::createParser):
2261         (WebCore::defaultEncodingForLanguage):
2262         (WebCore::isTranscodingNeeded):
2263
2264 2012-08-21  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2265
2266         Remove unused TextDrawingMode flags from GraphicsContext
2267         https://bugs.webkit.org/show_bug.cgi?id=21898
2268
2269         Reviewed by Benjamin Poulain.
2270
2271         Remove TextModeClip and TextModeInvisible. These are not used by any port, and
2272         according to https://bugs.webkit.org/show_bug.cgi?id=42110#c2 these were added
2273         just to map CG existing flags, but are not used.
2274
2275         * platform/graphics/GraphicsContext.h:
2276         * platform/graphics/cg/GraphicsContextCG.cpp:
2277         (WebCore::GraphicsContext::setPlatformTextDrawingMode):
2278         * platform/graphics/openvg/PainterOpenVG.cpp:
2279         (WebCore::PainterOpenVG::drawText):
2280         * platform/graphics/skia/PlatformContextSkia.cpp:
2281         (WebCore::PlatformContextSkia::setTextDrawingMode):
2282
2283 2012-08-22  Sheriff Bot  <webkit.review.bot@gmail.com>
2284
2285         Unreviewed, rolling out r126287.
2286         http://trac.webkit.org/changeset/126287
2287         https://bugs.webkit.org/show_bug.cgi?id=94708
2288
2289         It made WK1 layout testing 3.7x slower (>1hours) (Requested by
2290         ossy on #webkit).
2291
2292         * bridge/qt/qt_instance.cpp:
2293         (JSC::Bindings::unusedWeakObjectMapCallback):
2294         (Bindings):
2295         (JSC::Bindings::WeakMapImpl::WeakMapImpl):
2296         (JSC::Bindings::WeakMapImpl::~WeakMapImpl):
2297         (JSC::Bindings::WeakMap::~WeakMap):
2298         (JSC::Bindings::WeakMap::set):
2299         (JSC::Bindings::WeakMap::get):
2300         (JSC::Bindings::WeakMap::remove):
2301         * bridge/qt/qt_instance.h:
2302         (QtInstance):
2303         * bridge/qt/qt_runtime.cpp:
2304         (JSC::Bindings::prototypeForSignalsAndSlots):
2305         (JSC::Bindings::QtRuntimeMethod::~QtRuntimeMethod):
2306         (JSC::Bindings::QtRuntimeMethod::call):
2307         (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
2308         (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
2309         * bridge/qt/qt_runtime.h:
2310         (QtRuntimeMethod):
2311
2312 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
2313
2314         Not reviewed: follow up to r126297, fixing WebCore.gypi.
2315
2316         * WebCore.gypi:
2317
2318 2012-08-22  Carlos Garcia Campos  <cgarcia@igalia.com>
2319
2320         [GTK] Preferred languages and spellchecker APIs are not consistent in WebKit2
2321         https://bugs.webkit.org/show_bug.cgi?id=94683
2322
2323         Reviewed by Alejandro G. Castro.
2324
2325         Use a Vector<String> instead of a comma-separated string to
2326         get/set languages.
2327
2328         * platform/text/gtk/TextCheckerEnchant.cpp:
2329         (TextCheckerEnchant::updateSpellCheckingLanguages):
2330         (TextCheckerEnchant::getSpellCheckingLanguages):
2331         * platform/text/gtk/TextCheckerEnchant.h:
2332         (TextCheckerEnchant):
2333
2334 2012-08-22  Pavel Feldman  <pfeldman@chromium.org>
2335
2336         Web Inspector: move NavigatorView and NavigatorOverlayController to ScriptsPanel module
2337         https://bugs.webkit.org/show_bug.cgi?id=94693
2338
2339         Reviewed by Vsevolod Vlasov.
2340
2341         Loading them via importScript now.
2342
2343         * inspector/compile-front-end.py:
2344         * inspector/front-end/ScriptsPanel.js:
2345         * inspector/front-end/inspector.html:
2346
2347 2012-08-22  KwangYong Choi  <ky0.choi@samsung.com>
2348
2349         [EFL] Support slider tick mark snapping
2350         https://bugs.webkit.org/show_bug.cgi?id=94560
2351
2352         Reviewed by Kenneth Rohde Christiansen.
2353
2354         Increased the threshold for the EFL port. The value is snapped
2355         when it clicked near tick mark.
2356
2357         No new tests. Covered by fast/forms/datalist/range-snap-to-datalist.html.
2358
2359         * platform/efl/RenderThemeEfl.cpp:
2360         (WebCore):
2361         (WebCore::RenderThemeEfl::sliderTickSnappingThreshold):
2362         * platform/efl/RenderThemeEfl.h:
2363         (RenderThemeEfl):
2364
2365 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2366
2367         [Qt] Optionally support smooth-scrolling on all platforms
2368         https://bugs.webkit.org/show_bug.cgi?id=74926
2369
2370         Reviewed by Simon Hausmann.
2371
2372         Make GestureAnimations depend on the GESTURE_ANIMATION feature flag,
2373         since GestureAnimations are unused on some platforms.
2374
2375         * Target.pri:
2376         * platform/ScrollAnimatorNone.cpp:
2377         (WebCore::ScrollAnimatorNone::fireUpAnAnimation):
2378         (WebCore::ScrollAnimatorNone::cancelAnimations):
2379         (WebCore::ScrollAnimatorNone::animationTimerFired):
2380         * platform/ScrollAnimatorNone.h:
2381         (ScrollAnimatorNone):
2382
2383 2012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
2384
2385         [Qt] Port convertQVariantToValue to use the JSC C API
2386         https://bugs.webkit.org/show_bug.cgi?id=93889
2387
2388         Reviewed by Kenneth Rohde Christiansen.
2389
2390         Based on patch by Noam Rosenthal.
2391
2392         This patch is another step towards reducing the use of internal JSC API
2393         in the Qt bridge. Most of the conversion from QVariant to JS values is
2394         straight-forward. The biggest behavioural change is that QVariant lists
2395         are converted on-the-spot instead of lazily. Bug #94691 tracks fixing
2396         that.
2397
2398         * bridge/qt/qt_instance.cpp:
2399         (Bindings):
2400         (JSC::Bindings::QtField::valueFromInstance):
2401         * bridge/qt/qt_runtime.cpp:
2402         (JSC::Bindings::convertQVariantToValue):
2403         (JSC::Bindings::QtRuntimeMethod::call):
2404         (JSC::Bindings::QtConnectionObject::execute):
2405         (JSC::Bindings::::valueAt):
2406         * bridge/qt/qt_runtime.h:
2407         (Bindings):
2408
2409 2012-08-22  Simon Hausmann  <simon.hausmann@nokia.com>
2410
2411         [Qt] REGRESSION(r125428): fast/profiler/nested-start-and-stop-profiler.html fails
2412         https://bugs.webkit.org/show_bug.cgi?id=93897
2413
2414         Reviewed by Kenneth Rohde Christiansen.
2415
2416         Before r125428 run-time methods (wrapped signals, slots or invokable
2417         functions) were subclasses of JSInternalFunction and therefore real
2418         function objects in the JavaScript sense. r125428 changed them to be
2419         just callable objects, but they did not have Function.prototype as
2420         prototype anymore for example nor was their name correct (resulting in
2421         a layout test failure).
2422
2423         This patch changes run-time methods back to being real function objects
2424         that have a correct name and have Function.prototype in their prototype
2425         change
2426
2427         The objects returned by JSObjectMakeFunctionWithCallbackInjected are
2428         light-weight internal function objects that do not support
2429         JSObject{Set/Get}Private. Therefore we inject our own prototype right
2430         before the Function.prototype prototype, which uses private data to
2431         store a pointer to our C++ QtRuntimeMethod object.  This complicates
2432         the retrieval of the pointer to that instance slightly, which is why
2433         this patch introduces the toRuntimeMethod convenience function that
2434         looks up our prototype first and does a check for type-safety.
2435
2436         At the same time the patch removes the length properties from the
2437         run-time method itself as well as connect/disconnect.  The length
2438         property on a function signifies the number of arguments, but in all
2439         three cases that number is actually variable, because of overloading.
2440         That is why we choose not to expose it in the first place.
2441
2442         In QtInstance we cache the JS wrapper objects for QtRuntimeMethod in a
2443         JSWeakObjectMap. JSWeakObjectMap requires the stored objects to be
2444         either the result of JSObjectMake or the global object of a context ref
2445         (AFAICS), which is ensured using an ASSERT. Objects created via
2446         JSObjectMakeFunctionWithCalllback do not fall into the required
2447         category, cause a failing assertion and can therefore not be stored in
2448         the weak object map.
2449
2450         Consequently this patch removes the use of JSWeakObjectMap again and
2451         goes back to the old way of using the internal Weak<> API, for the time
2452         being. In a future patch the storage will be simplified to not require
2453         the use of a weak object map cache for the run-time methods anymore.
2454
2455         * bridge/qt/qt_instance.cpp: Remove unused WeakMap code.
2456         * bridge/qt/qt_instance.h: Remove method cache.
2457         (QtInstance):
2458         * bridge/qt/qt_runtime.cpp:
2459         (JSC::Bindings::prototypeForSignalsAndSlots):
2460         (JSC::Bindings::QtRuntimeMethod::call):
2461         (JSC::Bindings::QtRuntimeMethod::jsObjectRef):
2462         (JSC::Bindings::QtRuntimeMethod::toRuntimeMethod):
2463         (Bindings):
2464         (JSC::Bindings::QtRuntimeMethod::connectOrDisconnect):
2465         * bridge/qt/qt_runtime.h:
2466         (QtRuntimeMethod): Remove unused member variables.
2467
2468 2012-08-22  Christophe Dumez  <christophe.dumez@intel.com>
2469
2470         window.postMessage() / MessagePort.postMessage() throw wrong exception for invalid ports argument
2471         https://bugs.webkit.org/show_bug.cgi?id=94581
2472
2473         Reviewed by Kentaro Hara.
2474
2475         Update JSC and V8 implementations of window.postMessage() and
2476         MessagePort.postMessage() in order to throw an
2477         INVALID_STATE_ERR instead of a DATA_CLONE_ERR when values
2478         in the "ports" argument are invalid. Additionally, we now
2479         check for duplicate ports and throw an exception for this
2480         case as well.
2481
2482         This change was made to comply with the latest HTML5
2483         specification at:
2484         http://www.w3.org/TR/html5/comms.html
2485
2486         No new tests, already tested by:
2487         fast/events/constructors/message-event-constructor.html
2488         fast/events/message-port-clone.html
2489         fast/events/message-port-multi.html
2490         fast/workers/worker-context-multi-port.html
2491         fast/workers/worker-multi-port.html
2492
2493         * bindings/js/JSMessagePortCustom.cpp:
2494         (WebCore::fillMessagePortArray):
2495         * bindings/v8/V8Utilities.cpp:
2496         (WebCore::extractTransferables):
2497         * dom/MessagePort.cpp:
2498         (WebCore::MessagePort::postMessage):
2499
2500 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
2501
2502         [TouchAdjustment] Adjust to word or selection
2503         https://bugs.webkit.org/show_bug.cgi?id=94449
2504
2505         Reviewed by Antonio Gomes.
2506
2507         Makes each separate word a separate subtarget when context menu triggers
2508         selections, and only the selected part of a partial selected node a 
2509         target when selections are not overridden.
2510
2511         Fix of reverted commit r126026, fix misplaced ASSERT.
2512
2513         Test: touchadjustment/context-menu-text-subtargets.html
2514
2515         * page/TouchAdjustment.cpp:
2516         (TouchAdjustment):
2517         (WebCore::TouchAdjustment::providesContextMenuItems):
2518         (WebCore::TouchAdjustment::appendQuadsToSubtargetList):
2519         (WebCore::TouchAdjustment::appendBasicSubtargetsForNode):
2520         (WebCore::TouchAdjustment::appendContextSubtargetsForNode):
2521         (WebCore::TouchAdjustment::compileSubtargetList):
2522         (WebCore::findBestClickableCandidate):
2523         (WebCore::findBestContextMenuCandidate):
2524
2525 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
2526
2527         Web Inspector: [WebGL] Generic framework draft for tracking WebGL resources
2528         https://bugs.webkit.org/show_bug.cgi?id=90597
2529
2530         Reviewed by Pavel Feldman.
2531
2532         Wrap WebGL rendering context methods and collect a trace log if we are in capturing mode.
2533         Stubbed code for collecting calls contributing to a WebGL resource state so that we could replay them later.
2534
2535         Typical scenario:
2536         - we wrap a GL context with InjectedScript.wrapWebGLContext() and return a proxy to the inspected page
2537         - the proxy saves all calls necessary to do a replay later - only those that modify a resource's state
2538         - when we turn on capturing mode (InjectedScript.captureFrame), we save all WebGL calls to a trace log
2539
2540         * inspector/InjectedScriptSource.js:
2541         (.):
2542         * inspector/InjectedScriptWebGLModuleSource.js:
2543         (.):
2544
2545 2012-08-22  Andrey Adaikin  <aandrey@chromium.org>
2546
2547         Web Inspector: [WebGL] Add minimum transport protocol from backend to frontend
2548         https://bugs.webkit.org/show_bug.cgi?id=88973
2549
2550         Reviewed by Pavel Feldman.
2551
2552         Added the following protocol methods to communicate with the WebGL injected
2553         module: captureFrame, getTraceLog, dropTraceLog, replayTraceLog.
2554
2555         * inspector/CodeGeneratorInspector.py:
2556         * inspector/InjectedScriptWebGLModule.cpp:
2557         (WebCore::InjectedScriptWebGLModule::captureFrame):
2558         (WebCore):
2559         (WebCore::InjectedScriptWebGLModule::dropTraceLog):
2560         (WebCore::InjectedScriptWebGLModule::getTraceLog):
2561         (WebCore::InjectedScriptWebGLModule::replayTraceLog):
2562         * inspector/InjectedScriptWebGLModule.h:
2563         (InjectedScriptWebGLModule):
2564         * inspector/Inspector.json:
2565         * inspector/InspectorController.cpp:
2566         (WebCore::InspectorController::InspectorController):
2567         * inspector/InspectorWebGLAgent.cpp:
2568         (WebCore::InspectorWebGLAgent::InspectorWebGLAgent):
2569         (WebCore::InspectorWebGLAgent::dropTraceLog):
2570         (WebCore):
2571         (WebCore::InspectorWebGLAgent::captureFrame):
2572         (WebCore::InspectorWebGLAgent::getTraceLog):
2573         (WebCore::InspectorWebGLAgent::replayTraceLog):
2574         * inspector/InspectorWebGLAgent.h:
2575         (WebCore):
2576         (WebCore::InspectorWebGLAgent::create):
2577         (InspectorWebGLAgent):
2578
2579 2012-08-22  Hans Wennborg  <hans@chromium.org>
2580
2581         Remove unused field DeleteEntryRequest::m_type
2582         https://bugs.webkit.org/show_bug.cgi?id=94680
2583
2584         Unreviewed build fix.
2585
2586         Remove this unused field. Clang warns about it and it breaks the
2587         Chromium build.
2588
2589         No change in functionality, no new tests.
2590
2591         * inspector/InspectorFileSystemAgent.cpp:
2592         (WebCore):
2593
2594 2012-08-21  Andrey Kosyakov  <caseq@chromium.org>
2595
2596         Web Inspector: console.time() should use performance.now()
2597         https://bugs.webkit.org/show_bug.cgi?id=94263
2598
2599         Reviewed by Pavel Feldman.
2600
2601         - use monotonicallyIncreasingTime() instead of currentTime() for measuring time intervals
2602             with console.time()/console.timeEnd()
2603         - adjust precision to 3 digits after decimal point (i.e. microseconds) when formatting intervals;
2604
2605         * inspector/InspectorConsoleAgent.cpp:
2606         (WebCore::InspectorConsoleAgent::stopTiming):
2607
2608 2012-08-22  Takashi Sakamoto  <tasak@google.com>
2609
2610         Dynamically styling ShadowDom content on a node distributed to another shadow insertion point fails.
2611         https://bugs.webkit.org/show_bug.cgi?id=92899
2612
2613         Reviewed by Hajime Morita.
2614
2615         Since childNeedsStyleRecalc is not cleared when parent nodes are
2616         attached, setNeedsStyleRecalc flag is not reached Document. So,
2617         document() doesn't run re-layout.
2618
2619         Test: fast/dom/shadow/shadowdom-dynamic-styling.html
2620
2621         * dom/ContainerNode.h:
2622         (ContainerNode):
2623         (WebCore::ContainerNode::detachAsNode):
2624         Removed detachAsNode, because the below change made the method
2625         not-used.
2626         * dom/Element.cpp:
2627         (WebCore::Element::detach):
2628         Modify to invoke ContainerNode::detach when any shadow subtree is
2629         attached. ContainerNode::detach takes care of childNeedsStyleRecalc
2630         flag.
2631         * dom/ElementShadow.cpp:
2632         (WebCore::ElementShadow::invalidateDistribution):
2633         Use SetAttached for lazyAttach instead of DoNotSetAttached, because
2634         it is reuired to invoke ContainerNode::detach. If not, attached() is
2635         false and reattach() invokes only attach(). This causes to leave
2636         shadow host's childNeedsStyleRecalc flag true after
2637         Element::recalcStyle.
2638
2639 2012-08-22  Taiju Tsuiki  <tzik@chromium.org>
2640
2641         Web Inspector: Add deleteEntry command and deletionCompleted event to FileSystemAgent
2642         https://bugs.webkit.org/show_bug.cgi?id=91831
2643
2644         Reviewed by Vsevolod Vlasov.
2645
2646         InspectorAgent-side implementation of deleteEntry command.
2647
2648         Test will be added after JS-side implementation landed.
2649
2650         * inspector/Inspector.json:
2651         * inspector/InspectorFileSystemAgent.cpp:
2652         (WebCore):
2653         (WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
2654         (WebCore::InspectorFileSystemAgent::requestDirectoryContent):
2655         (WebCore::InspectorFileSystemAgent::requestMetadata):
2656         (WebCore::InspectorFileSystemAgent::requestFileContent):
2657         (WebCore::InspectorFileSystemAgent::deleteEntry):
2658         (WebCore::InspectorFileSystemAgent::assertFrontend):
2659         * inspector/InspectorFileSystemAgent.h:
2660         (InspectorFileSystemAgent):
2661         * inspector/front-end/FileSystemModel.js:
2662         (WebInspector.FileSystemDispatcher.prototype.fileContentReceived):
2663         (WebInspector.FileSystemDispatcher.prototype.deletionCompleted):
2664
2665 2012-08-21  Pavel Feldman  <pfeldman@chromium.org>
2666
2667         Web Inspector: TabbedPane: measure tab widths in batches.
2668         https://bugs.webkit.org/show_bug.cgi?id=94484
2669
2670         Reviewed by Vsevolod Vlasov.
2671
2672         - Introduces global batch update schema
2673         - Migrates Toolbar and TabbedPane to the new schema
2674
2675         * inspector/front-end/ScriptsPanel.js:
2676         (WebInspector.ScriptsPanel):
2677         * inspector/front-end/TabbedPane.js:
2678         (WebInspector.TabbedPane.prototype.appendTab):
2679         (WebInspector.TabbedPane.prototype._updateTabElements):
2680         (WebInspector.TabbedPane.prototype._innerUpdateTabElements):
2681         (WebInspector.TabbedPane.prototype._updateWidths):
2682         (WebInspector.TabbedPane.prototype._measureWidths):
2683         (WebInspector.TabbedPaneTab):
2684         (WebInspector.TabbedPaneTab.prototype.width):
2685         (WebInspector.TabbedPaneTab.prototype.setWidth):
2686         * inspector/front-end/Toolbar.js:
2687         (WebInspector.Toolbar):
2688         (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
2689         (WebInspector.Toolbar.prototype._innerUpdateDropdownButtonAndHideDropdown):
2690         * inspector/front-end/UIUtils.js:
2691         (WebInspector.startBatchUpdate):
2692         (WebInspector.invokeOnceAfterBatchUpdate.get if):
2693         (WebInspector.invokeOnceAfterBatchUpdate):
2694         * inspector/front-end/inspector.js:
2695         * inspector/front-end/utilities.js:
2696
2697 2012-08-21  Kentaro Hara  <haraken@chromium.org>
2698
2699         [V8] Move String related code in V8Binding to a separate file
2700         https://bugs.webkit.org/show_bug.cgi?id=94571
2701
2702         Reviewed by Adam Barth.
2703
2704         This patch moves V8Parameter, V8ParameterBase and String related code
2705         in V8Binding to a separate file.
2706
2707         No tests. No change in behavior.
2708
2709         * UseV8.cmake:
2710         * WebCore.gypi:
2711         * bindings/v8/V8Binding.cpp:
2712         * bindings/v8/V8Binding.h:
2713         * bindings/v8/V8StringResource.cpp: Added.
2714         * bindings/v8/V8StringResource.h: Added.
2715         (WebCore):
2716
2717 2012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
2718
2719         Implement UndoManager's automatic DOM transactions
2720         https://bugs.webkit.org/show_bug.cgi?id=91812
2721
2722         Reviewed by Ryosuke Niwa.
2723
2724         This patch implements automatic DOM transactions in UndoManager
2725         by recording changes in tree structure, attributes, and character data
2726         of nodes under undo scope host.
2727
2728         Tests: editing/undomanager/automatic-transaction-attribute.html
2729                editing/undomanager/automatic-transaction-data.html
2730                editing/undomanager/automatic-transaction-node.html
2731
2732         * CMakeLists.txt:
2733         * GNUmakefile.list.am:
2734         * WebCore.gypi:
2735         * WebCore.vcproj/WebCore.vcproj:
2736         * WebCore.xcodeproj/project.pbxproj:
2737         * bindings/js/DOMTransaction.h:
2738         (WebCore::DOMTransaction::addTransactionStep):
2739         (DOMTransaction):
2740         * bindings/v8/DOMTransaction.cpp:
2741         (DOMTransactionScope):
2742         (WebCore::DOMTransactionScope::DOMTransactionScope):
2743         (WebCore::DOMTransactionScope::~DOMTransactionScope):
2744         (WebCore):
2745         (WebCore::DOMTransaction::apply):
2746         (WebCore::DOMTransaction::unapply):
2747         (WebCore::DOMTransaction::reapply):
2748         * bindings/v8/DOMTransaction.h:
2749         (WebCore::DOMTransaction::addTransactionStep):
2750         (DOMTransaction):
2751         * css/PropertySetCSSStyleDeclaration.cpp:
2752         (WebCore::PropertySetCSSStyleDeclaration::setCssText):
2753         (WebCore::PropertySetCSSStyleDeclaration::setProperty):
2754         (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
2755         (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
2756         * dom/CharacterData.cpp:
2757         (WebCore::CharacterData::setDataAndUpdate):
2758         * dom/ContainerNode.cpp:
2759         (WebCore::willRemoveChild):
2760         (WebCore::willRemoveChildren):
2761         (WebCore::updateTreeAfterInsertion):
2762         * dom/Element.cpp:
2763         (WebCore::Element::willModifyAttribute):
2764         * editing/DOMTransactionStep.cpp: Added.
2765         (WebCore):
2766         (WebCore::NodeInsertingDOMTransactionStep::NodeInsertingDOMTransactionStep):
2767         (WebCore::NodeInsertingDOMTransactionStep::create):
2768         (WebCore::NodeInsertingDOMTransactionStep::unapply):
2769         (WebCore::NodeInsertingDOMTransactionStep::reapply):
2770         (WebCore::NodeRemovingDOMTransactionStep::NodeRemovingDOMTransactionStep):
2771         (WebCore::NodeRemovingDOMTransactionStep::create):
2772         (WebCore::NodeRemovingDOMTransactionStep::unapply):
2773         (WebCore::NodeRemovingDOMTransactionStep::reapply):
2774         (WebCore::DataReplacingDOMTransactionStep::DataReplacingDOMTransactionStep):
2775         (WebCore::DataReplacingDOMTransactionStep::create):
2776         (WebCore::DataReplacingDOMTransactionStep::unapply):
2777         (WebCore::DataReplacingDOMTransactionStep::reapply):
2778         (WebCore::AttrChangingDOMTransactionStep::AttrChangingDOMTransactionStep):
2779         (WebCore::AttrChangingDOMTransactionStep::create):
2780         (WebCore::AttrChangingDOMTransactionStep::unapply):
2781         (WebCore::AttrChangingDOMTransactionStep::reapply):
2782         * editing/DOMTransactionStep.h: Added.
2783         (WebCore):
2784         (DOMTransactionStep):
2785         (WebCore::DOMTransactionStep::~DOMTransactionStep):
2786         (NodeInsertingDOMTransactionStep):
2787         (NodeRemovingDOMTransactionStep):
2788         (DataReplacingDOMTransactionStep):
2789         (AttrChangingDOMTransactionStep):
2790         * editing/UndoManager.cpp:
2791         (WebCore):
2792         (WebCore::UndoManager::isRecordingAutomaticTransaction):
2793         (WebCore::UndoManager::addTransactionStep):
2794         * editing/UndoManager.h:
2795         (WebCore):
2796         (WebCore::UndoManager::setRecordingDOMTransaction):
2797         (UndoManager):
2798
2799 2012-08-21  Shezan Baig  <sbaig1@bloomberg.net>
2800
2801         Fix cross-direction stretch for replaced elements in row flexbox
2802         https://bugs.webkit.org/show_bug.cgi?id=94237
2803
2804         Reviewed by Ojan Vafai.
2805
2806         When stretching, don't take into account the instrinsic size of child
2807         replaced elements. Only the fixed size, min size, and max size of the
2808         child should be taken into account. The logic that computed this was
2809         moved from RenderBox::computeLogicalHeight to a new helper method
2810         called logicalHeightConstrainedByMinMax.  This helper method is now
2811         used from RenderFlexibleBox::applyStretchAlignmentToChild, instead of
2812         using RenderBox::computeLogicalHeight.
2813
2814         A similar change will need to be made for column-flowing flexboxes.
2815         This will be addressed in https://webkit.org/b/94604.
2816
2817         No new tests.  The existing css3/flexbox/flexitem.html test was
2818         extended to cover this case.
2819
2820         * rendering/RenderBox.cpp:
2821         (WebCore::RenderBox::logicalHeightConstrainedByMinMax): New helper
2822         method that is used by RenderBox::computeLogicalHeight and also by
2823         RenderFlexibleBox::applyStretchAlignmentToChild.
2824         (WebCore):
2825         (WebCore::RenderBox::computeLogicalHeight): Updated to use the new
2826         logicalHeightConstrainedByMinMax helper method.
2827         * rendering/RenderBox.h:
2828         (RenderBox):
2829         * rendering/RenderFlexibleBox.cpp:
2830         (WebCore::RenderFlexibleBox::applyStretchAlignmentToChild): Use
2831         logicalHeightConstrainedByMinMax instead of computeLogicalHeight.
2832
2833 2012-08-21  Hayato Ito  <hayato@chromium.org>
2834
2835         Make an event object clonable to support an event propagation across seamless iframes.
2836         https://bugs.webkit.org/show_bug.cgi?id=93678
2837
2838         Reviewed by Dimitri Glazkov.
2839
2840         We should clone an event object when a event propagates across
2841         seamless iframes.  Currently Event and MouseEvent are
2842         supported. Support for other kinds of events will be addressed
2843         later.
2844
2845         This is one of the pre-requirements to support an event
2846         propagation across seamless iframes.
2847
2848         No new tests, no behavior change.
2849
2850         * dom/Event.cpp:
2851         (WebCore::Event::cloneFor):
2852         (WebCore):
2853         * dom/Event.h:
2854         (WebCore):
2855         (Event):
2856         * dom/MouseEvent.cpp:
2857         (WebCore::adjustedClinetX):
2858         (WebCore):
2859         (WebCore::adjustedClinetY):
2860         (WebCore::MouseEvent::cloneFor):
2861         * dom/MouseEvent.h:
2862         (MouseEvent):
2863
2864 2012-08-21  Joshua Bell  <jsbell@chromium.org>
2865
2866         IndexedDB: IDBRequest can be GCd during event dispatch
2867         https://bugs.webkit.org/show_bug.cgi?id=94235
2868
2869         Reviewed by Ojan Vafai.
2870
2871         Avoid a "race" where GC may attempt to reclaim IDB objects that are marked
2872         "done" prior to the completion of the event dispatch. The script runtime
2873         may decide to do a GC pass before calling the event handler, releasing the
2874         object and turning the dispatch into a no-op.
2875
2876         This is a partial reversion (with renames, etc) of r123275, r124842,
2877         and r121492. Added a new test, although it does not exercise the "race"
2878         condition directly.
2879
2880         Test: storage/indexeddb/pending-activity.html
2881               storage/indexeddb/pending-activity-workers.html
2882
2883         * Modules/indexeddb/IDBCursor.cpp:
2884         (WebCore::IDBCursor::close): Let the IDBRequest know it this cursor won't
2885         make it fire again.
2886         * Modules/indexeddb/IDBRequest.cpp:
2887         (WebCore::IDBRequest::IDBRequest): Reintroduce "am I done?" flag.
2888         (WebCore::IDBRequest::finishCursor): Cursors may fire events at the same
2889         IDBRequest repeatedly, so we need to know when they're are really done.
2890         (WebCore):
2891         (WebCore::IDBRequest::hasPendingActivity): Test the flag.
2892         (WebCore::IDBRequest::dispatchEvent): Set the flag.
2893         * Modules/indexeddb/IDBRequest.h:
2894         (IDBRequest):
2895         * Modules/indexeddb/IDBTransaction.cpp:
2896         (WebCore::IDBTransaction::IDBTransaction): Reintroduce "am I done?" flag.
2897         (WebCore::IDBTransaction::hasPendingActivity): Test the flag.
2898         (WebCore::IDBTransaction::dispatchEvent): Set the flag.
2899         * Modules/indexeddb/IDBTransaction.h:
2900
2901 2012-08-21  Pavel Feldman  <pfeldman@chromium.org>
2902
2903         Web Inspector: [regression] Settings panel fails to open.
2904         https://bugs.webkit.org/show_bug.cgi?id=94647
2905
2906         Unreviewed: one line JS front-end fix.
2907
2908         * inspector/front-end/ScriptsSearchScope.js:
2909         * inspector/front-end/Settings.js:
2910
2911 2012-08-21  Julien Chaffraix  <jchaffraix@webkit.org>
2912
2913         Crash in RenderTableSection::setCellLogicalWidths
2914         https://bugs.webkit.org/show_bug.cgi?id=94291
2915
2916         Reviewed by Abhishek Arya.
2917
2918         This issue was that splitAnonymousBoxesAroundChild would move a table section
2919         into a newly created table *without* marking it as needing cell recalc. The table
2920         would thus never build its structure to match its sections. The fix is to hop on
2921         the new willBeRemovedFromTree signal so that the section invalidates itself properly.
2922
2923         Test: fast/table/crash-split-table-section-no-cell-recalc.html
2924
2925         * rendering/RenderTableSection.cpp:
2926         (WebCore::RenderTableSection::willBeRemovedFromTree):
2927         * rendering/RenderTableSection.h:
2928         Replaced willBeDestroyed by willBeRemovedFromTree in RenderTableSection. This ensures that it is called
2929         when moving sections in the tree to mark them as needing cell recalc.
2930
2931 2012-08-21  Yoshifumi Inoue  <yosin@chromium.org>
2932
2933         [Forms] multiple fields time input UI should not have two focus ring.
2934         https://bugs.webkit.org/show_bug.cgi?id=94579
2935
2936         Reviewed by Hajime Morita.
2937
2938         This patch adds CSS selectors to override focus style for multiple
2939         fields time input UI.
2940
2941         No new tests. fast/forms/time-multiple-fields/time-multiple-fields-appearance-basic.html
2942         is updated for including focus state appearance.
2943
2944         * css/html.css:
2945         (input::-webkit-datetime-edit-ampm-field:focus): Override default focus appearance.
2946         (input::-webkit-datetime-edit-hour-field:focus): ditto
2947         (input::-webkit-datetime-edit-millisecond-field:focus): ditto
2948         (input::-webkit-datetime-edit-minute-field:focus): ditto
2949         (input::-webkit-datetime-edit-second-field:focus): ditto
2950
2951 2012-08-21  Adam Barth  <abarth@webkit.org>
2952
2953         V8 shouldn't have its own way of printing cross-origin error messages
2954         https://bugs.webkit.org/show_bug.cgi?id=94641
2955
2956         Reviewed by Eric Seidel.
2957
2958         V8 used to re-implement (poorly) the code for printing out an error
2959         message when a same-origin check failed. This patch deletes that code
2960         in favor of just calling the WebCore version of the code. There more to
2961         clean up here, but I had to stop before spidering over the whole
2962         codebase.
2963
2964         * bindings/generic/BindingSecurity.cpp:
2965         (WebCore::canAccessDocument):
2966         * bindings/js/BindingState.cpp:
2967         * bindings/js/BindingState.h:
2968         * bindings/v8/BindingState.cpp:
2969         (WebCore::printErrorMessageForFrame):
2970         * bindings/v8/BindingState.h:
2971         (WebCore):
2972         * bindings/v8/V8DOMWindowShell.cpp:
2973         (WebCore::reportUnsafeJavaScriptAccess):
2974         * bindings/v8/V8Proxy.cpp:
2975         * bindings/v8/V8Proxy.h:
2976         (V8Proxy):
2977
2978 2012-08-21  Shinya Kawanaka  <shinyak@chromium.org>
2979
2980         A shadow element in ShadowDOM of a button element does not work.
2981         https://bugs.webkit.org/show_bug.cgi?id=91486
2982
2983         Reviewed by Dimitri Glazkov.
2984
2985         Since a button element is extended from an HTMLFormControlElement, it creates a UserAgentShadowDOM
2986         just before adding an AuthorShadowDOM. However, actually a button element does not need any UserAgentShadowDOM.
2987         So we have to prevent it from creating UserAgentShadowDOM.
2988
2989         Test: fast/dom/shadow/shadowdom-for-button.html
2990
2991         * html/HTMLButtonElement.cpp:
2992         (WebCore::HTMLButtonElement::willAddAuthorShadowRoot):
2993         (WebCore):
2994         * html/HTMLButtonElement.h:
2995
2996 2012-08-21  Sukolsak Sakshuwong  <sukolsak@google.com>
2997
2998         Remove UndoManager's undoscope content attribute
2999         https://bugs.webkit.org/show_bug.cgi?id=94637
3000
3001         Reviewed by Ryosuke Niwa.
3002
3003         No new tests. Covered by existing tests.
3004
3005         * bindings/v8/DOMTransaction.cpp:
3006         (WebCore::DOMTransaction::callFunction):
3007         * dom/Document.cpp:
3008         (WebCore::Document::undoManager):
3009         * dom/Element.cpp:
3010         (WebCore::Element::~Element):
3011         (WebCore):
3012         * dom/Element.h:
3013         (Element):
3014         * dom/Element.idl:
3015         * dom/ElementRareData.h:
3016         (ElementRareData):
3017         * editing/UndoManager.cpp:
3018         (WebCore::UndoManager::create):
3019         (WebCore::UndoManager::UndoManager):
3020         (WebCore::UndoManager::disconnect):
3021         (WebCore::UndoManager::transact):
3022         (WebCore::UndoManager::undo):
3023         (WebCore::UndoManager::redo):
3024         (WebCore::UndoManager::clearUndo):
3025         (WebCore::UndoManager::clearRedo):
3026         (WebCore):
3027         * editing/UndoManager.h:
3028         (WebCore):
3029         (UndoManager):
3030         (WebCore::UndoManager::document):
3031         (WebCore::UndoManager::ownerNode):
3032         * html/HTMLAttributeNames.in:
3033         * html/HTMLElement.cpp:
3034         (WebCore::HTMLElement::parseAttribute):
3035         (WebCore::HTMLElement::setContentEditable):
3036
3037 2012-08-21  Joanmarie Diggs  <jdiggs@igalia.com>
3038
3039         [Gtk] No accessible caret-moved events found in certain content
3040         https://bugs.webkit.org/show_bug.cgi?id=72811
3041
3042         Reviewed by Chris Fleizach.
3043
3044         Part of the bug is due to objects which should claim to implement AtkText
3045         failed to do so as a result of containing a mixture of inline and block
3046         spans.
3047
3048         An updated unit test was provided.
3049
3050         * accessibility/gtk/WebKitAccessibleWrapperAtk.cpp:
3051         (roleIsTextType): New method to check if a role is one expected to have
3052         implemented the AtkText interface. Currently that is defined as:
3053          - ParagraphRole
3054          - HeadingRole
3055          - DivRole
3056          - CellRole
3057         (getInterfaceMaskFromObject): If a role is one of the text type roles,
3058         automatically add WAI_TEXT to the accessible object's interface mask.
3059
3060 2012-08-21  Tony Chang  <tony@chromium.org>
3061
3062         Force XML comments to maintain whitespace
3063         https://bugs.webkit.org/show_bug.cgi?id=94620
3064
3065         Reviewed by Pavel Feldman.
3066
3067         Fix a typo in XMLViewer.css for white-space formatting. This seems
3068         like the desired behavior so you can see, e.g., code formatted in an
3069         XML comment.
3070
3071         Covered by existing xmlviewer tests in http/tests/xmlviewer/dumpAsText
3072
3073         * xml/XMLViewer.css:
3074         (.comment): Fix typo.
3075         * xml/XMLViewer.js:
3076         (createComment): Add style to comment nodes.
3077
3078 2012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
3079
3080         Unreviewed, rolling out r126202.
3081         http://trac.webkit.org/changeset/126202
3082         https://bugs.webkit.org/show_bug.cgi?id=94657
3083
3084         Causes assertion failures on Chromium Linux dbg compositing
3085         layout tests (Requested by dominicc on #webkit).
3086
3087         * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
3088         (WebCore::FrameBufferSkPictureCanvasLayerTextureUpdater::updateTextureRect):
3089         * platform/graphics/chromium/LayerRendererChromium.cpp:
3090         (WebCore::applyFilters):
3091         (WebCore::LayerRendererChromium::drawRenderPassQuad):
3092         (WebCore::LayerRendererChromium::drawTileQuad):
3093         (WebCore::LayerRendererChromium::drawYUVVideoQuad):
3094         (WebCore::LayerRendererChromium::drawTextureQuad):
3095         (WebCore::LayerRendererChromium::getFramebufferTexture):
3096         (WebCore::LayerRendererChromium::bindFramebufferToTexture):
3097         * platform/graphics/chromium/LayerRendererChromium.h:
3098         (LayerRendererChromium):
3099         * platform/graphics/chromium/cc/CCResourceProvider.cpp:
3100         (WebCore::CCResourceProvider::createResource):
3101         (WebCore::CCResourceProvider::createResourceFromExternalTexture):
3102         (WebCore::CCResourceProvider::deleteResource):
3103         (WebCore::CCResourceProvider::upload):
3104         (WebCore::CCResourceProvider::lockForWrite):
3105         (WebCore::CCResourceProvider::unlockForWrite):
3106         (WebCore::CCResourceProvider::flush):
3107         (WebCore::CCResourceProvider::shallowFlushIfSupported):
3108         (WebCore::CCResourceProvider::lockForRead):
3109         (WebCore::CCResourceProvider::unlockForRead):
3110         (WebCore::CCResourceProvider::CCResourceProvider):
3111         * platform/graphics/chromium/cc/CCResourceProvider.h:
3112         (WebCore):
3113         (CCResourceProvider):
3114         (WebCore::CCResourceProvider::Resource::Resource):
3115         (Resource):
3116         (CCScopedLockResourceForRead):
3117         (WebCore::CCScopedLockResourceForRead::CCScopedLockResourceForRead):
3118         (WebCore::CCScopedLockResourceForRead::~CCScopedLockResourceForRead):
3119         (WebCore::CCScopedLockResourceForRead::textureId):
3120         (CCScopedLockResourceForWrite):
3121         (WebCore::CCScopedLockResourceForWrite::CCScopedLockResourceForWrite):
3122         (WebCore::CCScopedLockResourceForWrite::~CCScopedLockResourceForWrite):
3123         (WebCore::CCScopedLockResourceForWrite::textureId):
3124
3125 2012-08-21  David Grogan  <dgrogan@chromium.org>
3126
3127         IndexedDB: Fire error at request when abort is called in upgradeneeded
3128         https://bugs.webkit.org/show_bug.cgi?id=94402
3129
3130         Reviewed by Tony Chang.
3131
3132         Tests - updated intversion-abort-in-initial-upgradeneeded-expected.txt
3133
3134         * Modules/indexeddb/IDBDatabaseBackendImpl.cpp:
3135         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndAbortFired):
3136         (WebCore::IDBDatabaseBackendImpl::transactionFinishedAndCompleteFired):
3137         (WebCore):
3138         (WebCore::IDBDatabaseBackendImpl::runIntVersionChangeTransaction):
3139         Now that second-half open calls don't get abandoned on the queue, we
3140         can ASSERT that there's at most one of them at any time.
3141
3142         * Modules/indexeddb/IDBDatabaseBackendImpl.h:
3143         (IDBDatabaseBackendImpl):
3144         * Modules/indexeddb/IDBRequest.cpp:
3145         (WebCore::IDBRequest::dispatchEvent):
3146         Move setting m_didFireUpgradeNeededEvent before dispatching the event.
3147         If abort is called in the event handler an error event will be
3148         enqueued and ASSERT_WITH_MESSAGE(m_readyState == PENDING ||
3149         m_didFireUpgradeNeededEvent, ...) needs to pass.
3150
3151         * Modules/indexeddb/IDBTransactionBackendImpl.cpp:
3152         (WebCore::IDBTransactionBackendImpl::abort):
3153         (WebCore::IDBTransactionBackendImpl::commit):
3154
3155 2012-08-21  Sheriff Bot  <webkit.review.bot@gmail.com>
3156
3157         Unreviewed, rolling out r126233.
3158         http://trac.webkit.org/changeset/126233
3159         https://bugs.webkit.org/show_bug.cgi?id=94656
3160
3161         Broke Chromium Mac build (Requested by dominicc on #webkit).
3162
3163         * CMakeLists.txt:
3164         * GNUmakefile.list.am:
3165         * Target.pri:
3166         * WebCore.gypi:
3167         * WebCore.vcproj/WebCore.vcproj:
3168         * WebCore.xcodeproj/project.pbxproj:
3169         * css/mediaControls.css:
3170         (video::-webkit-media-text-track-display):
3171         * html/shadow/MediaControlElements.cpp:
3172         (RenderTextTrackContainerElement):
3173         (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
3174         * html/track/TextTrack.cpp:
3175         * html/track/TextTrack.h:
3176         (TextTrack):
3177         * html/track/TextTrackCue.cpp:
3178         (WebCore::TextTrackCue::TextTrackCue):
3179         (WebCore::TextTrackCue::calculateComputedLinePosition):
3180         (WebCore::TextTrackCue::calculateDisplayParameters):
3181         (WebCore::TextTrackCue::getDisplayTree):
3182         (WebCore::TextTrackCue::getPositionCoordinates):
3183         * html/track/TextTrackCue.h:
3184         (WebCore):
3185         (TextTrackCue):
3186         * rendering/RenderTextTrackCue.cpp: Removed.
3187         * rendering/RenderTextTrackCue.h: Removed.
3188
3189 2012-08-20  Kentaro Hara  <haraken@chromium.org>
3190
3191         [V8] Remove getToStringName() and getToStringTemplate() from V8Binding
3192         https://bugs.webkit.org/show_bug.cgi?id=94573
3193
3194         Reviewed by Adam Barth.
3195
3196         - Remove V8Binding::getToStringName() and V8Binding::getToStringTemplate().
3197
3198         - Replace getToStringName() with String::NewSymbol("toString").
3199
3200         - Fix V8PerIsolateData::getToStringTemplate() so that it caches a persistent
3201         handle of a created FunctionTemplate. Before this patch, a FunctionTemplate
3202         had been created for each toString().
3203
3204         No tests. No change in behavior.
3205
3206         * bindings/v8/V8Binding.cpp:
3207         (WebCore::constructorToString):
3208         * bindings/v8/V8Binding.h:
3209         (WebCore):
3210         * bindings/scripts/CodeGeneratorV8.pm:
3211         (GenerateImplementation):
3212         * bindings/scripts/test/V8/V8Float64Array.cpp:
3213         (WebCore::ConfigureV8Float64ArrayTemplate):
3214         * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
3215         (WebCore::ConfigureV8TestActiveDOMObjectTemplate):
3216         * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
3217         (WebCore::ConfigureV8TestCustomNamedGetterTemplate):
3218         * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
3219         (WebCore::ConfigureV8TestEventConstructorTemplate):
3220         * bindings/scripts/test/V8/V8TestEventTarget.cpp:
3221         (WebCore::ConfigureV8TestEventTargetTemplate):
3222         * bindings/scripts/test/V8/V8TestException.cpp:
3223         (WebCore::ConfigureV8TestExceptionTemplate):
3224         * bindings/scripts/test/V8/V8TestInterface.cpp:
3225         (WebCore::ConfigureV8TestInterfaceTemplate):
3226         * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
3227         (WebCore::ConfigureV8TestMediaQueryListListenerTemplate):
3228         * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
3229         (WebCore::ConfigureV8TestNamedConstructorTemplate):
3230         * bindings/scripts/test/V8/V8TestNode.cpp:
3231         (WebCore::ConfigureV8TestNodeTemplate):
3232         * bindings/scripts/test/V8/V8TestObj.cpp:
3233         (WebCore::ConfigureV8TestObjTemplate):
3234         * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
3235         (WebCore::ConfigureV8TestSerializedScriptValueInterfaceTemplate):
3236         * bindings/v8/V8PerIsolateData.h:
3237         (V8PerIsolateData):
3238
3239 2012-08-21  Arvid Nilsson  <anilsson@rim.com>
3240
3241         [BlackBerry] WebGL Aquarium fails to render
3242         https://bugs.webkit.org/show_bug.cgi?id=94634
3243
3244         The aquarium leaves with a glColorMask(false, false, false, true) which
3245         caused us to fail to blit the color components of the aquarium to the
3246         EGLImage.
3247
3248         Fixed by setting an appropriate color mask for a blit operation.
3249
3250         Reviewed by Yong Li.
3251
3252         No new tests, tested manually.
3253
3254         * platform/graphics/blackberry/EGLImageLayerWebKitThread.cpp:
3255         (WebCore::EGLImageLayerWebKitThread::blitToFrontBuffer):
3256
3257 2012-08-21  Victor Carbune  <victor@rosedu.org>
3258
3259         Display a TextTrackCue when snap-to-lines flag is set
3260         https://bugs.webkit.org/show_bug.cgi?id=79751
3261
3262         Reviewed by Tony Chang.
3263
3264         This patch implements rendering functionality for a given text track,
3265         following closer the exact WebVTT specification. There are two new classes
3266         which have been added in order to succesfully cover rendering when of a text
3267         track cue.
3268
3269         RenderTextTrackCue handles the specific rendering algorithm required,
3270         by checking for overlaps with other boxes that are in the same
3271         container (these can be any other boxes, not necessarily other cues,
3272         the video controls, for example).
3273
3274         TextTrackCueBox extends HTMLDivElement and is an intermediate layer
3275         between the renderer class and the actual cue object. Its purpose is
3276         to instantiate the particular renderer and cover all the default CSS
3277         styling that needs to be applied to the cue.
3278
3279         The layout is done in two steps:
3280           - Step 1: Layout the TextTrackCue with default CSS properties set (this is
3281         the TextTrackCueBox decorated with the respective CSS elements)
3282           - Step 2: RenderTextTrackCue adjusts the box position depending on the
3283         parameters of the TextTrackCue object and the overlaps that may occur with
3284         previously positioned cues.
3285
3286         Tests: media/track/track-cue-rendering-horizontal.html
3287                media/track/track-cue-rendering-vertical.html
3288
3289         * CMakeLists.txt: Updated to include RenderTextTrackCue.
3290         * GNUmakefile.list.am: Updated to include RenderTextTrackCue.
3291         * Target.pri: Updated to include RenderTextTrackCue.
3292         * WebCore.gypi: Updated to include RenderTextTrackCue.
3293         * WebCore.vcproj/WebCore.vcproj: Updated to include RenderTextTrackCue.
3294         * WebCore.xcodeproj/project.pbxproj: Updated to include RenderTextTrackCue.
3295         * css/mediaControls.css: Removed unreliable CSS.
3296         (video::-webkit-media-text-track-display): Removed properties.
3297         * html/shadow/MediaControlElements.cpp: Updated to not use the new class.
3298         (RenderTextTrackContainerElement):
3299         (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Simplified
3300         the function by moving the check if track is rendered in TextTrack and used
3301         the TextTrackCueBox for cues.
3302         * html/track/TextTrack.cpp: Added a new method.
3303         (WebCore::TextTrack::isRendered): Method that returns whether the track should
3304         be rendered or not.
3305         (WebCore):
3306         * html/track/TextTrack.h: Added the isRendered method.
3307         (TextTrack):
3308         * html/track/TextTrackCue.cpp: Added several helper methods and
3309         the TextTrackCueBox.
3310         (WebCore):
3311         (WebCore::TextTrackCueBox::TextTrackCueBox): The TextTrackCueBox extends
3312         the HTMLDivElement and represents a bridge class between RenderTextTrackCue
3313         and TextTrackCue. This is required as the layout is done in two steps, as
3314         explained on top of the ChangeLog entry.
3315         (WebCore::TextTrackCueBox::getCue): Returns the associated TextTrackCue object.
3316         (WebCore::TextTrackCueBox::applyCSSProperties): Applies a part of the default CSS
3317         properties, as defined by section 3.5.1 of the WebVTT specification.
3318         (WebCore::TextTrackCueBox::shadowPseudoId): Moved the shadow pseudo id.
3319         (WebCore::TextTrackCueBox::createRenderer): Creates the particular renderer.
3320         (WebCore::TextTrackCue::TextTrackCue): Corrected the internal writing mode map.
3321         (WebCore::TextTrackCue::calculateComputedLinePosition): Updated the compute line
3322         position algorithm. This requires, however, a method to consider only rendered
3323         tracks (and therefore will be addressed completely in subsequent changeset).
3324         (WebCore::TextTrackCue::calculateDisplayParameters): Updated and corrected the
3325         computed display parameters to match the current specification.
3326         (WebCore::TextTrackCue::getDisplayTree): Update to use the TextTrackCueBox class
3327         and moved CSS application to the respective class.
3328         (WebCore::TextTrackCue::getPositionCoordinates): Added comment to specify in which
3329         situation this method is used and change visibility to private.
3330         (WebCore::TextTrackCue::getCSSWritingMode): Returns the CSS writing mode corresponding
3331         to the cue writing mode.
3332         (WebCore::TextTrackCue::getCSSSize): Returns the cue width / height (depending on the
3333         writing direction.
3334         (WebCore::TextTrackCue::getCSSPosition): Returns the default display position, that is
3335         used in the first layout step.
3336         * html/track/TextTrackCue.h:
3337         (WebCore):
3338         (TextTrackCueBox):
3339         (WebCore::TextTrackCueBox::create): Initialization method.
3340         (TextTrackCue):
3341         (WebCore::TextTrackCue::getWritingDirection): Helper method to return the internal
3342         values used to represent the writing direction.
3343         * rendering/RenderTextTrackCue.cpp: Added.
3344         (WebCore):
3345         (WebCore::RenderTextTrackCue::RenderTextTrackCue):
3346         (WebCore::RenderTextTrackCue::layout): The rendering steps, as mentioned in
3347         the WebVTT rendering rules. Currently, this treats only the snap-to-lines set
3348         case. It is implemented following closely the spec, and might be subject to
3349         change as discussions on various bugs evolve.
3350         (WebCore::RenderTextTrackCue::initializeLayoutParameters): Steps 1 - 7.
3351         (WebCore::RenderTextTrackCue::placeBoxInDefaultPosition): Steps 8 - 10.
3352         (WebCore::RenderTextTrackCue::isOutside): Inline method to check if the cue is outside.
3353         (WebCore::RenderTextTrackCue::isOverlapping): Inline method to check if the cue overlaps other boxes.
3354         (WebCore::RenderTextTrackCue::shouldSwitchDirection): Step 12.
3355         (WebCore::RenderTextTrackCue::moveBoxesByStep): Step 13.
3356         (WebCore::RenderTextTrackCue::switchDirection): Steps 15 - 18.
3357         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesSet): Cue repositioning
3358         for text track cue when the snap to lines flag is set.
3359         (WebCore::RenderTextTrackCue::repositionCueSnapToLinesNotSet): Cue repositioning
3360         for text track cue when the snap to lines flag is not set. Not implemented yet.
3361         * rendering/RenderTextTrackCue.h: Added.
3362         (WebCore):
3363         (RenderTextTrackCue): Rendering class, handling the display of cues.
3364
3365 2012-08-21  Lianghui Chen  <liachen@rim.com>
3366
3367         [BlackBerry] Add RSS content handling support
3368         https://bugs.webkit.org/show_bug.cgi?id=93496
3369
3370         Reviewed by Rob Buis.
3371
3372         Add code to filter RSS content, and properly convert them to HTML
3373         content so they can display nicely, instead of as plain text.
3374
3375         Following modules are included:
3376
3377         RSSFilterStream: the code for detecting RSS content, and controlling
3378         the handling of these content.
3379
3380         RSSParserBase: the base class for the following 3 RSS parser.
3381         RSS10Parser: the code for decoding RSS 1.0 content.
3382         RSS20Parser: the code for decoding RSS 2.0 content.
3383         RSSAtomParser: the code for decoding Atom format RSS content.
3384         RSSGenerator: the code for generating HTML content based on RSS feed.
3385
3386         No new tests as it's not changing how HTML content is handled.
3387
3388         * PlatformBlackBerry.cmake:
3389         * platform/network/blackberry/NetworkJob.cpp:
3390         (WebCore::NetworkJob::initialize):
3391         * platform/network/blackberry/rss/RSS10Parser.cpp: Added.
3392         (WebCore):
3393         (WebCore::RSS10Parser::RSS10Parser):
3394         (WebCore::RSS10Parser::parseBuffer):
3395         (WebCore::RSS10Parser::parseXmlDoc):
3396         (WebCore::RSS10Parser::parseItemBaseAttribute):
3397         (WebCore::RSS10Parser::parseItem):
3398         (WebCore::RSS10Parser::parseFeed):
3399         * platform/network/blackberry/rss/RSS10Parser.h: Added.
3400         (WebCore):
3401         (RSS10Parser):
3402         * platform/network/blackberry/rss/RSS20Parser.cpp: Added.
3403         (WebCore):
3404         (WebCore::RSS20Parser::RSS20Parser):
3405         (WebCore::RSS20Parser::parseBuffer):
3406         (WebCore::RSS20Parser::parseXmlDoc):
3407         (WebCore::RSS20Parser::parseItemBaseAttribute):
3408         (WebCore::RSS20Parser::parseItem):
3409         (WebCore::RSS20Parser::parseFeed):
3410         (WebCore::RSS20Parser::parseEnclosure):
3411         * platform/network/blackberry/rss/RSS20Parser.h: Added.
3412         (WebCore):
3413         (RSS20Parser):
3414         * platform/network/blackberry/rss/RSSAtomParser.cpp: Added.
3415         (WebCore):
3416         (WebCore::isRelativePath):
3417         (WebCore::RSSAtomLink::relType):
3418         (WebCore::RSSAtomParser::RSSAtomParser):
3419         (WebCore::RSS