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