2011-01-29 Daniel Bates <dbates@rim.com>
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-29  Daniel Bates  <dbates@rim.com>
2
3         Reviewed by Maciej Stachowiak.
4
5         Remove reference to ${CMAKE_SOURCE_DIR}/Source in CMake files
6         https://bugs.webkit.org/show_bug.cgi?id=53382
7
8         Our file system hierarchy ensures that CMAKE_SOURCE_DIR is defined to be /Source.
9         So, ${CMAKE_SOURCE_DIR}/Source evaluates to the non-existent directory /Source/Source.
10         Therefore, we should remove such references.
11
12         * CMakeLists.txt:
13
14 2011-01-29  Sam Weinig  <sam@webkit.org>
15
16         Reviewed by Jon Honeycutt.
17
18         Fix 32-bit build on the Mac.
19
20         * platform/mac/ScrollAnimatorMac.mm:
21         (WebCore::roundTowardZero):
22         (WebCore::roundToDevicePixelTowardZero):
23         Use floats instead of doubles to avoid double-to-float conversion
24         issues.
25
26 2011-01-29  Simon Fraser  <simon.fraser@apple.com>
27
28         Reviewed by Adam Barth.
29
30         Use clampToInteger() functions in a few places
31         https://bugs.webkit.org/show_bug.cgi?id=53363
32         
33         * css/CSSStyleSelector.cpp:
34         (WebCore::CSSStyleSelector::applyProperty): Use clampToInteger() for z-index.
35         (WebCore::CSSStyleSelector::createTransformOperations): Use clampToPositiveInteger().
36         * platform/graphics/transforms/PerspectiveTransformOperation.cpp: Ditto.
37         (WebCore::PerspectiveTransformOperation::blend): Ditto.
38
39 2011-01-29  Patrick Gansterer  <paroga@webkit.org>
40
41         Reviewed by David Kilzer.
42
43         Move CharacterNames.h into WTF directory
44         https://bugs.webkit.org/show_bug.cgi?id=49618
45
46         * ForwardingHeaders/wtf/unicode/CharacterNames.h: Added.
47         * GNUmakefile.am:
48         * WebCore.gypi:
49         * WebCore.vcproj/WebCore.vcproj:
50         * WebCore.xcodeproj/project.pbxproj:
51         * accessibility/AccessibilityObject.cpp:
52         * accessibility/AccessibilityRenderObject.cpp:
53         * bindings/cpp/WebDOMHTMLDocumentCustom.cpp:
54         * bindings/js/JSHTMLDocumentCustom.cpp:
55         * dom/Position.cpp:
56         * dom/SelectElement.cpp:
57         * editing/CompositeEditCommand.cpp:
58         * editing/Editor.cpp:
59         * editing/HTMLInterchange.cpp:
60         * editing/InsertTextCommand.cpp:
61         * editing/MarkupAccumulator.cpp:
62         * editing/TextIterator.cpp:
63         * editing/VisibleSelection.cpp:
64         * editing/htmlediting.cpp:
65         * editing/htmlediting.h:
66         * editing/markup.cpp:
67         * html/FTPDirectoryDocument.cpp:
68         * html/HTMLFormControlElement.cpp:
69         * html/parser/HTMLTreeBuilder.cpp:
70         * loader/appcache/ManifestParser.cpp:
71         * platform/chromium/PopupMenuChromium.cpp:
72         * platform/graphics/Font.h:
73         * platform/graphics/FontFastPath.cpp:
74         * platform/graphics/GlyphPageTreeNode.cpp:
75         * platform/graphics/StringTruncator.cpp:
76         * platform/graphics/mac/ComplexTextController.cpp:
77         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
78         * platform/graphics/wince/GraphicsContextWinCE.cpp:
79         * platform/mac/PasteboardMac.mm:
80         * platform/text/TextCodecICU.cpp:
81         * platform/text/mac/TextCodecMac.cpp:
82         * platform/text/transcoder/FontTranscoder.cpp:
83         * rendering/RenderBlockLineLayout.cpp:
84         * rendering/RenderFlexibleBox.cpp:
85         * rendering/RenderListMarker.cpp:
86         * rendering/RenderText.cpp:
87         * rendering/RenderTextControl.cpp:
88         * rendering/RenderTreeAsText.cpp:
89         * rendering/break_lines.cpp:
90         * rendering/mathml/RenderMathMLOperator.h:
91         * websockets/WebSocketHandshake.cpp:
92         * wml/WMLTableElement.cpp:
93
94 2011-01-29  Dan Winship  <danw@gnome.org>
95
96         Reviewed by Xan Lopez.
97
98         [GTK] Remove HAVE_LIBSOUP_2_29_90 conditionals; we depend on
99         libsoup 2.33.1 now.
100         https://bugs.webkit.org/show_bug.cgi?id=50675
101
102         * platform/network/soup/CookieJarSoup.cpp:
103         (WebCore::defaultCookieJar):
104         (WebCore::setCookies):
105         * platform/network/soup/ResourceHandleSoup.cpp:
106         (WebCore::ResourceHandle::prepareForURL):
107         (WebCore::restartedCallback):
108         (WebCore::startHttp):
109         * platform/network/soup/ResourceRequestSoup.cpp:
110         (WebCore::ResourceRequest::updateSoupMessage):
111         (WebCore::ResourceRequest::toSoupMessage):
112         (WebCore::ResourceRequest::updateFromSoupMessage):
113
114 2011-01-29  Adam Barth  <abarth@webkit.org>
115
116         Reviewed by Daniel Bates.
117
118         XSSFilter should replace URLs with about:blank instead of the empty string
119         https://bugs.webkit.org/show_bug.cgi?id=53370
120
121         Using the empty string will make the URL complete to the current
122         document's URL, which isn't really what we want.  Instead, we want to
123         use about:blank, which is safe.
124
125         * html/parser/XSSFilter.cpp:
126         (WebCore::XSSFilter::filterObjectToken):
127         (WebCore::XSSFilter::filterEmbedToken):
128
129 2011-01-29  Adam Barth  <abarth@webkit.org>
130
131         Reviewed by Daniel Bates.
132
133         XSSFilter should pass xssAuditor/script-tag-addslashes*
134         https://bugs.webkit.org/show_bug.cgi?id=53365
135
136         We need to canonicalize strings to avoid being tricked by addslashes.
137
138         * html/parser/XSSFilter.cpp:
139         (WebCore::HTMLNames::isNonCanonicalCharacter):
140             - This function is copied from the XSSAuditor (with some tweaks).
141               We'll eventually remove the XSSAuditor once we've got XSSFilter
142               working properly.
143         (WebCore::HTMLNames::canonicalize):
144         (WebCore::HTMLNames::decodeURL):
145         (WebCore::XSSFilter::isContainedInRequest):
146
147 2011-01-29  Adam Barth  <abarth@webkit.org>
148
149         Reviewed by Daniel Bates.
150
151         XSSFilter should pass xssAuditor/script-tag-with-source-same-host.html
152         and xssAuditor/script-tag-post-*
153         https://bugs.webkit.org/show_bug.cgi?id=53364
154
155         We're supposed to allow loading same-origin resources even if they
156         appear as part of the request.
157
158         Also, we're supposed to look at the POST data too.  :)
159
160         * html/parser/XSSFilter.cpp:
161         (WebCore::XSSFilter::eraseAttributeIfInjected):
162         (WebCore::XSSFilter::isSameOriginResource):
163             - Copy/paste from XSSAuditor::isSameOriginResource.  We'll
164               eventually remove the XSSAuditor version when XSSFilter is done.
165         * html/parser/XSSFilter.h:
166
167 2011-01-29  Adam Barth  <abarth@webkit.org>
168
169         Reviewed by Daniel Bates.
170
171         XSSFilter should pass 16 of the xssAuditor/script-tag* tests
172         https://bugs.webkit.org/show_bug.cgi?id=53362
173
174         Turns out we need to replace the src attribute of script tags with
175         about:blank to avoid loading the main document URL as a script.  Also,
176         move misplaced return statement that was triggering the console message
177         too often.
178
179         * html/parser/HTMLToken.h:
180         (WebCore::HTMLToken::appendToAttributeValue):
181         * html/parser/XSSFilter.cpp:
182         (WebCore::XSSFilter::filterScriptToken):
183         (WebCore::XSSFilter::eraseAttributeIfInjected):
184         * html/parser/XSSFilter.h:
185
186 2011-01-28  Jon Honeycutt  <jhoneycutt@apple.com>
187
188         Downloads in WK2 on Windows should write resume data to bundle
189         https://bugs.webkit.org/show_bug.cgi?id=53282
190         <rdar://problem/8753077>
191
192         Reviewed by Alice Liu.
193
194         * WebCore.vcproj/WebCore.vcproj:
195         Added new files to project.
196
197         * platform/network/cf/DownloadBundle.h: Added.
198         * platform/network/win/DownloadBundleWin.cpp: Added.
199         (WebCore::DownloadBundle::magicNumber):
200         Moved from WebKit's WebDownload so that WebKit and WebKit2 can share
201         it.
202         (WebCore::DownloadBundle::fileExtension):
203         Ditto.
204         (WebCore::DownloadBundle::appendResumeData):
205         Ditto - but modified to return bool rather than HRESULT and to clean up
206         whitespace.
207         (WebCore::DownloadBundle::extractResumeData):
208         Ditto - modified to clean up whitespace.
209
210 2011-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
211
212         Unreviewed, rolling out r77050.
213         http://trac.webkit.org/changeset/77050
214         https://bugs.webkit.org/show_bug.cgi?id=53371
215
216         Caused a crash in Chromium's test_shell_tests (Requested by
217         rniwa on #webkit).
218
219         * html/parser/HTMLTreeBuilder.cpp:
220         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
221         (WebCore::HTMLTreeBuilder::FragmentParsingContext::document):
222         (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished):
223         * html/parser/HTMLTreeBuilder.h:
224
225 2011-01-28  Eric Seidel  <eric@webkit.org>
226
227         Reviewed by Darin Adler.
228
229         HTML5 TreeBuilder regressed a Peacekeeper DOM test by 40%
230         https://bugs.webkit.org/show_bug.cgi?id=48719
231
232         It's unclear exactly what the Peacekeeper benchmark is testing,
233         because I haven't found a way to run it myself.
234
235         However, I constructed a benchmark which shows at least one possible slow point.
236         The HTML5 spec talks about creating a new document for every time we use
237         the fragment parsing algorithm.  Document() it turns out, it a huge bloated
238         mess, and the constructor and destructor do a huge amount of work.
239         To avoid constructing (or destructing) documents for each innerHTML call,
240         this patch adds a shared dummy document used by all innerHTML calls.
241
242         This patch brings us from 7x slower than Safari 5 on tiny-innerHTML
243         to only 1.5x slower than Safari 5.  I'm sure there is more work to do here.
244
245         Saving a shared Document like this is error prone.  Currently
246         DummyDocumentFactory::releaseDocument() calls removeAllChildren()
247         in an attempt to clear the Document's state. However it's possible
248         that that call is not sufficient and we'll have future bugs here.
249
250         * html/parser/HTMLTreeBuilder.cpp:
251         (WebCore::DummyDocumentFactory::createDummyDocument):
252         (WebCore::DummyDocumentFactory::releaseDocument):
253         (WebCore::HTMLTreeBuilder::FragmentParsingContext::FragmentParsingContext):
254         (WebCore::HTMLTreeBuilder::FragmentParsingContext::document):
255         (WebCore::HTMLTreeBuilder::FragmentParsingContext::finished):
256         * html/parser/HTMLTreeBuilder.h:
257
258 2011-01-28  Johnny Ding  <jnd@chromium.org>
259
260         Reviewed by Adam Barth.
261
262         Gesture API: Don't use current gesture status to set "forceUserGesture" parameter when calling ScriptController::executeScript.
263         The "forceUserGesture" parameter should be only set when you are definitely sure that the running script is from a hyper-link.
264         https://bugs.webkit.org/show_bug.cgi?id=53244
265
266         Test: fast/events/popup-blocked-from-iframe-src.html
267
268         * bindings/ScriptControllerBase.cpp:
269         (WebCore::ScriptController::executeIfJavaScriptURL):
270
271 2011-01-28  Simon Fraser  <simon.fraser@apple.com>
272
273         Reviewed by Gavin Barraclough.
274
275         Add various clampToInt() methods to MathExtras.h
276         https://bugs.webkit.org/show_bug.cgi?id=52910
277
278         Use clampToInteger() from MathExtras.h
279
280         * css/CSSParser.cpp:
281         (WebCore::CSSParser::parseCounter):
282
283 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
284
285         Unreviewed, rolling out r77006 and r77020.
286         http://trac.webkit.org/changeset/77006
287         http://trac.webkit.org/changeset/77020
288         https://bugs.webkit.org/show_bug.cgi?id=53360
289
290         "Broke Windows tests" (Requested by rniwa on #webkit).
291
292         * ForwardingHeaders/runtime/WriteBarrier.h: Removed.
293         * WebCore.exp.in:
294         * bindings/js/DOMWrapperWorld.h:
295         * bindings/js/JSAudioConstructor.cpp:
296         (WebCore::JSAudioConstructor::JSAudioConstructor):
297         * bindings/js/JSDOMBinding.cpp:
298         (WebCore::markDOMNodesForDocument):
299         (WebCore::markDOMObjectWrapper):
300         (WebCore::markDOMNodeWrapper):
301         * bindings/js/JSDOMGlobalObject.cpp:
302         (WebCore::JSDOMGlobalObject::markChildren):
303         (WebCore::JSDOMGlobalObject::setInjectedScript):
304         (WebCore::JSDOMGlobalObject::injectedScript):
305         * bindings/js/JSDOMGlobalObject.h:
306         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
307         (WebCore::getDOMConstructor):
308         * bindings/js/JSDOMWindowCustom.cpp:
309         (WebCore::JSDOMWindow::setLocation):
310         (WebCore::DialogHandler::dialogCreated):
311         * bindings/js/JSDOMWindowShell.cpp:
312         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
313         (WebCore::JSDOMWindowShell::setWindow):
314         (WebCore::JSDOMWindowShell::markChildren):
315         (WebCore::JSDOMWindowShell::unwrappedObject):
316         * bindings/js/JSDOMWindowShell.h:
317         (WebCore::JSDOMWindowShell::window):
318         (WebCore::JSDOMWindowShell::setWindow):
319         * bindings/js/JSDeviceMotionEventCustom.cpp:
320         (WebCore::createAccelerationObject):
321         (WebCore::createRotationRateObject):
322         * bindings/js/JSEventListener.cpp:
323         (WebCore::JSEventListener::JSEventListener):
324         (WebCore::JSEventListener::markJSFunction):
325         * bindings/js/JSEventListener.h:
326         (WebCore::JSEventListener::jsFunction):
327         * bindings/js/JSHTMLDocumentCustom.cpp:
328         (WebCore::JSHTMLDocument::setAll):
329         * bindings/js/JSImageConstructor.cpp:
330         (WebCore::JSImageConstructor::JSImageConstructor):
331         * bindings/js/JSImageDataCustom.cpp:
332         (WebCore::toJS):
333         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
334         (WebCore::JSJavaScriptCallFrame::scopeChain):
335         (WebCore::JSJavaScriptCallFrame::scopeType):
336         * bindings/js/JSNodeFilterCondition.cpp:
337         (WebCore::JSNodeFilterCondition::markAggregate):
338         (WebCore::JSNodeFilterCondition::acceptNode):
339         * bindings/js/JSNodeFilterCondition.h:
340         * bindings/js/JSNodeFilterCustom.cpp:
341         * bindings/js/JSOptionConstructor.cpp:
342         (WebCore::JSOptionConstructor::JSOptionConstructor):
343         * bindings/js/JSSQLResultSetRowListCustom.cpp:
344         (WebCore::JSSQLResultSetRowList::item):
345         * bindings/js/ScriptCachedFrameData.cpp:
346         (WebCore::ScriptCachedFrameData::restore):
347         * bindings/js/ScriptObject.cpp:
348         (WebCore::ScriptGlobalObject::set):
349         * bindings/js/SerializedScriptValue.cpp:
350         (WebCore::CloneDeserializer::putProperty):
351         * bindings/scripts/CodeGeneratorJS.pm:
352         * bridge/qt/qt_runtime.cpp:
353         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
354         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
355         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
356         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
357         * bridge/qt/qt_runtime.h:
358         * bridge/runtime_root.cpp:
359         (JSC::Bindings::RootObject::invalidate):
360         * bridge/runtime_root.h:
361         * dom/Document.h:
362
363 2011-01-28  Adam Barth  <abarth@webkit.org>
364
365         Reviewed by Eric Seidel.
366
367         XSSFilter should log to the console when it blocks something
368         https://bugs.webkit.org/show_bug.cgi?id=53354
369
370         This patch refactors a bunch of methods in XSSFilter to return a bool
371         indicating whether they blocked anything.  Using this bool, we decide
372         whether to log to the console.  We're using the same log message as the
373         XSSAuditor, but it seems likely we can improve this message in the
374         future (especially by piping in the correct line number, which is now
375         accessible via the parser).
376
377         * html/parser/XSSFilter.cpp:
378         (WebCore::HTMLNames::isNameOfInlineEventHandler):
379         (WebCore::XSSFilter::filterToken):
380         (WebCore::XSSFilter::filterTokenInitial):
381         (WebCore::XSSFilter::filterTokenAfterScriptStartTag):
382         (WebCore::XSSFilter::filterScriptToken):
383         (WebCore::XSSFilter::filterObjectToken):
384         (WebCore::XSSFilter::filterEmbedToken):
385         (WebCore::XSSFilter::filterAppletToken):
386         (WebCore::XSSFilter::filterMetaToken):
387         (WebCore::XSSFilter::filterBaseToken):
388         (WebCore::XSSFilter::eraseInlineEventHandlersIfInjected):
389         * html/parser/XSSFilter.h:
390
391 2011-01-28  Adam Barth  <abarth@webkit.org>
392
393         Reviewed by Daniel Bates.
394
395         Wire up settings->xssAuditorEnabled to XSSFilter
396         https://bugs.webkit.org/show_bug.cgi?id=53345
397
398         * html/parser/XSSFilter.cpp:
399         (WebCore::XSSFilter::XSSFilter):
400         (WebCore::XSSFilter::filterToken):
401         * html/parser/XSSFilter.h:
402
403 2011-01-28  Adam Barth  <abarth@webkit.org>
404
405         Reviewed by Daniel Bates.
406
407         Teach XSSFilter about <meta> and <base> tags
408         https://bugs.webkit.org/show_bug.cgi?id=53339
409
410         I'm not 100% sure we need to block <meta http-equiv>, but it seems
411         prudent given how powerful that attribute is.  We definitely need to
412         block injection of <base href> because that can redirect script tags
413         that use relative URLs.
414
415         * html/parser/XSSFilter.cpp:
416         (WebCore::XSSFilter::filterToken):
417         (WebCore::XSSFilter::filterMetaToken):
418         (WebCore::XSSFilter::filterBaseToken):
419         * html/parser/XSSFilter.h:
420
421 2011-01-28  Adam Barth  <abarth@webkit.org>
422
423         Reviewed by Daniel Bates.
424
425         Teach XSSFilter about <applet>
426         https://bugs.webkit.org/show_bug.cgi?id=53338
427
428         HTML5 is pretty light on information about how the <applet> tag works.
429         According to this site:
430
431         http://download.oracle.com/javase/1.4.2/docs/guide/misc/applet.html
432
433         The "code" and "object" attributes are the essential attributes for
434         determining which piece of Java to run.  We might need to expand to the
435         codebase and archive attributes at some point, but hopefully code and
436         object will be sufficient.
437
438         * html/parser/XSSFilter.cpp:
439         (WebCore::XSSFilter::filterToken):
440         (WebCore::XSSFilter::filterAppletToken):
441         * html/parser/XSSFilter.h:
442
443 2011-01-28  Adam Barth  <abarth@webkit.org>
444
445         Reviewed by Daniel Bates.
446
447         Teach the XSSFilter about object and embed tags
448         https://bugs.webkit.org/show_bug.cgi?id=53336
449
450         For <object> and <embed>, we filter out attribute values that either
451         indicate which piece of media to load or which plugin to load.  In a
452         perfect world, we'd only need to filter out the URLs of the media, but
453         some plug-ins (like Flash) have lots of fun places you can hide the
454         URL (e.g., the "movie" <param>).
455
456         * html/parser/XSSFilter.cpp:
457         (WebCore::XSSFilter::filterToken):
458         (WebCore::XSSFilter::filterScriptToken):
459         (WebCore::XSSFilter::filterObjectToken):
460         (WebCore::XSSFilter::filterEmbedToken):
461         (WebCore::XSSFilter::eraseAttributeIfInjected):
462         * html/parser/XSSFilter.h:
463
464 2011-01-28  Oliver Hunt  <oliver@apple.com>
465
466         Fix Qt build.
467
468         * bridge/qt/qt_runtime.cpp:
469         (JSC::Bindings::QtRuntimeMetaMethod::QtRuntimeMetaMethod):
470         (JSC::Bindings::QtRuntimeMetaMethod::markChildren):
471         (JSC::Bindings::QtRuntimeMetaMethod::connectGetter):
472         (JSC::Bindings::QtRuntimeMetaMethod::disconnectGetter):
473         * bridge/qt/qt_runtime.h:
474
475 2011-01-28  Antti Koivisto  <antti@apple.com>
476
477         Reviewed by Simon Fraser.
478
479         CSS styles are shared based on uninitialized property values
480         https://bugs.webkit.org/show_bug.cgi?id=53285
481         
482         Null test.
483
484         * dom/NamedNodeMap.cpp:
485         (WebCore::NamedNodeMap::mappedMapsEquivalent):
486
487 2011-01-27  Oliver Hunt  <oliver@apple.com>
488
489         Reviewed by Geoffrey Garen.
490
491         Convert markstack to a slot visitor API
492         https://bugs.webkit.org/show_bug.cgi?id=53219
493
494         Update WebCore to the new marking apis, correct bindings
495         codegen. 
496
497         * ForwardingHeaders/runtime/WriteBarrier.h: Added.
498         * WebCore.exp.in:
499         * bindings/js/DOMWrapperWorld.h:
500         (WebCore::DOMWrapperWorld::globalData):
501         * bindings/js/JSAudioConstructor.cpp:
502         (WebCore::JSAudioConstructor::JSAudioConstructor):
503         * bindings/js/JSDOMBinding.cpp:
504         (WebCore::markDOMNodesForDocument):
505         (WebCore::markDOMObjectWrapper):
506         (WebCore::markDOMNodeWrapper):
507         * bindings/js/JSDOMGlobalObject.cpp:
508         (WebCore::JSDOMGlobalObject::markChildren):
509         (WebCore::JSDOMGlobalObject::setInjectedScript):
510         (WebCore::JSDOMGlobalObject::injectedScript):
511         * bindings/js/JSDOMGlobalObject.h:
512         (WebCore::JSDOMGlobalObject::JSDOMGlobalObjectData::JSDOMGlobalObjectData):
513         (WebCore::getDOMConstructor):
514         * bindings/js/JSDOMWindowCustom.cpp:
515         (WebCore::JSDOMWindow::setLocation):
516         (WebCore::DialogHandler::dialogCreated):
517         * bindings/js/JSDOMWindowShell.cpp:
518         (WebCore::JSDOMWindowShell::JSDOMWindowShell):
519         (WebCore::JSDOMWindowShell::setWindow):
520         (WebCore::JSDOMWindowShell::markChildren):
521         (WebCore::JSDOMWindowShell::unwrappedObject):
522         * bindings/js/JSDOMWindowShell.h:
523         (WebCore::JSDOMWindowShell::window):
524         (WebCore::JSDOMWindowShell::setWindow):
525         * bindings/js/JSEventListener.cpp:
526         (WebCore::JSEventListener::JSEventListener):
527         (WebCore::JSEventListener::markJSFunction):
528         * bindings/js/JSEventListener.h:
529         (WebCore::JSEventListener::jsFunction):
530         * bindings/js/JSHTMLDocumentCustom.cpp:
531         (WebCore::JSHTMLDocument::setAll):
532         * bindings/js/JSImageConstructor.cpp:
533         (WebCore::JSImageConstructor::JSImageConstructor):
534         * bindings/js/JSImageDataCustom.cpp:
535         (WebCore::toJS):
536         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
537         (WebCore::JSJavaScriptCallFrame::scopeChain):
538         (WebCore::JSJavaScriptCallFrame::scopeType):
539         * bindings/js/JSNodeFilterCondition.cpp:
540         (WebCore::JSNodeFilterCondition::markAggregate):
541         (WebCore::JSNodeFilterCondition::acceptNode):
542         * bindings/js/JSNodeFilterCondition.h:
543         * bindings/js/JSNodeFilterCustom.cpp:
544         * bindings/js/JSOptionConstructor.cpp:
545         (WebCore::JSOptionConstructor::JSOptionConstructor):
546         * bindings/js/JSSQLResultSetRowListCustom.cpp:
547         (WebCore::JSSQLResultSetRowList::item):
548         * bindings/js/ScriptCachedFrameData.cpp:
549         (WebCore::ScriptCachedFrameData::restore):
550         * bindings/js/ScriptObject.cpp:
551         (WebCore::ScriptGlobalObject::set):
552         * bindings/js/SerializedScriptValue.cpp:
553         (WebCore::CloneDeserializer::putProperty):
554         * bindings/scripts/CodeGeneratorJS.pm:
555         * dom/Document.h:
556
557 2011-01-28  Sam Weinig  <sam@webkit.org>
558
559         Reviewed by Anders Carlsson.
560
561         Keyboard scrolling doesn’t work in WebKit2
562         <rdar://problem/8909672>
563
564         * platform/mac/ScrollAnimatorMac.mm:
565         (-[ScrollAnimationHelperDelegate convertSizeToBacking:]):
566         (-[ScrollAnimationHelperDelegate convertSizeFromBacking:]):
567         Add additional necessary delegate methods.
568
569 2011-01-29  Darin Adler  <darin@apple.com>
570
571         Reviewed by Dan Bernstein.
572
573         Re-land this patch with the missing null check that caused crashes in layout tests.
574
575         Changing cursor style has no effect until the mouse moves
576         https://bugs.webkit.org/show_bug.cgi?id=14344
577         rdar://problem/7563712
578
579         No tests added because we don't have infrastructure for testing actual cursor
580         changes (as opposed to cursor style computation) at this time. We might add it later.
581
582         * page/EventHandler.cpp:
583         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
584         * page/EventHandler.h: Ditto.
585
586         * rendering/RenderObject.cpp:
587         (WebCore::areNonIdenticalCursorListsEqual): Added.
588         (WebCore::areCursorsEqual): Added.
589         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
590         cursor styles changed.
591
592 2011-01-28  Justin Schuh  <jschuh@chromium.org>
593
594         Reviewed by Eric Seidel.
595
596         We should hold RefPtrs to SVG font faces
597         https://bugs.webkit.org/show_bug.cgi?id=53270
598
599         Test: svg/custom/use-multiple-on-nested-disallowed-font.html
600
601         * css/CSSFontFaceSource.cpp:
602         (WebCore::CSSFontFaceSource::getFontData):
603         * css/CSSFontFaceSource.h:
604         * svg/SVGFontFaceElement.cpp:
605         (WebCore::SVGFontFaceElement::associatedFontElement):
606         * svg/SVGFontFaceElement.h:
607
608 2011-01-28  Zhenyao Mo  <zmo@google.com>
609
610         Reviewed by Kenneth Russell.
611
612         uniformN*v should generate INVALID_VALUE of the array size is not a multiple of N
613         https://bugs.webkit.org/show_bug.cgi?id=53306
614
615         * html/canvas/WebGLRenderingContext.cpp:
616         (WebCore::WebGLRenderingContext::validateUniformMatrixParameters):
617
618 2011-01-28  Tom Sepez  <tsepez@chromium.org>
619
620         Reviewed by Eric Seidel.
621
622         NULL pointer crash in TextIterator::handleTextBox()
623         https://bugs.webkit.org/show_bug.cgi?id=53267
624
625         Test: fast/css/rtl-nth-child-first-letter-crash.html
626
627         * editing/TextIterator.cpp:
628         (WebCore::TextIterator::handleTextBox):
629
630 2011-01-28  Adrienne Walker  <enne@google.com>
631
632         Reviewed by Kenneth Russell.
633
634         [chromium] Remove a spurious diagnostic CRASH check.
635         https://bugs.webkit.org/show_bug.cgi?id=52379
636
637         * platform/graphics/chromium/LayerTilerChromium.cpp:
638         (WebCore::LayerTilerChromium::invalidateRect):
639
640 2011-01-28  Dan Bernstein  <mitz@apple.com>
641
642         Reviewed by Sam Weinig.
643
644         <rdar://problem/4761512> <select> can't display right-to-left (rtl) languages
645         https://bugs.webkit.org/show_bug.cgi?id=19785
646
647         Changed <select> pop-up menus on Mac OS X Snow Leopard and later to have their items aligned in the
648         direction corresponding to the writing direction of the <select> element, with the checkmarks
649         on the "start" side, and use the <option>'s writing direction rather than "natural". Made the
650         pop-up button match the menu by adding a Chrome boolean function, selectItemAlignmentFollowsMenuWritingDirection(),
651         which returns true for this pop-up behavior.
652
653         * loader/EmptyClients.h:
654         (WebCore::EmptyChromeClient::selectItemAlignmentFollowsMenuWritingDirection): Added.
655         * manual-tests/pop-up-alignment-and-direction.html: Added.
656         * page/Chrome.cpp:
657         (WebCore::Chrome::selectItemAlignmentFollowsMenuWritingDirection): Added. Calls through to the
658         client.
659         * page/Chrome.h:
660         * page/ChromeClient.h:
661         * platform/PopupMenuStyle.h:
662         (WebCore::PopupMenuStyle::PopupMenuStyle): Added hasTextDirectionOverride parameter and member
663         variable initialization.
664         (WebCore::PopupMenuStyle::hasTextDirectionOverride): Added this accessor.
665         * platform/mac/PopupMenuMac.mm:
666         (WebCore::PopupMenuMac::populate): Set the pop-up's layout direction and items' text alignment
667         to match the menu's writing direction. Set items' writing direction and direction override
668         according to their styles.
669         * rendering/RenderMenuList.cpp:
670         (WebCore::RenderMenuList::RenderMenuList): Removed unncesaary initialization of a smart pointer.
671         (WebCore::RenderMenuList::adjustInnerStyle): If the alignment of items in the menu follows the
672         menu's writing direction, use that alignment for the button as well. Also in this mode, use the
673         item's writing direction and override setting.
674         (WebCore::RenderMenuList::setTextFromOption): Store the option element's style.
675         (WebCore::RenderMenuList::itemStyle): Pass the text direction override value.
676         (WebCore::RenderMenuList::menuStyle): Ditto. Also use the button's direction, not the inner text's.
677         * rendering/RenderMenuList.h:
678         * rendering/RenderTextControlSingleLine.cpp:
679         (WebCore::RenderTextControlSingleLine::menuStyle): Pass the text direction override value.
680
681 2011-01-28  Adam Barth  <abarth@webkit.org>
682
683         Reviewed by Daniel Bates.
684
685         Teach XSSFilter how to filter <script> elements
686         https://bugs.webkit.org/show_bug.cgi?id=53279
687
688         This patch adds the ability for the XSSFilter to block injected
689         <script> elements.  Handling script elements is slightly subtle because
690         these elements act very differently depending on whether they have a
691         src attribute.
692         
693         In the "src case", which check whether the src attribute was present in
694         the request.  In the "non-src case", we check whether the start tag and
695         the body of the script element was included in the request.  Checking
696         for the whole start tag means we miss out on some attribute splitting
697         attacks inside of script tags, but that doesn't seem like that big a
698         deal.
699
700         This patch also introduces some amount of state into the XSSFilter
701         because inline script elements span multiple tokens.  There's a lot of
702         tuning and optimization left in these cases, some of which I've noted
703         with FIXMEs.
704
705         To test this patch, I played around with some of the existing
706         XSSAuditor tests.  Hopefully I'll be able to run the test suite more
707         systematically in the future.
708
709         * html/parser/HTMLToken.h:
710         (WebCore::HTMLToken::eraseCharacters):
711         (WebCore::HTMLToken::eraseValueOfAttribute):
712         * html/parser/XSSFilter.cpp:
713         (WebCore::HTMLNames::hasName):
714         (WebCore::HTMLNames::findAttributeWithName):
715         (WebCore::HTMLNames::isNameOfScriptCarryingAttribute):
716         (WebCore::XSSFilter::XSSFilter):
717         (WebCore::XSSFilter::filterToken):
718         (WebCore::XSSFilter::filterTokenAfterScriptStartTag):
719         (WebCore::XSSFilter::filterScriptToken):
720         (WebCore::XSSFilter::snippetForRange):
721         (WebCore::XSSFilter::snippetForAttribute):
722         * html/parser/XSSFilter.h:
723
724 2011-01-28  Adam Barth  <abarth@webkit.org>
725
726         Reviewed by Daniel Bates.
727
728         Sketch out new XSS filter design (disabled by default)
729         https://bugs.webkit.org/show_bug.cgi?id=53205
730
731         This patch adds a basic sketch of the new XSS filter design.  Rather
732         than watching scripts as they execute, in this design, we watch tokens
733         emitted by the tokenizer.  We then map the tokens directly back into
734         input characters, which lets us skip all the complicated logic related
735         to HTML entities and double-decoding of JavaScript URLs.
736
737         This patch contains only the bare essentially machinery.  I'll add more
738         in future patches and eventually remove the previous code once this
739         code is up and running correctly.
740
741         * Android.mk:
742         * CMakeLists.txt:
743         * GNUmakefile.am:
744         * WebCore.gypi:
745         * WebCore.pro:
746         * WebCore.vcproj/WebCore.vcproj:
747         * WebCore.xcodeproj/project.pbxproj:
748         * html/parser/HTMLDocumentParser.cpp:
749         (WebCore::HTMLDocumentParser::HTMLDocumentParser):
750         (WebCore::HTMLDocumentParser::pumpTokenizer):
751         (WebCore::HTMLDocumentParser::sourceForToken):
752         * html/parser/HTMLDocumentParser.h:
753         * html/parser/XSSFilter.cpp: Added.
754         * html/parser/XSSFilter.h: Added.
755
756 2011-01-28  Michael Saboff  <msaboff@apple.com>
757
758         Reviewed by Geoffrey Garen.
759
760         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
761         https://bugs.webkit.org/show_bug.cgi?id=53271
762
763         Reapplying this patch with the change that the second ASSERT in 
764         RootObject::removeRuntimeObject was changed to use
765         .uncheckedGet() instead of the failing .get().  The object in question
766         could be in the process of being GC'ed.  The get() call will not return
767         such an object while the uncheckedGet() call will return the (unsafe) 
768         object.  This is the behavior we want.
769
770         Precautionary change.
771         Changed RootObject to use WeakGCMap instead of HashSet.
772         Found will looking for another issue, but can't produce a test case
773         that is problematic.  THerefore there aren't any new tests.
774
775         * bridge/runtime_root.cpp:
776         (JSC::Bindings::RootObject::invalidate):
777         (JSC::Bindings::RootObject::addRuntimeObject):
778         (JSC::Bindings::RootObject::removeRuntimeObject):
779         * bridge/runtime_root.h:
780
781 2011-01-28  Adam Roben  <aroben@apple.com>
782
783         Notify CACFLayerTreeHost when the context is flushed
784
785         LegacyCACFLayerTreeHost was keeping this a secret, which meant that WebCore's animation
786         timers were never starting.
787
788         Fixes <http://webkit.org/b/53302> [Windows 7 Release Tests] changesets 76853, 76856, and
789         76858 broke ~36 animations, compositing, and transitions tests
790
791         Reviewed by Sam Weinig.
792
793         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
794         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): Call up to the base class after we
795         start our render timer.
796
797 2011-01-28  Antti Koivisto  <antti@apple.com>
798
799         Reviewed by Dan Bernstein.
800
801         Remove dead code that tried to map from CSS values to parser values
802         https://bugs.webkit.org/show_bug.cgi?id=53318
803
804         * css/CSSFunctionValue.cpp:
805         * css/CSSFunctionValue.h:
806         * css/CSSPrimitiveValue.cpp:
807         * css/CSSPrimitiveValue.h:
808         * css/CSSValue.h:
809         * css/CSSValueList.cpp:
810         * css/CSSValueList.h:
811
812 2011-01-28  Enrica Casucci  <enrica@apple.com>
813
814         Reviewed by Adam Roben.
815
816         Some drag and drop tests fail since r76824
817         https://bugs.webkit.org/show_bug.cgi?id=53304
818
819         There were '||' instead of '&&' in the checks for valid
820         clipboard content.
821         
822         * platform/win/ClipboardWin.cpp:
823         (WebCore::ClipboardWin::getData):
824         (WebCore::ClipboardWin::types):
825         (WebCore::ClipboardWin::files):
826
827 2011-01-28  Martin Robinson  <mrobinson@igalia.com>
828
829         [GTK] AudioProcessingEvent.h and JSJavaScriptAudioNode.h: No such file or directory
830         https://bugs.webkit.org/show_bug.cgi?id=52889
831
832         Build fix for WebAudio. Include WebAudio source files on the source
833         list when WebAudio is enabled.
834
835         * GNUmakefile.am: Include missing source files.
836
837 2011-01-28  Sam Weinig  <sam@webkit.org>
838
839         Reviewed by Maciej Stachowiak.
840
841         Add basic rubber banding support
842         <rdar://problem/8219429>
843         https://bugs.webkit.org/show_bug.cgi?id=53277
844
845         * page/EventHandler.cpp:
846         (WebCore::EventHandler::handleGestureEvent):
847         Pass gesture events to the FrameView.
848
849         * platform/ScrollAnimator.cpp:
850         (WebCore::ScrollAnimator::handleGestureEvent):
851         * platform/ScrollAnimator.h:
852         Add stubbed out implementation.
853
854         * platform/ScrollView.cpp:
855         (WebCore::ScrollView::ScrollView):
856         (WebCore::ScrollView::overhangAmount):
857         (WebCore::ScrollView::wheelEvent):
858         * platform/ScrollView.h:
859         * platform/ScrollableArea.cpp:
860         (WebCore::ScrollableArea::ScrollableArea):
861         (WebCore::ScrollableArea::handleGestureEvent):
862         * platform/ScrollableArea.h:
863         (WebCore::ScrollableArea::constrainsScrollingToContentEdge):
864         (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge):
865         Move constrains scrolling bit to ScrollableArea from ScrollView.
866
867         (WebCore::ScrollableArea::contentsSize):
868         (WebCore::ScrollableArea::overhangAmount):
869         Add additional virtual functions for information needed by the animator.
870
871         * platform/mac/ScrollAnimatorMac.h:
872         * platform/mac/ScrollAnimatorMac.mm:
873         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
874         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX):
875         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY):
876         (WebCore::elasticDeltaForTimeDelta):
877         (WebCore::elasticDeltaForReboundDelta):
878         (WebCore::reboundDeltaForElasticDelta):
879         (WebCore::scrollWheelMultiplier):
880         (WebCore::ScrollAnimatorMac::handleWheelEvent):
881         (WebCore::ScrollAnimatorMac::handleGestureEvent):
882         (WebCore::ScrollAnimatorMac::pinnedInDirection):
883         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
884         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
885         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
886         (WebCore::ScrollAnimatorMac::beginScrollGesture):
887         (WebCore::ScrollAnimatorMac::endScrollGesture):
888         (WebCore::ScrollAnimatorMac::snapRubberBand):
889         (WebCore::roundTowardZero):
890         (WebCore::roundToDevicePixelTowardZero):
891         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
892         Implement basic rubber banding.
893
894 2011-01-28  Dan Bernstein  <mitz@apple.com>
895
896         Reviewed by Anders Carlsson.
897
898         Changing unicode-bidi doesn’t force layout
899         https://bugs.webkit.org/show_bug.cgi?id=53311
900
901         Test: fast/dynamic/unicode-bidi.html
902
903         * rendering/style/RenderStyle.cpp:
904         (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ.
905
906 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
907
908         Reviewed by Kent Tamura.
909
910         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
911         https://bugs.webkit.org/show_bug.cgi?id=53122
912
913         This is the first step in converting HTMLMediaElement to the new shadow DOM.
914
915         Should not regress any existing tests. No observable change in behavior.
916
917         * css/CSSSelector.cpp:
918         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
919         (WebCore::nameToPseudoTypeMap): Ditto.
920         (WebCore::CSSSelector::extractPseudoType): Ditto.
921         * css/CSSSelector.h: Ditto.
922         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
923         * rendering/MediaControlElements.cpp:
924         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
925             which is now replaced with virtual shadowPseudoId on each corresponding class.
926         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
927         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
928             display type in constructor.
929         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
930             constructor argument.
931         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
932         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
933             to disambiguate from the MediaControlMuteButtonElement.
934         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
935         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
936         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
937             constructor argument.
938         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
939         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
940             constructor argument.
941         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
942         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
943         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
944         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
945         (WebCore::MediaControlSeekBackButtonElement::create): Added.
946         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
947         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
948         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
949         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
950             constructor argument.
951         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
952         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
953             constructor argument.
954         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
955         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
956             constructor argument.
957         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
958         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
959             constructor argument.
960         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
961         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
962             constructor argument.
963         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
964         * rendering/MediaControlElements.h:
965         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
966         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
967         * rendering/RenderMedia.cpp:
968         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
969         (WebCore::RenderMedia::createSeekBackButton): Ditto.
970         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
971         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
972         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
973
974 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
975
976         Reviewed by Eric Carlson.
977
978         Split MediaControls out of RenderMedia.
979         https://bugs.webkit.org/show_bug.cgi?id=53252
980
981         Near-mechanical moving of stuff, no change in behavior, thus no new tests.
982
983         * Android.mk: Added MediaControls to build system.
984         * CMakeLists.txt: Ditto.
985         * GNUmakefile.am: Ditto.
986         * WebCore.gypi: Ditto.
987         * WebCore.pro: Ditto.
988         * WebCore.vcproj/WebCore.vcproj: Ditto.
989         * WebCore.xcodeproj/project.pbxproj: Ditto.
990         * html/HTMLMediaElement.cpp:
991         (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls.
992         * html/shadow/MediaControls.cpp: Copied all controls-related methods from
993             Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. 
994         * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h.
995         * rendering/MediaControlElements.cpp:
996         (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls.
997         * rendering/RenderMedia.cpp:
998         (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls.
999         (WebCore::RenderMedia::destroy): Changed to use MediaControls.
1000         (WebCore::RenderMedia::styleDidChange): Ditto.
1001         (WebCore::RenderMedia::layout): Ditto.
1002         (WebCore::RenderMedia::updateFromElement): Ditto.
1003         * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which
1004             is only used by sub-class RenderVideo.
1005         (WebCore::RenderMedia::controls): Added.
1006         * rendering/RenderVideo.cpp:
1007         (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement().
1008         (WebCore::RenderVideo::calculateIntrinsicSize): Ditto.
1009         (WebCore::RenderVideo::paintReplaced): Ditto.
1010         (WebCore::RenderVideo::updatePlayer): Ditto.
1011         (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto.
1012         (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto.
1013
1014 2011-01-28  Pavel Feldman  <pfeldman@chromium.org>
1015
1016         Reviewed by Yury Semikhatsky.
1017
1018         Web Inspector: allow remote debugging with front-end
1019         served from the cloud.
1020         https://bugs.webkit.org/show_bug.cgi?id=53303
1021
1022         * inspector/front-end/inspector.js:
1023
1024 2011-01-28  Aparna Nandyal  <aparna.nand@wipro.com>
1025
1026         Reviewed by Andreas Kling.
1027
1028         Setting value of m_PressedPos to make scrolling smooth
1029
1030         Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler.
1031         https://bugs.webkit.org/show_bug.cgi?id=51349
1032
1033         The value of m_PressedPos was getting set before moveThumb() call
1034         in all other scenarios except when "Scroll Here" option is used.
1035         Hence scrolling with this option was not as expected even in cases
1036         where scrolling was happening. The thumb would move in unexpected
1037         direction. m_PressedPos is now set to pressed position so delta is
1038         calculated.
1039         Unable to write a test case as the test needs to click on "Scroll
1040         Here" option of context sensitive menu and QTest is unable to do it.
1041         Besides no new functionality introduced.
1042
1043         * platform/qt/ScrollbarQt.cpp:
1044         (WebCore::Scrollbar::contextMenu):
1045
1046 2011-01-28  Andrey Kosyakov  <caseq@chromium.org>
1047
1048         Reviewed by Pavel Feldman.
1049
1050         Web Inspector: [Extensions API] add JSON schema for extensions API
1051         https://bugs.webkit.org/show_bug.cgi?id=53236
1052
1053         * inspector/front-end/ExtensionAPISchema.json: Added.
1054
1055 2011-01-27  Zhenyao Mo  <zmo@google.com>
1056
1057         Reviewed by Kenneth Russell.
1058
1059         Remove _LENGTH enumerants
1060         https://bugs.webkit.org/show_bug.cgi?id=53259
1061
1062         * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH.
1063         (WebCore::WebGLRenderingContext::getProgramParameter):
1064         (WebCore::WebGLRenderingContext::getShaderParameter):
1065         * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH.
1066
1067 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
1068
1069         Reviewed by Yury Semikhatsky.
1070
1071         Web Inspector: syntax highlight inline JS and CSS in HTML resources
1072         https://bugs.webkit.org/show_bug.cgi?id=30831
1073
1074         * inspector/front-end/SourceHTMLTokenizer.js:
1075         (WebInspector.SourceHTMLTokenizer):
1076         (WebInspector.SourceHTMLTokenizer.prototype.set line):
1077         (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
1078         * inspector/front-end/SourceHTMLTokenizer.re2js:
1079
1080 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
1081
1082         Reviewed by Yury Semikhatsky.
1083
1084         Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword
1085         https://bugs.webkit.org/show_bug.cgi?id=53295
1086
1087         Select the current word suffix before switching to the next suggestion.
1088
1089         * inspector/front-end/StylesSidebarPane.js:
1090         ():
1091
1092 2011-01-28  Alejandro G. Castro  <alex@igalia.com>
1093
1094         Reviewed by Xan Lopez.
1095
1096         [GTK] Fix dist compilation for the release
1097         https://bugs.webkit.org/show_bug.cgi?id=53290
1098
1099         * GNUmakefile.am: Added inspector files to the extra dist.
1100
1101 2011-01-28  Ilya Sherman  <isherman@chromium.org>
1102
1103         Reviewed by Andreas Kling.
1104
1105         Const-correct HTMLSelectElement and WebSelectElement
1106         https://bugs.webkit.org/show_bug.cgi?id=53293
1107
1108         * html/HTMLSelectElement.cpp:
1109         (WebCore::HTMLSelectElement::value): const.
1110         * html/HTMLSelectElement.h:
1111
1112 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
1113
1114         Unreviewed, rolling out r76893.
1115         http://trac.webkit.org/changeset/76893
1116         https://bugs.webkit.org/show_bug.cgi?id=53287
1117
1118         It made some tests crash on GTK and Qt debug bots (Requested
1119         by Ossy on #webkit).
1120
1121         * bridge/runtime_root.cpp:
1122         (JSC::Bindings::RootObject::invalidate):
1123         (JSC::Bindings::RootObject::addRuntimeObject):
1124         (JSC::Bindings::RootObject::removeRuntimeObject):
1125         * bridge/runtime_root.h:
1126
1127 2011-01-27  Greg Coletta  <greg.coletta@nokia.com>
1128
1129         Reviewed by Laszlo Gombos.
1130
1131         Get rid of prefix header dependency for WebKit2 build system
1132         https://bugs.webkit.org/show_bug.cgi?id=50174
1133
1134         Guard EmptyProtocalDefinitions.h to make sure it's not included twice.
1135
1136         * platform/mac/EmptyProtocolDefinitions.h:
1137
1138 2011-01-27  Abhishek Arya  <inferno@chromium.org>
1139
1140         Reviewed by Dan Bernstein.
1141
1142         Recalc table sections if needed before calculating the first line
1143         box baseline.
1144         https://bugs.webkit.org/show_bug.cgi?id=53265
1145
1146         When we try to calculate the baseline position of a table cell,
1147         we recurse through all the child sibling boxes (when children are
1148         non inline) and add their first linebox baseline values. If one of
1149         the children is a table with pending section recalc, we will access
1150         wrong table section values. We recalc table sections if it is needed.
1151
1152         Test: fast/table/recalc-section-first-body-crash-main.html
1153
1154         * rendering/RenderTable.cpp:
1155         (WebCore::RenderTable::firstLineBoxBaseline):
1156
1157 2011-01-27  Adrienne Walker  <enne@google.com>
1158
1159         Reviewed by Kenneth Russell.
1160
1161         [chromium] Add CRASH calls to further debug tiled compositor memcpy crash.
1162         https://bugs.webkit.org/show_bug.cgi?id=52379
1163
1164         Test: LayoutTests/compositing (to verify these weren't triggered)
1165
1166         * platform/graphics/chromium/LayerTilerChromium.cpp:
1167         (WebCore::LayerTilerChromium::invalidateRect):
1168         (WebCore::LayerTilerChromium::update):
1169
1170 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
1171
1172         Reviewed by Pavel Feldman.
1173
1174         Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact
1175         https://bugs.webkit.org/show_bug.cgi?id=53242
1176
1177         * inspector/front-end/StylesSidebarPane.js:
1178         (WebInspector.StylePropertyTreeElement.prototype):
1179
1180 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1181
1182         Unreviewed, rolling out r76891.
1183         http://trac.webkit.org/changeset/76891
1184         https://bugs.webkit.org/show_bug.cgi?id=53280
1185
1186         Makes every layout test crash (Requested by othermaciej on
1187         #webkit).
1188
1189         * page/EventHandler.cpp:
1190         * page/EventHandler.h:
1191         * rendering/RenderObject.cpp:
1192         (WebCore::RenderObject::styleDidChange):
1193
1194 2011-01-27  Ryosuke Niwa  <rniwa@webkit.org>
1195
1196         Unreviewed, rolling out r76839.
1197         http://trac.webkit.org/changeset/76839
1198         https://bugs.webkit.org/show_bug.cgi?id=49744
1199
1200         broke pixel tests
1201
1202         * rendering/RenderBox.cpp:
1203         (WebCore::RenderBox::localCaretRect):
1204
1205 2011-01-27  Emil A Eklund  <eae@chromium.org>
1206
1207         Reviewed by Darin Adler.
1208
1209         contentEditable formatBlock crashes on divs with contenteditable="false"
1210         https://bugs.webkit.org/show_bug.cgi?id=53263
1211
1212         Check if editableRootForPosition returns null for position.
1213
1214         Test: editing/execCommand/format-block-contenteditable-false.html
1215
1216         * editing/FormatBlockCommand.cpp:
1217         (WebCore::FormatBlockCommand::formatRange):
1218
1219 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
1220
1221         Reviewed by Darin Adler.
1222
1223         Remove RenderMedia members that aren't used.
1224         https://bugs.webkit.org/show_bug.cgi?id=53245
1225
1226         Refactoring, no change in behavior, so no new tests.
1227
1228         * rendering/RenderMedia.h: Removed unused member variables.
1229
1230 2011-01-27  Michael Saboff  <msaboff@apple.com>
1231
1232         Reviewed by Darin Adler.
1233
1234         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
1235         https://bugs.webkit.org/show_bug.cgi?id=53271
1236
1237         Precautionary change.
1238         Changed RootObject to use WeakGCMap instead of HashSet.
1239         Found will looking for another issue, but can't produce a test case
1240         that is problematic.  THerefore there aren't any new tests.
1241
1242         * bridge/runtime_root.cpp:
1243         (JSC::Bindings::RootObject::invalidate):
1244         (JSC::Bindings::RootObject::addRuntimeObject):
1245         (JSC::Bindings::RootObject::removeRuntimeObject):
1246         * bridge/runtime_root.h:
1247
1248 2011-01-27  Kenneth Russell  <kbr@google.com>
1249
1250         Reviewed by James Robinson.
1251
1252         Rename Typed Array slice() to subset()
1253         https://bugs.webkit.org/show_bug.cgi?id=53273
1254
1255         * bindings/js/JSArrayBufferViewHelper.h:
1256         (WebCore::constructArrayBufferView):
1257         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
1258         (WebCore::constructWebGLArray):
1259         * html/canvas/Float32Array.cpp:
1260         (WebCore::Float32Array::subset):
1261         * html/canvas/Float32Array.h:
1262         * html/canvas/Float32Array.idl:
1263         * html/canvas/Int16Array.cpp:
1264         (WebCore::Int16Array::subset):
1265         * html/canvas/Int16Array.h:
1266         * html/canvas/Int16Array.idl:
1267         * html/canvas/Int32Array.cpp:
1268         (WebCore::Int32Array::subset):
1269         * html/canvas/Int32Array.h:
1270         * html/canvas/Int32Array.idl:
1271         * html/canvas/Int8Array.cpp:
1272         (WebCore::Int8Array::subset):
1273         * html/canvas/Int8Array.h:
1274         * html/canvas/Int8Array.idl:
1275         * html/canvas/TypedArrayBase.h:
1276         (WebCore::TypedArrayBase::subsetImpl):
1277         * html/canvas/Uint16Array.cpp:
1278         (WebCore::Uint16Array::subset):
1279         * html/canvas/Uint16Array.h:
1280         * html/canvas/Uint16Array.idl:
1281         * html/canvas/Uint32Array.cpp:
1282         (WebCore::Uint32Array::subset):
1283         * html/canvas/Uint32Array.h:
1284         * html/canvas/Uint32Array.idl:
1285         * html/canvas/Uint8Array.cpp:
1286         (WebCore::Uint8Array::subset):
1287         * html/canvas/Uint8Array.h:
1288         * html/canvas/Uint8Array.idl:
1289
1290 2011-01-27  Darin Adler  <darin@apple.com>
1291
1292         Reviewed by Dan Bernstein.
1293
1294         Changing cursor style has no effect until the mouse moves
1295         https://bugs.webkit.org/show_bug.cgi?id=14344
1296         rdar://problem/7563712
1297
1298         No tests added because we don't have infrastructure for testing actual cursor
1299         changes (as opposed to cursor style computation) at this time. We might add it later.
1300
1301         * page/EventHandler.cpp:
1302         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
1303         * page/EventHandler.h: Ditto.
1304
1305         * rendering/RenderObject.cpp:
1306         (WebCore::areNonIdenticalCursorListsEqual): Added.
1307         (WebCore::areCursorsEqual): Added.
1308         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
1309         cursor styles changed.
1310
1311 2011-01-27  Leo Yang  <leo.yang@torchmobile.com.cn>
1312
1313         Reviewed by Dirk Schulze.
1314
1315         SVG Use Cycle is not detected
1316         https://bugs.webkit.org/show_bug.cgi?id=52544
1317
1318         We should check if SVGUseElement::buildInstanceTree finds problem
1319         for every child node. If it finds problem for any children we must
1320         return immediately because otherwise the foundProblem variable may
1321         be rewritten to false.
1322
1323         Test: svg/custom/recursive-use2.svg
1324
1325         * svg/SVGUseElement.cpp:
1326         (WebCore::SVGUseElement::buildInstanceTree):
1327
1328 2011-01-27  Zhenyao Mo  <zmo@google.com>
1329
1330         Reviewed by Kenneth Russell.
1331
1332         texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call
1333         https://bugs.webkit.org/show_bug.cgi?id=53054
1334
1335         Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html
1336
1337         * html/canvas/WebGLRenderingContext.cpp:
1338         (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match.
1339
1340 2011-01-27  Yi Shen  <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
1341
1342         Reviewed by Andreas Kling.
1343
1344         [Qt] Add fullscreen media control button for html video
1345         https://bugs.webkit.org/show_bug.cgi?id=51543
1346
1347         Implement media control fullscreen button for QtWebKit html5 video.
1348
1349         * css/mediaControlsQt.css:
1350         (video::-webkit-media-controls-fullscreen-button):
1351         * platform/qt/RenderThemeQt.cpp:
1352         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
1353
1354 2011-01-27  Nate Chapin  <japhet@chromium.org>
1355
1356         Reviewed by Adam Barth.
1357
1358         Remove FrameLoader::url() and update callers to use
1359         Document::url().
1360         https://bugs.webkit.org/show_bug.cgi?id=41165
1361
1362         Refactor, no new tests.
1363
1364         * WebCore.exp.in:
1365         * dom/Document.cpp:
1366         (WebCore::Document::processHttpEquiv):
1367         (WebCore::Document::removePendingSheet):
1368         * history/CachedFrame.cpp:
1369         (WebCore::CachedFrameBase::CachedFrameBase):
1370         * history/PageCache.cpp:
1371         (WebCore::logCanCacheFrameDecision):
1372         (WebCore::PageCache::canCachePageContainingThisFrame):
1373         * html/HTMLFrameElementBase.cpp:
1374         (WebCore::HTMLFrameElementBase::isURLAllowed):
1375         * html/HTMLPlugInImageElement.cpp:
1376         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
1377         * inspector/InspectorAgent.cpp:
1378         (WebCore::InspectorAgent::inspectedURL):
1379         * inspector/InspectorResourceAgent.cpp:
1380         (WebCore::buildObjectForFrame):
1381         * loader/DocumentWriter.cpp:
1382         (WebCore::DocumentWriter::replaceDocument):
1383         (WebCore::DocumentWriter::deprecatedFrameEncoding):
1384         * loader/FrameLoader.cpp:
1385         * loader/FrameLoader.h:
1386         * loader/HistoryController.cpp:
1387         (WebCore::HistoryController::updateForStandardLoad):
1388         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
1389         (WebCore::HistoryController::updateForSameDocumentNavigation):
1390         * loader/NavigationScheduler.cpp:
1391         (WebCore::ScheduledHistoryNavigation::fire):
1392         (WebCore::NavigationScheduler::scheduleLocationChange):
1393         (WebCore::NavigationScheduler::scheduleRefresh):
1394         * page/FrameView.cpp:
1395         (WebCore::FrameView::updateControlTints):
1396         * page/Location.cpp:
1397         (WebCore::Location::url):
1398         (WebCore::Location::setProtocol):
1399         (WebCore::Location::setHost):
1400         (WebCore::Location::setHostname):
1401         (WebCore::Location::setPort):
1402         (WebCore::Location::setPathname):
1403         (WebCore::Location::setSearch):
1404         (WebCore::Location::setHash):
1405         (WebCore::Location::reload):
1406         * page/Page.cpp:
1407         (WebCore::Page::goToItem):
1408
1409 2011-01-27  Stephen White  <senorblanco@chromium.org>
1410
1411         Reviewed by Darin Adler.
1412
1413         Fix performance regression in ImageQualityController::objectDestroyed().
1414         https://bugs.webkit.org/show_bug.cgi?id=52645
1415
1416         In r72282, I inadvertently introduced this regression by using a
1417         linear search through the hash map on object destruction.  This was
1418         because the hash key consisted of both object pointer and layer id,
1419         but on object destruction we only know the object pointer, requiring
1420         a search to find all the layers. 
1421         By replacing the hash map with two nested hash maps, where the outer key
1422         is the object and the inner key is the layer, we can find all the
1423         relevant data for an object in one hash lookup.
1424
1425         * rendering/RenderBoxModelObject.cpp:
1426         Replace the (object,layer)->size HashMap with object->layer and
1427         layer->size HashMaps.
1428         (WebCore::ImageQualityController::isEmpty):
1429         Implement isEmpty() for the outer HashMap.
1430         (WebCore::ImageQualityController::removeLayer):
1431         When a layer is removed, remove it from the inner hash map.
1432         (WebCore::ImageQualityController::set):
1433         Implement set():  if the inner map exists, set the layer->size tuple
1434         directly.  If not, create a new inner map, set the tuple, and insert
1435         it in the outer map.
1436         (WebCore::ImageQualityController::objectDestroyed):
1437         Look up the object in the outer map only.
1438         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1439         Cosmetic changes for the renamed now-outer hash map.
1440         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1441         Do both outer and inner hash map lookups.  Call set() to add/update
1442         entries to the hash maps.  keyDestroyed() is now removeLayer().
1443         (WebCore::imageQualityController):
1444         Make the ImageQualityController a file-static global, so it can be
1445         created and destroyed on the fly.
1446         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1447         If there is no ImageQualityController, don't call objectDestroyed().
1448         If it's empty, delete it.
1449         * rendering/RenderImage.cpp:
1450         (WebCore::RenderImage::paintIntoRect):
1451         Also pass the Image* as the (void*) layer, since 0 is not a valid
1452         HashMap key.
1453
1454 2011-01-27  Adrienne Walker  <enne@google.com>
1455
1456         Reviewed by James Robinson.
1457
1458         [chromium] Tiled compositor crashes if compositing turned off mid-paint
1459         https://bugs.webkit.org/show_bug.cgi?id=53198
1460
1461         * platform/graphics/chromium/LayerRendererChromium.cpp:
1462         (WebCore::LayerRendererChromium::drawLayers):
1463         * platform/graphics/chromium/LayerTilerChromium.cpp:
1464         (WebCore::LayerTilerChromium::update):
1465         (WebCore::LayerTilerChromium::draw):
1466
1467 2011-01-27  Carol Szabo <carol.szabo@nokia.com>
1468
1469         Reviewed by David Hyatt.
1470
1471         A corrupted counter tree is created when renderers are added to the
1472         tree bypassing RenderObject::addChild
1473         https://bugs.webkit.org/show_bug.cgi?id=51270
1474
1475         No new tests. This patch reimplements the fix for bugs 43812 and
1476         51637 and hence all tests are already there as part of the original
1477         fixes for those bugs.
1478
1479         * rendering/RenderCounter.cpp:
1480         (WebCore::findPlaceForCounter):
1481         Removed old workaround as this patch hopefully fixes the real
1482         problem.
1483         * rendering/RenderObject.cpp:
1484         (WebCore::RenderObject::addChild):
1485         Removed call to counter updater as it was moved to a lower level.
1486         (WebCore::RenderObject::destroy):
1487         Moved attached counter nodes destruction to after the node is
1488         removed from the tree.
1489         * rendering/RenderObjectChildList.cpp:
1490         (WebCore::RenderObjectChildList::removeChildNode):
1491         (WebCore::RenderObjectChildList::appendChildNode):
1492         (WebCore::RenderObjectChildList::insertChildNode):
1493         Added notifications to the Counter system such that the
1494         CounterForest reflects the changes to the RendererTree.
1495         * rendering/RenderWidget.cpp:
1496         (WebCore::RenderWidget::destroy):
1497         Applied the same changes as for RenderObject::destroy()
1498         since RenderObject::destroy() is not called from here.
1499
1500 2011-01-27  Adam Roben  <aroben@apple.com>
1501
1502         Add WKCACFViewLayerTreeHost
1503
1504         This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render.
1505
1506         Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use
1507         WKCACFView for rendering
1508
1509         * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}.
1510
1511         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1512         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a
1513         non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window,
1514         so we need a non-empty window to perform a valid test.
1515         (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then
1516         fall back to a LegacyCACFLayerTreeHost.
1517         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the
1518         context flush from here...
1519         (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to
1520         call this function whenever changes are flushed to the context.
1521
1522         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange.
1523
1524         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
1525         (WebCore::LegacyCACFLayerTreeHost::createRenderer):
1526         (WebCore::LegacyCACFLayerTreeHost::resize):
1527         Changed to use flushContext instead of flushing the context manually so that we will always
1528         notify the base class when the context gets flushed.
1529
1530         (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the
1531         base class will know what happened. Moved code to schedule a render from here...
1532         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here.
1533
1534         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange.
1535
1536         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added.
1537         (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides
1538         WKCACFView, isn't present, bail. Otherwise allocate and return a new host.
1539         (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members.
1540         (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously
1541         marked that we needed to do so, and flush the context if our layer's bounds have changed.
1542         (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to
1543         contextDidChange.
1544         (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering
1545         (if we didn't already), then call up to the base class.
1546         (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the
1547         view's layer, and hook up our "context did change" callback.
1548         (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next
1549         time we paint.
1550         (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is
1551         able to render or not.
1552         (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down
1553         to the view.
1554         (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view.
1555         (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto.
1556         (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right
1557         size, then call up to the base class.
1558         (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty
1559         rects, then ask it to draw.
1560
1561         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h.
1562
1563 2011-01-27  Adam Roben  <aroben@apple.com>
1564
1565         Move LegacyCACFLayerTreeHost into its own files
1566
1567         More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
1568         should use WKCACFView for rendering
1569
1570         Reviewed by Simon Fraser.
1571
1572         * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}.
1573
1574         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files.
1575
1576         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added.
1577         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added.
1578
1579 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
1580
1581         Unreviewed WinCE build fix for r76824.
1582
1583         * platform/wince/DragDataWinCE.cpp:
1584         (WebCore::DragData::dragDataMap):
1585
1586 2011-01-27  Adam Roben  <aroben@apple.com>
1587
1588         Split CACFLayerTreeHost into base and derived classes
1589
1590         The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch
1591         will add a new derived class that replaces the D3D code with a different rendering API.
1592
1593         For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a
1594         little smaller. A later patch will move it to its own source files.
1595
1596         Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
1597         should use WKCACFView for rendering
1598
1599         Reviewed by Simon Fraser.
1600
1601         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1602         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before
1603         destroying the host, as that is now the API contract that clients must fulfill.
1604         (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator.
1605         (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the
1606         new initialize function to perform initialization that has to happen after the vtable has
1607         been set up.
1608
1609         (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
1610         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
1611         (WebCore::LegacyCACFLayerTreeHost::initializeContext):
1612         (WebCore::CACFLayerTreeHost::initialize):
1613         Moved some initialization code from the CACFLayerTreeHost constructor into these new
1614         functions.
1615
1616         (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from
1617         ~CACFLayerTreeHost.
1618         (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this
1619         point (which would be too late, since we won't be able to call into the derived class's
1620         virtual functions), just assert that it has already been cleared (or was never set in the
1621         first place).
1622         (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from
1623         CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing
1624         CACFLayerTreeHost's data members directly.
1625
1626         (WebCore::LegacyCACFLayerTreeHost::destroyRenderer):
1627         (WebCore::CACFLayerTreeHost::destroyRenderer):
1628         Moved some code to the new LegacyCACFLayerTreeHost function.
1629
1630         (WebCore::LegacyCACFLayerTreeHost::resize):
1631         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
1632         Moved these functions to LegacyCACFLayerTreeHost.
1633
1634         (WebCore::LegacyCACFLayerTreeHost::paint):
1635         (WebCore::CACFLayerTreeHost::paint):
1636         Moved some code to the new LegacyCACFLayerTreeHost function.
1637
1638         (WebCore::LegacyCACFLayerTreeHost::render):
1639         (WebCore::LegacyCACFLayerTreeHost::renderSoon):
1640         Moved these functions to LegacyCACFLayerTreeHost.
1641
1642         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context
1643         from here...
1644         (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function.
1645
1646         (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time
1647         to this new function...
1648         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here.
1649
1650         (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry):
1651         (WebCore::LegacyCACFLayerTreeHost::resetDevice):
1652         Moved these functions to LegacyCACFLayerTreeHost.
1653
1654         * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some
1655         members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more
1656         logically, and added some getters used by LegacyCACFLayerTreeHost.
1657
1658 2011-01-27  Adam Roben  <aroben@apple.com>
1659
1660         Move CACFLayerTreeHostClient to its own header file
1661
1662         Rubber-stamped by Steve Falkenburg.
1663
1664         * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way
1665         with the file.
1666
1667         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include.
1668
1669         * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient.
1670
1671         * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added.
1672
1673         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here
1674         from the header file.
1675
1676         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes
1677         with more specific ones, plus a forward-declaration.
1678
1679 2011-01-27  James Simonsen  <simonjam@chromium.org>
1680
1681         Reviewed by Tony Chang.
1682
1683         [Chromium] Simplify small caps logic in complex text on linux
1684         https://bugs.webkit.org/show_bug.cgi?id=53207
1685
1686         Test: fast/text/atsui-multiple-renderers.html
1687               fast/text/atsui-small-caps-punctuation-size.html
1688
1689         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
1690         (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes.
1691         (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above.
1692
1693 2011-01-27  Adam Barth  <abarth@webkit.org>
1694
1695         In which I attempt to fix the EFL build.
1696
1697         * CMakeLists.txt:
1698
1699 2011-01-25  Levi Weintraub  <leviw@chromium.org>
1700
1701         Reviewed by Darin Adler.
1702
1703         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
1704         Corrected for mistake in r76625
1705
1706         Undo moves caret to invalid position
1707         https://bugs.webkit.org/show_bug.cgi?id=49744
1708
1709         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
1710                editing/selection/caret-painting-after-paste-undo.html
1711
1712         * rendering/RenderBox.cpp:
1713         (WebCore::RenderBox::localCaretRect):
1714
1715 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1716
1717         Unreviewed, rolling out r76825.
1718         http://trac.webkit.org/changeset/76825
1719         https://bugs.webkit.org/show_bug.cgi?id=53256
1720
1721         "caused crashes on GTK and chromium" (Requested by rniwa on
1722         #webkit).
1723
1724         * rendering/RenderBoxModelObject.cpp:
1725         (WebCore::ImageQualityController::keyDestroyed):
1726         (WebCore::ImageQualityController::objectDestroyed):
1727         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1728         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1729         (WebCore::imageQualityController):
1730         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1731
1732 2011-01-27  Adam Barth  <abarth@webkit.org>
1733
1734         Reviewed by Eric Seidel.
1735
1736         Generalize the mechanism view-source uses to remember the source for an HTMLToken
1737         https://bugs.webkit.org/show_bug.cgi?id=53200
1738
1739         Currently view-source tracks the source associated with each HTMLToken.
1740         We want to re-use this mechanism for the new XSS auditor.  This patch
1741         moves this code into its own class so it can be shared between the
1742         view-source parser and the general HTML parser.  This patch also add
1743         support for tracking the source of tokens that span document.write
1744         boundaries.
1745
1746         No functional change.  This code change is somewhat tested by our
1747         view-source layout tests.
1748
1749         * Android.mk:
1750         * GNUmakefile.am:
1751         * WebCore.gypi:
1752         * WebCore.pro:
1753         * WebCore.vcproj/WebCore.vcproj:
1754         * WebCore.xcodeproj/project.pbxproj:
1755             - Fun with updating build files.
1756         * html/parser/HTMLDocumentParser.cpp:
1757         (WebCore::HTMLDocumentParser::pumpTokenizer):
1758             - Teach HTMLDocumentParser to track the source for HTMLTokens.
1759               Currently, this information isn't used, but it will be shortly.
1760               I ran the HTML parser benchmark and this change didn't have a
1761               measurable effect.
1762         * html/parser/HTMLDocumentParser.h:
1763             - Composite in the HTMLSourceTracker.
1764         * html/parser/HTMLSourceTracker.cpp: Added.
1765         (WebCore::HTMLSourceTracker::HTMLSourceTracker):
1766         (WebCore::HTMLSourceTracker::start):
1767         (WebCore::HTMLSourceTracker::end):
1768             - This function should eventualy be folded into HTMLTokenizer.
1769         (WebCore::HTMLSourceTracker::sourceForToken):
1770         * html/parser/HTMLSourceTracker.h: Added.
1771         * html/parser/HTMLToken.h:
1772             - Now HTMLTokens always have a start index of zero.  To do the job
1773               of the old start index, this patch introduces the notion of a
1774               baseOffset.  Unlike the start index (which was used as the base
1775               offset for all the other indicies), the baseOffset can change
1776               over the lifetime of the token.  We need the flexibility to
1777               change the offset for tokens that span document.write boundaries.
1778               Values are now normalized to zero-offset when stored.
1779         (WebCore::HTMLToken::clear):
1780         (WebCore::HTMLToken::setBaseOffset):
1781         (WebCore::HTMLToken::end):
1782         (WebCore::HTMLToken::beginAttributeName):
1783         (WebCore::HTMLToken::endAttributeName):
1784         (WebCore::HTMLToken::beginAttributeValue):
1785         (WebCore::HTMLToken::endAttributeValue):
1786         * html/parser/HTMLViewSourceParser.cpp:
1787             - Updates the HTMLViewSourceParser to use the new
1788               HTMLSourceTracker.
1789         (WebCore::HTMLViewSourceParser::pumpTokenizer):
1790         (WebCore::HTMLViewSourceParser::append):
1791         (WebCore::HTMLViewSourceParser::sourceForToken):
1792             - This function now just calls through to HTMLSourceTracker.
1793         * html/parser/HTMLViewSourceParser.h:
1794         * platform/text/SegmentedString.cpp:
1795         (WebCore::SegmentedString::currentColumn):
1796         (WebCore::SegmentedString::setCurrentPosition):
1797         * platform/text/SegmentedString.h:
1798         (WebCore::SegmentedString::numberOfCharactersConsumed):
1799             - We need to handle the general case now.  The "slow" version
1800               doesn't turn out to be any slower in practice anyway.
1801
1802 2011-01-27  Sam Weinig  <sam@webkit.org>
1803
1804         Fix all the builds.
1805
1806         * platform/ScrollView.cpp:
1807         (WebCore::ScrollView::paintOverhangAreas): Add parameters.
1808
1809 2011-01-27  Sam Weinig  <sam@webkit.org>
1810
1811         Reviewed by Dave Hyatt.
1812
1813         Add ability to do an unconstrained scroll on a ScrollView
1814         https://bugs.webkit.org/show_bug.cgi?id=53249
1815
1816         * platform/ScrollView.cpp:
1817         (WebCore::ScrollView::ScrollView):
1818         Initialize m_constrainsScrollingToContentEdge to true.
1819
1820         (WebCore::ScrollView::setScrollOffset):
1821         Only constrain the offset if the m_constrainsScrollingToContentEdge is set.
1822
1823         (WebCore::ScrollView::updateScrollbars):
1824         Simplify expression converting an IntSize to an IntPoint.
1825         
1826         (WebCore::ScrollView::paint):
1827         Paint the overhang if there is any.
1828         
1829         (WebCore::ScrollView::calculateOverhangAreasForPainting):
1830         Calculate the overhang in viewport coordinates for painting.
1831
1832         * platform/ScrollView.h:
1833         (WebCore::ScrollView::constrainsScrollingToContentEdge):
1834         (WebCore::ScrollView::setConstrainsScrollingToContentEdge):
1835         Add bit to control whether the scroll position should be constrained
1836         to the content edge when set.
1837
1838         * platform/ScrollbarThemeComposite.cpp:
1839         (WebCore::usedTotalSize):
1840         (WebCore::ScrollbarThemeComposite::thumbPosition):
1841         (WebCore::ScrollbarThemeComposite::thumbLength):
1842         * platform/mac/ScrollbarThemeMac.mm:
1843         (WebCore::ScrollbarThemeMac::paint):
1844         Improve calculations of thumb size and position to take overhang into account.
1845
1846 2011-01-27  Dirk Schulze  <krit@webkit.org>
1847
1848         Reviewed by Nikolas Zimmermann.
1849
1850         SVG animation of Paths with segments of different coordinate modes on begin and end
1851         https://bugs.webkit.org/show_bug.cgi?id=52984
1852
1853         At the moment we just support SVG path animations, if the number of segments on the given start path
1854         is the same as the number of segments on the given end path. But a segment on a given position must be identical
1855         on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical.
1856         If MoveToRel is on the second position on the start path a MoveToRel must be on the second position
1857         of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel
1858         in the start path, we can use MoveToAbs on the same position in the end path.
1859
1860         This patch fixes the blending code to follow the spec here. It was necessary to track the current position of
1861         both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back
1862         to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the
1863         animation.
1864
1865         Tests: svg/animations/animate-path-animation-Cc-Ss.html
1866                svg/animations/animate-path-animation-Ll-Vv-Hh.html
1867                svg/animations/animate-path-animation-Qq-Tt.html
1868                svg/animations/animate-path-animation-cC-sS-inverse.html
1869                svg/animations/animate-path-animation-lL-vV-hH-inverse.html
1870                svg/animations/animate-path-animation-qQ-tT-inverse.html
1871
1872         * svg/SVGPathBlender.cpp:
1873         (WebCore::blendFloatPoint):
1874         (WebCore::blendAnimatedFloat):
1875         (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat):
1876         (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
1877         (WebCore::SVGPathBlender::blendMoveToSegment):
1878         (WebCore::SVGPathBlender::blendLineToSegment):
1879         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
1880         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
1881         (WebCore::SVGPathBlender::blendCurveToCubicSegment):
1882         (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
1883         (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
1884         (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
1885         (WebCore::SVGPathBlender::blendArcToSegment):
1886         (WebCore::coordinateModeOfCommand):
1887         (WebCore::isSegmentEqual):
1888         (WebCore::SVGPathBlender::blendAnimatedPath):
1889         (WebCore::SVGPathBlender::cleanup):
1890         * svg/SVGPathBlender.h:
1891
1892 2011-01-27  Cris Neckar  <cdn@chromium.org>
1893
1894         Reviewed by Dimitri Glazkov.
1895
1896         Clear the parent on a css keyframe's m_style when removing it from the stylesheet.
1897         https://bugs.webkit.org/show_bug.cgi?id=52320
1898
1899         Test: fast/css/css-keyframe-style-crash.html
1900
1901         * css/CSSRuleList.cpp:
1902         (WebCore::CSSRuleList::deleteRule):
1903         * css/WebKitCSSKeyframesRule.cpp:
1904         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1905
1906 2011-01-27  Rob Buis  <rwlbuis@gmail.com>
1907
1908         Reviewed by Kent Tamura.
1909
1910         Color changes to option elements in a select multiple aren't drawn immediately
1911         https://bugs.webkit.org/show_bug.cgi?id=49790
1912
1913         Redirect style changes on <option> element to the owner <select> element.
1914
1915         Test: fast/repaint/select-option-background-color.html
1916
1917         * html/HTMLOptionElement.cpp:
1918         (WebCore::HTMLOptionElement::setRenderStyle):
1919
1920 2011-01-19  Stephen White  <senorblanco@chromium.org>
1921
1922         Reviewed by Darin Adler.
1923
1924         Fix performance regression in ImageQualityController::objectDestroyed().
1925         https://bugs.webkit.org/show_bug.cgi?id=52645
1926
1927         In r72282, I inadvertently introduced this regression by using a
1928         linear search through the hash map on object destruction.  This was
1929         because the hash key consisted of both object pointer and layer id,
1930         but on object destruction we only know the object pointer, requiring
1931         a search to find all the layers. 
1932         By replacing the hash map with two nested hash maps, where the outer key
1933         is the object and the inner key is the layer, we can find all the
1934         relevant data for an object in one hash lookup.
1935
1936         * rendering/RenderBoxModelObject.cpp:
1937         Replace the (object,layer)->size HashMap with object->layer and
1938         layer->size HashMaps.
1939         (WebCore::ImageQualityController::isEmpty):
1940         Implement isEmpty() for the outer HashMap.
1941         (WebCore::ImageQualityController::removeLayer):
1942         When a layer is removed, remove it from the inner hash map.
1943         (WebCore::ImageQualityController::set):
1944         Implement set():  if the inner map exists, set the layer->size tuple
1945         directly.  If not, create a new inner map, set the tuple, and insert
1946         it in the outer map.
1947         (WebCore::ImageQualityController::objectDestroyed):
1948         Look up the object in the outer map only.
1949         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1950         Cosmetic changes for the renamed now-outer hash map.
1951         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1952         Do both outer and inner hash map lookups.  Call set() to add/update
1953         entries to the hash maps.  keyDestroyed() is now removeLayer().
1954         (WebCore::imageQualityController):
1955         Make the ImageQualityController a file-static global, so it can be
1956         created and destroyed on the fly.
1957         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1958         If there is no ImageQualityController, don't call objectDestroyed().
1959         If it's empty, delete it.
1960
1961
1962 2011-01-26  Enrica Casucci  <enrica@apple.com>
1963
1964         Reviewed by Darin Adler and Adam Roben.
1965
1966         WebKit2: add support for drag and drop on Windows
1967         https://bugs.webkit.org/show_bug.cgi?id=52775
1968         <rdar://problem/8514409>
1969         
1970         On Windows the access to the content being dragged is
1971         provided via the IDataObject interface that is made available
1972         to the window that registers itself as drop target.
1973         Since this interface cannot be accessed from the WebProcess,
1974         in every call to one of the methods of the IDropTarget interface
1975         we serialize the content of the drag clipboard and send it over to
1976         the WebProcess.
1977         The bulk of this patch consists in the refactoring needed in DragData
1978         and ClipboardWin classes to extract the data from the serialized object.
1979         
1980         * platform/DragData.cpp:
1981         * platform/DragData.h:
1982         * platform/win/ClipboardUtilitiesWin.cpp:
1983         (WebCore::getWebLocData):
1984         (WebCore::getURL):
1985         (WebCore::getPlainText):
1986         (WebCore::getTextHTML):
1987         (WebCore::getCFHTML):
1988         (WebCore::fragmentFromFilenames):
1989         (WebCore::containsFilenames):
1990         (WebCore::fragmentFromHTML):
1991         (WebCore::containsHTML):
1992         (WebCore::getClipboardData):
1993         * platform/win/ClipboardUtilitiesWin.h:
1994         * platform/win/ClipboardWin.cpp:
1995         (WebCore::Clipboard::create):
1996         (WebCore::ClipboardWin::ClipboardWin):
1997         (WebCore::ClipboardWin::getData):
1998         (WebCore::ClipboardWin::types):
1999         (WebCore::ClipboardWin::files):
2000         (WebCore::ClipboardWin::hasData):
2001         * platform/win/ClipboardWin.h:
2002         (WebCore::ClipboardWin::create):
2003         * platform/win/DragDataWin.cpp:
2004         (WebCore::DragData::DragData):
2005         (WebCore::DragData::containsURL):
2006         (WebCore::DragData::dragDataMap):
2007         (WebCore::DragData::asURL):
2008         (WebCore::DragData::containsFiles):
2009         (WebCore::DragData::asFilenames):
2010         (WebCore::DragData::containsPlainText):
2011         (WebCore::DragData::asPlainText):
2012         (WebCore::DragData::canSmartReplace):
2013         (WebCore::DragData::containsCompatibleContent):
2014         (WebCore::DragData::asFragment):
2015
2016 2011-01-27  Mario Sanchez Prada  <msanchez@igalia.com>
2017
2018         Reviewed by Martin Robinson.
2019
2020         [GTK] Space characters in source document interfere with reported caret offset
2021         https://bugs.webkit.org/show_bug.cgi?id=53033
2022
2023         Calculate caret offset from rendered text instead of from node contents.
2024
2025         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2026         (objectAndOffsetUnignored): Calculate the caret offset based only
2027         on positions and ranges, instead of using the computed offset in
2028         the container node.
2029
2030 2011-01-26  Alexey Proskuryakov  <ap@apple.com>
2031
2032         Reviewed by Darin Adler.
2033
2034         https://bugs.webkit.org/show_bug.cgi?id=53197
2035         <rdar://problem/8895682> Make WebKit2 printing asynchronous
2036
2037         * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before.
2038
2039         * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same
2040         transformation as spoolPages does for consistency.
2041
2042 2011-01-27  David Grogan  <dgrogan@google.com>
2043
2044         Reviewed by Jeremy Orlow.
2045
2046         initial support for close() in indexeddb backend
2047         https://bugs.webkit.org/show_bug.cgi?id=53150
2048
2049         Test: storage/indexeddb/transaction-after-close.html
2050
2051         * storage/IDBDatabase.cpp:
2052         (WebCore::IDBDatabase::IDBDatabase):
2053         (WebCore::IDBDatabase::transaction):
2054         (WebCore::IDBDatabase::close):
2055         * storage/IDBDatabase.h:
2056         * storage/IDBDatabase.idl:
2057         * storage/IDBDatabaseBackendImpl.cpp:
2058         (WebCore::IDBDatabaseBackendImpl::transaction):
2059         (WebCore::IDBDatabaseBackendImpl::close):
2060
2061 2011-01-27  Dirk Schulze  <krit@webkit.org>
2062
2063         Reviewed by Nikolas Zimmermann.
2064
2065         SVG animation doesn't support calcMode discrete for number and color values.
2066         https://bugs.webkit.org/show_bug.cgi?id=53189
2067
2068         Add support for calcMode discrete on number and color animation.
2069
2070         Tests: svg/animations/animate-color-calcMode-discrete.html
2071                svg/animations/animate-number-calcMode-discrete.html
2072
2073         * svg/SVGAnimateElement.cpp:
2074         (WebCore::SVGAnimateElement::calculateAnimatedValue):
2075
2076 2011-01-26  Zhenyao Mo  <zmo@google.com>
2077
2078         Reviewed by Kenneth Russell.
2079
2080         shaderSource needs to preserve original source
2081         https://bugs.webkit.org/show_bug.cgi?id=52833
2082
2083         Test: fast/canvas/webgl/gl-getshadersource.html
2084
2085         * html/canvas/WebGLRenderingContext.cpp:
2086         (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH.
2087         (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call.
2088         (WebCore::WebGLRenderingContext::shaderSource): Cache the source.
2089         * html/canvas/WebGLShader.cpp: Cache shader source.
2090         (WebCore::WebGLShader::WebGLShader):
2091         * html/canvas/WebGLShader.h: Ditto.
2092         (WebCore::WebGLShader::getSource):
2093         (WebCore::WebGLShader::setSource):
2094
2095 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
2096
2097         Unreviewed WinCE build fix for r76743.
2098
2099         * platform/graphics/wince/FontWinCE.cpp:
2100         (WebCore::TextRunComponent::TextRunComponent):
2101
2102 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
2103
2104         Reviewed by Pavel Feldman.
2105
2106         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
2107         https://bugs.webkit.org/show_bug.cgi?id=53234
2108
2109         * inspector/front-end/ScopeChainSidebarPane.js:
2110         (WebInspector.ScopeChainSidebarPane):
2111         (WebInspector.ScopeChainSidebarPane.prototype.update):
2112
2113 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2114
2115         Unreviewed, rolling out r76789.
2116         http://trac.webkit.org/changeset/76789
2117         https://bugs.webkit.org/show_bug.cgi?id=53238
2118
2119         Broke GTK layout tests (Requested by podivilov on #webkit).
2120
2121         * inspector/front-end/ScopeChainSidebarPane.js:
2122         (WebInspector.ScopeChainSidebarPane):
2123         (WebInspector.ScopeChainSidebarPane.prototype.update):
2124
2125 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
2126
2127         Reviewed by Pavel Feldman.
2128
2129         Web Inspector: store all settings related to the agents on the frontend side
2130         https://bugs.webkit.org/show_bug.cgi?id=53174
2131
2132         * CMakeLists.txt:
2133         * GNUmakefile.am:
2134         * WebCore.exp.in:
2135         * WebCore.gypi:
2136         * WebCore.pro:
2137         * WebCore.vcproj/WebCore.vcproj:
2138         * WebCore.xcodeproj/project.pbxproj:
2139         * bindings/js/ScriptDebugServer.cpp:
2140         * bindings/js/ScriptDebugServer.h:
2141         * bindings/js/ScriptProfiler.cpp:
2142         * bindings/js/ScriptProfiler.h:
2143         * bindings/v8/ScriptDebugServer.cpp:
2144         * bindings/v8/ScriptDebugServer.h:
2145         * bindings/v8/ScriptProfiler.cpp:
2146         * bindings/v8/ScriptProfiler.h:
2147         * inspector/Inspector.idl:
2148         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
2149         on the front-end side and will be pushed to the backend when the frontend is loaded.
2150         (WebCore::InspectorAgent::InspectorAgent):
2151         (WebCore::InspectorAgent::disconnectFrontend):
2152         (WebCore::InspectorAgent::restoreDebugger):
2153         (WebCore::InspectorAgent::restoreProfiler):
2154         (WebCore::InspectorAgent::enableProfiler):
2155         (WebCore::InspectorAgent::disableProfiler):
2156         (WebCore::InspectorAgent::showAndEnableDebugger):
2157         (WebCore::InspectorAgent::enableDebugger):
2158         (WebCore::InspectorAgent::disableDebugger):
2159         * inspector/InspectorAgent.h:
2160         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
2161         if the front-end was opened during current browser session and XHR logging is turned on
2162         there.
2163         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2164         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2165         * inspector/InspectorDebuggerAgent.cpp:
2166         * inspector/InspectorDebuggerAgent.h:
2167         * inspector/InspectorInstrumentation.cpp:
2168         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2169         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2170         * inspector/InspectorProfilerAgent.cpp:
2171         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2172         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2173         * inspector/InspectorSettings.cpp: Removed.
2174         * inspector/InspectorSettings.h: Removed.
2175         * inspector/InspectorState.cpp:
2176         (WebCore::InspectorState::InspectorState):
2177         * inspector/InspectorState.h:
2178         * inspector/front-end/ConsoleView.js:
2179         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
2180         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2181         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
2182         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2183         * inspector/front-end/ProfilesPanel.js:
2184         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2185         * inspector/front-end/ScriptsPanel.js:
2186         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2187         * inspector/front-end/Settings.js:
2188         (WebInspector.Settings):
2189         * inspector/front-end/inspector.js:
2190
2191 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
2192
2193         Reviewed by Pavel Feldman.
2194
2195         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
2196         https://bugs.webkit.org/show_bug.cgi?id=53234
2197
2198         * inspector/front-end/ScopeChainSidebarPane.js:
2199         (WebInspector.ScopeChainSidebarPane):
2200         (WebInspector.ScopeChainSidebarPane.prototype.update):
2201
2202 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
2203
2204         Reviewed by Pavel Feldman.
2205
2206         Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL
2207         https://bugs.webkit.org/show_bug.cgi?id=53171
2208
2209         * inspector/front-end/inspector.js:
2210         (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only)
2211
2212 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
2213
2214         Reviewed by Pavel Feldman.
2215
2216         [V8] Crash in WebCore::addMessageToConsole
2217         https://bugs.webkit.org/show_bug.cgi?id=53227
2218
2219         * bindings/v8/V8Proxy.cpp: check that the Frame where the error
2220         occured still has a page before getting a console object from it.
2221         (WebCore::V8Proxy::reportUnsafeAccessTo):
2222
2223 2011-01-27  Hans Wennborg  <hans@chromium.org>
2224
2225         Reviewed by Jeremy Orlow.
2226
2227         IndexedDB: Remove IDBCallbacks::onSuccess() used for null values.
2228         https://bugs.webkit.org/show_bug.cgi?id=53178
2229
2230         Remove the IDBCallbacks::onSuccess() function that was used for
2231         null values, and replace such calls with calls to
2232         IDBCallBacks::onSuccess(SerializedScriptValue::nullValue())
2233         instead.
2234
2235         No new functionality, so no new tests.
2236
2237         * storage/IDBCallbacks.h:
2238         * storage/IDBCursorBackendImpl.cpp:
2239         (WebCore::IDBCursorBackendImpl::updateInternal):
2240         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
2241         * storage/IDBIndexBackendImpl.cpp:
2242         (WebCore::IDBIndexBackendImpl::openCursorInternal):
2243         * storage/IDBObjectStoreBackendImpl.cpp:
2244         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
2245         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
2246         * storage/IDBRequest.cpp:
2247         * storage/IDBRequest.h:
2248
2249 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2250
2251         Unreviewed, rolling out r76773.
2252         http://trac.webkit.org/changeset/76773
2253         https://bugs.webkit.org/show_bug.cgi?id=53230
2254
2255         breaks multiple GTK media tests (Requested by philn-tp on
2256         #webkit).
2257
2258         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2259         (WebCore::mimeTypeCache):
2260
2261 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
2262
2263         Unreviewed, rolling out r76770.
2264         http://trac.webkit.org/changeset/76770
2265         https://bugs.webkit.org/show_bug.cgi?id=53229
2266
2267         Some inspector tests fail (Requested by yurys on #webkit).
2268
2269         * CMakeLists.txt:
2270         * GNUmakefile.am:
2271         * WebCore.exp.in:
2272         * WebCore.gypi:
2273         * WebCore.pro:
2274         * WebCore.vcproj/WebCore.vcproj:
2275         * WebCore.xcodeproj/project.pbxproj:
2276         * bindings/js/ScriptDebugServer.cpp:
2277         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
2278         * bindings/js/ScriptDebugServer.h:
2279         * bindings/js/ScriptProfiler.cpp:
2280         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
2281         * bindings/js/ScriptProfiler.h:
2282         * bindings/v8/ScriptDebugServer.cpp:
2283         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
2284         * bindings/v8/ScriptDebugServer.h:
2285         * bindings/v8/ScriptProfiler.cpp:
2286         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
2287         * bindings/v8/ScriptProfiler.h:
2288         * inspector/Inspector.idl:
2289         * inspector/InspectorAgent.cpp:
2290         (WebCore::InspectorAgent::InspectorAgent):
2291         (WebCore::InspectorAgent::disconnectFrontend):
2292         (WebCore::InspectorAgent::restoreDebugger):
2293         (WebCore::InspectorAgent::restoreProfiler):
2294         (WebCore::InspectorAgent::ensureSettingsLoaded):
2295         (WebCore::InspectorAgent::enableProfiler):
2296         (WebCore::InspectorAgent::disableProfiler):
2297         (WebCore::InspectorAgent::showAndEnableDebugger):
2298         (WebCore::InspectorAgent::enableDebugger):
2299         (WebCore::InspectorAgent::disableDebugger):
2300         * inspector/InspectorAgent.h:
2301         (WebCore::InspectorAgent::settings):
2302         * inspector/InspectorConsoleAgent.cpp:
2303         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2304         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2305         * inspector/InspectorDebuggerAgent.cpp:
2306         (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
2307         * inspector/InspectorDebuggerAgent.h:
2308         * inspector/InspectorInstrumentation.cpp:
2309         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2310         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2311         * inspector/InspectorProfilerAgent.cpp:
2312         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
2313         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2314         * inspector/InspectorSettings.cpp: Added.
2315         (WebCore::InspectorSettings::InspectorSettings):
2316         (WebCore::InspectorSettings::getBoolean):
2317         (WebCore::InspectorSettings::setBoolean):
2318         (WebCore::InspectorSettings::getLong):
2319         (WebCore::InspectorSettings::setLong):
2320         (WebCore::InspectorSettings::registerBoolean):
2321         (WebCore::InspectorSettings::registerLong):
2322         * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
2323         * inspector/InspectorState.cpp:
2324         (WebCore::InspectorState::InspectorState):
2325         * inspector/InspectorState.h:
2326         * inspector/front-end/ConsoleView.js:
2327         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
2328         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2329         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2330         * inspector/front-end/ProfilesPanel.js:
2331         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2332         * inspector/front-end/ScriptsPanel.js:
2333         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2334         * inspector/front-end/Settings.js:
2335         (WebInspector.Settings):
2336         * inspector/front-end/inspector.js:
2337
2338 2011-01-26  Philippe Normand  <pnormand@igalia.com>
2339
2340         Reviewed by Martin Robinson.
2341
2342         [GTK] LayoutTests/media/audio-mpeg4-supported.html fails
2343         https://bugs.webkit.org/show_bug.cgi?id=53125
2344
2345         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
2346         (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache.
2347
2348 2011-01-26  Yury Semikhatsky  <yurys@chromium.org>
2349
2350         Reviewed by Pavel Feldman.
2351
2352         Web Inspector: store all settings related to the agents on the frontend side
2353         https://bugs.webkit.org/show_bug.cgi?id=53174
2354
2355         * CMakeLists.txt:
2356         * GNUmakefile.am:
2357         * WebCore.exp.in:
2358         * WebCore.gypi:
2359         * WebCore.pro:
2360         * WebCore.vcproj/WebCore.vcproj:
2361         * WebCore.xcodeproj/project.pbxproj:
2362         * inspector/Inspector.idl:
2363         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
2364         on the front-end side and will be pushed to the backend when the frontend is loaded.
2365         (WebCore::InspectorAgent::InspectorAgent):
2366         (WebCore::InspectorAgent::disconnectFrontend):
2367         (WebCore::InspectorAgent::restoreDebugger):
2368         (WebCore::InspectorAgent::restoreProfiler):
2369         (WebCore::InspectorAgent::enableProfiler):
2370         (WebCore::InspectorAgent::disableProfiler):
2371         (WebCore::InspectorAgent::showAndEnableDebugger):
2372         (WebCore::InspectorAgent::enableDebugger):
2373         (WebCore::InspectorAgent::disableDebugger):
2374         * inspector/InspectorAgent.h:
2375         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
2376         if the front-end was opened during current browser session and XHR logging is turned on
2377         there.
2378         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
2379         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
2380         * inspector/InspectorInstrumentation.cpp:
2381         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
2382         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
2383         * inspector/InspectorProfilerAgent.cpp:
2384         (WebCore::InspectorProfilerAgent::enable):
2385         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
2386         * inspector/InspectorProfilerAgent.h:
2387         * inspector/InspectorSettings.cpp: Removed.
2388         * inspector/InspectorSettings.h: Removed.
2389         * inspector/InspectorState.cpp:
2390         (WebCore::InspectorState::InspectorState):
2391         * inspector/InspectorState.h:
2392         * inspector/front-end/ConsoleView.js:
2393         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
2394         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
2395         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
2396         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
2397         * inspector/front-end/ProfilesPanel.js:
2398         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
2399         * inspector/front-end/ScriptsPanel.js:
2400         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
2401         * inspector/front-end/Settings.js:
2402         (WebInspector.Settings):
2403         * inspector/front-end/inspector.js:
2404
2405 2011-01-27  Dan Bernstein  <mitz@apple.com>
2406
2407         Reviewed by Sam Weinig.
2408
2409         REGRESSION (r76743): Uneven spacing in right-to-left justified text
2410         https://bugs.webkit.org/show_bug.cgi?id=53225
2411
2412         Fixes failure in fast/text/atsui-spacing-features.html
2413
2414         There was an inconsistency between rendering code and font code in the interpretation of
2415         'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of
2416         visual order rather than logical.
2417
2418         * platform/graphics/Font.cpp:
2419         (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to
2420         iterate in visual order accordingly.
2421         * platform/graphics/Font.h:
2422         * platform/graphics/WidthIterator.cpp:
2423         (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount().
2424         (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion
2425         condition with respect to the first character, which is the trailing character in visual order.
2426         * platform/graphics/mac/ComplexTextController.cpp:
2427         (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to
2428         expansionOpportunityCount().
2429         * rendering/RenderBlockLineLayout.cpp:
2430         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
2431
2432 2011-01-26  Adam Roben  <aroben@apple.com>
2433
2434         Don't create the Direct3D device before it's first needed
2435
2436         We only need the device once we decide to render. There's no point in creating it before
2437         then.
2438
2439         Reviewed by Sam Weinig.
2440
2441         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
2442         (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here.
2443         We already have code to create it when we first try to draw.
2444         (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's
2445         bounds so that the bounds will take effect the next time we render (which could be just
2446         after this function returns).
2447
2448 2011-01-26  Adam Roben  <aroben@apple.com>
2449
2450         Add assertions that CACFLayerTreeHost gains and loses an HWND only once
2451
2452         CACFLayerTreeHost doesn't support any other use pattern.
2453
2454         Reviewed by Sam Weinig.
2455
2456         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
2457         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
2458         (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window,
2459         to having a window, to not having a window just once over the lifetime of this object.
2460
2461         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state.
2462
2463 2011-01-26  Adam Roben  <aroben@apple.com>
2464
2465         Notify layers that their animations have started when we flush the context, not when we
2466         render
2467
2468         r76372 separated context flushing from rendering, but this bit of code got left behind.
2469
2470         Reviewed by Sam Weinig.
2471
2472         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
2473         (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to
2474         notifyAnimationsStarted.
2475         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to
2476         notifyAnimationsStarted after we flush the context.
2477         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed
2478         to call PlatformCALayer::animationStarted rather than calling through to the client
2479         directly.
2480
2481         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted.
2482
2483 2011-01-26  Adam Roben  <aroben@apple.com>
2484
2485         Small cleanup in MediaPlayerPrivateFullscreenWindow
2486
2487         Reviewed by Sam Weinig.
2488
2489         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
2490         (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved
2491         code here from close(), since this was the only place that called it after the following
2492         change to createWindow.
2493         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the
2494         case where we had already created the window with an assertion that we have not already done
2495         so. Our single caller (FullscreenVideoController) did not require this behavior.
2496
2497         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView.
2498
2499 2011-01-26  Sam Weinig  <sam@webkit.org>
2500
2501         Reviewed by Adam Roben.
2502
2503         Move ScrollView scroll wheel code to ScrollAnimator.
2504
2505         * platform/ScrollAnimator.cpp:
2506         (WebCore::ScrollAnimator::handleWheelEvent):
2507         * platform/ScrollAnimator.h:
2508         Moved implementation of handleWheelEvent from ScrollView::wheelEvent.
2509
2510         * platform/ScrollView.cpp:
2511         (WebCore::ScrollView::wheelEvent):
2512         Call down to the ScrollableArea.
2513
2514         * platform/ScrollableArea.cpp:
2515         (WebCore::ScrollableArea::handleWheelEvent):
2516         Call down to the ScrollAnimator.
2517
2518         * platform/ScrollableArea.h:
2519         (WebCore::ScrollableArea::scrollPosition):
2520         (WebCore::ScrollableArea::minimumScrollPosition):
2521         (WebCore::ScrollableArea::maximumScrollPosition):
2522         (WebCore::ScrollableArea::visibleContentRect):
2523         (WebCore::ScrollableArea::visibleHeight):
2524         (WebCore::ScrollableArea::visibleWidth):
2525         Add functions needed to implement wheel event in the animator.
2526
2527 2011-01-26  David Kilzer  <ddkilzer@apple.com>
2528
2529         <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
2530         <rdar://problem/8821760>
2531
2532         Reviewed by Antti Koivisto.
2533
2534         This adds support for HTTP pipelining in CFNetwork, but does not
2535         enable it.  To enable it post-SnowLeopard, use this command:
2536
2537             defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES
2538
2539         Once enabled, it is possible to force the same load priority
2540         (high) to be sent to CFNetwork to allow WebCore to handle the
2541         scheduling:
2542
2543             defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES
2544
2545         * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and
2546         _wkSetHTTPPipeliningPriority.
2547
2548         * loader/DocumentThreadableLoader.cpp:
2549         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
2550         Copy the priority to preflightRequest.
2551
2552         * loader/ResourceLoadScheduler.cpp:
2553         (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code
2554         at the end of the method to use an early return.
2555
2556         * loader/cache/CachedResourceRequest.cpp:
2557         (WebCore::CachedResourceRequest::load): Set the priority on the
2558         ResourceRequest object based on the priority of the
2559         CachedResourceRequest before calling
2560         ResourceLoadScheduler::scheduleSubresourceLoad().
2561
2562         * loader/icon/IconLoader.cpp:
2563         (WebCore::IconLoader::startLoading): Create a ResourceRequest
2564         object and set its priority to ResourceLoadPriorityLow before
2565         passing it to ResourceLoadScheduler::scheduleSubresourceLoad().
2566
2567         * platform/mac/WebCoreSystemInterface.h:
2568         (wkGetHTTPPipeliningPriority): Added.
2569         (wkSetHTTPPipeliningPriority): Added.
2570         * platform/mac/WebCoreSystemInterface.mm:
2571         (wkGetHTTPPipeliningPriority): Added.
2572         (wkSetHTTPPipeliningPriority): Added.
2573
2574         * platform/network/ResourceRequestBase.cpp:
2575         (WebCore::ResourceRequestBase::adopt): Set m_priority when
2576         adopting a CrossThreadResourceRequestData.
2577         (WebCore::ResourceRequestBase::copyData): Set m_priority when
2578         creating a CrossThreadResourceRequestData.
2579         (WebCore::ResourceRequestBase::priority): Added.
2580         (WebCore::ResourceRequestBase::setPriority): Added.
2581         (WebCore::equalIgnoringHeaderFields): Priorities must match when
2582         comparing two ResourceRequest objects.
2583
2584         * platform/network/ResourceRequestBase.h:
2585         (WebCore::ResourceRequestBase::ResourceRequestBase): Set default
2586         priority of new objects to ResourceLoadPriorityLow.
2587         (WebCore::ResourceRequestBase::priority): Added declaration.
2588         (WebCore::ResourceRequestBase::setPriority): Added declaration.
2589         (WebCore::isHTTPPipeliningEnabled): Added.
2590         (WebCore::shouldUseHTTPPipeliningPriority): Added.
2591
2592         * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that
2593         Mac OS X and Windows share code.
2594         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always
2595         set the HTTP connection count per host, but return an
2596         'unlimited' value when using HTTP pipelining.  This method used
2597         to be defined in ResourceRequestMac.mm for Mac OS X.
2598         (WebCore::readBooleanPreference): Added.  Helper method for
2599         reading boolean user defaults.
2600         (WebCore::isHTTPPipeliningEnabled): Returns value of user
2601         default key WebKitEnableHTTPPipelining, or false if not set.
2602         (WebCore::shouldUseHTTPPipeliningPriority): Returns value of
2603         user default key WebKitForceHTTPPipeliningPriorityHigh, or false
2604         if not set.
2605         * platform/network/cf/ResourceRequestCFNet.h: Updated so that
2606         Mac OS X and Windows share code.  Fixed indentation.
2607         (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added.
2608         (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added.
2609
2610         * platform/network/mac/ResourceRequestMac.mm:
2611         (WebCore::ResourceRequest::doUpdatePlatformRequest): Update
2612         HTTP pipelining priority on NSMutableFURLRequest object.
2613         (WebCore::ResourceRequest::doUpdateResourceRequest): Update
2614         m_priority from the NSURLRequest object.
2615         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed.
2616         Code is now shared with Windows in ResourceRequestCFNet.cpp.
2617
2618 2011-01-26  Beth Dakin  <bdakin@apple.com>
2619
2620         Reviewed by Darin Adler.
2621
2622         Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics 
2623         when using WKScrollbars.
2624
2625         New WebKitSystemInterface Functionality.
2626         * WebCore.exp.in:
2627         * platform/mac/WebCoreSystemInterface.h:
2628         * platform/mac/WebCoreSystemInterface.mm:
2629
2630         Some of the terrible static arrays are now only needed in the 
2631         old non-WK code, so they are if-def'd now.
2632         * platform/mac/ScrollbarThemeMac.mm:
2633         
2634         Just patching this function in a better way than I did
2635         before.
2636         (WebCore::updateArrowPlacement):
2637         
2638         Call into WK for the right values.
2639         (WebCore::ScrollbarThemeMac::scrollbarThickness):
2640         (WebCore::ScrollbarThemeMac::hasThumb):
2641         (WebCore::ScrollbarThemeMac::minimumThumbLength):
2642         
2643         Return false if there are no buttons.
2644         (WebCore::ScrollbarThemeMac::hasButtons):
2645
2646         Return an empty IntRect if there are not buttons.
2647         (WebCore::buttonRepaintRect):
2648
2649 2011-01-26  Sam Weinig  <sam@webkit.org>
2650
2651         Reviewed by Maciej Stachowiak.
2652
2653         Add events to represent the start/end of a gesture scroll
2654         https://bugs.webkit.org/show_bug.cgi?id=53215
2655
2656         * WebCore.exp.in: 
2657         Add new file.
2658
2659         * WebCore.xcodeproj/project.pbxproj:
2660         Add new file.
2661
2662         * page/EventHandler.cpp:
2663         (WebCore::EventHandler::handleGestureEvent):
2664         * page/EventHandler.h:
2665         Add entry point for handling gesture events.
2666
2667         * platform/PlatformGestureEvent.h: Added.
2668         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
2669         (WebCore::PlatformGestureEvent::type):
2670         (WebCore::PlatformGestureEvent::position):
2671         (WebCore::PlatformGestureEvent::globalPosition):
2672         (WebCore::PlatformGestureEvent::timestamp):
2673         Add platform agnostic representation of a gesture event.
2674
2675 2011-01-26  Dan Bernstein  <mitz@apple.com>
2676
2677         Reviewed by Dave Hyatt.
2678
2679         <rdar://problem/8446709> Allow inter-ideograph justification for CJK
2680         https://bugs.webkit.org/show_bug.cgi?id=53184
2681
2682         Tests: fast/text/justify-ideograph-complex.html
2683                fast/text/justify-ideograph-simple.html
2684                fast/text/justify-ideograph-vertical.html
2685
2686         * html/canvas/CanvasRenderingContext2D.cpp:
2687         (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter
2688         passed to the TextRun constructor and added the trailingExpansionBehavior parameter.
2689         * platform/graphics/Font.cpp:
2690         (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities
2691         for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists
2692         before the first character. On return, isAfterExpansion says whether an expansion opportunity
2693         exists after the last character.
2694         * platform/graphics/Font.h: 
2695         * platform/graphics/GlyphBuffer.h:
2696         (WebCore::GlyphBuffer::expandLastAdvance): Added.
2697         * platform/graphics/TextRun.h:
2698         (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors.
2699         Renamed padding to expansion.
2700         (WebCore::TextRun::expansion): Renamed padding() to this.
2701         (WebCore::TextRun::allowsTrailingExpansion): Added this accessor.
2702         * platform/graphics/WidthIterator.cpp:
2703         (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount()
2704         and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing
2705         expansion.
2706         (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs.
2707         (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance()
2708         can expand the last advance if it is followed by a CJK ideograph.
2709         * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace
2710         to m_expansionPerOpportunity.
2711         * platform/graphics/chromium/FontChromiumWin.cpp:
2712         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2713         * platform/graphics/chromium/FontLinux.cpp:
2714         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2715         * platform/graphics/efl/FontEfl.cpp:
2716         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2717         * platform/graphics/gtk/FontGtk.cpp:
2718         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2719         * platform/graphics/haiku/FontHaiku.cpp:
2720         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2721         * platform/graphics/mac/ComplexTextController.cpp:
2722         (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use
2723         Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion
2724         opportunity but the run disallows trailing expansion.
2725         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization
2726         of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs.
2727         * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace
2728         to m_expansionPerOpportunity.
2729         * platform/graphics/mac/FontMac.mm:
2730         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2731         * platform/graphics/qt/FontQt.cpp:
2732         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2733         * platform/graphics/win/FontWin.cpp:
2734         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2735         * platform/graphics/win/UniscribeController.cpp:
2736         (WebCore::UniscribeController::UniscribeController): Updated for rename.
2737         * platform/graphics/wince/FontWinCE.cpp:
2738         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2739         * platform/graphics/wx/FontWx.cpp:
2740         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
2741         * rendering/EllipsisBox.cpp:
2742         (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor.
2743         (WebCore::EllipsisBox::selectionRect): Ditto.
2744         (WebCore::EllipsisBox::paintSelection): Ditto.
2745         * rendering/InlineBox.h:
2746         (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion.
2747         (WebCore::InlineBox::expansion): Renamed toAdd() to this.
2748         * rendering/InlineTextBox.cpp:
2749         (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor.
2750         (WebCore::InlineTextBox::paint): Ditto.
2751         (WebCore::InlineTextBox::paintSelection): Ditto.
2752         (WebCore::InlineTextBox::paintCompositionBackground): Ditto.
2753         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
2754         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
2755         (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
2756         (WebCore::InlineTextBox::offsetForPosition): Ditto.
2757         (WebCore::InlineTextBox::positionForOffset): Ditto.
2758         * rendering/InlineTextBox.h:
2759         (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this.
2760         (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this
2761         is not the last leaf box on the line.
2762         * rendering/RenderBlockLineLayout.cpp:
2763         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts
2764         in a vector instead of computing them twice. Discard the trailing expansion opportunity in the
2765         last text box.
2766         * rendering/RenderFileUploadControl.cpp:
2767         (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor.
2768         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto.
2769         * rendering/RenderListBox.cpp:
2770         (WebCore::RenderListBox::updateFromElement): Ditto.
2771         (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter.
2772         * rendering/RenderTextControl.cpp:
2773         (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
2774         (WebCore::RenderTextControl::paintPlaceholder): Ditto.
2775         * rendering/svg/SVGInlineTextBox.cpp:
2776         (WebCore::SVGInlineTextBox::constructTextRun): Ditto.
2777
2778 2011-01-26  Andy Estes  <aestes@apple.com>
2779
2780         Rubber-stamped by Darin Adler.
2781
2782         Inline HTMLObjectElement::hasValidClassId().
2783
2784         * html/HTMLObjectElement.cpp:
2785         (WebCore::HTMLObjectElement::hasValidClassId):
2786
2787 2011-01-26  Evan Martin  <evan@chromium.org>
2788
2789         Reviewed by Tony Chang.
2790
2791         [chromium] crash on getBoundingClientRect in complex text
2792         https://bugs.webkit.org/show_bug.cgi?id=53199
2793
2794         Use the correct array bound; we want the number of characters processed by
2795         the shaper, not the longest continuous script run length.
2796
2797         Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html
2798
2799         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
2800         (WebCore::ComplexTextController::nextScriptRun):
2801         * platform/graphics/chromium/ComplexTextControllerLinux.h:
2802         (WebCore::ComplexTextController::numCodePoints):
2803
2804 2011-01-26  Emil A Eklund  <eae@chromium.org>
2805
2806         Reviewed by Alexey Proskuryakov.
2807
2808         Remove cached document reference from CSSStyleSheet and XSLStyleSheet.
2809         https://bugs.webkit.org/show_bug.cgi?id=52084
2810
2811         Test: fast/dom/css-delete-doc.html
2812
2813         * css/CSSMediaRule.cpp:
2814         (WebCore::CSSMediaRule::insertRule):
2815         (WebCore::CSSMediaRule::deleteRule):
2816         * css/CSSStyleSheet.cpp:
2817         (WebCore::CSSStyleSheet::CSSStyleSheet):
2818         (WebCore::CSSStyleSheet::document):
2819         * css/CSSStyleSheet.h:
2820         * xml/XSLStyleSheet.h:
2821         (WebCore::XSLStyleSheet::parentStyleSheet):
2822         * xml/XSLStyleSheetLibxslt.cpp:
2823         (WebCore::XSLStyleSheet::XSLStyleSheet):
2824         (WebCore::XSLStyleSheet::cachedResourceLoader):
2825         (WebCore::XSLStyleSheet::setParentStyleSheet):
2826         (WebCore::XSLStyleSheet::ownerDocument):
2827         * xml/XSLStyleSheetQt.cpp:
2828         (WebCore::XSLStyleSheet::XSLStyleSheet):
2829         (WebCore::XSLStyleSheet::cachedResourceLoader):
2830         (WebCore::XSLStyleSheet::ownerDocument):
2831
2832 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
2833
2834         Reviewed by Kent Tamura.
2835
2836         Reduce ref-count churn in shadowPseudoId.
2837         https://bugs.webkit.org/show_bug.cgi?id=53136
2838
2839         Refactoring, so no new tests.
2840
2841         * dom/Element.h:
2842         (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString&
2843         * html/ValidationMessage.cpp:
2844         (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto.
2845         * html/shadow/SliderThumbElement.cpp:
2846         (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file.
2847         * html/shadow/SliderThumbElement.h: Ditto.
2848         * rendering/MediaControlElements.cpp:
2849         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto.
2850         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto.
2851         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto.
2852         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto.
2853         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto.
2854         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto.
2855         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto.
2856         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto.
2857         (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto.
2858         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto.
2859         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto.
2860         * rendering/MediaControlElements.h: Ditto.
2861
2862 2011-01-26  Dave Hyatt  <hyatt@apple.com>
2863
2864         Reviewed by Dan Bernstein.
2865
2866         https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text.
2867
2868         Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl.
2869
2870         * css/html.css:
2871         Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those
2872         elements work properly.
2873
2874         * rendering/InlineFlowBox.cpp:
2875         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
2876         Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk
2877         in some cases (causing lines to all stack on top of one another).
2878
2879         * rendering/InlineTextBox.h:
2880         (WebCore::InlineTextBox::calculateBoundaries):
2881         Fix calculateBoundaries to be physical rather than logical.
2882
2883         * rendering/LayoutState.cpp:
2884         (WebCore::LayoutState::addForcedColumnBreak):
2885         * rendering/LayoutState.h:
2886         Rename childY to childLogicalOffset.
2887
2888         * rendering/RenderBlock.cpp:
2889         (WebCore::RenderBlock::layoutBlock):
2890         (WebCore::RenderBlock::addOverflowFromChildren):
2891         (WebCore::RenderBlock::addOverflowFromFloats):
2892         (WebCore::RenderBlock::collapseMargins):
2893         (WebCore::RenderBlock::estimateLogicalTopPosition):
2894         (WebCore::RenderBlock::layoutBlockChild):
2895         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
2896         (WebCore::RenderBlock::paintColumnRules):
2897         (WebCore::RenderBlock::paintColumnContents):
2898         (WebCore::RenderBlock::paintFloats):
2899         (WebCore::RenderBlock::selectionGaps):
2900         (WebCore::RenderBlock::removeFloatingObjectsBelow):
2901         (WebCore::RenderBlock::addOverhangingFloats):
2902         (WebCore::RenderBlock::hitTestFloats):
2903         (WebCore::RenderBlock::hitTestColumns):
2904         (WebCore::RenderBlock::calcColumnWidth):
2905         (WebCore::RenderBlock::desiredColumnWidth):
2906         (WebCore::RenderBlock::columnRectAt):
2907         (WebCore::RenderBlock::layoutColumns):
2908         (WebCore::RenderBlock::adjustPointToColumnContents):
2909         (WebCore::RenderBlock::adjustRectForColumns):
2910         (WebCore::RenderBlock::flipForWritingModeIncludingColumns):
2911         (WebCore::RenderBlock::adjustForColumns):
2912         (WebCore::RenderBlock::adjustForBorderFit):
2913         (WebCore::RenderBlock::nextPageLogicalTop):
2914         (WebCore::RenderBlock::applyBeforeBreak):
2915         (WebCore::RenderBlock::applyAfterBreak):
2916         (WebCore::RenderBlock::adjustForUnsplittableChild):
2917         (WebCore::RenderBlock::adjustLinePositionForPagination):
2918         * rendering/RenderBlock.h:
2919         (WebCore::RenderBlock::logicalRightOffsetForContent):
2920         (WebCore::RenderBlock::logicalLeftOffsetForContent):
2921         (WebCore::RenderBlock::leftForFloatIncludingMargin):
2922         (WebCore::RenderBlock::topForFloatIncludingMargin):
2923         * rendering/RenderBlockLineLayout.cpp:
2924         (WebCore::RenderBlock::layoutInlineChildren):
2925         (WebCore::RenderBlock::determineStartPosition):
2926         Reworking of all the RenderBlock column functions to support flipping and vertical modes.
2927
2928         * rendering/RenderBox.cpp:
2929         (WebCore::RenderBox::offsetFromContainer):
2930         (WebCore::RenderBox::flipForWritingModeIncludingColumns):
2931         Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts.
2932
2933         * rendering/RenderBox.h:
2934         (WebCore::RenderBox::clientLogicalBottom):
2935         Fix a bug in clientLogicalBottom where it didn't add in the right border/padding.
2936         
2937         * rendering/RenderFlexibleBox.cpp:
2938         (WebCore::RenderFlexibleBox::layoutBlock):
2939         Better terminology for pagination.
2940
2941         * rendering/RenderInline.cpp:
2942         (WebCore::RenderInline::offsetFromContainer):
2943         (WebCore::RenderInline::mapLocalToContainer):
2944         * rendering/RenderLayer.cpp:
2945         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2946         (WebCore::RenderLayer::hitTestChildLayerColumns):
2947         (WebCore::RenderLayer::localBoundingBox):
2948         (WebCore::RenderLayer::boundingBox):
2949         Patch painting in RenderLayers to be vertical-text-aware.
2950     
2951         * rendering/RenderObject.cpp:
2952         (WebCore::RenderObject::mapLocalToContainer):
2953         Add code to be flipped block-aware with columns.
2954
2955         * rendering/RenderTable.cpp:
2956         (WebCore::RenderTable::layout):
2957         * rendering/RenderTableRow.cpp:
2958         (WebCore::RenderTableRow::layout):
2959         * rendering/RenderTableSection.cpp:
2960         (WebCore::RenderTableSection::layoutRows):
2961         Fix pagination to use better terminology.
2962         
2963         * rendering/RenderText.cpp:
2964         (WebCore::RenderText::absoluteQuads):
2965         (WebCore::RenderText::absoluteQuadsForRange):
2966         Fix a bug where vertical text wasn't taken into account.
2967
2968 2011-01-26  Dimitri Glazkov  <dglazkov@chromium.org>
2969
2970         Unreviewed, rolling out r76719.
2971         http://trac.webkit.org/changeset/76719
2972         https://bugs.webkit.org/show_bug.cgi?id=53122
2973
2974         Broke a bunch of media tests in Chromium/Qt/GTK.
2975
2976 2011-01-26  Tony Chang  <tony@chromium.org>
2977
2978         Reviewed by Ryosuke Niwa.
2979
2980         [gtk] strip NUL characters when copying text/html on GTK+
2981         https://bugs.webkit.org/show_bug.cgi?id=52508
2982
2983         Putting NUL characters in the text/html clipboard doesn't work in
2984         WebKit GTK+ (the pasted value is truncated at the NUL).  Since we're
2985         already stripping this character for plain text (for Windows), strip
2986         it in text/html too.
2987
2988         * editing/MarkupAccumulator.h: mark function as virtual
2989         * editing/markup.cpp:
2990         (WebCore::StyledMarkupAccumulator::appendString):
2991         (WebCore::StyledMarkupAccumulator::takeResults): strip nulls
2992
2993 2011-01-26  Mario Sanchez Prada  <msanchez@igalia.com>
2994
2995         Reviewed by Martin Robinson.
2996
2997         [GTK] Reliable crash with getTextAtOffset()
2998         https://bugs.webkit.org/show_bug.cgi?id=53131
2999
3000         Properly calculate length in bytes for a UTF8 substring.
3001
3002         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
3003         (utf8Substr): Use character instead of bytes as units to
3004         calculate the length in bytes for the UTF8 string.
3005
3006 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
3007
3008         Reviewed by Kent Tamura.
3009
3010         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
3011         https://bugs.webkit.org/show_bug.cgi?id=53122
3012
3013         This is the first step in converting HTMLMediaElement to the new shadow DOM.
3014
3015         Should not regress any existing tests. No observable change in behavior.
3016
3017         * css/CSSSelector.cpp:
3018         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
3019         (WebCore::nameToPseudoTypeMap): Ditto.
3020         (WebCore::CSSSelector::extractPseudoType): Ditto.
3021         * css/CSSSelector.h: Ditto.
3022         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
3023         * rendering/MediaControlElements.cpp:
3024         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
3025             which is now replaced with virtual shadowPseudoId on each corresponding class.
3026         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
3027         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
3028             display type in constructor.
3029         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
3030             constructor argument.
3031         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
3032         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
3033             to disambiguate from the MediaControlMuteButtonElement.
3034         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
3035         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
3036         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
3037             constructor argument.
3038         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
3039         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
3040             constructor argument.
3041         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
3042         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
3043         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
3044         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
3045         (WebCore::MediaControlSeekBackButtonElement::create): Added.
3046         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
3047         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
3048         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
3049         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
3050             constructor argument.
3051         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
3052         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
3053             constructor argument.
3054         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
3055         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
3056             constructor argument.
3057         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
3058         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
3059             constructor argument.
3060         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
3061         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
3062             constructor argument.
3063         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
3064         * rendering/MediaControlElements.h:
3065         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
3066         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
3067         * rendering/RenderMedia.cpp:
3068         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
3069         (WebCore::RenderMedia::createSeekBackButton): Ditto.
3070         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
3071         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
3072         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
3073
3074 2011-01-26  Kenneth Russell  <kbr@google.com>
3075
3076         Reviewed by James Robinson.
3077
3078         Fix multisampling support in DrawingBuffer
3079         https://bugs.webkit.org/show_bug.cgi?id=53154
3080
3081         In DrawingBuffer's multisampling code path, fixed enum usage and a
3082         bug where it would incorrectly redefine the depth and stencil
3083         buffers. Hooked up multisampling code path in Chromium port.
3084
3085         Tested manually with some accelerated 2D canvas content.
3086         Multisampling isn't being switched on for the accelerated 2D
3087         canvas at the current time because it will increase fill rate
3088         requirements and cause a large number of rebaselines.
3089
3090         * platform/graphics/Extensions3D.h:
3091         * platform/graphics/chromium/DrawingBufferChromium.cpp:
3092         (WebCore::DrawingBuffer::publishToPlatformLayer):
3093         * platform/graphics/chromium/Extensions3DChromium.h:
3094         * platform/graphics/gpu/DrawingBuffer.cpp:
3095         (WebCore::DrawingBuffer::create):
3096         (WebCore::DrawingBuffer::reset):
3097         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
3098         (WebCore::Extensions3DOpenGL::supports):
3099
3100 2011-01-26  Tony Chang  <tony@chromium.org>
3101
3102         Unreviewed.
3103
3104         [chromium] revert r68310 because of race conditions detected by tsans
3105         https://bugs.webkit.org/show_bug.cgi?id=53185
3106
3107         Causes stability problems for Chromium, http://crbug.com/70589
3108
3109         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
3110         (WebCore::SQLiteFileSystem::registerSQLiteVFS):
3111
3112 2011-01-26  Justin Schuh  <jschuh@chromium.org>
3113
3114         Reviewed by Adam Barth.
3115
3116         Make fireEventsAndUpdateStyle use stack local vectors. 
3117         https://bugs.webkit.org/show_bug.cgi?id=46760
3118
3119         Test: animations/animation-add-events-in-handler.html
3120
3121         * page/animation/AnimationController.cpp:
3122         (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
3123
3124 2011-01-26  Nate Chapin  <japhet@chromium.org>
3125
3126         Reviewed by Adam Barth.
3127
3128         Remove m_URL from FrameLoader and depend on Document::url()
3129         instead. FrameLoader::url() will be removed in a followup patch.
3130         https://bugs.webkit.org/show_bug.cgi?id=41165
3131
3132         Refactor only, no new tests.
3133
3134         * WebCore.exp.in:
3135         * dom/Document.cpp:
3136         (WebCore::Document::Document):
3137         (WebCore::Document::updateURLForPushOrReplaceState):
3138         * loader/DocumentWriter.cpp:
3139         (WebCore::DocumentWriter::begin):
3140         * loader/FrameLoader.cpp:
3141         (WebCore::FrameLoader::iconURL):
3142         (WebCore::FrameLoader::didOpenURL):
3143         (WebCore::FrameLoader::didExplicitOpen):
3144         (WebCore::FrameLoader::receivedFirstData):
3145         (WebCore::FrameLoader::url):
3146         (WebCore::FrameLoader::setOutgoingReferrer):
3147         (WebCore::FrameLoader::startIconLoader):
3148         (WebCore::FrameLoader::commitIconURLToIconDatabase):
3149         (WebCore::FrameLoader::finishedParsing):
3150         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
3151         (WebCore::FrameLoader::checkIfRunInsecureContent):
3152         (WebCore::FrameLoader::updateFirstPartyForCookies):
3153         (WebCore::FrameLoader::loadInSameDocument):
3154         (WebCore::FrameLoader::commitProvisionalLoad):
3155         (WebCore::FrameLoader::open):
3156         (WebCore::FrameLoader::shouldScrollToAnchor):
3157         * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer().
3158
3159 2011-01-25  Brian Weinstein  <bweinstein@apple.com>
3160
3161         Reviewed by Antti Koivisto.
3162
3163         Crashes loading pages when cancelling subresource loads through WebKit
3164         https://bugs.webkit.org/show_bug.cgi?id=53123
3165         <rdar://problem/8914361>
3166         
3167         Fix a crash that happened when cancelling subresource loads through WebKit.
3168         
3169         When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource 
3170         can be called recursively on the same function, either leading to infinite recursion, or deleting 
3171         an object when it is not done being used.
3172         
3173         The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when 
3174         CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously).
3175
3176         Test: fast/loader/willSendRequest-null-for-preload.html
3177
3178         * loader/DocumentLoader.cpp:
3179         (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame 
3180             if our new URL is non-null.
3181         * loader/cache/CachedResourceLoader.cpp:
3182         (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer.
3183         (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this 
3184             function was called synchronously
3185             from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously, 
3186             so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous.
3187         (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests.
3188         (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector, 
3189             so use Deque methods.
3190         * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque.
3191
3192 2011-01-25  Pavel Podivilov  <podivilov@chromium.org>
3193
3194         Reviewed by Pavel Feldman.
3195
3196         Web Inspector: evaluate in console may not work when window.console is substituted or deleted.
3197         https://bugs.webkit.org/show_bug.cgi?id=53072
3198
3199         Test: inspector/console-substituted.html
3200
3201         * inspector/InjectedScriptSource.js:
3202         (.):
3203
3204 2011-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
3205
3206         Reviewed by Martin Robinson.
3207
3208         [cairo] Use CAIRO_OPERATOR_DARKEN when available
3209         https://bugs.webkit.org/show_bug.cgi?id=53084
3210
3211         Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of
3212         CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10.
3213
3214         * platform/graphics/cairo/CairoUtilities.cpp:
3215         (WebCore::toCairoOperator):
3216
3217 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
3218
3219         Reviewed by Yury Semikhatsky.
3220
3221         Web Inspector: visualize \n in strings as unicode cr
3222         symbol in stack variables sidebar.
3223         https://bugs.webkit.org/show_bug.cgi?id=53162
3224
3225         * inspector/front-end/ObjectPropertiesSection.js:
3226         (WebInspector.ObjectPropertyTreeElement.prototype.update):
3227
3228 2011-01-26  Andrey Kosyakov  <caseq@chromium.org>
3229
3230         Reviewed by Pavel Feldman.
3231
3232         Web Inspector: size is wrong for cached resources in Network panel
3233         - Set the size for 304/not modified resources from cached resource.
3234         - Add response headers size to resource transfer size.
3235         https://bugs.webkit.org/show_bug.cgi?id=52886
3236
3237         * inspector/InspectorResourceAgent.cpp:
3238         (WebCore::InspectorResourceAgent::didReceiveResponse):
3239         * inspector/front-end/Resource.js:
3240         (WebInspector.Resource):
3241         (WebInspector.Resource.prototype.get transferSize):
3242         (WebInspector.Resource.prototype.set responseHeaders):
3243         (WebInspector.Resource.prototype._headersSize):
3244         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
3245
3246 2011-01-26  Carol Szabo  <carol.szabo@nokia.com>
3247
3248         Reviewed by Simon Hausmann.
3249
3250         Fixed TiledBacking store to take into account new dirty regions caused by
3251         paint time layouts.
3252
3253         Flawed rendering design for QtWebKit resulting in artifacts being displayed
3254         https://bugs.webkit.org/show_bug.cgi?id=49184
3255
3256         There are no new tests as this patch aims at fixing flicker that
3257         happen randomly, mostly on slow hardware, thus are hard to reproduce
3258         consistently in an automated test.
3259
3260         This patch does not fully address the said bug but it is a step in the
3261         right direction. A full solution to the bug, as currently perceived,
3262         requires either a Qt GUI API change, a performance hit for QtWebKit,
3263         or a hack, until a full solution is provided this patch is progress.
3264
3265         * platform/graphics/TiledBackingStore.cpp:
3266         (WebCore::TiledBackingStore::updateTileBuffers):
3267         Changed to take into account newly dirtied areas created during
3268         tile update initiated layouts during the same update.
3269
3270 2011-01-26  Patrick Gansterer  <paroga@webkit.org>
3271
3272         Reviewed by Andreas Kling.
3273
3274         [SKIA] Remove "current path" of GraphicsContext
3275         https://bugs.webkit.org/show_bug.cgi?id=53124
3276
3277         * platform/graphics/GraphicsContext.h:
3278         * platform/graphics/skia/GraphicsContextSkia.cpp:
3279         (WebCore::GraphicsContext::clipPath):
3280         (WebCore::GraphicsContext::fillPath):
3281         (WebCore::GraphicsContext::strokePath):
3282         * platform/graphics/skia/PathSkia.cpp:
3283         (WebCore::Path::strokeBoundingRect):
3284         * platform/graphics/skia/PlatformContextSkia.cpp:
3285         * platform/graphics/skia/PlatformContextSkia.h:
3286
3287 2011-01-26  Zalan Bujtas <zbujtas@gmail.com>
3288
3289         Reviewed by Andreas Kling.
3290
3291         [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3.
3292
3293         QPainterPath returns angle values with the origo being at the top left corner,
3294         we need to account for this in normalAngleAtLength().
3295         This Regressed with r66979.
3296
3297         No new tests as this is already covered by ACID3.
3298
3299         * platform/graphics/qt/PathQt.cpp:
3300         (WebCore::Path::normalAngleAtLength):
3301
3302 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
3303
3304         Reviewed by Yury Semikhatsky.
3305
3306         Web Inspector: live edit does not update source snippet.
3307         https://bugs.webkit.org/show_bug.cgi?id=53097
3308
3309         * inspector/front-end/ScriptsPanel.js:
3310         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
3311
3312 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
3313
3314         Reviewed by Yury Semikhatsky.
3315
3316         Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'.
3317         https://bugs.webkit.org/show_bug.cgi?id=53018
3318
3319         * inspector/InjectedScript.cpp:
3320         (WebCore::InjectedScript::evaluate):
3321         (WebCore::InjectedScript::evaluateOnCallFrame):
3322         (WebCore::InjectedScript::getCompletions):
3323         (WebCore::InjectedScript::getCompletionsOnCallFrame):
3324         * inspector/InjectedScript.h:
3325         * inspector/InjectedScriptSource.js:
3326         (.):
3327         * inspector/Inspector.idl:
3328         * inspector/InspectorDebuggerAgent.cpp:
3329         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
3330         (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
3331         * inspector/InspectorDebuggerAgent.h:
3332         * inspector/InspectorRuntimeAgent.cpp:
3333         (WebCore::InspectorRuntimeAgent::evaluate):
3334         (WebCore::InspectorRuntimeAgent::getCompletions):
3335         * inspector/InspectorRuntimeAgent.h:
3336         * inspector/front-end/ConsoleView.js:
3337         (WebInspector.ConsoleView.prototype.completions):
3338         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
3339         (WebInspector.ConsoleView.prototype._enterKeyPressed):
3340         * inspector/front-end/ScriptsPanel.js:
3341         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper):
3342         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
3343         * inspector/front-end/SourceFrame.js:
3344         (WebInspector.SourceFrame.prototype._showPopup):
3345         * inspector/front-end/WatchExpressionsSidebarPane.js:
3346         (WebInspector.WatchExpressionsSection.prototype.update):
3347
3348 2011-01-26  Hironori Bono  <hbono@chromium.org>
3349
3350         Reviewed by Kent Tamura.
3351
3352         A speculative fix for Bug 52422 - [chromium] More crash in
3353         FontFallbackList::determinePitch(const Font* font)
3354         https://bugs.webkit.org/show_bug.cgi?id=52422
3355
3356         My previous change may not work on non-US Windows whose system fonts
3357         have localized aliases matching to the system locale because of a
3358         font-name mismatch in createFontIndirectAndGetWinName(). This change
3359         tries all the fonts installed in a PC and returns the first font that we
3360         can create without errors.
3361
3362         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
3363         (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData):
3364         Added a struct used for getLastResortFallbackFontProc().
3365         (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies().
3366         (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font.
3367
3368 2011-01-26  James Robinson  <jamesr@chromium.org>
3369
3370         Reviewed by Nate Chapin.
3371
3372         Add a DOMTimeStamp parameter to the requestAnimationFrame callback
3373         https://bugs.webkit.org/show_bug.cgi?id=53142
3374
3375         This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more
3376         closely match mozilla's proposal.  This is useful if the page has multiple imperative animations
3377         and wants to ensure that they all remain synchronized.  If each callback used Date.now() to
3378         update its animation state, they would potentially be out of sync with each other.  If they use
3379         the timestamp then all callbacks for the same "frame" will update to the same state.
3380
3381         Test: fast/animation/request-animation-frame-timestamps.html
3382
3383         * bindings/scripts/CodeGeneratorV8.pm:
3384         * bindings/scripts/test/V8/V8TestCallback.cpp:
3385         (WebCore::V8TestCallback::callbackWithClass2Param):
3386         * dom/Document.cpp:
3387         (WebCore::Document::serviceScriptedAnimations):
3388         * dom/Document.h:
3389         * dom/RequestAnimationFrameCallback.h:
3390         * dom/RequestAnimationFrameCallback.idl:
3391         * page/FrameView.cpp:
3392         (WebCore::FrameView::serviceScriptedAnimations):
3393         * page/FrameView.h:
3394
3395 2011-01-25  Yuzo Fujishima  <yuzo@google.com>
3396
3397         Unreviewed attempt to fix compilation error for Chromium Clang.
3398
3399         * platform/graphics/mac/ComplexTextController.cpp:
3400         (WebCore::ComplexTextController::advance):
3401
3402 2011-01-25  Ned Holbrook  <nholbrook@apple.com>
3403
3404         Reviewed by Dan Bernstein.
3405
3406         ComplexTextController incorrectly conflates string length and range of indexes
3407         https://bugs.webkit.org/show_bug.cgi?id=52760
3408
3409         Test: fast/text/offsetForPosition-complex-fallback.html
3410
3411         * platform/graphics/mac/ComplexTextController.cpp:
3412         (WebCore::ComplexTextController::offsetForPosition):
3413         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
3414         (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
3415         (WebCore::ComplexTextController::advance):
3416         * platform/graphics/mac/ComplexTextController.h:
3417         (WebCore::ComplexTextController::ComplexTextRun::create):
3418         (WebCore::ComplexTextController::ComplexTextRun::indexEnd):
3419         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
3420         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
3421         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
3422         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
3423         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
3424
3425 2011-01-25  Sam Weinig  <sam@webkit.org>
3426
3427         Reviewed by David Hyatt.
3428
3429         Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area
3430         https://bugs.webkit.org/show_bug.cgi?id=53048
3431
3432         Test: fast/overflow/overflow-rtl-vertical-origin.html
3433
3434         * rendering/RenderLayer.cpp:
3435         (WebCore::RenderLayer::scrollPosition):
3436         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
3437         Take the scroll origin into account when calculating scrollbars in more places.
3438
3439 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
3440
3441         Windows production build fix.
3442         Use correct configuration-specific path in makefile.
3443
3444         * WebCore.vcproj/WebCore.make:
3445
3446 2011-01-25  Kent Tamura  <tkent@chromium.org>
3447
3448         Reviewed by Dimitri Glazkov.
3449
3450         Radio button group state is not restored correctly
3451         https://bugs.webkit.org/show_bug.cgi?id=50442
3452
3453         Fixes a bug that radio button states are not restored correctly in
3454