2011-04-07 Geoffrey Garen <ggaren@apple.com>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-04-07  Geoffrey Garen  <ggaren@apple.com>
2
3         Reviewed by Maciej Stachowiak.
4
5         Some Handle<T> cleanup
6         https://bugs.webkit.org/show_bug.cgi?id=58109
7
8         * bindings/js/ScriptValue.h:
9         (WebCore::ScriptValue::ScriptValue): Updated for new null constructor.
10         (WebCore::ScriptValue::hasNoValue): Updated for removal of isEmpty().
11
12 2011-04-07  Dominic Cooney  <dominicc@google.com>
13
14         Reviewed by Dimitri Glazkov.
15
16         Let shadow DOM have a list of nodes at the top level of a shadow.
17         https://bugs.webkit.org/show_bug.cgi?id=57813
18
19         Adds ShadowRoot, a list of nodes, to be a parent for top-level
20         shadow children. Forwards rendering through the root and into the
21         host's renderer.
22
23         Covered by existing tests of elements that use this style of shadow.
24
25         * Android.mk: add ShadowRoot.h/cpp
26         * CMakeLists.txt:
27         * GNUmakefile.am:
28         * WebCore.exp.in:
29         * WebCore.gypi:
30         * WebCore.pro:
31         * WebCore.vcproj/WebCore.vcproj:
32         * WebCore.xcodeproj/project.pbxproj:
33         * css/CSSStyleSelector.cpp:
34         (WebCore::CSSStyleSelector::initForStyleResolve): proxy style to host
35         * dom/ContainerNode.cpp: parent nodes that are shadow roots are alive
36         (WebCore::ContainerNode::insertBefore):
37         (WebCore::ContainerNode::replaceChild):
38         (WebCore::ContainerNode::removeChild):
39         (WebCore::ContainerNode::appendChild):
40         * dom/DocumentFragment.cpp:
41         (WebCore::DocumentFragment::DocumentFragment):
42         * dom/DocumentFragment.h:
43         * dom/Element.cpp:
44         (WebCore::Element::recalcStyle): look through ShadowRoots for host's style
45         (WebCore::Element::shadowRoot): should be const
46         (WebCore::Element::ensureShadowRoot): simpler than setShadowRoot
47         * dom/Element.h:
48         * dom/ElementRareData.h:
49         * dom/Node.cpp:
50         (WebCore::Node::parentNodeForRenderingAndStyle): indirection so
51           ShadowRoot can forward to the host's renderer
52         (WebCore::Node::createRendererAndStyle):
53         (WebCore::Node::createRendererIfNeeded):
54         * dom/Node.h:
55         (WebCore::Node::isShadowBoundary): temporary, to differentiate
56           old- and new-style, until all roots are ShadowRoot instances
57         * dom/ShadowRoot.cpp: Added.
58         (WebCore::ShadowRoot::ShadowRoot):
59         (WebCore::ShadowRoot::recalcStyle): forward recalc to children
60         * dom/ShadowRoot.h: Added.
61         (WebCore::ShadowRoot::isShadowBoundary):
62         (WebCore::ShadowRoot::create):
63         * html/HTMLKeygenElement.cpp: use ensureShadowRoot
64         (WebCore::HTMLKeygenElement::HTMLKeygenElement):
65         (WebCore::HTMLKeygenElement::parseMappedAttribute):
66         (WebCore::HTMLKeygenElement::appendFormData):
67         (WebCore::HTMLKeygenElement::reset):
68         (WebCore::HTMLKeygenElement::shadowSelect):
69         * html/HTMLKeygenElement.h:
70         * html/HTMLMeterElement.cpp: use ensureShadowRoot
71         (WebCore::HTMLMeterElement::createShadowSubtree):
72         * html/HTMLProgressElement.cpp: use ensureShadowRoot
73         (WebCore::HTMLProgressElement::createShadowSubtree):
74         * html/InputType.cpp: use ensureShadowRoot
75         (WebCore::InputType::destroyShadowSubtree):
76         * html/RangeInputType.cpp: use ensureShadowRoot
77         (WebCore::RangeInputType::handleMouseDownEvent):
78         (WebCore::RangeInputType::createShadowSubtree):
79         (WebCore::RangeInputType::valueChanged):
80         (WebCore::RangeInputType::shadowSliderThumb):
81         * html/RangeInputType.h:
82         * html/ValidationMessage.cpp: use ensureShadowRoot
83         (WebCore::ValidationMessage::buildBubbleTree):
84         (WebCore::ValidationMessage::deleteBubbleTree):
85         * html/shadow/SliderThumbElement.cpp:
86         (WebCore::SliderThumbElement::setPositionFromPoint):
87         (WebCore::SliderThumbElement::hostInput):
88         * html/shadow/SliderThumbElement.h:
89         * rendering/MediaControlElements.cpp: use ensureShadowRoot
90         (WebCore::MediaControlInputElement::attach):
91         (WebCore::MediaControlInputElement::updateStyle):
92         * rendering/RenderSlider.cpp: use ensureShadowRoot
93         (WebCore::RenderSlider::thumbRect):
94         (WebCore::RenderSlider::layout):
95         (WebCore::RenderSlider::shadowSliderThumb):
96         (WebCore::RenderSlider::inDragMode):
97         * rendering/RenderSlider.h:
98
99 2011-04-07  Maciej Stachowiak  <mjs@apple.com>
100
101         Reviewed by Simon Fraser.
102
103         REGRESSION (r80871): Crash when visiting http://broadband.biglobe.ne.jp/
104         https://bugs.webkit.org/show_bug.cgi?id=56297
105         <rdar://problem/9131597>
106
107         Test: fast/css-generated-content/table-row-after-no-crash.html
108
109         * rendering/RenderTableRow.cpp:
110         (WebCore::RenderTableRow::styleDidChange): Factor out generation of before/after
111         content, and only do it if the row already has a parent. For construction of
112         anonymous cells to work correctly, the row needs to already have a parent, so
113         in that case wait a bit.
114         (WebCore::RenderTableRow::updateBeforeAndAfterContent): Factored out to here.
115         * rendering/RenderTableRow.h:
116         * rendering/RenderTableSection.cpp:
117         (WebCore::RenderTableSection::addChild): When adding a row, update its
118         before/after content, in case it had any.
119
120 2011-04-07  Beth Dakin  <bdakin@apple.com>
121
122         Reviewed by Simon Fraser.
123
124         Probable fix for <rdar://problem/9251443>  Crashing on exception: -
125         [ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]: unrecognized 
126         selector sent to instance ADDRESS.
127
128        Need to implement new delegate method.
129         * platform/mac/ScrollAnimatorMac.mm:
130         (-[ScrollAnimationHelperDelegate _pixelAlignProposedScrollPosition:]):
131
132 2011-04-07  Ian Henderson  <ianh@apple.com>
133
134         Reviewed by Simon Fraser.
135
136         Optimize filling rounded rects that are actually ellipses
137         https://bugs.webkit.org/show_bug.cgi?id=58098
138
139         In CG, drawing an ellipse directly is faster than constructing and
140         filling a rounded rect path.  Detect when the given rounded rect is
141         actually an ellipse and draw it directly in this case.
142
143         * platform/graphics/cg/GraphicsContextCG.cpp:
144         (WebCore::GraphicsContext::fillRoundedRect):
145
146 2011-04-07  Ned Holbrook  <nholbrook@apple.com>
147
148         Reviewed by Dan Bernstein.
149
150         CTLine objects should outlive their CTRuns
151         https://bugs.webkit.org/show_bug.cgi?id=58063
152
153         * platform/graphics/mac/ComplexTextController.h: Add m_coreTextLines, to be destroyed after m_complexTextRuns.
154         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
155         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moot m_coreTextRun.
156         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText): Append line to m_coreTextLines.
157
158 2011-04-07  Nat Duca  <nduca@chromium.org>
159
160         Reviewed by David Levin.
161
162         [chromium] Compositor thread infrastructure
163         https://bugs.webkit.org/show_bug.cgi?id=56131
164
165         Introduce chrome compositor thread and related
166         infrastructure.
167
168         * WebCore.gypi:
169         * platform/graphics/chromium/cc/CCMainThread.cpp: Added.
170         (WebCore::CCMainThread::performTask):
171         (WebCore::CCMainThread::postTask):
172         * platform/graphics/chromium/cc/CCMainThread.h: Added.
173         (WebCore::CCMainThread::Task::~Task):
174         (WebCore::CCMainThread::Task::instance):
175         (WebCore::CCMainThread::Task::Task):
176         * platform/graphics/chromium/cc/CCMainThreadTask.h: Added.
177         (WebCore::MainThreadTask0::create):
178         (WebCore::MainThreadTask0::MainThreadTask0):
179         (WebCore::MainThreadTask0::performTask):
180         (WebCore::MainThreadTask1::create):
181         (WebCore::MainThreadTask1::MainThreadTask1):
182         (WebCore::MainThreadTask1::performTask):
183         (WebCore::MainThreadTask2::create):
184         (WebCore::MainThreadTask2::MainThreadTask2):
185         (WebCore::MainThreadTask2::performTask):
186         (WebCore::MainThreadTask3::create):
187         (WebCore::MainThreadTask3::MainThreadTask3):
188         (WebCore::MainThreadTask3::performTask):
189         (WebCore::createMainThreadTask):
190         * platform/graphics/chromium/cc/CCThread.cpp: Added.
191         (WebCore::CCThread::create):
192         (WebCore::CCThread::CCThread):
193         (WebCore::CCThread::~CCThread):
194         (WebCore::CCThread::postTask):
195         (WebCore::CCThread::compositorThreadStart):
196         (WebCore::CCThread::runLoop):
197         * platform/graphics/chromium/cc/CCThread.h: Added.
198         (WebCore::CCThread::Task::~Task):
199         (WebCore::CCThread::Task::instance):
200         (WebCore::CCThread::Task::Task):
201         (WebCore::CCThread::threadID):
202         (WebCore::CCCompletionEvent::CCCompletionEvent):
203         (WebCore::CCCompletionEvent::~CCCompletionEvent):
204         (WebCore::CCCompletionEvent::wait):
205         (WebCore::CCCompletionEvent::signal):
206         * platform/graphics/chromium/cc/CCThreadTask.h: Added.
207         (WebCore::CCThreadTask0::create):
208         (WebCore::CCThreadTask0::CCThreadTask0):
209         (WebCore::CCThreadTask0::performTask):
210         (WebCore::CCThreadTask1::create):
211         (WebCore::CCThreadTask1::CCThreadTask1):
212         (WebCore::CCThreadTask1::performTask):
213         (WebCore::CCThreadTask2::create):
214         (WebCore::CCThreadTask2::CCThreadTask2):
215         (WebCore::CCThreadTask2::performTask):
216         (WebCore::CCThreadTask3::create):
217         (WebCore::CCThreadTask3::CCThreadTask3):
218         (WebCore::CCThreadTask3::performTask):
219         (WebCore::createCCThreadTask):
220
221 2011-04-07  Ryosuke Niwa  <rniwa@webkit.org>
222
223         Reviewed by Eric Seidel.
224
225         REGRESSION (r46914, r48764): When typing in Mail, line wrapping frequently occurs in the middle of words
226         https://bugs.webkit.org/show_bug.cgi?id=57872
227
228         r46914 initially introduced a regression by replacing calls to styleAtPosition by editingStyleAtPosition
229         because editingStyleAtPosition did not avoid tab span to obtain the computed style unlike styleAtPosition.
230
231         r46914 also introduced a regression by cloning hierarchy under new block at the insertion position without
232         avoiding the tab span.
233
234         Fixed the both regressions by avoiding tab spans when computing the editing style and when cloning hierarchy.
235         Also reverted r46914 for the general code path because re-creating node hierarchy duplicates nodes when
236         we're moving nodes after the paragraph separator. Instead, we now split the tree up until the start block
237         before moving the nodes.
238
239         Tests: editing/inserting/insert-paragraph-after-tab-span-and-text.html
240                editing/inserting/insert-paragraph-separator-tab-span.html
241
242         * editing/DeleteSelectionCommand.cpp:
243         (WebCore::DeleteSelectionCommand::saveTypingStyleState): Since EditingStyle's constructor avoids a tab span,
244         no longer calls positionBeforeTabSpan on the position passed to EditingStyle's constructor.
245         * editing/EditingStyle.cpp:
246         (WebCore::EditingStyle::init): Always avoid a tab span when computing the editing style.
247         * editing/InsertParagraphSeparatorCommand.cpp:
248         (WebCore::InsertParagraphSeparatorCommand::doApply): Avoid cloning tab spans and inserting a paragraph
249         separator into a paragraph separator.
250         * editing/htmlediting.cpp:
251         (WebCore::positionOutsideTabSpan): Renamed from positionBeforeTabSpan. Also returns the position in the parent
252         node after the tab span if the position was at the end of the tab span.
253         * editing/htmlediting.h:
254
255 2011-04-07  Jia Pu  <jpu@apple.com>
256
257         Reviewed by Darin Adler.
258
259         [Mac] Editor::setComposition() should not trigger correction panel timer.
260         https://bugs.webkit.org/show_bug.cgi?id=58049
261          <rdar://problem/9226305>
262
263         On Mac OS X that supports autocorrection panel, typing unconfirmed composition (i.e. unconfirmed Japanese or Chinese input)
264         should not start autocorrection timer. We added a member variable, m_shouldPreventSpellChecking, to TypingCommand. 
265         When this value is true, markMisspellingsAfterTyping() will not be called in TypingCommand::typingAddedToOpenCommand().
266         m_shouldPreventSpellChecking is set to true in the TypingCommand objects created by Editor::setComposition().
267
268         No new tests. No deterministically reproducible test case. Patch is based on static code analysis. Testing this also requires firing
269         autocorrection panel timer, which can not be easily done in automated fashion.
270
271         * editing/Editor.cpp:
272         (WebCore::Editor::deleteWithDirection):
273         (WebCore::Editor::insertTextWithoutSendingTextEvent):
274         (WebCore::Editor::confirmComposition):
275         (WebCore::Editor::setComposition):
276         * editing/EditorCommand.cpp:
277         (WebCore::executeDelete):
278         * editing/TypingCommand.cpp:
279         (WebCore::TypingCommand::TypingCommand):
280         (WebCore::TypingCommand::deleteSelection):
281         (WebCore::TypingCommand::deleteKeyPressed):
282         (WebCore::TypingCommand::forwardDeleteKeyPressed):
283         (WebCore::TypingCommand::insertText):
284         (WebCore::TypingCommand::insertLineBreak):
285         (WebCore::TypingCommand::insertParagraphSeparator):
286         (WebCore::TypingCommand::typingAddedToOpenCommand):
287         * editing/TypingCommand.h:
288         (WebCore::TypingCommand::create):
289         (WebCore::TypingCommand::setShouldPreventSpellChecking):
290
291 2011-04-07  John Bauman  <jbauman@chromium.org>
292
293         Reviewed by Kenneth Russell.
294
295         clearIfComposited call is really slow
296         https://bugs.webkit.org/show_bug.cgi?id=57999
297
298         Move getContextAttributes call after the if, so it isn't called nearly as often.
299
300         No new tests.
301
302         * html/canvas/WebGLRenderingContext.cpp:
303         (WebCore::WebGLRenderingContext::clearIfComposited):
304
305 2011-04-07  Luke Macpherson   <macpherson@chromium.org>
306
307         Reviewed by Dimitri Glazkov.
308
309         Implement Backgroun and Mask properties in CSSStyleApplyProperty
310         https://bugs.webkit.org/show_bug.cgi?id=57922
311
312         No tests added as no behavioral changes.
313
314         * css/CSSStyleApplyProperty.cpp:
315         Added ApplyPropertyFillLayer test to handle Background and Mask CSS Properties.
316         (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty):
317         Added constructor calls to set up:
318           CSSPropertyBackgroundAttachment
319           CSSPropertyBackgroundClip
320           CSSPropertyWebkitBackgroundClip
321           CSSPropertyWebkitBackgroundComposite
322           CSSPropertyBackgroundOrigin
323           CSSPropertyWebkitBackgroundOrigin
324           CSSPropertyBackgroundSize
325           CSSPropertyWebkitBackgroundSize
326           CSSPropertyWebkitMaskAttachment
327           CSSPropertyWebkitMaskClip
328           CSSPropertyWebkitMaskComposite
329           CSSPropertyWebkitMaskOrigin
330           CSSPropertyWebkitMaskSize
331         * css/CSSStyleApplyProperty.h:
332         (WebCore::CSSStyleApplyProperty::setPropertyValue):
333         Add function to specify an equivalent property value in the lookup table.
334         * css/CSSStyleSelector.cpp:
335         (WebCore::CSSStyleSelector::applyProperty):
336         Remove sections now implemented by CSSStyleApplyProperty.
337         * css/CSSStyleSelector.h:
338         Make CSSStyleApplyProperty a friend class so that the mapFill* functions are accessible.
339
340 2011-04-04  Eric Seidel  <eric@webkit.org>
341
342         Reviewed by Ryosuke Niwa.
343
344         Split run storage out from BidiResolver into a new BidiRunList class
345         https://bugs.webkit.org/show_bug.cgi?id=57764
346
347         Part of what makes BidiResolver and InlineIterator so difficult to understand
348         (and bug 50912 so difficult to fix) is that BidiResolver is both a state machine
349         for the Unicode Bidi Algorithm (UBA) as well as storage for the resulting
350         BidiRuns from the algorithm.  This patch breaks the storage aspect off
351         into its own class BidiRunList.
352
353         This patch is only a start.  It does not actually fix the problematic ownership
354         relationship, but it does make it possible to fix such in a second patch.
355
356         The run pointers and addRun/prependRun, etc. were already a tightly coupled
357         logical subset of the BidiResolver class, so moving them into their own class
358         was both obvious and easy.  The only piece of logic I had to move was that
359         deleteRuns() had a side-effect of setting the m_emptyRun bit on the resolver.
360
361         I believe this deleteRuns side-effect was only ever used for one place
362         (right after findNextLineBreak) and that it's only needed because
363         findNextLineBreak can sometimes create bidi runs.  Run creation appears to be
364         an unintentional side-effect of how InlineIterator calls through to BidiResolver
365         as part of bidiNext and not a desired effect of the code.  I have added the call
366         to markCurrentRunEmpty to both places deleteRuns was called (where the resolver
367         could get re-used) as a safety precaution.  We could replace both with ASSERTs
368         in a later patch.
369
370         I suspect there may be a small performance win from further refactoring so that
371         findNextLineBreak does not need to create BidiRuns.
372
373         As I commented in the code, callers should own their own BidiRunList which they
374         pass to BidiResolver::createBidiRunsForLine.  I attempted to implement that in
375         an earlier version of this patch, but it was too complicated with the current
376         twisted dependencies between InlineIterator/bidiNext and InlineBidiResolver.
377         raise/lowerExplicitEmbeddingLevel are called unconditionally
378         from commitExplicitEmbedding (which is called by bidiNext) and expect to have
379         access to a runs list even in cases where we don't want any runs (findNextLineBreak).
380
381         I also cleaned up some of the callers to pass around BidiRunList objects instead
382         of InlineBidiResolvers now that they're separate objects.
383
384         * GNUmakefile.am:
385         * WebCore.gypi:
386         * WebCore.pro:
387         * WebCore.vcproj/WebCore.vcproj:
388         * WebCore.xcodeproj/project.pbxproj:
389         * platform/graphics/GraphicsContext.cpp:
390         (WebCore::GraphicsContext::drawBidiText):
391         * platform/text/BidiResolver.h:
392         (WebCore::BidiResolver::BidiResolver):
393         (WebCore::BidiResolver::runs):
394         (WebCore::BidiResolver::markCurrentRunEmpty):
395         (WebCore::::appendRun):
396         (WebCore::::lowerExplicitEmbeddingLevel):
397         (WebCore::::raiseExplicitEmbeddingLevel):
398         (WebCore::::reorderRunsFromLevels):
399         (WebCore::::createBidiRunsForLine):
400         * rendering/InlineIterator.h:
401         (WebCore::InlineBidiResolver::appendRun):
402         * rendering/RenderBlock.h:
403         * rendering/RenderBlockLineLayout.cpp:
404         (WebCore::createRun):
405         (WebCore::RenderBlock::appendRunsForObject):
406         (WebCore::reachedEndOfTextRenderer):
407         (WebCore::RenderBlock::handleTrailingSpaces):
408         (WebCore::RenderBlock::layoutInlineChildren):
409
410 2011-04-07  Naoki Takano  <takano.naoki@gmail.com>
411
412         Reviewed by Adam Barth.
413
414         [Chromium] Fix relocation problem of popup window which introduces autofill popup sometimes moves to screen's top left corner.
415         https://bugs.webkit.org/show_bug.cgi?id=57911
416         http://code.google.com/p/chromium/issues/detail?id=78073
417
418         Manual test added: manual-tests/autofill-popup-location.html
419
420         Originally only height is checked so that it introduces the bug.
421         So I changed it to check both width and height as size.
422
423         * manual-tests/autofill-popup-location.html: Added.
424         * platform/chromium/PopupMenuChromium.cpp:
425         (WebCore::PopupContainer::refresh): Check window size between original and new before calling setFrameRect().
426
427 2011-04-07  Adam Barth  <abarth@webkit.org>
428
429         Reviewed by Eric Seidel.
430
431         Implement img-src style-src and font-src
432         https://bugs.webkit.org/show_bug.cgi?id=58018
433
434         These are pretty straight forward given the rest of the infrastructure
435         we've built so far.
436
437         Tests: http/tests/security/contentSecurityPolicy/image-allowed.html
438                http/tests/security/contentSecurityPolicy/image-blocked.html
439                http/tests/security/contentSecurityPolicy/style-allowed.html
440                http/tests/security/contentSecurityPolicy/style-blocked.html
441                http/tests/security/contentSecurityPolicy/xsl-allowed.php
442                http/tests/security/contentSecurityPolicy/xsl-blocked.php
443
444         * loader/cache/CachedResourceLoader.cpp:
445         (WebCore::CachedResourceLoader::canRequest):
446         * page/ContentSecurityPolicy.cpp:
447         (WebCore::ContentSecurityPolicy::allowImageFromSource):
448         (WebCore::ContentSecurityPolicy::allowStyleFromSource):
449         (WebCore::ContentSecurityPolicy::allowFontFromSource):
450         (WebCore::ContentSecurityPolicy::addDirective):
451         * page/ContentSecurityPolicy.h:
452
453 2011-04-07  David Levin  <levin@chromium.org>
454
455         Reviewed by Darin Adler.
456
457         Make IconSnapshot and PageURLRecord member variables private.
458         https://bugs.webkit.org/show_bug.cgi?id=58080
459
460         No change in functionality so no new tests.
461
462         * loader/icon/IconDatabase.cpp:
463         (WebCore::IconDatabase::writeToDatabase): Changed to used the accessor functions.
464         (WebCore::IconDatabase::writeIconSnapshotToSQLDatabase): Ditto.
465         * loader/icon/IconRecord.h:
466         (WebCore::IconSnapshot::IconSnapshot): Changed to use the new member variable names.
467         (WebCore::IconSnapshot::iconURL): Expose the property.
468         (WebCore::IconSnapshot::timestamp): Ditto.
469         (WebCore::IconSnapshot::data): Ditto.
470         * loader/icon/PageURLRecord.h:
471         (WebCore::PageURLSnapshot::PageURLSnapshot): Changed to use the new member variable names.
472         (WebCore::PageURLSnapshot::pageURL): Expose the property.
473         (WebCore::PageURLSnapshot::iconURL): Ditto.
474
475 2011-04-07  Dan Bernstein  <mitz@apple.com>
476
477         Build fix.
478
479         * platform/graphics/cairo/GraphicsContextCairo.cpp:
480         (WebCore::GraphicsContext::roundToDevicePixels):
481
482 2011-04-07  Eric Seidel  <eric@webkit.org>
483
484         Reviewed by Adam Barth.
485
486         Add stub support for generating Gtk build system from gyp
487         https://bugs.webkit.org/show_bug.cgi?id=58086
488
489         This does not produce a buildable WebCore, but it
490         does allow running gyp/configure --port=gtk and having
491         it generate a gtk.Makefile which we can use for testing
492         the rest of the plumbing.
493
494         * gyp/gtk.gyp: Added.
495
496 2011-04-07  David Hyatt  <hyatt@apple.com>
497
498         Reviewed by Dan Bernstein.
499
500         https://bugs.webkit.org/show_bug.cgi?id=57736
501         
502         Crash on openstreetmap.org while using the map. Fix a bad interaction between the positioned movement layout
503         optimization and the simplified layout optimization that could lead to blocks remaining marked as dirty when
504         layout finished. This would eventually lead to an inability to properly determine the correct layout root and
505         would cause a deleted root to be used later on.
506
507         Added fast/block/positioning/complex-positioned-movement.html.
508
509         * page/FrameView.cpp:
510         (WebCore::FrameView::scheduleRelayoutOfSubtree):
511         Add asserts to catch cases in the future where a layout root is set that has a dirty containing block.
512     
513         * rendering/RenderBlock.cpp:
514         (WebCore::RenderBlock::simplifiedLayout):
515         Change simplified layout so that the positioned movement optimization no longer clears the other layout
516         flags. This will ensure that we still lay out our descendants if they need it.
517         
518         (WebCore::RenderBlock::layoutPositionedObjects):
519         Changed to clear our layout flags now if the positioned movement is successful, since tryLayoutDoingPositionedMovementOnly
520         no longer does the clear.
521     
522         * rendering/RenderBox.h:
523         (WebCore::RenderBox::tryLayoutDoingPositionedMovementOnly):
524         tryLayoutDoingPositionedMovementOnly now returns a boolean indicating success or failure.  On success it no longer
525         does setNeedsLayout(false), but instead will let the caller take care of it. This way the caller can still look at
526         the other flags in case other kinds of layout are still needed.
527     
528         * rendering/RenderObject.h:
529         (WebCore::RenderObject::setNeedsPositionedMovementLayout):
530         (WebCore::RenderObject::setNeedsSimplifiedNormalFlowLayout):
531         Changed these methods to only set their respective flags and not to try to be clever about avoiding propagation.
532
533 2011-04-07  Andrew Scherkus  <scherkus@chromium.org>
534
535         Revert ENABLE_TRACK patch due to compile failures.
536
537         * CMakeLists.txt:
538         * Configurations/FeatureDefines.xcconfig:
539         * DerivedSources.make:
540         * GNUmakefile.am:
541         * WebCore.gypi:
542         * WebCore.xcodeproj/project.pbxproj:
543         * features.pri:
544         * html/HTMLAttributeNames.in:
545         * html/HTMLTagNames.in:
546         * html/HTMLTrackElement.cpp: Removed.
547         * html/HTMLTrackElement.h: Removed.
548         * html/HTMLTrackElement.idl: Removed.
549
550 2011-04-07  Dan Bernstein  <mitz@apple.com>
551
552         Reviewed by Simon Fraser.
553
554         <rdar://problem/9018212> Underline thickness is not uniform under non-integral scale factor
555         https://bugs.webkit.org/show_bug.cgi?id=58083
556
557         Test: fast/text/decorations-transformed.html
558
559         * platform/graphics/GraphicsContext.h: Added a RoundingMode enum with two values. RoundAllSides
560         is the existing rounding mode, where each side of the rectangle snaps to the nearest pixel
561         gridline. RoundOriginAndDimensions snaps the origin to the nearest pixel gridpoint and rounds
562         the width and the height. In this new mode, translating a rectangle in user space never changes
563         its dimensions in device pixels.
564         * platform/graphics/cg/GraphicsContextCG.cpp:
565         (WebCore::GraphicsContext::roundToDevicePixels): Implemented RoundOriginAndDimensions.
566         (WebCore::GraphicsContext::drawLineForText): Use RoundOriginAndDimensions, thus ensuring that
567         all underlines have the same thickness in device pixels.
568         * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
569         (WebCore::GraphicsContext::roundToDevicePixels): Added RoundingMode parameter, but did not implement it.
570         * platform/graphics/qt/GraphicsContextQt.cpp:
571         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
572         * platform/graphics/skia/GraphicsContextSkia.cpp:
573         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
574         * platform/graphics/wince/GraphicsContextWinCE.cpp:
575         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
576         * platform/graphics/wx/GraphicsContextWx.cpp:
577         (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
578         * rendering/InlineTextBox.cpp:
579         (WebCore::InlineTextBox::paintDecoration):
580
581 2011-04-06  Vitaly Repeshko  <vitalyr@chromium.org>
582
583         Reviewed by Nate Chapin.
584
585         [V8] Remove custom DOMImplementation getter on Document.
586         https://bugs.webkit.org/show_bug.cgi?id=57991
587
588         The custom getter is no longer required because DOMImplementation
589         objects are now created per document.
590
591         Test: fast/dom/DOMImplementation/implementation-identity.html
592
593         * bindings/scripts/CodeGeneratorV8.pm:
594         * bindings/v8/custom/V8DocumentCustom.cpp:
595         * dom/Document.idl:
596
597 2011-04-07  Sergey Glazunov  <serg.glazunov@gmail.com>
598
599         Reviewed by Dimitri Glazkov.
600
601         setHasID() is only called for styled elements
602         https://bugs.webkit.org/show_bug.cgi?id=57267
603
604         Test: fast/dom/non-styled-element-id-crash.html
605
606         * dom/Element.cpp:
607         (WebCore::Element::attributeChanged):
608         (WebCore::Element::idAttributeChanged):
609         * dom/Element.h:
610         * dom/StyledElement.cpp:
611         (WebCore::StyledElement::parseMappedAttribute):
612
613 2011-04-07  Jer Noble  <jer.noble@apple.com>
614
615         Reviewed by Eric Carlson.
616
617         HTMLVideoElement::webkitEnterFullscreen does not use new Full Screen API when available.
618         https://bugs.webkit.org/show_bug.cgi?id=58070
619
620         Make the HTMLMediaElement full screen functions call into the new Full Screen API when
621         FULLSCREEN_API is enabled.
622
623         * html/HTMLMediaElement.cpp:
624         (WebCore::HTMLMediaElement::enterFullscreen):
625         (WebCore::HTMLMediaElement::exitFullscreen):
626
627 2011-04-07  Adam Barth  <abarth@webkit.org>
628
629         Reviewed by Eric Seidel.
630
631         Implement CSP's options directive
632         https://bugs.webkit.org/show_bug.cgi?id=58014
633
634         This patch contains the full options parser, but we only have enough of
635         CSP implemented to see the effects of disable-xss-protection.  Will
636         need to do some more work before we can see eval-script in action.
637
638         Tests: http/tests/security/contentSecurityPolicy/inline-script-allowed.html
639                http/tests/security/contentSecurityPolicy/inline-script-blocked-goofy.html
640
641         * page/ContentSecurityPolicy.cpp:
642         (WebCore::CSPOptions::CSPOptions):
643         (WebCore::CSPOptions::disableXSSProtection):
644         (WebCore::CSPOptions::evalScript):
645         (WebCore::CSPOptions::parse):
646         (WebCore::ContentSecurityPolicy::allowJavaScriptURLs):
647         (WebCore::ContentSecurityPolicy::allowInlineEventHandlers):
648         (WebCore::ContentSecurityPolicy::allowInlineScript):
649         (WebCore::ContentSecurityPolicy::addDirective):
650         * page/ContentSecurityPolicy.h:
651
652 2011-04-07  Alexey Proskuryakov  <ap@apple.com>
653
654         Reviewed by Anders Carlsson.
655
656         REGRESSION (WebKit2): Reverse conversion doesn't work in Kotoeri
657         https://bugs.webkit.org/show_bug.cgi?id=58066
658         <rdar://problem/8965302>
659
660         * platform/mac/HTMLConverter.h:
661         * platform/mac/HTMLConverter.mm: (+[WebHTMLConverter editingAttributedStringFromRange:]):
662         Changed editingAttributedStringFromRange: to use WebCore::Range instead of DOMRange, since
663         it's now used in WebKit2.
664
665 2011-04-07  Andy Estes  <aestes@apple.com>
666
667         Reviewed by Darin Adler.
668
669         REGRESSION (r64712): Microsoft Outlook 2011: original message contents
670         not included when replying to an email.
671         https://bugs.webkit.org/show_bug.cgi?id=57794
672         
673         * WebCore.exp.in:
674         * loader/FrameLoader.cpp:
675         (WebCore::FrameLoader::finishedParsing): Call Frame::injectUserScripts()
676         before checking if the FrameLoader is parsing the initial empty document.
677         This allows user scripts to be injected at the end of document parsing
678         (if the setting is enabled).
679         * page/Frame.cpp:
680         (WebCore::Frame::injectUserScripts): Do not inject scripts if this
681         feature is disabled on the initial empty document.
682         * page/Settings.cpp:
683         (WebCore::Settings::Settings):
684         * page/Settings.h: Add a setting for injecting user scripts into the
685         initial empty document (defaults to false).
686         (WebCore::Settings::setInjectUserScriptsInInitialEmptyDocument):
687         (WebCore::Settings::injectUserScriptsInInitialEmptyDocument):
688         * platform/mac/RuntimeApplicationChecks.h:
689         * platform/mac/RuntimeApplicationChecks.mm:
690         (WebCore::applicationIsMicrosoftOutlook): Check if the embedding
691         application is Microsoft Outlook.
692
693 2011-04-06  Jer Noble  <jer.noble@apple.com>
694
695         Reviewed by Maciej Stachowiak.
696
697         AVF: MediaPlayerPrivateAVFoundation never reaches playable state.
698         https://bugs.webkit.org/show_bug.cgi?id=57962
699
700         Add support for a new AVPlayerItem API which will notify clients when their
701         seek completes.  This requires a new Notification type to be passed to the main
702         thread in MediaPlayerPrivateAVFoundation.
703
704         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
705         (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Added.
706         (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification): Added two new
707             overloaded functions which take a Notification; and a Notification::Type and boolean.
708         (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Support new SeekCompleted 
709             Notification type.
710         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
711         (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification): Added one new constructor.
712         (WebCore::MediaPlayerPrivateAVFoundation::Notification::finished): Added ivar and accessor.
713         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
714         (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): Call new AVPlayerItem API.
715         (-[WebCoreAVFMovieObserver seekCompleted:]): Added.
716
717 2011-04-07  Nancy Piedra  <nancy.piedra@nokia.com>
718
719         Reviewed by Eric Carlson.
720
721         Parse quotes from content type parameters
722         https://bugs.webkit.org/show_bug.cgi?id=53275
723
724         This functionality is tested in video-can-play-type.html layout test
725         where I've added codecs parameter with good and bad formatting.
726
727         * platform/ContentType.cpp:
728         (WebCore::ContentType::parameter):
729
730 2011-04-07  Pavel Feldman  <pfeldman@google.com>
731
732         Reviewed by Yury Semikhatsky.
733
734         Web Inspector: remove "enabled" from the setBreakpoint protocol.
735         https://bugs.webkit.org/show_bug.cgi?id=58047
736
737         * bindings/js/ScriptDebugServer.cpp:
738         (WebCore::ScriptDebugServer::hasBreakpoint):
739         * bindings/v8/DebuggerScript.js:
740         ():
741         * bindings/v8/ScriptDebugServer.cpp:
742         (WebCore::ScriptDebugServer::setBreakpoint):
743         * inspector/Inspector.json:
744         * inspector/InspectorDebuggerAgent.cpp:
745         (WebCore::buildObjectForBreakpointCookie):
746         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
747         (WebCore::InspectorDebuggerAgent::setBreakpoint):
748         (WebCore::InspectorDebuggerAgent::continueToLocation):
749         (WebCore::InspectorDebuggerAgent::didParseSource):
750         * inspector/InspectorDebuggerAgent.h:
751         * inspector/ScriptBreakpoint.h:
752         (WebCore::ScriptBreakpoint::ScriptBreakpoint):
753         * inspector/front-end/DebuggerModel.js:
754         (WebInspector.DebuggerModel.prototype.setBreakpoint):
755         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
756         * inspector/front-end/DebuggerPresentationModel.js:
757         (WebInspector.DebuggerPresentationModel):
758         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
759         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
760         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint.callback):
761         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
762         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger):
763         (WebInspector.DebuggerPresentationModel.prototype._setBreakpointInDebugger.didRequestSourceMapping):
764         (WebInspector.DebuggerPresentationModel.prototype._removeBreakpointFromDebugger):
765         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled.afterUpdate):
766         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
767         (WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
768         (WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
769         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded.didRequestSourceMapping):
770         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
771         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
772         (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
773         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpointsFromSettings):
774         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
775         (WebInspector.DebuggerPresentationModel.prototype._reset):
776         (WebInspector.PresentationBreakpoint):
777
778 2011-04-07  Dan Bernstein  <mitz@apple.com>
779
780         Reviewed by Adam Roben.
781
782         Removed a redundant line of code.
783
784         * rendering/RenderInline.cpp:
785         (WebCore::RenderInline::updateAlwaysCreateLineBoxes): No need to compare line gap values, as
786         this is covered by the earlier hasIdenticalAscentDescentAndLineGap() check.
787
788 2011-04-07  Liang Qi  <liang.qi@nokia.com>
789
790         Reviewed by Laszlo Gombos.
791
792         [Qt][Symbian] Enable webkit build with GCCE on Symbian.
793         https://bugs.webkit.org/show_bug.cgi?id=57841
794
795         * WebCore.pri: Thanks for Norbert Leser  <norbert.leser@nokia.com> who checked RVCT part.
796         --rw-base value in QMAKE_LFLAGS.ARMCC and -Tdata value in QMAKE_LFLAGS.GCCE are updated
797         to 0x1000000 together. They need to be updated in the future when WebKit grows.
798
799 2011-04-06  Pavel Feldman  <pfeldman@google.com>
800
801         Reviewed by Yury Semikhatsky.
802
803         Web Inspector: get rid of Breakpoint.js.
804         https://bugs.webkit.org/show_bug.cgi?id=57949
805
806         * WebCore.gypi:
807         * WebCore.vcproj/WebCore.vcproj:
808         * inspector/front-end/Breakpoint.js: Removed.
809         * inspector/front-end/BreakpointsSidebarPane.js:
810         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.addBreakpoint):
811         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.updateBreakpoint.didLoadSnippet):
812         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype.updateBreakpoint):
813         (WebInspector.JavaScriptBreakpointsSidebarPane.prototype._compareBreakpoints):
814         * inspector/front-end/DebuggerModel.js:
815         (WebInspector.DebuggerModel):
816         (WebInspector.DebuggerModel.prototype._debuggerWasDisabled):
817         (WebInspector.DebuggerModel.prototype.setBreakpoint.didSetBreakpoint):
818         (WebInspector.DebuggerModel.prototype.setBreakpoint):
819         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
820         (WebInspector.DebuggerModel.prototype.removeBreakpoint):
821         (WebInspector.DebuggerModel.prototype._breakpointResolved):
822         (WebInspector.DebuggerModel.prototype.reset):
823         * inspector/front-end/DebuggerPresentationModel.js:
824         (WebInspector.DebuggerPresentationModel):
825         (WebInspector.DebuggerPresentationModel.prototype._refreshBreakpoints):
826         (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
827         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
828         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint.didSetBreakpoint):
829         (WebInspector.DebuggerPresentationModel.prototype.setBreakpoint):
830         (WebInspector.DebuggerPresentationModel.prototype.setBreakpointEnabled):
831         (WebInspector.DebuggerPresentationModel.prototype.updateBreakpoint):
832         (WebInspector.DebuggerPresentationModel.prototype.removeBreakpoint):
833         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded.didRequestSourceMapping):
834         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
835         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
836         (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
837         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoints):
838         (WebInspector.DebuggerPresentationModel.prototype._restoreBreakpoint):
839         (WebInspector.DebuggerPresentationModel.prototype._saveBreakpoints):
840         (WebInspector.DebuggerPresentationModel.prototype._reset):
841         (WebInspector.PresentationBreakpoint):
842         (WebInspector.PresentationBreakpoint.prototype.get sourceFile):
843         (WebInspector.PresentationBreakpoint.prototype.get url):
844         (WebInspector.PresentationBreakpoint.prototype.get resolved):
845         (WebInspector.PresentationBreakpoint.prototype.loadSnippet):
846         * inspector/front-end/ResourceTreeModel.js:
847         (WebInspector.ResourceTreeModel):
848         (WebInspector.ResourceTreeModel.prototype._onResourceStarted):
849         (WebInspector.ResourceTreeModel.prototype._addResourceToFrame):
850         * inspector/front-end/ScriptsPanel.js:
851         (WebInspector.ScriptsPanel):
852         (WebInspector.ScriptsPanel.prototype._breakpointUpdated):
853         (WebInspector.ScriptsPanel.prototype.reset):
854         * inspector/front-end/WebKit.qrc:
855         * inspector/front-end/inspector.html:
856
857 2011-04-07  Yury Semikhatsky  <yurys@chromium.org>
858
859         Reviewed by Pavel Feldman.
860
861         Web Inspector: console messages names should adhere to the common naming style
862         https://bugs.webkit.org/show_bug.cgi?id=58042
863
864         * inspector/ConsoleMessage.cpp:
865         (WebCore::ConsoleMessage::addToFrontend):
866         (WebCore::ConsoleMessage::updateRepeatCountInConsole):
867         * inspector/Inspector.json:
868         * inspector/InspectorConsoleAgent.cpp:
869         (WebCore::InspectorConsoleAgent::clearConsoleMessages):
870         * inspector/front-end/ConsoleView.js:
871         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messageAdded):
872         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messageRepeatCountUpdated):
873         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.messagesCleared):
874         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
875
876 2011-04-06  Ilya Tikhonovsky  <loislo@chromium.org>
877
878         Reviewed by Yury Semikhatsky.
879
880         Web Inspector: migrate Inspector protocol messages format to JSON-RPC.
881         https://bugs.webkit.org/show_bug.cgi?id=57957
882
883         There is not a significant difference between  inspector messages spec and and JSON-RPC 2.0 messages spec.
884         Also JSON-RPC has a pretty clear specification for error descriptions which we haven't.
885         It was decided that we will use it.
886
887         the list of renames:
888         1) type-> /dev/null
889         2) domain + '.' + event => method // for events
890         3) domain + '.' + command => method // for requests
891         4) requestId => id // for responses
892         5) arguments => params // for requests
893         6) data => params // for events
894         7) body => result // for responses
895
896         protocolErrors and error properties will be converted to JSON-RPC error format.
897         The order of properties in messages also will be adjusted.
898         The only thing that looks unnecessary is jsonrpc property.
899
900         * inspector/CodeGeneratorInspector.pm:
901
902 2011-04-07  Ryosuke Niwa  <rniwa@webkit.org>
903
904         Reviewed by Eric Seidel.
905
906         Add functions to update left and right offsets to LineOffsets
907         https://bugs.webkit.org/show_bug.cgi?id=58028
908
909         Added update() and shrinkWidthForNewFloatIfNeeded(FloatingObject*) to LineOffsets,
910         which are used to update m_left and m_right. Also added m_block and m_isFirstLine
911         member variables to LineOffsets so that users of LineOffsets don't have to pass them around.
912
913         * rendering/RenderBlock.h:
914         * rendering/RenderBlockLineLayout.cpp:
915         (WebCore::RenderBlock::skipLeadingWhitespace): No longer passes firstLine to positionNewFloatOnLine.
916         (WebCore::LineOffsets::LineOffsets): Takes RenderBlock* and isFirstLine instead of left and right offsets.
917         (WebCore::LineOffsets::update): Extracted from findNextLineBreak and positionNewFloatOnLine.
918         (WebCore::LineOffsets::shrinkWidthForNewFloatIfNeeded): Extracted from positionNewFloatOnLine.
919         (WebCore::RenderBlock::findNextLineBreak): Calls skipLeadingWhitespace and positionNewFloatOnLine.
920         (WebCore::RenderBlock::positionNewFloatOnLine): Calls shrinkWidthForNewFloatIfNeeded and update and
921         no longer passes firstLine around.
922
923 2011-04-06  Pavel Feldman  <pfeldman@google.com>
924
925         Reviewed by Yury Semikhatsky.
926
927         Web Inspector: migrate debugger domain to the unified breakpoint location notion.
928         https://bugs.webkit.org/show_bug.cgi?id=57928
929
930         * inspector/Inspector.json:
931         * inspector/InspectorDebuggerAgent.cpp:
932         (WebCore::buildObjectForBreakpointCookie):
933         (WebCore::InspectorDebuggerAgent::setBreakpointByUrl):
934         (WebCore::InspectorDebuggerAgent::setBreakpoint):
935         (WebCore::InspectorDebuggerAgent::resolveBreakpoint):
936         (WebCore::InspectorDebuggerAgent::didParseSource):
937         * inspector/InspectorDebuggerAgent.h:
938         * inspector/front-end/Breakpoint.js:
939         (WebInspector.Breakpoint):
940         * inspector/front-end/DebuggerModel.js:
941         (WebInspector.DebuggerModel.prototype.setBreakpointBySourceId):
942         (WebInspector.DebuggerModel.prototype._breakpointResolved):
943
944 2011-04-07  Andreas Kling  <andreas.kling@nokia.com>
945
946         Reviewed by Benjamin Poulain.
947
948         [Qt] Mask the QStyle::State_Horizontal hint for vertical scrollbars.
949
950         When initializing a QStyleOptionSlider from a widget, the State_Horizontal
951         hint may get set depending on how that widget is laid out in its parent.
952         If this happens when drawing a vertical scrollbar, the hint is never
953         cleared and we end up painting a vertical scrollbar with horizontal arrows.
954
955         Covered by pixel tests which should no longer paint silly scrollbars.
956
957         * platform/qt/ScrollbarThemeQt.cpp:
958         (WebCore::styleOptionSlider):
959
960 2011-04-07  Adam Barth  <abarth@webkit.org>
961
962         Reviewed by Eric Seidel.
963
964         script-src should block inline script
965         https://bugs.webkit.org/show_bug.cgi?id=58012
966
967         Block inline scripts at the ScriptElement layer.  This should catch
968         exactly the scripts we want to catch.
969
970         Test: http/tests/security/contentSecurityPolicy/inline-script-blocked.html
971
972         * dom/Document.cpp:
973         (WebCore::Document::processHttpEquiv):
974             - This patch also adds the ability to supply a CSP policy via a
975               <meta> tag.  We'll update the name of the header once we've
976               finished implementing the spec.
977         * dom/ScriptElement.cpp:
978         (WebCore::ScriptElement::executeScript):
979         * page/ContentSecurityPolicy.cpp:
980         (WebCore::ContentSecurityPolicy::allowInlineScript):
981         * page/ContentSecurityPolicy.h:
982
983 2011-04-07  Alice Boxhall  <aboxhall@chromium.org>
984
985         Reviewed by Ryosuke Niwa.
986
987         Move the MouseEventWithHitTestResults::targetNode() method on to EventHandler.
988         https://bugs.webkit.org/show_bug.cgi?id=57921
989
990         Moves the MouseEventWithHitTestResults::targetNode() method on to EventHandler, so
991         that the same logic can be used for a HitTestResult.
992
993         No visible changes, just cleanup, so no tests.
994
995         * page/EventHandler.cpp:
996         (WebCore::EventHandler::selectClosestWordFromMouseEvent):
997         (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
998         (WebCore::EventHandler::handleMousePressEventTripleClick):
999         (WebCore::EventHandler::handleMousePressEventSingleClick):
1000         (WebCore::EventHandler::handleMousePressEvent):
1001         (WebCore::EventHandler::handleMouseDraggedEvent):
1002         (WebCore::EventHandler::handleMouseReleaseEvent):
1003         (WebCore::EventHandler::subframeForHitTestResult):
1004         Made public static member, so that it can access targetNode(), and be accessed by
1005         webkitwebview in gtk.
1006         (WebCore::EventHandler::selectCursor):
1007         (WebCore::EventHandler::targetNode):
1008         (WebCore::EventHandler::handleMouseDoubleClickEvent):
1009         (WebCore::EventHandler::handleMouseMoveEvent):
1010         (WebCore::EventHandler::updateDragAndDrop):
1011         (WebCore::EventHandler::sendContextMenuEvent):
1012         * page/EventHandler.h:
1013         * page/MouseEventWithHitTestResults.cpp:
1014         (WebCore::MouseEventWithHitTestResults::MouseEventWithHitTestResults):
1015         * page/MouseEventWithHitTestResults.h:
1016         * page/android/EventHandlerAndroid.cpp:
1017         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1018         * page/brew/EventHandlerBrew.cpp:
1019         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1020         * page/chromium/EventHandlerChromium.cpp:
1021         (WebCore::EventHandler::passMousePressEventToSubframe):
1022         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1023         * page/efl/EventHandlerEfl.cpp:
1024         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1025         * page/gtk/EventHandlerGtk.cpp:
1026         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1027         * page/haiku/EventHandlerHaiku.cpp:
1028         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1029         * page/mac/EventHandlerMac.mm:
1030         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1031         (WebCore::EventHandler::passSubframeEventToSubframe):
1032         * page/wx/EventHandlerWx.cpp:
1033         (WebCore::EventHandler::passWidgetMouseDownEventToWidget):
1034
1035 2011-04-07  Pavel Podivilov  <podivilov@chromium.org>
1036
1037         Reviewed by Pavel Feldman.
1038
1039         Web Inspector: build mapping for formatted scripts based on keywords positions.
1040         https://bugs.webkit.org/show_bug.cgi?id=57936
1041
1042         Mapping based on [\$\.\w]+ was not accurate because string literals representation
1043         may be different in original and formatted scripts.
1044
1045         * inspector/front-end/ScriptFormatterWorker.js:
1046         (buildMapping.regexp.b):
1047         (buildMapping):
1048
1049 2011-04-07  Kent Tamura  <tkent@chromium.org>
1050
1051         Reviewed by Dimitri Glazkov.
1052
1053         Spinbuttons become unclickable if right padding is large.
1054         https://bugs.webkit.org/show_bug.cgi?id=56298
1055
1056         An inner-spin-button is put on the right border and ignores right
1057         padding in RenderTextControlSingleLine::layout(), but forwardEvent()
1058         checks if a point is in an area just right of an internal text block.
1059         This inconsistency caused a bug that an inner-spin-button with large
1060         padding didn't receive mouse events.
1061
1062         To fix this bug, we render spin buttons as layers, and remove manual
1063         event forwarding code.
1064
1065         Test: fast/forms/input-number-large-padding.html
1066
1067         * css/html.css: Add "position:relative" to make a spin-button a layer.
1068         (input::-webkit-inner-spin-button):
1069         (input::-webkit-outer-spin-button):
1070         * rendering/RenderTextControlSingleLine.cpp:
1071         (WebCore::RenderTextControlSingleLine::forwardEvent):
1072           Remove manual event forwarding code.
1073
1074 2011-04-06  Adam Barth  <abarth@webkit.org>
1075
1076         Reviewed by Eric Seidel.
1077
1078         CSP object-src should block plugin loads
1079         https://bugs.webkit.org/show_bug.cgi?id=57283
1080
1081         This change is pretty straight-forward.  It's slighly unclear to me
1082         whether this patch is correct w.r.t. the code in DocumentWriter.  I've
1083         added a FIXME comment, and I'll investigate that case more in the future.
1084
1085         Test: http/tests/security/contentSecurityPolicy/object-src-none.html
1086
1087         * loader/DocumentWriter.cpp:
1088         (WebCore::DocumentWriter::begin):
1089         * loader/SubframeLoader.cpp:
1090         (WebCore::SubframeLoader::requestPlugin):
1091         * page/ContentSecurityPolicy.cpp:
1092         (WebCore::ContentSecurityPolicy::allowObjectFromSource):
1093         (WebCore::ContentSecurityPolicy::addDirective):
1094         * page/ContentSecurityPolicy.h:
1095
1096 2011-04-06  Beth Dakin  <bdakin@apple.com>
1097
1098         Reviewed by Dan Bernstein.
1099
1100         https://bugs.webkit.org/show_bug.cgi?id=58009
1101         Frame::scalePage() results in visual artifacts with scale factors less than 1
1102         -and corresponding-
1103         <rdar://problem/8683230>
1104
1105         Fall into the case where we fill with a background base color when there is a page 
1106         scale factor that is less than 1.
1107         * rendering/RenderView.cpp:
1108         (WebCore::RenderView::paintBoxDecorations):
1109
1110 2011-04-06  Jer Noble  <jer.noble@apple.com>
1111
1112         Reviewed by Darin Adler.
1113
1114         AVF: MediaPlayerPrivateAVFoundationObjC should not use -[AVPlayerItem isPlaybackBufferEmpty]
1115         https://bugs.webkit.org/show_bug.cgi?id=57982
1116
1117         Query our cached loaded time array instead of asking AVPlayerItem if its buffer is empty.
1118
1119         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
1120         (WebCore::MediaPlayerPrivateAVFoundationObjC::playerItemStatus):
1121
1122 2011-04-06  Jer Noble  <jer.noble@apple.com>
1123
1124         Reviewed by Eric Carlson.
1125
1126         MediaPlayerPrivateAVFoundation does not change rate due to setRate().
1127         https://bugs.webkit.org/show_bug.cgi?id=57919
1128
1129         Test: media/video-set-rate-from-pause.html
1130
1131         The base class of MediaPlayerPrivateAVFoundation does not actually change the rate
1132         of the media; instead a subclass must do that work.  So when setRate() is called, 
1133         inform a subclass through a new pure virtual updateRate() function that there's 
1134         work to be done.
1135
1136         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
1137         (WebCore::MediaPlayerPrivateAVFoundation::setRate): Call updateRate()
1138         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
1139         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.h:
1140         * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundationObjC.mm:
1141         (WebCore::MediaPlayerPrivateAVFoundationObjC::updateRate): Added.  Set the requested rate.
1142
1143 2011-04-06  Dai Mikurube  <dmikurube@chromium.org>
1144
1145         Reviewed by David Levin.
1146
1147         Add QUOTA build flag for unified quota API
1148         https://bugs.webkit.org/show_bug.cgi?id=57918
1149
1150         * Configurations/FeatureDefines.xcconfig: Added QUOTA build flag
1151         * GNUmakefile.am: Added QUOTA build flag
1152         * WebCore.pri: Added QUOTA build flag
1153
1154 2011-04-06  Stephanie Lewis  <slewis@apple.com>
1155
1156         Reviewed by Darin Adler.
1157
1158         https://bugs.webkit.org/show_bug.cgi?id=57997
1159         <rdar://problem/9187856> REGRESSION(r75555): ~5-7 MB increase in memory between iBench runs
1160         Navigating away from a Scrolled page which queues a scroll event that is never dispatched.
1161         Cancel all enqueued events when detaching the Document the events cannot keep the Document
1162         alive.
1163
1164         No change in functionality so no new tests.  
1165
1166         * dom/Document.cpp:
1167         (WebCore::Document::detach):
1168         * dom/EventQueue.cpp:
1169         (WebCore::EventQueue::cancelQueuedEvents):
1170         * dom/EventQueue.h:
1171
1172 2011-04-06  Dan Bernstein  <mitz@apple.com>
1173
1174         Reviewed by Darin Adler.
1175
1176         <rdar://problem/9084761> REGRESSION (r73993): Default Arabic line spacing has gotten very loose when the specified font is not Arabic
1177         https://bugs.webkit.org/show_bug.cgi?id=58002
1178
1179         * platform/graphics/mac/SimpleFontDataMac.mm:
1180         (WebCore::SimpleFontData::platformInit): The version of Geeza Pro in Snow Leopard
1181         does not require the vertical metrics tweaks that were needed in Leopard. That the
1182         tweaks were being applied went mostly unnoticed until r73993, because until then it
1183         only affected cases where Geeza Pro was specified, not when it occurred as a fallback
1184         font.
1185
1186 2011-04-06  Roland Steiner  <rolandsteiner@chromium.org>
1187
1188         Reviewed by Dimitri Glazkov.
1189
1190         Bug 57994 - Move guardRef functionality back to Document
1191         https://bugs.webkit.org/show_bug.cgi?id=57994
1192
1193         Move the relevant code parts from TreeScope back into Document.
1194
1195         No new tests. (no new functionality)
1196
1197         * dom/Document.cpp:
1198         (WebCore::Document::removedLastRef):
1199         * dom/Document.h:
1200         * dom/TreeScope.cpp:
1201         (WebCore::TreeScope::destroyTreeScopeData):
1202         * dom/TreeScope.h:
1203
1204 2011-04-06  Ian Henderson  <ianh@apple.com>
1205
1206         Reviewed by Simon Fraser, Antti Koivisto.
1207
1208         Fast path for parsing simple CSS values
1209         https://bugs.webkit.org/show_bug.cgi?id=57964
1210
1211         Add functions to parse simple color or dimension values, skipping the
1212         overhead of full CSS parsing.
1213
1214         Change parseValue to a static method to avoid unnecessary allocation
1215         of a CSSParser in the fast case.
1216
1217         * css/CSSMutableStyleDeclaration.cpp:
1218         (WebCore::CSSMutableStyleDeclaration::setProperty):
1219         Changed to use the new, static parseValue method.
1220         * css/CSSParser.cpp:
1221         (WebCore::isColorPropertyID):
1222         (WebCore::parseColorValue):
1223         Parses any color accepted by the existing parseColor() static method.
1224         We must handle color identifiers separately, since parseColor() will
1225         change 'red' into 'rgb(255, 0, 0)'.
1226         (WebCore::isSimpleLengthPropertyID):
1227         (WebCore::parseSimpleLengthValue):
1228         Parses a value of the form 'NNpx', 'NN%', or 'NN' (when strict is
1229         false, or 'NN' is '0').  Returns false to fall back to the slow path.
1230         (WebCore::CSSParser::parseValue):
1231         * css/CSSParser.h:
1232         * css/WebKitCSSMatrix.cpp:
1233         (WebCore::WebKitCSSMatrix::setMatrixValue):
1234         Changed to use the new, static parseValue method.
1235
1236 2011-04-06  Kevin Ollivier  <kevino@theolliviers.com>
1237
1238         Reviewed by Darin Adler.
1239
1240         Make sure JS_EXPORT_PRIVATE is an empty define when we aren't using the export macros.
1241
1242         https://bugs.webkit.org/show_bug.cgi?id=27551
1243
1244         * config.h:
1245
1246 2011-04-06  Simon Fraser  <simon.fraser@apple.com>
1247
1248         Reviewed by Antti Koivisto.
1249
1250         Some minor style resolution optimizations
1251         https://bugs.webkit.org/show_bug.cgi?id=57996
1252
1253         A couple of minor optimizations to style-related code.
1254
1255         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
1256         (WebCore::isCSSPropertyName):
1257         (WebCore::JSCSSStyleDeclaration::putDelegate):
1258         Avoid calling cssPropertyName() twice when setting style on an element.
1259         
1260         * css/CSSStyleSelector.cpp:
1261         (WebCore::useSVGZoomRules):
1262         (WebCore::CSSStyleSelector::applyProperty):
1263         Avoid calling isSVGElement() for every property, since only a two properties
1264         care about it.
1265
1266 2011-04-06  Ian Henderson  <ianh@apple.com>
1267
1268         Reviewed by Antti Koivisto.
1269
1270         Unnecessary string allocation in CSSStyleDeclaration::setProperty
1271         https://bugs.webkit.org/show_bug.cgi?id=57995
1272
1273         Pass the bool representing the property's importance directly instead
1274         of constructing a string.
1275
1276         * css/CSSStyleDeclaration.cpp:
1277         (WebCore::CSSStyleDeclaration::setProperty):
1278
1279 2011-04-06  Leandro Gracia Gil  <leandrogracia@chromium.org>
1280
1281         Reviewed by Steve Block.
1282
1283         Make the style of createFunctionOnlyCallback in V8 consistent with the JavaScriptCore version.
1284         https://bugs.webkit.org/show_bug.cgi?id=57963
1285
1286         No new tests. LayoutTests/fast/dom/Geolocation/argument-types.html
1287
1288         * bindings/v8/V8Utilities.h:
1289         (WebCore::createFunctionOnlyCallback):
1290         * bindings/v8/custom/V8GeolocationCustom.cpp:
1291         (WebCore::V8Geolocation::getCurrentPositionCallback):
1292         (WebCore::V8Geolocation::watchPositionCallback):
1293
1294 2011-04-06  Brian Weinstein  <bweinstein@apple.com>
1295
1296         Reviewed by Adam Roben.
1297
1298         WebKit2: Support Windows 7 Gestures
1299         https://bugs.webkit.org/show_bug.cgi?id=49824
1300         <rdar://problem/8689728>
1301         
1302         Move WindowTouch.h from WebKit/win, so it can be used in both WebKit and WebKit2.
1303
1304         * WebCore.vcproj/WebCore.vcproj:
1305         * platform/win/WindowsTouch.h: Copied from WebKit/win/WindowsTouch.h.
1306
1307 2011-04-06  Alexis Menard  <alexis.menard@openbossa.org>
1308
1309         Reviewed by Andreas Kling.
1310
1311         [Qt] We should use USE(QT_MULTIMEDIA) rather than ENABLE(QT_MULTIMEDIA).
1312         https://bugs.webkit.org/show_bug.cgi?id=57974
1313
1314         We should use USE(QT_MULTIMEDIA) rather than ENABLE(QT_MULTIMEDIA).
1315
1316         No new tests needed, just a config flag rename.
1317
1318         * features.pri:
1319
1320 2011-04-06  Tyler Close  <tjclose@chromium.org>
1321
1322         Reviewed by Nate Chapin.
1323
1324         run-bindings-tests reference files out of sync with CodeGenerator*.pm
1325         https://bugs.webkit.org/show_bug.cgi?id=57967
1326
1327         * bindings/scripts/test/V8/V8TestCallback.cpp:
1328
1329 2011-04-06  Asanka Herath  <asanka@chromium.org>
1330
1331         Reviewed by Darin Fisher.
1332
1333         Add new TargetType: TargetIsFavicon
1334
1335         https://bugs.webkit.org/show_bug.cgi?id=57659
1336
1337         No new functionality added, so no additional tests.
1338
1339         * platform/network/ResourceRequestBase.h:
1340
1341 2011-04-06  David Hyatt  <hyatt@apple.com>
1342
1343         Reviewed by Simon Fraser.
1344
1345         https://bugs.webkit.org/show_bug.cgi?id=57981
1346         
1347         Update the column count and width computation algorithm for CSS3 multi-column layout 
1348         to match the revised pseudo-algorithm in the latest draft of the spec.
1349
1350         * rendering/RenderBlock.cpp:
1351         (WebCore::RenderBlock::calcColumnWidth):
1352
1353 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
1354
1355         Reviewed by Eric Seidel.
1356
1357         borderPaddingMarginStart and borderPaddingMarginEnd should take RenderInline
1358         https://bugs.webkit.org/show_bug.cgi?id=57965
1359
1360         Changed the argument types of borderPaddingMarginStart and borderPaddingMarginEnd
1361         from RenderBoxModelObject to RenderInline since they call marginStart and marginEnd
1362         instead of marginStartForChild and marginEndForChild respectively.
1363
1364         Calling these two functions on RenderInline is okay because writing-mode cannot differ
1365         from that of the containing block.
1366
1367         * rendering/RenderBlockLineLayout.cpp:
1368         (WebCore::borderPaddingMarginStart):
1369         (WebCore::borderPaddingMarginEnd):
1370         (WebCore::inlineLogicalWidth):
1371
1372 2011-04-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1373
1374         Unreviewed, rolling out r83039.
1375         http://trac.webkit.org/changeset/83039
1376         https://bugs.webkit.org/show_bug.cgi?id=57978
1377
1378         introduced a new regression in conjunction to
1379         ReplaceSelectionCommand (Requested by rniwa on #webkit).
1380
1381         * editing/EditingStyle.cpp:
1382         (WebCore::EditingStyle::init):
1383         * editing/InsertParagraphSeparatorCommand.cpp:
1384         (WebCore::InsertParagraphSeparatorCommand::doApply):
1385
1386 2011-04-06  Naoki Takano  <takano.naoki@gmail.com>
1387
1388         Reviewed by David Levin.
1389
1390         Webkit ignores PgUp/PgDown/Home/End in SELECT tag objects
1391         https://bugs.webkit.org/show_bug.cgi?id=27658
1392
1393         Test: fast/events/select-element.html
1394
1395         * dom/SelectElement.cpp:
1396         (WebCore::nextValidIndex): Moved from elsewhere in the file to be used by other routines.
1397         (WebCore::nextSelectableListIndexPageAway): Returns a selectable index one page away from the given index.
1398         (WebCore::nextSelectableListIndex): Implemented with nextValidIndex.
1399         And converted to a normal static function from a private function of SelectElement.
1400         (WebCore::previousSelectableListIndex): Implemented with nextValidIndex.
1401         And converted to a normal static function from a private function of SelectElement.
1402         (WebCore::firstSelectableListIndex): Returns the first selectable index.
1403         (WebCore::lastSelectableListIndex): Returns the last selectable index.
1404         (WebCore::SelectElement::menuListDefaultEventHandler): Converted from C cast to C++ cast.
1405         (WebCore::SelectElement::listBoxDefaultEventHandler): Adds support for PageUp/PageDown/Home/End with both single and multiple selection.
1406
1407         * dom/SelectElement.h:
1408         (WebCore::SelectElement::): Remove nextSelectableListIndex() and previousSelectableListIndex().
1409
1410         * rendering/RenderListBox.h: Makes RenderListBox::size public so that PageUp/PageDown behavior can use the actual list size rather than that specified in HTML.
1411         They can differ due to the minimum size imposed by RenderListBox.
1412
1413 2011-04-06  David Hyatt  <hyatt@apple.com>
1414
1415         Reviewed by Dan Bernstein.
1416
1417         https://bugs.webkit.org/show_bug.cgi?id=57975
1418
1419         The "More..." link for line clamping no longer shows up in Safari RSS. Fix the isLink() check
1420         to just look at the style, so that it can find the InlineTextBox and not care that it's a child
1421         of the link element and not the line box for the link element itself (since that line box got
1422         culled).
1423
1424         * rendering/RenderFlexibleBox.cpp:
1425         (WebCore::RenderFlexibleBox::applyLineClamp):
1426
1427 2011-04-06  Brady Eidson  <beidson@apple.com>
1428
1429         Reviewed by Anders Carlsson.
1430
1431         https://bugs.webkit.org/show_bug.cgi?id=57973 and https://bugs.webkit.org/show_bug.cgi?id=57973
1432         WK2 icon database should be able to get a CGImage of a specific size
1433
1434         * platform/graphics/BitmapImage.h:
1435         * platform/graphics/Image.h:
1436         (WebCore::Image::getFirstCGImageRefOfSize):
1437         
1438         * platform/graphics/cg/ImageCG.cpp:
1439         (WebCore::BitmapImage::getFirstCGImageRefOfSize): Walk the frames of the image until reaching the
1440           first frame of the requested size.
1441
1442 2011-04-06  Malcolm MacLeod  <malcolm.macleod@tshwanedje.com>
1443
1444         Reviewed by Kevin Ollivier.
1445
1446         [wx] Fix cursor handling so that we always call the chrome to set it.
1447         
1448         https://bugs.webkit.org/show_bug.cgi?id=57972
1449
1450         * platform/wx/WidgetWx.cpp:
1451         (WebCore::Widget::setCursor):
1452
1453 2011-04-06  David Hyatt  <hyatt@apple.com>
1454
1455         Reviewed by Dan Bernstein.
1456
1457         https://bugs.webkit.org/show_bug.cgi?id=41445
1458         
1459         Visited links painting with black background. Make sure that if the visited style has
1460         the initial background color (transparent) set that we just use the unvisited color.
1461
1462         Added fast/history/visited-link-background-color.html
1463
1464         * rendering/style/RenderStyle.cpp:
1465         (WebCore::RenderStyle::visitedDependentColor):
1466
1467 2011-04-06  Csaba Osztrogonác  <ossy@webkit.org>
1468
1469         Unreviewed Qt buildfix after r83079.
1470
1471         * WebCore.pro:
1472
1473 2011-04-06  Dean Jackson  <dino@apple.com>
1474
1475         Reviewed by Chris Marrin.
1476
1477         https://bugs.webkit.org/show_bug.cgi?id=56936
1478         Crash in ImplicitAnimation::~ImplicitAnimation
1479
1480         Make sure the style and start time waiting lists
1481         are cleared in the CompositeAnimation destructor. This
1482         way, no running transitions can be left in a state
1483         where they are destroyed as the AnimationControllerPrivate
1484         cleans up.
1485
1486         * page/animation/CompositeAnimation.cpp:
1487         (WebCore::CompositeAnimation::~CompositeAnimation):
1488
1489 2011-04-06  Robert Sesek  <rsesek@chromium.org>
1490
1491         Reviewed by Alexey Proskuryakov.
1492
1493         Move code duplicated between the WebKit/mac and WebKit2 down to WebCore because Chromium will need it too
1494         https://bugs.webkit.org/show_bug.cgi?id=54969
1495
1496         No change in behavior; no new tests.
1497
1498         * editing/TextIterator.cpp:
1499         (WebCore::TextIterator::locationAndLengthFromRange): New method from duplicated code in WebKits
1500         * editing/TextIterator.h:
1501         * page/Frame.cpp:
1502         (WebCore::Frame::rangeForPoint): New method from duplicated code in WebKits
1503
1504 2011-04-06  Leandro Gracia Gil  <leandrogracia@chromium.org>
1505
1506         Reviewed by Steve Block.
1507
1508         Factoring the creation of 'FunctionOnly' callbacks in JavaScriptCore.
1509         https://bugs.webkit.org/show_bug.cgi?id=57770
1510
1511         Create a template from an existing functionality in JSGeolocationCustom.cpp
1512         to be used by the custom bindings of both Geolocation and the Media Stream API.
1513         V8 version of this bug: https://bugs.webkit.org/show_bug.cgi?id=57760
1514
1515         No new tests. LayoutTests/fast/dom/Geolocation/argument-types.html
1516
1517         * Android.jscbindings.mk:
1518         * CMakeLists.txt:
1519         * GNUmakefile.am:
1520         * WebCore.gypi:
1521         * WebCore.pro:
1522         * WebCore.vcproj/WebCore.vcproj:
1523         * WebCore.xcodeproj/project.pbxproj:
1524         * bindings/js/CallbackFunction.cpp: Added.
1525         (WebCore::checkFunctionOnlyCallback):
1526         * bindings/js/CallbackFunction.h: Added.
1527         (WebCore::createFunctionOnlyCallback):
1528         * bindings/js/JSBindingsAllInOne.cpp:
1529         * bindings/js/JSGeolocationCustom.cpp:
1530         (WebCore::JSGeolocation::getCurrentPosition):
1531         (WebCore::JSGeolocation::watchPosition):
1532
1533 2011-04-06  Alexis Menard  <alexis.menard@openbossa.org>
1534
1535         Reviewed by Andreas Kling.
1536
1537         [Qt] Implement fullscreen playback for the GStreamer backend.
1538         https://bugs.webkit.org/show_bug.cgi?id=56826
1539
1540         Implement support for fullscreen playback when building the
1541         Qt port with the GStreamer backend (DEFINES+=USE_GSTREAMER=1).
1542         The implementation is done in FullScreenVideoQt alongside with
1543         the Qt Multimedia support.
1544
1545         No new tests because layout tests cover it. They are not yet activated
1546         but will be any time soon.
1547
1548         * platform/graphics/gstreamer/PlatformVideoWindowPrivate.h:
1549         * platform/graphics/gstreamer/PlatformVideoWindowQt.cpp:
1550         (FullScreenVideoWindow::FullScreenVideoWindow):
1551         (FullScreenVideoWindow::setVideoElement):
1552         (FullScreenVideoWindow::closeEvent):
1553         (FullScreenVideoWindow::keyPressEvent):
1554         (FullScreenVideoWindow::event):
1555         (FullScreenVideoWindow::showFullScreen):
1556         (FullScreenVideoWindow::hideCursor):
1557         (FullScreenVideoWindow::showCursor):
1558
1559 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
1560
1561         Reviewed by Dimitri Glazkov.
1562
1563         Bundle lineLeftOffset and lineRightOffset as a class
1564         https://bugs.webkit.org/show_bug.cgi?id=57851
1565
1566         Added a new class LineOffsets that encapsulates lineLeftOffset and lineRightOffset.
1567         The patch makes clear that lineLeftOffset and lineRightOffset are never read individually
1568         and only the difference is used to compute the width.
1569
1570         * rendering/RenderBlock.h:
1571         * rendering/RenderBlockLineLayout.cpp:
1572         (WebCore::RenderBlock::skipLeadingWhitespace): Takes LineOffsets instead of two integers.
1573         (WebCore::LineOffsets::LineOffsets): Added.
1574         (WebCore::LineOffsets::width): Added.
1575         (WebCore::LineOffsets::setLeft): Added.
1576         (WebCore::LineOffsets::setRight): Added.
1577         (WebCore::RenderBlock::findNextLineBreak): Calls skipLeadingWhitespace and positionNewFloatOnLine.
1578         (WebCore::RenderBlock::positionNewFloatOnLine): Takes LineOffsets instead of two integers.
1579
1580 2011-04-06  David Hyatt  <hyatt@apple.com>
1581
1582         Reviewed by Dan Bernstein.
1583
1584         https://bugs.webkit.org/show_bug.cgi?id=57916
1585         
1586         Implement an optimization to the line box tree to cull out most of the intermediate
1587         line boxes that can occur between the root line box and the leaves of the tree (images
1588         and text).
1589
1590         RenderInlines now have a boolean member, m_alwaysCreateLineBoxes,
1591         that starts off as false. Only if it gets flipped to true will there be any line boxes
1592         created for that RenderInline.
1593         
1594         * page/FocusController.cpp:
1595         (WebCore::FocusController::advanceFocusDirectionally):
1596         Adjust the ordering of updateLayout calls to make sure rects aren't queried unless layout
1597         is up to date.
1598
1599         * page/SpatialNavigation.cpp:
1600         (WebCore::hasOffscreenRect):
1601         (WebCore::nodeRectInAbsoluteCoordinates):
1602         Add asserts in spatial navigation code to catch any future bad queries that might be made
1603         for rectangles without layout being up to date.
1604
1605         * platform/graphics/FloatRect.cpp:
1606         (WebCore::FloatRect::uniteIfNonZero):
1607         * platform/graphics/FloatRect.h:
1608         * platform/graphics/IntRect.cpp:
1609         (WebCore::IntRect::uniteIfNonZero):
1610         * platform/graphics/IntRect.h:
1611         Add a new unite function that is useful for the render tree to FloatRect and IntRect.  This
1612         version allows rect unites to happen if either width or height is nonzero.
1613
1614         * rendering/HitTestResult.cpp:
1615         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
1616         Make sure rect-based hit testing properly adds in culled inline ancestors to the set of nodes
1617         if content inside those inlines is hit.
1618
1619         * rendering/InlineBox.h:
1620         (WebCore::InlineBox::logicalFrameRect):
1621         Fix a bug in this function for obtaining the logical frame rect of an inline box.
1622
1623         * rendering/InlineFlowBox.cpp:
1624         (WebCore::InlineFlowBox::addToLine):
1625         addToLine now also checks line gap in the line box tree optimization checks.
1626     
1627         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1628         (WebCore::InlineFlowBox::computeOverflow):
1629         * rendering/InlineFlowBox.h:
1630         Rewritten to add the text box overflow to the text box itself.
1631
1632          * rendering/InlineTextBox.cpp:
1633         (WebCore::InlineTextBox::destroy):
1634         Destroy has been changed to call a helper function to remove and destroy the line boxes that
1635         is now called from one additional spot.
1636
1637         (WebCore::InlineTextBox::logicalOverflowRect):
1638         (WebCore::InlineTextBox::setLogicalOverflowRect):
1639         Text boxes now cache their own overflow in a global hash table.
1640
1641         (WebCore::InlineTextBox::baselinePosition):
1642         (WebCore::InlineTextBox::lineHeight):
1643         Changed to not assume that the parent line box's renderer is the RenderText's immediate
1644         parent, since intermediate line boxes may have been culled.
1645
1646         (WebCore::InlineTextBox::paint):
1647         Paint now properly checks only the text box overflow instead of the parent line box's overflow.
1648
1649         * rendering/InlineTextBox.h:
1650         (WebCore::InlineTextBox::logicalTopVisualOverflow):
1651         (WebCore::InlineTextBox::logicalBottomVisualOverflow):
1652         (WebCore::InlineTextBox::logicalLeftVisualOverflow):
1653         (WebCore::InlineTextBox::logicalRightVisualOverflow):
1654         New accessors to obtain overflow for inline text boxes.
1655
1656         * rendering/RenderBlock.cpp:
1657         (WebCore::RenderBlock::updateFirstLetter):
1658         updateFirstLetter now removes text boxes from the line box tree before it destroys them, since those
1659         text boxes may not have anything in between them and the block that contains the inline first letter
1660         container.
1661
1662         * rendering/RenderBlockLineLayout.cpp:
1663         (WebCore::RenderBlock::createLineBoxes):
1664         The culling optimization is done here.  Only if the RenderInline says that boxes are allowed will they
1665         be created.
1666
1667         (WebCore::RenderBlock::layoutInlineChildren):
1668         The state of the RenderInline is updated here, in case it is discovered that line boxes are now needed.
1669         This is done before any lines are built.
1670
1671         * rendering/RenderInline.cpp:
1672         (WebCore::RenderInline::RenderInline):
1673         The new m_alwaysCreateLineBoxes flag has been added to the constructor.
1674
1675         (WebCore::RenderInline::styleDidChange):
1676         An initial update of the m_alwaysCreateLineBoxes happens here for things that can be checked immediately
1677         (like having a layer, borders, padding, margins or backgrounds).  Some checks that depend on examining
1678         the RenderInline's parent (including first line styles) happen later in layoutInlineChildren.
1679
1680         (WebCore::RenderInline::updateAlwaysCreateLineBoxes):
1681         The function called by layoutInlineChildren to check parent and child style differences (e.g., font,
1682         vertical alignment, line height, etc.).
1683
1684         (WebCore::RenderInline::absoluteRects):
1685         (WebCore::RenderInline::culledInlineAbsoluteRects):
1686         absoluteRects calls culledInlineAbsoluteRects when m_alwaysCreateLineBoxes is false.
1687
1688         (WebCore::RenderInline::absoluteQuads):
1689         (WebCore::RenderInline::culledInlineAbsoluteQuads):
1690         absoluteQuads calls culledInlineAbsoluteQuads when m_alwaysCreateLineBoxes is false.
1691
1692         (WebCore::RenderInline::offsetLeft):
1693         (WebCore::RenderInline::offsetTop):
1694         offsetLeft and offsetTop now check descendant renderers when m_alwaysCreateLineBoxes is false.
1695
1696         (WebCore::RenderInline::linesBoundingBox):
1697         (WebCore::RenderInline::culledInlineBoundingBox):
1698         lineBoundingBox calls culledInlineBoundingBox when m_alwaysCreateLineBoxes is false.
1699
1700         (WebCore::RenderInline::culledInlineFirstLineBox):
1701         (WebCore::RenderInline::culledInlineLastLineBox):
1702         Helpers that return the first and last line box descendants. Used by firstLineBoxIncludingCulling and
1703         lastLineBoxIncludingCulling (which are in turn called by offsetLeft and offsetTop).
1704
1705         (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
1706         (WebCore::RenderInline::linesVisualOverflowBoundingBox):
1707         linesVisualOverflowBoundingBox calls culledInlineVisualOverflowBoundingBox when m_alwaysCreateLineBoxes is false.
1708
1709         (WebCore::RenderInline::clippedOverflowRectForRepaint):
1710         The initial bailout check is now done using firstLineBoxIncludingCulling instead of just firstLineBox.
1711
1712         (WebCore::RenderInline::dirtyLineBoxes):
1713         dirtyLineBoxes now crawls into descendants to figure out which root lines to dirty when
1714         m_alwaysCreateLineBoxes is false.
1715
1716         (WebCore::RenderInline::createAndAppendInlineFlowBox):
1717         Clear the m_alwaysCreateLineBoxes if a box gets added anyway. This happens for leaf inline flows and also
1718         when line-box-contain is set to an unusual value.
1719
1720         (WebCore::RenderInline::addFocusRingRects):
1721         Used culledInlineAbsoluteRects in place of the line box walk when m_alwaysCreateLineBoxes is false.
1722
1723         * rendering/RenderInline.h:
1724         (WebCore::RenderInline::firstLineBoxIncludingCulling):
1725         (WebCore::RenderInline::lastLineBoxIncludingCulling):
1726         Helpers used in a few places (like offsetLeft and offsetTop), mostly in places where the existence of a box
1727         is all that needs checking.
1728
1729         (WebCore::RenderInline::alwaysCreateLineBoxes):
1730         (WebCore::RenderInline::setAlwaysCreateLineBoxes):
1731         Functions for getting and setting the m_alwaysCreateLineBoxes flag.
1732
1733         * rendering/RenderLineBoxList.cpp:
1734         (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
1735         Modified to use firstLineBoxIncludingCulling and lastLineBoxIncludingCulling to ensure the right set of
1736         lines get dirtied.
1737
1738         * rendering/RenderText.cpp:
1739         (WebCore::RenderText::removeAndDestroyTextBoxes):
1740         New helper invoked by destroy and also from updateFirstLetter.
1741
1742         (WebCore::RenderText::destroy):
1743         Changed to call removeAndDestroyTextBoxes.
1744
1745         (WebCore::RenderText::absoluteRects):
1746         Fixed to be properly physical instead of logical.
1747
1748         (WebCore::RenderText::linesVisualOverflowBoundingBox):
1749         New implementation for RenderText that gives the bounding box of the text boxes including overflow from
1750         shadows, glyphs, text-stroke, etc.  Used by RenderInline::culledInlineVisualOverflowBoundingBox.
1751
1752         * rendering/RenderText.h:
1753         * rendering/svg/RenderSVGInline.cpp:
1754         (WebCore::RenderSVGInline::RenderSVGInline):
1755         RenderSVGInline always sets m_alwaysCreateLineBoxes to true so that SVG is unaffected by this optimization.
1756
1757         * rendering/svg/SVGRootInlineBox.cpp:
1758         (WebCore::SVGRootInlineBox::layoutCharactersInTextBoxes):
1759         (WebCore::SVGRootInlineBox::layoutChildBoxes):
1760         Move the isInlineFlowBox asserts to after the generated content skips, since the generated content boxes are
1761         now InlineTextBoxes (the enclosing InlineFlowBoxes got culled).
1762
1763 2011-04-05  Enrica Casucci  <enrica@apple.com>
1764
1765         Reviewed by Darin Adler.
1766
1767         REGRESSION: Drag & Drop Gmail Attachments doesn't work.
1768         https://bugs.webkit.org/show_bug.cgi?id=57909
1769         <rdar://problem/9103220>
1770
1771         In WebKit2 we cannot rely on the value returned by platformData() that
1772         on Mac returns an NSDraggingInfo object. This is available only in the UI
1773         process. Therefore we should use m_pasteboard instead.
1774         We cannot change what platformData() returns on Mac, since there are
1775         delegate methods that receive a NSDraggingInfo object (only in WebKit).
1776         
1777         * platform/DragData.h:
1778         (WebCore::DragData::pasteboard): Added.
1779         * platform/mac/ClipboardMac.mm:
1780         (WebCore::Clipboard::create): Changed to use pasteboard() instead of platformData().
1781         * platform/mac/DragDataMac.mm:
1782         (WebCore::DragData::asColor): Replaced references to m_platformData with m_pasteboard.
1783         (WebCore::DragData::asURL): Same as above.
1784
1785 2011-04-06  Benjamin Poulain  <benjamin.poulain@nokia.com>
1786
1787         Reviewed by Darin Adler.
1788
1789         ClipboardWin has unused variables "ExceptionCode ec"
1790         https://bugs.webkit.org/show_bug.cgi?id=57952
1791
1792         Remove the unused variable.
1793
1794         * platform/win/ClipboardWin.cpp:
1795         (WebCore::ClipboardWin::declareAndWriteDragImage):
1796         (WebCore::ClipboardWin::writePlainText):
1797
1798 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
1799
1800         Reviewed by Dimitri Glazkov.
1801
1802         Split getBorderPaddingMargin into two functions
1803         https://bugs.webkit.org/show_bug.cgi?id=57947
1804
1805         * rendering/RenderBlockLineLayout.cpp:
1806         (WebCore::borderPaddingMarginStart): Extracted from getBorderPaddingMargin.
1807         (WebCore::borderPaddingMarginEnd): Ditto.
1808         (WebCore::inlineLogicalWidth): Calls borderPaddingMarginStart and borderPaddingMarginEnd.
1809         (WebCore::RenderBlock::findNextLineBreak): Ditto.
1810
1811 2011-04-06  MORITA Hajime  <morrita@google.com>
1812
1813         Reviewed by Dimitri Glazkov.
1814
1815         [Refactoring] <progress> should not have manual layout code.
1816         https://bugs.webkit.org/show_bug.cgi?id=57801
1817
1818         - Simplified RenderProgress, removing its custom layout code
1819         - Introducing ProgressValueElement and ProgressBarElement, replacing
1820           ProgressBarValueElement. 
1821         
1822         Now the structure is almost identical to <meter>, 
1823         other than:
1824         - RenderProgress has animated painting, thus manages its own timer.
1825         - Both ProgressValueElement and ProgressBarElement has pseudo classes
1826           which don't changes during its lifetime.
1827        
1828         * Android.mk:
1829         * CMakeLists.txt:
1830         * GNUmakefile.am:
1831         * WebCore.gypi:
1832         * WebCore.pro:
1833         * WebCore.vcproj/WebCore.vcproj:
1834         * WebCore.xcodeproj/project.pbxproj:
1835         * css/html.css:
1836         (progress):
1837         (progress::-webkit-progress-bar):
1838         (progress::-webkit-progress-value):
1839         * html/HTMLProgressElement.cpp:
1840         (WebCore::HTMLProgressElement::~HTMLProgressElement):
1841         (WebCore::HTMLProgressElement::create):
1842         (WebCore::HTMLProgressElement::attach):
1843         (WebCore::HTMLProgressElement::didElementStateChange):
1844         (WebCore::HTMLProgressElement::createShadowSubtree):
1845         * html/HTMLProgressElement.h:
1846         * html/shadow/ProgressShadowElement.cpp: Copied from Source/WebCore/html/shadow/ProgressBarValueElement.h.
1847         (WebCore::ProgressShadowElement::ProgressShadowElement):
1848         (WebCore::ProgressShadowElement::progressElement):
1849         (WebCore::ProgressShadowElement::rendererIsNeeded):
1850         (WebCore::ProgressBarElement::shadowPseudoId):
1851         (WebCore::ProgressValueElement::shadowPseudoId):
1852         (WebCore::ProgressValueElement::setWidthPercentage):
1853         * html/shadow/ProgressShadowElement.h: Renamed from Source/WebCore/html/shadow/ProgressBarValueElement.h.
1854         (WebCore::ProgressBarElement::ProgressBarElement):
1855         (WebCore::ProgressBarElement::create):
1856         (WebCore::ProgressValueElement::ProgressValueElement):
1857         (WebCore::ProgressValueElement::create):
1858         * rendering/RenderProgress.cpp:
1859         (WebCore::RenderProgress::RenderProgress):
1860         (WebCore::RenderProgress::updateFromElement):
1861         (WebCore::RenderProgress::animationTimerFired):
1862         * rendering/RenderProgress.h:
1863         (WebCore::RenderProgress::requiresForcedStyleRecalcPropagation):
1864         (WebCore::RenderProgress::canHaveChildren):
1865
1866 2011-04-06  Mario Sanchez Prada  <msanchez@igalia.com>
1867
1868         Reviewed by Chris Fleizach.
1869
1870         [GTK] Do not reference AccessibilityRenderObject from platform dependent code
1871         https://bugs.webkit.org/show_bug.cgi?id=57955
1872
1873         Do not reference AccessibilityRenderObject from platform specific code
1874
1875         Added new virtual functions to AccessibilityObject.h and removed
1876         explicit references to AccessibilityRenderObject from GTK code.
1877
1878         * accessibility/AccessibilityObject.h:
1879         (WebCore::AccessibilityObject::renderer): New virtual method,
1880         returning 0 by default. Overriden by AccessibilityRenderObject.
1881         (WebCore::AccessibilityObject::correspondingLabelForControlElement):
1882         New virtual method, returning 0 by default. It complements the
1883         already present method correspondingControlForLabelElement().
1884
1885         * accessibility/AccessibilityRenderObject.h:
1886         (WebCore::AccessibilityRenderObject::renderer): Made virtual.
1887
1888         * accessibility/gtk/AXObjectCacheAtk.cpp:
1889         (WebCore::emitTextChanged): Reference  AccessibilityObject,
1890         instead of AccessibilityRenderObject.
1891         (WebCore::AXObjectCache::nodeTextChangePlatformNotification):
1892         Ditto.
1893
1894         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1895         (webkit_accessible_get_name): Do not reference
1896         AccessibilityRenderObject.
1897         (webkit_accessible_get_description): Ditto.
1898         (setAtkRelationSetFromCoreObject): Ditto.
1899         (optionFromList): Ditto.
1900         (optionFromSelection): Ditto.
1901         (webkit_accessible_selection_clear_selection): Ditto.
1902         (webkit_accessible_selection_get_selection_count): Ditto.
1903         (webkit_accessible_selection_select_all_selection): Ditto.
1904         (textForObject): Ditto.
1905         (webkit_accessible_text_get_text): Ditto.
1906         (getPangoLayoutForAtk): Ditto.
1907         (webkit_accessible_text_get_caret_offset): Ditto.
1908         (baselinePositionForRenderObject): Ditto.
1909         (getAttributeSetForAccessibilityObject): Ditto.
1910         (accessibilityObjectLength): Ditto.
1911         (getSelectionOffsetsForObject): Ditto.
1912         (webkit_accessible_text_set_selection): Ditto.
1913         (webkit_accessible_text_set_caret_offset): Ditto.
1914         (webkit_accessible_table_get_caption): Ditto.
1915         (getInterfaceMaskFromObject): Ditto.
1916
1917         * accessibility/gtk/WebKitAccessibleHyperlink.cpp:
1918         (getRangeLengthForObject): Ditto.
1919
1920         Removed unused renderer() method from AccessibilityMenuList.
1921
1922         * accessibility/AccessibilityMenuList.h: Removed unused method.
1923         * accessibility/AccessibilityMenuList.cpp: Removed unused method.
1924
1925 2011-04-06  Alexander Pavlov  <apavlov@chromium.org>
1926
1927         Reviewed by Pavel Feldman.
1928
1929         Web Inspector: Javascipt warning link expand and overlap with icons in js console
1930         https://bugs.webkit.org/show_bug.cgi?id=57939
1931
1932         * inspector/front-end/inspector.js:
1933         (WebInspector.linkifyURLAsNode):
1934
1935 2011-04-06  Alexander Pavlov  <apavlov@chromium.org>
1936
1937         Reviewed by Pavel Feldman.
1938
1939         Web Inspector: Beautify parameter names in Inspector.json (CSS domain)
1940         https://bugs.webkit.org/show_bug.cgi?id=57931
1941
1942         * inspector/Inspector.json:
1943
1944 2011-04-06  Jia Pu  <jpu@apple.com>
1945
1946         Reviewed by Darin Adler.
1947
1948         [Mac] WebCore need to notify AppKit spell checker after user has modified autocorrected text.
1949         https://bugs.webkit.org/show_bug.cgi?id=57665
1950         <rdar://problem/7350477>
1951
1952         We need to track how user modified an autocorrected word. If he changed it back to original
1953         text, we want to record AutocorrectionReverted response. And if he changed it to something
1954         else, we want to record AutocorrectionEdited response.
1955
1956         To achieve this, we need to distringuish between text replacement caused by autocorrection
1957         from that due to other causes, such as reversion, text substitution, etc. So we added a new
1958         marker type "Autocorrected". We also need to be able to check for correction, even when we
1959         don't intend to actually carry out replacement. For this, we introduced a new TextCheckingOption
1960         value, "CheckForCorrection".
1961
1962         We also added DocumentMarkerController::markersInRange() to retrieve a vector of markers in
1963         specified range, and of specified type.
1964
1965         * dom/DocumentMarker.h:
1966         * dom/DocumentMarkerController.cpp:
1967         (WebCore::DocumentMarkerController::markersInRange):
1968         (WebCore::DocumentMarkerController::hasMarkers):
1969         * dom/DocumentMarkerController.h:
1970         * editing/Editor.cpp:
1971         (WebCore::markerTypesForAutocorrection):
1972         (WebCore::markersHaveIdenticalDescription):
1973         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
1974         (WebCore::Editor::recordSpellcheckerResponseForModifiedCorrection):
1975         (WebCore::Editor::changeBackToReplacedString):
1976         (WebCore::Editor::markMisspellingsAndBadGrammar):
1977         (WebCore::Editor::applyCorrectionPanelInfo):
1978         (WebCore::Editor::unappliedSpellCorrection):
1979         (WebCore::Editor::textCheckingTypeMaskFor):
1980         * editing/Editor.h:
1981         * editing/SpellingCorrectionCommand.cpp:
1982         (WebCore::SpellingCorrectionCommand::doApply):
1983
1984 2011-04-06  Sheriff Bot  <webkit.review.bot@gmail.com>
1985
1986         Unreviewed, rolling out r83045.
1987         http://trac.webkit.org/changeset/83045
1988         https://bugs.webkit.org/show_bug.cgi?id=57953
1989
1990         Broke win layout tests (Requested by podivilov on #webkit).
1991
1992         * GNUmakefile.am:
1993         * inspector/front-end/DebuggerPresentationModel.js:
1994         (WebInspector.DebuggerPresentationModel.prototype._addScript):
1995         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
1996
1997 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
1998
1999         Moved the declaration of positionNewFloatOnLine in RenderBlock.h after r83042.
2000
2001         * rendering/RenderBlock.h:
2002
2003 2011-03-27  Diego Gonzalez  <diegohcg@webkit.org>
2004
2005         Reviewed by Kenneth Rohde Christiansen.
2006
2007         [Qt] Re-draw the <input> fields for Qt Mobile Theme to do not override elements already styled.
2008         https://bugs.webkit.org/show_bug.cgi?id=57007
2009
2010         * CodeGenerators.pri:
2011         * css/themeQtMobile.css: Removed.
2012         * platform/qt/QtMobileWebStyle.cpp:
2013         (drawRectangularControlBackground):
2014         (QtMobileWebStyle::drawPrimitive):
2015         (QtMobileWebStyle::drawComplexControl):
2016         * platform/qt/QtMobileWebStyle.h:
2017         * platform/qt/RenderThemeQt.cpp:
2018         (WebCore::RenderThemeQt::isControlStyled):
2019         (WebCore::RenderThemeQt::paintTextField):
2020
2021 2011-04-06  Jia Pu  <jpu@apple.com>
2022
2023         Reviewed by Darin Adler.
2024
2025         [Mac] When autocorrection occurs without showing correction panel, WebCore need to post accessibility notification.
2026         https://bugs.webkit.org/show_bug.cgi?id=57800
2027         <rdar://problem/9218223>
2028
2029         Defined a new accessibility notification type, AXAutocorrectionOccured. Editor::markAllMisspellingsAndBadGrammarInRanges()
2030         now posts said notification when any autocorrection or text replacement (e.g. replacing "(c)" with copyright mark) takes place.
2031
2032         * accessibility/AXObjectCache.h:
2033         * accessibility/chromium/AXObjectCacheChromium.cpp:
2034         (WebCore::AXObjectCache::postPlatformNotification):
2035         * accessibility/mac/AXObjectCacheMac.mm:
2036         (WebCore::AXObjectCache::postPlatformNotification):
2037         * editing/Editor.cpp:
2038         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
2039
2040 2011-04-06  Martin Robinson  <mrobinson@igalia.com>
2041
2042         Build fix for debug Cairo builds.
2043
2044         * platform/graphics/cairo/PlatformContextCairo.cpp:
2045         (WebCore::PlatformContextCairo::pushImageMask): Update the reference to m_maskInformation.
2046
2047 2011-04-06  Diego Gonzalez  <diegohcg@webkit.org>
2048
2049         Reviewed by Antonio Gomes.
2050
2051         [Qt] Style fix for QtMobileWebStyle.h
2052         https://bugs.webkit.org/show_bug.cgi?id=57708
2053
2054         * platform/qt/QtMobileWebStyle.h:
2055
2056 2011-04-06  Andras Becsi  <abecsi@webkit.org>
2057
2058         Reviewed by Darin Adler.
2059
2060         Invalid color #{predefined colorName} is accepted by the CSS parser.
2061         https://bugs.webkit.org/show_bug.cgi?id=15360
2062
2063         Test: fast/css/invalid-predefined-color.html
2064
2065         * css/CSSGrammar.y: Remove superfluous hexcolor production.
2066         * css/tokenizer.flex: A hexadecimal number should consist of [a-fA-F0-9] values ({h}).
2067
2068 2011-03-30  Pavel Podivilov  <podivilov@chromium.org>
2069
2070         Reviewed by Pavel Feldman.
2071
2072         Web Inspector: add test for script formatter worker.
2073         https://bugs.webkit.org/show_bug.cgi?id=57447
2074
2075         Test: inspector/debugger/script-formatter.html
2076
2077         * GNUmakefile.am:
2078         * inspector/front-end/DebuggerPresentationModel.js:
2079         (WebInspector.DebuggerPresentationModel):
2080         (WebInspector.DebuggerPresentationModel.prototype.toggleFormatSourceFiles):
2081
2082 2011-04-06  Martin Robinson  <mrobinson@igalia.com>
2083
2084         Reviewed by Xan Lopez.
2085
2086         [Cairo] Hide the details of image masking in PlatformContextCairo
2087         https://bugs.webkit.org/show_bug.cgi?id=57878
2088
2089         No new tests. This is just a refactor.
2090
2091         * platform/graphics/GraphicsContext.h:
2092         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2093         (WebCore::GraphicsContext::savePlatformState): Call into PlatformContextCairo now to
2094         do the actual cairo_save. Remove information about image masking.
2095         (WebCore::GraphicsContext::restorePlatformState): Call into PlatformContextCairo now to
2096         do the actual cairo_restore. Remove information about image masking.
2097         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
2098         * platform/graphics/cairo/ImageBufferCairo.cpp:
2099         (WebCore::ImageBuffer::clip): Use PlatformContextCairo here now.
2100         * platform/graphics/cairo/PlatformContextCairo.cpp:
2101         (WebCore::PlatformContextCairo::restore): Added.
2102         (WebCore::PlatformContextCairo::save): Added.
2103         (WebCore::PlatformContextCairo::pushImageMask): Added.
2104         * platform/graphics/cairo/PlatformContextCairo.h:
2105         (WebCore::ImageMaskInformation::update): Moved from GraphicsContextPlatformPrivateCairo.h.
2106         (WebCore::ImageMaskInformation::isValid): Ditto.
2107         (WebCore::ImageMaskInformation::maskSurface): Ditto.
2108         (WebCore::ImageMaskInformation::maskRect): Ditto.
2109
2110 2011-04-02  Diego Gonzalez  <diegohcg@webkit.org>
2111
2112         Reviewed by Csaba Osztrogonác.
2113
2114         [Qt] Radio buttons are showing wrong with mobile theme
2115         https://bugs.webkit.org/show_bug.cgi?id=57706
2116
2117         * platform/qt/QtMobileWebStyle.cpp:
2118         (QtMobileWebStyle::drawRadio):
2119
2120 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
2121
2122         Reviewed by Eric Seidel.
2123
2124         Move RenderBlock::positionNewFloatOnLine to RenderBlockLineLayout.cpp
2125         https://bugs.webkit.org/show_bug.cgi?id=57943
2126
2127         * rendering/RenderBlock.cpp: Removed positionNewFloatOnLine.
2128         * rendering/RenderBlockLineLayout.cpp:
2129         (WebCore::RenderBlock::positionNewFloatOnLine): Moved from RenderBlock.cpp
2130
2131 2011-04-05  Diego Gonzalez  <diegohcg@webkit.org>
2132
2133         Buildfix after r82125.
2134
2135         [Qt] QtWebKit will not compile with QT_ASCII_CAST_WARNINGS enabled
2136         https://bugs.webkit.org/show_bug.cgi?id=57087
2137
2138         * platform/qt/QtMobileWebStyle.cpp:
2139         (QtMobileWebStyle::findChecker):
2140         (QtMobileWebStyle::findRadio):
2141         (QtMobileWebStyle::findComboButton):
2142
2143 2011-04-06  Pavel Podivilov  <podivilov@chromium.org>
2144
2145         Reviewed by Yury Semikhatsky.
2146
2147         Web Inspector: inline script imports in ScriptFormatterWorker.js so it works in Safari release.
2148         https://bugs.webkit.org/show_bug.cgi?id=57641
2149
2150         * WebCore.xcodeproj/project.pbxproj:
2151         * gyp/streamline-inspector-source.sh:
2152         * inspector/combine-javascript-resources.pl: Renamed from Source/WebCore/combine-javascript-resources.
2153         * inspector/inline-javascript-imports.py: Added.
2154
2155 2011-04-06  Ryosuke Niwa  <rniwa@webkit.org>
2156
2157         Reviewed by Eric Seidel.
2158
2159         REGRESSION (r46914, r48764): When typing in Mail, line wrapping frequently occurs in the middle of words
2160         https://bugs.webkit.org/show_bug.cgi?id=57872
2161
2162         r46914 initially introduced a regression by replacing calls to styleAtPosition by editingStyleAtPosition
2163         because editingStyleAtPosition did not avoid tab span to obtain the computed style unlike styleAtPosition.
2164
2165         r46914 also introduced a regression by cloning hierarchy under new block at the insertion position without
2166         avoiding the tab span.
2167
2168         Fixed the both regressions by avoiding tab spans when computing the editing style and when cloning hierarchy.
2169
2170         Test: editing/inserting/insert-paragraph-separator-tab-span.html
2171
2172         * editing/EditingStyle.cpp:
2173         (WebCore::EditingStyle::init): Always avoid a tab span when computing the editing style.
2174         * editing/InsertParagraphSeparatorCommand.cpp:
2175         (WebCore::InsertParagraphSeparatorCommand::doApply): Avoid cloning tab spans and inserting a paragraph
2176         separator into a paragraph separator.
2177
2178 2011-04-06  Levi Weintraub  <leviw@chromium.org>
2179
2180         Reviewed by Ryosuke Niwa.
2181
2182         Add member functions for determining line/paragraph separation to InlineIterator
2183         https://bugs.webkit.org/show_bug.cgi?id=57938
2184
2185         Adding atTextParagraphSeparator and atParagraphSeparator inline convenience functions to
2186         InlineIterator, where it makes far more sense for them to be. Also moving
2187         shouldPreserveNewline to RenderObject and renaming it preservesNewline.
2188
2189         No new tests as this provides no new functionality.
2190
2191         * rendering/InlineIterator.h:
2192         (WebCore::InlineIterator::atTextParagraphSeparator):
2193         (WebCore::InlineIterator::atParagraphSeparator):
2194         * rendering/RenderBlockLineLayout.cpp:
2195         (WebCore::RenderBlock::requiresLineBox):
2196         (WebCore::RenderBlock::findNextLineBreak):
2197         * rendering/RenderObject.h:
2198         (WebCore::RenderObject::preservesNewline):
2199
2200 2011-04-05  Alexander Pavlov  <apavlov@chromium.org>
2201
2202         Reviewed by Pavel Feldman.
2203
2204         Web Inspector: Range insertNode function does not update content in the inspector
2205         https://bugs.webkit.org/show_bug.cgi?id=57829
2206
2207         * inspector/InspectorDOMAgent.cpp:
2208         (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
2209         (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
2210
2211 2011-04-06  Alejandro G. Castro  <alex@igalia.com>
2212
2213         Fix GTK3 compilation after r82962.
2214
2215         * platform/gtk/RenderThemeGtk3.cpp:
2216         (WebCore::paintToggle):
2217         (WebCore::renderButton):
2218         (WebCore::RenderThemeGtk::paintMenuList):
2219         (WebCore::RenderThemeGtk::paintTextField):
2220         (WebCore::RenderThemeGtk::paintSliderTrack):
2221         (WebCore::RenderThemeGtk::paintSliderThumb):
2222         (WebCore::RenderThemeGtk::paintProgressBar):
2223         (WebCore::paintSpinArrowButton):
2224         * platform/gtk/ScrollbarThemeGtk3.cpp:
2225         (WebCore::ScrollbarThemeGtk::paintTrackBackground):
2226         (WebCore::ScrollbarThemeGtk::paintScrollbarBackground):
2227         (WebCore::ScrollbarThemeGtk::paintThumb):
2228         (WebCore::ScrollbarThemeGtk::paintButton):
2229
2230 2011-04-06  Andrey Kosyakov  <caseq@chromium.org>
2231
2232         Reviewed by Yury Semikhatsky.
2233
2234         Web Inspector: [Extensions API] remove inspectedPage.* events
2235         https://bugs.webkit.org/show_bug.cgi?id=57763
2236
2237         - Removed webInspector.inspectedPage.* events
2238         - moved onNavigated to webInspector.resources
2239
2240         * inspector/front-end/ExtensionAPI.js:
2241         (WebInspector.injectedExtensionAPI):
2242         (WebInspector.injectedExtensionAPI.InspectedWindow):
2243         * inspector/front-end/ExtensionAPISchema.json:
2244         * inspector/front-end/ExtensionServer.js:
2245         (WebInspector.ExtensionServer.prototype.notifyInspectedURLChanged):
2246         * inspector/front-end/inspector.js:
2247         (WebInspector.domContentEventFired):
2248         (WebInspector.loadEventFired):
2249         (WebInspector.inspectedURLChanged):
2250
2251 2011-04-06  Joseph Pecoraro  <joepeck@webkit.org>
2252
2253         Reviewed by Antti Koivisto.
2254
2255         Add <head> to the simpleUserAgentStyleSheet
2256         https://bugs.webkit.org/show_bug.cgi?id=57915
2257
2258         * css/CSSStyleSelector.cpp:
2259         (WebCore::elementCanUseSimpleDefaultStyle): add head to the
2260         simple stylesheet, display:none.
2261
2262 2011-04-05  Mikhail Naganov  <mnaganov@chromium.org>
2263
2264         Reviewed by Pavel Feldman.
2265
2266         Web Inspector: [Chromium] Add layout test for Summary view of detailed heap snapshots.
2267         https://bugs.webkit.org/show_bug.cgi?id=57856
2268
2269         Test: inspector/profiler/detailed-heapshots-summary.html
2270
2271         * inspector/front-end/DataGrid.js:
2272         (WebInspector.DataGrid):
2273         * inspector/front-end/DetailedHeapshotGridNodes.js:
2274         (WebInspector.HeapSnapshotGridNode.prototype._populate.doPopulate):
2275         (WebInspector.HeapSnapshotGridNode.prototype._populate):
2276         (WebInspector.HeapSnapshotGridNode.prototype.populateChildren):
2277         (WebInspector.HeapSnapshotGridNode.prototype.sort.doSort):
2278         (WebInspector.HeapSnapshotGridNode.prototype.sort):
2279         (WebInspector.HeapSnapshotDiffNode.prototype.populateChildren):
2280         * inspector/front-end/DetailedHeapshotView.js:
2281         (WebInspector.HeapSnapshotSortableDataGrid.prototype.sortingChanged):
2282         * inspector/front-end/ProfilesPanel.js:
2283         (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot.doParse):
2284         (WebInspector.ProfilesPanel.prototype._finishHeapSnapshot):
2285
2286 2011-04-06  Anders Bakken  <agbakken@gmail.com>
2287
2288         Reviewed by David Levin.
2289
2290         [Qt] SmartReplaceQt.cpp has coding-style errors
2291         https://bugs.webkit.org/show_bug.cgi?id=40261
2292
2293         This patch does not require new test cases.
2294
2295         * editing/qt/SmartReplaceQt.cpp:
2296         (WebCore::isCharacterSmartReplaceExempt):
2297
2298 2011-04-06  Naoki Takano  <takano.naoki@gmail.com>
2299
2300         Reviewed by Ryosuke Niwa.
2301
2302         REGRESSION(r81328): Null pointer crash in canAppendNewLineFeed when selection isn't inside an editable element
2303         https://bugs.webkit.org/show_bug.cgi?id=57755
2304
2305         Test: editing/execCommand/insert-line-break-onload.html
2306
2307         * editing/TypingCommand.cpp:
2308         (WebCore::canAppendNewLineFeed): Added null pointer check for rootEditableElement().
2309
2310 2011-04-05  Antti Koivisto  <antti@apple.com>
2311
2312         Reviewed by Cameron Zwarich.
2313
2314         Avoid calling currentTime() from FrameView::adjustedDeferredRepaintDelay() when repaints are deferred
2315         https://bugs.webkit.org/show_bug.cgi?id=57914
2316
2317         Don't call adjustedDeferredRepaintDelay unnecessarily.
2318
2319         * page/FrameView.cpp:
2320         (WebCore::FrameView::repaintContentRectangle):
2321         (WebCore::FrameView::adjustedDeferredRepaintDelay):
2322
2323 2011-04-05  Steve VanDeBogart  <vandebo@chromium.org>
2324
2325         Reviewed by David Levin.
2326
2327         Update call to SkAdvancedTypefaceMetrics to new API.
2328         https://bugs.webkit.org/show_bug.cgi?id=57887
2329
2330         * platform/graphics/chromium/FontPlatformDataLinux.cpp:
2331         (WebCore::FontPlatformData::emSizeInFontUnits):
2332
2333 2011-04-05  Alexey Proskuryakov  <ap@apple.com>
2334
2335         Reviewed by Darin Adler.
2336
2337         Rename event dispatching functions after form event removal
2338         https://bugs.webkit.org/show_bug.cgi?id=57908
2339
2340         * dom/InputElement.cpp:
2341         (WebCore::InputElement::setValueFromRenderer):
2342         * dom/Node.cpp:
2343         (WebCore::Node::dispatchChangeEvent):
2344         (WebCore::Node::dispatchInputEvent):
2345         (WebCore::Node::defaultEventHandler):
2346         * dom/Node.h:
2347         * html/HTMLFormControlElement.cpp:
2348         (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
2349         (WebCore::HTMLFormControlElement::dispatchFormControlInputEvent):
2350         (WebCore::HTMLTextFormControlElement::dispatchFormControlChangeEvent):
2351         Renamed "events" to "event", since there is only one event to dispatch now.
2352
2353 2011-04-05  Anders Bakken  <agbakken@gmail.com>
2354
2355         Reviewed by David Levin.
2356
2357         [Qt] DragControllerQt.cpp has coding-style errors
2358         https://bugs.webkit.org/show_bug.cgi?id=40258
2359
2360         This patch does not require new test cases.
2361
2362         * page/qt/DragControllerQt.cpp:
2363         (WebCore::DragController::dragOperation):
2364
2365 2011-04-05  Steve VanDeBogart  <vandebo@chromium.org>
2366
2367         Reviewed by David Levin.
2368
2369         Update deprecated include: platform_canvas_win.h to platform_canvas.h.
2370         https://bugs.webkit.org/show_bug.cgi?id=57896
2371
2372         * platform/graphics/chromium/FontChromiumWin.cpp:
2373
2374 2011-04-05  Darin Adler  <darin@apple.com>
2375
2376         Try to fix Leopard bots.
2377
2378         * platform/mac/HTMLConverter.mm: Fix #if back the way Alexey seems
2379         to have intended it.
2380
2381 2011-04-05  Darin Adler  <darin@apple.com>
2382
2383         Try to fix Leopard bots.
2384
2385         * platform/mac/HTMLConverter.mm: Move declarations of new functions
2386         inside the appropriate #if.
2387
2388 2011-04-05  Adrienne Walker  <enne@google.com>
2389
2390         Reviewed by Tony Chang.
2391
2392         Correctly set color when using skia's fillRoundedRect.
2393         https://bugs.webkit.org/show_bug.cgi?id=57907
2394
2395         * platform/graphics/skia/GraphicsContextSkia.cpp:
2396         (WebCore::GraphicsContext::fillRoundedRect):
2397
2398 2011-04-05  Alexey Proskuryakov  <ap@apple.com>
2399
2400         Reviewed by Darin Adler.
2401
2402         Move attributedStringFromRange down to WebCore
2403         https://bugs.webkit.org/show_bug.cgi?id=57905
2404
2405         No change in behavior, so no new tests.
2406
2407         Also tweaked HTMLConverter to not use methods defined in WebKit.
2408
2409         * WebCore.exp.in:
2410         * WebCore.xcodeproj/project.pbxproj:
2411         * platform/mac/HTMLConverter.h:
2412         * platform/mac/HTMLConverter.mm:
2413         (-[WebHTMLConverter _newTabForElement:]):
2414         (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
2415         (+[WebHTMLConverter editingAttributedStringFromRange:]):
2416         (fileWrapperForURL):
2417         (fileWrapperForElement):
2418         * platform/mac/PasteboardMac.mm:
2419         (WebCore::Pasteboard::writeSelection):
2420         * platform/mac/WebNSAttributedStringExtras.h: Copied from Source/WebKit/mac/Misc/WebNSAttributedStringExtras.h.
2421         * platform/mac/WebNSAttributedStringExtras.mm: Copied from Source/WebKit/mac/Misc/WebNSAttributedStringExtras.mm.
2422         (WebCore::attributedStringByStrippingAttachmentCharacters):
2423
2424 2011-04-05  Simon Fraser  <simon.fraser@apple.com>
2425
2426         Reviewed by Darin Adler.
2427
2428         Rename variables in border drawing code for readability
2429         https://bugs.webkit.org/show_bug.cgi?id=57894
2430
2431         * rendering/RenderObject.cpp:
2432         (WebCore::RenderObject::drawLineForBoxSide):
2433         (WebCore::RenderObject::drawBoxSideFromPath):
2434         (WebCore::RenderObject::drawArcForBoxSide):
2435
2436 2011-04-05  Antti Koivisto  <antti@apple.com>
2437
2438         Reviewed by Darin Adler.
2439
2440         Defer repaints during style recalc
2441         https://bugs.webkit.org/show_bug.cgi?id=57886
2442
2443         This reduces the need to do (often expensive) platform surface invalidation.
2444         We already do this during layout but style recalculation may trigger
2445         invalidation as well.
2446     
2447         * dom/Document.cpp:
2448         (WebCore::Document::recalcStyle):
2449
2450 2011-04-05  Jer Noble  <jer.noble@apple.com>
2451
2452         Reviewed by Darin Adler.
2453
2454         HTML5 Player Has no Fullscreen Mode
2455         https://bugs.webkit.org/show_bug.cgi?id=57795
2456
2457         * html/HTMLVideoElement.cpp:
2458         (WebCore::HTMLVideoElement::supportsFullscreen): Call the new ChromeClient API
2459             supportsFullScreenForElement() before the old supportsFullScreenForNode() API.
2460
2461 2011-04-05  Vsevolod Vlasov  <vsevik@chromium.org>
2462
2463         Reviewed by Pavel Feldman.
2464
2465         Web Inspector: fix data url's status and timing the network panel.
2466         https://bugs.webkit.org/show_bug.cgi?id=53066
2467
2468         Added data url support for status of network resources.
2469
2470         * English.lproj/localizedStrings.js:
2471         * inspector/front-end/NetworkPanel.js:
2472         (WebInspector.NetworkDataGridNode.prototype._refreshStatusCell):
2473         * inspector/front-end/Resource.js:
2474         (WebInspector.Resource.prototype.isDataURL):
2475
2476 2011-04-04  Vitaly Repeshko  <vitalyr@chromium.org>
2477
2478         Reviewed by Adam Barth.
2479
2480         [V8] Keep dirty primitive CSS values alive.
2481         https://bugs.webkit.org/show_bug.cgi?id=57810
2482
2483         * bindings/v8/V8GCController.cpp:
2484         (WebCore::GrouperVisitor::visitDOMWrapper):
2485
2486 2011-04-05  Simon Fraser  <simon.fraser@apple.com>
2487
2488         Reviewed by Adele Peterson.
2489
2490         Add a fast path for simple color backgrounds
2491         https://bugs.webkit.org/show_bug.cgi?id=57773
2492
2493         Add a fast path for drawing simple color backgrounds. It's
2494         faster to fill a path or rect than it is to set up a clip,
2495         and then paint the rect.
2496         
2497         No visible behavior change so no new tests.
2498
2499         * rendering/RenderBoxModelObject.cpp:
2500         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
2501
2502 2011-04-05  Patrick Gansterer  <paroga@webkit.org>
2503
2504         Unreviewed EFL build fix for r82962.
2505
2506         * CMakeListsEfl.txt:
2507
2508 2011-04-05  Chris Rogers  <crogers@google.com>
2509
2510         Reviewed by Kenneth Russell.
2511
2512         Add support for offline audio rendering to AudioContext API
2513         https://bugs.webkit.org/show_bug.cgi?id=57676
2514
2515         No new tests since audio API is not yet implemented.
2516
2517         * DerivedSources.make:
2518         * WebCore.gypi:
2519         * WebCore.xcodeproj/project.pbxproj:
2520         * bindings/js/JSAudioContextCustom.cpp:
2521         (WebCore::JSAudioContextConstructor::constructJSAudioContext):
2522         * bindings/js/JSEventCustom.cpp:
2523         (WebCore::toJS):
2524         * bindings/js/JSEventTarget.cpp:
2525         (WebCore::toJS):
2526         * bindings/v8/V8DOMWrapper.cpp:
2527         (WebCore::V8DOMWrapper::convertEventTargetToV8Object):
2528         * bindings/v8/custom/V8AudioContextCustom.cpp:
2529         (WebCore::V8AudioContext::constructorCallback):
2530         * bindings/v8/custom/V8EventCustom.cpp:
2531         (WebCore::toV8):
2532         * dom/Event.cpp:
2533         (WebCore::Event::isOfflineAudioCompletionEvent):
2534         * dom/Event.h:
2535         * dom/EventTarget.cpp:
2536         (WebCore::EventTarget::toAudioContext):
2537         * dom/EventTarget.h:
2538         * platform/audio/HRTFDatabaseLoader.cpp:
2539         (WebCore::HRTFDatabaseLoader::waitForLoaderThreadCompletion):
2540         * platform/audio/HRTFDatabaseLoader.h:
2541         (WebCore::HRTFDatabaseLoader::loader):
2542         * webaudio/AudioContext.cpp:
2543         (WebCore::AudioContext::createOfflineContext):
2544         (WebCore::AudioContext::AudioContext):
2545         (WebCore::AudioContext::constructCommon):
2546         (WebCore::AudioContext::document):
2547         (WebCore::AudioContext::scriptExecutionContext):
2548         (WebCore::AudioContext::toAudioContext):
2549         (WebCore::AudioContext::startRendering):
2550         (WebCore::AudioContext::fireCompletionEvent):
2551         * webaudio/AudioContext.h:
2552         (WebCore::AudioContext::isOfflineContext):
2553         (WebCore::AudioContext::eventTargetData):
2554         (WebCore::AudioContext::ensureEventTargetData):
2555         (WebCore::AudioContext::refEventTarget):
2556         (WebCore::AudioContext::derefEventTarget):
2557         * webaudio/AudioContext.idl:
2558         * webaudio/AudioDestinationNode.cpp:
2559         (WebCore::AudioDestinationNode::AudioDestinationNode):
2560         * webaudio/AudioDestinationNode.h:
2561         (WebCore::AudioDestinationNode::reset):
2562         (WebCore::AudioDestinationNode::numberOfChannels):
2563         * webaudio/ConvolverNode.cpp:
2564         (WebCore::ConvolverNode::setBuffer):
2565         * webaudio/DefaultAudioDestinationNode.cpp: Added.
2566         (WebCore::DefaultAudioDestinationNode::DefaultAudioDestinationNode):
2567         (WebCore::DefaultAudioDestinationNode::~DefaultAudioDestinationNode):
2568         (WebCore::DefaultAudioDestinationNode::initialize):
2569         (WebCore::DefaultAudioDestinationNode::uninitialize):
2570         (WebCore::DefaultAudioDestinationNode::startRendering):
2571         * webaudio/DefaultAudioDestinationNode.h: Added.
2572         (WebCore::DefaultAudioDestinationNode::create):
2573         (WebCore::DefaultAudioDestinationNode::sampleRate):
2574         * webaudio/OfflineAudioCompletionEvent.cpp: Added.
2575         (WebCore::OfflineAudioCompletionEvent::create):
2576         (WebCore::OfflineAudioCompletionEvent::OfflineAudioCompletionEvent):
2577         (WebCore::OfflineAudioCompletionEvent::~OfflineAudioCompletionEvent):
2578         (WebCore::OfflineAudioCompletionEvent::isOfflineAudioCompletionEvent):
2579         * webaudio/OfflineAudioCompletionEvent.h: Added.
2580         (WebCore::OfflineAudioCompletionEvent::renderedBuffer):
2581         * webaudio/OfflineAudioCompletionEvent.idl: Added.
2582         * webaudio/OfflineAudioDestinationNode.cpp: Added.
2583         (WebCore::OfflineAudioDestinationNode::OfflineAudioDestinationNode):
2584         (WebCore::OfflineAudioDestinationNode::~OfflineAudioDestinationNode):
2585         (WebCore::OfflineAudioDestinationNode::initialize):
2586         (WebCore::OfflineAudioDestinationNode::uninitialize):
2587         (WebCore::OfflineAudioDestinationNode::startRendering):
2588         (WebCore::OfflineAudioDestinationNode::renderEntry):
2589         (WebCore::OfflineAudioDestinationNode::render):
2590         (WebCore::OfflineAudioDestinationNode::notifyCompleteDispatch):
2591         (WebCore::OfflineAudioDestinationNode::notifyComplete):
2592         * webaudio/OfflineAudioDestinationNode.h: Added.
2593         (WebCore::OfflineAudioDestinationNode::create):
2594         (WebCore::OfflineAudioDestinationNode::sampleRate):
2595
2596 2011-04-05  Martin Robinson  <mrobinson@igalia.com>
2597
2598         Reviewed by Eric Seidel.
2599
2600         [Cairo] Better separate the concerns of GraphicsContextCairo
2601         https://bugs.webkit.org/show_bug.cgi?id=55150
2602
2603         Add a PlatformContextCairo which right now stores the cairo_t* for a
2604         GraphicsContextCairo. Later patches will move logic for tracking ContextShadow
2605         and image masking layers into this PlatformContextCairo class.
2606
2607         No new tests. This patch is only a code cleanup.
2608
2609         * GNUmakefile.am:
2610         * platform/graphics/GraphicsContext.h: The platform context is no longer a
2611         cairo_t, but our new class the PlatformContextCairo.
2612         * platform/graphics/cairo/ContextShadowCairo.cpp: Updated to reflect new class.j
2613         * platform/graphics/cairo/FontCairo.cpp: Ditto.
2614         * platform/graphics/cairo/GradientCairo.cpp: Ditto.
2615         * platform/graphics/cairo/GraphicsContextCairo.cpp: Mostly mechanical
2616         changes which now reference platformContext()->cr() to get the cairo_t.
2617         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: Now hold the
2618         PlatformContextCairo instead of the cairo_t.
2619         * platform/graphics/cairo/ImageBufferCairo.cpp: Update to reflect new class.
2620         * platform/graphics/cairo/ImageCairo.cpp: Ditto.
2621         * platform/graphics/cairo/PathCairo.cpp: Ditto.
2622         * platform/graphics/cairo/PlatformContextCairo.cpp: Added.
2623         * platform/graphics/cairo/PlatformContextCairo.h: Added.
2624         * platform/graphics/gtk/FontGtk.cpp: Update to reflect new class.
2625         * platform/graphics/gtk/IconGtk.cpp: Ditto.
2626         * platform/graphics/win/GraphicsContextCairoWin.cpp: Now fill out
2627         m_data with a private section containing the platform context instead of
2628         just a cairo_t.
2629         * platform/gtk/RenderThemeGtk.cpp: Update to reflect new class.
2630         * platform/gtk/WidgetRenderingContext.cpp: Ditto.
2631         (WebCore::WidgetRenderingContext::~WidgetRenderingContext): Ditto.
2632         * plugins/gtk/PluginViewGtk.cpp: Ditto.
2633
2634 2011-04-05  David Dorwin  <ddorwin@chromium.org>
2635
2636         Reviewed by David Levin.
2637
2638         Fullscreen code assumes all layers use GPU compositing when USE(ACCELERATED_COMPOSITING)
2639         https://bugs.webkit.org/show_bug.cgi?id=57400
2640
2641         Check whether the full screen renderer layer is being composited by the GPU before assuming that the backing is valid. 
2642         Accelerated compositing may be compiled in but disabled at runtime or for some elements.
2643
2644         Tests: Fullscreen layout tests on Chromium.
2645
2646         * dom/Document.cpp:
2647         (WebCore::Document::webkitWillEnterFullScreenForElement):
2648         (WebCore::Document::webkitDidEnterFullScreenForElement):
2649         (WebCore::Document::webkitWillExitFullScreenForElement):
2650
2651 2011-04-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2652
2653         Reviewed by Dirk Schulze.
2654
2655         Regression: Invalid write in SVGTextLayoutEngine
2656         https://bugs.webkit.org/show_bug.cgi?id=57721
2657
2658         Properly stop layout if all metrics object refer to zero-width/height characters,
2659         which can happen for instance when using <text font-size="0">.
2660
2661         Test: svg/text/font-size-null-assertion.svg
2662
2663         * rendering/svg/SVGTextLayoutEngine.cpp:
2664         (WebCore::SVGTextLayoutEngine::currentLogicalCharacterAttributes):
2665         (WebCore::SVGTextLayoutEngine::currentLogicalCharacterMetrics):
2666
2667 2011-04-04 MORITA Hajime  <morrita@google.com>
2668
2669         Reviewed by Ryosuke Niwa.
2670
2671         [Refactoring] SpellCheckingResult should be replaced with TextCheckingResult
2672         https://bugs.webkit.org/show_bug.cgi?id=56085
2673         
2674         Removed WebCore::SpellCheckingResult and replaced it with TextCheckingResult.
2675         This change also added TextCheckerClient::requestCheckingOfString() should have
2676         TextCheckingTypeMask as a parameter to control text checking type.
2677
2678         * WebCore.exp.in:
2679         * editing/Editor.cpp:
2680         (WebCore::Editor::replaceSelectionWithFragment):
2681         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
2682         (WebCore::Editor::textCheckingTypeMaskFor): Extracted from markAllMisspellingsAndBadGrammarInRanges()
2683         * editing/SpellChecker.cpp:
2684         (WebCore::SpellChecker::requestCheckingFor): Added a parameter.
2685         (WebCore::SpellChecker::markAt): Extracted from didCheck(), Added a check for the GrammarDetail object.
2686         (WebCore::SpellChecker::didCheck):
2687         * editing/SpellChecker.h:
2688         * loader/EmptyClients.h:
2689         (WebCore::EmptyTextCheckerClient::checkTextOfParagraph):
2690         (WebCore::EmptyTextCheckerClient::requestCheckingOfString):
2691         * platform/text/TextCheckerClient.h:
2692
2693 2011-04-04  Antti Koivisto  <antti@apple.com>
2694
2695         Reviewed by Sam Weinig.
2696
2697         Print stylesheet on nytimes.com loads too early
2698         https://bugs.webkit.org/show_bug.cgi?id=57814
2699
2700         Don't load resources with Very Low priority until there are no other resources to 
2701         load for the host (or until document is complete enough that we stop limiting requests).
2702
2703         No tests, this is  difficult to observe reliably with our current testing infrastructure.
2704         Verified working with Wireshark.
2705
2706         * loader/ResourceLoadScheduler.cpp:
2707         (WebCore::ResourceLoadScheduler::servePendingRequests):
2708         (WebCore::ResourceLoadScheduler::HostInformation::limitRequests):
2709         * loader/ResourceLoadScheduler.h:
2710
2711 2011-04-04  Steve Block  <steveblock@google.com>
2712
2713         Reviewed by Dimitri Glazkov.
2714
2715         JavaInstance should be a pure interface
2716         https://bugs.webkit.org/show_bug.cgi?id=55383
2717
2718         This patch fixes JavaInstance for V8 only.
2719
2720         It factors out a JavaInstance interface which does not use JNI
2721         types. This will allow the Java bridge to be used with objects
2722         that don't use JNI directly. The existing jobject-backed
2723         implementation is moved to a new JavaInstanceJobject class which
2724         implements the interface.
2725
2726         No new tests, refactoring only.
2727
2728         * Android.v8bindings.mk:
2729         * WebCore.gypi:
2730         * bridge/jni/JobjectWrapper.h:
2731         * bridge/jni/v8/JNIUtilityPrivate.cpp:
2732         (JSC::Bindings::jvalueToJavaValue):
2733         (JSC::Bindings::javaValueToJvalue):
2734         * bridge/jni/v8/JavaInstanceJobjectV8.cpp:
2735         (JavaInstanceJobject::JavaInstanceJobject):
2736         (JavaInstanceJobject::~JavaInstanceJobject):
2737         (JavaInstanceJobject::begin):
2738         (JavaInstanceJobject::end):
2739         (JavaInstanceJobject::getClass):
2740         (JavaInstanceJobject::invokeMethod):
2741         (JavaInstanceJobject::getField):
2742         * bridge/jni/v8/JavaInstanceJobjectV8.h: Copied from Source/WebCore/bridge/jni/v8/JavaInstanceV8.h.
2743         (JSC::Bindings::JavaInstanceJobject::javaInstance):
2744         * bridge/jni/v8/JavaInstanceV8.h:
2745         (JSC::Bindings::JavaInstance::~JavaInstance):
2746
2747 2011-04-05  Dimitri Glazkov  <dglazkov@chromium.org>
2748
2749        Reviewed by Darin Adler.
2750
2751         Move MouseEvent-dispatching logic into MouseEventDispatchMediator.
2752         https://bugs.webkit.org/show_bug.cgi?id=57639
2753
2754         Refactoring, covered by existing tests.
2755
2756         * dom/EventDispatcher.cpp:
2757         (WebCore::EventDispatcher::dispatchEvent): Moved useful assertion here
2758             from dispatchMouseEvent.
2759         (WebCore::EventDispatcher::adjustRelatedTarget): Converted into a method.
2760         * dom/EventDispatcher.h: Adjusted decls.
2761         (WebCore::EventDispatcher::node): Added.
2762         * dom/MouseEvent.cpp:
2763         (WebCore::MouseEvent::create): Moved useful assertion here from
2764             dispatchMouseEvent.
2765         (WebCore::MouseEventDispatchMediator::MouseEventDispatchMediator): Added.
2766         (WebCore::MouseEventDispatchMediator::event): Added.
2767         (WebCore::MouseEventDispatchMediator::dispatchEvent): Added.
2768         * dom/MouseEvent.h:
2769         (WebCore::MouseEvent::setRelatedTarget): Added.
2770         * dom/Node.cpp:
2771         (WebCore::Node::dispatchMouseEvent): Changed to use MouseEventDispatchMediator.
2772
2773 2011-04-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2774
2775         Reviewed by Adam Roben & Dirk Schulze.
2776
2777         text-tspan-02-b.svg from SVG 1.1 2nd edition fails
2778         https://bugs.webkit.org/show_bug.cgi?id=57831
2779
2780         We were not spanning rotation values correcty accross text children, which resulted in text-span-02-b.svg misrendering.
2781         While rewriting the rotation specific code, it came apparent that the LayoutScope concept is flawed in general and
2782         should be replaced by a global list of x/y/dx/dy/rotate values for the whole text subtree. This makes it much simpler
2783         to implement the demand that the last rotation value spans the whole scope. A follow-up patch will optimize the
2784         required memory.
2785
2786         Example:
2787         <text rotate="10,20,999,50">AB<tspan rotate="30">CDE</>FGH</text>
2788     
2789         text:   A  B  C  D  E  F  G  H
2790         rotate="10 20 30 30 30 50 50 50"
2791
2792         Tests: svg/W3C-SVG-1.1-SE/text-tspan-02-b.svg
2793                svg/text/text-midpoint-split-bug.svg
2794
2795         * rendering/RenderBlockLineLayout.cpp:     Move SVG specific midpoint creation after the non-SVG specific code that may mutate the midpoints. otherwhise we end up in an
2796         (WebCore::RenderBlock::findNextLineBreak): inconsistent state. We were intereferring with the ignoreSpaces code resulting in wrong truncations - covered by new testcase.
2797         * rendering/svg/SVGTextLayoutAttributes.cpp:
2798         (WebCore::SVGTextLayoutAttributes::reserveCapacity): Also reserveCapacity for the text metrics list (minor optimization).
2799         (WebCore::SVGTextLayoutAttributes::fillWithEmptyValue): Added helper function for use from SVGTextLayoutAttributesBuilder.
2800         (WebCore::SVGTextLayoutAttributes::appendEmptyValue): Ditto.
2801         (WebCore::safeValueAtPosition): Ditto. (Inline helper)
2802         (WebCore::SVGTextLayoutAttributes::appendSingleValueFromAttribute): Ditto.
2803         * rendering/svg/SVGTextLayoutAttributes.h: Ditto.
2804         * rendering/svg/SVGTextLayoutAttributesBuilder.cpp: Rewrite code, see explaination above.
2805         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForTextSubtree):
2806         (WebCore::processRenderSVGInlineText):
2807         (WebCore::SVGTextLayoutAttributesBuilder::collectTextPositioningElements):
2808         (WebCore::SVGTextLayoutAttributesBuilder::buildLayoutAttributesForAllCharacters):
2809         (WebCore::SVGTextLayoutAttributesBuilder::propagateLayoutAttributes):
2810         (WebCore::fillListAtPosition):
2811         (WebCore::SVGTextLayoutAttributesBuilder::fillAttributesAtPosition):
2812         * rendering/svg/SVGTextLayoutAttributesBuilder.h:
2813         (WebCore::SVGTextLayoutAttributesBuilder::TextPosition::TextPosition):
2814
2815 2011-04-05  Levi Weintraub  <leviw@chromium.org>
2816
2817         Reviewed by Ryosuke Niwa.
2818
2819         DeleteButtonController is given invalid style
2820         https://bugs.webkit.org/show_bug.cgi?id=57853
2821
2822         DeleteButtonController was assigned an invalid style that can lead to assertions
2823         in debug builds. This matches up the code with its intent.
2824
2825         No new tests as this changes nothing on release builds.
2826
2827         * editing/DeleteButtonController.cpp:
2828         (WebCore::DeleteButtonController::createDeletionUI):
2829
2830 2011-04-05  Anders Bakken  <agbakken@gmail.com>
2831
2832         Reviewed by Laszlo Gombos.
2833
2834         [Qt] EditorQt.cpp has coding-style errors
2835         https://bugs.webkit.org/show_bug.cgi?id=40260
2836         
2837         This patch does not require new test cases.
2838
2839         * editing/qt/EditorQt.cpp:
2840
2841 2011-04-05  Pavel Podivilov  <podivilov@chromium.org>
2842
2843         Reviewed by Pavel Feldman.
2844
2845         Web Inspector: go to line dialog highlights wrong line.
2846         https://bugs.webkit.org/show_bug.cgi?id=57845
2847
2848         * inspector/front-end/GoToLineDialog.js:
2849         (WebInspector.GoToLineDialog.prototype._highlightSelectedLine):
2850
2851 2011-04-05  Luke Macpherson   <macpherson@chromium.org>
2852
2853         Reviewed by Dimitri Glazkov.
2854
2855         Implement CSSPropertyDirection in CSSStyleApplyProperty
2856         https://bugs.webkit.org/show_bug.cgi?id=57608
2857
2858         No new tests required as no new functionality introduced.
2859
2860         * css/CSSStyleApplyProperty.cpp:
2861         Add implementation class for CSSPropertyDirection
2862         * css/CSSStyleSelector.cpp:
2863         Remove existing implementation for CSSPropertyDirection
2864         * css/CSSStyleSelector.h:
2865         Add getter for element
2866
2867 2011-04-05  Leandro Gracia Gil  <leandrogracia@chromium.org>
2868
2869         Reviewed by Steve Block.
2870
2871         Factoring the creation of 'FunctionOnly' callbacks in V8.
2872         https://bugs.webkit.org/show_bug.cgi?id=57760
2873
2874         This method creates a template from an existing functionality in V8GeolocationCustom.cpp
2875         to V8Utilities to be used by the custom bindings of both Geolocation and the Media Stream API.
2876
2877         No new tests. LayoutTests/fast/dom/Geolocation/argument-types.html
2878
2879         * bindings/v8/V8Utilities.cpp:
2880         (WebCore::throwTypeMismatchException):
2881         * bindings/v8/V8Utilities.h:
2882         (WebCore::createFunctionOnlyCallback):
2883         * bindings/v8/custom/V8GeolocationCustom.cpp:
2884         (WebCore::V8Geolocation::getCurrentPositionCallback):
2885         (WebCore::V8Geolocation::watchPositionCallback):
2886
2887 2011-04-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2888
2889         Reviewed by Andreas Kling.
2890
2891         Switch from Vector<UChar> to StringBuilder in bindings/
2892         https://bugs.webkit.org/show_bug.cgi?id=57838
2893
2894         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2895         (WebCore::cssPropertyName):
2896         * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
2897         (WebCore::cssPropertyInfo):
2898
2899 2011-04-05  Nikolas Zimmermann  <nzimmermann@rim.com>
2900
2901         Reviewed by Andreas Kling.
2902
2903         Switch from Vector<UChar> to StringBuilder in accessibility/
2904         https://bugs.webkit.org/show_bug.cgi?id=57837
2905
2906         * accessibility/AccessibilityObject.cpp:
2907         (WebCore::AccessibilityObject::listMarkerTextForNodeAndPosition):
2908         (WebCore::AccessibilityObject::stringForVisiblePositionRange):
2909         * accessibility/AccessibilityRenderObject.cpp:
2910         (WebCore::AccessibilityRenderObject::accessibilityDescriptionForElements):
2911
2912 2011-04-05  Andrey Adaikin  <aandrey@google.com>
2913
2914         Reviewed by Pavel Feldman.
2915
2916         Web Inspector: Scripts with syntax errors are cropped in the UI
2917         https://bugs.webkit.org/show_bug.cgi?id=57828
2918
2919         * inspector/front-end/SourceFrame.js:
2920         (WebInspector.SourceFrame.prototype.addMessageToSource):
2921
2922 2011-04-05  Alexey Proskuryakov  <ap@apple.com>
2923
2924         Reviewed by Darin Adler.
2925
2926         Remove onformchange and onforminput events/event handlers
2927         https://bugs.webkit.org/show_bug.cgi?id=55755
2928         <rdar://problem/9087969>
2929
2930         Covered by existing tests.
2931
2932         * dom/Document.h:
2933         * dom/Document.idl:
2934         * dom/Element.h:
2935         * dom/Element.idl:
2936         * dom/Event.cpp:
2937         (WebCore::Event::fromUserGesture):
2938         * dom/EventNames.h:
2939         * html/FormAssociatedElement.h:
2940         * html/HTMLAttributeNames.in:
2941         * html/HTMLElement.cpp:
2942         (WebCore::HTMLElement::parseMappedAttribute):
2943         * html/HTMLElement.h:
2944         * html/HTMLFormControlElement.h:
2945         (WebCore::HTMLFormControlElement::isEnumeratable):
2946         * html/HTMLFormElement.cpp:
2947         * html/HTMLFormElement.h:
2948         * html/HTMLFormElement.idl:
2949         * html/HTMLInputElement.h:
2950         * html/HTMLKeygenElement.h:
2951         * html/HTMLObjectElement.h:
2952         (WebCore::HTMLObjectElement::isEnumeratable):
2953         * html/HTMLOutputElement.h:
2954         (WebCore::HTMLOutputElement::isEnumeratable):
2955         * html/HTMLSelectElement.h:
2956         (WebCore::HTMLSelectElement::isEnumeratable):
2957         * html/HTMLTextAreaElement.h:
2958         (WebCore::HTMLTextAreaElement::isEnumeratable):
2959         * page/DOMWindow.h:
2960         * page/DOMWindow.idl:
2961
2962 2011-04-05  Sheriff Bot  <webkit.review.bot@gmail.com>
2963
2964         Unreviewed, rolling out r82915.
2965         http://trac.webkit.org/changeset/82915
2966         https://bugs.webkit.org/show_bug.cgi?id=57825
2967
2968         Broke 270 chromium tests on win and linux (Requested by
2969         podivilov on #webkit).
2970
2971         * rendering/RenderThemeChromiumSkia.cpp:
2972         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
2973
2974 2011-04-05  James Simonsen  <simonjam@chromium.org>
2975
2976         Reviewed by Adam Barth.
2977
2978         Stop preload scanning CSS when it&apos;s impossible to have another @import.
2979         https://bugs.webkit.org/show_bug.cgi?id=57664
2980
2981         @import statements are only allowed at the beginning of a CSS file.
2982         Only comments or @charset can precede them. After seeing anything else,
2983         abort early so that we:
2984         - don't have to parse the rest of the CSS.
2985         - don't preload something that the regular parser won't load.
2986
2987         * html/parser/CSSPreloadScanner.cpp:
2988         (WebCore::CSSPreloadScanner::scan): Terminate early if we're done with @imports.
2989         (WebCore::CSSPreloadScanner::tokenize): Terminate early if we see a {} or any style rule.
2990         (WebCore::CSSPreloadScanner::emitRule): Only @charset or @import are allowed to precede @import.
2991         * html/parser/CSSPreloadScanner.h: Add DoneParsingImportRules state.
2992
2993 2011-04-05  Takayoshi Kochi <kochi@chromium.org>
2994
2995         Reviewed by Tony Chang.
2996
2997         [chromium] Specify 'sans-serif' as a fallback to the default UI font
2998         'Arial' for non-latin UI scripts (e.g. CJK).
2999         https://bugs.webkit.org/show_bug.cgi?id=55035
3000
3001         No new tests, because it may still fail if the system is not configured
3002         properly to resolve 'sans-serif' to existing real font file, thus even
3003         manual test is hard to systematically tell it is working properly.
3004
3005         * rendering/RenderThemeChromiumSkia.cpp
3006
3007 2011-04-05  Kent Tamura  <tkent@chromium.org>
3008
3009         Reviewed by Dimitri Glazkov.
3010
3011         Setting defaultValue on a textarea with a modified value still clobbers the value
3012         https://bugs.webkit.org/show_bug.cgi?id=57636
3013
3014         If the dirty flag is true, we shouldn't update the value when the
3015         defaultValue is updated
3016
3017         Test: fast/forms/textarea-set-defaultvalue-after-value.html
3018
3019         * html/HTMLTextAreaElement.cpp:
3020         (WebCore::HTMLTextAreaElement::childrenChanged):
3021         (WebCore::HTMLTextAreaElement::setDefaultValue):
3022
3023 2011-04-04  Kent Tamura  <tkent@chromium.org>
3024
3025         Add a case label which was unexpectedly removed in r82899.
3026         https://bugs.webkit.org/show_bug.cgi?id=50661
3027
3028         * css/CSSSelector.cpp:
3029         (WebCore::CSSSelector::extractPseudoType):
3030
3031 2011-04-04  Dan Bernstein  <mitz@apple.com>
3032
3033         Reviewed by Simon Fraser.
3034
3035         <rdar://problem/7709452> Implement Default Ruby Overhang Behavior
3036         https://bugs.webkit.org/show_bug.cgi?id=49334
3037
3038         Tests: fast/ruby/overhang-horizontal.html
3039                fast/ruby/overhang-vertical.html
3040
3041         This is a first cut at ruby overhang. It allows ruby text to hang over other
3042         text of equal or smaller size. Two notable omissions are that max preferred
3043         width computation was not patched, so it will overshoot, and that overhang
3044         ignores the width of the adjoining text runs.
3045
3046         * rendering/RenderBlock.h:
3047         * rendering/RenderBlockLineLayout.cpp:
3048         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Adjust margins
3049         of ruby runs for overhang.
3050         (WebCore::RenderBlock::fitBelowFloats): Maintain the increase in line width to
3051         compensate for overhang.
3052         (WebCore::RenderBlock::findNextLineBreak): When encountering
3053         a ruby run, increase the line width to account for the fact that overhang will be
3054         collapsed.
3055         * rendering/RenderRubyRun.cpp:
3056         (WebCore::RenderRubyRun::getOverhang): Added. Allows ruby to overhang if
3057         the adjoining renderer is text with equal or smaller font size.
3058         * rendering/RenderRubyRun.h:
3059         (WebCore::toRenderRubyRun):
3060
3061 2011-04-04  David Kilzer  <ddkilzer@apple.com>
3062
3063         <http://webkit.org/b/57384> CFNetwork and WebCore load priorities should match
3064
3065         Reviewed by Alexey Proskuryakov.
3066
3067         * WebCore.exp.in: Export wkSetHTTPPipeliningMaximumPriority().
3068         * platform/mac/WebCoreSystemInterface.h:
3069         (wkSetHTTPPipeliningMaximumPriority): Added function pointer
3070         declaration.
3071         * platform/mac/WebCoreSystemInterface.mm:
3072         (wkSetHTTPPipeliningMaximumPriority): Added function pointer.
3073         * platform/network/cf/ResourceRequestCFNet.cpp:
3074         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Call
3075         wkSetHTTPPipeliningMaximumPriority() to set the maximum HTTP
3076         pipelining priority.
3077         * platform/network/cf/ResourceRequestCFNet.h:
3078         (WebCore::toResourceLoadPriority): Renamed from
3079         mapHTTPPipeliningPriorityToResourceLoadPriority().  Updated to
3080         to handle Unresolved case.
3081         (WebCore::toHTTPPipeliningPriority): Renamed from
3082         mapResourceLoadPriorityToHTTPPipeliningPriority().  Updated to
3083         handle Unresolved case.
3084         * platform/network/mac/ResourceRequestMac.mm:
3085         (WebCore::ResourceRequest::doUpdateResourceRequest): Switched to
3086         use toResourceLoadPriority().
3087         (WebCore::ResourceRequest::doUpdatePlatformRequest): Switched to
3088         use toHTTPPipeliningPriority().  Moved
3089         shouldForceHTTPPipeliningPriorityHigh() check into the argument
3090         of toHTTPPipeliningPriority() instead of hard-coding a
3091         now-incorrect value.
3092
3093 2011-04-04  MORITA Hajime  <morrita@google.com>
3094
3095         Reviewed by Kent Tamura.
3096
3097         Convert <meter> shadow DOM to a DOM-based shadow.
3098         https://bugs.webkit.org/show_bug.cgi?id=50661
3099         
3100         Eliminated a large part of <meter> custom layout code,
3101         which is replaced by a shadow tree.
3102         Note that the shadow tree is created on construction time and
3103         will remain during the host HTMLMeterElement lifecycle.
3104         
3105         * Android.mk:
3106         * CMakeLists.txt:
3107         * GNUmakefile.am:
3108         * WebCore.gypi:
3109         * WebCore.pro:
3110         * WebCore.vcproj/WebCore.vcproj:
3111         * WebCore.xcodeproj/project.pbxproj:
3112         * css/CSSMutableStyleDeclaration.cpp:
3113         (WebCore::CSSMutableStyleDeclaration::setProperty):
3114         * css/CSSMutableStyleDeclaration.h:
3115         * css/CSSSelector.cpp:
3116         (WebCore::CSSSelector::pseudoId):
3117         (WebCore::nameToPseudoTypeMap):
3118         (WebCore::CSSSelector::extractPseudoType):
3119         * css/CSSSelector.h:
3120         * css/html.css:
3121         (meter):
3122         (meter::-webkit-meter-bar):
3123         (meter::-webkit-meter-optimum-value):
3124         (meter::-webkit-meter-suboptimum-value):
3125         (meter::-webkit-meter-even-less-good-value):
3126         * html/HTMLMeterElement.cpp:
3127         (WebCore::HTMLMeterElement::~HTMLMeterElement):
3128         (WebCore::HTMLMeterElement::parseMappedAttribute):
3129         (WebCore::HTMLMeterElement::attach):
3130         (WebCore::HTMLMeterElement::valueRatio):
3131         (WebCore::HTMLMeterElement::didElementStateChange):
3132         (WebCore::HTMLMeterElement::createShadowSubtree):
3133         * html/HTMLMeterElement.h:
3134         * html/shadow/MeterShadowElement.cpp: Added.
3135         (WebCore::MeterShadowElement::MeterShadowElement):        
3136         (WebCore::MeterShadowElement::meterElement):
3137         (WebCore::MeterShadowElement::rendererIsNeeded):
3138         (WebCore::MeterBarElement::shadowPseudoId):
3139         (WebCore::MeterValueElement::shadowPseudoId):
3140         (WebCore::MeterValueElement::setWidthPercentage):
3141         * html/shadow/MeterShadowElement.h: Added.
3142         (WebCore::MeterBarElement::MeterBarElement):
3143         (WebCore::MeterBarElement::create):
3144         (WebCore::MeterValueElement::MeterValueElement):
3145         (WebCore::MeterValueElement::create):
3146         * rendering/RenderMeter.cpp:
3147         (WebCore::RenderMeter::RenderMeter):
3148         (WebCore::RenderMeter::~RenderMeter):
3149         (WebCore::RenderMeter::valueRatio):
3150         * rendering/RenderMeter.h:
3151         (WebCore::RenderMeter::renderName):
3152         (WebCore::RenderMeter::isMeter):
3153         (WebCore::RenderMeter::requiresForcedStyleRecalcPropagation):
3154         (WebCore::RenderMeter::canHaveChildren):
3155
3156 2011-04-04  Dimitri Glazkov  <dglazkov@chromium.org>
3157
3158         Reviewed by Adam Barth.
3159
3160         Introduce EventDispatchMediator abstraction, which encapsulate all
3161         non-trivial logic around firing a specific type of an event.
3162         https://bugs.webkit.org/show_bug.cgi?id=57562
3163
3164         Refactoring, covered by existing tests.
3165
3166         * dom/Event.cpp:
3167         (WebCore::EventDispatchMediator::EventDispatchMediator): Added.
3168         (WebCore::EventDispatchMediator::~EventDispatchMediator): Added.
3169         (WebCore::EventDispatchMediator::dispatchEvent): Added.
3170         (WebCore::EventDispatchMediator::event): Added.
3171         * dom/Event.h: Added decl.
3172         * dom/EventDispatcher.cpp:
3173         (WebCore::EventDispatcher::dispatchEvent): Changed to use EventDispatchMediator.
3174         * dom/EventDispatcher.h: Updated decls.
3175         * dom/KeyboardEvent.cpp:
3176         (WebCore::KeyboardEventDispatchMediator::KeyboardEventDispatchMediator): Added.
3177         (WebCore::KeyboardEventDispatchMediator::dispatchEvent): Added.
3178         * dom/KeyboardEvent.h: Updated decls
3179         * dom/Node.cpp:
3180         (WebCore::Node::dispatchEvent): Changed to use EventDispatchMediator.
3181         (WebCore::Node::dispatchKeyEvent): Changed to use KeyboardEventDispatchMediator.
3182
3183 2011-04-04  Martin Robinson  <mrobinson@igalia.com>
3184
3185         Reviewed by Xan Lopez.
3186
3187         [Cairo] Memory leak in RefPtrCairo
3188         https://bugs.webkit.org/show_bug.cgi?id=57758
3189
3190         No new tests. This just fixes a memory leak.
3191
3192         * platform/graphics/cairo/RefPtrCairo.cpp:
3193         (WTF::derefIfNotNull): Deref should unref the cairo_font_fact_t, not reference it.
3194
3195 2011-04-04  Adrienne Walker  <enne@google.com>
3196
3197         Unreviewed, rolling out r82880.
3198         http://trac.webkit.org/changeset/82880
3199         https://bugs.webkit.org/show_bug.cgi?id=50661
3200
3201         Meter elements not rendered in Chromium Linux layout tests
3202
3203         * Android.mk:
3204         * CMakeLists.txt:
3205         * GNUmakefile.am:
3206         * WebCore.gypi:
3207         * WebCore.pro:
3208         * WebCore.vcproj/WebCore.vcproj:
3209         * WebCore.xcodeproj/project.pbxproj:
3210         * css/CSSMutableStyleDeclaration.cpp:
3211         * css/CSSMutableStyleDeclaration.h:
3212         * css/CSSSelector.cpp:
3213         (WebCore::CSSSelector::pseudoId):
3214         (WebCore::nameToPseudoTypeMap):
3215         (WebCore::CSSSelector::extractPseudoType):
3216         * css/CSSSelector.h:
3217         * css/html.css:
3218         (meter):
3219         (meter::-webkit-meter):
3220         (meter::-webkit-meter-bar):
3221         (meter::-webkit-meter-optimum-value):
3222         (meter::-webkit-meter-suboptimal-value):
3223         (meter::-webkit-meter-even-less-good-value):
3224         * html/HTMLMeterElement.cpp:
3225         (WebCore::HTMLMeterElement::create):
3226         (WebCore::HTMLMeterElement::parseMappedAttribute):
3227         (WebCore::HTMLMeterElement::attach):
3228         * html/HTMLMeterElement.h:
3229         * html/shadow/MeterShadowElement.cpp: Removed.
3230         * html/shadow/MeterShadowElement.h: Removed.
3231         * rendering/RenderMeter.cpp:
3232         (WebCore::RenderMeter::RenderMeter):
3233         (WebCore::RenderMeter::~RenderMeter):
3234         (WebCore::RenderMeter::createPart):
3235         (WebCore::RenderMeter::updateFromElement):
3236         (WebCore::RenderMeter::layoutParts):
3237         (WebCore::RenderMeter::styleDidChange):
3238         (WebCore::RenderMeter::shouldHaveParts):
3239         (WebCore::RenderMeter::valueRatio):
3240         (WebCore::RenderMeter::barPartRect):
3241         (WebCore::RenderMeter::valuePartRect):
3242         (WebCore::RenderMeter::valuePseudoId):
3243         (WebCore::RenderMeter::barPseudoId):
3244         (WebCore::RenderMeter::detachShadows):
3245         (WebCore::RenderMeter::updateShadows):
3246         * rendering/RenderMeter.h:
3247         (WebCore::RenderMeter::renderName):
3248         (WebCore::RenderMeter::isMeter):
3249         (WebCore::RenderMeter::shadowAttached):
3250
3251 2011-04-04  Chang Shu  <cshu@webkit.org>
3252
3253         Reviewed by Ryosuke Niwa.
3254
3255         setContentEditable with true/false/inherit string is not working properly
3256         https://bugs.webkit.org/show_bug.cgi?id=52058
3257
3258         Move isContentEditable from HTMLElement to Node. Thus, Node provides two functions for
3259         checking editability: rendererIsEditable and isContentEdiable. The former is a fast path,
3260         which does NOT trigger layout and only checks the render style of usermodify. The latter
3261         updates the layout first to make sure the render style syncs with DOM contenteditable 
3262         attribute. Certain call sites that need to call isContentEditable rather than rendererIsEditable
3263         are also updated in the patch. But a complete fix will follow up in bug 57244.
3264
3265         This patch fixes all the failed layout tests related to set contenteditable.
3266
3267         * accessibility/AccessibilityRenderObject.cpp:
3268         (WebCore::AccessibilityRenderObject::isReadOnly):
3269         * dom/Node.cpp:
3270         (WebCore::Node::isContentEditable):
3271         (WebCore::Node::shouldUseInputMethod):
3272         * dom/Node.h:
3273         * html/HTMLElement.cpp:
3274         * html/HTMLElement.h:
3275
3276 2011-04-04  Roland Steiner  <rolandsteiner@chromium.org>
3277
3278         Reviewed by Dimitri Glazkov.
3279
3280         Bug 57689 - Extract scoping functionality from Document
3281         https://bugs.webkit.org/show_bug.cgi?id=57689
3282
3283         Moved selfOnlyRef (renamed to guardRef), element ID, image map
3284         and accesss key functionalities from Document to a new base
3285         class TreeScope.
3286
3287         TreeShared: made removedLastRef protected
3288
3289         No new tests. (refactoring)
3290
3291         * Android.mk:
3292         * CMakeLists.txt:
3293         * GNUmakefile.am:
3294         * WebCore.gypi:
3295         * WebCore.pro:
3296         * WebCore.vcproj/WebCore.vcproj:
3297         * WebCore.xcodeproj/project.pbxproj:
3298         * dom/Document.cpp:
3299         (WebCore::Document::Document):
3300         (WebCore::Document::destroyScope):
3301         (WebCore::Document::getElementById):
3302         (WebCore::Document::childrenChanged):
3303         (WebCore::Document::scheduleStyleRecalc):
3304         (WebCore::Document::attach):
3305         (WebCore::Document::detach):
3306         * dom/Document.h:
3307         (WebCore::Node::Node):
3308         * dom/DocumentOrderedMap.cpp:
3309         (WebCore::DocumentOrderedMap::get):
3310         (WebCore::DocumentOrderedMap::getElementById):
3311         (WebCore::DocumentOrderedMap::getElementByMapName):
3312         (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
3313         * dom/DocumentOrderedMap.h:
3314         * dom/DOMAllInOne.cpp:
3315         * dom/Node.cpp:
3316         (WebCore::Node::~Node):
3317         (WebCore::Node::setDocument):
3318         * dom/Node.h:
3319         * dom/TreeScope.cpp: Added.
3320         * dom/TreeScope.h: Added.
3321         * platform/TreeShared.h:
3322         (WebCore::TreeShared::removedLastRef): made protected
3323
3324 2011-04-04  MORITA Hajime  <morrita@google.com>
3325
3326         Reviewed by Dimitri Glazkov.
3327
3328         Convert <meter> shadow DOM to a DOM-based shadow.
3329         https://bugs.webkit.org/show_bug.cgi?id=50661
3330         
3331         Eliminated a large part of <meter> custom layout code,
3332         which is replaced by a shadow tree.
3333         Note that the shadow tree is created on construction time and
3334         will remain during the host HTMLMeterElement lifecycle.
3335         
3336         * Android.mk:
3337         * CMakeLists.txt:
3338         * GNUmakefile.am:
3339         * WebCore.gypi:
3340         * WebCore.pro:
3341         * WebCore.vcproj/WebCore.vcproj:
3342         * WebCore.xcodeproj/project.pbxproj:
3343         * css/CSSMutableStyleDeclaration.cpp:
3344         (WebCore::CSSMutableStyleDeclaration::setProperty):
3345         * css/CSSMutableStyleDeclaration.h:
3346         * css/CSSSelector.cpp:
3347         (WebCore::CSSSelector::pseudoId):
3348         (WebCore::nameToPseudoTypeMap):
3349         (WebCore::CSSSelector::extractPseudoType):
3350         * css/CSSSelector.h:
3351         * css/html.css:
3352         (meter):
3353         (meter::-webkit-meter-bar):
3354         (meter::-webkit-meter-optimum-value):
3355         (meter::-webkit-meter-suboptimum-value):
3356         (meter::-webkit-meter-even-less-good-value):
3357         * html/HTMLMeterElement.cpp:
3358         (WebCore::HTMLMeterElement::~HTMLMeterElement):
3359         (WebCore::HTMLMeterElement::parseMappedAttribute):
3360         (WebCore::HTMLMeterElement::attach):
3361         (WebCore::HTMLMeterElement::valueRatio):
3362         (WebCore::HTMLMeterElement::didElementStateChange):
3363         (WebCore::HTMLMeterElement::createShadowSubtree):
3364         * html/HTMLMeterElement.h:
3365         * html/shadow/MeterShadowElement.cpp: Added.
3366         (WebCore::MeterShadowElement::MeterShadowElement):        
3367         (WebCore::MeterShadowElement::meterElement):
3368         (WebCore::MeterShadowElement::rendererIsNeeded):
3369         (WebCore::MeterBarElement::shadowPseudoId):
3370         (WebCore::MeterValueElement::shadowPseudoId):
3371         (WebCore::MeterValueElement::setWidthPercentage):
3372         * html/shadow/MeterShadowElement.h: Added.
3373         (WebCore::MeterBarElement::MeterBarElement):
3374         (WebCore::MeterBarElement::create):
3375         (WebCore::MeterValueElement::MeterValueElement):
3376         (WebCore::MeterValueElement::create):
3377         * rendering/RenderMeter.cpp:
3378         (WebCore::RenderMeter::RenderMeter):
3379         (WebCore::RenderMeter::~RenderMeter):
3380         (WebCore::RenderMeter::valueRatio):
3381         * rendering/RenderMeter.h:
3382         (WebCore::RenderMeter::renderName):
3383         (WebCore::RenderMeter::isMeter):
3384         (WebCore::RenderMeter::requiresForcedStyleRecalcPropagation):
3385         (WebCore::RenderMeter::canHaveChildren):
3386
3387 2011-04-04  Martin Robinson  <mrobinson@igalia.com>
3388
3389         Reviewed by Gustavo Noronha Silva.
3390
3391         [GTK] WebGL support
3392         https://bugs.webkit.org/show_bug.cgi?id=31517
3393
3394         Add WebGL support for the GTK+ bits of WebCore.
3395
3396         No new tests. This will be covered by the existing WebGL tests once
3397         the bots are capable of running WebGL tests.
3398
3399         * GNUmakefile.am: Added new files required for WebGL support.
3400         * html/HTMLCanvasElement.cpp:
3401         (WebCore::HTMLCanvasElement::getContext): Extend #ifdef to cover GTK+ as well, which does not
3402         yet support accelerated compositing.
3403         * platform/graphics/ANGLEWebKitBridge.h: Update to reflect the fact that ANGLE isn't compiled as
3404         a framework for GTK+.
3405         * platform/graphics/GraphicsContext3D.h:
3406         (WebCore::GraphicsContext3D::platformTexture): Added a declaration of this method for Cairo.
3407         (WebCore::GraphicsContext3D::paintsIntoCanvasBuffer): Ditto.
3408         * platform/graphics/cairo/GraphicsContext3DCairo.cpp: Added.
3409         (WebCore::GraphicsContext3D::getImageData): Added.
3410         (WebCore::GraphicsContext3D::paintToCanvas): Added.
3411         * platform/graphics/cairo/OpenGLShims.cpp: Added. This file controls loading of GL extension
3412         functions dynamically. They have different names across the different vendors' GL implementations.
3413         (WebCore::lookupOpenGLFunctionAddress): Added
3414         (WebCore::openGLFunctionTable): Added
3415         (WebCore::initializeOpenGLShims): Added
3416         * platform/graphics/cairo/OpenGLShims.h: Added.
3417         * platform/graphics/gtk/DrawingBufferGtk.cpp: Added.
3418         (WebCore::DrawingBuffer::DrawingBuffer): Very generic implementation for Cairo.
3419         (WebCore::DrawingBuffer::~DrawingBuffer): Ditto.
3420         (WebCore::DrawingBuffer::didReset): Ditto.
3421         (WebCore::DrawingBuffer::platformColorBuffer): Ditto.
3422         * platform/graphics/gtk/GraphicsContext3DGtk.cpp: Added.
3423         (WebCore::GraphicsContext3D::create): Initial implementation.
3424         (WebCore::GraphicsContext3D::GraphicsContext3D): Ditto.
3425         (WebCore::GraphicsContext3D::~GraphicsContext3D): Ditto.
3426         (WebCore::GraphicsContext3D::makeContextCurrent): Ditto.
3427         (WebCore::GraphicsContext3D::platformGraphicsContext3D): Ditto.
3428         (WebCore::GraphicsContext3D::isGLES2Compliant): Ditto.
3429         * platform/graphics/gtk/GraphicsContext3DInternal.cpp: Added.
3430         (sharedDisplay): Added this shared display which is required by some
3431         display drivers.
3432         (WebCore::activeGraphicsContexts): This method keeps track of all active GraphicsContext3D
3433         contexts, in order to clean them up at exit. This prevents crashes on certain OpenGL drivers.
3434         (WebCore::GraphicsContext3DInternal::addActiveGraphicsContext): Ditto.
3435         (WebCore::GraphicsContext3DInternal::removeActiveGraphicsContext): Ditto.
3436         (WebCore::GraphicsContext3DInternal::cleanupActiveContextsAtExit): Ditto.
3437         (WebCore::GraphicsContext3DInternal::create): Figure out the best way to create an OpenGL
3438         context given the current environment.
3439         (WebCore::GraphicsContext3DInternal::createPbufferContext): Pbuffer context initializer.
3440         (WebCore::GraphicsContext3DInternal::createPixmapContext): Pixmap context initializer.
3441         (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal): Initial implementation.
3442         (WebCore::GraphicsContext3DInternal::~GraphicsContext3DInternal): Ditto.
3443         (WebCore::GraphicsContext3DInternal::makeContextCurrent): Ditto.
3444         * platform/graphics/gtk/GraphicsContext3DInternal.h: Added.
3445         * platform/graphics/opengl/Extensions3DOpenGL.cpp: Added generic implementation.
3446         (WebCore::Extensions3DOpenGL::ensureEnabled): Ditto.
3447         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3448         (WebCore::GraphicsContext3D::reshape): Test for the context using the public API rather than
3449         the private bits that are specific to the Apple port.
3450
3451 2011-04-04  Alexey Proskuryakov  <ap@apple.com>
3452
3453         Reviewed by Dan Bernstein.
3454
3455         REGRESSION (WebKit2): Caps-Lock indicator sometimes doesn't appear in WebKit2
3456         https://bugs.webkit.org/show_bug.cgi?id=51230
3457         <rdar://problem/8780989>
3458
3459         <rdar://problem/9015250> REGRESSION (WebKit2): Key events not fired for modifier keys
3460
3461         * page/EventHandler.cpp: (WebCore::EventHandler::keyEvent): Moved Caps Lock handling from
3462         WebKits to WebCore, because WebKit shouldn't be smart.
3463
3464 2011-04-04  Steve Falkenburg  <sfalken@apple.com>
3465
3466         Fix Windows build warning.
3467
3468         * WebCore.vcproj/WebCore.vcproj: Exclude EventQueue.cpp in Debug_All build.
3469
3470 2011-04-04  Adam Roben  <aroben@apple.com>
3471