164a668d3ca8ee987b427fd0b5f96558c2f0fa45
[WebKit-https.git] / WebCore / ChangeLog
1 2009-06-25  Nate Chapin  <japhet@chromium.org>
2
3         Reviewed by Dimitri Glazkov.
4
5         Upstream V8Index.
6
7         https://bugs.webkit.org/show_bug.cgi?id=26495
8
9         * bindings/v8/V8Index.cpp: Added.
10         (WebCore::V8ClassIndex::GetFactory): Moved from src.chromium.org.
11         (WebCore::V8ClassIndex::GetCache): Moved from src.chromium.org.
12         * bindings/v8/V8Index.h:
13         (WebCore::V8ClassIndex::): Moved from src.chromium.org.
14         (WebCore::V8ClassIndex::ToInt): Moved from src.chromium.org.
15         (WebCore::V8ClassIndex::FromInt): Moved from src.chromium.org.
16
17 2009-06-25  Adam Langley  <agl@google.com>
18
19         Reviewed by Darin Fisher.
20
21         https://bugs.webkit.org/show_bug.cgi?id=26529
22
23         This is hopefully the last step before our renderers can run
24         cleanly in a chroot.
25
26         WebKit needs to be able to ask for the correct font to use in
27         the case that the current font doesn't include glyphs for
28         certain code points. Currently we make a fontconfig call in our
29         WebKit port to handle this.
30
31         This patch changes this so that the call is sent our via
32         ChromiumBridge.
33
34         http://codereview.chromium.org/132007
35
36         This should not affect any layout tests.
37
38         * platform/chromium/ChromiumBridge.h:
39         * platform/graphics/chromium/FontCacheLinux.cpp:
40         (WebCore::FontCache::getFontDataForCharacters):
41
42 2009-06-25  Albert J. Wong  <ajwong@chromium.org>
43
44         Reviewed by David Levin.
45
46         https://bugs.webkit.org/show_bug.cgi?id=26566
47         Upstream these files from the chromium v8 code.  No tests were
48         affected because this is essentially a code move.
49
50         * bindings/v8/NPV8Object.cpp: Added.
51         (allocV8NPObject):
52         (freeV8NPObject):
53         (listFromVariantArgs):
54         (npIdentifierToV8Identifier):
55         (npCreateV8ScriptObject):
56         (NPN_Invoke):
57         (NPN_InvokeDefault):
58         (NPN_Evaluate):
59         (NPN_EvaluateHelper):
60         (NPN_GetProperty):
61         (NPN_SetProperty):
62         (NPN_RemoveProperty):
63         (NPN_HasProperty):
64         (NPN_HasMethod):
65         (NPN_SetException):
66         (NPN_Enumerate):
67         (NPN_Construct):
68         * bindings/v8/NPV8Object.h: Added.
69         (PrivateIdentifier::):
70         * bindings/v8/V8NPUtils.cpp: Added.
71         (convertV8ObjectToNPVariant):
72         (convertNPVariantToV8Object):
73         (getStringIdentifier):
74         * bindings/v8/V8NPUtils.h: Added.
75
76 2009-06-25  Shinichiro Hamaji  <hamaji@chromium.org>
77
78         Reviewed by Dimitri Glazkov.
79
80         https://bugs.webkit.org/show_bug.cgi?id=26436
81
82         Windows Chromium bug fix: save context of destination canvas in
83         TransparencyWin::compositeTextComposite() before the function
84         modifies the context.
85
86         Test: fast/canvas/translate-text.html
87
88         * platform/graphics/chromium/TransparencyWin.cpp:
89         (WebCore::TransparencyWin::compositeTextComposite):
90
91 2009-06-25  Patrick Mueller  <Patrick_Mueller@us.ibm.com>
92
93         Reviewed by Timothy Hatcher.
94
95         Show the filename and first line for "(program)" in the Profiler/Debugger
96         https://bugs.webkit.org/show_bug.cgi?id=25475
97
98         Add support to associate a sourceURL with an eval()'d string
99         via a @sourceURL comment.  Currently the sourceURL is only available
100         in the script debugger, not in the console or profiler, but it's
101         most needed in the script debugger.
102
103         * English.lproj/localizedStrings.js: added new "(program): %s" string
104         * inspector/front-end/Script.js:
105         (WebInspector.Script): if no sourceURL is available for the Script,
106         search for a comment of the form //@ sourceURL=(url) to use
107         as the sourceURL instead.
108         * manual-tests/inspector/named-evals.html: Added.
109
110 2009-06-25  John Gregg  <johnnyg@google.com>
111
112         Reviewed by Sam Weinig.
113
114         Bug 23721: Changing dropdown's selectedIndex within onchange handler fires another onchange
115         https://bugs.webkit.org/show_bug.cgi?id=23721
116
117         onchange events fire when a SELECT element has
118         focus and the selectedIndex is updated by script in some way--either
119         during another onchange, onkeypress, onfocus, or timer--and then
120         focus is lost. 
121
122         Fixed by making a separate method for user-driven selectedIndex 
123         changes, leaving scripts to use one which doesn't cause onchange to
124         be queued.
125         
126         Test: fast/forms/select-script-onchange.html
127
128         * dom/SelectElement.cpp: check if the pending change is user driven
129         before calling onchange
130         (WebCore::SelectElement::menuListOnChange):
131         (WebCore::SelectElement::setSelectedIndex):
132         * dom/SelectElement.h: store whether the pending change is user driven
133         (WebCore::SelectElementData::userDrivenChange):
134         (WebCore::SelectElementData::setUserDrivenChange):
135         * html/HTMLSelectElement.cpp: split into two methods -- script version
136         [non-user-driven] corresponds to IDL defined property name
137         (WebCore::HTMLSelectElement::setSelectedIndex):
138         (WebCore::HTMLSelectElement::setSelectedIndexByUser):
139         * html/HTMLSelectElement.h: 
140         * rendering/RenderMenuList.cpp: use ByUser method when coming through
141         the renderer
142         (WebCore::RenderMenuList::valueChanged):
143
144 2009-06-25  Jeremy Orlow  <jorlow@chromium.org>
145
146         Reviewed by Darin Fisher.
147
148         https://bugs.webkit.org/show_bug.cgi?id=26698
149
150         Combined LocalStorageArea and SessionStorageArea into StorageArea since
151         (after my other refactorings) there are no longer substantial
152         differences between the two.
153
154         * GNUmakefile.am:
155         * WebCore.vcproj/WebCore.vcproj:
156         * WebCore.xcodeproj/project.pbxproj:
157         * WebCoreSources.bkl:
158         * storage/LocalStorage.cpp:
159         (WebCore::LocalStorage::storageArea):
160         * storage/LocalStorage.h:
161         * storage/LocalStorageArea.cpp: Removed.
162         * storage/LocalStorageArea.h: Removed.
163         * storage/SessionStorage.cpp:
164         (WebCore::SessionStorage::copy):
165         (WebCore::SessionStorage::storageArea):
166         * storage/SessionStorage.h:
167         * storage/SessionStorageArea.cpp: Removed.
168         * storage/SessionStorageArea.h: Removed.
169         * storage/StorageArea.cpp:
170         (WebCore::StorageArea::createLocalStorage):
171         (WebCore::StorageArea::StorageArea):
172         (WebCore::StorageArea::createSessionStorage):
173         (WebCore::StorageArea::copy):
174         (WebCore::StorageArea::setItem):
175         (WebCore::StorageArea::removeItem):
176         (WebCore::StorageArea::clear):
177         (WebCore::StorageArea::scheduleFinalSync):
178         (WebCore::StorageArea::blockUntilImportComplete):
179         (WebCore::StorageArea::dispatchStorageEvent):
180         * storage/StorageArea.h:
181         * storage/StorageAreaSync.cpp:
182         (WebCore::StorageAreaSync::StorageAreaSync):
183         (WebCore::StorageAreaSync::scheduleFinalSync):
184         (WebCore::StorageAreaSync::syncTimerFired):
185         (WebCore::StorageAreaSync::performImport):
186         * storage/StorageAreaSync.h:
187         * storage/StorageSyncManager.h:
188
189 2009-06-25  Dan Bernstein  <mitz@apple.com>
190
191         Reviewed by Darin Adler.
192
193         - fix https://bugs.webkit.org/show_bug.cgi?id=26671
194           <rdar://problem/7001880> Safari 4.0 crashes in
195           WebCore::DOMTimer::fired()
196
197         Test: fast/dom/style-sheet-candidate-remove-unrendered-document.html
198
199         When a "style sheet candidate" element is removed from a document,
200         call Document::removeStyleSheetCandidateNode() regardless of whether
201         the document is rendered. Otherwise, the document's style sheet
202         candidate set can end up containing stale references.
203
204         * dom/ProcessingInstruction.cpp:
205         (WebCore::ProcessingInstruction::removedFromDocument):
206         * html/HTMLLinkElement.cpp:
207         (WebCore::HTMLLinkElement::removedFromDocument):
208         * html/HTMLStyleElement.cpp:
209         (WebCore::HTMLStyleElement::removedFromDocument):
210
211 2009-06-25  Dimitri Glazkov  <dglazkov@chromium.org>
212
213         Reviewed by Darin Fisher.
214
215         Update CodeGeneratorV8.pm to sync up with the changes downstream.
216
217         * bindings/scripts/CodeGeneratorV8.pm: Added HTMLFrameSetElement check,
218           FileList as a ref-counted type, and DataGridColumn as typeCanFailConversion.
219
220 2009-06-25  Dimitri Glazkov  <dglazkov@chromium.org>
221
222         Unreviewed, build fix.
223
224         Add FileList.h include to fix Chromium build.
225
226         * platform/chromium/ClipboardChromium.cpp: Added FileList.h include.
227
228 2009-06-25  Joseph Pecoraro  <joepeck02@gmail.com>
229
230         Reviewed by Jan Alonzo.
231
232         Bug 26489: Web Inspector: Typo in DatabaseQuery Error Message
233         https://bugs.webkit.org/show_bug.cgi?id=26489
234
235         Fixed a Typo in a Web Inspector error message.
236
237         * English.lproj/localizedStrings.js:
238         * inspector/front-end/DatabaseQueryView.js:
239         (WebInspector.DatabaseQueryView.prototype._queryError):
240
241 2009-06-25  Simon Hausmann  <simon.hausmann@nokia.com>
242
243         Fix the Qt build, add missing StorageAreaSync files to the build.
244
245         * WebCore.pro:
246
247 2009-06-25  Simon Hausmann  <simon.hausmann@nokia.com>
248
249         Reviewed by and done with Tor Arne Vestbø.
250
251         Fix shortcut keyboard handling with plugins on the Qt/Mac build.
252
253         When we receive shortcut events like Ctrl+V then the text in the QKeyEvent is
254         empty. If we're asked to disambiguate the event into a Char keyboard event,
255         we try to detect this situation and still set the text, to ensure that the
256         general event handling sends a key press event after this disambiguation.
257
258         * platform/qt/PlatformKeyboardEventQt.cpp:
259         (WebCore::PlatformKeyboardEvent::disambiguateKeyDownEvent):
260
261 2009-06-25  Eric Seidel  <eric@webkit.org>
262
263         Build fix only, no review.
264
265         Add FileList.h and NotImplemented.h includes in an attempt to fix bots.
266
267         * platform/gtk/ClipboardGtk.cpp:
268         * platform/qt/ClipboardQt.cpp:
269         * platform/win/ClipboardWin.cpp:
270         * platform/wx/ClipboardWx.cpp:
271
272 2009-05-21  Eric Seidel  <eric@webkit.org>
273
274         Reviewed by Maciej Stachowiak.
275
276         Expose files in the clipboard in ondrop events
277         https://bugs.webkit.org/show_bug.cgi?id=25916
278
279         Make it possible for applications like gmail to implement
280         drag and drop of attachments onto email messages.
281
282         This patch exposes an event.dataTransfer.files accessor
283         on the drop event.  No information is exposed during dragover.
284         This follows the HTML 5 drag and drop security model:
285         http://www.w3.org/TR/html5/editing.html#security-risks-in-the-drag-and-drop-model
286         The test http/tests/security/clipboard/clipboard-file-access.html
287         verifies this behavior.
288
289         Internet Explorer shows historical documentation of supporting
290         getData('File') as a way of exposing files on the pasteboard.  The current version of their docs:
291         http://msdn.microsoft.com/en-us/library/ms537658(VS.85).aspx
292         has removed this reference (as far as I can tell IE never implemented it)
293         I have a printed copy of that URL from 2008 on my desk describing getData('File') in IE.
294         IE does not follow the HTML5 clipboard security model and always allows access to the full clipboard, even on dragover.
295
296         I choose not to use IE's getData('File') and instead added .files
297         so that the accessor could have a type, matching WebKit's existing
298         .files accessor on HTMLInputElement.
299
300         Mozilla has equivalent file access:
301         event.dataTransfer.mozGetDataAt("application/x-moz-file", 0);
302         which also does not return a typed value.
303         https://developer.mozilla.org/En/DragDrop/Recommended_Drag_Types#Dragging_Files
304
305         This is only implemented for Mac WebKit.  All other platforms (including Apple's Win WebKit)
306         have incomplete Clipboard implementations and will require experts from those platforms
307         to add this functionality.  Right now they all have Clipboard*::files() methods which call notImplemented();
308
309         Test: http/tests/security/clipboard/clipboard-file-access.html
310
311         * dom/Clipboard.h:
312         * dom/Clipboard.idl:
313         * platform/chromium/ClipboardChromium.cpp:
314         (WebCore::ClipboardChromium::files):
315         * platform/chromium/ClipboardChromium.h:
316         * platform/gtk/ClipboardGtk.cpp:
317         (WebCore::ClipboardGtk::files):
318         * platform/gtk/ClipboardGtk.h:
319         * platform/mac/ClipboardMac.h:
320         * platform/mac/ClipboardMac.mm:
321         (WebCore::absoluteURLsFromPasteboardFilenames):
322         (WebCore::absoluteURLsFromPasteboard):
323         (WebCore::ClipboardMac::files):
324         * platform/qt/ClipboardQt.cpp:
325         (WebCore::ClipboardQt::files):
326         * platform/qt/ClipboardQt.h:
327         * platform/win/ClipboardWin.cpp:
328         (WebCore::ClipboardWin::files):
329         * platform/win/ClipboardWin.h:
330         * platform/wx/ClipboardWx.cpp:
331         (WebCore::ClipboardWx::files):
332         * platform/wx/ClipboardWx.h:
333
334 2009-06-25  Eric Seidel  <eric@webkit.org>
335
336         No review, only completing revert of r45144.
337
338         Add back files deleted by r45144.
339
340         * storage/LocalStorageArea.cpp: Added.
341         (WebCore::LocalStorageArea::create):
342         (WebCore::LocalStorageArea::LocalStorageArea):
343         (WebCore::LocalStorageArea::scheduleFinalSync):
344         (WebCore::LocalStorageArea::itemChanged):
345         (WebCore::LocalStorageArea::itemRemoved):
346         (WebCore::LocalStorageArea::areaCleared):
347         (WebCore::LocalStorageArea::blockUntilImportComplete):
348         (WebCore::LocalStorageArea::dispatchStorageEvent):
349         * storage/LocalStorageArea.h: Added.
350         * storage/SessionStorageArea.cpp: Added.
351         (WebCore::SessionStorageArea::copy):
352         (WebCore::SessionStorageArea::SessionStorageArea):
353         (WebCore::SessionStorageArea::itemChanged):
354         (WebCore::SessionStorageArea::itemRemoved):
355         (WebCore::SessionStorageArea::areaCleared):
356         (WebCore::SessionStorageArea::blockUntilImportComplete):
357         (WebCore::SessionStorageArea::dispatchStorageEvent):
358         * storage/SessionStorageArea.h: Added.
359         (WebCore::SessionStorageArea::create):
360
361 2009-06-25  Eric Seidel  <eric@webkit.org>
362
363         No review, reverting r45144 only.
364
365         Roll out r45144 after 18 test failures appeared on the bots.
366         https://bugs.webkit.org/show_bug.cgi?id=26698
367
368         * GNUmakefile.am:
369         * WebCore.vcproj/WebCore.vcproj:
370         * WebCore.xcodeproj/project.pbxproj:
371         * WebCoreSources.bkl:
372         * storage/LocalStorage.cpp:
373         (WebCore::LocalStorage::storageArea):
374         * storage/LocalStorage.h:
375         * storage/SessionStorage.cpp:
376         (WebCore::SessionStorage::copy):
377         (WebCore::SessionStorage::storageArea):
378         * storage/SessionStorage.h:
379         * storage/StorageArea.cpp:
380         (WebCore::StorageArea::StorageArea):
381         (WebCore::StorageArea::~StorageArea):
382         (WebCore::StorageArea::setItem):
383         (WebCore::StorageArea::removeItem):
384         (WebCore::StorageArea::clear):
385         * storage/StorageArea.h:
386         * storage/StorageAreaSync.cpp:
387         (WebCore::StorageAreaSync::StorageAreaSync):
388         (WebCore::StorageAreaSync::scheduleFinalSync):
389         (WebCore::StorageAreaSync::syncTimerFired):
390         (WebCore::StorageAreaSync::performImport):
391         * storage/StorageAreaSync.h:
392         * storage/StorageSyncManager.h:
393
394 2009-06-24  Jeremy Orlow  <jorlow@chromium.org>
395
396         Reviewed by Darin Fisher.
397
398         https://bugs.webkit.org/show_bug.cgi?id=26698
399
400         Combined LocalStorageArea and SessionStorageArea into StorageArea since
401         (after my other refactorings) there are no longer substantial
402         differences between the two.
403
404         * GNUmakefile.am:
405         * WebCore.vcproj/WebCore.vcproj:
406         * WebCore.xcodeproj/project.pbxproj:
407         * WebCoreSources.bkl:
408         * storage/LocalStorage.cpp:
409         (WebCore::LocalStorage::storageArea):
410         * storage/LocalStorage.h:
411         * storage/LocalStorageArea.cpp: Removed.
412         * storage/LocalStorageArea.h: Removed.
413         * storage/SessionStorage.cpp:
414         (WebCore::SessionStorage::copy):
415         (WebCore::SessionStorage::storageArea):
416         * storage/SessionStorage.h:
417         * storage/SessionStorageArea.cpp: Removed.
418         * storage/SessionStorageArea.h: Removed.
419         * storage/StorageArea.cpp:
420         (WebCore::StorageArea::createLocalStorage):
421         (WebCore::StorageArea::StorageArea):
422         (WebCore::StorageArea::createSessionStorage):
423         (WebCore::StorageArea::copy):
424         (WebCore::StorageArea::setItem):
425         (WebCore::StorageArea::removeItem):
426         (WebCore::StorageArea::clear):
427         (WebCore::StorageArea::scheduleFinalSync):
428         (WebCore::StorageArea::blockUntilImportComplete):
429         (WebCore::StorageArea::dispatchStorageEvent):
430         * storage/StorageArea.h:
431         * storage/StorageAreaSync.cpp:
432         (WebCore::StorageAreaSync::StorageAreaSync):
433         (WebCore::StorageAreaSync::scheduleFinalSync):
434         (WebCore::StorageAreaSync::syncTimerFired):
435         (WebCore::StorageAreaSync::performImport):
436         * storage/StorageAreaSync.h:
437         * storage/StorageSyncManager.h:
438
439 2009-06-24  Dan Bernstein  <mitz@apple.com>
440
441         Reviewed by Simon Fraser.
442
443         - fix <rdar://problem/7001817> REGRESSION (r41902): Base position track
444           at UCSC Genome Browser doesn't work because image map prevents img
445           from hit-testing
446
447         Test: fast/replaced/image-map-2.html
448
449         * rendering/RenderImage.cpp:
450         (WebCore::RenderImage::nodeAtPoint): Do not reset 'inside' to false if
451         the image map failed the hit test.
452
453 2009-06-22  Adam Barth  <abarth@webkit.org>
454
455         Reviewed by Dimitri Glazkov.
456
457         https://bugs.webkit.org/show_bug.cgi?id=26366
458
459         Refactor V8DOMMap to support isolated worlds.
460
461         * bindings/v8/ScriptController.cpp:
462         (WebCore::ScriptController::evaluateInNewWorld):
463         * bindings/v8/ScriptController.h:
464         * bindings/v8/V8DOMMap.cpp:
465         (WebCore::DOMDataStore::InternalDOMWrapperMap::InternalDOMWrapperMap):
466         (WebCore::DOMDataStore::allStores):
467         (WebCore::DOMDataStore::allStoresMutex):
468         (WebCore::DOMDataStore::domData):
469         (WebCore::ScopedDOMDataStore::ScopedDOMDataStore):
470         (WebCore::ScopedDOMDataStore::~ScopedDOMDataStore):
471         (WebCore::StaticDOMDataStore::StaticDOMDataStore):
472         (WebCore::):
473         (WebCore::MainThreadDOMData::MainThreadDOMData):
474         (WebCore::MainThreadDOMData::getStore):
475         (WebCore::ChildThreadDOMData::ChildThreadDOMData):
476         (WebCore::ChildThreadDOMData::getStore):
477         (WebCore::DOMDataStore::DOMDataStore):
478         (WebCore::DOMDataStore::~DOMDataStore):
479         (WebCore::DOMDataStoreHandle::DOMDataStoreHandle):
480         (WebCore::DOMDataStoreHandle::~DOMDataStoreHandle):
481         (WebCore::::forget):
482         (WebCore::getDOMNodeMap):
483         (WebCore::getDOMObjectMap):
484         (WebCore::getActiveDOMObjectMap):
485         (WebCore::getDOMSVGElementInstanceMap):
486         (WebCore::getDOMSVGObjectWithContextMap):
487         (WebCore::DOMData::getCurrent):
488         (WebCore::DOMData::handleWeakObject):
489         (WebCore::DOMData::ensureDeref):
490         (WebCore::weakDOMObjectCallback):
491         (WebCore::weakActiveDOMObjectCallback):
492         (WebCore::weakNodeCallback):
493         (WebCore::weakSVGElementInstanceCallback):
494         (WebCore::weakSVGObjectWithContextCallback):
495         (WebCore::DOMData::derefObject):
496         (WebCore::DOMData::derefDelayedObjects):
497         (WebCore::DOMData::derefDelayedObjectsInCurrentThread):
498         (WebCore::DOMData::removeObjectsFromWrapperMap):
499         (WebCore::removeAllDOMObjectsInCurrentThreadHelper):
500         (WebCore::visitDOMNodesInCurrentThread):
501         (WebCore::visitDOMObjectsInCurrentThread):
502         (WebCore::visitActiveDOMObjectsInCurrentThread):
503         (WebCore::visitDOMSVGElementInstancesInCurrentThread):
504         (WebCore::visitSVGObjectsInCurrentThread):
505         * bindings/v8/V8DOMMap.h:
506         (WebCore::DOMDataStoreHandle::getStore):
507         * bindings/v8/V8IsolatedWorld.cpp: Added.
508         (WebCore::getIsolatedWorldKey):
509         (WebCore::contextWeakReferenceCallback):
510         (WebCore::V8IsolatedWorld::evaluate):
511         (WebCore::V8IsolatedWorld::V8IsolatedWorld):
512         (WebCore::V8IsolatedWorld::~V8IsolatedWorld):
513         (WebCore::V8IsolatedWorld::getEntered):
514         * bindings/v8/V8IsolatedWorld.h: Added.
515         (WebCore::V8IsolatedWorld::getDOMDataStore):
516
517 2009-06-24  Mikhail Naganov  <mnaganov@chromium.org>
518
519         Reviewed by Timothy Hatcher.
520
521         Bug 26604: Search doesn't work in Web Inspector Profiler
522         https://bugs.webkit.org/show_bug.cgi?id=26604
523
524         Seems like search was damaged in revision 42808.
525
526         * inspector/front-end/ProfileView.js:
527         (WebInspector.ProfileView.prototype.refresh):
528         Here and in other functions: nodes we're searching in are profile data grid
529         nodes, so there is no more need for '_dataGridNode' references.
530         (WebInspector.ProfileView.prototype.searchCanceled):
531         (WebInspector.ProfileView.prototype.performSearch.matchesQuery):
532         Fixed accidental semicolon that caused 'matchesQuery' always return true.
533         (WebInspector.ProfileView.prototype.performSearch):
534         To perform search correctly in the case of bottom up tree, we need to populate
535         the tree, because there's no 1-to-1 correspondence between profile nodes and
536         data grid nodes in this case.
537         (WebInspector.ProfileView.prototype._jumpToSearchResult):
538
539 2009-06-24  Simon Fraser  <simon.fraser@apple.com>
540
541         Reviewed by Darin Adler.
542         
543         <rdar://problem/6450239&6574516>
544     
545         Fix flashing issues caused by compositing layers rendering content before
546         a deferred layout has happened. Because the -viewWillDraw machinery doesn't
547         work for composited layers, we need to use scheduleViewUpdate() to queue
548         up a layout via the run loop observer in WebKit, whenever we know we
549         are going to be painting soon.
550
551         * rendering/RenderLayerBacking.cpp:
552         (WebCore::RenderLayerBacking::setContentsNeedDisplay):
553         (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
554
555 2009-06-24  David Levin  <levin@chromium.org>
556
557         Fix all builds.
558
559         * ForwardingHeaders/wtf/FastAllocBase.h: Added.
560
561 2009-06-24  Jeremy Orlow  <jorlow@chromium.org>
562
563         Reviewed by Darin Fisher.
564
565         https://bugs.webkit.org/show_bug.cgi?id=26658
566
567         Split the syncing portions of LocalStorageArea into StorageAreaSync.
568         This name will make more sense in the next patch (in this set) when
569         LocalStorageArea and SessionStorageArea are merged to become simply
570         StorageArea.  (Thus the synching portion of StorageArea is in
571         StorageAreaSync.)
572
573         This looks like a big patch, but really all it's doing is splitting
574         code and patching split-related things up.
575
576         * GNUmakefile.am:
577         * WebCore.vcproj/WebCore.vcproj:
578         * WebCore.xcodeproj/project.pbxproj:
579         * WebCoreSources.bkl:
580         * storage/LocalStorageArea.cpp:
581         (WebCore::LocalStorageArea::create):
582         (WebCore::LocalStorageArea::LocalStorageArea):
583         (WebCore::LocalStorageArea::scheduleFinalSync):
584         (WebCore::LocalStorageArea::itemChanged):
585         (WebCore::LocalStorageArea::itemRemoved):
586         (WebCore::LocalStorageArea::areaCleared):
587         (WebCore::LocalStorageArea::blockUntilImportComplete):
588         * storage/LocalStorageArea.h:
589         * storage/LocalStorageTask.cpp:
590         (WebCore::LocalStorageTask::LocalStorageTask):
591         * storage/LocalStorageTask.h:
592         (WebCore::LocalStorageTask::createImport):
593         (WebCore::LocalStorageTask::createSync):
594         * storage/LocalStorageThread.cpp:
595         (WebCore::LocalStorageThread::scheduleImport):
596         (WebCore::LocalStorageThread::scheduleSync):
597         * storage/LocalStorageThread.h:
598         * storage/SessionStorageArea.cpp:
599         (WebCore::SessionStorageArea::blockUntilImportComplete):
600         * storage/SessionStorageArea.h:
601         * storage/StorageArea.h:
602         * storage/StorageAreaSync.cpp: Copied from WebCore/storage/LocalStorageArea.cpp.
603         * storage/StorageAreaSync.h: Copied from WebCore/storage/LocalStorageArea.h.
604         * storage/StorageSyncManager.cpp:
605         (WebCore::StorageSyncManager::scheduleImport):
606         (WebCore::StorageSyncManager::scheduleSync):
607         * storage/StorageSyncManager.h:
608
609 2009-06-24  Adam Treat  <adam.treat@torchmobile.com>
610
611         Fix Qt build.
612
613         * WebCore.pro:
614
615 2009-06-24  David Levin  <levin@chromium.org>
616
617         Reviewed by David Hyatt.
618
619         Bug 26696: Member functions in DataGridColumnList should return pointers instead of PassRefPtr.
620         https://bugs.webkit.org/show_bug.cgi?id=26696
621
622         * html/DataGridColumnList.cpp:
623         (WebCore::DataGridColumnList::itemWithName):
624         (WebCore::DataGridColumnList::add):
625         * html/DataGridColumnList.h:
626         (WebCore::DataGridColumnList::item):
627         (WebCore::DataGridColumnList::primaryColumn):
628         (WebCore::DataGridColumnList::sortColumn):
629
630 2009-06-24  Sam Weinig  <sam@webkit.org>
631
632         Reviewed by Dave "Messy" Hyatt.
633
634         Little bit of style cleanup.
635
636         * html/DataGridColumn.cpp:
637         * html/DataGridColumn.h:
638         * html/DataGridColumn.idl:
639         * html/DataGridColumnList.cpp:
640         * html/DataGridColumnList.h:
641         * html/DataGridColumnList.idl:
642         * html/HTMLDataGridCellElement.cpp:
643         * html/HTMLDataGridCellElement.h:
644         * html/HTMLDataGridCellElement.idl:
645         * html/HTMLDataGridColElement.cpp:
646         * html/HTMLDataGridColElement.h:
647         * html/HTMLDataGridColElement.idl:
648         * html/HTMLDataGridElement.h:
649         * html/HTMLDataGridElement.idl:
650         * html/HTMLDataGridRowElement.cpp:
651         * html/HTMLDataGridRowElement.h:
652         * html/HTMLDataGridRowElement.idl:
653
654 2009-06-24  Chris Fleizach  <cfleizach@apple.com>
655
656         Reviewed by Oliver Hunt.
657
658         Bug 26668: AX: need a way to retrieve the language for an element
659         
660         Provides a way to retrieve the language associated with a specific accessibility element.
661
662         Test: accessibility/language-attribute.html
663
664         * accessibility/AccessibilityObject.cpp:
665         (WebCore::AccessibilityObject::language):
666         * accessibility/AccessibilityObject.h:
667         * accessibility/AccessibilityRenderObject.cpp:
668         (WebCore::AccessibilityRenderObject::language):
669         * accessibility/AccessibilityRenderObject.h:
670         * accessibility/mac/AccessibilityObjectWrapper.mm:
671         (-[AccessibilityObjectWrapper accessibilityAttributeValue:]):
672
673 2009-06-24  Brady Eidson  <beidson@apple.com>
674
675         Reviewed by Dan Bernstein.
676         
677         <rdar://problem/6893811> Instead of downloading files linked from Google Earth, file contents displayed in browser window as text.
678
679         * platform/network/mac/WebCoreURLResponse.mm:
680         (createBinaryExtensionsSet): Add '.kmz' to the list of known-to-be-binary extensions.
681
682 2009-06-24  Nicolas Weber  <thakis@chromium.org>
683
684         Reviewed by Eric Seidel.
685
686         https://bugs.webkit.org/show_bug.cgi?id=26685
687         Accomodate for backwards-incompatible skia api changes.
688
689         * platform/graphics/skia/GraphicsContextSkia.cpp:
690         (WebCore::GraphicsContext::clearRect):
691         (WebCore::GraphicsContext::setCompositeOperation):
692         * platform/graphics/skia/ImageBufferSkia.cpp:
693         (WebCore::ImageBuffer::ImageBuffer):
694         * platform/graphics/skia/ImageSkia.cpp:
695         (WebCore::paintSkBitmap):
696         (WebCore::Image::drawPattern):
697         * platform/graphics/skia/PlatformContextSkia.cpp:
698         (PlatformContextSkia::State::State):
699         (PlatformContextSkia::setupPaintCommon):
700         (PlatformContextSkia::setXfermodeMode):
701         (PlatformContextSkia::applyClipFromImage):
702         * platform/graphics/skia/PlatformContextSkia.h:
703         * platform/graphics/skia/SkiaUtils.cpp:
704         (WebCore::):
705         (WebCore::WebCoreCompositeToSkiaComposite):
706         * platform/graphics/skia/SkiaUtils.h:
707
708 2009-06-24  Jan Michael Alonzo  <jmalonzo@webkit.org>
709
710         Gtk build fix. Add files that were added in r45093 and r45096
711
712         * GNUmakefile.am:
713
714 2009-06-24  Brady Eidson  <beidson@apple.com>
715
716         Fix 64-bit SnowLeopard build.
717
718         * html/DataGridColumnList.cpp:
719         (WebCore::DataGridColumnList::remove):
720         (WebCore::DataGridColumnList::move):
721
722 2009-06-24  Rob Buis  <rwlbuis@gmail.com>
723
724         Reviewed by Eric Seidel.
725
726         https://bugs.webkit.org/show_bug.cgi?id=26392
727         Bug 26392: In html, modification of xlink:href of an newly inserted svg image does not work.
728         https://bugs.webkit.org/show_bug.cgi?id=26328
729         Bug 26328: changing href attribute of svg images does not work when changing display attribute as well
730
731         React to href updates even when there is no renderer, i.e. display=none.
732
733         Tests: svg/custom/js-update-image-and-display.svg
734                svg/custom/js-update-image-and-display2.svg
735                svg/custom/js-update-image-and-display3.svg
736
737         * svg/SVGImageElement.cpp:
738         (WebCore::SVGImageElement::svgAttributeChanged):
739
740 2009-06-24  David Hyatt  <hyatt@apple.com>
741
742         Reviewed by Sam Weinig.
743
744         https://bugs.webkit.org/show_bug.cgi?id=26687
745
746         Add basic back-end column support to datagrid.
747
748         Added fast/dom/HTMLDataGridElement/ column tests.
749
750         * DerivedSources.cpp:
751         * DerivedSources.make:
752         * WebCore.pro:
753         * WebCore.vcproj/WebCore.vcproj:
754         * WebCore.xcodeproj/project.pbxproj:
755         * WebCoreSources.bkl:
756         * html/DataGridColumn.cpp: Added.
757         (WebCore::DataGridColumn::setPrimary):
758         * html/DataGridColumn.h: Added.
759         (WebCore::DataGridColumn::create):
760         (WebCore::DataGridColumn::id):
761         (WebCore::DataGridColumn::setId):
762         (WebCore::DataGridColumn::label):
763         (WebCore::DataGridColumn::setLabel):
764         (WebCore::DataGridColumn::type):
765         (WebCore::DataGridColumn::setType):
766         (WebCore::DataGridColumn::sortable):
767         (WebCore::DataGridColumn::setSortable):
768         (WebCore::DataGridColumn::sortDirection):
769         (WebCore::DataGridColumn::setSortDirection):
770         (WebCore::DataGridColumn::primary):
771         (WebCore::DataGridColumn::detachFromColumnList):
772         (WebCore::DataGridColumn::DataGridColumn):
773         * html/DataGridColumn.idl: Added.
774         * html/DataGridColumnList.cpp: Added.
775         (WebCore::DataGridColumnList::~DataGridColumnList):
776         (WebCore::DataGridColumnList::itemWithName):
777         (WebCore::DataGridColumnList::add):
778         (WebCore::DataGridColumnList::remove):
779         (WebCore::DataGridColumnList::move):
780         (WebCore::DataGridColumnList::clear):
781         (WebCore::DataGridColumnList::primaryColumnChanged):
782         * html/DataGridColumnList.h: Added.
783         (WebCore::DataGridColumnList::create):
784         (WebCore::DataGridColumnList::length):
785         (WebCore::DataGridColumnList::item):
786         (WebCore::DataGridColumnList::primaryColumn):
787         (WebCore::DataGridColumnList::sortColumn):
788         * html/DataGridColumnList.idl: Added.
789         * html/HTMLDataGridColElement.cpp:
790         (WebCore::HTMLDataGridColElement::sortable):
791         (WebCore::HTMLDataGridColElement::setSortable):
792         (WebCore::HTMLDataGridColElement::sortDirection):
793         (WebCore::HTMLDataGridColElement::setSortDirection):
794         * html/HTMLDataGridColElement.h:
795         * html/HTMLDataGridColElement.idl:
796         * html/HTMLDataGridElement.cpp:
797         (WebCore::HTMLDataGridElement::HTMLDataGridElement):
798         * html/HTMLDataGridElement.h:
799         (WebCore::HTMLDataGridElement::columns):
800         * html/HTMLDataGridElement.idl:
801         * rendering/RenderDataGrid.cpp:
802         (WebCore::RenderDataGrid::paintObject):
803         (WebCore::RenderDataGrid::paintColumnHeaders):
804         (WebCore::RenderDataGrid::rebuildColumns):
805         * rendering/RenderDataGrid.h:
806         (WebCore::RenderDataGrid::gridElement):
807
808 2009-06-24  Jessie Berlin  <jberlin@apple.com>
809
810         Reviewed by Adam Roben.
811
812         Partially fixes: https://bugs.webkit.org/show_bug.cgi?id=24735
813         (<rdar://problem/5015942>)
814         Where on windows it was not possible to set an element as the drag
815         image using setDragImage on the dataTransfer object.
816         
817         Does not "fix" the case of dragging a link where the default link image
818         is still used, even when the -webkit-user-drag is set to "element". This
819         is the same behavior as is found on OS X.
820         
821         Added a manual test because it is not possible to check that what is
822         contained in the image snapshot is indeed the requested element.
823
824         * dom/Clipboard.h:
825         (WebCore::Clipboard::dragImageElement):
826         Made getting the raw pointer from the RefPtr a const operation.
827         * manual-tests/drag-with-div-or-image-as-data-image.html: Added.
828         * platform/win/ClipboardWin.cpp:
829         (WebCore::ClipboardWin::createDragImage):
830         Get an image of the rendered element and its subtree.
831
832 2009-06-24  Darin Fisher  <darin@chromium.org>
833
834         Reviewed by David Levin.
835
836         https://bugs.webkit.org/show_bug.cgi?id=26683
837         Fix Chromium build bustage: Add custom binding for HTMLDataGridElement.dataSource
838
839         This change just adds a stub implementation for now to help fix the build.
840
841         * bindings/v8/custom/V8CustomBinding.h:
842         * bindings/v8/custom/V8HTMLDataGridElementCustom.cpp: Added.
843
844 2009-06-24  David Kilzer  <ddkilzer@apple.com>
845
846         Build fixes for ENABLE(PLUGIN_PROXY_FOR_VIDEO)
847
848         Reviewed by Adam Roben.
849
850         * html/HTMLMediaElement.cpp:
851         (WebCore::HTMLMediaElement::deliverNotification): Removed
852         ExceptionCode parameter from togglePlayState().
853         (WebCore::HTMLMediaElement::initialURL): Don't convert a KURL
854         object to a String when assigning to a KURL variable.
855
856 2009-06-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
857
858         Reviewed by Adam Treat.
859
860         Save memory by not storing attribute values in member variables, if not absolutely needed.
861         Also fixes bugs where we're substituting variables too early (noticeable with the upcoming <select> element).
862
863         * wml/WMLDoElement.cpp:
864         (WebCore::WMLDoElement::parseMappedAttribute):
865         (WebCore::WMLDoElement::label):
866         * wml/WMLDoElement.h:
867         * wml/WMLFieldSetElement.cpp:
868         (WebCore::WMLFieldSetElement::insertedIntoDocument):
869         * wml/WMLFieldSetElement.h:
870         * wml/WMLOptGroupElement.cpp:
871         (WebCore::WMLOptGroupElement::title):
872         (WebCore::WMLOptGroupElement::parseMappedAttribute):
873         (WebCore::WMLOptGroupElement::groupLabelText):
874         * wml/WMLOptGroupElement.h:
875         * wml/WMLPostfieldElement.cpp:
876         (WebCore::WMLPostfieldElement::name):
877         (WebCore::WMLPostfieldElement::value):
878         (WebCore::WMLPostfieldElement::encodeData):
879         * wml/WMLPostfieldElement.h:
880         * wml/WMLSetvarElement.cpp:
881         (WebCore::WMLSetvarElement::parseMappedAttribute):
882         (WebCore::WMLSetvarElement::name):
883         (WebCore::WMLSetvarElement::value):
884         * wml/WMLSetvarElement.h:
885         * wml/WMLTimerElement.cpp:
886         (WebCore::WMLTimerElement::parseMappedAttribute):
887         (WebCore::WMLTimerElement::insertedIntoDocument):
888         (WebCore::WMLTimerElement::timerFired):
889         (WebCore::WMLTimerElement::start):
890         (WebCore::WMLTimerElement::value):
891         * wml/WMLTimerElement.h:
892
893 2009-06-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
894
895         Reviewed by Adam Roben.
896
897         Forgot to initialize m_task member variable. Results in crashes sometimes.
898
899         * wml/WMLAnchorElement.cpp:
900         (WebCore::WMLAnchorElement::WMLAnchorElement):
901
902 2009-06-24  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>
903
904         Not reviewed. Forgot to include within last patch.
905
906         * manual-tests/wml/card-title-attr.wml: Added.
907
908 2009-06-24  Wajahat Siddiqui <wajahatmeister@gmail.com>
909  
910         Reviewed by Nikolas Zimmermann.
911
912         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26474
913         Adding WML <card> title attribute handling.
914
915         * wml/WMLElement.h: marking parseValueSubstitutingVariableReferences and parseValueForbiddingVariableReferences as const
916         * wml/WMLElement.cpp:
917         * wml/WMLCardElement.h: 
918         (WebCore::WMLCardElement::title):
919         * wml/WMLCardElement.cpp:
920         * wml/manual-test/card-title-attr.wml: Manual test  
921  
922 2009-06-24  Simon Hausmann  <simon.hausmann@nokia.com>
923
924         Reviewed by Tor Arne Vestbø.
925
926         Fix the build without ENABLE_VIDEO.
927
928         * html/CanvasRenderingContext2D.cpp: Add #if ENABLE guards.
929         * html/CanvasRenderingContext2D.h: Ditto.
930
931 2009-06-24  Siddhartha Chattopadhyay  <sidchat@google.com>
932
933         Reviewed by Eric Seidel.
934
935         Fix for https://bugs.webkit.org/show_bug.cgi?id=26200 which I introduced earlier. I had
936         the smartReplace set TRUE initially, which was wrong since the purpose of this call is
937         to just replace the selection, and place the caret at the end of the selection it replaced.
938
939         * editing/Editor.cpp:
940         (WebCore::Editor::markMisspellingsAfterTypingToPosition):
941         * manual-tests/textarea-caret-position-after-auto-spell-correct.html: Added.
942
943 2009-06-24  Kevin Watters  <kevinwatters@gmail.com>
944
945         Reviewed by Kevin Ollivier.
946
947         Don't use an unsigned int for intervalInMS because we sometimes initialize
948         it with a negative value.
949
950         * platform/wx/SharedTimerWx.cpp:
951         (WebCore::setSharedTimerFireTime):
952
953 2009-06-24  Eric Seidel  <eric@webkit.org>
954
955         No review, build fix only.
956
957         The previous checkin had an improper merge.  This fixes the build.
958
959         * page/DragController.cpp:
960         (WebCore::DragController::tryDocumentDrag):
961
962 2009-06-05  Eric Seidel  <eric@webkit.org>
963
964         Reviewed by Oliver Hunt.
965
966         https://bugs.webkit.org/show_bug.cgi?id=25922
967         JS setting dropEffect = "none" causes tryDHTMLDrag
968         to return DragOperationNone.  Which is also the value
969         tryDHTMLDrag previously used to indicate JS did not
970         want to handle the drag.
971
972         Make it possible for the DragController::try* methods
973         to return a bool to indicate if javascript accepted
974         or rejected the drag event, separate from the DragOperation.
975
976         Tests:
977         - fast/events/drag-to-navigate.html
978         - fast/events/prevent-drag-to-navigate.html
979
980         * page/DragController.cpp:
981         (WebCore::DragController::dragEnteredOrUpdated):
982         (WebCore::DragController::tryDocumentDrag):
983         (WebCore::defaultOperationForDrag):
984         (WebCore::DragController::tryDHTMLDrag):
985         * page/DragController.h:
986
987 2009-06-23  Oliver Hunt  <oliver@apple.com> and Eric Carlson  <eric.carlson@apple.com>
988
989         Reviewed by Sam Weinig and Dave Hyatt.
990
991         <rdar://problem/6164797> Add Canvas API to allow drawing of <video> frames
992         <https://bugs.webkit.org/show_bug.cgi?id=25920>
993
994         Add support for drawing the contents of the video element to the canvas
995         in accordance with the current HTML5 draft.
996
997         Test: media/video-canvas.html
998
999         * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
1000         (WebCore::JSCanvasRenderingContext2D::drawImage):
1001           Standard custom bindings stuff we need to do for all canvas methods.
1002         * html/CanvasRenderingContext2D.cpp:
1003         (WebCore::size): Helper function for finding the size of a video element
1004         (WebCore::CanvasRenderingContext2D::checkOrigin): moved up in the file.
1005         (WebCore::CanvasRenderingContext2D::drawImage): The various overloads of HTML5's drawImage(<video>)
1006         * html/CanvasRenderingContext2D.h:
1007         * html/HTMLMediaElement.h:
1008         (WebCore::HTMLMediaElement::hasSingleSecurityOrigin):
1009           hasSingleSecurityOrigin is needed for security, currently all implementations are trivial
1010           as we force QT to maintain a single origin.
1011         * html/HTMLVideoElement.cpp:
1012         (WebCore::HTMLVideoElement::paint): 
1013             Paint routine on video so we don't have to look at MediaPlayer directly
1014         * html/HTMLVideoElement.h:
1015         * platform/graphics/MediaPlayer.cpp:
1016         (WebCore::NullMediaPlayerPrivate::hasSingleSecurityOrigin):
1017         (WebCore::MediaPlayer::hasSingleSecurityOrigin):
1018             Default implementations of hasSingleSecurityOrigin
1019         * platform/graphics/MediaPlayer.h:
1020         * platform/graphics/MediaPlayerPrivate.h:
1021         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1022         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1023         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
1024             A video may need a player now even if it is not visible.
1025         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
1026             Always return true due to restrictions we've placed on QT.
1027         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1028         (WebCore::MediaPlayerPrivate::paint):
1029             Jump through some hoops to allow windows QT to draw to an intermediate buffer.
1030             In the long term we'd like to cache the HDC, but this will do for now.
1031         (WebCore::MediaPlayerPrivate::hasSingleSecurityOrigin):
1032         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
1033             As for Mac we force QT to only allow same origin loads.
1034
1035 2009-06-23  Adam Langley  <agl@google.com>
1036
1037         Reviewed by Eric Seidel.
1038
1039         Chromium: Fix crash with inherited font-size in <option>
1040
1041         https://bugs.webkit.org/show_bug.cgi?id=26656
1042         http://code.google.com/p/chromium/issues/detail?id=14853
1043
1044         In r42597 (https://bugs.webkit.org/show_bug.cgi?id=25244), I changed
1045         the <select> handing for Chromium to fix a rendering bug. However,
1046         although the font-size is correctly ignored, getRowHeight wasn't
1047         updated and so was calculating the height of the rows in an
1048         inconsistent manner. This can lead to a crash.
1049
1050         * manual-tests/optgroup-empty-and-nested.html: adding test case for crash
1051         * platform/chromium/PopupMenuChromium.cpp:
1052         (WebCore::PopupListBox::getRowHeight):
1053
1054 2009-06-23  Brady Eidson  <beidson@apple.com>
1055
1056         Patch by Antti Koivisto.
1057         Reviewed by Brady Eidson.
1058
1059         <rdar://problem/6988010> Failed resources not reloaded when built against Tiger SDK
1060
1061         A latent bug that cache revalidation uncovered.  When a CachedResource failed to load,
1062         it should always be revalidated upon reload.
1063
1064         * loader/CachedResource.cpp:
1065         (WebCore::CachedResource::canUseCacheValidator):
1066         (WebCore::CachedResource::mustRevalidate):
1067
1068 2009-06-23  Dan Bernstein  <mitz@apple.com>
1069
1070         Reviewed by Darin Adler.
1071
1072         - fix <rdar://problem/6634228> Crash in [NSScroller mouseDown:] beneath
1073           EventHandler::passMouseDownEventToWidget()
1074
1075         * page/mac/EventHandlerMac.mm:
1076         (WebCore::EventHandler::passMouseDownEventToWidget): Surround the
1077         -mouseDown: call with calls to Widget::beforeMouseDown() and
1078         Widget::afterMouseDown(), which prevent the widget's view hierarchy from
1079         being removed from its parent view while the scroller is tracking the
1080         mouse.
1081
1082 2009-06-23  Sam Weinig  <sam@webkit.org>
1083
1084         Reviewed by Dave Hyatt.
1085
1086         Fix for https://bugs.webkit.org/show_bug.cgi?id=26516
1087         Add initial implementation of DataGridDataSource
1088
1089         - Initial implementation only supports the initialize callback function.
1090
1091         Test: fast/dom/HTMLDataGridElement/DataGridDataSource-basic.html
1092
1093         * WebCore.xcodeproj/project.pbxproj:
1094         * GNUmakefile.am:
1095         * WebCore.pro:
1096         * WebCore.vcproj/WebCore.vcproj:
1097         * WebCore.xcodeproj/project.pbxproj:
1098         * WebCoreSources.bkl:
1099         * bindings/js/JSDataGridDataSource.cpp: Added.
1100         (WebCore::JSDataGridDataSource::JSDataGridDataSource):
1101         (WebCore::JSDataGridDataSource::~JSDataGridDataSource):
1102         (WebCore::JSDataGridDataSource::initialize):
1103         * bindings/js/JSDataGridDataSource.h: Added.
1104         (WebCore::JSDataGridDataSource::create):
1105         (WebCore::JSDataGridDataSource::isJSDataGridDataSource):
1106         (WebCore::JSDataGridDataSource::jsDataSource):
1107         (WebCore::asJSDataGridDataSource):
1108         * bindings/js/JSHTMLDataGridElementCustom.cpp: Added.
1109         (WebCore::JSHTMLDataGridElement::listener):
1110         (WebCore::JSHTMLDataGridElement::setListener):
1111         * html/DataGridDataSource.h: Added.
1112         (WebCore::DataGridDataSource::~DataGridDataSource):
1113         (WebCore::DataGridDataSource::isJSDataGridDataSource):
1114         * html/HTMLDataGridElement.cpp:
1115         (WebCore::HTMLDataGridElement::HTMLDataGridElement):
1116         (WebCore::HTMLDataGridElement::setDataSource):
1117         (WebCore::HTMLDataGridElement::initializationTimerFired):
1118         * html/HTMLDataGridElement.h:
1119         (WebCore::HTMLDataGridElement::dataSource):
1120         * html/HTMLDataGridElement.idl:
1121
1122 2009-06-23  Ryosuke Niwa  <rniwa@google.com>
1123
1124         Reviewed by Justin Garcia.
1125
1126         Undo the changeset 21212 to fix the regression bug 14062.
1127         The changeset 21212 attempted to fix rdar://problem/5002441.
1128         The changeset 21212 modified InsertTextCommand::input so as to convert
1129         all spaces in text to non-breaking spaces for rdar://problem/5002441.
1130         However, the bug was originally caused by rebalanceWhitespaceAt
1131         and this workaround introduced a regression bug 14062.
1132         Because rebalanceWhitespaceAt appears to behave correctly now,
1133         the workaround introduced in 21212 is no longer needed.
1134
1135         Test: editing/inserting/space-after-removeformat.html
1136
1137         * editing/InsertTextCommand.cpp:
1138         (WebCore::InsertTextCommand::input):
1139
1140 2009-06-23  Beth Dakin  <bdakin@apple.com>
1141
1142         Reviewed by Dave Hyatt.
1143
1144         Fix for https://bugs.webkit.org/show_bug.cgi?id=26523 <col> 
1145         elements width can't be changed with javascript
1146
1147         This patch both fixes setting the width attribute directly in 
1148         JavaScript, and setting the width on the style attribute. 
1149
1150         * html/HTMLTableColElement.cpp:
1151         (WebCore::HTMLTableColElement::parseMappedAttribute): If we have a 
1152         new width, call setNeedsLayoutAndPrefWidthsRecalc()
1153
1154         Call calcPrefWidths() on the table cols.
1155         * rendering/AutoTableLayout.cpp:
1156         (WebCore::AutoTableLayout::recalcColumn):
1157         * rendering/FixedTableLayout.cpp:
1158         (WebCore::FixedTableLayout::calcWidthArray):
1159         
1160         Call layoutIfNeeded on the table cols.
1161         * rendering/RenderTable.cpp:
1162         (WebCore::RenderTable::layout):
1163
1164         * rendering/RenderTableCol.cpp:
1165         (WebCore::RenderTableCol::clippedOverflowRectForRepaint): Use new 
1166         table() convenience function.
1167         (WebCore::RenderTableCol::calcPrefWidths): Just call 
1168         setPrefWidthsDirty(false) on ourself and our children.
1169         (WebCore::RenderTableCol::table):
1170         * rendering/RenderTableCol.h:
1171
1172 2009-06-23  Ojan Vafai  <ojan@chromium.org>
1173
1174         Reviewed by Dan Bernstein.
1175
1176         Add logic to CSSStyleDeclaration::diff to deal with font-sizes that are 
1177         keyword values. When diff is called on a CSSStyleDeclaration, we check
1178         the keywordSize to see if font-size matches a keyword value.
1179         
1180         This ensures that when we diff a CSSMutableStyleDeclaration returned from
1181         copyInheritableProperties on a CSSComputedStyleDeclaration that we 
1182         correctly identify matching font-sizes.
1183         
1184         https://bugs.webkit.org/show_bug.cgi?id=26279
1185
1186         Test: editing/inserting/font-size-clears-from-typing-style.html
1187
1188         * css/CSSComputedStyleDeclaration.cpp:
1189         (WebCore::CSSComputedStyleDeclaration::cssPropertyMatches):
1190         * css/CSSComputedStyleDeclaration.h:
1191         * css/CSSStyleDeclaration.cpp:
1192         (WebCore::CSSStyleDeclaration::cssPropertyMatches):
1193         (WebCore::CSSStyleDeclaration::diff):
1194         * css/CSSStyleDeclaration.h:
1195
1196 2009-06-23  Kevin McCullough  <kmccullough@apple.com>
1197
1198         Reviewed by Darin Adler.
1199
1200         <rdar://problem/6994790> CrashTracer: [USER] 8 crashes in Mail trying to
1201         add a blank line to pasted Facebook content (under
1202         CompositeEditCommand::positionAvoidingSpecialElementBoundary)
1203
1204         - Just added null checks and I will create a new bug to prevent the
1205         bad behavior.
1206
1207         * editing/CompositeEditCommand.cpp:
1208         (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
1209
1210 2009-06-23  Simon Fraser  <simon.fraser@apple.com>
1211
1212         Build fix.
1213
1214         Wrap shouldDoSoftwarePaint() in #if USE(ACCELERATED_COMPOSITING) to avoid warning when 
1215         ACCELERATED_COMPOSITING is not defined.
1216
1217         * rendering/RenderLayer.cpp:
1218
1219 2009-06-23  Simon Fraser  <simon.fraser@apple.com>
1220
1221         Reviewed by Dave Hyatt.
1222         
1223         https://bugs.webkit.org/show_bug.cgi?id=24863
1224         
1225         Fix reflection painting on elements with compositing layers.
1226
1227         Test: compositing/reflections/reflection-on-composited.html
1228
1229         * rendering/RenderLayer.h:
1230         Add a new PaintLayerPaintingReflection flag which is set while painting inside
1231         reflections.
1232         (WebCore::RenderLayer::setPaintingInsideReflection):
1233         Add a setter so that RenderLayerBacking can call it.
1234
1235         * rendering/RenderLayer.cpp:
1236         (WebCore::shouldDoSoftwarePaint):
1237         Utility to clarify the logic of when a composited layer should do a software paint.
1238         
1239         (WebCore::RenderLayer::paintLayer):
1240         Use shouldDoSoftwarePaint() to determine when to software-paint a reflected layer.
1241         Remove transform-related tests from the reflection-painting if test because they appear
1242         to be unnecessary.
1243
1244         * rendering/RenderLayerBacking.cpp:
1245         (WebCore::RenderLayerBacking::paintIntoLayer):
1246         Add the code to paint reflections to the composited layer painting method.
1247         
1248         * rendering/RenderReplica.cpp:
1249         (WebCore::RenderReplica::paint):
1250         Set the PaintLayerPaintingReflection flag.
1251
1252 2009-06-23  Antti Koivisto  <antti@apple.com>
1253
1254         Reviewed by Darin Adler.
1255         
1256         https://bugs.webkit.org/show_bug.cgi?id=26643
1257         Memory cache should respect Cache-Control: no-store
1258         
1259         Make resources with Cache-Control: no-store uncacheable in the memory cache.
1260         They get evicted immediately when all clients are gone and are always
1261         reloaded from the server.
1262
1263         Conforms to RFC2616 14.9.2 and seems also match Firefox behavior.
1264
1265         * loader/CachedResource.cpp:
1266         (WebCore::CachedResource::removeClient):
1267         (WebCore::CachedResource::canUseCacheValidator):
1268         (WebCore::CachedResource::mustRevalidate):
1269         * platform/network/ResourceResponseBase.cpp:
1270         (WebCore::ResourceResponseBase::ResourceResponseBase):
1271         (WebCore::ResourceResponseBase::parseCacheControlDirectives):
1272         (WebCore::ResourceResponseBase::cacheControlContainsNoStore):
1273         * platform/network/ResourceResponseBase.h:
1274
1275 2009-06-23  Brady Eidson  <beidson@apple.com>
1276
1277         Windows build fix.
1278
1279         * platform/graphics/win/QTMovieWin.cpp:
1280         (QTMovieWin::play):
1281         (QTMovieWin::pause):
1282         (QTMovieWin::setRate):
1283         (QTMovieWin::setCurrentTime):
1284
1285 2009-06-23  Kevin McCullough  <kmccullough@apple.com>
1286
1287         Reviewed by Adele Peterson.
1288
1289         <rdar://problem/6902203> REGRESSION: 'Return' insertion point incorrect
1290         after manually quoting blank line then hitting return
1291
1292         If the insertion point is both the begining and ending visible position
1293         then we need to insert at the end instead of the begining, which is what
1294         would normally happen if the insertion point was as the begining.
1295
1296         * editing/BreakBlockquoteCommand.cpp:
1297         (WebCore::BreakBlockquoteCommand::doApply):
1298
1299 2009-06-23  Brady Eidson  <beidson@apple.com>
1300
1301         Reviewed by Sam Weinig, and looked over by Eric Carlson.
1302
1303         <rdar://problem/6980466> Media elements should provide option for changing pitch correction
1304
1305         Introduce a new boolean property to HTMLMediaElement called webkitPreservesPitch for script to control this.
1306
1307         * html/HTMLMediaElement.cpp:
1308         (WebCore::HTMLMediaElement::HTMLMediaElement): Currently the platforms that have a flexible pitch preservation 
1309           property (Quicktime on Mac and Win) have had it on by default, so continue that default for now.
1310         (WebCore::HTMLMediaElement::loadResource):
1311         (WebCore::HTMLMediaElement::webkitPreservesPitch):
1312         (WebCore::HTMLMediaElement::setWebkitPreservesPitch):
1313         * html/HTMLMediaElement.h:
1314         * html/HTMLMediaElement.idl:
1315
1316         * platform/graphics/MediaPlayer.cpp:
1317         (WebCore::NullMediaPlayerPrivate::setPreservesPitch):
1318         (WebCore::MediaPlayer::MediaPlayer):
1319         (WebCore::MediaPlayer::preservesPitch):
1320         (WebCore::MediaPlayer::setPreservesPitch):
1321         * platform/graphics/MediaPlayer.h:
1322         * platform/graphics/MediaPlayerPrivate.h:
1323         (WebCore::MediaPlayerPrivateInterface::setPreservesPitch):
1324
1325         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
1326         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
1327         (WebCore::MediaPlayerPrivate::MediaPlayerPrivate):
1328         (WebCore::MediaPlayerPrivate::createQTMovie): Rework to allow recreation of the movie with almost the
1329           exact same attributes as before, with pitch preservation being the difference.
1330         (WebCore::MediaPlayerPrivate::setPreservesPitch): Recreate the QTMovie if the flag actually changes.
1331         (WebCore::MediaPlayerPrivate::updateStates): Restore current time and rate if this is a recreated movie.
1332         (WebCore::MediaPlayerPrivate::timeChanged): Clear the time-to-be-restored, as this callback means it
1333           has been effectively overwritten.
1334
1335         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
1336         (WebCore::MediaPlayerPrivate::load):
1337         (WebCore::MediaPlayerPrivate::setPreservesPitch):
1338         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
1339         * platform/graphics/win/QTMovieWin.cpp:
1340         (QTMovieWinPrivate::QTMovieWinPrivate):
1341         (QTMovieWinPrivate::~QTMovieWinPrivate):
1342         (QTMovieWinPrivate::task): Restore current time and rate if this is a re-created movie.
1343         (QTMovieWin::play): Clear the time-to-be-restored, as this effectively overwrites it.
1344         (QTMovieWin::pause): Ditto.
1345         (QTMovieWin::setRate): Ditto.
1346         (QTMovieWin::setCurrentTime): Ditto.
1347         (QTMovieWin::setPreservesPitch): Recreate the Movie if the flag actually changes.
1348         (QTMovieWin::load): Rework to allow recreation of the Movie with similar state as the movie before it, 
1349           but changing the pitch preservation flag.
1350         * platform/graphics/win/QTMovieWin.h:
1351
1352 2009-06-23  Eric Carlson  <eric.carlson@apple.com>
1353
1354         Reviewed by Simon Fraser.
1355
1356         <rdar://problem/6998286> Crash after leaving page with <video>
1357         
1358         Don't try to post events after going into the page cache.
1359
1360         * html/HTMLMediaElement.cpp:
1361         (WebCore::HTMLMediaElement::documentWillBecomeInactive): Cancel pending events and stop
1362         event timers so we won't try to post events after going into the cache.
1363
1364 2009-06-23  Jeremy Orlow  <jorlow@chromium.org>
1365
1366         Reviewed by Brady Eidson.
1367
1368         Simplify the interaction between LocalStorageArea/SessionStorageArea
1369         and StorageArea by creating a "blockUntilImportComplete()" function
1370         rather than bouncing back and forth between the child and parent
1371         classes in a somewhat unintuitive manner.
1372
1373         This patch also paves the way for LocalStorageArea and
1374         SessionStorageArea being merged into one.  It's part of several in a
1375         set which are separating syncing (to disk) code from the rest of the
1376         implementation so that local storage and session storage's code can be
1377         unified.
1378
1379         https://bugs.webkit.org/show_bug.cgi?id=25376
1380
1381         * storage/LocalStorageArea.cpp:
1382         (WebCore::LocalStorageArea::blockUntilImportComplete):
1383         * storage/LocalStorageArea.h:
1384         * storage/StorageArea.cpp:
1385         (WebCore::StorageArea::length):
1386         (WebCore::StorageArea::key):
1387         (WebCore::StorageArea::getItem):
1388         (WebCore::StorageArea::setItem):
1389         (WebCore::StorageArea::removeItem):
1390         (WebCore::StorageArea::clear):
1391         (WebCore::StorageArea::contains):
1392         * storage/StorageArea.h:
1393         (WebCore::StorageArea::blockUntilImportComplete):
1394
1395 2009-06-23  Simon Fraser  <simon.fraser@apple.com>
1396
1397         Reviewed by Dave Hyatt
1398
1399         First part of https://bugs.webkit.org/show_bug.cgi?id=26652
1400         
1401         * rendering/RenderLayer.cpp:
1402         (WebCore::RenderLayer::paint):
1403         (WebCore::RenderLayer::paintLayer):
1404         * rendering/RenderLayer.h:
1405         (WebCore::RenderLayer::):
1406         * rendering/RenderReplica.cpp:
1407         (WebCore::RenderReplica::paint):
1408         Replace the 3 boolean params to RenderLayer::paintLayer() with a bit mask for readability.
1409         
1410         * rendering/RenderLayerBacking.cpp:
1411         (WebCore::RenderLayerBacking::paintIntoLayer):
1412         (WebCore::RenderLayerBacking::paintContents):
1413         * rendering/RenderLayerBacking.h:
1414         Remove the unused 'haveTransparency' param to paintIntoLayer().
1415
1416 2009-06-23  Simon Fraser  <simon.fraser@apple.com>
1417
1418         Reviewed by Darin Adler.
1419
1420         <rdar://problem/6997929> Assertion at WebCore::RenderLayer::updateClipRects with hardware acceleration
1421
1422         The updatingControlTints() painting pass goes through compositing layer boundaries,
1423         so we need to ensure we don't cache clip rects computed with the wrong root by
1424         setting temporaryClipRects to true.
1425         
1426         * rendering/RenderLayer.cpp:
1427         (WebCore::RenderLayer::paintLayer):
1428         
1429         * rendering/RenderLayerBacking.cpp:
1430         (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
1431         Remove a printf that I left in by mistake.
1432
1433 2009-06-23  Anders Carlsson  <andersca@apple.com>
1434
1435         Reviewed by Darin Adler.
1436
1437         WebCore side of <rdar://problem/6946094>.
1438         
1439         * platform/win/ClipboardWin.cpp:
1440         (WebCore::ClipboardWin::setExternalDataObject):
1441         * platform/win/ClipboardWin.h:
1442
1443 2009-06-23  Darin Fisher  <darin@chromium.org>
1444
1445         Reviewed by Darin Adler.
1446
1447         https://bugs.webkit.org/show_bug.cgi?id=26650
1448
1449         Add setFormContentType and setFormData since it is awkward for Chromium
1450         to use setFormInfoFromRequest to set the underlying members.  Also, add
1451         a clearChildren method that Chromium needs.  These methods are used as
1452         part of the Chromium code that serializes a HistoryItem for storing in
1453         the browser's session history.
1454
1455         * history/HistoryItem.cpp:
1456         * history/HistoryItem.h:
1457
1458 2009-06-23  Eric Carlson  <eric.carlson@apple.com>
1459
1460         Reviewed by Darin Adler.
1461
1462         <rdar://problem/6978938> Need HTML 5 event attributes for media elements
1463
1464         Test: media/event-attributes.html
1465
1466         * html/HTMLAttributeNames.in: Add media event attribute names.
1467         * html/HTMLMediaElement.cpp:
1468         (WebCore::HTMLMediaElement::parseMappedAttribute): Handle media event attributes.
1469
1470 2009-06-23  Thiago Macieira  <thiago.macieira@nokia.com>
1471
1472         Reviewed by Simon Hausmann.
1473
1474         Fix Qt build with Phonon.
1475
1476         The #include <phonon> header no longer exists. And the <Phonon> or
1477         <Phonon/Phonon> headers have never existed (neither for us nor for the
1478         Phonon sources). You have to select each and every header that you do
1479         want now.
1480
1481         * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
1482
1483 2009-06-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1484
1485         Reviewed by Simon Hausmann.
1486
1487         Remove duplicated code in Qt & GTK logging initialization
1488
1489         We now share the getChannelFromName() function in Logging.cpp
1490
1491         * platform/gtk/LoggingGtk.cpp:
1492         * platform/qt/LoggingQt.cpp:
1493
1494 2009-06-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1495
1496         Reviewed by Simon Hausmann.
1497
1498         Rename the plugin logging channel to plural form 'Plugins'
1499
1500         This matches both the other logging channel names, as well as the
1501         WebKit logging channel used by Safari/Mac for plugins.
1502
1503         * platform/Logging.cpp:
1504         * platform/Logging.h:
1505         * platform/gtk/LoggingGtk.cpp:
1506         * platform/mac/LoggingMac.mm:
1507         * platform/qt/LoggingQt.cpp:
1508         * platform/win/LoggingWin.cpp:
1509         * plugins/PluginDebug.h:
1510         * plugins/gtk/PluginPackageGtk.cpp:
1511         * plugins/mac/PluginPackageMac.cpp:
1512         * plugins/mac/PluginViewMac.cpp:
1513         * plugins/qt/PluginPackageQt.cpp:
1514
1515 2009-06-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1516
1517         Reviewed by Simon Hausmann.
1518
1519         Fix NPAPI mouse translation issues on Mac
1520
1521         The WindowRef we pass to the plugin refers to the the top level window,
1522         so the x and y positions have to be relative to this position, but we
1523         have to manually compensate for title bar decorations and other parents
1524         of the QWebView since contentsToWindow() only traverses to the QWebView.
1525
1526         Previously we did this compensation when passing on mouse coordinates to
1527         the plugin, which caused various issues with translations such as not
1528         being able to close the Flash settings dialog, or the hand cursor not
1529         appearing over links.
1530
1531         We now do the compensation as part of the call to NPP_SetWindow, and
1532         then pass mouse coordinates in global context without any compensation,
1533         similar to how both Safari and Mozilla does it.
1534
1535         * plugins/mac/PluginViewMac.cpp:
1536         (WebCore::PluginView::updatePluginWidget):
1537         (WebCore::PluginView::globalMousePosForPlugin):
1538
1539 2009-06-23  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
1540
1541         Rubber-stamped by Simon Hausmann.
1542
1543         [Qt] Resolve absolute path to library install_name manually
1544
1545         Since our target.path is set to the Qt directory (to be able
1546         to do 'make install') the 'absolute_library_soname' option
1547         to QMake did not do the right thing.
1548
1549         We now compute the absolute path manually using DESTDIR.
1550
1551         * WebCore.pro:
1552
1553 2009-06-22  Simon Fraser  <simon.fraser@apple.com>
1554
1555         Reviewed by Oliver Hunt.
1556
1557         <rdar://problem/6991146> Scrollbars in hardware layers don't change to the
1558         inactive look in background windows
1559
1560         * rendering/RenderLayer.cpp:
1561         (WebCore::RenderLayer::paintLayer):
1562         Don't short-circuit the "painting" pass that is used to udpate control tints.
1563
1564 2009-06-22  Dimitri Glazkov  <dglazkov@chromium.org>
1565
1566         Reviewed by Sam Weinig.
1567
1568         https://bugs.webkit.org/show_bug.cgi?id=26567
1569         Upstream V8 bindings code generator. With this change, also added interface ancestor
1570         traversal to IDL parser, which is necessary for V8 bindings. The traversal is used
1571         to determine whether an interface is a Node to facilitate proper casting and storage
1572         in V8DOMMap.
1573
1574         * bindings/scripts/CodeGenerator.pm: Added parent traversal sub, needed
1575             by V8 bindings.
1576         * bindings/scripts/CodeGeneratorV8.pm: Added.
1577         * bindings/scripts/IDLParser.pm: Modified to allow limited parsing for
1578             parent traversal cases.
1579
1580 2009-06-22  Sam Weinig  <sam@webkit.org>
1581
1582         Reviewed by Gavin Barraclough.
1583
1584         Add event handler attribute getter/setters to HTMLFrameSetElement
1585         as specified in HTML 5.  These match the ones on HTMLBodyElement.
1586
1587         * dom/Node.h:
1588         * html/HTMLFrameSetElement.cpp:
1589         (WebCore::HTMLFrameSetElement::parseMappedAttribute):
1590         (WebCore::HTMLFrameSetElement::onblur):
1591         (WebCore::HTMLFrameSetElement::setOnblur):
1592         (WebCore::HTMLFrameSetElement::onerror):
1593         (WebCore::HTMLFrameSetElement::setOnerror):
1594         (WebCore::HTMLFrameSetElement::onfocus):
1595         (WebCore::HTMLFrameSetElement::setOnfocus):
1596         (WebCore::HTMLFrameSetElement::onload):
1597         (WebCore::HTMLFrameSetElement::setOnload):
1598         (WebCore::HTMLFrameSetElement::onbeforeunload):
1599         (WebCore::HTMLFrameSetElement::setOnbeforeunload):
1600         (WebCore::HTMLFrameSetElement::onmessage):
1601         (WebCore::HTMLFrameSetElement::setOnmessage):
1602         (WebCore::HTMLFrameSetElement::onoffline):
1603         (WebCore::HTMLFrameSetElement::setOnoffline):
1604         (WebCore::HTMLFrameSetElement::ononline):
1605         (WebCore::HTMLFrameSetElement::setOnonline):
1606         (WebCore::HTMLFrameSetElement::onresize):
1607         (WebCore::HTMLFrameSetElement::setOnresize):
1608         (WebCore::HTMLFrameSetElement::onstorage):
1609         (WebCore::HTMLFrameSetElement::setOnstorage):
1610         (WebCore::HTMLFrameSetElement::onunload):
1611         (WebCore::HTMLFrameSetElement::setOnunload):
1612         * html/HTMLFrameSetElement.h:
1613         * html/HTMLFrameSetElement.idl:
1614
1615 2009-06-22  Darin Adler  <darin@apple.com>
1616
1617         Reviewed by Sam Weinig.
1618
1619         Bug 25425: DOM attribute getter/setter functions should use const AtomicString& type
1620         https://bugs.webkit.org/show_bug.cgi?id=25425
1621
1622         * bindings/scripts/CodeGeneratorJS.pm: Added handling for ReflectURL.
1623         * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
1624
1625         * dom/Element.cpp:
1626         (WebCore::Element::getURLAttribute): Added. For use implementing getters
1627         for ReflectURL.
1628         * dom/Element.h: Added getURLAttribute.
1629
1630         * html/HTMLImageElement.idl: Use Reflect and ReflectURL.
1631
1632 2009-06-22  Jian Li  <jianli@chromium.org>
1633
1634         Reviewed by Dimitri Glazkov.
1635
1636         Bug 26626: Make WorkerContextExecutionProxy::toV8Object handle exception
1637         objects.
1638         https://bugs.webkit.org/show_bug.cgi?id=26626
1639
1640         * bindings/v8/WorkerContextExecutionProxy.cpp:
1641         (WebCore::WorkerContextExecutionProxy::ToV8Object):
1642
1643 2009-06-22  David Hyatt  <hyatt@apple.com>
1644
1645         Reviewed by Sam Weinig.
1646
1647         Add RenderDataGrid to the build.  Give it some basic default styling (that more or less matches a listbox).  It has a default size
1648         of 300x150.
1649
1650         * GNUmakefile.am:
1651         * WebCore.pro:
1652         * WebCore.vcproj/WebCore.vcproj:
1653         * WebCore.xcodeproj/project.pbxproj:
1654         * WebCoreSources.bkl:
1655         * css/html4.css:
1656         * html/HTMLDataGridElement.cpp:
1657         (WebCore::HTMLDataGridElement::createRenderer):
1658         * html/HTMLDataGridElement.h:
1659         * html/HTMLDataGridElement.idl:
1660         * rendering/RenderDataGrid.cpp: Added.
1661         (WebCore::RenderDataGrid::RenderDataGrid):
1662         (WebCore::RenderDataGrid::~RenderDataGrid):
1663         (WebCore::RenderDataGrid::calcPrefWidths):
1664         (WebCore::RenderDataGrid::paintObject):
1665         (WebCore::RenderDataGrid::valueChanged):
1666         (WebCore::RenderDataGrid::invalidateScrollbarRect):
1667         (WebCore::RenderDataGrid::isActive):
1668         * rendering/RenderDataGrid.h: Added.
1669         (WebCore::RenderDataGrid::renderName):
1670         (WebCore::RenderDataGrid::canHaveChildren):
1671         (WebCore::RenderDataGrid::scrollbarCornerPresent):
1672
1673 2009-06-22  Simon Fraser  <simon.fraser@apple.com>
1674
1675         Reviewed by Dave Hyatt.
1676
1677         https://bugs.webkit.org/show_bug.cgi?id=26430
1678         <rdar://problem/6944442> Elements jump around when they become composited (WWDC checkers demo)
1679         <rdar://problem/6989006> Lots of time spent in RenderLayerCompositor::calculateCompositedBounds()
1680             during window resize when using hardware layers
1681         
1682         Fix an ordering dependency which caused the compositing position of a layer
1683         to be affected by some later sibling, which affected the compositing ancestor's
1684         composited bounds.
1685         
1686         The fix is to only update the compositing positions of layers in some subtree
1687         when updateAfterLayout() has been called on all the layers in that subtree,
1688         from the ancestor down.
1689         
1690         Also cache the composited bounds of a RenderLayerBacking, now that we can
1691         guarantee that those bounds are accurate.
1692         
1693         Test: compositing/sibling-positioning.html
1694
1695         * rendering/RenderLayer.cpp:
1696         (WebCore::RenderLayer::updateLayerPositions):
1697         (WebCore::RenderLayer::hitTestLayer):
1698         * rendering/RenderLayerBacking.cpp:
1699         (WebCore::RenderLayerBacking::RenderLayerBacking):
1700         (WebCore::RenderLayerBacking::updateAfterLayout):
1701         (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
1702         (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
1703         (WebCore::RenderLayerBacking::paintContents):
1704         (WebCore::RenderLayerBacking::compositedBounds):
1705         (WebCore::RenderLayerBacking::setCompositedBounds):
1706         * rendering/RenderLayerBacking.h:
1707         * rendering/RenderLayerCompositor.cpp:
1708         (WebCore::RenderLayerCompositor::updateBacking):
1709         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
1710         (WebCore::RenderLayerCompositor::calculateCompositedBounds):
1711         (WebCore::RenderLayerCompositor::layerWillBeRemoved):
1712         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
1713         (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
1714         (WebCore::RenderLayerCompositor::updateCompositingChildrenGeometry):
1715         * rendering/RenderLayerCompositor.h:
1716
1717 2009-06-22  Jeremy Orlow  <jorlow@chromium.org>
1718
1719         Reviewed by Darin Fisher.
1720
1721         First step in https://bugs.webkit.org/show_bug.cgi?id=25376
1722
1723         Add StorageSyncManager.cpp/h
1724
1725         * GNUmakefile.am:
1726         * WebCore.pro:
1727         * WebCore.vcproj/WebCore.vcproj:
1728         * WebCore.xcodeproj/project.pbxproj:
1729         * WebCoreSources.bkl:
1730
1731         In preparation for combining SessionStorage and LocalStorage into a
1732         single StorageManager, move the syncing bits out of LocalStorage and
1733         into its own class.
1734
1735         The next step is to combine LocalStorageArea and SessionStorageArea
1736         into one.  Then SessionStorage and LocalStorage can be combined.
1737
1738         Note that combining them will cut down on code paths that must be
1739         proxied, eliminate virtual dispatch, and allow Chromium to (eventually)
1740         write historical sessionStorage to disk when memory is getting tight.
1741
1742         Also remove a couple bits of cruft including code for quotas which is
1743         unnecessary (since a meta-data db is unnecessary since you can just
1744         count bytes as you read the local storage databases into memory).
1745
1746         * storage/LocalStorage.cpp:
1747         (WebCore::LocalStorage::LocalStorage):
1748         (WebCore::LocalStorage::storageArea):
1749         (WebCore::LocalStorage::close):
1750         * storage/LocalStorage.h:
1751         * storage/LocalStorageArea.cpp:
1752         (WebCore::LocalStorageArea::LocalStorageArea):
1753         (WebCore::LocalStorageArea::scheduleFinalSync):
1754         (WebCore::LocalStorageArea::syncTimerFired):
1755         (WebCore::LocalStorageArea::performImport):
1756         * storage/LocalStorageArea.h:
1757         (WebCore::LocalStorageArea::create):
1758         * storage/LocalStorageTask.cpp:
1759         (WebCore::LocalStorageTask::performTask):
1760         * storage/LocalStorageTask.h:
1761         (WebCore::LocalStorageTask::):
1762         (WebCore::LocalStorageTask::createImport):
1763         * storage/LocalStorageThread.cpp:
1764         * storage/LocalStorageThread.h:
1765         * storage/SessionStorage.h:
1766         * storage/StorageSyncManager.cpp: Copied from WebCore/storage/LocalStorage.cpp.
1767         (WebCore::StorageSyncManager::create):
1768         (WebCore::StorageSyncManager::StorageSyncManager):
1769         (WebCore::StorageSyncManager::fullDatabaseFilename):
1770         (WebCore::StorageSyncManager::close):
1771         (WebCore::StorageSyncManager::scheduleImport):
1772         (WebCore::StorageSyncManager::scheduleSync):
1773         * storage/StorageSyncManager.h: Copied from WebCore/storage/LocalStorage.h.
1774         (WebCore::):
1775
1776 2009-06-22  Darin Fisher  <darin@chromium.org>
1777
1778         Reviewed by Dimitri Glazkov.
1779
1780         https://bugs.webkit.org/show_bug.cgi?id=26622
1781         Add ChromiumDataObject::copy()
1782
1783         * platform/chromium/ChromiumDataObject.cpp:
1784         * platform/chromium/ChromiumDataObject.h:
1785
1786 2009-06-22  Timothy Hatcher  <timothy@apple.com>
1787
1788         Add a silhouette image for the enable view of the Resource panel.
1789
1790         Reviewed by Kevin McCullough.
1791
1792         * inspector/front-end/Images/resourcesSilhouette.png: Added.
1793         * inspector/front-end/inspector.css:
1794
1795 2009-06-22  Kyle Prete  <kylep@chromium.org>
1796
1797         Reviewed by Dimitri Glazkov.
1798
1799         https://bugs.webkit.org/show_bug.cgi?id=26552
1800         Add V8 JS bindings for Audio Constructor.
1801
1802         * bindings/v8/custom/V8CustomBinding.h:
1803         Added a callback declaration for audio ctor to macro.
1804         * bindings/v8/custom/V8HTMLAudioElementConstructor.cpp:
1805         Added the whole file.
1806
1807 2009-06-22  Alexey Proskuryakov  <ap@webkit.org>
1808
1809         Reviewed by David Levin.
1810
1811         https://bugs.webkit.org/show_bug.cgi?id=26600
1812         StringImpl::copy() no longer copies empty string correctly
1813
1814         * platform/text/StringImpl.cpp:
1815         (WebCore::StringImpl::ustring): Changed method calling syntax to look less like calling a
1816         static method.
1817         (WebCore::StringImpl::copy): Reverted part of r41917 that caused the problem.
1818
1819 2009-06-22  Xiaomei Ji  <xji@chromium.org>
1820
1821         Reviewed by Eric Seidel
1822
1823         Not auto-testable since it involves sending a keyboard event to
1824         the popup, which is not possible (eventSender sends the key
1825         events through webview, we want to go through the webwidget).
1826
1827         This patch is one part of the fix for issue "keyboard selection in
1828         Hebrew select element does not work in Windows". The other part of the
1829         fix is in chromium's webkit/glue layer.
1830         https://bugs.webkit.org/show_bug.cgi?id=25899
1831
1832         * manual-tests/keyboard_select_non_english.html: Added.
1833         * platform/chromium/PopupMenuChromium.cpp:
1834         (WebCore::isCharacterTypeEvent): Added. Check whether the event is a 
1835         character type event. "Char" in Windows or "KeyDown" in Mac is character
1836         type event.
1837         (WebCore::PopupListBox::typeAheadFind): Since m_lastCharTime is used to
1838         indicate whether user types multiple characters continuely as a search
1839         prefix or not, it should be only assigned when the event is character 
1840         type event. 
1841
1842 2009-06-22  Kevin McCullough  <kmccullough@apple.com>
1843
1844         Reviewed by Darin Adler.
1845
1846         <rdar://problem/6115819> Notify of profile start in console
1847
1848         Put a message in the console that announces that a profile has started,
1849         similar to how a console message announces that a profile has finished.
1850
1851         * inspector/InspectorController.cpp:
1852         (WebCore::InspectorController::addProfile): Use renamed function.
1853         (WebCore::InspectorController::addProfileFinishedMessageToConsole):
1854         Renamed.
1855         (WebCore::InspectorController::addStartProfilingMessageToConsole):
1856         New function that logs the message about the profile starting.
1857         (WebCore::InspectorController::startUserInitiatedProfiling): Ditto
1858         * inspector/InspectorController.h:
1859         * inspector/front-end/ProfilesPanel.js: Print the "run" of the profile's
1860         title if there are multiple profiles, and take into account the fact
1861         that titles are displayed twice as much now.
1862         (WebInspector.ProfilesPanel.prototype.displayTitleForProfileLink):
1863         * page/Console.cpp:
1864         (WebCore::Console::profile): Call new function.
1865
1866 2009-06-22  David Hyatt  <hyatt@apple.com>
1867
1868         Reviewed by Sam Weinig.
1869
1870         https://bugs.webkit.org/show_bug.cgi?id=26615
1871
1872         Add IDL interface for datagrid cell elements.  Add a few more properties to the datagrid itself that
1873         correspond to ones you find on <select> elements.
1874
1875         Add an expanded property to row elements.
1876
1877         * DerivedSources.cpp:
1878         * DerivedSources.make:
1879         * GNUmakefile.am:
1880         * WebCore.pro:
1881         * WebCore.vcproj/WebCore.vcproj:
1882         * WebCore.xcodeproj/project.pbxproj:
1883         * WebCoreSources.bkl:
1884         * html/HTMLAttributeNames.in:
1885         * html/HTMLDataGridCellElement.cpp: Added.
1886         (WebCore::HTMLDataGridCellElement::HTMLDataGridCellElement):
1887         (WebCore::HTMLDataGridCellElement::label):
1888         (WebCore::HTMLDataGridCellElement::setLabel):
1889         (WebCore::HTMLDataGridCellElement::focused):
1890         (WebCore::HTMLDataGridCellElement::setFocused):
1891         (WebCore::HTMLDataGridCellElement::checked):
1892         (WebCore::HTMLDataGridCellElement::setChecked):
1893         (WebCore::HTMLDataGridCellElement::indeterminate):
1894         (WebCore::HTMLDataGridCellElement::setIndeterminate):
1895         (WebCore::HTMLDataGridCellElement::progress):
1896         (WebCore::HTMLDataGridCellElement::setProgress):
1897         * html/HTMLDataGridCellElement.h: Added.
1898         (WebCore::HTMLDataGridCellElement::endTagRequirement):
1899         (WebCore::HTMLDataGridCellElement::tagPriority):
1900         * html/HTMLDataGridCellElement.idl: Added.
1901         * html/HTMLDataGridElement.cpp:
1902         (WebCore::HTMLDataGridElement::autofocus):
1903         (WebCore::HTMLDataGridElement::setAutofocus):
1904         (WebCore::HTMLDataGridElement::disabled):
1905         (WebCore::HTMLDataGridElement::setDisabled):
1906         (WebCore::HTMLDataGridElement::size):
1907         (WebCore::HTMLDataGridElement::setSize):
1908         * html/HTMLDataGridElement.h:
1909         * html/HTMLDataGridElement.idl:
1910         * html/HTMLDataGridRowElement.cpp:
1911         (WebCore::HTMLDataGridRowElement::checkDTD):
1912         (WebCore::HTMLDataGridRowElement::expanded):
1913         (WebCore::HTMLDataGridRowElement::setExpanded):
1914         * html/HTMLDataGridRowElement.h:
1915         * html/HTMLDataGridRowElement.idl:
1916         * html/HTMLElementsAllInOne.cpp:
1917         * html/HTMLTagNames.in:
1918
1919 2009-06-22  Sam Weinig  <sam@webkit.org>
1920
1921         Reviewed by Mark Rowe.
1922
1923         Add event handler attribute getter/setters to HTMLBodyElement
1924         as specified in HTML 5.
1925
1926         - Removes erroneous inclusion of the onresize and onunload event
1927         handler attributes in Element and Document.
1928
1929         * dom/Document.cpp:
1930         (WebCore::Document::getWindowAttributeEventListener):
1931         * dom/Document.h:
1932         * dom/Document.idl:
1933         * dom/Element.idl:
1934         * dom/Node.cpp:
1935         * dom/Node.h: onblur, onerror, onfocus, and onload all need to be declared
1936         virtual, since their behavior for HTMLBodyElement differs from the base
1937         implementation.
1938         * html/HTMLBodyElement.cpp:
1939         (WebCore::HTMLBodyElement::onblur):
1940         (WebCore::HTMLBodyElement::setOnblur):
1941         (WebCore::HTMLBodyElement::onerror):
1942         (WebCore::HTMLBodyElement::setOnerror):
1943         (WebCore::HTMLBodyElement::onfocus):
1944         (WebCore::HTMLBodyElement::setOnfocus):
1945         (WebCore::HTMLBodyElement::onload):
1946         (WebCore::HTMLBodyElement::setOnload):
1947         (WebCore::HTMLBodyElement::onbeforeunload):
1948         (WebCore::HTMLBodyElement::setOnbeforeunload):
1949         (WebCore::HTMLBodyElement::onmessage):
1950         (WebCore::HTMLBodyElement::setOnmessage):
1951         (WebCore::HTMLBodyElement::onoffline):
1952         (WebCore::HTMLBodyElement::setOnoffline):
1953         (WebCore::HTMLBodyElement::ononline):
1954         (WebCore::HTMLBodyElement::setOnonline):
1955         (WebCore::HTMLBodyElement::onresize):
1956         (WebCore::HTMLBodyElement::setOnresize):
1957         (WebCore::HTMLBodyElement::onstorage):
1958         (WebCore::HTMLBodyElement::setOnstorage):
1959         (WebCore::HTMLBodyElement::onunload):
1960         (WebCore::HTMLBodyElement::setOnunload):
1961         * html/HTMLBodyElement.h:
1962         * html/HTMLBodyElement.idl:
1963
1964 2009-06-22  Alexey Proskuryakov  <ap@webkit.org>
1965
1966         Reviewed by Darin Adler.
1967
1968         https://bugs.webkit.org/show_bug.cgi?id=26601
1969         Remove disabled code for appcache dynamic entries
1970
1971         This also removes code for DOM 3 Core DOMStringList, which we don't use for anything else yet.
1972
1973         * DerivedSources.cpp:
1974         * DerivedSources.make:
1975         * GNUmakefile.am:
1976         * WebCore.pro:
1977         * WebCore.vcproj/WebCore.vcproj:
1978         * WebCore.xcodeproj/project.pbxproj:
1979         * WebCoreSources.bkl:
1980         * bindings/js/JSDOMStringListCustom.cpp: Removed.
1981         * bindings/v8/custom/V8CustomBinding.h:
1982         * bindings/v8/custom/V8DOMStringListCustom.cpp: Removed.
1983         * dom/DOMStringList.cpp: Removed.
1984         * dom/DOMStringList.h: Removed.
1985         * dom/DOMStringList.idl: Removed.
1986         * dom/StaticStringList.cpp: Removed.
1987         * dom/StaticStringList.h: Removed.
1988         * loader/DocumentLoader.cpp:
1989         (WebCore::DocumentLoader::shouldLoadResourceFromApplicationCache):
1990         * loader/appcache/ApplicationCache.cpp:
1991         (WebCore::ApplicationCache::addResource):
1992         * loader/appcache/ApplicationCache.h:
1993         * loader/appcache/ApplicationCacheGroup.cpp:
1994         (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
1995         (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete):
1996         * loader/appcache/ApplicationCacheResource.cpp:
1997         (WebCore::ApplicationCacheResource::dumpType):
1998         * loader/appcache/ApplicationCacheResource.h:
1999         (WebCore::ApplicationCacheResource::):
2000         * loader/appcache/ApplicationCacheStorage.cpp:
2001         (WebCore::ApplicationCacheStorage::storeUpdatedType):
2002         * loader/appcache/DOMApplicationCache.cpp:
2003         * loader/appcache/DOMApplicationCache.h:
2004         * loader/appcache/DOMApplicationCache.idl:
2005         * page/DOMWindow.idl:
2006
2007 2009-06-22  Steve Falkenburg  <sfalken@apple.com>
2008
2009         Windows build fix.
2010
2011         * DerivedSources.cpp:
2012         * html/HTMLElementsAllInOne.cpp:
2013
2014 2009-06-22  Alexey Proskuryakov  <ap@webkit.org>
2015
2016         Reviewed by John Sullivan.
2017
2018         <rdar://problem/6956606> REGRESSION (S4Beta -> Final): After the password is input,
2019         Japanese can't be input.
2020
2021         WebKit uses a per-frame input context for most editable fields, and application's global
2022         context for password fields, manually controlling secure input state and the list of available
2023         input sources.
2024
2025         We were setting TSMDocument property to disable non-Roman input methods after focus changed
2026         to a password field, but before selection was updated. This resulted in the property being
2027         applied to a wrong TSMDocument in some cases, because TSMGetActiveDocument() uses input
2028         context cached by +[NSApplication updateWindows], we change context based on selection,
2029         not on focus.
2030
2031         * page/mac/FrameMac.mm: (WebCore::Frame::setUseSecureKeyboardEntry): Since there is only one
2032         context that we use for password fields - the global one - there is no need to get the active
2033         one.
2034
2035 2009-06-22  David Levin  <levin@chromium.org>
2036
2037         Reviewed by David Hyatt and Eric Seidel.
2038
2039         REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
2040         https://bugs.webkit.org/show_bug.cgi?id=26326
2041
2042         Test: scrollbars/scrollbar-crash-on-refresh.html
2043
2044         * dom/Document.cpp:
2045         (WebCore::Document::detach):
2046         Gives the FrameView a change to do any necessary cleanup on
2047         Document::detach() which is where the renderArena gets detroyed.
2048         * page/FrameView.cpp:
2049         (WebCore::FrameView::detachCustomScrollbars):
2050         Gets rid of any custom scrollbars (if the docment supplied them).
2051         * page/FrameView.h:
2052         * platform/Scrollbar.h:
2053         (WebCore::Scrollbar::isCustomScrollbar):
2054         * rendering/RenderObject.cpp:
2055         (WebCore::RenderObject::destroy):
2056         Removed the check for document()->frame().  If frame() is 0 in this code,
2057         then the call to animation() is also incorrect (since it does document()->frame()->animation()).
2058         * rendering/RenderScrollbar.h:
2059         (WebCore::RenderScrollbar::isCustomScrollbar):
2060
2061 2009-06-22  Dan Bernstein  <mitz@apple.com>
2062
2063         Reviewed by Simon Fraser.
2064
2065         - fix https://bugs.webkit.org/show_bug.cgi?id=23606
2066           <rdar://problem/6537777> CSS gradient not repainted when image load
2067           completes
2068
2069         Test: fast/repaint/background-generated.html
2070
2071         * rendering/RenderObject.cpp:
2072         (WebCore::mustRepaintFillLayers): Return true if the layer does not
2073         specify a size and the image uses the container size.
2074
2075 2009-06-22  David Hyatt  <hyatt@apple.com>
2076
2077         Reviewed by Sam Weinig.
2078
2079         https://bugs.webkit.org/show_bug.cgi?id=26607
2080
2081         Add IDL for HTMLDataGridRowElement.
2082
2083         * DerivedSources.make:
2084         * GNUmakefile.am:
2085         * WebCore.pro:
2086         * WebCore.vcproj/WebCore.vcproj:
2087         * WebCore.xcodeproj/project.pbxproj:
2088         * WebCoreSources.bkl:
2089         * html/HTMLAttributeNames.in:
2090         * html/HTMLDataGridColElement.cpp:
2091         (WebCore::HTMLDataGridColElement::primary):
2092         (WebCore::HTMLDataGridColElement::setPrimary):
2093         * html/HTMLDataGridColElement.h:
2094         * html/HTMLDataGridColElement.idl:
2095         * html/HTMLDataGridElement.cpp:
2096         (WebCore::HTMLDataGridElement::checkDTD):
2097         (WebCore::HTMLDataGridElement::multiple):
2098         (WebCore::HTMLDataGridElement::setMultiple):
2099         * html/HTMLDataGridElement.h:
2100         * html/HTMLDataGridElement.idl:
2101         * html/HTMLDataGridRowElement.cpp: Added.
2102         (WebCore::HTMLDataGridRowElement::HTMLDataGridRowElement):
2103         (WebCore::HTMLDataGridRowElement::selected):
2104         (WebCore::HTMLDataGridRowElement::setSelected):
2105         (WebCore::HTMLDataGridRowElement::focused):
2106         (WebCore::HTMLDataGridRowElement::setFocused):
2107         * html/HTMLDataGridRowElement.h: Added.
2108         (WebCore::HTMLDataGridRowElement::tagPriority):
2109         * html/HTMLDataGridRowElement.idl: Added.
2110         * html/HTMLTagNames.in:
2111
2112 2009-06-19  Yael Aharon <yael.aharon@nokia.com>
2113
2114         Reviewed by Holger Freyther.
2115
2116         https://bugs.webkit.org/show_bug.cgi?id=26556
2117
2118         Fix a crash in case that the QNetworkReply::readReady signal is
2119         "stuck" in deferred mode due to JavaScript alert, and in the meantime,
2120         QNetworkreply::finished signal is received and processed before
2121         QNetworkReply::readReady is processed.
2122
2123         * manual-tests/qt/unload-alert.html: Added.
2124         * platform/network/qt/QNetworkReplyHandler.cpp:
2125         (WebCore::QNetworkReplyHandler::setLoadMode):
2126         (WebCore::QNetworkReplyHandler::finish):
2127         (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):
2128         (WebCore::QNetworkReplyHandler::forwardData):
2129         (WebCore::QNetworkReplyHandler::start):
2130         (WebCore::QNetworkReplyHandler::sendQueuedItems):
2131         * platform/network/qt/QNetworkReplyHandler.h:
2132         (WebCore::QNetworkReplyHandler::):
2133
2134 2009-06-22  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2135
2136         Fix the Qt build.
2137
2138         * WebCore.pro:
2139
2140 2009-06-21  Darin Adler  <darin@apple.com>
2141
2142         Reviewed by Sam Weinig.
2143
2144         Bug 25425: DOM attribute getter/setter functions should use const AtomicString& type
2145         https://bugs.webkit.org/show_bug.cgi?id=25425
2146
2147         * bindings/scripts/CodeGeneratorJS.pm: Tweaked mechanism for includes to be a bit
2148         more consistent and to make SVGElement.h be included in the header rather than in
2149         every implementation file that includes the header. Added code to use getAttribute
2150         and setAttribute directly when the [Reflect] extended attribute is used.
2151
2152         * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
2153
2154         * html/HTMLElement.idl: Used [Reflect] for all the attributes in this class that
2155         reflect content attributes. Restricting this to one class for now to keep the
2156         patch small and start out slowly.
2157
2158 2009-06-21  Sam Weinig  <sam@webkit.org>
2159
2160         Reviewed by Oliver Hunt.
2161
2162         Fix for https://bugs.webkit.org/show_bug.cgi?id=26596
2163         Only expose event handler attributes to elements and documents.
2164
2165         Test: fast/dom/event-attribute-availability.html
2166
2167         * dom/Document.idl:
2168         * dom/Element.idl:
2169         * dom/Node.cpp:
2170         * dom/Node.h:
2171         * dom/Node.idl:
2172
2173 2009-06-21  Daniel Bates  <dbates@intudata.com>
2174
2175         Reviewed by Adam Barth.
2176
2177         https://bugs.webkit.org/show_bug.cgi?id=26580
2178         
2179         Fix to enable XSSAuditor on child windows.
2180         
2181         Test: http/tests/security/xssAuditor/link-opens-new-window.html
2182         
2183         * page/XSSAuditor.cpp:
2184         (WebCore::XSSAuditor::XSSAuditor):
2185         (WebCore::XSSAuditor::isEnabled):
2186         (WebCore::XSSAuditor::canEvaluate):
2187         (WebCore::XSSAuditor::canCreateInlineEventListener):
2188         (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
2189         (WebCore::XSSAuditor::canLoadObject):
2190         * page/XSSAuditor.h: Removed method setXSSAuditorEnabled, and field m_isEnabled.
2191         Moved implementation of isEnabled to XSSAuditor.cpp and changed implementation
2192         to query Settings.
2193
2194 2009-06-21  David Levin  <levin@chromium.org>
2195
2196         Reviewed by NOBODY.
2197
2198         Speculative windows build fix (idea by Mark Rowe).
2199
2200         * WebCore.vcproj/WebCore.vcproj:
2201
2202 2009-06-21  David Levin  <levin@chromium.org>
2203
2204         Reviewed by NOBODY (Speculative gtk build fix).
2205
2206         * GNUmakefile.am:
2207
2208 2009-06-21  David Levin  <levin@chromium.org>
2209
2210         Reviewed by NOBODY.
2211
2212         Speculative tiger build fix and a windows build fix.
2213         More fixes may still be in order.
2214
2215         * WebCore.vcproj/WebCoreCommon.vsprops:
2216         * dom/default/PlatformMessagePortChannel.h:
2217         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
2218
2219 2009-06-21  David Levin  <levin@chromium.org>
2220
2221         Reviewed by NOBODY (Speculative tiger build fix).
2222
2223         * dom/default/PlatformMessagePortChannel.h:
2224         (WebCore::PlatformMessagePortChannel::MessagePortQueue::~MessagePortQueue):
2225
2226 2009-06-21  Drew Wilson  <atwilson@google.com>
2227
2228         Reviewed by David Levin.
2229
2230         <https://bugs.webkit.org/show_bug.cgi?id=26448>
2231         
2232         Added optimized GC for MessagePorts when the entangled port is run by the same thread.
2233         Fixed bug in isProxyFor() that was not properly throwing an exception when trying to clone the entangled port.
2234
2235         * bindings/js/JSDOMBinding.cpp:
2236         (WebCore::markActiveObjectsForContext):
2237         Now marks remotely entangled ports as in-use, in addition to those with pending activity.
2238         * bindings/js/JSMessagePortCustom.cpp:
2239         (WebCore::JSMessagePort::mark):
2240         Now checks if the entangled port is local (run by same thread) and if so mark()s it.
2241         * dom/MessagePort.cpp:
2242         (WebCore::MessagePort::postMessage):
2243         (WebCore::MessagePort::disentangle):
2244         Removes cloned ports from the ScriptExecutionContext - this allows cloned ports to be GC'd as otherwise they look like remotely entangled ports.
2245         (WebCore::MessagePort::start):
2246         (WebCore::MessagePort::locallyEntangledPort):
2247         Added API for fetching the entangled port if it is run by the same thread
2248         * dom/MessagePort.h:
2249         * dom/MessagePortProxyWrapper.h:
2250         * dom/default/MessagePortProxy.cpp:
2251         (WebCore::MessagePortProxyWrapper::locallyEntangledPort):
2252         Added API for fetching the entangled port if it is run by the same thread        
2253         (WebCore::MessagePortProxy::hasPendingActivity):
2254         Changed definition of hasPendingActivity() to be stricter - only returns true if there are pending messages.
2255         (WebCore::MessagePortProxy::locallyEntangledPort):
2256         * dom/default/MessagePortProxy.h:
2257
2258 2009-06-21  Drew Wilson  <atwilson@google.com>
2259
2260         Reviewed by David Levin.
2261
2262         <https://bugs.webkit.org/show_bug.cgi?id=25043>
2263         Removed obsolete MessagePort.startConversation(), active and onclose APIs.
2264
2265         Refactored MessagePortProxy into MessagePortChannel and a platform-dependent PlatformMessagePortChannel
2266         implementation. Modified APIs to simplify cross-process implementations by moving the messaging code
2267         entirely into the platform-dependent proxy.
2268
2269         Created a thread-safe default PlatformMessagePortChannel implementation.
2270
2271         Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how
2272         cross-thread MessagePorts work.
2273         
2274         * GNUMakefile.am:
2275         * WebCore.vcproj/WebCore.vcproj:
2276         * WebCore.xcodeproj/project.pbxproj:
2277             Added MessagePortChannel/PlatformMessagePortChannel files.
2278         * bindings/js/JSMessagePortCustom.cpp:
2279         (WebCore::JSMessagePort::mark):
2280             Changed ports to not mark their entangled pair as reachable, per the spec.
2281         * bindings/v8/custom/V8MessagePortCustom.cpp:
2282         * dom/MessageChannel.cpp:
2283         (WebCore::MessageChannel::MessageChannel):
2284             Updated to use PlatformMessagePortChannel::createChannel() to entangle the ports.
2285         * dom/MessagePort.cpp:
2286         (WebCore::MessagePort::MessagePort):
2287         (WebCore::MessagePort::~MessagePort):
2288         (WebCore::MessagePort::postMessage):
2289         (WebCore::MessagePort::disentangle):
2290         (WebCore::MessagePort::messageAvailable):
2291         (WebCore::MessagePort::start):
2292         (WebCore::MessagePort::close):
2293         (WebCore::MessagePort::entangle):
2294         (WebCore::MessagePort::contextDestroyed):
2295         (WebCore::MessagePort::dispatchMessages):
2296         (WebCore::MessagePort::setOnmessage):
2297         (WebCore::MessagePort::hasPendingActivity):
2298             Changed these APIs to delegate to new PlatformMessagePortChannel APIs.
2299         * dom/MessagePort.h:
2300             Renamed isQueueOpen() to started().
2301         * dom/MessagePort.idl:
2302             Removed startConversation and onclose.
2303         * dom/MessagePortProxy.h: Removed.
2304         * dom/MessagePortChannel.cpp: Added.
2305         (WebCore::MessagePortChannel::EventData::create):
2306         (WebCore::MessagePortChannel::EventData::EventData):
2307         (WebCore::MessagePortChannel::~MessagePortChannel):
2308         * dom/MessagePortChannel.h: Added.
2309         (WebCore::MessagePortChannel::EventData::message):
2310         (WebCore::MessagePortChannel::EventData::channel):
2311             Changed EventData to hold a reference to a MessagePortChannel object instead of a MessagePort to enable cross-thread messaging.
2312         (WebCore::MessagePortChannel::MessagePortChannel):
2313         (WebCore::MessagePortChannel::create):        
2314         * dom/ScriptExecutionContext.cpp:
2315         (WebCore:ScriptExecutionContext::dispatchMessagePortEvents):
2316             Renamed isQueueOpen() to started().
2317         * dom/default/PlatformMessagePortChannel.cpp: Added.
2318         (WebCore::MessagePortChannel::entangleIfOpen):
2319         (WebCore::MessagePortChannel::disentangle):
2320         (WebCore::MessagePortChannel::postMessageToRemote):
2321         (WebCore::MessagePortChannel::tryGetMessageFromRemote):
2322         (WebCore::MessagePortChannel::close):
2323         (WebCore::MessagePortChannel::isConnectedTo):
2324         (WebCore::MessagePortChannel::hasPendingActivity):
2325         (WebCore::PlatformMessagePortChannel::PlatformMessagePortChannel):
2326         (WebCore::PlatformMessagePortChannel::~PlatformMessagePortChannel):
2327         (WebCore::PlatformMessagePortChannel::createChannel):
2328         (WebCore::PlatformMessagePortChannel::entangleIfOpen):
2329         (WebCore::PlatformMessagePortChannel::disentangle):
2330         (WebCore::PlatformMessagePortChannel::setRemotePort):
2331         (WebCore::PlatformMessagePortChannel::remotePort):
2332         (WebCore::PlatformMessagePortChannel::entangledChannel):
2333         (WebCore::PlatformMessagePortChannel::setEntangledChannel):
2334         (WebCore::PlatformMessagePortChannel::postMessageToRemote):
2335         (WebCore::PlatformMessagePortChannel::tryGetMessageFromRemote):
2336         (WebCore::PlatformMessagePortChannel::isConnectedTo):
2337         (WebCore::PlatformMessagePortChannel::close):
2338         (WebCore::PlatformMessagePortChannel::closeInternal):
2339         (WebCore::PlatformMessagePortChannel::hasPendingActivity):
2340         * dom/default/PlatformMessagePortChannel.h: Added.
2341         (WebCore::PlatformMessagePortChannel::MessagePortQueue::create):
2342         (WebCore::PlatformMessagePortChannel::MessagePortQueue::tryGetMessage):
2343         (WebCore::PlatformMessagePortChannel::MessagePortQueue::appendAndCheckEmpty):
2344         (WebCore::PlatformMessagePortChannel::MessagePortQueue::isEmpty):
2345         (WebCore::PlatformMessagePortChannel::MessagePortQueue::MessagePortQueue):
2346         * page/DOMWindow.cpp:
2347         (WebCore::PostMessageTimer::PostMessageTimer):
2348             Changed DOMWindow messaging to create the MessageEvent in the target ScriptExecutionContext to match how cross-thread MessagePorts work.
2349         (WebCore::PostMessageTimer::event):
2350         (WebCore::DOMWindow::postMessage):
2351         (WebCore::DOMWindow::postMessageTimerFired):
2352
2353 2009-06-21  Dan Bernstein  <mitz@apple.com>
2354
2355         Reviewed by Sam Weinig.
2356
2357         - fix https://bugs.webkit.org/show_bug.cgi?id=15383
2358           <rdar://problem/5682745> resize: vertical does not restrict to vertical
2359           resize
2360
2361         Test: fast/css/resize-single-axis.html
2362
2363         * rendering/RenderLayer.cpp:
2364         (WebCore::RenderLayer::resize): Ignore movement along the non-resizing
2365         axis.
2366
2367 2009-06-21  Sam Weinig  <sam@webkit.org>
2368
2369         Reviewed by Eric Seidel
2370
2371         Fix for https://bugs.webkit.org/show_bug.cgi?id=26578
2372         event.currentTarget for listener registered on window should point to the window object like in Firefox
2373
2374         Test: fast/events/event-trace.html
2375
2376         * dom/Node.cpp:
2377         (WebCore::Node::dispatchGenericEvent): Make the DOMWindow the currentTarget when events are dispatched
2378         to it. We previously used the document because DOMWindow was not yet an EventTarget.
2379
2380 2009-06-21  Dan Bernstein  <mitz@apple.com>
2381
2382         Reviewed by Sam Weinig.
2383
2384         - fix https://bugs.webkit.org/show_bug.cgi?id=9694
2385           resize value not compared
2386
2387         Test: fast/css/resize-value-compared.html
2388
2389         * rendering/style/StyleRareInheritedData.cpp:
2390         (WebCore::StyleRareInheritedData::operator==): Compare the resize
2391         member.
2392
2393 2009-06-19  Alice Liu  <alice.liu@apple.com>
2394
2395         Fix https://bugs.webkit.org/show_bug.cgi?id=26568 
2396         Repro crash animating GIF if previously used in a closed window's back/forward list
2397         Also filed as <rdar://problem/6978362>
2398
2399         Reviewed by Maciej Stachowiak.
2400
2401         Can't test this bug with an automated layout test since it requires b/f caching 
2402         * manual-tests/animated-gif-bfcache-crash.html: Added.
2403         * manual-tests/resources/containsAnimatedGif.html: Added.
2404
2405         Adding checks for hostWindow() since there is no guarantee that the Page is alive
2406         * platform/ScrollView.cpp:
2407         (WebCore::ScrollView::scrollRectIntoViewRecursively):
2408         (WebCore::ScrollView::contentsToScreen):
2409         (WebCore::ScrollView::screenToContents):
2410         (WebCore::ScrollView::wheelEvent):
2411
2412 2009-06-20  Sam Weinig  <sam@webkit.org>
2413
2414         Reviewed by Adam Barth.
2415
2416         Fix for https://bugs.webkit.org/show_bug.cgi?id=26554
2417         Shadowing of top and parent
2418
2419         * page/DOMWindow.idl:
2420
2421 2009-06-20  Mark Rowe  <mrowe@apple.com>
2422
2423         Reviewed by Dan Bernstein.
2424
2425         Fix <https://bugs.webkit.org/show_bug.cgi?id=15106>.
2426         Bug 15106: REGRESSION: Can't drag text as element when user-select is set to none
2427
2428         We allow selections to begin within an element that has -webkit-user-select: none set,
2429         unless the element is draggable as dragging should take priority over starting a selection.
2430
2431         Test: editing/selection/user-drag-element-and-user-select-none.html
2432
2433         * dom/Node.cpp:
2434         (WebCore::Node::canStartSelection):
2435
2436 2009-06-20  Darin Adler  <darin@apple.com>
2437
2438         Reviewed by Dan Bernstein.
2439
2440         Bug 26528: REGRESSION (r44674): Assertion in TextIterator::pushFullyClippedState while counting matches for "a" on apple.com
2441         https://bugs.webkit.org/show_bug.cgi?id=26528
2442         rdar://problem/6985329
2443
2444         * editing/TextIterator.cpp:
2445         (WebCore::TextIterator::handleReplacedElement): When entering a text control,
2446         start at the top of the shadow tree (by calling shadowTreeRootNode). Also
2447         remove assumption that innerTextElement will never be 0 since RenderTextControl
2448         doesn't really guarantee this.
2449
2450 2009-06-20  Jan Michael Alonzo  <jmalonzo@webkit.org>
2451
2452         Reviewed by NOBODY.
2453
2454         Speculative Qt build fix - add HTMLDataGridColElement to the build script.
2455
2456         * WebCore.pro:
2457
2458 2009-06-19  Adam Barth  <abarth@webkit.org>
2459
2460         Reviewed by Darin Adler.
2461
2462         https://bugs.webkit.org/show_bug.cgi?id=26561
2463
2464         Remove a memcpy by retrieving the already existing copy of a string
2465         instead of making a new one.
2466
2467         * bindings/js/ScriptSourceCode.h:
2468         (WebCore::ScriptSourceCode::ScriptSourceCode):
2469         (WebCore::ScriptSourceCode::source):
2470         * bindings/js/StringSourceProvider.h:
2471         (WebCore::StringSourceProvider::source):
2472
2473 2009-06-19  Brian Weinstein  <bweinstein@apple.com>
2474
2475         Reviewed by Steve Falkenburg.
2476         
2477         https://bugs.webkit.org/show_bug.cgi?id=26488
2478         No Support for Single Finger or Two Finger Panning in Windows 7
2479         
2480         The code in WebCore allows us to interpret a Pan gesture as
2481         a mousewheel event, and we are able to reuse the scrolling code.
2482         Another constructor was created in WheelEventWin which takes data
2483         better suited to the pan guesture than what was currently there. 
2484         
2485         Unable to add tests to simulate touch behavior/gestures.
2486
2487         * platform/PlatformWheelEvent.h:
2488         * platform/win/WheelEventWin.cpp:
2489
2490 2009-06-19  Chris Marrin  <cmarrin@apple.com>
2491
2492         Fixed a build error, which only shows up in the i386 compile
2493
2494         * platform/graphics/mac/GraphicsLayerCA.mm:
2495         (WebCore::GraphicsLayerCA::animateTransform):
2496
2497 2009-06-19  Simon Fraser  <simon.fraser@apple.com>
2498
2499         Reviewed by Oliver Hunt.
2500
2501         <rdar://problem/6988385> REGRESSION: In full page video player, movie's
2502         video track becomes detached from its controller.
2503         
2504         When in the media document, the MediaPlayer should not report that it
2505         is capable of hardware acceleration, because it renders via a QTMovieView
2506         which is already accelerated.
2507
2508         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
2509         (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
2510
2511 2009-06-19  Kevin Ollivier  <kevino@theolliviers.com>
2512
2513         Adding XSSAuditor.cpp to the wx build.
2514
2515         * WebCoreSources.bkl:
2516
2517 2009-06-19  Chris Marrin  <cmarrin@apple.com>
2518
2519         Reviewed by Simon Fraser  <simon.fraser@apple.com>.
2520
2521         https://bugs.webkit.org/show_bug.cgi?id=26544
2522
2523         If I am doing a Matrix hardware animation and any matrix is singular, I revert to software.
2524         This is not really testable, since we can't see what the hardware animation is doing.
2525
2526         * platform/graphics/mac/GraphicsLayerCA.mm:
2527         (WebCore::GraphicsLayerCA::animateTransform):
2528
2529 2009-06-19  Geoffrey Garen  <ggaren@apple.com>
2530
2531         Reviewed by Maciej Stachowiak.
2532         
2533         An additional fix for Bug 26532: Native functions do not correctly unlink
2534         from optimised callsites when they're collected
2535         <https://bugs.webkit.org/show_bug.cgi?id=26532> | <rdar://problem/6625385>
2536
2537         Use "NativeFunctionWrapper" instead of "PrototypeFunction" in cross-frame
2538         accessors, so the type of object you get to wrap a function is the same,
2539         regardless of whether the access to the function is cross-frame.
2540         
2541         This is faster and more idiomatic than what we had before. It also would
2542         have avoided Bug 26532 because it would have prevented a conflicting
2543         PrototypeFunction from being allocated to wrap postMessage, where a
2544         NativeFunctionWrapper had been allocated previously.
2545         
2546         * bindings/js/JSDOMBinding.cpp:
2547         (WebCore::objectToStringFunctionGetter):
2548         * bindings/js/JSDOMWindowCustom.cpp:
2549         (WebCore::nonCachingStaticFunctionGetter):
2550         * bindings/js/JSHistoryCustom.cpp:
2551         (WebCore::nonCachingStaticBackFunctionGetter):
2552         (WebCore::nonCachingStaticForwardFunctionGetter):
2553         (WebCore::nonCachingStaticGoFunctionGetter):
2554         * bindings/js/JSLocationCustom.cpp:
2555         (WebCore::nonCachingStaticReplaceFunctionGetter):
2556         (WebCore::nonCachingStaticReloadFunctionGetter):
2557         (WebCore::nonCachingStaticAssignFunctionGetter):
2558
2559 2009-06-19  Simon Fraser  <simon.fraser@apple.com>
2560
2561         Reviewed by John Sullivan
2562
2563         <rdar://problem/6953673> Crash in RenderLayerCompositor::setCompositingParent
2564         
2565         Fix a crash that could occur in complex content due to timing issues
2566         when doing a partial layer tree rebuild which is required when painting;
2567         setCompositingParent() could be called with a parent which has not been made
2568         compositing yet.
2569
2570 2009-06-19  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
2571
2572         Build fix. Adding missing HTMLDataGrid* files to the build.
2573
2574         * GNUmakefile.am:
2575
2576 2009-06-19  Peter Kasting  <pkasting@google.com>
2577
2578         Reviewed by Eric Seidel.
2579
2580         https://bugs.webkit.org/show_bug.cgi?id=26460 part three
2581         Make BMPImageReader a standalone class that is used by ICOImageDecoder
2582         and BMPImageDecoder to decode individual BMPs within a file.  These
2583         decoders now inherit directly from ImageDecoder.
2584         
2585         This also makes these decoders decode on-demand in isSizeAvailable() and
2586         frameBufferAtIndex(), like the other decoders, instead of when setData()
2587         is called, like before.  This should provide a speedup on pages
2588         containing BMPs that aren't immediately onscreen.
2589
2590         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
2591         (WebCore::BMPImageDecoder::BMPImageDecoder):
2592         (WebCore::BMPImageDecoder::setData):
2593         (WebCore::BMPImageDecoder::isSizeAvailable):
2594         (WebCore::BMPImageDecoder::frameBufferAtIndex):
2595         (WebCore::BMPImageDecoder::decodeWithCheckForDataEnded):
2596         (WebCore::BMPImageDecoder::decode):
2597         (WebCore::BMPImageDecoder::processFileHeader):
2598         * platform/image-decoders/bmp/BMPImageDecoder.h:
2599         (WebCore::BMPImageDecoder::readUint32):
2600         * platform/image-decoders/bmp/BMPImageReader.cpp:
2601         (WebCore::BMPImageReader::BMPImageReader):
2602         (WebCore::BMPImageReader::decodeBMP):
2603         (WebCore::BMPImageReader::readInfoHeaderSize):
2604         (WebCore::BMPImageReader::processInfoHeader):
2605         (WebCore::BMPImageReader::readInfoHeader):
2606         (WebCore::BMPImageReader::processBitmasks):
2607         (WebCore::BMPImageReader::processColorTable):
2608         (WebCore::BMPImageReader::processRLEData):
2609         (WebCore::BMPImageReader::processNonRLEData):
2610         (WebCore::BMPImageReader::setFailed):
2611         * platform/image-decoders/bmp/BMPImageReader.h:
2612         (WebCore::BMPImageReader::readUint16):
2613         (WebCore::BMPImageReader::readUint32):
2614         (WebCore::BMPImageReader::setBuffer):
2615         (WebCore::BMPImageReader::setData):
2616         (WebCore::BMPImageReader::):
2617         (WebCore::BMPImageReader::pastEndOfImage):
2618         (WebCore::BMPImageReader::readCurrentPixel):
2619         (WebCore::BMPImageReader::setRGBA):
2620         * platform/image-decoders/ico/ICOImageDecoder.cpp:
2621         (WebCore::ICOImageDecoder::ICOImageDecoder):
2622         (WebCore::ICOImageDecoder::setData):
2623         (WebCore::ICOImageDecoder::isSizeAvailable):
2624         (WebCore::ICOImageDecoder::size):
2625         (WebCore::ICOImageDecoder::frameBufferAtIndex):
2626         (WebCore::ICOImageDecoder::decodeWithCheckForDataEnded):
2627         (WebCore::ICOImageDecoder::decode):
2628         (WebCore::ICOImageDecoder::processDirectory):
2629         (WebCore::ICOImageDecoder::processDirectoryEntries):
2630         (WebCore::ICOImageDecoder::readDirectoryEntry):
2631         (WebCore::ICOImageDecoder::processImageType):
2632         * platform/image-decoders/ico/ICOImageDecoder.h:
2633         (WebCore::ICOImageDecoder::readUint16):
2634         (WebCore::ICOImageDecoder::readUint32):
2635
2636 2009-06-19  Adam Barth  <abarth@webkit.org>
2637
2638         Reviewed by Dimitri Glazkov.
2639
2640         https://bugs.webkit.org/show_bug.cgi?id=26555
2641
2642         Fix the Chromium canary bot.  Turns out ScriptSourceCode doesn't have
2643         the same API in V8 and JSC.
2644
2645         * WebCore/bindings/js/ScriptController.cpp:
2646         * WebCore/bindings/js/ScriptSourceCode.h:
2647         * WebCore/bindings/v8/ScriptController.cpp:
2648         * WebCore/page/XSSAuditor.cpp:
2649         * WebCore/page/XSSAuditor.h:
2650
2651 2009-06-19  David Hyatt  <hyatt@apple.com>
2652
2653         Reviewed by Anders Carlsson.
2654
2655         https://bugs.webkit.org/show_bug.cgi?id=26547
2656         
2657         Implement the IDL interface for HTMLDataGridColElement.
2658
2659         * DerivedSources.cpp:
2660         * DerivedSources.make:
2661         * GNUmakefile.am:
2662         * WebCore.pro:
2663         * WebCore.vcproj/WebCore.vcproj:
2664         * WebCore.xcodeproj/project.pbxproj:
2665         * WebCoreSources.bkl:
2666         * html/HTMLAttributeNames.in:
2667         * html/HTMLDataGridColElement.cpp: Added.
2668         (WebCore::HTMLDataGridColElement::HTMLDataGridColElement):
2669         (WebCore::HTMLDataGridColElement::label):
2670         (WebCore::HTMLDataGridColElement::setLabel):
2671         (WebCore::HTMLDataGridColElement::type):
2672         (WebCore::HTMLDataGridColElement::setType):
2673         (WebCore::HTMLDataGridColElement::sortable):
2674         (WebCore::HTMLDataGridColElement::setSortable):
2675         (WebCore::HTMLDataGridColElement::sortDirection):
2676         (WebCore::HTMLDataGridColElement::setSortDirection):
2677         (WebCore::HTMLDataGridColElement::selected):
2678         (WebCore::HTMLDataGridColElement::setSelected):
2679         * html/HTMLDataGridColElement.h: Added.
2680         (WebCore::HTMLDataGridColElement::endTagRequirement):
2681         (WebCore::HTMLDataGridColElement::tagPriority):
2682         * html/HTMLDataGridColElement.idl: Added.
2683         * html/HTMLDataGridElement.h:
2684         * html/HTMLElementsAllInOne.cpp:
2685         * html/HTMLTagNames.in:
2686         * page/DOMWindow.idl:
2687
2688 2009-06-19  Chris Evans  <scarybeasts@gmail.com>
2689
2690         Reviewed by Eric Seidel.
2691
2692         There is no new test because this cannot be tested deterministically.
2693         I've not been able to cause a crash at all in the test framework, but
2694         I have verified that this is happening in the wild and that the patch
2695         fixes the likely cause in the debugger.
2696
2697         * loader/TextResourceDecoder.cpp: careful not to iterate off the end
2698           of our input buffer looking for the end of the comment.
2699
2700 2009-06-19  Adam Barth  <abarth@webkit.org>
2701
2702         Reviewed by Dimitri Glazkov.
2703
2704         https://bugs.webkit.org/show_bug.cgi?id=26536
2705
2706         Fix external-script-URL-location.html and
2707         write-external-script-open.html LayoutTests.
2708
2709         implicitOpen is called from several places.  We need to setXSSAuditor
2710         each time, so I moved the call inside implicitOpen.
2711
2712         * dom/Document.cpp:
2713         (WebCore::Document::open):
2714         (WebCore::Document::implicitOpen):
2715         * loader/FrameLoader.cpp:
2716         (WebCore::FrameLoader::begin):
2717
2718 2009-06-19  Kent Tamura  <tkent@chromium.org>
2719
2720         Reviewed by David Levin.
2721
2722         Use WebCore::multipleFileUploadText() in Chromium to fix a problem
2723         that Chromium shows only the first filename even if a user selects
2724         multiple files for <input type=file multiple>.
2725         <https://bugs.webkit.org/show_bug.cgi?id=26502>
2726
2727         * platform/chromium/FileChooserChromium.cpp:
2728         (WebCore::FileChooser::basenameForWidth):
2729
2730 2009-06-19  Dan Bernstein  <mitz@apple.com>
2731
2732         Reviewed by Dave Hyatt.
2733
2734         - fix <rdar://problem/6967596> Safari hung using 100% CPU when I tried
2735           to look up a word in Dictionary using command-control-d
2736
2737         Test: editing/selection/move-by-line-005.html
2738
2739         The root cause of this bug was searchAheadForBetterMatch() continuing
2740         past the first rendered text object after the given object. While we
2741         want to skip non-rendered text and empty containers, when we encounter
2742         rendered text object, we must return a text box for that object.
2743
2744         * dom/Position.cpp:
2745         (WebCore::searchAheadForBetterMatch):
2746
2747 2009-06-19  Jungshik Shin  <jshin@chromium.org>
2748
2749         Reviewed by David Levin
2750
2751         https://bugs.webkit.org/show_bug.cgi?id=25657
2752
2753         Chromium Linux port does not handle non-BMP characters properly.
2754         It's fixed with a 'UTF-16 iterator macro' to extract Unicode
2755         codepoints out of a UTF-16 input string.
2756
2757         A manual test is added for non-BMP character rendering,
2758         which we can use until a small freely-distributable font
2759         covering non-BMP is added to the Webkit source tree.
2760
2761
2762         * platform/graphics/chromium/FontCacheLinux.cpp:
2763         (WebCore::FontCache::getFontDataForCharacters):
2764         * manual-tests/non-bmp.html: Added.
2765
2766 2009-06-19  Pavel Feldman  <pfeldman@chromium.org>
2767
2768         Reviewed by Dimitri Glazkov.
2769
2770         V8 Bindings: return proper state from the script stack.
2771
2772         https://bugs.webkit.org/show_bug.cgi?id=26512
2773
2774         * bindings/v8/ScriptCallStack.cpp:
2775         (WebCore::ScriptCallStack::ScriptCallStack):
2776         * bindings/v8/ScriptCallStack.h:
2777         (WebCore::ScriptCallStack::state):
2778
2779 2009-06-19  Jessie Berlin  <jberlin@apple.com>
2780
2781         Reviewed by Simon Fraser.
2782
2783         Windows build fix.
2784         
2785         * platform/graphics/cg/PatternCG.cpp:
2786         (WebCore::Pattern::createPlatformPattern):
2787
2788 2009-06-19  Yael Aharon  <yael.aharon@nokia.com>
2789
2790         Reviewed by Simon Hausmann.
2791         Build fix after 44825.
2792
2793         * platform/graphics/qt/ImageDecoderQt.cpp:
2794         (WebCore::ImageDecoderQt::isSizeAvailable):
2795         * platform/graphics/qt/ImageDecoderQt.h:
2796
2797 2009-06-18  Shinichiro Hamaji  <hamaji@chromium.org>
2798
2799         Reviewed by Oliver Hunt.
2800
2801         Bug 26426: Canvas: rotation of 'no-repeat' pattern is weird
2802         <https://bugs.webkit.org/show_bug.cgi?id=26426>
2803
2804         Use 1<<23-1 as steps of no-repeat patterns instead of 100000000.0f.
2805         The original number cannot be represented by mantissa of float
2806         (23bit) so that it caused some error.
2807
2808         Test: fast/canvas/image-object-in-canvas.html:
2809
2810         * platform/graphics/cg/PatternCG.cpp:
2811         (WebCore::Pattern::createPlatformPattern):
2812
2813 2009-06-19  Adam Barth  <abarth@webkit.org>
2814
2815         Unreviewed attempt to fix the Chromium build.
2816
2817         * bindings/v8/ScriptController.cpp:
2818         (WebCore::ScriptController::ScriptController):
2819         (WebCore::ScriptController::evaluate):
2820         * bindings/v8/ScriptController.h:
2821         (WebCore::ScriptController::xssAuditor):
2822         * bindings/v8/ScriptEventListener.cpp:
2823         (WebCore::createAttributeEventListener):
2824
2825 2009-06-18  Adam Barth  <abarth@webkit.org>
2826
2827         Reviewed by Sam Weinig.
2828
2829         https://bugs.webkit.org/show_bug.cgi?id=26199
2830
2831         Added an experimental reflective XSS filter.  The filter is disabled by
2832         default.
2833
2834         Test: http/tests/security/xssAuditor/script-tag.html
2835
2836         * GNUmakefile.am:
2837         * WebCore.base.exp:
2838         * WebCore.pro:
2839         * WebCore.vcproj/WebCore.vcproj:
2840         * WebCore.xcodeproj/project.pbxproj:
2841         * bindings/js/ScriptController.cpp:
2842         (WebCore::ScriptController::ScriptController):
2843         (WebCore::ScriptController::evaluate):
2844         * bindings/js/ScriptController.h:
2845         (WebCore::ScriptController::xssAuditor):
2846         * bindings/js/ScriptEventListener.cpp:
2847         (WebCore::createAttributeEventListener):
2848         * dom/Tokenizer.h:
2849         (WebCore::Tokenizer::xssAuditor):
2850         (WebCore::Tokenizer::setXSSAuditor):
2851         (WebCore::Tokenizer::Tokenizer):
2852         * html/HTMLTokenizer.cpp:
2853         (WebCore::HTMLTokenizer::scriptHandler):
2854         * loader/FrameLoader.cpp:
2855         (WebCore::FrameLoader::begin):
2856         (WebCore::FrameLoader::requestObject):
2857         * page/Settings.cpp:
2858         (WebCore::Settings::Settings):
2859         (WebCore::Settings::setXSSAuditorEnabled):
2860         * page/Settings.h:
2861         (WebCore::Settings::xssAuditorEnabled):
2862         * page/XSSAuditor.cpp: Added.
2863         (WebCore::isControlCharacter):
2864         (WebCore::XSSAuditor::XSSAuditor):
2865         (WebCore::XSSAuditor::~XSSAuditor):
2866         (WebCore::XSSAuditor::canEvaluate):
2867         (WebCore::XSSAuditor::canCreateInlineEventListener):
2868         (WebCore::XSSAuditor::canLoadExternalScriptFromSrc):
2869         (WebCore::XSSAuditor::canLoadObject):
2870         (WebCore::XSSAuditor::decodeURL):
2871         (WebCore::XSSAuditor::findInRequest):
2872         * page/XSSAuditor.h: Added.
2873         (WebCore::XSSAuditor::isEnabled):
2874         (WebCore::XSSAuditor::setXSSAuditorEnabled):
2875
2876 2009-06-18  Dirk Schulze  <krit@webkit.org>
2877
2878         Reviewed by Oliver Hunt.
2879
2880         feOffset and objectBoundingBox
2881         [https://bugs.webkit.org/show_bug.cgi?id=26441]
2882
2883         If we use objectBoundingBox for primitiveUnits, the fractions given
2884         to dx or dy of feOffset must be multiplied with the referenced objects
2885         objectBoundingBox size.
2886
2887         Test: svg/filters/feOffset.svg
2888
2889         * svg/graphics/filters/SVGFEOffset.cpp:
2890         (WebCore::FEOffset::apply):
2891
2892 2009-06-18  Dirk Schulze  <krit@webkit.org>
2893
2894         Reviewed by Oliver Hunt.
2895
2896         feTile implementation missing
2897         [https://bugs.webkit.org/show_bug.cgi?id=26419]
2898
2899         Implementation of feTile, a pattern effect for SVG filters. It was
2900         necessary to modify FilterEffect since source inputs need a secial
2901         logic and we have to identify if an effect is a source input.
2902
2903         Tests: svg/batik/filters/feTile.svg
2904                svg/filters/feTile.svg
2905
2906         * platform/graphics/filters/FilterEffect.h:
2907         (WebCore::FilterEffect::isSourceInput):
2908         * platform/graphics/filters/SourceAlpha.h:
2909         (WebCore::SourceAlpha::isSourceInput):
2910         * platform/graphics/filters/SourceGraphic.h:
2911         (WebCore::SourceGraphic::isSourceInput):
2912         * svg/graphics/filters/SVGFETile.cpp:
2913         (WebCore::FETile::apply):
2914
2915 2009-06-18  Dirk Schulze  <krit@webkit.org>
2916
2917         Reviewed by Oliver Hunt.
2918
2919         feMerge implementation
2920         [https://bugs.webkit.org/show_bug.cgi?id=26480]
2921
2922         Added feMerge to the SVG Filter system.
2923
2924         Test: svg/filters/feMerge.svg
2925
2926         * svg/graphics/filters/SVGFEMerge.cpp:
2927         (WebCore::FEMerge::uniteChildEffectSubregions):
2928         (WebCore::FEMerge::apply):
2929         * svg/graphics/filters/SVGFEMerge.h:
2930
2931 2009-06-18  Mark Rowe  <mrowe@apple.com>
2932
2933         Speculative Windows build fix.
2934
2935         * page/win/FrameCGWin.cpp: Add missing #include.
2936
2937 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
2938
2939         Reviewed by Dave Levin.
2940
2941         https://bugs.webkit.org/show_bug.cgi?id=26425
2942         Final refactorings, picking up a few places where BitmapInfo
2943         could be used.
2944
2945         * page/win/FrameCGWin.cpp:
2946         (WebCore::imageFromRect):
2947         * platform/win/CursorWin.cpp:
2948         (WebCore::Cursor::Cursor):
2949         * platform/win/PopupMenuWin.cpp:
2950         (WebCore::PopupMenu::paint):
2951
2952 2009-06-18  Chris Fleizach  <cfleizach@apple.com>
2953
2954         Reviewed by Darin Adler.
2955
2956         Bug 26522: In DOM mode, VoiceOver reads some mouseover text on web sites strangely
2957         https://bugs.webkit.org/show_bug.cgi?id=26522
2958
2959         Test: accessibility/non-data-table-cell-title-ui-element.html
2960
2961         * accessibility/AccessibilityTableCell.cpp:
2962         (WebCore::AccessibilityTableCell::titleUIElement):
2963
2964 2009-06-18  Kevin Ollivier  <kevino@theolliviers.com>
2965
2966         wx build fix after recent RenderTheme changes.
2967
2968         * platform/wx/RenderThemeWx.cpp:
2969         (WebCore::RenderThemeWx::~RenderThemeWx):
2970         (WebCore::RenderTheme::themeForPage):
2971
2972 2009-06-18  Peter Kasting  <pkasting@google.com>
2973
2974         Reviewed by Eric Seidel.
2975
2976         https://bugs.webkit.org/show_bug.cgi?id=26460 part two
2977         Attempt to minimize diff of following functional change by first landing
2978         non-functional change to:
2979         * Make readUintX() public and static (since they will need to be once
2980           BMPImageReader is included in *ImageDecoder via composition rather
2981           than inheritance).  Add wrappers in each class so callers can be
2982           simpler.  In the next patch, these wrappers will be beefed up slightly
2983           and the callers will get even simpler.
2984         * Change direct setting of m_failed to use setFailed(), since in the
2985           next patch much of this code won't even have direct access to m_failed
2986         * Add a helper function in ICOImageDecoder to determine the image type
2987           instead of simply doing it inline
2988         * Rewrap lines that used to be <=80 cols and slipped over it during the
2989           original landing of these decoders
2990         * Other misc. changes, e.g. adding constructor definitions, reordering
2991           functions, changing RGBA32Buffer& to RGBA32Buffer*, etc. that have no
2992           functional effect but minimize the subsequent diff for readability
2993
2994
2995         * platform/image-decoders/bmp/BMPImageDecoder.cpp:
2996         (WebCore::BMPImageDecoder::BMPImageDecoder):
2997         (WebCore::BMPImageDecoder::processFileHeader):
2998         * platform/image-decoders/bmp/BMPImageDecoder.h:
2999         (WebCore::BMPImageDecoder::readUint32):
3000         * platform/image-decoders/bmp/BMPImageReader.cpp:
3001         (WebCore::BMPImageReader::decodeBMP):
3002         (WebCore::BMPImageReader::getInfoHeaderSize):
3003         (WebCore::BMPImageReader::processInfoHeader):
3004         (WebCore::BMPImageReader::readInfoHeader):
3005         (WebCore::BMPImageReader::processBitmasks):
3006         (WebCore::BMPImageReader::processColorTable):
3007         (WebCore::BMPImageReader::processRLEData):
3008         (WebCore::BMPImageReader::processNonRLEData):
3009         * platform/image-decoders/bmp/BMPImageReader.h:
3010         (WebCore::BMPImageReader::readUint16Helper):
3011         (WebCore::BMPImageReader::readUint32Helper):
3012         (WebCore::BMPImageReader::):
3013         (WebCore::BMPImageReader::readUint16):
3014         (WebCore::BMPImageReader::readUint32):
3015         (WebCore::BMPImageReader::readCurrentPixel):
3016         (WebCore::BMPImageReader::getComponent):
3017         (WebCore::BMPImageReader::setI):
3018         (WebCore::BMPImageReader::setRGBA):
3019         (WebCore::BMPImageReader::fillRGBA):
3020         * platform/image-decoders/ico/ICOImageDecoder.cpp:
3021         (WebCore::ICOImageDecoder::ICOImageDecoder):
3022         (WebCore::ICOImageDecoder::isSizeAvailable):
3023         (WebCore::ICOImageDecoder::size):
3024         (WebCore::ICOImageDecoder::decodeImage):
3025         (WebCore::ICOImageDecoder::processDirectory):
3026         (WebCore::ICOImageDecoder::processDirectoryEntries):
3027         (WebCore::ICOImageDecoder::isBetterEntry):
3028         (WebCore::ICOImageDecoder::processImageType):
3029         * platform/image-decoders/ico/ICOImageDecoder.h:
3030         (WebCore::ICOImageDecoder::readUint16):
3031         (WebCore::ICOImageDecoder::readUint32):
3032
3033 2009-06-18  Peter Kasting  <pkasting@google.com>
3034
3035         Fix build bustage.
3036
3037         * platform/image-decoders/gif/GIFImageDecoder.h:
3038
3039 2009-06-18  Kevin McCullough  <kmccullough@apple.com>
3040
3041         Reviewed by Oliver Hunt.
3042
3043         <rdar://problem/6940880> REGRESSION: Breakpoints don't break in 64-bit
3044
3045         Convert intptr_t to Strings so that we don't loose bits in the
3046         conversion to JS.  Previously they were being put into 32bit ints.
3047
3048         * inspector/InspectorController.cpp: Convert the String back to an
3049         intptr_t.
3050         (WebCore::InspectorController::addBreakpoint):
3051         (WebCore::InspectorController::removeBreakpoint):
3052         * inspector/InspectorController.h:
3053         * inspector/InspectorController.idl: Use strings in JS to avoid 32bit
3054         truncation.
3055         * inspector/InspectorFrontend.cpp: Make the intptr_t into a String.
3056         (WebCore::InspectorFrontend::parsedScriptSource):
3057         * platform/text/PlatformString.h: Implemented the necessary conversion
3058         functions to be able to convert to and from an intptr_t.
3059         * platform/text/String.cpp: Ditto.
3060         (WebCore::String::toIntPtrStrict):
3061         (WebCore::String::toIntPtr):
3062         (WebCore::charactersToIntPtrStrict):
3063         (WebCore::charactersToIntPtr):
3064         * platform/text/StringImpl.cpp: Ditto.
3065         (WebCore::StringImpl::toIntPtrStrict):
3066         (WebCore::StringImpl::toIntPtr):
3067         * platform/text/StringImpl.h: Ditto.
3068
3069 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3070
3071         Reviewed by Eric Seidel.
3072
3073         Final cleanups in this refactoring:
3074         (1) Move WindowsBitmap implementation from CG-specific file to
3075             the platform-common GraphicsContextWin.cpp, since it is
3076             equally useful on both platforms.
3077         (2) Revise the TransformationMatrix logic as suggested by
3078             Adam Roben in his review comments to Part #2 of this
3079             refactoring.
3080
3081         * platform/graphics/win/GraphicsContextCGWin.cpp:
3082         * platform/graphics/win/GraphicsContextWin.cpp:
3083         (WebCore::GraphicsContext::WindowsBitmap::WindowsBitmap):
3084         (WebCore::GraphicsContext::WindowsBitmap::~WindowsBitmap):
3085         (WebCore::GraphicsContext::createWindowsBitmap):
3086         (WebCore::GraphicsContext::getWindowsContext):
3087         (WebCore::GraphicsContextPlatformPrivate::scale):
3088         (WebCore::GraphicsContextPlatformPrivate::rotate):
3089         (WebCore::GraphicsContextPlatformPrivate::translate):
3090         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
3091
3092 2009-06-18  Peter Kasting  <pkasting@google.com>
3093
3094         Reviewed by Eric Seidel.
3095
3096         https://bugs.webkit.org/show_bug.cgi?id=26460 part one
3097         Make isSizeAvailable non-const, since it's not logically const (it
3098         triggers lazy decoding), and simplify all the implementations (without
3099         changing behavior; just make less verbose).  Remove some other
3100         inappropriate consts, which enables the removal of all the mutable
3101         declarations in the decoders.
3102
3103         * platform/image-decoders/ImageDecoder.h:
3104         (WebCore::ImageDecoder::isSizeAvailable):
3105         (WebCore::ImageDecoder::setSize): Make public to avoid needing a friend declaration in the JPEG decoder, and because the ICO/BMP decoders will soon need this.
3106         * platform/image-decoders/gif/GIFImageDecoder.cpp:
3107         (WebCore::GIFImageDecoder::isSizeAvailable):
3108         (WebCore::GIFImageDecoder::repetitionCount):
3109         (WebCore::GIFImageDecoder::decode):
3110         * platform/image-decoders/gif/GIFImageDecoder.h:
3111         * platform/image-decoders/ico/ICOImageDecoder.cpp:
3112         (WebCore::ICOImageDecoder::isSizeAvailable):
3113         * platform/image-decoders/ico/ICOImageDecoder.h:
3114         * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
3115         (WebCore::JPEGImageDecoder::isSizeAvailable):
3116         (WebCore::JPEGImageDecoder::decode):
3117         * platform/image-decoders/jpeg/JPEGImageDecoder.h:
3118         * platform/image-decoders/png/PNGImageDecoder.cpp:
3119         (WebCore::PNGImageDecoder::isSizeAvailable):
3120         (WebCore::PNGImageDecoder::decode):
3121         * platform/image-decoders/png/PNGImageDecoder.h:
3122         * platform/image-decoders/xbm/XBMImageDecoder.cpp:
3123         (WebCore::XBMImageDecoder::isSizeAvailable):
3124         (WebCore::XBMImageDecoder::frameBufferAtIndex):
3125         (WebCore::XBMImageDecoder::decode):
3126         * platform/image-decoders/xbm/XBMImageDecoder.h: Rename decodeXBM() to decode() for consistency with the JPEG/PNG decoders, and in the future the ICO/BMP decoders.
3127
3128 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3129
3130         Reviewed by Eric Seidel.
3131
3132         Move some common functions out of platform files and into
3133         the common implementation.
3134
3135         https://bugs.webkit.org/show_bug.cgi?id=26425.
3136         Add a new platform context method (flush) so that the
3137         getWindowsContext method can be consolidated into the common
3138         GraphicsContextWin.cpp file.
3139          
3140         * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
3141         (WebCore::GraphicsContextPlatformPrivate::flush):
3142         * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
3143         (WebCore::GraphicsContextPlatformPrivate::flush):
3144         * platform/graphics/win/GraphicsContextCGWin.cpp: Remove
3145           getWindowContext method.
3146         * platform/graphics/win/GraphicsContextCairoWin.cpp: Remove
3147           getWindowContext method and fillWithClearColor methods.
3148         * platform/graphics/win/GraphicsContextWin.cpp:
3149         (WebCore::fillWithClearColor): Moved from *CairoWin.cpp
3150         (WebCore::GraphicsContext::getWindowsContext): Moved
3151           from *CairoWin.cpp
3152
3153 2009-06-18  Ojan Vafai  <ojan@chromium.org>
3154
3155         Reviewed by Oliver Hunt.
3156
3157         Remove code that I accidentally committed in r44811.
3158
3159         * editing/markup.cpp:
3160         (WebCore::createMarkup):
3161
3162 2009-06-18  Simon Fraser  <simon.fraser@apple.com>
3163
3164         Reviewed by Dan Bernstein.
3165
3166         <rdar://problem/6983207> Non-layer content is not re-rendered when transition
3167         starts sometimes (with hardware acceleration).
3168         
3169         When deciding which RenderLayers should be composited, when a layer goes into
3170         compositing mode we repaint the old location. However, we did that before
3171         we'd looked at all the factors that may force a layer to composite, so missed
3172         some cases. Fix by doing the repaint once we really know whether it's going
3173         to composite.
3174
3175         Test: compositing/repaint/become-overlay-composited-layer.html
3176
3177         * rendering/RenderLayerCompositor.cpp:
3178         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3179
3180 2009-06-18  Simon Fraser  <simon.fraser@apple.com>
3181
3182         Fix the Leopard build where USE(ACCELERATED_COMPOSITING) is not defined, and
3183         the Tiger build where QTMovieLayer does not exist.
3184
3185         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3186         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3187         (WebCore::MediaPlayerPrivate::createQTMovieLayer):
3188         (WebCore::MediaPlayerPrivate::destroyQTMovieLayer):
3189         (WebCore::MediaPlayerPrivate::currentRenderingMode):
3190         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
3191         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
3192         (WebCore::MediaPlayerPrivate::hasSetUpVideoRendering):
3193
3194 2009-06-18  Simon Fraser  <simon.fraser@apple.com>
3195
3196         Fix the Leopard build where USE(ACCELERATED_COMPOSITING) is not defined.
3197
3198         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3199         (WebCore::MediaPlayerPrivate::currentRenderingMode):
3200         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
3201         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
3202
3203 2009-06-17  Erik Arvidsson  <arv@chromium.org>
3204
3205         Reviewed by Adele Peterson.
3206
3207         https://bugs.webkit.org/show_bug.cgi?id=15189
3208         Adds the HTML5 input event support for textarea.
3209         
3210         Also, moves the oninput attribute parse handling to HTMLElement so that
3211         it can be set on any HTML element so that bubbling events can be handled
3212         using HTML attribute handlers.
3213
3214         Test: fast/forms/textarea-input-event.html
3215
3216         * html/HTMLElement.cpp:
3217         (WebCore::HTMLElement::parseMappedAttribute):
3218         * html/HTMLInputElement.cpp:
3219         (WebCore::HTMLInputElement::parseMappedAttribute):
3220         * rendering/RenderTextControlMultiLine.cpp:
3221         (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
3222
3223 2009-06-18  Dirk Schulze  <krit@webkit.org>
3224
3225         Reviewed by Oliver Hunt.
3226
3227         Share code between filterEffects
3228         [https://bugs.webkit.org/show_bug.cgi?id=26479]
3229
3230         Share more code of filter effects. The imageBuffer creation can move to
3231         FilterEffect ant every effect asks for the GraphicsContext. Move the
3232         drawingRect calculation to FilterEffect.
3233
3234         * platform/graphics/filters/FilterEffect.cpp:
3235         (WebCore::FilterEffect::calculateDrawingRect):
3236         (WebCore::FilterEffect::getEffectContext):
3237         * platform/graphics/filters/FilterEffect.h:
3238         * platform/graphics/filters/SourceGraphic.cpp:
3239         (WebCore::SourceGraphic::apply):
3240         * svg/graphics/filters/SVGFEFlood.cpp:
3241         (WebCore::FEFlood::apply):
3242         * svg/graphics/filters/SVGFEOffset.cpp:
3243         (WebCore::FEOffset::apply):
3244
3245 2009-06-18  Simon Fraser  <simon.fraser@apple.com>
3246
3247         Reviewed by Dave Hyatt.
3248         
3249         https://bugs.webkit.org/show_bug.cgi?id=26499
3250         
3251         Support hardware-accelerationed rendering of video elements.
3252
3253         * html/HTMLMediaElement.cpp:
3254         (WebCore::HTMLMediaElement::mediaPlayerSawUnsupportedTracks):
3255         (WebCore::HTMLMediaElement::mediaPlayerRepaint):
3256         Just move these methods to group the render-related methods together.
3257         
3258         (WebCore::HTMLMediaElement::mediaPlayerRenderingCanBeAccelerated):
3259         Call out method to ask the RenderLayerCompositor if presentation of this video
3260         can be acclerated. It might say no, if, for example, the video has a reflection.
3261         
3262         (WebCore::HTMLMediaElement::mediaPlayerGraphicsLayer):
3263         Fetch the GraphicsLayer from the RenderVideo that will host the movie layer.
3264         
3265         * html/HTMLMediaElement.h:
3266         Reordered the rendering-related methods, and added two methods related to video
3267         acceleration.
3268         
3269         * platform/graphics/MediaPlayer.cpp:
3270         (WebCore::MediaPlayer::acceleratedRenderingStateChanged):
3271         Called by the rendering system when it determines that the video must go into, or
3272         fall off of the hardware-accelerated path.
3273         
3274         (WebCore::MediaPlayer::supportsAcceleratedRendering):
3275         Method to say whether the media engine supports accelerated rendering.
3276         
3277         * platform/graphics/MediaPlayer.h:
3278         (WebCore::MediaPlayerClient::mediaPlayerRepaint):
3279         (WebCore::MediaPlayerClient::mediaPlayerSizeChanged):
3280         Moved.
3281         
3282         (WebCore::MediaPlayerClient::mediaPlayerRenderingCanBeAccelerated):
3283         (WebCore::MediaPlayerClient::mediaPlayerGraphicsLayer):
3284         New methods to ask the client if the rendering system can support accelerated
3285         rendering, and to get a GraphicsLayer to plug the movie layer into.
3286         
3287         * platform/graphics/MediaPlayerPrivate.h:
3288         (WebCore::MediaPlayerPrivateInterface::supportsAcceleratedRendering):
3289         (WebCore::MediaPlayerPrivateInterface::acceleratedRenderingStateChanged):
3290         Forwarding methods from MediaPlayer.
3291         
3292         * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
3293         Some new methods related to using a QTMovieLayer, and to simplify the rendering mode logic.
3294
3295         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3296         (WebCore::MediaPlayerPrivate::createQTMovieLayer):
3297         (WebCore::MediaPlayerPrivate::destroyQTMovieLayer):
3298         Methods to create and destroy the QTMovieLayer.
3299         
3300         (WebCore::MediaPlayerPrivate::currentRenderingMode):
3301         (WebCore::MediaPlayerPrivate::preferredRenderingMode):
3302         Methods to clarify the code that decides which of the 3 rendering modes to use.
3303         
3304         (WebCore::MediaPlayerPrivate::setUpVideoRendering):
3305         Changed to use the new rendering mode methods.
3306         
3307         (WebCore::MediaPlayerPrivate::tearDownVideoRendering):
3308         Destroy the layer if we have one.
3309         
3310         (WebCore::MediaPlayerPrivate::hasSetUpVideoRendering):
3311         Small utility method.
3312         
3313         (WebCore::MediaPlayerPrivate::updateStates):
3314         Move the call to setUpVideoRendering() to before we send out the state notifications,
3315         so that we will have created the rendering objects already.
3316         
3317         (WebCore::MediaPlayerPrivate::supportsAcceleratedRendering):
3318         Return true if we have QTMovieLayer.
3319         
3320         (WebCore::MediaPlayerPrivate::acceleratedRenderingStateChanged):
3321         We've been told that we went into or out of accelerated mode; maybe reset
3322         the renderer, and set the layer if we have to.
3323         
3324         * rendering/RenderLayer.cpp:
3325         (WebCore::RenderLayer::rendererContentChanged):
3326         We may need to udpate compositing layers if the video went into accelerated mode.
3327         
3328         * rendering/RenderLayerBacking.cpp:
3329         (WebCore::RenderLayerBacking::canUseDirectCompositing):
3330         Add smarts to deal with video, which allows us to avoid extra backing store.
3331         
3332         (WebCore::RenderLayerBacking::contentsBox):
3333         Use the videoBox to use the content layer for video layers.
3334         
3335         * rendering/RenderLayerCompositor.cpp:
3336         (WebCore::RenderLayerCompositor::updateLayerCompositingState):
3337         Poke the RenderVideo if the state changed.
3338         
3339         (WebCore::RenderLayerCompositor::computeCompositingRequirements):
3340         Handle an edge case when the video element itself is a stacking context
3341         because of opacity or transform.
3342         
3343         (WebCore::RenderLayerCompositor::canAccelerateVideoRendering):
3344         (WebCore::RenderLayerCompositor::requiresCompositingLayer):
3345         (WebCore::RenderLayerCompositor::requiresCompositingForVideo):
3346         Allow video to throw us into compositing mode if the media engine supports it.
3347         
3348         * rendering/RenderLayerCompositor.h:
3349         New methods related to video.
3350         
3351         * rendering/RenderVideo.h:
3352         * rendering/RenderVideo.cpp:
3353         (WebCore::RenderVideo::updatePlayer):
3354         Call rendererContentChanged() to give the compositor a change to throw the video into
3355         compositing mode.
3356         
3357         (WebCore::RenderVideo::supportsAcceleratedRendering):
3358         (WebCore::RenderVideo::acceleratedRenderingStateChanged):
3359         (WebCore::RenderVideo::videoGraphicsLayer):
3360         Methods to allow the MediaPlayer to do rendering-related stuff via the media element.
3361
3362 2009-06-18  Rob Buis  <rwlbuis@gmail.com>
3363
3364         Reviewed by Niko.
3365
3366         https://bugs.webkit.org/show_bug.cgi?id=26385
3367         Root SVG element is not checked on requiredFeatures, requiredExtension like other elements
3368
3369         Also do the isValid check for outer <svg>.
3370
3371         Test: svg/custom/outer-svg-unknown-feature.svg
3372
3373         * svg/SVGDocument.cpp:
3374         (WebCore::SVGDocument::childShouldCreateRenderer):
3375         * svg/SVGDocument.h:
3376
3377 2009-06-18  Dan Bernstein  <mitz@apple.com>
3378
3379         Reviewed by Darin Adler.
3380
3381         - fix <rdar://problem/6913221> REGRESSION (Safari 3-4): Search field on
3382           apple.com cuts entered text
3383
3384         Test: fast/forms/search-vertical-alignment.html
3385
3386         * rendering/RenderTextControlSingleLine.cpp:
3387         (WebCore::RenderTextControlSingleLine::layout): Vertically center the
3388             the search field's inner block.
3389
3390 2009-06-18  Janne Koskinen  <janne.p.koskinen@digia.com>
3391
3392         Reviewed by Simon Hausmann.
3393
3394         Fix compilation with Symbian WINSCW compiler, which produced
3395         multiple definitions of the CSSPrimitiveValue conversion operators.
3396
3397         It turns out that they are defined inline but not declared inline.
3398
3399         Adding the inline keyword to the declaration fixes the build.
3400
3401         * css/CSSPrimitiveValue.h:
3402
3403 2009-06-18  Markus Goetz <Markus.Goetz@nokia.com>
3404
3405         Reviewed by Simon Hausman.
3406
3407         Clarify in docs how to compile with debug information.
3408
3409         * WebCore.pro:
3410
3411 2009-06-18  Jakub Wieczorek  <faw217@gmail.com>
3412
3413         Reviewed by Simon Hausmann.
3414
3415         [Qt] When writing an URL to the clipboard, save the corresponding title
3416         in the mime data as well.
3417
3418         * platform/qt/ClipboardQt.cpp:
3419         (WebCore::ClipboardQt::writeURL):
3420
3421 2009-06-18  Jakub Wieczorek  <faw217@gmail.com>
3422
3423         [Qt] Fix build. Add HTMLDataGridElement.
3424
3425         * WebCore.pro:
3426
3427 2009-06-18  Jan Michael Alonzo  <jmalonzo@webkit.org>
3428
3429         Gtk build fix.
3430
3431         Add HTMLDataGridElement header and IDL to the build script.
3432
3433         * GNUmakefile.am:
3434
3435 2009-06-18  Chris Evans  <scarybeasts@gmail.com>
3436
3437         Reviewed by Adam Barth.
3438
3439         Fix 8-digit long hex entities. Fixes bug 26454
3440         https://bugs.webkit.org/show_bug.cgi?id=26454
3441
3442         Test: fast/parser/eightdigithexentity.html
3443
3444         * html/HTMLTokenizer.cpp: fix off-by-ones.
3445
3446 2009-06-18  David Levin  <levin@chromium.org>
3447
3448         Fix chromium linux build.
3449
3450         Fixes a mistake that happened during the complicated merge for
3451         landing r44775, r44776, r44777.
3452
3453         * rendering/RenderThemeChromiumLinux.cpp:
3454         (WebCore::RenderThemeChromiumLinux::create):
3455
3456 2009-06-17  Simon Fraser  <simon.fraser@apple.com>
3457
3458         Reviewed by Darin Adler.
3459         
3460         https://bugs.webkit.org/show_bug.cgi?id=26499
3461         
3462         First step to making video rendering be hardware-accelerated:
3463         make <video> elements get self-painting RenderLayers, and add
3464         an isVideo() virtual method to RenderObject.
3465
3466         * html/HTMLMediaElement.cpp:
3467         (WebCore::HTMLMediaElement::setReadyState):
3468         (WebCore::HTMLMediaElement::mediaPlayerDurationChanged):
3469         (WebCore::HTMLMediaElement::mediaPlayerSizeChanged):
3470         * rendering/RenderLayer.cpp:
3471         (WebCore::RenderLayer::shouldBeNormalFlowOnly):
3472         (WebCore::RenderLayer::isSelfPaintingLayer):
3473         * rendering/RenderObject.h:
3474         (WebCore::RenderObject::isVideo):
3475         * rendering/RenderVideo.h:
3476         (WebCore::RenderVideo::requiresLayer):
3477         (WebCore::RenderVideo::isVideo):
3478
3479 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3480
3481         Reviewed by Adam Roben.
3482
3483         Refactor a few common routines in the various Windows ports
3484         and reduce some duplicated code.
3485
3486         (1) Create TransformationMatrix XFORM casting operator, and
3487             switch various XFORM structure uses to utilize it.
3488         (2) Push concatCTM call to GraphicsContextWin now that the
3489             TransformationMatrix can directly create XFORM (rather
3490             than converting to CGAffineTransform/cairo_matrix_t first.)
3491
3492         * WebCore.vcproj/WebCore.vcproj: Add new BitmapInfo structure.
3493         * platform/graphics/transforms/TransformationMatrix.h:
3494         * platform/graphics/win/GraphicsContextCGWin.cpp:
3495         * platform/graphics/win/GraphicsContextCairoWin.cpp:
3496         * platform/graphics/win/GraphicsContextWin.cpp:
3497         (WebCore::GraphicsContextPlatformPrivate::scale):
3498         (WebCore::GraphicsContextPlatformPrivate::rotate):
3499         (WebCore::GraphicsContextPlatformPrivate::translate):
3500         (WebCore::GraphicsContextPlatformPrivate::concatCTM):
3501         * platform/graphics/win/TransformationMatrixWin.cpp: Added.
3502         (WebCore::TransformationMatrix::operator XFORM): New operator
3503
3504 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3505
3506         Non-CG Windows build fix after @r44758.
3507
3508         * rendering/RenderThemeWin.cpp:
3509         (WebCore::RenderTheme::themeForPage):
3510
3511 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3512
3513         Reviewed by Adam Roben.
3514
3515         Refactor a few common routines in the various Windows ports
3516         and reduce some duplicated code.
3517         https://bugs.webkit.org/show_bug.cgi?id=26425.
3518
3519         Refactor use of BITMAPINFO for the new BitmapInfo structure.
3520
3521         * WebCore.vcproj/WebCore.vcproj:
3522         * platform/win/BitmapInfo.cpp: Added.
3523         (WebCore::bitmapInfoForSize):
3524         (WebCore::BitmapInfo::create):
3525         (WebCore::BitmapInfo::createBottomUp):
3526         * platform/win/BitmapInfo.h: Added.
3527         * platform/graphics/win/GraphicsContextCairoWin.cpp:
3528         * platform/graphics/win/GraphicsContextCGWin.cpp:
3529         * platform/graphics/win/TransformationMatrixWin.cpp: Added.
3530         (WebCore::TransformationMatrix::operator XFORM): New operator
3531         * platform/win/DragImageCGWin.cpp:
3532         (WebCore::allocImage):
3533         * platform/win/DragImageCairoWin.cpp:
3534         (WebCore::allocImage):
3535         * platform/win/PasteboardWin.cpp:
3536         (WebCore::Pasteboard::writeImage):
3537         * platform/win/PopupMenuWin.cpp:
3538         (WebCore::PopupMenu::paint):
3539
3540 2009-06-17  Adam Roben  <aroben@apple.com>
3541
3542         Remove unnecessary 6th parameter from SOFT_LINK_OPTIONAL
3543
3544         Reviewed by Mark Rowe.
3545
3546         * platform/graphics/win/ColorSafari.cpp: Removed the 6th parameter and
3547         an unnecessary parameter name.
3548         * platform/win/SoftLinking.h: Removed the unused 6th parameter.
3549
3550 2009-06-17  Adam Roben  <aroben@apple.com>
3551
3552         Make Settings::shouldPaintNativeControls default to true
3553
3554         This matches the default up in WebKit (that was changed in r43318).
3555
3556         Fixes Bug 26493: REGRESSION (r44758): First tab always uses Mac-style
3557         form controls
3558         <https://bugs.webkit.org/show_bug.cgi?id=26493>
3559
3560         Reviewed by Darin Adler and Dave Hyatt.
3561
3562         No test possible since DRT always uses Mac-style form controls.
3563
3564         * page/Settings.cpp: Changed the initial value of
3565         gShouldPaintNativeControls to true.
3566
3567         * rendering/RenderThemeSafari.cpp:
3568         (WebCore::RenderTheme::themeForPage): Added a FIXME about the design
3569         flaw here involving querying Settings before it's been initialized.
3570
3571 2009-06-17  David Levin  <levin@chromium.org>
3572
3573         Fix chromium windows build.
3574
3575         A mistake that happened during the complicated merge for
3576         landing r44775, r44776, r44777.
3577
3578         * rendering/RenderThemeChromiumWin.h:
3579         (WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
3580         (WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
3581
3582 2009-06-17  Eric Carlson  <eric.carlson@apple.com>
3583
3584         Reviewed by Simon Fraser.
3585
3586         <rdar://problem/6981193> Crash in MediaControlInputElement::attachToParent
3587
3588         * rendering/MediaControlElements.cpp:
3589         (WebCore::MediaTextDisplayElement::attachToParent): NULL check element renderer or parent renderer.
3590         (WebCore::MediaControlInputElement::attachToParent): Ditto.
3591
3592 2009-06-17  David Hyatt  <hyatt@apple.com>
3593
3594         Fix Windows build.  There's no HTMLDataGridElement.cpp file yet.
3595
3596         * html/HTMLElementsAllInOne.cpp:
3597
3598 2009-06-17  David Hyatt  <hyatt@apple.com>
3599
3600         Reviewed by Adam Roben and Anders Carlsson.
3601
3602         Stub out the HTMLDataGridElement.
3603
3604         * DerivedSources.make:
3605         * WebCore.vcproj/WebCore.vcproj:
3606         * WebCore.xcodeproj/project.pbxproj:
3607         * WebCoreSources.bkl:
3608         * css/CSSStyleSelector.cpp:
3609         (WebCore::CSSStyleSelector::adjustRenderStyle):
3610         * editing/htmlediting.cpp:
3611         (WebCore::canHaveChildrenForEditing):
3612         * html/HTMLDataGridElement.h: Added.
3613         (WebCore::HTMLDataGridElement::HTMLDataGridElement):
3614         (WebCore::HTMLDataGridElement::tagPriority):
3615         * html/HTMLDataGridElement.idl: Added.
3616         * html/HTMLElement.cpp:
3617         (WebCore::inlineTagList):
3618         * html/HTMLParser.cpp:
3619         (WebCore::HTMLParser::isAffectedByResidualStyle):
3620         * html/HTMLTagNames.in:
3621
3622 2009-06-17  David Levin  <levin@chromium.org>
3623
3624         Reviewed by NOBODY (chromium build fix).
3625
3626         Fix typo in previous changes.
3627
3628         * rendering/RenderThemeChromiumSkia.cpp:
3629         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
3630
3631 2009-06-17  Albert J. Wong  <ajwong@chromium.org>
3632
3633         Reviewed by Eric Seidel.
3634
3635         https://bugs.webkit.org/show_bug.cgi?id=26148
3636         Remove common code from RenderThemeChromiumWin that is shared with
3637         RenderThemeChromiumSkia.
3638
3639         Also move supportsControlTints to RenderThemeChromiumLinux since it
3640         is linux specific.
3641
3642         There are no tests changed because this just removes functions with
3643         duplicate implementations between the base and derived classes.
3644
3645         * rendering/RenderThemeChromiumLinux.cpp:
3646         (WebCore::RenderThemeChromiumLinux::supportsControlTints):
3647         * rendering/RenderThemeChromiumLinux.h:
3648         * rendering/RenderThemeChromiumSkia.cpp:
3649         * rendering/RenderThemeChromiumSkia.h:
3650         * rendering/RenderThemeChromiumWin.cpp:
3651         (WebCore::):
3652         (WebCore::getNonClientMetrics):
3653         (WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
3654         (WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
3655         (WebCore::RenderThemeChromiumWin::systemFont):
3656         (WebCore::RenderThemeChromiumWin::paintCheckbox):
3657         (WebCore::RenderThemeChromiumWin::paintRadio):
3658         (WebCore::RenderThemeChromiumWin::paintSliderThumb):
3659         (WebCore::RenderThemeChromiumWin::caretBlinkIntervalInternal):
3660         * rendering/RenderThemeChromiumWin.h:
3661
3662 2009-06-17  Albert J. Wong  <ajwong@chromium.org>
3663
3664         Reviewed by Eric Seidel.
3665
3666         https://bugs.webkit.org/show_bug.cgi?id=26148
3667         Move RenderThemeChromiumSkia into its own file.  This is purely a code move.
3668
3669         * rendering/RenderThemeChromiumLinux.cpp:
3670         * rendering/RenderThemeChromiumLinux.h:
3671         * rendering/RenderThemeChromiumSkia.cpp:
3672         (WebCore::):
3673         (WebCore::setSizeIfAuto):
3674         (WebCore::mediaElementParent):
3675         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
3676         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia):
3677         (WebCore::RenderThemeChromiumSkia::~RenderThemeChromiumSkia):
3678         (WebCore::RenderThemeChromiumSkia::extraDefaultStyleSheet):
3679         (WebCore::RenderThemeChromiumSkia::extraQuirksStyleSheet):
3680         (WebCore::RenderThemeChromiumSkia::extraMediaControlsStyleSheet):
3681         (WebCore::RenderThemeChromiumSkia::supportsHover):
3682         (WebCore::RenderThemeChromiumSkia::supportsFocusRing):
3683         (WebCore::RenderThemeChromiumSkia::platformActiveSelectionBackgroundColor):
3684         (WebCore::RenderThemeChromiumSkia::platformInactiveSelectionBackgroundColor):
3685         (WebCore::RenderThemeChromiumSkia::platformActiveSelectionForegroundColor):
3686         (WebCore::RenderThemeChromiumSkia::platformInactiveSelectionForegroundColor):
3687         (WebCore::RenderThemeChromiumSkia::platformTextSearchHighlightColor):
3688         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
3689         (WebCore::RenderThemeChromiumSkia::systemFont):
3690         (WebCore::RenderThemeChromiumSkia::minimumMenuListSize):
3691         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
3692         (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
3693         (WebCore::RenderThemeChromiumSkia::paintRadio):
3694         (WebCore::RenderThemeChromiumSkia::setRadioSize):
3695         (WebCore::brightenColor):
3696         (WebCore::paintButtonLike):
3697         (WebCore::RenderThemeChromiumSkia::paintButton):
3698         (WebCore::RenderThemeChromiumSkia::paintTextField):
3699         (WebCore::RenderThemeChromiumSkia::paintTextArea):
3700         (WebCore::RenderThemeChromiumSkia::paintSearchField):
3701         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldCancelButtonStyle):
3702         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
3703         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldDecorationStyle):
3704         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsDecorationStyle):
3705         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
3706         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsButtonStyle):
3707         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
3708         (WebCore::RenderThemeChromiumSkia::paintMediaButtonInternal):
3709         (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
3710         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
3711         (WebCore::RenderThemeChromiumSkia::adjustMenuListStyle):
3712         (WebCore::RenderThemeChromiumSkia::paintMenuList):
3713         (WebCore::RenderThemeChromiumSkia::adjustMenuListButtonStyle):
3714         (WebCore::RenderThemeChromiumSkia::paintMenuListButton):
3715         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingLeft):
3716         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingRight):
3717         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingTop):
3718         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingBottom):
3719         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingLeft):
3720         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingRight):
3721         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingTop):
3722         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingBottom):
3723         (WebCore::RenderThemeChromiumSkia::caretBlinkIntervalInternal):
3724         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
3725         * rendering/RenderThemeChromiumSkia.h:
3726         (WebCore::RenderThemeChromiumSkia::supportsControlTints):
3727
3728 2009-06-17  Albert J. Wong  <ajwong@chromium.org>
3729
3730         Reviewed by Eric Seidel.
3731
3732         https://bugs.webkit.org/show_bug.cgi?id=26148
3733         Extract RenderThemeChromiumSkia out of RenderThemeChromiumLinux.  This
3734         is mostly a code shuffle.  The non-suffle changes are:
3735            1) Creation of a caretBlinkIntervalInternal.
3736            2) Moving of some inline functions into the implementation files.
3737            3) Changing of defaultGUIFont into a static class constant from a
3738               static function.  Also the type is changed to String.
3739            4) Changing of defaultFontSize into a static class constant from a
3740               static variable in the file scope.
3741            5) The static supportsFocus function was collapsed into
3742               supportsFocusRing.
3743            6) Split the extraDefaultStyleSheet into Skia and Linux versions.
3744
3745         * rendering/RenderThemeChromiumLinux.cpp:
3746         (WebCore::RenderThemeChromiumSkia::defaultGUIFont):
3747         (WebCore::RenderThemeChromiumSkia::RenderThemeChromiumSkia):
3748         (WebCore::RenderThemeChromiumSkia::~RenderThemeChromiumSkia):
3749         (WebCore::RenderThemeChromiumSkia::extraDefaultStyleSheet):
3750         (WebCore::RenderThemeChromiumSkia::extraQuirksStyleSheet):
3751         (WebCore::RenderThemeChromiumSkia::extraMediaControlsStyleSheet):
3752         (WebCore::RenderThemeChromiumSkia::supportsHover):
3753         (WebCore::RenderThemeChromiumSkia::supportsFocusRing):
3754         (WebCore::RenderThemeChromiumSkia::platformActiveSelectionBackgroundColor):
3755         (WebCore::RenderThemeChromiumSkia::platformInactiveSelectionBackgroundColor):
3756         (WebCore::RenderThemeChromiumSkia::platformActiveSelectionForegroundColor):
3757         (WebCore::RenderThemeChromiumSkia::platformInactiveSelectionForegroundColor):
3758         (WebCore::RenderThemeChromiumSkia::platformTextSearchHighlightColor):
3759         (WebCore::RenderThemeChromiumSkia::caretBlinkInterval):
3760         (WebCore::RenderThemeChromiumSkia::systemFont):
3761         (WebCore::RenderThemeChromiumSkia::minimumMenuListSize):
3762         (WebCore::RenderThemeChromiumSkia::paintCheckbox):
3763         (WebCore::RenderThemeChromiumSkia::setCheckboxSize):
3764         (WebCore::RenderThemeChromiumSkia::paintRadio):
3765         (WebCore::RenderThemeChromiumSkia::setRadioSize):
3766         (WebCore::RenderThemeChromiumSkia::paintButton):
3767         (WebCore::RenderThemeChromiumSkia::paintTextField):
3768         (WebCore::RenderThemeChromiumSkia::paintTextArea):
3769         (WebCore::RenderThemeChromiumSkia::paintSearchField):
3770         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldCancelButtonStyle):
3771         (WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
3772         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldDecorationStyle):
3773         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsDecorationStyle):
3774         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
3775         (WebCore::RenderThemeChromiumSkia::adjustSearchFieldResultsButtonStyle):
3776         (WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):
3777         (WebCore::RenderThemeChromiumSkia::paintMediaButtonInternal):
3778         (WebCore::RenderThemeChromiumSkia::paintMediaPlayButton):
3779         (WebCore::RenderThemeChromiumSkia::paintMediaMuteButton):
3780         (WebCore::RenderThemeChromiumSkia::adjustMenuListStyle):
3781         (WebCore::RenderThemeChromiumSkia::paintMenuList):
3782         (WebCore::RenderThemeChromiumSkia::adjustMenuListButtonStyle):
3783         (WebCore::RenderThemeChromiumSkia::paintMenuListButton):
3784         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingLeft):
3785         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingRight):
3786         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingTop):
3787         (WebCore::RenderThemeChromiumSkia::popupInternalPaddingBottom):
3788         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingLeft):
3789         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingRight):
3790         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingTop):
3791         (WebCore::RenderThemeChromiumSkia::buttonInternalPaddingBottom):
3792         (WebCore::RenderThemeChromiumSkia::caretBlinkIntervalInternal):
3793         (WebCore::RenderThemeChromiumLinux::RenderThemeChromiumLinux):
3794         (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
3795         (WebCore::RenderThemeChromiumLinux::systemColor):
3796         (WebCore::RenderThemeChromiumLinux::extraDefaultStyleSheet):
3797         (WebCore::RenderThemeChromiumSkia::menuListInternalPadding):
3798         * rendering/RenderThemeChromiumLinux.h:
3799
3800 2009-06-17  Adam Roben  <aroben@apple.com>
3801
3802         Add a SOFT_LINK_OPTIONAL macro
3803
3804         This macro is useful when soft-linking functions that are present in
3805         only some versions of a particular library (e.g., APIs added in
3806         Windows Vista that aren't available on Windows XP).
3807
3808         Reviewed by Ada Chan.
3809
3810         * platform/graphics/win/ColorSafari.cpp:
3811         (WebCore::focusRingColor):
3812         Use the SoftLinking.h macros instead of doing the soft-link ourselves.
3813         Also removed an unused call to focusRingColor.isValid().
3814
3815         * platform/win/SoftLinking.h: Added SOFT_LINK_OPTIONAL.
3816
3817 2009-06-17  Brent Fulgham  <bfulgham@webkit.org>
3818
3819         Reviewed by Gustavo Noronha.
3820
3821         Fixes: https://bugs.webkit.org/show_bug.cgi?id=26470.
3822         The use of zero-width or zero-height rectangles in generating
3823         gradients caused Windows Cairo to crash, and webkitgtk to
3824         produce invalid images.
3825
3826         We now test for NaN in the phase argument, which is calculated
3827         using fmodf and can blow up when the width/height values passed
3828         are zero.
3829
3830         Test: fast/gradients/border-image-gradient-sides-and-corners.html
3831
3832         * platform/graphics/cairo/ImageCairo.cpp:
3833         (WebCore::Image::drawPattern):
3834
3835 2009-06-17  Ojan Vafai  <ojan@chromium.org>
3836
3837         Reviewed by Dimitri Glazkov.
3838
3839         If loading a font fails because of the sandbox, we ask the browser process to
3840         try to load it by calling ensureFontLoaded. If it still fails after
3841         ensureFontLoaded, we hit a ASSERT_NOT_REACHED.
3842
3843         This case happens once in a while during browser shutdown. The browser will
3844         queue a message to the renderer to shutdown, and will then stop answering sync
3845         messages from the renderer. If the renderer is still loading a page during this
3846         time, it might try to call the browser process to ask to load a font. The
3847         browser process will ignore the request, and the font will fail to load, even
3848         after the second try.
3849
3850         This is unfortunate, but there is no real risk here, since the renderer will be
3851         going away as soon as it processes another message.
3852         
3853         This can't be layout tested as it depends on the sandbox.
3854         
3855         https://bugs.webkit.org/show_bug.cgi?id=26484
3856
3857         * platform/graphics/chromium/FontCacheChromiumWin.cpp:
3858         (WebCore::fontContainsCharacter):
3859
3860 2009-06-17  Eric Carlson  <eric.carlson@apple.com>
3861
3862         Reviewed by Dan Bernstein.
3863
3864         https://bugs.webkit.org/show_bug.cgi?id=26482
3865         <rdar://problem/6978590> When setting playback rate to 0, the audio element stops 
3866         playing (doesn't resume later)
3867
3868         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
3869         (WebCore::MediaPlayerPrivate::setRate): Always set the rate, even when "paused".
3870
3871         * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
3872         (WebCore::MediaPlayerPrivate::setRate): Ditto.
3873
3874 2009-06-17  Adam Roben  <aroben@apple.com>
3875
3876         Add all the generated JS*.cpp files back to WebCore.vcproj
3877
3878         They are not compiled by the vcproj directly. Instead they are
3879         compiled as part of DerivedSources.cpp. Having them listed in the
3880         vcproj makes them be included in Project Find, etc.
3881
3882         Rubber-stamped in advance by Steve Falkenburg.
3883
3884         * WebCore.vcproj/WebCore.vcproj:
3885
3886 2009-06-17  Kent Tamura  <tkent@chromium.org>
3887
3888         Reviewed by Darin Fisher.
3889
3890         Don't fire redundant 'change' events for a file upload form.
3891         https://bugs.webkit.org/show_bug.cgi?id=26471
3892
3893         * platform/FileChooser.cpp:
3894         (WebCore::FileChooser::chooseFiles): Suppress change event if the
3895         existing selected files and the incoming selected files are equal.
3896         (WebCore::FileChooser::chooseIcon): Returns 0 if there is no selected
3897         files.
3898
3899 2009-06-17  Adam Treat  <adam.treat@torchmobile.com>
3900
3901         Reviewed by George Staikos.
3902
3903         https://bugs.webkit.org/show_bug.cgi?id=23155
3904         Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks.
3905
3906         * platform/KeyboardCodes.h:
3907
3908 2009-06-17  George Staikos  <george.staikos@torchmobile.com>
3909
3910         Reviewed by Adam Treat.
3911
3912         https://bugs.webkit.org/show_bug.cgi?id=23155
3913         Move WIN_CE -> WINCE as previously discussed with Qt WINCE folks.
3914
3915         * platform/graphics/qt/GraphicsContextQt.cpp:
3916         (WebCore::GraphicsContext::getWindowsContext):
3917         * platform/win/SystemTimeWin.cpp:
3918         (WebCore::userIdleTime):
3919
3920 2009-06-17  Adam Roben  <aroben@apple.com>
3921
3922         Speculative Mac build fix
3923
3924         * page/Page.h: Forward-declare RenderTheme instead of including
3925         RenderTheme.h so that we don't need to make RenderTheme.h a private
3926         header for WebKit's benefit.
3927
3928         * editing/SelectionController.cpp:
3929         * rendering/InlineTextBox.cpp:
3930         * rendering/RenderObject.cpp:
3931         Added #includes of RenderTheme.h.
3932
3933 2009-06-17  Adam Roben  <aroben@apple.com>
3934
3935         Speculative Mac build fix
3936
3937         * rendering/RenderThemeMac.mm:
3938         (WebCore::RenderTheme::create): Added.
3939
3940 2009-06-17  Adam Roben  <aroben@apple.com>
3941
3942         Speculative Mac build fix
3943
3944         * rendering/RenderThemeMac.mm:
3945         (WebCore::RenderTheme::themeForPage): Remove the name of an unused
3946         parameter.
3947
3948 2009-06-17  Adam Roben  <aroben@apple.com>
3949
3950         Speculative Mac build fix
3951
3952         * page/Page.cpp:
3953         (WebCore::Page::Page): Change the initializer order to match the
3954         declaration order.
3955
3956 2009-06-16  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
3957
3958         Reviewed by Simon Hausmann.
3959
3960         Follow up to bug https://bugs.webkit.org/show_bug.cgi?id=26278
3961         Patch that make WebCore have a RenderTheme per page
3962
3963         Make the Qt implementation of RenderTheme create a theme per page,
3964         and use the QStyle associated with the view of each page, in order
3965         to make the QWidget setStyle() method work as advertised.
3966
3967         * platform/qt/RenderThemeQt.cpp:
3968         (WebCore::RenderThemeQt::RenderThemeQt):
3969         (WebCore::RenderThemeQt::qStyle):
3970         (WebCore::findFrameLineWidth):
3971         (WebCore::inflateButtonRect):
3972         (WebCore::RenderThemeQt::adjustRepaintRect):
3973         (WebCore::RenderThemeQt::isControlStyled):
3974         (WebCore::RenderThemeQt::computeSizeBasedOnStyle):
3975         (WebCore::RenderThemeQt::setButtonPadding):
3976         (WebCore::RenderThemeQt::paintButton):
3977         (WebCore::RenderThemeQt::paintTextField):
3978         (WebCore::RenderThemeQt::setPopupPadding):
3979         * platform/qt/RenderThemeQt.h:
3980
3981 2009-06-16  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>
3982
3983         Reviewed by Dave Hyatt and Adam Roben.
3984
3985         https://bugs.webkit.org/show_bug.cgi?id=26278
3986         Patch that make WebCore have a RenderTheme per page
3987
3988
3989         Create a different RenderTheme per page, so that RenderTheme has
3990         access to page specific theming. This is needed for the Qt port, as Qt
3991         supports setting the theme (style) per widget.
3992
3993         This change was suggested and discussed with Dave Hyatt.
3994
3995         More detailed:
3996
3997         1) Create a theme per page or one global one, depending on the needs
3998            of the platform.
3999         2) Add an accesser to the theme from RenderObject.
4000         3) Change all uses of the theming to access the theme through
4001            RenderObject, using the global default theme as fallback, when the
4002            document of RenderObject has no page.
4003            When we don't have access to a RenderObject, use the default theme.
4004         4) Modify all RenderTheme platform implementations to work with the
4005            above changes, still creating only one global theme.
4006
4007
4008         * accessibility/AccessibilityRenderObject.cpp:
4009         (WebCore::AccessibilityRenderObject::boundingBoxRect):
4010         * css/CSSStyleSelector.cpp:
4011         (WebCore::loadFullDefaultStyle):
4012         (WebCore::CSSStyleSelector::styleForElement):
4013         (WebCore::CSSStyleSelector::adjustRenderStyle):
4014         (WebCore::CSSStyleSelector::applyProperty):
4015         * dom/ContainerNode.cpp:
4016         (WebCore::ContainerNode::setActive):
4017         (WebCore::ContainerNode::setHovered):
4018         * editing/SelectionController.cpp:
4019         (WebCore::SelectionController::focusedOrActiveStateChanged):
4020         * html/HTMLFormControlElement.cpp:
4021         (WebCore::HTMLFormControlElement::parseMappedAttribute):
4022         * html/HTMLInputElement.cpp:
4023         (WebCore::HTMLInputElement::setChecked):
4024         (WebCore::HTMLInputElement::setIndeterminate):
4025         * page/Frame.cpp:
4026         (WebCore::Frame::selectionLayoutChanged):
4027         * page/FrameView.cpp:
4028         (WebCore::FrameView::updateControlTints):
4029         * page/Page.cpp:
4030         (WebCore::Page::Page):
4031         * page/Page.h:
4032         (WebCore::Page::theme):
4033         * platform/chromium/PopupMenuChromium.cpp:
4034         (WebCore::PopupListBox::paintRow):
4035         * platform/gtk/RenderThemeGtk.cpp:
4036         (WebCore::RenderThemeGtk::create):
4037         (WebCore::RenderTheme::themeForPage):
4038         (WebCore::RenderThemeGtk::RenderThemeGtk):
4039         (WebCore::RenderThemeGtk::~RenderThemeGtk):
4040         (WebCore::RenderThemeGtk::gtkEntry):
4041         (WebCore::RenderThemeGtk::gtkTreeView):
4042         * platform/gtk/RenderThemeGtk.h:
4043         * platform/qt/RenderThemeQt.cpp:
4044         (WebCore::RenderThemeQt::create):
4045         (WebCore::RenderTheme::themeForPage):
4046         * platform/qt/RenderThemeQt.h:
4047         * platform/win/PopupMenuWin.cpp:
4048         (WebCore::PopupMenu::paint):
4049         * rendering/RenderMediaControls.cpp:
4050         (WebCore::determineState):
4051         * platform/wx/RenderThemeWx.cpp:
4052         (WebCore::RenderThemeWx::create):
4053         (WebCore::RenderTheme::themeForPage):
4054         * rendering/InlineTextBox.cpp:
4055         (WebCore::InlineTextBox::paintTextMatchMarker):
4056         * rendering/MediaControlElements.cpp:
4057         (WebCore::MediaControlInputElement::hitTest):
4058         * rendering/RenderObject.cpp:
4059         (WebCore::RenderObject::theme):
4060         * rendering/RenderObject.h:
4061         * rendering/RenderTheme.cpp:
4062         (WebCore::RenderTheme::adjustStyle):
4063         * rendering/RenderTheme.h:
4064         (WebCore::RenderTheme::defaultTheme):
4065         * rendering/RenderThemeChromiumLinux.cpp:
4066         (WebCore::RenderThemeChromiumLinux::create):
4067         (WebCore::RenderTheme::themeForPage):
4068         * rendering/RenderThemeChromiumLinux.h:
4069         (WebCore::RenderThemeChromiumLinux::~RenderThemeChromiumLinux):
4070         * rendering/RenderThemeChromiumMac.h:
4071         * rendering/RenderThemeChromiumMac.mm:
4072         (WebCore::RenderThemeChromiumMac::create):
4073         (WebCore::RenderTheme::themeForPage):
4074         * rendering/RenderThemeChromiumWin.cpp:
4075         (WebCore::RenderThemeChromiumWin::create):
4076         (WebCore::RenderTheme::themeForPage):
4077         * rendering/RenderThemeChromiumWin.h:
4078         (WebCore::RenderThemeChromiumWin::RenderThemeChromiumWin):
4079         (WebCore::RenderThemeChromiumWin::~RenderThemeChromiumWin):
4080         * rendering/RenderThemeMac.h:
4081         * rendering/RenderThemeMac.mm:
4082         (WebCore::RenderTheme::themeForPage):
4083         * rendering/RenderThemeSafari.cpp:
4084         (WebCore::RenderThemeSafari::create):
4085         (WebCore::RenderTheme::themeForPage):
4086         * rendering/RenderThemeSafari.h:
4087         * rendering/RenderThemeWin.cpp:
4088         (WebCore::RenderThemeWin::create):
4089         (WebCore::RenderTheme::themeForPage):
4090         * rendering/RenderThemeWin.h:
4091
4092 2009-06-17  Gavin Barraclough  <barraclough@apple.com>
4093
4094         Reviewed by Oliver Hunt.
4095
4096         <rdar://problem/6974175> ASSERT in JITStubs.cpp at appsaccess.apple.com
4097
4098         JSDOMWindowCustom was using PropertySlot::putValue, however this interface
4099         appears to be fundaementally incorrect - PropertySlots are only used to get
4100         values, all puts use PutPropertySlot.  However PutPropertySlot cannot be
4101         used in the fashion desired here - it only reports the caching type of a
4102         write that has been performed.
4103
4104         (This caused a bug where the put should have triggered a transition, and
4105         failed to do so.)
4106
4107         Removing the faulty case from the optimization leads to a ~0.5% progression
4108         on in-browser SunSpider (presumably the very first case was not being hit
4109         often, and the simplification here is beneficial).
4110
4111         * bindings/js/JSDOMWindowCustom.cpp:
4112         (WebCore::JSDOMWindow::put):
4113
4114 2009-06-17  David Levin  <levin@chromium.org>
4115
4116         Reviewed by NOBODY, layout tests fix.
4117
4118         https://bugs.webkit.org/show_bug.cgi?id=26326
4119         This reverts commit r44751.
4120
4121         Once that change was checked scrollbars/scrollbar-orientation.html started
4122         crashing on Windows.
4123
4124         * dom/Document.cpp:
4125         (WebCore::Document::detach):
4126         * page/FrameView.cpp:
4127         * page/FrameView.h:
4128         * platform/Scrollbar.h:
4129         * rendering/RenderObject.cpp:
4130         (WebCore::RenderObject::destroy):
4131         * rendering/RenderScrollbar.h:
4132
4133 2009-06-16  Kevin Watters  <kevinwatters@gmail.com>
4134
4135         Reviewed by Kevin Ollivier.
4136
4137         In ImageSource::setData, delete the old m_encoder before replacing it with a new one.
4138         
4139         https://bugs.webkit.org/show_bug.cgi?id=26458
4140
4141         * platform/graphics/wx/ImageSourceWx.cpp:
4142         (WebCore::ImageSource::setData):
4143
4144 2009-06-16  David Levin  <levin@chromium.org>
4145
4146         Reviewed by David Hyatt.
4147
4148         REGRESSION: When the main page (ScrollView) has a custom scrollbar, it crashes on destruction.
4149         https://bugs.webkit.org/show_bug.cgi?id=26326
4150
4151         Test: scrollbars/scrollbar-crash-on-refresh.html
4152
4153         * dom/Document.cpp:
4154         (WebCore::Document::detach):
4155         Gives the FrameView a change to do any necessary cleanup on
4156         Document::detach() which is where the renderArena gets detroyed.
4157         * page/FrameView.cpp:
4158         (WebCore::FrameView::detachCustomScrollbars):
4159         Gets rid of any custom scrollbars (if the docment supplied them).
4160         * page/FrameView.h:
4161         * platform/Scrollbar.h:
4162         (WebCore::Scrollbar::isCustomScrollbar):
4163         * rendering/RenderObject.cpp:
4164         (WebCore::RenderObject::destroy):
4165         Removed the check for document()->frame().  If frame() is 0 in this code,
4166         then the call to animation() is also incorrect (since it does document()->frame()->animation()).
4167         * rendering/RenderScrollbar.h:
4168         (WebCore::RenderScrollbar::isCustomScrollbar):
4169
4170 2009-06-16  Brian Weinstein  <bweinstein@apple.com>
4171
4172         Reviewed by Adele Peterson.
4173
4174         Fix of <rdar://6967547> Ctrl-C copies null value erasing text in clipboard in Safari.
4175         This patch kept the way events were firing as they were before, and Windows events are
4176         consistent with Mac.       
4177
4178         * editing/Editor.cpp:
4179         (WebCore::Editor::tryDHTMLCopy): Added check for canCopy() before clearing PasteBoard
4180         (WebCore::Editor::tryDHTMLCut): Added check for canCut() before clearing PasteBoard
4181
4182 2009-06-16  Antti Koivisto  <antti@apple.com>
4183
4184         Reviewed by Brady Eidson.
4185
4186         <rdar://problem/6660037> CrashTracer: [USER] 46 crashes in Safari at com.apple.WebCore • WebCore::CachedCSSStyleSheet::addClient + 53
4187         
4188         When revalidating a resource, calling addClient() on one client might cause another to get removed.
4189         
4190         - made CachedResource::addClient() non-virtual and added virtual didAddClient()
4191         - in CachedResource::switchClientsToRevalidatedResource() add all clients to the client set of the revalidated resource first
4192         - check if the client is still in the set before invoking didAddClient() for it
4193         
4194         No test case, I didn't manage to construct one. You need some combination of 304 revalidation, stylesheets that
4195         reference each other via @imports and reloading.
4196
4197         * WebCore.base.exp:
4198         * loader/CachedCSSStyleSheet.cpp:
4199         (WebCore::CachedCSSStyleSheet::didAddClient):
4200         * loader/CachedCSSStyleSheet.h:
4201         * loader/CachedFont.cpp:
4202         (WebCore::CachedFont::didAddClient):
4203         * loader/CachedFont.h:
4204         * loader/CachedImage.cpp:
4205         (WebCore::CachedImage::didAddClient):
4206         * loader/CachedImage.h:
4207         * loader/CachedResource.cpp:
4208         (WebCore::CachedResource::addClient):
4209         (WebCore::CachedResource::addClientToSet):
4210         (WebCore::CachedResource::switchClientsToRevalidatedResource):
4211         * loader/CachedResource.h:
4212         * loader/CachedScript.cpp:
4213         (WebCore::CachedScript::didAddClient):
4214         * loader/CachedScript.h:
4215         * loader/CachedXSLStyleSheet.cpp:
4216         (WebCore::CachedXSLStyleSheet::didAddClient):
4217         * loader/CachedXSLStyleSheet.h:
4218
4219 2009-06-16  Simon Fraser  <simon.fraser@apple.com>
4220
4221         No Review
4222
4223         Fix code inside an #ifdef that draws the video framerate.
4224
4225         * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
4226         (WebCore::MediaPlayerPrivate::paint):
4227
4228 2009-06-16  Jian Li  <jianli@chromium.org>
4229
4230         Reviewed by Dimitri Glazkov.
4231
4232         Bug 26456: Hook up V8 bindings for Worker's importScripts functionality.