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