2011-04-11 Anna Cavender <annacc@chromium.org>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-04-11  Anna Cavender  <annacc@chromium.org>
2
3         Reviewed by Eric Carlson.
4
5         Setup ENABLE(TRACK) feature define + initial HTMLTrackElement
6         https://bugs.webkit.org/show_bug.cgi?id=53556
7
8         No new tests. No real functionality added just yet.
9
10         * CMakeLists.txt:
11         * CodeGenerators.pri:
12         * Configurations/FeatureDefines.xcconfig:
13         * DerivedSources.make:
14         * GNUmakefile.am:
15         * GNUmakefile.list.am:
16         * WebCore.gypi:
17         * WebCore.xcodeproj/project.pbxproj:
18         * features.pri:
19         * html/HTMLAttributeNames.in:
20         * html/HTMLTagNames.in:
21         * html/HTMLTrackElement.cpp: Added.
22         (WebCore::HTMLTrackElement::HTMLTrackElement):
23         (WebCore::HTMLTrackElement::create):
24         (WebCore::HTMLTrackElement::insertedIntoTree):
25         (WebCore::HTMLTrackElement::willRemove):
26         (WebCore::HTMLTrackElement::src):
27         (WebCore::HTMLTrackElement::setSrc):
28         (WebCore::HTMLTrackElement::kind):
29         (WebCore::HTMLTrackElement::setKind):
30         (WebCore::HTMLTrackElement::srclang):
31         (WebCore::HTMLTrackElement::setSrclang):
32         (WebCore::HTMLTrackElement::label):
33         (WebCore::HTMLTrackElement::setLabel):
34         (WebCore::HTMLTrackElement::isDefault):
35         (WebCore::HTMLTrackElement::setIsDefault):
36         (WebCore::HTMLTrackElement::isURLAttribute):
37         * html/HTMLTrackElement.h: Added.
38         * html/HTMLTrackElement.idl: Added.
39
40 2011-04-11  Ben Taylor  <bentaylor.solx86@gmail.com>
41
42         Reviewed by David Levin.
43
44         https://bugs.webkit.org/show_bug.cgi?id=57535
45
46         Better compile fix for Solaris 10/Sun Studio 12 CC 
47         needing <sys/time.h>
48
49         * loader/icon/IconRecord.h:
50         * page/Page.h:
51         * platform/network/ResourceResponseBase.h:
52
53 2011-04-11  Alexey Proskuryakov  <ap@apple.com>
54
55         Reviewed by Maciej Stachowiak.
56
57         WebKit2: Cannot use Ctrl-Delete as a custom keyboard shortcut
58         https://bugs.webkit.org/show_bug.cgi?id=58265
59         <rdar://problem/9221468>
60
61         * page/EventHandler.cpp:
62         (WebCore::EventHandler::defaultKeyboardEventHandler): Handle Backspace.
63         (WebCore::EventHandler::defaultSpaceEventHandler): Enabled this on Mac, and added checks for
64         other modifiers - no one wants to scroll on Ctrl+Alt+Space and such.
65         (WebCore::EventHandler::defaultBackspaceEventHandler): Backspace goes back, Shift-backspace
66         goes forward. All browsers do it.
67         (WebCore::EventHandler::defaultArrowEventHandler): Assert that this function was called
68         for a correct event.
69         (WebCore::EventHandler::defaultTabEventHandler): Ditto.
70
71         * page/EventHandler.h: Added defaultBackspaceEventHandler.
72
73 2011-04-11  Matthew Delaney  <mdelaney@apple.com>
74
75         Reviewed by Dan Bernstein.
76
77         [CG] drawImage with a subimage bleeds pixel data at borders
78         https://bugs.webkit.org/show_bug.cgi?id=58267
79
80         Test: fast/canvas/DrawImageSinglePixelStretch.html
81
82         * platform/graphics/cg/ImageCG.cpp:
83         (WebCore::BitmapImage::draw): Any interpolation quality other than 'none' will graft out the subimage first now.
84
85 2011-04-11  Chris Marrin  <cmarrin@apple.com>
86
87         Reviewed by Simon Fraser.
88
89         iframe/compositing propagation should also work for <object> and framesets
90         https://bugs.webkit.org/show_bug.cgi?id=39037
91
92         Generalized the code that handles the parenting of composited <iframe> elements
93         to include <frame> and <object> elements. This includes forcing the parent
94         element to be composited and constructing the layer tree in the child document
95         and properly parenting it. Much of the change is giving the function calls more
96         generic names (from ...IFrame... to ...Frame...)
97         
98         Compositing tests that were done in RenderIFrame have been moved to RenderPart
99         since this is the highest base class common to all 3 elements.
100         
101         I also renamed several ...IFrame... functions to
102         ...Frame... and changed them so they work on a RenderPart for determining
103         if the renderer is composited. One other detail is that <iframe> and 
104         <object> never share style since they might be composited. I had to add
105         <frame> to that list.
106
107         Tests: compositing/framesets/composited-frame-alignment.html
108                compositing/objects/composited-object-alignment.html
109
110         * css/CSSStyleSelector.cpp: Add <frame> to list of element types that should never share style since it might be composited.
111         (WebCore::CSSStyleSelector::canShareStyleWithElement):
112         * page/FrameView.cpp:
113         (WebCore::FrameView::hasCompositedContentIncludingDescendants):
114         (WebCore::FrameView::setIsOverlapped):
115         * rendering/RenderIFrame.cpp: Moved methods to RenderPart
116         * rendering/RenderIFrame.h:
117         * rendering/RenderLayerBacking.cpp:
118         (WebCore::RenderLayerBacking::updateAfterWidgetResize):
119         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
120         (WebCore::RenderLayerBacking::paintingGoesToWindow):
121         * rendering/RenderLayerCompositor.cpp:
122         (WebCore::RenderLayerCompositor::updateBacking):
123         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
124         (WebCore::RenderLayerCompositor::frameContentsCompositor):
125         (WebCore::RenderLayerCompositor::parentFrameContentLayers):
126         (WebCore::RenderLayerCompositor::didMoveOnscreen):
127         (WebCore::RenderLayerCompositor::allowsIndependentlyCompositedFrames):
128         (WebCore::RenderLayerCompositor::shouldPropagateCompositingToEnclosingFrame):
129         (WebCore::RenderLayerCompositor::enclosingFrameElement):
130         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
131         (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
132         (WebCore::RenderLayerCompositor::requiresScrollLayer):
133         (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
134         (WebCore::RenderLayerCompositor::attachRootPlatformLayer):
135         (WebCore::RenderLayerCompositor::detachRootPlatformLayer):
136         * rendering/RenderLayerCompositor.h:
137         * rendering/RenderPart.cpp: Functions moved from RenderIFrame
138         (WebCore::RenderPart::requiresLayer):
139         (WebCore::RenderPart::requiresAcceleratedCompositing):
140         * rendering/RenderPart.h:
141
142 2011-04-11  Yael Aharon  <yael.aharon@nokia.com>
143
144         Reviewed by Eric Seidel.
145
146         InlineBox::prevOnline and InlineBox::prevOnlineExists() are confusing and should be renamed
147         https://bugs.webkit.org/show_bug.cgi?id=57178
148
149         Remove prevOnLineExists() and nextOnLineExists() as they are not used anymore.
150         No new tests needed because this is cleanup only.
151
152         * rendering/InlineBox.cpp:
153         * rendering/InlineBox.h:
154         (WebCore::InlineBox::InlineBox):
155         (WebCore::InlineBox::setPrevOnLine):
156
157 2011-04-11  David Hyatt  <hyatt@apple.com>
158
159         Reviewed by Dan Bernstein.
160
161         https://bugs.webkit.org/show_bug.cgi?id=58261
162
163         Fix for layout regression on marketwatch.com. When I converted TrailingFloatsRootInlineBox over
164         to the new overflow model, I messed up the math and passed a bottom value where I should have
165         passed a height value. This patch fixes the code to be logically equivalent to the way it
166         was prior to my changes.
167
168         Added fast/overflow/trailing-float-linebox.html.
169
170         * rendering/RenderBlockLineLayout.cpp:
171         (WebCore::RenderBlock::layoutInlineChildren):
172
173 2011-04-11  Adrienne Walker  <enne@google.com>
174
175         Unreviewed, rolling out r83500.
176         http://trac.webkit.org/changeset/83500
177         https://bugs.webkit.org/show_bug.cgi?id=57113
178
179         Regresses huge-layer-rotated test
180
181         * platform/graphics/chromium/ContentLayerChromium.cpp:
182         (WebCore::ContentLayerChromium::ContentLayerChromium):
183         (WebCore::ContentLayerChromium::~ContentLayerChromium):
184         (WebCore::ContentLayerChromium::cleanupResources):
185         (WebCore::ContentLayerChromium::requiresClippedUpdateRect):
186         (WebCore::ContentLayerChromium::paintContentsIfDirty):
187         (WebCore::ContentLayerChromium::resizeUploadBuffer):
188         (WebCore::ContentLayerChromium::updateTextureIfNeeded):
189         (WebCore::ContentLayerChromium::updateTexture):
190         (WebCore::ContentLayerChromium::draw):
191         (WebCore::ContentLayerChromium::updateCompositorResources):
192         (WebCore::ContentLayerChromium::unreserveContentsTexture):
193         (WebCore::ContentLayerChromium::bindContentsTexture):
194         (WebCore::ContentLayerChromium::dumpLayerProperties):
195         * platform/graphics/chromium/ContentLayerChromium.h:
196         (WebCore::ContentLayerChromium::drawsContent):
197         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
198         (WebCore::GraphicsLayerChromium::setMaskLayer):
199         * platform/graphics/chromium/ImageLayerChromium.cpp:
200         (WebCore::ImageLayerChromium::paintContentsIfDirty):
201         (WebCore::ImageLayerChromium::updateTextureIfNeeded):
202         * platform/graphics/chromium/ImageLayerChromium.h:
203         * platform/graphics/chromium/LayerChromium.h:
204         (WebCore::LayerChromium::draw):
205         * platform/graphics/chromium/LayerRendererChromium.cpp:
206         (WebCore::LayerRendererChromium::drawRootLayer):
207         (WebCore::LayerRendererChromium::drawLayers):
208         (WebCore::LayerRendererChromium::paintContentsRecursive):
209         (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay):
210         (WebCore::LayerRendererChromium::drawLayer):
211         (WebCore::LayerRendererChromium::initializeSharedObjects):
212         (WebCore::LayerRendererChromium::cleanupSharedObjects):
213         * platform/graphics/chromium/LayerRendererChromium.h:
214         (WebCore::LayerRendererChromium::contentLayerProgram):
215         * platform/graphics/chromium/LayerTilerChromium.cpp:
216         (WebCore::LayerTilerChromium::invalidateRect):
217         (WebCore::LayerTilerChromium::update):
218         (WebCore::LayerTilerChromium::updateFromPixels):
219         (WebCore::LayerTilerChromium::draw):
220         * platform/graphics/chromium/LayerTilerChromium.h:
221         * platform/graphics/chromium/PlatformCanvas.cpp:
222         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
223         (WebCore::PlatformCanvas::Painter::Painter):
224         * platform/graphics/chromium/PlatformCanvas.h:
225         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
226         (WebCore::RenderSurfaceChromium::draw):
227         * platform/graphics/chromium/RenderSurfaceChromium.h:
228         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
229         (WebCore::CCCanvasLayerImpl::draw):
230         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
231         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
232         (WebCore::CCHeadsUpDisplay::draw):
233         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
234         (WebCore::CCLayerImpl::draw):
235         * platform/graphics/chromium/cc/CCLayerImpl.h:
236         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
237         (WebCore::CCPluginLayerImpl::draw):
238         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
239         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
240         (WebCore::CCVideoLayerImpl::draw):
241         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
242
243 2011-04-11  Jon Honeycutt  <jhoneycutt@apple.com>
244
245         <rdar://problem/9267042> Assertion failure on launch in
246         LayerChangesFlusher::setHook().
247
248         https://bugs.webkit.org/show_bug.cgi?id=58270
249
250         Reviewed by Adam Roben.
251
252         * platform/graphics/ca/win/LayerChangesFlusher.cpp:
253         (WebCore::LayerChangesFlusher::setHook):
254         MSDN says that the HINSTANCE passed in must be null if the thread ID
255         passed is a thread created by this process and the hook procedure is
256         within this process.
257
258 2011-04-11  MORITA Hajime  <morrita@google.com>
259
260         Unreviewed build fix.
261
262         Changeset 83492 broke Leopard build.
263         https://bugs.webkit.org/show_bug.cgi?id=58268
264
265         * editing/Editor.cpp:
266         (WebCore::Editor::markMisspellingsAfterTypingToWord):
267
268 2011-03-25  Adrienne Walker  <enne@google.com>
269
270         Reviewed by James Robinson.
271
272         [chromium] Tile content and image layers
273         https://bugs.webkit.org/show_bug.cgi?id=57113
274
275         Layers tile by default if any dimension is larger than 512.  Smaller
276         layers are contained within a single texture but still use the tiler
277         infrastructure so that there's only one code path.
278
279         Remove large layer support from content layers.  Content layers no
280         longer own a platform canvas--they own a tiler.  Refactor tiler to
281         allow for better separation of update/upload/paint.  Add rect
282         parameter to update and draw functions on layers for the layer-space
283         rect of interest.  This is necessary to know which tiles need to be
284         drawn.
285
286         * platform/graphics/chromium/ContentLayerChromium.cpp:
287         (WebCore::ContentLayerChromium::ContentLayerChromium):
288         (WebCore::ContentLayerChromium::~ContentLayerChromium):
289         (WebCore::ContentLayerPainter::ContentLayerPainter):
290         (WebCore::ContentLayerPainter::paint):
291         (WebCore::ContentLayerChromium::paintContentsIfDirty):
292         (WebCore::ContentLayerChromium::setLayerRenderer):
293         (WebCore::ContentLayerChromium::tilingTransform):
294         (WebCore::ContentLayerChromium::visibleLayerRect):
295         (WebCore::ContentLayerChromium::layerBounds):
296         (WebCore::ContentLayerChromium::updateLayerSize):
297         (WebCore::ContentLayerChromium::draw):
298         (WebCore::ContentLayerChromium::createTilerIfNeeded):
299         (WebCore::ContentLayerChromium::updateCompositorResources):
300         (WebCore::ContentLayerChromium::setTilingOption):
301         (WebCore::ContentLayerChromium::bindContentsTexture):
302         (WebCore::ContentLayerChromium::unreserveContentsTexture):
303         (WebCore::ContentLayerChromium::setIsMask):
304         (WebCore::ContentLayerChromium::dumpLayerProperties):
305         * platform/graphics/chromium/ContentLayerChromium.h:
306         (WebCore::ContentLayerChromium::drawsContent):
307         * platform/graphics/chromium/GraphicsLayerChromium.cpp:
308         (WebCore::GraphicsLayerChromium::setMaskLayer):
309         * platform/graphics/chromium/ImageLayerChromium.cpp:
310         (WebCore::ImageLayerChromium::paintContentsIfDirty):
311         (WebCore::ImageLayerChromium::updateCompositorResources):
312         (WebCore::ImageLayerChromium::layerBounds):
313         (WebCore::ImageLayerChromium::tilingTransform):
314         * platform/graphics/chromium/ImageLayerChromium.h:
315         * platform/graphics/chromium/LayerChromium.h:
316         (WebCore::LayerChromium::invalidateRect):
317         (WebCore::LayerChromium::paintContentsIfDirty):
318         (WebCore::LayerChromium::setIsMask):
319         (WebCore::LayerChromium::draw):
320         * platform/graphics/chromium/LayerRendererChromium.cpp:
321         (WebCore::LayerRendererChromium::drawRootLayer):
322         (WebCore::LayerRendererChromium::drawLayers):
323         (WebCore::LayerRendererChromium::paintContentsRecursive):
324         (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay):
325         (WebCore::LayerRendererChromium::drawLayer):
326         (WebCore::LayerRendererChromium::initializeSharedObjects):
327         (WebCore::LayerRendererChromium::cleanupSharedObjects):
328         * platform/graphics/chromium/LayerRendererChromium.h:
329         * platform/graphics/chromium/LayerTilerChromium.cpp:
330         (WebCore::LayerTilerChromium::getSingleTexture):
331         (WebCore::LayerTilerChromium::invalidateRect):
332         (WebCore::LayerTilerChromium::update):
333         (WebCore::LayerTilerChromium::uploadCanvas):
334         (WebCore::LayerTilerChromium::updateFromPixels):
335         (WebCore::LayerTilerChromium::draw):
336         (WebCore::LayerTilerChromium::unreserveTextures):
337         * platform/graphics/chromium/LayerTilerChromium.h:
338         (WebCore::LayerTilerChromium::setLayerRenderer):
339         (WebCore::LayerTilerChromium::skipsDraw):
340         * platform/graphics/chromium/PlatformCanvas.cpp:
341         (WebCore::PlatformCanvas::AutoLocker::AutoLocker):
342         (WebCore::PlatformCanvas::Painter::Painter):
343         * platform/graphics/chromium/PlatformCanvas.h:
344         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
345         (WebCore::RenderSurfaceChromium::draw):
346         * platform/graphics/chromium/RenderSurfaceChromium.h:
347         * platform/graphics/chromium/cc/CCCanvasLayerImpl.cpp:
348         (WebCore::CCCanvasLayerImpl::draw):
349         * platform/graphics/chromium/cc/CCCanvasLayerImpl.h:
350         * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
351         (WebCore::CCHeadsUpDisplay::draw):
352         * platform/graphics/chromium/cc/CCLayerImpl.cpp:
353         (WebCore::CCLayerImpl::draw):
354         * platform/graphics/chromium/cc/CCLayerImpl.h:
355         * platform/graphics/chromium/cc/CCPluginLayerImpl.cpp:
356         (WebCore::CCPluginLayerImpl::draw):
357         * platform/graphics/chromium/cc/CCPluginLayerImpl.h:
358         * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
359         (WebCore::CCVideoLayerImpl::draw):
360         * platform/graphics/chromium/cc/CCVideoLayerImpl.h:
361
362 2011-04-11  Eric Carlson  <eric.carlson@apple.com>
363
364         Reviewed by Simon Fraser.
365
366         Ignore context change callbacks when not on the main thread
367         https://bugs.webkit.org/show_bug.cgi?id=58256
368         <rdar://problem/9266090>
369
370         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
371         (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Do nothing when not called
372             on the main thread. This should only happen when no changes have actually 
373             been committed to the context, eg. when a video frame has been added to an image
374             queue, so return without triggering animations etc.
375
376 2011-04-11  Daniel Cheng  <dcheng@chromium.org>
377
378         Reviewed by Dmitry Titov.
379
380         [chromium] Implement image/png support in DataTransferItems
381         https://bugs.webkit.org/show_bug.cgi?id=58106
382
383         This patch implements DataTransferItem::getAsFile() using Blobs. In
384         addition, plumbing for image/png has been added so image paste will be
385         supported as long as the renderer makes that data available.
386
387         Tests: editing/pasteboard/data-transfer-items-image-png.html
388
389         * dom/DataTransferItem.h:
390         * dom/DataTransferItem.idl:
391         * platform/chromium/ClipboardMimeTypes.cpp:
392         * platform/chromium/ClipboardMimeTypes.h:
393         * platform/chromium/DataTransferItemChromium.cpp:
394         (WebCore::DataTransferItemChromium::getAsString):
395         (WebCore::DataTransferItemChromium::getAsFile):
396         * platform/chromium/DataTransferItemChromium.h:
397         * platform/chromium/PlatformBridge.h:
398
399 2011-04-11  Mario Sanchez Prada  <msanchez@igalia.com>
400
401         Reviewed by Chris Fleizach.
402
403         [Gtk] Implement support for Embedded Objects
404         https://bugs.webkit.org/show_bug.cgi?id=52148
405
406         Expose special OBJECT character for replaced elements, implementing
407         AtkText and AtkHyperlink when required.
408
409         * accessibility/AccessibilityRenderObject.cpp:
410         (WebCore::textIteratorBehaviorForTextRange): New helper function,
411         to return the right behavior, depending on the platform, so it
412         ensures that object replacement characters get emitted for GTK.
413         (WebCore::AccessibilityRenderObject::textUnderElement): Use the
414         new helper function textIteratorBehaviorForTextRange.
415         (WebCore::AccessibilityRenderObject::stringValue): Ditto.
416         (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
417         Consider replaced elements when calculating range length in GTK.
418
419         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
420         (textForRenderer): Ouput the 'object replacement character' for
421         replaced objects.
422         (getSelectionOffsetsForObject): Consider replaced elements when
423         calculating range length in GTK.
424         (webkitAccessibleHypertextGetLink): Remove wrong extra check that
425         were causing only links to be considered.
426         (webkitAccessibleHypertextGetNLinks): Replace wrong 'isLink()'
427         check with the right one, by checking that the right ATK interface
428         is being implemented by the AtkObject.
429         (getInterfaceMaskFromObject): Implement the Hyperlink interface
430         both for links and replaced objects.
431         (objectAndOffsetUnignored): Consider replaced elements when
432         calculating range length in GTK.
433
434         * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
435         (getRangeLengthForObject): Ensure spaces are used for replaced
436         elements when calling to TextIterator::rangeLength().
437
438         * editing/TextIterator.h: New value in the TextIteratorBehavior
439         enumeration (TextIteratorEmitsObjectReplacementCharacters) and new
440         private variable to consider that new option internally.
441         * editing/TextIterator.cpp:
442         (WebCore::TextIterator::TextIterator): Initialize the new private
443         attribute m_emitsObjectReplacementCharacters in constructors.
444         (WebCore::TextIterator::handleReplacedElement): Emit the 'object
445         replacement character' when m_emitsObjectReplacementCharacters.
446
447 2011-04-11  Jia Pu  <jpu@apple.com>
448
449         Reviewed by Adele Peterson.
450
451         Shouldn't carry out autocorrection when start typing a new word
452         https://bugs.webkit.org/show_bug.cgi?id=58241
453         <rdar://problem/9264736>
454
455         Tests: platform/mac/editing/spelling/autocorrection-at-beginning-of-word-1.html
456                platform/mac/editing/spelling/autocorrection-at-beginning-of-word-2.html
457
458         In TypingCommand::markMisspellingsAfterTyping(), we want to call Editor::markMisspellingsAfterTypingToWord()
459         only when the typing command is an insertion command, and preceding word contains at least one non-whitespace
460         character.
461
462         * editing/Editor.cpp:
463         (WebCore::Editor::markMisspellingsAfterTypingToWord):
464         * editing/Editor.h:
465         * editing/TypingCommand.cpp:
466         (WebCore::TypingCommand::markMisspellingsAfterTyping):
467
468 2011-04-11  Vsevolod Vlasov  <vsevik@chromium.org>
469
470         Reviewed by Pavel Feldman.
471
472         PerformanceTiming returns inconsistent values when timing is null.
473         https://bugs.webkit.org/show_bug.cgi?id=58143
474
475         Made PerformanceTiming returned values consistent when there is no timing object.
476
477         * page/PerformanceTiming.cpp:
478         (WebCore::PerformanceTiming::domainLookupStart):
479         (WebCore::PerformanceTiming::domainLookupEnd):
480         (WebCore::PerformanceTiming::connectStart):
481         (WebCore::PerformanceTiming::connectEnd):
482         (WebCore::PerformanceTiming::requestStart):
483         (WebCore::PerformanceTiming::responseStart):
484         (WebCore::PerformanceTiming::domLoading):
485
486 2011-04-05  Stephen White  <senorblanco@chromium.org>
487
488         Fix for jittering when animating a rotated image.
489         https://bugs.webkit.org/show_bug.cgi?id=50775
490
491         Make GraphicsContext::roundToDevicePixels a no-op on Chrome/Mac.
492
493         * platform/graphics/cg/GraphicsContextCG.cpp:
494         (WebCore::GraphicsContext::roundToDevicePixels):
495
496 2011-04-06  Xiaomei Ji  <xji@chromium.org>
497
498         Reviewed by Ryosuke Niwa.
499
500         Continue experiment with moving caret by word in visual order.
501         https://bugs.webkit.org/show_bug.cgi?id=57806
502
503         This is the 2nd patch, which adds implementation when caret is inside box
504         (not at boundaries). If the word break is inside the same box and not at the boundaries
505         either, the word break will be returned. If need to search the adjacent boxes for word
506         breaks, then, only the cases implemented in bug 57336 work.
507
508         * editing/visible_units.cpp:
509         (WebCore::leftmostPositionInRTLBoxInLTRBlock):
510         (WebCore::rightmostPositionInLTRBoxInRTLBlock):
511         (WebCore::lastWordBreakInBox):
512         (WebCore::positionIsVisuallyOrderedInBoxInBlockWithDifferentDirectionality):
513         (WebCore::nextWordBreakInBoxInsideBlockWithDifferentDirectionality):
514         (WebCore::WordBoundaryEntry::WordBoundaryEntry):
515         (WebCore::collectWordBreaksInBoxInsideBlockWithSameDirectionality):
516         (WebCore::collectWordBreaksInBoxInsideBlockWithDifferntDirectionality):
517         (WebCore::greatestValueUnder):
518         (WebCore::smallestOffsetAbove):
519         (WebCore::positionIsInsideBox):
520         (WebCore::positionBeforeNextWord):
521         (WebCore::positionAfterPreviousWord):
522         (WebCore::leftWordPosition):
523         (WebCore::rightWordPosition):
524
525 2011-04-11  Mario Sanchez Prada  <msanchez@igalia.com>
526
527         Reviewed by Chris Fleizach.
528
529         [GTK] Unskip accessibility/input-slider.html and accessibility/media-element.html
530         https://bugs.webkit.org/show_bug.cgi?id=58040
531
532         Don't expose objects of role SliderThumbRoles in GTK.
533
534         * accessibility/AccessibilitySlider.cpp:
535         (WebCore::AccessibilitySlider::addChildren): Allow the platform
536         make a final decision before including children in the hierarchy.
537         (WebCore::AccessibilitySliderThumb::accessibilityIsIgnored):
538         Implemented by relying on accessibilityPlatformIncludesObject().
539
540         * accessibility/gtk/AccessibilityObjectAtk.cpp:
541         (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
542         Ignore accessibility objects with role SliderThumbRole.
543
544 2011-04-11  Simon Fraser  <simon.fraser@apple.com>
545
546         Reviewed by Dan Bernstein.
547
548         Divide by zero in calcColumnWidth
549         https://bugs.webkit.org/show_bug.cgi?id=58230
550
551         Test: fast/multicol/huge-column-count.html
552         
553         Make sure we have at least one column, to avoid divide by zero.
554
555         * rendering/RenderBlock.cpp:
556         (WebCore::RenderBlock::calcColumnWidth):
557
558 2011-04-09  Gavin Barraclough  <barraclough@apple.com>
559
560         Reviewed by Sam Weinig.
561
562         Bug 58198 - Clean up JSValue implementation for JSVALUE64
563
564         JSNumberCell.h has been deprecated.
565
566         * ForwardingHeaders/runtime/JSNumberCell.h: Removed.
567         * bindings/scripts/CodeGeneratorJS.pm:
568         * bridge/c/c_instance.cpp:
569
570 2011-04-11  Dan Bernstein  <mitz@apple.com>
571
572         Build fix.
573
574         * html/canvas/CanvasRenderingContext2D.cpp:
575         (WebCore::CanvasRenderingContext2D::State::State):
576
577 2011-04-11  Antti Koivisto  <antti@apple.com>
578
579         Reviewed by Tony Gentilcore.
580
581         Document source preload scanned repeatedly
582         https://bugs.webkit.org/show_bug.cgi?id=58123
583         
584         Don't clear the preload scanner after execution resumes. This would lose the current
585         scanning point and lead to rescanning when the preload scanner would get reconstructed
586         due to main parser blocking again.
587
588         Instead clear the scanner only in the specific case of receiving new data while the main
589         parser has already reached the end of the current input.
590
591         Also switched to using isWaitingForScripts() instead of m_treeBuilder->isPaused() for consistency.
592
593         The case the clearing in resumeParsingAfterScriptExecution() was added for is covered by 
594         http/tests/loading/preload-slow-loading.php.
595
596         * html/parser/HTMLDocumentParser.cpp:
597         (WebCore::HTMLDocumentParser::insert):
598         (WebCore::HTMLDocumentParser::append):
599         (WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
600
601 2011-04-11  Dan Bernstein  <mitz@apple.com>
602
603         Build fix.
604
605         * html/canvas/CanvasRenderingContext2D.cpp:
606         (WebCore::CanvasRenderingContext2D::State::State):
607
608 2011-04-11  Dan Bernstein  <mitz@apple.com>
609
610         Reviewed by Alexey Proskuryakov.
611
612         Assertion failure in CanvasRenderingContext2D::State::fontsNeedUpdate when invalidating the font cache after opening canvas/philip/tests/initial.reset.2dstate.html (occurs on Qt debug test bot)
613         https://bugs.webkit.org/show_bug.cgi?id=58229
614
615         * html/canvas/CanvasRenderingContext2D.cpp:
616         (WebCore::CanvasRenderingContext2D::State::State): Added copy constructor, to register the copy with
617         the font selector if needed.
618         (WebCore::CanvasRenderingContext2D::State::operator=): Added assignment constructor, to handle
619         registration with the font selector as needed.
620         * html/canvas/CanvasRenderingContext2D.h:
621
622 2011-04-11  Mario Sanchez Prada  <msanchez@igalia.com>
623
624         Reviewed by Chris Fleizach.
625
626         [GTK] ARIA tables not exposing cells as HTML tables do
627         https://bugs.webkit.org/show_bug.cgi?id=57463
628
629         Expose cells for ARIA grids consistently with HTML tables in GTK,
630         keeping the same behaviour for the other platforms.
631
632         * accessibility/AccessibilityARIAGrid.cpp:
633         (WebCore::AccessibilityARIAGrid::addChild): Add the row's children
634         to the accessibility hierarchy when accessibility objects for rows
635         are ignoring accessibility, otherwise add the row.
636         (WebCore::AccessibilityARIAGrid::addChildren): Do not check at
637         this point whether every child of the table ignores or not
638         accessibility, letting addChild() make the proper decision later.
639
640         * accessibility/AccessibilityARIAGridCell.cpp:
641         (WebCore::AccessibilityARIAGridCell::parentTable): Consider that
642         rows could be ignoring accessibility, hence the parent could be
643         retrieved in the first call to parentObjectUnignored().
644         (WebCore::AccessibilityARIAGridCell::rowIndexRange): Ditto.
645         (WebCore::AccessibilityARIAGridCell::columnIndexRange): Ditto..
646
647         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
648         (atkRole): Map ColumnHeader and RowHeader to ATK_ROLE_TABLE_CELL.
649
650 2011-04-11  Sergio Villar Senin  <svillar@igalia.com>
651
652         Reviewed by Martin Robinson.
653
654         [GTK] Fix make distcheck
655         https://bugs.webkit.org/show_bug.cgi?id=58224
656
657         Removed a file that is no longer in the source tree.
658
659         * GNUmakefile.list.am:
660
661 2011-04-11  Dimitri Glazkov  <dglazkov@chromium.org>
662
663         Reviewed by Martin Robinson.
664
665         REGRESSION(r83397): Most GTK media controls are hidden when no valid source is specified
666         https://bugs.webkit.org/show_bug.cgi?id=58204
667
668         Covered by existing tests.
669
670         * platform/gtk/RenderThemeGtk.h:
671         (WebCore::RenderThemeGtk::hasOwnDisabledStateHandlingFor): Let GTK handle
672             the the state of media controls.
673
674 2011-04-11  Dimitri Glazkov  <dglazkov@chromium.org>
675
676         Remove obsolete comment, which was mistakenly landed in r83397.
677
678         Though potentially a work of art, the comment lost its functional meaning a long time ago.
679
680         * html/shadow/MediaControls.cpp:
681         (WebCore::MediaControls::create): Removed comment.
682
683 2011-04-05  Hans Wennborg  <hans@chromium.org>
684
685         Reviewed by Steve Block.
686
687         IndexedDB: Introduce skeleton for LevelDB backend
688         https://bugs.webkit.org/show_bug.cgi?id=57827
689
690         No new tests: no new functionality (yet).
691
692         * WebCore.gyp/WebCore.gyp:
693             Add dependency on leveldb when ENABLE_LEVELDB=1 in feature_defines.
694         * WebCore.gypi:
695             Add new files.
696         * storage/IDBBackingStore.h:
697         (WebCore::IDBBackingStore::ObjectStoreRecordIdentifier::~ObjectStoreRecordIdentifier):
698             Introduce abstract type ObjectStoreRecordIdentifier. The SQLite
699             backend uses integers to refer to a specific row in a table, but
700             the LevelDB backend will use something else.
701         * storage/IDBDatabaseBackendImpl.cpp:
702         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
703         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
704         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
705         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
706             Change functions to pass along the database id for operations that
707             concern object stores. We want to be able to group object stores
708             ids per database.
709         * storage/IDBFactoryBackendImpl.cpp:
710         (WebCore::IDBFactoryBackendImpl::open):
711             Decide which backend to use based on the backingStoreType
712             parameter.
713         * storage/IDBIndexBackendImpl.cpp:
714         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
715         (WebCore::IDBIndexBackendImpl::openCursorInternal):
716         (WebCore::IDBIndexBackendImpl::getInternal):
717         (WebCore::IDBIndexBackendImpl::addingKeyAllowed):
718         * storage/IDBIndexBackendImpl.h:
719         (WebCore::IDBIndexBackendImpl::create):
720             Pass database and object store id to backend functions concerning
721             indexes.
722         * storage/IDBLevelDBBackingStore.cpp: Added.
723         (WebCore::IDBLevelDBBackingStore::IDBLevelDBBackingStore):
724         (WebCore::IDBLevelDBBackingStore::~IDBLevelDBBackingStore):
725         (WebCore::IDBLevelDBBackingStore::open):
726         (WebCore::IDBLevelDBBackingStore::extractIDBDatabaseMetaData):
727         (WebCore::IDBLevelDBBackingStore::setIDBDatabaseMetaData):
728         (WebCore::IDBLevelDBBackingStore::getObjectStores):
729         (WebCore::IDBLevelDBBackingStore::createObjectStore):
730         (WebCore::IDBLevelDBBackingStore::deleteObjectStore):
731         (WebCore::IDBLevelDBBackingStore::getObjectStoreRecord):
732         (WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
733         (WebCore::IDBLevelDBBackingStore::clearObjectStore):
734         (WebCore::IDBLevelDBBackingStore::deleteObjectStoreRecord):
735         (WebCore::IDBLevelDBBackingStore::nextAutoIncrementNumber):
736         (WebCore::IDBLevelDBBackingStore::keyExistsInObjectStore):
737         (WebCore::IDBLevelDBBackingStore::forEachObjectStoreRecord):
738         (WebCore::IDBLevelDBBackingStore::getIndexes):
739         (WebCore::IDBLevelDBBackingStore::createIndex):
740         (WebCore::IDBLevelDBBackingStore::deleteIndex):
741         (WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):
742         (WebCore::IDBLevelDBBackingStore::deleteIndexDataForRecord):
743         (WebCore::IDBLevelDBBackingStore::getObjectViaIndex):
744         (WebCore::IDBLevelDBBackingStore::getPrimaryKeyViaIndex):
745         (WebCore::IDBLevelDBBackingStore::keyExistsInIndex):
746         (WebCore::IDBLevelDBBackingStore::openObjectStoreCursor):
747         (WebCore::IDBLevelDBBackingStore::openIndexKeyCursor):
748         (WebCore::IDBLevelDBBackingStore::openIndexCursor):
749         (WebCore::IDBLevelDBBackingStore::createTransaction):
750         * storage/IDBLevelDBBackingStore.h: Added.
751             Add an empty implementation of the LevelDB backend.
752         * storage/IDBObjectStoreBackendImpl.cpp:
753             Keep track of database id, use the new RecordIdentifier.
754         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
755         (WebCore::IDBObjectStoreBackendImpl::getInternal):
756         (WebCore::IDBObjectStoreBackendImpl::putInternal):
757         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
758         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
759         (WebCore::populateIndex):
760         (WebCore::IDBObjectStoreBackendImpl::createIndex):
761         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
762         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
763         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
764         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
765         (WebCore::IDBObjectStoreBackendImpl::genAutoIncrementKey):
766         * storage/IDBObjectStoreBackendImpl.h:
767         (WebCore::IDBObjectStoreBackendImpl::create):
768         (WebCore::IDBObjectStoreBackendImpl::databaseId):
769         * storage/IDBSQLiteBackingStore.cpp:
770         (WebCore::IDBSQLiteBackingStore::open):
771         (WebCore::IDBSQLiteBackingStore::createObjectStore):
772         (WebCore::IDBSQLiteBackingStore::deleteObjectStore):
773         (WebCore::IDBSQLiteBackingStore::getObjectStoreRecord):
774         (WebCore::IDBSQLiteBackingStore::putObjectStoreRecord):
775         (WebCore::IDBSQLiteBackingStore::clearObjectStore):
776         (WebCore::IDBSQLiteBackingStore::deleteObjectStoreRecord):
777         (WebCore::IDBSQLiteBackingStore::nextAutoIncrementNumber):
778         (WebCore::IDBSQLiteBackingStore::keyExistsInObjectStore):
779         (WebCore::IDBSQLiteBackingStore::forEachObjectStoreRecord):
780         (WebCore::IDBSQLiteBackingStore::getIndexes):
781         (WebCore::IDBSQLiteBackingStore::createIndex):
782         (WebCore::IDBSQLiteBackingStore::deleteIndex):
783         (WebCore::IDBSQLiteBackingStore::putIndexDataForRecord):
784         (WebCore::IDBSQLiteBackingStore::deleteIndexDataForRecord):
785         (WebCore::IDBSQLiteBackingStore::getObjectViaIndex):
786         (WebCore::IDBSQLiteBackingStore::getPrimaryKeyViaIndex):
787         (WebCore::IDBSQLiteBackingStore::keyExistsInIndex):
788         (WebCore::IDBSQLiteBackingStore::openObjectStoreCursor):
789         (WebCore::IDBSQLiteBackingStore::openIndexKeyCursor):
790         (WebCore::IDBSQLiteBackingStore::openIndexCursor):
791         * storage/IDBSQLiteBackingStore.h:
792
793 2011-04-11  Alexander Pavlov  <apavlov@chromium.org>
794
795         Reviewed by Yury Semikhatsky.
796
797         Web Inspector: Duplicate CSS properties are reported for non-lowercase property names in the Styles sidebar
798         https://bugs.webkit.org/show_bug.cgi?id=58226
799
800         * inspector/InspectorStyleSheet.cpp:
801         (WebCore::InspectorStyle::populateAllProperties):
802
803 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
804
805         Reviewed by Pavel Feldman.
806
807         Web Inspector: get rid of source frame delegates for resources panel.
808         https://bugs.webkit.org/show_bug.cgi?id=58041
809
810         Use TextViewer configured with a domain-specific delegate to show/edit resource contents in resources panel.
811
812         * inspector/front-end/ResourceView.js:
813         (WebInspector.ResourceView.createResourceView):
814         (WebInspector.ResourceView.resourceViewTypeMatchesResource):
815         (WebInspector.ResourceSourceFrame):
816         (WebInspector.ResourceSourceFrame.prototype.get resource):
817         (WebInspector.ResourceSourceFrame.prototype.contentEditable):
818         (WebInspector.ResourceSourceFrame.prototype._requestContent):
819         (WebInspector.CSSSourceFrame):
820         (WebInspector.CSSSourceFrame.prototype.contentEditable):
821         (WebInspector.CSSSourceFrame.prototype._editContent):
822         (WebInspector.CSSSourceFrame.prototype._editContent.handleInfos):
823         (WebInspector.CSSSourceFrame.prototype._saveStyleSheet):
824         * inspector/front-end/SourceFrame.js:
825         (WebInspector.SourceFrame.prototype._ensureContentLoaded):
826         (WebInspector.SourceFrame.prototype._requestContent):
827         (WebInspector.SourceFrame.prototype._handleSave):
828         (WebInspector.SourceFrame.prototype._editContent):
829
830 2011-04-11  Alexis Menard  <alexis.menard@openbossa.org>
831
832         Reviewed by Andreas Kling.
833
834         [Qt] Regression : r83051 Oxygen's lineedits are not rendered properly
835         https://bugs.webkit.org/show_bug.cgi?id=58076
836
837         State_Sunken is more generic than pressed. It is used by items such as frames or
838         line edits because they are "sunken" frames (e.g. QLineEdit). It can be required
839         by some style like Oxygen. Therefore only in the mobile theme we check if the object
840         is pressed.
841
842         * platform/qt/RenderThemeQt.cpp:
843         (WebCore::RenderThemeQt::paintTextField):
844
845 2011-04-11  Pavel Feldman  <pfeldman@chromium.org>
846
847         Reviewed by Yury Semikhatsky.
848
849         Web Inspector: add support for optional output parameters.
850         https://bugs.webkit.org/show_bug.cgi?id=58207
851
852         Output parameters such as "redirectResponse" are optional, but
853         do not allow specifying them as such.
854
855         * inspector/CodeGeneratorInspector.pm:
856         * inspector/Inspector.json:
857         * inspector/InspectorResourceAgent.cpp:
858         (WebCore::buildObjectForResourceResponse):
859         (WebCore::buildObjectForCachedResource):
860         * inspector/front-end/NetworkManager.js:
861         (WebInspector.NetworkDispatcher.prototype._updateResourceWithResponse):
862         * inspector/generate-inspector-idl:
863
864 2011-04-11  Pavel Feldman  <pfeldman@chromium.org>
865
866         Reviewed by Yury Semikhatsky.
867
868         Web Inspector: refactor / document call frames in debugger domain.
869         https://bugs.webkit.org/show_bug.cgi?id=58187
870
871         Note that we are not special casing with(element) and with(document) anymore
872         and do not tell user that it is "Event target" and "Event document". Strictly speaking,
873         we should not have done it for with(element) not necessarily being related to an event.
874
875         * English.lproj/localizedStrings.js:
876         * inspector/InjectedScriptSource.js:
877         * inspector/Inspector.json:
878         * inspector/front-end/ScopeChainSidebarPane.js:
879         (WebInspector.ScopeChainSidebarPane.prototype.update):
880
881 2011-04-10  ChangSeok Oh  <shivamidow@gmail.com>
882
883         Reviewed by Eric Seidel.
884
885         Make correspondence of file name related with event to other port.
886         https://bugs.webkit.org/show_bug.cgi?id=57416
887
888         Some file names are changed to make correspondence naming rule.
889         Keyboard, mouse and wheel event file names for GTK port have been different from other ports.
890         This has made user hard to find a specific file related with event for GTK port. 
891
892         No test required. This patch just changes some file names.
893
894         * GNUmakefile.list.am:
895         * platform/gtk/KeyEventGtk.cpp: Removed.
896         * platform/gtk/MouseEventGtk.cpp: Removed.
897         * platform/gtk/PlatformKeyboardEventGtk.cpp: Added.
898         * platform/gtk/PlatformMouseEventGtk.cpp: Added.
899         * platform/gtk/PlatformWheelEventGtk.cpp: Added.
900         * platform/gtk/WheelEventGtk.cpp: Removed.
901
902 2011-04-10  Simon Fraser  <simon.fraser@apple.com>
903
904         Revert the FloatRect.cpp part of r83422, since
905         clampToInteger() is broken for some inputs. I filed
906         https://bugs.webkit.org/show_bug.cgi?id=58216
907
908         * platform/graphics/FloatRect.cpp:
909         (WebCore::safeFloatToInt):
910         (WebCore::enclosingIntRect):
911
912 2011-04-10  Simon Fraser  <simon.fraser@apple.com>
913
914         Reviewed by Maciej Stachowiak.
915
916         Car model dropdowns at audiusa.com lay out incorrectly with compositing enabled
917         https://bugs.webkit.org/show_bug.cgi?id=56660
918         
919         When overflow on an element changes, we need to inform compositing
920         layers which create and position an "ancestor clipping" layer based
921         on that overflow. Do this by triggering a rebuild of compositing layers
922         when overflow changes on a layer whose stacking context has compositing
923         descendants. (We can't just check whether the layer itself has compositing
924         descendants, because overflow follows the render tree, but compositing
925         follows the z-order tree.)
926
927         Test: compositing/geometry/ancestor-overflow-change.html
928
929         * rendering/RenderLayer.cpp:
930         (WebCore::RenderLayer::styleChanged):
931         * rendering/RenderLayer.h:
932         * rendering/RenderLayerBacking.cpp:
933         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
934
935 2011-04-10  Simon Fraser  <simon.fraser@apple.com>
936
937         Reviewed by Ariya Hidayat.
938
939         Allow ShadowBlur to re-use the last buffer if it already contains the correct shadow
940         https://bugs.webkit.org/show_bug.cgi?id=58161
941         
942         ShadowBlur already has a singleton scratch buffer that is re-used
943         between shadows. Enhance use of this scratch buffer to avoid drawing
944         and blurring the shadow if the results will match what is already
945         in the buffer.
946         
947         Cleaned up ShadowBlur code to remove beginShadowLayer() and endShadowLayer(),
948         which ended up with little reusable code after adding the re-use logic.
949
950         * platform/graphics/FloatRect.cpp:
951         (WebCore::enclosingIntRect): Replace safeFloatToInt() with the existing
952         clampToInteger() from MathExtras.h
953         
954         * platform/graphics/FloatSize.h:
955         (WebCore::expandedIntSize): New method to safely ceil() the size.
956         
957         * platform/graphics/RoundedIntRect.h:
958         Add operator== for Radii and RoundedIntRect.
959
960         * platform/graphics/ShadowBlur.cpp:
961         (WebCore::ScratchBuffer::ScratchBuffer):
962         (WebCore::ScratchBuffer::setLastShadowValues):
963         (WebCore::ScratchBuffer::setLastInsetShadowValues):
964         (WebCore::ScratchBuffer::matchesLastShadow):
965         (WebCore::ScratchBuffer::matchesLastInsetShadow):
966         (WebCore::ScratchBuffer::clearScratchBuffer):
967         Have the scratch buffer remember what shadow parameters were used
968         to render the buffer contents.
969         
970         (WebCore::ShadowBlur::drawShadowBuffer):
971         Renamed from endShadowLayer(), and only contains the drawing
972         logic now.
973         
974         (WebCore::ShadowBlur::drawRectShadow):
975         Promote some code from beginShadowLayer().
976         
977         (WebCore::ShadowBlur::drawInsetShadow):
978         Promote some code from beginShadowLayer().
979
980         (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
981         (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
982         (WebCore::ShadowBlur::drawInsetShadowWithTiling):
983         (WebCore::ShadowBlur::drawRectShadowWithTiling):
984         These methods now check to see if the buffer already matches
985         their required parameters, and avoid work if it does.
986         
987         (WebCore::ShadowBlur::blurShadowBuffer):
988         Factored some code into this new method.
989         
990         (WebCore::ShadowBlur::blurAndColorShadowBuffer):
991         Minor refactoring.
992
993         * platform/graphics/ShadowBlur.h:
994
995 2011-04-10  Geoffrey Garen  <ggaren@apple.com>
996
997         Build fix: Updated for file move.
998
999         * bindings/js/GCController.cpp:
1000         * bindings/js/ScriptGCEvent.cpp:
1001
1002 2011-04-10  Geoffrey Garen  <ggaren@apple.com>
1003
1004         Rubber-stamped by Beth Dakin.
1005
1006         Moved Heap.h and Heap.cpp to the heap folder, because anything less 
1007         would be uncivilized.
1008
1009         * ForwardingHeaders/heap/Heap.h: Copied from WebCore/ForwardingHeaders/runtime/Heap.h.
1010         * ForwardingHeaders/runtime/Heap.h: Removed.
1011
1012 2011-04-10  Luke Macpherson   <macpherson@chromium.org>
1013
1014         Reviewed by Simon Fraser.
1015
1016         Rename CSSStyleApplyProperty::inherit,initial,value applyInheritValue,applyInitialValue,applyValue
1017         https://bugs.webkit.org/show_bug.cgi?id=58212
1018
1019         No new tests - function renaming only / no functionality changes.
1020
1021         * css/CSSStyleApplyProperty.cpp:
1022         Rename all instances of inherit, initial and value.
1023         * css/CSSStyleApplyProperty.h:
1024         Rename all instances of inherit, initial and value.
1025         * css/CSSStyleSelector.cpp:
1026         Rename all instances of inherit, initial and value.
1027
1028 2011-04-10  Mike Lawther  <mikelawther@chromium.org>
1029
1030         Reviewed by Ojan Vafai.
1031
1032         flex/bison tokens and grammar for CSS calc
1033         https://bugs.webkit.org/show_bug.cgi?id=54412
1034
1035         Tests: css3/calc/calc-errors.html
1036                css3/calc/lexer-regression-57581-2.html
1037                css3/calc/lexer-regression-57581-3.html
1038                css3/calc/lexer-regression-57581.html
1039                css3/calc/minmax-errors.html
1040                css3/calc/nested-rounded-corners.html
1041                css3/calc/simple-calcs.html
1042                css3/calc/simple-minmax.html
1043
1044         * css/CSSGrammar.y:
1045         * css/CSSParserValues.cpp:
1046         (WebCore::CSSParserValueList::insertValueAt):
1047         (WebCore::CSSParserValueList::extend):
1048         * css/CSSParserValues.h:
1049         * css/tokenizer.flex:
1050
1051 2011-04-10  Alice Boxhall  <aboxhall@chromium.org>
1052
1053         Reviewed by Ryosuke Niwa.
1054
1055         Change EventHandler::updateSelectionForMouseDrag to take a HitTestResult only.
1056         https://bugs.webkit.org/show_bug.cgi?id=57923
1057
1058         Change EventHandler::updateSelectionForMouseDrag to take a HitTestResult
1059         rather than a Node* and an IntPoint&, as the selection may actually not
1060         extend into the Node found by the HitTest.
1061
1062         No new tests. Refactoring only.
1063
1064         * page/EventHandler.cpp:
1065         (WebCore::EventHandler::handleMouseDraggedEvent):
1066         (WebCore::EventHandler::updateSelectionForMouseDrag):
1067         * page/EventHandler.h:
1068
1069 2011-04-10  Kent Tamura  <tkent@chromium.org>
1070
1071         Unreviewed, rolling out r83353.
1072         http://trac.webkit.org/changeset/83353
1073         https://bugs.webkit.org/show_bug.cgi?id=58106
1074
1075         The new test doesn't pass on all Chromium platforms.
1076
1077         * dom/DataTransferItem.h:
1078         * dom/DataTransferItem.idl:
1079         * platform/chromium/ClipboardMimeTypes.cpp:
1080         * platform/chromium/ClipboardMimeTypes.h:
1081         * platform/chromium/DataTransferItemChromium.cpp:
1082         (WebCore::DataTransferItemChromium::getAsString):
1083         * platform/chromium/DataTransferItemChromium.h:
1084         * platform/chromium/PlatformBridge.h:
1085
1086 2011-04-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1087
1088         Reviewed by Eric Carlson.
1089
1090         [EFL] Add seek forward / backward buttons to MediaControl UI.
1091         https://bugs.webkit.org/show_bug.cgi?id=56810
1092
1093         Add seek forward / backward buttons to media control. And, change formType name
1094         for media control.
1095
1096         * platform/efl/RenderThemeEfl.cpp:
1097         (WebCore::RenderThemeEfl::edjeGroupFromFormType):
1098         (WebCore::RenderThemeEfl::emitMediaButtonSignal):
1099         (WebCore::RenderThemeEfl::paintMediaMuteButton):
1100         (WebCore::RenderThemeEfl::paintMediaPlayButton):
1101         (WebCore::RenderThemeEfl::paintMediaSeekBackButton):
1102         (WebCore::RenderThemeEfl::paintMediaSeekForwardButton):
1103         * platform/efl/RenderThemeEfl.h:
1104
1105 2011-04-10  Chris Guillory  <chris.guillory@google.com>
1106
1107         Reviewed by Eric Seidel.
1108
1109         Remove unused function declaration in PlatformContextSkia.h.
1110         https://bugs.webkit.org/show_bug.cgi?id=55983
1111
1112         * platform/graphics/skia/PlatformContextSkia.h:
1113
1114 2011-04-10  Patrick Gansterer  <paroga@webkit.org>
1115
1116         Unreviewed build fix for !ENABLE(XSLT) after r82562.
1117
1118         * dom/XMLDocumentParserLibxml2.cpp:
1119         (WebCore::XMLDocumentParser::doEnd):
1120
1121 2011-04-10  Patrick Gansterer  <paroga@webkit.org>
1122
1123         Unreviewed build fix for !ENABLE(XSLT) after r82562.
1124
1125         * xml/XMLTreeViewer.cpp: Readded #if ENABLE(XSLT).
1126
1127 2011-04-10  Dimitri Glazkov  <dglazkov@chromium.org>
1128
1129         Reviewed by Anders Carlsson.
1130
1131         REGRESSION(r83256): Text-decoration bleeds into shadow DOM
1132         https://bugs.webkit.org/show_bug.cgi?id=58205
1133
1134         Now that the shadow root is a never-styled element, we need to walk to
1135         parent to find out if we're inside of a shadow DOM subtree.
1136
1137         Test: media/controls-styling.html
1138
1139         * css/CSSStyleSelector.cpp:
1140         (WebCore::isAtShadowBoundary): Added helper function.
1141         (WebCore::CSSStyleSelector::adjustRenderStyle): Changed to use the helper.
1142
1143 2011-04-07  Dimitri Glazkov  <dglazkov@chromium.org>
1144
1145         Reviewed by Eric Carlson.
1146
1147         [Meta] Convert HTMLMediaElement to use the new shadow DOM
1148         https://bugs.webkit.org/show_bug.cgi?id=53020
1149
1150         This conversion is non-trivial, for several reasons:
1151
1152         1) Since HTMLMediaElement now hosts the shadow DOM for controls, hiding
1153         and showing controls does not result in destroying and re-creating the
1154         shadow DOM tree. Instead, the tree is created as needed and shown/hidden
1155         using inline styles.
1156         
1157         2) Instead of detaching/attaching on each style change, the control parts
1158         are now using a set of higher fidelity callbacks that notify MediaControls
1159         about changes to which it should react. Each reaction results in hiding,
1160         showing, or changing the state of the control parts using inline styles
1161         and DOM APIs.
1162
1163         3) Hiding and showing controls is accomplished using inline styles, rather
1164         than wiring rendererIsNeeded, because renderers are now re-created less
1165         frequently.
1166
1167         4) Instead of constantly querying RenderTheme about visibility of a particular
1168         control part, we let the theme determine which parts are supported and
1169         which parts are visible in certain conditions.
1170
1171         5) Custom hit-testing, event forwarding, and style updates are completely
1172         removed, since they are now unnecessary.
1173
1174         6) Fading controls in/out is now done as CSS animation, since shadow DOM
1175         supports it.
1176
1177         Test: manual-tests/media-controls.html
1178
1179 2011-04-09  Dan Bernstein  <mitz@apple.com>
1180
1181         Reviewed by Beth Dakin.
1182
1183         <rdar://problem/9215280> Detached canvas draws with incorrect font
1184
1185         Test: fast/canvas/font-update.html
1186
1187         The existing mechanism for updating the font in a canvas 2D context was lacking in at least
1188         two ways: it neglected to update fonts in all but the topmost state in the stack, and since it
1189         was based on HTMLCanvasElemen's attach() and recalcStyle(), it did not work when the element
1190         was not attached.
1191
1192         This change takes the responsibility for font updates away from the canvas element and gives it
1193         to the canvas context and its graphics state.
1194
1195         * css/CSSFontSelector.cpp:
1196         (WebCore::CSSFontSelector::registerForInvalidationCallbacks): Added. Adds to the set of registered
1197         font selector clients.
1198         (WebCore::CSSFontSelector::unregisterForInvalidationCallbacks): Added. Removes from the set of
1199         registered font selector clients.
1200         (WebCore::CSSFontSelector::dispatchInvalidationCallbacks): Calls fontsNeedUpdate() on all registered
1201         clients and forces a style recalc on the document.
1202         (WebCore::CSSFontSelector::fontLoaded): Changed to call dispatchInvalidationCallbacks().
1203         (WebCore::CSSFontSelector::fontCacheInvalidated): Ditto.
1204         * css/CSSFontSelector.h:
1205         * html/HTMLCanvasElement.cpp: Removed overrides of attach() and recalcStyle().
1206         * html/HTMLCanvasElement.h:
1207         * html/canvas/CanvasRenderingContext2D.cpp:
1208         (WebCore::CanvasRenderingContext2D::State::~State): Added. Unregisters with the font selector.
1209         (WebCore::CanvasRenderingContext2D::State::fontsNeedUpdate): Added. Called by the font selector
1210         when its fonts need to be updated. Updates the font.
1211         (WebCore::CanvasRenderingContext2D::setFont): Registers the state with the font selector.
1212         * html/canvas/CanvasRenderingContext2D.h:
1213         * platform/graphics/FontSelector.h:
1214         (WebCore::FontSelectorClient::~FontSelectorClient):
1215
1216 2011-04-09  Geoffrey Garen  <ggaren@apple.com>
1217
1218         Not reviewed.
1219
1220         Try recommitting some things svn left out of my last commit.
1221
1222         * bridge/qt/qt_runtime.h:
1223
1224 2011-04-09  Geoffrey Garen  <ggaren@apple.com>
1225
1226         Not reviewed.
1227
1228         Try recommitting some things svn left out of my last commit.
1229
1230         * ForwardingHeaders/collector: Removed.
1231         * ForwardingHeaders/collector/handles: Removed.
1232         * ForwardingHeaders/collector/handles/Global.h: Removed.
1233
1234 2011-04-08  Dimitri Glazkov  <dglazkov@chromium.org>
1235
1236         Reviewed by Ojan Vafai.
1237
1238         Implement proper handling of mouseover/mouseout events in regard to shadow DOM boundaries.
1239         https://bugs.webkit.org/show_bug.cgi?id=55515
1240
1241         This implements XBL 2.0's specified handling of mouseover/mouseout events:
1242         http://dev.w3.org/2006/xbl2/Overview.html#the-mouseover-and-mouseout-events
1243
1244         To do this, we:
1245         1) calculate lowest common ancestor between relatedTarget and target, and
1246            the nearest boundaries around them: the outer (common) boundary, and the
1247            inner (specific to relatedTarget) boundary. Then, we
1248         2) ensure that events only propagate up to the common boundary (or
1249            all the way if boundary is not found), while
1250         3) updating relatedTarget be the inner boundary.
1251
1252         We also detect the most common case when no common boundary could exist
1253         and provide a fast path to short-circuit most of the boundary detection
1254         logic.
1255
1256         Test: fast/events/shadow-boundary-crossing.html
1257
1258         * dom/EventDispatcher.cpp:
1259         (WebCore::EventDispatcher::adjustToShadowBoundaries): Added a helper to determine lowest
1260             common ancestor, the boundaries around it, and compute adjustments
1261             to relatedTarget and event target ancestor chain.
1262         (WebCore::ancestorsCrossShadowBoundaries): Added.
1263         (WebCore::EventDispatcher::adjustRelatedTarget): Changed to calculate
1264             inner/outer shadow DOM boundaries and adjust ancestors chain accordingly.
1265         (WebCore::EventDispatcher::EventDispatcher): Added flag initializer
1266         (WebCore::EventDispatcher::ensureEventAncestors): Renamed from getEventAncestors,
1267             converted to use initialization flag, rather than testing for empty.
1268         * dom/EventDispatcher.h: Adjusted decls.
1269         * dom/MouseEvent.cpp:
1270         (WebCore::MouseEventDispatchMediator::dispatchEvent): Changed to send event
1271             to adjustRelatedTarget.
1272
1273 2011-04-08  Geoffrey Garen  <ggaren@apple.com>
1274
1275         Reviewed by Oliver Hunt.
1276
1277         A few heap-related renames and file moves.
1278         
1279         WeakGCPtr<T> => Weak<T>
1280         Global<T> => Strong<T>
1281         collector/ => heap/
1282         collector/* => heap/*
1283         runtime/WeakGCPtr.h => heap/Weak.h
1284         
1285         (Eventually, even more files should move into the heap directory. Like
1286         Heap.h and Heap.cpp, for example.)
1287
1288         * CMakeLists.txt:
1289         * ForwardingHeaders/collector: Removed.
1290         * ForwardingHeaders/heap: Copied from ForwardingHeaders/collector.
1291         * ForwardingHeaders/heap/Strong.h: Copied from ForwardingHeaders/collector/handles/Global.h.
1292         * ForwardingHeaders/heap/Weak.h: Copied from ForwardingHeaders/runtime/WeakGCPtr.h.
1293         * ForwardingHeaders/runtime/WeakGCPtr.h: Removed.
1294         * WebCore.vcproj/WebCore.vcproj:
1295         * WebCore.vcproj/copyForwardingHeaders.cmd:
1296         * bindings/js/JSCallbackData.h:
1297         * bindings/js/JSCustomVoidCallback.h:
1298         * bindings/js/JSDOMWindowBase.h:
1299         * bindings/js/JSDOMWindowShell.cpp:
1300         (WebCore::JSDOMWindowShell::setWindow):
1301         * bindings/js/JSDataGridDataSource.h:
1302         * bindings/js/JSEventListener.h:
1303         * bindings/js/ScheduledAction.cpp:
1304         (WebCore::ScheduledAction::ScheduledAction):
1305         * bindings/js/ScheduledAction.h:
1306         * bindings/js/ScriptCachedFrameData.cpp:
1307         (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
1308         * bindings/js/ScriptCachedFrameData.h:
1309         * bindings/js/ScriptController.cpp:
1310         (WebCore::ScriptController::createWindowShell):
1311         * bindings/js/ScriptController.h:
1312         * bindings/js/ScriptObject.h:
1313         * bindings/js/ScriptState.h:
1314         * bindings/js/ScriptValue.cpp:
1315         * bindings/js/ScriptValue.h:
1316         * bindings/js/ScriptWrappable.h:
1317         * bindings/js/WorkerScriptController.cpp:
1318         (WebCore::WorkerScriptController::initScript):
1319         * bindings/js/WorkerScriptController.h:
1320         * bridge/jsc/BridgeJSC.h:
1321         * bridge/qt/qt_runtime.h:
1322         * bridge/runtime_root.h:
1323         * xml/XMLHttpRequest.cpp:
1324
1325 2011-04-09  Keith Kyzivat  <keith.kyzivat@nokia.com>
1326
1327         Reviewed by Laszlo Gombos.
1328
1329         [Qt] Don't link against fontconfig or X11 if embedded
1330         https://bugs.webkit.org/show_bug.cgi?id=58104
1331
1332         No functional change so no new tests.
1333
1334         * WebCore.pri: qpa=>embedded should be done very early so all cases of embedded are uniform.
1335
1336 2011-04-09  Csaba Osztrogon√°c  <ossy@webkit.org>
1337
1338         [Qt] Unreviewed trivial fix after r83344.
1339
1340         * WebCore.pro: Update HEADERS list.
1341
1342 2011-04-09  Jon Lee  <jonlee@apple.com>
1343
1344         Reviewed by Beth Dakin.
1345
1346         Overlay scrollbar flashes in scrollable <textarea> with each keystroke (58180)
1347         https://bugs.webkit.org/show_bug.cgi?id=58180
1348         <rdar://problem/9047984>
1349
1350         * platform/mac/ScrollAnimatorMac.mm:
1351         (WebCore::ScrollAnimatorMac::immediateScrollToPoint): Check that there is a change before submitting
1352         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX):
1353         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY):
1354
1355 2011-04-09  Sreeram Ramachandran  <sreeram@google.com>
1356
1357         Reviewed by Ryosuke Niwa.
1358
1359         Gather data on modal dialogs shown during unload events
1360         https://bugs.webkit.org/show_bug.cgi?id=58115
1361
1362         Add a new method to the ChromeClient API to allow clients to receive
1363         notifications of modal dialogs dispatched during page dismissal events.
1364         The new method has a default empty definition; only chromium overrides
1365         it to keep track of histograms.
1366
1367         No tests because this is a no-op for all ports except chromium (and it's
1368         not clear how to test chromium histograms from webkit).
1369
1370         * page/Chrome.cpp:
1371         (WebCore::isDuringPageDismissal):
1372         (WebCore::willRunModalDialog):
1373         (WebCore::Chrome::runJavaScriptAlert):
1374         (WebCore::Chrome::runJavaScriptConfirm):
1375         (WebCore::Chrome::runJavaScriptPrompt):
1376         (WebCore::Chrome::willRunModalHTMLDialog):
1377         * page/Chrome.h:
1378         * page/ChromeClient.h:
1379         (WebCore::ChromeClient::willRunModalDialogDuringPageDismissal):
1380         * page/DOMWindow.cpp:
1381         (WebCore::DOMWindow::showModalDialog):
1382
1383 2011-04-08  David Humphrey  <david.humphrey@senecac.on.ca>
1384
1385         Reviewed by Eric Carlson.
1386
1387         Fix call order of media element muted and play(), such that setting muted before play() works.
1388         https://bugs.webkit.org/show_bug.cgi?id=57673
1389         https://code.google.com/p/chromium/issues/detail?id=70777
1390
1391         Manual test added: manual-tests/media-muted.html
1392
1393         * html/HTMLMediaElement.cpp:
1394         (WebCore::HTMLMediaElement::updatePlayState):
1395         * manual-tests/media-muted.html: Added.
1396
1397 2011-04-08  Nat Duca  <nduca@chromium.org>
1398
1399         Reviewed by David Levin.
1400
1401         [chromium] Fix windows assertion on ~CCThread
1402         https://bugs.webkit.org/show_bug.cgi?id=58153
1403
1404         Because ~CCThread uses waitForThreadCompletion,
1405         calling detachThread is not necessary.
1406
1407         * platform/graphics/chromium/cc/CCThread.cpp:
1408         (WebCore::CCThread::runLoop):
1409
1410 2011-04-08  Jian Li  <jianli@chromium.org>
1411
1412         Unreviewed, rolling out r83348.
1413         http://trac.webkit.org/changeset/83348
1414         https://bugs.webkit.org/show_bug.cgi?id=49508
1415
1416         Breaks layout tests in QT, Win7 and Chromium.
1417
1418         * rendering/RenderText.cpp:
1419         (WebCore::RenderText::localCaretRect):
1420
1421 2011-04-08  MORITA Hajime  <morrita@google.com>
1422
1423         Reviewed by Simon Fraser.
1424
1425         Negative spread should not make a sharp corner rounded
1426         https://bugs.webkit.org/show_bug.cgi?id=58162
1427
1428         Handled inset shadow path for rounded and non-rounded rect
1429         differently as normal shadow path is doing.
1430         
1431         * rendering/RenderBoxModelObject.cpp:
1432         (WebCore::RenderBoxModelObject::paintBoxShadow):
1433
1434 2011-04-07  Simon Fraser  <simon.fraser@apple.com>
1435
1436         Reviewed by Martin Robinson.
1437
1438         REGRESSION (r77034-r77220): CSS box-shadow no longer renders on PowerPC
1439         https://bugs.webkit.org/show_bug.cgi?id=55180
1440
1441         The endianness #ifdef in ShadowBlur was unnecessary and harmful. The
1442         data we get back from ImageBuffer::getImageData() do not vary in
1443         endianness.
1444
1445         * platform/graphics/ShadowBlur.cpp:
1446         (WebCore::ShadowBlur::blurLayerImage):
1447
1448 2011-04-08  Erik Arvidsson  <arv@chromium.org>
1449
1450         Reviewed by Dimitri Glazkov.
1451
1452         IFrame is getting the focus even though it is hidden
1453         https://bugs.webkit.org/show_bug.cgi?id=55861
1454
1455         Test: fast/dom/hidden-iframe-no-focus.html
1456
1457         * html/HTMLFrameOwnerElement.cpp:
1458         (WebCore::HTMLFrameOwnerElement::isKeyboardFocusable):
1459         * html/HTMLFrameOwnerElement.h:
1460
1461 2011-04-08  Jeff Timanus  <twiz@chromium.org>
1462
1463         Reviewed by Kenneth Russell.
1464
1465         Fall back to software rendering for Canvas2D when requesting a DrawingBuffer larger than supported by the GL environment.
1466         https://bugs.webkit.org/show_bug.cgi?id=57768
1467
1468         * html/canvas/CanvasRenderingContext2D.cpp:
1469         (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
1470         (WebCore::CanvasRenderingContext2D::reset):
1471         * platform/graphics/gpu/DrawingBuffer.cpp:
1472         (WebCore::DrawingBuffer::reset):
1473         * platform/graphics/gpu/DrawingBuffer.h:
1474
1475 2011-04-08  Daniel Cheng  <dcheng@chromium.org>
1476
1477         Reviewed by Dmitry Titov.
1478
1479         [chromium] Implement image/png support in DataTransferItems
1480         https://bugs.webkit.org/show_bug.cgi?id=58106
1481
1482         This patch implements DataTransferItem::getAsFile() using Blobs. In
1483         addition, plumbing for image/png has been added so image paste will be
1484         supported as long as the renderer makes that data available.
1485
1486         Tests: editing/pasteboard/data-transfer-items-image-png.html
1487
1488         * dom/DataTransferItem.h:
1489         * dom/DataTransferItem.idl:
1490         * platform/chromium/ClipboardMimeTypes.cpp:
1491         * platform/chromium/ClipboardMimeTypes.h:
1492         * platform/chromium/DataTransferItemChromium.cpp:
1493         (WebCore::DataTransferItemChromium::getAsString):
1494         (WebCore::DataTransferItemChromium::getAsFile):
1495         * platform/chromium/DataTransferItemChromium.h:
1496         * platform/chromium/PlatformBridge.h:
1497
1498 2011-04-08 MORITA Hajime  <morrita@google.com>
1499
1500         Unreviewed windows build fix.
1501         
1502         * editing/SpellingCorrectionController.h:
1503         (WebCore::SpellingCorrectionController::UNLESS_ENABLED):
1504
1505 2011-04-08  Enrica Casucci  <enrica@apple.com>
1506
1507         Reviewed by Maciej Stachowiak.
1508
1509         Improve lifetime management of nodes in ReplaceNodeWithSpanCommand.
1510         https://bugs.webkit.org/show_bug.cgi?id=57595
1511         <rdar://problem/9222122>
1512
1513         Test: editing/style/bold-with-dom-changes.html
1514
1515         * editing/ReplaceNodeWithSpanCommand.cpp:
1516         (WebCore::swapInNodePreservingAttributesAndChildren):
1517
1518 2011-04-07  Roland Steiner  <rolandsteiner@chromium.org>
1519
1520         Reviewed by Dimitri Glazkov.
1521
1522         Bug 58060 - Prepare access to TreeScope from Node, using NodeRareData
1523         https://bugs.webkit.org/show_bug.cgi?id=58060
1524
1525         Add a TreeScope pointer to NodeRareData to allow direct access to the containing tree scope.
1526         However, in case the containing scope is the document, this is not set, and the
1527         document pointer within Node is used instead.
1528
1529         In an object derived from TreeScope (currently Document), the tree scope pointer
1530         points to itself. Such objects also contain a parent tree scope pointer that
1531         points to the containing scope. For Document, this is 0.
1532
1533         Add new functions setTreeScope[Recursively] that replace setDocument[Recursively]
1534         in public usage. setDocument[Recursively] are now only used internally and are
1535         thererfore protected.
1536
1537         No new tests. (no new functionality)
1538
1539         * dom/ContainerNode.cpp: change DOM manipulation methods to update scope of inserted nodes
1540         (WebCore::ContainerNode::insertBefore):
1541         (WebCore::ContainerNode::replaceChild):
1542         (WebCore::ContainerNode::appendChild):
1543         * dom/Document.cpp:
1544         (WebCore::Document::~Document):
1545         (WebCore::Document::setDocType): Ditto
1546         (WebCore::Document::adoptNode): Ditto
1547         * dom/Document.h:
1548         * dom/Node.cpp:
1549         (WebCore::Node::treeScope): use NodeRareData to check if a non-Document scope is set
1550         (WebCore::Node::setTreeScope): update NodeRareData depending on whether scope is a document
1551         (WebCore::Node::setTreeScopeRecursively):
1552         (WebCore::Node::setDocumentRecursively):
1553         * dom/Node.h:
1554         * dom/NodeRareData.h: add scope pointer
1555         (WebCore::NodeRareData::NodeRareData):
1556         (WebCore::NodeRareData::treeScope):
1557         (WebCore::NodeRareData::setTreeScope):
1558         * dom/TreeScope.cpp: add parentTreeScope pointer
1559         (WebCore::TreeScope::TreeScope):
1560         (WebCore::TreeScope::setParentTreeScope):
1561         * dom/TreeScope.h:
1562         (WebCore::TreeScope::parentTreeScope):
1563
1564 2011-04-08  Xiaomei Ji  <xji@chromium.org>
1565
1566         Reviewed by David Hyatt.
1567
1568         Local caret rectangle calculation should be relative to its containing block.
1569         https://bugs.webkit.org/show_bug.cgi?id=49508.
1570
1571         InlineBox and caret rectangle are positioned relative to its containing block.
1572         So its left and right edge value should be relative to its containing block as well. 
1573
1574         Test: fast/forms/cursor-at-editable-content-boundary.html
1575
1576         * rendering/RenderText.cpp:
1577         (WebCore::RenderText::localCaretRect):
1578
1579 2011-04-08  MORITA Hajime  <morrita@google.com>
1580
1581         Unreviewed build fix.
1582
1583         * editing/Editor.cpp:
1584         (WebCore::Editor::markMisspellingsAfterTypingToWord):
1585
1586 2011-04-08  David Hyatt  <hyatt@apple.com>
1587
1588         Reviewed by Simon Fraser.
1589
1590         https://bugs.webkit.org/show_bug.cgi?id=57971
1591         
1592         Rework visited/unvisited links for before/after content. Propagate the bits earlier so that we don't lose
1593         them when we throw away the visited style. Don't throw away the visited link style for pseudo elements
1594         either, so that the styles are consistent.
1595
1596         Added fast/history/visited-generated-content-test.html
1597
1598         * css/CSSStyleSelector.cpp:
1599         (WebCore::CSSStyleSelector::styleForElement):
1600         (WebCore::CSSStyleSelector::pseudoStyleForElement):
1601
1602 2011-04-06  MORITA Hajime  <morrita@google.com>
1603
1604         Reviewed by Darin Adler.
1605
1606         [Refactoring] Auto correction panel should be handled by its own class.
1607         https://bugs.webkit.org/show_bug.cgi?id=55571
1608
1609         Extracted code inside SUPPORT_AUTOCORRECTION_PANEL into
1610         SpellingCorrectionController class.
1611         This change also remove some SUPPORT_AUTOCORRECTION_PANEL guard if
1612         code paths inside the never reached without autocorrection support.
1613         Removing guards reduces unintentional build breakage.
1614
1615         No new tests, no behavior chagne.
1616
1617         * CMakeLists.txt:
1618         * GNUmakefile.am:
1619         * WebCore.gypi:
1620         * WebCore.pro:
1621         * WebCore.vcproj/WebCore.vcproj:
1622         * WebCore.xcodeproj/project.pbxproj:
1623         * editing/CorrectionPanelInfo.h: Removed.
1624         * editing/EditingAllInOne.cpp:
1625         * editing/Editor.cpp:
1626         (WebCore::Editor::respondToChangedSelection):
1627         (WebCore::Editor::respondToChangedContents):
1628         (WebCore::Editor::appliedEditing):
1629         (WebCore::Editor::Editor):
1630         (WebCore::Editor::~Editor):
1631         (WebCore::Editor::insertTextWithoutSendingTextEvent):
1632         (WebCore::Editor::insertLineBreak):
1633         (WebCore::Editor::insertParagraphSeparator):
1634         (WebCore::Editor::cut):
1635         (WebCore::Editor::paste):
1636         (WebCore::Editor::pasteAsPlainText):
1637         (WebCore::Editor::isAutomaticSpellingCorrectionEnabled):
1638         (WebCore::Editor::markMisspellingsAfterTypingToWord):
1639         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
1640         (WebCore::Editor::changeBackToReplacedString):
1641         (WebCore::Editor::unappliedSpellCorrection):
1642         (WebCore::Editor::updateMarkersForWordsAffectedByEditing):
1643         (WebCore::Editor::startCorrectionPanelTimer):
1644         (WebCore::Editor::handleCorrectionPanelResult):
1645         (WebCore::Editor::dismissCorrectionPanelAsIgnored):
1646         * editing/Editor.h:
1647         * editing/SpellingCorrectionCommand.cpp:
1648         * editing/SpellingCorrectionController.cpp: Added.
1649         (WebCore::markerTypesForAutocorrection):
1650         (WebCore::markerTypesForReplacement):
1651         (WebCore::markersHaveIdenticalDescription):
1652         (WebCore::SpellingCorrectionController::SpellingCorrectionController):
1653         (WebCore::SpellingCorrectionController::~SpellingCorrectionController):
1654         (WebCore::SpellingCorrectionController::startCorrectionPanelTimer):
1655         (WebCore::SpellingCorrectionController::stopCorrectionPanelTimer):
1656         (WebCore::SpellingCorrectionController::stopPendingCorrection):
1657         (WebCore::SpellingCorrectionController::applyPendingCorrection):
1658         (WebCore::SpellingCorrectionController::hasPendingCorrection):
1659         (WebCore::SpellingCorrectionController::isSpellingMarkerAllowed):
1660         (WebCore::SpellingCorrectionController::show):
1661         (WebCore::SpellingCorrectionController::handleCancelOperation):
1662         (WebCore::SpellingCorrectionController::dismiss):
1663         (WebCore::SpellingCorrectionController::dismissSoon):
1664         (WebCore::SpellingCorrectionController::applyCorrectionPanelInfo):
1665         (WebCore::SpellingCorrectionController::applyAutocorrectionBeforeTypingIfAppropriate):
1666         (WebCore::SpellingCorrectionController::respondToUnappliedSpellCorrection):
1667         (WebCore::SpellingCorrectionController::correctionPanelTimerFired):
1668         (WebCore::SpellingCorrectionController::handleCorrectionPanelResult):
1669         (WebCore::SpellingCorrectionController::isAutomaticSpellingCorrectionEnabled):
1670         (WebCore::SpellingCorrectionController::windowRectForRange):
1671         (WebCore::SpellingCorrectionController::respondToChangedSelection):
1672         (WebCore::SpellingCorrectionController::respondToAppliedEditing):
1673         (WebCore::SpellingCorrectionController::client):
1674         (WebCore::SpellingCorrectionController::textChecker):
1675         (WebCore::SpellingCorrectionController::recordAutocorrectionResponseReversed):
1676         (WebCore::SpellingCorrectionController::markReversed):
1677         (WebCore::SpellingCorrectionController::markCorrection):
1678         (WebCore::SpellingCorrectionController::recordSpellcheckerResponseForModifiedCorrection):
1679         * editing/SpellingCorrectionController.h: Added.
1680         (WebCore::SpellingCorrectionController::UNLESS_ENABLED):
1681         (WebCore::SpellingCorrectionController::shouldStartTimeFor):
1682         (WebCore::SpellingCorrectionController::shouldRemoveMarkersUponEditing):        
1683         * editing/TypingCommand.cpp:
1684         (WebCore::TypingCommand::insertText):
1685         (WebCore::TypingCommand::markMisspellingsAfterTyping):
1686         (WebCore::TypingCommand::deleteKeyPressed):
1687         (WebCore::TypingCommand::forwardDeleteKeyPressed):
1688         * editing/htmlediting.h:
1689         (WebCore::isAmbiguousBoundaryCharacter):
1690         * page/EditorClient.h:
1691         * page/Frame.cpp:
1692         (WebCore::Frame::setPageAndTextZoomFactors):
1693
1694 2011-04-08  Alpha Lam  <hclam@chromium.org>
1695
1696         Unreviewed, rolling out r83335.
1697         http://trac.webkit.org/changeset/83335
1698         https://bugs.webkit.org/show_bug.cgi?id=53556
1699
1700         GTK and QT bots are broken
1701
1702         * CMakeLists.txt:
1703         * Configurations/FeatureDefines.xcconfig:
1704         * DerivedSources.make:
1705         * GNUmakefile.am:
1706         * WebCore.gypi:
1707         * WebCore.xcodeproj/project.pbxproj:
1708         * features.pri:
1709         * html/HTMLAttributeNames.in:
1710         * html/HTMLTagNames.in:
1711         * html/HTMLTrackElement.cpp: Removed.
1712         * html/HTMLTrackElement.h: Removed.
1713         * html/HTMLTrackElement.idl: Removed.
1714
1715 2011-04-08  Brady Eidson  <beidson@apple.com>
1716
1717         Reviewed by Adam Roben.
1718
1719         https://bugs.webkit.org/show_bug.cgi?id=58155 and part of <rdar://problem/9251767>
1720         BitmapImage::getFirstCGImageRefOfSize fails if the frameCount hasn't been initialized from the image source.
1721
1722         * platform/graphics/cg/ImageCG.cpp:
1723         (WebCore::BitmapImage::getFirstCGImageRefOfSize): Call frameCount() instead of accessing m_frames.size() to
1724           make sure the frames are properly tallied first.
1725
1726 2011-04-08  Benjamin Poulain  <benjamin.poulain@nokia.com>
1727
1728         Reviewed by Andreas Kling.
1729
1730         [Qt] Dragging and dropping an image in edit mode does not work
1731         https://bugs.webkit.org/show_bug.cgi?id=19385
1732
1733         When adding an image to the clipboard, we should also include the HTML code of that image so
1734         it can be used for internal drag and drop.
1735
1736         This HTML is expected by all clients of drop events so a fragment can be moved from one browser to
1737         another, or inside the same browser.
1738
1739         * platform/qt/ClipboardQt.cpp:
1740         (WebCore::ClipboardQt::declareAndWriteDragImage):
1741
1742 2011-04-07  Anna Cavender  <annacc@chromium.org>
1743
1744         Reviewed by Eric Carlson.
1745
1746         Setup ENABLE(TRACK) feature define + initial HTMLTrackElement
1747         https://bugs.webkit.org/show_bug.cgi?id=53556
1748
1749         No new tests. No real functionality added just yet.
1750
1751         * CMakeLists.txt:
1752         * Configurations/FeatureDefines.xcconfig:
1753         * DerivedSources.make:
1754         * GNUmakefile.am:
1755         * WebCore.gypi:
1756         * WebCore.xcodeproj/project.pbxproj:
1757         * features.pri:
1758         * html/HTMLAttributeNames.in:
1759         * html/HTMLTagNames.in:
1760         * html/HTMLTrackElement.cpp: Added.
1761         (WebCore::HTMLTrackElement::HTMLTrackElement):
1762         (WebCore::HTMLTrackElement::create):
1763         (WebCore::HTMLTrackElement::insertedIntoTree):
1764         (WebCore::HTMLTrackElement::willRemove):
1765         (WebCore::HTMLTrackElement::src):
1766         (WebCore::HTMLTrackElement::setSrc):
1767         (WebCore::HTMLTrackElement::kind):
1768         (WebCore::HTMLTrackElement::setKind):
1769         (WebCore::HTMLTrackElement::srclang):
1770         (WebCore::HTMLTrackElement::setSrclang):
1771         (WebCore::HTMLTrackElement::label):
1772         (WebCore::HTMLTrackElement::setLabel):
1773         (WebCore::HTMLTrackElement::isDefault):
1774         (WebCore::HTMLTrackElement::setIsDefault):
1775         (WebCore::HTMLTrackElement::isURLAttribute):
1776         * html/HTMLTrackElement.h: Added.
1777         * html/HTMLTrackElement.idl: Added.
1778
1779 2011-04-07  Jer Noble  <jer.noble@apple.com>
1780
1781         Reviewed by Eric Carlson.
1782
1783         Logic error in HTMLMediaElement::exitFullscreen()
1784         https://bugs.webkit.org/show_bug.cgi?id=58085
1785
1786         The new full screen API case could fall through to the legacy API case
1787         unintentionally if a script calls exitFullscreen on an element which is
1788         not the current full screen element.
1789
1790         * html/HTMLMediaElement.cpp:
1791         (WebCore::HTMLMediaElement::enterFullscreen):
1792         (WebCore::HTMLMediaElement::exitFullscreen):
1793
1794 2011-04-08  Mike Reed  <reed@google.com>
1795
1796         Reviewed by Eric Seidel.
1797
1798         Replace SKIA_TEXT with isNativeFontRenderingAllowed() for print-preview to work
1799         https://bugs.webkit.org/show_bug.cgi?id=57782
1800
1801         No new tests. This change only affects print-preview and build option SKIA_GPU 
1802
1803         * platform/graphics/skia/SkiaFontWin.cpp:
1804         (WebCore::paintSkiaText):
1805
1806 2011-04-08  Ryosuke Niwa  <rniwa@webkit.org>
1807
1808         Reviewed by Tony Chang, Darin Adler, and Enrica Casucci.
1809
1810         REGRESSION(r81887): Crash in SplitElement
1811         https://bugs.webkit.org/show_bug.cgi?id=57743
1812
1813         The crash was caused by ReplaceSelectionCommand::doApply's calling splitElement with computeNodeAfterPosition
1814         even when the position was after the last node in it container. Since all we are doing here is to splitting tree
1815         up until the highest ancestor with isInlineNodeWithStyle, replaced the while loop by calls to splitTreeToNode
1816         and highestEnclosingNodeOfType.
1817
1818         Also fixed a bug in splitTreeToNode not to check the difference in visible position when splitting the ancestor,
1819         which would have introduced unnecessary nodes when splitting tree and a bug in highestEnclosingNodeOfType that
1820         it incorrectly called deprecatedNode instead of containerNode.
1821
1822         Test: editing/inserting/insert-images-in-pre-x-crash.html
1823
1824         * editing/CompositeEditCommand.cpp:
1825         (WebCore::CompositeEditCommand::splitTreeToNode):
1826         * editing/ReplaceSelectionCommand.cpp:
1827         (WebCore::ReplaceSelectionCommand::doApply):
1828         * editing/htmlediting.cpp:
1829         (WebCore::highestEnclosingNodeOfType):
1830
1831 2011-04-08  Antti Koivisto  <antti@apple.com>
1832
1833         Reviewed by Tony Gentilcore.
1834
1835         Incoming source should be preload scanned when the parser is blocked 
1836         https://bugs.webkit.org/show_bug.cgi?id=58117
1837
1838         Scan the appended source if parser is blocked.
1839
1840         Test: http/tests/loading/preload-append-scan.php
1841
1842         * html/parser/HTMLDocumentParser.cpp:
1843         (WebCore::HTMLDocumentParser::append):
1844
1845 2011-04-08  Martin Robinson  <mrobinson@igalia.com>
1846
1847         Reviewed by Xan Lopez.
1848
1849         [GTK] Fix the WebKit2 build for older versions of GTK+
1850         https://bugs.webkit.org/show_bug.cgi?id=58095
1851
1852         No new tests. This is just a build fix.
1853
1854         * platform/gtk/GtkVersioning.c:
1855         (gdk_window_create_similar_surface): Reimplement this method for older versions of GDK.
1856         * platform/gtk/GtkVersioning.h: Add the new method to the header.
1857
1858 2011-04-08  Misha Tyutyunik  <michael.tyutyunik@nokia.com>
1859
1860         Reviewed by Laszlo Gombos.
1861
1862         [Qt] Plugin is not scrolled together with page content or jumping 
1863         when content is rendered using cache (backing store).
1864         https://bugs.webkit.org/show_bug.cgi?id=56130
1865         
1866         This is a Symbian portion of the fix. For Linux it looks like
1867         it's enough to call set geometry which should be addressed in
1868         https://bugs.webkit.org/show_bug.cgi?id=57179
1869
1870         No new tests required. This can be tested with manual tests from 
1871         WebCore/manual-tests/qt and WebCore/manual-tests/plugins
1872
1873         * plugins/symbian/PluginViewSymbian.cpp:
1874         (WebCore::PluginView::updatePluginWidget):
1875
1876 2011-04-08  Abhishek Arya  <inferno@chromium.org>
1877
1878         Unreviewed. Remove accidental printf added in r83306.
1879
1880         * page/EventHandler.cpp:
1881         (WebCore::EventHandler::sendContextMenuEvent):
1882
1883 2011-04-08  Enrica Casucci  <enrica@apple.com>
1884
1885         Reviewed by Darin Adler.
1886
1887         Dragging text in a WebKit2 window results in a copy instead of a move.
1888         https://bugs.webkit.org/show_bug.cgi?id=56772
1889         <rdar://problem/9165140>
1890
1891         cleanupAfterSystemDrag cannot call dragEnd in WebKit2, since
1892         the call to startDrag is asynchronous.
1893         
1894         * page/mac/DragControllerMac.mm:
1895         (WebCore::DragController::cleanupAfterSystemDrag):
1896
1897 2011-04-05  Dimitri Glazkov  <dglazkov@chromium.org>
1898
1899         Reviewed by Darin Adler.
1900
1901         Move WheelEvent-dispatching logic into WheelEventDispatchMediator.
1902         https://bugs.webkit.org/show_bug.cgi?id=57642
1903
1904         Covered by existing tests, no functional change.
1905
1906         * dom/Event.cpp:
1907         * dom/Event.h:
1908         (WebCore::EventDispatchMediator::EventDispatchMediator): Added default
1909             constructor.
1910         (WebCore::EventDispatchMediator::event): Inlined.
1911         (WebCore::EventDispatchMediator::setEvent): Added.
1912         * dom/EventDispatcher.cpp: Removed dispatchWheelEvent.
1913         * dom/EventDispatcher.h: Updated decls.
1914         * dom/Node.cpp:
1915         (WebCore::Node::dispatchWheelEvent): Changed to use the mediator and
1916             return a bool, like other dispatch event functions.
1917         * dom/Node.h: Changed decl.
1918         * dom/WheelEvent.cpp:
1919         (WebCore::granularity): Moved from EventDispatcher.
1920         (WebCore::WheelEventDispatchMediator::WheelEventDisatchMediator): Added.
1921         (WebCore::WheelEventDispatchMediator::event): Added.
1922         (WebCore::WheelEventDispatchMediator::dispatchEvent): Added.
1923         * dom/WheelEvent.h: Updated decls.
1924         * page/EventHandler.cpp:
1925         (WebCore::EventHandler::handleWheelEvent): Changed to receive and react
1926             to the return value.
1927
1928 2011-04-08  Jessie Berlin  <jberlin@apple.com>
1929
1930         Windows build warning fix.
1931
1932         * WebCore.vcproj/WebCore.vcproj:
1933         Since ShadowRoot.cpp is included in the DOMAllInOne.cpp file, it should be excluded from
1934         the build.
1935
1936 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
1937
1938         Reviewed by Pavel Feldman.
1939
1940         Web Inspector: update breakpoints according to source frame decorations after live edit.
1941         https://bugs.webkit.org/show_bug.cgi?id=58029
1942
1943         * inspector/front-end/DebuggerPresentationModel.js:
1944         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource.didEditScriptSource):
1945         (WebInspector.DebuggerPresentationModel.prototype.editScriptSource):
1946         (WebInspector.DebuggerPresentationModel.prototype._updateResourceContent.didEditScriptSource):
1947         (WebInspector.DebuggerPresentationModel.prototype._updateResourceContent):
1948         * inspector/front-end/SourceFile.js:
1949         (WebInspector.SourceFile.prototype.set content):
1950         * inspector/front-end/SourceFrame.js:
1951         (WebInspector.SourceFrame.prototype._handleSave.didEditScriptSource):
1952         (WebInspector.SourceFrame.prototype._handleSave):
1953
1954 2011-04-08  Pavel Podivilov  <podivilov@chromium.org>
1955
1956         Reviewed by Pavel Feldman.
1957
1958         Web Inspector: fix scripts concatenation in scripts panel.
1959         https://bugs.webkit.org/show_bug.cgi?id=58138
1960
1961         When there is just one script starting at 0:0 it should not be surrounded by <script> framing.
1962
1963         * inspector/front-end/SourceFile.js:
1964         (WebInspector.SourceFile.prototype._loadResourceContent):
1965         (WebInspector.SourceFile.prototype._loadAndConcatenateScriptsContent):
1966
1967 2011-04-08  Pavel Feldman  <pfeldman@chromium.org>
1968
1969         Reviewed by Yury Semikhatsky.
1970
1971         Web Inspector: use "locations" for debugger scripts, "lineNumbers" for the UI elements.
1972         https://bugs.webkit.org/show_bug.cgi?id=58118
1973
1974         This change reuses location for call frames in the protocol + structures script
1975         location <-> source lines interaction better. When we need UI columns, we will add
1976         them, but we should distinguish between script and UI terms on the type level, not naming.
1977
1978         * English.lproj/localizedStrings.js:
1979         * bindings/v8/DebuggerScript.js:
1980         * inspector/InjectedScriptSource.js:
1981         * inspector/Inspector.json:
1982         * inspector/front-end/CallStackSidebarPane.js:
1983         (WebInspector.CallStackSidebarPane.prototype.update.didGetSourceLine):
1984         (WebInspector.CallStackSidebarPane.prototype.update):
1985         * inspector/front-end/DebuggerPresentationModel.js:
1986         (WebInspector.DebuggerPresentationModel.prototype.addConsoleMessage.didRequestSourceMapping):
1987         (WebInspector.DebuggerPresentationModel.prototype.addConsoleMessage):
1988         (WebInspector.DebuggerPresentationModel.prototype.continueToLine):
1989         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
1990         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
1991         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded.didRequestSourceMapping):
1992         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
1993         (WebInspector.PresenationCallFrame):
1994         (WebInspector.PresenationCallFrame.prototype.sourceLine.didRequestSourceMapping):
1995         (WebInspector.PresenationCallFrame.prototype.sourceLine):
1996         * inspector/front-end/ScriptFormatter.js:
1997         (WebInspector.ScriptFormatter.locationToPosition):
1998         (WebInspector.ScriptFormatter.lineToPosition):
1999         * inspector/front-end/ScriptsPanel.js:
2000         (WebInspector.ScriptsPanel.prototype._debuggerPaused.else.didGetSourceLocation):
2001         (WebInspector.ScriptsPanel.prototype._debuggerPaused):
2002         (WebInspector.ScriptsPanel.prototype.showAnchorLocation):
2003         (WebInspector.ScriptsPanel.prototype._callFrameSelected.didGetSourceLocation):
2004         (WebInspector.ScriptsPanel.prototype._callFrameSelected):
2005         * inspector/front-end/SourceFile.js:
2006         (WebInspector.SourceMapping.prototype.scriptLocationToSourceLine):
2007         (WebInspector.SourceMapping.prototype.sourceLineToScriptLocation):
2008         (WebInspector.FormattedSourceMapping.prototype.scriptLocationToSourceLine):
2009         (WebInspector.FormattedSourceMapping.prototype.sourceLineToScriptLocation):
2010
2011 2011-04-08  Pavel Podivilov  <podivilov@chromium.org>
2012
2013         Reviewed by Pavel Feldman.
2014
2015         Web Inspector: distinguish breakpoints set on de-obfuscated sources from breakponts set on original sources.
2016         https://bugs.webkit.org/show_bug.cgi?id=58133
2017
2018         * inspector/front-end/DebuggerPresentationModel.js:
2019         (WebInspector.DebuggerPresentationModel.prototype.canEditScriptSource):
2020         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
2021         (WebInspector.DebuggerPresentationModel.prototype._debuggerPaused):
2022         (WebInspector.DebuggerPresentationModel.prototype._sourceFileForScript):
2023         (WebInspector.DebuggerPresentationModel.prototype._scriptForSourceFileId):
2024         (WebInspector.DebuggerPresentationModel.prototype._createSourceFileId):
2025         (WebInspector.DebuggerPresentationModel.prototype._reset):
2026
2027 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
2028
2029         Reviewed by Pavel Feldman.
2030
2031         Web Inspector: make SourceFrame TextViewer's delegate for editing operations.
2032         https://bugs.webkit.org/show_bug.cgi?id=58026
2033
2034         This is the first step of decoupling TextViewer from SourceFrame.
2035
2036         * inspector/front-end/SourceFrame.js:
2037         (WebInspector.SourceFrame):
2038         (WebInspector.SourceFrame.prototype.show):
2039         (WebInspector.SourceFrame.prototype.hide):
2040         (WebInspector.SourceFrame.prototype._ensureContentLoaded):
2041         (WebInspector.SourceFrame.prototype.contentEditable):
2042         (WebInspector.SourceFrame.prototype.startEditing):
2043         (WebInspector.SourceFrame.prototype.endEditing):
2044         (WebInspector.SourceFrame.prototype._createTextViewer):
2045         (WebInspector.SourceFrame.prototype._handleSave):
2046         (WebInspector.SourceFrame.prototype._handleRevertEditing):
2047         * inspector/front-end/TextViewer.js:
2048         (WebInspector.TextViewer.prototype._enterInternalTextChangeMode):
2049         (WebInspector.TextViewer.prototype._exitInternalTextChangeMode):
2050         (WebInspector.TextViewer.prototype._syncDecorationsForLine):
2051         (WebInspector.TextViewer.prototype._doubleClick):
2052         (WebInspector.TextViewerDelegate):
2053         (WebInspector.TextViewerDelegate.prototype.contentEditable):
2054         (WebInspector.TextViewerDelegate.prototype.startEditing):
2055         (WebInspector.TextViewerDelegate.prototype.endEditing):
2056         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
2057         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
2058         * inspector/front-end/inspector.html:
2059
2060 2011-04-08  Leandro Gracia Gil  <leandrogracia@chromium.org>
2061
2062         Reviewed by Steve Block.
2063
2064         Media Stream API: add the getUserMedia method and the Javascript bindings.
2065         https://bugs.webkit.org/show_bug.cgi?id=56586
2066
2067         Add the getUserMedia method to the navigator and its new Javascript types.
2068         Current specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/dnd.html#video-conferencing-and-peer-to-peer-communication
2069
2070         Tests: fast/dom/MediaStream/argument-types.html
2071                fast/dom/MediaStream/enabled.html
2072                fast/dom/MediaStream/no-interface-object.html
2073
2074         * Android.derived.jscbindings.mk:
2075         * Android.derived.v8bindings.mk:
2076         * Android.v8bindings.mk:
2077         * CMakeLists.txt:
2078         * CodeGenerators.pri:
2079         * DerivedSources.cpp:
2080         * DerivedSources.make:
2081         * GNUmakefile.list.am:
2082         * WebCore.gypi:
2083         * WebCore.pro:
2084         * WebCore.vcproj/WebCore.vcproj:
2085         * WebCore.xcodeproj/project.pbxproj:
2086         * bindings/js/JSNavigatorCustom.cpp:
2087         (WebCore::JSNavigator::webkitGetUserMedia):
2088         * bindings/v8/custom/V8NavigatorCustom.cpp: Added.
2089         (WebCore::V8Navigator::webkitGetUserMediaCallback):
2090         * page/Navigator.cpp:
2091         (WebCore::Navigator::webkitGetUserMedia):
2092         * page/Navigator.h:
2093         * page/Navigator.idl:
2094         * page/NavigatorUserMediaError.h: Added.
2095         (WebCore::NavigatorUserMediaError::NavigatorUserMediaError):
2096         (WebCore::NavigatorUserMediaError::~NavigatorUserMediaError):
2097         (WebCore::NavigatorUserMediaError::code):
2098         * page/NavigatorUserMediaError.idl: Added.
2099         * page/NavigatorUserMediaErrorCallback.h: Added.
2100         (WebCore::NavigatorUserMediaErrorCallback::~NavigatorUserMediaErrorCallback):
2101         * page/NavigatorUserMediaErrorCallback.idl: Added.
2102         * page/NavigatorUserMediaSuccessCallback.h: Added.
2103         (WebCore::NavigatorUserMediaSuccessCallback::~NavigatorUserMediaSuccessCallback):
2104         * page/NavigatorUserMediaSuccessCallback.idl: Added.
2105
2106 2011-04-08  Mikhail Naganov  <mnaganov@chromium.org>
2107
2108         Reviewed by Pavel Feldman.
2109
2110         Web Inspector: [Chromium] Add more tests for detailed heap snapshots UI.
2111         https://bugs.webkit.org/show_bug.cgi?id=58010
2112         https://bugs.webkit.org/show_bug.cgi?id=58011
2113
2114         Added tests for "Containment" view. Minor refactorings, bugs fixed.
2115         Split one large tests into smaller ones to avoid timing out in debug mode.
2116
2117         Tests: inspector/profiler/detailed-heapshots-containment-expansion-preserved-when-sorting.html
2118                inspector/profiler/detailed-heapshots-containment-show-all.html
2119                inspector/profiler/detailed-heapshots-containment-show-next.html
2120                inspector/profiler/detailed-heapshots-containment-sorting.html
2121                inspector/profiler/detailed-heapshots-summary-expansion-preserved-when-sorting.html
2122                inspector/profiler/detailed-heapshots-summary-show-all.html
2123                inspector/profiler/detailed-heapshots-summary-show-next.html
2124                inspector/profiler/detailed-heapshots-summary-sorting.html
2125
2126         * inspector/front-end/DetailedHeapshotGridNodes.js:
2127         (WebInspector.HeapSnapshotGridNode):
2128         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren):
2129         (WebInspector.HeapSnapshotGridNode.prototype.sort.doSort):
2130         (WebInspector.HeapSnapshotGridNode.prototype.sort):
2131         (WebInspector.HeapSnapshotGenericObjectNode):
2132         (WebInspector.HeapSnapshotObjectNode):
2133         (WebInspector.HeapSnapshotInstanceNode):
2134         (WebInspector.HeapSnapshotConstructorNode):
2135         (WebInspector.HeapSnapshotDiffNode):
2136         (WebInspector.HeapSnapshotDominatorObjectNode):
2137         * inspector/front-end/DetailedHeapshotView.js:
2138         (WebInspector.HeapSnapshotContainmentDataGrid):
2139         (WebInspector.HeapSnapshotDominatorsDataGrid):
2140
2141 2011-04-08  Andrey Adaikin  <aandrey@google.com>
2142
2143         Reviewed by Pavel Feldman.
2144
2145         Web Inspector: Bugs in some corner cases in the text editor
2146         https://bugs.webkit.org/show_bug.cgi?id=58025
2147
2148         This solves the following bugs:
2149         1) The very last _empty_ line would not be deleted if you hit a Backspace on it, or the selection text to be deleted is extended to the very bottom of the editor.
2150         2) An odd corner case: delete all source code from the editor, hit backspace on the only empty line, then add a character. In this case the browser will insert a TEXT node instead of a DIV node for a lineRow.
2151
2152         * inspector/front-end/TextViewer.js:
2153         (WebInspector.TextEditorMainPanel.prototype._selectionToPosition):
2154         (WebInspector.TextEditorMainPanel.prototype._enclosingLineRowOrSelf):
2155         (WebInspector.TextEditorMainPanel.prototype._handleDOMUpdates):
2156         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
2157         (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDiv):
2158
2159 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
2160
2161         Reviewed by Pavel Feldman.
2162
2163         Web Inspector: add test for script formatter worker.
2164         https://bugs.webkit.org/show_bug.cgi?id=57447
2165
2166         Test: inspector/debugger/script-formatter.html
2167
2168         * GNUmakefile.am:
2169         * WebCore.xcodeproj/project.pbxproj:
2170         * gyp/streamline-inspector-source.sh:
2171         * inspector/front-end/DebuggerPresentationModel.js:
2172         (WebInspector.DebuggerPresentationModel.prototype._addScript):
2173         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
2174         (WebInspector.DebuggerPresentationModel.prototype._formatter):
2175         * inspector/front-end/ScriptFormatterWorker.js:
2176
2177 2011-04-08  Andrey Adaikin  <aandrey@google.com>
2178
2179         Reviewed by Pavel Feldman.
2180
2181         Web Inspector: Tweak dynamically constants for the async highlighting in text editor
2182         https://bugs.webkit.org/show_bug.cgi?id=58035
2183
2184         * inspector/front-end/TextViewer.js:
2185         (WebInspector.TextEditorMainPanel.prototype._expandChunks):
2186         (WebInspector.TextEditorMainPanel.prototype._schedulePaintLines):
2187         (WebInspector.TextEditorMainPanel.prototype._paintScheduledLines):
2188         (WebInspector.TextEditorMainPanel.prototype._restorePaintLinesOperationsCredit):
2189         (WebInspector.TextEditorMainPanel.prototype._adjustPaintLinesOperationsRefreshValue):
2190
2191 2011-04-08  Andrey Kosyakov  <caseq@chromium.org>
2192
2193         Reviewed by Yury Semikhatsky.
2194
2195         Web Inspector: HAR compliance fixes
2196         https://bugs.webkit.org/show_bug.cgi?id=58124
2197
2198         - Always provide some values for queryString and cookies, even though arrays may be empty
2199         - Always provide an empty cache object
2200         - Added entire HARLog to test
2201         - Workaround in test to avoid custom expectations (favicon.ico appears in log on certain platforms)
2202
2203         * inspector/front-end/HAREntry.js:
2204         (WebInspector.HAREntry.prototype.build):
2205         (WebInspector.HAREntry.prototype._buildRequest):
2206         (WebInspector.HAREntry.prototype._buildResponse):
2207
2208 2011-04-08  Adam Barth  <abarth@webkit.org>
2209
2210         Attempt to fix the Qt build.
2211
2212         * css/CSSStyleApplyProperty.cpp:
2213
2214 2011-04-07  Adam Barth  <abarth@webkit.org>
2215
2216         Reviewed by Eric Seidel.
2217
2218         Refactor WebCore/GNUMakefile.am to separate list of files
2219         https://bugs.webkit.org/show_bug.cgi?id=58116
2220
2221         This change is similar to the cooresponding to change to
2222         JavaScriptCore.  We hope to generate GNUmakefile.list.am automatically
2223         using GYP.
2224
2225         * GNUmakefile.am:
2226         * GNUmakefile.list.am: Added.
2227
2228 2011-04-07  Geoffrey Garen  <ggaren@apple.com>
2229
2230         Not reviewed.
2231
2232         Rolled out some accidentally-committed changes in my last commit.
2233
2234         * dom/EventTarget.cpp:
2235         (WebCore::EventTarget::addEventListener):
2236         (WebCore::EventTarget::removeEventListener):
2237         * dom/EventTarget.h:
2238
2239 2011-04-07  Julien Chaffraix  <jchaffraix@codeaurora.org>
2240
2241         Reviewed by Alexey Proskuryakov.
2242
2243         EventSource should only accept UTF-8 charset
2244         https://bugs.webkit.org/show_bug.cgi?id=56942
2245
2246         Following the discussion on bug 45372, this change implements the recommended
2247         way of handling "charset". We only accept UTF-8 but no other encoding. This matches
2248         the encoding of the EventSource and also may fix TomCat that automatically send this
2249         charset.
2250
2251         * page/EventSource.cpp:
2252         (WebCore::EventSource::didReceiveResponse): We now check the charset attribute and if it is
2253         not UTF-8, abort the connection and log the error to the console. Also we log if the MIME type
2254         is wrong to the console to help debugging (only in the case of an HTTP 200 response though).
2255
2256 2011-04-07  Geoffrey Garen  <ggaren@apple.com>
2257
2258         Reviewed by Maciej Stachowiak.
2259
2260         Some Handle<T> cleanup
2261         https://bugs.webkit.org/show_bug.cgi?id=58109
2262
2263         * bindings/js/ScriptValue.h:
2264         (WebCore::ScriptValue::ScriptValue): Updated for new null constructor.
2265         (WebCore::ScriptValue::hasNoValue): Updated for removal of isEmpty().
2266
2267 2011-04-07  Dominic Cooney  <dominicc@google.com>
2268
2269         Reviewed by Dimitri Glazkov.
2270
2271         Let shadow DOM have a list of nodes at the top level of a shadow.
2272         https://bugs.webkit.org/show_bug.cgi?id=57813
2273
2274         Adds ShadowRoot, a list of nodes, to be a parent for top-level
2275         shadow children. Forwards rendering through the root and into the
2276         host's renderer.
2277
2278         Covered by existing tests of elements that use this style of shadow.
2279
2280         * Android.mk: add ShadowRoot.h/cpp
2281         * CMakeLists.txt:
2282         * GNUmakefile.am:
2283         * WebCore.exp.in:
2284         * WebCore.gypi:
2285         * WebCore.pro:
2286         * WebCore.vcproj/WebCore.vcproj:
2287         * WebCore.xcodeproj/project.pbxproj:
2288         * css/CSSStyleSelector.cpp:
2289         (WebCore::CSSStyleSelector::initForStyleResolve): proxy style to host
2290         * dom/ContainerNode.cpp: parent nodes that are shadow roots are alive
2291         (WebCore::ContainerNode::insertBefore):
2292         (WebCore::ContainerNode::replaceChild):
2293         (WebCore::ContainerNode::removeChild):
2294         (WebCore::ContainerNode::appendChild):
2295         * dom/DocumentFragment.cpp:
2296         (WebCore::DocumentFragment::DocumentFragment):
2297         * dom/DocumentFragment.h:
2298         * dom/Element.cpp:
2299         (WebCore::Element::recalcStyle): look through ShadowRoots for host's style
2300         (WebCore::Element::shadowRoot): should be const
2301         (WebCore::Element::ensureShadowRoot): simpler than setShadowRoot
2302         * dom/Element.h:
2303         * dom/ElementRareData.h:
2304         * dom/Node.cpp:
2305         (WebCore::Node::parentNodeForRenderingAndStyle): indirection so
2306           ShadowRoot can forward to the host's renderer
2307         (WebCore::Node::createRendererAndStyle):
2308         (WebCore::Node::createRendererIfNeeded):
2309         * dom/Node.h:
2310         (WebCore::Node::isShadowBoundary): temporary, to differentiate
2311           old- and new-style, until all roots are ShadowRoot instances
2312         * dom/ShadowRoot.cpp: Added.
2313         (WebCore::ShadowRoot::ShadowRoot):
2314         (WebCore::ShadowRoot::recalcStyle): forward recalc to children
2315         * dom/ShadowRoot.h: Added.
2316         (WebCore::ShadowRoot::isShadowBoundary):
2317         (WebCore::ShadowRoot::create):
2318         * html/HTMLKeygenElement.cpp: use ensureShadowRoot
2319         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
2320         (WebCore::HTMLKeygenElement::parseMappedAttribute):
2321         (WebCore::HTMLKeygenElement::appendFormData):
2322         (WebCore::HTMLKeygenElement::reset):
2323         (WebCore::HTMLKeygenElement::shadowSelect):
2324         * html/HTMLKeygenElement.h:
2325         * html/HTMLMeterElement.cpp: use ensureShadowRoot
2326         (WebCore::HTMLMeterElement::createShadowSubtree):
2327         * html/HTMLProgressElement.cpp: use ensureShadowRoot
2328         (WebCore::HTMLProgressElement::createShadowSubtree):
2329         * html/InputType.cpp: use ensureShadowRoot
2330         (WebCore::InputType::destroyShadowSubtree):
2331         * html/RangeInputType.cpp: use ensureShadowRoot
2332         (WebCore::RangeInputType::handleMouseDownEvent):
2333         (WebCore::RangeInputType::createShadowSubtree):
2334         (WebCore::RangeInputType::valueChanged):
2335         (WebCore::RangeInputType::shadowSliderThumb):
2336         * html/RangeInputType.h:
2337         * html/ValidationMessage.cpp: use ensureShadowRoot
2338         (WebCore::ValidationMessage::buildBubbleTree):
2339         (WebCore::ValidationMessage::deleteBubbleTree):
2340         * html/shadow/SliderThumbElement.cpp:
2341         (WebCore::SliderThumbElement::setPositionFromPoint):
2342         (WebCore::SliderThumbElement::hostInput):
2343         * html/shadow/SliderThumbElement.h:
2344         * rendering/MediaControlElements.cpp: use ensureShadowRoot
2345         (WebCore::MediaControlInputElement::attach):
2346         (WebCore::MediaControlInputElement::updateStyle):
2347         * rendering/RenderSlider.cpp: use ensureShadowRoot
2348         (WebCore::RenderSlider::thumbRect):
2349         (WebCore::RenderSlider::layout):
2350         (WebCore::RenderSlider::shadowSliderThumb):
2351         (WebCore::RenderSlider::inDragMode):
2352         * rendering/RenderSlider.h:
2353
2354 2011-04-07  Maciej Stachowiak  <mjs@apple.com>
2355
2356         Reviewed by Simon Fraser.
2357
2358         REGRESSION (r80871): Crash when visiting http://broadband.biglobe.ne.jp/
2359         https://bugs.webkit.org/show_bug.cgi?id=56297
2360         <rdar://problem/9131597>
2361
2362         Test: fast/css-generated-content/table-row-after-no-crash.html
2363
2364         * rendering/RenderTableRow.cpp:
2365         (WebCore::RenderTableRow::styleDidChange): Factor out generation of before/after
2366         content, and only do it if the row already has a parent. For construction of
2367         anonymous cells to work correctly, the row needs to already have a parent, so
2368         in that case wait a bit.
2369         (WebCore::RenderTableRow::updateBeforeAndAfterContent): Factored out to here.
2370         * rendering/RenderTableRow.h:
2371         * rendering/RenderTableSection.cpp:
2372         (WebCore::RenderTableSection::addChild): When adding a row, update its
2373         before/after content, in case it had any.
2374
2375 2011-04-07  Beth Dakin  <bdakin@apple.com>
2376
2377         Reviewed by Simon Fraser.
2378
2379         Probable fix for <rdar://problem/9251443>  Crashing on exception: -
2380         [ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]: unrecognized 
2381         selector sent to instance ADDRESS.
2382
2383        Need to implement new delegate method.
2384         * platform/mac/ScrollAnimatorMac.mm:
2385         (-[ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]):
2386
2387 2011-04-07  Ian Henderson  <ianh@apple.com>
2388
2389         Reviewed by Simon Fraser.
2390
2391         Optimize filling rounded rects that are actually ellipses
2392         https://bugs.webkit.org/show_bug.cgi?id=58098
2393
2394         In CG, drawing an ellipse directly is faster than constructing and
2395         filling a rounded rect path.  Detect when the given rounded rect is
2396         actually an ellipse and draw it directly in this case.
2397
2398         * platform/graphics/cg/GraphicsContextCG.cpp:
2399         (WebCore::GraphicsContext::fillRoundedRect):
2400
2401 2011-04-07  Ned Holbrook  <nholbrook@apple.com>
2402
2403         Reviewed by Dan Bernstein.
2404
2405         CTLine objects should outlive their CTRuns
2406         https://bugs.webkit.org/show_bug.cgi?id=58063
2407
2408         * platform/graphics/mac/ComplexTextController.h: Add m_coreTextLines, to be destroyed after m_complexTextRuns.
2409         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
2410         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moot m_coreTextRun.
2411         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Append line to m_coreTextLines.
2412
2413 2011-04-07  Nat Duca  <nduca@chromium.org>
2414
2415         Reviewed by David Levin.
2416
2417         [chromium] Compositor thread infrastructure
2418         https://bugs.webkit.org/show_bug.cgi?id=56131
2419
2420         Introduce chrome compositor thread and related
2421         infrastructure.
2422
2423         * WebCore.gypi:
2424         * platform/graphics/chromium/cc/CCMainThread.cpp: Added.
2425         (WebCore::CCMainThread::performTask):
2426         (WebCore::CCMainThread::postTask):
2427         * platform/graphics/chromium/cc/CCMainThread.h: Added.
2428         (WebCore::CCMainThread::Task::~Task):
2429         (WebCore::CCMainThread::Task::instance):
2430         (WebCore::CCMainThread::Task::Task):
2431         * platform/graphics/chromium/cc/CCMainThreadTask.h: Added.
2432         (WebCore::MainThreadTask0::create):
2433         (WebCore::MainThreadTask0::MainThreadTask0):
2434         (WebCore::MainThreadTask0::performTask):
2435         (WebCore::MainThreadTask1::create):
2436         (WebCore::MainThreadTask1::MainThreadTask1):
2437         (WebCore::MainThreadTask1::performTask):
2438         (WebCore::MainThreadTask2::create):
2439         (WebCore::MainThreadTask2::MainThreadTask2):
2440         (WebCore::MainThreadTask2::performTask):
2441         (WebCore::MainThreadTask3::create):
2442         (WebCore::MainThreadTask3::MainThreadTask3):
2443         (WebCore::MainThreadTask3::performTask):
2444         (WebCore::createMainThreadTask):
2445         * platform/graphics/chromium/cc/CCThread.cpp: Added.
2446         (WebCore::CCThread::create):
2447         (WebCore::CCThread::CCThread):
2448         (WebCore::CCThread::~CCThread):
2449         (WebCore::CCThread::postTask):
2450         (WebCore::CCThread::compositorThreadStart):
2451         (WebCore::CCThread::runLoop):
2452         * platform/graphics/chromium/cc/CCThread.h: Added.
2453         (WebCore::CCThread::Task::~Task):
2454         (WebCore::CCThread::Task::instance):
2455         (WebCore::CCThread::Task::Task):
2456         (WebCore::CCThread::threadID):
2457         (WebCore::CCCompletionEvent::CCCompletionEvent):
2458         (WebCore::CCCompletionEvent::~CCCompletionEvent):
2459         (WebCore::CCCompletionEvent::wait):
2460         (WebCore::CCCompletionEvent::signal):
2461         * platform/graphics/chromium/cc/CCThreadTask.h: Added.
2462         (WebCore::CCThreadTask0::create):
2463         (WebCore::CCThreadTask0::CCThreadTask0):
2464         (WebCore::CCThreadTask0::performTask):
2465         (WebCore::CCThreadTask1::create):
2466         (WebCore::CCThreadTask1::CCThreadTask1):
2467         (WebCore::CCThreadTask1::performTask):
2468         (WebCore::CCThreadTask2::create):
2469         (WebCore::CCThreadTask2::CCThreadTask2):
2470         (WebCore::CCThreadTask2::performTask):
2471         (WebCore::CCThreadTask3::create):
2472         (WebCore::CCThreadTask3::CCThreadTask3):
2473         (WebCore::CCThreadTask3::performTask):
2474         (WebCore::createCCThreadTask):
2475
2476 2011-04-07  Ryosuke Niwa  <rniwa@webkit.org>
2477
2478         Reviewed by Eric Seidel.
2479
2480         REGRESSION (r46914, r48764): When typing in Mail, line wrapping frequently occurs in the middle of words
2481         https://bugs.webkit.org/show_bug.cgi?id=57872
2482
2483         r46914 initially introduced a regression by replacing calls to styleAtPosition by editingStyleAtPosition
2484         because editingStyleAtPosition did not avoid tab span to obtain the computed style unlike styleAtPosition.
2485
2486         r46914 also introduced a regression by cloning hierarchy under new block at the insertion position without
2487         avoiding the tab span.
2488
2489         Fixed the both regressions by avoiding tab spans when computing the editing style and when cloning hierarchy.
2490         Also reverted r46914 for the general code path because re-creating node hierarchy duplicates nodes when
2491         we're moving nodes after the paragraph separator. Instead, we now split the tree up until the start block
2492         before moving the nodes.
2493
2494         Tests: editing/inserting/insert-paragraph-after-tab-span-and-text.html
2495                editing/inserting/insert-paragraph-separator-tab-span.html
2496
2497         * editing/DeleteSelectionCommand.cpp:
2498         (WebCore::DeleteSelectionCommand::saveTypingStyleState): Since EditingStyle's constructor avoids a tab span,
2499         no longer calls positionBeforeTabSpan on the position passed to EditingStyle's constructor.
2500         * editing/EditingStyle.cpp:
2501         (WebCore::EditingStyle::init): Always avoid a tab span when computing the editing style.
2502         * editing/InsertParagraphSeparatorCommand.cpp:
2503         (WebCore::InsertParagraphSeparatorCommand::doApply): Avoid cloning tab spans and inserting a paragraph
2504         separator into a paragraph separator.
2505         * editing/htmlediting.cpp:
2506         (WebCore::positionOutsideTabSpan): Renamed from positionBeforeTabSpan. Also returns the position in the parent
2507         node after the tab span if the position was at the end of the tab span.
2508         * editing/htmlediting.h:
2509
2510 2011-04-07  Jia Pu  <jpu@apple.com>
2511
2512         Reviewed by Darin Adler.
2513
2514         [Mac] Editor::setComposition() should not trigger correction panel timer.
2515         https://bugs.webkit.org/show_bug.cgi?id=58049
2516          <rdar://problem/9226305>
2517
2518         On Mac OS X that supports autocorrection panel, typing unconfirmed composition (i.e. unconfirmed Japanese or Chinese input)
2519         should not start autocorrection timer. We added a member variable, m_shouldPreventSpellChecking, to TypingCommand. 
2520         When this value is true, markMisspellingsAfterTyping() will not be called in TypingCommand::typingAddedToOpenCommand().
2521         m_shouldPreventSpellChecking is set to true in the TypingCommand objects created by Editor::setComposition().
2522
2523         No new tests. No deterministically reproducible test case. Patch is based on static code analysis. Testing this also requires firing
2524         autocorrection panel timer, which can not be easily done in automated fashion.
2525
2526         * editing/Editor.cpp:
2527         (WebCore::Editor::deleteWithDirection):
2528         (WebCore::Editor::insertTextWithoutSendingTextEvent):
2529         (WebCore::Editor::confirmComposition):
2530         (WebCore::Editor::setComposition):
2531         * editing/EditorCommand.cpp:
2532         (WebCore::executeDelete):
2533         * editing/TypingCommand.cpp:
2534         (WebCore::TypingCommand::TypingCommand):
2535         (WebCore::TypingCommand::deleteSelection):
2536         (WebCore::TypingCommand::deleteKeyPressed):
2537         (WebCore::TypingCommand::forwardDeleteKeyPressed):
2538         (WebCore::TypingCommand::insertText):
2539         (WebCore::TypingCommand::insertLineBreak):
2540         (WebCore::TypingCommand::insertParagraphSeparator):
2541         (WebCore::TypingCommand::typingAddedToOpenCommand):
2542         * editing/TypingCommand.h:
2543         (WebCore::TypingCommand::create):
2544         (WebCore::TypingCommand::setShouldPreventSpellChecking):
2545
2546 2011-04-07  John Bauman  <jbauman@chromium.org>
2547
2548         Reviewed by Kenneth Russell.
2549
2550         clearIfComposited call is really slow
2551         https://bugs.webkit.org/show_bug.cgi?id=57999
2552
2553         Move getContextAttributes call after the if, so it isn't called nearly as often.
2554
2555         No new tests.
2556
2557         * html/canvas/WebGLRenderingContext.cpp:
2558         (WebCore::WebGLRenderingContext::clearIfComposited):
2559
2560 2011-04-07  Luke Macpherson   <macpherson@chromium.org>
2561
2562         Reviewed by Dimitri Glazkov.
2563
2564         Implement Backgroun and Mask properties in CSSStyleApplyProperty
2565         https://bugs.webkit.org/show_bug.cgi?id=57922
2566
2567         No tests added as no behavioral changes.
2568
2569         * css/CSSStyleApplyProperty.cpp:
2570         Added ApplyPropertyFillLayer test to handle Background and Mask CSS Properties.
2571         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
2572         Added constructor calls to set up:
2573           CSSPropertyBackgroundAttachment
2574           CSSPropertyBackgroundClip
2575           CSSPropertyWebkitBackgroundClip
2576           CSSPropertyWebkitBackgroundComposite
2577           CSSPropertyBackgroundOrigin
2578           CSSPropertyWebkitBackgroundOrigin
2579           CSSPropertyBackgroundSize
2580           CSSPropertyWebkitBackgroundSize
2581           CSSPropertyWebkitMaskAttachment
2582           CSSPropertyWebkitMaskClip
2583           CSSPropertyWebkitMaskComposite
2584           CSSPropertyWebkitMaskOrigin
2585           CSSPropertyWebkitMaskSize
2586         * css/CSSStyleApplyProperty.h:
2587         (WebCore::CSSStyleApplyProperty::setPropertyValue):
2588         Add function to specify an equivalent property value in the lookup table.
2589         * css/CSSStyleSelector.cpp:
2590         (WebCore::CSSStyleSelector::applyProperty):
2591         Remove sections now implemented by CSSStyleApplyProperty.
2592         * css/CSSStyleSelector.h:
2593         Make CSSStyleApplyProperty a friend class so that the mapFill* functions are accessible.
2594
2595 2011-04-04  Eric Seidel  <eric@webkit.org>
2596
2597         Reviewed by Ryosuke Niwa.
2598
2599         Split run storage out from BidiResolver into a new BidiRunList class
2600         https://bugs.webkit.org/show_bug.cgi?id=57764
2601
2602         Part of what makes BidiResolver and InlineIterator so difficult to understand
2603         (and bug 50912 so difficult to fix) is that BidiResolver is both a state machine
2604         for the Unicode Bidi Algorithm (UBA) as well as storage for the resulting
2605         BidiRuns from the algorithm.  This patch breaks the storage aspect off
2606         into its own class BidiRunList.
2607
2608         This patch is only a start.  It does not actually fix the problematic ownership
2609         relationship, but it does make it possible to fix such in a second patch.
2610
2611         The run pointers and addRun/prependRun, etc. were already a tightly coupled
2612         logical subset of the BidiResolver class, so moving them into their own class
2613         was both obvious and easy.  The only piece of logic I had to move was that
2614         deleteRuns() had a side-effect of setting the m_emptyRun bit on the resolver.
2615
2616         I believe this deleteRuns side-effect was only ever used for one place
2617         (right after findNextLineBreak) and that it's only needed because
2618         findNextLineBreak can sometimes create bidi runs.  Run creation appears to be
2619         an unintentional side-effect of how InlineIterator calls through to BidiResolver
2620         as part of bidiNext and not a desired effect of the code.  I have added the call
2621         to markCurrentRunEmpty to both places deleteRuns was called (where the resolver
2622         could get re-used) as a safety precaution.  We could replace both with ASSERTs
2623         in a later patch.
2624
2625         I suspect there may be a small performance win from further refactoring so that
2626         findNextLineBreak does not need to create BidiRuns.
2627
2628         As I commented in the code, callers should own their own BidiRunList which they
2629         pass to BidiResolver::createBidiRunsForLine.  I attempted to implement that in
2630         an earlier version of this patch, but it was too complicated with the current
2631         twisted dependencies between InlineIterator/bidiNext and InlineBidiResolver.
2632         raise/lowerExplicitEmbeddingLevel are called unconditionally
2633         from commitExplicitEmbedding (which is called by bidiNext) and expect to have
2634         access to a runs list even in cases where we don't want any runs (findNextLineBreak).
2635
2636         I also cleaned up some of the callers to pass around BidiRunList objects instead
2637         of InlineBidiResolvers now that they're separate objects.
2638
2639         * GNUmakefile.am:
2640         * WebCore.gypi:
2641         * WebCore.pro:
2642         * WebCore.vcproj/WebCore.vcproj:
2643         * WebCore.xcodeproj/project.pbxproj:
2644         * platform/graphics/GraphicsContext.cpp:
2645         (WebCore::GraphicsContext::drawBidiText):
2646         * platform/text/BidiResolver.h:
2647         (WebCore::BidiResolver::BidiResolver):
2648         (WebCore::BidiResolver::runs):
2649         (WebCore::BidiResolver::markCurrentRunEmpty):
2650         (WebCore::::appendRun):
2651         (WebCore::::lowerExplicitEmbeddingLevel):
2652         (WebCore::::raiseExplicitEmbeddingLevel):
2653         (WebCore::::reorderRunsFromLevels):
2654         (WebCore::::createBidiRunsForLine):
2655         * rendering/InlineIterator.h:
2656         (WebCore::InlineBidiResolver::appendRun):
2657         * rendering/RenderBlock.h:
2658         * rendering/RenderBlockLineLayout.cpp:
2659         (WebCore::createRun):
2660         (WebCore::RenderBlock::appendRunsForObject):
2661         (WebCore::reachedEndOfTextRenderer):
2662         (WebCore::RenderBlock::handleTrailingSpaces):
2663         (WebCore::RenderBlock::layoutInlineChildren):
2664
2665 2011-04-07  Naoki Takano  <takano.naoki@gmail.com>
2666
2667         Reviewed by Adam Barth.
2668
2669         [Chromium] Fix relocation problem of popup window which introduces autofill popup sometimes moves to screen's top left corner.
2670         https://bugs.webkit.org/show_bug.cgi?id=57911
2671         http://code.google.com/p/chromium/issues/detail?id=78073
2672
2673         Manual test added: manual-tests/autofill-popup-location.html
2674
2675         Originally only height is checked so that it introduces the bug.
2676         So I changed it to check both width and height as size.
2677
2678         * manual-tests/autofill-popup-location.html: Added.
2679         * platform/chromium/PopupMenuChromium.cpp:
2680         (WebCore::PopupContainer::refresh): Check window size between original and new before calling setFrameRect().
2681
2682 2011-04-07  Adam Barth  <abarth@webkit.org>
2683
2684         Reviewed by Eric Seidel.
2685
2686         Implement img-src style-src and font-src
2687         https://bugs.webkit.org/show_bug.cgi?id=58018
2688
2689         These are pretty straight forward given the rest of the infrastructure
2690         we've built so far.
2691
2692         Tests: http/tests/security/contentSecurityPolicy/image-allowed.html
2693                http/tests/security/contentSecurityPolicy/image-blocked.html
2694                http/tests/security/contentSecurityPolicy/style-allowed.html
2695                http/tests/security/contentSecurityPolicy/style-blocked.html
2696                http/tests/security/contentSecurityPolicy/xsl-allowed.php
2697                http/tests/security/contentSecurityPolicy/xsl-blocked.php
2698
2699         * loader/cache/CachedResourceLoader.cpp:
2700         (WebCore::CachedResourceLoader::canRequest):
2701         * page/ContentSecurityPolicy.cpp:
2702         (WebCore::ContentSecurityPolicy::allowImageFromSource):
2703         (WebCore::ContentSecurityPolicy::allowStyleFromSource):
2704         (WebCore::ContentSecurityPolicy::allowFontFromSource):
2705         (WebCore::ContentSecurityPolicy::addDirective):
2706         * page/ContentSecurityPolicy.h:
2707
2708 2011-04-07  David Levin  <levin@chromium.org>
2709
2710         Reviewed by Darin Adler.
2711
2712         Make IconSnapshot and PageURLRecord member variables private.
2713         https://bugs.webkit.org/show_bug.cgi?id=58080
2714
2715         No change in functionality so no new tests.
2716
2717         * loader/icon/IconDatabase.cpp:
2718         (WebCore::IconDatabase::writeToDatabase): Changed to used the accessor functions.
2719         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase): Ditto.
2720         * loader/icon/IconRecord.h:
2721         (WebCore::IconSnapshot::IconSnapshot): Changed to use the new member variable names.
2722         (WebCore::IconSnapshot::iconURL): Expose the property.
2723         (WebCore::IconSnapshot::timestamp): Ditto.
2724         (WebCore::IconSnapshot::data): Ditto.
2725         * loader/icon/PageURLRecord.h:
2726         (WebCore::PageURLSnapshot::PageURLSnapshot): Changed to use the new member variable names.
2727         (WebCore::PageURLSnapshot::pageURL): Expose the property.
2728         (WebCore::PageURLSnapshot::iconURL): Ditto.
2729
2730 2011-04-07  Dan Bernstein  <mitz@apple.com>
2731
2732         Build fix.
2733
2734         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2735         (WebCore::GraphicsContext::roundToDevicePixels):
2736
2737 2011-04-07  Eric Seidel  <eric@webkit.org>
2738
2739         Reviewed by Adam Barth.
2740
2741         Add stub support for generating Gtk build system from gyp
2742         https://bugs.webkit.org/show_bug.cgi?id=58086
2743
2744         This does not produce a buildable WebCore, but it
2745         does allow running gyp/configure --port=gtk and having
2746         it generate a gtk.Makefile which we can use for testing
2747         the rest of the plumbing.
2748
2749         * gyp/gtk.gyp: Added.
2750
2751 2011-04-07  David Hyatt  <hyatt@apple.com>
2752
2753         Reviewed by Dan Bernstein.
2754
2755         https://bugs.webkit.org/show_bug.cgi?id=57736
2756         
2757         Crash on openstreetmap.org while using the map. Fix a bad interaction between the positioned movement layout
2758         optimization and the simplified layout optimization that could lead to blocks remaining marked as dirty when
2759         layout finished. This would eventually lead to an inability to properly determine the correct layout root and
2760         would cause a deleted root to be used later on.
2761
2762         Added fast/block/positioning/complex-positioned-movement.html.
2763
2764         * page/FrameView.cpp:
2765         (WebCore::FrameView::scheduleRelayoutOfSubtree):
2766         Add asserts to catch cases in the future where a layout root is set that has a dirty containing block.
2767     
2768         * rendering/RenderBlock.cpp:
2769         (WebCore::RenderBlock::simplifiedLayout):
2770         Change simplified layout so that the positioned movement optimization no longer clears the other layout
2771         flags. This will ensure that we still lay out our descendants if they need it.
2772         
2773         (WebCore::RenderBlock::layoutPositionedObjects):
2774         Changed to clear our layout flags now if the positioned movement is successful, since tryLayoutDoingPositionedMovementOnly
2775         no longer does the clear.
2776     
2777         * rendering/RenderBox.h:
2778         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
2779         tryLayoutDoingPositionedMovementOnly now returns a boolean indicating success or failure.  On success it no longer
2780         does setNeedsLayout(false), but instead will let the caller take care of it. This way the caller can still look at
2781         the other flags in case other kinds of layout are still needed.
2782     
2783         * rendering/RenderObject.h:
2784         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
2785         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
2786         Changed these methods to only set their respective flags and not to try to be clever about avoiding propagation.
2787
2788 2011-04-07  Andrew Scherkus  <scherkus@chromium.org>
2789
2790         Revert ENABLE_TRACK patch due to compile failures.
2791
2792         * CMakeLists.txt:
2793         * Configurations/FeatureDefines.xcconfig:
2794         * DerivedSources.make:
2795         * GNUmakefile.am:
2796         * WebCore.gypi:
2797         * WebCore.xcodeproj/project.pbxproj:
2798         * features.pri:
2799         * html/HTMLAttributeNames.in:
2800         * html/HTMLTagNames.in:
2801         * html/HTMLTrackElement.cpp: Removed.
2802         * html/HTMLTrackElement.h: Removed.
2803         * html/HTMLTrackElement.idl: Removed.
2804
2805 2011-04-07  Dan Bernstein  <mitz@apple.com>
2806
2807         Reviewed by Simon Fraser.
2808
2809         <rdar://problem/9018212> Underline thickness is not uniform under non-integral scale factor
2810         https://bugs.webkit.org/show_bug.cgi?id=58083
2811
2812         Test: fast/text/decorations-transformed.html
2813
2814         * platform/graphics/GraphicsContext.h: Added a RoundingMode enum with two values. RoundAllSides
2815         is the existing rounding mode, where each side of the rectangle snaps to the nearest pixel
2816         gridline. RoundOriginAndDimensions snaps the origin to the nearest pixel gridpoint and rounds
2817         the width and the height. In this new mode, translating a rectangle in user space never changes
2818         its dimensions in device pixels.
2819         * platform/graphics/cg/GraphicsContextCG.cpp:
2820         (WebCore::GraphicsContext::roundToDevicePixels): Implemented RoundOriginAndDimensions.
2821         (WebCore::GraphicsContext::drawLineForText): Use RoundOriginAndDimensions, thus ensuring that
2822         all underlines have the same thickness in device pixels.
2823         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
2824         (WebCore::GraphicsContext::roundToDevicePixels): Added RoundingMode parameter, but did not implement it.
2825         * platform/graphics/qt/GraphicsContextQt.cpp:
2826         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
2827         * platform/graphics/skia/GraphicsContextSkia.cpp:
2828         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
2829         * platform/graphics/wince/GraphicsContextWinCE.cpp:
2830         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
2831         * platform/graphics/wx/GraphicsContextWx.cpp:
2832         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
2833         * rendering/InlineTextBox.cpp:
2834         (WebCore::InlineTextBox::paintDecoration):
2835
2836 2011-04-06  Vitaly Repeshko  <vitalyr@chromium.org>
2837
2838         Reviewed by Nate Chapin.
2839
2840         [V8] Remove custom DOMImplementation getter on Document.
2841         https://bugs.webkit.org/show_bug.cgi?id=57991
2842
2843         The custom getter is no longer required because DOMImplementation
2844         objects are now created per document.
2845
2846         Test: fast/dom/DOMImplementation/implementation-identity.html
2847
2848         * bindings/scripts/CodeGeneratorV8.pm:
2849         * bindings/v8/custom/V8DocumentCustom.cpp:
2850         * dom/Document.idl:
2851
2852 2011-04-07  Sergey Glazunov  <serg.glazunov@gmail.com>
2853
2854         Reviewed by Dimitri Glazkov.
2855
2856         setHasID() is only called for styled elements
2857         https://bugs.webkit.org/show_bug.cgi?id=57267
2858
2859         Test: fast/dom/non-styled-element-id-crash.html
2860
2861         * dom/Element.cpp:
2862         (WebCore::Element::attributeChanged):
2863         (WebCore::Element::idAttributeChanged):
2864         * dom/Element.h:
2865         * dom/StyledElement.cpp:
2866         (WebCore::StyledElement::parseMappedAttribute):
2867
2868 2011-04-07  Jer Noble  <jer.noble@apple.com>
2869
2870         Reviewed by Eric Carlson.
2871
2872         HTMLVideoElement::webkitEnterFullscreen does not use new Full Screen API when available.
2873         https://bugs.webkit.org/show_bug.cgi?id=58070
2874
2875         Make the HTMLMediaElement full screen functions call into the new Full Screen API when
2876         FULLSCREEN_API is enabled.
2877
2878         * html/HTMLMediaElement.cpp:
2879         (WebCore::HTMLMediaElement::enterFullscreen):
2880         (WebCore::HTMLMediaElement::exitFullscreen):
2881
2882 2011-04-07  Adam Barth  <abarth@webkit.org>
2883
2884         Reviewed by Eric Seidel.
2885
2886         Implement CSP's options directive
2887         https://bugs.webkit.org/show_bug.cgi?id=58014
2888
2889         This patch contains the full options parser, but we only have enough of
2890         CSP implemented to see the effects of disable-xss-protection.  Will
2891         need to do some more work before we can see eval-script in action.
2892
2893         Tests: http/tests/security/contentSecurityPolicy/inline-script-allowed.html
2894                http/tests/security/contentSecurityPolicy/inline-script-blocked-goofy.html
2895
2896         * page/ContentSecurityPolicy.cpp:
2897         (WebCore::CSPOptions::CSPOptions):
2898         (WebCore::CSPOptions::disableXSSProtection):
2899         (WebCore::CSPOptions::evalScript):
2900         (WebCore::CSPOptions::parse):
2901         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
2902         (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
2903         (WebCore::ContentSecurityPolicy::allowInlineScript):
2904         (WebCore::ContentSecurityPolicy::addDirective):
2905         * page/ContentSecurityPolicy.h:
2906
2907 2011-04-07  Alexey Proskuryakov  <ap@apple.com>
2908
2909         Reviewed by Anders Carlsson.
2910
2911         REGRESSION (WebKit2): Reverse conversion doesn't work in Kotoeri
2912         https://bugs.webkit.org/show_bug.cgi?id=58066
2913         <rdar://problem/8965302>
2914
2915         * platform/mac/HTMLConverter.h:
2916         * platform/mac/HTMLConverter.mm: (+[WebHTMLConverter editingAttributedStringFromRange:]):
2917         Changed editingAttributedStringFromRange: to use WebCore::Range instead of DOMRange, since
2918         it's now used in WebKit2.
2919
2920 2011-04-07  Andy Estes  <aestes@apple.com>
2921
2922         Reviewed by Darin Adler.
2923
2924         REGRESSION (r64712): Microsoft Outlook 2011: original message contents
2925         not included when replying to an email.
2926         https://bugs.webkit.org/show_bug.cgi?id=57794
2927         
2928         * WebCore.exp.in:
2929         * loader/FrameLoader.cpp:
2930         (WebCore::FrameLoader::finishedParsing): Call Frame::injectUserScripts()
2931         before checking if the FrameLoader is parsing the initial empty document.
2932         This allows user scripts to be injected at the end of document parsing
2933         (if the setting is enabled).
2934         * page/Frame.cpp:
2935         (WebCore::Frame::injectUserScripts): Do not inject scripts if this
2936         feature is disabled on the initial empty document.
2937         * page/Settings.cpp:
2938         (WebCore::Settings::Settings):
2939         * page/Settings.h: Add a setting for injecting user scripts into the
2940         initial empty document (defaults to false).
2941         (WebCore::Settings::setInjectUserScriptsInInitialEmptyDocument):
2942         (WebCore::Settings::injectUserScriptsInInitialEmptyDocument):
2943         * platform/mac/RuntimeApplicationChecks.h:
2944         * platform/mac/RuntimeApplicationChecks.mm:
2945         (WebCore::applicationIsMicrosoftOutlook): Check if the embedding
2946         application is Microsoft Outlook.
2947
2948 2011-04-06  Jer Noble  <jer.noble@apple.com>
2949
2950         Reviewed by Maciej Stachowiak.
2951
2952         AVF: MediaPlayerPrivateAVFoundation never reaches playable state.
2953         https://bugs.webkit.org/show_bug.cgi?id=57962
2954
2955         Add support for a new AVPlayerItem API which will notify clients when their
2956         seek completes.  This requires a new Notification type to be passed to the main
2957         thread in MediaPlayerPrivateAVFoundation.
2958
2959         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
2960         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Added.
2961         (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification): Added two new
2962             overloaded functions which take a Notification; and a Notification::Type and boolean.
2963         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Support new SeekCompleted 
2964             Notification type.
2965         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
2966         (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification): Added one new constructor.
2967         (WebCore::MediaPlayerPrivateAVFoundation::Notification::finished): Added ivar and accessor.
2968         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
2969         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Call new AVPlayerItem API.
2970         (-[WebCoreAVFMovieObserver seekCompleted:]): Added.
2971
2972 2011-04-07  Nancy Piedra  <nancy.piedra@nokia.com>
2973
2974         Reviewed by Eric Carlson.
2975
2976         Parse quotes from content type parameters
2977         https://bugs.webkit.org/show_bug.cgi?id=53275
2978
2979         This functionality is tested in video-can-play-type.html layout test
2980         where I've added codecs parameter with good and bad formatting.
2981
2982         * platform/ContentType.cpp:
2983         (WebCore::ContentType::parameter):
2984
2985 2011-04-07  Pavel Feldman  <pfeldman@google.com>
2986
2987         Reviewed by Yury Semikhatsky.
2988
2989         Web Inspector: remove "enabled" from the setBreakpoint protocol.
2990         https://bugs.webkit.org/show_bug.cgi?id=58047
2991
2992         * bindings/js/ScriptDebugServer.cpp:
2993         (WebCore::ScriptDebugServer::hasBreakpoint):
2994         * bindings/v8/DebuggerScript.js:
2995         ():
2996         * bindings/v8/ScriptDebugServer.cpp:
2997         (WebCore::ScriptDebugServer::setBreakpoint):
2998         * inspector/Inspector.json:
2999         * inspector/InspectorDebuggerAgent.cpp:
3000         (WebCore::buildObjectForBreakpointCookie):
3001         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
3002         (WebCore::InspectorDebuggerAgent::setBreakpoint):
3003         (WebCore::InspectorDebuggerAgent::continueToLocation):
3004         (WebCore::InspectorDebuggerAgent::didParseSource):
3005         * inspector/InspectorDebuggerAgent.h:
3006         * inspector/ScriptBreakpoint.h:
3007         (WebCore::ScriptBreakpoint::ScriptBreakpoint):
3008         * inspector/front-end/DebuggerModel.js:
3009         (WebInspector.DebuggerModel.prototype.setBreakpoint):
3010         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
3011         * inspector/front-end/DebuggerPresentationModel.js:
3012         (WebInspector.DebuggerPresentationModel):
3013         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3014         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
3015         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint.callback):
3016         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
3017         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
3018         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
3019         (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger):
3020         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled.afterUpdate):
3021         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
3022         (WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
3023         (WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
3024         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded.didRequestSourceMapping):
3025         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
3026         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
3027         (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
3028         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpointsFromSettings):
3029         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
3030         (WebInspector.DebuggerPresentationModel.prototype._reset):
3031         (WebInspector.PresentationBreakpoint):
3032
3033 2011-04-07  Dan Bernstein  <mitz@apple.com>
3034
3035         Reviewed by Adam Roben.
3036
3037         Removed a redundant line of code.
3038
3039         * rendering/RenderInline.cpp:
3040         (WebCore::RenderInline::updateAlwaysCreateLineBoxes): No need to compare line gap values, as
3041         this is covered by the earlier hasIdenticalAscentDescentAndLineGap() check.
3042
3043 2011-04-07  Liang Qi  <liang.qi@nokia.com>
3044
3045         Reviewed by Laszlo Gombos.
3046
3047         [Qt][Symbian] Enable webkit build with GCCE on Symbian.
3048         https://bugs.webkit.org/show_bug.cgi?id=57841
3049
3050         * WebCore.pri: Thanks for Norbert Leser  <norbert.leser@nokia.com> who checked RVCT part.
3051         --rw-base value in QMAKE_LFLAGS.ARMCC and -Tdata value in QMAKE_LFLAGS.GCCE are updated
3052         to 0x1000000 together. They need to be updated in the future when WebKit grows.
3053
3054 2011-04-06  Pavel Feldman  <pfeldman@google.com>
3055
3056         Reviewed by Yury Semikhatsky.
3057
3058         Web Inspector: get rid of Breakpoint.js.
3059         https://bugs.webkit.org/show_bug.cgi?id=57949
3060
3061         * WebCore.gypi:
3062         * WebCore.vcproj/WebCore.vcproj:
3063         * inspector/front-end/Breakpoint.js: Removed.
3064         * inspector/front-end/BreakpointsSidebarPane.js:
3065         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint):
3066         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.updateBreakpoint.didLoadSnippet):
3067         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.updateBreakpoint):
3068         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
3069         * inspector/front-end/DebuggerModel.js:
3070         (WebInspector.DebuggerModel):
3071         (WebInspector.DebuggerModel.prototype._debuggerWasDisabled):
3072         (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
3073         (WebInspector.DebuggerModel.prototype.setBreakpoint):
3074         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
3075         (WebInspector.DebuggerModel.prototype.removeBreakpoint):
3076         (WebInspector.DebuggerModel.prototype._breakpointResolved):
3077         (WebInspector.DebuggerModel.prototype.reset):
3078         * inspector/front-end/DebuggerPresentationModel.js:
3079         (WebInspector.DebuggerPresentationModel):
3080         (WebInspector.DebuggerPresentationModel.prototype._refreshBreakpoints):
3081         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
3082         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
3083         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint.didSetBreakpoint):
3084         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
3085         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
3086         (WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
3087         (WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
3088         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded.didRequestSourceMapping):
3089         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
3090         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
3091         (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
3092         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
3093         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoint):
3094         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
3095         (WebInspector.DebuggerPresentationModel.prototype._reset):
3096         (WebInspector.PresentationBreakpoint):
3097         (WebInspector.PresentationBreakpoint.prototype.get sourceFile):
3098         (WebInspector.PresentationBreakpoint.prototype.get url):
3099         (WebInspector.PresentationBreakpoint.prototype.get resolved):
3100         (WebInspector.PresentationBreakpoint.prototype.loadSnippet):
3101         * inspector/front-end/ResourceTreeModel.js:
3102         (WebInspector.ResourceTreeModel):
3103         (WebInspector.ResourceTreeModel.prototype._onResourceStarted):
3104         (WebInspector.ResourceTreeModel.prototype._addResourceToFrame):
3105         * inspector/front-end/ScriptsPanel.js:
3106         (WebInspector.ScriptsPanel):
3107         (WebInspector.ScriptsPanel.prototype._breakpointUpdated):
3108         (WebInspector.ScriptsPanel.prototype.reset):
3109         * inspector/front-end/WebKit.qrc:
3110         * inspector/front-end/inspector.html:
3111
3112 2011-04-07  Yury Semikhatsky  <yurys@chromium.org>
3113
3114         Reviewed by Pavel Feldman.
3115
3116         Web Inspector: console messages names should adhere to the common naming style
3117         https://bugs.webkit.org/show_bug.cgi?id=58042
3118
3119         * inspector/ConsoleMessage.cpp:
3120         (WebCore::ConsoleMessage::addToFrontend):
3121         (WebCore::ConsoleMessage::updateRepeatCountInConsole):
3122         * inspector/Inspector.json:
3123         * inspector/InspectorConsoleAgent.cpp:
3124         (WebCore::InspectorConsoleAgent::clearConsoleMessages):
3125         * inspector/front-end/ConsoleView.js:
3126         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messageAdded):
3127         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messageRepeatCountUpdated):
3128         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messagesCleared):
3129         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
3130
3131 2011-04-06  Ilya Tikhonovsky  <loislo@chromium.org>
3132
3133         Reviewed by Yury Semikhatsky.
3134
3135         Web Inspector: migrate Inspector protocol messages format to JSON-RPC.
3136         https://bugs.webkit.org/show_bug.cgi?id=57957
3137
3138         There is not a significant difference between  inspector messages spec and and JSON-RPC 2.0 messages spec.
3139         Also JSON-RPC has a pretty clear specification for error descriptions which we haven't.
3140         It was decided that we will use it.
3141
3142         the list of renames:
3143         1) type-> /dev/null
3144         2) domain + '.' + event => method // for events
3145         3) domain + '.' + command => method // for requests
3146         4) requestId => id // for responses
3147         5) arguments => params // for requests
3148         6) data => params // for events
3149         7) body => result // for responses
3150
3151         protocolErrors and error properties will be converted to JSON-RPC error format.
3152         The order of properties in messages also will be adjusted.
3153         The only thing that looks unnecessary is jsonrpc property.
3154
3155         * inspector/CodeGeneratorInspector.pm:
3156
3157 2011-04-07  Ryosuke Niwa  <rniwa@webkit.org>
3158
3159         Reviewed by Eric Seidel.
3160
3161         Add functions to update left and right offsets to LineOffsets
3162         https://bugs.webkit.org/show_bug.cgi?id=58028
3163
3164         Added update() and shrinkWidthForNewFloatIfNeeded(FloatingObject*) to LineOffsets,
3165         which are used to update m_left and m_right. Also added m_block and m_isFirstLine
3166         member variables to LineOffsets so that users of LineOffsets don't have to pass them around.
3167
3168         * rendering/RenderBlock.h:
3169         * rendering/RenderBlockLineLayout.cpp:
3170         (WebCore::RenderBlock::skipLeadingWhitespace): No longer passes firstLine to positionNewFloatOnLine.
3171         (WebCore::LineOffsets::LineOffsets): Takes RenderBlock* and isFirstLine instead of left and right offsets.
3172         (WebCore::LineOffsets::update): Extracted from findNextLineBreak and positionNewFloatOnLine.
3173         (WebCore::LineOffsets::shrinkWidthForNewFloatIfNeeded): Extracted from positionNewFloatOnLine.
3174         (WebCore::RenderBlock::findNextLineBreak): Calls skipLeadingWhitespace and positionNewFloatOnLine.
3175         (WebCore::RenderBlock::positionNewFloatOnLine): Calls shrinkWidthForNewFloatIfNeeded and update and
3176         no longer passes firstLine around.
3177
3178 2011-04-06  Pavel Feldman  <pfeldman@google.com>
3179
3180         Reviewed by Yury Semikhatsky.
3181
3182         Web Inspector: migrate debugger domain to the unified breakpoint location notion.
3183         https://bugs.webkit.org/show_bug.cgi?id=57928
3184
3185         * inspector/Inspector.json:
3186         * inspector/InspectorDebuggerAgent.cpp:
3187         (WebCore::buildObjectForBreakpointCookie):
3188         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
3189         (WebCore::InspectorDebuggerAgent::setBreakpoint):
3190         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
3191         (WebCore::InspectorDebuggerAgent::didParseSource):
3192         * inspector/InspectorDebuggerAgent.h:
3193         * inspector/front-end/Breakpoint.js:
3194         (WebInspector.Breakpoint):
3195         * inspector/front-end/DebuggerModel.js:
3196         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
3197         (WebInspector.DebuggerModel.prototype._breakpointResolved):
3198
3199 2011-04-07  Andreas Kling  <andreas.kling@nokia.com>
3200
3201         Reviewed by Benjamin Poulain.
3202
3203         [Qt] Mask the QStyle::State_Horizontal hint for vertical scrollbars.
3204
3205         When initializing a QStyleOptionSlider from a widget, the State_Horizontal
3206         hint may get set depending on how that widget is laid out in its parent.
3207         If this happens when drawing a vertical scrollbar, the hint is never
3208         cleared and we end up painting a vertical scrollbar with horizontal arrows.
3209
3210         Covered by pixel tests which should no longer paint silly scrollbars.
3211
3212         * platform/qt/ScrollbarThemeQt.cpp:
3213         (WebCore::styleOptionSlider):
3214
3215 2011-04-07  Adam Barth  <abarth@webkit.org>
3216
3217         Reviewed by Eric Seidel.
3218
3219         script-src should block inline script
3220         https://bugs.webkit.org/show_bug.cgi?id=58012
3221
3222         Block inline scripts at the ScriptElement layer.  This should catch
3223         exactly the scripts we want to catch.
3224
3225         Test: http/tests/security/contentSecurityPolicy/inline-script-blocked.html
3226
3227         * dom/Document.cpp:
3228         (WebCore::Document::processHttpEquiv):
3229             - This patch also adds the ability to supply a CSP policy via a
3230               <meta> tag.  We'll update the name of the header once we've
3231               finished implementing the spec.
3232         * dom/ScriptElement.cpp:
3233         (WebCore::ScriptElement::executeScript):
3234         * page/ContentSecurityPolicy.cpp:
3235         (WebCore::ContentSecurityPolicy::allowInlineScript):
3236         * page/ContentSecurityPolicy.h:
3237
3238 2011-04-07  Alice Boxhall  <aboxhall@chromium.org>
3239
3240         Reviewed by Ryosuke Niwa.
3241
3242         Move the MouseEventWithHitTestResults::targetNode() method on to EventHandler.
3243         https://bugs.webkit.org/show_bug.cgi?id=57921
3244
3245         Moves the MouseEventWithHitTestResults::targetNode() method on to EventHandler, so
3246         that the same logic can be used for a HitTestResult.
3247
3248         No visible changes, just cleanup, so no tests.
3249
3250         * page/EventHandler.cpp:
3251         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
3252         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
3253         (WebCore::EventHandler::handleMousePressEventTripleClick):
3254         (WebCore::EventHandler::handleMousePressEventSingleClick):
3255         (WebCore::EventHandler::handleMousePressEvent):
3256         (WebCore::EventHandler::handleMouseDraggedEvent):
3257         (WebCore::EventHandler::handleMouseReleaseEvent):
3258         (WebCore::EventHandler::subframeForHitTestResult):
3259         Made public static member, so that it can access targetNode(), and be accessed by
3260         webkitwebview in gtk.
3261         (WebCore::EventHandler::selectCursor):
3262         (WebCore::EventHandler::targetNode):
3263         (WebCore::EventHandler::handleMouseDoubleClickEvent):
3264         (WebCore::EventHandler::handleMouseMoveEvent):
3265         (WebCore::EventHandler::updateDragAndDrop):
3266         (WebCore::EventHandler::sendContextMenuEvent):
3267         * page/EventHandler.h:
3268         * page/MouseEventWithHitTestResults.cpp:
3269         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
3270         * page/MouseEventWithHitTestResults.h:
3271         * page/android/EventHandlerAndroid.cpp:
3272         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3273         * page/brew/EventHandlerBrew.cpp:
3274         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3275         * page/chromium/EventHandlerChromium.cpp:
3276         (WebCore::EventHandler::passMousePressEventToSubframe):
3277         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3278         * page/efl/EventHandlerEfl.cpp:
3279         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3280         * page/gtk/EventHandlerGtk.cpp:
3281         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3282         * page/haiku/EventHandlerHaiku.cpp:
3283         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3284         * page/mac/EventHandlerMac.mm:
3285         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3286         (WebCore::EventHandler::passSubframeEventToSubframe):
3287         * page/wx/EventHandlerWx.cpp:
3288         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
3289
3290 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
3291
3292         Reviewed by Pavel Feldman.
3293
3294         Web Inspector: build mapping for formatted scripts based on keywords positions.
3295         https://bugs.webkit.org/show_bug.cgi?id=57936
3296
3297         Mapping based on [\$\.\w]+ was not accurate because string literals representation
3298         may be different in original and formatted scripts.
3299
3300         * inspector/front-end/ScriptFormatterWorker.js:
3301         (buildMapping.regexp.b):
3302         (buildMapping):
3303
3304 2011-04-07  Kent Tamura  <tkent@chromium.org>
3305
3306         Reviewed by Dimitri Glazkov.
3307
3308         Spinbuttons become unclickable if right padding is large.
3309         https://bugs.webkit.org/show_bug.cgi?id=56298
3310
3311         An inner-spin-button is put on the right border and ignores right
3312         padding in RenderTextControlSingleLine::layout(), but forwardEvent()
3313         checks if a point is in an area just right of an internal text block.
3314         This inconsistency caused a bug that an inner-spin-button with large
3315         padding didn't receive mouse events.
3316
3317         To fix this bug, we render spin buttons as layers, and remove manual
3318         event forwarding code.
3319
3320         Test: fast/forms/input-number-large-padding.html
3321
3322         * css/html.css: Add "position:relative" to make a spin-button a layer.
3323         (input::-webkit-inner-spin-button):
3324         (input::-webkit-outer-spin-button):
3325         * rendering/RenderTextControlSingleLine.cpp:
3326         (WebCore::RenderTextControlSingleLine::forwardEvent):
3327           Remove manual event forwarding code.
3328
3329 2011-04-06  Adam Barth  <abarth@webkit.org>
3330
3331         Reviewed by Eric Seidel.
3332
3333         CSP object-src should block plugin loads
3334         https://bugs.webkit.org/show_bug.cgi?id=57283
3335
3336         This change is pretty straight-forward.  It's slighly unclear to me
3337         whether this patch is correct w.r.t. the code in DocumentWriter.  I've
3338         added a FIXME comment, and I'll investigate that case more in the future.
3339
3340         Test: http/tests/security/contentSecurityPolicy/object-src-none.html
3341
3342         * loader/DocumentWriter.cpp:
3343         (WebCore::DocumentWriter::begin):
3344         * loader/SubframeLoader.cpp:
3345         (WebCore::SubframeLoader::requestPlugin):
3346         * page/ContentSecurityPolicy.cpp:
3347         (WebCore::ContentSecurityPolicy::allowObjectFromSource):
3348         (WebCore::ContentSecurityPolicy::addDirective):
3349         * page/ContentSecurityPolicy.h:
3350
3351 2011-04-06  Beth Dakin  <bdakin@apple.com>
3352
3353         Reviewed by Dan Bernstein.
3354
3355         https://bugs.webkit.org/show_bug.cgi?id=58009
3356         Frame::scalePage() results in visual artifacts with scale factors less than 1
3357         -and corresponding-
3358         <rdar://problem/8683230>
3359
3360         Fall into the case where we fill with a background base color when there is a page 
3361         scale factor that is less than 1.
3362         * rendering/RenderView.cpp:
3363         (WebCore::RenderView::paintBoxDecorations):
3364
3365 2011-04-06  Jer Noble  <jer.noble@apple.com>
3366
3367         Reviewed by Darin Adler.
3368
3369         AVF: MediaPlayerPrivateAVFoundationObjC should not use -[AVPlayerItem isPlaybackBufferEmpty]
3370         https://bugs.webkit.org/show_bug.cgi?id=57982
3371
3372         Query our cached loaded time array instead of asking AVPlayerItem if its buffer is empty.
3373
3374         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
3375         (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus):
3376
3377 2011-04-06  Jer Noble  <jer.noble@apple.com>
3378
3379         Reviewed by Eric Carlson.
3380
3381         MediaPlayerPrivateAVFoundation does not change rate due to setRate().
3382         https://bugs.webkit.org/show_bug.cgi?id=57919
3383
3384         Test: media/video-set-rate-from-pause.html
3385
3386         The base class of MediaPlayerPrivateAVFoundation does not actually change the rate
3387         of the media; instead a subclass must do that work.  So when setRate() is called, 
3388         inform a subclass through a new pure virtual updateRate() function that there's 
3389         work to be done.
3390
3391         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
3392         (WebCore::MediaPlayerPrivateAVFoundation::setRate): Call updateRate()
3393         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
3394         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h:
3395         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
3396         (WebCore::MediaPlayerPrivateAVFoundationObjC::updateRate): Added.  Set the requested rate.
3397
3398 2011-04-06  Dai Mikurube  <dmikurube@chromium.org>
3399
3400         Reviewed by David Levin.
3401
3402         Add QUOTA build flag for unified quota API
3403         https://bugs.webkit.org/show_bug.cgi?id=57918
3404
3405         * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag
3406         * GNUmakefile.am: Added QUOTA build flag
3407         * WebCore.pri: Added QUOTA build flag
3408
3409 2011-04-06  Stephanie Lewis  <slewis@apple.com>
3410
3411         Reviewed by Darin Adler.
3412
3413         https://bugs.webkit.org/show_bug.cgi?id=57997
3414         <rdar://problem/9187856> REGRESSION(r75555): ~5-7 MB increase in memory between iBench runs
3415         Navigating away from a Scrolled page which queues a scroll event that is never dispatched.
3416         Cancel all enqueued events when detaching the Document the events cannot keep the Document
3417         alive.
3418
3419         No change in functionality so no new tests.  
3420
3421         * dom/Document.cpp:
3422         (WebCore::Document::detach):
3423         * dom/EventQueue.cpp:
3424         (WebCore::EventQueue::cancelQueuedEvents):
3425         * dom/EventQueue.h:
3426
3427 2011-04-06  Dan Bernstein  <mitz@apple.com>
3428
3429         Reviewed by Darin Adler.
3430
3431         <rdar://problem/9084761> REGRESSION (r73993): Default Arabic line spacing has gotten very loose when the specified font is not Arabic
3432         https://bugs.webkit.org/show_bug.cgi?id=58002
3433
3434         * platform/graphics/mac/SimpleFontDataMac.mm:
3435         (WebCore::SimpleFontData::platformInit): The version of Geeza Pro in Snow Leopard
3436         does not require the vertical metrics tweaks that were needed in Leopard. That the
3437         tweaks were being applied went mostly unnoticed until r73993, because until then it
3438         only affected cases where Geeza Pro was specified, not when it occurred as a fallback
3439         font.
3440
3441 2011-04-06  Roland Steiner  <rolandsteiner@chromium.org>
3442
3443         Reviewed by Dimitri Glazkov.
3444
3445         Bug 57994 - Move guardRef functionality back to Document
3446         https://bugs.webkit.org/show_bug.cgi?id=57994
3447
3448         Move the relevant code parts from TreeScope back into Document.
3449
3450         No new tests. (no new functionality)
3451
3452         * dom/Document.cpp:
3453         (WebCore::Document::removedLastRef):
3454         * dom/Document.h:
3455         * dom/TreeScope.cpp: