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