2011-02-24 Zan Dobersek <zandobersek@gmail.com>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-02-24  Zan Dobersek  <zandobersek@gmail.com>
2
3         Reviewed by Eric Seidel.
4
5         [gtk] Failing collinear arcTo canvas tests
6         https://bugs.webkit.org/show_bug.cgi?id=54658
7
8         Check for collinearity of the three points that affect how arcTo call
9         results. This behavior is in accordance with the HTML standard.
10
11         No new tests added as this is already covered by at least two tests.
12
13         * platform/graphics/cairo/PathCairo.cpp:
14         (WebCore::areaOfTriangleFormedByPoints):
15         (WebCore::Path::addArcTo):
16
17 2011-02-24  Ilya Tikhonovsky  <loislo@chromium.org>
18
19         Reviewed by Pavel Feldman.
20
21         Web Inspector: There is a validator of the protocol message format.
22
23         It has two parts. InspectorBackendStub.js is the frontend part.
24         InspectorBackendDispatcher.cpp is the backend part.
25         Both parts are checking protocol message format and report the error if
26         the message has not enough fields or the types of fields do not match with
27         Inspector.idl specification. These validators are generated automatically.
28
29         In addition, we have a number of places at the backend where we check the
30         function arguments and do nothing if the arguments are invalid
31         from the business logic point of view.
32
33         This patch bring us an ability to report a custom error from such function to the frontend.
34
35         https://bugs.webkit.org/show_bug.cgi?id=54971
36
37         * inspector/CodeGeneratorInspector.pm:
38         * inspector/InjectedScriptHost.cpp:
39         * inspector/InspectorAgent.cpp:
40         * inspector/InspectorAgent.h:
41         * inspector/InspectorApplicationCacheAgent.cpp:
42         * inspector/InspectorApplicationCacheAgent.h:
43         * inspector/InspectorBrowserDebuggerAgent.cpp:
44         * inspector/InspectorBrowserDebuggerAgent.h:
45         * inspector/InspectorCSSAgent.cpp:
46         * inspector/InspectorCSSAgent.h:
47         * inspector/InspectorConsoleAgent.cpp:
48         * inspector/InspectorConsoleAgent.h:
49         * inspector/InspectorController.cpp:
50         * inspector/InspectorDOMAgent.cpp:
51         * inspector/InspectorDOMAgent.h:
52         * inspector/InspectorDOMStorageAgent.cpp:
53         * inspector/InspectorDOMStorageAgent.h:
54         * inspector/InspectorDatabaseAgent.cpp:
55         * inspector/InspectorDatabaseAgent.h:
56         * inspector/InspectorDebuggerAgent.cpp:
57         * inspector/InspectorDebuggerAgent.h:
58         * inspector/InspectorProfilerAgent.cpp:
59         * inspector/InspectorProfilerAgent.h:
60         * inspector/InspectorResourceAgent.cpp:
61         * inspector/InspectorResourceAgent.h:
62         * inspector/InspectorRuntimeAgent.cpp:
63         * inspector/InspectorRuntimeAgent.h:
64         * inspector/InspectorTimelineAgent.cpp:
65         * inspector/InspectorTimelineAgent.h:
66
67 2011-02-24  Ryosuke Niwa  <rniwa@webkit.org>
68
69         Reviewed by Ojan Vafai.
70
71         Crash when deleting inside a blockquote with a large offset
72         https://bugs.webkit.org/show_bug.cgi?id=55098
73
74         The bug was caused by inconsistency in lineBreakExistsAtPosition and breakOutOfEmptyMailBlockquotedParagraph.
75         While lineBreakExistsAtPosition was checking that a line break exists at the downstream of the given position,
76         breakOutOfEmptyMailBlockquotedParagraph wasn't using the downstream for caretPos. Fixed the bug by using
77         the downstream position to instantiate caretPos.
78
79         Co-author: Abhishek Arya <inferno@chromium.org>.
80
81         Test: editing/deleting/delete-blockquote-large-offsets.html
82
83         * editing/CompositeEditCommand.cpp:
84         (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
85
86 2011-02-24  Robert Kroeger  <rjkroege@chromium.org>
87
88         Reviewed by Darin Fisher.
89
90         Added timestamps to PlatformTouchEvent etc.
91
92         PlatformTouchEvent doesn't have a timestamp and so
93         eventSender.leapForward cannot be used for touchevent based tests.
94         This change adds a timestamp to PlatformTouchEvent and initializes
95         it in a reasonable manner on Android and Qt platforms.
96
97         [chromium] [WebCore] [android] Touch events are missing time stamps
98         https://bugs.webkit.org/show_bug.cgi?id=53510
99
100         * platform/PlatformTouchEvent.h:
101         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
102         (WebCore::PlatformTouchEvent::timestamp):
103         * platform/android/PlatformTouchEventAndroid.cpp:
104         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
105         * platform/qt/PlatformTouchEventQt.cpp:
106         (WebCore::PlatformTouchEvent::PlatformTouchEvent):
107
108 2011-02-24  Renata Hodovan  <reni@webkit.org>
109
110         Unreviewed GTK, Snow Leopard build fix for r79474.
111
112         * platform/graphics/filters/FEConvolveMatrix.cpp:
113         (WebCore::FEConvolveMatrix::setKernelUnitLength):
114         * platform/graphics/filters/FEConvolveMatrix.h:
115
116 2011-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>
117
118         Reviewed by Xan Lopez.
119
120         Use IntRect instead of a pointer to a GtkAllocation struct to avoid
121         unnecessary memory allocations.
122
123         * plugins/PluginView.h:
124         * plugins/gtk/PluginViewGtk.cpp:
125         (WebCore::PluginView::setNPWindowIfNeeded):
126         (WebCore::PluginView::plugAddedCallback):
127
128 2011-02-24  Carlos Garcia Campos  <cgarcia@igalia.com>
129
130         Unreviewed. Fix the build with GTK+ 3.
131
132         * plugins/PluginView.h:
133
134 2011-02-23  Ryosuke Niwa  <rniwa@webkit.org>
135
136         Reviewed by Darin Adler.
137
138         Refactor HTMLEquivalent into a hierachy of classes
139         https://bugs.webkit.org/show_bug.cgi?id=55025
140
141         Converted HTMLEquivalent into a class.  Some logic in removeImplicitlyStyledElement is
142         extracted as member functions of HTMLEquivalent and its subclasses.
143
144         * editing/ApplyStyleCommand.cpp:
145         (WebCore::HTMLEquivalent::create): Added.
146         (WebCore::HTMLEquivalent::~HTMLEquivalent): Added.
147         (WebCore::HTMLEquivalent::matches): Returns true if the element is an equivalent, meaning that
148         the element's implicit style affects the property of this equivalence.
149         (WebCore::HTMLEquivalent::hasAttribute): Returns true if this equivalence requires attributes;
150         e.g. color, size, dir.
151         (WebCore::HTMLEquivalent::propertyExistsInStyle): Returns true if the property of this equivalence
152         exists in the specified style. e.g. if this equivalence is for size attribute and font-size property,
153         this function returns true if the specified style has font-size property set.
154         (WebCore::HTMLEquivalent::HTMLEquivalent): Added.
155         (WebCore::HTMLEquivalent::valueIsPresentInStyle): Returns true if the specified style has the
156         implicit style of the specified element of this equivalence.
157         (WebCore::HTMLEquivalent::addToStyle): Adds the implicit style of the element of this equivalence
158         to the specified mutable style.
159         (WebCore::HTMLEquivalentValueList::create): Added.
160         (WebCore::HTMLEquivalentValueList::HTMLEquivalentValueList): Added.
161         (WebCore::HTMLEquivalentValueList::valueIsPresentInStyle): Added.
162         (WebCore::HTMLEquivalentAttribute::create): Added.
163         (WebCore::HTMLEquivalentAttribute::matches): Added.
164         (WebCore::HTMLEquivalentAttribute::hasAttribute): Added.
165         (WebCore::HTMLEquivalentAttribute::attributeName): Added.
166         (WebCore::HTMLEquivalentAttribute::HTMLEquivalentAttribute): Added.
167         (WebCore::HTMLEquivalentAttribute::valueIsPresentInStyle): Added.
168         (WebCore::HTMLEquivalentAttribute::addToStyle): Added.
169         (WebCore::HTMLEquivalentAttribute::attributeValueAsCSSValue): Added.
170         (WebCore::HTMLEquivalentFontSizeAttribute::create): Added.
171         (WebCore::HTMLEquivalentFontSizeAttribute::HTMLEquivalentFontSizeAttribute): Added.
172         (WebCore::HTMLEquivalentFontSizeAttribute::attributeValueAsCSSValue): Added.
173         (WebCore::ApplyStyleCommand::removeImplicitlyStyledElement): Uses new classes.
174
175 2011-02-23  Sheriff Bot  <webkit.review.bot@gmail.com>
176
177         Unreviewed, rolling out r79510.
178         http://trac.webkit.org/changeset/79510
179         https://bugs.webkit.org/show_bug.cgi?id=55114
180
181         It made ~200 tests crash on Qt bot (Requested by Ossy_ on
182         #webkit).
183
184         * platform/text/TextBreakIterator.h:
185         * platform/text/TextBreakIteratorICU.cpp:
186         (WebCore::lineBreakIterator):
187         * platform/text/qt/TextBreakIteratorQt.cpp:
188         (WebCore::lineBreakIterator):
189         * rendering/RenderBlock.h:
190         * rendering/RenderBlockLineLayout.cpp:
191         (WebCore::RenderBlock::layoutInlineChildren):
192         (WebCore::RenderBlock::findNextLineBreak):
193         * rendering/RenderText.cpp:
194         (WebCore::RenderText::computePreferredLogicalWidths):
195         * rendering/break_lines.cpp:
196         (WebCore::nextBreakablePosition):
197         * rendering/break_lines.h:
198         (WebCore::isBreakable):
199
200 2011-02-23  Geoffrey Garen  <ggaren@apple.com>
201
202         Reviewed by Mark Rowe.
203         
204         Used svn merge -r79502:79501 to roll out r79502 because it broke the
205         SnowLeopard and Leopard builds.
206
207         * WebCore.xcodeproj/project.pbxproj:
208         * platform/mac/HTMLConverter.h: Removed.
209         * platform/mac/HTMLConverter.mm: Removed.
210         * platform/mac/PasteboardMac.mm:
211         (WebCore::Pasteboard::writeSelection):
212
213 2011-02-23  Beth Dakin  <bdakin@apple.com>
214
215         Reviewed by Dan Bernstein.
216
217         Fix for <rdar://problem/9002157> Garbage in the bottom right corner of the window 
218         when scrolling
219
220         When there is both a horizontal and a vertical scrollbar, it is necessary to 
221         include the space between them in the invalidation.
222         * platform/ScrollableArea.cpp:
223         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
224
225 2011-02-23  Ned Holbrook  <nholbrook@apple.com>
226
227         Reviewed by Dan Bernstein.
228
229         Minimize calls to ubrk_setText()
230         https://bugs.webkit.org/show_bug.cgi?id=54912
231         <rdar://problem/9032774>
232
233         Avoid calling ubrk_setText() once per call to isBreakable() by using a LazyLineBreakIterator, which defers
234         break iterator creation until needed. This requires replacing the global line break iterator primitive with a
235         version that can be nested, since in some cases two iterators may need to be outstanding. In particular,
236         layoutInlineChildren() may indirectly call computePreferredLogicalWidths() and each may need an iterator.
237         In a test with a paragraph of Japanese text, this reduced the number of ubrk_setText() calls from 164 to 1.
238
239         * platform/text/TextBreakIterator.h: Add LazyLineBreakIterator.
240         (WebCore::LazyLineBreakIterator::LazyLineBreakIterator):
241         (WebCore::LazyLineBreakIterator::~LazyLineBreakIterator):
242         (WebCore::LazyLineBreakIterator::string):
243         (WebCore::LazyLineBreakIterator::length):
244         (WebCore::LazyLineBreakIterator::get):
245         (WebCore::LazyLineBreakIterator::reset):
246         * platform/text/TextBreakIteratorICU.cpp: Replace lineBreakIterator() primitive with acquireLineBreakIterator()/releaseLineBreakIterator().
247         (WebCore::acquireLineBreakIterator):
248         (WebCore::releaseLineBreakIterator):
249         * platform/text/qt/TextBreakIteratorQt.cpp: Ditto TextBreakIteratorICU.cpp.
250         (WebCore::acquireLineBreakIterator):
251         (WebCore::releaseLineBreakIterator):
252         * rendering/RenderBlock.h:
253         * rendering/RenderBlockLineLayout.cpp:
254         (WebCore::RenderBlock::layoutInlineChildren): Pass a mapping of RenderText to LazyLineBreakIterator from one call of findNextLineBreak() to the next.
255         (WebCore::RenderBlock::findNextLineBreak): Use said mapping, resetting LazyLineBreakIterator for any newly-encountered RenderText.
256         * rendering/RenderText.cpp: Use a local LazyLineBreakIterator.
257         (WebCore::RenderText::computePreferredLogicalWidths):
258         * rendering/break_lines.cpp: Accept LazyLineBreakIterator rather than TextBreakIterator.
259         (WebCore::nextBreakablePosition):
260         * rendering/break_lines.h: Accept LazyLineBreakIterator rather than TextBreakIterator.
261         (WebCore::isBreakable):
262
263 2011-02-23  Anders Carlsson  <andersca@apple.com>
264
265         Fix build.
266
267         * platform/mac/HTMLConverter.h:
268
269 2011-02-17  Enrica Casucci  <enrica@apple.com>
270
271         Reviewed by Darin Adler.
272
273         REGRESSION: Copied content loses formatting on paste to external apps.
274         https://bugs.webkit.org/show_bug.cgi?id=47615
275         <rdar://problem/9001214>
276
277         This patch adds a way for WebKit2 to create NSAttributedStrings from
278         a DOM range without using the AppKit api initWithDOMRange that internally
279         needs to access the WebView. The NSAttributedString is needed to create
280         RTF formats in the pasteboard.
281         This is to be considered a first step, since in the future we want to have
282         an implementation based on the TextIterator.
283         
284         * WebCore.xcodeproj/project.pbxproj: Added new file.
285         * platform/mac/HTMLConverter.h: Added.
286         * platform/mac/HTMLConverter.mm: Added.
287         * platform/mac/PasteboardMac.mm:
288         (WebCore::Pasteboard::writeSelection): We now use WebHTMLConverter
289         class for WebKit2 to create the NSAttributedString from the DOM range.
290
291 2011-02-23  David Hyatt  <hyatt@apple.com>
292
293         Reviewed by Sam Weinig.
294
295         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
296
297         Patch computePositionedLogicalHeightUsing to be writing-mode-aware. 
298
299         * rendering/RenderBox.cpp:
300         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
301         (WebCore::RenderBox::computePositionedLogicalHeightUsing):
302         * rendering/RenderBox.h:
303
304 2011-02-23  Martin Robinson  <mrobinson@igalia.com>
305
306         Reviewed by Xan Lopez.
307
308         [Gtk] Flash item placed on wrong location right after load
309         https://bugs.webkit.org/show_bug.cgi?id=37769
310
311         If a plugin is GtkSocket based, do not set the widget allocation until the
312         window is actually embedded in the parent. When the window is embedded, use
313         any pending allocation for the call to gtk_widget_size_allocate. This bug
314         seems to only appear with Flash movies loaded as the src of an iframe.
315
316         * manual-tests/plugins/windowed-in-iframe.html: Added.
317         * plugins/PluginView.h: Add a few new members to track window embedding state.
318         * plugins/gtk/PluginViewGtk.cpp:
319         (WebCore::PluginView::setNPWindowIfNeeded): If this is a GtkSocket-based plugin
320         wait until the plug-added signal fires to set the widget allocation.
321         (WebCore::PluginView::plugAddedCallback): Updated to be a static method, so that
322         we can access private members. If there is a pending allocation, call gtk_widget_size_allocate
323         with it.
324         (WebCore::PluginView::platformStart): Update the plugin state, so that we do not
325         call gtk_widget_size_allocate if the window isn't embedded.
326
327 2011-02-18  Enrica Casucci  <enrica@apple.com>
328
329         Reviewed by Adam Roben.
330
331         Mac OS X Services are not available for selected text in WebKit2 windows.
332         https://bugs.webkit.org/show_bug.cgi?id=54777
333         <rdar://problem/8666428>
334
335         The changes to WebCore for this bug are limited to exposing a new
336         entry point in the Editor class to write to the pasteboard and
337         changes to the Pasteboard class to write the selection with
338         a given set of pasteboard types. The majority of the work
339         is done in WebKit2.
340         
341         * WebCore.exp.in:
342         * editing/Editor.h:
343         * editing/mac/EditorMac.mm: Added entrypoint to write the
344         selection to the pasteboard.
345         (WebCore::Editor::writeSelectionToPasteboard):
346         * platform/Pasteboard.h:
347         * platform/mac/ClipboardMac.mm:
348         (WebCore::ClipboardMac::writeRange):
349         * platform/mac/PasteboardMac.mm:
350         (WebCore::Pasteboard::writeSelection):
351
352 2011-02-23  David Hyatt  <hyatt@apple.com>
353
354         Reviewed by Simon Fraser.
355
356         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
357
358         Patch computePositionedLogicalHeight to be writing-mode-aware.  Functions it calls have not been
359         patched yet, so still not testable in a vertical text environment.
360
361         * rendering/RenderBox.cpp:
362         (WebCore::RenderBox::computePositionedLogicalHeight):
363
364 2011-02-23  David Hyatt  <hyatt@apple.com>
365
366         Reviewed by Sam Weinig.
367
368         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
369
370         Patch computePositionedLogicalWidthUsing to be writing-mode-aware. Still not testable in a vertical text
371         environment, since height computations will overwrite all values computed here until they are patched as well.
372
373         * rendering/RenderBox.cpp:
374         (WebCore::RenderBox::computePositionedLogicalWidthUsing):
375         * rendering/RenderBox.h:
376
377 2011-02-23  Renata Hodovan  <reni@webkit.org>
378
379         Reviewed by Nikolas Zimmermann.
380
381         FEColorMatrixElement changes doesn't require relayout
382         https://bugs.webkit.org/show_bug.cgi?id=54880
383
384         When the FEColorMatrixElement receives an update message but the given value remains the same we don't need
385         to relayout the filter.
386
387         No new tests are needed because this modificiation is covered by the dynamic update tests of FEColorMatrix.
388
389         * platform/graphics/filters/FEColorMatrix.cpp:
390         (WebCore::FEColorMatrix::setType):
391         (WebCore::FEColorMatrix::setValues):
392         * platform/graphics/filters/FEColorMatrix.h:
393         * svg/SVGFEColorMatrixElement.cpp:
394         (WebCore::SVGFEColorMatrixElement::setFilterEffectAttribute):
395         (WebCore::SVGFEColorMatrixElement::svgAttributeChanged):
396         * svg/SVGFEColorMatrixElement.h:
397
398 2011-02-23  James Robinson  <jamesr@chromium.org>
399
400         REGRESSION(79466): fast/parser/test-unicode-characters-in-attribute-name.html fails
401
402         Reverts TextCodecUTF16.cpp back to pre-79466 state.  The crash fix in 79466 was for UTF-8 only, it also caused the UTF16 path to fail.
403
404         * platform/text/TextCodecUTF16.cpp:
405         (WebCore::newStreamingTextDecoderUTF16LE):
406         (WebCore::newStreamingTextDecoderUTF16BE):
407         (WebCore::TextCodecUTF16::decode):
408         (WebCore::TextCodecUTF16::encode):
409
410 2011-02-23  David Hyatt  <hyatt@apple.com>
411
412         Reviewed by Sam Weinig.
413
414         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
415
416         Patch computePositionedLogicalWidth to be writing-mode-aware.  Functions it calls have not been
417         patched yet, so still not testable in a vertical text environment.
418
419         * rendering/RenderBox.cpp:
420         (WebCore::RenderBox::computePositionedLogicalWidth):
421
422 2011-02-23  James Robinson  <jamesr@chromium.org>
423
424         Unreviewed, rolling out r79428.
425         http://trac.webkit.org/changeset/79428
426         https://bugs.webkit.org/show_bug.cgi?id=54714
427
428         Does not work in the Chromium sandbox
429
430         * websockets/WebSocketHandshake.cpp:
431         (WebCore::generateSecWebSocketKey):
432         (WebCore::generateKey3):
433
434 2011-02-23  David Hyatt  <hyatt@apple.com>
435
436         Reviewed by Sam Weinig.
437
438         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
439         
440         Add logical accessors for the left()/right()/top()/bottom() properties on the RenderStyle.
441
442         * rendering/style/RenderStyle.h:
443         (WebCore::InheritedFlags::logicalLeft):
444         (WebCore::InheritedFlags::logicalRight):
445         (WebCore::InheritedFlags::logicalTop):
446         (WebCore::InheritedFlags::logicalBottom):
447
448 2011-02-23  Darin Adler  <darin@apple.com>
449
450         Reviewed by Alexey Proskuryakov.
451
452         Fix crash seen in one of the regression tests.
453
454         * platform/text/TextCodecUTF16.cpp:
455         (WebCore::TextCodecUTF16::decode): Handle case where we did not decode any new data,
456         we were not told to flush, and we had a buffered byte. The assertion here was incorrect,
457         and the correct thing to do is nothing.
458
459 2011-02-23  Sergey Glazunov  <serg.glazunov@gmail.com>
460
461         Reviewed by James Robinson.
462
463         SVGCursorElement::removeClient() should verify that its argument is connected with
464         the proper cursor element.
465         https://bugs.webkit.org/show_bug.cgi?id=54979
466
467         Test: svg/css/multiple-cursors-crash.html
468
469         * svg/SVGCursorElement.cpp:
470         (WebCore::SVGCursorElement::removeClient):
471
472 2011-02-23  Renata Hodovan  <reni@webkit.org>
473
474         Reviewed by Darin Adler.
475
476         FEConvolveMatrixElement changes doesn't require relayout
477         https://bugs.webkit.org/show_bug.cgi?id=55067
478
479         When the FEConvolveMatrixElement receives an update message but the
480         given value remains the same we don't need to relayout the filter.
481
482         No new tests are needed because this modificiation is covered by the
483         dynamic update tests of FEConvolveMatrix.
484
485         * platform/graphics/filters/FEConvolveMatrix.cpp:
486         (WebCore::FEConvolveMatrix::setDivisor):
487         (WebCore::FEConvolveMatrix::setBias):
488         (WebCore::FEConvolveMatrix::setTargetOffset):
489         (WebCore::FEConvolveMatrix::edgeMode):
490         (WebCore::FEConvolveMatrix::setEdgeMode):
491         (WebCore::FEConvolveMatrix::setPreserveAlpha):
492         * platform/graphics/filters/FEConvolveMatrix.h:
493         * svg/SVGFEConvolveMatrixElement.cpp:
494         (WebCore::SVGFEConvolveMatrixElement::setFilterEffectAttribute):
495         (WebCore::SVGFEConvolveMatrixElement::svgAttributeChanged):
496         * svg/SVGFEConvolveMatrixElement.h:
497
498 2011-02-23  Geoffrey Garen  <ggaren@apple.com>
499
500         Reviewed by Darin Adler.
501
502         Rolled back in r79367 with SnowLeopard Release bot crash fixed.
503         https://bugs.webkit.org/show_bug.cgi?id=54999
504
505         * ForwardingHeaders/wtf/DoublyLinkedList.h: Added.
506
507 2011-02-23  Dimitri Glazkov  <dglazkov@chromium.org>
508
509         Reviewed by Darin Adler.
510
511         Add more thorough manual test coverage for media controls
512         https://bugs.webkit.org/show_bug.cgi?id=55006
513
514         * manual-tests/media-controls.html: Added.
515
516 2011-02-23  Darin Adler  <darin@apple.com>
517
518         Fix build.
519
520         * platform/text/TextCodecUTF16.cpp:
521         (WebCore::TextCodecUTF16::decode): Removed stray unused local variable.
522
523 2011-02-23  Dimitri Glazkov  <dglazkov@chromium.org>
524
525         Reviewed by Darin Adler.
526
527         Setting shadow host should also attach and set inDocument, just like
528         appending/inserting a child.
529         https://bugs.webkit.org/show_bug.cgi?id=55065
530
531         No new tests, because functionality is not yet used.
532
533         * dom/Element.cpp:
534         (WebCore::Element::setShadowRoot): Add attaching and setting inDocument
535             for the shadow DOM subtree, like the host.
536
537 2011-02-23  David Hyatt  <hyatt@apple.com>
538
539         Reviewed by Darin Adler and Simon Fraser.
540
541         https://bugs.webkit.org/show_bug.cgi?id=46500, make positioned elements work with vertical text.
542         
543         - Add clientLogicalWidth and clientLogicalHeight that call the correct clientWidth or clientHeight based off
544         writing-mode.
545         - Patch clientLogicalBottom to use clientLogicalHeight.
546         - Convert containingBlockWidthForPositioned and containingBlockHeightForPositioned to be logical and to make use of
547         clientLogicalHeight/Width.  Also make them able to handle perpendicular writing mode containining blocks.
548         - Refine containingBlockLogicalHeightForPositioned to match containingBlockLogicalWidthForPositioned more closely.
549         
550         * rendering/RenderBox.cpp:
551         (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
552         (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
553         (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):
554         (WebCore::RenderBox::containingBlockLogicalHeightForPositioned):
555         (WebCore::RenderBox::computePositionedLogicalWidth):
556         (WebCore::RenderBox::computePositionedLogicalHeight):
557         (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
558         (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
559         * rendering/RenderBox.h:
560         (WebCore::RenderBox::clientLogicalWidth):
561         (WebCore::RenderBox::clientLogicalHeight):
562         (WebCore::RenderBox::clientLogicalBottom):
563
564 2011-02-23  Darin Adler  <darin@apple.com>
565
566         Reviewed by Alexey Proskuryakov.
567
568         REGRESSION (new UTF-8 decoder): Reproducible crash on alltommac.se
569         https://bugs.webkit.org/show_bug.cgi?id=54862
570
571         Correct handling of end of buffer partial sequence in UTF-8 and UTF-16 decoders when flushing with zero length
572         https://bugs.webkit.org/show_bug.cgi?id=54444
573
574         No new tests at this time. I will add some tests later, but since multiple
575         people are hitting this I wanted to get it in as quickly as possible.
576
577         * platform/text/TextCodecUTF16.cpp:
578         (WebCore::TextCodecUTF16::decode): Tweaked coding style quite a bit.
579         Removed special case for zero length now that main code handles it
580         correctly. Used words instead of abbreviations for local variable names.
581         Added error handling for a trailing byte.
582
583         * platform/text/TextCodecUTF8.cpp:
584         (WebCore::TextCodecUTF8::consumePartialSequenceByte): Added. Helper function
585         to make the handleError and handlePartialSequence functions clearer.
586         (WebCore::TextCodecUTF8::handleError): Added. Helper function to make the
587         handlePartialSequence clearer.
588         (WebCore::TextCodecUTF8::handlePartialSequence): Added. Factored out code for
589         the partial sequence case. Making this a separate function probably helps make
590         the fast case a little faster. This new version handles more cases correctly,
591         which is what fixes the crashes we were seeing. In particular, it no longer
592         assumes that the partial sequence is truly partial, because there are cases
593         where we end up handling complete sequences here, such as when a complete
594         sequence is inside a malformed partial sequence.
595         (WebCore::TextCodecUTF8::decode): Removed partial sequence code and made this
596         call handlePartialSequence instead. Could be streamlined if we double checked
597         that passing a reference to "destination" and "source" doesn't harm code
598         generation too much, so perhaps someone can do that research on a few compilers
599         later and clean this up. Removed special case for zero length now that the
600         main code handles that correctly.
601
602         * platform/text/TextCodecUTF8.h: Added declarations for new functions.
603         Made partial sequence buffer large enough to hold a whole sequence so we can
604         use it to complete and decode a sequence in place.
605
606 2011-02-23  Abhishek Arya  <inferno@chromium.org>
607
608         Reviewed by Dave Hyatt.
609
610         Make clear float lineboxes resilient against overflows.        
611         https://bugs.webkit.org/show_bug.cgi?id=54995
612
613         We try to dirty everthing in block range if we have a negative
614         logical bottom, or if our logical bottom is less than our logical
615         top, or if our logical top is equal to INT_MAX. Plus, we also dirty
616         a linebox if its block logical height is less than zero.
617         Tests: fast/overflow/overflow-height-float-not-removed-crash2.html
618                fast/overflow/overflow-height-float-not-removed-crash3.html
619
620         * rendering/RenderBlock.cpp:
621         (WebCore::RenderBlock::removeFloatingObject):
622         (WebCore::RenderBlock::markLinesDirtyInBlockRange):
623         * rendering/RootInlineBox.cpp:
624         (WebCore::RootInlineBox::alignBoxesInBlockDirection): remove the hack
625         added in r69735. we don't need this anymore since we are making the
626         underlying float dirty logic resilient.
627
628 2011-02-22  Kenneth Russell  <kbr@google.com>
629
630         Reviewed by Darin Fisher.
631
632         Per-page minimum DOMTimer interval broken for repeating timers
633         https://bugs.webkit.org/show_bug.cgi?id=55014
634
635         When the minimum timer interval is adjusted, if the timer is
636         repeating, cause its repeat interval to be set to its original
637         timeout clamped to the new minimum interval.
638
639         Tests: fast/dom/timer-increase-min-interval-repeating.html
640                fast/dom/timer-increase-then-decrease-min-interval-repeating.html
641
642         * page/DOMTimer.cpp:
643         (WebCore::DOMTimer::adjustMinimumTimerInterval):
644
645 2011-02-23  Dan Bernstein  <mitz@apple.com>
646
647         Reviewed by Maciej Stachowiak.
648
649         Fix two issues seen in WebKit2 views on Mac:
650         - <rdar://problem/8867831> WebKit2: Insertion points in form fields no longer blink
651         - <rdar://problem/8950362> REGRESSION (WebKit2): Cannot deselect text
652
653         * page/EventHandler.cpp:
654         (WebCore::EventHandler::EventHandler): Initialize m_activationEventNumber
655         to -1. Since WebKit2 doesnÕt support non-activating clicks yet (<http://webkit.org/b/55053>
656         <rdar://problem/9042197>) and doesnÕt send event numbers, all events were considered to be
657         window-activating events. This in turn prevented them from clearing the selection and resuming
658         caret blinking on mouse up.
659
660 2011-02-23  Jacob Dinu  <dinu.jacob@nokia.com>
661
662         Reviewed by Pavel Feldman.
663
664         Web Inspector: Linking error for some InspectorController symbols
665         https://bugs.webkit.org/show_bug.cgi?id=54953
666
667         Moved out hideHighlight definition from under JAVASCRIPT_DEBUGGER flag 
668
669         * inspector/InspectorController.cpp:
670         (WebCore::InspectorController::hideHighlight):
671         (WebCore::InspectorController::resume):
672
673 2011-02-23  Hans Wennborg  <hans@chromium.org>
674
675         IndexedDB: Move some SQL code into IDBBackingStore
676         https://bugs.webkit.org/show_bug.cgi?id=54889
677
678         The idea is to gather all the SQL logic into IDBBackingStore.
679
680         No new functionality, so no new tests.
681
682         * storage/IDBBackingStore.cpp:
683         (WebCore::IDBBackingStore::IDBBackingStore):
684         (WebCore::runCommands):
685         (WebCore::createTables):
686         (WebCore::createMetaDataTable):
687         (WebCore::getDatabaseSchemaVersion):
688         (WebCore::migrateDatabase):
689         (WebCore::IDBBackingStore::open):
690         (WebCore::IDBBackingStore::extractIDBDatabaseMetaData):
691         (WebCore::IDBBackingStore::setIDBDatabaseMetaData):
692         (WebCore::IDBBackingStore::getObjectStores):
693         (WebCore::IDBBackingStore::createObjectStore):
694         (WebCore::doDelete):
695         (WebCore::IDBBackingStore::deleteObjectStore):
696         (WebCore::whereSyntaxForKey):
697         (WebCore::bindKeyToQuery):
698         (WebCore::IDBBackingStore::getObjectStoreRecord):
699         (WebCore::bindKeyToQueryWithNulls):
700         (WebCore::IDBBackingStore::putObjectStoreRecord):
701         (WebCore::IDBBackingStore::deleteIndexDataForRecord):
702         (WebCore::IDBBackingStore::putIndexDataForRecord):
703         (WebCore::IDBBackingStore::createIndex):
704         (WebCore::IDBBackingStore::deleteIndex):
705         (WebCore::IDBBackingStore::clearObjectStore):
706         * storage/IDBBackingStore.h:
707         * storage/IDBDatabaseBackendImpl.cpp:
708         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
709         (WebCore::IDBDatabaseBackendImpl::createObjectStoreInternal):
710         (WebCore::IDBDatabaseBackendImpl::deleteObjectStoreInternal):
711         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
712         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
713         * storage/IDBFactoryBackendImpl.cpp:
714         (WebCore::IDBFactoryBackendImpl::IDBFactoryBackendImpl):
715         (WebCore::IDBFactoryBackendImpl::addIDBBackingStore):
716         (WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
717         (WebCore::IDBFactoryBackendImpl::open):
718         * storage/IDBFactoryBackendImpl.h:
719         * storage/IDBObjectStoreBackendImpl.cpp:
720         (WebCore::IDBObjectStoreBackendImpl::getInternal):
721         (WebCore::IDBObjectStoreBackendImpl::putInternal):
722         (WebCore::IDBObjectStoreBackendImpl::clearInternal):
723         (WebCore::populateIndex):
724         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
725         (WebCore::IDBObjectStoreBackendImpl::deleteIndexInternal):
726
727 2011-02-23  Siddharth Mathur  <siddharth.mathur@nokia.com>
728
729         Reviewed by Laszlo Gombos.
730
731         [Qt] Fix the Symbian build after r79334
732         https://bugs.webkit.org/show_bug.cgi?id=55044
733
734         No new tests as there is no new functionality.
735
736         * WebCore.pri: Reorder symbian blocks to make sure that
737         system-sqlite is set before it is tested.
738
739         Copy the rules from JavaScriptCore.pri for defineTest().
740
741 2011-02-23  Patrick Gansterer  <paroga@webkit.org>
742
743         Reviewed by Alexey Proskuryakov.
744
745         Use AtomicString::fromUTF8 instead of String::fromUTF8 for AtomicStrings
746         https://bugs.webkit.org/show_bug.cgi?id=54992
747
748         * websockets/WebSocketHandshake.cpp:
749         (WebCore::WebSocketHandshake::readHTTPHeaders):
750
751 2011-02-23  Patrick Gansterer  <paroga@webkit.org>
752
753         Reviewed by Andreas Kling.
754
755         [CMake] Move platform dependent files out of main CMakeLists.txt
756         https://bugs.webkit.org/show_bug.cgi?id=53891
757
758         Apple Windows port does not use the image decoders,
759         so move them into the platform specific CMake files.
760
761         * CMakeLists.txt:
762         * CMakeListsEfl.txt:
763         * CMakeListsWinCE.txt:
764
765 2011-02-21  Stephen White  <senorblanco@chromium.org>
766
767         Reviewed by Kenneth Russell.
768
769         Jittering when animating a rotated image
770         https://bugs.webkit.org/show_bug.cgi?id=50775
771
772         Since Skia does not seem to suffer from pixel cracks when scaling to
773         non-integral sizes the way CG does, no-op roundToDevicePixels on the
774         Skia implementation.
775
776         * platform/graphics/skia/GraphicsContextSkia.cpp:
777         (WebCore::GraphicsContext::roundToDevicePixels):
778
779 2011-02-23 Patrick Gansterer <paroga@webkit.org>
780
781         Reviewed by Andreas Kling.
782
783         [WINCE] Get rid of TemporaryLinkStubs.cpp
784         https://bugs.webkit.org/show_bug.cgi?id=54825
785
786         * CMakeListsWinCE.txt:
787         * platform/network/win/CookieStorageWin.cpp: Copied from platform/wince/TemporaryLinkStubs.cpp.
788         * platform/wince/TemporaryLinkStubs.cpp: Removed.
789
790 2011-02-23  Patrick Gansterer  <paroga@webkit.org>
791
792         Reviewed by Darin Adler.
793
794         Rename PLATFORM(CF) to USE(CF)
795         https://bugs.webkit.org/show_bug.cgi?id=53540
796
797         * WebCore.gyp/WebCore.gyp:
798         * editing/SmartReplace.cpp:
799         * editing/SmartReplaceICU.cpp:
800         * loader/MainResourceLoader.cpp:
801         (WebCore::MainResourceLoader::didReceiveResponse):
802         (WebCore::MainResourceLoader::didReceiveData):
803         (WebCore::MainResourceLoader::didFinishLoading):
804         (WebCore::MainResourceLoader::didFail):
805         * loader/archive/ArchiveFactory.cpp:
806         (WebCore::archiveMIMETypes):
807         * platform/FileSystem.h:
808         * platform/KURL.h:
809         * platform/KURLGoogle.cpp:
810         * platform/RunLoopTimer.h:
811         * platform/SharedBuffer.cpp:
812         * platform/SharedBuffer.h:
813         * platform/UUID.cpp:
814         (WebCore::createCanonicalUUIDString):
815         * platform/network/ResourceHandle.h:
816         * platform/network/ResourceRequestBase.h:
817         * platform/network/curl/ResourceHandleCurl.cpp:
818         * platform/network/curl/ResourceHandleManager.cpp:
819         (WebCore::certificatePath):
820         * platform/text/cf/StringCF.cpp:
821         * platform/text/cf/StringImplCF.cpp:
822         * platform/win/BString.cpp:
823         * platform/win/BString.h:
824         * platform/win/ClipboardUtilitiesWin.cpp:
825         (WebCore::getWebLocData):
826         (WebCore::getURL):
827         (WebCore::getClipboardData):
828         * platform/win/ClipboardWin.cpp:
829         (WebCore::writeFileToDataObject):
830         * platform/win/SearchPopupMenuWin.cpp:
831         (WebCore::SearchPopupMenuWin::enabled):
832         (WebCore::SearchPopupMenuWin::saveRecentSearches):
833         (WebCore::SearchPopupMenuWin::loadRecentSearches):
834
835 2011-02-23  Benjamin Kalman  <kalman@chromium.org>
836
837         Reviewed by Ojan Vafai.
838
839         Moving or selecting backwards by words jumps to start of contenteditable region if contenteditable=false span is encountered
840         https://bugs.webkit.org/show_bug.cgi?id=51001
841
842         Test: editing/selection/extend-backward-by-word-over-non-editable.html
843
844         Revert some previous changes (the TextIteratorEndsAtEditingBoundary text iteration behaviour) which caused this
845         bug in the first place, and fix SimplifiedBackwardsTextIterator's iteration range check as an alternative fix.
846
847         The original bug was that double-clicking on an inline editable span at the start of a paragraph would clear the
848         selection (webkit.org/b/36360).  This was caused by upstream/downstream VisbiblePosition complications.  To fix,
849         refuse to iterate beyond the start node (rather than refusing to iterate across editable boundaries, which
850         causes this bug).
851
852         To see why this is correct, and to make it clearer that is indeed what is happening, the text iterator code has
853         been slightly restructured to express the invariant that the iterator will never advance past the start node.
854
855         * editing/TextIterator.cpp:
856         (WebCore::TextIterator::TextIterator): Remove references to TextIterationEndsAtEditing boundary.
857         (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): Remove m_pastStartNode as the
858         mechanism for iteration range checking, and use a flag m_havePassedStartNode instead.
859         (WebCore::SimplifiedBackwardsTextIterator::advance): Clean up, use advanceRespectingRange and
860         m_havePassedStartNode for iteration range checking rather than m_pastStartNode.
861         (WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): The new way of modifying m_node
862         which updates m_havePassedStartNode and refuses to continue when it becomes true.
863         * editing/TextIterator.h: Remove TextIteratorEndsAtEditingBoundary, update for new/removed prototypes and
864         member variables.
865         * editing/visible_units.cpp:
866         (WebCore::previousBoundary): Remove references to TextIteratorEndsAtEditingBoundary.
867
868 2011-02-23  Fumitoshi Ukai  <ukai@chromium.org>
869
870         Reviewed by Adam Barth.
871
872         WebSocket uses insecure random numbers
873         https://bugs.webkit.org/show_bug.cgi?id=54714
874
875         * websockets/WebSocketHandshake.cpp:
876         (WebCore::randomNumberLessThan):
877         (WebCore::generateSecWebSocketKey):
878         (WebCore::generateKey3):
879
880 2011-02-21  Hans Wennborg  <hans@chromium.org>
881
882         Reviewed by Jeremy Orlow.
883
884         IndexedDB: Rename IDBSQLiteDatabase to IDBBackingStore
885         https://bugs.webkit.org/show_bug.cgi?id=54864
886
887         No new functionality, so no new tests.
888
889         * GNUmakefile.am:
890         * WebCore.gypi:
891         * storage/IDBBackingStore.cpp:
892         (WebCore::IDBBackingStore::IDBBackingStore):
893         (WebCore::IDBBackingStore::~IDBBackingStore):
894         * storage/IDBBackingStore.h:
895         (WebCore::IDBBackingStore::create):
896         (WebCore::IDBBackingStore::db):
897         * storage/IDBCursorBackendImpl.cpp:
898         (WebCore::IDBCursorBackendImpl::IDBCursorBackendImpl):
899         (WebCore::IDBCursorBackendImpl::currentRowExists):
900         (WebCore::IDBCursorBackendImpl::database):
901         * storage/IDBCursorBackendImpl.h:
902         (WebCore::IDBCursorBackendImpl::create):
903         * storage/IDBDatabaseBackendImpl.cpp:
904         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
905         (WebCore::IDBDatabaseBackendImpl::sqliteDatabase):
906         (WebCore::IDBDatabaseBackendImpl::createObjectStore):
907         (WebCore::IDBDatabaseBackendImpl::setVersionInternal):
908         (WebCore::IDBDatabaseBackendImpl::loadObjectStores):
909         * storage/IDBDatabaseBackendImpl.h:
910         (WebCore::IDBDatabaseBackendImpl::create):
911         * storage/IDBFactoryBackendImpl.cpp:
912         (WebCore::IDBFactoryBackendImpl::removeIDBBackingStore):
913         (WebCore::openSQLiteDatabase):
914         (WebCore::IDBFactoryBackendImpl::open):
915         * storage/IDBFactoryBackendImpl.h:
916         * storage/IDBIndexBackendImpl.cpp:
917         (WebCore::IDBIndexBackendImpl::IDBIndexBackendImpl):
918         (WebCore::IDBIndexBackendImpl::openCursorInternal):
919         (WebCore::IDBIndexBackendImpl::sqliteDatabase):
920         * storage/IDBIndexBackendImpl.h:
921         (WebCore::IDBIndexBackendImpl::create):
922         * storage/IDBObjectStoreBackendImpl.cpp:
923         (WebCore::IDBObjectStoreBackendImpl::IDBObjectStoreBackendImpl):
924         (WebCore::IDBObjectStoreBackendImpl::createIndex):
925         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
926         (WebCore::IDBObjectStoreBackendImpl::loadIndexes):
927         (WebCore::IDBObjectStoreBackendImpl::sqliteDatabase):
928         * storage/IDBObjectStoreBackendImpl.h:
929         (WebCore::IDBObjectStoreBackendImpl::create):
930
931 2011-02-23  Dominic Mazzoni  <dmazzoni@google.com>
932
933         Reviewed by Kenneth Russell.
934
935         Add a hit test handler for canvas elements that handles clicks on the canvas but ignores children.
936         https://bugs.webkit.org/show_bug.cgi?id=54697
937
938         New test to prevent this from regressing in the future: canvas/canvas-mouse-events.html
939
940         * rendering/RenderHTMLCanvas.cpp:
941         (WebCore::RenderHTMLCanvas::nodeAtPoint):
942
943 2011-02-23  Patrick Gansterer  <paroga@webkit.org>
944
945         Reviewed by Darin Adler.
946
947         Remove obsolete focusRingColor functions
948         https://bugs.webkit.org/show_bug.cgi?id=54824
949
950         * CMakeListsWinCE.txt:
951         * platform/graphics/haiku/ColorHaiku.cpp:
952         * platform/graphics/wince/ColorWinCE.cpp: Removed.
953
954 2011-02-22  Jia Pu  <jpu@apple.com>
955
956         Reviewed by Dan Bernstein.
957
958         On Mac OS X, English contractions are marked misspelled with certain user preference setting.
959         https://bugs.webkit.org/show_bug.cgi?id=54975
960
961         manual test: manual-tests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html
962
963         Without this patch, we check for contraction only when autocorrection or other type of auto-
964         substituation is on. And we failed to check for contraction if only spellchecking is turned on.
965         This patch implements the desired behavior, checking for contraction when either correction/substitution,
966         or spellchecking, is on.
967
968         * editing/Editor.cpp:
969         (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
970         * manual-tests/autocorrection/spellcheck-on-contraction-when-autocorrection-is-off.html: Added.
971
972 2011-02-22  Charlie Reis  <creis@chromium.org>
973
974         Reviewed by Darin Fisher.
975
976         Remove DatabasePolicy from FrameLoaderTypes
977         https://bugs.webkit.org/show_bug.cgi?id=54968
978
979         The DatabasePolicy enum is no longer needed now that we avoid stopping
980         loaders on same-document navigations.
981
982         Existing test: storage/hash-change-with-xhr.html
983
984         * WebCore.exp.in:
985         * loader/DocumentLoader.cpp:
986         * loader/DocumentLoader.h:
987         * loader/FrameLoader.cpp:
988         * loader/FrameLoader.h:
989         * loader/FrameLoaderTypes.h:
990         * workers/WorkerThread.cpp:
991
992 2011-02-22  Alexis Menard  <alexis.menard@openbossa.org>
993
994         Reviewed by Andreas Kling.
995
996         [Qt] QWebView ignores a palette set with QWebView::setPalette()
997         https://bugs.webkit.org/show_bug.cgi?id=31742
998
999         Use custom QWebView palette if the view provides one.
1000         Modified version of a patch made by Fabrizio Machado.
1001
1002         * platform/qt/RenderThemeQt.cpp:
1003         (WebCore::RenderThemeQt::platformActiveSelectionBackgroundColor):
1004         (WebCore::RenderThemeQt::platformInactiveSelectionBackgroundColor):
1005         (WebCore::RenderThemeQt::platformActiveSelectionForegroundColor):
1006         (WebCore::RenderThemeQt::platformInactiveSelectionForegroundColor):
1007         (WebCore::RenderThemeQt::platformFocusRingColor):
1008
1009 2011-02-22  Brian Salomon  <bsalomon@google.com>
1010
1011         Reviewed by Kenneth Russell.
1012
1013         Don't disable accelerated canvas when using the skia gpu backend.
1014
1015         No new tests are required.
1016
1017         * html/canvas/CanvasRenderingContext2D.cpp:
1018         (WebCore::CanvasRenderingContext2D::setGlobalCompositeOperation):
1019
1020 2011-02-22  Luiz Agostini  <luiz.agostini@openbossa.org>
1021
1022         Reviewed by Kenneth Rohde Christiansen.
1023
1024         [Qt] <select>s on http://www.ryanair.com render wrong
1025         https://bugs.webkit.org/show_bug.cgi?id=29647
1026
1027         Reducing padding in <select> elements to improve its rendering and introducing a
1028         rendering adjustment specific to QMacStyle.
1029
1030         * platform/qt/RenderThemeQt.cpp:
1031         (WebCore::RenderThemeQt::setPopupPadding):
1032         (WebCore::RenderThemeQt::paintMenuList):
1033
1034 2011-02-22  Andreas Kling  <kling@webkit.org>
1035
1036         Reviewed by Dan Bernstein.
1037
1038         FontCache: Make cTargetInactiveFontData an int instead of float.
1039         https://bugs.webkit.org/show_bug.cgi?id=54963
1040
1041         * platform/graphics/FontCache.cpp:
1042
1043 2011-02-22  Ryosuke Niwa  <rniwa@webkit.org>
1044
1045         Reviewed by Darin Adler.
1046
1047         Make Editor::selectionComputedStyle return EditingStyle
1048         https://bugs.webkit.org/show_bug.cgi?id=54933
1049
1050         Renamed selectionComputedStyle to selectionStartStyle and changed the return type to EditingStyle.
1051         It also no longer takes a boolean shouldUseFixedFontDefaultSize.
1052
1053         Also added EditingStyle::mergeTypingStyle which replaced old editingStyleIncludingTypingStyle. This function
1054         doesn't extract inheritable properties prior to merge because this turned out be a bug, which was revealed
1055         by an existing layout test only after the code was shared with selectionStartStyle.
1056
1057         No tests are added since this is a refactoring.
1058
1059         * editing/CompositeEditCommand.cpp:
1060         (WebCore::CompositeEditCommand::moveParagraphs): Calls EditingStyle::create and EditingStyle::mergeTypingStyle.
1061         (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
1062         * editing/EditingStyle.cpp: Removed editingStyleIncludingTypingStyle.
1063         (WebCore::EditingStyle::mergeTypingStyle): Added.
1064         * editing/EditingStyle.h:
1065         (WebCore::EditingStyle::shouldUseFixedDefaultFontSize): Added.
1066         * editing/Editor.cpp:
1067         (WebCore::Editor::selectionStartHasStyle): Calls selectionStartStyle.
1068         (WebCore::Editor::selectionHasStyle): Ditto.
1069         (WebCore::Editor::selectionStartCSSPropertyValue): Ditto.
1070         (WebCore::Editor::selectionStartStyle): Renamed from selectionComputedStyle; returns EditingStyle.
1071         * editing/Editor.h:
1072         * editing/EditorCommand.cpp:
1073         (WebCore::executeToggleStyleInList): Calls selectionStartStyle.
1074         * editing/InsertLineBreakCommand.cpp:
1075         * editing/InsertParagraphSeparatorCommand.cpp:
1076         (WebCore::InsertParagraphSeparatorCommand::calculateStyleBeforeInsertion): Calls EditingStyle::create and
1077         EditingStyle::mergeTypingStyle.
1078         * editing/ReplaceSelectionCommand.cpp:
1079         (WebCore::ReplaceSelectionCommand::doApply): Ditto.
1080
1081 2011-02-22  Robert Hogan  <robert@webkit.org>
1082
1083         Reviewed by Andreas Kling.
1084
1085         [Qt] painting of windowed plugins faulty on certain scroll events
1086
1087         https://bugs.webkit.org/show_bug.cgi?id=52735
1088
1089         Invalidate the pluginview's relative rect rather then the frameRect(). This is because QWebFrame::renderRelativeCoords()
1090         imitates ScrollView and adds the scroll offset back on to the rect we damage here (making the co-ordinates absolute
1091         to the frame again) before passing it to FrameView.
1092
1093         * plugins/qt/PluginViewQt.cpp:
1094         (WebCore::PluginView::updatePluginWidget):
1095
1096 2011-02-22  Philippe Normand  <pnormand@igalia.com>
1097
1098         Reviewed by Martin Robinson.
1099
1100         Minimal build broken
1101         https://bugs.webkit.org/show_bug.cgi?id=54743
1102
1103         Moved the code of setInspectorExtensionAPI and
1104         dispatchMessageFromFrontend out of #if
1105         ENABLE(JAVASCRIPT_DEBUGGER) to fix link error of the minimal build.
1106
1107         * inspector/InspectorController.cpp:
1108         (WebCore::InspectorController::setInspectorExtensionAPI):
1109         (WebCore::InspectorController::dispatchMessageFromFrontend):
1110
1111 2011-02-22  Sheriff Bot  <webkit.review.bot@gmail.com>
1112
1113         Unreviewed, rolling out r79367.
1114         http://trac.webkit.org/changeset/79367
1115         https://bugs.webkit.org/show_bug.cgi?id=55012
1116
1117         all layout tests are crashing on Snow Leopard (Requested by
1118         rniwa on #webkit).
1119
1120         * ForwardingHeaders/wtf/DoublyLinkedList.h: Removed.
1121
1122 2011-02-22  Ryosuke Niwa  <rniwa@webkit.org>
1123
1124         Reviewed by Darin Adler.
1125
1126         Deploy EditingStyle in removeInlineStyleFromElement and removeCSSStyle
1127         https://bugs.webkit.org/show_bug.cgi?id=54944
1128
1129         Deployed EditingStyle in removeInlineStyleFromElement and removeCSSStyle.
1130
1131         Also extracted EditingStyle::conflictsWithInlineStyleOfElement from ApplyStyleCommand::removeCSSStyle,
1132         which returns true iff the specified element has inline style that conflicts or matches the editing style.
1133         It also appends conflicting property IDs to the vector of property IDs if one is specified.
1134
1135         * editing/ApplyStyleCommand.cpp:
1136         (WebCore::ApplyStyleCommand::applyBlockStyle): Calls removeCSSStyle.
1137         (WebCore::ApplyStyleCommand::applyInlineStyle): Calls shouldSplitTextElement.
1138         (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle): Calls removeInlineStyleFromElement.
1139         (WebCore::ApplyStyleCommand::removeInlineStyleFromElement): Takes EditingStyle* instead of CSSMutableStyleDeclaration*.
1140         (WebCore::ApplyStyleCommand::removeCSSStyle): Ditto; extracted the logic to decide properties to remove as
1141         conflictsWithInlineStyleOfElement.
1142         (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): Calls shouldRemoveInlineStyleFromElement.
1143         (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): Calls removeInlineStyleFromElement.
1144         (WebCore::ApplyStyleCommand::removeInlineStyle): Ditto.
1145         (WebCore::ApplyStyleCommand::shouldSplitTextElement): Takes EditingStyle* instead of CSSMutableStyleDeclaration*.
1146         * editing/ApplyStyleCommand.h:
1147         (WebCore::ApplyStyleCommand::shouldRemoveInlineStyleFromElement): Ditto.
1148         * editing/EditingStyle.cpp:
1149         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement): Extracted from ApplyStyleCommand::removeCSSStyle.
1150         * editing/EditingStyle.h:
1151         (WebCore::EditingStyle::conflictsWithInlineStyleOfElement): Added.
1152
1153 2011-02-22  Chang Shu  <cshu@webkit.org>
1154
1155         Reviewed by Csaba Osztrogonác.
1156
1157         [Qt] editing/deleting/5408255.html fails
1158         https://bugs.webkit.org/show_bug.cgi?id=54964
1159
1160         Move WebCore resource file to QtWebKit since they are referred in WebKit.
1161
1162         * WebCore.pro:
1163
1164 2011-02-22  Brady Eidson  <beidson@apple.com>
1165
1166         Reviewed by Anders Carlsson.
1167
1168         <rdar://problem/8762042> and https://bugs.webkit.org/show_bug.cgi?id=54514
1169         API to view and delete Application Cache data by origin.
1170
1171         Implement these to be used by WK2 API:
1172         * loader/appcache/ApplicationCacheStorage.cpp:
1173         (WebCore::ApplicationCacheStorage::getOriginsWithCache):
1174         (WebCore::ApplicationCacheStorage::deleteEntriesForOrigin):
1175
1176 2011-02-22  Geoffrey Garen  <ggaren@apple.com>
1177
1178         Reviewed by Oliver Hunt.
1179
1180         Manage MarkedBlocks in a linked list instead of a vector, so arbitrary removal is O(1)
1181         https://bugs.webkit.org/show_bug.cgi?id=54999
1182         
1183         New WTF header.
1184
1185         * ForwardingHeaders/wtf/DoublyLinkedList.h: Copied from ForwardingHeaders/wtf/FixedArray.h.
1186
1187 2011-02-22  Beth Dakin  <bdakin@apple.com>
1188
1189         Reviewed by Sam Weinig.
1190
1191         Fix for https://bugs.webkit.org/show_bug.cgi?id=54991 
1192         Scrollbar::nativeTheme()->usesOverlayScrollbars() should not be consulted for CSS 
1193         Scrollbars
1194         -and corresponding-
1195         <rdar://problem/9034318>
1196
1197         Instead of consulting the theme directly, callers should ask the Scrollbar or 
1198         ScrollableArea if the scrollbars are overlay or not. 
1199
1200         * platform/ScrollView.cpp:
1201         (WebCore::ScrollView::visibleContentRect):
1202         (WebCore::ScrollView::scrollContents):
1203         (WebCore::ScrollView::wheelEvent):
1204         * platform/ScrollableArea.cpp:
1205         (WebCore::ScrollableArea::setScrollOffsetFromAnimation):
1206         (WebCore::ScrollableArea::hasOverlayScrollbars):
1207         * platform/ScrollableArea.h:
1208         * platform/Scrollbar.cpp:
1209         (WebCore::Scrollbar::isOverlayScrollbar):
1210         * platform/Scrollbar.h:
1211         * rendering/RenderBox.cpp:
1212         (WebCore::RenderBox::includeVerticalScrollbarSize):
1213         (WebCore::RenderBox::includeHorizontalScrollbarSize):
1214         * rendering/RenderLayer.cpp:
1215         (WebCore::RenderLayer::verticalScrollbarWidth):
1216         (WebCore::RenderLayer::horizontalScrollbarHeight):
1217         * rendering/RenderListBox.cpp:
1218         (WebCore::RenderListBox::verticalScrollbarWidth):
1219         * rendering/RenderScrollbar.h:
1220         (WebCore::RenderScrollbar::isOverlayScrollbar):
1221
1222 2011-02-22  Andras Becsi  <abecsi@webkit.org>
1223
1224         Reviewed by Csaba Osztrogonác.
1225
1226         [Qt] Redesign the build system
1227         https://bugs.webkit.org/show_bug.cgi?id=51339
1228
1229         Move inspector's resource files into the final build step to fix the layout test regression.
1230
1231         No new tests needed.
1232
1233         * WebCore.pro: Move inspector's resource files into QtWebKit.pro.
1234
1235 2011-02-22  Martin Robinson  <mrobinson@igalia.com>
1236
1237         Reviewed by Xan Lopez.
1238
1239         [GTK] fast/frames/iframe-scale-applied-twice.html fails after r79167
1240         https://bugs.webkit.org/show_bug.cgi?id=54990
1241
1242         No new tests. This will cause fast/events/scroll-after-click-on-tab-index.html
1243         to start passing again.
1244
1245         * platform/gtk/ScrollViewGtk.cpp:
1246         (WebCore::ScrollView::visibleContentRect): Update this method to match the original
1247         in the parent class.
1248
1249 2011-01-17  Martin Robinson  <mrobinson@igalia.com>
1250
1251         Reviewed by Xan Lopez.
1252
1253         [GTK] fast/events/scroll-after-click-on-tab-index has been failing on the bots
1254         https://bugs.webkit.org/show_bug.cgi?id=49177
1255
1256         * platform/ScrollView.cpp: Remove the GTK+ guards around the implementation
1257         of platformAddChild and platformRemoveChild. This code can be shared.
1258         * platform/gtk/MainFrameScrollbarGtk.cpp:
1259         (MainFrameScrollbarGtk::attachAdjustment): Prevent re-attaching an already attached
1260         adjustment. Connect the adjustment value-changed signal handler after resetting the
1261         adjustment. This prevents the rest from stomping on pre-existing WebCore values.
1262         (MainFrameScrollbarGtk::gtkValueChanged): If the scrollbar is no longer attached to
1263         a scrollview do not listing for value changes. These scrollbars are defunct.
1264         * platform/gtk/ScrollViewGtk.cpp: Remove duplicated empty methods.
1265
1266 2011-02-22  Pavel Feldman  <pfeldman@chromium.org>
1267
1268         Reviewed by Yury Semikhatsky.
1269
1270         Web Inspector: refactor InjectedScript : InspectorDOMAgent interaction.
1271         https://bugs.webkit.org/show_bug.cgi?id=54954
1272
1273         * bindings/js/JSInjectedScriptHostCustom.cpp:
1274         (WebCore::InjectedScriptHost::toNode):
1275         (WebCore::JSInjectedScriptHost::inspect):
1276         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1277         (WebCore::InjectedScriptHost::toNode):
1278         (WebCore::V8InjectedScriptHost::inspectCallback):
1279         * inspector/CodeGeneratorInspector.pm:
1280         * inspector/InjectedScript.cpp:
1281         (WebCore::InjectedScript::nodeForObjectId):
1282         * inspector/InjectedScript.h:
1283         * inspector/InjectedScriptHost.cpp:
1284         (WebCore::InjectedScriptHost::inspect):
1285         * inspector/InjectedScriptHost.h:
1286         * inspector/InjectedScriptHost.idl:
1287         * inspector/InjectedScriptSource.js:
1288         (.):
1289         * inspector/Inspector.idl:
1290         * inspector/InspectorAgent.cpp:
1291         (WebCore::InspectorAgent::focusNode):
1292         * inspector/InspectorAgent.h:
1293         * inspector/InspectorDOMAgent.cpp:
1294         (WebCore::InspectorDOMAgent::inspect):
1295         (WebCore::InspectorDOMAgent::pushNodeToFrontend):
1296         * inspector/InspectorDOMAgent.h:
1297         * inspector/front-end/AuditRules.js:
1298         (WebInspector.AuditRules.evaluateInTargetWindow):
1299         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
1300         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.getStyles):
1301         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.receivedImages):
1302         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun.pushImageNodes):
1303         * inspector/front-end/ConsoleView.js:
1304         (WebInspector.ConsoleView.prototype.completions):
1305         * inspector/front-end/DOMAgent.js:
1306         (WebInspector.DOMDispatcher.prototype.childNodeRemoved):
1307         (WebInspector.DOMDispatcher.prototype.inspectElementRequested):
1308         * inspector/front-end/RemoteObject.js:
1309         (WebInspector.RemoteObject.prototype.pushNodeToFrontend):
1310
1311 2011-02-22  Brady Eidson  <beidson@apple.com>
1312
1313         Reviewed by Anders Carlsson.
1314
1315         Part of <rdar://problem/8762042> and https://bugs.webkit.org/show_bug.cgi?id=54514
1316         API to view and delete Application Cache data by origin.
1317
1318         Stub these out for now:
1319         * loader/appcache/ApplicationCacheStorage.cpp:
1320         (WebCore::ApplicationCacheStorage::getOriginsWithCache):
1321         (WebCore::ApplicationCacheStorage::deleteEntriesForOrigin):
1322         (WebCore::ApplicationCacheStorage::deleteAllEntries): Moved implementation here from WebKit/Mac
1323         * loader/appcache/ApplicationCacheStorage.h:
1324
1325         Export the new symbols:
1326         * WebCore.exp.in:
1327
1328 2011-02-22  Anders Carlsson  <andersca@apple.com>
1329
1330         Fix debug build.
1331
1332         * WebCore.exp.in:
1333
1334 2011-02-22  Balazs Kelemen  <kbalazs@webkit.org>
1335
1336         Reviewed by Anders Carlsson.
1337
1338         notImplemented() should behave identical in WebCore and WebKit2
1339         https://bugs.webkit.org/show_bug.cgi?id=54449
1340
1341         No functional change so no new tests.
1342
1343         * WebCore.xcodeproj/project.pbxproj: Add NotImplemented.h as private header
1344         to be able to use it in WebKit2.
1345
1346 2011-02-22  Andras Becsi  <abecsi@webkit.org>
1347
1348         Reviewed by Laszlo Gombos.
1349         Rubber-stamped by Csaba Osztrogonác.
1350
1351         [Qt] Redesign the build system
1352         https://bugs.webkit.org/show_bug.cgi?id=51339
1353
1354         The patch landed in r79320 didn't contain the cleanup
1355         which was already addressed in the last attachment.
1356
1357         No new tests needed.
1358
1359         * WebCore.pri: Add common LIB and CONFIG options.
1360         * WebCore.pro: Add accidentally moved sections.
1361
1362 2011-02-22  Philippe Normand  <pnormand@igalia.com>
1363
1364         Unreviewed, rolling out r79321.
1365         http://trac.webkit.org/changeset/79321
1366         https://bugs.webkit.org/show_bug.cgi?id=53146
1367
1368         Regresses  fast/forms/listbox-typeahead-cyrillic.html and fast
1369         /spatial-navigation/snav-single-select.html on GTK
1370
1371         * accessibility/gtk/AXObjectCacheAtk.cpp:
1372         (WebCore::notifyChildrenSelectionChange):
1373         (WebCore::AXObjectCache::postPlatformNotification):
1374
1375 2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
1376
1377         Reviewed by Yury Semikhatsky.
1378
1379         Web Inspector: Inspector.IDL change. rename attribute notify -> event.
1380         https://bugs.webkit.org/show_bug.cgi?id=54958
1381
1382         * inspector/CodeGeneratorInspector.pm:
1383         * inspector/Inspector.idl:
1384
1385 2011-02-22  Yury Semikhatsky  <yurys@chromium.org>
1386
1387         Reviewed by Pavel Feldman.
1388
1389         Web Inspector: Timeline agent should have same lifetime as InspectorAgent
1390         https://bugs.webkit.org/show_bug.cgi?id=54951
1391
1392         * inspector/CodeGeneratorInspector.pm:
1393         * inspector/Inspector.idl:
1394         * inspector/InspectorAgent.cpp:
1395         (WebCore::InspectorAgent::InspectorAgent):
1396         (WebCore::InspectorAgent::restoreInspectorStateFromCookie):
1397         (WebCore::InspectorAgent::setFrontend):
1398         (WebCore::InspectorAgent::disconnectFrontend):
1399         (WebCore::InspectorAgent::releaseFrontendLifetimeAgents):
1400         (WebCore::InspectorAgent::didCommitLoad):
1401         (WebCore::InspectorAgent::domContentLoadedEventFired):
1402         (WebCore::InspectorAgent::loadEventFired):
1403         * inspector/InspectorAgent.h:
1404         * inspector/InspectorController.cpp:
1405         (WebCore::InspectorController::startTimelineProfiler):
1406         (WebCore::InspectorController::stopTimelineProfiler):
1407         (WebCore::InspectorController::timelineProfilerEnabled):
1408         * inspector/InspectorInstrumentation.cpp:
1409         (WebCore::InspectorInstrumentation::retrieveTimelineAgent):
1410         * inspector/InspectorTimelineAgent.cpp:
1411         (WebCore::InspectorTimelineAgent::~InspectorTimelineAgent):
1412         (WebCore::InspectorTimelineAgent::setFrontend):
1413         (WebCore::InspectorTimelineAgent::clearFrontend):
1414         (WebCore::InspectorTimelineAgent::restore):
1415         (WebCore::InspectorTimelineAgent::startTimelineProfiler):
1416         (WebCore::InspectorTimelineAgent::stopTimelineProfiler):
1417         (WebCore::InspectorTimelineAgent::timelineProfilerStarted):
1418         (WebCore::InspectorTimelineAgent::didCommitLoad):
1419         (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
1420         (WebCore::InspectorTimelineAgent::clearRecordStack):
1421         * inspector/InspectorTimelineAgent.h:
1422         (WebCore::InspectorTimelineAgent::create):
1423         * inspector/front-end/TimelinePanel.js:
1424         (WebInspector.TimelinePanel.prototype._toggleTimelineButtonClicked):
1425
1426 2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
1427
1428         Reviewed by Pavel Feldman.
1429
1430         Web Inspector: flakyness of inspector tests.
1431         https://bugs.webkit.org/show_bug.cgi?id=54729
1432
1433         As far as we have the protocol with sequence numbers we can simplify test harness support
1434         and drop out chomium specific methods.
1435
1436         * inspector/CodeGeneratorInspector.pm:
1437         * inspector/front-end/TestController.js:
1438         (WebInspector.TestController):
1439         (WebInspector.TestController.prototype.notifyDone):
1440         (WebInspector.TestController.prototype.runAfterPendingDispatches):
1441         (WebInspector.TestController.prototype._evaluateForTestInFrontend):
1442         * inspector/front-end/inspector.js:
1443         (WebInspector.dispatch):
1444
1445 2011-02-22  Mario Sanchez Prada  <msanchez@igalia.com>
1446
1447         Reviewed by Martin Robinson.
1448
1449         [GTK] Combo boxes should emit object:selection-changed even when collapsed
1450         https://bugs.webkit.org/show_bug.cgi?id=53146
1451
1452         Emit the selection-changed signals when the menu list value has changed
1453
1454         Test: platform/gtk/accessibility/combo-box-collapsed-selection-changed.html
1455
1456         * accessibility/gtk/AXObjectCacheAtk.cpp:
1457         (WebCore::getListObject): New, return the right list object for
1458         menu lists and list boxes.
1459         (WebCore::notifyChildrenSelectionChange): Support menu lists.
1460         (WebCore::AXObjectCache::postPlatformNotification): Call function
1461         notifyChildrenSelectionChange for AXMenuListValueChanged.
1462
1463 2011-02-22  Andras Becsi  <abecsi@webkit.org>
1464
1465         Reviewed by Laszlo Gombos.
1466
1467         [Qt] Redesign the build system
1468         https://bugs.webkit.org/show_bug.cgi?id=51339
1469
1470         Part 2.
1471
1472         Build WebCore as a static library, compile the WebKit API and WebKit2 API
1473         in a final step and link to WebKit2, WebCore and JSC libraries to fix
1474         linking issues resulting from stripped away symbols.
1475
1476         No new tests needed.
1477
1478         * WebCore.pri: Add needed rules for handling the static library.
1479         * WebCore.pro: Reorganize API and linker options to QtWebKit.pro.
1480
1481 2011-02-22  Pavel Podivilov  <podivilov@chromium.org>
1482
1483         Reviewed by Pavel Feldman.
1484
1485         Web Inspector: [REGRESSION] navigation does not work when inspector is opened.
1486         https://bugs.webkit.org/show_bug.cgi?id=54947
1487
1488         * inspector/InspectorAgent.cpp:
1489         (WebCore::InspectorAgent::restoreInspectorStateFromCookie):
1490         * inspector/InspectorState.cpp:
1491         (WebCore::InspectorState::loadFromCookie):
1492         * inspector/InspectorState.h:
1493
1494 2011-02-15  Jer Noble  <jer.noble@apple.com>
1495
1496         Reviewed by Darin Adler.
1497
1498         Built-in HTML5 <audio> (and sometimes <video>) UI doesn't update playhead location or time displays
1499         https://bugs.webkit.org/show_bug.cgi?id=46142
1500
1501         Push a LayoutStateMaintainer in RenderMedia::layout() before calling layout() on the
1502         container elements.  This is necessary because, during layout(), the child renderers
1503         query the current LayoutState to determine where they will be repainting.  If a new
1504         LayoutState is not pushed here, child renderers will attempt to repaint relative to
1505         their grandparent's origin instead of their parents', and repaint operations will fail.
1506
1507         * rendering/RenderMedia.cpp:
1508         (WebCore::RenderMedia::layout):
1509
1510 2011-02-22  Benjamin Poulain  <benjamin.poulain@nokia.com>
1511
1512         Reviewed by Kenneth Rohde Christiansen.
1513
1514         Cleaning: remove a overzealous check for the pointer "files" from Chrome::setToolTip()
1515         https://bugs.webkit.org/show_bug.cgi?id=54952
1516
1517         Remove the unnecessary condition from the if(), HTMLInputElement::files() always return
1518         a valid reference for the input type FileInputType. 
1519
1520         * page/Chrome.cpp:
1521         (WebCore::Chrome::setToolTip):
1522
1523 2011-02-21  Pavel Podivilov  <podivilov@chromium.org>
1524
1525         Reviewed by Pavel Feldman.
1526
1527         Web Inspector: extract source mapping from SourceFrame to DebuggerPresentationModel.
1528         https://bugs.webkit.org/show_bug.cgi?id=54645
1529
1530         This is needed to map one script to several source files.
1531
1532         Test: inspector/debugger/source-frame.html
1533
1534         * WebCore.gypi:
1535         * WebCore.vcproj/WebCore.vcproj:
1536         * inspector/front-end/DebuggerPresentationModel.js: Added.
1537         (WebInspector.DebuggerPresentationModel):
1538         (WebInspector.DebuggerPresentationModel.prototype.breakpointsForSourceName):
1539         (WebInspector.DebuggerPresentationModel.prototype._breakpointAdded):
1540         (WebInspector.DebuggerPresentationModel.prototype._breakpointRemoved):
1541         (WebInspector.DebuggerPresentationModel.prototype._breakpointResolved):
1542         (WebInspector.DebuggerPresentationModel.prototype._encodeSourceLocation):
1543         (WebInspector.DebuggerPresentationModel.prototype._actualLocationToSourceLocation):
1544         * inspector/front-end/ScriptsPanel.js:
1545         (WebInspector.ScriptsPanel):
1546         (WebInspector.ScriptsPanel.prototype._breakpointAdded):
1547         (WebInspector.ScriptsPanel.prototype._breakpointRemoved):
1548         (WebInspector.ScriptsPanel.prototype._sourceFrameForResource):
1549         (WebInspector.ScriptsPanel.prototype._sourceFrameForScript):
1550         (WebInspector.ScriptsPanel.prototype._addSourceFrame):
1551         (WebInspector.ScriptsPanel.prototype._removeSourceFrame):
1552         (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
1553         (WebInspector.ScriptsPanel.prototype._clearCurrentExecutionLine):
1554         (WebInspector.ScriptsPanel.prototype._callFrameSelected):
1555         (WebInspector.SourceFrameContentProviderForScript.prototype._buildSource):
1556         * inspector/front-end/SourceFrame.js:
1557         (WebInspector.SourceFrame.prototype.get loaded):
1558         (WebInspector.SourceFrame.prototype._createTextViewer):
1559         (WebInspector.SourceFrame.prototype._setTextViewerDecorations):
1560         (WebInspector.SourceFrame.prototype.setExecutionLine):
1561         (WebInspector.SourceFrame.prototype.clearExecutionLine):
1562         (WebInspector.SourceFrame.prototype.addBreakpoint):
1563         (WebInspector.SourceFrame.prototype.removeBreakpoint):
1564         (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint.didEditBreakpointCondition):
1565         (WebInspector.SourceFrame.prototype._contextMenu.addConditionalBreakpoint):
1566         (WebInspector.SourceFrame.prototype._findBreakpoint.filter):
1567         (WebInspector.SourceFrame.prototype._findBreakpoint):
1568         * inspector/front-end/WebKit.qrc:
1569         * inspector/front-end/inspector.html:
1570
1571 2011-02-22  Andrey Kosyakov  <caseq@chromium.org>
1572
1573         Reviewed by Pavel Feldman.
1574
1575         Web Inspector: provide a button to expand inspector toolbar when not all panel buttons fit
1576         https://bugs.webkit.org/show_bug.cgi?id=54671
1577
1578         - factored toolbar handling out of inspector.js
1579         - added toolbar dropdown
1580
1581         * WebCore.gypi:
1582         * WebCore.vcproj/WebCore.vcproj:
1583         * inspector/front-end/ExtensionServer.js:
1584         (WebInspector.ExtensionServer.prototype._onCreatePanel):
1585         * inspector/front-end/Panel.js:
1586         (WebInspector.Panel.prototype.get toolbarItem):
1587         * inspector/front-end/Toolbar.js: Added.
1588         (WebInspector.Toolbar):
1589         (WebInspector.Toolbar.prototype.resize):
1590         (WebInspector.Toolbar.prototype.addPanel):
1591         (WebInspector.Toolbar.prototype._toolbarDragStart):
1592         (WebInspector.Toolbar.prototype._toolbarDragEnd):
1593         (WebInspector.Toolbar.prototype._toolbarDrag):
1594         (WebInspector.Toolbar.prototype._onClose):
1595         (WebInspector.Toolbar.prototype._setDropdownVisible):
1596         (WebInspector.Toolbar.prototype._toggleDropdown):
1597         (WebInspector.Toolbar.prototype._updateDropdownButtonAndHideDropdown):
1598         (WebInspector.Toolbar.createPanelToolbarItem.onToolbarItemClicked):
1599         (WebInspector.Toolbar.createPanelToolbarItem):
1600         (WebInspector.ToolbarDropdown):
1601         (WebInspector.ToolbarDropdown.prototype.show):
1602         (WebInspector.ToolbarDropdown.prototype.hide):
1603         (WebInspector.ToolbarDropdown.prototype.get visible):
1604         (WebInspector.ToolbarDropdown.prototype._populate):
1605         (WebInspector.ToolbarDropdown.prototype._onKeyDown):
1606         * inspector/front-end/WebKit.qrc:
1607         * inspector/front-end/inspector.css:
1608         (#toolbar):
1609         (.toolbar-item):
1610         (.toolbar-item.toggleable):
1611         (.toolbar-item.toggleable.toggled-on):
1612         (#toolbar-dropdown .toolbar-icon):
1613         (#toolbar-dropdown .toolbar-label):
1614         (#toolbar-controls):
1615         (#toolbar-dropdown-arrow):
1616         (body.attached #toolbar-dropdown-arrow):
1617         (#toolbar-dropdown-arrow.dropdown-visible):
1618         (#toolbar-dropdown-arrow:hover):
1619         (#toolbar-dropdown-arrow:active):
1620         (#toolbar-dropdown):
1621         (body.detached.platform-mac-snowleopard #toolbar-dropdown):
1622         (#toolbar-dropdown .scrollable-content):
1623         (#toolbar-dropdown .toolbar-item):
1624         (#toolbar-dropdown .toolbar-item.toggleable.toggled-on):
1625         (#toolbar-dropdown .toolbar-item:hover):
1626         (#toolbar-dropdown .toolbar-item.toggleable.toggled-on:hover):
1627         (#toolbar-dropdown .toolbar-item:active .toolbar-icon):
1628         (.scrollable-content):
1629         (.scrollable-content::-webkit-scrollbar):
1630         (.scrollable-content::-webkit-resizer):
1631         (.scrollable-content::-webkit-scrollbar-thumb:vertical):
1632         (.scrollable-content::-webkit-scrollbar-thumb:vertical:active):
1633         (.scrollable-content::-webkit-scrollbar-track:vertical):
1634         (.toolbar-search-item):
1635         (#search):
1636         (body.attached #search):
1637         (#search-results-matches):
1638         (#close-button-left, #close-button-right):
1639         (.close-left):
1640         * inspector/front-end/inspector.html:
1641         * inspector/front-end/inspector.js:
1642         (WebInspector.set attached):
1643         (WebInspector.addPanel):
1644         (WebInspector.windowResize):
1645
1646 2011-02-22  Philippe Normand  <pnormand@igalia.com>
1647
1648         Reviewed by Xan Lopez.
1649
1650         [GTK] make distcheck fails
1651         https://bugs.webkit.org/show_bug.cgi?id=54943
1652
1653         Added new headers and removed references to deleted files.
1654
1655         * GNUmakefile.am:
1656
1657 2011-02-21  Yury Semikhatsky  <yurys@chromium.org>
1658
1659         Reviewed by Pavel Feldman.
1660
1661         Web Inspector: make DOM storage and Database agents have the same lifetime as InspectorAgent
1662         https://bugs.webkit.org/show_bug.cgi?id=54891
1663
1664         * inspector/InspectorAgent.cpp:
1665         (WebCore::InspectorAgent::InspectorAgent):
1666         (WebCore::InspectorAgent::setFrontend):
1667         (WebCore::InspectorAgent::disconnectFrontend):
1668         (WebCore::InspectorAgent::createFrontendLifetimeAgents):
1669         (WebCore::InspectorAgent::releaseFrontendLifetimeAgents):
1670         (WebCore::InspectorAgent::didCommitLoad):
1671         * inspector/InspectorAgent.h:
1672         (WebCore::InspectorAgent::instrumentingAgents):
1673         * inspector/InspectorDOMStorageAgent.cpp:
1674         (WebCore::InspectorDOMStorageAgent::InspectorDOMStorageAgent):
1675         (WebCore::InspectorDOMStorageAgent::~InspectorDOMStorageAgent):
1676         (WebCore::InspectorDOMStorageAgent::setFrontend):
1677         (WebCore::InspectorDOMStorageAgent::clearFrontend):
1678         (WebCore::InspectorDOMStorageAgent::selectDOMStorage):
1679         (WebCore::InspectorDOMStorageAgent::getDOMStorageResourceForId):
1680         (WebCore::InspectorDOMStorageAgent::didUseDOMStorage):
1681         (WebCore::InspectorDOMStorageAgent::clearResources):
1682         * inspector/InspectorDOMStorageAgent.h:
1683         (WebCore::InspectorDOMStorageAgent::create):
1684         * inspector/InspectorDatabaseAgent.cpp:
1685         (WebCore::InspectorDatabaseAgent::didOpenDatabase):
1686         (WebCore::InspectorDatabaseAgent::clearResources):
1687         (WebCore::InspectorDatabaseAgent::InspectorDatabaseAgent):
1688         (WebCore::InspectorDatabaseAgent::~InspectorDatabaseAgent):
1689         (WebCore::InspectorDatabaseAgent::setFrontend):
1690         (WebCore::InspectorDatabaseAgent::clearFrontend):
1691         (WebCore::InspectorDatabaseAgent::databaseForId):
1692         (WebCore::InspectorDatabaseAgent::selectDatabase):
1693         * inspector/InspectorDatabaseAgent.h:
1694         (WebCore::InspectorDatabaseAgent::create):
1695         * inspector/InspectorInstrumentation.cpp:
1696         (WebCore::InspectorInstrumentation::didOpenDatabaseImpl):
1697         (WebCore::InspectorInstrumentation::didUseDOMStorageImpl):
1698
1699 2011-02-22  Steve Lacey  <sjl@chromium.org>
1700
1701         Reviewed by Darin Fisher.
1702
1703         Rename new media statistics apis to better names
1704
1705         https://bugs.webkit.org/show_bug.cgi?id=54784
1706
1707         * html/HTMLMediaElement.cpp:
1708         (WebCore::HTMLMediaElement::webkitAudioDecodedByteCount):
1709         (WebCore::HTMLMediaElement::webkitVideoDecodedByteCount):
1710         * html/HTMLMediaElement.h:
1711         * html/HTMLMediaElement.idl:
1712         * html/HTMLVideoElement.cpp:
1713         (WebCore::HTMLVideoElement::webkitDecodedFrameCount):
1714         (WebCore::HTMLVideoElement::webkitDroppedFrameCount):
1715         * html/HTMLVideoElement.h:
1716         * html/HTMLVideoElement.idl:
1717         * platform/graphics/MediaPlayer.cpp:
1718         (WebCore::MediaPlayer::decodedFrameCount):
1719         (WebCore::MediaPlayer::droppedFrameCount):
1720         (WebCore::MediaPlayer::audioDecodedByteCount):
1721         (WebCore::MediaPlayer::videoDecodedByteCount):
1722         * platform/graphics/MediaPlayer.h:
1723         * platform/graphics/MediaPlayerPrivate.h:
1724         (WebCore::MediaPlayerPrivateInterface::decodedFrameCount):
1725         (WebCore::MediaPlayerPrivateInterface::droppedFrameCount):
1726         (WebCore::MediaPlayerPrivateInterface::audioDecodedByteCount):
1727         (WebCore::MediaPlayerPrivateInterface::videoDecodedByteCount):
1728
1729 2011-02-21  Roland Steiner  <rolandsteiner@chromium.org>
1730
1731         Reviewed by Kent Tamura.
1732
1733         Bug 54435 - Simplify CSSStyleSelector::canShareStyleWithElement
1734         https://bugs.webkit.org/show_bug.cgi?id=54435
1735
1736         Changed the function to a series of early-exit 'if's,
1737         removed most temporary variables.
1738
1739         No new tests. (refactoring)
1740
1741         * css/CSSStyleSelector.cpp:
1742         (WebCore::CSSStyleSelector::canShareStyleWithElement):
1743
1744 2011-02-21  Nico Weber  <thakis@chromium.org>
1745
1746         Reviewed by James Robinson.
1747
1748         [chromium] PopupContainer::show() confuses clang's -Woverloaded-virtual
1749         https://bugs.webkit.org/show_bug.cgi?id=54923
1750
1751         Rename PopupContainer::show() to showInRect(), to make it obvious it's
1752         not an override of ScrollView::show().
1753
1754         No intended functionality change.
1755
1756         * platform/chromium/PopupMenuChromium.cpp:
1757         (WebCore::PopupContainer::showInRect):
1758         (WebCore::PopupMenuChromium::show):
1759         * platform/chromium/PopupMenuChromium.h:
1760
1761 2011-02-21  Julien Chaffraix  <jchaffraix@codeaurora.org>
1762
1763         Reviewed by Antti Koivisto.
1764
1765         Improve the local{SharedStyle,CousinList} algorithm
1766         https://bugs.webkit.org/show_bug.cgi?id=45507
1767
1768         This change improves the algorithm to find shared styles: the old
1769         algorithm would stop the search after the first cousin, even if
1770         the search threshold is not met. As such, the algorithm would
1771         systematically miss sharings across second cousins and beyond.
1772         The new algorithm continues the search, as long as threshold is
1773         not met. It also separates the threshold for sibling/cousins
1774         search, from that on the levels of search, which is easier to
1775         optimize.
1776         The new algorithm finds up to 30% more sharings on some sites
1777         (e.g. amazon.com and rakuten.co.jp) with no noticeable slowdown.
1778
1779         No new test, refactoring only.
1780
1781         * css/CSSStyleSelector.cpp:
1782         (WebCore::CSSStyleSelector::locateCousinList):
1783         (WebCore::CSSStyleSelector::locateSharedStyle):
1784         While changing the algorithm, cleaned up the style of those 2 methods
1785         (use early return, renamed some variables).
1786
1787         * css/CSSStyleSelector.h:
1788
1789 2011-02-21  Nico Weber  <thakis@chromium.org>
1790
1791         Reviewed by Adam Barth.
1792
1793         RenderTableCell::baselinePosition() confuses clang's -Woverloaded-virtual
1794         https://bugs.webkit.org/show_bug.cgi?id=54922
1795
1796         RenderTableCell::baselinePosition() has the same name as a virtual
1797         method in superclass RenderBlock. Rename the subclass method to make
1798         it clear it's not an attempted override.
1799
1800         No intended functionality change.
1801
1802         * rendering/RenderTableCell.cpp:
1803         (WebCore::RenderTableCell::cellBaselinePosition):
1804         * rendering/RenderTableCell.h:
1805         * rendering/RenderTableSection.cpp:
1806         (WebCore::RenderTableSection::calcRowLogicalHeight):
1807         (WebCore::RenderTableSection::layoutRows):
1808
1809 2011-02-21  Benjamin Kalman  <kalman@chromium.org>
1810
1811         Reviewed by Ryosuke Niwa.
1812
1813         Extending selection by a boundary granularity (LineBoundary/ParagraphBoundary/DocumentBoundary) sets incorrect
1814         start/end of selection for RTL
1815         https://bugs.webkit.org/show_bug.cgi?id=54724
1816
1817         On mac, the selection should always grow when extending by a boundary granularity (line/paragraph/document).
1818         This is achieved by extending from the start for the "left" direction (e.g. pressing left arrow key), or
1819         extending from the end when for the "right" direction (e.g. pressing right arrow key).
1820
1821         However, this has a bug for RTL text, which should actually extend from the *end* when extending left (since
1822         direction is obviously reversed) and likewise extend from the start when extending right.
1823
1824         * editing/SelectionController.cpp:
1825         (WebCore::SelectionController::modify):
1826
1827 2011-02-21  Nico Weber  <thakis@chromium.org>
1828
1829         Reviewed by Adam Barth.
1830
1831         ImageDocument::imageChanged() confuses clang's -Woverride-virtual
1832         https://bugs.webkit.org/show_bug.cgi?id=54924
1833
1834         Rename ImageDocument::imageChanged() to imageUpdated() to make clear
1835         that it's not an override of CachedResourceClient::imageChanged().
1836
1837         * html/ImageDocument.cpp:
1838         (WebCore::ImageDocumentParser::appendBytes):
1839         (WebCore::ImageDocumentParser::finish):
1840         (WebCore::ImageDocument::imageUpdated):
1841         * html/ImageDocument.h:
1842
1843 2011-02-21  Roland Steiner  <rolandsteiner@chromium.org>
1844
1845         Reviewed by Kent Tamura.
1846
1847         Bug 54934 - Sort the WebCore project file(s)
1848         https://bugs.webkit.org/show_bug.cgi?id=54934
1849
1850         No new tests. (no code affected)
1851
1852         * GNUmakefile.am:
1853         * WebCore.xcodeproj/project.pbxproj:
1854
1855 2011-02-21  Nico Weber  <thakis@chromium.org>
1856
1857         Reviewed by Adam Barth.
1858
1859         canAccommodateEllipsis() confuses clang's -Woverloaded-virtual
1860         https://bugs.webkit.org/show_bug.cgi?id=54909
1861
1862         Rename the overload in RootInlineBox to lineCanAccomodateEllipsis() to
1863         unconfuse clang. No intended functionality change.
1864
1865         * rendering/RenderBlockLineLayout.cpp:
1866         (WebCore::RenderBlock::checkLinesForTextOverflow):
1867         * rendering/RenderFlexibleBox.cpp:
1868         (WebCore::RenderFlexibleBox::applyLineClamp):
1869         * rendering/RootInlineBox.cpp:
1870         (WebCore::RootInlineBox::lineCanAccommodateEllipsis):
1871         * rendering/RootInlineBox.h:
1872
1873 2011-02-21  Adele Peterson  <adele@apple.com>
1874
1875         Reviewed by Dan Bernstein.
1876
1877         Fix for for https://bugs.webkit.org/show_bug.cgi?id=54402
1878         REGRESSION (r72052): Placeholder text doesn't have the right padding for search fields on Windows
1879
1880         Test: updated fast/forms/placeholder-position.html and tested manually
1881
1882         Consider padding and margin for the results and cancel buttons.  This is important for the Windows 
1883         theme which uses padding to correctly position those buttons.  This change fixes the placeholder 
1884         position, and also better aligns the results popup list with the actual text you type.
1885
1886         * rendering/RenderTextControlSingleLine.cpp:
1887         (WebCore::RenderTextControlSingleLine::clientPaddingLeft):
1888         (WebCore::RenderTextControlSingleLine::clientPaddingRight):
1889
1890 2011-02-21  Nico Weber  <thakis@chromium.org>
1891
1892         Reviewed by Kent Tamura.
1893
1894         GIFImageDecoder::setSize() tries to override the superclass method but fails
1895         https://bugs.webkit.org/show_bug.cgi?id=54305
1896
1897         The superclass uses unsigned instead of int for its parameters, so
1898         GIFImageDecoder::setSize() was an overload, not an override.
1899
1900         * platform/image-decoders/gif/GIFImageDecoder.cpp:
1901         (WebCore::GIFImageDecoder::setSize):
1902         * platform/image-decoders/gif/GIFImageDecoder.h:
1903
1904 2011-02-21  Ryosuke Niwa  <rniwa@webkit.org>
1905
1906         Reviewed by Darin Adler.
1907
1908         Deploy EditingStyle more in ApplyStyleCommand and do some cleanup
1909         https://bugs.webkit.org/show_bug.cgi?id=54528
1910
1911         * editing/ApplyStyleCommand.cpp:
1912         (WebCore::StyleChange::init): Allows style to be a null pointer.
1913         (WebCore::ApplyStyleCommand::applyInlineStyle): Overrides the value of text-decoration property by that of
1914         -webkit-text-decorations-in-effect and remove the latter property when present. This allows removeImplicitlyStyledElement
1915         to ignore -webkit-text-decorations-in-effect. Also uses the return value of EditingStyle::textDirection to determine
1916         whether or not we need to apply unicode-bidi / direction instead of directly checking the value of unicode-bidi property.
1917         (WebCore::ApplyStyleCommand::fixRangeAndApplyInlineStyle): Takes EditingStyle* instead of CSSMutableStyleDeclaration*.
1918         (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange): Ditto.
1919         (WebCore::ApplyStyleCommand::removeStyleFromRunBeforeApplyingStyle): Ditto.
1920         (WebCore::ApplyStyleCommand::removeCSSStyle): Ditto.
1921         (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle): Ditto.
1922         (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode): Ditto.
1923         (WebCore::ApplyStyleCommand::removeInlineStyle): Ditto; no longer collapse text decoration properties because
1924         ApplyStyleCommand::applyInlineStyle already does it.
1925         * editing/ApplyStyleCommand.h:
1926         * editing/EditingStyle.cpp:
1927         (WebCore::EditingStyle::textDirection): Exits early when m_mutableStyle is null.
1928         (WebCore::EditingStyle::collapseTextDecorationProperties): Extracted from ApplyStyleCommand::removeInlineStyle.
1929         * editing/EditingStyle.h:
1930
1931 2011-02-21  Mark Rowe  <mrowe@apple.com>
1932
1933         Reviewed by Darin Adler and Alexey Proskuryakov.
1934
1935         <http://webkit.org/b/54919> / <rdar://problem/7689300> WebCore should retrieve unclamped frame delays from ImageIO
1936
1937         * platform/graphics/cg/ImageSourceCG.cpp:
1938         (WebCore::ImageSource::frameDurationAtIndex): Look for the unclamped frame delay in the
1939         frame properties dictionary and use that if it exists. If it does not exist in the
1940         dictionary then fall back to using the clamped frame delay.
1941
1942 2011-02-21  James Kozianski  <koz@chromium.org>
1943
1944         Reviewed by Kent Tamura.
1945
1946         Causes elements to be unfocusable after tabindex property is removed.
1947         https://bugs.webkit.org/show_bug.cgi?id=54727
1948
1949         Test: fast/html/tabindex-removal.html
1950
1951         * dom/Node.cpp:
1952         (WebCore::Node::clearTabIndexExplicitly):
1953         * dom/Node.h:
1954         * dom/NodeRareData.h:
1955         (WebCore::NodeRareData::clearTabIndexExplicitly):
1956         * html/HTMLElement.cpp:
1957         (WebCore::HTMLElement::parseMappedAttribute):
1958
1959 2011-02-21  Alexey Proskuryakov  <ap@apple.com>
1960
1961         Reviewed by Mark Rowe.
1962
1963         <rdar://problem/8995483> Remove stubs of unneeded NSURLAuthenticationChallengeSender methods
1964
1965         * platform/network/mac/AuthenticationMac.mm: Remove the stubs that are no longer needed.
1966
1967 2011-02-21  Sam Weinig  <sam@webkit.org>
1968
1969         Reviewed by Dan Bernstein.
1970
1971         Overhang areas need to be invalidated on scroll
1972         <rdar://problem/9032194>
1973         https://bugs.webkit.org/show_bug.cgi?id=54917
1974
1975         * platform/ScrollView.cpp:
1976         (WebCore::ScrollView::scrollContents):
1977         We need to explicitly invalidate the overhang areas when we scroll the contents
1978         of a ScrollView, since they could contain arbitrary content that cannot be blitted.
1979
1980 2011-02-21  Lucas Forschler  <lforschler@apple.com>
1981
1982         Reviewed by Stephanie Lewis.
1983
1984         Fix the Leopard Debug build by incorporating the RenderSVGAllInOne.cpp
1985
1986         No new tests required.
1987
1988         * WebCore.xcodeproj/project.pbxproj:
1989
1990 2011-02-21  Pratik Solanki  <psolanki@apple.com>
1991
1992         Reviewed by Darin Adler.
1993
1994         Remove global initializer in CookieStorageCFNet.cpp
1995         https://bugs.webkit.org/show_bug.cgi?id=54905
1996
1997         * platform/network/cf/CookieStorageCFNet.cpp:
1998         (WebCore::currentCookieStorage):
1999         (WebCore::setCurrentCookieStorage):
2000         (WebCore::setCookieStoragePrivateBrowsingEnabled):
2001
2002 2011-02-18  Jer Noble  <jer.noble@apple.com>
2003
2004         Reviewed by Sam Weinig.
2005
2006         WebKit2: Media document videos play only sound, no video (affects trailers.apple.com)
2007         https://bugs.webkit.org/show_bug.cgi?id=54771
2008
2009         Now that video is accelerated, we no longer need to special case
2010         video playing within a media document.
2011
2012         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2013         (WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
2014         (WebCore::MediaPlayerPrivateQTKit::supportsAcceleratedRendering):
2015
2016 2011-02-21  Alexey Proskuryakov  <ap@apple.com>
2017
2018         Reviewed by Adam Roben.
2019
2020         REGRESSION (WebKit2): HTTP requests time out after 60 seconds
2021         https://bugs.webkit.org/show_bug.cgi?id=54755
2022         <rdar://problem/9006592>
2023
2024         No new tests - it won't be great to have a test that runs for a minute.
2025
2026         It's now possible to set a default timeout to be used at ResourceRequest creation. If one
2027         hasn't been set, ResourceRequest will behave as before (use NSURLRequest default on Mac,
2028         or use INT_MAX on other platforms).
2029
2030         * WebCore.exp.in:
2031         * platform/network/ResourceRequestBase.cpp:
2032         (WebCore::ResourceRequestBase::defaultTimeoutInterval): Get the ResourceRequest notion of
2033         default timeout interval (may be 0 if using NSURLRequest default).
2034         (WebCore::ResourceRequestBase::setDefaultTimeoutInterval): Set the static member variable.
2035         (WebCore::ResourceRequestBase::updatePlatformRequest): Added an assertion that resource
2036         request is updated. Plaform code often calls updateResourceRequest() indirectly from this
2037         function, and that must obviously be a no-op.
2038         (WebCore::ResourceRequestBase::updateResourceRequest): Added an assertion in the opposite
2039         direction.
2040         * platform/network/ResourceRequestBase.h: Changed "unspecifiedTimeoutInterval" to
2041         "defaultTimeoutInterval". It has been used as default by most platforms anyway.
2042         (WebCore::ResourceRequestBase::ResourceRequestBase):
2043
2044         * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdatePlatformRequest):
2045         Now zero is the magic value, not INT_MAX. We'll use NSURLRequest default if neither
2046         setTimeoutInterval() nor setDefaultTimeoutInterval() has been called.
2047
2048 2011-02-21  Martin Robinson  <mrobinson@igalia.com>
2049
2050         Reviewed by Xan Lopez.
2051
2052         [GTK] editing/pasteboard/dataTransfer-setData-getData.html fails
2053         https://bugs.webkit.org/show_bug.cgi?id=54895
2054
2055         Correct the GTK+ clipboard implementation to know that "text" is an alias
2056         for "text/html" data. This corrects the failing test.
2057
2058         * platform/gtk/ClipboardGtk.cpp:
2059         (WebCore::dataObjectTypeFromHTMLClipboardType): Accept "text" as well as "Text".
2060         (WebCore::ClipboardGtk::types): Advertise "text" as well as "Text".
2061
2062 2011-02-21  Vsevolod Vlasov  <vsevik@chromium.org>
2063
2064         Reviewed by Pavel Feldman.
2065
2066         ProcessingInstruction should provide a way to know if it is of CSS type.
2067         https://bugs.webkit.org/show_bug.cgi?id=54868
2068
2069         * dom/ProcessingInstruction.cpp:
2070         (WebCore::ProcessingInstruction::ProcessingInstruction):
2071         (WebCore::ProcessingInstruction::checkStyleSheet):
2072         (WebCore::ProcessingInstruction::setCSSStyleSheet):
2073         * dom/ProcessingInstruction.h:
2074         (WebCore::ProcessingInstruction::isCSS):
2075
2076 2011-02-21  Simon Fraser  <simon.fraser@apple.com>
2077
2078         Put JSDOMImplementationCustom.cpp where it belongs in the project.
2079
2080         * WebCore.xcodeproj/project.pbxproj:
2081
2082 2011-02-21  Gavin Barraclough  <barraclough@apple.com>
2083
2084         Reviewed by Sam Weinig.
2085
2086         Bug 54894 - Make inheritance structure described by ClassInfo match C++ class hierarchy.
2087
2088         The ClassInfo objects describe an inheritance hierarchy, with each ClassInfo instance
2089         containing a pointer to its parent class. These links should reflect the inheritance
2090         hierarchy of C++ classes below JSObject. For the large part it does, but in some cases
2091         entries in the C++ hierarchy are skipped over. This presently likely doesn't matter,
2092         since intervening C++ classes may not have ClassInfo - but would be a potential bug
2093         were ClassInfo were to be added.
2094
2095         * bindings/js/JSAudioConstructor.cpp:
2096         * bindings/js/JSDOMGlobalObject.cpp:
2097         * bindings/js/JSImageConstructor.cpp:
2098         * bindings/js/JSOptionConstructor.cpp:
2099         * bindings/scripts/CodeGeneratorJS.pm:
2100         * bridge/objc/objc_runtime.mm:
2101         * bridge/runtime_object.cpp:
2102
2103 2011-02-21  Pavel Feldman  <pfeldman@chromium.org>
2104
2105         Reviewed by Yury Semikhatsky.
2106
2107         Web Inspector: navigation does not work after reopening frontend.
2108         https://bugs.webkit.org/show_bug.cgi?id=54879
2109
2110         Test: http/tests/inspector-enabled/open-close-open.html
2111
2112         * inspector/InspectorAgent.cpp:
2113         (WebCore::InspectorAgent::setFrontend):
2114         * inspector/InspectorState.cpp:
2115         (WebCore::InspectorState::unmute):
2116         * inspector/InspectorState.h:
2117
2118 2011-02-21  Adam Roben  <aroben@apple.com>
2119
2120         Protect the PluginView when evaluating javascript: URLs
2121
2122         Fixes <http://webkit.org/b/54884> <rdar://problem/9030864>
2123         plugins/get-url-with-javascript-destroying-plugin.html crashing on Windows since it was
2124         added
2125
2126         Reviewed by Sam Weinig.
2127
2128         * plugins/PluginView.cpp:
2129         (WebCore::PluginView::performRequest): Protect the PluginView, not just its parent frame,
2130         when evaluating javascript: URLs.
2131
2132 2011-02-21  Martin Robinson  <mrobinson@igalia.com>
2133
2134         Fix GTK+ build after r79223.
2135
2136         * GNUmakefile.am: Add file missing from the source list.
2137
2138 2011-02-14  Alexander Pavlov  <apavlov@chromium.org>
2139
2140         Reviewed by Yury Semikhatsky.
2141
2142         Web Inspector: audits should not warn about gzip compression for 304s
2143         https://bugs.webkit.org/show_bug.cgi?id=54343
2144
2145         Do not run compression-related audits on 304 resources.
2146         Drive-by: handle multi-encoding resources (Content-Encoding: sdhc,gzip) correctly.
2147
2148         * inspector/front-end/AuditRules.js:
2149         (WebInspector.AuditRules.GzipRule.prototype.doRun):
2150         (WebInspector.AuditRules.GzipRule.prototype._isCompressed):
2151
2152 2011-02-08  Anton Muhin  <antonm@chromium.org>
2153
2154        Reviewed by Adam Barth and Alexey Proskuryakov.
2155
2156        Propagate security origin of parent document into HTML documents created with DOMImplementation
2157        https://bugs.webkit.org/show_bug.cgi?id=53611
2158
2159        This restores invariant that JS wrappers residing in the same JS context should come
2160        from the same security origin.
2161
2162        Absence of regressions is covered by the current tests.  Different security origin of
2163        DOMImplementation is difficult to check with layout tests as DOMImplementation
2164        resides in the same JS context as parent document and therefore there are no security origin checks.
2165        This is observable however in C++.
2166
2167        * Android.jscbindings.mk:
2168        * CMakeLists.txt:
2169        * WebCore.gypi:
2170        * WebCore.pro:
2171        * WebCore.vcproj/WebCore.vcproj:
2172        * WebCore.xcodeproj/project.pbxproj:
2173        * bindings/v8/V8GCController.cpp:
2174        (WebCore::NodeGrouperVisitor::visitDOMWrapper):
2175        * dom/DOMImplementation.cpp:
2176        (WebCore::DOMImplementation::DOMImplementation):
2177        (WebCore::DOMImplementation::createDocument):
2178        * dom/DOMImplementation.h:
2179        (WebCore::DOMImplementation::create):
2180        (WebCore::DOMImplementation::documentDestroyed):
2181        (WebCore::DOMImplementation::parentDocument):
2182        * dom/DOMImplementation.idl:
2183        * dom/Document.cpp:
2184        (WebCore::Document::~Document):
2185        (WebCore::Document::implementation):
2186        * dom/Document.h:
2187
2188 2011-02-21  Andrey Adaikin  <aandrey@google.com>
2189
2190         Reviewed by Pavel Feldman.
2191
2192         Web Inspector: [Text editor] Optimize editing updates in gutter panel
2193         https://bugs.webkit.org/show_bug.cgi?id=54866
2194
2195         * inspector/front-end/TextViewer.js:
2196         (WebInspector.TextViewer.prototype.set startEditingListener):
2197         (WebInspector.TextViewer.prototype.set endEditingListener):
2198         (WebInspector.TextViewer.prototype.endUpdates):
2199         (WebInspector.TextViewer.prototype._enterInternalTextChangeMode):
2200         (WebInspector.TextViewer.prototype._exitInternalTextChangeMode):
2201         (WebInspector.TextEditorChunkedPanel.prototype._chunkNumberForLine):
2202         (WebInspector.TextEditorGutterPanel.prototype._expandChunks):
2203         (WebInspector.TextEditorGutterPanel.prototype.textChanged):
2204         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
2205
2206 2011-02-21  Alexander Pavlov  <apavlov@chromium.org>
2207
2208         Reviewed by Yury Semikhatsky.
2209
2210         Web Inspector: [Audits] Image dimensions in inline style not checked
2211         https://bugs.webkit.org/show_bug.cgi?id=54738
2212
2213         * inspector/front-end/AuditRules.js:
2214         (WebInspector.AuditRules.ImageDimensionsRule.prototype.doRun):
2215
2216 2011-02-21  Yury Semikhatsky  <yurys@chromium.org>
2217
2218         Reviewed by Pavel Feldman.
2219
2220         Web Inspector: create and destroy DOM agent along with InspectorAgent
2221         https://bugs.webkit.org/show_bug.cgi?id=54875
2222
2223         * GNUmakefile.am:
2224         * WebCore.gypi:
2225         * WebCore.pro:
2226         * WebCore.vcproj/WebCore.vcproj:
2227         * WebCore.xcodeproj/project.pbxproj:
2228         * inspector/InstrumentingAgents.h: Added. Agents that want to instrument WebCore should register themselve
2229         on this object.
2230         (WebCore::InstrumentingAgents::InstrumentingAgents):
2231         (WebCore::InstrumentingAgents::~InstrumentingAgents):
2232         (WebCore::InstrumentingAgents::inspectorBrowserDebuggerAgent):
2233         (WebCore::InstrumentingAgents::setInspectorBrowserDebuggerAgent):
2234         (WebCore::InstrumentingAgents::inspectorConsoleAgent):
2235         (WebCore::InstrumentingAgents::setInspectorConsoleAgent):
2236         (WebCore::InstrumentingAgents::inspectorDOMAgent):
2237         (WebCore::InstrumentingAgents::setInspectorDOMAgent):
2238         (WebCore::InstrumentingAgents::inspectorDOMStorageAgent):
2239         (WebCore::InstrumentingAgents::setInspectorDOMStorageAgent):
2240         (WebCore::InstrumentingAgents::inspectorDatabaseAgent):
2241         (WebCore::InstrumentingAgents::setInspectorDatabaseAgent):
2242         (WebCore::InstrumentingAgents::inspectorDebuggerAgent):
2243         (WebCore::InstrumentingAgents::setInspectorDebuggerAgent):
2244         (WebCore::InstrumentingAgents::inspectorProfilerAgent):
2245         (WebCore::InstrumentingAgents::setInspectorProfilerAgent):
2246         (WebCore::InstrumentingAgents::inspectorResourceAgent):
2247         (WebCore::InstrumentingAgents::setInspectorResourceAgent):
2248         (WebCore::InstrumentingAgents::inspectorRuntimeAgent):
2249         (WebCore::InstrumentingAgents::setInspectorRuntimeAgent):
2250         (WebCore::InstrumentingAgents::inspectorStorageAgent):
2251         (WebCore::InstrumentingAgents::setInspectorStorageAgent):
2252         (WebCore::InstrumentingAgents::inspectorTimelineAgent):
2253         (WebCore::InstrumentingAgents::setInspectorTimelineAgent):
2254         * inspector/InspectorAgent.cpp:
2255         (WebCore::InspectorAgent::InspectorAgent):
2256         (WebCore::InspectorAgent::setFrontend):
2257         (WebCore::InspectorAgent::disconnectFrontend):
2258         (WebCore::InspectorAgent::createFrontendLifetimeAgents):
2259         (WebCore::InspectorAgent::releaseFrontendLifetimeAgents):
2260         (WebCore::InspectorAgent::didCommitLoad):
2261         (WebCore::InspectorAgent::domContentLoadedEventFired):
2262         (WebCore::InspectorAgent::loadEventFired):
2263         * inspector/InspectorAgent.h:
2264         * inspector/InspectorCSSAgent.cpp:
2265         (WebCore::InspectorCSSAgent::InspectorCSSAgent):
2266         (WebCore::InspectorCSSAgent::~InspectorCSSAgent):
2267         * inspector/InspectorCSSAgent.h:
2268         * inspector/InspectorConsoleAgent.cpp:
2269         (WebCore::InspectorConsoleAgent::InspectorConsoleAgent):
2270         (WebCore::InspectorConsoleAgent::~InspectorConsoleAgent):
2271         (WebCore::InspectorConsoleAgent::clearConsoleMessages):
2272         (WebCore::InspectorConsoleAgent::clearFrontend):
2273         (WebCore::InspectorConsoleAgent::resourceRetrievedByXMLHttpRequest):
2274         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2275         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2276         (WebCore::InspectorConsoleAgent::addConsoleMessage):
2277         * inspector/InspectorConsoleAgent.h:
2278         * inspector/InspectorDOMAgent.cpp: DOM agent now lives even when the front-end is not attached.
2279         (WebCore::InspectorDOMAgent::InspectorDOMAgent):
2280         (WebCore::InspectorDOMAgent::setFrontend): Add DOM agent to the set of active agents when the front-end
2281         is attached.
2282         (WebCore::InspectorDOMAgent::clearFrontend):
2283         * inspector/InspectorDOMAgent.h:
2284         (WebCore::InspectorDOMAgent::create):
2285
2286 2011-02-21  Csaba Osztrogonác  <ossy@webkit.org>
2287
2288         Reviewed by Andreas Kling.
2289
2290         [Qt][V8]REGRESSION(r79157): Fix build
2291         https://bugs.webkit.org/show_bug.cgi?id=54871
2292
2293         * bridge/npruntime_internal.h: Add one more undef because of evil X11 macro.
2294
2295 2011-02-16  Vitaly Repeshko  <vitalyr@chromium.org>
2296
2297         Reviewed by Mihai Parparita.
2298
2299         [V8] SerializedScriptValue: fix JS exception handling.
2300         https://bugs.webkit.org/show_bug.cgi?id=54555
2301
2302         Added checks for exceptions and empty handles:
2303         * bindings/v8/SerializedScriptValue.cpp:
2304         (WebCore::Serializer::Serializer):
2305         (WebCore::Serializer::serialize):
2306         (WebCore::Serializer::checkException):
2307         (WebCore::Serializer::reportFailure):
2308         (WebCore::Serializer::ArrayState::advance):
2309         (WebCore::Serializer::AbstractObjectState::AbstractObjectState):
2310         (WebCore::Serializer::AbstractObjectState::advance):
2311         (WebCore::Serializer::push):
2312         (WebCore::Serializer::handleError):
2313         (WebCore::Serializer::newObjectState):
2314         (WebCore::Serializer::doSerialize):
2315         (WebCore::SerializedScriptValue::SerializedScriptValue):
2316
2317 2011-02-21  Ryosuke Niwa  <rniwa@webkit.org>
2318
2319         Reviewed by Kent Tamura.
2320
2321         Add selectionchange event
2322         https://bugs.webkit.org/show_bug.cgi?id=45712
2323
2324         Added the support for asynchronous selectionchange event, which is fired whenever selection is changed.
2325         This event is not cancelable and does not bubble. An event listener can be attached to a document by
2326         body element's onselectionchange attribute or via document's onselectionchange property.
2327
2328         Note that WebKit's implementation fires the event asynchronously whereas Internet Explorer's implementation
2329         fires it synchronously. This implies that a script that modify selection (e.g. via selection's addRange)
2330         will not observe the event before the control returns to JavaScript.
2331
2332         See also: http://msdn.microsoft.com/en-us/library/ms536968(VS.85).aspx
2333
2334         Tests: fast/events/selectionchange-iframe.html
2335                fast/events/selectionchange-user-initiated.html
2336
2337         * dom/Document.cpp:
2338         (WebCore::Document::enqueueDocumentEvent): Added.
2339         * dom/Document.h: Added selectionchange event listener.
2340         * dom/Document.idl: Added onselectionchagne attribute.
2341         * dom/EventNames.h: Added selectionchange
2342         * editing/SelectionController.cpp:
2343         (WebCore::SelectionController::setSelection): Fires selectionchange event.
2344         * html/HTMLAttributeNames.in: Added onselectionchange.
2345         * html/HTMLBodyElement.cpp:
2346         (WebCore::HTMLBodyElement::parseMappedAttribute): Handles onselectionchange attribute.
2347
2348 2011-02-21  Ilya Tikhonovsky  <loislo@chromium.org>
2349
2350         Reviewed by Pavel Feldman.
2351
2352         Web Inspector: protocol error messages are dumping incorrectly in Layout tests.
2353         https://bugs.webkit.org/show_bug.cgi?id=54859
2354
2355         * inspector/CodeGeneratorInspector.pm:
2356
2357 2011-02-21  Pavel Feldman  <pfeldman@chromium.org>
2358
2359         Reviewed by Yury Semikhatsky.
2360
2361         Web Inspector: generate protocol documentation based on IDL.
2362         https://bugs.webkit.org/show_bug.cgi?id=54822
2363
2364         * inspector/CodeGeneratorInspector.pm:
2365
2366 2011-02-21  Andoni Morales Alastruey  <amorales@flumotion.com>
2367
2368         Reviewed by Martin Robinson.
2369
2370         [GStreamer] Add URI queries support in webkitwebsrc
2371         https://bugs.webkit.org/show_bug.cgi?id=54627
2372
2373         This allow replying to URI queries from downstream elements
2374         with the uri currently set in the source element.
2375
2376         No new tests, this feature is dedicated to internal GStreamer use,
2377         such as the upcoming HTTP Live Streaming element.
2378
2379         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2380         (webKitWebSrcQuery):
2381
2382 2011-02-21  Andoni Morales Alastruey  <amorales@flumotion.com>
2383
2384         Reviewed by Martin Robinson.
2385
2386         [GStreamer] Add 'location' property in webkitwebsrc
2387         https://bugs.webkit.org/show_bug.cgi?id=54628
2388
2389         No new tests, this feature is dedicated to internal GStreamer use,
2390         such as the upcoming HTTP Live Streaming element.
2391
2392         * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
2393         (webkit_web_src_class_init):
2394         (webKitWebSrcSetProperty):
2395         (webKitWebSrcGetProperty):
2396
2397 2011-02-17  Ryosuke Niwa  <rniwa@webkit.org>
2398
2399         Reviewed by Kent Tamura.
2400
2401         Rename Position::node() to Position::deprecatedNode()
2402         https://bugs.webkit.org/show_bug.cgi?id=54622
2403
2404         Done the rename. All calls to node() are replaced by calls to deprecatedNode() except when
2405         calls were of the form node()->document() and node()->inDocument() in which case they were
2406         replaced by anchorNode()->document() and anchorNode()->inDocument() respectively.
2407
2408         * WebCore.exp.in: Added Position::containerNode.
2409
2410         The rest abbreviated for simplicity. Please see svn log.
2411
2412 2011-02-20  Gavin Barraclough  <barraclough@apple.com>
2413
2414         Build fix (remove includes).
2415
2416         * bindings/js/JSDOMBinding.cpp:
2417         * bindings/js/JSDOMWindowCustom.cpp:
2418         * bindings/js/JSHistoryCustom.cpp:
2419         * bindings/js/JSLocationCustom.cpp:
2420
2421 2011-02-20  Gavin Barraclough  <barraclough@apple.com>
2422
2423         Reviewed by Oliver Hunt.
2424
2425         https://bugs.webkit.org/show_bug.cgi?id=54839
2426         Remove PrototypeFunction, NativeFunctionWrapper, and GlobalEvalFunction.
2427
2428         Historically, Native functions used to be represented by PrototypeFunctions, however
2429         since introducing call optimizations to the JIT this has used JSFunctions for host
2430         calls too. At the point this change was made, the interpreter continued to use
2431         PrototypeFunctions, however since fallback from the JIT to interpreter was introduced
2432         the interpreter has had to be able to run using host functions represented using
2433         JSFunctions - leading to an unnecessary and redundant divergence in behaviour between 
2434         interpreter only builds, and situations where the JIT has fallen back to interpreting.
2435
2436         NativeFunctionWrapper only existed to select between PrototypeFunction and JSFunction
2437         for wrappers for host functions, and as such can also be removed.
2438
2439         GlobalEvalFunction is a redundant wrapper that happens to be derived from
2440         PrototypeFunction. It existed to hold a reference to the global object - but since all
2441         functions how derive from JSObjectWithGlobalObject, this no longer requires an
2442         additional class to provide this functionality.
2443
2444         * bindings/js/JSDOMBinding.cpp:
2445         * bindings/js/JSDOMWindowCustom.cpp:
2446         * bindings/js/JSHistoryCustom.cpp:
2447         * bindings/js/JSLocationCustom.cpp:
2448             Removed use of redundant classes.
2449
2450 2011-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2451
2452         Unreviewed, rolling out r79169.
2453         http://trac.webkit.org/changeset/79169
2454         https://bugs.webkit.org/show_bug.cgi?id=54846
2455
2456         Made unexpected results for tests without CJK characters
2457         (Requested by tkent on #webkit).
2458
2459         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2460         (WebCore::FontCache::createFontPlatformData):
2461         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2462         (WebCore::FontPlatformData::FontPlatformData):
2463         (WebCore::FontPlatformData::operator=):
2464         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2465         (WebCore::FontPlatformData::orientation):
2466         * platform/graphics/skia/FontCustomPlatformData.cpp:
2467         (WebCore::FontCustomPlatformData::fontPlatformData):
2468
2469 2011-02-20  Chun-Lung Huang  <alvincl.huang@gmail.com>
2470
2471         Reviewed by Kent Tamura.
2472
2473         On Chromium Windows, glyphs in vertical text tests are rotated 90
2474         degrees clockwise. https://bugs.webkit.org/show_bug.cgi?id=51450
2475
2476         This platform dependent patch makes Chromium Windows show the
2477         vertical writing text correctly. Job was done by adding a prefix '@'
2478         in front of the font family name (Windows Only). No new tests added.
2479
2480         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2481         (WebCore::FontCache::createFontPlatformData):
2482         * platform/graphics/chromium/FontPlatformDataChromiumWin.cpp:
2483         (WebCore::FontPlatformData::FontPlatformData):
2484         (WebCore::FontPlatformData::operator=):
2485         * platform/graphics/chromium/FontPlatformDataChromiumWin.h:
2486         (WebCore::FontPlatformData::orientation):
2487         * platform/graphics/skia/FontCustomPlatformData.cpp:
2488         (WebCore::FontCustomPlatformData::fontPlatformData):
2489
2490 2011-02-20  Simon Fraser  <simon.fraser@apple.com>
2491
2492         Reviewed by Dirk Schulze.
2493
2494         REGRESSION (r73369-r73405): transform animation interpolates incorrectly
2495         https://bugs.webkit.org/show_bug.cgi?id=54793
2496         
2497         After the refactoring in r73380, the ending state for some types of
2498         accelerated animations was computed incorrectly, because the TransformationMatrix
2499         wasn't reset to identity before the ending value transformations were applied.
2500         
2501         Fix by cleaning up the code to use explicit, separate values for
2502         starting and ending values. Only matrix-type animations had this
2503         issue, but cleaned up other clauses similarly.
2504
2505         Test: animations/3d/matrix-transform-type-animation.html
2506
2507         * platform/graphics/ca/GraphicsLayerCA.cpp:
2508         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
2509
2510 2011-02-20  Dan Bernstein  <mitz@apple.com>
2511
2512         Reviewed by Maciej Stachowiak.
2513
2514         <rdar://problem/9028929> REGRESSION (r75897): Scaling applied twice to an iframe with a transformed ancestor
2515
2516         Test: fast/frames/iframe-scale-applied-twice.html
2517
2518         * page/FrameView.cpp:
2519         (WebCore::FrameView::create): Set the initial bounds of the view to match the
2520         frame size.
2521         * platform/ScrollView.cpp:
2522         (WebCore::ScrollView::visibleContentRect): Based on bounds, not frame size.
2523         (WebCore::ScrollView::updateScrollbars): Ditto.
2524         (WebCore::ScrollView::setFrameRect): Moved code that really handles bounds size
2525         change to setBoundsSize().
2526         (WebCore::ScrollView::setBoundsSize): Added.
2527         (WebCore::ScrollView::setInitialBoundsSize): Added. Sets the bounds size but does
2528         not update anything.
2529         (WebCore::ScrollView::frameRectsChanged): Based on bounds, not frame size.
2530         (WebCore::ScrollView::scrollbarCornerPresent): Ditto.
2531         * platform/ScrollView.h:
2532         (WebCore::ScrollView::boundsSize): Added this getter.
2533         * platform/Widget.h:
2534         (WebCore::Widget::resize): Set the bounds size to the frame size.
2535         * platform/mac/ScrollbarThemeMac.mm:
2536         (WebCore::ScrollbarThemeMac::paint): Fixed an error in the indirect drawing code
2537         path where the buffer rect was resized to capture only the damaged part, but was
2538         still drawn in the original location.
2539
2540 2011-02-20  Alexey Proskuryakov  <ap@apple.com>
2541
2542         Reviewed by Eric Seidel.
2543
2544         Tighten up access permissions by using libxslt API
2545         https://bugs.webkit.org/show_bug.cgi?id=52688
2546         <rdar://problem/8909191> 
2547
2548         * xml/XSLTProcessorLibxslt.cpp: (WebCore::XSLTProcessor::transformToString): We are only
2549         interested in a string result, so let libxslt know about that.
2550
2551 2011-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2552
2553         Unreviewed, rolling out r79104.
2554         http://trac.webkit.org/changeset/79104
2555         https://bugs.webkit.org/show_bug.cgi?id=54835
2556
2557         Might have caused flaky canaries (Requested by tonyg-cr on
2558         #webkit).
2559
2560         * html/parser/HTMLDocumentParser.cpp:
2561         (WebCore::HTMLDocumentParser::canTakeNextToken):
2562         (WebCore::HTMLDocumentParser::pumpTokenizer):
2563         * html/parser/HTMLParserScheduler.cpp:
2564         (WebCore::isLayoutTimerActive):
2565         * html/parser/HTMLParserScheduler.h:
2566         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
2567         * page/FrameView.h:
2568
2569 2011-02-20  Dirk Schulze  <krit@webkit.org>
2570
2571         Reviewed by Nikolas Zimmermann.
2572
2573         SVG animation - analyze attribute type for animation
2574         https://bugs.webkit.org/show_bug.cgi?id=54542
2575
2576         Analyze animated attribute type to determine the kind of animation. Removed enum PropertyType and replace it
2577         with AnimatedAttributeType instead. More cleanup of the animation code.
2578         Added missing fillAttributeToPropertyTypeMap() for SVGGElement.
2579
2580         Use QualifiedName instead of AtomicStrings for attribute names. This makes it easier to handle animated attributes
2581         from a different namespace like xlink:href. The rest of the SVG code is using QualifiedNames as well.
2582
2583         No change of functionality on the animation code. The changes for the <g>-element affect animateTransform. Sadly
2584         animateTransform is not supported by our SVG animation test script at the moment. Can still be tested manually
2585         with the W3C test suite in trunk.
2586
2587         The change on SVGUseElement gets covered by animate-elem-39-t.svg
2588
2589         Test: svg/animations/animate-dynamic-update-attributeName.html
2590
2591         * svg/SVGAnimateElement.cpp:
2592         (WebCore::SVGAnimateElement::SVGAnimateElement):
2593         (WebCore::SVGAnimateElement::hasValidAttributeType):
2594         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
2595         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2596         (WebCore::inheritsFromProperty):
2597         (WebCore::SVGAnimateElement::calculateFromAndToValues):
2598         (WebCore::SVGAnimateElement::calculateFromAndByValues):
2599         (WebCore::SVGAnimateElement::resetToBaseValue):
2600         (WebCore::SVGAnimateElement::applyResultsToTarget):
2601         (WebCore::SVGAnimateElement::calculateDistance):
2602         * svg/SVGAnimateElement.h:
2603         * svg/SVGAnimateMotionElement.cpp:
2604         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
2605         (WebCore::parsePoint):
2606         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
2607         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
2608         (WebCore::SVGAnimateMotionElement::calculateDistance):
2609         * svg/SVGAnimateMotionElement.h:
2610         * svg/SVGAnimateTransformElement.cpp:
2611         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
2612         (WebCore::SVGAnimateTransformElement::determineAnimatedAttributeType):
2613         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
2614         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
2615         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
2616         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
2617         (WebCore::SVGAnimateTransformElement::calculateDistance):
2618         * svg/SVGAnimateTransformElement.h:
2619         * svg/SVGAnimationElement.cpp:
2620         (WebCore::parseKeyTimes):
2621         (WebCore::parseKeySplines):
2622         (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
2623         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
2624         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
2625         (WebCore::solveEpsilon):
2626         (WebCore::SVGAnimationElement::calculatePercentFromKeyPoints):
2627         (WebCore::SVGAnimationElement::currentValuesFromKeyPoints):
2628         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
2629         (WebCore::SVGAnimationElement::startedActiveInterval):
2630         * svg/SVGAnimationElement.h:
2631         * svg/SVGFilterElement.cpp:
2632         (WebCore::SVGFilterElement::fillAttributeToPropertyTypeMap):
2633         * svg/SVGGElement.cpp:
2634         (WebCore::SVGGElement::attributeToPropertyTypeMap):
2635         (WebCore::SVGGElement::fillAttributeToPropertyTypeMap): Added to fill the animated attribute map for this element.
2636         * svg/SVGGElement.h:
2637         * svg/SVGUseElement.cpp:
2638         (WebCore::SVGUseElement::fillAttributeToPropertyTypeMap): Changed attribute type to AnimatedString for xlink:href.
2639         * svg/animation/SMILTimeContainer.cpp:
2640         (WebCore::SMILTimeContainer::baseValueFor):
2641         (WebCore::SMILTimeContainer::updateAnimations):
2642         * svg/animation/SMILTimeContainer.h:
2643         * svg/animation/SVGSMILElement.cpp:
2644         (WebCore::SVGSMILElement::SVGSMILElement):
2645         (WebCore::constructQualifiedName): Create a QualifiedName from a attribute name.
2646         (WebCore::SVGSMILElement::insertedIntoDocument): Update local varaible of attribute name.
2647         (WebCore::SVGSMILElement::removedFromDocument): Ditto.
2648         (WebCore::SVGSMILElement::attributeChanged): Ditto.
2649         * svg/animation/SVGSMILElement.h:
2650         (WebCore::SVGSMILElement::attributeName):
2651
2652 2011-02-20  David Kilzer  <ddkilzer@apple.com>
2653
2654         BUILD FIX: Add missing UNUSED_PARAM() when !ENABLE(FULLSCREEN_API)
2655
2656         Not reviewed.
2657
2658         * rendering/RenderLayerCompositor.cpp:
2659         (WebCore::RenderLayerCompositor::requiresCompositingForFullScreen):
2660
2661 2011-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
2662
2663         Reviewed by Martin Robinson.
2664
2665         [GTK] Implement PlatformKeyboardEvent::getCurrentModifierState()
2666         https://bugs.webkit.org/show_bug.cgi?id=52880
2667
2668         * platform/gtk/KeyEventGtk.cpp:
2669         (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
2670
2671 2011-02-19  Andreas Kling  <kling@webkit.org>
2672
2673         Reviewed by Oliver Hunt.
2674
2675         DragController should use Color::serialized() when passing colors to CSSStyleDeclaration
2676         https://bugs.webkit.org/show_bug.cgi?id=54545
2677
2678         * page/DragController.cpp:
2679         (WebCore::DragController::concludeEditDrag):
2680
2681 2011-02-19  Sam Weinig  <sam@webkit.org>
2682
2683         Reviewed by Anders Carlsson.
2684
2685         Add phase in addition to momentumPhase to platform wheel events
2686         Part of <rdar://problem/8945362>
2687
2688         Rename existing phase to momentumPhase.
2689
2690         * platform/PlatformWheelEvent.h:
2691         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2692         (WebCore::PlatformWheelEvent::momentumPhase):
2693         * platform/mac/ScrollAnimatorMac.mm:
2694         (WebCore::ScrollAnimatorMac::handleWheelEvent):
2695         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
2696         * platform/mac/WheelEventMac.mm:
2697         (WebCore::momentumPhaseForEvent):
2698         (WebCore::phaseForEvent):
2699         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2700
2701 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
2702
2703         Qt build fix.
2704
2705         * bridge/runtime_method.h:
2706         (JSC::RuntimeMethod::createStructure):
2707
2708 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
2709
2710         Qt build fix.
2711
2712         * bridge/qt/qt_instance.cpp:
2713         * bridge/qt/qt_pixmapruntime.cpp:
2714
2715 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
2716
2717         Qt build fix.
2718
2719         * bridge/qt/qt_instance.cpp:
2720         (JSC::Bindings::QtInstance::getMethod):
2721         * bridge/qt/qt_pixmapruntime.cpp:
2722         (JSC::Bindings::QtPixmapInstance::getMethod):
2723
2724 2011-02-18  Gavin Barraclough  <barraclough@apple.com>
2725
2726         Reviewed by Sam Weinig.
2727
2728         Bug 54786 - Devirtualize JSCell::classInfo()
2729
2730         Instead of making a virtual function call, add a pointer to the ClassInfo
2731         onto Structure.
2732
2733         This removes a virtual function call, and paves the way towards removing all
2734         the createStructure methods, and StructureFlags/AnonymousSlotCount properties
2735         (these should be able to move onto ClassInfo).
2736
2737         Calls to Structure::create must now pass a pointer to the ClassInfo for the
2738         structure. All objects now have a ClassInfo pointer, non-object cell types
2739         still do not.
2740
2741         Changes are most mechanical, involving three steps:
2742             * Remove virtual classInfo() methods.
2743             * Add &s_info parameter to calls to Structure::create.
2744             * Rename ClassInfo static members on classes from 'info' to 's_info',
2745               for consistency.
2746
2747         * WebCore.exp.in:
2748         * bindings/js/JSAudioConstructor.cpp:
2749         * bindings/js/JSAudioConstructor.h:
2750         * bindings/js/JSDOMBinding.cpp:
2751         * bindings/js/JSDOMBinding.h:
2752         * bindings/js/JSDOMGlobalObject.cpp:
2753         * bindings/js/JSDOMGlobalObject.h:
2754         * bindings/js/JSDOMWindowBase.cpp:
2755         * bindings/js/JSDOMWindowBase.h:
2756         * bindings/js/JSDOMWindowShell.cpp:
2757         * bindings/js/JSDOMWindowShell.h:
2758         * bindings/js/JSGeolocationCustom.cpp:
2759         * bindings/js/JSImageConstructor.cpp:
2760         * bindings/js/JSImageConstructor.h:
2761         * bindings/js/JSImageDataCustom.cpp:
2762         * bindings/js/JSOptionConstructor.cpp:
2763         * bindings/js/JSOptionConstructor.h:
2764         * bindings/js/JSWorkerContextBase.cpp:
2765         * bindings/js/JSWorkerContextBase.h:
2766         * bindings/js/SerializedScriptValue.cpp:
2767         * bindings/scripts/CodeGeneratorJS.pm:
2768         * bridge/c/CRuntimeObject.cpp:
2769         * bridge/c/CRuntimeObject.h:
2770         * bridge/c/c_instance.cpp:
2771         * bridge/jni/jsc/JNIUtilityPrivate.cpp:
2772         * bridge/jni/jsc/JavaInstanceJSC.cpp:
2773         * bridge/jni/jsc/JavaRuntimeObject.cpp:
2774         * bridge/jni/jsc/JavaRuntimeObject.h:
2775         * bridge/jsc/BridgeJSC.cpp:
2776         * bridge/objc/ObjCRuntimeObject.h:
2777         * bridge/objc/ObjCRuntimeObject.mm:
2778         * bridge/objc/objc_instance.mm:
2779         * bridge/objc/objc_runtime.h:
2780         * bridge/objc/objc_runtime.mm:
2781         * bridge/runtime_array.cpp:
2782         * bridge/runtime_array.h:
2783         * bridge/runtime_method.cpp:
2784         * bridge/runtime_method.h:
2785         * bridge/runtime_object.cpp:
2786         * bridge/runtime_object.h:
2787
2788 2011-02-19  Zan Dobersek  <zandobersek@gmail.com>
2789
2790         Reviewed by Martin Robinson.
2791
2792         [cairo][canvas] Drawing from/into float rectangles with width or height in range 0 to 1 fails
2793         https://bugs.webkit.org/show_bug.cgi?id=54491
2794
2795         When width or height in float rectangle are in range (0, 0.5) or (-0.5, 0)
2796         and would round to 0, alter the behaviour to ensure that width or height are
2797         at least 1 pixel in size in these cases.
2798
2799         * platform/graphics/cairo/GraphicsContextCairo.cpp:
2800         (WebCore::GraphicsContext::roundToDevicePixels):
2801
2802 2011-02-19  Dan Bernstein  <mitz@apple.com>
2803
2804         LLVM Compiler build fix.
2805
2806         * platform/graphics/ShadowBlur.cpp:
2807         (WebCore::ShadowBlur::blurLayerImage): Eliminated a file static that generated
2808         a global initializer since the compiler does not evaluate sqrtf at compile time.
2809
2810 2011-02-19  Brian Ryner  <bryner@chromium.org>
2811
2812         Reviewed by Adam Barth.
2813
2814         Replace the #include of DocumentLoader.h in Document.h with a
2815         forward declaration, and add a missing #include now that this
2816         transitive include is gone.
2817         https://bugs.webkit.org/show_bug.cgi?id=50489
2818
2819         No new tests required.
2820
2821         * bindings/ScriptControllerBase.cpp:
2822         * dom/Document.h:
2823
2824 2011-02-19 Patrick Gansterer <paroga@webkit.org>
2825
2826         Reviewed by Antonio Gomes.
2827
2828         [EFL] Remove WebCore::currentTime()
2829         https://bugs.webkit.org/show_bug.cgi?id=53886
2830
2831         There is no declaration for it and we use WTF::currentTime() everywhere.
2832
2833         * platform/efl/SystemTimeEfl.cpp:
2834
2835 2011-02-19 Patrick Gansterer <paroga@webkit.org>
2836
2837         Reviewed by Andreas Kling.
2838
2839         Move KeygenWinCE from wince into win directory
2840         https://bugs.webkit.org/show_bug.cgi?id=54804
2841
2842         Move this file into the win directory, since it can be used on all windows platforms.
2843
2844         * CMakeListsWinCE.txt:
2845         * platform/win/SSLKeyGeneratorWin.cpp: Renamed from platform/wince/KeygenWinCE.cpp.
2846
2847 2011-02-19  Patrick Gansterer  <paroga@webkit.org>
2848
2849         Reviewed by Andreas Kling.
2850
2851         Make FileChooserWin.cpp more portable and use it on WinCE
2852         https://bugs.webkit.org/show_bug.cgi?id=54803
2853
2854         * CMakeListsWinCE.txt:
2855         * platform/win/FileChooserWin.cpp:
2856         (WebCore::FileChooser::basenameForWidth):
2857         * platform/wince/FileChooserWinCE.cpp: Removed.
2858
2859 2011-02-19  James Simonsen  <simonjam@chromium.org>
2860
2861         Reviewed by Adam Barth.
2862
2863         Make ScriptElement match the HTML5 spec
2864         https://bugs.webkit.org/show_bug.cgi?id=54676
2865
2866         This implements the "prepare a script" section of the HTML5 spec in ScriptElement::prepareScript().
2867         http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#prepare-a-script
2868
2869         There are a couple of things missing from the spec that would be new functionality. These will be added later.
2870         - Support for async=false
2871         - Empty src attribute should dispatch an error.
2872
2873         There are a couple of slight behavioral changes to match the spec.
2874         - An XHTML script that is loaded then copied will not fire load on the copy.
2875         - If onbeforeload moves the script to a different document, then it will not try to execute again because wasAlreadyStarted is true.
2876
2877         The parsers were updated to use the new API, but not rewritten to look like the spec. That will be done separately.
2878
2879         Test: All existing tests.
2880
2881         * dom/ScriptElement.cpp: Rewritten to match HTML5 spec.
2882         (WebCore::ScriptElement::ScriptElement):
2883         (WebCore::ScriptElement::insertedIntoDocument): Logic moved to prepareScript.
2884         (WebCore::ScriptElement::childrenChanged): Logic moved to prepareScript.
2885         (WebCore::ScriptElement::handleSourceAttribute): Logic moved to prepareScript.
2886         (WebCore::isLegacySupportedJavaScriptLanguage): Added to support old script types in layout tests.
2887         (WebCore::ScriptElement::isScriptTypeSupported): Derived from old shouldExecuteAsJavaScript().
2888         (WebCore::ScriptElement::prepareScript): START HERE. Main change. Should read exactly like HTML5's "prepare a script." Legacy type support needed for layout tests using XML parser.
2889         (WebCore::ScriptElement::requestScript): Most logic moved to prepareScript. Check security settings here.
2890         (WebCore::ScriptElement::executeScript): Combined evaluateScript() and executeScript() from old code. Logic moved to prepareScript.
2891         (WebCore::ScriptElement::stopLoadRequest): Ignore parser executed scripts.
2892         (WebCore::ScriptElement::execute): Renamed executeScript.
2893         (WebCore::ScriptElement::notifyFinished): We should only listen for non-parser executed scripts.
2894         (WebCore::ScriptElement::ignoresLoadRequest): New variable names.
2895         (WebCore::ScriptElement::childrenAreCommentsOrEmptyText): Added for HTML5 compliance.
2896         (WebCore::ScriptElement::scriptCharset): Use HTML5 variables.
2897         * dom/ScriptElement.h:
2898         (WebCore::ScriptElement::willBeParserExecuted): Added.
2899         (WebCore::ScriptElement::readyToBeParserExecuted): Added.
2900         (WebCore::ScriptElement::willExecuteWhenDocumentFinishedParsing): Added.
2901         (WebCore::ScriptElement::cachedScript): prepareScript() is the only place that should load scripts. This accessor lets the parsers listen for when loads finish.
2902         (WebCore::ScriptElement::isParserInserted): Added.
2903         * dom/XMLDocumentParserLibxml2.cpp:
2904         (WebCore::XMLDocumentParser::endElementNs): Should behave the same. Offloads much of its work to prepareScript().
2905         * dom/XMLDocumentParserQt.cpp:
2906         (WebCore::XMLDocumentParser::parseEndElement): Identical to libxml2 changes.
2907         * html/HTMLScriptElement.cpp:
2908         (WebCore::HTMLScriptElement::insertedIntoDocument): No longer needs url.
2909         (WebCore::HTMLScriptElement::hasSourceAttribute): Added.
2910         * html/HTMLScriptElement.h:
2911         * html/parser/HTMLScriptRunner.cpp:
2912         (WebCore::HTMLScriptRunner::requestPendingScript): Requesting scripts offloaded to ScriptElement.
2913         (WebCore::HTMLScriptRunner::runScript): Should behave the same. Offloads much of its work to prepareScript().
2914         * svg/SVGScriptElement.cpp:
2915         (WebCore::SVGScriptElement::svgAttributeChanged): New ScriptElement function names.
2916         (WebCore::SVGScriptElement::insertedIntoDocument): No longer needs url.
2917         (WebCore::SVGScriptElement::finishParsingChildren): ScriptElement::finishParsingChildren is gone.
2918         (WebCore::SVGScriptElement::hasSourceAttribute): Added.
2919         (WebCore::SVGScriptElement::dispatchLoadEvent): New ScriptElement function names.
2920         * svg/SVGScriptElement.h:
2921
2922 2011-02-19  Marc-Antoine Ruel  <maruel@chromium.org>
2923
2924         Reviewed by James Robinson.
2925
2926         Split webcore_rendering off webcore_remaining to reduce its size for WPO builds
2927         https://bugs.webkit.org/show_bug.cgi?id=54789
2928
2929         * WebCore.gyp/WebCore.gyp:
2930
2931 2011-02-19  Bill Budge  <bbudge@chromium.org>
2932
2933         Reviewed by David Levin.
2934
2935         ThreadableLoaderClient needs willSendRequest method
2936         https://bugs.webkit.org/show_bug.cgi?id=54688
2937
2938         No new tests. Exposes no new functionality
2939
2940         * WebCore.gypi:
2941         * loader/DocumentThreadableLoader.cpp:
2942         (WebCore::DocumentThreadableLoader::willSendRequest):
2943         (WebCore::DocumentThreadableLoader::didReceiveData):
2944         (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
2945         * loader/DocumentThreadableLoaderClient.h: Added.
2946         (WebCore::DocumentThreadableLoaderClient::isDocumentThreadableLoaderClient):
2947         (WebCore::DocumentThreadableLoaderClient::willSendRequest):
2948         * loader/ThreadableLoaderClient.h:
2949         (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient):
2950
2951 2011-02-19  Charlie Reis  <creis@chromium.org>
2952
2953         Reviewed by Mihai Parparita.
2954
2955         Ensure loading has stopped in HistoryController::goToItem
2956         https://bugs.webkit.org/show_bug.cgi?id=54517
2957
2958         Avoid stopping all loaders in goToItem for same document navigations
2959         or pseudo-back-forward URLs.  Make HistoryController::goToItem private
2960         to force callers to go through Page::goToItem.  Also add a callback to
2961         FrameLoaderClient to let clients decide whether to stop loading first.
2962
2963         Test: http/tests/navigation/forward-to-fragment-fires-onload.html
2964
2965         * loader/EmptyClients.h:
2966         * loader/FrameLoader.h:
2967         * loader/FrameLoaderClient.h:
2968         * loader/HistoryController.cpp:
2969         * loader/HistoryController.h:
2970         * page/Page.cpp:
2971
2972 2011-02-19  Adam Barth  <abarth@webkit.org>
2973
2974         Reviewed by Daniel Bates.
2975
2976         Fix xssAuditor/iframe-injection.html
2977         https://bugs.webkit.org/show_bug.cgi?id=54591
2978
2979         We should block the iframe src attribute.  Although this technically
2980         can't be used to run script, it's a pretty easy vector for stealing
2981         passwords.
2982
2983         * html/parser/XSSFilter.cpp:
2984         (WebCore::XSSFilter::filterTokenInitial):
2985         (WebCore::XSSFilter::filterIframeToken):
2986         * html/parser/XSSFilter.h:
2987
2988 2011-02-18  Tony Gentilcore  <tonyg@chromium.org>
2989
2990         Reviewed by Eric Seidel.
2991
2992         Let the parser yield for layout before running scripts
2993         https://bugs.webkit.org/show_bug.cgi?id=54355
2994
2995         Prior to this patch, the parser would yield to perform a layout/paint before running a
2996         script only if the script or a stylesheet blocking the script is not loaded yet. Since we
2997         don't preload scan into the body while parsing the head, typically we'll block on a script
2998         early in the body that causes us to yield to do the first paint within a reasonable time.
2999
3000         However, I'm planning to change the PreloadScanner to scan into the body from the head.
3001         That significantly improves overall load time, but would hurt first paint time because
3002         fewer scripts would be blocked during parsing and thus wouldn't yield.
3003
3004         This change causes us to yield before running scripts if we haven't painted yet (regardless
3005         of whether or not the script is loaded). In addition to allowing the above mentioned
3006         PreloadScanner change to be implemented without regressing first paint time, this also
3007         improves first paint time by itself.
3008
3009         I tested Alexa's top 45 websites using Web Page Replay to control the content and simulate
3010         bandwidth. This patch improved average first paint time by 1% over an unlimited connection,
3011         6% over a 1Mbps connection and 11% over a 5Mbps connection. There was no statistically
3012         signifcant change in page load time.
3013
3014         Within the pages tested, 33 had no statistically significant change in time to first paint,
3015         12 improved, and none regressed. Of the improved, some of the standouts from the 1Mbps set
3016         are: 20% on youtube, 37% on wiki, 27% on ebay, 13% on cnn, 16% on espn, 74% on sohu.
3017
3018         * html/parser/HTMLDocumentParser.cpp:
3019         (WebCore::HTMLDocumentParser::canTakeNextToken): This is the new yield point.
3020         (WebCore::HTMLDocumentParser::pumpTokenizer): Remove ASSERT that we are not paused. isPaused
3021         means that we are waiting for a script. Bug 54574 changed pumpTokenizer() so that it does
3022         the right thing whether we are just before a token or waiting for a script. Now that we may
3023         yield before a token or before a script, this may be called while paused.
3024         * html/parser/HTMLParserScheduler.cpp:
3025         (WebCore::isLayoutTimerActive): Added a FIXME because r52919 changed minimumLayoutDelay()
3026         to return m_extraLayoutDelay instead of 0 as a minimum. So checking !minimumLayoutDelay()
3027         no longer works. The fix is to change it to check minimumLayoutDelay() ==
3028         m_extraLayoutDelay. But this is all the more reason to move this method onto Document. I'll
3029         do this in a follow up.
3030         (WebCore::HTMLParserScheduler::checkForYieldBeforeScript): Added.
3031         * page/FrameView.h:
3032         (WebCore::FrameView::hasEverPainted): Added.
3033
3034 2011-02-18  Dawit Alemayehu  <adawit@kde.org>
3035
3036         Reviewed by Andreas Kling.
3037
3038         [Qt]  Button Element is rendered w/ text off-center.
3039         https://bugs.webkit.org/show_bug.cgi?id=53373
3040
3041         Test: LayoutTests/fast/forms/button-white-space.html 
3042
3043         * platform/qt/RenderThemeQt.cpp:
3044         (WebCore::RenderThemeQt::adjustButtonStyle):
3045
3046 2011-02-18  Jonathan Backer  <backer@chromium.org>
3047
3048         Reviewed by Eric Seidel.
3049
3050         [chromium] Fix leak of texture IDs in compositor.
3051         https://bugs.webkit.org/show_bug.cgi?id=54750
3052
3053         No new tests. It is extremely unlikely that this leak would have
3054         any user visible impact because only a few bytes of space are wasted
3055         (we're leaking texture IDs, not actual textures) and the space of
3056         texture IDs is large (32 bits).
3057
3058        * platform/graphics/chromium/TextureManager.cpp:
3059         (WebCore::TextureManager::requestTexture):
3060
3061 2011-02-18  Yi Shen  <yi.4.shen@nokia.com>
3062
3063         Reviewed by Tor Arne Vestbø.
3064
3065         Always display the media controls when requiresFullscreenForVideoPlayback() is true
3066         https://bugs.webkit.org/show_bug.cgi?id=54308
3067
3068         For video element, it should have controls when 
3069         Chrome::requiresFullscreenForVideoPlayback() is true.
3070
3071         * html/HTMLMediaElement.cpp:
3072         (WebCore::HTMLMediaElement::controls):
3073
3074 2011-02-18  Adrienne Walker  <enne@google.com>
3075
3076         Reviewed by Kenneth Russell.
3077
3078         [chromium] Use nearest-neighbor filtering for root layer.
3079         https://bugs.webkit.org/show_bug.cgi?id=54409
3080         https://bugs.webkit.org/show_bug.cgi?id=54509
3081
3082         This setting creates more consistent images for LayoutTests and
3083         prevents small floating point errors in texture coordinates from
3084         creating off-by-one pixel color differences.
3085
3086         * platform/graphics/chromium/LayerTilerChromium.cpp:
3087         (WebCore::LayerTilerChromium::update):
3088
3089 2011-02-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3090
3091         Reviewed by Kent Tamura.
3092
3093         [EFL] Fix coding style errors in RenderThemeEfl.h
3094         https://bugs.webkit.org/show_bug.cgi?id=54693
3095
3096         Fix style errors in RenderThemeEfl.h
3097
3098         * platform/efl/RenderThemeEfl.h:
3099
3100 2011-02-18  Ademar de Souza Reis Jr  <ademar.reis@openbossa.org>
3101
3102         Reviewed by Andreas Kling.
3103
3104         [Qt] The localized vendor name for Qt SIS packages should be "Nokia"
3105         https://bugs.webkit.org/show_bug.cgi?id=54742
3106
3107         This change was applied in the Qt repository (qt/src/3rdparty/webkit),
3108         so we should do the same here in QtWebKit.
3109
3110         Patch by Eckhart Koppen <eckhart.koppen@nokia.com>
3111         a8a84f1667966acfa093c4be0b7d4b0900ddd3d9:
3112
3113         The previously used name "Nokia, Qt" was not usable for Nokia
3114         Content Signing, which only allows "Nokia" as the visible vendor
3115         name. The unique vendor ID remains as "Nokia, Qt"
3116
3117         * WebCore.pro:
3118
3119 2011-02-18  Alexis Menard  <alexis.menard@openbossa.org>
3120
3121         Reviewed by Andreas Kling.
3122
3123         [Qt] REGRESSION(r67516) : on www.gmail.com a strange rendering issue appears on the
3124         menu bar due to flash.
3125         https://bugs.webkit.org/show_bug.cgi?id=54741
3126
3127         Only show plugins with a valid size. We then don't involve X11 if there is
3128         nothing to see anyway.
3129
3130         * plugins/qt/PluginViewQt.cpp:
3131         (WebCore::PluginView::updatePluginWidget):
3132         (WebCore::PluginView::platformStart):
3133
3134 2011-02-18  Ryuan Choi  <ryuan.choi@samsung.com>
3135
3136         Reviewed by Kent Tamura.
3137
3138         [EFL] Remove GDK dependency.
3139         https://bugs.webkit.org/show_bug.cgi?id=53978
3140
3141         Remove GLIB_SUPPORT macro in GDK related code.
3142         Regardless of GLIB_SUPPORT, getDefaultFontOptions() will works same way.
3143
3144         * CMakeListsEfl.txt:
3145         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
3146         (WebCore::getDefaultFontOptions):
3147
3148 2011-02-18  Noel Gordon  <noel.gordon@gmail.com>
3149
3150         Reviewed by James Robinson.
3151
3152         [Chromium] Add elliptical gradient support to GradientSkia
3153         https://bugs.webkit.org/show_bug.cgi?id=51841
3154
3155         Covered by existing tests, these need new rebaselines once this patch
3156         lands for chrome linux, win32
3157
3158         fast/gradients/css3-color-stop-units.html
3159         fast/gradients/css3-color-stops.html
3160         fast/gradients/css3-linear-angle-gradients.html
3161         fast/gradients/css3-radial-gradients.html
3162         fast/gradients/css3-radial-gradients2.html
3163         fast/gradients/css3-radial-gradients3.html
3164         fast/gradients/css3-repeating-radial-gradients.html
3165
3166         * platform/graphics/skia/GradientSkia.cpp:
3167         (WebCore::Gradient::platformGradient):
3168
3169 2011-02-18  James Robinson  <jamesr@chromium.org>
3170
3171         Fix typo in boundary test in ASSERT() - test is for an inclusive range, not exclusive.
3172
3173         * platform/graphics/chromium/ContentLayerChromium.cpp:
3174         (WebCore::ContentLayerChromium::updateTextureIfNeeded):
3175
3176 2011-02-18  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
3177
3178         Reviewed by Kenneth Rohde Christiansen.
3179
3180         Tiled backing store area is too big.
3181         Error in area calculcation causes size of backing store
3182         up to 6 times bigger than viewport with default multipliers.
3183         https://bugs.webkit.org/show_bug.cgi?id=54587
3184
3185         * platform/graphics/TiledBackingStore.cpp:
3186         (WebCore::TiledBackingStore::createTiles):
3187
3188 2011-02-18  Beth Dakin  <bdakin@apple.com>
3189
3190         Reviewed by Sam Weinig.
3191
3192         Fix for <rdar://problem/9018729> Horizontal scroller doesn't 
3193         appear when loading a page with a Horizontal scrollbar from 
3194         the back/forward cache.
3195
3196         This patch adds a new  bool member variable to FrameView to 
3197         keep track of whether we are loading a page from the back/
3198         forward cache. If we are, don't suppress scrollbars on 
3199         first layout.
3200         * history/CachedFrame.cpp:
3201         (WebCore::CachedFrameBase::restore):
3202         * page/FrameView.cpp:
3203         (WebCore::FrameView::FrameView):
3204         (WebCore::FrameView::reset):
3205         (WebCore::FrameView::layout):
3206         * page/FrameView.h:
3207         (WebCore::FrameView::setIsRestoringFromBackForward):
3208         (WebCore::FrameView::isRestoringFromBackForward):
3209
3210 2011-02-18  Patrick Gansterer  <paroga@webkit.org>
3211
3212         Unreviewed WinCE build fix for r78846.
3213
3214         * platform/graphics/wince/FontWinCE.cpp:
3215         (WebCore::TextRunComponent::TextRunComponent):
3216         * platform/graphics/wince/GraphicsContextWinCE.cpp:
3217         (WebCore::GraphicsContext::drawLineForText):
3218         (WebCore::GraphicsContext::drawLineForTextChecking):
3219         (WebCore::GraphicsContext::drawText):
3220         * platform/wince/FileChooserWinCE.cpp:
3221         (WebCore::FileChooser::basenameForWidth):
3222
3223 2011-02-18  Emil A Eklund  <eae@chromium.org>
3224
3225         Reviewed by Darin Adler.
3226
3227         Crash in EventHandler::sendContextMenuEventForKey
3228         https://bugs.webkit.org/show_bug.cgi?id=54495
3229
3230         Test: fast/events/menu-keydown-on-hidden-element.html
3231
3232         * page/EventHandler.cpp:
3233         (WebCore::EventHandler::sendContextMenuEventForKey): Add null check.
3234
3235 2011-02-15  Adrienne Walker  <enne@google.com>
3236
3237         Reviewed by James Robinson.
3238
3239         [chromium] Clean up shader code from LayerChromium classes
3240         https://bugs.webkit.org/show_bug.cgi?id=54484
3241
3242         This is a refactoring and there should be no change in functionality.
3243         All shader code is pulled out into classes in ShaderChromium.
3244         The SharedValues classes are now turned into ProgramBinding, one per
3245         shader program.  These contain shader classes that know about what
3246         variables they can bind.
3247
3248         * WebCore.gypi:
3249         * platform/graphics/chromium/CanvasLayerChromium.cpp:
3250         (WebCore::CanvasLayerChromium::draw):
3251         * platform/graphics/chromium/CanvasLayerChromium.h:
3252         * platform/graphics/chromium/ContentLayerChromium.cpp:
3253         (WebCore::ContentLayerChromium::draw):
3254         * platform/graphics/chromium/ContentLayerChromium.h:
3255         * platform/graphics/chromium/GeometryBinding.cpp: Added.
3256         (WebCore::GeometryBinding::GeometryBinding):
3257         (WebCore::GeometryBinding::~GeometryBinding):
3258         (WebCore::GeometryBinding::prepareForDraw):
3259         * platform/graphics/chromium/GeometryBinding.h: Copied from Source/WebCore/platform/graphics/chromium/PluginLayerChromium.h.
3260         (WebCore::GeometryBinding::initialized):
3261         (WebCore::GeometryBinding::context):
3262         (WebCore::GeometryBinding::quadVerticesVbo):
3263         (WebCore::GeometryBinding::quadElementsVbo):
3264         (WebCore::GeometryBinding::positionAttribLocation):
3265         (WebCore::GeometryBinding::texCoordAttribLocation):
3266         * platform/graphics/chromium/LayerChromium.cpp:
3267         (WebCore::LayerChromium::drawDebugBorder):
3268         * platform/graphics/chromium/LayerChromium.h:
3269         * platform/graphics/chromium/LayerRendererChromium.cpp:
3270         (WebCore::LayerRendererChromium::drawLayers):
3271         (WebCore::LayerRendererChromium::initializeSharedObjects):
3272         (WebCore::LayerRendererChromium::cleanupSharedObjects):
3273         * platform/graphics/chromium/LayerRendererChromium.h:
3274         (WebCore::LayerRendererChromium::sharedGeometry):
3275         (WebCore::LayerRendererChromium::borderProgram):
3276         (WebCore::LayerRendererChromium::contentLayerProgram):
3277         (WebCore::LayerRendererChromium::canvasLayerProgram):
3278         (WebCore::LayerRendererChromium::videoLayerRGBAProgram):
3279         (WebCore::LayerRendererChromium::videoLayerYUVProgram):
3280         (WebCore::LayerRendererChromium::pluginLayerProgram):
3281         (WebCore::LayerRendererChromium::renderSurfaceProgram):
3282         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
3283         (WebCore::LayerRendererChromium::tilerProgram):
3284         * platform/graphics/chromium/LayerTilerChromium.cpp:
3285         (WebCore::LayerTilerChromium::draw):
3286         (WebCore::LayerTilerChromium::drawTexturedQuad):
3287         * platform/graphics/chromium/LayerTilerChromium.h:
3288         * platform/graphics/chromium/PluginLayerChromium.cpp:
3289         (WebCore::PluginLayerChromium::draw):
3290         * platform/graphics/chromium/PluginLayerChromium.h:
3291         * platform/graphics/chromium/ProgramBinding.cpp: Added.
3292         (WebCore::ProgramBindingBase::ProgramBindingBase):
3293         (WebCore::ProgramBindingBase::~ProgramBindingBase):
3294         (WebCore::ProgramBindingBase::init):
3295         (WebCore::ProgramBindingBase::loadShader):
3296         (WebCore::ProgramBindingBase::createShaderProgram):
3297         * platform/graphics/chromium/ProgramBinding.h: Added.
3298         (WebCore::ProgramBindingBase::program):
3299         (WebCore::ProgramBindingBase::initialized):
3300         (WebCore::ProgramBinding::ProgramBinding):
3301         (WebCore::ProgramBinding::vertexShader):
3302         (WebCore::ProgramBinding::fragmentShader):
3303         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
3304         (WebCore::RenderSurfaceChromium::drawSurface):
3305         * platform/graphics/chromium/RenderSurfaceChromium.h:
3306         * platform/graphics/chromium/ShaderChromium.cpp: Added.
3307         (WebCore::VertexShaderPosTex::VertexShaderPosTex):
3308         (WebCore::VertexShaderPosTex::init):
3309         (WebCore::VertexShaderPosTex::getShaderString):
3310         (WebCore::VertexShaderPosTexYUVStretch::VertexShaderPosTexYUVStretch):
3311         (WebCore::VertexShaderPosTexYUVStretch::init):
3312         (WebCore::VertexShaderPosTexYUVStretch::getShaderString):
3313         (WebCore::VertexShaderPos::VertexShaderPos):
3314         (WebCore::VertexShaderPos::init):
3315         (WebCore::VertexShaderPos::getShaderString):
3316         (WebCore::VertexShaderPosTexTransform::VertexShaderPosTexTransform):
3317         (WebCore::VertexShaderPosTexTransform::init):
3318         (WebCore::VertexShaderPosTexTransform::getShaderString):
3319         (WebCore::FragmentTexAlphaBinding::FragmentTexAlphaBinding):
3320         (WebCore::FragmentTexAlphaBinding::init):
3321         (WebCore::FragmentShaderRGBATexFlipAlpha::getShaderString):
3322         (WebCore::FragmentShaderRGBATexAlpha::getShaderString):
3323         (WebCore::FragmentShaderBGRATexAlpha::getShaderString):
3324         (WebCore::FragmentShaderRGBATexAlphaMask::FragmentShaderRGBATexAlphaMask):
3325         (WebCore::FragmentShaderRGBATexAlphaMask::init):
3326         (WebCore::FragmentShaderRGBATexAlphaMask::getShaderString):
3327         (WebCore::FragmentShaderYUVVideo::FragmentShaderYUVVideo):
3328         (WebCore::FragmentShaderYUVVideo::init):
3329         (WebCore::FragmentShaderYUVVideo::getShaderString):
3330         (WebCore::FragmentShaderColor::FragmentShaderColor):
3331         (WebCore::FragmentShaderColor::init):
3332         (WebCore::FragmentShaderColor::getShaderString):
3333         * platform/graphics/chromium/ShaderChromium.h: Added.
3334         (WebCore::VertexShaderPosTex::matrixLocation):
3335         (WebCore::VertexShaderPosTexYUVStretch::matrixLocation):
3336         (WebCore::VertexShaderPosTexYUVStretch::yWidthScaleFactorLocation):
3337         (WebCore::VertexShaderPosTexYUVStretch::uvWidthScaleFactorLocation):
3338         (WebCore::VertexShaderPos::matrixLocation):
3339         (WebCore::VertexShaderPosTexTransform::matrixLocation):
3340         (WebCore::VertexShaderPosTexTransform::texTransformLocation):
3341         (WebCore::FragmentTexAlphaBinding::alphaLocation):
3342         (WebCore::FragmentTexAlphaBinding::samplerLocation):
3343         (WebCore::FragmentShaderRGBATexAlphaMask::alphaLocation):
3344         (WebCore::FragmentShaderRGBATexAlphaMask::samplerLocation):
3345         (WebCore::FragmentShaderRGBATexAlphaMask::maskSamplerLocation):
3346         (WebCore::FragmentShaderYUVVideo::yTextureLocation):
3347         (WebCore::FragmentShaderYUVVideo::uTextureLocation):
3348         (WebCore::FragmentShaderYUVVideo::vTextureLocation):
3349         (WebCore::FragmentShaderYUVVideo::alphaLocation):
3350         (WebCore::FragmentShaderYUVVideo::ccMatrixLocation):
3351         (WebCore::FragmentShaderYUVVideo::signAdjLocation):
3352         (WebCore::FragmentShaderColor::colorLocation):
3353         * platform/graphics/chromium/VideoLayerChromium.cpp:
3354         (WebCore::VideoLayerChromium::draw):
3355         (WebCore::VideoLayerChromium::drawYUV):
3356         (WebCore::VideoLayerChromium::drawRGBA):
3357         * platform/graphics/chromium/VideoLayerChromium.h:
3358
3359 2011-02-18  James Robinson  <jamesr@chromium.org>
3360
3361         Reviewed by Kenneth Russell.
3362
3363         [chromium] Update texture for ContentLayerChromiums in draw() call instead of updateContents..() call
3364         https://bugs.webkit.org/show_bug.cgi?id=54315
3365
3366         This defers all operations on the compositor's GL context until the
3367         draw() call which is a prerequisite for moving the draw() off-thread.
3368         Also cleans up the update cycle a bit - there were some unused local
3369         variables and whatnot.
3370
3371         One consequence of this change is that the upload buffer is retained
3372         across updates now instead of allocated by each paint.  This is
3373         necessary so that the full layer contents can be uploaded if the
3374         texture manager evicts the layer's backing texture.  This costs more
3375         persistent memory but avoids lots of allocator churn on updates.
3376         Another nonobvious detail is that I have to update the texture for
3377         ContentLayerChromiums in bindContentsTexture() because mask layers
3378         never draw(), they are instead bound to the secondary texture unit.
3379
3380         * platform/graphics/chromium/ContentLayerChromium.cpp:
3381         (WebCore::ContentLayerChromium::requiresClippedUpdateRect):
3382         (WebCore::ContentLayerChromium::updateContentsIfDirty):
3383         (WebCore::ContentLayerChromium::resizeUploadBufferForImage):
3384         (WebCore::ContentLayerChromium::resizeUploadBuffer):
3385         (WebCore::SkBitmapConditionalAutoLockerPixels::SkBitmapConditionalAutoLockerPixels):
3386         (WebCore::SkBitmapConditionalAutoLockerPixels::~SkBitmapConditionalAutoLockerPixels):
3387         (WebCore::SkBitmapConditionalAutoLockerPixels::lockPixels):
3388         (WebCore::ContentLayerChromium::updateTextureIfNeeded):
3389         (WebCore::ContentLayerChromium::draw):
3390         (WebCore::ContentLayerChromium::unreserveContentsTexture):
3391         (WebCore::ContentLayerChromium::bindContentsTexture):
3392         * platform/graphics/chromium/ContentLayerChromium.h:
3393         * platform/graphics/chromium/ImageLayerChromium.cpp:
3394         (WebCore::ImageLayerChromium::updateContentsIfDirty):
3395         * platform/graphics/chromium/LayerChromium.cpp:
3396         (WebCore::LayerChromium::setBounds):
3397         * platform/graphics/chromium/LayerChromium.h:
3398
3399 2011-02-18  Kenneth Russell  <kbr@google.com>
3400
3401         Unreviewed, Chromium build fix on certain Linux platforms.
3402
3403         * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp:
3404
3405 2011-02-18  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
3406
3407         Reviewed by Kenneth Rohde Christiansen.
3408
3409         [Qt] Implement client based geolocation for qtport
3410         https://bugs.webkit.org/show_bug.cgi?id=42629
3411
3412         Implements client based geolocation for qtwebkit. Removed old code related to non-client based geolocation
3413
3414         No tests as yet. This will be raised as different bug as new mock client implementation need to be done.
3415
3416         * WebCore.pro:
3417         * features.pri:
3418         * platform/qt/GeolocationServiceQt.cpp: Removed.
3419         * platform/qt/GeolocationServiceQt.h: Removed.
3420
3421 2011-02-18  Yael Aharon  <yael.aharon@nokia.com>
3422
3423         Reviewed by Dave Hyatt.
3424
3425         Add support for dir=auto
3426         https://bugs.webkit.org/show_bug.cgi?id=50916
3427
3428         When an element has dir attribute with value "auto", call defaultWritingMode
3429         to find its directionality.
3430         Added a flag SelfOrAncestorHasDirAutoFlag, and added hooks in the DOM to set
3431         and check this flag. This flag is set on every node between an element with
3432         dir=auto attribute and its first text node. Changes in the DOM between those
3433         elements will trigger re-evaluating the directionality, but changes not
3434         between those element do not need to be concerned.
3435         The DOM hooks were added to childrenChanged, and to parseMappedAttribute.
3436         The directionality is evaluated when children are added, and cleared when they are
3437         removed. Directionality flag is also cleared on a child that is no longer determining
3438         the directionality due to a sibling being added before that child.
3439
3440         Added 2 static CSSMutableStyleDeclarations to be used for elements with dir=auto.
3441         We cannot used the mapped declaration, because it can take only one value.
3442
3443         Tests: fast/dom/HTMLElement/attr-dir-auto-change-before-text-node.html
3444                fast/dom/HTMLElement/attr-dir-auto-change-child-node.html
3445                fast/dom/HTMLElement/attr-dir-auto-change-text.html
3446                fast/dom/HTMLElement/attr-dir-auto-children.html
3447                fast/dom/HTMLElement/attr-dir-auto-remove-add-children.html
3448                fast/dom/HTMLElement/attr-dir-auto.html
3449                fast/dom/HTMLElement/attr-dir-value-change.html
3450
3451         * css/CSSStyleSelector.cpp:
3452         (WebCore::leftToRightDeclaration):
3453         (WebCore::rightToLeftDeclaration):
3454         (WebCore::CSSStyleSelector::canShareStyleWithElement):
3455         (WebCore::CSSStyleSelector::styleForElement):
3456         * dom/Node.h:
3457         (WebCore::Node::selfOrAncestorHasDirAutoAttribute):
3458         (WebCore::Node::setSelfOrAncestorHasDirAutoAttribute):
3459         * html/HTMLElement.cpp:
3460         (WebCore::HTMLElement::mapToEntry):
3461         (WebCore::HTMLElement::parseMappedAttribute):
3462         (WebCore::setHasDirAutoFlagRecursively):
3463         (WebCore::HTMLElement::childrenChanged):
3464         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
3465         (WebCore::HTMLElement::directionality):
3466         (WebCore::HTMLElement::dirAttributeChanged):
3467         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
3468         (WebCore::HTMLElement::calculateAndAdjustDirectionality):
3469         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
3470         * html/HTMLElement.h:
3471
3472 2011-02-18  Yael Aharon  <yael.aharon@nokia.com>
3473
3