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