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