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