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