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