2010-04-21 Xan Lopez <xlopez@igalia.com>
[WebKit-https.git] / WebCore / ChangeLog
1 2010-04-21  Xan Lopez  <xlopez@igalia.com>
2
3         Reviewed by Adam Barth.
4
5         [GTK] GObject DOM bindings
6         https://bugs.webkit.org/show_bug.cgi?id=33590
7
8         Initial version of the GObject DOM bindings.
9
10         Only bindings for Node.idl and a few of its dependencies are
11         provided, without public API to access them at the
12         moment. References to the Document interfaces and to
13         EventListeners in Node.idl are ignored for GObject to make the
14         initial patch as small as possible, but will be enabled in a
15         follow-up patch.
16
17         * GNUmakefile.am:
18         * bindings/gobject/ConvertToUTF8String.cpp: Added.
19         (convertToUTF8String):
20         * bindings/gobject/ConvertToUTF8String.h: Added.
21         * bindings/gobject/WebKitDOMBinding.cpp: Added.
22         (WebKit::domObjects):
23         (WebKit::DOMObjectCache::get):
24         (WebKit::DOMObjectCache::put):
25         (WebKit::DOMObjectCache::forget):
26         (WebKit::createWrapper):
27         (WebKit::kit):
28         * bindings/gobject/WebKitDOMBinding.h: Added.
29         * bindings/gobject/WebKitDOMObject.cpp: Added.
30         (webkit_dom_object_init):
31         (webkit_dom_object_class_init):
32         * bindings/gobject/WebKitDOMObject.h: Added.
33         * bindings/scripts/CodeGeneratorGObject.pm: Added.
34         * bindings/scripts/gobject-generate-headers.pl: Added.
35         * dom/Node.idl:
36
37 2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>
38
39         Reviewed by Xan Lopez.
40
41         Wrong header being included in FontPlatformDataCairo.cpp
42         https://bugs.webkit.org/show_bug.cgi?id=37829
43
44         No behavior changes, so no new tests were added.
45
46         * platform/graphics/cairo/FontPlatformDataCairo.cpp:
47
48 2010-04-21  Adam Roben  <aroben@apple.com>
49
50         Fix leaks of FilterData/SVGFilterBuilder in RenderSVGResourceFilter
51
52         Fixes <http://webkit.org/b/37922>.
53
54         Reviewed by Dave Hyatt.
55
56         * rendering/RenderSVGResourceFilter.cpp:
57         (WebCore::RenderSVGResourceFilter::applyResource): Use an OwnPtr to
58         hold the heap-allocated FilterData object, so that we won't leak it
59         when we bail out of this function on error.
60
61 2010-04-21  Zoltan Herczeg  <zherczeg@webkit.org>
62
63         Reviewed by Kenneth Rohde Christiansen.
64
65         [Qt] startAnimation() is not needed to preceede nativeImageForCurrentFrame()
66         https://bugs.webkit.org/show_bug.cgi?id=37844
67
68         nativeImageForCurrentFrame() resets the m_decoder parameter under Qt,
69         which is required by startAnimation() to detect frame and repetition counts.
70         Hence, Image::drawTiled cannot start animations under Qt:
71         <html><body background="animated.gif"></body></html> does not work
72
73         * platform/graphics/qt/ImageDecoderQt.cpp:
74         (WebCore::ImageDecoderQt::internalHandleCurrentImage):
75
76 2010-04-21  Benjamin Poulain  <ikipou@gmail.com>
77
78         Reviewed by Simon Fraser.
79
80         Update of fixed elements is not made correctly when the page has been scrolled
81         https://bugs.webkit.org/show_bug.cgi?id=36783
82
83         When a fixed element was updated, the old geometry was not repainted correctly
84         because the repaint rect was cached during the layout and not updated when 
85         scrolling.
86
87         The rect is now updated while scrolling so the region updated correspond to the
88         region of the element on the screen.
89
90         The method RenderLayer::updateRepaintRectsAfterScroll() updates
91         the repaint rect of all fixed tree after scroll.
92
93         Tests: fast/repaint/fixed-child-move-after-scroll.html
94                fast/repaint/fixed-child-of-fixed-move-after-scroll.html
95                fast/repaint/fixed-child-of-transformed-move-after-scroll.html
96                fast/repaint/fixed-move-after-scroll.html
97
98         * page/FrameView.cpp:
99         (WebCore::FrameView::scrollPositionChanged):
100         * rendering/RenderLayer.cpp:
101         (WebCore::RenderLayer::updateRepaintRectsAfterScroll):
102         * rendering/RenderLayer.h:
103
104 2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>
105
106         Reviewed by Adam Roben.
107
108         Update EFL port to match recent API changes.
109         http://webkit.org/b/37853
110
111         No behavior changes, so no new tests were added.
112
113         * platform/efl/FileSystemEfl.cpp:
114         * platform/efl/LocalizedStringsEfl.cpp:
115         (WebCore::missingPluginText):
116         (WebCore::crashedPluginText):
117         * platform/efl/MIMETypeRegistryEfl.cpp:
118         (WebCore::MIMETypeRegistry::isApplicationPluginMIMEType):
119         * platform/graphics/efl/ImageEfl.cpp:
120
121 2010-04-21  Avi Drissman  <avi@chromium.org>
122
123         Reviewed by Simon Fraser.
124
125         JPG images fail to print in Chromium
126         https://bugs.webkit.org/show_bug.cgi?id=37796
127
128         Image sources of JPG data with final=false fail to draw into PDF contexts even if later updated (<rdar://problem/7874035>). Therefore, destroy and re-create the image source when the final data arrives.
129
130         * platform/graphics/cg/ImageSourceCG.cpp:
131         (WebCore::ImageSource::setData):
132
133 2010-04-21  Marcus Bulach  <bulach@chromium.org>
134
135         Reviewed by Nate Chapin.
136
137         EventSource needs to be marked as an ActiveDomType.
138         https://bugs.webkit.org/show_bug.cgi?id=37857
139         Existing layout tests (fast/eventsource and http/tests/eventsource/) should pass when compiling with eventsource enabled.
140
141         * bindings/scripts/CodeGeneratorV8.pm:
142         * bindings/v8/V8DOMWrapper.cpp:
143         * bindings/v8/custom/V8EventSourceConstructor.cpp:
144         (WebCore::V8EventSource::constructorCallback):
145
146 2010-04-21  Gustavo Sverzut Barbieri  <barbieri@profusion.mobi>
147
148         Reviewed by Nikolas Zimmermann.
149
150         Add missing includes to platform/posix/FileSystemPOSIX.cpp
151         https://bugs.webkit.org/show_bug.cgi?id=37861
152
153         No behavior changes, so no new tests were added.
154
155         * platform/posix/FileSystemPOSIX.cpp:
156
157 2010-04-21  No'am Rosenthal  <noam.rosenthal@nokia.com>
158
159         Reviewed by Simon Fraser.
160
161         [Qt] Fix or remove the runtime flag for accelerated compositing.
162
163         This adds a way for a chrome client to disallow layers from becoming composited,
164         even if the settings enable accelerated compositing. This is necessary for platforms
165         where different views can be applied with the same settings to the same page.
166
167         We enable an API through ChromeClient to ask the chrome-client whether or not
168         it can render composited layers, which is taken into account when the compositor
169         decides whether or not to start compositing.
170
171         https://bugs.webkit.org/show_bug.cgi?id=37313
172
173         Pages under LayoutTests/compositing now work under QWebView, even when
174         QWebSettings::AcceleratedCompositingEnabled is on.
175
176         * page/ChromeClient.h:
177         (WebCore::ChromeClient::allowsAcceleratedCompositing):
178         * platform/qt/QWebPageClient.h:
179         (QWebPageClient::allowsAcceleratedCompositing):
180         * rendering/RenderLayerCompositor.cpp:
181         (WebCore::RenderLayerCompositor::canBeComposited):
182
183 2010-04-21  Ryosuke Niwa  <rniwa@webkit.org>
184
185         No review. Spurious whitespace was removed from project file.
186
187         * WebCore.xcodeproj/project.pbxproj:
188
189 2010-04-20  Ryosuke Niwa  <rniwa@webkit.org>
190
191         Reviewed by Eric Seidel.
192
193         [Qt] Build fix: warning on L933 of CompositeEditCommand.cpp
194         https://bugs.webkit.org/show_bug.cgi?id=37912
195
196         Replaced the ternary operator by an if statement because GCC was confused by the use of
197         ternary operator and producing warnings on Qt builds.
198
199         * WebCore.xcodeproj/project.pbxproj:
200         * editing/CompositeEditCommand.cpp:
201         (WebCore::CompositeEditCommand::moveParagraphs):
202
203 2010-04-20  Ryosuke Niwa  <rniwa@webkit.org>
204
205         Reviewed by Justin Garcia.
206
207         Nested <ul>s are mishandled when converted to <ol> using execCommand('insertorderedlist')
208         https://bugs.webkit.org/show_bug.cgi?id=19539
209
210         Fixes a bug where two consecutive lists are not merged if they have been converted
211         from ordered/unordered lists inside another list.
212
213         The bug was caused by InsertListCommand::doApply where it did not merge a newly inserted
214         list element and its neighbors. This patch adds code to doApply so that after inserting
215         the list element, it updates previousList and nextList to the outermost list elements around
216         insertionPos under the same enclosing list. Because the next and the previous list elements
217         are not necessarily visually next to the newly inserted element before moveParagraph moves
218         the paragraph into the new list element, doApply merges lists after moveParagraph is called.
219
220         Test: editing/execCommand/insert-lists-inside-another-list.html
221
222         * editing/InsertListCommand.cpp:
223         (WebCore::InsertListCommand::doApply): Modified as described above
224         * editing/htmlediting.cpp:
225         (WebCore::outermostEnclosingList): Added rootNode. Returns the outermost list element,
226           which is a descendent of rootNode.
227         * editing/htmlediting.h:
228
229 2010-04-20  Alexey Proskuryakov  <ap@apple.com>
230
231         Reviewed by Darin Adler.
232
233         https://bugs.webkit.org/show_bug.cgi?id=37776
234         <rdar://problem/7877716> REGRESSION: When using dvorak, keydown/keyup reports qwerty keyCodes
235
236         * platform/cocoa/KeyEventCocoa.mm: (WebCore::windowsKeyCodeForCharCode): Re-added mapping
237         for Roman letters and punctuation.
238
239         * platform/mac/KeyEventMac.mm: (WebCore::windowsKeyCodeForKeyEvent): Improved approximation
240         of IE behavior. Keyboard layouts that change location of Roman letters (like AZERTY or Dvorak)
241         also switch their keycodes. Also, restored Safari 4 behavior for punctuation. It's difficult
242         to match Windows for punctuation exactly, because keyboard layouts make arbitrary changes
243         to their keycodes.
244
245 2010-04-20  Shinichiro Hamaji  <hamaji@chromium.org>
246
247         Reviewed by Darin Adler and Alexey Proskuryakov.
248
249         A backslash in EUC-JP becomes to a yen sign when it is copied
250         https://bugs.webkit.org/show_bug.cgi?id=36419
251
252         Tests: editing/execCommand/transpose-backslash-with-euc.html
253                editing/pasteboard/copy-backslash-with-euc.html
254
255         * editing/Editor.cpp: Remove an unnecessary displayStringModifiedByEncoding calls.
256         (WebCore::Editor::addToKillRing):
257         * editing/TextIterator.cpp: TextIterator can use RenderText::textWithoutTranscoding and now plainText() uses this version
258         (WebCore::TextIterator::TextIterator):
259         (WebCore::TextIterator::init):
260         (WebCore::TextIterator::emitText):
261         (WebCore::plainTextToMallocAllocatedBuffer):
262         * editing/TextIterator.h:
263         (WebCore::):
264         * platform/mac/PasteboardMac.mm: Remove an unnecessary displayStringModifiedByEncoding call.
265         (WebCore::Pasteboard::writeSelection):
266         * platform/text/TextEncoding.h: Make backslashAsCurrencySymbol public.
267         * rendering/RenderText.cpp: Add RenderText::textWithoutTranscoding
268         (WebCore::RenderText::RenderText):
269         (WebCore::RenderText::updateNeedsTranscoding):
270         (WebCore::RenderText::styleDidChange):
271         (WebCore::isInlineFlowOrEmptyText):
272         (WebCore::RenderText::previousCharacter):
273         (WebCore::RenderText::setTextInternal):
274         (WebCore::RenderText::textWithoutTranscoding):
275         (WebCore::RenderText::transformText):
276         * rendering/RenderText.h:
277         * rendering/RenderTextControl.cpp: Remove an unnecessary displayStringModifiedByEncoding call.
278         (WebCore::RenderTextControl::setInnerTextValue):
279         (WebCore::RenderTextControl::finishText):
280         * rendering/RenderTextFragment.cpp:
281         (WebCore::RenderTextFragment::previousCharacter):
282         * rendering/RenderTextFragment.h:
283
284 2010-04-20  Nate Chapin  <japhet@chromium.org>
285
286         Reviewed by Dimitri Glazkov.
287
288         https://bugs.webkit.org/show_bug.cgi?id=37367
289
290         Fix style violations in code generated by CodeGeneratorV8.pm.
291
292         * bindings/scripts/CodeGeneratorV8.pm:
293         * bindings/v8/test/V8TestObj.cpp:
294         * bindings/v8/test/V8TestObj.h:
295
296 2010-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
297
298         Unreviewed, rolling out r57924.
299         http://trac.webkit.org/changeset/57924
300         https://bugs.webkit.org/show_bug.cgi?id=37898
301
302         It broke 3-4 test on all bot (Requested by Ossy on #webkit).
303
304         * page/AbstractView.idl:
305         * page/DOMWindow.cpp:
306         (WebCore::DOMWindow::media):
307         * page/DOMWindow.h:
308         * page/DOMWindow.idl:
309
310 2010-04-20  Gavin Barraclough  <barraclough@apple.com>
311
312         Reviewed by Oliver Hunt.
313
314         Bug 37895 - Share common code from UStringImplBase with StringImpl
315         Add forwarding header.
316
317         * ForwardingHeaders/wtf/text/StringImplBase.h: Added.
318
319 2010-04-20  Adam Barth  <abarth@webkit.org>
320
321         Unreviewed build fix fro Chromium.
322
323         * loader/DocumentWriter.cpp:
324
325 2010-04-20  Pavel Feldman  <pfeldman@chromium.org>
326
327         Reviewed by Timothy Hatcher.
328
329         Web Inspector: Support live edit while on a breakpoint, preserve breakpoints when adding new lines.
330
331         https://bugs.webkit.org/show_bug.cgi?id=37820
332
333         * inspector/front-end/ScriptsPanel.js:
334         (WebInspector.ScriptsPanel.prototype.editScriptLine.mycallback):
335         (WebInspector.ScriptsPanel.prototype.editScriptLine):
336         * inspector/front-end/TextViewer.js:
337         (WebInspector.TextViewer.prototype._handleDoubleClick):
338         (WebInspector.TextViewer.prototype._cancelEditingLine):
339
340 2010-04-20  Adam Barth  <abarth@webkit.org>
341
342         Reviewed by Eric Seidel.
343
344         Factor DocumentWriter out of FrameLoader
345         https://bugs.webkit.org/show_bug.cgi?id=37175
346
347         This patch separates the begin/write/end cycle of decoding network
348         bytes and putting them into a document from the rest of the loading
349         machinery.  The code and state required to write bytes into a document
350         doesn't interact very much with the rest of the loading machinery.
351
352         No tests because there is no behavior change (hopefully!).
353
354         * Android.mk:
355         * GNUmakefile.am:
356         * WebCore.base.exp:
357         * WebCore.gypi:
358         * WebCore.pro:
359         * WebCore.vcproj/WebCore.vcproj:
360         * WebCore.xcodeproj/project.pbxproj:
361         * bindings/ScriptControllerBase.cpp:
362         (WebCore::ScriptController::executeIfJavaScriptURL):
363         * dom/Document.cpp:
364         (WebCore::Document::close):
365         * dom/ProcessingInstruction.cpp:
366         (WebCore::ProcessingInstruction::checkStyleSheet):
367         * dom/ScriptElement.cpp:
368         (WebCore::ScriptElementData::scriptCharset):
369         * html/HTMLLinkElement.cpp:
370         (WebCore::HTMLLinkElement::process):
371         * loader/DocLoader.cpp:
372         (WebCore::DocLoader::requestPreload):
373         * loader/DocumentLoader.cpp:
374         (WebCore::DocumentLoader::finishedLoading):
375         (WebCore::DocumentLoader::setupForReplaceByMIMEType):
376         * loader/DocumentWriter.cpp: Added.
377         * loader/DocumentWriter.h: Added.
378         * loader/FrameLoader.cpp:
379         (WebCore::FrameLoader::FrameLoader):
380         (WebCore::FrameLoader::init):
381         (WebCore::FrameLoader::clear):
382         (WebCore::FrameLoader::receivedFirstData):
383         (WebCore::FrameLoader::setURL):
384         (WebCore::FrameLoader::didBeginDocument):
385         (WebCore::FrameLoader::didEndDocument):
386         (WebCore::FrameLoader::willSetEncoding):
387         (WebCore::FrameLoader::addData):
388         (WebCore::FrameLoader::transitionToCommitted):
389         (WebCore::FrameLoader::open):
390         (WebCore::FrameLoader::finishedLoadingDocument):
391         (WebCore::FrameLoader::addExtraFieldsToRequest):
392         * loader/FrameLoader.h:
393         (WebCore::FrameLoader::writer):
394         (WebCore::FrameLoader::isDisplayingInitialEmptyDocument):
395         * loader/MediaDocument.cpp:
396         (WebCore::MediaDocument::replaceMediaElementTimerFired):
397         * loader/PluginDocument.cpp:
398         (WebCore::PluginTokenizer::createDocumentStructure):
399         * platform/network/FormDataBuilder.cpp:
400         (WebCore::FormDataBuilder::dataEncoding):
401         * svg/graphics/SVGImage.cpp:
402         (WebCore::SVGImage::dataChanged):
403
404 2010-04-20  Kenneth Rohde Christiansen  <kenneth@webkit.org>
405
406         Reviewed by Simon Fraser.
407
408         Rename window.media to window.styleMedia
409         https://bugs.webkit.org/show_bug.cgi?id=36187
410
411         It has been defined that the AbstractView media extension
412         defined in the CSSOM View spec should be renamed to styleMedia.
413         This patch does that and updates the current layout tests
414         making use of it.
415
416         * page/AbstractView.idl:
417         * page/DOMWindow.cpp:
418         (WebCore::DOMWindow::styleMedia):
419         * page/DOMWindow.h:
420         * page/DOMWindow.idl:
421
422 2010-04-20  Timothy Hatcher  <timothy@apple.com>
423
424         Fix matching of "file:///*" patterns by not trying to compare the host. The host is
425         irrelevant for file URLs.
426
427         Also fix comparisons to be case insensitive.
428
429         https://bugs.webkit.org/show_bug.cgi?id=37889
430
431         Reviewed by Dave Hyatt.
432
433         * page/UserContentURLPattern.cpp:
434         (WebCore::UserContentURLPattern::parse): Use equalIgnoringCase when comparing for "file" schemes.
435         (WebCore::UserContentURLPattern::matches): Use equalIgnoringCase when comparing schemes. Only call
436         matchesHost if the scheme isn't "file".
437         (WebCore::UserContentURLPattern::matchesHost): Call equalIgnoringCase when comparing hosts. The endsWith
438         was already doing a case-insensitive compare, so existing tests worked though this path.
439
440 2010-04-20  Justin Schuh  <jschuh@chromium.org>
441
442         Reviewed by Adam Barth.
443
444         Invalid cast due to <video> inside <foreignObject> inside <svg> inside <img>
445         https://bugs.webkit.org/show_bug.cgi?id=37331
446
447         Added a setting to enable/disable media per-page and have the SVGImage 
448         disable media for its dummy page. Also found and fixed a related bad
449         cast in the V8 bindings (JSC had a custom wrapper for this already).
450
451         Tests: media/svg-as-image-with-media-blocked.html
452
453         * dom/make_names.pl: Added media enabled check and V8 cast wrapper
454         * page/Settings.cpp: Added m_isMediaEnabled (defaults to true)
455         (WebCore::Settings::Settings):
456         (WebCore::Settings::setMediaEnabled):
457         * page/Settings.h:
458         (WebCore::Settings::isMediaEnabled):
459         * svg/graphics/SVGImage.cpp: Disables media in dummy page
460         (WebCore::SVGImage::dataChanged):
461
462 2010-04-19  Antonio Gomes  <tonikitoo@webkit.org>
463
464         Reviewed by Simon Fraser.
465
466         Spatial Navigation: at @updateFocusCandidateIfCloser make an assignment shortcut when FocusCandidate is null
467         https://bugs.webkit.org/show_bug.cgi?id=37802
468
469         In updateFocusCandidateIfCloser method, we do all bail out checks in the begining of
470         the method body. If after those bail out checks, no "best FocusCandidate" has been taken
471         yet (i.e. focusCandidate.isNull() == true), we can safely take the current candidate,
472         and exit earlier.
473
474         No behavior change, it is just a safe assignment shortcut.
475
476         * page/FocusController.cpp:
477         (WebCore::updateFocusCandidateIfCloser):
478
479 2010-04-20  Simon Fraser  <simon.fraser@apple.com>
480
481         Reviewed by Dan Bernstein.
482
483         Hook compositing layers together across iframes
484         https://bugs.webkit.org/show_bug.cgi?id=37878
485         
486         First step: if an iframe's document goes into compositing mode, also throw the parent
487         document into compositing mode (all the way up to the root). This is required both
488         to preserve layering (since parent document content can obscure iframe content),
489         and so that we can eventually hook the layer trees together.
490
491         Test: compositing/iframes/composited-iframe.html
492
493         * rendering/RenderIFrame.h:
494         * rendering/RenderIFrame.cpp:
495         (WebCore::RenderIFrame::requiresLayer): In order to make an iframe composited, it also has to have
496         a RenderLayer, so must return |true| from requiresLayer().
497         (WebCore::RenderIFrame::requiresAcceleratedCompositing): Returns true if the content document
498         is in compositing mode.
499         (WebCore::RenderIFrame::isRenderIFrame): Required so that RenderLayerCompositor can check
500         if a renderer is an iframe.
501         (WebCore::toRenderIFrame): Required so that RenderLayerCompositor can cast to a RenderIFrame.
502
503         * rendering/RenderLayerCompositor.h:
504         * rendering/RenderLayerCompositor.cpp:
505         (WebCore::RenderLayerCompositor::enableCompositingMode): Call out to the RenderView when
506         the compositing mode changes, so that the parent document can update its compositing status.
507         (WebCore::RenderLayerCompositor::requiresCompositingLayer): Call requiresCompositingForIFrame().
508         (WebCore::RenderLayerCompositor::requiresCompositingForIFrame): Check to see if the iframe
509         wants to be composited.
510
511         * rendering/RenderObject.h:
512         (WebCore::RenderObject::isRenderIFrame): Base class returns false.
513
514         * rendering/RenderView.h:
515         * rendering/RenderView.cpp:
516         (WebCore::RenderView::compositingStateChanged): New method that allows an iframe to notify
517         its parent document that a recalcStyle is required, to update compositing state.
518
519 2010-04-20  Gavin Barraclough  <barraclough@apple.com>
520
521         Reviewed by NOBODY (build fix).
522         Speculative tiger build fix.
523
524         * WebCore.NPAPI.exp:
525         * WebCore.PluginHostProcess.exp:
526         * WebCore.base.exp:
527
528 2010-04-20  Pavel Feldman  <pfeldman@chromium.org>
529
530         Reviewed by Timothy Hatcher.
531
532         Web Inspector: add basic script editing capabilities to the front-end.
533
534         https://bugs.webkit.org/show_bug.cgi?id=37875
535
536         * bindings/js/ScriptDebugServer.cpp:
537         (WebCore::ScriptDebugServer::setBreakpoint):
538         (WebCore::ScriptDebugServer::removeBreakpoint):
539         * inspector/front-end/ScriptView.js:
540         (WebInspector.ScriptView):
541         (WebInspector.ScriptView.prototype._editLine):
542         (WebInspector.ScriptView.prototype._editLineComplete):
543         * inspector/front-end/ScriptsPanel.js:
544         (WebInspector.ScriptsPanel.prototype._resourceLoadingFinished):
545         (WebInspector.ScriptsPanel.prototype.canEditScripts):
546         (WebInspector.ScriptsPanel.prototype.editScriptLine):
547         * inspector/front-end/SourceFrame.js:
548         (WebInspector.SourceFrame):
549         (WebInspector.SourceFrame.prototype.updateContent):
550         (WebInspector.SourceFrame.prototype._createViewerIfNeeded):
551         * inspector/front-end/TextEditorHighlighter.js:
552         (WebInspector.TextEditorHighlighter):
553         (WebInspector.TextEditorHighlighter.prototype.reset):
554         * inspector/front-end/TextEditorModel.js:
555         (WebInspector.TextEditorModel.prototype.copyRange):
556         * inspector/front-end/TextViewer.js:
557         (WebInspector.TextViewer):
558         (WebInspector.TextViewer.prototype.set editCallback):
559         (WebInspector.TextViewer.prototype._buildChunks):
560         (WebInspector.TextViewer.prototype._handleKeyDown):
561         (WebInspector.TextViewer.prototype._handleDoubleClick):
562         (WebInspector.TextViewer.prototype._commitEditingLine):
563         (WebInspector.TextViewer.prototype._cancelEditingLine):
564         * inspector/front-end/inspector.js:
565         (WebInspector.documentKeyDown):
566         (WebInspector.log.logMessage):
567         (WebInspector.log):
568         (WebInspector.isEditingAnyField):
569         (WebInspector.startEditing.cleanUpAfterEditing):
570
571 2010-04-20  Gavin Barraclough  <barraclough@apple.com>
572
573         Reviewed by Geoff Garen.
574
575         Add forwarding header.
576
577         * ForwardingHeaders/runtime/RopeImpl.h: Added.
578
579 2010-04-20  Gavin Barraclough  <barraclough@apple.com>
580
581         Reviewed by Geoff Garen.
582
583         Bug 37828 - Move WebCore's String classes to WTF
584
585         Move these classes up to WTF so they are available to all clients of WTF (in
586         particular JSC).
587
588         As a first patch, making the most minimal change possible, since this patch
589         could easily grow rather large since we'll have to change every class forward
590         declaration ( e.g. every "namespace WebCore { class String; }" much change to
591         "namespace WTF { class String; }").
592
593         Moving the files, but leaving the classes logically in the WebCore namespace –
594         which is technically a layering violation – I'll come back and fix this up in a
595         subsequent patch.
596
597         * Android.mk:
598         * ForwardingHeaders/wtf/StaticConstructors.h: Added.
599         * ForwardingHeaders/wtf/text/AtomicString.h: Added.
600         * ForwardingHeaders/wtf/text/AtomicStringImpl.h: Added.
601         * ForwardingHeaders/wtf/text/StringBuffer.h: Added.
602         * ForwardingHeaders/wtf/text/StringHash.h: Added.
603         * ForwardingHeaders/wtf/text/StringImpl.h: Added.
604         * ForwardingHeaders/wtf/text/WTFString.h: Added.
605         * GNUmakefile.am:
606         * WebCore.gypi:
607         * WebCore.pro:
608         * WebCore.vcproj/WebCore.vcproj:
609         * WebCore.xcodeproj/project.pbxproj:
610         * css/MediaFeatureNames.cpp:
611         * dom/QualifiedName.cpp:
612         * dom/make_names.pl:
613         * platform/StaticConstructors.h: Removed.
614         * platform/text/AtomicString.cpp: Removed.
615         * platform/text/AtomicString.h:
616         * platform/text/AtomicStringImpl.h:
617         * platform/text/PlatformString.h:
618         * platform/text/String.cpp:
619         * platform/text/StringHash.h:
620         * platform/text/StringImpl.cpp: Removed.
621         * platform/text/StringImpl.h:
622
623 2010-04-20  Kent Tamura  <tkent@chromium.org>
624
625         Reviewed by Darin Adler.
626
627         Change a parameter type of chooseIconForFiles()
628         https://bugs.webkit.org/show_bug.cgi?id=37504
629
630         Change PassRefPtr<FileChooser> parameter of chooseIconForFiles()
631         to FileChooser*. Though an implementation of chooseIconForFiles()
632         might have ownership of the FileChooser instance, we don't need to
633         use PassRefPtr<> in this case.
634
635         * loader/EmptyClients.h:
636         (WebCore::EmptyChromeClient::chooseIconForFiles):
637         * page/Chrome.cpp:
638         (WebCore::Chrome::chooseIconForFiles):
639         * page/Chrome.h:
640         * page/ChromeClient.h:
641
642 2010-04-20  Diego Escalante Urrelo  <descalante@igalia.com>
643
644         Reviewed by Xan Lopez.
645
646         [Gtk] Evaluate and create tests for all the AtkRole's implemented by
647         WebKitGtk
648         https://bugs.webkit.org/show_bug.cgi?id=34449
649
650         Implement ATK_ROLE_FORM.
651
652         * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
653         (webkit_accessible_get_role):
654
655 2010-04-20  Martin Robinson  <mrobinson@webkit.org>
656
657         Reviewed by Gustavo Noronha Silva.
658
659         [GTK] Enable DOM clipboard and drag-and-drop access
660         https://bugs.webkit.org/show_bug.cgi?id=30623
661
662         Move most of the PasteboardHelper logic into WebCore. This helps
663         prepare for WebKit2 and leads to a clearer separation of concerns
664         between the WebKit and WebCore layers.
665
666         No new tests as functionality has not changed.
667
668         * GNUmakefile.am: Add PastboardHelper.cpp to list of sources.
669         * platform/Pasteboard.h: Added a getter for the PasteboardHelper and made the member private.
670         * platform/gtk/PasteboardGtk.cpp: Update PasteboardHelper method calls to use new naming.
671         (WebCore::clipboard_get_contents_cb): Ditto.
672         (WebCore::Pasteboard::helper): Added, member is now private.
673         (WebCore::Pasteboard::writeURL): Ditto.
674         (WebCore::Pasteboard::documentFragment): Update to reflect method renaming.
675         (WebCore::Pasteboard::plainText): Ditto.
676         * platform/gtk/PasteboardHelper.cpp: Added.
677         (WebCore::PasteboardHelper::PasteboardHelper): Added.
678         (WebCore::PasteboardHelper::~PasteboardHelper): Added.
679         (WebCore::PasteboardHelper::initializeTargetList): Added, originally from WebKit.
680         (WebCore::widgetFromFrame): Added helper function.
681         (WebCore::PasteboardHelper::getCurrentClipboard): Added, originally from WebKit.
682         (WebCore::PasteboardHelper::getClipboard): Ditto.
683         (WebCore::PasteboardHelper::getPrimarySelectionClipboard): Ditto.
684         (WebCore::PasteboardHelper::targetList): Ditto.
685         (WebCore::PasteboardHelper::fillSelectionData): Ditto.
686         (WebCore::PasteboardHelper::targetListForDataObject): Ditto.
687         (WebCore::getClipboardContentsCallback): Ditto.
688         (WebCore::clearClipboardContentsCallback): Ditto.
689         (WebCore::PasteboardHelper::writeClipboardContents): Ditto.
690         * platform/gtk/PasteboardHelper.h: Moved methods from WebKit to WebCore.
691
692 2010-04-20  Simon Fraser  <simon.fraser@apple.com>
693
694         Reviewed by Anders Carlsson.
695
696         backgroundColor is oddly indented in layer tree dump
697         https://bugs.webkit.org/show_bug.cgi?id=37885
698
699         The writeIndent() was mistakenly outside the LayerTreeAsTextDebug clause, causing indents
700         to be written twice.
701         
702         * platform/graphics/GraphicsLayer.cpp:
703         (WebCore::GraphicsLayer::dumpProperties):
704
705 2010-04-20  Simon Fraser  <simon.fraser@apple.com>
706
707         Reviewed by Dimitri Glazkov.
708
709         Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject
710         https://bugs.webkit.org/show_bug.cgi?id=37741
711
712         RenderPartObject is a useless intermediate class between RenderPart and
713         RenderEmbeddedObject, and we can now remove it. Its only method, viewCleared(),
714         applies to objects and embeds when the content is a FrameView, so can move
715         to RenderEmbeddedObject.
716
717         * Android.mk:
718         * GNUmakefile.am:
719         * WebCore.gypi:
720         * WebCore.pro:
721         * WebCore.vcproj/WebCore.vcproj:
722         * WebCore.xcodeproj/project.pbxproj:
723         * rendering/RenderEmbeddedObject.cpp:
724         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
725         (WebCore::RenderEmbeddedObject::requiresLayer):
726         (WebCore::RenderEmbeddedObject::paint):
727         (WebCore::RenderEmbeddedObject::viewCleared):
728         * rendering/RenderEmbeddedObject.h:
729         * rendering/RenderFrameBase.h:
730         * rendering/RenderPart.cpp:
731         (WebCore::RenderPart::RenderPart):
732         * rendering/RenderPart.h:
733         * rendering/RenderPartObject.cpp: Removed.
734         * rendering/RenderPartObject.h: Removed.
735
736 2010-04-20  Robin Cao  <robin.webkit@gmail.com>
737
738         Reviewed by Dirk Schulze.
739
740         SVG no AnimateColor for stroke or fill if they are set to none on target.
741         https://bugs.webkit.org/show_bug.cgi?id=36718
742
743         SVGAnimateElement::resetToBaseValue reset 'm_propertyType' in the process of animation.
744         This will cause problems when attributes 'fill' and 'stroke' have the value 'none', because in this case 
745         the property type determined by base value may be different from the one determined by 'fromTo' values.
746
747         No new tests. The test suite in svg/animation is not working for target element with attribute 'fill' set to 'none'.
748         Now animateColor on target element with attributes 'fill' and 'stroke' set to 'none' is possible.
749
750         * svg/SVGAnimateElement.cpp:
751         (WebCore::SVGAnimateElement::calculateFromAndToValues):
752         (WebCore::SVGAnimateElement::resetToBaseValue):
753
754 2010-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
755
756         Unreviewed, rolling out r57892.
757         http://trac.webkit.org/changeset/57892
758         https://bugs.webkit.org/show_bug.cgi?id=37864
759
760         Caused an assertion in Mac builds (Requested by smfr on
761         #webkit).
762
763         * WebCore.xcodeproj/project.pbxproj:
764         * editing/Editor.cpp:
765         (WebCore::Editor::insideVisibleArea):
766         * page/Frame.cpp:
767         (WebCore::Frame::ownerRenderer):
768         * page/Frame.h:
769         * page/FrameView.cpp:
770         (WebCore::FrameView::~FrameView):
771         (WebCore::FrameView::clear):
772         (WebCore::FrameView::invalidateRect):
773         (WebCore::FrameView::createScrollbar):
774         * rendering/RenderFrameBase.h:
775         * rendering/RenderObject.h:
776
777 2010-04-20  Jakub Wieczorek  <jwieczorek@webkit.org>
778
779         Reviewed by Darin Adler.
780
781         RenderListItem: change enclosingList() to only traverse the render tree.
782         https://bugs.webkit.org/show_bug.cgi?id=37319
783
784         This makes the function safe to use for items with nodes that are detached from
785         the DOM tree and simplifies the code quite a bit.
786
787         Covered by existing tests.
788
789         * rendering/RenderListItem.cpp:
790         (WebCore::enclosingList):
791         (WebCore::previousListItem):
792         (WebCore::RenderListItem::explicitValueChanged):
793
794 2010-04-20  Simon Fraser  <simon.fraser@apple.com>
795
796         Reviewed by Dan Bernstein.
797
798         Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject
799         https://bugs.webkit.org/show_bug.cgi?id=37741
800
801         Make Frame::ownerRenderer() return a RenderFrameBase* rather than a
802         RenderPart*, and add the necessary toRenderFrameBase() and isRenderFrameBase().
803
804         * WebCore.xcodeproj/project.pbxproj:
805         * editing/Editor.cpp:
806         (WebCore::Editor::insideVisibleArea):
807         * page/Frame.cpp:
808         (WebCore::Frame::ownerRenderer):
809         * page/Frame.h:
810         * page/FrameView.cpp:
811         (WebCore::FrameView::~FrameView):
812         (WebCore::FrameView::clear):
813         (WebCore::FrameView::invalidateRect):
814         (WebCore::FrameView::createScrollbar):
815         * rendering/RenderFrameBase.h:
816         (WebCore::RenderFrameBase::isRenderFrameBase):
817         (WebCore::toRenderFrameBase):
818         * rendering/RenderObject.h:
819         (WebCore::RenderObject::isRenderFrameBase):
820
821 2010-04-20  Jay Civelli  <jcivelli@chromium.org>
822
823         Reviewed by Dimitri Glazkov.
824
825         [chromium] Pressing tab now closes the select popup as it should.
826         https://bugs.webkit.org/show_bug.cgi?id=37721
827
828         * platform/chromium/PopupMenuChromium.cpp:
829         (WebCore::PopupListBox::handleKeyEvent):
830
831 2010-04-20  Yaar Schnitman  <yaar@chromium.org>
832
833         Reviewed by Nate Chapin.
834
835         Null value should be legit value for wrapped types. This requires some cleanup in canvas which was missing built-in null argument checks;
836         https://bugs.webkit.org/show_bug.cgi?id=37810
837
838         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
839         (WebCore::JSCanvasRenderingContext2D::drawImage): Passes ec to drawImage(3) too
840         * bindings/scripts/CodeGeneratorV8.pm: A null value is now legit value for wrapped types.
841         * bindings/v8/test/V8TestObj.cpp:
842         (WebCore::TestObjInternal::overloadedMethodCallback):
843         * html/canvas/CanvasRenderingContext2D.cpp:
844         (WebCore::CanvasRenderingContext2D::drawImage): Added null checks.
845         (WebCore::CanvasRenderingContext2D::createPattern): Added null checks.
846         * html/canvas/CanvasRenderingContext2D.h: Added needed raises "DOMException".
847         * html/canvas/CanvasRenderingContext2D.idl: Added needed raises "DOMException".
848
849 2010-04-20  Evan Stade  <estade@chromium.org>
850
851         Reviewed by David Levin.
852
853         [chromium] crash when dragging images
854         https://bugs.webkit.org/show_bug.cgi?id=37715
855
856         NULL check the return value of nativeImageForCurrentFrame(),
857         and NULL check Image just for good measure.
858
859         Tested by new DragImageTest unit test.
860
861         * platform/chromium/DragImageChromiumSkia.cpp:
862         (WebCore::createDragImageFromImage):
863
864 2010-04-20  Dirk Schulze  <krit@webkit.org>
865
866         Reviewed by Nikolas Zimmermann.
867
868         SVGResourceFilter needs to be moved to under Renderers
869         https://bugs.webkit.org/show_bug.cgi?id=35320
870
871         This patch adds a renderer for SVGFilterElement. SVGFilterElement is now independent
872         from the SVGResources.
873         A clean-up solves the dependencies between SVGFilterElement, the filter primitives
874         and SVGResources. This shall make the filter code more readable and better maintable.
875         The Filter primitives get dumped now, as long as they have externalRepresentation
876         implemented.
877
878         No behavior changes, so no new tests were added.
879
880         * Android.mk:
881         * GNUmakefile.am:
882         * WebCore.gypi:
883         * WebCore.pro:
884         * WebCore.vcproj/WebCore.vcproj:
885         * WebCore.xcodeproj/project.pbxproj:
886         * rendering/RenderPath.cpp:
887         (WebCore::RenderPath::paint):
888         * rendering/RenderSVGContainer.cpp:
889         (WebCore::RenderSVGContainer::selfWillPaint):
890         (WebCore::RenderSVGContainer::paint):
891         * rendering/RenderSVGImage.cpp:
892         (WebCore::RenderSVGImage::paint):
893         * rendering/RenderSVGResource.h:
894         (WebCore::):
895         (WebCore::RenderSVGResource::postApplyResource):
896         * rendering/RenderSVGResourceClipper.cpp:
897         (WebCore::RenderSVGResourceClipper::applyResource):
898         * rendering/RenderSVGResourceClipper.h:
899         * rendering/RenderSVGResourceFilter.cpp: Added.
900         (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter):
901         (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter):
902         (WebCore::RenderSVGResourceFilter::invalidateClients):
903         (WebCore::RenderSVGResourceFilter::invalidateClient):
904         (WebCore::RenderSVGResourceFilter::buildPrimitives):
905         (WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize):
906         (WebCore::RenderSVGResourceFilter::applyResource):
907         (WebCore::RenderSVGResourceFilter::postApplyResource):
908         (WebCore::RenderSVGResourceFilter::resourceBoundingBox):
909         * rendering/RenderSVGResourceFilter.h: Added.
910         (WebCore::FilterData::FilterData):
911         (WebCore::RenderSVGResourceFilter::renderName):
912         (WebCore::RenderSVGResourceFilter::filterUnits):
913         (WebCore::RenderSVGResourceFilter::primitiveUnits):
914         (WebCore::RenderSVGResourceFilter::resourceType):
915         * rendering/RenderSVGResourceMarker.h:
916         (WebCore::RenderSVGResourceMarker::applyResource):
917         * rendering/RenderSVGResourceMasker.cpp:
918         (WebCore::RenderSVGResourceMasker::applyResource):
919         * rendering/RenderSVGResourceMasker.h:
920         * rendering/RenderSVGRoot.cpp:
921         (WebCore::RenderSVGRoot::selfWillPaint):
922         (WebCore::RenderSVGRoot::paint):
923         * rendering/RenderSVGText.cpp:
924         * rendering/SVGRenderSupport.cpp:
925         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
926         (WebCore::SVGRenderBase::finishRenderSVGContent):
927         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
928         (WebCore::deregisterFromResources):
929         * rendering/SVGRenderSupport.h:
930         * rendering/SVGRenderTreeAsText.cpp:
931         (WebCore::writeStyle):
932         (WebCore::writeSVGResource):
933         (WebCore::writeResources):
934         (WebCore::writeRenderResources):
935         * rendering/SVGRootInlineBox.cpp:
936         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
937         (WebCore::SVGRootInlineBox::paint):
938         * svg/SVGFEBlendElement.cpp:
939         (WebCore::SVGFEBlendElement::build):
940         * svg/SVGFEBlendElement.h:
941         * svg/SVGFEColorMatrixElement.cpp:
942         (WebCore::SVGFEColorMatrixElement::build):
943         * svg/SVGFEColorMatrixElement.h:
944         * svg/SVGFEComponentTransferElement.cpp:
945         (WebCore::SVGFEComponentTransferElement::build):
946         * svg/SVGFEComponentTransferElement.h:
947         * svg/SVGFECompositeElement.cpp:
948         (WebCore::SVGFECompositeElement::build):
949         * svg/SVGFECompositeElement.h:
950         * svg/SVGFEDiffuseLightingElement.cpp:
951         (WebCore::SVGFEDiffuseLightingElement::build):
952         * svg/SVGFEDiffuseLightingElement.h:
953         * svg/SVGFEDisplacementMapElement.cpp:
954         (WebCore::SVGFEDisplacementMapElement::build):
955         * svg/SVGFEDisplacementMapElement.h:
956         * svg/SVGFEFloodElement.cpp:
957         (WebCore::SVGFEFloodElement::build):
958         * svg/SVGFEFloodElement.h:
959         * svg/SVGFEGaussianBlurElement.cpp:
960         (WebCore::SVGFEGaussianBlurElement::build):
961         * svg/SVGFEGaussianBlurElement.h:
962         * svg/SVGFEImageElement.cpp:
963         (WebCore::SVGFEImageElement::build):
964         * svg/SVGFEImageElement.h:
965         * svg/SVGFEMergeElement.cpp:
966         (WebCore::SVGFEMergeElement::build):
967         * svg/SVGFEMergeElement.h:
968         * svg/SVGFEMorphologyElement.cpp:
969         (WebCore::SVGFEMorphologyElement::build):
970         * svg/SVGFEMorphologyElement.h:
971         * svg/SVGFEOffsetElement.cpp:
972         (WebCore::SVGFEOffsetElement::build):
973         * svg/SVGFEOffsetElement.h:
974         * svg/SVGFESpecularLightingElement.cpp:
975         (WebCore::SVGFESpecularLightingElement::build):
976         * svg/SVGFESpecularLightingElement.h:
977         * svg/SVGFETileElement.cpp:
978         (WebCore::SVGFETileElement::build):
979         * svg/SVGFETileElement.h:
980         * svg/SVGFETurbulenceElement.cpp:
981         (WebCore::SVGFETurbulenceElement::build):
982         * svg/SVGFETurbulenceElement.h:
983         (WebCore::):
984         * svg/SVGFilterElement.cpp:
985         (WebCore::SVGFilterElement::createRenderer):
986         * svg/SVGFilterElement.h:
987         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
988         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
989         * svg/SVGFilterPrimitiveStandardAttributes.h:
990         (WebCore::SVGFilterPrimitiveStandardAttributes::isFilterEffect):
991         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
992         * svg/SVGStyledElement.cpp:
993         (WebCore::SVGStyledElement::invalidateResources):
994         * svg/graphics/SVGResource.cpp:
995         * svg/graphics/SVGResource.h:
996         (WebCore::):
997         (WebCore::SVGResource::isPaintServer):
998         * svg/graphics/SVGResourceFilter.cpp: Removed.
999         * svg/graphics/SVGResourceFilter.h: Removed.
1000         * svg/graphics/filters/SVGFEDisplacementMap.cpp:
1001         (WebCore::FEDisplacementMap::externalRepresentation):
1002         * svg/graphics/filters/SVGFilterBuilder.h:
1003         (WebCore::SVGFilterBuilder::namedEffects):
1004
1005 2010-04-20  Sheriff Bot  <webkit.review.bot@gmail.com>
1006
1007         Unreviewed, rolling out r57880.
1008         http://trac.webkit.org/changeset/57880
1009         https://bugs.webkit.org/show_bug.cgi?id=37846
1010
1011         Broke several bots, FEDisplacmentMap dumps includes pointers,
1012         no one noticed. Dirk will upload a new patch later. (Requested
1013         by WildFox on #webkit).
1014
1015         * Android.mk:
1016         * GNUmakefile.am:
1017         * WebCore.gypi:
1018         * WebCore.pro:
1019         * WebCore.vcproj/WebCore.vcproj:
1020         * WebCore.xcodeproj/project.pbxproj:
1021         * rendering/RenderPath.cpp:
1022         (WebCore::RenderPath::paint):
1023         * rendering/RenderSVGContainer.cpp:
1024         (WebCore::RenderSVGContainer::selfWillPaint):
1025         (WebCore::RenderSVGContainer::paint):
1026         * rendering/RenderSVGImage.cpp:
1027         (WebCore::RenderSVGImage::paint):
1028         * rendering/RenderSVGResource.h:
1029         (WebCore::):
1030         * rendering/RenderSVGResourceClipper.cpp:
1031         (WebCore::RenderSVGResourceClipper::applyResource):
1032         * rendering/RenderSVGResourceClipper.h:
1033         * rendering/RenderSVGResourceFilter.cpp: Removed.
1034         * rendering/RenderSVGResourceFilter.h: Removed.
1035         * rendering/RenderSVGResourceMarker.h:
1036         (WebCore::RenderSVGResourceMarker::applyResource):
1037         * rendering/RenderSVGResourceMasker.cpp:
1038         (WebCore::RenderSVGResourceMasker::applyResource):
1039         * rendering/RenderSVGResourceMasker.h:
1040         * rendering/RenderSVGRoot.cpp:
1041         (WebCore::RenderSVGRoot::selfWillPaint):
1042         (WebCore::RenderSVGRoot::paint):
1043         * rendering/RenderSVGText.cpp:
1044         * rendering/SVGRenderSupport.cpp:
1045         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
1046         (WebCore::SVGRenderBase::finishRenderSVGContent):
1047         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
1048         (WebCore::deregisterFromResources):
1049         * rendering/SVGRenderSupport.h:
1050         * rendering/SVGRenderTreeAsText.cpp:
1051         (WebCore::writeStyle):
1052         (WebCore::writeSVGResource):
1053         (WebCore::writeResources):
1054         (WebCore::writeRenderResources):
1055         * rendering/SVGRootInlineBox.cpp:
1056         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1057         (WebCore::SVGRootInlineBox::paint):
1058         * svg/SVGFEBlendElement.cpp:
1059         (WebCore::SVGFEBlendElement::build):
1060         * svg/SVGFEBlendElement.h:
1061         * svg/SVGFEColorMatrixElement.cpp:
1062         (WebCore::SVGFEColorMatrixElement::build):
1063         * svg/SVGFEColorMatrixElement.h:
1064         * svg/SVGFEComponentTransferElement.cpp:
1065         (WebCore::SVGFEComponentTransferElement::build):
1066         * svg/SVGFEComponentTransferElement.h:
1067         * svg/SVGFECompositeElement.cpp:
1068         (WebCore::SVGFECompositeElement::build):
1069         * svg/SVGFECompositeElement.h:
1070         * svg/SVGFEDiffuseLightingElement.cpp:
1071         (WebCore::SVGFEDiffuseLightingElement::build):
1072         * svg/SVGFEDiffuseLightingElement.h:
1073         * svg/SVGFEDisplacementMapElement.cpp:
1074         (WebCore::SVGFEDisplacementMapElement::build):
1075         * svg/SVGFEDisplacementMapElement.h:
1076         * svg/SVGFEFloodElement.cpp:
1077         (WebCore::SVGFEFloodElement::build):
1078         * svg/SVGFEFloodElement.h:
1079         * svg/SVGFEGaussianBlurElement.cpp:
1080         (WebCore::SVGFEGaussianBlurElement::build):
1081         * svg/SVGFEGaussianBlurElement.h:
1082         * svg/SVGFEImageElement.cpp:
1083         (WebCore::SVGFEImageElement::build):
1084         * svg/SVGFEImageElement.h:
1085         * svg/SVGFEMergeElement.cpp:
1086         (WebCore::SVGFEMergeElement::build):
1087         * svg/SVGFEMergeElement.h:
1088         * svg/SVGFEMorphologyElement.cpp:
1089         (WebCore::SVGFEMorphologyElement::build):
1090         * svg/SVGFEMorphologyElement.h:
1091         * svg/SVGFEOffsetElement.cpp:
1092         (WebCore::SVGFEOffsetElement::build):
1093         * svg/SVGFEOffsetElement.h:
1094         * svg/SVGFESpecularLightingElement.cpp:
1095         (WebCore::SVGFESpecularLightingElement::build):
1096         * svg/SVGFESpecularLightingElement.h:
1097         * svg/SVGFETileElement.cpp:
1098         (WebCore::SVGFETileElement::build):
1099         * svg/SVGFETileElement.h:
1100         * svg/SVGFETurbulenceElement.cpp:
1101         (WebCore::SVGFETurbulenceElement::build):
1102         * svg/SVGFETurbulenceElement.h:
1103         (WebCore::):
1104         * svg/SVGFilterElement.cpp:
1105         (WebCore::SVGFilterElement::buildFilter):
1106         (WebCore::SVGFilterElement::canvasResource):
1107         * svg/SVGFilterElement.h:
1108         (WebCore::SVGFilterElement::rendererIsNeeded):
1109         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1110         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1111         * svg/SVGFilterPrimitiveStandardAttributes.h:
1112         (WebCore::SVGFilterPrimitiveStandardAttributes::isFilterEffect):
1113         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
1114         * svg/SVGStyledElement.cpp:
1115         (WebCore::SVGStyledElement::invalidateResources):
1116         * svg/graphics/SVGResource.cpp:
1117         * svg/graphics/SVGResource.h:
1118         (WebCore::):
1119         (WebCore::SVGResource::isFilter):
1120         * svg/graphics/SVGResourceFilter.cpp: Added.
1121         (WebCore::SVGResourceFilter::SVGResourceFilter):
1122         (WebCore::SVGResourceFilter::~SVGResourceFilter):
1123         (WebCore::SVGResourceFilter::filterBoundingBox):
1124         (WebCore::shouldProcessFilter):
1125         (WebCore::SVGResourceFilter::addFilterEffect):
1126         (WebCore::SVGResourceFilter::fitsInMaximumImageSize):
1127         (WebCore::SVGResourceFilter::prepareFilter):
1128         (WebCore::SVGResourceFilter::applyFilter):
1129         (WebCore::SVGResourceFilter::externalRepresentation):
1130         (WebCore::getFilterById):
1131         * svg/graphics/SVGResourceFilter.h: Added.
1132         (WebCore::SVGResourceFilter::create):
1133         (WebCore::SVGResourceFilter::resourceType):
1134         (WebCore::SVGResourceFilter::setFilterResolution):
1135         (WebCore::SVGResourceFilter::setHasFilterResolution):
1136         (WebCore::SVGResourceFilter::filterBoundingBoxMode):
1137         (WebCore::SVGResourceFilter::setFilterBoundingBoxMode):
1138         (WebCore::SVGResourceFilter::effectBoundingBoxMode):
1139         (WebCore::SVGResourceFilter::setEffectBoundingBoxMode):
1140         (WebCore::SVGResourceFilter::filterRect):
1141         (WebCore::SVGResourceFilter::setFilterRect):
1142         (WebCore::SVGResourceFilter::scaleX):
1143         (WebCore::SVGResourceFilter::scaleY):
1144         (WebCore::SVGResourceFilter::setFilterBoundingBox):
1145         (WebCore::SVGResourceFilter::builder):
1146         * svg/graphics/filters/SVGFilterBuilder.h:
1147
1148 2010-04-20  Dirk Schulze  <krit@webkit.org>
1149
1150         Reviewed by Nikolas Zimmermann.
1151
1152         SVGResourceFilter needs to be moved to under Renderers
1153         https://bugs.webkit.org/show_bug.cgi?id=35320
1154
1155         This patch adds a renderer for SVGFilterElement. SVGFilterElement is now independent
1156         from the SVGResources.
1157         A clean-up solves the dependencies between SVGFilterElement, the filter primitives
1158         and SVGResources. This shall make the filter code more readable and better maintable.
1159         The Filter primitives get dumped now, as long as they have externalRepresentation
1160         implemented.
1161
1162         No behavior changes, so no new tests were added.
1163
1164         * Android.mk:
1165         * GNUmakefile.am:
1166         * WebCore.gypi:
1167         * WebCore.pro:
1168         * WebCore.vcproj/WebCore.vcproj:
1169         * WebCore.xcodeproj/project.pbxproj:
1170         * rendering/RenderPath.cpp:
1171         (WebCore::RenderPath::paint):
1172         * rendering/RenderSVGContainer.cpp:
1173         (WebCore::RenderSVGContainer::selfWillPaint):
1174         (WebCore::RenderSVGContainer::paint):
1175         * rendering/RenderSVGImage.cpp:
1176         (WebCore::RenderSVGImage::paint):
1177         * rendering/RenderSVGResource.h:
1178         (WebCore::):
1179         * rendering/RenderSVGResourceClipper.cpp:
1180         (WebCore::RenderSVGResourceClipper::applyResource):
1181         * rendering/RenderSVGResourceClipper.h:
1182         * rendering/RenderSVGResourceFilter.cpp: Added.
1183         (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter):
1184         (WebCore::RenderSVGResourceFilter::~RenderSVGResourceFilter):
1185         (WebCore::RenderSVGResourceFilter::invalidateClients):
1186         (WebCore::RenderSVGResourceFilter::invalidateClient):
1187         (WebCore::RenderSVGResourceFilter::buildPrimitives):
1188         (WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize):
1189         (WebCore::RenderSVGResourceFilter::applyResource):
1190         (WebCore::RenderSVGResourceFilter::postApplyResource):
1191         (WebCore::RenderSVGResourceFilter::resourceBoundingBox):
1192         * rendering/RenderSVGResourceFilter.h: Added.
1193         (WebCore::FilterData::FilterData):
1194         (WebCore::RenderSVGResourceFilter::renderName):
1195         (WebCore::RenderSVGResourceFilter::filterUnits):
1196         (WebCore::RenderSVGResourceFilter::primitiveUnits):
1197         (WebCore::RenderSVGResourceFilter::resourceType):
1198         * rendering/RenderSVGResourceMarker.h:
1199         (WebCore::RenderSVGResourceMarker::applyResource):
1200         * rendering/RenderSVGResourceMasker.cpp:
1201         (WebCore::RenderSVGResourceMasker::applyResource):
1202         * rendering/RenderSVGResourceMasker.h:
1203         * rendering/RenderSVGRoot.cpp:
1204         (WebCore::RenderSVGRoot::selfWillPaint):
1205         (WebCore::RenderSVGRoot::paint):
1206         * rendering/RenderSVGText.cpp:
1207         * rendering/SVGRenderSupport.cpp:
1208         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
1209         (WebCore::SVGRenderBase::finishRenderSVGContent):
1210         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
1211         (WebCore::deregisterFromResources):
1212         * rendering/SVGRenderSupport.h:
1213         * rendering/SVGRenderTreeAsText.cpp:
1214         (WebCore::writeStyle):
1215         (WebCore::writeSVGResource):
1216         (WebCore::writeResources):
1217         (WebCore::writeRenderResources):
1218         * rendering/SVGRootInlineBox.cpp:
1219         (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
1220         (WebCore::SVGRootInlineBox::paint):
1221         * svg/SVGFEBlendElement.cpp:
1222         (WebCore::SVGFEBlendElement::build):
1223         * svg/SVGFEBlendElement.h:
1224         * svg/SVGFEColorMatrixElement.cpp:
1225         (WebCore::SVGFEColorMatrixElement::build):
1226         * svg/SVGFEColorMatrixElement.h:
1227         * svg/SVGFEComponentTransferElement.cpp:
1228         (WebCore::SVGFEComponentTransferElement::build):
1229         * svg/SVGFEComponentTransferElement.h:
1230         * svg/SVGFECompositeElement.cpp:
1231         (WebCore::SVGFECompositeElement::build):
1232         * svg/SVGFECompositeElement.h:
1233         * svg/SVGFEDiffuseLightingElement.cpp:
1234         (WebCore::SVGFEDiffuseLightingElement::build):
1235         * svg/SVGFEDiffuseLightingElement.h:
1236         * svg/SVGFEDisplacementMapElement.cpp:
1237         (WebCore::SVGFEDisplacementMapElement::build):
1238         * svg/SVGFEDisplacementMapElement.h:
1239         * svg/SVGFEFloodElement.cpp:
1240         (WebCore::SVGFEFloodElement::build):
1241         * svg/SVGFEFloodElement.h:
1242         * svg/SVGFEGaussianBlurElement.cpp:
1243         (WebCore::SVGFEGaussianBlurElement::build):
1244         * svg/SVGFEGaussianBlurElement.h:
1245         * svg/SVGFEImageElement.cpp:
1246         (WebCore::SVGFEImageElement::build):
1247         * svg/SVGFEImageElement.h:
1248         * svg/SVGFEMergeElement.cpp:
1249         (WebCore::SVGFEMergeElement::build):
1250         * svg/SVGFEMergeElement.h:
1251         * svg/SVGFEMorphologyElement.cpp:
1252         (WebCore::SVGFEMorphologyElement::build):
1253         * svg/SVGFEMorphologyElement.h:
1254         * svg/SVGFEOffsetElement.cpp:
1255         (WebCore::SVGFEOffsetElement::build):
1256         * svg/SVGFEOffsetElement.h:
1257         * svg/SVGFESpecularLightingElement.cpp:
1258         (WebCore::SVGFESpecularLightingElement::build):
1259         * svg/SVGFESpecularLightingElement.h:
1260         * svg/SVGFETileElement.cpp:
1261         (WebCore::SVGFETileElement::build):
1262         * svg/SVGFETileElement.h:
1263         * svg/SVGFETurbulenceElement.cpp:
1264         (WebCore::SVGFETurbulenceElement::build):
1265         * svg/SVGFETurbulenceElement.h:
1266         (WebCore::):
1267         * svg/SVGFilterElement.cpp:
1268         (WebCore::SVGFilterElement::createRenderer):
1269         * svg/SVGFilterElement.h:
1270         * svg/SVGFilterPrimitiveStandardAttributes.cpp:
1271         (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
1272         * svg/SVGFilterPrimitiveStandardAttributes.h:
1273         (WebCore::SVGFilterPrimitiveStandardAttributes::isFilterEffect):
1274         (WebCore::SVGFilterPrimitiveStandardAttributes::rendererIsNeeded):
1275         * svg/SVGStyledElement.cpp:
1276         (WebCore::SVGStyledElement::invalidateResources):
1277         * svg/graphics/SVGResource.cpp:
1278         * svg/graphics/SVGResource.h:
1279         (WebCore::):
1280         (WebCore::SVGResource::isPaintServer):
1281         * svg/graphics/SVGResourceFilter.cpp: Removed.
1282         * svg/graphics/SVGResourceFilter.h: Removed.
1283         * svg/graphics/filters/SVGFilterBuilder.h:
1284         (WebCore::SVGFilterBuilder::namedEffects):
1285
1286 2010-04-20  Gavin Barraclough  <barraclough@apple.com>
1287
1288         Rubber stamped by Maciej Stachowiak (relanding r57829).
1289         Added missing JS_EXPORTDATA
1290
1291         * ForwardingHeaders/wtf/WTFThreadData.h: Copied from WebCore/ForwardingHeaders/wtf/WTFThreadData.h.
1292         * platform/ThreadGlobalData.cpp:
1293         (WebCore::ThreadGlobalData::ThreadGlobalData):
1294         (WebCore::ThreadGlobalData::~ThreadGlobalData):
1295         * platform/ThreadGlobalData.h:
1296         (WebCore::ThreadGlobalData::eventNames):
1297         * platform/text/AtomicString.cpp:
1298         (WebCore::AtomicStringTable::create):
1299         (WebCore::AtomicStringTable::table):
1300         (WebCore::AtomicStringTable::destroy):
1301         (WebCore::stringTable):
1302
1303 2010-04-20  No'am Rosenthal  <noam.rosenthal@nokia.com>
1304
1305         Reviewed by Antti Koivisto.
1306
1307         [Qt] GraphicsLayer: support fill-modes
1308         https://bugs.webkit.org/show_bug.cgi?id=36216
1309         Implement the CSS-animation "fill mode" concept in GraphicsLayerQt. The concept
1310         enables a key-frame animation to go to the animation's starting point before the delay,
1311         and/or to stay at the animation's ending point after its ended, without reverting to the default
1312         value.
1313         We do that by manually setting the value to keyframe-0 before the delay if fill-mode is backwards/both,
1314         and manually modifying the default value to the animated value as we animate, with fill-mode forwards/both.
1315
1316         * platform/graphics/qt/GraphicsLayerQt.cpp:
1317         (WebCore::AnimationQtBase::AnimationQtBase):
1318         (WebCore::TransformAnimationQt::~TransformAnimationQt):
1319         (WebCore::TransformAnimationQt::applyFrame):
1320         (WebCore::GraphicsLayerQt::addAnimation):
1321
1322 2010-04-19  Leandro Pereira  <leandro@profusion.mobi>
1323
1324         Reviewed by David Hyatt.
1325
1326         Add missing dummy implementations in PluginPackageNone and PluginViewNone.
1327         http://webkit.org/b/37478
1328
1329         * plugins/PluginPackageNone.cpp:
1330         (WebCore::PluginPackage::NPVersion): Add dummy implementation.
1331         * plugins/PluginViewNone.cpp:
1332         (WebCore::PluginView::handleFocusInEvent): Add dummy implementation.
1333         (WebCore::PluginView::handleFocusOutEvent): Add dummy implementation.
1334
1335 2010-04-19  Simon Fraser  <simon.fraser@apple.com>
1336
1337         Reviewed by Geoff Garen.
1338
1339         Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject
1340         https://bugs.webkit.org/show_bug.cgi?id=37741
1341
1342         Move m_hasFallbackContent from RenderPart to RenderEmbeddedObject,
1343         since it's only used for <object> fallback.
1344
1345         * rendering/RenderEmbeddedObject.cpp:
1346         (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
1347         * rendering/RenderEmbeddedObject.h:
1348         (WebCore::RenderEmbeddedObject::hasFallbackContent):
1349         * rendering/RenderPart.cpp:
1350         (WebCore::RenderPart::RenderPart):
1351         * rendering/RenderPart.h:
1352
1353 2010-04-19  Simon Fraser  <simon.fraser@apple.com>
1354
1355         Reviewed by Darin Adler.
1356
1357         Clean up RenderPart/RenderPartObject/RenderFrame/RenderEmbeddedObject
1358         https://bugs.webkit.org/show_bug.cgi?id=37741
1359
1360         Add a new renderer for iframes, named RenderIFrame. Add a new shared base class
1361         between this and RenderFrame, called RenderFrameBase (following the existing HTMLFrameElementBase),
1362         and move code from RenderPart and RenderPartObject into these new classes.
1363         
1364         There should be no functionality difference with this change, so no new tests.
1365         
1366         Fixing up renderer names in the layout tests will be done in a later pass.
1367         
1368         Fix build systems to include the new files.
1369         
1370         * Android.mk:
1371         * GNUmakefile.am:
1372         * WebCore.gypi:
1373         * WebCore.pro:
1374         * WebCore.vcproj/WebCore.vcproj:
1375         * WebCore.xcodeproj/project.pbxproj:
1376         * html/HTMLIFrameElement.cpp:
1377         (WebCore::HTMLIFrameElement::createRenderer):
1378         * rendering/RenderEmbeddedObject.h:
1379         * rendering/RenderFrame.cpp:
1380         (WebCore::RenderFrame::RenderFrame):
1381         * rendering/RenderFrame.h:
1382         * rendering/RenderFrameBase.cpp: Added.
1383         (WebCore::RenderFrameBase::RenderFrameBase):
1384         (WebCore::RenderFrameBase::layoutWithFlattening):
1385         * rendering/RenderFrameBase.h: Added.
1386         * rendering/RenderIFrame.cpp: Added.
1387         (WebCore::RenderIFrame::RenderIFrame):
1388         (WebCore::RenderIFrame::calcHeight):
1389         (WebCore::RenderIFrame::calcWidth):
1390         (WebCore::RenderIFrame::flattenFrame):
1391         (WebCore::RenderIFrame::layout):
1392         * rendering/RenderIFrame.h: Added.
1393         (WebCore::RenderIFrame::renderName):
1394         * rendering/RenderPart.cpp:
1395         * rendering/RenderPart.h:
1396         * rendering/RenderPartObject.cpp:
1397         * rendering/RenderPartObject.h:
1398
1399 2010-04-19  Dumitru Daniliuc  <dumi@chromium.org>
1400
1401         Reviewed by Geoffrey Garen.
1402
1403         Bindings clean-up.
1404         https://bugs.webkit.org/show_bug.cgi?id=37833
1405
1406         Move some WebSQLDatabases logic out of the bindings into
1407         DOMWindow.cpp where it should be.
1408
1409         * bindings/js/JSDOMWindowCustom.cpp:
1410         (WebCore::JSDOMWindow::openDatabase):
1411         * bindings/v8/custom/V8DOMWindowCustom.cpp:
1412         (WebCore::V8DOMWindow::openDatabaseCallback):
1413         * page/DOMWindow.cpp:
1414         (WebCore::DOMWindow::openDatabase):
1415
1416 2010-04-19  Kevin Ollivier  <kevino@theolliviers.com>
1417
1418         Fix the Mac builders for now by restoring the keepAlive function.
1419
1420         * plugins/PluginViewNone.cpp:
1421         (WebCore::PluginView::keepAlive):
1422
1423 2010-04-19  Kevin Ollivier  <kevino@theolliviers.com>
1424
1425         [wx] Build fix, remove a method that has been moved to PluginView.cpp.
1426
1427         * plugins/PluginViewNone.cpp:
1428
1429 2010-04-19  Gavin Barraclough  <barraclough@apple.com>
1430
1431         Reviewed by NOBODY (rolling out r57829).
1432         This broke windows.
1433
1434         * ForwardingHeaders/wtf/WTFThreadData.h: Removed.
1435         * platform/ThreadGlobalData.cpp:
1436         (WebCore::ThreadGlobalData::ThreadGlobalData):
1437         (WebCore::ThreadGlobalData::~ThreadGlobalData):
1438         * platform/ThreadGlobalData.h:
1439         (WebCore::ThreadGlobalData::atomicStringTable):
1440         * platform/text/AtomicString.cpp:
1441         (WebCore::stringTable):
1442
1443 2010-04-19  Mark Rowe  <mrowe@apple.com>
1444
1445         Build fix.
1446
1447         * platform/graphics/mac/GraphicsContext3DMac.cpp:
1448
1449 2010-04-19  Chris Fleizach  <cfleizach@apple.com>
1450
1451         Reviewed by Beth Dakin.
1452
1453         AX: aria-haspopup needs to be exposed
1454         https://bugs.webkit.org/show_bug.cgi?id=37808
1455
1456         Test: platform/mac/accessibility/element-haspopup.html
1457
1458         * accessibility/AccessibilityObject.h:
1459         (WebCore::AccessibilityObject::ariaHasPopup):
1460         * accessibility/AccessibilityRenderObject.cpp:
1461         (WebCore::AccessibilityRenderObject::ariaHasPopup):
1462         (WebCore::AccessibilityRenderObject::determineAriaRoleAttribute):
1463         * accessibility/AccessibilityRenderObject.h:
1464         * accessibility/mac/AccessibilityObjectWrapper.mm:
1465         (-[AccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
1466         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
1467
1468 2010-04-19  Anders Carlsson  <andersca@apple.com>
1469
1470         Reviewed by Sam Weinig.
1471
1472         Fix a crash when rendering <select> elements with WebKit2.
1473
1474         * rendering/RenderThemeMac.mm:
1475         (WebCore::RenderThemeMac::paintMenuList):
1476         Set the current NSGraphicsContext before calling out to AppKit, otherwise the current graphics context
1477         could point to a CGContext whose memory has been freed.
1478
1479 2010-04-08  Dimitri Glazkov  <dglazkov@chromium.org>
1480
1481         Reviewed by Darin Adler.
1482
1483         Manipulating document fragment members while adding it to tree may result in loss of tree integrity.
1484         https://bugs.webkit.org/show_bug.cgi?id=36031
1485
1486         Changes the logic of appending/inserting document fragment to first stashing all of its children
1487         to a vector, then processing the vector. This avoids ghastliness that would be caused by mutation
1488         events mucking with the document fragment while it's being appended/inserted.
1489
1490         Test: fast/dom/Node/fragment-mutation.html
1491
1492         * dom/ContainerNode.cpp:
1493         (WebCore::targetNodes): Added method to populate a vector of nodes (targets) to be used in
1494             inserting/appending operation.
1495         (WebCore::ContainerNode::insertBefore): Changed to use vector-based iteration.
1496         (WebCore::ContainerNode::appendChild): Ditto.
1497         * dom/Node.cpp:
1498         (WebCore::Node::checkReplaceChild): Cleaned up comments.
1499         (WebCore::Node::checkAddChild): Ditto.
1500
1501 2010-04-19  Eric Carlson  <eric.carlson@apple.com>
1502
1503         Reviewed by Simon Fraser.
1504
1505         Fix regression introduced in r57820.
1506
1507         * html/HTMLMediaElement.cpp:
1508         (WebCore::HTMLMediaElement::loadNextSourceChild): Create a new MediaPlayer instead of
1509         just setting a URL on the one used for the previous <source> element. This restores
1510         the behavior prior to the changes for https://bugs.webkit.org/show_bug.cgi?id=37728.
1511
1512 2010-04-19  Gavin Barraclough  <barraclough@apple.com>
1513
1514         Reviewed by Sam Weinig.
1515
1516         https://bugs.webkit.org/show_bug.cgi?id=37745
1517         Move string uniquing tables to (new) WTFThreadData class.
1518
1519         Remove AtomicString's dependency on ThreadGlobalData so that we can move
1520         WebCore's string classes up to WTF.
1521
1522         * ForwardingHeaders/wtf/WTFThreadData.h: Added.
1523         * platform/ThreadGlobalData.cpp: Remove m_atomicStringTable, all wtfThreadData() to ensure threadsafely initialized.
1524         (WebCore::ThreadGlobalData::ThreadGlobalData):
1525         (WebCore::ThreadGlobalData::~ThreadGlobalData):
1526         * platform/ThreadGlobalData.h: Remove m_atomicStringTable.
1527         (WebCore::ThreadGlobalData::eventNames):
1528         * platform/text/AtomicString.cpp:
1529         (WebCore::AtomicStringTable::create):
1530         (WebCore::AtomicStringTable::table):
1531         (WebCore::AtomicStringTable::destroy):
1532         (WebCore::stringTable): Access the AtomicStringTable on wtfThreadData() rather then threadGlobalData().
1533
1534 2010-04-19  Ada Chan  <adachan@apple.com>
1535
1536         Build fix: wrap Settings::setLocalStorageQuota() and Settings::setSessionStorageQuota()
1537         in #if ENABLE(DOM_STORAGE).
1538
1539         * page/Settings.cpp:
1540         (WebCore::Settings::Settings):
1541         * page/Settings.h:
1542
1543 2010-04-19  Dave Moore  <davemoore@chromium.org>
1544
1545         Reviewed by Dimitri Glazkov.
1546
1547         Added notification when the favicons for a page are changed
1548         from a script.
1549         The Document object will notify the frame loader, which will
1550         notify the client. Implementations of FrameLoaderClient will
1551         have to add one method; dispatchDidChangeIcons().
1552
1553         https://bugs.webkit.org/show_bug.cgi?id=33812
1554
1555         Test: fast/dom/icon-url-property.html
1556
1557         * dom/Document.cpp:
1558         (WebCore::Document::setIconURL):
1559         * loader/DocumentLoader.cpp:
1560         (WebCore::DocumentLoader::setIconURL):
1561         * loader/DocumentLoader.h:
1562         (WebCore::DocumentLoader::iconURL):
1563         * loader/EmptyClients.h:
1564         (WebCore::EmptyFrameLoaderClient::dispatchDidChangeIcons):
1565         * loader/FrameLoader.cpp:
1566         (WebCore::FrameLoader::setIconURL):
1567         (WebCore::FrameLoader::didChangeIcons):
1568         * loader/FrameLoader.h:
1569         * loader/FrameLoaderClient.h:
1570
1571 2010-04-19  Ada Chan  <adachan@apple.com>
1572
1573         Reviewed by Jeremy Orlow.
1574
1575         https://bugs.webkit.org/show_bug.cgi?id=37717
1576         Allow clients concerned with memory consumption to set a quota on session storage
1577         since the memory used won't be released until the Page is destroyed.
1578         The default is noQuota, which matches the current behavior.
1579
1580         * WebCore.base.exp: Export Settings::setSessionStorageQuota().
1581         * page/Page.cpp:
1582         (WebCore::Page::sessionStorage):
1583         * page/Settings.cpp:
1584         (WebCore::Settings::Settings):
1585         (WebCore::Settings::setSessionStorageQuota):
1586         * page/Settings.h:
1587         (WebCore::Settings::sessionStorageQuota):
1588         * storage/StorageNamespace.cpp:
1589         (WebCore::StorageNamespace::sessionStorageNamespace):
1590         * storage/StorageNamespace.h:
1591         * storage/StorageNamespaceImpl.cpp:
1592         (WebCore::StorageNamespaceImpl::sessionStorageNamespace):
1593         * storage/StorageNamespaceImpl.h:
1594
1595 2010-04-19  Eric Carlson  <eric.carlson@apple.com>
1596
1597         Reviewed by Simon Fraser.
1598
1599         Setting media element 'src' attribute should trigger immediate load
1600         https://bugs.webkit.org/show_bug.cgi?id=37728
1601
1602         * html/HTMLMediaElement.cpp:
1603         (WebCore::HTMLMediaElement::attributeChanged): Schedule load every time 'src' attribute
1604         changes unless it is missing.
1605         (WebCore::HTMLMediaElement::prepareForLoad): Include steps 3 to 6 from loadInternal.
1606         (WebCore::HTMLMediaElement::loadInternal): Steps 3 to 6 are now in prepareForLoad.
1607         (WebCore::HTMLMediaElement::loadResource): MediaPlayer is now allocated in prepareForLoad
1608         so the previously loading file, if any, is cancelled there.
1609
1610 2010-04-19  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
1611
1612         Reviewed by Simon Hausmann.
1613
1614         [Qt] Fix compilation against namespaced Qt.
1615
1616         * platform/graphics/GraphicsLayer.h:
1617         * platform/graphics/Tile.h:
1618         * platform/graphics/qt/MediaPlayerPrivateQt.h:
1619         * platform/network/qt/NetworkStateNotifierPrivate.h:
1620
1621 2010-04-19  Balazs Kelemen  <kb@inf.u-szeged.hu>
1622
1623         Reviewed by Kenneth Rohde Christiansen.
1624
1625         [Qt] Destroy SharedTimerQt before destruction of QCoreApplication.
1626
1627         To avoid unsafe situations caused by running WebCore code (through firing timers) when destruction of QCoreApplication
1628         has been started, we should explicitly destroy the SharedTimerQt instance on application exit.
1629         We can achieve that through installing a self-destroying slot for the QCoreApplication::aboutToQuit() signal
1630         into the SharedTimerQt instance.
1631
1632         https://bugs.webkit.org/show_bug.cgi?id=36832
1633
1634         No functional change so no new tests.
1635
1636         * platform/qt/SharedTimerQt.cpp:
1637         (WebCore::SharedTimerQt::SharedTimerQt):
1638         (WebCore::SharedTimerQt::destroy):
1639         (WebCore::SharedTimerQt::inst):
1640
1641 2010-04-19  Dan Bernstein  <mitz@apple.com>
1642
1643         Reviewed by Darin Adler.
1644
1645         Make the fix for <rdar://problem/7873647> from r57759 more robust.
1646
1647         * rendering/RenderLayer.cpp:
1648         (WebCore::RenderLayer::updateHoverActiveState): Use RefPtrs for the Nodes.
1649
1650 2010-04-19  Yury Semikhatsky  <yurys@chromium.org>
1651
1652         Unreviewed. Chromium build fix.
1653
1654         * bindings/v8/JavaScriptCallFrame.h:
1655
1656 2010-04-19  Yury Semikhatsky  <yurys@chromium.org>
1657
1658         Reviewed by Pavel Feldman.
1659
1660         Web Inspector: implement JavaScriptCallFrame that works for v8.
1661         Implementing this binding for v8 allows to make evaluations on
1662         call frames and protects access to the debugger context from
1663         inspected context.
1664
1665         https://bugs.webkit.org/show_bug.cgi?id=37755
1666
1667         * WebCore.gyp/WebCore.gyp:
1668         * WebCore.gypi:
1669         * bindings/js/JSJavaScriptCallFrameCustom.cpp:
1670         (WebCore::JSJavaScriptCallFrame::scopeType):
1671         * bindings/v8/JavaScriptCallFrame.cpp: Added.
1672         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
1673         (WebCore::JavaScriptCallFrame::~JavaScriptCallFrame):
1674         (WebCore::JavaScriptCallFrame::caller):
1675         (WebCore::JavaScriptCallFrame::sourceID):
1676         (WebCore::JavaScriptCallFrame::line):
1677         (WebCore::JavaScriptCallFrame::functionName):
1678         (WebCore::JavaScriptCallFrame::scopeChain):
1679         (WebCore::JavaScriptCallFrame::scopeType):
1680         (WebCore::JavaScriptCallFrame::thisObject):
1681         (WebCore::JavaScriptCallFrame::evaluate):
1682         * bindings/v8/JavaScriptCallFrame.h: Added.
1683         (WebCore::JavaScriptCallFrame::create):
1684         * bindings/v8/ScriptDebugServer.cpp:
1685         (WebCore::ScriptDebugServer::currentCallFrame):
1686         * bindings/v8/ScriptDebugServer.h:
1687         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
1688         (WebCore::V8InjectedScriptHost::currentCallFrameCallback):
1689         * bindings/v8/custom/V8JavaScriptCallFrameCustom.cpp: Added.
1690         (WebCore::V8JavaScriptCallFrame::evaluateCallback):
1691         (WebCore::V8JavaScriptCallFrame::scopeChainAccessorGetter):
1692         (WebCore::V8JavaScriptCallFrame::scopeTypeCallback):
1693         (WebCore::V8JavaScriptCallFrame::thisObjectAccessorGetter):
1694         (WebCore::V8JavaScriptCallFrame::typeAccessorGetter):
1695         * inspector/JavaScriptCallFrame.idl:
1696         * inspector/front-end/InjectedScript.js:
1697         (injectedScriptConstructor.):
1698
1699 2010-04-19  Jessie Berlin  <jberlin@webkit.org>
1700
1701         Rubber Stamped by Adam Roben
1702
1703         Chromium Release Build Fix.
1704
1705         * css/CSSSelector.cpp:
1706         (WebCore::CSSSelector::pseudoId):
1707         In the case where the DATALIST is not enabled, fall through to NOPSEUDO instead of omitting PseudoInputListButton entirely from the switch.
1708
1709 2010-04-19  Jessie Berlin  <jberlin@webkit.org>
1710
1711         Reviewed by Dave Hyatt.
1712
1713         First steps towards fixing bug 24021 - pseudo-element styles not accessible / retrievable via DOM methods.
1714         https://bugs.webkit.org/show_bug.cgi?id=24021
1715
1716         Allows access to the computed styles for the pseudo-elements through the second argument to getComputedStyle.
1717         This approach does not provide the correct values for 'length' properties and does not work for the ':selection' pseudo-element and will instead return results similiar to those returned by Firefox. This approach also requires waiting until at least one iteration of a hardware accelerated composited animation to return the correct values for the "opacity" and "transform" properties of a pseudo-element associated with the element being animated.
1718         Those values need to be retrieved from the renderer for the pseudo-element as opposed to the cached RenderStyle for the element on which the pseudo-element is defined, which is further complicated by the fact that not all elements have renderers.
1719
1720         Test: fast/css/getComputedStyle/getComputedStyle-with-pseudo-element.html
1721
1722         * WebCore.base.exp:
1723         * css/CSSComputedStyleDeclaration.cpp:
1724         (WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
1725         Parse the and store the pseudo-element specifier from the string provided by the user.
1726         (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword):
1727         Get the computed style for the pseudo-element if it has been specified.
1728         (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
1729         Get the computed style for the pseudo-element if it has been specified, with a FIXME noting that the values returned for the "opacity" and "transform" properties of a pseudo-element associated with an element being animated and using hardware accelerated compositing will not be correct until after the first iteration of the animation.
1730         (WebCore::CSSComputedStyleDeclaration::length):
1731         Get the computed style for the pseudo-element if it has been specified.
1732         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
1733         Ditto.
1734         * css/CSSComputedStyleDeclaration.h:
1735         (WebCore::computedStyle):
1736         Take into consideration the pseudo-element.
1737
1738         * css/CSSSelector.cpp:
1739         (WebCore::CSSSelector::pseudoId):
1740         Return the PseudoId that corresponds to the given PseudoType. If there is no corresponding PseudoId, returns NOPSEUDO.
1741         (WebCore::nameToPseudoTypeMap):
1742         Create and return the mapping between string names and PseudoTypes.
1743         (WebCore::CSSSelector::parsePseudoType):
1744         Parse and the given string into a PseudoType.
1745         (WebCore::CSSSelector::extractPseudoType):
1746         Refactored to use parsePseudoType.
1747         * css/CSSSelector.h:
1748
1749         * css/CSSStyleSelector.cpp:
1750         (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
1751         Refactored to use pseudoId.
1752
1753         * dom/Element.cpp:
1754         (WebCore::Element::computedStyle):
1755         If the pseudo-element is specified, then return the cached RenderStyle for that PseudoId. Added a FIXME to find the actual renders of the pseudo-elements instead of just the cached RenderStyle of the RenderStyle for the associated element.
1756         * dom/Element.h:
1757         (WebCore::Element::virtualComputedStyle):
1758         Because Element::computedStyle is used so often, don't make it virtual. Instead, provide a virtualComputedStyle method in the Node.h class andmake computedStyle non-virtual. That way the Element version and the Node version of computedStyle will have the same name and look the same at the call site, but the Element version will be more efficient.
1759
1760         * dom/Node.h:
1761         (WebCore::Node::computedStyle):
1762         Ditto.
1763         * dom/Node.cpp:
1764         (WebCore::Node::virtualComputedStyle):
1765         Get the computed style for the pseudo-element if it has been specified.
1766
1767         * page/DOMWindow.cpp:
1768         (WebCore::DOMWindow::getComputedStyle):
1769         Ditto.
1770
1771 2010-04-18  Simon Hausmann  <simon.hausmann@nokia.com>
1772
1773         Reviewed by Laszlo Gombos.
1774
1775         [Qt] Fix JavaScriptCore's include path for WinCE builds
1776
1777         https://bugs.webkit.org/show_bug.cgi?id=36751
1778
1779         * WebCore.pro:
1780
1781 2010-04-17  Alexey Proskuryakov  <ap@apple.com>
1782
1783         Reviewed by Adam Barth.
1784
1785         https://bugs.webkit.org/show_bug.cgi?id=37720
1786         <rdar://problem/7873752> HTMLFrameSetElement-window-eventListener-attributes.html sometimes
1787         crashes on SnowLeopard Release
1788
1789         Tests: 
1790         * fast/dom/Window/HTMLBodyElement-window-eventListener-attributes.html:
1791         * fast/dom/Window/HTMLFrameSetElement-window-eventListener-attributes.html:
1792
1793         * bindings/scripts/CodeGeneratorJS.pm: Use global object as a wrapper for window event
1794         listeners set via document.body. The body wrapper can go away if nothing else references it.
1795
1796         * html/HTMLBodyElement.idl: Override listeners that exist on Element with custom implementations,
1797         because we need to use window object as a wrapper, not the element. Marked all window event
1798         listeners as such for code generator.
1799
1800         * html/HTMLFrameSetElement.idl: Ditto.
1801
1802 2010-04-17  Juan C. Montemayor  <jmonte03@cs.tufts.edu>
1803
1804         Reviewed by Joseph Pecoraro.
1805
1806         Databases pane doesn't recognize table creation/deletion
1807         https://bugs.webkit.org/show_bug.cgi?id=20219
1808
1809         * inspector/front-end/DatabaseQueryView.js:
1810         (WebInspector.DatabaseQueryView.prototype._queryFinished):
1811
1812 2010-04-17  Yaar Schnitman  <yaar@chromium.org>
1813
1814         Reviewed by Adam Barth.
1815
1816         Auto-generate V8 bindings for canvas.* overloads
1817         https://bugs.webkit.org/show_bug.cgi?id=37453
1818
1819         * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Deleted custom code that is now auto-generated.
1820         * bindings/scripts/CodeGeneratorV8.pm: Not generating custom signatures for overloaded methods and accepting Object as a string input.
1821         * html/canvas/CanvasRenderingContext2D.cpp:
1822         (WebCore::CanvasRenderingContext2D::drawImage): Added missing 9-arguments overloads for drawImage.
1823         * html/canvas/CanvasRenderingContext2D.h: 
1824         * html/canvas/CanvasRenderingContext2D.idl: Overloaded methods defined (V8 only).
1825
1826 2010-04-17  Yury Semikhatsky  <yurys@chromium.org>
1827
1828         Reviewed by Pavel Feldman.
1829
1830         Web Inspector: move JavaScriptCallFrame.{h,cpp} to WebCore/bindings/js
1831
1832         https://bugs.webkit.org/show_bug.cgi?id=37740
1833
1834         * GNUmakefile.am:
1835         * WebCore.gypi:
1836         * WebCore.pro:
1837         * WebCore.vcproj/WebCore.vcproj:
1838         * WebCore.xcodeproj/project.pbxproj:
1839         * bindings/js/JSBindingsAllInOne.cpp:
1840         * bindings/js/JavaScriptCallFrame.cpp: Renamed from WebCore/inspector/JavaScriptCallFrame.cpp.
1841         (WebCore::JavaScriptCallFrame::JavaScriptCallFrame):
1842         (WebCore::JavaScriptCallFrame::caller):
1843         (WebCore::JavaScriptCallFrame::scopeChain):
1844         (WebCore::JavaScriptCallFrame::dynamicGlobalObject):
1845         (WebCore::JavaScriptCallFrame::functionName):
1846         (WebCore::JavaScriptCallFrame::type):
1847         (WebCore::JavaScriptCallFrame::thisObject):
1848         (WebCore::JavaScriptCallFrame::evaluate):
1849         * bindings/js/JavaScriptCallFrame.h: Renamed from WebCore/inspector/JavaScriptCallFrame.h.
1850         (WebCore::JavaScriptCallFrame::create):
1851         (WebCore::JavaScriptCallFrame::invalidate):
1852         (WebCore::JavaScriptCallFrame::isValid):
1853         (WebCore::JavaScriptCallFrame::sourceID):
1854         (WebCore::JavaScriptCallFrame::line):
1855         (WebCore::JavaScriptCallFrame::update):
1856         * inspector/InjectedScriptHost.h:
1857         * inspector/InspectorController.h:
1858
1859 2010-04-17  Vangelis Kokkevis  <vangelis@chromium.org>
1860
1861         Reviewed by Dimitri Glazkov.
1862
1863         Adding definition of GLES2Context class.
1864         https://bugs.webkit.org/show_bug.cgi?id=37541
1865
1866         No new functionality implemented yet, no tests.
1867
1868         * WebCore.gypi: Added GLES2Context.h
1869         * platform/chromium/GLES2Context.h: Added.
1870
1871 2010-04-17  Julien Chaffraix  <jchaffraix@webkit.org>
1872
1873         Reviewed by Darin Adler.
1874
1875         Crash while handling SVG font in the wrong namespace imported with @font-face
1876         https://bugs.webkit.org/show_bug.cgi?id=18862
1877
1878         Test: fast/invalid/invalidSVGFont.html
1879
1880         * loader/CachedFont.cpp:
1881         (WebCore::CachedFont::getSVGFontById): Make sure we really get an SVGFontElement by using
1882         getElementsByNameNS: the element factory chooses which element to create based on both
1883         localName and namespace.
1884
1885 2010-04-16  Sheriff Bot  <webkit.review.bot@gmail.com>
1886
1887         Unreviewed, rolling out r57770.
1888         http://trac.webkit.org/changeset/57770
1889         https://bugs.webkit.org/show_bug.cgi?id=37746
1890
1891         8 test cases crashed (Requested by Ossy on #webkit).
1892
1893         * platform/graphics/qt/GraphicsLayerQt.cpp:
1894         (WebCore::AnimationQtBase::AnimationQtBase):
1895         (WebCore::TransformAnimationQt::~TransformAnimationQt):
1896         (WebCore::TransformAnimationQt::applyFrame):
1897         (WebCore::OpacityAnimationQt::applyFrame):
1898         (WebCore::GraphicsLayerQt::addAnimation):
1899
1900 2010-04-16  Daniel Bates  <dbates@rim.com>
1901
1902         Reviewed by Adam Treat.
1903
1904         https://bugs.webkit.org/show_bug.cgi?id=36312
1905
1906         Adds support for the viewport meta tag. The code is largely derived in whole
1907         or in part from the WebCore-528.15 source published as part of the iPhone 3.1.3
1908         source code <http://www.opensource.apple.com/source/WebCore/WebCore-528.15/>.
1909
1910         * Android.mk: Added file ViewportArguments.cpp.
1911         * GNUmakefile.am: Added files ViewportArguments.cpp and ViewportArguments.h.
1912         * WebCore.gypi: Ditto.
1913         * WebCore.pro: Ditto.
1914         * WebCore.vcproj/WebCore.vcproj: Ditto.
1915         * WebCore.xcodeproj/project.pbxproj: Ditto.
1916         * dom/Document.cpp:
1917         (WebCore::isSeparator): Added.
1918         (WebCore::Document::processArguments): Added.
1919         (WebCore::Document::processViewport): Added.
1920         * dom/Document.h:
1921         * dom/ViewportArguments.cpp: Added.
1922         (WebCore::setViewportFeature):
1923         (WebCore::viewportErrorMessageTemplate):
1924         (WebCore::viewportErrorMessageLevel):
1925         (WebCore::reportViewportWarning):
1926         * dom/ViewportArguments.h: Added.
1927         (WebCore::):
1928         (WebCore::ViewportArguments::):
1929         (WebCore::ViewportArguments::ViewportArguments):
1930         (WebCore::ViewportArguments::hasCustomArgument):
1931         * html/HTMLMetaElement.cpp:
1932         (WebCore::HTMLMetaElement::process): Modified to call Document::processViewport.
1933         * page/ChromeClient.h:
1934         (WebCore::ChromeClient::didReceiveViewportArguments): Added.
1935
1936 2010-04-16  No'am Rosenthal  <noam.rosenthal@nokia.com>
1937
1938         Reviewed by Antti Koivisto.
1939
1940         [Qt] GraphicsLayer: support fill-modes
1941         https://bugs.webkit.org/show_bug.cgi?id=36216
1942         Implement the CSS-animation "fill mode" concept in GraphicsLayerQt. The concept
1943         enables a key-frame animation to go to the animation's starting point before the delay,
1944         and/or to stay at the animation's ending point after its ended, without reverting to the default
1945         value.
1946         We do that by manually setting the value to keyframe-0 before the delay if fill-mode is backwards/both,
1947         and manually modifying the default value to the animated value as we animate, with fill-mode forwards/both.
1948
1949         * platform/graphics/qt/GraphicsLayerQt.cpp:
1950         (WebCore::AnimationQtBase::AnimationQtBase):
1951         (WebCore::TransformAnimationQt::~TransformAnimationQt):
1952         (WebCore::TransformAnimationQt::applyFrame):
1953         (WebCore::GraphicsLayerQt::addAnimation):
1954
1955 2010-04-16  Gavin Barraclough  <barraclough@apple.com>
1956
1957         Reviewed by NOBODY (arm build fix).
1958
1959         * bindings/js/JSDesktopNotificationsCustom.cpp:
1960         (WebCore::JSNotification::addEventListener):
1961         (WebCore::JSNotification::removeEventListener):
1962
1963 2010-04-16  Dmitry Titov  <dimich@chromium.org>
1964
1965         Reviewed by Yury Semikhatsky.
1966
1967         [v8] In Workers, script errors right after close() are not delivered to the Worker.onerror.
1968         https://bugs.webkit.org/show_bug.cgi?id=37691
1969
1970         Existing worker-close.html will now work in Chromium.
1971
1972         * bindings/v8/V8Utilities.cpp:
1973         (WebCore::getScriptExecutionContext): Stop using proxy() to just retrieve WorkerContext which should be always available.
1974         * bindings/v8/WorkerContextExecutionProxy.h: removed workerContext() accessor which moved to WorkerScriptController.
1975         * bindings/v8/WorkerScriptController.h:
1976         (WebCore::WorkerScriptController::workerContext): Added, to be able to pull WorkerContext out from the controller.
1977
1978 2010-04-16  Gavin Barraclough  <barraclough@apple.com>
1979
1980         Reviewed by Sam Weinig.
1981
1982         https://bugs.webkit.org/show_bug.cgi?id=37735
1983         Remove JSC specific code from WebCore::AtomicString
1984
1985         Add generic constructor/add/find methods that take a UChar* & length, along
1986         with a known existing hash for the string.
1987         This removes the remaining JSC specific code from platform/text.
1988
1989         * bindings/js/JSAbstractWorkerCustom.cpp:
1990         (WebCore::JSAbstractWorker::addEventListener):
1991         (WebCore::JSAbstractWorker::removeEventListener):
1992         * bindings/js/JSDOMApplicationCacheCustom.cpp:
1993         (WebCore::JSDOMApplicationCache::addEventListener):
1994         (WebCore::JSDOMApplicationCache::removeEventListener):
1995         * bindings/js/JSDOMBinding.cpp:
1996         (WebCore::ustringToAtomicString):
1997         (WebCore::identifierToAtomicString):
1998         (WebCore::findAtomicString):
1999         * bindings/js/JSDOMBinding.h:
2000         * bindings/js/JSDOMWindowCustom.cpp:
2001         (WebCore::childFrameGetter):
2002         (WebCore::JSDOMWindow::getOwnPropertySlot):
2003         (WebCore::JSDOMWindow::getOwnPropertyDescriptor):
2004         (WebCore::JSDOMWindow::open):
2005         (WebCore::JSDOMWindow::addEventListener):
2006         (WebCore::JSDOMWindow::removeEventListener):
2007         * bindings/js/JSElementCustom.cpp:
2008         (WebCore::JSElement::setAttribute):
2009         (WebCore::JSElement::setAttributeNS):
2010         * bindings/js/JSEventSourceCustom.cpp:
2011         (WebCore::JSEventSource::addEventListener):
2012         (WebCore::JSEventSource::removeEventListener):
2013         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2014         (WebCore::getNamedItems):
2015         (WebCore::JSHTMLAllCollection::canGetItemsForName):
2016         * bindings/js/JSHTMLCollectionCustom.cpp:
2017         (WebCore::getNamedItems):
2018         (WebCore::JSHTMLCollection::canGetItemsForName):
2019         * bindings/js/JSHTMLDocumentCustom.cpp:
2020         (WebCore::JSHTMLDocument::canGetItemsForName):
2021         * bindings/js/JSHTMLFormElementCustom.cpp:
2022         (WebCore::JSHTMLFormElement::canGetItemsForName):
2023         (WebCore::JSHTMLFormElement::nameGetter):
2024         * bindings/js/JSHTMLFrameSetElementCustom.cpp:
2025         (WebCore::JSHTMLFrameSetElement::canGetItemsForName):
2026         (WebCore::JSHTMLFrameSetElement::nameGetter):
2027         * bindings/js/JSMessageEventCustom.cpp:
2028         (WebCore::JSMessageEvent::initMessageEvent):
2029         * bindings/js/JSMessagePortCustom.cpp:
2030         (WebCore::JSMessagePort::addEventListener):
2031         (WebCore::JSMessagePort::removeEventListener):
2032         * bindings/js/JSMimeTypeArrayCustom.cpp:
2033         (WebCore::JSMimeTypeArray::canGetItemsForName):
2034         (WebCore::JSMimeTypeArray::nameGetter):
2035         * bindings/js/JSNodeCustom.cpp:
2036         (WebCore::JSNode::addEventListener):
2037         (WebCore::JSNode::removeEventListener):
2038         * bindings/js/JSNodeListCustom.cpp:
2039         (WebCore::JSNodeList::canGetItemsForName):
2040         (WebCore::JSNodeList::nameGetter):
2041         * bindings/js/JSPluginArrayCustom.cpp:
2042         (WebCore::JSPluginArray::canGetItemsForName):
2043         (WebCore::JSPluginArray::nameGetter):
2044         * bindings/js/JSPluginCustom.cpp:
2045         (WebCore::JSPlugin::canGetItemsForName):
2046         (WebCore::JSPlugin::nameGetter):
2047         * bindings/js/JSPopStateEventCustom.cpp:
2048         (WebCore::JSPopStateEvent::initPopStateEvent):
2049         * bindings/js/JSSVGElementInstanceCustom.cpp:
2050         (WebCore::JSSVGElementInstance::addEventListener):
2051         (WebCore::JSSVGElementInstance::removeEventListener):
2052         * bindings/js/JSWebSocketCustom.cpp:
2053         (WebCore::JSWebSocket::addEventListener):
2054         (WebCore::JSWebSocket::removeEventListener):
2055         * bindings/js/JSWorkerContextCustom.cpp:
2056         (WebCore::JSWorkerContext::addEventListener):
2057         (WebCore::JSWorkerContext::removeEventListener):
2058         * bindings/js/JSXMLHttpRequestCustom.cpp:
2059         (WebCore::JSXMLHttpRequest::setRequestHeader):
2060         (WebCore::JSXMLHttpRequest::getResponseHeader):
2061         (WebCore::JSXMLHttpRequest::addEventListener):
2062         (WebCore::JSXMLHttpRequest::removeEventListener):
2063         * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
2064         (WebCore::JSXMLHttpRequestUpload::addEventListener):
2065         (WebCore::JSXMLHttpRequestUpload::removeEventListener):
2066         * platform/text/AtomicString.cpp:
2067         (WebCore::AtomicString::add):
2068         (WebCore::AtomicString::find):
2069         * platform/text/AtomicString.h:
2070         (WebCore::AtomicString::AtomicString):
2071
2072 2010-04-16  Fumitoshi Ukai  <ukai@chromium.org>
2073
2074         Reviewed by Alexey Proskuryakov.
2075
2076         WebSocket crash when it receives bad header.
2077         https://bugs.webkit.org/show_bug.cgi?id=37682
2078
2079         If name or value is not valid UTF-8, nameStr or valueStr would be
2080         null string, so crashed in headers->add(nameStr, valueStr).
2081         Check both nameStr and valueStr are not null string.
2082         Otherwise handshake will fail.
2083
2084         Test: websocket/tests/bad-handshake-crash.html
2085
2086         * websockets/WebSocketHandshake.cpp:
2087         (WebCore::WebSocketHandshake::readHTTPHeaders): check nameStr and valueStr are not null string.
2088
2089 2010-04-16  Dan Bernstein  <mitz@apple.com>
2090
2091         Reviewed by Simon Fraser.
2092
2093         <rdar://problem/7873647> Crash when updating hover state
2094
2095         Test: fast/dynamic/hover-style-recalc-crash.html
2096
2097         Updating the hover state of an element caused the document to need style
2098         recalc, and then updating the hover state of a link caused style recalc,
2099         which changed the render tree while updateHoverActiveState() was iterating
2100         over it, leading to a crash.
2101
2102         * rendering/RenderLayer.cpp:
2103         (WebCore::RenderLayer::updateHoverActiveState): Collect the nodes to be
2104         updated into vectors, then update their active and hover states.
2105
2106 2010-04-16  Dumitru Daniliuc  <dumi@chromium.org>
2107
2108         Reviewed by Alexey Proskuryakov.
2109
2110         Make Safari correctly allocate 5MB of DB storage to all new
2111         origins.
2112         https://bugs.webkit.org/show_bug.cgi?id=36671
2113
2114         Eric fixed the same problem in
2115         DatabaseTracker::fullPathForDatabaseNoLock() in r57128, but forgot
2116         to fix it in DatabaseTracker::detailsForNameAndOrigin() too.
2117
2118         * storage/DatabaseTracker.cpp:
2119         (WebCore::DatabaseTracker::detailsForNameAndOrigin):
2120
2121 2010-04-16  Kinuko Yasuda  <kinuko@chromium.org>
2122
2123         Reviewed by Jian Li.
2124
2125         Implement FileStreamProxy that calls FileStream methods on FileThread for FileAPI
2126         https://bugs.webkit.org/show_bug.cgi?id=37218
2127
2128         No new tests; tests will be added when we add upper layer implementations.
2129
2130         * GNUmakefile.am:
2131         * WebCore.gypi:
2132         * WebCore.pro:
2133         * WebCore.vcproj/WebCore.vcproj:
2134         * WebCore.xcodeproj/project.pbxproj:
2135         * html/FileStream.cpp:
2136         (WebCore::FileStream::stop):
2137         * html/FileStream.h:
2138         * html/FileStreamClient.h:
2139         (WebCore::FileStreamClient::didStop):
2140         * html/FileStreamProxy.cpp: Added
2141         * html/FileStreamProxy.h: Added
2142         * html/FileThreadTask.h: Added
2143
2144 2010-04-16  Gavin Barraclough  <barraclough@apple.com>
2145
2146         Reviewed by Oliver Hunt.
2147
2148         Bug 37730 - Remove JSC::UString dependencies from WebCore::StringImpl
2149         (Following on from bug #37675).
2150
2151         Remove ustring() method, and constructor passed a UString.
2152
2153         * WebCore.base.exp:
2154         * bindings/js/JSDOMBinding.cpp:
2155         (WebCore::stringimplToUString):
2156         (WebCore::jsStringSlowCase):
2157         (WebCore::ustringToString):
2158         (WebCore::stringToUString):
2159         (WebCore::identifierToString):
2160         * bindings/js/JSDOMBinding.h:
2161         (WebCore::jsString):
2162         * platform/text/AtomicString.cpp:
2163         (WebCore::AtomicString::operator UString):
2164         * platform/text/StringImpl.cpp:
2165         (WebCore::StringImpl::create):
2166         * platform/text/StringImpl.h:
2167
2168 2010-04-16  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
2169  
2170         Reviewed by Simon Hausmann.
2171  
2172         [Qt] WebGL is not visible when QGLWidget viewport is used
2173         https://bugs.webkit.org/show_bug.cgi?id=37070
2174  
2175         Added HostWindow parameter to the constructor of GraphicsContext3D.
2176         Shared OpenGL context is initialized with parent QGLWidget.
2177  
2178         * html/canvas/WebGLRenderingContext.cpp:
2179         (WebCore::WebGLRenderingContext::create):
2180         * platform/graphics/GraphicsContext3D.h:
2181         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2182         (WebCore::GraphicsContext3D::create):
2183         (WebCore::GraphicsContext3D::GraphicsContext3D):
2184         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2185         (WebCore::GraphicsContext3DInternal::GraphicsContext3DInternal):
2186         (WebCore::GraphicsContext3DInternal::~GraphicsContext3DInternal):
2187         (WebCore::GraphicsContext3DInternal::getOwnerGLWidget):
2188         (WebCore::GraphicsContext3D::create):
2189         (WebCore::GraphicsContext3D::GraphicsContext3D):
2190
2191 2010-04-16  Jarkko Sakkinen  <jarkko.j.sakkinen@gmail.com>
2192
2193         Reviewed by Simon Hausmann.
2194
2195         [Qt] WebKit compilation fails with --3d-canvas
2196         https://bugs.webkit.org/show_bug.cgi?id=37699 
2197         
2198         API for readPixels() has been changed. 
2199
2200         * platform/graphics/qt/GraphicsContext3DQt.cpp:
2201         (WebCore::GraphicsContext3D::readPixels):
2202
2203 2010-04-16  No'am Rosenthal  <noam.rosenthal@nokia.com>
2204
2205         Reviewed by Antti Koivisto.
2206
2207         [Qt]QtLauncher crash on page with CSS 3D transform
2208         https://bugs.webkit.org/show_bug.cgi?id=36859
2209
2210         Added a neccessary null-pointer check, lack of which created the crash circumstances.
2211
2212         Tested by http://css-vfx.googlecode.com/svn/trunk/snowstack/snowstack.html
2213
2214         * platform/graphics/qt/GraphicsLayerQt.cpp:
2215         (WebCore::GraphicsLayerQtImpl::flushChanges):
2216
2217 2010-04-16  Anders Carlsson  <andersca@apple.com>
2218
2219         Reviewed by Sam Weinig.
2220
2221         Make sure to update the current graphics context when calling out to AppKit.
2222
2223         * platform/mac/ThemeMac.mm:
2224         (WebCore::paintCheckbox):
2225         (WebCore::paintRadio):
2226
2227 2010-04-15  Gavin Barraclough  <barraclough@apple.com>
2228
2229         Reviewed by Sam Weinig & Oliver Hunt.
2230
2231         https://bugs.webkit.org/show_bug.cgi?id=37675
2232         Remove casts/constructors to/from JSC::UString type from WebCore::String
2233         
2234         WebCore's strings should not know about JSC::UString, this should be abstracted
2235         away in the bindings.  Add explicit conversion methods rather than relying on
2236         overloaded cast operators / constructors being implicitly called.
2237
2238         This patch only changes the class String, once this has landed StringImpl, and
2239         hopefully AtomicString too, should follow suit.
2240
2241         This patch adds:
2242             WebCore::identifierToString
2243             WebCore::ustringToString
2244             WebCore::stringToUString
2245
2246         - to JSDOMBindings.h, and updates code to call these methods.
2247
2248         * WebCore.base.exp:
2249         * WebCore.order:
2250         * bindings/js/CachedScriptSourceProvider.h:
2251         (WebCore::CachedScriptSourceProvider::CachedScriptSourceProvider):
2252         * bindings/js/JSAudioConstructor.cpp:
2253         (WebCore::constructAudio):
2254         * bindings/js/JSCSSStyleDeclarationCustom.cpp:
2255         (WebCore::JSCSSStyleDeclaration::nameGetter):
2256         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
2257         (WebCore::toHTMLCanvasStyle):
2258         (WebCore::JSCanvasRenderingContext2D::setFillColor):
2259         (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
2260         (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
2261         (WebCore::JSCanvasRenderingContext2D::setShadow):
2262         (WebCore::JSCanvasRenderingContext2D::fillText):
2263         (WebCore::JSCanvasRenderingContext2D::strokeText):
2264         * bindings/js/JSClipboardCustom.cpp:
2265         (WebCore::JSClipboard::types):
2266         (WebCore::JSClipboard::clearData):
2267         (WebCore::JSClipboard::getData):
2268         (WebCore::JSClipboard::setData):
2269         * bindings/js/JSCustomXPathNSResolver.cpp:
2270         (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
2271         * bindings/js/JSDOMBinding.cpp:
2272         (WebCore::identifierToString):
2273         (WebCore::ustringToString):
2274         (WebCore::stringToUString):
2275         (WebCore::valueToStringWithNullCheck):
2276         (WebCore::valueToStringWithUndefinedOrNullCheck):
2277         (WebCore::reportException):
2278         * bindings/js/JSDOMBinding.h:
2279         * bindings/js/JSDOMFormDataCustom.cpp:
2280         (WebCore::JSDOMFormData::append):
2281         * bindings/js/JSDOMWindowCustom.cpp:
2282         (WebCore::namedItemGetter):
2283         (WebCore::JSDOMWindow::setLocation):
2284         (WebCore::JSDOMWindow::openDatabase):
2285         * bindings/js/JSDatabaseCustom.cpp:
2286         (WebCore::JSDatabase::changeVersion):
2287         * bindings/js/JSDocumentCustom.cpp:
2288         (WebCore::JSDocument::setLocation):
2289         * bindings/js/JSEventListener.cpp:
2290         (WebCore::JSEventListener::handleEvent):
2291         * bindings/js/JSEventSourceConstructor.cpp:
2292         (WebCore::constructEventSource):
2293         * bindings/js/JSHTMLAllCollectionCustom.cpp:
2294         (WebCore::callHTMLAllCollection):
2295         * bindings/js/JSHTMLCanvasElementCustom.cpp:
2296         (WebCore::JSHTMLCanvasElement::getContext):
2297         * bindings/js/JSHTMLCollectionCustom.cpp:
2298         (WebCore::callHTMLCollection):
2299         * bindings/js/JSHTMLDocumentCustom.cpp:
2300         (WebCore::JSHTMLDocument::nameGetter):
2301         (WebCore::documentWrite):
2302         * bindings/js/JSInjectedScriptHostCustom.cpp:
2303         (WebCore::InjectedScriptHost::createInjectedScript):
2304         * bindings/js/JSInspectorFrontendHostCustom.cpp:
2305         (WebCore::JSInspectorFrontendHost::showContextMenu):
2306         * bindings/js/JSLazyEventListener.cpp:
2307         (WebCore::JSLazyEventListener::initializeJSFunction):
2308         * bindings/js/JSLocationCustom.cpp:
2309         (WebCore::JSLocation::setHref):
2310         (WebCore::JSLocation::setProtocol):
2311         (WebCore::JSLocation::setHost):
2312         (WebCore::JSLocation::setHostname):
2313         (WebCore::JSLocation::setPathname):
2314         (WebCore::JSLocation::setSearch):
2315         (WebCore::JSLocation::setHash):
2316         (WebCore::JSLocation::replace):
2317         (WebCore::JSLocation::assign):
2318         * bindings/js/JSMessageEventCustom.cpp:
2319         (WebCore::JSMessageEvent::initMessageEvent):
2320         * bindings/js/JSNamedNodeMapCustom.cpp:
2321         (WebCore::JSNamedNodeMap::canGetItemsForName):
2322         (WebCore::JSNamedNodeMap::nameGetter):
2323         * bindings/js/JSOptionConstructor.cpp:
2324         (WebCore::constructHTMLOptionElement):
2325         * bindings/js/JSSQLResultSetRowListCustom.cpp:
2326         (WebCore::JSSQLResultSetRowList::item):
2327         * bindings/js/JSSQLTransactionCustom.cpp:
2328         (WebCore::JSSQLTransaction::executeSql):
2329         * bindings/js/JSSharedWorkerConstructor.cpp:
2330         (WebCore::constructSharedWorker):
2331         * bindings/js/JSStorageCustom.cpp:
2332         (WebCore::JSStorage::canGetItemsForName):
2333         (WebCore::JSStorage::nameGetter):
2334         (WebCore::JSStorage::deleteProperty):
2335         (WebCore::JSStorage::getOwnPropertyNames):
2336         (WebCore::JSStorage::putDelegate):
2337         * bindings/js/JSStyleSheetListCustom.cpp:
2338         (WebCore::JSStyleSheetList::canGetItemsForName):
2339         (WebCore::JSStyleSheetList::nameGetter):
2340         * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
2341         (WebCore::constructWebKitCSSMatrix):
2342         * bindings/js/JSWebSocketConstructor.cpp:
2343         (WebCore::constructWebSocket):
2344         * bindings/js/JSWebSocketCustom.cpp:
2345         (WebCore::JSWebSocket::send):
2346         * bindings/js/JSWorkerConstructor.cpp:
2347         (WebCore::constructWorker):
2348         * bindings/js/JSWorkerContextCustom.cpp:
2349         (WebCore::JSWorkerContext::importScripts):
2350         * bindings/js/JSXMLHttpRequestCustom.cpp:
2351         (WebCore::JSXMLHttpRequest::open):
2352         (WebCore::JSXMLHttpRequest::setRequestHeader):
2353         (WebCore::JSXMLHttpRequest::send):
2354         (WebCore::JSXMLHttpRequest::overrideMimeType):
2355         * bindings/js/JSXSLTProcessorCustom.cpp:
2356         (WebCore::JSXSLTProcessor::setParameter):
2357         (WebCore::JSXSLTProcessor::getParameter):
2358         (WebCore::JSXSLTProcessor::removeParameter):
2359         * bindings/js/ScheduledAction.cpp:
2360         (WebCore::ScheduledAction::create):
2361         * bindings/js/ScriptCallFrame.cpp:
2362         (WebCore::ScriptCallFrame::ScriptCallFrame):
2363         * bindings/js/ScriptController.cpp:
2364         (WebCore::ScriptController::evaluateInWorld):
2365         * bindings/js/ScriptDebugServer.cpp:
2366         (WebCore::ScriptDebugServer::hasBreakpoint):
2367         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2368         (WebCore::ScriptDebugServer::dispatchFailedToParseSource):
2369         (WebCore::ScriptDebugServer::sourceParsed):
2370         * bindings/js/ScriptEventListener.cpp:
2371         (WebCore::getEventListenerHandlerBody):
2372         * bindings/js/ScriptFunctionCall.cpp:
2373         (WebCore::ScriptFunctionCall::appendArgument):
2374         (WebCore::ScriptFunctionCall::call):
2375         (WebCore::ScriptFunctionCall::construct):
2376         * bindings/js/ScriptObject.cpp:
2377         (WebCore::ScriptObject::set):
2378         * bindings/js/ScriptProfiler.cpp:
2379         (WebCore::ScriptProfiler::start):
2380         (WebCore::ScriptProfiler::stop):
2381         * bindings/js/ScriptString.h:
2382         (WebCore::ScriptString::operator String):
2383         (WebCore::ScriptString::ustring):
2384         (WebCore::ScriptString::operator+=):
2385         * bindings/js/ScriptValue.cpp:
2386         (WebCore::ScriptValue::getString):
2387         * bindings/js/ScriptValue.h:
2388         (WebCore::ScriptValue::toString):
2389         * bindings/js/SerializedScriptValue.cpp:
2390         (WebCore::SerializedObject::set):
2391         (WebCore::SerializingTreeWalker::convertIfTerminal):
2392         (WebCore::DeserializingTreeWalker::putProperty):
2393         * bindings/js/StringSourceProvider.h:
2394         (WebCore::StringSourceProvider::StringSourceProvider):
2395         * bindings/objc/WebScriptObject.mm:
2396         (-[WebScriptObject callWebScriptMethod:withArguments:]):
2397         (-[WebScriptObject setValue:forKey:]):
2398         (-[WebScriptObject valueForKey:]):
2399         (-[WebScriptObject removeWebScriptKey:]):
2400         * bindings/scripts/CodeGeneratorJS.pm:
2401         * bridge/IdentifierRep.cpp:
2402         (WebCore::IdentifierRep::get):
2403         * bridge/c/c_utility.cpp:
2404         (JSC::Bindings::identifierFromNPIdentifier):
2405         * inspector/InspectorController.cpp:
2406         (WebCore::InspectorController::scriptImported):
2407         (WebCore::InspectorController::addProfileFinishedMessageToConsole):
2408         (WebCore::InspectorController::createProfileHeader):
2409         * inspector/InspectorResource.cpp:
2410         (WebCore::InspectorResource::sourceString):
2411         * inspector/JavaScriptCallFrame.cpp:
2412         (WebCore::JavaScriptCallFrame::functionName):
2413         * platform/KURL.h:
2414         (WebCore::KURL::operator const String&):
2415         * platform/text/AtomicString.cpp:
2416         (WebCore::AtomicString::operator UString):
2417         * platform/text/AtomicString.h:
2418         * platform/text/PlatformString.h:
2419         * platform/text/String.cpp:
2420
2421 2010-04-16  Anders Carlsson  <andersca@apple.com>
2422
2423         Reviewed by David Hyatt.
2424
2425         Always pass a view to the AppKit drawing functions.
2426         https://bugs.webkit.org/show_bug.cgi?id=37724
2427
2428         * platform/mac/ThemeMac.mm:
2429         (WebCore::paintCheckbox):
2430         (WebCore::paintRadio):
2431         * rendering/RenderThemeMac.mm:
2432         (WebCore::RenderThemeMac::paintMenuList):
2433         (WebCore::RenderThemeMac::paintSliderThumb):
2434         (WebCore::RenderThemeMac::paintSearchField):
2435         (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
2436         (WebCore::RenderThemeMac::paintSearchFieldResultsDecoration):
2437         (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
2438
2439 2010-04-16  Alexey Proskuryakov  <ap@apple.com>
2440
2441         Reviewed by Dan Bernstein.
2442
2443         https://bugs.webkit.org/show_bug.cgi?id=37718
2444         Safari crashes with certain JavaScript charCode events in EventHandler::needsKeyboardEventDisambiguationQuirks
2445
2446         Test: fast/events/recorded-keydown-event.html
2447
2448         * dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::charCode): Check if the view (window) is
2449         frameless.
2450
2451 2010-04-16  Jian Li  <jianli@chromium.org>
2452
2453         Reviewed by Dmitry Titov.
2454
2455         Update FormDataList to fix style violations in old code.
2456         https://bugs.webkit.org/show_bug.cgi?id=37689
2457
2458         * html/FormDataList.h:
2459         (WebCore::FormDataList::appendData):
2460         (WebCore::FormDataList::appendBlob):
2461
2462 2010-04-16  Anders Carlsson  <andersca@apple.com>
2463
2464         Fix WebKit2 build.
2465
2466         * WebCore.base.exp:
2467
2468 2010-04-16  Jay Civelli  <jcivelli@chromium.org>
2469
2470         Reviewed by Dimitri Glazkov.
2471
2472         [chromium] Fix Mac build.
2473         https://bugs.webkit.org/show_bug.cgi?id=37436
2474
2475         * platform/chromium/PopupMenuChromium.h:
2476
2477 2010-04-16  Jay Civelli  <jcivelli@chromium.org>
2478
2479         Reviewed by Dimitri Glazkov.
2480
2481         [chromium] Select popups would assert when destroyed.
2482         https://bugs.webkit.org/show_bug.cgi?id=37436
2483
2484
2485         * platform/chromium/PopupMenuChromium.cpp:
2486         (WebCore::PopupContainer::PopupContainer):
2487         (WebCore::PopupContainer::showPopup):
2488         (WebCore::PopupContainer::notifyPopupHidden):
2489         * platform/chromium/PopupMenuChromium.h:
2490
2491 2010-04-16  Antonio Gomes  <tonikitoo@webkit.org>
2492
2493         Unreviewed QtWebKit (with Qt 4.7) build fix.
2494
2495         Bug 37683 moved code from FontQt.cpp to FontPlatformDataQt.cpp but did not
2496         renamed the variable used.
2497
2498         * platform/graphics/qt/FontPlatformDataQt.cpp:
2499         (WebCore::FontPlatformData::FontPlatformData):
2500
2501 2010-04-16  Noam Rosenthal  <noam.rosenthal@nokia.com>
2502
2503         Reviewed by Kenneth Rohde Christiansen.
2504
2505         Make GraphicsLayerQt always use ItemCoordinateCache, and remove ItemUsesExtendedStyleOption.
2506         This aligns our implementation with the Safari implementation - layers are always uploaded
2507         to textures in item units, and WebCore is responsible for the heuristics.
2508
2509         [Qt] GraphicsLayer: performance optimizations
2510         https://bugs.webkit.org/show_bug.cgi?id=35393
2511
2512         No new tests. Still no FPS benchmarks available (on any platform)
2513         but animations are noticably better.
2514
2515         * platform/graphics/qt/GraphicsLayerQt.cpp:
2516         (WebCore::GraphicsLayerQtImpl::GraphicsLayerQtImpl):
2517         (WebCore::GraphicsLayerQtImpl::paint):
2518         (WebCore::GraphicsLayerQtImpl::flushChanges):
2519         (WebCore::TransformAnimationQt::updateState):
2520
2521 2010-04-16  Simon Hausmann  <simon.hausmann@nokia.com>
2522
2523         Reviewed by Kenneth Rohde Christiansen.
2524
2525         [Qt] WebCore::Font::font() causes a QFont detach
2526         https://bugs.webkit.org/show_bug.cgi?id=37683
2527
2528         Moved the setStyleStrategy call to FontPlatformData
2529         to avoid the detach.
2530
2531         Thanks to Holger for spotting this.
2532
2533         * platform/graphics/qt/FontPlatformDataQt.cpp:
2534         (WebCore::FontPlatformData::FontPlatformData):
2535         * platform/graphics/qt/FontQt.cpp:
2536         (WebCore::Font::font):
2537
2538 2010-04-15  Matt Perry  <mpcomplete@chromium.org>
2539
2540         Reviewed by Adam Barth.
2541
2542         Remove the check for the main frame's scheme when deciding which
2543         v8 extensions to add to a script context. Instead, Chromium will
2544         handle that check elsewhere to allow finer-grained control over
2545         what APIs we expose to web pages.
2546         https://bugs.webkit.org/show_bug.cgi?id=37681
2547
2548         * bindings/v8/V8DOMWindowShell.cpp:
2549         (WebCore::V8DOMWindowShell::createNewContext):
2550
2551 2010-04-15  Luiz Agostini  <luiz.agostini@openbossa.org>
2552
2553         Reviewed by Antti Koivisto.
2554
2555         No default selection for <select multiple> menu lists.
2556         https://bugs.webkit.org/show_bug.cgi?id=37530
2557
2558         Manual test: manual-tests/no-listbox-rendering.html
2559
2560         For menu lists, if the selection is not indicated by the html file, the first <option> will be
2561         selected after loading the page or reseting the form. On the other hand listboxes may have no
2562         element selected after loading the page or reseting the form.
2563
2564         When NO_LISTBOX_RENDERING is enabled listboxes becomes menu lists. Those <select multiple>
2565         that did not have selected elements, now being menu lists, will have the first <option>
2566         selected. That is the behavior difference that this patch corrects.
2567
2568         When NO_LISTBOX_RENDERING is enabled usesMenuList() always returns true then usesMenuList() cannot
2569         be used to decide about initial selection of the elements. This patch replaces (usesMenuLists())
2570         by (!multiple && size <= 1) where initial selection is considered.
2571
2572         * dom/SelectElement.cpp:
2573         (WebCore::SelectElement::recalcListItems):
2574         (WebCore::SelectElement::reset):
2575         * manual-tests/no-listbox-rendering.html: Added.
2576
2577 2010-04-15  Zhenyao Mo  <zmo@google.com>
2578
2579         Reviewed by Dimitri Glazkov.
2580
2581         Index validation code validates too many vertex attributes
2582         https://bugs.webkit.org/show_bug.cgi?id=31892
2583
2584         * html/canvas/WebGLProgram.cpp:
2585         (WebCore::WebGLProgram::cacheActiveAttribLocations): Cache active attribute locations for a program at linkProgram time.
2586         (WebCore::WebGLProgram::getActiveAttribLocation): Get the cached attribute location.
2587         (WebCore::WebGLProgram::numActiveAttribLocations): Get the number of cached attribute locations.
2588         * html/canvas/WebGLProgram.h: Add attribute locations member.
2589         * html/canvas/WebGLRenderingContext.cpp:
2590         (WebCore::WebGLRenderingContext::validateRenderingState): Add logic not to validate those attributes that do not belong to the current program.
2591         (WebCore::WebGLRenderingContext::linkProgram): Call cacheActiveAttribLocations().
2592
2593 2010-04-16  Adam Roben  <aroben@apple.com>
2594
2595         Don't assert when soft-linked libraries can't be found
2596
2597         In some situations (e.g., when using SOFT_LINK_OPTIONAL), we expect soft-link libraries not
2598         to be able to be found in all cases. So we shouldn't assert that they're always found.
2599
2600         Reviewed by Sam Weinig.
2601
2602         * platform/win/SoftLinking.h:
2603         (SOFT_LINK): Don't assert when LoadLibrary fails.
2604
2605 2010-04-15  Dmitry Titov  <dimich@chromium.org>
2606
2607         Unreviewed, rolling out r57688.
2608         http://trac.webkit.org/changeset/57688
2609         https://bugs.webkit.org/show_bug.cgi?id=34992
2610
2611         Makes fast/workers/dedicated-worker-lifecycle.html crashing on all GTK bots
2612
2613         * bindings/js/JSWorkerContextCustom.cpp:
2614         * bindings/v8/custom/V8WorkerContextCustom.cpp:
2615         * storage/Database.idl:
2616         * storage/SQLError.idl:
2617         * storage/SQLResultSet.idl:
2618         * storage/SQLResultSetRowList.idl:
2619         * storage/SQLTransaction.idl:
2620         * workers/WorkerContext.cpp:
2621         (WebCore::WorkerContext::openDatabase):
2622         * workers/WorkerContext.h:
2623         (WebCore::WorkerContext::databaseExceededQuota):
2624         * workers/WorkerContext.idl:
2625
2626 2010-04-15  Yury Semikhatsky  <yurys@google.com>
2627
2628         Reviewed by Pavel Feldman.
2629     
2630         Support basic debugging capabilities including step in/over/out in v8
2631         implementation of ScriptDebugServer.
2632
2633         https://bugs.webkit.org/show_bug.cgi?id=37604
2634
2635         * bindings/js/JSInjectedScriptHostCustom.cpp:
2636         (WebCore::InjectedScriptHost::createInjectedScript):
2637         * bindings/v8/ScriptDebugServer.cpp:
2638         (WebCore::ScriptDebugServer::ScriptDebugServer):
2639         (WebCore::ScriptDebugServer::setDebuggerScriptSource):
2640         (WebCore::ScriptDebugServer::addListener):
2641         (WebCore::ScriptDebugServer::removeListener):
2642         (WebCore::ScriptDebugServer::setBreakpoint):
2643         (WebCore::ScriptDebugServer::removeBreakpoint):
2644         (WebCore::ScriptDebugServer::clearBreakpoints):
2645         (WebCore::ScriptDebugServer::setBreakpointsActivated):
2646         (WebCore::ScriptDebugServer::continueProgram):
2647         (WebCore::ScriptDebugServer::stepIntoStatement):
2648         (WebCore::ScriptDebugServer::stepOverStatement):
2649         (WebCore::ScriptDebugServer::stepOutOfFunction):
2650         (WebCore::ScriptDebugServer::currentCallFrameState):
2651         (WebCore::ScriptDebugServer::currentCallFrameV8):
2652         (WebCore::ScriptDebugServer::onV8DebugMessage):
2653         (WebCore::ScriptDebugServer::onV8DebugHostDispatch):
2654         (WebCore::ScriptDebugServer::handleV8DebugHostDispatch):
2655         (WebCore::ScriptDebugServer::handleV8DebugMessage):
2656         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2657         (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
2658         (WebCore::ScriptDebugServer::didResume):
2659         * bindings/v8/ScriptDebugServer.h:
2660         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
2661         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
2662         (WebCore::ScriptDebugServer::setMessageLoopDispatchHandler):
2663         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2664         (WebCore::InjectedScriptHost::createInjectedScript):
2665         (WebCore::V8InjectedScriptHost::currentCallFrameCallback):
2666         (WebCore::V8InjectedScriptHost::isActivationCallback):
2667         * inspector/front-end/InjectedScript.js:
2668         (injectedScriptConstructor):
2669         (injectedScriptConstructor.):
2670         * inspector/front-end/ScriptsPanel.js:
2671         (WebInspector.ScriptsPanel):
2672
2673 2010-04-15  Jian Li  <jianli@chromium.org>
2674
2675         Reviewed by Dmitry Titov.
2676
2677         Support using FormData to send a sliced file via XHR.
2678         https://bugs.webkit.org/show_bug.cgi?id=36678
2679
2680         Tests: http/tests/local/formdata/send-form-data-with-sliced-file.html
2681
2682         * html/Blob.h:
2683         (WebCore::Blob::isFile):
2684         * html/DOMFormData.cpp:
2685         (WebCore::DOMFormData::append):
2686         * html/File.h:
2687         (WebCore::File::isFile):
2688         * html/FormDataList.h:
2689         (WebCore::FormDataList::appendBlob):
2690         (WebCore::FormDataList::Item::Item):
2691         (WebCore::FormDataList::Item::blob):
2692         * html/HTMLInputElement.cpp:
2693         (WebCore::HTMLInputElement::appendFormData):
2694         * platform/network/FormData.cpp:
2695         (WebCore::FormData::appendDOMFormData):
2696         * platform/network/mac/FormDataStreamMac.mm:
2697         (WebCore::closeCurrentStream):
2698
2699 2010-04-15  Zhenyao Mo  <zmo@google.com>
2700
2701         Reviewed by Dimitri Glazkov.
2702
2703         Must enable GL_VERTEX_PROGRAM_POINT_SIZE during initialization
2704         https://bugs.webkit.org/show_bug.cgi?id=37178
2705
2706         Test: fast/canvas/webgl/point-size.html
2707
2708         * platform/graphics/mac/GraphicsContext3DMac.cpp: Enable GL_VERTEX_PROGRAM_POINT_SIZE during initialization.
2709         (WebCore::GraphicsContext3D::GraphicsContext3D):
2710
2711 2010-04-15  Eric Uhrhane  <ericu@chromium.org>
2712
2713         Reviewed by Dmitry Titov.
2714
2715         Add bindings for async DB API in Workers.
2716         https://bugs.webkit.org/show_bug.cgi?id=34992
2717
2718         Tests: storage/change-version-handle-reuse-worker.html
2719                storage/execute-sql-args-worker.html
2720
2721         * bindings/js/JSWorkerContextCustom.cpp: Add openDatabase binding.
2722         (WebCore::JSWorkerContext::openDatabase):
2723
2724         * bindings/v8/custom/V8WorkerContextCustom.cpp: Add openDatabase stub; Chromium will need work both in V8 and in the browser process before we can turn this on there.
2725         (WebCore::V8WorkerContext::openDatabaseCallback):
2726
2727         Add NoStaticTables flags to all objects now shared with workers.
2728         * storage/Database.idl:
2729         * storage/SQLError.idl:
2730         * storage/SQLResultSet.idl:
2731         * storage/SQLResultSetRowList.idl:
2732         * storage/SQLTransaction.idl:
2733         
2734         * workers/WorkerContext.h: Add databaseExceededQuota.
2735         * workers/WorkerContext.cpp:
2736         (WebCore::WorkerContext::databaseExceededQuota): Add stub implementation for testing; you just get 5MB for now.
2737         (WebCore::WorkerContext::openDatabase): Remove invalid assertion.
2738
2739         Add the IDL for the call to openDatabase.
2740         * workers/WorkerContext.idl:
2741
2742 2010-04-15  Nicolas Weber  <thakis@chromium.org>
2743
2744         Reviewed by Dimitri Glazkov.
2745
2746         Fix drag image thumbnails for indexed images.
2747         https://bugs.webkit.org/show_bug.cgi?id=37621
2748
2749         * platform/chromium/DragImageChromiumMac.cpp:
2750         (WebCore::scaleDragImage): Always use RGB color space.
2751         (WebCore::dissolveDragImageToFraction): Always use RGB color space.
2752
2753 2010-04-15  Adam Roben  <aroben@apple.com>
2754
2755         Expose UserContentURLPattern as WebKit SPI
2756
2757         Fixes <http://webkit.org/b/37354>.
2758
2759         Reviewed by Tim Hatcher.
2760
2761         * WebCore.base.exp: Export UserContentURLPattern::parse, and sorted
2762         the file.
2763
2764         * WebCore.xcodeproj/project.pbxproj: Marked UserContentURLPattern.h as
2765         "Private".
2766
2767         * page/UserContentURLPattern.h:
2768         (WebCore::UserContentURLPattern::UserContentURLPattern): Added a
2769         default constructor.
2770         (WebCore::UserContentURLPattern::isValid): Added this getter.
2771
2772 2010-04-15  Chris Fleizach  <cfleizach@apple.com>
2773
2774         Reviewed by Beth Dakin.
2775
2776         AXHelp is being appended from ancestors incorrectly
2777         https://bugs.webkit.org/show_bug.cgi?id=37659
2778
2779         Test: platform/mac/accessibility/unexpected-help-text.html
2780
2781         * accessibility/AccessibilityRenderObject.cpp:
2782         (WebCore::AccessibilityRenderObject::helpText):
2783
2784 2010-04-15  David Hyatt  <hyatt@apple.com>
2785
2786         Reviewed by Anders Carlsson.
2787
2788         https://bugs.webkit.org/show_bug.cgi?id=37669, REGRESSION: visited styles don't work right when only the visited path specifies
2789         a pseudoelement.
2790         
2791         Rework the pseudo cache on RenderStyles to support nesting, i.e., a pseudo hanging off a pseudo.  The existing model gets
2792         confused by this concept, since it relies on a singly linked list of chained pseudo styles (instead of a Vector owned by a primary
2793         style).  I changed the style cache to be a Vector instead.
2794         
2795         Reworked both styleForElement and pseudoStyleForElement to resolve visited styles first, since in the pseudoStyleForElement case
2796         you need to do this in order to know to allocate an unvisited pseudo style even if one shouldn't normally exist.
2797
2798         * css/CSSStyleSelector.cpp:
2799         (WebCore::CSSStyleSelector::styleForElement):
2800         (WebCore::CSSStyleSelector::pseudoStyleForElement):
2801         * dom/Element.cpp:
2802         (WebCore::Element::pseudoStyleCacheIsInvalid):
2803         * rendering/style/RenderStyle.cpp:
2804         (WebCore::RenderStyle::getCachedPseudoStyle):
2805         (WebCore::RenderStyle::addCachedPseudoStyle):
2806         * rendering/style/RenderStyle.h:
2807         (WebCore::):
2808         (WebCore::InheritedFlags::cachedPseudoStyles):
2809
2810 2010-04-15  Albert J. Wong  <ajwong@chromium.org>
2811
2812         Unreviewed, rolling out r57660.
2813         http://trac.webkit.org/changeset/57660
2814         https://bugs.webkit.org/show_bug.cgi?id=37604
2815
2816         Broke a large number of inspector layout tests in chromium.
2817
2818         * bindings/js/JSInjectedScriptHostCustom.cpp:
2819         (WebCore::InjectedScriptHost::createInjectedScript):
2820         * bindings/v8/ScriptDebugServer.cpp:
2821         * bindings/v8/ScriptDebugServer.h:
2822         (WebCore::ScriptDebugServer::addListener):
2823         (WebCore::ScriptDebugServer::removeListener):
2824         (WebCore::ScriptDebugServer::setBreakpoint):
2825         (WebCore::ScriptDebugServer::removeBreakpoint):
2826         (WebCore::ScriptDebugServer::clearBreakpoints):
2827         (WebCore::ScriptDebugServer::setBreakpointsActivated):
2828         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
2829         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
2830         (WebCore::ScriptDebugServer::continueProgram):
2831         (WebCore::ScriptDebugServer::stepIntoStatement):
2832         (WebCore::ScriptDebugServer::stepOverStatement):
2833         (WebCore::ScriptDebugServer::stepOutOfFunction):
2834         (WebCore::ScriptDebugServer::currentCallFrameState):
2835         (WebCore::ScriptDebugServer::ScriptDebugServer):
2836         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2837         (WebCore::InjectedScriptHost::createInjectedScript):
2838         (WebCore::V8InjectedScriptHost::currentCallFrameCallback):
2839         (WebCore::V8InjectedScriptHost::isActivationCallback):
2840         * inspector/front-end/InjectedScript.js:
2841         (injectedScriptConstructor):
2842         * inspector/front-end/ScriptsPanel.js:
2843         (WebInspector.ScriptsPanel):
2844
2845 2010-04-14  Dumitru Daniliuc  <dumi@chromium.org>
2846
2847         Reviewed by Dimitri Glazkov.
2848
2849         DatabaseTracker refactoring: remove the dependency on
2850         OriginQuotaManager from DatabaseTracker.h
2851         https://bugs.webkit.org/show_bug.cgi?id=31482
2852
2853         * storage/DatabaseTracker.cpp:
2854         (WebCore::DatabaseTracker::DatabaseTracker):
2855         (WebCore::DatabaseTracker::~DatabaseTracker):
2856         (WebCore::DatabaseTracker::canEstablishDatabase):
2857         (WebCore::DatabaseTracker::hasEntryForOrigin):
2858         (WebCore::DatabaseTracker::getMaxSizeForDatabase):
2859         (WebCore::DatabaseTracker::databaseChanged):
2860         (WebCore::DatabaseTracker::fullPathForDatabaseNoLock):
2861         (WebCore::DatabaseTracker::fullPathForDatabase):
2862         (WebCore::DatabaseTracker::populateOrigins):
2863         (WebCore::DatabaseTracker::origins):
2864         (WebCore::DatabaseTracker::databaseNamesForOrigin):
2865         (WebCore::DatabaseTracker::addOpenDatabase):
2866         (WebCore::DatabaseTracker::removeOpenDatabase):
2867         (WebCore::DatabaseTracker::usageForOriginNoLock):
2868         (WebCore::DatabaseTracker::usageForOrigin):
2869         (WebCore::DatabaseTracker::quotaForOrigin):
2870         (WebCore::DatabaseTracker::setQuota):
2871         (WebCore::DatabaseTracker::deleteOrigin):
2872         (WebCore::DatabaseTracker::deleteDatabase):
2873         (WebCore::DatabaseTracker::deleteDatabaseFile):
2874         * storage/DatabaseTracker.h:
2875         * storage/SQLTransactionClient.cpp:
2876         (WebCore::SQLTransactionClient::didExecuteStatement):
2877
2878 2010-04-15  Zhenyao Mo  <zmo@google.com>
2879
2880         Reviewed by Adam Barth.
2881
2882         Several tests in fast/canvas/webgl/ failed randomly on Leopard Commit Bot
2883         This fixes an uninitialized variable bug and restores a glFinish call that used to be present.
2884         https://bugs.webkit.org/show_bug.cgi?id=36908
2885
2886         * platform/graphics/mac/GraphicsContext3DMac.cpp:
2887         (WebCore::GraphicsContext3D::GraphicsContext3D): Initialize width/height to 0/0.
2888         (WebCore::GraphicsContext3D::prepareTexture): Restore glFinish() in every path.
2889
2890 2010-04-14  Antonio Gomes  <tonikitoo@webkit.org>
2891
2892         Reviewed by Simon Fraser.
2893
2894         Spatial Navigation: make hasOffscreenRect() to earlier return 'true' if absoluteClippedOverflowRect() gives an empty rect
2895         https://bugs.webkit.org/show_bug.cgi?id=37635
2896
2897         absoluteClippedOverflowRect method of RenderObject does return an empty IntRect for offscreen nodes.
2898         So hasOffscreenRect method (SpatialNavigation.cpp) can safily bail out earlier in such cases.
2899
2900         * page/SpatialNavigation.cpp:
2901         (WebCore::hasOffscreenRect):
2902
2903 2010-04-14  Antonio Gomes  <tonikitoo@webkit.org>
2904
2905         Reviewed by Simon Fraser.
2906
2907         Spatial Navigation: remove unnecessery assignment in updateFocusCandidateIfCloser method
2908         https://bugs.webkit.org/show_bug.cgi?id=37634
2909
2910         This assignment line is not longer needed after r57061, bug that refactored all
2911         assignment logic to happen lines below in the method.
2912
2913         * page/FocusController.cpp:
2914         (WebCore::updateFocusCandidateIfCloser):
2915
2916 2010-04-15  Yury Semikhatsky  <yurys@google.com>
2917
2918         Reviewed by Pavel Feldman.
2919     
2920         Support basic debugging capabilities including step in/over/out in v8
2921         implementation of ScriptDebugServer.
2922
2923         https://bugs.webkit.org/show_bug.cgi?id=37604
2924
2925         * bindings/js/JSInjectedScriptHostCustom.cpp:
2926         (WebCore::InjectedScriptHost::createInjectedScript):
2927         * bindings/v8/ScriptDebugServer.cpp:
2928         (WebCore::ScriptDebugServer::ScriptDebugServer):
2929         (WebCore::ScriptDebugServer::setDebuggerScriptSource):
2930         (WebCore::ScriptDebugServer::addListener):
2931         (WebCore::ScriptDebugServer::removeListener):
2932         (WebCore::ScriptDebugServer::setBreakpoint):
2933         (WebCore::ScriptDebugServer::removeBreakpoint):
2934         (WebCore::ScriptDebugServer::clearBreakpoints):
2935         (WebCore::ScriptDebugServer::setBreakpointsActivated):
2936         (WebCore::ScriptDebugServer::continueProgram):
2937         (WebCore::ScriptDebugServer::stepIntoStatement):
2938         (WebCore::ScriptDebugServer::stepOverStatement):
2939         (WebCore::ScriptDebugServer::stepOutOfFunction):
2940         (WebCore::ScriptDebugServer::currentCallFrameState):
2941         (WebCore::ScriptDebugServer::currentCallFrameV8):
2942         (WebCore::ScriptDebugServer::onV8DebugMessage):
2943         (WebCore::ScriptDebugServer::onV8DebugHostDispatch):
2944         (WebCore::ScriptDebugServer::handleV8DebugHostDispatch):
2945         (WebCore::ScriptDebugServer::handleV8DebugMessage):
2946         (WebCore::ScriptDebugServer::dispatchDidParseSource):
2947         (WebCore::ScriptDebugServer::ensureDebuggerScriptCompiled):
2948         (WebCore::ScriptDebugServer::didResume):
2949         * bindings/v8/ScriptDebugServer.h:
2950         (WebCore::ScriptDebugServer::pauseOnExceptionsState):
2951         (WebCore::ScriptDebugServer::setPauseOnExceptionsState):
2952         (WebCore::ScriptDebugServer::setMessageLoopDispatchHandler):
2953         * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
2954         (WebCore::InjectedScriptHost::createInjectedScript):
2955         (WebCore::V8InjectedScriptHost::currentCallFrameCallback):
2956         (WebCore::V8InjectedScriptHost::isActivationCallback):
2957         * inspector/front-end/InjectedScript.js:
2958         (injectedScriptConstructor):
2959         (injectedScriptConstructor.):
2960         * inspector/front-end/ScriptsPanel.js:
2961         (WebInspector.ScriptsPanel):
2962
2963 2010-04-15  Nikolas Zimmermann  <nzimmermann@rim.com>
2964
2965         Reviewed by Beth Dakin.
2966
2967         RenderSVGResource <-> id mapping should be cached
2968         https://bugs.webkit.org/show_bug.cgi?id=37575
2969
2970         Test: svg/custom/clip-path-id-changes.svg
2971
2972         * rendering/RenderSVGResource.h:
2973         (WebCore::RenderSVGResource::RenderSVGResource):
2974         (WebCore::RenderSVGResource::~RenderSVGResource):
2975         (WebCore::RenderSVGResource::idChanged):
2976         (WebCore::getRenderSVGResourceById):
2977         * svg/SVGDocumentExtensions.cpp:
2978         (WebCore::SVGDocumentExtensions::addResource):
2979         (WebCore::SVGDocumentExtensions::removeResource):
2980         (WebCore::SVGDocumentExtensions::resourceById):
2981         * svg/SVGDocumentExtensions.h:
2982         * svg/SVGStyledElement.cpp:
2983         (WebCore::SVGStyledElement::svgAttributeChanged):
2984
2985 2010-04-15  Justin Schuh  <jschuh@chromium.org>
2986
2987         Reviewed by Dimitri Glazkov.
2988
2989         LayoutTest breakage in V8 bindings after r57627
2990         https://bugs.webkit.org/show_bug.cgi?id=37660
2991
2992         Fixes breakage of the following tests due to an error in V8 bindings for
2993         NamedNodeMap:
2994         hc_namednodemapinuseattributeerr.html
2995         hc_namednodemapsetnameditemreturnvalue.html
2996         hc_namednodemapwrongdocumenterr.html
2997         hc_namednodemapinvalidtype1.html
2998         NamedNodeMap-setNamedItem-crash.html
2999
3000         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3001         (WebCore::V8NamedNodeMap::setNamedItemNSCallback):
3002         (WebCore::V8NamedNodeMap::setNamedItemCallback):
3003
3004 2010-04-15  David Hyatt  <hyatt@apple.com>
3005
3006         Reviewed by Anders Carlsson.
3007
3008         https://bugs.webkit.org/show_bug.cgi?id=37567, :first-letter inside a :visited link is wrong color.  Make sure
3009         that the pseudo style caching allows visited link styles to hang off other pseudo styles.
3010
3011         * rendering/RenderBlock.cpp:
3012         (WebCore::RenderBlock::updateFirstLetter):
3013         * rendering/style/RenderStyle.cpp:
3014         (WebCore::RenderStyle::getCachedPseudoStyle):
3015
3016 2010-04-15  Ben Murdoch  <benm@google.com>
3017
3018         Unreviewed, rolling out r57652.
3019         http://trac.webkit.org/changeset/57652
3020         https://bugs.webkit.org/show_bug.cgi?id=37609
3021
3022         Caused a build break on Chromium Mac and Layout Test fail on
3023         Qt
3024
3025         * platform/PlatformTouchPoint.h:
3026         (WebCore::PlatformTouchPoint::):
3027         * platform/qt/PlatformTouchPointQt.cpp:
3028         (WebCore::PlatformTouchPoint::PlatformTouchPoint):
3029
3030 2010-04-15  Yaar Schnitman  <yaar@chromium.org>
3031
3032         Reviewed by Nate Chapin.
3033
3034         Overloads auto-generation in V8
3035         https://bugs.webkit.org/show_bug.cgi?id=37373
3036
3037         This will be used by XHR.send/open, Canvas.*, WebGL.* methods that are currently custom. When more than a single overload exists for a method, the correct overload is chosen based on the total number of arguments passed as well as the values passed to non-primitive arguments.
3038
3039         Overload dispatch order depends on the order the functions are defined in the IDL. Overloads must be specified from the most precise (overloads with wrapper type arguments) to the least precise (overloads with only primitive type arguments).
3040
3041         * bindings/scripts/CodeGeneratorV8.pm: Identify and output overloads callbacks and dispatch code.
3042         * bindings/v8/test/TestObj.idl: Overloads sample.
3043         * bindings/v8/test/V8TestObj.cpp: Output change.
3044
3045 2010-04-15  Ben Murdoch  <benm@google.com>
3046
3047         Reviewed by Kenneth Rohde Christiansen.
3048
3049         The TouchStationary state of WebCore::PlatformTouchPoint
3050         is not handled inside the touch event handler.
3051         https://bugs.webkit.org/show_bug.cgi?id=37609
3052
3053         After discussions at the WebKit contributors meeting, we decided
3054         that this is a currently unused state without a good future use
3055         case in the Touch API and thus decided to remove it. This patch
3056         actions that decision.
3057
3058         As the TouchStationary state is not handled in the EventHandler,
3059         there is no change in functionality so no new tests are required.
3060
3061         * platform/PlatformTouchPoint.h:
3062         (WebCore::PlatformTouchPoint::): Remove TouchStationary.
3063         * platform/qt/PlatformTouchPointQt.cpp:
3064         (WebCore::PlatformTouchPoint::PlatformTouchPoint): Remove TouchStationary.
3065
3066 2010-04-15  Steve Falkenburg  <sfalken@apple.com>
3067
3068         Reviewed by Adam Roben.
3069
3070         Use a lower-overhead mechanism for plug-in message throttling
3071         https://bugs.webkit.org/show_bug.cgi?id=37642        
3072         <rdar://problem/7418285> Very high CPU usage idling in gmail under Windows 7 (plug-in related)
3073         
3074         GMail has an instance of Flash that loads on the main mail page.
3075         This Flash content sends us a constant stream of WM_USER+1 messsages.
3076         
3077         There was already code in PluginMessageThrottlerWin to queue and process these
3078         excess WM_USER+1 messages from Flash. Unfortunately, there were a couple of
3079         problems with this code:
3080         
3081         - The timer used to process the excess messages had a very low timeout (1ms).
3082           Chrome uses a value of 5ms for this delay, and doesn't use excess CPU here,
3083           while still maintaining good Flash frame rate.
3084         
3085         - The overhead involved in generating a constant stream of 5ms timers still swamped
3086           the CPU, resulting in continued high CPU utilization.
3087           
3088         To fix this, I changed the throttling code to:
3089         
3090         - Process a queued WM_USER+1 message directly if none has been processed in 5ms.
3091           This allows us to avoid the overhead of a timer.
3092           
3093         - Process remaining delayed WM_USER+1 messages on a 16ms timer.
3094         
3095         This reduces our CPU utilization idling in GMail from ~20% to ~2-3% on my system.
3096         I also verified the frame rate for Flash content wasn't reduced with this change.
3097
3098         * plugins/win/PluginMessageThrottlerWin.cpp:
3099         (WebCore::PluginMessageThrottlerWin::PluginMessageThrottlerWin): Initialize m_lastMessageTime.
3100         (WebCore::PluginMessageThrottlerWin::appendMessage): Process a queued message directly if >5ms have passed.
3101         (WebCore::PluginMessageThrottlerWin::processQueuedMessage): Split out from messageThrottleTimerFired.
3102         (WebCore::PluginMessageThrottlerWin::messageThrottleTimerFired): Call through to processQueuedMessage.
3103         * plugins/win/PluginMessageThrottlerWin.h: Add processQueuedMessage, m_lastMessageTime.
3104
3105 2010-04-15  Shinichiro Hamaji  <hamaji@chromium.org>
3106
3107         Reviewed by David Levin.
3108
3109         LEAK: in ThreadableWebSocketChannel::create()
3110         https://bugs.webkit.org/show_bug.cgi?id=37584
3111
3112         No new tests because this change just fixes a leak.
3113
3114         * websockets/WorkerThreadableWebSocketChannel.cpp:
3115         (WebCore::WorkerThreadableWebSocketChannel::WorkerThreadableWebSocketChannel):
3116         * websockets/WorkerThreadableWebSocketChannel.h:
3117         (WebCore::WorkerThreadableWebSocketChannel::Bridge::create):
3118
3119 2010-04-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3120
3121         Reviewed by Eric Seidel.
3122
3123         Duplicated patches related to wml were pushed to trunk. So, one of
3124         the patches should be reverted.
3125         https://bugs.webkit.org/show_bug.cgi?id=37542
3126
3127         * wml/WMLOptionElement.h:
3128         * wml/WMLSelectElement.h:
3129
3130 2010-04-15  Bruno Schmidt  <bruno.schmidt@gmail.com>
3131
3132         Reviewed by Kenneth Rohde Christiansen.
3133
3134         [Qt] Null QObjects properties cause Segmentation Fault
3135         https://bugs.webkit.org/show_bug.cgi?id=34730
3136
3137         QObjects exported to the QWebkit javascript with properties that are
3138         a null "QObject*" cause Segmentation Fault.
3139
3140         If an QObject is added to the javascript context and it contains
3141         properties of the type QObject* with NULL value, calling the property
3142         causes Segmentation Fault.
3143         So now the code below properly checks for null pointers:
3144
3145         * bridge/qt/qt_instance.cpp:
3146         (JSC::Bindings::QtInstance::getClass): may return NULL
3147         (JSC::Bindings::QtInstance::getMethod): may return jsNull()
3148         (JSC::Bindings::QtInstance::stringValue): may return jsNull()
3149         (JSC::Bindings::QtInstance::booleanValue): may return false
3150         * bridge/qt/qt_runtime.cpp:
3151         (JSC::Bindings::convertValueToQVariant): 
3152         (JSC::Bindings::convertQVariantToValue): May return jsNull on QObjectStar
3153
3154 2010-04-14  Simon Fraser  <simon.fraser@apple.com>
3155
3156         Reviewed by Dan Bernstein.
3157
3158         Repaint of fixed, transformed element is broken
3159         https://bugs.webkit.org/show_bug.cgi?id=37637
3160
3161         RenderBox::computeRectForRepaint() failed to set the 'fixed' flag correctly
3162         for elements that had both fixed position and a transform. If the element has
3163         a transform, 'fixed' should only remain true if the element itself is fixed
3164         position.
3165         
3166         Also cache style()->position() in a local variable for performance.
3167         
3168         Test: fast/repaint/fixed-tranformed.html
3169
3170         * rendering/RenderBox.cpp:
3171         (WebCore::RenderBox::computeRectForRepaint):
3172
3173 2010-04-14  Luiz Agostini  <luiz.agostini@openbossa.org>
3174
3175         Reviewed by Kenneth Rohde Christiansen.
3176
3177         Changing view mode names due to specification changes
3178         https://bugs.webkit.org/show_bug.cgi?id=37615
3179
3180         test: fast/media/media-feature-wgt-view-mode.html
3181
3182         specification: http://dev.w3.org/2006/waf/widgets-vmmf/
3183
3184         * css/MediaQueryEvaluator.cpp:
3185         (WebCore::view_modeMediaFeatureEval):
3186         * page/ChromeClient.h:
3187         (WebCore::ChromeClient::isWindowed):
3188         (WebCore::ChromeClient::isMaximized):
3189         (WebCore::ChromeClient::isMinimized):
3190
3191 2010-04-14  Adam Barth  <abarth@webkit.org>
3192
3193         Unreviewed attempt to fix Qt build.
3194
3195         * bindings/js/JSNodeCustom.cpp:
3196
3197 2010-04-14  Justin Schuh  <jschuh@chromium.org>
3198
3199         Reviewed by Adam Barth.
3200
3201         Javascript URL can be set as iframe.src via multiple DOM aliases
3202         https://bugs.webkit.org/show_bug.cgi?id=37031
3203
3204         Moved frame/iframe checks from Attr to Node on inherited members.
3205         Node child manipulation methods now return NOT_SUPPORTED_ERR if used
3206         on a frame/iframe src attribute.
3207         NamedNodeMap set methods now perform frame/iframe src checks.
3208         Moved allowSettingSrcToJavascriptURL static helper function from 
3209         JSElementCustom.cpp to exported function in JSDOMBinding.h.
3210
3211         * bindings/js/JSAttrCustom.cpp:
3212         (WebCore::JSAttr::setValue):
3213         * bindings/js/JSDOMBinding.cpp:
3214         (WebCore::allowSettingSrcToJavascriptURL):
3215         * bindings/js/JSDOMBinding.h:
3216         * bindings/js/JSElementCustom.cpp:
3217         * bindings/js/JSNamedNodeMapCustom.cpp:
3218         (WebCore::JSNamedNodeMap::setNamedItem):
3219         (WebCore::JSNamedNodeMap::setNamedItemNS):
3220         * bindings/js/JSNodeCustom.cpp:
3221         (WebCore::isAttrFrameSrc):
3222         (WebCore::JSNode::setNodeValue):
3223         (WebCore::JSNode::setTextContent):
3224         (WebCore::JSNode::insertBefore):
3225         (WebCore::JSNode::replaceChild):
3226         (WebCore::JSNode::removeChild):
3227         (WebCore::JSNode::appendChild):
3228         * bindings/v8/custom/V8AttrCustom.cpp:
3229         * bindings/v8/custom/V8NamedNodeMapCustom.cpp:
3230         (WebCore::V8NamedNodeMap::setNamedItemNSCallback):
3231         (WebCore::V8NamedNodeMap::setNamedItemCallback):
3232         (WebCore::toV8):
3233         * bindings/v8/custom/V8NodeCustom.cpp:
3234         (WebCore::isFrameSrc):
3235         (WebCore::V8Node::textContentAccessorSetter):
3236         (WebCore::V8Node::nodeValueAccessorSetter):
3237         (WebCore::V8Node::insertBeforeCallback):
3238         (WebCore::V8Node::replaceChildCallback):
3239         (WebCore::V8Node::removeChildCallback):
3240         (WebCore::V8Node::appendChildCallback):
3241         * dom/Attr.idl:
3242         * dom/NamedNodeMap.idl:
3243         * dom/Node.idl:
3244
3245 2010-04-14  Alejandro G. Castro  <alex@igalia.com>
3246
3247         Reviewed by Xan Lopez.
3248
3249         We have to check if the resource handler is cancelled before
3250         checking the client, other case it could crash.
3251
3252         * platform/network/soup/ResourceHandleSoup.cpp:
3253         (WebCore::parseDataUrl):
3254
3255 2010-04-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3256
3257         Unreviewed, rolling out r57609.
3258         http://trac.webkit.org/changeset/57609
3259         https://bugs.webkit.org/show_bug.cgi?id=37614
3260
3261         "Broke multiple builders.  Probably needs new test results,
3262         but may be an Inspector bug." (Requested by eseidel on
3263         #webkit).
3264
3265         * inspector/InspectorController.cpp:
3266         (WebCore::InspectorController::didReceiveResponse):
3267         (WebCore::InspectorController::didFailLoading):
3268         * inspector/front-end/Resource.js:
3269         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
3270         * inspector/front-end/ResourcesPanel.js:
3271         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
3272
3273 2010-04-14  Steve Falkenburg  <sfalken@apple.com>
3274
3275         Reviewed by Dan Bernstein.
3276
3277         Don't cache SimpleFontData* in getLastResortFallbackFont. The cached entry may be invalidated.
3278         https://bugs.webkit.org/show_bug.cgi?id=37599
3279
3280         * platform/graphics/win/FontCacheWin.cpp:
3281         (WebCore::fontDataFromDescriptionAndLogFont):
3282         (WebCore::FontCache::getLastResortFallbackFont):
3283
3284 2010-04-14  Andrey Kosyakov  <caseq@chromium.ru>
3285
3286         Reviewed by Timothy Hatcher.
3287
3288         Log error message to inspector console if a resource fails to load.
3289         Disable checking of mime-type consistency for failed resources.
3290         https://bugs.webkit.org/show_bug.cgi?id=37215
3291
3292         Test: inspector/console-resource-errors.html
3293
3294         * inspector/InspectorController.cpp:
3295         (WebCore::InspectorController::didReceiveResponse):
3296         (WebCore::InspectorController::didFailLoading):
3297         * inspector/front-end/Resource.js:
3298         (WebInspector.Resource.prototype._mimeTypeIsConsistentWithType):
3299         * inspector/front-end/ResourcesPanel.js:
3300         (WebInspector.ResourcesPanel.prototype.recreateViewForResourceIfNeeded):
3301
3302 2010-04-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3303
3304         Unreviewed, rolling out r57599.
3305         http://trac.webkit.org/changeset/57599
3306         https://bugs.webkit.org/show_bug.cgi?id=37605
3307
3308         "Broke Chromium build" (Requested by dglazkov on #webkit).
3309
3310         * platform/chromium/PopupMenuChromium.cpp:
3311         (WebCore::PopupContainer::PopupContainer):
3312         (WebCore::PopupContainer::showPopup):
3313         (WebCore::PopupContainer::notifyPopupHidden):
3314         * platform/chromium/PopupMenuChromium.h:
3315
3316 2010-04-14  Aaron Boodman  <aa@chromium.org>
3317
3318         Reviewed by David Levin.
3319
3320         Support relative URLs for notifications on Chromium. They weren't working previously because WebCore was inserting
3321         the relative URL into a KURL instance, but when KURL is backed by GURL as it is on Chromium, relative URLs are
3322         unsupported. Fixed by resolving the relative URL first.
3323
3324         https://bugs.webkit.org/show_bug.cgi?id=36623
3325
3326         Adding tests for this is difficult because we don't currently have DRT support for notifications on Mac, only Windows.
3327
3328         * notifications/Notification.cpp:
3329         (WebCore::Notification::Notification): Accept resolved KURL instead of relative string.
3330         * notifications/Notification.h:
3331         (WebCore::Notification::create): Ditto.
3332         (WebCore::Notification::iconURL): Return resolved KURL instead of relative string.
3333         * notifications/NotificationCenter.h:
3334         (WebCore::NotificationCenter::createHTMLNotification): Immediately resolve URL instead of passing off relative string.
3335         (WebCore::NotificationCenter::createNotification): Ditto.
3336         * notifications/NotificationContents.h:
3337         (WebCore::NotificationContents::NotificationContents): Accept resolved KURL instead of relative string.
3338         (WebCore::NotificationContents::icon): Return resolved URL.
3339
3340 2010-04-14  Anders Carlsson  <andersca@apple.com>
3341
3342         Reviewed by Sam Weinig.
3343
3344         Add ThemeMac::ensuredView and get rid of a workaround in ThemeMac::paintButton.
3345         https://bugs.webkit.org/show_bug.cgi?id=37601
3346
3347         * platform/mac/ThemeMac.h:
3348         * platform/mac/ThemeMac.mm:
3349         (-[WebCoreFlippedView isFlipped]):
3350         (WebCore::paintButton):
3351         (WebCore::ThemeMac::ensuredView):
3352
3353 2010-04-14  Jay Civelli  <jcivelli@chromium.org>
3354  
3355         Reviewed by Dimitri Glazkov.
3356
3357         [chromium] Select popups would assert when destroyed.
3358         https://bugs.webkit.org/show_bug.cgi?id=37436
3359  
3360         * platform/chromium/PopupMenuChromium.cpp:
3361         (WebCore::PopupContainer::PopupContainer):
3362         (WebCore::PopupContainer::showPopup):
3363         (WebCore::PopupContainer::notifyPopupHidden):
3364         * platform/chromium/PopupMenuChromium.h:
3365  
3366
3367 2010-04-14  Dumitru Daniliuc  <dumi@chromium.org>
3368
3369         Reviewed by Jian Li.
3370
3371         Remove an incorrect ASSERT in UniscribeHelper::draw().
3372         https://bugs.webkit.org/show_bug.cgi?id=37533
3373
3374         * platform/graphics/chromium/UniscribeHelper.cpp:
3375         (WebCore::UniscribeHelper::draw):
3376
3377 2010-04-14  Pavel Feldman  <pfeldman@chromium.org>
3378
3379         Reviewed by Timothy Hatcher.
3380
3381         Web Inspector: readline shortcuts don't work in Chromium.
3382
3383         * inspector/front-end/TextPrompt.js:
3384         (WebInspector.TextPrompt.prototype._onKeyDown):
3385         (WebInspector.TextPrompt.prototype._moveCaretToStartOfPrompt):
3386
3387 2010-04-14  Alexander Pavlov  <apavlov@chromium.org>
3388
3389         Reviewed by Timothy Hatcher.
3390
3391         Web Inspector: Console: Shift-Tab does not cycle autocompletions in the reverse order
3392         https://bugs.webkit.org/show_bug.cgi?id=37582
3393
3394         * inspector/front-end/TextPrompt.js:
3395         (WebInspector.TextPrompt.prototype.complete):
3396         (WebInspector.TextPrompt.prototype._completionsReady):
3397         (WebInspector.TextPrompt.prototype._tabKeyPressed):
3398
3399 2010-04-14  Jeff Schiller  <codedread@gmail.com>
3400
3401         Reviewed by Dirk Schulze.
3402
3403         Render SVG Paths up to first error, bug 37413: https://bugs.webkit.org/show_bug.cgi?id=37413
3404
3405         * svg/SVGParserUtilities.cpp:
3406         (WebCore::SVGPathSegListBuilder::build):
3407
3408 2010-04-14  Alexander Pavlov  <apavlov@chromium.org>
3409
3410         Reviewed by Joseph Pecoraro.
3411
3412         Web Inspector: Ctrl-L (Clear History) does nothing on Windows
3413         https://bugs.webkit.org/show_bug.cgi?id=37579
3414
3415         * inspector/front-end/ConsoleView.js:
3416         (WebInspector.ConsoleView):
3417
3418 2010-04-14  Anton Muhin  <antonm@chromium.org>
3419
3420         Not review, build fix.
3421
3422         Add <limits.h> include to bring UINT_MAX.
3423
3424         * html/canvas/WebGLArray.h:
3425
3426 2010-04-14  Nikolas Zimmermann  <nzimmermann@rim.com>
3427
3428         Not reviewed. Attempt to unbreak build - NodeRenderStyle.h is an _interessting_ concept...
3429
3430         * rendering/style/SVGRenderStyle.cpp: Include 'NodeRenderStyle.h'
3431
3432 2010-04-14  Nikolas Zimmermann  <nzimmermann@rim.com>
3433
3434         Reviewed by Dirk Schulze.
3435
3436         SVGRenderStyle/SVGRenderStyleDefs needs a cleanup
3437         https://bugs.webkit.org/show_bug.cgi?id=37568
3438
3439         Cleanup SVGRenderStyle / SVGRenderStyleDefs:
3440         - use copy constructors in initialization list to initialize members, instead of assignment operators in the body
3441         - fix style issues (misplaced references, abbrevations)
3442         - merge StyleClipData/StyleMaskData to save memory, rename it StyleResourceData
3443         - move filter property in StyleResourceData
3444         - rename StyleMarkerData to StyleInheritedResourceData to highlight the difference to StyleResourceData
3445         - unify naming schemes for all resources (filter/clipper/masker/markers)
3446           - clipPath() -> clipperResource()
3447           - maskElement() -> maskerResource()
3448           - startMarker() -> markerStartResource()
3449           - midMarker() -> markerMidResource()
3450           - endMarker() -> markerEndResource()
3451           - filter() -> filterResource()
3452
3453         Adapt all callsites to the renames above.
3454         No new tests, as this doesn't affect anything except memory overhead.
3455
3456         * css/SVGCSSComputedStyleDeclaration.cpp:
3457         (WebCore::CSSComputedStyleDeclaration::getSVGPropertyCSSValue):
3458         * css/SVGCSSStyleSelector.cpp:
3459         (WebCore::CSSStyleSelector::applySVGProperty):
3460         * rendering/RenderPath.cpp:
3461         (WebCore::RenderPath::calculateMarkerBoundsIfNeeded):
3462         * rendering/RenderSVGContainer.cpp:
3463         (WebCore::RenderSVGContainer::selfWillPaint):
3464         * rendering/RenderSVGRoot.cpp:
3465         (WebCore::RenderSVGRoot::selfWillPaint):
3466         * rendering/SVGRenderSupport.cpp:
3467         (WebCore::SVGRenderBase::prepareToRenderSVGContent):
3468         (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
3469         (WebCore::SVGRenderBase::clipperBoundingBoxForRenderer):
3470         (WebCore::SVGRenderBase::maskerBoundingBoxForRenderer):
3471         (WebCore::deregisterFromResources):
3472         * rendering/SVGRenderTreeAsText.cpp:
3473         (WebCore::writeStyle):
3474         (WebCore::writeResources):
3475         * rendering/style/SVGRenderStyle.cpp:
3476         (WebCore::SVGRenderStyle::SVGRenderStyle):
3477         (WebCore::SVGRenderStyle::operator==):
3478         (WebCore::SVGRenderStyle::inheritedNotEqual):
3479         (WebCore::SVGRenderStyle::inheritFrom):
3480         * rendering/style/SVGRenderStyle.h:
3481         * rendering/style/SVGRenderStyleDefs.cpp:
3482         (WebCore::StyleFillData::StyleFillData):
3483         (WebCore::StyleFillData::operator==):
3484         (WebCore::StyleStrokeData::StyleStrokeData):
3485         (WebCore::StyleStrokeData::operator==):
3486         (WebCore::StyleStopData::StyleStopData):
3487         (WebCore::StyleStopData::operator==):
3488         (WebCore::StyleTextData::StyleTextData):
3489         (WebCore::StyleMiscData::StyleMiscData):
3490         (WebCore::StyleMiscData::operator==):
3491         (WebCore::StyleShadowSVGData::StyleShadowSVGData):
3492         (WebCore::StyleShadowSVGData::operator==):
3493         (WebCore::StyleResourceData::StyleResourceData):
3494         (WebCore::StyleResourceData::operator==):
3495         (WebCore::StyleInheritedResourceData::StyleInheritedResourceData):
3496         (WebCore::StyleInheritedResourceData::operator==):
3497         * rendering/style/SVGRenderStyleDefs.h:
3498         (WebCore::StyleFillData::operator!=):
3499         (WebCore::StyleStopData::operator!=):
3500         (WebCore::StyleMiscData::create):
3501         (WebCore::StyleMiscData::copy):
3502         (WebCore::StyleMiscData::operator!=):
3503         (WebCore::StyleShadowSVGData::create):
3504         (WebCore::StyleShadowSVGData::copy):
3505         (WebCore::StyleShadowSVGData::operator!=):
3506         (WebCore::StyleResourceData::create):
3507         (WebCore::StyleResourceData::copy):
3508         (WebCore::StyleResourceData::operator!=):
3509         (WebCore::StyleInheritedResourceData::create):
3510         (WebCore::StyleInheritedResourceData::copy):
3511         (WebCore::StyleInheritedResourceData::operator!=):
3512         * svg/SVGDocumentExtensions.cpp:
3513         (WebCore::SVGDocumentExtensions::addResource):
3514         (WebCore::SVGDocumentExtensions::removeResource):
3515         * svg/SVGDocumentExtensions.h:
3516         * svg/SVGStyledElement.cpp:
3517         (WebCore::SVGStyledElement::invalidateResources):
3518
3519 2010-04-14  Zhenyao Mo  <zmo@google.com>
3520
3521         Reviewed by Dimitri Glazkov.
3522
3523         readPixels must take PACK_ALIGNMENT into account
3524         https://bugs.webkit.org/show_bug.cgi?id=34718
3525
3526         Test: fast/canvas/webgl/read-pixels.html
3527
3528         * html/canvas/WebGLRenderingContext.cpp:
3529         (WebCore::WebGLRenderingContext::WebGLRenderingContext): Init members to support pack_alignment.
3530         (WebCore::WebGLRenderingContext::pixelStorei): Save pack/unpack_alignment.
3531         (WebCore::WebGLRenderingContext::readPixels): Validate enum and deal with pack_alignment.
3532         * html/canvas/WebGLRenderingContext.h: Add members to support pack_alignment.
3533         * platform/graphics/GraphicsContext3D.h: Refactor readPixels.
3534         * platform/graphics/mac/GraphicsContext3DMac.cpp:
3535         (WebCore::GraphicsContext3D::readPixels): Move array allocation and alpha fix to WebGLRenderingContext; flush before read pixels.
3536
3537 2010-04-13  Dirk Schulze  <krit@webkit.org>
3538
3539         Reviewed by Eric Seidel.
3540
3541         REGRESSION(r57511): many new graphics / svg related leaks
3542         https://bugs.webkit.org/show_bug.cgi?id=37527
3543
3544         The content of a HashMap was not correctly deleted. Fixed this
3545         in the DTor and in invalidateClient of RenderSVGResourceClipper.
3546
3547         * rendering/RenderSVGResourceClipper.cpp:
3548         (WebCore::RenderSVGResourceClipper::~RenderSVGResourceClipper):
3549         (WebCore::RenderSVGResourceClipper::invalidateClient):
3550
3551 2010-04-13  Zhenyao Mo  <zmo@google.com>
3552
3553         Reviewed by Oliver Hunt.
3554
3555         Fix a potential integer overflow in WebGL*Array::slice()
3556         https://bugs.webkit.org/show_bug.cgi?id=37466
3557
3558         * html/canvas/WebGLArray.h:
3559         (WebCore::WebGLArray::clampOffsetAndNumElements): Input parameter "offset"'s semantic changed from in bytes from buffer to in elements from array view; calculate offset in bytes from buffer inside the function, avoiding overflow. 
3560         * html/canvas/WebGLByteArray.cpp:
3561         (WebCore::WebGLByteArray::slice): Changed according to new semantic of WebCore::WebGLArray::clampOffsetAndNumElements.
3562         * html/canvas/WebGLFloatArray.cpp:
3563         (WebCore::WebGLFloatArray::slice): Ditto.
3564         * html/canvas/WebGLIntArray.cpp:
3565         (WebCore::WebGLIntArray::slice): Ditto.
3566         * html/canvas/WebGLShortArray.cpp:
3567         (WebCore::WebGLShortArray::slice): Ditto.
3568         * html/canvas/WebGLUnsignedByteArray.cpp:
3569         (WebCore::WebGLUnsignedByteArray::slice): Ditto.
3570         * html/canvas/WebGLUnsignedIntArray.cpp:
3571         (WebCore::WebGLUnsignedIntArray::slice): Ditto.
3572         * html/canvas/WebGLUnsignedShortArray.cpp:
3573         (WebCore::WebGLUnsignedShortArray::slice): Ditto.
3574
3575 2010-04-13  Darin Fisher  <darin@chromium.org>
3576
3577         Reviewed by Brady Eidson.
3578
3579         If the browsing context's session history contains only one Document,
3580 &nb