2011-02-20 Simon Fraser <simon.fraser@apple.com>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-02-20  Simon Fraser  <simon.fraser@apple.com>
2
3         Reviewed by Dirk Schulze.
4
5         REGRESSION (r73369-r73405): transform animation interpolates incorrectly
6         https://bugs.webkit.org/show_bug.cgi?id=54793
7         
8         After the refactoring in r73380, the ending state for some types of
9         accelerated animations was computed incorrectly, because the TransformationMatrix
10         wasn't reset to identity before the ending value transformations were applied.
11         
12         Fix by cleaning up the code to use explicit, separate values for
13         starting and ending values. Only matrix-type animations had this
14         issue, but cleaned up other clauses similarly.
15
16         Test: animations/3d/matrix-transform-type-animation.html
17
18         * platform/graphics/ca/GraphicsLayerCA.cpp:
19         (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
20
21 2011-02-20  Dan Bernstein  <mitz@apple.com>
22
23         Reviewed by Maciej Stachowiak.
24
25         <rdar://problem/9028929> REGRESSION (r75897): Scaling applied twice to an iframe with a transformed ancestor
26
27         Test: fast/frames/iframe-scale-applied-twice.html
28
29         * page/FrameView.cpp:
30         (WebCore::FrameView::create): Set the initial bounds of the view to match the
31         frame size.
32         * platform/ScrollView.cpp:
33         (WebCore::ScrollView::visibleContentRect): Based on bounds, not frame size.
34         (WebCore::ScrollView::updateScrollbars): Ditto.
35         (WebCore::ScrollView::setFrameRect): Moved code that really handles bounds size
36         change to setBoundsSize().
37         (WebCore::ScrollView::setBoundsSize): Added.
38         (WebCore::ScrollView::setInitialBoundsSize): Added. Sets the bounds size but does
39         not update anything.
40         (WebCore::ScrollView::frameRectsChanged): Based on bounds, not frame size.
41         (WebCore::ScrollView::scrollbarCornerPresent): Ditto.
42         * platform/ScrollView.h:
43         (WebCore::ScrollView::boundsSize): Added this getter.
44         * platform/Widget.h:
45         (WebCore::Widget::resize): Set the bounds size to the frame size.
46         * platform/mac/ScrollbarThemeMac.mm:
47         (WebCore::ScrollbarThemeMac::paint): Fixed an error in the indirect drawing code
48         path where the buffer rect was resized to capture only the damaged part, but was
49         still drawn in the original location.
50
51 2011-02-20  Alexey Proskuryakov  <ap@apple.com>
52
53         Reviewed by Eric Seidel.
54
55         Tighten up access permissions by using libxslt API
56         https://bugs.webkit.org/show_bug.cgi?id=52688
57         <rdar://problem/8909191> 
58
59         * xml/XSLTProcessorLibxslt.cpp: (WebCore::XSLTProcessor::transformToString): We are only
60         interested in a string result, so let libxslt know about that.
61
62 2011-02-20  Sheriff Bot  <webkit.review.bot@gmail.com>
63
64         Unreviewed, rolling out r79104.
65         http://trac.webkit.org/changeset/79104
66         https://bugs.webkit.org/show_bug.cgi?id=54835
67
68         Might have caused flaky canaries (Requested by tonyg-cr on
69         #webkit).
70
71         * html/parser/HTMLDocumentParser.cpp:
72         (WebCore::HTMLDocumentParser::canTakeNextToken):
73         (WebCore::HTMLDocumentParser::pumpTokenizer):
74         * html/parser/HTMLParserScheduler.cpp:
75         (WebCore::isLayoutTimerActive):
76         * html/parser/HTMLParserScheduler.h:
77         (WebCore::HTMLParserScheduler::checkForYieldBeforeToken):
78         * page/FrameView.h:
79
80 2011-02-20  Dirk Schulze  <krit@webkit.org>
81
82         Reviewed by Nikolas Zimmermann.
83
84         SVG animation - analyze attribute type for animation
85         https://bugs.webkit.org/show_bug.cgi?id=54542
86
87         Analyze animated attribute type to determine the kind of animation. Removed enum PropertyType and replace it
88         with AnimatedAttributeType instead. More cleanup of the animation code.
89         Added missing fillAttributeToPropertyTypeMap() for SVGGElement.
90
91         Use QualifiedName instead of AtomicStrings for attribute names. This makes it easier to handle animated attributes
92         from a different namespace like xlink:href. The rest of the SVG code is using QualifiedNames as well.
93
94         No change of functionality on the animation code. The changes for the <g>-element affect animateTransform. Sadly
95         animateTransform is not supported by our SVG animation test script at the moment. Can still be tested manually
96         with the W3C test suite in trunk.
97
98         The change on SVGUseElement gets covered by animate-elem-39-t.svg
99
100         Test: svg/animations/animate-dynamic-update-attributeName.html
101
102         * svg/SVGAnimateElement.cpp:
103         (WebCore::SVGAnimateElement::SVGAnimateElement):
104         (WebCore::SVGAnimateElement::hasValidAttributeType):
105         (WebCore::SVGAnimateElement::determineAnimatedAttributeType):
106         (WebCore::SVGAnimateElement::calculateAnimatedValue):
107         (WebCore::inheritsFromProperty):
108         (WebCore::SVGAnimateElement::calculateFromAndToValues):
109         (WebCore::SVGAnimateElement::calculateFromAndByValues):
110         (WebCore::SVGAnimateElement::resetToBaseValue):
111         (WebCore::SVGAnimateElement::applyResultsToTarget):
112         (WebCore::SVGAnimateElement::calculateDistance):
113         * svg/SVGAnimateElement.h:
114         * svg/SVGAnimateMotionElement.cpp:
115         (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
116         (WebCore::parsePoint):
117         (WebCore::SVGAnimateMotionElement::resetToBaseValue):
118         (WebCore::SVGAnimateMotionElement::calculateAnimatedValue):
119         (WebCore::SVGAnimateMotionElement::calculateDistance):
120         * svg/SVGAnimateMotionElement.h:
121         * svg/SVGAnimateTransformElement.cpp:
122         (WebCore::SVGAnimateTransformElement::hasValidAttributeType):
123         (WebCore::SVGAnimateTransformElement::determineAnimatedAttributeType):
124         (WebCore::SVGAnimateTransformElement::resetToBaseValue):
125         (WebCore::SVGAnimateTransformElement::calculateAnimatedValue):
126         (WebCore::SVGAnimateTransformElement::calculateFromAndByValues):
127         (WebCore::SVGAnimateTransformElement::applyResultsToTarget):
128         (WebCore::SVGAnimateTransformElement::calculateDistance):
129         * svg/SVGAnimateTransformElement.h:
130         * svg/SVGAnimationElement.cpp:
131         (WebCore::parseKeyTimes):
132         (WebCore::parseKeySplines):
133         (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty):
134         (WebCore::SVGAnimationElement::setTargetAttributeAnimatedValue):
135         (WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
136         (WebCore::solveEpsilon):
137         (WebCore::SVGAnimationElement::calculatePercentFromKeyPoints):
138         (WebCore::SVGAnimationElement::currentValuesFromKeyPoints):
139         (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
140         (WebCore::SVGAnimationElement::startedActiveInterval):
141         * svg/SVGAnimationElement.h:
142         * svg/SVGFilterElement.cpp:
143         (WebCore::SVGFilterElement::fillAttributeToPropertyTypeMap):
144         * svg/SVGGElement.cpp:
145         (WebCore::SVGGElement::attributeToPropertyTypeMap):
146         (WebCore::SVGGElement::fillAttributeToPropertyTypeMap): Added to fill the animated attribute map for this element.
147         * svg/SVGGElement.h:
148         * svg/SVGUseElement.cpp:
149         (WebCore::SVGUseElement::fillAttributeToPropertyTypeMap): Changed attribute type to AnimatedString for xlink:href.
150         * svg/animation/SMILTimeContainer.cpp:
151         (WebCore::SMILTimeContainer::baseValueFor):
152         (WebCore::SMILTimeContainer::updateAnimations):
153         * svg/animation/SMILTimeContainer.h:
154         * svg/animation/SVGSMILElement.cpp:
155         (WebCore::SVGSMILElement::SVGSMILElement):
156         (WebCore::constructQualifiedName): Create a QualifiedName from a attribute name.
157         (WebCore::SVGSMILElement::insertedIntoDocument): Update local varaible of attribute name.
158         (WebCore::SVGSMILElement::removedFromDocument): Ditto.
159         (WebCore::SVGSMILElement::attributeChanged): Ditto.
160         * svg/animation/SVGSMILElement.h:
161         (WebCore::SVGSMILElement::attributeName):
162
163 2011-02-20  David Kilzer  <ddkilzer@apple.com>
164
165         BUILD FIX: Add missing UNUSED_PARAM() when !ENABLE(FULLSCREEN_API)
166
167         Not reviewed.
168
169         * rendering/RenderLayerCompositor.cpp:
170         (WebCore::RenderLayerCompositor::requiresCompositingForFullScreen):
171
172 2011-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
173
174         Reviewed by Martin Robinson.
175
176         [GTK] Implement PlatformKeyboardEvent::getCurrentModifierState()
177         https://bugs.webkit.org/show_bug.cgi?id=52880
178
179         * platform/gtk/KeyEventGtk.cpp:
180         (WebCore::PlatformKeyboardEvent::getCurrentModifierState):
181
182 2011-02-19  Andreas Kling  <kling@webkit.org>
183
184         Reviewed by Oliver Hunt.
185
186         DragController should use Color::serialized() when passing colors to CSSStyleDeclaration
187         https://bugs.webkit.org/show_bug.cgi?id=54545
188
189         * page/DragController.cpp:
190         (WebCore::DragController::concludeEditDrag):
191
192 2011-02-19  Sam Weinig  <sam@webkit.org>
193
194         Reviewed by Anders Carlsson.
195
196         Add phase in addition to momentumPhase to platform wheel events
197         Part of <rdar://problem/8945362>
198
199         Rename existing phase to momentumPhase.
200
201         * platform/PlatformWheelEvent.h:
202         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
203         (WebCore::PlatformWheelEvent::momentumPhase):
204         * platform/mac/ScrollAnimatorMac.mm:
205         (WebCore::ScrollAnimatorMac::handleWheelEvent):
206         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
207         * platform/mac/WheelEventMac.mm:
208         (WebCore::momentumPhaseForEvent):
209         (WebCore::phaseForEvent):
210         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
211
212 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
213
214         Qt build fix.
215
216         * bridge/runtime_method.h:
217         (JSC::RuntimeMethod::createStructure):
218
219 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
220
221         Qt build fix.
222
223         * bridge/qt/qt_instance.cpp:
224         * bridge/qt/qt_pixmapruntime.cpp:
225
226 2011-02-19  Gavin Barraclough  <barraclough@apple.com>
227
228         Qt build fix.
229
230         * bridge/qt/qt_instance.cpp:
231         (JSC::Bindings::QtInstance::getMethod):
232         * bridge/qt/qt_pixmapruntime.cpp:
233         (JSC::Bindings::QtPixmapInstance::getMethod):
234
235 2011-02-18  Gavin Barraclough  <barraclough@apple.com>
236
237         Reviewed by Sam Weinig.
238
239         Bug 54786 - Devirtualize JSCell::classInfo()
240
241         Instead of making a virtual function call, add a pointer to the ClassInfo
242         onto Structure.
243
244         This removes a virtual function call, and paves the way towards removing all
245         the createStructure methods, and StructureFlags/AnonymousSlotCount properties
246         (these should be able to move onto ClassInfo).
247
248         Calls to Structure::create must now pass a pointer to the ClassInfo for the
249         structure. All objects now have a ClassInfo pointer, non-object cell types
250         still do not.
251
252         Changes are most mechanical, involving three steps:
253             * Remove virtual classInfo() methods.
254             * Add &s_info parameter to calls to Structure::create.
255             * Rename ClassInfo static members on classes from 'info' to 's_info',
256               for consistency.
257
258         * WebCore.exp.in:
259         * bindings/js/JSAudioConstructor.cpp:
260         * bindings/js/JSAudioConstructor.h:
261         * bindings/js/JSDOMBinding.cpp:
262         * bindings/js/JSDOMBinding.h:
263         * bindings/js/JSDOMGlobalObject.cpp:
264         * bindings/js/JSDOMGlobalObject.h:
265         * bindings/js/JSDOMWindowBase.cpp:
266         * bindings/js/JSDOMWindowBase.h:
267         * bindings/js/JSDOMWindowShell.cpp:
268         * bindings/js/JSDOMWindowShell.h:
269         * bindings/js/JSGeolocationCustom.cpp:
270         * bindings/js/JSImageConstructor.cpp:
271         * bindings/js/JSImageConstructor.h:
272         * bindings/js/JSImageDataCustom.cpp:
273         * bindings/js/JSOptionConstructor.cpp:
274         * bindings/js/JSOptionConstructor.h:
275         * bindings/js/JSWorkerContextBase.cpp:
276         * bindings/js/JSWorkerContextBase.h:
277         * bindings/js/SerializedScriptValue.cpp:
278         * bindings/scripts/CodeGeneratorJS.pm:
279         * bridge/c/CRuntimeObject.cpp:
280         * bridge/c/CRuntimeObject.h:
281         * bridge/c/c_instance.cpp:
282         * bridge/jni/jsc/JNIUtilityPrivate.cpp:
283         * bridge/jni/jsc/JavaInstanceJSC.cpp:
284         * bridge/jni/jsc/JavaRuntimeObject.cpp:
285         * bridge/jni/jsc/JavaRuntimeObject.h:
286         * bridge/jsc/BridgeJSC.cpp:
287         * bridge/objc/ObjCRuntimeObject.h:
288         * bridge/objc/ObjCRuntimeObject.mm:
289         * bridge/objc/objc_instance.mm:
290         * bridge/objc/objc_runtime.h:
291         * bridge/objc/objc_runtime.mm:
292         * bridge/runtime_array.cpp:
293         * bridge/runtime_array.h:
294         * bridge/runtime_method.cpp:
295         * bridge/runtime_method.h:
296         * bridge/runtime_object.cpp:
297         * bridge/runtime_object.h:
298
299 2011-02-19  Zan Dobersek  <zandobersek@gmail.com>
300
301         Reviewed by Martin Robinson.
302
303         [cairo][canvas] Drawing from/into float rectangles with width or height in range 0 to 1 fails
304         https://bugs.webkit.org/show_bug.cgi?id=54491
305
306         When width or height in float rectangle are in range (0, 0.5) or (-0.5, 0)
307         and would round to 0, alter the behaviour to ensure that width or height are
308         at least 1 pixel in size in these cases.
309
310         * platform/graphics/cairo/GraphicsContextCairo.cpp:
311         (WebCore::GraphicsContext::roundToDevicePixels):
312
313 2011-02-19  Dan Bernstein  <mitz@apple.com>
314
315         LLVM Compiler build fix.
316
317         * platform/graphics/ShadowBlur.cpp:
318         (WebCore::ShadowBlur::blurLayerImage): Eliminated a file static that generated
319         a global initializer since the compiler does not evaluate sqrtf at compile time.
320
321 2011-02-19  Brian Ryner  <bryner@chromium.org>
322
323         Reviewed by Adam Barth.
324
325         Replace the #include of DocumentLoader.h in Document.h with a
326         forward declaration, and add a missing #include now that this
327         transitive include is gone.
328         https://bugs.webkit.org/show_bug.cgi?id=50489
329
330         No new tests required.
331
332         * bindings/ScriptControllerBase.cpp:
333         * dom/Document.h:
334
335 2011-02-19 Patrick Gansterer <paroga@webkit.org>
336
337         Reviewed by Antonio Gomes.
338
339         [EFL] Remove WebCore::currentTime()
340         https://bugs.webkit.org/show_bug.cgi?id=53886
341
342         There is no declaration for it and we use WTF::currentTime() everywhere.
343
344         * platform/efl/SystemTimeEfl.cpp:
345
346 2011-02-19 Patrick Gansterer <paroga@webkit.org>
347
348         Reviewed by Andreas Kling.
349
350         Move KeygenWinCE from wince into win directory
351         https://bugs.webkit.org/show_bug.cgi?id=54804
352
353         Move this file into the win directory, since it can be used on all windows platforms.
354
355         * CMakeListsWinCE.txt:
356         * platform/win/SSLKeyGeneratorWin.cpp: Renamed from platform/wince/KeygenWinCE.cpp.
357
358 2011-02-19  Patrick Gansterer  <paroga@webkit.org>
359
360         Reviewed by Andreas Kling.
361
362         Make FileChooserWin.cpp more portable and use it on WinCE
363         https://bugs.webkit.org/show_bug.cgi?id=54803
364
365         * CMakeListsWinCE.txt:
366         * platform/win/FileChooserWin.cpp:
367         (WebCore::FileChooser::basenameForWidth):
368         * platform/wince/FileChooserWinCE.cpp: Removed.
369
370 2011-02-19  James Simonsen  <simonjam@chromium.org>
371
372         Reviewed by Adam Barth.
373
374         Make ScriptElement match the HTML5 spec
375         https://bugs.webkit.org/show_bug.cgi?id=54676
376
377         This implements the "prepare a script" section of the HTML5 spec in ScriptElement::prepareScript().
378         http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#prepare-a-script
379
380         There are a couple of things missing from the spec that would be new functionality. These will be added later.
381         - Support for async=false
382         - Empty src attribute should dispatch an error.
383
384         There are a couple of slight behavioral changes to match the spec.
385         - An XHTML script that is loaded then copied will not fire load on the copy.
386         - If onbeforeload moves the script to a different document, then it will not try to execute again because wasAlreadyStarted is true.
387
388         The parsers were updated to use the new API, but not rewritten to look like the spec. That will be done separately.
389
390         Test: All existing tests.
391
392         * dom/ScriptElement.cpp: Rewritten to match HTML5 spec.
393         (WebCore::ScriptElement::ScriptElement):
394         (WebCore::ScriptElement::insertedIntoDocument): Logic moved to prepareScript.
395         (WebCore::ScriptElement::childrenChanged): Logic moved to prepareScript.
396         (WebCore::ScriptElement::handleSourceAttribute): Logic moved to prepareScript.
397         (WebCore::isLegacySupportedJavaScriptLanguage): Added to support old script types in layout tests.
398         (WebCore::ScriptElement::isScriptTypeSupported): Derived from old shouldExecuteAsJavaScript().
399         (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.
400         (WebCore::ScriptElement::requestScript): Most logic moved to prepareScript. Check security settings here.
401         (WebCore::ScriptElement::executeScript): Combined evaluateScript() and executeScript() from old code. Logic moved to prepareScript.
402         (WebCore::ScriptElement::stopLoadRequest): Ignore parser executed scripts.
403         (WebCore::ScriptElement::execute): Renamed executeScript.
404         (WebCore::ScriptElement::notifyFinished): We should only listen for non-parser executed scripts.
405         (WebCore::ScriptElement::ignoresLoadRequest): New variable names.
406         (WebCore::ScriptElement::childrenAreCommentsOrEmptyText): Added for HTML5 compliance.
407         (WebCore::ScriptElement::scriptCharset): Use HTML5 variables.
408         * dom/ScriptElement.h:
409         (WebCore::ScriptElement::willBeParserExecuted): Added.
410         (WebCore::ScriptElement::readyToBeParserExecuted): Added.
411         (WebCore::ScriptElement::willExecuteWhenDocumentFinishedParsing): Added.
412         (WebCore::ScriptElement::cachedScript): prepareScript() is the only place that should load scripts. This accessor lets the parsers listen for when loads finish.
413         (WebCore::ScriptElement::isParserInserted): Added.
414         * dom/XMLDocumentParserLibxml2.cpp:
415         (WebCore::XMLDocumentParser::endElementNs): Should behave the same. Offloads much of its work to prepareScript().
416         * dom/XMLDocumentParserQt.cpp:
417         (WebCore::XMLDocumentParser::parseEndElement): Identical to libxml2 changes.
418         * html/HTMLScriptElement.cpp:
419         (WebCore::HTMLScriptElement::insertedIntoDocument): No longer needs url.
420         (WebCore::HTMLScriptElement::hasSourceAttribute): Added.
421         * html/HTMLScriptElement.h:
422         * html/parser/HTMLScriptRunner.cpp:
423         (WebCore::HTMLScriptRunner::requestPendingScript): Requesting scripts offloaded to ScriptElement.
424         (WebCore::HTMLScriptRunner::runScript): Should behave the same. Offloads much of its work to prepareScript().
425         * svg/SVGScriptElement.cpp:
426         (WebCore::SVGScriptElement::svgAttributeChanged): New ScriptElement function names.
427         (WebCore::SVGScriptElement::insertedIntoDocument): No longer needs url.
428         (WebCore::SVGScriptElement::finishParsingChildren): ScriptElement::finishParsingChildren is gone.
429         (WebCore::SVGScriptElement::hasSourceAttribute): Added.
430         (WebCore::SVGScriptElement::dispatchLoadEvent): New ScriptElement function names.
431         * svg/SVGScriptElement.h:
432
433 2011-02-19  Marc-Antoine Ruel  <maruel@chromium.org>
434
435         Reviewed by James Robinson.
436
437         Split webcore_rendering off webcore_remaining to reduce its size for WPO builds
438         https://bugs.webkit.org/show_bug.cgi?id=54789
439
440         * WebCore.gyp/WebCore.gyp:
441
442 2011-02-19  Bill Budge  <bbudge@chromium.org>
443
444         Reviewed by David Levin.
445
446         ThreadableLoaderClient needs willSendRequest method
447         https://bugs.webkit.org/show_bug.cgi?id=54688
448
449         No new tests. Exposes no new functionality
450
451         * WebCore.gypi:
452         * loader/DocumentThreadableLoader.cpp:
453         (WebCore::DocumentThreadableLoader::willSendRequest):
454         (WebCore::DocumentThreadableLoader::didReceiveData):
455         (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
456         * loader/DocumentThreadableLoaderClient.h: Added.
457         (WebCore::DocumentThreadableLoaderClient::isDocumentThreadableLoaderClient):
458         (WebCore::DocumentThreadableLoaderClient::willSendRequest):
459         * loader/ThreadableLoaderClient.h:
460         (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient):
461
462 2011-02-19  Charlie Reis  <creis@chromium.org>
463
464         Reviewed by Mihai Parparita.
465
466         Ensure loading has stopped in HistoryController::goToItem
467         https://bugs.webkit.org/show_bug.cgi?id=54517
468
469         Avoid stopping all loaders in goToItem for same document navigations
470         or pseudo-back-forward URLs.  Make HistoryController::goToItem private
471         to force callers to go through Page::goToItem.  Also add a callback to
472         FrameLoaderClient to let clients decide whether to stop loading first.
473
474         Test: http/tests/navigation/forward-to-fragment-fires-onload.html
475
476         * loader/EmptyClients.h:
477         * loader/FrameLoader.h:
478         * loader/FrameLoaderClient.h:
479         * loader/HistoryController.cpp:
480         * loader/HistoryController.h:
481         * page/Page.cpp:
482
483 2011-02-19  Adam Barth  <abarth@webkit.org>
484
485         Reviewed by Daniel Bates.
486
487         Fix xssAuditor/iframe-injection.html
488         https://bugs.webkit.org/show_bug.cgi?id=54591
489
490         We should block the iframe src attribute.  Although this technically
491         can't be used to run script, it's a pretty easy vector for stealing
492         passwords.
493
494         * html/parser/XSSFilter.cpp:
495         (WebCore::XSSFilter::filterTokenInitial):
496         (WebCore::XSSFilter::filterIframeToken):
497         * html/parser/XSSFilter.h:
498
499 2011-02-18  Tony Gentilcore  <tonyg@chromium.org>
500
501         Reviewed by Eric Seidel.
502
503         Let the parser yield for layout before running scripts
504         https://bugs.webkit.org/show_bug.cgi?id=54355
505
506         Prior to this patch, the parser would yield to perform a layout/paint before running a
507         script only if the script or a stylesheet blocking the script is not loaded yet. Since we
508         don't preload scan into the body while parsing the head, typically we'll block on a script
509         early in the body that causes us to yield to do the first paint within a reasonable time.
510
511         However, I'm planning to change the PreloadScanner to scan into the body from the head.
512         That significantly improves overall load time, but would hurt first paint time because
513         fewer scripts would be blocked during parsing and thus wouldn't yield.
514
515         This change causes us to yield before running scripts if we haven't painted yet (regardless
516         of whether or not the script is loaded). In addition to allowing the above mentioned
517         PreloadScanner change to be implemented without regressing first paint time, this also
518         improves first paint time by itself.
519
520         I tested Alexa's top 45 websites using Web Page Replay to control the content and simulate
521         bandwidth. This patch improved average first paint time by 1% over an unlimited connection,
522         6% over a 1Mbps connection and 11% over a 5Mbps connection. There was no statistically
523         signifcant change in page load time.
524
525         Within the pages tested, 33 had no statistically significant change in time to first paint,
526         12 improved, and none regressed. Of the improved, some of the standouts from the 1Mbps set
527         are: 20% on youtube, 37% on wiki, 27% on ebay, 13% on cnn, 16% on espn, 74% on sohu.
528
529         * html/parser/HTMLDocumentParser.cpp:
530         (WebCore::HTMLDocumentParser::canTakeNextToken): This is the new yield point.
531         (WebCore::HTMLDocumentParser::pumpTokenizer): Remove ASSERT that we are not paused. isPaused
532         means that we are waiting for a script. Bug 54574 changed pumpTokenizer() so that it does
533         the right thing whether we are just before a token or waiting for a script. Now that we may
534         yield before a token or before a script, this may be called while paused.
535         * html/parser/HTMLParserScheduler.cpp:
536         (WebCore::isLayoutTimerActive): Added a FIXME because r52919 changed minimumLayoutDelay()
537         to return m_extraLayoutDelay instead of 0 as a minimum. So checking !minimumLayoutDelay()
538         no longer works. The fix is to change it to check minimumLayoutDelay() ==
539         m_extraLayoutDelay. But this is all the more reason to move this method onto Document. I'll
540         do this in a follow up.
541         (WebCore::HTMLParserScheduler::checkForYieldBeforeScript): Added.
542         * page/FrameView.h:
543         (WebCore::FrameView::hasEverPainted): Added.
544
545 2011-02-18  Dawit Alemayehu  <adawit@kde.org>
546
547         Reviewed by Andreas Kling.
548
549         [Qt]  Button Element is rendered w/ text off-center.
550         https://bugs.webkit.org/show_bug.cgi?id=53373
551
552         Test: LayoutTests/fast/forms/button-white-space.html 
553
554         * platform/qt/RenderThemeQt.cpp:
555         (WebCore::RenderThemeQt::adjustButtonStyle):
556
557 2011-02-18  Jonathan Backer  <backer@chromium.org>
558
559         Reviewed by Eric Seidel.
560
561         [chromium] Fix leak of texture IDs in compositor.
562         https://bugs.webkit.org/show_bug.cgi?id=54750
563
564         No new tests. It is extremely unlikely that this leak would have
565         any user visible impact because only a few bytes of space are wasted
566         (we're leaking texture IDs, not actual textures) and the space of
567         texture IDs is large (32 bits).
568
569        * platform/graphics/chromium/TextureManager.cpp:
570         (WebCore::TextureManager::requestTexture):
571
572 2011-02-18  Yi Shen  <yi.4.shen@nokia.com>
573
574         Reviewed by Tor Arne Vestbø.
575
576         Always display the media controls when requiresFullscreenForVideoPlayback() is true
577         https://bugs.webkit.org/show_bug.cgi?id=54308
578
579         For video element, it should have controls when 
580         Chrome::requiresFullscreenForVideoPlayback() is true.
581
582         * html/HTMLMediaElement.cpp:
583         (WebCore::HTMLMediaElement::controls):
584
585 2011-02-18  Adrienne Walker  <enne@google.com>
586
587         Reviewed by Kenneth Russell.
588
589         [chromium] Use nearest-neighbor filtering for root layer.
590         https://bugs.webkit.org/show_bug.cgi?id=54409
591         https://bugs.webkit.org/show_bug.cgi?id=54509
592
593         This setting creates more consistent images for LayoutTests and
594         prevents small floating point errors in texture coordinates from
595         creating off-by-one pixel color differences.
596
597         * platform/graphics/chromium/LayerTilerChromium.cpp:
598         (WebCore::LayerTilerChromium::update):
599
600 2011-02-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
601
602         Reviewed by Kent Tamura.
603
604         [EFL] Fix coding style errors in RenderThemeEfl.h
605         https://bugs.webkit.org/show_bug.cgi?id=54693
606
607         Fix style errors in RenderThemeEfl.h
608
609         * platform/efl/RenderThemeEfl.h:
610
611 2011-02-18  Ademar de Souza Reis Jr  <ademar.reis@openbossa.org>
612
613         Reviewed by Andreas Kling.
614
615         [Qt] The localized vendor name for Qt SIS packages should be "Nokia"
616         https://bugs.webkit.org/show_bug.cgi?id=54742
617
618         This change was applied in the Qt repository (qt/src/3rdparty/webkit),
619         so we should do the same here in QtWebKit.
620
621         Patch by Eckhart Koppen <eckhart.koppen@nokia.com>
622         a8a84f1667966acfa093c4be0b7d4b0900ddd3d9:
623
624         The previously used name "Nokia, Qt" was not usable for Nokia
625         Content Signing, which only allows "Nokia" as the visible vendor
626         name. The unique vendor ID remains as "Nokia, Qt"
627
628         * WebCore.pro:
629
630 2011-02-18  Alexis Menard  <alexis.menard@openbossa.org>
631
632         Reviewed by Andreas Kling.
633
634         [Qt] REGRESSION(r67516) : on www.gmail.com a strange rendering issue appears on the
635         menu bar due to flash.
636         https://bugs.webkit.org/show_bug.cgi?id=54741
637
638         Only show plugins with a valid size. We then don't involve X11 if there is
639         nothing to see anyway.
640
641         * plugins/qt/PluginViewQt.cpp:
642         (WebCore::PluginView::updatePluginWidget):
643         (WebCore::PluginView::platformStart):
644
645 2011-02-18  Ryuan Choi  <ryuan.choi@samsung.com>
646
647         Reviewed by Kent Tamura.
648
649         [EFL] Remove GDK dependency.
650         https://bugs.webkit.org/show_bug.cgi?id=53978
651
652         Remove GLIB_SUPPORT macro in GDK related code.
653         Regardless of GLIB_SUPPORT, getDefaultFontOptions() will works same way.
654
655         * CMakeListsEfl.txt:
656         * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
657         (WebCore::getDefaultFontOptions):
658
659 2011-02-18  Noel Gordon  <noel.gordon@gmail.com>
660
661         Reviewed by James Robinson.
662
663         [Chromium] Add elliptical gradient support to GradientSkia
664         https://bugs.webkit.org/show_bug.cgi?id=51841
665
666         Covered by existing tests, these need new rebaselines once this patch
667         lands for chrome linux, win32
668
669         fast/gradients/css3-color-stop-units.html
670         fast/gradients/css3-color-stops.html
671         fast/gradients/css3-linear-angle-gradients.html
672         fast/gradients/css3-radial-gradients.html
673         fast/gradients/css3-radial-gradients2.html
674         fast/gradients/css3-radial-gradients3.html
675         fast/gradients/css3-repeating-radial-gradients.html
676
677         * platform/graphics/skia/GradientSkia.cpp:
678         (WebCore::Gradient::platformGradient):
679
680 2011-02-18  James Robinson  <jamesr@chromium.org>
681
682         Fix typo in boundary test in ASSERT() - test is for an inclusive range, not exclusive.
683
684         * platform/graphics/chromium/ContentLayerChromium.cpp:
685         (WebCore::ContentLayerChromium::updateTextureIfNeeded):
686
687 2011-02-18  Viatcheslav Ostapenko  <ostapenko.viatcheslav@nokia.com>
688
689         Reviewed by Kenneth Rohde Christiansen.
690
691         Tiled backing store area is too big.
692         Error in area calculcation causes size of backing store
693         up to 6 times bigger than viewport with default multipliers.
694         https://bugs.webkit.org/show_bug.cgi?id=54587
695
696         * platform/graphics/TiledBackingStore.cpp:
697         (WebCore::TiledBackingStore::createTiles):
698
699 2011-02-18  Beth Dakin  <bdakin@apple.com>
700
701         Reviewed by Sam Weinig.
702
703         Fix for <rdar://problem/9018729> Horizontal scroller doesn't 
704         appear when loading a page with a Horizontal scrollbar from 
705         the back/forward cache.
706
707         This patch adds a new  bool member variable to FrameView to 
708         keep track of whether we are loading a page from the back/
709         forward cache. If we are, don't suppress scrollbars on 
710         first layout.
711         * history/CachedFrame.cpp:
712         (WebCore::CachedFrameBase::restore):
713         * page/FrameView.cpp:
714         (WebCore::FrameView::FrameView):
715         (WebCore::FrameView::reset):
716         (WebCore::FrameView::layout):
717         * page/FrameView.h:
718         (WebCore::FrameView::setIsRestoringFromBackForward):
719         (WebCore::FrameView::isRestoringFromBackForward):
720
721 2011-02-18  Patrick Gansterer  <paroga@webkit.org>
722
723         Unreviewed WinCE build fix for r78846.
724
725         * platform/graphics/wince/FontWinCE.cpp:
726         (WebCore::TextRunComponent::TextRunComponent):
727         * platform/graphics/wince/GraphicsContextWinCE.cpp:
728         (WebCore::GraphicsContext::drawLineForText):
729         (WebCore::GraphicsContext::drawLineForTextChecking):
730         (WebCore::GraphicsContext::drawText):
731         * platform/wince/FileChooserWinCE.cpp:
732         (WebCore::FileChooser::basenameForWidth):
733
734 2011-02-18  Emil A Eklund  <eae@chromium.org>
735
736         Reviewed by Darin Adler.
737
738         Crash in EventHandler::sendContextMenuEventForKey
739         https://bugs.webkit.org/show_bug.cgi?id=54495
740
741         Test: fast/events/menu-keydown-on-hidden-element.html
742
743         * page/EventHandler.cpp:
744         (WebCore::EventHandler::sendContextMenuEventForKey): Add null check.
745
746 2011-02-15  Adrienne Walker  <enne@google.com>
747
748         Reviewed by James Robinson.
749
750         [chromium] Clean up shader code from LayerChromium classes
751         https://bugs.webkit.org/show_bug.cgi?id=54484
752
753         This is a refactoring and there should be no change in functionality.
754         All shader code is pulled out into classes in ShaderChromium.
755         The SharedValues classes are now turned into ProgramBinding, one per
756         shader program.  These contain shader classes that know about what
757         variables they can bind.
758
759         * WebCore.gypi:
760         * platform/graphics/chromium/CanvasLayerChromium.cpp:
761         (WebCore::CanvasLayerChromium::draw):
762         * platform/graphics/chromium/CanvasLayerChromium.h:
763         * platform/graphics/chromium/ContentLayerChromium.cpp:
764         (WebCore::ContentLayerChromium::draw):
765         * platform/graphics/chromium/ContentLayerChromium.h:
766         * platform/graphics/chromium/GeometryBinding.cpp: Added.
767         (WebCore::GeometryBinding::GeometryBinding):
768         (WebCore::GeometryBinding::~GeometryBinding):
769         (WebCore::GeometryBinding::prepareForDraw):
770         * platform/graphics/chromium/GeometryBinding.h: Copied from Source/WebCore/platform/graphics/chromium/PluginLayerChromium.h.
771         (WebCore::GeometryBinding::initialized):
772         (WebCore::GeometryBinding::context):
773         (WebCore::GeometryBinding::quadVerticesVbo):
774         (WebCore::GeometryBinding::quadElementsVbo):
775         (WebCore::GeometryBinding::positionAttribLocation):
776         (WebCore::GeometryBinding::texCoordAttribLocation):
777         * platform/graphics/chromium/LayerChromium.cpp:
778         (WebCore::LayerChromium::drawDebugBorder):
779         * platform/graphics/chromium/LayerChromium.h:
780         * platform/graphics/chromium/LayerRendererChromium.cpp:
781         (WebCore::LayerRendererChromium::drawLayers):
782         (WebCore::LayerRendererChromium::initializeSharedObjects):
783         (WebCore::LayerRendererChromium::cleanupSharedObjects):
784         * platform/graphics/chromium/LayerRendererChromium.h:
785         (WebCore::LayerRendererChromium::sharedGeometry):
786         (WebCore::LayerRendererChromium::borderProgram):
787         (WebCore::LayerRendererChromium::contentLayerProgram):
788         (WebCore::LayerRendererChromium::canvasLayerProgram):
789         (WebCore::LayerRendererChromium::videoLayerRGBAProgram):
790         (WebCore::LayerRendererChromium::videoLayerYUVProgram):
791         (WebCore::LayerRendererChromium::pluginLayerProgram):
792         (WebCore::LayerRendererChromium::renderSurfaceProgram):
793         (WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
794         (WebCore::LayerRendererChromium::tilerProgram):
795         * platform/graphics/chromium/LayerTilerChromium.cpp:
796         (WebCore::LayerTilerChromium::draw):
797         (WebCore::LayerTilerChromium::drawTexturedQuad):
798         * platform/graphics/chromium/LayerTilerChromium.h:
799         * platform/graphics/chromium/PluginLayerChromium.cpp:
800         (WebCore::PluginLayerChromium::draw):
801         * platform/graphics/chromium/PluginLayerChromium.h:
802         * platform/graphics/chromium/ProgramBinding.cpp: Added.
803         (WebCore::ProgramBindingBase::ProgramBindingBase):
804         (WebCore::ProgramBindingBase::~ProgramBindingBase):
805         (WebCore::ProgramBindingBase::init):
806         (WebCore::ProgramBindingBase::loadShader):
807         (WebCore::ProgramBindingBase::createShaderProgram):
808         * platform/graphics/chromium/ProgramBinding.h: Added.
809         (WebCore::ProgramBindingBase::program):
810         (WebCore::ProgramBindingBase::initialized):
811         (WebCore::ProgramBinding::ProgramBinding):
812         (WebCore::ProgramBinding::vertexShader):
813         (WebCore::ProgramBinding::fragmentShader):
814         * platform/graphics/chromium/RenderSurfaceChromium.cpp:
815         (WebCore::RenderSurfaceChromium::drawSurface):
816         * platform/graphics/chromium/RenderSurfaceChromium.h:
817         * platform/graphics/chromium/ShaderChromium.cpp: Added.
818         (WebCore::VertexShaderPosTex::VertexShaderPosTex):
819         (WebCore::VertexShaderPosTex::init):
820         (WebCore::VertexShaderPosTex::getShaderString):
821         (WebCore::VertexShaderPosTexYUVStretch::VertexShaderPosTexYUVStretch):
822         (WebCore::VertexShaderPosTexYUVStretch::init):
823         (WebCore::VertexShaderPosTexYUVStretch::getShaderString):
824         (WebCore::VertexShaderPos::VertexShaderPos):
825         (WebCore::VertexShaderPos::init):
826         (WebCore::VertexShaderPos::getShaderString):
827         (WebCore::VertexShaderPosTexTransform::VertexShaderPosTexTransform):
828         (WebCore::VertexShaderPosTexTransform::init):
829         (WebCore::VertexShaderPosTexTransform::getShaderString):
830         (WebCore::FragmentTexAlphaBinding::FragmentTexAlphaBinding):
831         (WebCore::FragmentTexAlphaBinding::init):
832         (WebCore::FragmentShaderRGBATexFlipAlpha::getShaderString):
833         (WebCore::FragmentShaderRGBATexAlpha::getShaderString):
834         (WebCore::FragmentShaderBGRATexAlpha::getShaderString):
835         (WebCore::FragmentShaderRGBATexAlphaMask::FragmentShaderRGBATexAlphaMask):
836         (WebCore::FragmentShaderRGBATexAlphaMask::init):
837         (WebCore::FragmentShaderRGBATexAlphaMask::getShaderString):
838         (WebCore::FragmentShaderYUVVideo::FragmentShaderYUVVideo):
839         (WebCore::FragmentShaderYUVVideo::init):
840         (WebCore::FragmentShaderYUVVideo::getShaderString):
841         (WebCore::FragmentShaderColor::FragmentShaderColor):
842         (WebCore::FragmentShaderColor::init):
843         (WebCore::FragmentShaderColor::getShaderString):
844         * platform/graphics/chromium/ShaderChromium.h: Added.
845         (WebCore::VertexShaderPosTex::matrixLocation):
846         (WebCore::VertexShaderPosTexYUVStretch::matrixLocation):
847         (WebCore::VertexShaderPosTexYUVStretch::yWidthScaleFactorLocation):
848         (WebCore::VertexShaderPosTexYUVStretch::uvWidthScaleFactorLocation):
849         (WebCore::VertexShaderPos::matrixLocation):
850         (WebCore::VertexShaderPosTexTransform::matrixLocation):
851         (WebCore::VertexShaderPosTexTransform::texTransformLocation):
852         (WebCore::FragmentTexAlphaBinding::alphaLocation):
853         (WebCore::FragmentTexAlphaBinding::samplerLocation):
854         (WebCore::FragmentShaderRGBATexAlphaMask::alphaLocation):
855         (WebCore::FragmentShaderRGBATexAlphaMask::samplerLocation):
856         (WebCore::FragmentShaderRGBATexAlphaMask::maskSamplerLocation):
857         (WebCore::FragmentShaderYUVVideo::yTextureLocation):
858         (WebCore::FragmentShaderYUVVideo::uTextureLocation):
859         (WebCore::FragmentShaderYUVVideo::vTextureLocation):
860         (WebCore::FragmentShaderYUVVideo::alphaLocation):
861         (WebCore::FragmentShaderYUVVideo::ccMatrixLocation):
862         (WebCore::FragmentShaderYUVVideo::signAdjLocation):
863         (WebCore::FragmentShaderColor::colorLocation):
864         * platform/graphics/chromium/VideoLayerChromium.cpp:
865         (WebCore::VideoLayerChromium::draw):
866         (WebCore::VideoLayerChromium::drawYUV):
867         (WebCore::VideoLayerChromium::drawRGBA):
868         * platform/graphics/chromium/VideoLayerChromium.h:
869
870 2011-02-18  James Robinson  <jamesr@chromium.org>
871
872         Reviewed by Kenneth Russell.
873
874         [chromium] Update texture for ContentLayerChromiums in draw() call instead of updateContents..() call
875         https://bugs.webkit.org/show_bug.cgi?id=54315
876
877         This defers all operations on the compositor's GL context until the
878         draw() call which is a prerequisite for moving the draw() off-thread.
879         Also cleans up the update cycle a bit - there were some unused local
880         variables and whatnot.
881
882         One consequence of this change is that the upload buffer is retained
883         across updates now instead of allocated by each paint.  This is
884         necessary so that the full layer contents can be uploaded if the
885         texture manager evicts the layer's backing texture.  This costs more
886         persistent memory but avoids lots of allocator churn on updates.
887         Another nonobvious detail is that I have to update the texture for
888         ContentLayerChromiums in bindContentsTexture() because mask layers
889         never draw(), they are instead bound to the secondary texture unit.
890
891         * platform/graphics/chromium/ContentLayerChromium.cpp:
892         (WebCore::ContentLayerChromium::requiresClippedUpdateRect):
893         (WebCore::ContentLayerChromium::updateContentsIfDirty):
894         (WebCore::ContentLayerChromium::resizeUploadBufferForImage):
895         (WebCore::ContentLayerChromium::resizeUploadBuffer):
896         (WebCore::SkBitmapConditionalAutoLockerPixels::SkBitmapConditionalAutoLockerPixels):
897         (WebCore::SkBitmapConditionalAutoLockerPixels::~SkBitmapConditionalAutoLockerPixels):
898         (WebCore::SkBitmapConditionalAutoLockerPixels::lockPixels):
899         (WebCore::ContentLayerChromium::updateTextureIfNeeded):
900         (WebCore::ContentLayerChromium::draw):
901         (WebCore::ContentLayerChromium::unreserveContentsTexture):
902         (WebCore::ContentLayerChromium::bindContentsTexture):
903         * platform/graphics/chromium/ContentLayerChromium.h:
904         * platform/graphics/chromium/ImageLayerChromium.cpp:
905         (WebCore::ImageLayerChromium::updateContentsIfDirty):
906         * platform/graphics/chromium/LayerChromium.cpp:
907         (WebCore::LayerChromium::setBounds):
908         * platform/graphics/chromium/LayerChromium.h:
909
910 2011-02-18  Kenneth Russell  <kbr@google.com>
911
912         Unreviewed, Chromium build fix on certain Linux platforms.
913
914         * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp:
915
916 2011-02-18  Mahesh Kulkarni  <mahesh.kulkarni@nokia.com>
917
918         Reviewed by Kenneth Rohde Christiansen.
919
920         [Qt] Implement client based geolocation for qtport
921         https://bugs.webkit.org/show_bug.cgi?id=42629
922
923         Implements client based geolocation for qtwebkit. Removed old code related to non-client based geolocation
924
925         No tests as yet. This will be raised as different bug as new mock client implementation need to be done.
926
927         * WebCore.pro:
928         * features.pri:
929         * platform/qt/GeolocationServiceQt.cpp: Removed.
930         * platform/qt/GeolocationServiceQt.h: Removed.
931
932 2011-02-18  Yael Aharon  <yael.aharon@nokia.com>
933
934         Reviewed by Dave Hyatt.
935
936         Add support for dir=auto
937         https://bugs.webkit.org/show_bug.cgi?id=50916
938
939         When an element has dir attribute with value "auto", call defaultWritingMode
940         to find its directionality.
941         Added a flag SelfOrAncestorHasDirAutoFlag, and added hooks in the DOM to set
942         and check this flag. This flag is set on every node between an element with
943         dir=auto attribute and its first text node. Changes in the DOM between those
944         elements will trigger re-evaluating the directionality, but changes not
945         between those element do not need to be concerned.
946         The DOM hooks were added to childrenChanged, and to parseMappedAttribute.
947         The directionality is evaluated when children are added, and cleared when they are
948         removed. Directionality flag is also cleared on a child that is no longer determining
949         the directionality due to a sibling being added before that child.
950
951         Added 2 static CSSMutableStyleDeclarations to be used for elements with dir=auto.
952         We cannot used the mapped declaration, because it can take only one value.
953
954         Tests: fast/dom/HTMLElement/attr-dir-auto-change-before-text-node.html
955                fast/dom/HTMLElement/attr-dir-auto-change-child-node.html
956                fast/dom/HTMLElement/attr-dir-auto-change-text.html
957                fast/dom/HTMLElement/attr-dir-auto-children.html
958                fast/dom/HTMLElement/attr-dir-auto-remove-add-children.html
959                fast/dom/HTMLElement/attr-dir-auto.html
960                fast/dom/HTMLElement/attr-dir-value-change.html
961
962         * css/CSSStyleSelector.cpp:
963         (WebCore::leftToRightDeclaration):
964         (WebCore::rightToLeftDeclaration):
965         (WebCore::CSSStyleSelector::canShareStyleWithElement):
966         (WebCore::CSSStyleSelector::styleForElement):
967         * dom/Node.h:
968         (WebCore::Node::selfOrAncestorHasDirAutoAttribute):
969         (WebCore::Node::setSelfOrAncestorHasDirAutoAttribute):
970         * html/HTMLElement.cpp:
971         (WebCore::HTMLElement::mapToEntry):
972         (WebCore::HTMLElement::parseMappedAttribute):
973         (WebCore::setHasDirAutoFlagRecursively):
974         (WebCore::HTMLElement::childrenChanged):
975         (WebCore::HTMLElement::directionalityIfhasDirAutoAttribute):
976         (WebCore::HTMLElement::directionality):
977         (WebCore::HTMLElement::dirAttributeChanged):
978         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildAttributeChanged):
979         (WebCore::HTMLElement::calculateAndAdjustDirectionality):
980         (WebCore::HTMLElement::adjustDirectionalityIfNeededAfterChildrenChanged):
981         * html/HTMLElement.h:
982
983 2011-02-18  Yael Aharon  <yael.aharon@nokia.com>
984
985         Reviewed by Antonio Gomes.
986
987         Navigating downwards / upwards does not focus on the links spread across more than one line.
988         https://bugs.webkit.org/show_bug.cgi?id=54639
989
990         When 2 anchor elements span more than one line each, and one ends on the same line that the
991         second starts on, the rects reported by their renderers are overlapping. When handling
992         2 overlapping nodes, check for this case, and don't assume that one of the nodes is on a higher layer.   
993
994         Test: fast/spatial-navigation/snav-two-elements-one-line.html
995
996         * page/FocusController.cpp:
997         (WebCore::updateFocusCandidateIfNeeded):
998         (WebCore::FocusController::findFocusCandidateInContainer):
999         * page/SpatialNavigation.cpp:
1000         (WebCore::areElementsOnSameLine):
1001         (WebCore::distanceDataForNode):
1002         * page/SpatialNavigation.h:
1003
1004 2011-02-18  Ben Vanik  <benvanik@google.com>
1005
1006         Reviewed by Kenneth Russell.
1007
1008         Bug 53940: Implement the OES_vertex_array_object WebGL extension
1009         https://bugs.webkit.org/show_bug.cgi?id=53940
1010
1011         Initial implementation of the OES_vertex_array_object extension adding the OESVertexArrayObject
1012         extension container and WebGLVertexArrayObjectOES VAO object. The extension is plumbed through
1013         the Extensions3D interface and implemented in the Extensions3DOpenGL (WebKit/OSX) version when
1014         it is available.
1015         Two big changes touching code outside of the extension files:
1016         * Moved the typedefs at the top of GraphicsContext3D.h to GraphicsTypes3D.h (modeled after
1017           GraphicsTypes.h). They are not namespaced as they weren't before.
1018         * To make the code cleaner/clearer all vertex attribute state has been moved to the
1019           WebGLVertexArrayObjectOES type (struct VertexAttribState) except for values which are still
1020           on the WebGLRenderingContext. A default VAO is now used to store the existing attribute
1021           states for when no other VAO is used. Code in WebGLRenderingContext dealing with buffers and
1022           vertex attributes now defers to or stores values in the bound array object.
1023
1024         Tested against the WebGL conformance suite and the new
1025         oes-vertex-array-object test:
1026         https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/sdk/tests/conformance/oes-vertex-array-object.html
1027
1028         * CMakeLists.txt:
1029         * CodeGenerators.pri:
1030         * DerivedSources.make:
1031         * GNUmakefile.am:
1032         * WebCore.gyp: Modified property svn:ignore.
1033         * WebCore.gypi:
1034         * WebCore.pro:
1035         * WebCore.xcodeproj/project.pbxproj:
1036         * bindings/js/JSWebGLRenderingContextCustom.cpp:
1037         (WebCore::toJS):
1038         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
1039         (WebCore::toV8Object):
1040         * html/canvas/OESVertexArrayObject.cpp: Added.
1041         (WebCore::OESVertexArrayObject::OESVertexArrayObject):
1042         (WebCore::OESVertexArrayObject::~OESVertexArrayObject):
1043         (WebCore::OESVertexArrayObject::getName):
1044         (WebCore::OESVertexArrayObject::create):
1045         (WebCore::OESVertexArrayObject::createVertexArrayOES):
1046         (WebCore::OESVertexArrayObject::deleteVertexArrayOES):
1047         (WebCore::OESVertexArrayObject::isVertexArrayOES):
1048         (WebCore::OESVertexArrayObject::bindVertexArrayOES):
1049         * html/canvas/OESVertexArrayObject.h: Added.
1050         * html/canvas/OESVertexArrayObject.idl: Added.
1051         * html/canvas/WebGLExtension.h:
1052         * html/canvas/WebGLGetInfo.cpp:
1053         (WebCore::WebGLGetInfo::WebGLGetInfo):
1054         (WebCore::WebGLGetInfo::getWebGLVertexArrayObjectOES):
1055         * html/canvas/WebGLGetInfo.h:
1056         * html/canvas/WebGLRenderingContext.cpp:
1057         (WebCore::WebGLRenderingContext::initializeNewContext):
1058         (WebCore::WebGLRenderingContext::bindBuffer):
1059         (WebCore::WebGLRenderingContext::deleteBuffer):
1060         (WebCore::WebGLRenderingContext::disableVertexAttribArray):
1061         (WebCore::WebGLRenderingContext::validateElementArraySize):
1062         (WebCore::WebGLRenderingContext::validateIndexArrayConservative):
1063         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
1064         (WebCore::WebGLRenderingContext::validateRenderingState):
1065         (WebCore::WebGLRenderingContext::drawElements):
1066         (WebCore::WebGLRenderingContext::enableVertexAttribArray):
1067         (WebCore::WebGLRenderingContext::getExtension):
1068         (WebCore::WebGLRenderingContext::getParameter):
1069         (WebCore::WebGLRenderingContext::getSupportedExtensions):
1070         (WebCore::WebGLRenderingContext::getVertexAttrib):
1071         (WebCore::WebGLRenderingContext::vertexAttribPointer):
1072         (WebCore::WebGLRenderingContext::validateBufferDataParameters):
1073         (WebCore::WebGLRenderingContext::vertexAttribfImpl):
1074         (WebCore::WebGLRenderingContext::vertexAttribfvImpl):
1075         (WebCore::WebGLRenderingContext::initVertexAttrib0):
1076         (WebCore::WebGLRenderingContext::simulateVertexAttrib0):
1077         (WebCore::WebGLRenderingContext::restoreStatesAfterVertexAttrib0Simulation):
1078         (WebCore::WebGLRenderingContext::getNumberOfExtensions):
1079         (WebCore::WebGLRenderingContext::getExtensionNumber):
1080         * html/canvas/WebGLRenderingContext.h:
1081         (WebCore::WebGLRenderingContext::getMaxVertexAttribs):
1082         (WebCore::WebGLRenderingContext::setBoundVertexArrayObject):
1083         (WebCore::WebGLRenderingContext::VertexAttribValue::VertexAttribValue):
1084         * html/canvas/WebGLVertexArrayObjectOES.cpp: Added.
1085         (WebCore::WebGLVertexArrayObjectOES::create):
1086         (WebCore::WebGLVertexArrayObjectOES::WebGLVertexArrayObjectOES):
1087         (WebCore::WebGLVertexArrayObjectOES::deleteObjectImpl):
1088         * html/canvas/WebGLVertexArrayObjectOES.h: Added.
1089         (WebCore::WebGLVertexArrayObjectOES::~WebGLVertexArrayObjectOES):
1090         (WebCore::WebGLVertexArrayObjectOES::VertexAttribState::VertexAttribState):
1091         (WebCore::WebGLVertexArrayObjectOES::isDefaultObject):
1092         (WebCore::WebGLVertexArrayObjectOES::hasEverBeenBound):
1093         (WebCore::WebGLVertexArrayObjectOES::setHasEverBeenBound):
1094         (WebCore::WebGLVertexArrayObjectOES::getElementArrayBuffer):
1095         (WebCore::WebGLVertexArrayObjectOES::setElementArrayBuffer):
1096         (WebCore::WebGLVertexArrayObjectOES::getVertexAttribState):
1097         (WebCore::WebGLVertexArrayObjectOES::isVertexArray):
1098         * html/canvas/WebGLVertexArrayObjectOES.idl: Added.
1099         * platform/graphics/Extensions3D.h:
1100         * platform/graphics/GraphicsContext3D.h:
1101         * platform/graphics/GraphicsTypes3D.h: Added.
1102         * platform/graphics/chromium/Extensions3DChromium.h:
1103         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
1104         (WebCore::Extensions3DOpenGL::supports):
1105         (WebCore::Extensions3DOpenGL::createVertexArrayOES):
1106         (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
1107         (WebCore::Extensions3DOpenGL::isVertexArrayOES):
1108         (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
1109         * platform/graphics/opengl/Extensions3DOpenGL.h:
1110         * platform/graphics/qt/Extensions3DQt.cpp:
1111         (WebCore::Extensions3DQt::createVertexArrayOES):
1112         (WebCore::Extensions3DQt::deleteVertexArrayOES):
1113         (WebCore::Extensions3DQt::isVertexArrayOES):
1114         (WebCore::Extensions3DQt::bindVertexArrayOES):
1115         * platform/graphics/qt/Extensions3DQt.h:
1116
1117 2011-02-17  Alexander Pavlov  <apavlov@chromium.org>
1118
1119         Reviewed by Pavel Feldman.
1120
1121         Web Inspector: reflect changes to styles when they happen outside inspector.
1122         https://bugs.webkit.org/show_bug.cgi?id=44620
1123
1124         Notify InspectorInstrumentation of inline style changes from CSSMutableStyleDeclaration
1125         whenever the style change does not come from a direct "style" attribute modification.
1126         The performance regression occurs only with the Web Inspector opened, when inline styles
1127         are modified through setting style.cssText or style.<styleAttribute>: according to the Web Inspector protocol,
1128         an attribute change requires that all attributes for the node in question be pushed into the frontend.
1129
1130         Test: inspector/styles/styles-update-from-js.html
1131
1132         * css/CSSMutableStyleDeclaration.cpp:
1133         (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
1134         * inspector/InspectorDOMAgent.cpp:
1135         (WebCore::RevalidateStyleAttributeTask::reset):
1136         (WebCore::RevalidateStyleAttributeTask::RevalidateStyleAttributeTask):
1137         (WebCore::RevalidateStyleAttributeTask::scheduleFor):
1138         (WebCore::RevalidateStyleAttributeTask::onTimer):
1139         (WebCore::InspectorDOMAgent::reset):
1140         (WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
1141         * inspector/InspectorDOMAgent.h:
1142         * inspector/InspectorInstrumentation.cpp:
1143         (WebCore::InspectorInstrumentation::didInvalidateStyleAttrImpl):
1144         * inspector/InspectorInstrumentation.h:
1145         (WebCore::InspectorInstrumentation::didInvalidateStyleAttr):
1146         * inspector/InspectorStyleSheet.cpp:
1147         (WebCore::InspectorStyleSheetForInlineStyle::didModifyElementAttribute):
1148         (WebCore::InspectorStyleSheetForInlineStyle::ensureParsedDataReady):
1149         (WebCore::InspectorStyleSheetForInlineStyle::elementStyleText):
1150         * inspector/InspectorStyleSheet.h:
1151         * inspector/front-end/ElementsPanel.js:
1152         (WebInspector.ElementsPanel.prototype._attributesUpdated):
1153         * inspector/front-end/StylesSidebarPane.js:
1154         (WebInspector.StylesSidebarPane.prototype._rebuildSectionsForStyleRules):
1155         (WebInspector.StylesSidebarPane.prototype.addBlankSection):
1156         (WebInspector.StylePropertiesSection.prototype.onpopulate):
1157         (WebInspector.StylePropertiesSection.prototype.addNewBlankProperty):
1158         (WebInspector.ComputedStylePropertiesSection.prototype.onpopulate):
1159         (WebInspector.BlankStylePropertiesSection):
1160         (WebInspector.StylePropertyTreeElement):
1161         (WebInspector.StylePropertyTreeElement.prototype):
1162         (WebInspector.StylePropertyTreeElement.prototype.element.userInput.previousContent.context.moveDirection):
1163
1164 2011-02-16  Tony Gentilcore  <tonyg@chromium.org>
1165
1166         Reviewed by Eric Seidel.
1167
1168         Refactor pumpTokenizer loop
1169         https://bugs.webkit.org/show_bug.cgi?id=54574
1170
1171         1. This makes pumpTokenizer() safe to call when waiting for a script or when about to get
1172            the next token, although ASSERTs still enforce that we aren't waiting for a script. This
1173            enables resumeParsingAfterYield() to call pumpTokenizer with no modifications even if we
1174            yield before running a script rather than before taking a token (see bug 54355).
1175         2. This also picks up the refCount >= 1 assert when stopped.
1176
1177         Tested PerformanceTests/Parser to verify no regression. If anything it got faster.
1178         Before:
1179           avg 985.05
1180           median 985.5
1181           stdev 3.007906248539007
1182           min 980
1183           max 990
1184         After:
1185           avg 980.05
1186           median 981
1187           stdev 3.122098653149833
1188           min 974
1189           max 985
1190
1191         No new tests because no new functionality.
1192
1193         * html/parser/HTMLDocumentParser.cpp:
1194         (WebCore::HTMLDocumentParser::canTakeNextToken): Added.
1195         (WebCore::HTMLDocumentParser::pumpTokenizer):
1196         * html/parser/HTMLDocumentParser.h:
1197
1198 2011-02-18  Sheriff Bot  <webkit.review.bot@gmail.com>
1199
1200         Unreviewed, rolling out r79003.
1201         http://trac.webkit.org/changeset/79003
1202         https://bugs.webkit.org/show_bug.cgi?id=54753
1203
1204         It broke tests on GTK bots (Requested by Ossy on #webkit).
1205
1206         * accessibility/AccessibilityRenderObject.cpp:
1207         (WebCore::lastChildConsideringContinuation):
1208         * dom/Node.cpp:
1209         (WebCore::Node::removeEventListener):
1210         * html/DateComponents.cpp:
1211         (WebCore::DateComponents::parseTime):
1212
1213 2011-02-18  Csaba Osztrogonác  <ossy@webkit.org>
1214
1215         Rubber-stamped by Andreas Kling.
1216
1217         Warning fix. Use ASSERT_UNUSED() instead of ASSERT().
1218
1219         * accessibility/AccessibilityRenderObject.cpp:
1220         (WebCore::lastChildConsideringContinuation):
1221         * dom/Node.cpp:
1222         (WebCore::Node::removeEventListener):
1223         * html/DateComponents.cpp:
1224         (WebCore::DateComponents::parseTime):
1225
1226 2011-02-18  Andrey Adaikin  <aandrey@google.com>
1227
1228         Reviewed by Pavel Feldman.
1229
1230         Web Inspector: [Text editor] Optimize editing updates in main panel
1231         https://bugs.webkit.org/show_bug.cgi?id=54661
1232
1233         * inspector/front-end/TextViewer.js:
1234         (WebInspector.TextViewer):
1235         (WebInspector.TextViewer.prototype._textChanged):
1236         (WebInspector.TextViewer.prototype._enterInternalTextChangeMode):
1237         (WebInspector.TextViewer.prototype._exitInternalTextChangeMode):
1238         (WebInspector.TextViewer.prototype._syncDecorationsForLine):
1239         (WebInspector.TextEditorChunkedPanel.prototype.textChanged):
1240         (WebInspector.TextEditorChunkedPanel.prototype._scroll):
1241         (WebInspector.TextEditorChunkedPanel.prototype.chunkForLine):
1242         (WebInspector.TextEditorChunkedPanel.prototype._totalHeight):
1243         (WebInspector.TextEditorGutterPanel.prototype._expandChunks):
1244         (WebInspector.TextEditorGutterChunk):
1245         (WebInspector.TextEditorGutterChunk.prototype.addDecoration):
1246         (WebInspector.TextEditorGutterChunk.prototype.removeDecoration):
1247         (WebInspector.TextEditorMainPanel):
1248         (WebInspector.TextEditorMainPanel.prototype._expandChunks):
1249         (WebInspector.TextEditorMainPanel.prototype._highlightDataReady):
1250         (WebInspector.TextEditorMainPanel.prototype._markSkippedPaintLines):
1251         (WebInspector.TextEditorMainPanel.prototype._paintSkippedLines):
1252         (WebInspector.TextEditorMainPanel.prototype._paintLines):
1253         (WebInspector.TextEditorMainPanel.prototype._paintLine):
1254         (WebInspector.TextEditorMainPanel.prototype._positionToSelection):
1255         (WebInspector.TextEditorMainPanel.prototype._applyDomUpdates):
1256         (WebInspector.TextEditorMainPanel.prototype._updateChunksForRanges):
1257         (WebInspector.TextEditorMainPanel.prototype._updateHighlightsForRange):
1258         (WebInspector.TextEditorMainPanel.prototype._collectLinesFromDiv):
1259         (WebInspector.TextEditorMainChunk):
1260         (WebInspector.TextEditorMainChunk.prototype.get startLine):
1261         (WebInspector.TextEditorMainChunk.prototype.set startLine):
1262         (WebInspector.TextEditorMainChunk.prototype.getExpandedLineRow):
1263         (WebInspector.TextEditorMainChunk.prototype.updateCollapsedLineRow):
1264
1265 2011-02-18  Steve Block  <steveblock@google.com>
1266
1267         Reviewed by Andreas Kling
1268
1269         Memory allocation error in convertV8ObjectToNPVariant() for strings
1270         https://bugs.webkit.org/show_bug.cgi?id=54737
1271
1272         Include the termination character in the length when allocating memory
1273         and copying the string. This fixes a crashing bug on Android.
1274
1275         This should be tested by the java/ tests on Chromium, but these
1276         tests are currently skipped.
1277
1278         * bindings/v8/V8NPUtils.cpp:
1279         (WebCore::convertV8ObjectToNPVariant):
1280
1281 2011-02-18  Philippe Normand  <pnormand@igalia.com>
1282
1283         Unreviewed, rolling out r78979.
1284         http://trac.webkit.org/changeset/78979
1285         https://bugs.webkit.org/show_bug.cgi?id=53146
1286
1287         causes multiple crashes on GTK
1288
1289         * accessibility/gtk/AXObjectCacheAtk.cpp:
1290         (WebCore::notifyChildrenSelectionChange):
1291         (WebCore::AXObjectCache::postPlatformNotification):
1292
1293 2011-02-18  Philippe Normand  <pnormand@igalia.com>
1294
1295         Reviewed by Martin Robinson.
1296
1297         [GTK] minimal build unrecognized options
1298         https://bugs.webkit.org/show_bug.cgi?id=50890
1299
1300         * GNUmakefile.am: new feature defines for optional features build.
1301
1302 2011-02-17  Hans Wennborg  <hans@chromium.org>
1303
1304         Reviewed by Jeremy Orlow.
1305
1306         IndexedDB: Populate indexes created for object stores with data
1307         https://bugs.webkit.org/show_bug.cgi?id=54669
1308
1309         Make sure that indices for object stores that already hold data get
1310         populated.
1311
1312         * storage/IDBIndexBackendImpl.h:
1313         (WebCore::IDBIndexBackendImpl::hasValidId):
1314         * storage/IDBObjectStoreBackendImpl.cpp:
1315         (WebCore::IDBObjectStoreBackendImpl::putInternal):
1316         (WebCore::populateIndex):
1317         (WebCore::IDBObjectStoreBackendImpl::createIndexInternal):
1318
1319 2011-02-18  Mario Sanchez Prada  <msanchez@igalia.com>
1320
1321         Reviewed by Martin Robinson.
1322
1323         [GTK] Combo boxes should emit object:selection-changed even when collapsed
1324         https://bugs.webkit.org/show_bug.cgi?id=53146
1325
1326         Emit the selection-changed signals when the menu list value has changed
1327
1328         Test: platform/gtk/accessibility/combo-box-collapsed-selection-changed.html
1329
1330         * accessibility/gtk/AXObjectCacheAtk.cpp:
1331         (WebCore::getListObject): New, return the right list object for
1332         menu lists and list boxes.
1333         (WebCore::notifyChildrenSelectionChange): Support menu lists.
1334         (WebCore::AXObjectCache::postPlatformNotification): Call function
1335         notifyChildrenSelectionChange for AXMenuListValueChanged.
1336
1337 2011-02-18  Mario Sanchez Prada  <msanchez@igalia.com>
1338
1339         Reviewed by Martin Robinson.
1340
1341         [Gtk] atk_text_get_selection/atk_text_set_selection fails for list items
1342         https://bugs.webkit.org/show_bug.cgi?id=53453
1343
1344         Ensure that atk_text_{get|set}_selection() work with list items.
1345
1346         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1347         (webkit_accessible_text_get_text): Properly handle list item
1348         markers when returning the text for an object for a given interval
1349         specified through the startOffset and endOffset parameters.
1350         (getSelectionOffsetsForObject): Bear in mind list item markers
1351         when returning the offsets for a selection over a list item.
1352         (webkit_accessible_text_set_selection): Adjust offsets if needed
1353         for list items with item markers. Ensure that it returns TRUE only
1354         when everything went fine setting the text selection.
1355
1356 2011-02-18  Antti Koivisto  <antti@apple.com>
1357
1358         Reviewed by Maciej Stachowiak.
1359
1360         https://bugs.webkit.org/show_bug.cgi?id=54728
1361         checkSelector*Value functions used in fastCheckSelector fail to inline
1362         
1363         Wrap the functions used as template arguments to classes.
1364
1365         * css/CSSStyleSelector.cpp:
1366         (WebCore::fastCheckSingleSelector):
1367         (WebCore::ClassCheck::checkValue):
1368         (WebCore::IdCheck::checkValue):
1369         (WebCore::TagCheck::checkValue):
1370         (WebCore::CSSStyleSelector::SelectorChecker::fastCheckSelector):
1371
1372 2011-02-17  Simon Fraser  <simon.fraser@apple.com>
1373
1374         Reviewed by Sam Weinig.
1375
1376         Composited iframe content is missing from snapshots in WebKit2
1377         https://bugs.webkit.org/show_bug.cgi?id=54696
1378
1379         We need to propagate the 'flattening' paint behavior flag
1380         down to subviews while painting. WebKit1 does this via
1381         code in WebFrameView, but this is a more general fix
1382         that works in WebKit2 as well.
1383         
1384         Made a utility method, parentFrameView(), which I changed
1385         some other methods to use as well.
1386         
1387         * page/FrameView.cpp:
1388         (WebCore::FrameView::isEnclosedInCompositingLayer):
1389         (WebCore::FrameView::useSlowRepaints):
1390         (WebCore::FrameView::useSlowRepaintsIfNotOverlapped):
1391         (WebCore::FrameView::isOverlappedIncludingAncestors):
1392         (WebCore::FrameView::parentFrameView):
1393         (WebCore::FrameView::paintContents):
1394         * page/FrameView.h:
1395
1396 2011-02-17  Dan Bernstein  <mitz@apple.com>
1397
1398         Reviewed by Simon Fraser.
1399
1400         <rdar://problem/8898595> Pages that use fixed positioning display poorly when scaled
1401
1402         * html/HTMLBodyElement.cpp:
1403         (WebCore::adjustForZoom): Account for page scale.
1404         (WebCore::HTMLBodyElement::setScrollLeft): Ditto.
1405         (WebCore::HTMLBodyElement::setScrollTop): Ditto.
1406         * page/FrameView.cpp:
1407         (WebCore::FrameView::scrollXForFixedPosition): Moved from ScrollView here and changed to
1408         account for page scale: when the page is scaled, the “viewport” with respect to which fixed
1409         objects are positioned is scaled as well. Since it’s now bigger than the real viewport (that is,
1410         the frame view), we move it around in proportion to the document scroll, so that when the document
1411         is fully scrolled to the bottom-right, the bottom right of the scaled viewport is visible.
1412         (WebCore::FrameView::scrollYForFixedPosition): Ditto.
1413         (WebCore::FrameView::scrollOffsetForFixedPosition): Moved from ScrollView here.
1414         * page/FrameView.h:
1415         * platform/ScrollView.cpp: Moved functions to FrameView.
1416         * platform/ScrollView.h:
1417         * rendering/RenderLayer.cpp:
1418         (WebCore::RenderLayer::updateRepaintRectsAfterScroll): Account for the RenderView being transformed.
1419         (WebCore::RenderLayer::calculateClipRects): Used scrollOffsetForFixedPosition().
1420         (WebCore::RenderLayer::backgroundClipRect): Ditto.
1421
1422 2011-02-17  Kenneth Russell  <kbr@google.com>
1423
1424         Reviewed by James Robinson.
1425
1426         Add support for GPU accelerated path rendering
1427         https://bugs.webkit.org/show_bug.cgi?id=44729
1428
1429         Incorporates the Loop and Blinn path rendering algorithm as an
1430         option to the GPU-accelerated canvas code, currently only compiled
1431         in to the Chromium port. Currently it's toggled by changing a
1432         hardcoded constant in
1433         SharedGraphicsContext3D::useLoopBlinnForPathRendering() and is
1434         disabled by default. This mechanism can be improved once we've
1435         gained more confidence in the implementation. There are some known
1436         bugs that need to be fixed first.
1437
1438         No new tests; ran some 2D Canvas tests manually with the new flag
1439         both enabled and disabled.
1440
1441         * WebCore.gypi:
1442         * platform/graphics/chromium/GLES2Canvas.cpp:
1443         (WebCore::GLES2Canvas::GLES2Canvas):
1444         (WebCore::GLES2Canvas::fillPath):
1445         * platform/graphics/chromium/GLES2Canvas.h:
1446         * platform/graphics/gpu/LoopBlinnClassifier.h:
1447         * platform/graphics/gpu/LoopBlinnLocalTriangulator.h:
1448         * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
1449         (WebCore::SharedGraphicsContext3D::create):
1450         (WebCore::SharedGraphicsContext3D::SharedGraphicsContext3D):
1451         (WebCore::SharedGraphicsContext3D::createBuffer):
1452         (WebCore::SharedGraphicsContext3D::bindBuffer):
1453         (WebCore::SharedGraphicsContext3D::bufferData):
1454         (WebCore::SharedGraphicsContext3D::bufferSubData):
1455         (WebCore::SharedGraphicsContext3D::useLoopBlinnForPathRendering):
1456         (WebCore::SharedGraphicsContext3D::useLoopBlinnInteriorProgram):
1457         (WebCore::SharedGraphicsContext3D::useLoopBlinnExteriorProgram):
1458         * platform/graphics/gpu/SharedGraphicsContext3D.h:
1459         * platform/graphics/skia/GraphicsContextSkia.cpp:
1460         (WebCore::GraphicsContext::fillPath):
1461
1462 2011-02-16  Stephen White  <senorblanco@chromium.org>
1463
1464         Reviewed by James Robinson.
1465
1466         Layout Test fast/canvas/setWidthResetAfterForcedRender.html fails on
1467         accelerated 2D canvas w/compositor enabled.
1468         https://bugs.webkit.org/show_bug.cgi?id=54561
1469
1470         When resetting the CanvasRenderingContext2D, we also need to send a
1471         contentChanged() to the relevant RenderLayer.  This is similar to what
1472         is done in didDraw().
1473
1474         Covered by fast/canvas/setWidthResetAfterForcedRender.html, but note 
1475         that this test will still fail pixel tests because the compositor
1476         is not compatible with repaint tests (the green square is now white,
1477         but the half-transparent grey repaint rect does not appear).
1478
1479         * html/canvas/CanvasRenderingContext2D.cpp:
1480         (WebCore::CanvasRenderingContext2D::reset):
1481
1482 2011-02-17  Sergey Glazunov  <serg.glazunov@gmail.com>
1483
1484         Reviewed by Kenneth Russell.
1485
1486         Null out the WEBKIT_lose_context WebGL extension's context pointer when
1487         the WebGL rendering context is removed.
1488         https://bugs.webkit.org/show_bug.cgi?id=54679
1489
1490         Test: fast/canvas/webgl/context-destroyed-crash.html
1491
1492         * html/canvas/WebGLRenderingContext.cpp:
1493         (WebCore::WebGLRenderingContext::~WebGLRenderingContext):
1494         * html/canvas/WebKitLoseContext.cpp:
1495         (WebCore::WebKitLoseContext::loseContext): Add null-check for m_context.
1496         * html/canvas/WebKitLoseContext.h:
1497         (WebCore::WebKitLoseContext::contextDestroyed):
1498
1499 2011-02-17  Kenneth Russell  <kbr@google.com>
1500
1501         Reviewed by Chris Marrin.
1502
1503         Construction of Uint8Array from JS Array (and possibly others) incorrectly clamps values
1504         https://bugs.webkit.org/show_bug.cgi?id=52768
1505
1506         Removed incorrect clamping code from IntegralTypedArrayBase. Fixed
1507         code which casts from incoming double to the destination type.
1508         Changed the JSC bindings to use this code, rather than a copy of
1509         the casting code and a different constructor, in order to reuse
1510         the fix.
1511
1512         * bindings/js/JSArrayBufferViewHelper.h:
1513         (WebCore::constructArrayBufferView):
1514         * html/canvas/Int32Array.h:
1515         (WebCore::Int32Array::set):
1516         * html/canvas/Int8Array.h:
1517         (WebCore::Int8Array::set):
1518         * html/canvas/IntegralTypedArrayBase.h:
1519         (WebCore::IntegralTypedArrayBase::set):
1520         * html/canvas/Uint16Array.h:
1521         (WebCore::Uint16Array::set):
1522         * html/canvas/Uint32Array.h:
1523         (WebCore::Uint32Array::set):
1524         * html/canvas/Uint8Array.h:
1525         (WebCore::Uint8Array::set):
1526
1527 2011-02-17  Sam Weinig  <sam@webkit.org>
1528
1529         Reviewed by Dan Bernstein.
1530
1531         Knob proportion not quite right during rubber-band.
1532         <rdar://problem/9015201>
1533
1534         Change knob proportion algorithm to treat overhang as making the view smaller,
1535         rather than document bigger.
1536
1537         * platform/mac/ScrollbarThemeMac.mm:
1538         (WebCore::ScrollbarThemeMac::paint):
1539
1540 2011-02-16  Luiz Agostini  <luiz.agostini@openbossa.org>
1541
1542         Reviewed by Andreas Kling.
1543
1544         Summary: HTML5 <details> and <summary>: HTMLSummaryElement
1545         https://bugs.webkit.org/show_bug.cgi?id=54584
1546
1547         Adding class HTMLSummaryElement to build systems. This class will be used in
1548         the implementation of new HTML5 tag <summary>.
1549
1550         * CMakeLists.txt:
1551         * GNUmakefile.am:
1552         * WebCore.gypi:
1553         * WebCore.pro:
1554         * WebCore.vcproj/WebCore.vcproj:
1555         * WebCore.xcodeproj/project.pbxproj:
1556         * html/HTMLElementsAllInOne.cpp:
1557         * html/HTMLSummaryElement.cpp: Added.
1558         (WebCore::HTMLSummaryElement::create):
1559         (WebCore::HTMLSummaryElement::HTMLSummaryElement):
1560         * html/HTMLSummaryElement.h: Added.
1561         * html/HTMLTagNames.in:
1562
1563 2011-02-17  Jeremy Orlow  <jorlow@chromium.org>
1564
1565         Reviewed by Nate Chapin.
1566
1567         Throwing in an IndexedDB error or success event should lead to the transaction aborting
1568         https://bugs.webkit.org/show_bug.cgi?id=54249
1569
1570         When an exception is thrown but not handled  within an IDBRequests success/error event,
1571         we should abort the transaction.
1572
1573         Test: storage/indexeddb/exception-in-event-aborts.html
1574
1575         * bindings/js/JSEventListener.cpp:
1576         (WebCore::JSEventListener::handleEvent):
1577         * bindings/js/JSEventTarget.cpp:
1578         (WebCore::toJS):
1579         * bindings/v8/V8AbstractEventListener.cpp:
1580         (WebCore::V8AbstractEventListener::invokeEventHandler):
1581         * dom/EventTarget.cpp:
1582         (WebCore::EventTarget::uncaughtExceptionInEventHandler):
1583         * dom/EventTarget.h:
1584         * storage/IDBRequest.cpp:
1585         (WebCore::IDBRequest::uncaughtExceptionInEventHandler):
1586         * storage/IDBRequest.h:
1587
1588 2011-02-17  Sam Weinig  <sam@webkit.org>
1589
1590         Reviewed by Maciej Stachowiak.
1591
1592         WebKit2: Support Dictionary popup
1593         <rdar://problem/7660670>
1594
1595         Add some necessary exports.
1596
1597         * WebCore.exp.in:
1598
1599 2011-02-17  W. James MacLean  <wjmaclean@chromium.org>
1600
1601         Reviewed by James Robinson.
1602
1603         [chromium] Add command-line flag to enable composite to offscreen texture.
1604         https://bugs.webkit.org/show_bug.cgi?id=52311
1605
1606         Add plumbing to allow command-line switch to enable offscreen compositing. Function
1607         LayerRendererChromium::copyOffscreenTextureToDisplay used for now to mimic
1608         normal renderer operation.
1609
1610         Existing functionality not changed; offscreen compositing will be tested via GPU test framework.
1611
1612         * platform/graphics/chromium/LayerRendererChromium.cpp:
1613         (WebCore::LayerRendererChromium::setRootLayer):
1614         (WebCore::LayerRendererChromium::setCompositeOffscreen):
1615         (WebCore::LayerRendererChromium::copyOffscreenTextureToDisplay):
1616         (WebCore::LayerRendererChromium::useRenderSurface):
1617         (WebCore::LayerRendererChromium::setScissorToRect):
1618         * platform/graphics/chromium/LayerRendererChromium.h:
1619         (WebCore::LayerRendererChromium::isCompositingOffscreen):
1620
1621 2011-02-17  Kevin Ollivier  <kevino@theolliviers.com>
1622
1623         [wx] Build fixes after recent changes.
1624
1625         * dom/ScriptedAnimationController.h:
1626         * platform/graphics/wx/FontWx.cpp:
1627         (WebCore::Font::drawComplexText):
1628         * platform/graphics/wx/GraphicsContextWx.cpp:
1629         (WebCore::GraphicsContext::drawLineForText):
1630         (WebCore::GraphicsContext::drawLineForTextChecking):
1631         * platform/wx/WidgetWx.cpp:
1632         (WebCore::Widget::setFrameRect):
1633
1634 2011-02-16  Brian Weinstein  <bweinstein@apple.com>
1635
1636         Reviewed by Brady Eidson.
1637
1638         WebKit2: Need a way to manage the WebCore Cache
1639         https://bugs.webkit.org/show_bug.cgi?id=54501
1640         
1641         Add a way to get a set of all of the origins that have entries in the
1642         WebCore memory cache, and a method to remove all resources from the memory
1643         cache from a given security origin.
1644
1645         No change in behavior.
1646
1647         * WebCore.exp.in: Add functions that need to be exported.
1648         * loader/cache/MemoryCache.cpp:
1649         (WebCore::MemoryCache::removeResourcesWithOrigin):
1650         (WebCore::MemoryCache::getOriginsWithCache):
1651         * loader/cache/MemoryCache.h:
1652
1653 2011-02-16  David Hyatt  <hyatt@apple.com>
1654
1655         Reviewed by Dan Bernstein.
1656
1657         https://bugs.webkit.org/show_bug.cgi?id=54244
1658         
1659         Convert the line box tree to floating point and eliminate font rounding hacks.  This patch removes all of the rounding
1660         hacks from the Font code and makes sure all Font APIs involving width measurement and width offsets use floats.
1661         
1662         The line box tree's x, y and logicalWidth members have all been converted to floats and all of the line box APIs have
1663         been changed as well.
1664         
1665         In terms of pixel adjustments, overflow is using an enclosing model (so it will be enclosingIntRect of a line box's x/y/width/height).
1666         
1667         Background and border painting is using a rounding model, so borders and backgrounds will round to the nearest pixel when painting.
1668         
1669         Replaced elements still snap to integer positions on lines, and they use a rounding model as well, although their underlying line boxes
1670         still have a precise floating point position.
1671
1672         Justification will now allow subpixel positioning to occur as well.  Platforms that don't support subpixel positioning should already
1673         be rounding justification spacing in their font code.
1674
1675         Many layout test results change on Mac, since rounding hacks were used there and are now gone.
1676
1677         * WebCore.exp.in:
1678         * html/canvas/CanvasRenderingContext2D.cpp:
1679         (WebCore::CanvasRenderingContext2D::drawTextInternal):
1680         * platform/chromium/FileChooserChromium.cpp:
1681         (WebCore::FileChooser::basenameForWidth):
1682         * platform/graphics/Font.cpp:
1683         (WebCore::Font::width):
1684         * platform/graphics/Font.h:
1685         (WebCore::Font::spaceWidth):
1686         (WebCore::Font::tabWidth):
1687         * platform/graphics/FontFastPath.cpp:
1688         (WebCore::Font::getGlyphsAndAdvancesForSimpleText):
1689         * platform/graphics/GraphicsContext.cpp:
1690         (WebCore::GraphicsContext::drawText):
1691         (WebCore::GraphicsContext::drawEmphasisMarks):
1692         (WebCore::GraphicsContext::drawBidiText):
1693         (WebCore::GraphicsContext::drawHighlightForText):
1694         * platform/graphics/GraphicsContext.h:
1695         * platform/graphics/SimpleFontData.cpp:
1696         (WebCore::SimpleFontData::SimpleFontData):
1697         (WebCore::SimpleFontData::platformGlyphInit):
1698         * platform/graphics/SimpleFontData.h:
1699         (WebCore::SimpleFontData::spaceWidth):
1700         * platform/graphics/StringTruncator.cpp:
1701         (WebCore::stringWidth):
1702         (WebCore::truncateString):
1703         (WebCore::StringTruncator::centerTruncate):
1704         (WebCore::StringTruncator::rightTruncate):
1705         (WebCore::StringTruncator::width):
1706         * platform/graphics/StringTruncator.h:
1707         * platform/graphics/TextRun.h:
1708         (WebCore::TextRun::TextRun):
1709         (WebCore::TextRun::xPos):
1710         (WebCore::TextRun::expansion):
1711         (WebCore::TextRun::directionalOverride):
1712         (WebCore::TextRun::disableSpacing):
1713         * platform/graphics/WidthIterator.cpp:
1714         (WebCore::WidthIterator::WidthIterator):
1715         (WebCore::WidthIterator::advance):
1716         * platform/graphics/WidthIterator.h:
1717         * platform/graphics/cairo/GraphicsContextCairo.cpp:
1718         (WebCore::GraphicsContext::drawLineForText):
1719         (WebCore::GraphicsContext::drawLineForTextChecking):
1720         * platform/graphics/cg/GraphicsContextCG.cpp:
1721         (WebCore::GraphicsContext::drawLineForText):
1722         * platform/graphics/mac/ComplexTextController.cpp:
1723         (WebCore::ComplexTextController::ComplexTextController):
1724         (WebCore::ComplexTextController::advance):
1725         (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
1726         * platform/graphics/mac/ComplexTextController.h:
1727         * platform/graphics/mac/FontComplexTextMac.cpp:
1728         (WebCore::Font::getGlyphsAndAdvancesForComplexText):
1729         * platform/graphics/mac/GraphicsContextMac.mm:
1730         (WebCore::GraphicsContext::drawLineForTextChecking):
1731         * platform/graphics/qt/GraphicsContextQt.cpp:
1732         (WebCore::GraphicsContext::drawLineForText):
1733         (WebCore::GraphicsContext::drawLineForTextChecking):
1734         * platform/graphics/qt/SimpleFontDataQt.cpp:
1735         (WebCore::SimpleFontData::platformGlyphInit):
1736         * platform/graphics/skia/GraphicsContextSkia.cpp:
1737         (WebCore::GraphicsContext::drawLineForTextChecking):
1738         (WebCore::GraphicsContext::drawLineForText):
1739         * platform/graphics/win/GraphicsContextCGWin.cpp:
1740         (WebCore::GraphicsContext::drawLineForTextChecking):
1741         * platform/graphics/win/UniscribeController.cpp:
1742         (WebCore::UniscribeController::shapeAndPlaceItem):
1743         * platform/gtk/FileChooserGtk.cpp:
1744         (WebCore::FileChooser::basenameForWidth):
1745         * platform/mac/DragImageMac.mm:
1746         (WebCore::widthWithFont):
1747         (WebCore::drawAtPoint):
1748         * platform/mac/FileChooserMac.mm:
1749         (WebCore::FileChooser::basenameForWidth):
1750         * platform/win/DragImageWin.cpp:
1751         (WebCore::createDragImageForLink):
1752         * platform/win/FileChooserWin.cpp:
1753         (WebCore::FileChooser::basenameForWidth):
1754         * platform/win/PopupMenuWin.cpp:
1755         (WebCore::PopupMenuWin::calculatePositionAndSize):
1756         * platform/win/WebCoreTextRenderer.cpp:
1757         (WebCore::WebCoreTextFloatWidth):
1758         * rendering/HitTestResult.cpp:
1759         (WebCore::HitTestResult::addNodeToRectBasedTestResult):
1760         * rendering/HitTestResult.h:
1761         * rendering/InlineBox.cpp:
1762         (WebCore::InlineBox::adjustPosition):
1763         (WebCore::InlineBox::placeEllipsisBox):
1764         (WebCore::InlineBox::locationIncludingFlipping):
1765         (WebCore::InlineBox::flipForWritingMode):
1766         * rendering/InlineBox.h:
1767         (WebCore::InlineBox::InlineBox):
1768         (WebCore::InlineBox::adjustLineDirectionPosition):
1769         (WebCore::InlineBox::adjustBlockDirectionPosition):
1770         (WebCore::InlineBox::setX):
1771         (WebCore::InlineBox::x):
1772         (WebCore::InlineBox::setY):
1773         (WebCore::InlineBox::y):
1774         (WebCore::InlineBox::width):
1775         (WebCore::InlineBox::height):
1776         (WebCore::InlineBox::logicalLeft):
1777         (WebCore::InlineBox::logicalRight):
1778         (WebCore::InlineBox::setLogicalLeft):
1779         (WebCore::InlineBox::pixelSnappedLogicalLeft):
1780         (WebCore::InlineBox::pixelSnappedLogicalRight):
1781         (WebCore::InlineBox::setLogicalWidth):
1782         (WebCore::InlineBox::logicalWidth):
1783         (WebCore::InlineBox::verticalAlign):
1784         * rendering/InlineFlowBox.cpp:
1785         (WebCore::InlineFlowBox::roundedFrameRect):
1786         (WebCore::InlineFlowBox::adjustPosition):
1787         (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
1788         (WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
1789         (WebCore::verticalPositionForBox):
1790         (WebCore::InlineFlowBox::computeLogicalBoxHeights):
1791         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
1792         (WebCore::InlineFlowBox::addBoxShadowVisualOverflow):
1793         (WebCore::InlineFlowBox::addTextBoxVisualOverflow):
1794         (WebCore::InlineFlowBox::computeOverflow):
1795         (WebCore::InlineFlowBox::setLayoutOverflow):
1796         (WebCore::InlineFlowBox::setVisualOverflow):
1797         (WebCore::InlineFlowBox::nodeAtPoint):
1798         (WebCore::InlineFlowBox::paintBoxDecorations):
1799         (WebCore::InlineFlowBox::paintMask):
1800         (WebCore::InlineFlowBox::placeEllipsisBox):
1801         * rendering/InlineFlowBox.h:
1802         (WebCore::InlineFlowBox::maxYLayoutOverflow):
1803         (WebCore::InlineFlowBox::maxXLayoutOverflow):
1804         (WebCore::InlineFlowBox::layoutOverflowRect):
1805         (WebCore::InlineFlowBox::maxYVisualOverflow):
1806         (WebCore::InlineFlowBox::maxXVisualOverflow):
1807         (WebCore::InlineFlowBox::visualOverflowRect):
1808         * rendering/InlineTextBox.cpp:
1809         (WebCore::InlineTextBox::placeEllipsisBox):
1810         (WebCore::InlineTextBox::nodeAtPoint):
1811         (WebCore::paintTextWithShadows):
1812         (WebCore::InlineTextBox::paint):
1813         (WebCore::InlineTextBox::paintSelection):
1814         (WebCore::InlineTextBox::paintCompositionBackground):
1815         (WebCore::InlineTextBox::paintDecoration):
1816         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker):
1817         (WebCore::InlineTextBox::paintTextMatchMarker):
1818         (WebCore::InlineTextBox::paintDocumentMarkers):
1819         (WebCore::InlineTextBox::paintCompositionUnderline):
1820         (WebCore::InlineTextBox::textPos):
1821         (WebCore::InlineTextBox::offsetForPosition):
1822         (WebCore::InlineTextBox::positionForOffset):
1823         * rendering/InlineTextBox.h:
1824         (WebCore::InlineTextBox::setExpansion):
1825         * rendering/RenderBR.h:
1826         (WebCore::RenderBR::width):
1827         * rendering/RenderBlock.cpp:
1828         (WebCore::stripTrailingSpace):
1829         (WebCore::updatePreferredWidth):
1830         (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
1831         (WebCore::RenderBlock::adjustForBorderFit):
1832         (WebCore::RenderBlock::addFocusRingRects):
1833         * rendering/RenderBlock.h:
1834         * rendering/RenderBlockLineLayout.cpp:
1835         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
1836         (WebCore::RenderBlock::fitBelowFloats):
1837         (WebCore::textWidth):
1838         (WebCore::tryHyphenating):
1839         (WebCore::RenderBlock::findNextLineBreak):
1840         * rendering/RenderBox.cpp:
1841         (WebCore::RenderBox::positionLineBox):
1842         (WebCore::RenderBox::flipForWritingMode):
1843         * rendering/RenderBox.h:
1844         * rendering/RenderCombineText.cpp:
1845         (WebCore::RenderCombineText::width):
1846         (WebCore::RenderCombineText::adjustTextOrigin):
1847         (WebCore::RenderCombineText::combineText):
1848         * rendering/RenderCombineText.h:
1849         (WebCore::RenderCombineText::combinedTextWidth):
1850         * rendering/RenderCounter.cpp:
1851         (WebCore::RenderCounter::computePreferredLogicalWidths):
1852         * rendering/RenderCounter.h:
1853         * rendering/RenderEmbeddedObject.cpp:
1854         (WebCore::RenderEmbeddedObject::getReplacementTextGeometry):
1855         * rendering/RenderFileUploadControl.cpp:
1856         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths):
1857         * rendering/RenderImage.cpp:
1858         * rendering/RenderInline.cpp:
1859         (WebCore::RenderInline::linesBoundingBox):
1860         (WebCore::RenderInline::linesVisualOverflowBoundingBox):
1861         (WebCore::RenderInline::addFocusRingRects):
1862         (WebCore::RenderInline::paintOutline):
1863         * rendering/RenderListBox.cpp:
1864         (WebCore::RenderListBox::updateFromElement):
1865         (WebCore::RenderListBox::paintItemForeground):
1866         * rendering/RenderMenuList.cpp:
1867         (WebCore::RenderMenuList::updateOptionsWidth):
1868         * rendering/RenderText.cpp:
1869         (WebCore::RenderText::localCaretRect):
1870         (WebCore::RenderText::widthFromCache):
1871         (WebCore::RenderText::trimmedPrefWidths):
1872         (WebCore::RenderText::minLogicalWidth):
1873         (WebCore::RenderText::maxLogicalWidth):
1874         (WebCore::RenderText::computePreferredLogicalWidths):
1875         (WebCore::RenderText::firstRunOrigin):
1876         (WebCore::RenderText::firstRunX):
1877         (WebCore::RenderText::firstRunY):
1878         (WebCore::RenderText::width):
1879         (WebCore::RenderText::linesBoundingBox):
1880         * rendering/RenderText.h:
1881         * rendering/RenderTextControl.cpp:
1882         (WebCore::RenderTextControl::getAvgCharWidth):
1883         (WebCore::RenderTextControl::paintPlaceholder):
1884         * rendering/RenderTreeAsText.cpp:
1885         (WebCore::writeTextRun):
1886         * rendering/RootInlineBox.cpp:
1887         (WebCore::RootInlineBox::placeEllipsis):
1888         (WebCore::RootInlineBox::placeEllipsisBox):
1889         (WebCore::RootInlineBox::adjustPosition):
1890         (WebCore::RootInlineBox::beforeAnnotationsAdjustment):
1891         (WebCore::RootInlineBox::paddedLayoutOverflowRect):
1892         * rendering/RootInlineBox.h:
1893         * rendering/VerticalPositionCache.h:
1894         * rendering/svg/SVGInlineTextBox.cpp:
1895         (WebCore::SVGInlineTextBox::offsetForPosition):
1896         (WebCore::SVGInlineTextBox::positionForOffset):
1897         (WebCore::SVGInlineTextBox::constructTextRun):
1898         * rendering/svg/SVGInlineTextBox.h:
1899         * rendering/svg/SVGRenderTreeAsText.cpp:
1900         (WebCore::writeRenderSVGTextBox):
1901         * rendering/svg/SVGTextMetrics.cpp:
1902         (WebCore::SVGTextMetrics::SVGTextMetrics):
1903         (WebCore::constructTextRun):
1904         * svg/SVGFont.cpp:
1905         (WebCore::floatWidthMissingGlyphCallback):
1906         (WebCore::Font::drawTextUsingSVGFont):
1907
1908 2011-02-17  Nikolas Zimmermann  <nzimmermann@rim.com>
1909
1910         Reviewed by Dirk Schulze.
1911
1912         'ex' coordinates fail, when SVGFont doesn't provide an explicit xHeight attribute
1913         https://bugs.webkit.org/show_bug.cgi?id=54672
1914
1915         Measure the xHeight from the 'x' glyph of a SVGFont, if the font itself doesn't explicitely specify an x-height attribute.
1916         Fixes the modern version of SVG 1.1 2nd Edition coords-units-03-b.svg.
1917
1918         Test: svg/W3C-SVG-1.1-SE/coords-units-03-b.svg
1919
1920         * platform/graphics/SimpleFontData.cpp:
1921         (WebCore::SimpleFontData::SimpleFontData):
1922
1923 2011-02-10  Luiz Agostini  <luiz.agostini@openbossa.org>
1924
1925         Reviewed by Adam Roben.
1926
1927         HTML5 <details> and <summary>: localized text
1928         https://bugs.webkit.org/show_bug.cgi?id=54260
1929
1930         The method defaultDetailsSummaryText was added to LocalizationStrategy class and to
1931         platform/LocalizedStrings. It is used to provide the default label to be used by a
1932         <details> tag that has no <summary> child.
1933
1934         * platform/LocalizationStrategy.h:
1935         * platform/LocalizedStrings.cpp:
1936         (WebCore::fileButtonNoFileSelectedLabel):
1937         (WebCore::defaultDetailsSummaryText):
1938         * platform/LocalizedStrings.h:
1939         * platform/android/LocalizedStringsAndroid.cpp:
1940         (WebCore::defaultDetailsSummaryText):
1941         * platform/brew/LocalizedStringsBrew.cpp:
1942         (WebCore::defaultDetailsSummaryText):
1943         * platform/efl/LocalizedStringsEfl.cpp:
1944         (WebCore::defaultDetailsSummaryText):
1945         * platform/gtk/LocalizedStringsGtk.cpp:
1946         (WebCore::defaultDetailsSummaryText):
1947         * platform/haiku/LocalizedStringsHaiku.cpp:
1948         (WebCore::defaultDetailsSummaryText):
1949         * platform/wx/LocalizedStringsWx.cpp:
1950         (WebCore::defaultDetailsSummaryText):
1951
1952 2011-02-17  Kristian Amlie  <kristian.amlie@nokia.com>
1953
1954         Reviewed by Laszlo Gombos.
1955
1956         Updated include paths for phonon.
1957
1958         [Qt] WebKit patches required to work with a modularized version of Qt
1959         https://bugs.webkit.org/show_bug.cgi?id=53916
1960
1961         Build fix. No tests.
1962
1963         * WebCore.pro:
1964
1965 2011-02-17  Hui Huang  <hui.2.huang@nokia.com>
1966
1967         Reviewed by Laszlo Gombos.
1968
1969         The URL of HTML5 Video Element is percent encoded at websites such as youtube.
1970         It is percent encoded again by QUrl constructor QUrl::QUrl(QString). This causes
1971         the HTTP GET request for the video to be rejected by the service provider. 
1972         https://bugs.webkit.org/show_bug.cgi?id=53973.
1973
1974         The bug is fixed by constructing QUrl from the encoded URL.
1975
1976         New test function tst_QWebPage::loadHtml5Video() is added in 
1977         Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
1978
1979         * platform/graphics/qt/MediaPlayerPrivateQt.cpp:
1980         (WebCore::MediaPlayerPrivateQt::commitLoad):
1981
1982 2011-02-17  Andreas Kling  <kling@webkit.org>
1983
1984         Reviewed by Antti Koivisto.
1985
1986         [Qt] Crash when calling QWebFrame::setUrl() while a previous load has pending requests
1987         https://bugs.webkit.org/show_bug.cgi?id=49216
1988
1989         CachedResourceRequest::didFail() will protect the CachedResourceLoader's
1990         document() while it runs, but if we're being called from the Document destructor,
1991         the protecting RefPtr<Document> will cause a double-delete instead.
1992
1993         * loader/cache/CachedResourceLoader.cpp:
1994         (WebCore::CachedResourceLoader::~CachedResourceLoader): Clear the m_document
1995         pointer so CachedResourceRequest::didFail() won't try to protect it.
1996         (WebCore::CachedResourceLoader::frame): Add null-check for m_document.
1997
1998 2011-02-17  Andrey Adaikin  <aandrey@google.com>
1999
2000         Reviewed by Pavel Feldman.
2001
2002         Web Inspector: [Text editor] Add updateHighlight method to the highlighter
2003         https://bugs.webkit.org/show_bug.cgi?id=54448
2004
2005         * inspector/front-end/SourceTokenizer.js:
2006         * inspector/front-end/TextEditorHighlighter.js:
2007         (WebInspector.TextEditorHighlighter.prototype.set mimeType):
2008         (WebInspector.TextEditorHighlighter.prototype.reset):
2009         (WebInspector.TextEditorHighlighter.prototype.updateHighlight):
2010         (WebInspector.TextEditorHighlighter.prototype._highlightInChunks):
2011         (WebInspector.TextEditorHighlighter.prototype._highlightLines):
2012
2013 2011-02-16  Pavel Podivilov  <podivilov@chromium.org>
2014
2015         Reviewed by Yury Semikhatsky.
2016
2017         Web Inspector: show all inlined scripts from single document in the same source frame.
2018         https://bugs.webkit.org/show_bug.cgi?id=54544
2019
2020         Currently when debugging synchronously executed inlined scripts each script is shown in it's own source frame ("example.html:24").
2021         We should show such scripts in the same source frame "example.html" with <script></script> framing.
2022
2023         Test: inspector/debugger/debug-inlined-scripts.html
2024
2025         * inspector/front-end/ScriptsPanel.js:
2026         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
2027         (WebInspector.ScriptsPanel.prototype._addScript):
2028         (WebInspector.ScriptsPanel.prototype._resourceForURL):
2029         (WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
2030         (WebInspector.ScriptsPanel.prototype.addConsoleMessage):
2031         (WebInspector.ScriptsPanel.prototype.clearConsoleMessages):
2032         (WebInspector.ScriptsPanel.prototype.reset):
2033         (WebInspector.ScriptsPanel.prototype._sourceFrameForResource):
2034         (WebInspector.ScriptsPanel.prototype._sourceFrameForScript):
2035         (WebInspector.ScriptsPanel.prototype._recreateSourceFrame):
2036         (WebInspector.ScriptsPanel.prototype._showScriptOrResource):
2037         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu.optionCompare):
2038         (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu):
2039         (WebInspector.SourceFrameContentProviderForScript.prototype.requestContent):
2040         (WebInspector.SourceFrameContentProviderForScript.prototype._buildSource):
2041
2042 2011-02-17  Nikolas Zimmermann  <nzimmermann@rim.com>
2043
2044         Reviewed by Dirk Schulze.
2045
2046         svg/batik/paints/patternRegions-positioned-objects.svg fails on Windows
2047         https://bugs.webkit.org/show_bug.cgi?id=44484
2048
2049         Pattern of pattern defined with objectBoundingBox does not render correctly
2050         https://bugs.webkit.org/show_bug.cgi?id=53463
2051
2052         Fix <pattern> + patternContentUnits="objectBoundingBox" support.
2053         We were incorrrectly translating the tile image transform, by the target objects bbox.x()/y().
2054         RenderSVGResourceMask/Clipper don't have this error.
2055         
2056         Fix nesting <patterns> in objectBoundingBox mode, propagate the tileImageTransform as new user-space
2057         when drawing the pattern children. <mask> + <clipPath> don't have the problem.
2058
2059         Test: svg/custom/nested-pattern-boundingBoxModeContent.svg
2060
2061         * rendering/svg/RenderSVGResourcePattern.cpp:
2062         (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
2063         (WebCore::RenderSVGResourcePattern::createTileImage):
2064
2065 2011-02-17  Csaba Osztrogonác  <ossy@webkit.org>
2066
2067         Unreviewed.
2068
2069         [Qt][V8] Buildfix after r78752.
2070
2071         * CodeGenerators.pri: Add missing IDL files.
2072
2073 2011-02-17  Benjamin Kalman  <kalman@chromium.org>
2074
2075         Reviewed by Ryosuke Niwa.
2076
2077         RTL lineboundary left/right is reversed when cursor is at start of RTL container
2078         https://bugs.webkit.org/show_bug.cgi?id=54534
2079
2080         Test: editing/selection/extend-left-right-by-lineboundary.html
2081
2082         Add missing cases for extending left/right by lineboundary.
2083
2084         * editing/SelectionController.cpp:
2085         (WebCore::SelectionController::modifyExtendingRight):
2086         (WebCore::SelectionController::modifyExtendingLeft):
2087
2088 2011-02-16  Philippe Normand  <pnormand@igalia.com>
2089
2090         Reviewed by Martin Robinson.
2091
2092         [GTK] libsoup critical warnings
2093         https://bugs.webkit.org/show_bug.cgi?id=54557
2094
2095         Avoid pausing a soup message for already downloaded resources.
2096
2097         * platform/network/soup/ResourceHandleSoup.cpp:
2098         (WebCore::ResourceHandle::platformSetDefersLoading):
2099
2100 2011-02-16  Brian Ryner  <bryner@chromium.org>
2101
2102         Reviewed by Darin Fisher.
2103
2104         Split the socket address field into separate IP address and port fields.
2105         This will make the field less error-prone to parse, for example when
2106         dealing with IPv6 literals.
2107         https://bugs.webkit.org/show_bug.cgi?id=54607
2108
2109         No new tests required.
2110
2111         * platform/network/chromium/ResourceResponse.cpp:
2112         (WebCore::ResourceResponse::doPlatformCopyData):
2113         (WebCore::ResourceResponse::doPlatformAdopt):
2114         * platform/network/chromium/ResourceResponse.h:
2115         (WebCore::ResourceResponse::ResourceResponse):
2116         (WebCore::ResourceResponse::remoteIPAddress):
2117         (WebCore::ResourceResponse::setRemoteIPAddress):
2118         (WebCore::ResourceResponse::remotePort):
2119         (WebCore::ResourceResponse::setRemotePort):
2120
2121 2011-02-16  Dominic Mazzoni  <dmazzoni@google.com>
2122
2123         Reviewed by Chris Fleizach.
2124
2125         Add support for canvas fallback content.
2126         https://bugs.webkit.org/show_bug.cgi?id=50126
2127
2128         Test: accessibility/canvas-fallback-content.html
2129
2130         * accessibility/AccessibilityObject.h:
2131         * accessibility/AccessibilityRenderObject.cpp:
2132         (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
2133         (WebCore::AccessibilityRenderObject::canHaveChildren):
2134         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2135         (atkRole):
2136         * accessibility/mac/AccessibilityObjectWrapper.mm:
2137         * html/HTMLFormControlElement.cpp:
2138         (WebCore::HTMLFormControlElement::isFocusable):
2139         * rendering/RenderHTMLCanvas.cpp:
2140         (WebCore::RenderHTMLCanvas::recursiveSetNoNeedsLayout):
2141         (WebCore::RenderHTMLCanvas::layout):
2142         (WebCore::RenderHTMLCanvas::nodeAtPoint):
2143         * rendering/RenderHTMLCanvas.h:
2144         (WebCore::RenderHTMLCanvas::children):
2145         (WebCore::RenderHTMLCanvas::canHaveChildren):
2146         (WebCore::RenderHTMLCanvas::virtualChildren):
2147         * rendering/RenderObject.cpp:
2148         (WebCore::RenderObject::repaint):
2149         * rendering/RenderTreeAsText.cpp:
2150         (WebCore::write):
2151
2152 2011-02-16  Matthew Delaney  <mdelaney@apple.com>
2153
2154         Reviewed by Simon Fraser.
2155
2156         Allow acceleratesDrawing for WebKit2
2157         https://bugs.webkit.org/show_bug.cgi?id=54511
2158
2159         Plumb through preference for accelerated drawing.
2160         
2161         When accelerated drawing is enabled, set a flag on new GraphicsLayers.
2162
2163         Not testable via Layout Tests
2164
2165         * WebCore.exp.in:
2166         * page/Settings.cpp:
2167         (WebCore::Settings::Settings):
2168         (WebCore::Settings::setAcceleratedDrawingEnabled):
2169         * page/Settings.h:
2170         (WebCore::Settings::acceleratedDrawingEnabled):
2171         * rendering/RenderLayerCompositor.cpp:
2172         (WebCore::RenderLayerCompositor::updateBacking):
2173
2174 2011-02-16  Victoria Kirst  <vrk@google.com>
2175
2176         Reviewed by Kenneth Russell.
2177
2178         [chromium] Fix green pixels at edge of certain GPU-accelerated videos
2179         https://bugs.webkit.org/show_bug.cgi?id=54559
2180
2181         Adds logic to properly resize the range of YUV textures to only
2182         select legitimate values.
2183
2184         * platform/graphics/chromium/VideoFrameChromium.h:
2185         * platform/graphics/chromium/VideoLayerChromium.cpp:
2186         (WebCore::VideoLayerChromium::SharedValues::SharedValues):
2187         (WebCore::VideoLayerChromium::allocateTexturesIfNeeded):
2188         (WebCore::VideoLayerChromium::drawYUV):
2189         * platform/graphics/chromium/VideoLayerChromium.h:
2190         (WebCore::VideoLayerChromium::SharedValues::yWidthScaleFactorLocation):
2191         (WebCore::VideoLayerChromium::SharedValues::uvWidthScaleFactorLocation):
2192
2193 2011-02-16  Bill Budge  <bbudge@chromium.org>
2194
2195         Reviewed by David Levin.
2196
2197         Need didReceiveCachedMetadata, and finishTime for didFinishLoading exposed in ThreadableLoaderClient
2198         https://bugs.webkit.org/show_bug.cgi?id=54313
2199
2200         No tests needed, exposes no new functionality
2201
2202         * fileapi/FileReaderLoader.cpp:
2203         (WebCore::FileReaderLoader::didFinishLoading):
2204         * fileapi/FileReaderLoader.h:
2205         * loader/DocumentThreadableLoader.cpp:
2206         (WebCore::DocumentThreadableLoader::setDefersLoading):
2207         (WebCore::DocumentThreadableLoader::didReceiveCachedMetadata):
2208         (WebCore::DocumentThreadableLoader::didFinishLoading):
2209         (WebCore::DocumentThreadableLoader::loadRequest):
2210         * loader/DocumentThreadableLoader.h:
2211         * loader/ThreadableLoaderClient.h:
2212         (WebCore::ThreadableLoaderClient::didReceiveData):
2213         (WebCore::ThreadableLoaderClient::didReceiveCachedMetadata):
2214         (WebCore::ThreadableLoaderClient::didFinishLoading):
2215         * loader/ThreadableLoaderClientWrapper.h:
2216         (WebCore::ThreadableLoaderClientWrapper::didReceiveData):
2217         (WebCore::ThreadableLoaderClientWrapper::didReceiveCachedMetadata):
2218         (WebCore::ThreadableLoaderClientWrapper::didFinishLoading):
2219         * loader/WorkerThreadableLoader.cpp:
2220         (WebCore::workerContextDidReceiveCachedMetadata):
2221         (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveCachedMetadata):
2222         (WebCore::workerContextDidFinishLoading):
2223         (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
2224         * loader/WorkerThreadableLoader.h:
2225         * notifications/Notification.cpp:
2226         (WebCore::Notification::didFinishLoading):
2227         * notifications/Notification.h:
2228         * page/EventSource.cpp:
2229         (WebCore::EventSource::didFinishLoading):
2230         * page/EventSource.h:
2231         * workers/WorkerScriptLoader.cpp:
2232         (WebCore::WorkerScriptLoader::didFinishLoading):
2233         * workers/WorkerScriptLoader.h:
2234         * xml/XMLHttpRequest.cpp:
2235         (WebCore::XMLHttpRequest::didFinishLoading):
2236         * xml/XMLHttpRequest.h:
2237
2238 2011-02-16  Jeremy Orlow  <jorlow@chromium.org>
2239
2240         Fix uninitialized memory error.
2241
2242         * storage/IDBDatabaseBackendImpl.cpp:
2243         (WebCore::IDBDatabaseBackendImpl::close):
2244
2245 2011-02-16  Adam Barth  <abarth@webkit.org>
2246
2247         Reviewed by Eric Seidel.
2248
2249         Fix xssAuditor/form-action.html
2250         https://bugs.webkit.org/show_bug.cgi?id=54590
2251
2252         We should block form actions.  Although this technically can't be used
2253         to run script, it's a pretty easy vector for stealing passwords.
2254
2255         * html/parser/XSSFilter.cpp:
2256         (WebCore::XSSFilter::filterTokenInitial):
2257         (WebCore::XSSFilter::filterFormToken):
2258         * html/parser/XSSFilter.h:
2259
2260 2011-02-16  Abhishek Arya  <inferno@chromium.org>
2261
2262         Reviewed by James Robinson.
2263
2264         Remove the early bail added in r75823 since we can run into anonymous
2265         blocks when traversing the parents chain for clearing floats.
2266         https://bugs.webkit.org/show_bug.cgi?id=54601
2267
2268         removeFloatingOrPositionedChildFromBlockLists tries to find the topmost
2269         parent containing "this" block and then tries to remove it from its floats
2270         list and mark all descendants blocks for layout. I added a bailout condition
2271         in r75823 because we thought that if one of the parent render block does not 
2272         contain "this" float, then it is safe to assume that none of the grand parents
2273         will have it. This is a wrong assumption since anonymous blocks do not have
2274         float objects and we need to go higher in the chain to find the top most parent
2275         containing this float. Instead of breaking out of the loop, it is ok to keep
2276         traversing the chain till we find that parent. Otherwise, we will leave deleted
2277         floats in the grand parents floats list.
2278
2279         Test: fast/block/float/floats-not-cleared-from-grand-parents.html
2280
2281         * rendering/RenderBox.cpp:
2282         (WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
2283
2284 2011-02-16  Andreas Kling  <kling@webkit.org>
2285
2286         Reviewed by Ryosuke Niwa.
2287
2288         Editing styles should not emit #RRGGBBAA colors
2289         https://bugs.webkit.org/show_bug.cgi?id=54540
2290
2291         * editing/ApplyStyleCommand.cpp:
2292         (WebCore::StyleChange::extractTextStyles): Use Color::serialized()
2293         instead of Color::nameForRenderTreeAsText().
2294
2295 2011-02-16  Ryosuke Niwa  <rniwa@webkit.org>
2296
2297         Reviewed by Kent Tamura.
2298
2299         Improve showTree of Range, Position, and VisiblePosition
2300         https://bugs.webkit.org/show_bug.cgi?id=54536
2301
2302         Enhanced showTree of Range, Position, and VisiblePosition.
2303
2304         * dom/Position.cpp:
2305         (WebCore::Position::showAnchorTypeAndOffset): Added; dumps "legacy" if the position
2306         is a legacy position and also dumps anchor type.
2307         (WebCore::Position::showTreeForThis): Calls showAnchorTypeAndOffset.
2308         * dom/Position.h:
2309         * dom/Range.cpp:
2310         (showTree): No longer calls deprecatedEditingOffset.
2311         * editing/VisiblePosition.cpp:
2312         (WebCore::VisiblePosition::debugPosition): No longer included in release build.
2313         Calls Position::showAnchorTypeAndOffset instead of manually calling deprecatedEditingOffset.
2314         * editing/VisiblePosition.h:
2315         * editing/VisibleSelection.cpp:
2316         (WebCore::VisibleSelection::debugPosition): Ditto.
2317         (WebCore::VisibleSelection::showTreeForThis): Ditto.
2318         * editing/VisibleSelection.h:
2319         * page/EventHandler.cpp:
2320
2321 2011-02-16  David Grogan  <dgrogan@chromium.org>
2322
2323         Reviewed by Jeremy Orlow.
2324
2325         fix compile error introduced in 78752
2326         https://bugs.webkit.org/show_bug.cgi?id=54604
2327
2328         * storage/IDBRequest.h:
2329
2330 2011-02-16  Jeremy Orlow  <jorlow@chromium.org>
2331
2332         Back out IndexedDB change thats no longer necessary
2333         https://bugs.webkit.org/show_bug.cgi?id=54603
2334
2335         Backing out 78645 as it turns out that it's not necessary.
2336
2337         * storage/IDBFactoryBackendImpl.cpp:
2338         (WebCore::IDBFactoryBackendImpl::open):
2339         * storage/IDBFactoryBackendImpl.h:
2340         * storage/IDBFactoryBackendInterface.h:
2341
2342 2011-02-16  Brian Salomon  <bsalomon@google.com>
2343
2344         Reviewed by James Robinson.
2345
2346         Skia's gpu backed just needs the correct context bound before drawing. It will bind the correct FBO itself and doing so externally confuses it unless resetContext is called.
2347
2348         No new tests required.
2349
2350         * platform/graphics/skia/PlatformContextSkia.cpp:
2351         (WebCore::PlatformContextSkia::syncSoftwareCanvas):
2352
2353 2011-02-16  Mike Reed  <reed@google.com>
2354
2355         Reviewed by Kenneth Russell.
2356
2357         Use non-asserting pack function for decoding images, since webgl may want
2358         a non-premultiplied version of the image.
2359         https://bugs.webkit.org/show_bug.cgi?id=54023
2360
2361         No new tests.
2362         fast/canvas/webgl/gl-teximage.html
2363         fast/canvas/webgl/tex-image-with-format-and-type.html
2364         fast/canvas/webgl/texture-transparent-pixels-initialized.html
2365
2366         * platform/image-decoders/ImageDecoder.h:
2367         (WebCore::ImageFrame::setRGBA):
2368
2369 2011-02-16  David Grogan  <dgrogan@chromium.org>
2370
2371         Reviewed by Jeremy Orlow.
2372
2373         indexeddb: make setVersion fire blocked event if other connections are open
2374         https://bugs.webkit.org/show_bug.cgi?id=53728
2375
2376         Tests: storage/indexeddb/set_version_blocked.html
2377                storage/indexeddb/set_version_queue.html
2378
2379         * WebCore.gypi:
2380         * bindings/js/JSEventCustom.cpp:
2381         (WebCore::toJS):
2382         * bindings/v8/custom/V8EventCustom.cpp:
2383         (WebCore::toV8):
2384         * dom/Event.cpp:
2385         (WebCore::Event::isIDBVersionChangeEvent):
2386         * dom/Event.h:
2387         * dom/EventNames.h:
2388         * dom/EventTarget.cpp:
2389         (WebCore::EventTarget::toIDBVersionChangeRequest):
2390         * dom/EventTarget.h:
2391         * storage/IDBCallbacks.h:
2392         * storage/IDBDatabase.cpp:
2393         (WebCore::IDBDatabase::setVersion):
2394         (WebCore::IDBDatabase::close):
2395         * storage/IDBDatabase.h:
2396         * storage/IDBDatabase.idl:
2397         * storage/IDBDatabaseBackendImpl.cpp:
2398         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::create):
2399         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::version):
2400         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::callbacks):
2401         (WebCore::IDBDatabaseBackendImpl::PendingSetVersionCall::PendingSetVersionCall):
2402         (WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
2403         (WebCore::IDBDatabaseBackendImpl::setVersion):
2404         (WebCore::IDBDatabaseBackendImpl::open):
2405         (WebCore::IDBDatabaseBackendImpl::close):
2406         * storage/IDBDatabaseBackendImpl.h:
2407         * storage/IDBDatabaseBackendInterface.h:
2408         * storage/IDBFactoryBackendImpl.cpp:
2409         (WebCore::IDBFactoryBackendImpl::open):
2410         * storage/IDBRequest.cpp:
2411         (WebCore::IDBRequest::onBlocked):
2412         (WebCore::IDBRequest::dispatchEvent):
2413         (WebCore::IDBRequest::source):
2414         * storage/IDBRequest.h:
2415         * storage/IDBVersionChangeEvent.cpp: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
2416         (WebCore::IDBVersionChangeEvent::create):
2417         (WebCore::IDBVersionChangeEvent::IDBVersionChangeEvent):
2418         (WebCore::IDBVersionChangeEvent::~IDBVersionChangeEvent):
2419         (WebCore::IDBVersionChangeEvent::version):
2420         * storage/IDBVersionChangeEvent.h: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
2421         (WebCore::IDBVersionChangeEvent::isIDBVersionChangeEvent):
2422         * storage/IDBVersionChangeEvent.idl: Added.
2423         * storage/IDBVersionChangeRequest.cpp: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
2424         (WebCore::IDBVersionChangeRequest::create):
2425         (WebCore::IDBVersionChangeRequest::IDBVersionChangeRequest):
2426         (WebCore::IDBVersionChangeRequest::~IDBVersionChangeRequest):
2427         (WebCore::IDBVersionChangeRequest::onBlocked):
2428         * storage/IDBVersionChangeRequest.h: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
2429         * storage/IDBVersionChangeRequest.idl: Copied from Source/WebKit/chromium/src/WebIDBCallbacksImpl.h.
2430
2431 2011-02-16  Robin Cao  <robin.cao@torchmobile.com.cn>
2432
2433         Reviewed by James Robinson.
2434
2435         PlatformContextSkia::applyAntiAliasedClipPaths does not work for paths which have evenOdd property
2436         https://bugs.webkit.org/show_bug.cgi?id=54336
2437
2438         We need to take fill type of paths into account when drawing them.
2439
2440         No new tests, covered by svg/W3C-SVG-1.1/masking-path-05-f.svg.
2441
2442         * platform/graphics/skia/PlatformContextSkia.cpp:
2443         (WebCore::PlatformContextSkia::applyAntiAliasedClipPaths):
2444
2445 2011-02-16  Eric Seidel  <eric@webkit.org>
2446
2447         Reviewed by Adam Barth.
2448
2449         REGRESSION (r61234): washingtonpost.com top bar looks wrong, doesn't animate
2450         https://bugs.webkit.org/show_bug.cgi?id=53717
2451
2452         Test: http/tests/local/absolute-url-strip-whitespace.html
2453
2454         This was theoretically tested already in fast/url, however the
2455         tests were disabled due to lack of any clean way to test absolute
2456         url parsing in JavaScript.  I added a test which mimics the sites
2457         behavior using our local http server.  There seems to be no other
2458         way to test this at the moment.
2459
2460         * platform/KURL.cpp:
2461         (WebCore::shouldTrimFromURL):
2462          - Any char 0-20 should be removed (matches google-url and other browsers).
2463         (WebCore::KURL::init):
2464
2465 2011-02-16  Abhishek Arya  <inferno@chromium.org>
2466
2467         Reviewed by James Robinson.
2468
2469         Traverse the next sibling tree to find the text fragment for a first letter.
2470         https://bugs.webkit.org/show_bug.cgi?id=54568
2471
2472         We cannot assume that the next sibling to the first letter will a text fragment
2473         since there can be intermediatary Apple-style-span inline elements wrapping the
2474         text fragment. So, we traverse the next sibling tree to find it.
2475         Test: fast/css/first-letter-text-fragment-crash.html
2476
2477         * rendering/RenderBlock.cpp:
2478         (WebCore::RenderBlock::updateFirstLetter):
2479
2480 2011-02-16  Martin Robinson  <mrobinson@igalia.com>
2481
2482         Reviewed by Xan Lopez.
2483
2484         [GTK] r78718 introduced some assertion failures in some HTTP tests
2485         https://bugs.webkit.org/show_bug.cgi?id=54592
2486
2487         No new tests. This fix is covered by tests that are currently failing.
2488
2489         * platform/network/soup/ResourceRequestSoup.cpp:
2490         (WebCore::ResourceRequest::updateFromSoupMessage): Instead of setting the existing
2491         headers and then selectively removing ones that do not exist in the updated soup
2492         message, just remove all headers from the map first.
2493
2494 2011-02-16  Jian Li  <jianli@chromium.org>
2495
2496         Reviewed by Kenneth Russell.
2497
2498         [V8] DataView constructor can be applied as a regular method
2499         https://bugs.webkit.org/show_bug.cgi?id=54563
2500
2501         Tested by adding a new test case to fast/canvas/webgl/data-view-test.html.
2502
2503         * bindings/v8/custom/V8DataViewCustom.cpp:
2504         (WebCore::V8DataView::constructorCallback):
2505
2506 == Rolled over to ChangeLog-2011-02-16 ==