Add basic rubber banding support
[WebKit-https.git] / Source / WebCore / ChangeLog
1 2011-01-28  Sam Weinig  <sam@webkit.org>
2
3         Reviewed by Maciej Stachowiak.
4
5         Add basic rubber banding support
6         <rdar://problem/8219429>
7         https://bugs.webkit.org/show_bug.cgi?id=53277
8
9         * page/EventHandler.cpp:
10         (WebCore::EventHandler::handleGestureEvent):
11         Pass gesture events to the FrameView.
12
13         * platform/ScrollAnimator.cpp:
14         (WebCore::ScrollAnimator::handleGestureEvent):
15         * platform/ScrollAnimator.h:
16         Add stubbed out implementation.
17
18         * platform/ScrollView.cpp:
19         (WebCore::ScrollView::ScrollView):
20         (WebCore::ScrollView::overhangAmount):
21         (WebCore::ScrollView::wheelEvent):
22         * platform/ScrollView.h:
23         * platform/ScrollableArea.cpp:
24         (WebCore::ScrollableArea::ScrollableArea):
25         (WebCore::ScrollableArea::handleGestureEvent):
26         * platform/ScrollableArea.h:
27         (WebCore::ScrollableArea::constrainsScrollingToContentEdge):
28         (WebCore::ScrollableArea::setConstrainsScrollingToContentEdge):
29         Move constrains scrolling bit to ScrollableArea from ScrollView.
30
31         (WebCore::ScrollableArea::contentsSize):
32         (WebCore::ScrollableArea::overhangAmount):
33         Add additional virtual functions for information needed by the animator.
34
35         * platform/mac/ScrollAnimatorMac.h:
36         * platform/mac/ScrollAnimatorMac.mm:
37         (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
38         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaX):
39         (WebCore::ScrollAnimatorMac::immediateScrollByDeltaY):
40         (WebCore::elasticDeltaForTimeDelta):
41         (WebCore::elasticDeltaForReboundDelta):
42         (WebCore::reboundDeltaForElasticDelta):
43         (WebCore::scrollWheelMultiplier):
44         (WebCore::ScrollAnimatorMac::handleWheelEvent):
45         (WebCore::ScrollAnimatorMac::handleGestureEvent):
46         (WebCore::ScrollAnimatorMac::pinnedInDirection):
47         (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
48         (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
49         (WebCore::ScrollAnimatorMac::smoothScrollWithEvent):
50         (WebCore::ScrollAnimatorMac::beginScrollGesture):
51         (WebCore::ScrollAnimatorMac::endScrollGesture):
52         (WebCore::ScrollAnimatorMac::snapRubberBand):
53         (WebCore::roundTowardZero):
54         (WebCore::roundToDevicePixelTowardZero):
55         (WebCore::ScrollAnimatorMac::snapRubberBandTimerFired):
56         Implement basic rubber banding.
57
58 2011-01-28  Dan Bernstein  <mitz@apple.com>
59
60         Reviewed by Anders Carlsson.
61
62         Changing unicode-bidi doesn’t force layout
63         https://bugs.webkit.org/show_bug.cgi?id=53311
64
65         Test: fast/dynamic/unicode-bidi.html
66
67         * rendering/style/RenderStyle.cpp:
68         (WebCore::RenderStyle::diff): Return a layout difference if unicode-bidi values differ.
69
70 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
71
72         Reviewed by Kent Tamura.
73
74         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
75         https://bugs.webkit.org/show_bug.cgi?id=53122
76
77         This is the first step in converting HTMLMediaElement to the new shadow DOM.
78
79         Should not regress any existing tests. No observable change in behavior.
80
81         * css/CSSSelector.cpp:
82         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
83         (WebCore::nameToPseudoTypeMap): Ditto.
84         (WebCore::CSSSelector::extractPseudoType): Ditto.
85         * css/CSSSelector.h: Ditto.
86         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
87         * rendering/MediaControlElements.cpp:
88         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
89             which is now replaced with virtual shadowPseudoId on each corresponding class.
90         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
91         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
92             display type in constructor.
93         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
94             constructor argument.
95         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
96         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
97             to disambiguate from the MediaControlMuteButtonElement.
98         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
99         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
100         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
101             constructor argument.
102         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
103         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
104             constructor argument.
105         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
106         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
107         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
108         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
109         (WebCore::MediaControlSeekBackButtonElement::create): Added.
110         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
111         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
112         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
113         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
114             constructor argument.
115         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
116         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
117             constructor argument.
118         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
119         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
120             constructor argument.
121         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
122         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
123             constructor argument.
124         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
125         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
126             constructor argument.
127         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
128         * rendering/MediaControlElements.h:
129         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
130         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
131         * rendering/RenderMedia.cpp:
132         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
133         (WebCore::RenderMedia::createSeekBackButton): Ditto.
134         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
135         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
136         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
137
138 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
139
140         Reviewed by Eric Carlson.
141
142         Split MediaControls out of RenderMedia.
143         https://bugs.webkit.org/show_bug.cgi?id=53252
144
145         Near-mechanical moving of stuff, no change in behavior, thus no new tests.
146
147         * Android.mk: Added MediaControls to build system.
148         * CMakeLists.txt: Ditto.
149         * GNUmakefile.am: Ditto.
150         * WebCore.gypi: Ditto.
151         * WebCore.pro: Ditto.
152         * WebCore.vcproj/WebCore.vcproj: Ditto.
153         * WebCore.xcodeproj/project.pbxproj: Ditto.
154         * html/HTMLMediaElement.cpp:
155         (WebCore::HTMLMediaElement::defaultEventHandler): Changed to forward events to MediaControls.
156         * html/shadow/MediaControls.cpp: Copied all controls-related methods from
157             Source/WebCore/rendering/RenderMedia.cpp, pulled them into their own class called MediaControls. 
158         * html/shadow/MediaControls.h: Ditto from Source/WebCore/rendering/RenderMedia.h.
159         * rendering/MediaControlElements.cpp:
160         (WebCore::MediaControlTimelineElement::defaultEventHandler): Changed to use MediaControls.
161         * rendering/RenderMedia.cpp:
162         (WebCore::RenderMedia::RenderMedia): Moved relevant constructor initializers out to MediaControls.
163         (WebCore::RenderMedia::destroy): Changed to use MediaControls.
164         (WebCore::RenderMedia::styleDidChange): Ditto.
165         (WebCore::RenderMedia::layout): Ditto.
166         (WebCore::RenderMedia::updateFromElement): Ditto.
167         * rendering/RenderMedia.h: Updated defs accordingly and removed player() accessor, which
168             is only used by sub-class RenderVideo.
169         (WebCore::RenderMedia::controls): Added.
170         * rendering/RenderVideo.cpp:
171         (WebCore::RenderVideo::~RenderVideo): Changed to access MediaPlayer* directly from mediaElement().
172         (WebCore::RenderVideo::calculateIntrinsicSize): Ditto.
173         (WebCore::RenderVideo::paintReplaced): Ditto.
174         (WebCore::RenderVideo::updatePlayer): Ditto.
175         (WebCore::RenderVideo::supportsAcceleratedRendering): Ditto.
176         (WebCore::RenderVideo::acceleratedRenderingStateChanged): Ditto.
177
178 2011-01-28  Pavel Feldman  <pfeldman@chromium.org>
179
180         Reviewed by Yury Semikhatsky.
181
182         Web Inspector: allow remote debugging with front-end
183         served from the cloud.
184         https://bugs.webkit.org/show_bug.cgi?id=53303
185
186         * inspector/front-end/inspector.js:
187
188 2011-01-28  Aparna Nandyal  <aparna.nand@wipro.com>
189
190         Reviewed by Andreas Kling.
191
192         Setting value of m_PressedPos to make scrolling smooth
193
194         Page scroll popup menu "Scroll here" option not working when cliking above scroll slider/handler.
195         https://bugs.webkit.org/show_bug.cgi?id=51349
196
197         The value of m_PressedPos was getting set before moveThumb() call
198         in all other scenarios except when "Scroll Here" option is used.
199         Hence scrolling with this option was not as expected even in cases
200         where scrolling was happening. The thumb would move in unexpected
201         direction. m_PressedPos is now set to pressed position so delta is
202         calculated.
203         Unable to write a test case as the test needs to click on "Scroll
204         Here" option of context sensitive menu and QTest is unable to do it.
205         Besides no new functionality introduced.
206
207         * platform/qt/ScrollbarQt.cpp:
208         (WebCore::Scrollbar::contextMenu):
209
210 2011-01-28  Andrey Kosyakov  <caseq@chromium.org>
211
212         Reviewed by Pavel Feldman.
213
214         Web Inspector: [Extensions API] add JSON schema for extensions API
215         https://bugs.webkit.org/show_bug.cgi?id=53236
216
217         * inspector/front-end/ExtensionAPISchema.json: Added.
218
219 2011-01-27  Zhenyao Mo  <zmo@google.com>
220
221         Reviewed by Kenneth Russell.
222
223         Remove _LENGTH enumerants
224         https://bugs.webkit.org/show_bug.cgi?id=53259
225
226         * html/canvas/WebGLRenderingContext.cpp: Remove queries for *LENGTH.
227         (WebCore::WebGLRenderingContext::getProgramParameter):
228         (WebCore::WebGLRenderingContext::getShaderParameter):
229         * html/canvas/WebGLRenderingContext.idl: Remove *LENGTH.
230
231 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
232
233         Reviewed by Yury Semikhatsky.
234
235         Web Inspector: syntax highlight inline JS and CSS in HTML resources
236         https://bugs.webkit.org/show_bug.cgi?id=30831
237
238         * inspector/front-end/SourceHTMLTokenizer.js:
239         (WebInspector.SourceHTMLTokenizer):
240         (WebInspector.SourceHTMLTokenizer.prototype.set line):
241         (WebInspector.SourceHTMLTokenizer.prototype.nextToken):
242         * inspector/front-end/SourceHTMLTokenizer.re2js:
243
244 2011-01-28  Alexander Pavlov  <apavlov@chromium.org>
245
246         Reviewed by Yury Semikhatsky.
247
248         Web Inspector: [STYLES] Up/Down-suggestion breaks an existing keyword
249         https://bugs.webkit.org/show_bug.cgi?id=53295
250
251         Select the current word suffix before switching to the next suggestion.
252
253         * inspector/front-end/StylesSidebarPane.js:
254         ():
255
256 2011-01-28  Alejandro G. Castro  <alex@igalia.com>
257
258         Reviewed by Xan Lopez.
259
260         [GTK] Fix dist compilation for the release
261         https://bugs.webkit.org/show_bug.cgi?id=53290
262
263         * GNUmakefile.am: Added inspector files to the extra dist.
264
265 2011-01-28  Ilya Sherman  <isherman@chromium.org>
266
267         Reviewed by Andreas Kling.
268
269         Const-correct HTMLSelectElement and WebSelectElement
270         https://bugs.webkit.org/show_bug.cgi?id=53293
271
272         * html/HTMLSelectElement.cpp:
273         (WebCore::HTMLSelectElement::value): const.
274         * html/HTMLSelectElement.h:
275
276 2011-01-28  Sheriff Bot  <webkit.review.bot@gmail.com>
277
278         Unreviewed, rolling out r76893.
279         http://trac.webkit.org/changeset/76893
280         https://bugs.webkit.org/show_bug.cgi?id=53287
281
282         It made some tests crash on GTK and Qt debug bots (Requested
283         by Ossy on #webkit).
284
285         * bridge/runtime_root.cpp:
286         (JSC::Bindings::RootObject::invalidate):
287         (JSC::Bindings::RootObject::addRuntimeObject):
288         (JSC::Bindings::RootObject::removeRuntimeObject):
289         * bridge/runtime_root.h:
290
291 2011-01-27  Greg Coletta  <greg.coletta@nokia.com>
292
293         Reviewed by Laszlo Gombos.
294
295         Get rid of prefix header dependency for WebKit2 build system
296         https://bugs.webkit.org/show_bug.cgi?id=50174
297
298         Guard EmptyProtocalDefinitions.h to make sure it's not included twice.
299
300         * platform/mac/EmptyProtocolDefinitions.h:
301
302 2011-01-27  Abhishek Arya  <inferno@chromium.org>
303
304         Reviewed by Dan Bernstein.
305
306         Recalc table sections if needed before calculating the first line
307         box baseline.
308         https://bugs.webkit.org/show_bug.cgi?id=53265
309
310         When we try to calculate the baseline position of a table cell,
311         we recurse through all the child sibling boxes (when children are
312         non inline) and add their first linebox baseline values. If one of
313         the children is a table with pending section recalc, we will access
314         wrong table section values. We recalc table sections if it is needed.
315
316         Test: fast/table/recalc-section-first-body-crash-main.html
317
318         * rendering/RenderTable.cpp:
319         (WebCore::RenderTable::firstLineBoxBaseline):
320
321 2011-01-27  Adrienne Walker  <enne@google.com>
322
323         Reviewed by Kenneth Russell.
324
325         [chromium] Add CRASH calls to further debug tiled compositor memcpy crash.
326         https://bugs.webkit.org/show_bug.cgi?id=52379
327
328         Test: LayoutTests/compositing (to verify these weren't triggered)
329
330         * platform/graphics/chromium/LayerTilerChromium.cpp:
331         (WebCore::LayerTilerChromium::invalidateRect):
332         (WebCore::LayerTilerChromium::update):
333
334 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
335
336         Reviewed by Pavel Feldman.
337
338         Web Inspector: [STYLES] Cancelled suggestion of a property name results in a visual artifact
339         https://bugs.webkit.org/show_bug.cgi?id=53242
340
341         * inspector/front-end/StylesSidebarPane.js:
342         (WebInspector.StylePropertyTreeElement.prototype):
343
344 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
345
346         Unreviewed, rolling out r76891.
347         http://trac.webkit.org/changeset/76891
348         https://bugs.webkit.org/show_bug.cgi?id=53280
349
350         Makes every layout test crash (Requested by othermaciej on
351         #webkit).
352
353         * page/EventHandler.cpp:
354         * page/EventHandler.h:
355         * rendering/RenderObject.cpp:
356         (WebCore::RenderObject::styleDidChange):
357
358 2011-01-27  Ryosuke Niwa  <rniwa@webkit.org>
359
360         Unreviewed, rolling out r76839.
361         http://trac.webkit.org/changeset/76839
362         https://bugs.webkit.org/show_bug.cgi?id=49744
363
364         broke pixel tests
365
366         * rendering/RenderBox.cpp:
367         (WebCore::RenderBox::localCaretRect):
368
369 2011-01-27  Emil A Eklund  <eae@chromium.org>
370
371         Reviewed by Darin Adler.
372
373         contentEditable formatBlock crashes on divs with contenteditable="false"
374         https://bugs.webkit.org/show_bug.cgi?id=53263
375
376         Check if editableRootForPosition returns null for position.
377
378         Test: editing/execCommand/format-block-contenteditable-false.html
379
380         * editing/FormatBlockCommand.cpp:
381         (WebCore::FormatBlockCommand::formatRange):
382
383 2011-01-27  Dimitri Glazkov  <dglazkov@chromium.org>
384
385         Reviewed by Darin Adler.
386
387         Remove RenderMedia members that aren't used.
388         https://bugs.webkit.org/show_bug.cgi?id=53245
389
390         Refactoring, no change in behavior, so no new tests.
391
392         * rendering/RenderMedia.h: Removed unused member variables.
393
394 2011-01-27  Michael Saboff  <msaboff@apple.com>
395
396         Reviewed by Darin Adler.
397
398         Potentially Unsafe HashSet of RuntimeObject* in RootObject definition
399         https://bugs.webkit.org/show_bug.cgi?id=53271
400
401         Precautionary change.
402         Changed RootObject to use WeakGCMap instead of HashSet.
403         Found will looking for another issue, but can't produce a test case
404         that is problematic.  THerefore there aren't any new tests.
405
406         * bridge/runtime_root.cpp:
407         (JSC::Bindings::RootObject::invalidate):
408         (JSC::Bindings::RootObject::addRuntimeObject):
409         (JSC::Bindings::RootObject::removeRuntimeObject):
410         * bridge/runtime_root.h:
411
412 2011-01-27  Kenneth Russell  <kbr@google.com>
413
414         Reviewed by James Robinson.
415
416         Rename Typed Array slice() to subset()
417         https://bugs.webkit.org/show_bug.cgi?id=53273
418
419         * bindings/js/JSArrayBufferViewHelper.h:
420         (WebCore::constructArrayBufferView):
421         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
422         (WebCore::constructWebGLArray):
423         * html/canvas/Float32Array.cpp:
424         (WebCore::Float32Array::subset):
425         * html/canvas/Float32Array.h:
426         * html/canvas/Float32Array.idl:
427         * html/canvas/Int16Array.cpp:
428         (WebCore::Int16Array::subset):
429         * html/canvas/Int16Array.h:
430         * html/canvas/Int16Array.idl:
431         * html/canvas/Int32Array.cpp:
432         (WebCore::Int32Array::subset):
433         * html/canvas/Int32Array.h:
434         * html/canvas/Int32Array.idl:
435         * html/canvas/Int8Array.cpp:
436         (WebCore::Int8Array::subset):
437         * html/canvas/Int8Array.h:
438         * html/canvas/Int8Array.idl:
439         * html/canvas/TypedArrayBase.h:
440         (WebCore::TypedArrayBase::subsetImpl):
441         * html/canvas/Uint16Array.cpp:
442         (WebCore::Uint16Array::subset):
443         * html/canvas/Uint16Array.h:
444         * html/canvas/Uint16Array.idl:
445         * html/canvas/Uint32Array.cpp:
446         (WebCore::Uint32Array::subset):
447         * html/canvas/Uint32Array.h:
448         * html/canvas/Uint32Array.idl:
449         * html/canvas/Uint8Array.cpp:
450         (WebCore::Uint8Array::subset):
451         * html/canvas/Uint8Array.h:
452         * html/canvas/Uint8Array.idl:
453
454 2011-01-27  Darin Adler  <darin@apple.com>
455
456         Reviewed by Dan Bernstein.
457
458         Changing cursor style has no effect until the mouse moves
459         https://bugs.webkit.org/show_bug.cgi?id=14344
460         rdar://problem/7563712
461
462         No tests added because we don't have infrastructure for testing actual cursor
463         changes (as opposed to cursor style computation) at this time. We might add it later.
464
465         * page/EventHandler.cpp:
466         (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon): Added.
467         * page/EventHandler.h: Ditto.
468
469         * rendering/RenderObject.cpp:
470         (WebCore::areNonIdenticalCursorListsEqual): Added.
471         (WebCore::areCursorsEqual): Added.
472         (WebCore::RenderObject::styleDidChange): Call dispatchFakeMouseMoveEventSoon if
473         cursor styles changed.
474
475 2011-01-27  Leo Yang  <leo.yang@torchmobile.com.cn>
476
477         Reviewed by Dirk Schulze.
478
479         SVG Use Cycle is not detected
480         https://bugs.webkit.org/show_bug.cgi?id=52544
481
482         We should check if SVGUseElement::buildInstanceTree finds problem
483         for every child node. If it finds problem for any children we must
484         return immediately because otherwise the foundProblem variable may
485         be rewritten to false.
486
487         Test: svg/custom/recursive-use2.svg
488
489         * svg/SVGUseElement.cpp:
490         (WebCore::SVGUseElement::buildInstanceTree):
491
492 2011-01-27  Zhenyao Mo  <zmo@google.com>
493
494         Reviewed by Kenneth Russell.
495
496         texSubImage2D's format/type needs to match the internalformat/type from the previous texImage2D call
497         https://bugs.webkit.org/show_bug.cgi?id=53054
498
499         Test: fast/canvas/webgl/tex-sub-image-2d-bad-args.html
500
501         * html/canvas/WebGLRenderingContext.cpp:
502         (WebCore::WebGLRenderingContext::texSubImage2DBase): Check format/type match.
503
504 2011-01-27  Yi Shen  <yi.4.shen@nokia.com>, Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
505
506         Reviewed by Andreas Kling.
507
508         [Qt] Add fullscreen media control button for html video
509         https://bugs.webkit.org/show_bug.cgi?id=51543
510
511         Implement media control fullscreen button for QtWebKit html5 video.
512
513         * css/mediaControlsQt.css:
514         (video::-webkit-media-controls-fullscreen-button):
515         * platform/qt/RenderThemeQt.cpp:
516         (WebCore::RenderThemeQt::paintMediaFullscreenButton):
517
518 2011-01-27  Nate Chapin  <japhet@chromium.org>
519
520         Reviewed by Adam Barth.
521
522         Remove FrameLoader::url() and update callers to use
523         Document::url().
524         https://bugs.webkit.org/show_bug.cgi?id=41165
525
526         Refactor, no new tests.
527
528         * WebCore.exp.in:
529         * dom/Document.cpp:
530         (WebCore::Document::processHttpEquiv):
531         (WebCore::Document::removePendingSheet):
532         * history/CachedFrame.cpp:
533         (WebCore::CachedFrameBase::CachedFrameBase):
534         * history/PageCache.cpp:
535         (WebCore::logCanCacheFrameDecision):
536         (WebCore::PageCache::canCachePageContainingThisFrame):
537         * html/HTMLFrameElementBase.cpp:
538         (WebCore::HTMLFrameElementBase::isURLAllowed):
539         * html/HTMLPlugInImageElement.cpp:
540         (WebCore::HTMLPlugInImageElement::allowedToLoadFrameURL):
541         * inspector/InspectorAgent.cpp:
542         (WebCore::InspectorAgent::inspectedURL):
543         * inspector/InspectorResourceAgent.cpp:
544         (WebCore::buildObjectForFrame):
545         * loader/DocumentWriter.cpp:
546         (WebCore::DocumentWriter::replaceDocument):
547         (WebCore::DocumentWriter::deprecatedFrameEncoding):
548         * loader/FrameLoader.cpp:
549         * loader/FrameLoader.h:
550         * loader/HistoryController.cpp:
551         (WebCore::HistoryController::updateForStandardLoad):
552         (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
553         (WebCore::HistoryController::updateForSameDocumentNavigation):
554         * loader/NavigationScheduler.cpp:
555         (WebCore::ScheduledHistoryNavigation::fire):
556         (WebCore::NavigationScheduler::scheduleLocationChange):
557         (WebCore::NavigationScheduler::scheduleRefresh):
558         * page/FrameView.cpp:
559         (WebCore::FrameView::updateControlTints):
560         * page/Location.cpp:
561         (WebCore::Location::url):
562         (WebCore::Location::setProtocol):
563         (WebCore::Location::setHost):
564         (WebCore::Location::setHostname):
565         (WebCore::Location::setPort):
566         (WebCore::Location::setPathname):
567         (WebCore::Location::setSearch):
568         (WebCore::Location::setHash):
569         (WebCore::Location::reload):
570         * page/Page.cpp:
571         (WebCore::Page::goToItem):
572
573 2011-01-27  Stephen White  <senorblanco@chromium.org>
574
575         Reviewed by Darin Adler.
576
577         Fix performance regression in ImageQualityController::objectDestroyed().
578         https://bugs.webkit.org/show_bug.cgi?id=52645
579
580         In r72282, I inadvertently introduced this regression by using a
581         linear search through the hash map on object destruction.  This was
582         because the hash key consisted of both object pointer and layer id,
583         but on object destruction we only know the object pointer, requiring
584         a search to find all the layers. 
585         By replacing the hash map with two nested hash maps, where the outer key
586         is the object and the inner key is the layer, we can find all the
587         relevant data for an object in one hash lookup.
588
589         * rendering/RenderBoxModelObject.cpp:
590         Replace the (object,layer)->size HashMap with object->layer and
591         layer->size HashMaps.
592         (WebCore::ImageQualityController::isEmpty):
593         Implement isEmpty() for the outer HashMap.
594         (WebCore::ImageQualityController::removeLayer):
595         When a layer is removed, remove it from the inner hash map.
596         (WebCore::ImageQualityController::set):
597         Implement set():  if the inner map exists, set the layer->size tuple
598         directly.  If not, create a new inner map, set the tuple, and insert
599         it in the outer map.
600         (WebCore::ImageQualityController::objectDestroyed):
601         Look up the object in the outer map only.
602         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
603         Cosmetic changes for the renamed now-outer hash map.
604         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
605         Do both outer and inner hash map lookups.  Call set() to add/update
606         entries to the hash maps.  keyDestroyed() is now removeLayer().
607         (WebCore::imageQualityController):
608         Make the ImageQualityController a file-static global, so it can be
609         created and destroyed on the fly.
610         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
611         If there is no ImageQualityController, don't call objectDestroyed().
612         If it's empty, delete it.
613         * rendering/RenderImage.cpp:
614         (WebCore::RenderImage::paintIntoRect):
615         Also pass the Image* as the (void*) layer, since 0 is not a valid
616         HashMap key.
617
618 2011-01-27  Adrienne Walker  <enne@google.com>
619
620         Reviewed by James Robinson.
621
622         [chromium] Tiled compositor crashes if compositing turned off mid-paint
623         https://bugs.webkit.org/show_bug.cgi?id=53198
624
625         * platform/graphics/chromium/LayerRendererChromium.cpp:
626         (WebCore::LayerRendererChromium::drawLayers):
627         * platform/graphics/chromium/LayerTilerChromium.cpp:
628         (WebCore::LayerTilerChromium::update):
629         (WebCore::LayerTilerChromium::draw):
630
631 2011-01-27  Carol Szabo <carol.szabo@nokia.com>
632
633         Reviewed by David Hyatt.
634
635         A corrupted counter tree is created when renderers are added to the
636         tree bypassing RenderObject::addChild
637         https://bugs.webkit.org/show_bug.cgi?id=51270
638
639         No new tests. This patch reimplements the fix for bugs 43812 and
640         51637 and hence all tests are already there as part of the original
641         fixes for those bugs.
642
643         * rendering/RenderCounter.cpp:
644         (WebCore::findPlaceForCounter):
645         Removed old workaround as this patch hopefully fixes the real
646         problem.
647         * rendering/RenderObject.cpp:
648         (WebCore::RenderObject::addChild):
649         Removed call to counter updater as it was moved to a lower level.
650         (WebCore::RenderObject::destroy):
651         Moved attached counter nodes destruction to after the node is
652         removed from the tree.
653         * rendering/RenderObjectChildList.cpp:
654         (WebCore::RenderObjectChildList::removeChildNode):
655         (WebCore::RenderObjectChildList::appendChildNode):
656         (WebCore::RenderObjectChildList::insertChildNode):
657         Added notifications to the Counter system such that the
658         CounterForest reflects the changes to the RendererTree.
659         * rendering/RenderWidget.cpp:
660         (WebCore::RenderWidget::destroy):
661         Applied the same changes as for RenderObject::destroy()
662         since RenderObject::destroy() is not called from here.
663
664 2011-01-27  Adam Roben  <aroben@apple.com>
665
666         Add WKCACFViewLayerTreeHost
667
668         This is a class that derives from CACFLayerTreeHost and uses a WKCACFView to render.
669
670         Fixes <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost should use
671         WKCACFView for rendering
672
673         * WebCore.vcproj/WebCore.vcproj: Added WKCACFViewLayerTreeHost.{cpp,h}.
674
675         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
676         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Make the test window have a
677         non-zero size. WKCACFView will always say it can't render if you pass it a 0-sized window,
678         so we need a non-empty window to perform a valid test.
679         (WebCore::CACFLayerTreeHost::create): First try to create a WKCACFViewLayerTreeHost, then
680         fall back to a LegacyCACFLayerTreeHost.
681         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to react to the
682         context flush from here...
683         (WebCore::CACFLayerTreeHost::contextDidChange): ...to here. Derived classes are required to
684         call this function whenever changes are flushed to the context.
685
686         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added contextDidChange.
687
688         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
689         (WebCore::LegacyCACFLayerTreeHost::createRenderer):
690         (WebCore::LegacyCACFLayerTreeHost::resize):
691         Changed to use flushContext instead of flushing the context manually so that we will always
692         notify the base class when the context gets flushed.
693
694         (WebCore::LegacyCACFLayerTreeHost::flushContext): Added a call to contextDidChange so the
695         base class will know what happened. Moved code to schedule a render from here...
696         (WebCore::LegacyCACFLayerTreeHost::contextDidChange): ...to here.
697
698         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added contextDidChange.
699
700         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp: Added.
701         (WebCore::WKCACFViewLayerTreeHost::create): If WebKitQuartzCoreAdditions, which provides
702         WKCACFView, isn't present, bail. Otherwise allocate and return a new host.
703         (WebCore::WKCACFViewLayerTreeHost::WKCACFViewLayerTreeHost): Initialize members.
704         (WebCore::WKCACFViewLayerTreeHost::updateViewIfNeeded): Update the view if we previously
705         marked that we needed to do so, and flush the context if our layer's bounds have changed.
706         (WebCore::WKCACFViewLayerTreeHost::contextDidChangeCallback): Call through to
707         contextDidChange.
708         (WebCore::WKCACFViewLayerTreeHost::contextDidChange): Tell the WKCACFView to start rendering
709         (if we didn't already), then call up to the base class.
710         (WebCore::WKCACFViewLayerTreeHost::initializeContext): Set the context's user data, the
711         view's layer, and hook up our "context did change" callback.
712         (WebCore::WKCACFViewLayerTreeHost::resize): Mark that the view needs to be updated the next
713         time we paint.
714         (WebCore::WKCACFViewLayerTreeHost::createRenderer): Update our view and return whether it is
715         able to render or not.
716         (WebCore::WKCACFViewLayerTreeHost::destroyRenderer): Clear out all the info we passed down
717         to the view.
718         (WebCore::WKCACFViewLayerTreeHost::lastCommitTime): Call through to the view.
719         (WebCore::WKCACFViewLayerTreeHost::flushContext): Ditto.
720         (WebCore::WKCACFViewLayerTreeHost::paint): Update the view so it will draw at the right
721         size, then call up to the base class.
722         (WebCore::WKCACFViewLayerTreeHost::render): Invalidate the view using the passed-in dirty
723         rects, then ask it to draw.
724
725         * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h: Copied from Source/WebCore/platform/graphics/ca/win/LegacyCACFLayerTreeHost.h.
726
727 2011-01-27  Adam Roben  <aroben@apple.com>
728
729         Move LegacyCACFLayerTreeHost into its own files
730
731         More preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
732         should use WKCACFView for rendering
733
734         Reviewed by Simon Fraser.
735
736         * WebCore.vcproj/WebCore.vcproj: Added LegacyCACFLayerTreeHost.{cpp,h}.
737
738         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Moved code from here to new files.
739
740         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp: Added.
741         * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h: Added.
742
743 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
744
745         Unreviewed WinCE build fix for r76824.
746
747         * platform/wince/DragDataWinCE.cpp:
748         (WebCore::DragData::dragDataMap):
749
750 2011-01-27  Adam Roben  <aroben@apple.com>
751
752         Split CACFLayerTreeHost into base and derived classes
753
754         The derived class, LegacyCACFLayerTreeHost, contains all the D3D-related code. A later patch
755         will add a new derived class that replaces the D3D code with a different rendering API.
756
757         For now, LegacyCACFLayerTreeHost lives in CACFLayerTreeHost.cpp. This keeps the diff a
758         little smaller. A later patch will move it to its own source files.
759
760         Preparation for <http://webkit.org/b/53251> <rdar://problem/8925496> CACFLayerTreeHost
761         should use WKCACFView for rendering
762
763         Reviewed by Simon Fraser.
764
765         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
766         (WebCore::CACFLayerTreeHost::acceleratedCompositingAvailable): Clear the window before
767         destroying the host, as that is now the API contract that clients must fulfill.
768         (WebCore::LegacyCACFLayerTreeHost::create): Added. Simple creator.
769         (WebCore::CACFLayerTreeHost::create): Now instantiates a LegacyCACFLayerTreeHost. Calls the
770         new initialize function to perform initialization that has to happen after the vtable has
771         been set up.
772
773         (WebCore::LegacyCACFLayerTreeHost::LegacyCACFLayerTreeHost):
774         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost):
775         (WebCore::LegacyCACFLayerTreeHost::initializeContext):
776         (WebCore::CACFLayerTreeHost::initialize):
777         Moved some initialization code from the CACFLayerTreeHost constructor into these new
778         functions.
779
780         (WebCore::LegacyCACFLayerTreeHost::~LegacyCACFLayerTreeHost): Added. Moved code here from
781         ~CACFLayerTreeHost.
782         (WebCore::CACFLayerTreeHost::~CACFLayerTreeHost): Rather than clearing the window at this
783         point (which would be too late, since we won't be able to call into the derived class's
784         virtual functions), just assert that it has already been cleared (or was never set in the
785         first place).
786         (WebCore::LegacyCACFLayerTreeHost::createRenderer): Renamed from
787         CACFLayerTreeHost::createRenderer, and changed to use getters instead of accessing
788         CACFLayerTreeHost's data members directly.
789
790         (WebCore::LegacyCACFLayerTreeHost::destroyRenderer):
791         (WebCore::CACFLayerTreeHost::destroyRenderer):
792         Moved some code to the new LegacyCACFLayerTreeHost function.
793
794         (WebCore::LegacyCACFLayerTreeHost::resize):
795         (WebCore::LegacyCACFLayerTreeHost::renderTimerFired):
796         Moved these functions to LegacyCACFLayerTreeHost.
797
798         (WebCore::LegacyCACFLayerTreeHost::paint):
799         (WebCore::CACFLayerTreeHost::paint):
800         Moved some code to the new LegacyCACFLayerTreeHost function.
801
802         (WebCore::LegacyCACFLayerTreeHost::render):
803         (WebCore::LegacyCACFLayerTreeHost::renderSoon):
804         Moved these functions to LegacyCACFLayerTreeHost.
805
806         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Moved code to flush the context
807         from here...
808         (WebCore::LegacyCACFLayerTreeHost::flushContext): ...to this new function.
809
810         (WebCore::LegacyCACFLayerTreeHost::lastCommitTime): Moved code to get the last commit time
811         to this new function...
812         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): ...from here.
813
814         (WebCore::LegacyCACFLayerTreeHost::initD3DGeometry):
815         (WebCore::LegacyCACFLayerTreeHost::resetDevice):
816         Moved these functions to LegacyCACFLayerTreeHost.
817
818         * platform/graphics/ca/win/CACFLayerTreeHost.h: Made some functions virtual, removed some
819         members that have moved to LegacyCACFLayerTreeHost, grouped remaining members more
820         logically, and added some getters used by LegacyCACFLayerTreeHost.
821
822 2011-01-27  Adam Roben  <aroben@apple.com>
823
824         Move CACFLayerTreeHostClient to its own header file
825
826         Rubber-stamped by Steve Falkenburg.
827
828         * WebCore.vcproj/WebCore.vcproj: Added CACFLayerTreeHostClient.h. Also let VS have its way
829         with the file.
830
831         * platform/graphics/ca/win/CACFLayerTreeHost.cpp: Added new #include.
832
833         * platform/graphics/ca/win/CACFLayerTreeHost.h: Removed CACFLayerTreeHostClient.
834
835         * platform/graphics/ca/win/CACFLayerTreeHostClient.h: Added.
836
837         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp: Moved some #includes here
838         from the header file.
839
840         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Replaced broader #includes
841         with more specific ones, plus a forward-declaration.
842
843 2011-01-27  James Simonsen  <simonjam@chromium.org>
844
845         Reviewed by Tony Chang.
846
847         [Chromium] Simplify small caps logic in complex text on linux
848         https://bugs.webkit.org/show_bug.cgi?id=53207
849
850         Test: fast/text/atsui-multiple-renderers.html
851               fast/text/atsui-small-caps-punctuation-size.html
852
853         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
854         (WebCore::ComplexTextController::nextScriptRun): Remove redundant logic. Case changes in a text run imply FontData changes.
855         (WebCore::ComplexTextController::setupFontForScriptRun): Update comment to reflect above.
856
857 2011-01-27  Adam Barth  <abarth@webkit.org>
858
859         In which I attempt to fix the EFL build.
860
861         * CMakeLists.txt:
862
863 2011-01-25  Levi Weintraub  <leviw@chromium.org>
864
865         Reviewed by Darin Adler.
866
867         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
868         Corrected for mistake in r76625
869
870         Undo moves caret to invalid position
871         https://bugs.webkit.org/show_bug.cgi?id=49744
872
873         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
874                editing/selection/caret-painting-after-paste-undo.html
875
876         * rendering/RenderBox.cpp:
877         (WebCore::RenderBox::localCaretRect):
878
879 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
880
881         Unreviewed, rolling out r76825.
882         http://trac.webkit.org/changeset/76825
883         https://bugs.webkit.org/show_bug.cgi?id=53256
884
885         "caused crashes on GTK and chromium" (Requested by rniwa on
886         #webkit).
887
888         * rendering/RenderBoxModelObject.cpp:
889         (WebCore::ImageQualityController::keyDestroyed):
890         (WebCore::ImageQualityController::objectDestroyed):
891         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
892         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
893         (WebCore::imageQualityController):
894         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
895
896 2011-01-27  Adam Barth  <abarth@webkit.org>
897
898         Reviewed by Eric Seidel.
899
900         Generalize the mechanism view-source uses to remember the source for an HTMLToken
901         https://bugs.webkit.org/show_bug.cgi?id=53200
902
903         Currently view-source tracks the source associated with each HTMLToken.
904         We want to re-use this mechanism for the new XSS auditor.  This patch
905         moves this code into its own class so it can be shared between the
906         view-source parser and the general HTML parser.  This patch also add
907         support for tracking the source of tokens that span document.write
908         boundaries.
909
910         No functional change.  This code change is somewhat tested by our
911         view-source layout tests.
912
913         * Android.mk:
914         * GNUmakefile.am:
915         * WebCore.gypi:
916         * WebCore.pro:
917         * WebCore.vcproj/WebCore.vcproj:
918         * WebCore.xcodeproj/project.pbxproj:
919             - Fun with updating build files.
920         * html/parser/HTMLDocumentParser.cpp:
921         (WebCore::HTMLDocumentParser::pumpTokenizer):
922             - Teach HTMLDocumentParser to track the source for HTMLTokens.
923               Currently, this information isn't used, but it will be shortly.
924               I ran the HTML parser benchmark and this change didn't have a
925               measurable effect.
926         * html/parser/HTMLDocumentParser.h:
927             - Composite in the HTMLSourceTracker.
928         * html/parser/HTMLSourceTracker.cpp: Added.
929         (WebCore::HTMLSourceTracker::HTMLSourceTracker):
930         (WebCore::HTMLSourceTracker::start):
931         (WebCore::HTMLSourceTracker::end):
932             - This function should eventualy be folded into HTMLTokenizer.
933         (WebCore::HTMLSourceTracker::sourceForToken):
934         * html/parser/HTMLSourceTracker.h: Added.
935         * html/parser/HTMLToken.h:
936             - Now HTMLTokens always have a start index of zero.  To do the job
937               of the old start index, this patch introduces the notion of a
938               baseOffset.  Unlike the start index (which was used as the base
939               offset for all the other indicies), the baseOffset can change
940               over the lifetime of the token.  We need the flexibility to
941               change the offset for tokens that span document.write boundaries.
942               Values are now normalized to zero-offset when stored.
943         (WebCore::HTMLToken::clear):
944         (WebCore::HTMLToken::setBaseOffset):
945         (WebCore::HTMLToken::end):
946         (WebCore::HTMLToken::beginAttributeName):
947         (WebCore::HTMLToken::endAttributeName):
948         (WebCore::HTMLToken::beginAttributeValue):
949         (WebCore::HTMLToken::endAttributeValue):
950         * html/parser/HTMLViewSourceParser.cpp:
951             - Updates the HTMLViewSourceParser to use the new
952               HTMLSourceTracker.
953         (WebCore::HTMLViewSourceParser::pumpTokenizer):
954         (WebCore::HTMLViewSourceParser::append):
955         (WebCore::HTMLViewSourceParser::sourceForToken):
956             - This function now just calls through to HTMLSourceTracker.
957         * html/parser/HTMLViewSourceParser.h:
958         * platform/text/SegmentedString.cpp:
959         (WebCore::SegmentedString::currentColumn):
960         (WebCore::SegmentedString::setCurrentPosition):
961         * platform/text/SegmentedString.h:
962         (WebCore::SegmentedString::numberOfCharactersConsumed):
963             - We need to handle the general case now.  The "slow" version
964               doesn't turn out to be any slower in practice anyway.
965
966 2011-01-27  Sam Weinig  <sam@webkit.org>
967
968         Fix all the builds.
969
970         * platform/ScrollView.cpp:
971         (WebCore::ScrollView::paintOverhangAreas): Add parameters.
972
973 2011-01-27  Sam Weinig  <sam@webkit.org>
974
975         Reviewed by Dave Hyatt.
976
977         Add ability to do an unconstrained scroll on a ScrollView
978         https://bugs.webkit.org/show_bug.cgi?id=53249
979
980         * platform/ScrollView.cpp:
981         (WebCore::ScrollView::ScrollView):
982         Initialize m_constrainsScrollingToContentEdge to true.
983
984         (WebCore::ScrollView::setScrollOffset):
985         Only constrain the offset if the m_constrainsScrollingToContentEdge is set.
986
987         (WebCore::ScrollView::updateScrollbars):
988         Simplify expression converting an IntSize to an IntPoint.
989         
990         (WebCore::ScrollView::paint):
991         Paint the overhang if there is any.
992         
993         (WebCore::ScrollView::calculateOverhangAreasForPainting):
994         Calculate the overhang in viewport coordinates for painting.
995
996         * platform/ScrollView.h:
997         (WebCore::ScrollView::constrainsScrollingToContentEdge):
998         (WebCore::ScrollView::setConstrainsScrollingToContentEdge):
999         Add bit to control whether the scroll position should be constrained
1000         to the content edge when set.
1001
1002         * platform/ScrollbarThemeComposite.cpp:
1003         (WebCore::usedTotalSize):
1004         (WebCore::ScrollbarThemeComposite::thumbPosition):
1005         (WebCore::ScrollbarThemeComposite::thumbLength):
1006         * platform/mac/ScrollbarThemeMac.mm:
1007         (WebCore::ScrollbarThemeMac::paint):
1008         Improve calculations of thumb size and position to take overhang into account.
1009
1010 2011-01-27  Dirk Schulze  <krit@webkit.org>
1011
1012         Reviewed by Nikolas Zimmermann.
1013
1014         SVG animation of Paths with segments of different coordinate modes on begin and end
1015         https://bugs.webkit.org/show_bug.cgi?id=52984
1016
1017         At the moment we just support SVG path animations, if the number of segments on the given start path
1018         is the same as the number of segments on the given end path. But a segment on a given position must be identical
1019         on both paths as well. Not only the segment type, also the coordinate mode of the segments must be identical.
1020         If MoveToRel is on the second position on the start path a MoveToRel must be on the second position
1021         of the end path too. According to the SVG spec, at least the coordinate mode can differ. Means, if we have MoveToRel
1022         in the start path, we can use MoveToAbs on the same position in the end path.
1023
1024         This patch fixes the blending code to follow the spec here. It was necessary to track the current position of
1025         both paths, transform coordinates to the same coordinate mode and transform the resulting animation coordinate back
1026         to the coordinate mode of either the start or the end path. Which mode is taken depends on the progress of the
1027         animation.
1028
1029         Tests: svg/animations/animate-path-animation-Cc-Ss.html
1030                svg/animations/animate-path-animation-Ll-Vv-Hh.html
1031                svg/animations/animate-path-animation-Qq-Tt.html
1032                svg/animations/animate-path-animation-cC-sS-inverse.html
1033                svg/animations/animate-path-animation-lL-vV-hH-inverse.html
1034                svg/animations/animate-path-animation-qQ-tT-inverse.html
1035
1036         * svg/SVGPathBlender.cpp:
1037         (WebCore::blendFloatPoint):
1038         (WebCore::blendAnimatedFloat):
1039         (WebCore::SVGPathBlender::blendAnimatedDimensionalFloat):
1040         (WebCore::SVGPathBlender::blendAnimatedFloatPoint):
1041         (WebCore::SVGPathBlender::blendMoveToSegment):
1042         (WebCore::SVGPathBlender::blendLineToSegment):
1043         (WebCore::SVGPathBlender::blendLineToHorizontalSegment):
1044         (WebCore::SVGPathBlender::blendLineToVerticalSegment):
1045         (WebCore::SVGPathBlender::blendCurveToCubicSegment):
1046         (WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
1047         (WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
1048         (WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
1049         (WebCore::SVGPathBlender::blendArcToSegment):
1050         (WebCore::coordinateModeOfCommand):
1051         (WebCore::isSegmentEqual):
1052         (WebCore::SVGPathBlender::blendAnimatedPath):
1053         (WebCore::SVGPathBlender::cleanup):
1054         * svg/SVGPathBlender.h:
1055
1056 2011-01-27  Cris Neckar  <cdn@chromium.org>
1057
1058         Reviewed by Dimitri Glazkov.
1059
1060         Clear the parent on a css keyframe's m_style when removing it from the stylesheet.
1061         https://bugs.webkit.org/show_bug.cgi?id=52320
1062
1063         Test: fast/css/css-keyframe-style-crash.html
1064
1065         * css/CSSRuleList.cpp:
1066         (WebCore::CSSRuleList::deleteRule):
1067         * css/WebKitCSSKeyframesRule.cpp:
1068         (WebCore::WebKitCSSKeyframesRule::~WebKitCSSKeyframesRule):
1069
1070 2011-01-27  Rob Buis  <rwlbuis@gmail.com>
1071
1072         Reviewed by Kent Tamura.
1073
1074         Color changes to option elements in a select multiple aren't drawn immediately
1075         https://bugs.webkit.org/show_bug.cgi?id=49790
1076
1077         Redirect style changes on <option> element to the owner <select> element.
1078
1079         Test: fast/repaint/select-option-background-color.html
1080
1081         * html/HTMLOptionElement.cpp:
1082         (WebCore::HTMLOptionElement::setRenderStyle):
1083
1084 2011-01-19  Stephen White  <senorblanco@chromium.org>
1085
1086         Reviewed by Darin Adler.
1087
1088         Fix performance regression in ImageQualityController::objectDestroyed().
1089         https://bugs.webkit.org/show_bug.cgi?id=52645
1090
1091         In r72282, I inadvertently introduced this regression by using a
1092         linear search through the hash map on object destruction.  This was
1093         because the hash key consisted of both object pointer and layer id,
1094         but on object destruction we only know the object pointer, requiring
1095         a search to find all the layers. 
1096         By replacing the hash map with two nested hash maps, where the outer key
1097         is the object and the inner key is the layer, we can find all the
1098         relevant data for an object in one hash lookup.
1099
1100         * rendering/RenderBoxModelObject.cpp:
1101         Replace the (object,layer)->size HashMap with object->layer and
1102         layer->size HashMaps.
1103         (WebCore::ImageQualityController::isEmpty):
1104         Implement isEmpty() for the outer HashMap.
1105         (WebCore::ImageQualityController::removeLayer):
1106         When a layer is removed, remove it from the inner hash map.
1107         (WebCore::ImageQualityController::set):
1108         Implement set():  if the inner map exists, set the layer->size tuple
1109         directly.  If not, create a new inner map, set the tuple, and insert
1110         it in the outer map.
1111         (WebCore::ImageQualityController::objectDestroyed):
1112         Look up the object in the outer map only.
1113         (WebCore::ImageQualityController::highQualityRepaintTimerFired):
1114         Cosmetic changes for the renamed now-outer hash map.
1115         (WebCore::ImageQualityController::shouldPaintAtLowQuality):
1116         Do both outer and inner hash map lookups.  Call set() to add/update
1117         entries to the hash maps.  keyDestroyed() is now removeLayer().
1118         (WebCore::imageQualityController):
1119         Make the ImageQualityController a file-static global, so it can be
1120         created and destroyed on the fly.
1121         (WebCore::RenderBoxModelObject::~RenderBoxModelObject):
1122         If there is no ImageQualityController, don't call objectDestroyed().
1123         If it's empty, delete it.
1124
1125
1126 2011-01-26  Enrica Casucci  <enrica@apple.com>
1127
1128         Reviewed by Darin Adler and Adam Roben.
1129
1130         WebKit2: add support for drag and drop on Windows
1131         https://bugs.webkit.org/show_bug.cgi?id=52775
1132         <rdar://problem/8514409>
1133         
1134         On Windows the access to the content being dragged is
1135         provided via the IDataObject interface that is made available
1136         to the window that registers itself as drop target.
1137         Since this interface cannot be accessed from the WebProcess,
1138         in every call to one of the methods of the IDropTarget interface
1139         we serialize the content of the drag clipboard and send it over to
1140         the WebProcess.
1141         The bulk of this patch consists in the refactoring needed in DragData
1142         and ClipboardWin classes to extract the data from the serialized object.
1143         
1144         * platform/DragData.cpp:
1145         * platform/DragData.h:
1146         * platform/win/ClipboardUtilitiesWin.cpp:
1147         (WebCore::getWebLocData):
1148         (WebCore::getURL):
1149         (WebCore::getPlainText):
1150         (WebCore::getTextHTML):
1151         (WebCore::getCFHTML):
1152         (WebCore::fragmentFromFilenames):
1153         (WebCore::containsFilenames):
1154         (WebCore::fragmentFromHTML):
1155         (WebCore::containsHTML):
1156         (WebCore::getClipboardData):
1157         * platform/win/ClipboardUtilitiesWin.h:
1158         * platform/win/ClipboardWin.cpp:
1159         (WebCore::Clipboard::create):
1160         (WebCore::ClipboardWin::ClipboardWin):
1161         (WebCore::ClipboardWin::getData):
1162         (WebCore::ClipboardWin::types):
1163         (WebCore::ClipboardWin::files):
1164         (WebCore::ClipboardWin::hasData):
1165         * platform/win/ClipboardWin.h:
1166         (WebCore::ClipboardWin::create):
1167         * platform/win/DragDataWin.cpp:
1168         (WebCore::DragData::DragData):
1169         (WebCore::DragData::containsURL):
1170         (WebCore::DragData::dragDataMap):
1171         (WebCore::DragData::asURL):
1172         (WebCore::DragData::containsFiles):
1173         (WebCore::DragData::asFilenames):
1174         (WebCore::DragData::containsPlainText):
1175         (WebCore::DragData::asPlainText):
1176         (WebCore::DragData::canSmartReplace):
1177         (WebCore::DragData::containsCompatibleContent):
1178         (WebCore::DragData::asFragment):
1179
1180 2011-01-27  Mario Sanchez Prada  <msanchez@igalia.com>
1181
1182         Reviewed by Martin Robinson.
1183
1184         [GTK] Space characters in source document interfere with reported caret offset
1185         https://bugs.webkit.org/show_bug.cgi?id=53033
1186
1187         Calculate caret offset from rendered text instead of from node contents.
1188
1189         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
1190         (objectAndOffsetUnignored): Calculate the caret offset based only
1191         on positions and ranges, instead of using the computed offset in
1192         the container node.
1193
1194 2011-01-26  Alexey Proskuryakov  <ap@apple.com>
1195
1196         Reviewed by Darin Adler.
1197
1198         https://bugs.webkit.org/show_bug.cgi?id=53197
1199         <rdar://problem/8895682> Make WebKit2 printing asynchronous
1200
1201         * WebCore.exp.in: Export more PrintContext methods that we didn't use on Mac before.
1202
1203         * page/PrintContext.cpp: (WebCore::PrintContext::spoolRect): Changed to make the same
1204         transformation as spoolPages does for consistency.
1205
1206 2011-01-27  David Grogan  <dgrogan@google.com>
1207
1208         Reviewed by Jeremy Orlow.
1209
1210         initial support for close() in indexeddb backend
1211         https://bugs.webkit.org/show_bug.cgi?id=53150
1212
1213         Test: storage/indexeddb/transaction-after-close.html
1214
1215         * storage/IDBDatabase.cpp:
1216         (WebCore::IDBDatabase::IDBDatabase):
1217         (WebCore::IDBDatabase::transaction):
1218         (WebCore::IDBDatabase::close):
1219         * storage/IDBDatabase.h:
1220         * storage/IDBDatabase.idl:
1221         * storage/IDBDatabaseBackendImpl.cpp:
1222         (WebCore::IDBDatabaseBackendImpl::transaction):
1223         (WebCore::IDBDatabaseBackendImpl::close):
1224
1225 2011-01-27  Dirk Schulze  <krit@webkit.org>
1226
1227         Reviewed by Nikolas Zimmermann.
1228
1229         SVG animation doesn't support calcMode discrete for number and color values.
1230         https://bugs.webkit.org/show_bug.cgi?id=53189
1231
1232         Add support for calcMode discrete on number and color animation.
1233
1234         Tests: svg/animations/animate-color-calcMode-discrete.html
1235                svg/animations/animate-number-calcMode-discrete.html
1236
1237         * svg/SVGAnimateElement.cpp:
1238         (WebCore::SVGAnimateElement::calculateAnimatedValue):
1239
1240 2011-01-26  Zhenyao Mo  <zmo@google.com>
1241
1242         Reviewed by Kenneth Russell.
1243
1244         shaderSource needs to preserve original source
1245         https://bugs.webkit.org/show_bug.cgi?id=52833
1246
1247         Test: fast/canvas/webgl/gl-getshadersource.html
1248
1249         * html/canvas/WebGLRenderingContext.cpp:
1250         (WebCore::WebGLRenderingContext::getShaderParameter): Intercept SHADER_SOURCE_LENGTH.
1251         (WebCore::WebGLRenderingContext::getShaderSource): Intercept the call.
1252         (WebCore::WebGLRenderingContext::shaderSource): Cache the source.
1253         * html/canvas/WebGLShader.cpp: Cache shader source.
1254         (WebCore::WebGLShader::WebGLShader):
1255         * html/canvas/WebGLShader.h: Ditto.
1256         (WebCore::WebGLShader::getSource):
1257         (WebCore::WebGLShader::setSource):
1258
1259 2011-01-27  Patrick Gansterer  <paroga@webkit.org>
1260
1261         Unreviewed WinCE build fix for r76743.
1262
1263         * platform/graphics/wince/FontWinCE.cpp:
1264         (WebCore::TextRunComponent::TextRunComponent):
1265
1266 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
1267
1268         Reviewed by Pavel Feldman.
1269
1270         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
1271         https://bugs.webkit.org/show_bug.cgi?id=53234
1272
1273         * inspector/front-end/ScopeChainSidebarPane.js:
1274         (WebInspector.ScopeChainSidebarPane):
1275         (WebInspector.ScopeChainSidebarPane.prototype.update):
1276
1277 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1278
1279         Unreviewed, rolling out r76789.
1280         http://trac.webkit.org/changeset/76789
1281         https://bugs.webkit.org/show_bug.cgi?id=53238
1282
1283         Broke GTK layout tests (Requested by podivilov on #webkit).
1284
1285         * inspector/front-end/ScopeChainSidebarPane.js:
1286         (WebInspector.ScopeChainSidebarPane):
1287         (WebInspector.ScopeChainSidebarPane.prototype.update):
1288
1289 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
1290
1291         Reviewed by Pavel Feldman.
1292
1293         Web Inspector: store all settings related to the agents on the frontend side
1294         https://bugs.webkit.org/show_bug.cgi?id=53174
1295
1296         * CMakeLists.txt:
1297         * GNUmakefile.am:
1298         * WebCore.exp.in:
1299         * WebCore.gypi:
1300         * WebCore.pro:
1301         * WebCore.vcproj/WebCore.vcproj:
1302         * WebCore.xcodeproj/project.pbxproj:
1303         * bindings/js/ScriptDebugServer.cpp:
1304         * bindings/js/ScriptDebugServer.h:
1305         * bindings/js/ScriptProfiler.cpp:
1306         * bindings/js/ScriptProfiler.h:
1307         * bindings/v8/ScriptDebugServer.cpp:
1308         * bindings/v8/ScriptDebugServer.h:
1309         * bindings/v8/ScriptProfiler.cpp:
1310         * bindings/v8/ScriptProfiler.h:
1311         * inspector/Inspector.idl:
1312         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1313         on the front-end side and will be pushed to the backend when the frontend is loaded.
1314         (WebCore::InspectorAgent::InspectorAgent):
1315         (WebCore::InspectorAgent::disconnectFrontend):
1316         (WebCore::InspectorAgent::restoreDebugger):
1317         (WebCore::InspectorAgent::restoreProfiler):
1318         (WebCore::InspectorAgent::enableProfiler):
1319         (WebCore::InspectorAgent::disableProfiler):
1320         (WebCore::InspectorAgent::showAndEnableDebugger):
1321         (WebCore::InspectorAgent::enableDebugger):
1322         (WebCore::InspectorAgent::disableDebugger):
1323         * inspector/InspectorAgent.h:
1324         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1325         if the front-end was opened during current browser session and XHR logging is turned on
1326         there.
1327         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1328         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1329         * inspector/InspectorDebuggerAgent.cpp:
1330         * inspector/InspectorDebuggerAgent.h:
1331         * inspector/InspectorInstrumentation.cpp:
1332         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1333         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1334         * inspector/InspectorProfilerAgent.cpp:
1335         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1336         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1337         * inspector/InspectorSettings.cpp: Removed.
1338         * inspector/InspectorSettings.h: Removed.
1339         * inspector/InspectorState.cpp:
1340         (WebCore::InspectorState::InspectorState):
1341         * inspector/InspectorState.h:
1342         * inspector/front-end/ConsoleView.js:
1343         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1344         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1345         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1346         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1347         * inspector/front-end/ProfilesPanel.js:
1348         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1349         * inspector/front-end/ScriptsPanel.js:
1350         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1351         * inspector/front-end/Settings.js:
1352         (WebInspector.Settings):
1353         * inspector/front-end/inspector.js:
1354
1355 2011-01-27  Pavel Podivilov  <podivilov@chromium.org>
1356
1357         Reviewed by Pavel Feldman.
1358
1359         Web Inspector: Closure and Global variable details automatically collapsing on each step through JavaScript code.
1360         https://bugs.webkit.org/show_bug.cgi?id=53234
1361
1362         * inspector/front-end/ScopeChainSidebarPane.js:
1363         (WebInspector.ScopeChainSidebarPane):
1364         (WebInspector.ScopeChainSidebarPane.prototype.update):
1365
1366 2011-01-27  Alexander Pavlov  <apavlov@chromium.org>
1367
1368         Reviewed by Pavel Feldman.
1369
1370         Web Inspector: [Elements panel] Tooltip for relative links incorrectly identifies current URL
1371         https://bugs.webkit.org/show_bug.cgi?id=53171
1372
1373         * inspector/front-end/inspector.js:
1374         (WebInspector.completeURL): Taught to understand partial href's that start with "?" (contain GET parameters only)
1375
1376 2011-01-27  Yury Semikhatsky  <yurys@chromium.org>
1377
1378         Reviewed by Pavel Feldman.
1379
1380         [V8] Crash in WebCore::addMessageToConsole
1381         https://bugs.webkit.org/show_bug.cgi?id=53227
1382
1383         * bindings/v8/V8Proxy.cpp: check that the Frame where the error
1384         occured still has a page before getting a console object from it.
1385         (WebCore::V8Proxy::reportUnsafeAccessTo):
1386
1387 2011-01-27  Hans Wennborg  <hans@chromium.org>
1388
1389         Reviewed by Jeremy Orlow.
1390
1391         IndexedDB: Remove IDBCallbacks::onSuccess() used for null values.
1392         https://bugs.webkit.org/show_bug.cgi?id=53178
1393
1394         Remove the IDBCallbacks::onSuccess() function that was used for
1395         null values, and replace such calls with calls to
1396         IDBCallBacks::onSuccess(SerializedScriptValue::nullValue())
1397         instead.
1398
1399         No new functionality, so no new tests.
1400
1401         * storage/IDBCallbacks.h:
1402         * storage/IDBCursorBackendImpl.cpp:
1403         (WebCore::IDBCursorBackendImpl::updateInternal):
1404         (WebCore::IDBCursorBackendImpl::continueFunctionInternal):
1405         * storage/IDBIndexBackendImpl.cpp:
1406         (WebCore::IDBIndexBackendImpl::openCursorInternal):
1407         * storage/IDBObjectStoreBackendImpl.cpp:
1408         (WebCore::IDBObjectStoreBackendImpl::deleteInternal):
1409         (WebCore::IDBObjectStoreBackendImpl::openCursorInternal):
1410         * storage/IDBRequest.cpp:
1411         * storage/IDBRequest.h:
1412
1413 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1414
1415         Unreviewed, rolling out r76773.
1416         http://trac.webkit.org/changeset/76773
1417         https://bugs.webkit.org/show_bug.cgi?id=53230
1418
1419         breaks multiple GTK media tests (Requested by philn-tp on
1420         #webkit).
1421
1422         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1423         (WebCore::mimeTypeCache):
1424
1425 2011-01-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1426
1427         Unreviewed, rolling out r76770.
1428         http://trac.webkit.org/changeset/76770
1429         https://bugs.webkit.org/show_bug.cgi?id=53229
1430
1431         Some inspector tests fail (Requested by yurys on #webkit).
1432
1433         * CMakeLists.txt:
1434         * GNUmakefile.am:
1435         * WebCore.exp.in:
1436         * WebCore.gypi:
1437         * WebCore.pro:
1438         * WebCore.vcproj/WebCore.vcproj:
1439         * WebCore.xcodeproj/project.pbxproj:
1440         * bindings/js/ScriptDebugServer.cpp:
1441         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1442         * bindings/js/ScriptDebugServer.h:
1443         * bindings/js/ScriptProfiler.cpp:
1444         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1445         * bindings/js/ScriptProfiler.h:
1446         * bindings/v8/ScriptDebugServer.cpp:
1447         (WebCore::ScriptDebugServer::isDebuggerAlwaysEnabled):
1448         * bindings/v8/ScriptDebugServer.h:
1449         * bindings/v8/ScriptProfiler.cpp:
1450         (WebCore::ScriptProfiler::isProfilerAlwaysEnabled):
1451         * bindings/v8/ScriptProfiler.h:
1452         * inspector/Inspector.idl:
1453         * inspector/InspectorAgent.cpp:
1454         (WebCore::InspectorAgent::InspectorAgent):
1455         (WebCore::InspectorAgent::disconnectFrontend):
1456         (WebCore::InspectorAgent::restoreDebugger):
1457         (WebCore::InspectorAgent::restoreProfiler):
1458         (WebCore::InspectorAgent::ensureSettingsLoaded):
1459         (WebCore::InspectorAgent::enableProfiler):
1460         (WebCore::InspectorAgent::disableProfiler):
1461         (WebCore::InspectorAgent::showAndEnableDebugger):
1462         (WebCore::InspectorAgent::enableDebugger):
1463         (WebCore::InspectorAgent::disableDebugger):
1464         * inspector/InspectorAgent.h:
1465         (WebCore::InspectorAgent::settings):
1466         * inspector/InspectorConsoleAgent.cpp:
1467         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1468         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1469         * inspector/InspectorDebuggerAgent.cpp:
1470         (WebCore::InspectorDebuggerAgent::isDebuggerAlwaysEnabled):
1471         * inspector/InspectorDebuggerAgent.h:
1472         * inspector/InspectorInstrumentation.cpp:
1473         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1474         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1475         * inspector/InspectorProfilerAgent.cpp:
1476         (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
1477         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1478         * inspector/InspectorSettings.cpp: Added.
1479         (WebCore::InspectorSettings::InspectorSettings):
1480         (WebCore::InspectorSettings::getBoolean):
1481         (WebCore::InspectorSettings::setBoolean):
1482         (WebCore::InspectorSettings::getLong):
1483         (WebCore::InspectorSettings::setLong):
1484         (WebCore::InspectorSettings::registerBoolean):
1485         (WebCore::InspectorSettings::registerLong):
1486         * inspector/InspectorSettings.h: Copied from Source/WebCore/bindings/v8/ScriptProfiler.h.
1487         * inspector/InspectorState.cpp:
1488         (WebCore::InspectorState::InspectorState):
1489         * inspector/InspectorState.h:
1490         * inspector/front-end/ConsoleView.js:
1491         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.monitoringXHRStateChanged):
1492         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1493         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1494         * inspector/front-end/ProfilesPanel.js:
1495         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1496         * inspector/front-end/ScriptsPanel.js:
1497         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1498         * inspector/front-end/Settings.js:
1499         (WebInspector.Settings):
1500         * inspector/front-end/inspector.js:
1501
1502 2011-01-26  Philippe Normand  <pnormand@igalia.com>
1503
1504         Reviewed by Martin Robinson.
1505
1506         [GTK] LayoutTests/media/audio-mpeg4-supported.html fails
1507         https://bugs.webkit.org/show_bug.cgi?id=53125
1508
1509         * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
1510         (WebCore::mimeTypeCache): Add audio/x-m4a mimetype in the cache.
1511
1512 2011-01-26  Yury Semikhatsky  <yurys@chromium.org>
1513
1514         Reviewed by Pavel Feldman.
1515
1516         Web Inspector: store all settings related to the agents on the frontend side
1517         https://bugs.webkit.org/show_bug.cgi?id=53174
1518
1519         * CMakeLists.txt:
1520         * GNUmakefile.am:
1521         * WebCore.exp.in:
1522         * WebCore.gypi:
1523         * WebCore.pro:
1524         * WebCore.vcproj/WebCore.vcproj:
1525         * WebCore.xcodeproj/project.pbxproj:
1526         * inspector/Inspector.idl:
1527         * inspector/InspectorAgent.cpp: profiler and debugger enablement state is now stored
1528         on the front-end side and will be pushed to the backend when the frontend is loaded.
1529         (WebCore::InspectorAgent::InspectorAgent):
1530         (WebCore::InspectorAgent::disconnectFrontend):
1531         (WebCore::InspectorAgent::restoreDebugger):
1532         (WebCore::InspectorAgent::restoreProfiler):
1533         (WebCore::InspectorAgent::enableProfiler):
1534         (WebCore::InspectorAgent::disableProfiler):
1535         (WebCore::InspectorAgent::showAndEnableDebugger):
1536         (WebCore::InspectorAgent::enableDebugger):
1537         (WebCore::InspectorAgent::disableDebugger):
1538         * inspector/InspectorAgent.h:
1539         * inspector/InspectorConsoleAgent.cpp: XHR failures will be logged to the console only
1540         if the front-end was opened during current browser session and XHR logging is turned on
1541         there.
1542         (WebCore::InspectorConsoleAgent::setMonitoringXHREnabled):
1543         (WebCore::InspectorConsoleAgent::setConsoleMessagesEnabled):
1544         * inspector/InspectorInstrumentation.cpp:
1545         (WebCore::InspectorInstrumentation::identifierForInitialRequestImpl):
1546         (WebCore::InspectorInstrumentation::didLoadResourceFromMemoryCacheImpl):
1547         * inspector/InspectorProfilerAgent.cpp:
1548         (WebCore::InspectorProfilerAgent::enable):
1549         (WebCore::InspectorProfilerAgent::startUserInitiatedProfiling):
1550         * inspector/InspectorProfilerAgent.h:
1551         * inspector/InspectorSettings.cpp: Removed.
1552         * inspector/InspectorSettings.h: Removed.
1553         * inspector/InspectorState.cpp:
1554         (WebCore::InspectorState::InspectorState):
1555         * inspector/InspectorState.h:
1556         * inspector/front-end/ConsoleView.js:
1557         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher.dispatcher.consoleMessagesCleared):
1558         (WebInspector.ConsoleView.prototype._registerConsoleDomainDispatcher):
1559         (WebInspector.ConsoleView.prototype._handleContextMenuEvent.itemAction):
1560         (WebInspector.ConsoleView.prototype._handleContextMenuEvent):
1561         * inspector/front-end/ProfilesPanel.js:
1562         (WebInspector.ProfilesPanel.prototype._toggleProfiling):
1563         * inspector/front-end/ScriptsPanel.js:
1564         (WebInspector.ScriptsPanel.prototype._toggleDebugging):
1565         * inspector/front-end/Settings.js:
1566         (WebInspector.Settings):
1567         * inspector/front-end/inspector.js:
1568
1569 2011-01-27  Dan Bernstein  <mitz@apple.com>
1570
1571         Reviewed by Sam Weinig.
1572
1573         REGRESSION (r76743): Uneven spacing in right-to-left justified text
1574         https://bugs.webkit.org/show_bug.cgi?id=53225
1575
1576         Fixes failure in fast/text/atsui-spacing-features.html
1577
1578         There was an inconsistency between rendering code and font code in the interpretation of
1579         'after expansion' and 'trailing expansion'. Changed all code to interpret these in terms of
1580         visual order rather than logical.
1581
1582         * platform/graphics/Font.cpp:
1583         (WebCore::Font::expansionOpportunityCount): Added a text direction parameter and changed to
1584         iterate in visual order accordingly.
1585         * platform/graphics/Font.h:
1586         * platform/graphics/WidthIterator.cpp:
1587         (WebCore::WidthIterator::WidthIterator): Pass the run direction to expansionOpportunityCount().
1588         (WebCore::WidthIterator::advance): For right-to-left runs, evaluate the trailing expansion
1589         condition with respect to the first character, which is the trailing character in visual order.
1590         * platform/graphics/mac/ComplexTextController.cpp:
1591         (WebCore::ComplexTextController::ComplexTextController): Pass the run direction to
1592         expansionOpportunityCount().
1593         * rendering/RenderBlockLineLayout.cpp:
1594         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Ditto.
1595
1596 2011-01-26  Adam Roben  <aroben@apple.com>
1597
1598         Don't create the Direct3D device before it's first needed
1599
1600         We only need the device once we decide to render. There's no point in creating it before
1601         then.
1602
1603         Reviewed by Sam Weinig.
1604
1605         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1606         (WebCore::CACFLayerTreeHost::setWindow): Removed the call to createRenderer() from here.
1607         We already have code to create it when we first try to draw.
1608         (WebCore::CACFLayerTreeHost::createRenderer): Flush the context after we set our layer's
1609         bounds so that the bounds will take effect the next time we render (which could be just
1610         after this function returns).
1611
1612 2011-01-26  Adam Roben  <aroben@apple.com>
1613
1614         Add assertions that CACFLayerTreeHost gains and loses an HWND only once
1615
1616         CACFLayerTreeHost doesn't support any other use pattern.
1617
1618         Reviewed by Sam Weinig.
1619
1620         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1621         (WebCore::CACFLayerTreeHost::CACFLayerTreeHost): Initialize new member.
1622         (WebCore::CACFLayerTreeHost::setWindow): Assert that we transition from not having a window,
1623         to having a window, to not having a window just once over the lifetime of this object.
1624
1625         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added m_state.
1626
1627 2011-01-26  Adam Roben  <aroben@apple.com>
1628
1629         Notify layers that their animations have started when we flush the context, not when we
1630         render
1631
1632         r76372 separated context flushing from rendering, but this bit of code got left behind.
1633
1634         Reviewed by Sam Weinig.
1635
1636         * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
1637         (WebCore::CACFLayerTreeHost::render): Moved code to notify the layers from here to
1638         notifyAnimationsStarted.
1639         (WebCore::CACFLayerTreeHost::flushPendingLayerChangesNow): Added a call to
1640         notifyAnimationsStarted after we flush the context.
1641         (WebCore::CACFLayerTreeHost::notifyAnimationsStarted): Added. Code came from render. Changed
1642         to call PlatformCALayer::animationStarted rather than calling through to the client
1643         directly.
1644
1645         * platform/graphics/ca/win/CACFLayerTreeHost.h: Added notifyAniamtionsStarted.
1646
1647 2011-01-26  Adam Roben  <aroben@apple.com>
1648
1649         Small cleanup in MediaPlayerPrivateFullscreenWindow
1650
1651         Reviewed by Sam Weinig.
1652
1653         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.cpp:
1654         (WebCore::MediaPlayerPrivateFullscreenWindow::~MediaPlayerPrivateFullscreenWindow): Moved
1655         code here from close(), since this was the only place that called it after the following
1656         change to createWindow.
1657         (WebCore::MediaPlayerPrivateFullscreenWindow::createWindow): Replaced code that handled the
1658         case where we had already created the window with an assertion that we have not already done
1659         so. Our single caller (FullscreenVideoController) did not require this behavior.
1660
1661         * platform/graphics/win/MediaPlayerPrivateFullscreenWindow.h: Removed layerView.
1662
1663 2011-01-26  Sam Weinig  <sam@webkit.org>
1664
1665         Reviewed by Adam Roben.
1666
1667         Move ScrollView scroll wheel code to ScrollAnimator.
1668
1669         * platform/ScrollAnimator.cpp:
1670         (WebCore::ScrollAnimator::handleWheelEvent):
1671         * platform/ScrollAnimator.h:
1672         Moved implementation of handleWheelEvent from ScrollView::wheelEvent.
1673
1674         * platform/ScrollView.cpp:
1675         (WebCore::ScrollView::wheelEvent):
1676         Call down to the ScrollableArea.
1677
1678         * platform/ScrollableArea.cpp:
1679         (WebCore::ScrollableArea::handleWheelEvent):
1680         Call down to the ScrollAnimator.
1681
1682         * platform/ScrollableArea.h:
1683         (WebCore::ScrollableArea::scrollPosition):
1684         (WebCore::ScrollableArea::minimumScrollPosition):
1685         (WebCore::ScrollableArea::maximumScrollPosition):
1686         (WebCore::ScrollableArea::visibleContentRect):
1687         (WebCore::ScrollableArea::visibleHeight):
1688         (WebCore::ScrollableArea::visibleWidth):
1689         Add functions needed to implement wheel event in the animator.
1690
1691 2011-01-26  David Kilzer  <ddkilzer@apple.com>
1692
1693         <http://webkit.org/b/53192> Add experimental support for HTTP pipelining in CFNetwork
1694         <rdar://problem/8821760>
1695
1696         Reviewed by Antti Koivisto.
1697
1698         This adds support for HTTP pipelining in CFNetwork, but does not
1699         enable it.  To enable it post-SnowLeopard, use this command:
1700
1701             defaults write BUNDLE.ID WebKitEnableHTTPPipelining -bool YES
1702
1703         Once enabled, it is possible to force the same load priority
1704         (high) to be sent to CFNetwork to allow WebCore to handle the
1705         scheduling:
1706
1707             defaults write BUNDLE.ID WebKitForceHTTPPipeliningPriorityHigh -bool YES
1708
1709         * WebCore.exp.in: Export _wkGetHTTPPipeliningPriority and
1710         _wkSetHTTPPipeliningPriority.
1711
1712         * loader/DocumentThreadableLoader.cpp:
1713         (WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequestWithPreflight):
1714         Copy the priority to preflightRequest.
1715
1716         * loader/ResourceLoadScheduler.cpp:
1717         (WebCore::ResourceLoadScheduler::scheduleLoad): Refactored code
1718         at the end of the method to use an early return.
1719
1720         * loader/cache/CachedResourceRequest.cpp:
1721         (WebCore::CachedResourceRequest::load): Set the priority on the
1722         ResourceRequest object based on the priority of the
1723         CachedResourceRequest before calling
1724         ResourceLoadScheduler::scheduleSubresourceLoad().
1725
1726         * loader/icon/IconLoader.cpp:
1727         (WebCore::IconLoader::startLoading): Create a ResourceRequest
1728         object and set its priority to ResourceLoadPriorityLow before
1729         passing it to ResourceLoadScheduler::scheduleSubresourceLoad().
1730
1731         * platform/mac/WebCoreSystemInterface.h:
1732         (wkGetHTTPPipeliningPriority): Added.
1733         (wkSetHTTPPipeliningPriority): Added.
1734         * platform/mac/WebCoreSystemInterface.mm:
1735         (wkGetHTTPPipeliningPriority): Added.
1736         (wkSetHTTPPipeliningPriority): Added.
1737
1738         * platform/network/ResourceRequestBase.cpp:
1739         (WebCore::ResourceRequestBase::adopt): Set m_priority when
1740         adopting a CrossThreadResourceRequestData.
1741         (WebCore::ResourceRequestBase::copyData): Set m_priority when
1742         creating a CrossThreadResourceRequestData.
1743         (WebCore::ResourceRequestBase::priority): Added.
1744         (WebCore::ResourceRequestBase::setPriority): Added.
1745         (WebCore::equalIgnoringHeaderFields): Priorities must match when
1746         comparing two ResourceRequest objects.
1747
1748         * platform/network/ResourceRequestBase.h:
1749         (WebCore::ResourceRequestBase::ResourceRequestBase): Set default
1750         priority of new objects to ResourceLoadPriorityLow.
1751         (WebCore::ResourceRequestBase::priority): Added declaration.
1752         (WebCore::ResourceRequestBase::setPriority): Added declaration.
1753         (WebCore::isHTTPPipeliningEnabled): Added.
1754         (WebCore::shouldUseHTTPPipeliningPriority): Added.
1755
1756         * platform/network/cf/ResourceRequestCFNet.cpp: Updated so that
1757         Mac OS X and Windows share code.
1758         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Always
1759         set the HTTP connection count per host, but return an
1760         'unlimited' value when using HTTP pipelining.  This method used
1761         to be defined in ResourceRequestMac.mm for Mac OS X.
1762         (WebCore::readBooleanPreference): Added.  Helper method for
1763         reading boolean user defaults.
1764         (WebCore::isHTTPPipeliningEnabled): Returns value of user
1765         default key WebKitEnableHTTPPipelining, or false if not set.
1766         (WebCore::shouldUseHTTPPipeliningPriority): Returns value of
1767         user default key WebKitForceHTTPPipeliningPriorityHigh, or false
1768         if not set.
1769         * platform/network/cf/ResourceRequestCFNet.h: Updated so that
1770         Mac OS X and Windows share code.  Fixed indentation.
1771         (WebCore::mapHTTPPipeliningPriorityToResourceLoadPriority): Added.
1772         (WebCore::mapResourceLoadPriorityToHTTPPipeliningPriority): Added.
1773
1774         * platform/network/mac/ResourceRequestMac.mm:
1775         (WebCore::ResourceRequest::doUpdatePlatformRequest): Update
1776         HTTP pipelining priority on NSMutableFURLRequest object.
1777         (WebCore::ResourceRequest::doUpdateResourceRequest): Update
1778         m_priority from the NSURLRequest object.
1779         (WebCore::initializeMaximumHTTPConnectionCountPerHost): Removed.
1780         Code is now shared with Windows in ResourceRequestCFNet.cpp.
1781
1782 2011-01-26  Beth Dakin  <bdakin@apple.com>
1783
1784         Reviewed by Darin Adler.
1785
1786         Fix for <rdar://problem/8895140> Adopt WKScrollbar metrics 
1787         when using WKScrollbars.
1788
1789         New WebKitSystemInterface Functionality.
1790         * WebCore.exp.in:
1791         * platform/mac/WebCoreSystemInterface.h:
1792         * platform/mac/WebCoreSystemInterface.mm:
1793
1794         Some of the terrible static arrays are now only needed in the 
1795         old non-WK code, so they are if-def'd now.
1796         * platform/mac/ScrollbarThemeMac.mm:
1797         
1798         Just patching this function in a better way than I did
1799         before.
1800         (WebCore::updateArrowPlacement):
1801         
1802         Call into WK for the right values.
1803         (WebCore::ScrollbarThemeMac::scrollbarThickness):
1804         (WebCore::ScrollbarThemeMac::hasThumb):
1805         (WebCore::ScrollbarThemeMac::minimumThumbLength):
1806         
1807         Return false if there are no buttons.
1808         (WebCore::ScrollbarThemeMac::hasButtons):
1809
1810         Return an empty IntRect if there are not buttons.
1811         (WebCore::buttonRepaintRect):
1812
1813 2011-01-26  Sam Weinig  <sam@webkit.org>
1814
1815         Reviewed by Maciej Stachowiak.
1816
1817         Add events to represent the start/end of a gesture scroll
1818         https://bugs.webkit.org/show_bug.cgi?id=53215
1819
1820         * WebCore.exp.in: 
1821         Add new file.
1822
1823         * WebCore.xcodeproj/project.pbxproj:
1824         Add new file.
1825
1826         * page/EventHandler.cpp:
1827         (WebCore::EventHandler::handleGestureEvent):
1828         * page/EventHandler.h:
1829         Add entry point for handling gesture events.
1830
1831         * platform/PlatformGestureEvent.h: Added.
1832         (WebCore::PlatformGestureEvent::PlatformGestureEvent):
1833         (WebCore::PlatformGestureEvent::type):
1834         (WebCore::PlatformGestureEvent::position):
1835         (WebCore::PlatformGestureEvent::globalPosition):
1836         (WebCore::PlatformGestureEvent::timestamp):
1837         Add platform agnostic representation of a gesture event.
1838
1839 2011-01-26  Dan Bernstein  <mitz@apple.com>
1840
1841         Reviewed by Dave Hyatt.
1842
1843         <rdar://problem/8446709> Allow inter-ideograph justification for CJK
1844         https://bugs.webkit.org/show_bug.cgi?id=53184
1845
1846         Tests: fast/text/justify-ideograph-complex.html
1847                fast/text/justify-ideograph-simple.html
1848                fast/text/justify-ideograph-vertical.html
1849
1850         * html/canvas/CanvasRenderingContext2D.cpp:
1851         (WebCore::CanvasRenderingContext2D::drawTextInternal): Corrected the type of the third parameter
1852         passed to the TextRun constructor and added the trailingExpansionBehavior parameter.
1853         * platform/graphics/Font.cpp:
1854         (WebCore::Font::expansionOpportunityCount): Added. Returns the number of expansion opportunities
1855         for text justification. On entry, isAfterExpansion says whether an expansion opportunity exists
1856         before the first character. On return, isAfterExpansion says whether an expansion opportunity
1857         exists after the last character.
1858         * platform/graphics/Font.h: 
1859         * platform/graphics/GlyphBuffer.h:
1860         (WebCore::GlyphBuffer::expandLastAdvance): Added.
1861         * platform/graphics/TextRun.h:
1862         (WebCore::TextRun::TextRun): Added a TrailingExpansionBehavior parameter to the constructors.
1863         Renamed padding to expansion.
1864         (WebCore::TextRun::expansion): Renamed padding() to this.
1865         (WebCore::TextRun::allowsTrailingExpansion): Added this accessor.
1866         * platform/graphics/WidthIterator.cpp:
1867         (WebCore::WidthIterator::WidthIterator): Initialize m_isAfterExpansion. Use Font::expansionOpportunityCount()
1868         and adjust the count if it includes a trailing expansion opportunity but the run disallows trailing
1869         expansion.
1870         (WebCore::WidthIterator::advance): Apply expansion before and after CJK ideographs.
1871         (WebCore::WidthIterator::advanceOneCharacter): Changed to not clear the GlyphBuffer so that advance()
1872         can expand the last advance if it is followed by a CJK ideograph.
1873         * platform/graphics/WidthIterator.h: Renamed m_padding to m_expansion and m_padPerSpace
1874         to m_expansionPerOpportunity.
1875         * platform/graphics/chromium/FontChromiumWin.cpp:
1876         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1877         * platform/graphics/chromium/FontLinux.cpp:
1878         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1879         * platform/graphics/efl/FontEfl.cpp:
1880         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1881         * platform/graphics/gtk/FontGtk.cpp:
1882         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1883         * platform/graphics/haiku/FontHaiku.cpp:
1884         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1885         * platform/graphics/mac/ComplexTextController.cpp:
1886         (WebCore::ComplexTextController::ComplexTextController): Initialize m_isAfterExpansion. Use
1887         Font::expansionOpportunityCount() and adjust the count if it includes a trailing expansion
1888         opportunity but the run disallows trailing expansion.
1889         (WebCore::ComplexTextController::adjustGlyphsAndAdvances): Moved the definition and initialization
1890         of hasExtraSpacing outside the loop. Apply expansion before and after CJK ideographs.
1891         * platform/graphics/mac/ComplexTextController.h: Renamed m_padding to m_expansion and m_padPerSpace
1892         to m_expansionPerOpportunity.
1893         * platform/graphics/mac/FontMac.mm:
1894         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1895         * platform/graphics/qt/FontQt.cpp:
1896         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1897         * platform/graphics/win/FontWin.cpp:
1898         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1899         * platform/graphics/win/UniscribeController.cpp:
1900         (WebCore::UniscribeController::UniscribeController): Updated for rename.
1901         * platform/graphics/wince/FontWinCE.cpp:
1902         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1903         * platform/graphics/wx/FontWx.cpp:
1904         (WebCore::Font::canExpandAroundIdeographsInComplexText): Added.
1905         * rendering/EllipsisBox.cpp:
1906         (WebCore::EllipsisBox::paint): Pass a TrailingExpansionBehavior to the TextRun constructor.
1907         (WebCore::EllipsisBox::selectionRect): Ditto.
1908         (WebCore::EllipsisBox::paintSelection): Ditto.
1909         * rendering/InlineBox.h:
1910         (WebCore::InlineBox::InlineBox): Renamed m_toAdd to m_expansion.
1911         (WebCore::InlineBox::expansion): Renamed toAdd() to this.
1912         * rendering/InlineTextBox.cpp:
1913         (WebCore::InlineTextBox::selectionRect): Pass a TrailingExpansionBehavior to the TextRun constructor.
1914         (WebCore::InlineTextBox::paint): Ditto.
1915         (WebCore::InlineTextBox::paintSelection): Ditto.
1916         (WebCore::InlineTextBox::paintCompositionBackground): Ditto.
1917         (WebCore::InlineTextBox::paintSpellingOrGrammarMarker): Ditto.
1918         (WebCore::InlineTextBox::paintTextMatchMarker): Ditto.
1919         (WebCore::InlineTextBox::computeRectForReplacementMarker): Ditto.
1920         (WebCore::InlineTextBox::offsetForPosition): Ditto.
1921         (WebCore::InlineTextBox::positionForOffset): Ditto.
1922         * rendering/InlineTextBox.h:
1923         (WebCore::InlineTextBox::setExpansion): Renamed setSpaceAdd() to this.
1924         (WebCore::InlineTextBox::trailingExpansionBehavior): Added. Trailing expansion is allowed if this
1925         is not the last leaf box on the line.
1926         * rendering/RenderBlockLineLayout.cpp:
1927         (WebCore::RenderBlock::computeInlineDirectionPositionsForLine): Keep expansion opportunity counts
1928         in a vector instead of computing them twice. Discard the trailing expansion opportunity in the
1929         last text box.
1930         * rendering/RenderFileUploadControl.cpp:
1931         (WebCore::RenderFileUploadControl::paintObject): Pass a TrailingExpansionBehavior to the TextRun constructor.
1932         (WebCore::RenderFileUploadControl::computePreferredLogicalWidths): Ditto.
1933         * rendering/RenderListBox.cpp:
1934         (WebCore::RenderListBox::updateFromElement): Ditto.
1935         (WebCore::RenderListBox::paintItemForeground): Ditto. Also corrected the type of the second parameter.
1936         * rendering/RenderTextControl.cpp:
1937         (WebCore::RenderTextControl::getAvgCharWidth): Ditto.
1938         (WebCore::RenderTextControl::paintPlaceholder): Ditto.
1939         * rendering/svg/SVGInlineTextBox.cpp:
1940         (WebCore::SVGInlineTextBox::constructTextRun): Ditto.
1941
1942 2011-01-26  Andy Estes  <aestes@apple.com>
1943
1944         Rubber-stamped by Darin Adler.
1945
1946         Inline HTMLObjectElement::hasValidClassId().
1947
1948         * html/HTMLObjectElement.cpp:
1949         (WebCore::HTMLObjectElement::hasValidClassId):
1950
1951 2011-01-26  Evan Martin  <evan@chromium.org>
1952
1953         Reviewed by Tony Chang.
1954
1955         [chromium] crash on getBoundingClientRect in complex text
1956         https://bugs.webkit.org/show_bug.cgi?id=53199
1957
1958         Use the correct array bound; we want the number of characters processed by
1959         the shaper, not the longest continuous script run length.
1960
1961         Test: platform/chromium-linux/fast/text/international/complex-text-rectangle.html
1962
1963         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
1964         (WebCore::ComplexTextController::nextScriptRun):
1965         * platform/graphics/chromium/ComplexTextControllerLinux.h:
1966         (WebCore::ComplexTextController::numCodePoints):
1967
1968 2011-01-26  Emil A Eklund  <eae@chromium.org>
1969
1970         Reviewed by Alexey Proskuryakov.
1971
1972         Remove cached document reference from CSSStyleSheet and XSLStyleSheet.
1973         https://bugs.webkit.org/show_bug.cgi?id=52084
1974
1975         Test: fast/dom/css-delete-doc.html
1976
1977         * css/CSSMediaRule.cpp:
1978         (WebCore::CSSMediaRule::insertRule):
1979         (WebCore::CSSMediaRule::deleteRule):
1980         * css/CSSStyleSheet.cpp:
1981         (WebCore::CSSStyleSheet::CSSStyleSheet):
1982         (WebCore::CSSStyleSheet::document):
1983         * css/CSSStyleSheet.h:
1984         * xml/XSLStyleSheet.h:
1985         (WebCore::XSLStyleSheet::parentStyleSheet):
1986         * xml/XSLStyleSheetLibxslt.cpp:
1987         (WebCore::XSLStyleSheet::XSLStyleSheet):
1988         (WebCore::XSLStyleSheet::cachedResourceLoader):
1989         (WebCore::XSLStyleSheet::setParentStyleSheet):
1990         (WebCore::XSLStyleSheet::ownerDocument):
1991         * xml/XSLStyleSheetQt.cpp:
1992         (WebCore::XSLStyleSheet::XSLStyleSheet):
1993         (WebCore::XSLStyleSheet::cachedResourceLoader):
1994         (WebCore::XSLStyleSheet::ownerDocument):
1995
1996 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
1997
1998         Reviewed by Kent Tamura.
1999
2000         Reduce ref-count churn in shadowPseudoId.
2001         https://bugs.webkit.org/show_bug.cgi?id=53136
2002
2003         Refactoring, so no new tests.
2004
2005         * dom/Element.h:
2006         (WebCore::Element::shadowPseudoId): Changed signature to use const AtomicString&
2007         * html/ValidationMessage.cpp:
2008         (WebCore::ElementWithPseudoId::shadowPseudoId): Ditto.
2009         * html/shadow/SliderThumbElement.cpp:
2010         (WebCore::SliderThumbElement::shadowPseudoId): Ditto, plus moved from the header file.
2011         * html/shadow/SliderThumbElement.h: Ditto.
2012         * rendering/MediaControlElements.cpp:
2013         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Ditto.
2014         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Ditto.
2015         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Ditto.
2016         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Ditto.
2017         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Ditto.
2018         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Ditto.
2019         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Ditto.
2020         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Ditto.
2021         (WebCore::MediaControlTimelineElement::shadowPseudoId): Ditto.
2022         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Ditto.
2023         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Ditto.
2024         * rendering/MediaControlElements.h: Ditto.
2025
2026 2011-01-26  Dave Hyatt  <hyatt@apple.com>
2027
2028         Reviewed by Dan Bernstein.
2029
2030         https://bugs.webkit.org/show_bug.cgi?id=46421, make multi-column layout work with vertical text.
2031
2032         Added new tests in fast/multicol/vertical-lr and fast/multicol/vertical-rl.
2033
2034         * css/html.css:
2035         Update p, blockquote and h1-h6 to respect directionality so that column layout tests that use those
2036         elements work properly.
2037
2038         * rendering/InlineFlowBox.cpp:
2039         (WebCore::InlineFlowBox::placeBoxesInBlockDirection):
2040         Fix a flipping bug with the computation of lineTopIncludingMargins where it could be incorrectly shrunk
2041         in some cases (causing lines to all stack on top of one another).
2042
2043         * rendering/InlineTextBox.h:
2044         (WebCore::InlineTextBox::calculateBoundaries):
2045         Fix calculateBoundaries to be physical rather than logical.
2046
2047         * rendering/LayoutState.cpp:
2048         (WebCore::LayoutState::addForcedColumnBreak):
2049         * rendering/LayoutState.h:
2050         Rename childY to childLogicalOffset.
2051
2052         * rendering/RenderBlock.cpp:
2053         (WebCore::RenderBlock::layoutBlock):
2054         (WebCore::RenderBlock::addOverflowFromChildren):
2055         (WebCore::RenderBlock::addOverflowFromFloats):
2056         (WebCore::RenderBlock::collapseMargins):
2057         (WebCore::RenderBlock::estimateLogicalTopPosition):
2058         (WebCore::RenderBlock::layoutBlockChild):
2059         (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
2060         (WebCore::RenderBlock::paintColumnRules):
2061         (WebCore::RenderBlock::paintColumnContents):
2062         (WebCore::RenderBlock::paintFloats):
2063         (WebCore::RenderBlock::selectionGaps):
2064         (WebCore::RenderBlock::removeFloatingObjectsBelow):
2065         (WebCore::RenderBlock::addOverhangingFloats):
2066         (WebCore::RenderBlock::hitTestFloats):
2067         (WebCore::RenderBlock::hitTestColumns):
2068         (WebCore::RenderBlock::calcColumnWidth):
2069         (WebCore::RenderBlock::desiredColumnWidth):
2070         (WebCore::RenderBlock::columnRectAt):
2071         (WebCore::RenderBlock::layoutColumns):
2072         (WebCore::RenderBlock::adjustPointToColumnContents):
2073         (WebCore::RenderBlock::adjustRectForColumns):
2074         (WebCore::RenderBlock::flipForWritingModeIncludingColumns):
2075         (WebCore::RenderBlock::adjustForColumns):
2076         (WebCore::RenderBlock::adjustForBorderFit):
2077         (WebCore::RenderBlock::nextPageLogicalTop):
2078         (WebCore::RenderBlock::applyBeforeBreak):
2079         (WebCore::RenderBlock::applyAfterBreak):
2080         (WebCore::RenderBlock::adjustForUnsplittableChild):
2081         (WebCore::RenderBlock::adjustLinePositionForPagination):
2082         * rendering/RenderBlock.h:
2083         (WebCore::RenderBlock::logicalRightOffsetForContent):
2084         (WebCore::RenderBlock::logicalLeftOffsetForContent):
2085         (WebCore::RenderBlock::leftForFloatIncludingMargin):
2086         (WebCore::RenderBlock::topForFloatIncludingMargin):
2087         * rendering/RenderBlockLineLayout.cpp:
2088         (WebCore::RenderBlock::layoutInlineChildren):
2089         (WebCore::RenderBlock::determineStartPosition):
2090         Reworking of all the RenderBlock column functions to support flipping and vertical modes.
2091
2092         * rendering/RenderBox.cpp:
2093         (WebCore::RenderBox::offsetFromContainer):
2094         (WebCore::RenderBox::flipForWritingModeIncludingColumns):
2095         Patch offsetFromContainer to be aware of flipped block writing modes when dealing with column layouts.
2096
2097         * rendering/RenderBox.h:
2098         (WebCore::RenderBox::clientLogicalBottom):
2099         Fix a bug in clientLogicalBottom where it didn't add in the right border/padding.
2100         
2101         * rendering/RenderFlexibleBox.cpp:
2102         (WebCore::RenderFlexibleBox::layoutBlock):
2103         Better terminology for pagination.
2104
2105         * rendering/RenderInline.cpp:
2106         (WebCore::RenderInline::offsetFromContainer):
2107         (WebCore::RenderInline::mapLocalToContainer):
2108         * rendering/RenderLayer.cpp:
2109         (WebCore::RenderLayer::paintChildLayerIntoColumns):
2110         (WebCore::RenderLayer::hitTestChildLayerColumns):
2111         (WebCore::RenderLayer::localBoundingBox):
2112         (WebCore::RenderLayer::boundingBox):
2113         Patch painting in RenderLayers to be vertical-text-aware.
2114     
2115         * rendering/RenderObject.cpp:
2116         (WebCore::RenderObject::mapLocalToContainer):
2117         Add code to be flipped block-aware with columns.
2118
2119         * rendering/RenderTable.cpp:
2120         (WebCore::RenderTable::layout):
2121         * rendering/RenderTableRow.cpp:
2122         (WebCore::RenderTableRow::layout):
2123         * rendering/RenderTableSection.cpp:
2124         (WebCore::RenderTableSection::layoutRows):
2125         Fix pagination to use better terminology.
2126         
2127         * rendering/RenderText.cpp:
2128         (WebCore::RenderText::absoluteQuads):
2129         (WebCore::RenderText::absoluteQuadsForRange):
2130         Fix a bug where vertical text wasn't taken into account.
2131
2132 2011-01-26  Dimitri Glazkov  <dglazkov@chromium.org>
2133
2134         Unreviewed, rolling out r76719.
2135         http://trac.webkit.org/changeset/76719
2136         https://bugs.webkit.org/show_bug.cgi?id=53122
2137
2138         Broke a bunch of media tests in Chromium/Qt/GTK.
2139
2140 2011-01-26  Tony Chang  <tony@chromium.org>
2141
2142         Reviewed by Ryosuke Niwa.
2143
2144         [gtk] strip NUL characters when copying text/html on GTK+
2145         https://bugs.webkit.org/show_bug.cgi?id=52508
2146
2147         Putting NUL characters in the text/html clipboard doesn't work in
2148         WebKit GTK+ (the pasted value is truncated at the NUL).  Since we're
2149         already stripping this character for plain text (for Windows), strip
2150         it in text/html too.
2151
2152         * editing/MarkupAccumulator.h: mark function as virtual
2153         * editing/markup.cpp:
2154         (WebCore::StyledMarkupAccumulator::appendString):
2155         (WebCore::StyledMarkupAccumulator::takeResults): strip nulls
2156
2157 2011-01-26  Mario Sanchez Prada  <msanchez@igalia.com>
2158
2159         Reviewed by Martin Robinson.
2160
2161         [GTK] Reliable crash with getTextAtOffset()
2162         https://bugs.webkit.org/show_bug.cgi?id=53131
2163
2164         Properly calculate length in bytes for a UTF8 substring.
2165
2166         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
2167         (utf8Substr): Use character instead of bytes as units to
2168         calculate the length in bytes for the UTF8 string.
2169
2170 2011-01-25  Dimitri Glazkov  <dglazkov@chromium.org>
2171
2172         Reviewed by Kent Tamura.
2173
2174         Change HTMLInputElement-derived parts of media element shadow DOM to use shadowPseudoId.
2175         https://bugs.webkit.org/show_bug.cgi?id=53122
2176
2177         This is the first step in converting HTMLMediaElement to the new shadow DOM.
2178
2179         Should not regress any existing tests. No observable change in behavior.
2180
2181         * css/CSSSelector.cpp:
2182         (WebCore::CSSSelector::pseudoId): Removed now-unnecessary hard-coded pseudo-element selectors.
2183         (WebCore::nameToPseudoTypeMap): Ditto.
2184         (WebCore::CSSSelector::extractPseudoType): Ditto.
2185         * css/CSSSelector.h: Ditto.
2186         * css/mediaControls.css: Added proper initial values, now that elements use the proper selector pipeline.
2187         * rendering/MediaControlElements.cpp:
2188         (WebCore::MediaControlInputElement::MediaControlInputElement): Removed the switch statement,
2189             which is now replaced with virtual shadowPseudoId on each corresponding class.
2190         (WebCore::MediaControlInputElement::styleForElement): Changed to use element pipeline.
2191         (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement): Changed to set
2192             display type in constructor.
2193         (WebCore::MediaControlMuteButtonElement::create): Changed to not take PseudoId as
2194             constructor argument.
2195         (WebCore::MediaControlMuteButtonElement::shadowPseudoId): Added.
2196         (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Added
2197             to disambiguate from the MediaControlMuteButtonElement.
2198         (WebCore::MediaControlVolumeSliderMuteButtonElement::create): Added.
2199         (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Added.
2200         (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Changed to not take PseudoId as
2201             constructor argument.
2202         (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Added.
2203         (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement): Changed to not take PseudoId as
2204             constructor argument.
2205         (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Added.
2206         (WebCore::MediaControlSeekForwardButtonElement::create): Added.
2207         (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Added.
2208         (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Added.
2209         (WebCore::MediaControlSeekBackButtonElement::create): Added.
2210         (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Added.
2211         (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Added.
2212         (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Added.
2213         (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Changed to not take PseudoId as
2214             constructor argument.
2215         (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Added.
2216         (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Changed to not take PseudoId as
2217             constructor argument.
2218         (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Added.
2219         (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Changed to not take PseudoId as
2220             constructor argument.
2221         (WebCore::MediaControlTimelineElement::shadowPseudoId): Added.
2222         (WebCore::MediaControlVolumeSliderElement::MediaControlVolumeSliderElement): Changed to not take PseudoId as
2223             constructor argument.
2224         (WebCore::MediaControlVolumeSliderElement::shadowPseudoId): Added.
2225         (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Changed to not take PseudoId as
2226             constructor argument.
2227         (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Added.
2228         * rendering/MediaControlElements.h:
2229         (WebCore::MediaControlSeekForwardButtonElement::isForwardButton): Added.
2230         (WebCore::MediaControlSeekBackButtonElement::isForwardButton): Added.
2231         * rendering/RenderMedia.cpp:
2232         (WebCore::RenderMedia::createMuteButton): Changed to use new constructor.
2233         (WebCore::RenderMedia::createSeekBackButton): Ditto.
2234         (WebCore::RenderMedia::createSeekForwardButton): Ditto.
2235         (WebCore::RenderMedia::createVolumeSliderMuteButton): Ditto.
2236         * rendering/style/RenderStyleConstants.h: Removed constants that are no longer used.
2237
2238 2011-01-26  Kenneth Russell  <kbr@google.com>
2239
2240         Reviewed by James Robinson.
2241
2242         Fix multisampling support in DrawingBuffer
2243         https://bugs.webkit.org/show_bug.cgi?id=53154
2244
2245         In DrawingBuffer's multisampling code path, fixed enum usage and a
2246         bug where it would incorrectly redefine the depth and stencil
2247         buffers. Hooked up multisampling code path in Chromium port.
2248
2249         Tested manually with some accelerated 2D canvas content.
2250         Multisampling isn't being switched on for the accelerated 2D
2251         canvas at the current time because it will increase fill rate
2252         requirements and cause a large number of rebaselines.
2253
2254         * platform/graphics/Extensions3D.h:
2255         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2256         (WebCore::DrawingBuffer::publishToPlatformLayer):
2257         * platform/graphics/chromium/Extensions3DChromium.h:
2258         * platform/graphics/gpu/DrawingBuffer.cpp:
2259         (WebCore::DrawingBuffer::create):
2260         (WebCore::DrawingBuffer::reset):
2261         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
2262         (WebCore::Extensions3DOpenGL::supports):
2263
2264 2011-01-26  Tony Chang  <tony@chromium.org>
2265
2266         Unreviewed.
2267
2268         [chromium] revert r68310 because of race conditions detected by tsans
2269         https://bugs.webkit.org/show_bug.cgi?id=53185
2270
2271         Causes stability problems for Chromium, http://crbug.com/70589
2272
2273         * platform/sql/chromium/SQLiteFileSystemChromiumPosix.cpp:
2274         (WebCore::SQLiteFileSystem::registerSQLiteVFS):
2275
2276 2011-01-26  Justin Schuh  <jschuh@chromium.org>
2277
2278         Reviewed by Adam Barth.
2279
2280         Make fireEventsAndUpdateStyle use stack local vectors. 
2281         https://bugs.webkit.org/show_bug.cgi?id=46760
2282
2283         Test: animations/animation-add-events-in-handler.html
2284
2285         * page/animation/AnimationController.cpp:
2286         (WebCore::AnimationControllerPrivate::fireEventsAndUpdateStyle):
2287
2288 2011-01-26  Nate Chapin  <japhet@chromium.org>
2289
2290         Reviewed by Adam Barth.
2291
2292         Remove m_URL from FrameLoader and depend on Document::url()
2293         instead. FrameLoader::url() will be removed in a followup patch.
2294         https://bugs.webkit.org/show_bug.cgi?id=41165
2295
2296         Refactor only, no new tests.
2297
2298         * WebCore.exp.in:
2299         * dom/Document.cpp:
2300         (WebCore::Document::Document):
2301         (WebCore::Document::updateURLForPushOrReplaceState):
2302         * loader/DocumentWriter.cpp:
2303         (WebCore::DocumentWriter::begin):
2304         * loader/FrameLoader.cpp:
2305         (WebCore::FrameLoader::iconURL):
2306         (WebCore::FrameLoader::didOpenURL):
2307         (WebCore::FrameLoader::didExplicitOpen):
2308         (WebCore::FrameLoader::receivedFirstData):
2309         (WebCore::FrameLoader::url):
2310         (WebCore::FrameLoader::setOutgoingReferrer):
2311         (WebCore::FrameLoader::startIconLoader):
2312         (WebCore::FrameLoader::commitIconURLToIconDatabase):
2313         (WebCore::FrameLoader::finishedParsing):
2314         (WebCore::FrameLoader::checkIfDisplayInsecureContent):
2315         (WebCore::FrameLoader::checkIfRunInsecureContent):
2316         (WebCore::FrameLoader::updateFirstPartyForCookies):
2317         (WebCore::FrameLoader::loadInSameDocument):
2318         (WebCore::FrameLoader::commitProvisionalLoad):
2319         (WebCore::FrameLoader::open):
2320         (WebCore::FrameLoader::shouldScrollToAnchor):
2321         * loader/FrameLoader.h: Rename setURL() to setOutgoingReferrer().
2322
2323 2011-01-25  Brian Weinstein  <bweinstein@apple.com>
2324
2325         Reviewed by Antti Koivisto.
2326
2327         Crashes loading pages when cancelling subresource loads through WebKit
2328         https://bugs.webkit.org/show_bug.cgi?id=53123
2329         <rdar://problem/8914361>
2330         
2331         Fix a crash that happened when cancelling subresource loads through WebKit.
2332         
2333         When a load is cancelled synchronously (via the WebKit client), CachedResourceLoader::requestResource 
2334         can be called recursively on the same function, either leading to infinite recursion, or deleting 
2335         an object when it is not done being used.
2336         
2337         The fix for this was to call checkForPendingPreloads and servePendingRequests asynchronously when 
2338         CachedResourceLoader::loadDone was called synchronously (due to the load being cancelled synchronously).
2339
2340         Test: fast/loader/willSendRequest-null-for-preload.html
2341
2342         * loader/DocumentLoader.cpp:
2343         (WebCore::DocumentLoader::setRequest): Only dispatch didReceiveServerRedirectForProvisionalLoadForFrame 
2344             if our new URL is non-null.
2345         * loader/cache/CachedResourceLoader.cpp:
2346         (WebCore::CachedResourceLoader::CachedResourceLoader): Initialize our timer.
2347         (WebCore::CachedResourceLoader::loadDone): If the CachedResource we were passed in was 0, that means this 
2348             function was called synchronously
2349             from CachedResourceRequest::load, and we don't want to call into checkForPendingPreloads synchronously, 
2350             so put it on a 0-delay timer to make the calls to checkForPendingPreloads and servePendingRequests asynchronous.
2351         (WebCore::CachedResourceLoader::loadDonePendingActionTimerFired): Call checkForPendingPreloads and servePendingRequests.
2352         (WebCore::CachedResourceLoader::checkForPendingPreloads): m_pendingPreloads is now a Deque instead of a Vector, 
2353             so use Deque methods.
2354         * loader/cache/CachedResourceLoader.h: Add the timer, the timer callback function, and make m_pendingPreloads a Deque.
2355
2356 2011-01-25  Pavel Podivilov  <podivilov@chromium.org>
2357
2358         Reviewed by Pavel Feldman.
2359
2360         Web Inspector: evaluate in console may not work when window.console is substituted or deleted.
2361         https://bugs.webkit.org/show_bug.cgi?id=53072
2362
2363         Test: inspector/console-substituted.html
2364
2365         * inspector/InjectedScriptSource.js:
2366         (.):
2367
2368 2011-01-26  Carlos Garcia Campos  <cgarcia@igalia.com>
2369
2370         Reviewed by Martin Robinson.
2371
2372         [cairo] Use CAIRO_OPERATOR_DARKEN when available
2373         https://bugs.webkit.org/show_bug.cgi?id=53084
2374
2375         Use CAIRO_OPERATOR_DARKEN for CompositePlusDarker instead of
2376         CAIRO_OPERATOR_SATURATE when building with cairo version >= 1.10.
2377
2378         * platform/graphics/cairo/CairoUtilities.cpp:
2379         (WebCore::toCairoOperator):
2380
2381 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2382
2383         Reviewed by Yury Semikhatsky.
2384
2385         Web Inspector: visualize \n in strings as unicode cr
2386         symbol in stack variables sidebar.
2387         https://bugs.webkit.org/show_bug.cgi?id=53162
2388
2389         * inspector/front-end/ObjectPropertiesSection.js:
2390         (WebInspector.ObjectPropertyTreeElement.prototype.update):
2391
2392 2011-01-26  Andrey Kosyakov  <caseq@chromium.org>
2393
2394         Reviewed by Pavel Feldman.
2395
2396         Web Inspector: size is wrong for cached resources in Network panel
2397         - Set the size for 304/not modified resources from cached resource.
2398         - Add response headers size to resource transfer size.
2399         https://bugs.webkit.org/show_bug.cgi?id=52886
2400
2401         * inspector/InspectorResourceAgent.cpp:
2402         (WebCore::InspectorResourceAgent::didReceiveResponse):
2403         * inspector/front-end/Resource.js:
2404         (WebInspector.Resource):
2405         (WebInspector.Resource.prototype.get transferSize):
2406         (WebInspector.Resource.prototype.set responseHeaders):
2407         (WebInspector.Resource.prototype._headersSize):
2408         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
2409
2410 2011-01-26  Carol Szabo  <carol.szabo@nokia.com>
2411
2412         Reviewed by Simon Hausmann.
2413
2414         Fixed TiledBacking store to take into account new dirty regions caused by
2415         paint time layouts.
2416
2417         Flawed rendering design for QtWebKit resulting in artifacts being displayed
2418         https://bugs.webkit.org/show_bug.cgi?id=49184
2419
2420         There are no new tests as this patch aims at fixing flicker that
2421         happen randomly, mostly on slow hardware, thus are hard to reproduce
2422         consistently in an automated test.
2423
2424         This patch does not fully address the said bug but it is a step in the
2425         right direction. A full solution to the bug, as currently perceived,
2426         requires either a Qt GUI API change, a performance hit for QtWebKit,
2427         or a hack, until a full solution is provided this patch is progress.
2428
2429         * platform/graphics/TiledBackingStore.cpp:
2430         (WebCore::TiledBackingStore::updateTileBuffers):
2431         Changed to take into account newly dirtied areas created during
2432         tile update initiated layouts during the same update.
2433
2434 2011-01-26  Patrick Gansterer  <paroga@webkit.org>
2435
2436         Reviewed by Andreas Kling.
2437
2438         [SKIA] Remove "current path" of GraphicsContext
2439         https://bugs.webkit.org/show_bug.cgi?id=53124
2440
2441         * platform/graphics/GraphicsContext.h:
2442         * platform/graphics/skia/GraphicsContextSkia.cpp:
2443         (WebCore::GraphicsContext::clipPath):
2444         (WebCore::GraphicsContext::fillPath):
2445         (WebCore::GraphicsContext::strokePath):
2446         * platform/graphics/skia/PathSkia.cpp:
2447         (WebCore::Path::strokeBoundingRect):
2448         * platform/graphics/skia/PlatformContextSkia.cpp:
2449         * platform/graphics/skia/PlatformContextSkia.h:
2450
2451 2011-01-26  Zalan Bujtas <zbujtas@gmail.com>
2452
2453         Reviewed by Andreas Kling.
2454
2455         [Qt] Path::normalAngleAtLength() returns incorrect value on ACID3.
2456
2457         QPainterPath returns angle values with the origo being at the top left corner,
2458         we need to account for this in normalAngleAtLength().
2459         This Regressed with r66979.
2460
2461         No new tests as this is already covered by ACID3.
2462
2463         * platform/graphics/qt/PathQt.cpp:
2464         (WebCore::Path::normalAngleAtLength):
2465
2466 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2467
2468         Reviewed by Yury Semikhatsky.
2469
2470         Web Inspector: live edit does not update source snippet.
2471         https://bugs.webkit.org/show_bug.cgi?id=53097
2472
2473         * inspector/front-end/ScriptsPanel.js:
2474         (WebInspector.ScriptsPanel.prototype._scriptSourceChanged):
2475
2476 2011-01-26  Pavel Feldman  <pfeldman@chromium.org>
2477
2478         Reviewed by Yury Semikhatsky.
2479
2480         Web Inspector: Incorrect on-hover evaluation of a variable named 'profile'.
2481         https://bugs.webkit.org/show_bug.cgi?id=53018
2482
2483         * inspector/InjectedScript.cpp:
2484         (WebCore::InjectedScript::evaluate):
2485         (WebCore::InjectedScript::evaluateOnCallFrame):
2486         (WebCore::InjectedScript::getCompletions):
2487         (WebCore::InjectedScript::getCompletionsOnCallFrame):
2488         * inspector/InjectedScript.h:
2489         * inspector/InjectedScriptSource.js:
2490         (.):
2491         * inspector/Inspector.idl:
2492         * inspector/InspectorDebuggerAgent.cpp:
2493         (WebCore::InspectorDebuggerAgent::evaluateOnCallFrame):
2494         (WebCore::InspectorDebuggerAgent::getCompletionsOnCallFrame):
2495         * inspector/InspectorDebuggerAgent.h:
2496         * inspector/InspectorRuntimeAgent.cpp:
2497         (WebCore::InspectorRuntimeAgent::evaluate):
2498         (WebCore::InspectorRuntimeAgent::getCompletions):
2499         * inspector/InspectorRuntimeAgent.h:
2500         * inspector/front-end/ConsoleView.js:
2501         (WebInspector.ConsoleView.prototype.completions):
2502         (WebInspector.ConsoleView.prototype.evalInInspectedWindow):
2503         (WebInspector.ConsoleView.prototype._enterKeyPressed):
2504         * inspector/front-end/ScriptsPanel.js:
2505         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame.updatingCallbackWrapper):
2506         (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
2507         * inspector/front-end/SourceFrame.js:
2508         (WebInspector.SourceFrame.prototype._showPopup):
2509         * inspector/front-end/WatchExpressionsSidebarPane.js:
2510         (WebInspector.WatchExpressionsSection.prototype.update):
2511
2512 2011-01-26  Hironori Bono  <hbono@chromium.org>
2513
2514         Reviewed by Kent Tamura.
2515
2516         A speculative fix for Bug 52422 - [chromium] More crash in
2517         FontFallbackList::determinePitch(const Font* font)
2518         https://bugs.webkit.org/show_bug.cgi?id=52422
2519
2520         My previous change may not work on non-US Windows whose system fonts
2521         have localized aliases matching to the system locale because of a
2522         font-name mismatch in createFontIndirectAndGetWinName(). This change
2523         tries all the fonts installed in a PC and returns the first font that we
2524         can create without errors.
2525
2526         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
2527         (WebCore::GetLastResortFallbackFontProcData::GetLastResortFallbackFontProcData):
2528         Added a struct used for getLastResortFallbackFontProc().
2529         (WebCore::getLastResortFallbackFontProc): Added a callback for EnumFontFamilies().
2530         (WebCore::FontCache::getLastResortFallbackFont): Use EnumFontFamilies() to find a last-resort font.
2531
2532 2011-01-26  James Robinson  <jamesr@chromium.org>
2533
2534         Reviewed by Nate Chapin.
2535
2536         Add a DOMTimeStamp parameter to the requestAnimationFrame callback
2537         https://bugs.webkit.org/show_bug.cgi?id=53142
2538
2539         This adds a DOMTimeStamp parameter to the requestAnimationFrame callback to more
2540         closely match mozilla's proposal.  This is useful if the page has multiple imperative animations
2541         and wants to ensure that they all remain synchronized.  If each callback used Date.now() to
2542         update its animation state, they would potentially be out of sync with each other.  If they use
2543         the timestamp then all callbacks for the same "frame" will update to the same state.
2544
2545         Test: fast/animation/request-animation-frame-timestamps.html
2546
2547         * bindings/scripts/CodeGeneratorV8.pm:
2548         * bindings/scripts/test/V8/V8TestCallback.cpp:
2549         (WebCore::V8TestCallback::callbackWithClass2Param):
2550         * dom/Document.cpp:
2551         (WebCore::Document::serviceScriptedAnimations):
2552         * dom/Document.h:
2553         * dom/RequestAnimationFrameCallback.h:
2554         * dom/RequestAnimationFrameCallback.idl:
2555         * page/FrameView.cpp:
2556         (WebCore::FrameView::serviceScriptedAnimations):
2557         * page/FrameView.h:
2558
2559 2011-01-25  Yuzo Fujishima  <yuzo@google.com>
2560
2561         Unreviewed attempt to fix compilation error for Chromium Clang.
2562
2563         * platform/graphics/mac/ComplexTextController.cpp:
2564         (WebCore::ComplexTextController::advance):
2565
2566 2011-01-25  Ned Holbrook  <nholbrook@apple.com>
2567
2568         Reviewed by Dan Bernstein.
2569
2570         ComplexTextController incorrectly conflates string length and range of indexes
2571         https://bugs.webkit.org/show_bug.cgi?id=52760
2572
2573         Test: fast/text/offsetForPosition-complex-fallback.html
2574
2575         * platform/graphics/mac/ComplexTextController.cpp:
2576         (WebCore::ComplexTextController::offsetForPosition):
2577         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2578         (WebCore::ComplexTextController::ComplexTextRun::setIsNonMonotonic):
2579         (WebCore::ComplexTextController::advance):
2580         * platform/graphics/mac/ComplexTextController.h:
2581         (WebCore::ComplexTextController::ComplexTextRun::create):
2582         (WebCore::ComplexTextController::ComplexTextRun::indexEnd):
2583         * platform/graphics/mac/ComplexTextControllerATSUI.cpp:
2584         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2585         * platform/graphics/mac/ComplexTextControllerCoreText.cpp:
2586         (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
2587         (WebCore::ComplexTextController::collectComplexTextRunsForCharactersCoreText):
2588
2589 2011-01-25  Sam Weinig  <sam@webkit.org>
2590
2591         Reviewed by David Hyatt.
2592
2593         Scrollbars don't work correctly for top-to-bottom text in an overflow: scroll area
2594         https://bugs.webkit.org/show_bug.cgi?id=53048
2595
2596         Test: fast/overflow/overflow-rtl-vertical-origin.html
2597
2598         * rendering/RenderLayer.cpp:
2599         (WebCore::RenderLayer::scrollPosition):
2600         (WebCore::RenderLayer::updateScrollInfoAfterLayout):
2601         Take the scroll origin into account when calculating scrollbars in more places.
2602
2603 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
2604
2605         Windows production build fix.
2606         Use correct configuration-specific path in makefile.
2607
2608         * WebCore.vcproj/WebCore.make:
2609
2610 2011-01-25  Kent Tamura  <tkent@chromium.org>
2611
2612         Reviewed by Dimitri Glazkov.
2613
2614         Radio button group state is not restored correctly
2615         https://bugs.webkit.org/show_bug.cgi?id=50442
2616
2617         Fixes a bug that radio button states are not restored correctly in
2618         a case that non-first radio button in a group is checked.
2619
2620         If "checked" attribute is present, the radio button is checked and
2621         other radio buttons in the group are unchecked. This behavior
2622         disturbs form state restoring. This patch changes this behavior so
2623         that the "checked" attribute handling is delayed after form state
2624         restoring.
2625
2626         Test: fast/forms/state-restore-radio-group.html
2627
2628         * html/HTMLFormControlElement.h:
2629          Make finishParsingChildren() protected so that HTMLInpuElement can call it.
2630         * html/HTMLInputElement.cpp:
2631         (WebCore::HTMLInputElement::HTMLInputElement):
2632          - Add createdByParser parameter.
2633          - Initialize m_stateRestored and m_parsingInProgress.
2634         (WebCore::HTMLInputElement::create): Sync with the constructor.
2635         (WebCore::HTMLInputElement::restoreFormControlState):
2636          Set m_stateRestored in order to refer it in finishParsingChildren().
2637         (WebCore::HTMLInputElement::parseMappedAttribute):
2638          Don't call setChecked() during parsing. Move setNeedsValidityCheck()
2639          to setChecked().
2640         (WebCore::HTMLInputElement::finishParsingChildren):
2641          Call setChecked() if form state is not restored.
2642         (WebCore::HTMLInputElement::setChecked):
2643          Move setNeedsValidityCheck() from parseMappedAttribute() because
2644          finishParsingChildren() also needs to call setNeedsValidityCheck().
2645         * html/HTMLInputElement.h:
2646          - Remove the default value of HTMLFormElement* of the HTMLInputElement
2647            constructor, and add createdByParser parameter.
2648          - Introduce m_parsingInProgress and m_stateRestored.
2649         * html/HTMLIsIndexElement.cpp:
2650         (WebCore::HTMLIsIndexElement::HTMLIsIndexElement):
2651          Sync with the HTMLInputElement constructor change.
2652         * html/HTMLTagNames.in: Add constructorNeedsCreatedByParser flag.
2653         * rendering/MediaControlElements.cpp:
2654         (WebCore::MediaControlInputElement::MediaControlInputElement):
2655          Sync with the HTMLInputElement constructor change.
2656         * rendering/ShadowElement.cpp:
2657         (WebCore::ShadowInputElement::ShadowInputElement): ditto.
2658         * rendering/ShadowElement.h:
2659         (WebCore::ShadowElement::ShadowElement): ditto.
2660
2661 2011-01-25  Kent Tamura  <tkent@chromium.org>
2662
2663         Reviewed by Dimitri Glazkov.
2664
2665         HTMLFormElement::checkValidity() returns incorrect result if 'invalid' events are canceled.
2666         https://bugs.webkit.org/show_bug.cgi?id=52565
2667
2668         * html/HTMLFormElement.cpp:
2669         (WebCore::HTMLFormElement::validateInteractively):
2670           Check checkInvalidControlsAndCollectUnhandled() result instead of
2671           checking emptiness of unhandled invalid controls list.
2672         (WebCore::HTMLFormElement::checkValidity): ditto.
2673         (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
2674           Renamed from collectUnhandledInvalidControls().
2675           Returns true if there is any invalid control regardless of event canceling.
2676         * html/HTMLFormElement.h: Rename collectUnhandledInvalidControls() to
2677           checkInvalidControlsAndCollectUnhandled().
2678
2679 2011-01-25  Kent Tamura  <tkent@chromium.org>
2680
2681         Reviewed by Dimitri Glazkov.
2682
2683         Range and number inputs should reject increment and decrement by
2684         keyboard or mouse wheel if they are disabled or read-only
2685         https://bugs.webkit.org/show_bug.cgi?id=53151
2686
2687         * html/RangeInputType.cpp:
2688         (WebCore::RangeInputType::handleKeydownEvent): Check disabled() and readOnly().
2689         * html/TextFieldInputType.cpp:
2690         (WebCore::TextFieldInputType::handleKeydownEventForSpinButton): ditto.
2691         (WebCore::TextFieldInputType::handleWheelEventForSpinButton): ditto.
2692
2693 2011-01-25  Kent Tamura  <tkent@chromium.org>
2694
2695         Reviewed by Dimitri Glazkov.
2696
2697         API to support localized numbers for <input type=number>
2698         https://bugs.webkit.org/show_bug.cgi?id=45730
2699
2700         Introduce platform/text/LocalizedNumber.h, and
2701         LocalizedNumberNone.cpp, which is an empty implementation of the
2702         functions in LocalizedNumber.h.  We use LocalizedNumberNone.cpp in
2703         all platforms for now.
2704
2705         A string in a type=number field is parsed as a localized number
2706         first. If the parsing fails, it is parsed as the HTML5 number.
2707
2708         We introduce HTMLInputElement::visibleValue(). It represents a value
2709         which should be drawn by a renderer. HTMLInputElement::value() always
2710         returns a number formatted for HTML5, and visibleValue() may return a
2711         localized number.
2712
2713         No new tests because this doesn't change any behavior.
2714
2715         * Android.mk: Add LocalizedNumber.h and/or LocalizedNumberNone.cpp.
2716         * CMakeLists.txt: ditto.
2717         * GNUmakefile.am: ditto.
2718         * WebCore.gypi: ditto.
2719         * WebCore.pro: ditto.
2720         * WebCore.vcproj/WebCore.vcproj: ditto.
2721         * WebCore.xcodeproj/project.pbxproj: ditto.
2722         * dom/InputElement.h: Add visibleValue().
2723         * html/HTMLInputElement.cpp:
2724         (WebCore::HTMLInputElement::visibleValue): Added.  Just call InputType::visibleValue().
2725         * html/HTMLInputElement.h: Declare visibleValue().
2726         * html/InputType.cpp:
2727         (WebCore::InputType::visibleValue): Add the default implementation of
2728           visibleValue(), which returns HTMLInputElement::value().
2729         * html/InputType.h: Add declarations.
2730         * html/NumberInputType.cpp:
2731         (WebCore::isHTMLNumberCharacter): Renamed from isNumberCharacter().
2732         (WebCore::isNumberCharacter): Calls isLocalizedNumberCharacter() and isHTMLNumberCharacter().
2733         (WebCore::NumberInputType::visibleValue):
2734           Returns a localized number string produced by formatLocalizedNumber().
2735         (WebCore::NumberInputType::isAcceptableValue): Calls parseLocalizedNumber().
2736         (WebCore::NumberInputType::sanitizeValue): Calls parseLocalizedNumber().
2737         * html/NumberInputType.h: Add declarations.
2738         * platform/text/LocalizedNumber.h: Added.
2739         * platform/text/LocalizedNumberNone.cpp: Added.
2740         (WebCore::parseLocalizedNumber):
2741         (WebCore::formatLocalizedNumber):
2742         (WebCore::isLocalizedNumberCharacter):
2743         * rendering/RenderTextControlSingleLine.cpp:
2744         (WebCore::RenderTextControlSingleLine::updateFromElement):
2745           Calls InputElement::visibleValue() instead of value().
2746         * wml/WMLInputElement.h:
2747         (WebCore::WMLInputElement::visibleValue): Added. It just calls value().
2748
2749 2011-01-25  Alexey Proskuryakov  <ap@apple.com>
2750
2751         Reviewed by Darin Adler.
2752
2753         https://bugs.webkit.org/show_bug.cgi?id=53143
2754         Add IntRectHash
2755
2756         * WebCore.xcodeproj/project.pbxproj:
2757         * platform/graphics/IntRectHash.h: Added.
2758
2759         * platform/graphics/IntSizeHash.h: Don't do "using WebCore::IntSize"!
2760
2761 2011-01-25  Ilya Sherman  <isherman@chromium.org>
2762
2763         Reviewed by Ryosuke Niwa.
2764
2765         Remove trailing whitespace in HTMLInputElement.cpp
2766         https://bugs.webkit.org/show_bug.cgi?id=53152
2767
2768         * html/HTMLInputElement.cpp:
2769         (WebCore::HTMLInputElement::updateCheckedRadioButtons):
2770         (WebCore::HTMLInputElement::applyStep):
2771         (WebCore::HTMLInputElement::updateFocusAppearance):
2772         (WebCore::HTMLInputElement::mapToEntry):
2773         (WebCore::HTMLInputElement::setAutofilled):
2774         (WebCore::HTMLInputElement::willMoveToNewOwnerDocument):
2775         (WebCore::HTMLInputElement::didMoveToNewOwnerDocument):
2776
2777 2011-01-25  Mike Reed  <reed@google.com>
2778
2779         Reviewed by James Robinson.
2780
2781         DrawingBufer::reset() today checks if the new size is the same as its
2782         m_size, and if so, returns immediately. This does not match the
2783         semantics of <canvas>, which wants to clear its contents anytime the
2784         size is specified.
2785         https://bugs.webkit.org/show_bug.cgi?id=53149
2786
2787         Test: Covered by existing <canvas> tests using gpu.
2788
2789         * platform/graphics/chromium/DrawingBufferChromium.cpp:
2790         (WebCore::DrawingBuffer::DrawingBuffer):
2791         * platform/graphics/gpu/DrawingBuffer.cpp:
2792         (WebCore::DrawingBuffer::reset):
2793
2794 2011-01-25  Cris Neckar  <cdn@chromium.org>
2795
2796         Reviewed by Adam Barth.
2797
2798         Add a hashset of DOMURLs to ScriptExecutionContext to track back references.
2799         https://bugs.webkit.org/show_bug.cgi?id=53038
2800
2801         Test: fast/dom/window-domurl-crash.html
2802
2803         * dom/ScriptExecutionContext.cpp:
2804         (WebCore::ScriptExecutionContext::~ScriptExecutionContext):
2805         (WebCore::ScriptExecutionContext::createdDomUrl):
2806         (WebCore::ScriptExecutionContext::destroyedDomUrl):
2807         * dom/ScriptExecutionContext.h:
2808         (WebCore::ScriptExecutionContext::domUrls):
2809         * html/DOMURL.cpp:
2810         (WebCore::DOMURL::DOMURL):
2811         (WebCore::DOMURL::~DOMURL):
2812         (WebCore::DOMURL::contextDestroyed):
2813         * html/DOMURL.h:
2814         (WebCore::DOMURL::scriptExecutionContext):
2815
2816 2011-01-23  Antti Koivisto  <antti@apple.com>
2817
2818         Reviewed by Darin Adler.
2819
2820         https://bugs.webkit.org/show_bug.cgi?id=52983
2821         Eliminate m_tagHistory pointer from CSSSelector
2822
2823         Keep the component selectors in the array in CSSSelectorList instead
2824         of maintaining a linked list between them. This allows eliminating
2825         m_tagHistory pointer, shrinking CSSSelector by 25% (selection performance
2826         seems to improve some too due to better locality).
2827
2828         * WebCore.xcodeproj/project.pbxproj:
2829         
2830             Make CSSSelector.h a private header.
2831         
2832         * css/CSSGrammar.y:
2833         
2834             Use CSSParserSelector during parsing to keep the tag history in 
2835             a linked list. This is flattened to an array after parsing.
2836             Use accessors for setting selector values.
2837             Use OwnPtr in selector vector.
2838             
2839         * css/CSSPageRule.cpp:
2840         (WebCore::CSSPageRule::CSSPageRule):
2841         * css/CSSPageRule.h:
2842         (WebCore::CSSPageRule::create):
2843         
2844             Simplify.
2845     
2846         * css/CSSParser.cpp:
2847         (WebCore::CSSParser::~CSSParser):
2848         (WebCore::CSSParser::createFloatingSelector):
2849         (WebCore::CSSParser::sinkFloatingSelector):
2850         (WebCore::CSSParser::createStyleRule):
2851         (WebCore::CSSParser::updateSpecifiersWithElementName):
2852         (WebCore::CSSParser::createPageRule):
2853         * css/CSSParser.h:
2854         (WebCore::CSSParser::reusableSelectorVector):
2855         
2856             CSSSelector -> CSSParserSelector.
2857             Use OwnPtr in selector vector.
2858             
2859         * css/CSSParserValues.cpp:
2860         (WebCore::CSSParserSelector::CSSParserSelector):
2861         (WebCore::CSSParserSelector::~CSSParserSelector):
2862         * css/CSSParserValues.h:
2863         (WebCore::CSSParserSelector::releaseSelector):
2864         (WebCore::CSSParserSelector::setTag):
2865         (WebCore::CSSParserSelector::setValue):
2866         (WebCore::CSSParserSelector::setAttribute):
2867         (WebCore::CSSParserSelector::setArgument):
2868         (WebCore::CSSParserSelector::setSimpleSelector):
2869         (WebCore::CSSParserSelector::setMatch):
2870         (WebCore::CSSParserSelector::setRelation):
2871         (WebCore::CSSParserSelector::setForPage):
2872         (WebCore::CSSParserSelector::pseudoType):
2873         (WebCore::CSSParserSelector::isUnknownPseudoElement):
2874         (WebCore::CSSParserSelector::isSimple):
2875         (WebCore::CSSParserSelector::tagHistory):
2876         (WebCore::CSSParserSelector::setTagHistory):
2877         
2878             Linked list used during parsing.
2879             Avoid recursive destruction.
2880
2881         * css/CSSSelector.cpp:
2882         (WebCore::CSSSelector::extractPseudoType):
2883         (WebCore::CSSSelector::operator==):
2884         (WebCore::CSSSelector::selectorText):
2885         (WebCore::CSSSelector::setSimpleSelector):
2886         * css/CSSSelector.h:
2887         (WebCore::CSSSelector::CSSSelector):
2888         (WebCore::CSSSelector::~CSSSelector):
2889         (WebCore::CSSSelector::tagHistory):
2890         (WebCore::CSSSelector::tag):
2891         (WebCore::CSSSelector::value):
2892         (WebCore::CSSSelector::setTag):
2893         (WebCore::CSSSelector::isLastInTagHistory):
2894         (WebCore::CSSSelector::setNotLastInTagHistory):
2895         (WebCore::CSSSelector::RareData::RareData):
2896         (WebCore::CSSSelector::RareData::~RareData):
2897         (WebCore::CSSSelector::createRareData):
2898         (WebCore::CSSSelector::setValue):
2899         
2900             Remove m_tagHistory.
2901             Keep m_value in the union with the rare data pointer instead.
2902             Make m_value and m_tag private, implement accessors.
2903             Add a new bit to indicate end of the tag history (multipart selector).
2904             Eliminate complex destruction. Selectors are now deleted as an array or by a CSSParserSelector chain.
2905             
2906         * css/CSSSelectorList.cpp:
2907         (WebCore::CSSSelectorList::adoptSelectorVector):
2908         
2909             Flatten everything to an array.
2910         
2911         (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
2912         * css/CSSSelectorList.h:
2913         (WebCore::CSSSelectorList::hasOneSelector):
2914         (WebCore::CSSSelectorList::next):
2915         
2916             Skip over the subparts of multipart selectors to find the next selector.
2917     
2918         * css/CSSStyleRule.h:
2919         (WebCore::CSSStyleRule::adoptSelectorVector):
2920         
2921             CSSSelector -> CSSParserSelector.
2922             
2923         * css/CSSStyleSelector.cpp:
2924         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
2925         (WebCore::CSSRuleSet::addRule):
2926         (WebCore::collectIdsAndSiblingRulesFromList):
2927         (WebCore::CSSStyleSelector::matchPageRulesForList):
2928         * dom/Node.cpp:
2929         (WebCore::Node::querySelector):
2930         * dom/SelectorNodeList.cpp:
2931         (WebCore::createSelectorNodeList):
2932         
2933             Use accessors.
2934
2935 2011-01-25  James Simonsen  <simonjam@chromium.org>
2936
2937         Reviewed by Tony Chang.
2938
2939         [Chromium] Support small caps in complex text on linux
2940         https://bugs.webkit.org/show_bug.cgi?id=53051
2941
2942         * platform/graphics/chromium/ComplexTextControllerLinux.cpp:
2943         (WebCore::ComplexTextController::nextScriptRun): Break runs at small caps boundaries.
2944         (WebCore::ComplexTextController::setupFontForScriptRun): Setup small caps font data if needed.
2945         * platform/graphics/chromium/ComplexTextControllerLinux.h: Store small caps text in separate string.
2946
2947 2011-01-25  Steve Falkenburg  <sfalken@apple.com>
2948
2949         Rubber-stamped by Adam Roben.
2950
2951         Windows production build fix.
2952         Use correct environment variable escaping
2953
2954         * WebCore.vcproj/WebCore.make:
2955
2956 2011-01-25  Adam Barth  <abarth@webkit.org>
2957
2958         Reviewed by Eric Seidel.
2959
2960         Empty URLs are never display isolated
2961         https://bugs.webkit.org/show_bug.cgi?id=53053
2962
2963         This check mirrors the check in the local case.  There isn't a good way
2964         to test this with a LayoutTest, but it is tested in Chromium (where
2965         this registry is used).
2966
2967         * platform/SchemeRegistry.cpp:
2968         (WebCore::SchemeRegistry::shouldTreatURLSchemeAsDisplayIsolated):
2969
2970 2011-01-25  Sam Weinig  <sam@webkit.org>
2971
2972         Reviewed by Anders Carlsson.
2973
2974         Pipe a timestamp down into the PlatformWheelEvent for the Mac.
2975         https://bugs.webkit.org/show_bug.cgi?id=53111
2976
2977         * platform/PlatformWheelEvent.h:
2978         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2979         (WebCore::PlatformWheelEvent::timestamp):
2980         Add timestamp member.
2981
2982         * platform/mac/WheelEventMac.mm:
2983         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
2984         Initialize the timestamp from the event.
2985
2986 2011-01-25  Sheriff Bot  <webkit.review.bot@gmail.com>
2987
2988         Unreviewed, rolling out r76625.
2989         http://trac.webkit.org/changeset/76625
2990         https://bugs.webkit.org/show_bug.cgi?id=53119
2991
2992         "incorrect pixel test results" (Requested by rniwa on
2993         #webkit).
2994
2995         * rendering/RenderBox.cpp:
2996         (WebCore::RenderBox::localCaretRect):
2997
2998 2011-01-25  Patrick Gansterer  <paroga@webkit.org>
2999
3000         Unreviewed WinCE build fix for r76614.
3001
3002         * platform/FileSystem.h:
3003
3004 2011-01-21  Levi Weintraub  <leviw@chromium.org>
3005
3006         Reviewed by Darin Adler.
3007
3008         Adding border and padding to the calculation of the local caret rect for RenderBoxes.
3009
3010         Undo moves caret to invalid position
3011         https://bugs.webkit.org/show_bug.cgi?id=49744
3012
3013         Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
3014                editing/selection/caret-painting-after-paste-undo.html
3015
3016         * rendering/RenderBox.cpp:
3017         (WebCore::RenderBox::localCaretRect):
3018
3019 2011-01-25  Sam Weinig  <sam@webkit.org>
3020
3021         Reviewed by Anders Carlsson.
3022
3023         Add hasPreciseScrollingDeltas bit to PlatformWheelEvent on the Mac.
3024         https://bugs.webkit.org/show_bug.cgi?id=53107
3025
3026         * platform/PlatformWheelEvent.h:
3027         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3028         (WebCore::PlatformWheelEvent::hasPreciseScrollingDeltas):
3029         * platform/mac/WheelEventMac.mm:
3030         (WebCore::PlatformWheelEvent::PlatformWheelEvent):
3031
3032 2011-01-20  Jer Noble  <jer.noble@apple.com>
3033
3034         Reviewed by Eric Carlson.
3035
3036         REGRESSION (r72119): Audio never plays on Star Wars intro animation
3037         https://bugs.webkit.org/show_bug.cgi?id=52467
3038         
3039         QuickTime's eat/m4a movie importer compontent doesn't list audio/m4a as a mime
3040         type which it supports, though it handles .m4a files just fine.  Change the way
3041         we build the list of supported MIME Types through a new WebKitSystemInterface
3042         function.
3043         
3044         Caused by r72119, which adds system-specific extension->MIME entries to the cache
3045         before global entries, and the system-specific entries include QuickTime's registry 
3046         entries which contain the audio/m4a MIME type, while its components do not.
3047
3048         Test: media/audio-mpeg4-supported.html
3049
3050         * WebCore.vcproj/QTMovieWinCommon.vsprops:
3051         * platform/graphics/win/QTMovie.cpp:
3052         (getMIMETypeCallBack):
3053         (initializeSupportedTypes):
3054         (QTMovie::countSupportedTypes): gSupportedTypes is now a CFArrayRef.
3055         (QTMovie::getSupportedType): Ditto.
3056
3057 2011-01-25  Hans Wennborg  <hans@chromium.org>
3058
3059         Reviewed by Jeremy Orlow.
3060
3061         IndexedDB: Remove PlatformBridge::idbShutdown()
3062         https://bugs.webkit.org/show_bug.cgi?id=53077
3063
3064         Since Chromium r72157, this is not used anymore. The previous use was
3065         to signal to the embedder that IndexedDB was shutting down, but we
3066         agreed it is better if the embedder keeps track of that itself.
3067
3068         No new tests: this does not change any functionality.
3069
3070         * platform/chromium/PlatformBridge.h:
3071         * storage/IDBFactoryBackendInterface.cpp:
3072         * storage/IDBFactoryBackendInterface.h:
3073         (WebCore::IDBFactoryBackendInterface::~IDBFactoryBackendInterface):
3074         * storage/chromium/IDBFactoryBackendInterface.cpp:
3075
3076 2011-01-25  Darin Adler  <darin@apple.com>
3077
3078         Reviewed by Anders Carlsson.
3079
3080         WebKit is using CSBackupSetItemExcluded incorrectly
3081         https://bugs.webkit.org/show_bug.cgi?id=53095
3082         rdar://problem/8790540
3083
3084         * loader/icon/IconDatabase.cpp:
3085         (WebCore::IconDatabase::performOpenInitialization): Added code to
3086         exclude the database from backup one time, and record inside the
3087         database that this has been done.
3088         (WebCore::IconDatabase::wasExcludedFromBackup): Added.
3089         (WebCore::IconDatabase::setWasExcludedFromBackup): Added.
3090         * loader/icon/IconDatabase.h: Added new functions above.
3091
3092         * platform/FileSystem.cpp:
3093         (WebCore::canExcludeFromBackup): Added.
3094         (WebCore::excludeFromBackup): Added.
3095
3096         * platform/FileSystem.h: Added canExcludeFromBackup, excludeFromBackup,
3097         and pathAsURL functions. Cleaned up ifdefs and comments a bit and sorted
3098         things alphabetically, particularly platform-specific sections.
3099
3100         * platform/cf/FileSystemCF.cpp:
3101         (WebCore::pathAsURL): Added.
3102
3103         * platform/mac/FileSystemMac.mm:
3104         (WebCore::canExcludeFromBackup): Added.
3105         (WebCore::excludeFromBackup): Added.
3106
3107         * platform/network/cf/FormDataStreamCFNet.cpp:
3108         (WebCore::advanceCurrentStream): Changed to call pathAsURL.
3109         * platform/network/mac/FormDataStreamMac.mm:
3110         (WebCore::advanceCurrentStream): Ditto.
3111
3112 2011-01-25  Helder Correia  <helder@sencha.com>
3113
3114         Reviewed by Dirk Schulze.
3115
3116         REGRESSION(75139): SVG gradients are not applied to texts
3117         https://bugs.webkit.org/show_bug.cgi?id=52531
3118
3119         CGContextConcatCTM should use the CGLayer context, not the
3120         GraphicsContext. Also, the CTM needs to be adjusted (translated).
3121         This fixes SVG text gradient fill.
3122
3123         Test: svg/css/composite-shadow-text.svg
3124
3125         * platform/graphics/cg/GraphicsContextCG.cpp:
3126         (WebCore::GraphicsContext::fillRect):
3127
3128 2011-01-25  Benjamin Kalman  <kalman@chromium.org>
3129
3130         Reviewed by Ryosuke Niwa.
3131
3132         Cannot extend or modify forward by word over a non-contenteditable region
3133         https://bugs.webkit.org/show_bug.cgi?id=53070
3134
3135         Test: editing/selection/extend-forward-by-word-over-non-editable.html
3136
3137         Change all instances of honorEditableBoundaryAtOrAfter to honorEditableBoundaryAtOrBefore and vice versa in the
3138         functions which determine the end/start of words/lines/sentences in visible_units.cpp.
3139
3140         This fixes the bug where moving forwards by a word over a non-contenteditable region would place the cursor
3141         inside that region, and then get moved back to the start of the word due to honorEditableBoundaryAtOrBefore.
3142         The cursor is now moved to the end of the region (which is effectively a noop in this case).
3143
3144         * editing/visible_units.cpp: Change all instances of honorEditableBoundaryAtOrAfter to
3145         honorEditableBoundaryAtOrBefore and vice versa.
3146         (WebCore::previousWordPosition):
3147         (WebCore::nextWordPosition):
3148         (WebCore::startOfLine):
3149         (WebCore::endOfLine):
3150         (WebCore::previousSentencePosition):
3151         (WebCore::nextSentencePosition):
3152         (WebCore::logicalStartOfLine):
3153         (WebCore::logicalEndOfLine):
3154
3155 2011-01-25  Yael Aharon  <yael.aharon@nokia.com>
3156
3157         Unreviewed build fix.
3158         After r76466, efsrv.lib is used unconditionally.
3159         Don't guard it with ENABLE_NETSCAPE_PLUGIN_API.
3160
3161         * WebCore.pro:
3162
3163 2011-01-24  Zhenyao Mo  <zmo@google.com>
3164
3165         Reviewed by Kenneth Russell.
3166
3167         Style cleanup for WebGLRenderingContext
3168         https://bugs.webkit.org/show_bug.cgi?id=52352
3169
3170         * html/canvas/WebGLBuffer.cpp:
3171         * html/canvas/WebGLBuffer.h:
3172         * html/canvas/WebGLObject.cpp:
3173         * html/canvas/WebGLProgram.cpp:
3174         * html/canvas/WebGLRenderbuffer.cpp:
3175         * html/canvas/WebGLRenderingContext.cpp:
3176         (WebCore::WebGLRenderingContext::create):
3177         (WebCore::WebGLRenderingContext::blendFunc):
3178         (WebCore::WebGLRenderingContext::createShader):
3179         (WebCore::WebGLRenderingContext::deleteBuffer):
3180         (WebCore::WebGLRenderingContext::deleteShader):
3181         (WebCore::WebGLRenderingContext::deleteTexture):
3182         (WebCore::WebGLRenderingContext::disableVertexAttribArray):
3183         (WebCore::WebGLRenderingContext::validateIndexArrayPrecise):
3184         (WebCore::WebGLRenderingContext::validateRenderingState):
3185         (WebCore::WebGLRenderingContext::enableVertexAttribArray):
3186         (WebCore::WebGLRenderingContext::getUniform):
3187         (WebCore::WebGLRenderingContext::detachAndRemoveAllObjects):
3188         * html/canvas/WebGLRenderingContext.h:
3189         * html/canvas/WebGLShader.cpp:
3190         * html/canvas/WebGLTexture.cpp:
3191         * html/canvas/WebGLUniformLocation.cpp:
3192         * html/canvas/WebGLUniformLocation.h:
3193
3194 2011-01-24  Chris Marrin  <cmarrin@apple.com>
3195
3196         Reviewed by Eric Seidel.
3197
3198         Change ENABLE_3D_CANVAS to ENABLE_WEBGL
3199         https://bugs.webkit.org/show_bug.cgi?id=53041
3200
3201         * Configurations/FeatureDefines.xcconfig:
3202         * DerivedSources.cpp:
3203         * GNUmakefile.am:
3204         * WebCore.pro:
3205         * bindings/generic/RuntimeEnabledFeatures.h:
3206         * bindings/js/JSArrayBufferCustom.cpp:
3207         * bindings/js/JSCanvasRenderingContextCustom.cpp:
3208         (WebCore::toJS):
3209         * bindings/js/JSDOMWindowCustom.cpp:
3210         * bindings/js/JSDataViewCustom.cpp:
3211         * bindings/js/JSDocumentCustom.cpp:
3212         * bindings/js/JSFloat32ArrayCustom.cpp:
3213         * bindings/js/JSHTMLCanvasElementCustom.cpp:
3214         (WebCore::JSHTMLCanvasElement::getContext):
3215         * bindings/js/JSInt16ArrayCustom.cpp:
3216         * bindings/js/JSInt32ArrayCustom.cpp:
3217         * bindings/js/JSInt8ArrayCustom.cpp:
3218         * bindings/js/JSUint16ArrayCustom.cpp:
3219         * bindings/js/JSUint32ArrayCustom.cpp:
3220         * bindings/js/JSUint8ArrayCustom.cpp:
3221         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3222         * bindings/js/JSXMLHttpRequestCustom.cpp:
3223         (WebCore::JSXMLHttpRequest::markChildren):
3224         (WebCore::JSXMLHttpRequest::send):
3225         (WebCore::JSXMLHttpRequest::response):
3226         * bindings/v8/custom/V8ArrayBufferCustom.cpp:
3227         * bindings/v8/custom/V8ArrayBufferViewCustom.h:
3228         * bindings/v8/custom/V8DataViewCustom.cpp:
3229         * bindings/v8/custom/V8DocumentCustom.cpp:
3230         (WebCore::V8Document::getCSSCanvasContextCallback):
3231         * bindings/v8/custom/V8Float32ArrayCustom.cpp:
3232         * bindings/v8/custom/V8HTMLCanvasElementCustom.cpp:
3233         (WebCore::V8HTMLCanvasElement::getContextCallback):
3234         * bindings/v8/custom/V8Int16ArrayCustom.cpp:
3235         * bindings/v8/custom/V8Int32ArrayCustom.cpp:
3236         * bindings/v8/custom/V8Int8ArrayCustom.cpp:
3237         * bindings/v8/custom/V8Uint16ArrayCustom.cpp:
3238         * bindings/v8/custom/V8Uint32ArrayCustom.cpp:
3239         * bindings/v8/custom/V8Uint8ArrayCustom.cpp:
3240         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3241         * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
3242         (WebCore::V8XMLHttpRequest::responseAccessorGetter):
3243         (WebCore::V8XMLHttpRequest::sendCallback):
3244         * features.pri:
3245         * html/HTMLCanvasElement.cpp:
3246         (WebCore::HTMLCanvasElement::getContext):
3247         (WebCore::HTMLCanvasElement::reset):
3248         * html/HTMLCanvasElement.h:
3249         * html/canvas/ArrayBuffer.cpp:
3250         * html/canvas/ArrayBuffer.idl:
3251         * html/canvas/ArrayBufferView.cpp:
3252         * html/canvas/ArrayBufferView.idl:
3253         * html/canvas/DataView.cpp:
3254         * html/canvas/DataView.idl:
3255         * html/canvas/Float32Array.cpp:
3256         * html/canvas/Float32Array.idl:
3257         * html/canvas/Int16Array.cpp:
3258         * html/canvas/Int16Array.idl:
3259         * html/canvas/Int32Array.cpp:
3260         * html/canvas/Int32Array.idl:
3261         * html/canvas/Int8Array.cpp:
3262         * html/canvas/Int8Array.idl:
3263         * html/canvas/OESStandardDerivatives.cpp:
3264         * html/canvas/OESStandardDerivatives.idl:
3265         * html/canvas/OESTextureFloat.cpp:
3266         * html/canvas/OESTextureFloat.idl:
3267         * html/canvas/Uint16Array.cpp:
3268         * html/canvas/Uint16Array.idl:
3269         * html/canvas/Uint32Array.cpp:
3270         * html/canvas/Uint32Array.idl:
3271         * html/canvas/Uint8Array.cpp:
3272         * html/canvas/Uint8Array.idl:
3273         * html/canvas/WebGLActiveInfo.idl:
3274         * html/canvas/WebGLBuffer.cpp:
3275         * html/canvas/WebGLBuffer.idl:
3276         * html/canvas/WebGLContextAttributes.cpp:
3277         * html/canvas/WebGLContextAttributes.idl:
3278         * html/canvas/WebGLContextEvent.idl:
3279         * html/canvas/WebGLExtension.cpp:
3280         * html/canvas/WebGLFramebuffer.cpp:
3281         * html/canvas/WebGLFramebuffer.idl:
3282         * html/canvas/WebGLGetInfo.cpp:
3283         * html/canvas/WebGLObject.cpp:
3284         * html/canvas/WebGLProgram.cpp:
3285         * html/canvas/WebGLProgram.idl:
3286         * html/canvas/WebGLRenderbuffer.cpp:
3287         * html/canvas/WebGLRenderbuffer.idl:
3288         * html/canvas/WebGLRenderingContext.cpp:
3289         * html/canvas/WebGLRenderingContext.idl:
3290         * html/canvas/WebGLShader.cpp:
3291         * html/canvas/WebGLShader.idl:
3292         * html/canvas/WebGLTexture.cpp:
3293         * html/canvas/WebGLTexture.idl:
3294         * html/canvas/WebGLUniformLocation.cpp:
3295         * html/canvas/WebGLUniformLocation.idl:
3296         * html/canvas/WebKitLoseContext.cpp:
3297         * html/canvas/WebKitLoseContext.idl:
3298         * page/DOMWindow.idl:
3299         * platform/graphics/ANGLEWebKitBridge.cpp:
3300         * platform/graphics/GraphicsContext3D.cpp:
3301         * platform/graphics/cg/GraphicsContext3DCG.cpp:
3302         * platform/graphics/gpu/DrawingBuffer.cpp:
3303         * platform/graphics/gpu/mac/DrawingBufferMac.mm:
3304         * platform/graphics/mac/GraphicsContext3DMac.mm:
3305         * platform/graphics/mac/WebGLLayer.mm:
3306         * platform/graphics/opengl/Extensions3DOpenGL.cpp:
3307         * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
3308         * platform/graphics/qt/Extensions3DQt.cpp:
3309         * platform/graphics/qt/GraphicsContext3DQt.cpp:
3310         * platform/graphics/qt/GraphicsLayerQt.cpp:
3311         (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
3312         (WebCore::GraphicsLayerQtImpl::paint):
3313         (WebCore::GraphicsLayerQtImpl::flushChanges):
3314         * platform/graphics/qt/GraphicsLayerQt.h:
3315         * platform/graphics/skia/GraphicsContext3DSkia.cpp:
3316         * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
3317         * rendering/RenderLayerBacking.cpp:
3318         (WebCore::isAcceleratedCanvas):
3319         (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration):
3320         (WebCore::RenderLayerBacking::containsPaintedContent):
3321         (WebCore::RenderLayerBacking::contentChanged):
3322         * webaudio/AudioBuffer.cpp:
3323         * webaudio/AudioBuffer.idl:
3324         * webaudio/RealtimeAnalyser.cpp:
3325         * webaudio/RealtimeAnalyser.h:
3326         * webaudio/RealtimeAnalyserNode.h:
3327         * webaudio/RealtimeAnalyserNode.idl:
3328         * xml/XMLHttpRequest.cpp:
3329         (WebCore::XMLHttpRequest::setResponseType):
3330         (WebCore::XMLHttpRequest::clearResponse):
3331         (WebCore::XMLHttpRequest::didReceiveData):
3332         * xml/XMLHttpRequest.h:
3333
3334 2011-01-25  Mikhail Naganov  <mnaganov@chromium.org>
3335
3336         Reviewed by Pavel Feldman.
3337
3338         Web Inspector: [Chromium] Prepare for landing of detailed heap snapshots.
3339
3340         - Introduce Preferences.detailedHeapProfiles flag for controlling
3341           querying of detailed heap snapshots.
3342         - Add boilerplate code for the new view.
3343         - Factor out common code.
3344
3345         https://bugs.webkit.org/show_bug.cgi?id=52624
3346
3347         * WebCore.gypi:
3348         * WebCore.vcproj/WebCore.vcproj:
3349         * bindings/js/ScriptProfiler.h:
3350         (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl):
3351         (WebCore::ScriptProfiler::takeHeapSnapshot):
3352         * bindings/v8/ScriptProfiler.cpp:
3353         (WebCore::ScriptProfiler::takeHeapSnapshot):
3354         * bindings/v8/ScriptProfiler.h:
3355         (WebCore::ScriptProfiler::HeapSnapshotControl::~HeapSnapshotControl):
3356         * inspector/Inspector.idl:
3357         * inspector/InspectorProfilerAgent.cpp:
3358         (WebCore::InspectorProfilerAgent::takeHeapSnapshot):
3359         * inspector/InspectorProfilerAgent.h:
3360         * inspector/front-end/DetailedHeapshotView.js: Added.
3361         (WebInspector.DetailedHeapshotView):
3362         (WebInspector.DetailedHeapshotView.prototype.get statusBarItems):
3363         (WebInspector.DetailedHeapshotView.prototype.get profile):
3364         (WebInspector.DetailedHeapshotView.prototype.set profile):
3365         (WebInspector.DetailedHeapshotView.prototype.show):
3366         (WebInspector.DetailedHeapshotView.prototype.hide):
3367         (WebInspector.DetailedHeapshotProfileType):
3368         (WebInspector.DetailedHeapshotProfileType.prototype.get buttonTooltip):
3369         (WebInspector.DetailedHeapshotProfileType.prototype.get buttonStyle):
3370         (WebInspector.DetailedHeapshotProfileType.prototype.buttonClicked):
3371         (WebInspector.DetailedHeapshotProfileType.prototype.get welcomeMessage):
3372         (WebInspector.DetailedHeapshotProfileType.prototype.createSidebarTreeElementForProfile):
3373         (WebInspector.DetailedHeapshotProfileType.prototype.createView):
3374         * inspector/front-end/HeapSnapshot.js: Added.
3375         (WebInspector.HeapSnapshotEdgesIterator):
3376         (WebInspector.HeapSnapshotEdgesIterator.prototype.get done):
3377         (WebInspector.HeapSnapshotEdgesIterator.prototype.get isElement):
3378         (WebInspector.HeapSnapshotEdgesIterator.prototype.get isHidden):
3379         (WebInspector.HeapSnapshotEdgesIterator.prototype.get name):
3380         (WebInspector.HeapSnapshotEdgesIterator.prototype.next):
3381         (WebInspector.HeapSnapshotEdgesIterator.prototype.get node):
3382         (WebInspector.HeapSnapshotEdgesIterator.prototype.get nodeIndex):
3383         (WebInspector.HeapSnapshotEdgesIterator.prototype._getNameOrIndex):
3384         (WebInspector.HeapSnapshotEdgesIterator.prototype._getType):
3385         (WebInspector.HeapSnapshotNodeWrapper):
3386         (WebInspector.HeapSnapshotNodeWrapper.prototype.get edges):
3387         (WebInspector.HeapSnapshotNodeWrapper.prototype.get edgesCount):
3388         (WebInspector.HeapSnapshotNodeWrapper.prototype.get instancesCount):
3389         (WebInspector.HeapSnapshotNodeWrapper.prototype.get isHidden):
3390         (WebInspector.HeapSnapshotNodeWrapper.prototype.get name):
3391         (WebInspector.HeapSnapshotNodeWrapper.prototype.get selfSize):
3392         (WebInspector.HeapSnapshotNodeWrapper.prototype._getName):
3393         (WebInspector.HeapSnapshotNodeWrapper.prototype._getEdges):
3394         (WebInspector.HeapSnapshotNodeWrapper.prototype._getType):
3395         (WebInspector.HeapSnapshot):
3396         (WebInspector.HeapSnapshot.prototype._init):
3397         (WebInspector.HeapSnapshot.prototype.get rootEdges):
3398         * inspector/front-end/HeapSnapshotView.js:
3399         (WebInspector.HeapSnapshotProfileType.prototype.buttonClicked):
3400         * inspector/front-end/ProfilesPanel.js:
3401         (WebInspector.ProfilesPanel.prototype._setRecordingProfile):
3402         (WebInspector.ProfilesPanel.prototype._reportHeapSnapshotProgress):
3403         (WebInspector.ProfilerDispatcher.prototype.setRecordingProfile):
3404         (WebInspector.ProfilerDispatcher.prototype.reportHeapSnapshotProgress):
3405         * inspector/front-end/Settings.js:
3406         * inspector/front-end/WebKit.qrc:
3407         * inspector/front-end/inspector.html:
3408         * inspector/front-end/inspector.js:
3409         (WebInspector._createPanels):
3410
3411 2011-01-25  Yury Semikhatsky  <yurys@chromium.org>
3412
3413         Reviewed by Pavel Feldman.
3414
3415         Web Inspector: remove "attached" state related methods from InspectorAgent
3416         https://bugs.webkit.org/show_bug.cgi?id=53086
3417
3418         * WebCore.exp.in:
3419         * inspector/InspectorAgent.cpp:
3420         * inspector/InspectorAgent.h:
3421         * inspector/InspectorFrontendClientLocal.cpp:
3422         (WebCore::InspectorFrontendClientLocal::changeAttachedWindowHeight):
3423         (WebCore::InspectorFrontendClientLocal::restoreAttachedWindowHeight):
3424         * inspector/InspectorSettings.cpp:
3425         (WebCore::InspectorSettings::InspectorSettings):
3426         * inspector/InspectorSettings.h:
3427
3428 2011-01-25  Qi Zhang  <qi.2.zhang@nokia.com>
3429
3430         Reviewed by Laszlo Gombos.
3431
3432         [Symbian] RVCT fails to compile [U|I]nt[8|16|32]Array.h
3433         https://bugs.webkit.org/show_bug.cgi?id=51873
3434         
3435         Replace the using declaration, because it doesn't compile on RVCT, and WINSCW has the same issue.
3436         No new functionality so no new tests.
3437
3438         * html/canvas/Int32Array.h:
3439         (WebCore::Int32Array::set):
3440         * html/canvas/Int8Array.h:
3441         (WebCore::Int8Array::set):
3442         * html/canvas/Uint16Array.h:
3443         (WebCore::Uint16Array::set):
3444         * html/canvas/Uint32Array.h:
3445         (WebCore::Uint32Array::set):
3446         * html/canvas/Uint8Array.h:
3447         (WebCore::Uint8Array::set):
3448
3449 2011-01-25  Zoltan Herczeg  <zherczeg@webkit.org>
3450
3451         Reviewed by Dirk Schulze.
3452
3453         Repaint SVG elements with filter instead of relayout where possible
3454         https://bugs.webkit.org/show_bug.cgi?id=52200
3455
3456         This patch allows repainting of filters, when their
3457         attribute changes does not require relayout.
3458
3459         Existing dynamic-update tests cover this feature.
3460
3461         * platform/graphics/filters/FilterEffect.cpp:
3462         (WebCore::FilterEffect::clearResult): Clearing the currently stored image
3463         before repainting.
3464         * platform/graphics/filters/FilterEffect.h:
3465         * rendering/RenderObject.h:
3466         (WebCore::RenderObject::isSVGResourceFilter): Not only the filter primitives,
3467         but filters should also be detected to allow safe testing and casting.
3468         * rendering/svg/RenderSVGResourceFilter.cpp:
3469         (WebCore::RenderSVGResourceFilter::buildPrimitives): Passing the renderer.
3470         (WebCore::RenderSVGResourceFilter::applyResource):
3471         determineFilterPrimitiveSubregion does not require the filter anymore.
3472         (WebCore::RenderSVGResourceFilter::postApplyResource): Repaint
3473         if lastEffect->hasResult() is false.
3474         (WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
3475         Searching for all FilterEffects, whose created by the current FilterElement,
3476         and clearing all resulting images depending on those FilterEffects.
3477         * rendering/svg/RenderSVGResourceFilter.h:
3478         (WebCore::RenderSVGResourceFilter::isSVGResourceFilter):
3479         * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
3480         (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
3481         The filter argument is unnecessary anymore. But is is still kept as a static
3482         member, since the primitive renderer still does not know about the
3483         FilterEffect objects.
3484         * rendering/svg/RenderSVGResourceFilterPrimitive.h:
3485         (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive):
3486         (WebCore::RenderSVGResourceFilterPrimitive::primitiveAttributeChanged):
3487         Calls RenderSVGResourceFilter::primitiveAttributeChanged.
3488         * svg/SVGFEDiffuseLightingElement.cpp:
3489         (WebCore::SVGFEDiffuseLightingElement::setFilterEffectAttribute):
3490         Setting the new attribute value for each FilterEffect.
3491         (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged):
3492         * svg/SVGFEDiffuseLightingElement.h:
3493         Calling primitiveAttributeChanged.
3494         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
3495         (WebCore::SVGFilterPrimitiveStandardAttributes::setFilterEffectAttribute):
3496         This function will be removed when all FilterElement implements
3497         their setFilterEffectAttribute
3498         * svg/SVGFilterPrimitiveStandardAttributes.h:
3499         (WebCore::SVGFilterPrimitiveStandardAttributes::primitiveAttributeChanged):
3500         * svg/graphics/filters/SVGFilterBuilder.cpp:
3501         (WebCore::SVGFilterBuilder::appendEffectToEffectReferences): The
3502         renderers are assigned to the filter effects.
3503         (WebCore::SVGFilterBuilder::clearEffects):
3504         (WebCore::SVGFilterBuilder::clearResultsRecursive): Recursively
3505         clearing the result images for those filters, whose depend on
3506         the starting filter.
3507         * svg/graphics/filters/SVGFilterBuilder.h:
3508         (WebCore::SVGFilterBuilder::effectReferences): 'get' is unnecessary
3509         (WebCore::SVGFilterBuilder::effectByRenderer): returns the
3510         FilterEffect belongs to this RenderObject.
3511
3512 2011-01-25  Dirk Schulze  <krit@webkit.org>
3513
3514         Reviewed by Nikolas Zimmermann.
3515
3516         SVG is missing to-animation support for Path
3517         https://bugs.webkit.org/show_bug.cgi?id=52982
3518
3519         SVG was missing 'to' animation support for SVG paths. Even the fallback to discrete
3520         animation did not work and an assert was thrown, because of the missing m_fromPath.
3521         This also influences a test of the W3C test suite. Subtest 2 of animate-elem-83-t.svg passes now.
3522
3523         Test: svg/animations/animate-path-to-animation.html
3524
3525         * svg/SVGAnimateElement.cpp:
3526         (WebCore::SVGAnimateElement::calculateAnimatedValue): Take the value of the last SVGAnimateElement for
3527         m_fromPath, since 'to' animations are accumulative.
3528         (WebCore::SVGAnimateElement::calculateFromAndToValues): Added support for 'to' animations.
3529         (WebCore::SVGAnimateElement::resetToBaseValue): Set m_animatedPath on the first animation element to baseVal.
3530         * svg/SVGPathByteStream.h:
3531         (WebCore::SVGPathByteStream::copySVGPathByteStream): Return copy of current byte stream.
3532
3533 2011-01-25  Pavel Feldman  <pfeldman@chromium.org>
3534
3535         Reviewed by Yury Semikhatsky.
3536
3537         Web Inspector: bind resources to URLs upon adding them into the tree.
3538         https://bugs.webkit.org/show_bug.cgi?id=53013
3539
3540         * inspector/front-end/AuditRules.js:
3541         (WebInspector.AuditRules.UnusedCssRule.prototype.doRun.evalCallback.selectorsCallback):
3542         * inspector/front-end/CSSStyleModel.js:
3543         (WebInspector.CSSStyleModel.prototype._styleSheetChanged.callback):
3544         (WebInspector.CSSStyleModel.prototype._styleSheetChanged):
3545         * inspector/front-end/DebuggerModel.js:
3546         (WebInspector.DebuggerModel.prototype._parsedScriptSource):
3547         * inspector/front-end/NetworkManager.js:
3548         (WebInspector.NetworkManager.prototype._processCachedResources):
3549         (WebInspector.NetworkManager.prototype.inflightResourceForURL):
3550         (WebInspector.NetworkDispatcher):
3551         (WebInspector.NetworkDispatcher.prototype.willSendRequest):
3552         (WebInspector.NetworkDispatcher.prototype.markResourceAsCached):
3553         (WebInspector.NetworkDispatcher.prototype.didReceiveResponse):
3554         (WebInspector.NetworkDispatcher.prototype.didReceiveContentLength):
3555         (WebInspector.NetworkDispatcher.prototype.didFinishLoading):
3556         (WebInspector.NetworkDispatcher.prototype.didFailLoading):
3557         (WebInspector.NetworkDispatcher.prototype.willSendWebSocketHandshakeRequest):
3558         (WebInspector.NetworkDispatcher.prototype.didReceiveWebSocketHandshakeResponse):
3559         (WebInspector.NetworkDispatcher.prototype.didCloseWebSocket):
3560         (WebInspector.NetworkDispatcher.prototype._appendRedirect):
3561         (WebInspector.NetworkDispatcher.prototype._startResource):
3562         (WebInspector.NetworkDispatcher.prototype._finishResource):
3563         (WebInspector.NetworkDispatcher.prototype._createResource):
3564         * inspector/front-end/ResourceTreeModel.js:
3565         (WebInspector.ResourceTreeModel.prototype.addResourceToFrame):
3566         (WebInspector.ResourceTreeModel.prototype._bindResourceURL):
3567         (WebInspector.ResourceTreeModel.prototype._clearResources):
3568         (WebInspector.ResourceTreeModel.prototype._unbindResourceURL):
3569         * inspector/front-end/ResourcesPanel.js:
3570         (WebInspector.ResourcesPanel.prototype.canShowSourceLine):
3571         (WebInspector.ResourcesPanel.prototype.showSourceLine):
3572         * inspector/front-end/ScriptsPanel.js:
3573         (WebInspector.ScriptsPanel.prototype._parsedScriptSource):
3574         (WebInspector.ScriptsPanel.prototype._addScript):
3575
3576 2011-01-25  Nikolas Zimmermann  <nzimmermann@rim.com>
3577
3578         Reviewed by Dirk Schulze.
3579
3580         Introduce FontMetrics abstraction
3581         https://bugs.webkit.org/show_bug.cgi?id=51456
3582
3583         Use accurate floating-point metrics for SVG Font calculations instead of casting float -> integer.
3584         This hopefully fixes differences between 32/64 bit bots.
3585
3586         Needs new layout test results for several platforms, which need to be taken from the bots landing afterwards.
3587
3588         * platform/graphics/SimpleFontData.cpp:
3589         (WebCore::SimpleFontData::SimpleFontData):
3590         (WebCore::SimpleFontData::initCharWidths):
3591
3592 2011-01-24  Pavel Podivilov  <podivilov@chromium.org>
3593
3594         Reviewed by Pavel Feldman.
3595
3596         Web Inspector: debugger and browser debugger agents should manage sticky breakpoints independently.
3597         https://bugs.webkit.org/show_bug.cgi?id=52999
3598
3599         * inspector/Inspector.idl:
3600         * inspector/InspectorAgent.cpp:
3601         (WebCore::InspectorAgent::didCommitLoad):
3602         (WebCore::InspectorAgent::enableDebugger):
3603         (WebCore::InspectorAgent::inspectedURLWithoutFragment):
3604         * inspector/InspectorAgent.h:
3605         * inspector/InspectorBrowserDebuggerAgent.cpp:
3606         (WebCore::InspectorBrowserDebuggerAgent::setAllBrowserBreakpoints):
3607         (WebCore::InspectorBrowserDebuggerAgent::inspectedURLChanged):
3608         (WebCore::InspectorBrowserDebuggerAgent::restoreStickyBreakpoint):
3609         * inspector/InspectorBrowserDebuggerAgent.h:
3610         * inspector/InspectorDebuggerAgent.cpp:
3611         (WebCore::InspectorDebuggerAgent::InspectorDebuggerAgent):
3612         (WebCore::InspectorDebuggerAgent::setAllJavaScriptBreakpoints):
3613         (WebCore::InspectorDebuggerAgent::inspectedURLChanged):
3614         (WebCore::InspectorDebuggerAgent::restoreBreakpoints):
3615         * inspector/InspectorDebuggerAgent.h:
3616         * inspector/InspectorState.cpp:
3617         (WebCore::InspectorState::InspectorState):
3618         * inspector/InspectorState.h:
3619         * inspector/front-end/BreakpointManager.js:
3620         (WebInspector.BreakpointManager):
3621         (WebInspector.BreakpointManager.prototype._projectChanged):
3622         (WebInspector.BreakpointManager.prototype._saveBreakpoints):
3623         (WebInspector.BreakpointManager.prototype._pushBreakpointsToBackend):
3624
3625 2011-01-25  Carlos Garcia Campos  <cgarcia@igalia.com>
3626
3627         Reviewed by Martin Robinson.
3628
3629         [GTK] Crash in some pages containing flash
3630         https://bugs.webkit.org/show_bug.cgi?id=53016
3631
3632         Flash plugin can produce X errors that are handled by the GDK X
3633         error handler, which exits the process. Since we don't want to
3634         crash due to flash bugs, we install a custom error handler to show
3635         a warning when a X error happens without aborting.
3636
3637         * plugins/gtk/PluginPackageGtk.cpp:
3638         (WebCore::webkitgtkXError):
3639         (WebCore::PluginPackage::load):
3640
3641 2011-01-25  Carlos Garcia Campos  <cgarcia@igalia.com>
3642
3643         Reviewed by Martin Robinson.
3644
3645         [GTK] Implement spin buttons in RenderThemeGtk
3646         https://bugs.webkit.org/show_bug.cgi?id=51454
3647
3648         Paint inner up/down buttons for spin button elements when building
3649         with GTK+ 3.x.
3650
3651         Test results will land with the GTK+ 2.x version of this patch.
3652
3653         * platform/gtk/RenderThemeGtk.h:
3654         * platform/gtk/RenderThemeGtk2.cpp:
3655         (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3656         (WebCore::RenderThemeGtk::paintInnerSpinButton):
3657         * platform/gtk/RenderThemeGtk3.cpp:
3658         (WebCore::spinButtonArrowSize):
3659         (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
3660         (WebCore::paintSpinArrowButton):
3661         (WebCore::RenderThemeGtk::paintInnerSpinButton):
3662
3663 2011-01-24  Mihai Parparita  <mihaip@chromium.org>
3664
3665         Unreviewed. Missed move of one m_deleted use to be outside NDEBUG block
3666         in r76575.
3667
3668         * loader/cache/CachedResource.cpp:
3669         (WebCore::CachedResource::~CachedResource):
3670
3671 2011-01-24  Mihai Parparita  <mihaip@chromium.org>
3672
3673         Reviewed by Tony Chang.
3674
3675         Add runtime checks for invariants in memory cache
3676         https://bugs.webkit.org/show_bug.cgi?id=53059
3677         
3678         To help track down bug 53045, add some CRASH calls in addition to
3679         ASSERTs, so that we can track down failures in reliability bots.
3680
3681         Just some checks, no new tests necessary.
3682         
3683         * css/CSSImageValue.cpp:
3684         (WebCore::CSSImageValue::cachedImage):
3685         * loader/cache/CachedResource.h:
3686         * loader/cache/CachedResource.cpp:
3687         (WebCore::CachedResource::~CachedResource):
3688
3689 2011-01-24  Simon Fraser  <simon.fraser@apple.com>
3690
3691         Reviewed by Dan Bernstein.
3692
3693         Leaking CSSRuleDataList objects
3694         https://bugs.webkit.org/show_bug.cgi?id=53062
3695
3696         Fix leaked CSSRuleDataLists added to the m_pseudoRules hash.
3697
3698         * css/CSSStyleSelector.cpp:
3699         (WebCore::CSSRuleSet::~CSSRuleSet):
3700
3701 2011-01-24  Simon Fraser  <simon.fraser@apple.com>
3702
3703         Reviewed by Eric Seidel.
3704
3705         Refcount Images used in rendering code
3706         https://bugs.webkit.org/show_bug.cgi?id=52701
3707
3708         Change StyleImage::image(RenderObject*, const IntSize&) and
3709         CSSImageGeneratorValue::image(RenderObject*, const IntSize&) to
3710         return PassRefPtr<Image>, and adjust other code accordingly.
3711         
3712         This allows us to return one-time images, for example for CSS gradients
3713         whose appearance may change depending on factors other than the renderer
3714         and the destination size.
3715
3716         * css/CSSCanvasValue.cpp:
3717         (WebCore::CSSCanvasValue::image):
3718         * css/CSSCanvasValue.h:
3719         * css/CSSGradientValue.cpp:
3720         (WebCore::CSSGradientValue::image):
3721         * css/CSSGradientValue.h:
3722         * css/CSSImageGeneratorValue.h:
3723         * rendering/RenderBoxModelObject.cpp:
3724         (WebCore::RenderBoxModelObject::paintFillLayerExtended):
3725         (WebCore::RenderBoxModelObject::paintNinePieceImage):
3726         * rendering/RenderImage.cpp:
3727         (WebCore::RenderImage::paintReplaced):
3728         (WebCore::RenderImage::paintIntoRect):
3729         * rendering/RenderImageResource.h:
3730         (WebCore::RenderImageResource::image):
3731         * rendering/RenderImageResourceStyleImage.h:
3732         (WebCore::RenderImageResourceStyleImage::image):
3733         * rendering/RenderListMarker.cpp:
3734         (WebCore::RenderListMarker::paint):
3735         * rendering/style/StyleCachedImage.cpp:
3736         (WebCore::StyleCachedImage::image):
3737         * rendering/style/StyleCachedImage.h:
3738         * rendering/style/StyleGeneratedImage.cpp:
3739         (WebCore::StyleGeneratedImage::image):
3740         * rendering/style/StyleGeneratedImage.h:
3741         * rendering/style/StyleImage.h:
3742         * rendering/style/StylePendingImage.h:
3743         (WebCore::StylePendingImage::image):
3744         * rendering/svg/RenderSVGImage.cpp:
3745         (WebCore::RenderSVGImage::paint):
3746
3747 2011-01-24  Tony Chang  <tony@chromium.org>
3748
3749         Unreviewed, round ascent and descent to match old code.
3750
3751         * platform/graphics/chromium/SimpleFontDataLinux.cpp:
3752         (WebCore::SimpleFontData::platformInit):
3753
3754 2011-01-24  Simon Fraser  <simon.fraser@apple.com>
3755
3756         Reviewed by Chris Marrin.
3757
3758         perspective() transform function should take lengths
3759         https://bugs.webkit.org/show_bug.cgi?id=52683
3760         
3761         The argument to the perspective() transform function should
3762         be a Length, rather than a bare number. Bare numbers are still
3763         accepted (and treated as px), but this behavior is deprecated.
3764
3765         Test: animations/3d/transform-perspective.html
3766               transforms/3d/general/3dtransform-values.html
3767
3768         * css/CSSParser.cpp:
3769         (WebCore::CSSParser::parseTransform): Check the units for the perspective()
3770         function. Allow bare numbers for backwards compatibility.
3771         * css/CSSStyleSelector.cpp:
3772         (WebCore::CSSStyleSelector::createTransformOperations): Convert
3773         value to Length.
3774         * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
3775         (WebCore::clampToPostiveInteger): Helper.
3776         (WebCore::PerspectiveTransformOperation::blend): Blend via Lengths.
3777         * platform/graphics/transforms/PerspectiveTransformOperation.h:
3778         (WebCore::PerspectiveTransformOperation::create): double -> Length.
3779         (WebCore::PerspectiveTransformOperation::perspective): Ditto.
3780         (WebCore::PerspectiveTransformOperation::isIdentity): Ditto.
3781         (WebCore::PerspectiveTransformOperation::apply): Ditto.
3782         (WebCore::PerspectiveTransformOperation::PerspectiveTransformOperation): Assert
3783         that the Length is a fixed type.
3784
3785 2011-01-24  Kent Tamura  <tkent@chromium.org>
3786
3787         Reviewed by Dimitri Glazkov.
3788
3789         [Windows] Textfield <input>s have different widths.
3790         https://bugs.webkit.org/show_bug.cgi?id=48405
3791
3792         - Apply the padding override for type=text to other textfield types too.
3793         - Reset margin value of outer spin button, which is not used in Windows.
3794         - Don't add inner spin button width to the preferred text field width.
3795           Text fields should have the identical widths regardless of the
3796           existence of spin buttons.
3797
3798         Test: fast/forms/input-widths.html
3799
3800         * css/themeWin.css:
3801         (input[type="week"]):
3802         (input[type="week"]:disabled):
3803         (input[type="search"]::-webkit-search-cancel-button):
3804         (input::-webkit-outer-spin-button):
3805         * rendering/RenderTextControlSingleLine.cpp:
3806         (WebCore::RenderTextControlSingleLine::preferredContentWidth):
3807         Don't add inner spin button width to the preferred width.
3808
3809 2011-01-24  Kent Tamura  <tkent@chromium.org>
3810
3811         Reviewed by Dimitri Glazkov.
3812
3813         Some bugs of search cancel button and spin button about state change in
3814         an event handler.
3815         https://bugs.webkit.org/show_bug.cgi?id=46950
3816
3817         Fix the following problems:
3818          * Type=search field didn't release event capturing
3819          * Assertion failure when an input field with spin buttons was changed
3820            to another type on focus event.
3821          * A input field with spin button didn't release event capturing when it
3822            was changed to another type on focus event.
3823
3824         Tests: fast/forms/input-number-change-type-on-focus.html
3825                fast/forms/search-hide-cancel-on-cancel.html
3826
3827         * rendering/TextControlInnerElements.cpp:
3828         (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
3829          - Make the variable 'input' RefPtr.  It makes the code simpler.
3830          - Remove visibility check on mouseup event. We should release capturing
3831            anyway because the cancel button may be invisible if JavaScript code
3832            called by the focus event removes the input value.
3833         (WebCore::SpinButtonElement::detach):
3834          - Release capturing on detach because it is possible that a spin button
3835            node is detached while it is capturing events.
3836         (WebCore::SpinButtonElement::defaultEventHandler):
3837           Take a reference to this and check renderer() after some functions which
3838           may run JavaScript code.
3839         (WebCore::InputFieldSpeechButtonElement::defaultEventHandler):
3840           Make the variable 'input' RefPtr to align other functions in this file.
3841         (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): ditto.
3842         * rendering/TextControlInnerElements.h: Declare SpinButtonElement::detach().
3843
3844 2011-01-24  Ryosuke Niwa  <rniwa@webkit.org>
3845
3846         Reviewed by Ojan Vafai.
3847
3848         Inserting multiple whitespace using text composition (IME) should insert interleaved nbsp and whitespace.
3849         https://bugs.webkit.org/show_bug.cgi?id=52781
3850
3851         The bug was caused by stringWithRebalancedWhitespace's replacing the space at the beginning of a paragraph
3852         and the end of a paragraph by a non-breaking space after it replaced two consecutive spaces by a space and
3853         non-breaking space pattern, thereby replacing more spaces by non-breaking spaces than needed.
3854
3855         Rewrote the function using Vector<UChar> to fix the bug. New function no longer calls String::replace
3856         multiple times but instead it traverses through the string and replaces a space that immediately follows
3857         another space or appears at the beginning of a paragraph or at the end of a paragraph by a non-break space.
3858
3859         * editing/CompositeEditCommand.cpp:
3860         * editing/htmlediting.cpp:
3861         (WebCore::stringWithRebalancedWhitespace): Written.
3862         * editing/htmlediting.h:
3863         (WebCore::isWhitespace): Removed from CompositeEditCommand.cpp
3864
3865 2011-01-24  Kenneth Russell  <kbr@google.com>
3866
3867         Reviewed by James Robinson.
3868
3869         Web Audio API: port FFTFrame to FFTW
3870         https://bugs.webkit.org/show_bug.cgi?id=52989
3871
3872         Ported FFTFrame class to the open-source FFTW library. Tested with
3873         unit tests from Chris Rogers. Made preliminary changes to GYP
3874         files for conditional compilation of these files; will need to be
3875         adjusted once FFTW is integrated as third-party source.
3876
3877         * WebCore.gyp/WebCore.gyp:
3878         * WebCore.gypi:
3879         * platform/audio/FFTFrame.h:
3880         * platform/audio/fftw: Added.
3881         * platform/audio/fftw/FFTFrameFFTW.cpp: Added.
3882         (WebCore::FFTFrame::FFTFrame):
3883         (WebCore::FFTFrame::~FFTFrame):
3884         (WebCore::FFTFrame::multiply):
3885         (WebCore::FFTFrame::doFFT):
3886         (WebCore::FFTFrame::doInverseFFT):
3887         (WebCore::FFTFrame::cleanup):
3888         (WebCore::FFTFrame::realData):
3889         (WebCore::FFTFrame::imagData):
3890         (WebCore::FFTFrame::fftwPlanForSize):
3891
3892 2011-01-24  Anders Carlsson  <andersca@apple.com>
3893
3894         Reviewed by Dan Bernstein.
3895
3896         Reset the page scale factor on standard frame loads
3897         https://bugs.webkit.org/show_bug.cgi?id=53058
3898         <rdar://problem/8908844>
3899
3900         Add a symbol needed by WebKit2.
3901
3902         * WebCore.exp.in:
3903
3904 2011-01-24  Ryosuke Niwa  <rniwa@webkit.org>
3905
3906         Reviewed by Eric Seidel.
3907
3908         Stop instantiating legacy editing positions in InsertTextCommand, MoveSelectionCommand,
3909         ReplaceSelectionCommand, SelectionController, SpellChecker, TypingCommand, and markup.cpp
3910         https://bugs.webkit.org/show_bug.cgi?id=52676
3911
3912         Stop instantiating legacy editing positions in the following files.
3913
3914         * editing/InsertTextCommand.cpp:
3915         (WebCore::InsertTextCommand::prepareForTextInsertion):
3916         (WebCore::InsertTextCommand::performTrivialReplace):
3917         (WebCore::InsertTextCommand::input):
3918         (WebCore::InsertTextCommand::insertTab):
3919         * editing/MoveSelectionCommand.cpp:
3920         (WebCore::MoveSelectionCommand::doApply):
3921         * editing/ReplaceSelectionCommand.cpp:
3922         (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
3923         (WebCore::ReplaceSelectionCommand::mergeEndIfNeeded):
3924         (WebCore::ReplaceSelectionCommand::doApply):
3925         (WebCore::ReplaceSelectionCommand::shouldRemoveEndBR):
3926         (WebCore::ReplaceSelectionCommand::performTrivialReplace):
3927         * editing/SelectionController.cpp:
3928         (WebCore::SelectionController::setSelectionFromNone):
3929         * editing/SpellChecker.cpp:
3930         (WebCore::SpellChecker::didCheck):
3931         * editing/TypingCommand.cpp:
3932         (WebCore::TypingCommand::makeEditableRootEmpty):
3933         (WebCore::TypingCommand::deleteKeyPressed):
3934         (WebCore::TypingCommand::forwardDeleteKeyPressed):
3935         * editing/markup.cpp:
3936         (WebCore::StyledMarkupAccumulator::appendText):
3937         (WebCore::StyledMarkupAccumulator::serializeNodes):
3938         (WebCore::highestAncestorToWrapMarkup):
3939         (WebCore::createMarkup):
3940
3941 2011-01-24  Peter Kasting  <pkasting@google.com>
3942
3943         Reviewed by Darin Adler.
3944
3945         Roll back r67261 ("Don't fire onclick on middle clicks") due to
3946         regressions.
3947         https://bugs.webkit.org/show_bug.cgi?id=46733
3948
3949         * html/HTMLAnchorElement.cpp:
3950         (WebCore::isLinkClick):
3951         * html/HTMLInputElement.cpp:
3952         (WebCore::HTMLInputElement::preDispatchEventHandler):
3953         (WebCore::HTMLInputElement::postDispatchEventHandler):
3954         (WebCore::HTMLInputElement::defaultEventHandler):
3955         * page/EventHandler.cpp:
3956         (WebCore::EventHandler::handleMouseDoubleClickEvent):
3957         (WebCore::EventHandler::handleMouseReleaseEvent):
3958
3959 2011-01-24  Martin Robinson  <mrobinson@igalia.com>
3960
3961         Reviewed by Eric Seidel.
3962
3963         [GTK] Many DOM XHTML tests time out
3964         https://bugs.webkit.org/show_bug.cgi?id=52553
3965
3966         Properly handle the situation where a synchronous load fails before the inner
3967         event loop has started. In this case, we simply do not run the inner event loop,
3968         or else it will block indefinitely (since no GIO or libsoup callbacks will fire).
3969
3970         * platform/network/soup/ResourceHandleSoup.cpp:
3971         (WebCore::ResourceHandle::loadResourceSynchronously): Bail out of a synchronous
3972         load if it fails up front.
3973
3974 2011-01-24  Zhenyao Mo  <zmo@google.com>
3975
3976         Reviewed by Eric Seidel.
3977
3978         Cleanup WebGLGetInfo and related get*Parameter helpers in WebGLRenderingContext
3979         https://bugs.webkit.org/show_bug.cgi?id=52338
3980
3981         Removed the long/unsigned long types and corresponding get functions
3982         and use int/unsigned int instead.
3983
3984         * bindings/js/JSWebGLRenderingContextCustom.cpp:
3985         (WebCore::toJS):
3986         * bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
3987         (WebCore::toV8Object):
3988         * html/canvas/WebGLGetInfo.cpp:
3989         (WebCore::WebGLGetInfo::WebGLGetInfo):
3990         (WebCore::WebGLGetInfo::getInt):
3991         (WebCore::WebGLGetInfo::getUnsignedInt):
3992         * html/canvas/WebGLGetInfo.h:
3993         * html/canvas/WebGLRenderingContext.cpp:
3994         (WebCore::WebGLRenderingContext::getBufferParameter):
3995         (WebCore::WebGLRenderingContext::getFramebufferAttachmentParameter):
3996         (WebCore::WebGLRenderingContext::getParameter):
3997         (WebCore::WebGLRenderingContext::getProgramParameter):
3998         (WebCore::WebGLRenderingContext::getRenderbufferParameter):
3999         (WebCore::WebGLRenderingContext::getShaderParameter):
4000         (WebCore::WebGLRenderingContext::getTexParameter):
4001         (WebCore::WebGLRenderingContext::getUniform):
4002         (WebCore::WebGLRenderingContext::getVertexAttrib):
4003         (WebCore::WebGLRenderingContext::getIntParameter):
4004         (WebCore::WebGLRenderingContext::getUnsignedIntParameter):
4005         * html/canvas/WebGLRenderingContext.h:
4006
4007 2011-01-24  Zhenyao Mo  <zmo@google.com>
4008
4009         Reviewed by Darin Adler.
4010
4011         Remove sizeInBytes from GraphicsContext3D's various implementations
4012         https://bugs.webkit.org/show_bug.cgi?id=52339
4013